From a5702c01b3ae9725d1e7af759071b95007b9f5bf Mon Sep 17 00:00:00 2001 From: root Date: Thu, 17 Nov 2022 06:46:05 -0500 Subject: [PATCH 1/4] godeps --- cmd/newcoin/newcoin.go | 6 +- go.mod | 20 +- go.sum | 24 +- src/gui/static/dist/assets/logo-white.png | Bin 119032 -> 97013 bytes src/gui/static/src/assets/logo-white.png | Bin 119032 -> 97013 bytes .../monitor-peers/connection/connection.go | 220 + .../skycoin/skycoin/src/api/README.md | 4570 ++++++++ .../skycoin/skycoin/src/api/address.go | 56 + .../skycoin/skycoin/src/api/blockchain.go | 401 + .../skycoin/skycoin/src/api/client.go | 1468 +++ .../skycoin/skycoin/src/api/csrf.go | 165 + .../skycoin/skycoin/src/api/explorer.go | 242 + .../skycoin/skycoin/src/api/gateway.go | 122 + .../skycoin/skycoin/src/api/health.go | 118 + .../skycoin/skycoin/src/api/http.go | 743 ++ .../skycoin/skycoin/src/api/middleware.go | 208 + .../skycoin/skycoin/src/api/network.go | 228 + .../skycoin/skycoin/src/api/outputs.go | 77 + .../skycoin/skycoin/src/api/spend.go | 748 ++ .../skycoin/skycoin/src/api/storage.go | 190 + .../skycoin/skycoin/src/api/transaction.go | 849 ++ .../skycoin/skycoin/src/api/uxout.go | 98 + .../skycoin/skycoin/src/api/version.go | 22 + .../skycoin/skycoin/src/api/wallet.go | 1175 +++ .../skycoin/skycoin/src/cipher/address.go | 183 + .../skycoin/skycoin/src/cipher/base58/LICENSE | 24 + .../skycoin/src/cipher/base58/LICENSE_old | 27 + .../skycoin/src/cipher/base58/README.md | 47 + .../skycoin/src/cipher/base58/base58.go | 178 + .../skycoin/src/cipher/base58/base58_old.go | 190 + .../skycoin/skycoin/src/cipher/bip32/LICENSE | 22 + .../skycoin/src/cipher/bip32/README.md | 102 + .../skycoin/skycoin/src/cipher/bip32/bip32.go | 653 ++ .../skycoin/skycoin/src/cipher/bip32/path.go | 108 + .../skycoin/skycoin/src/cipher/bip32/utils.go | 171 + .../skycoin/skycoin/src/cipher/bip39/LICENSE | 22 + .../skycoin/src/cipher/bip39/README.md | 43 + .../skycoin/skycoin/src/cipher/bip39/bip39.go | 408 + .../bip39/wordlists/chinese_simplified.go | 2071 ++++ .../bip39/wordlists/chinese_traditional.go | 2071 ++++ .../src/cipher/bip39/wordlists/english.go | 2071 ++++ .../src/cipher/bip39/wordlists/french.go | 2071 ++++ .../src/cipher/bip39/wordlists/italian.go | 2071 ++++ .../src/cipher/bip39/wordlists/japanese.go | 2071 ++++ .../src/cipher/bip39/wordlists/korean.go | 2071 ++++ .../src/cipher/bip39/wordlists/spanish.go | 2071 ++++ .../skycoin/skycoin/src/cipher/bip44/bip44.go | 103 + .../skycoin/skycoin/src/cipher/bitcoin.go | 195 + .../chacha20poly1305/chacha20poly1305.go | 83 + .../chacha20poly1305_amd64.go | 127 + .../chacha20poly1305/chacha20poly1305_amd64.s | 2714 +++++ .../chacha20poly1305_generic.go | 70 + .../chacha20poly1305_noasm.go | 15 + .../internal/chacha20/chacha_generic.go | 199 + .../skycoin/skycoin/src/cipher/crypto.go | 713 ++ .../skycoin/src/cipher/crypto/crypto.go | 86 + .../skycoin/src/cipher/encoder/README.md | 8 + .../skycoin/src/cipher/encoder/encoder.go | 1027 ++ .../cipher/encrypt/scrypt_chacha20poly1305.go | 171 + .../skycoin/src/cipher/encrypt/sha256xor.go | 260 + .../skycoin/skycoin/src/cipher/hash.go | 208 + .../skycoin/src/cipher/pbkdf2/pbkdf2.go | 77 + .../skycoin/src/cipher/poly1305/poly1305.go | 32 + .../skycoin/src/cipher/poly1305/sum_amd64.go | 22 + .../skycoin/src/cipher/poly1305/sum_amd64.s | 125 + .../skycoin/src/cipher/poly1305/sum_arm.go | 22 + .../skycoin/src/cipher/poly1305/sum_arm.s | 427 + .../skycoin/src/cipher/poly1305/sum_ref.go | 141 + .../src/cipher/ripemd160/ripemd160block.go | 161 + .../skycoin/src/cipher/ripemd160/ripmd_160.go | 121 + .../skycoin/src/cipher/scrypt/scrypt.go | 243 + .../skycoin/src/cipher/secp256k1-go/README.md | 5 + .../src/cipher/secp256k1-go/secp256_rand.go | 151 + .../cipher/secp256k1-go/secp256k1-go2/COPYING | 4 + .../secp256k1-go/secp256k1-go2/README.md | 5 + .../cipher/secp256k1-go/secp256k1-go2/ec.go | 202 + .../secp256k1-go/secp256k1-go2/field.go | 738 ++ .../cipher/secp256k1-go/secp256k1-go2/num.go | 100 + .../secp256k1-go/secp256k1-go2/secp256k1.go | 64 + .../cipher/secp256k1-go/secp256k1-go2/sig.go | 280 + .../cipher/secp256k1-go/secp256k1-go2/xy.go | 244 + .../cipher/secp256k1-go/secp256k1-go2/xyz.go | 378 + .../secp256k1-go/secp256k1-go2/z_consts.go | 9356 +++++++++++++++++ .../secp256k1-go/secp256k1-go2/z_init.go | 113 + .../src/cipher/secp256k1-go/secp256k1.go | 450 + .../skycoin/src/cipher/testsuite/testsuite.go | 527 + .../skycoin/src/cli/add_private_key.go | 140 + .../skycoin/skycoin/src/cli/address_gen.go | 342 + .../skycoin/skycoin/src/cli/addresscount.go | 26 + .../skycoin/skycoin/src/cli/blocks.go | 49 + .../skycoin/src/cli/broadcast_rawtx.go | 29 + .../skycoin/skycoin/src/cli/check_balance.go | 258 + .../skycoin/skycoin/src/cli/checkdb.go | 141 + .../github.com/skycoin/skycoin/src/cli/cli.go | 323 + .../skycoin/skycoin/src/cli/create_rawtx.go | 1011 ++ .../skycoin/skycoin/src/cli/decrypt_wallet.go | 59 + .../skycoin/src/cli/distribute_genesis.go | 147 + .../skycoin/skycoin/src/cli/encrypt_wallet.go | 63 + .../skycoin/skycoin/src/cli/generate_addrs.go | 208 + .../skycoin/src/cli/generate_wallet.go | 523 + .../skycoin/skycoin/src/cli/last_blocks.go | 37 + .../skycoin/skycoin/src/cli/list_addrs.go | 47 + .../skycoin/skycoin/src/cli/list_wallets.go | 56 + .../skycoin/skycoin/src/cli/outputs.go | 76 + .../skycoin/skycoin/src/cli/richlist.go | 58 + .../skycoin/skycoin/src/cli/scan_addrs.go | 109 + .../skycoin/skycoin/src/cli/send.go | 67 + .../skycoin/skycoin/src/cli/show_seed.go | 91 + .../skycoin/skycoin/src/cli/status.go | 52 + .../skycoin/skycoin/src/cli/transaction.go | 405 + .../skycoin/skycoin/src/cli/verify_address.go | 21 + .../skycoin/skycoin/src/cli/version.go | 50 + .../skycoin/skycoin/src/cli/wallet_history.go | 229 + .../skycoin/src/cli/wallet_key_export.go | 180 + .../skycoin/skycoin/src/coin/block.go | 236 + .../skycoin/src/coin/block_body_skyencoder.go | 407 + .../src/coin/block_header_skyencoder.go | 168 + .../skycoin/skycoin/src/coin/outputs.go | 327 + .../src/coin/transaction_inputs_skyencoder.go | 135 + .../coin/transaction_outputs_skyencoder.go | 179 + .../src/coin/transaction_skyencoder.go | 357 + .../skycoin/skycoin/src/coin/transactions.go | 788 ++ .../skycoin/src/coin/ux_body_skyencoder.go | 138 + .../skycoin/src/coin/ux_head_skyencoder.go | 93 + .../announce_blocks_message_skyencoder.go | 78 + .../announce_txns_message_skyencoder.go | 135 + .../skycoin/src/daemon/announced_txns.go | 44 + .../skycoin/skycoin/src/daemon/connections.go | 554 + .../skycoin/skycoin/src/daemon/daemon.go | 1786 ++++ .../daemon/disconnect_message_skyencoder.go | 118 + .../skycoin/skycoin/src/daemon/errors.go | 112 + .../daemon/get_blocks_message_skyencoder.go | 93 + .../src/daemon/get_txns_message_skyencoder.go | 135 + .../daemon/give_blocks_message_skyencoder.go | 579 + .../daemon/give_peers_message_skyencoder.go | 149 + .../daemon/give_txns_message_skyencoder.go | 408 + .../skycoin/skycoin/src/daemon/gnet/README.md | 7 + .../skycoin/src/daemon/gnet/dispatcher.go | 209 + .../skycoin/src/daemon/gnet/message.go | 140 + .../skycoin/skycoin/src/daemon/gnet/pool.go | 1076 ++ .../daemon/introduction_message_skyencoder.go | 162 + .../skycoin/src/daemon/ip_addr_skyencoder.go | 93 + .../skycoin/skycoin/src/daemon/messages.go | 1390 +++ .../skycoin/skycoin/src/daemon/pex/README.md | 8 + .../skycoin/src/daemon/pex/peerlist.go | 396 + .../skycoin/skycoin/src/daemon/pex/pex.go | 738 ++ .../skycoin/skycoin/src/daemon/pool.go | 133 + .../src/daemon/signed_block_skyencoder.go | 528 + .../skycoin/src/daemon/strand/strand.go | 135 + .../src/daemon/transaction_skyencoder.go | 358 + .../skycoin/skycoin/src/fiber/config.go | 180 + .../skycoin/skycoin/src/kvstorage/empty.go | 5 + .../skycoin/skycoin/src/kvstorage/error.go | 16 + .../skycoin/src/kvstorage/kvstorage.go | 162 + .../skycoin/skycoin/src/kvstorage/manager.go | 252 + .../skycoin/src/kvstorage/manager_config.go | 15 + .../skycoin/skycoin/src/kvstorage/map.go | 12 + .../skycoin/src/params/distribution.go | 153 + .../skycoin/skycoin/src/params/droplet.go | 34 + .../skycoin/skycoin/src/params/init.go | 78 + .../skycoin/skycoin/src/params/params.go | 128 + .../skycoin/skycoin/src/params/verify_txn.go | 55 + .../skycoin/skycoin/src/readable/block.go | 145 + .../skycoin/src/readable/blockchain.go | 58 + .../skycoin/skycoin/src/readable/fiber.go | 17 + .../skycoin/skycoin/src/readable/network.go | 73 + .../skycoin/skycoin/src/readable/output.go | 298 + .../skycoin/skycoin/src/readable/page.go | 8 + .../skycoin/skycoin/src/readable/richlist.go | 32 + .../skycoin/src/readable/transaction.go | 254 + .../skycoin/skycoin/src/readable/verbose.go | 258 + .../skycoin/skycoin/src/readable/version.go | 20 + .../skycoin/skycoin/src/readable/wallet.go | 70 + .../skycoin/skycoin/src/skycoin/config.go | 773 ++ .../skycoin/skycoin/src/skycoin/db_check.go | 165 + .../skycoin/skycoin/src/skycoin/skycoin.go | 617 ++ .../skycoin/src/testutil/assert/assertions.go | 73 + .../skycoin/src/testutil/require/require.go | 32 + .../skycoin/skycoin/src/testutil/testutil.go | 151 + .../skycoin/skycoin/src/transaction/choose.go | 278 + .../skycoin/skycoin/src/transaction/create.go | 504 + .../skycoin/src/transaction/distribution.go | 24 + .../skycoin/skycoin/src/transaction/hours.go | 165 + .../skycoin/skycoin/src/transaction/params.go | 155 + .../skycoin/skycoin/src/transaction/verify.go | 336 + .../skycoin/src/util/apputil/apputil.go | 56 + .../skycoin/skycoin/src/util/certutil/LICENSE | 15 + .../skycoin/skycoin/src/util/certutil/cert.go | 150 + .../skycoin/src/util/droplet/droplet.go | 95 + .../skycoin/src/util/elapse/elapser.go | 72 + .../skycoin/skycoin/src/util/fee/fee.go | 99 + .../skycoin/skycoin/src/util/file/file.go | 322 + .../skycoin/src/util/gziphandler/LICENSE | 22 + .../src/util/gziphandler/gziphandler.go | 53 + .../skycoin/skycoin/src/util/http/error.go | 68 + .../skycoin/skycoin/src/util/http/json.go | 190 + .../skycoin/skycoin/src/util/http/log.go | 75 + .../skycoin/skycoin/src/util/iputil/iputil.go | 66 + .../skycoin/src/util/logging/formatter.go | 441 + .../skycoin/skycoin/src/util/logging/hooks.go | 44 + .../skycoin/src/util/logging/logger.go | 77 + .../skycoin/src/util/logging/logging.go | 79 + .../skycoin/src/util/mathutil/mathutil.go | 81 + .../skycoin/src/util/timeutil/timeutil.go | 15 + .../skycoin/src/util/useragent/useragent.go | 222 + .../skycoin/skycoin/src/visor/blockchain.go | 853 ++ .../src/visor/blockdb/block_skyencoder.go | 513 + .../skycoin/src/visor/blockdb/block_tree.go | 269 + .../skycoin/src/visor/blockdb/blockchain.go | 285 + .../skycoin/src/visor/blockdb/blocksigs.go | 69 + .../skycoin/src/visor/blockdb/chain_meta.go | 29 + .../blockdb/hash_pairs_wrapper_skyencoder.go | 141 + .../blockdb/hashes_wrapper_skyencoder.go | 126 + .../visor/blockdb/sig_wrapper_skyencoder.go | 78 + .../skycoin/src/visor/blockdb/unspent.go | 541 + .../src/visor/blockdb/ux_out_skyencoder.go | 171 + .../skycoin/src/visor/blockdb/verify.go | 156 + .../skycoin/skycoin/src/visor/config.go | 119 + .../skycoin/skycoin/src/visor/db.go | 401 + .../skycoin/src/visor/dbutil/dbutil.go | 363 + .../src/visor/historydb/address_txn.go | 79 + .../src/visor/historydb/address_uxout.go | 66 + .../historydb/hashes_wrapper_skyencoder.go | 125 + .../src/visor/historydb/history_meta.go | 36 + .../skycoin/src/visor/historydb/historydb.go | 412 + .../skycoin/src/visor/historydb/output.go | 102 + .../src/visor/historydb/transaction.go | 112 + .../visor/historydb/transaction_skyencoder.go | 372 + .../src/visor/historydb/ux_out_skyencoder.go | 197 + .../skycoin/src/visor/historydb/verify.go | 129 + .../skycoin/skycoin/src/visor/interfaces.go | 73 + .../skycoin/skycoin/src/visor/meta.go | 71 + .../skycoin/skycoin/src/visor/objects.go | 213 + .../skycoin/skycoin/src/visor/richlist.go | 64 + .../skycoin/src/visor/transaction_model.go | 599 ++ .../skycoin/skycoin/src/visor/unconfirmed.go | 562 + .../unconfirmed_transaction_skyencoder.go | 417 + .../skycoin/src/visor/ux_array_skyencoder.go | 215 + .../skycoin/skycoin/src/visor/visor.go | 2298 ++++ .../skycoin/skycoin/src/visor/wallet.go | 615 ++ .../skycoin/skycoin/src/wallet/balance.go | 87 + .../skycoin/src/wallet/bip44wallet/account.go | 544 + .../skycoin/src/wallet/bip44wallet/decoder.go | 268 + .../skycoin/src/wallet/bip44wallet/wallet.go | 906 ++ .../skycoin/src/wallet/collection/decoder.go | 176 + .../skycoin/src/wallet/collection/wallet.go | 486 + .../skycoin/skycoin/src/wallet/creators.go | 53 + .../skycoin/skycoin/src/wallet/decoders.go | 114 + .../src/wallet/deterministic/decoder.go | 178 + .../src/wallet/deterministic/wallet.go | 569 + .../skycoin/skycoin/src/wallet/entry.go | 122 + .../skycoin/skycoin/src/wallet/loaders.go | 53 + .../skycoin/skycoin/src/wallet/meta.go | 348 + .../skycoin/skycoin/src/wallet/options.go | 183 + .../skycoin/skycoin/src/wallet/secrets.go | 46 + .../skycoin/skycoin/src/wallet/service.go | 870 ++ .../skycoin/skycoin/src/wallet/transaction.go | 278 + .../skycoin/skycoin/src/wallet/wallet.go | 620 ++ .../skycoin/skycoin/src/wallet/wallets.go | 146 + .../skycoin/src/wallet/xpubwallet/decoder.go | 112 + .../skycoin/src/wallet/xpubwallet/wallet.go | 471 + .../x/crypto/ssh/terminal/terminal.go | 25 +- .../x/crypto/ssh/terminal/util_windows.go | 4 +- .../sys/internal/unsafeheader/unsafeheader.go | 30 + vendor/golang.org/x/sys/unix/README.md | 15 +- .../golang.org/x/sys/unix/affinity_linux.go | 42 +- vendor/golang.org/x/sys/unix/aliases.go | 3 +- vendor/golang.org/x/sys/unix/asm_aix_ppc64.s | 2 +- .../unix/{asm_darwin_386.s => asm_bsd_386.s} | 12 +- .../{asm_openbsd_amd64.s => asm_bsd_amd64.s} | 10 +- .../unix/{asm_netbsd_arm.s => asm_bsd_arm.s} | 10 +- .../{asm_netbsd_amd64.s => asm_bsd_arm64.s} | 10 +- vendor/golang.org/x/sys/unix/asm_darwin_arm.s | 30 - .../golang.org/x/sys/unix/asm_darwin_arm64.s | 30 - .../x/sys/unix/asm_dragonfly_amd64.s | 29 - .../golang.org/x/sys/unix/asm_freebsd_386.s | 29 - .../golang.org/x/sys/unix/asm_freebsd_amd64.s | 29 - .../golang.org/x/sys/unix/asm_freebsd_arm.s | 29 - .../golang.org/x/sys/unix/asm_freebsd_arm64.s | 29 - vendor/golang.org/x/sys/unix/asm_linux_386.s | 2 +- .../golang.org/x/sys/unix/asm_linux_amd64.s | 2 +- vendor/golang.org/x/sys/unix/asm_linux_arm.s | 2 +- .../golang.org/x/sys/unix/asm_linux_arm64.s | 2 +- .../golang.org/x/sys/unix/asm_linux_mips64x.s | 2 +- .../golang.org/x/sys/unix/asm_linux_mipsx.s | 2 +- .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 2 +- .../golang.org/x/sys/unix/asm_linux_riscv64.s | 47 + .../golang.org/x/sys/unix/asm_linux_s390x.s | 2 +- vendor/golang.org/x/sys/unix/asm_netbsd_386.s | 29 - .../golang.org/x/sys/unix/asm_netbsd_arm64.s | 29 - .../golang.org/x/sys/unix/asm_openbsd_386.s | 29 - .../golang.org/x/sys/unix/asm_openbsd_arm.s | 29 - ...sm_darwin_amd64.s => asm_openbsd_mips64.s} | 6 +- .../golang.org/x/sys/unix/asm_solaris_amd64.s | 2 +- vendor/golang.org/x/sys/unix/asm_zos_s390x.s | 426 + .../golang.org/x/sys/unix/bluetooth_linux.go | 1 + vendor/golang.org/x/sys/unix/cap_freebsd.go | 1 + vendor/golang.org/x/sys/unix/constants.go | 3 +- vendor/golang.org/x/sys/unix/dev_aix_ppc.go | 4 +- vendor/golang.org/x/sys/unix/dev_aix_ppc64.go | 4 +- vendor/golang.org/x/sys/unix/dev_zos.go | 29 + vendor/golang.org/x/sys/unix/dirent.go | 92 +- vendor/golang.org/x/sys/unix/endian_big.go | 3 +- vendor/golang.org/x/sys/unix/endian_little.go | 3 +- vendor/golang.org/x/sys/unix/env_unix.go | 3 +- vendor/golang.org/x/sys/unix/epoll_zos.go | 221 + .../x/sys/unix/errors_freebsd_386.go | 6 + .../x/sys/unix/errors_freebsd_amd64.go | 6 + .../x/sys/unix/errors_freebsd_arm64.go | 17 + vendor/golang.org/x/sys/unix/fcntl.go | 13 +- vendor/golang.org/x/sys/unix/fcntl_darwin.go | 6 + .../x/sys/unix/fcntl_linux_32bit.go | 5 +- vendor/golang.org/x/sys/unix/fdset.go | 30 + vendor/golang.org/x/sys/unix/fstatfs_zos.go | 164 + vendor/golang.org/x/sys/unix/gccgo.go | 6 +- vendor/golang.org/x/sys/unix/gccgo_c.c | 6 + .../x/sys/unix/gccgo_linux_amd64.go | 1 + vendor/golang.org/x/sys/unix/ioctl.go | 51 +- vendor/golang.org/x/sys/unix/ioctl_zos.go | 74 + vendor/golang.org/x/sys/unix/mkall.sh | 61 +- vendor/golang.org/x/sys/unix/mkerrors.sh | 139 +- .../golang.org/x/sys/unix/mksysctl_openbsd.pl | 265 - vendor/golang.org/x/sys/unix/pagesize_unix.go | 1 + .../{openbsd_pledge.go => pledge_openbsd.go} | 3 - vendor/golang.org/x/sys/unix/ptrace_darwin.go | 12 + vendor/golang.org/x/sys/unix/ptrace_ios.go | 12 + vendor/golang.org/x/sys/unix/race.go | 1 + vendor/golang.org/x/sys/unix/race0.go | 3 +- .../x/sys/unix/readdirent_getdents.go | 13 + .../x/sys/unix/readdirent_getdirentries.go | 20 + .../x/sys/unix/sockcmsg_dragonfly.go | 16 + .../golang.org/x/sys/unix/sockcmsg_linux.go | 2 +- vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 36 +- .../x/sys/unix/sockcmsg_unix_other.go | 47 + vendor/golang.org/x/sys/unix/str.go | 1 + vendor/golang.org/x/sys/unix/syscall.go | 47 +- vendor/golang.org/x/sys/unix/syscall_aix.go | 114 +- .../golang.org/x/sys/unix/syscall_aix_ppc.go | 24 +- .../x/sys/unix/syscall_aix_ppc64.go | 55 +- vendor/golang.org/x/sys/unix/syscall_bsd.go | 80 +- .../x/sys/unix/syscall_darwin.1_12.go | 32 + .../x/sys/unix/syscall_darwin.1_13.go | 108 + .../golang.org/x/sys/unix/syscall_darwin.go | 219 +- .../x/sys/unix/syscall_darwin_386.go | 26 +- .../x/sys/unix/syscall_darwin_amd64.go | 26 +- .../x/sys/unix/syscall_darwin_arm.go | 31 +- .../x/sys/unix/syscall_darwin_arm64.go | 29 +- .../x/sys/unix/syscall_darwin_libSystem.go | 3 + .../x/sys/unix/syscall_dragonfly.go | 114 +- .../x/sys/unix/syscall_dragonfly_amd64.go | 5 + .../golang.org/x/sys/unix/syscall_freebsd.go | 198 +- .../x/sys/unix/syscall_freebsd_386.go | 15 + .../x/sys/unix/syscall_freebsd_amd64.go | 15 + .../x/sys/unix/syscall_freebsd_arm.go | 11 + .../x/sys/unix/syscall_freebsd_arm64.go | 11 + .../golang.org/x/sys/unix/syscall_illumos.go | 129 + vendor/golang.org/x/sys/unix/syscall_linux.go | 885 +- .../x/sys/unix/syscall_linux_386.go | 20 +- .../x/sys/unix/syscall_linux_amd64.go | 13 +- .../x/sys/unix/syscall_linux_amd64_gc.go | 4 +- .../x/sys/unix/syscall_linux_arm.go | 39 +- .../x/sys/unix/syscall_linux_arm64.go | 39 +- .../golang.org/x/sys/unix/syscall_linux_gc.go | 3 +- .../x/sys/unix/syscall_linux_gc_386.go | 3 +- .../x/sys/unix/syscall_linux_gc_arm.go | 14 + .../x/sys/unix/syscall_linux_gccgo_386.go | 1 + .../x/sys/unix/syscall_linux_gccgo_arm.go | 1 + .../x/sys/unix/syscall_linux_mips64x.go | 17 +- .../x/sys/unix/syscall_linux_mipsx.go | 19 +- .../x/sys/unix/syscall_linux_ppc64x.go | 15 +- .../x/sys/unix/syscall_linux_riscv64.go | 19 +- .../x/sys/unix/syscall_linux_s390x.go | 15 +- .../x/sys/unix/syscall_linux_sparc64.go | 15 +- .../golang.org/x/sys/unix/syscall_netbsd.go | 126 +- .../x/sys/unix/syscall_netbsd_386.go | 5 + .../x/sys/unix/syscall_netbsd_amd64.go | 5 + .../x/sys/unix/syscall_netbsd_arm.go | 5 + .../x/sys/unix/syscall_netbsd_arm64.go | 5 + .../golang.org/x/sys/unix/syscall_openbsd.go | 114 +- .../x/sys/unix/syscall_openbsd_386.go | 5 + .../x/sys/unix/syscall_openbsd_amd64.go | 5 + .../x/sys/unix/syscall_openbsd_arm.go | 5 + .../x/sys/unix/syscall_openbsd_arm64.go | 42 + .../x/sys/unix/syscall_openbsd_mips64.go | 35 + .../golang.org/x/sys/unix/syscall_solaris.go | 77 +- .../x/sys/unix/syscall_solaris_amd64.go | 5 + vendor/golang.org/x/sys/unix/syscall_unix.go | 20 +- .../golang.org/x/sys/unix/syscall_unix_gc.go | 5 +- .../x/sys/unix/syscall_unix_gc_ppc64x.go | 3 +- .../x/sys/unix/syscall_zos_s390x.go | 1781 ++++ vendor/golang.org/x/sys/unix/timestruct.go | 29 +- .../{openbsd_unveil.go => unveil_openbsd.go} | 2 - vendor/golang.org/x/sys/unix/xattr_bsd.go | 1 + .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 15 +- .../x/sys/unix/zerrors_aix_ppc64.go | 17 +- .../x/sys/unix/zerrors_darwin_386.go | 8 +- .../x/sys/unix/zerrors_darwin_amd64.go | 95 +- .../x/sys/unix/zerrors_darwin_arm.go | 8 +- .../x/sys/unix/zerrors_darwin_arm64.go | 95 +- .../x/sys/unix/zerrors_dragonfly_amd64.go | 140 +- .../x/sys/unix/zerrors_freebsd_386.go | 176 +- .../x/sys/unix/zerrors_freebsd_amd64.go | 174 +- .../x/sys/unix/zerrors_freebsd_arm.go | 41 +- .../x/sys/unix/zerrors_freebsd_arm64.go | 175 +- vendor/golang.org/x/sys/unix/zerrors_linux.go | 2808 +++++ .../x/sys/unix/zerrors_linux_386.go | 2998 +----- .../x/sys/unix/zerrors_linux_amd64.go | 2998 +----- .../x/sys/unix/zerrors_linux_arm.go | 3010 +----- .../x/sys/unix/zerrors_linux_arm64.go | 2986 +----- .../x/sys/unix/zerrors_linux_mips.go | 3002 +----- .../x/sys/unix/zerrors_linux_mips64.go | 3002 +----- .../x/sys/unix/zerrors_linux_mips64le.go | 3002 +----- .../x/sys/unix/zerrors_linux_mipsle.go | 3002 +----- .../x/sys/unix/zerrors_linux_ppc64.go | 3121 +----- .../x/sys/unix/zerrors_linux_ppc64le.go | 3121 +----- .../x/sys/unix/zerrors_linux_riscv64.go | 2972 +----- .../x/sys/unix/zerrors_linux_s390x.go | 3118 +----- .../x/sys/unix/zerrors_linux_sparc64.go | 3099 +----- .../x/sys/unix/zerrors_netbsd_386.go | 10 +- .../x/sys/unix/zerrors_netbsd_amd64.go | 10 +- .../x/sys/unix/zerrors_netbsd_arm.go | 10 +- .../x/sys/unix/zerrors_netbsd_arm64.go | 10 +- .../x/sys/unix/zerrors_openbsd_386.go | 25 +- .../x/sys/unix/zerrors_openbsd_amd64.go | 14 +- .../x/sys/unix/zerrors_openbsd_arm.go | 19 +- .../x/sys/unix/zerrors_openbsd_arm64.go | 1798 ++++ .../x/sys/unix/zerrors_openbsd_mips64.go | 1863 ++++ .../x/sys/unix/zerrors_solaris_amd64.go | 29 +- .../x/sys/unix/zerrors_zos_s390x.go | 832 ++ ...acearm_linux.go => zptrace_armnn_linux.go} | 3 +- .../x/sys/unix/zptrace_linux_arm64.go | 17 + ...emips_linux.go => zptrace_mipsnn_linux.go} | 3 +- ...sle_linux.go => zptrace_mipsnnle_linux.go} | 3 +- ...trace386_linux.go => zptrace_x86_linux.go} | 3 +- .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 53 +- .../x/sys/unix/zsyscall_aix_ppc64.go | 41 +- .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 48 +- .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 39 +- .../x/sys/unix/zsyscall_darwin_386.1_13.go | 40 + .../x/sys/unix/zsyscall_darwin_386.1_13.s | 12 + .../x/sys/unix/zsyscall_darwin_386.go | 416 +- .../x/sys/unix/zsyscall_darwin_386.s | 30 +- .../x/sys/unix/zsyscall_darwin_amd64.1_11.go | 1810 ---- .../x/sys/unix/zsyscall_darwin_amd64.1_13.go | 40 + .../x/sys/unix/zsyscall_darwin_amd64.1_13.s | 12 + .../x/sys/unix/zsyscall_darwin_amd64.go | 403 +- .../x/sys/unix/zsyscall_darwin_amd64.s | 28 +- .../x/sys/unix/zsyscall_darwin_arm.1_13.go | 40 + .../x/sys/unix/zsyscall_darwin_arm.1_13.s | 12 + .../x/sys/unix/zsyscall_darwin_arm.go | 380 +- .../x/sys/unix/zsyscall_darwin_arm.s | 26 +- .../x/sys/unix/zsyscall_darwin_arm64.1_13.go | 40 + .../x/sys/unix/zsyscall_darwin_arm64.1_13.s | 12 + .../x/sys/unix/zsyscall_darwin_arm64.go | 394 +- .../x/sys/unix/zsyscall_darwin_arm64.s | 28 +- .../x/sys/unix/zsyscall_dragonfly_amd64.go | 78 +- .../x/sys/unix/zsyscall_freebsd_386.go | 63 +- .../x/sys/unix/zsyscall_freebsd_amd64.go | 61 +- .../x/sys/unix/zsyscall_freebsd_arm.go | 61 +- .../x/sys/unix/zsyscall_freebsd_arm64.go | 63 +- .../x/sys/unix/zsyscall_illumos_amd64.go | 128 + ...l_darwin_386.1_11.go => zsyscall_linux.go} | 1408 +-- .../x/sys/unix/zsyscall_linux_386.go | 1665 +-- .../x/sys/unix/zsyscall_linux_amd64.go | 1665 +-- .../x/sys/unix/zsyscall_linux_arm.go | 1680 +-- .../x/sys/unix/zsyscall_linux_arm64.go | 1667 +-- .../x/sys/unix/zsyscall_linux_mips.go | 1665 +-- .../x/sys/unix/zsyscall_linux_mips64.go | 1665 +-- .../x/sys/unix/zsyscall_linux_mips64le.go | 1665 +-- .../x/sys/unix/zsyscall_linux_mipsle.go | 1665 +-- .../x/sys/unix/zsyscall_linux_ppc64.go | 1665 +-- .../x/sys/unix/zsyscall_linux_ppc64le.go | 1665 +-- .../x/sys/unix/zsyscall_linux_riscv64.go | 1663 +-- .../x/sys/unix/zsyscall_linux_s390x.go | 1665 +-- .../x/sys/unix/zsyscall_linux_sparc64.go | 1665 +-- .../x/sys/unix/zsyscall_netbsd_386.go | 96 +- .../x/sys/unix/zsyscall_netbsd_amd64.go | 96 +- .../x/sys/unix/zsyscall_netbsd_arm.go | 96 +- .../x/sys/unix/zsyscall_netbsd_arm64.go | 96 +- .../x/sys/unix/zsyscall_openbsd_386.go | 65 +- .../x/sys/unix/zsyscall_openbsd_amd64.go | 65 +- .../x/sys/unix/zsyscall_openbsd_arm.go | 65 +- ...rm64.1_11.go => zsyscall_openbsd_arm64.go} | 546 +- ...arm.1_11.go => zsyscall_openbsd_mips64.go} | 548 +- .../x/sys/unix/zsyscall_solaris_amd64.go | 38 +- .../x/sys/unix/zsyscall_zos_s390x.go | 1217 +++ .../x/sys/unix/zsysctl_openbsd_386.go | 6 +- .../x/sys/unix/zsysctl_openbsd_amd64.go | 4 +- .../x/sys/unix/zsysctl_openbsd_arm.go | 6 +- .../x/sys/unix/zsysctl_openbsd_arm64.go | 276 + .../x/sys/unix/zsysctl_openbsd_mips64.go | 280 + .../x/sys/unix/zsysnum_darwin_386.go | 2 + .../x/sys/unix/zsysnum_darwin_amd64.go | 2 + .../x/sys/unix/zsysnum_darwin_arm.go | 2 + .../x/sys/unix/zsysnum_darwin_arm64.go | 2 + .../x/sys/unix/zsysnum_dragonfly_amd64.go | 256 +- .../x/sys/unix/zsysnum_freebsd_386.go | 24 +- .../x/sys/unix/zsysnum_freebsd_amd64.go | 24 +- .../x/sys/unix/zsysnum_freebsd_arm.go | 24 +- .../x/sys/unix/zsysnum_freebsd_arm64.go | 446 +- .../x/sys/unix/zsysnum_linux_386.go | 815 +- .../x/sys/unix/zsysnum_linux_amd64.go | 19 + .../x/sys/unix/zsysnum_linux_arm.go | 751 +- .../x/sys/unix/zsysnum_linux_arm64.go | 19 + .../x/sys/unix/zsysnum_linux_mips.go | 785 +- .../x/sys/unix/zsysnum_linux_mips64.go | 19 + .../x/sys/unix/zsysnum_linux_mips64le.go | 19 + .../x/sys/unix/zsysnum_linux_mipsle.go | 785 +- .../x/sys/unix/zsysnum_linux_ppc64.go | 30 + .../x/sys/unix/zsysnum_linux_ppc64le.go | 30 + .../x/sys/unix/zsysnum_linux_riscv64.go | 19 + .../x/sys/unix/zsysnum_linux_s390x.go | 33 + .../x/sys/unix/zsysnum_linux_sparc64.go | 33 + .../x/sys/unix/zsysnum_netbsd_386.go | 1 + .../x/sys/unix/zsysnum_netbsd_amd64.go | 1 + .../x/sys/unix/zsysnum_netbsd_arm.go | 1 + .../x/sys/unix/zsysnum_netbsd_arm64.go | 1 + .../x/sys/unix/zsysnum_openbsd_386.go | 1 + .../x/sys/unix/zsysnum_openbsd_amd64.go | 1 + .../x/sys/unix/zsysnum_openbsd_arm.go | 1 + .../x/sys/unix/zsysnum_openbsd_arm64.go | 218 + .../x/sys/unix/zsysnum_openbsd_mips64.go | 221 + .../x/sys/unix/zsysnum_zos_s390x.go | 2670 +++++ .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 47 +- .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 52 +- .../x/sys/unix/ztypes_darwin_386.go | 70 +- .../x/sys/unix/ztypes_darwin_amd64.go | 89 +- .../x/sys/unix/ztypes_darwin_arm.go | 77 +- .../x/sys/unix/ztypes_darwin_arm64.go | 89 +- .../x/sys/unix/ztypes_dragonfly_amd64.go | 92 +- .../x/sys/unix/ztypes_freebsd_386.go | 227 +- .../x/sys/unix/ztypes_freebsd_amd64.go | 227 +- .../x/sys/unix/ztypes_freebsd_arm.go | 192 +- .../x/sys/unix/ztypes_freebsd_arm64.go | 207 +- .../x/sys/unix/ztypes_illumos_amd64.go | 40 + vendor/golang.org/x/sys/unix/ztypes_linux.go | 3737 +++++++ .../golang.org/x/sys/unix/ztypes_linux_386.go | 1871 +--- .../x/sys/unix/ztypes_linux_amd64.go | 1878 +--- .../golang.org/x/sys/unix/ztypes_linux_arm.go | 1877 +--- .../x/sys/unix/ztypes_linux_arm64.go | 1878 +--- .../x/sys/unix/ztypes_linux_mips.go | 1877 +--- .../x/sys/unix/ztypes_linux_mips64.go | 1879 +--- .../x/sys/unix/ztypes_linux_mips64le.go | 1879 +--- .../x/sys/unix/ztypes_linux_mipsle.go | 1877 +--- .../x/sys/unix/ztypes_linux_ppc64.go | 1878 +--- .../x/sys/unix/ztypes_linux_ppc64le.go | 1878 +--- .../x/sys/unix/ztypes_linux_riscv64.go | 1879 +--- .../x/sys/unix/ztypes_linux_s390x.go | 1878 +--- .../x/sys/unix/ztypes_linux_sparc64.go | 1878 +--- .../x/sys/unix/ztypes_netbsd_386.go | 69 +- .../x/sys/unix/ztypes_netbsd_amd64.go | 76 +- .../x/sys/unix/ztypes_netbsd_arm.go | 75 +- .../x/sys/unix/ztypes_netbsd_arm64.go | 76 +- .../x/sys/unix/ztypes_openbsd_386.go | 3 + .../x/sys/unix/ztypes_openbsd_amd64.go | 3 + .../x/sys/unix/ztypes_openbsd_arm.go | 3 + .../x/sys/unix/ztypes_openbsd_arm64.go | 567 + .../x/sys/unix/ztypes_openbsd_mips64.go | 567 + .../x/sys/unix/ztypes_solaris_amd64.go | 40 +- .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 402 + .../x/sys/windows/asm_windows_386.s | 13 - .../x/sys/windows/asm_windows_amd64.s | 13 - .../x/sys/windows/asm_windows_arm.s | 11 - .../golang.org/x/sys/windows/dll_windows.go | 52 +- .../x/sys/windows/{mkerrors.go => empty.s} | 5 +- .../golang.org/x/sys/windows/env_windows.go | 27 +- .../golang.org/x/sys/windows/exec_windows.go | 35 + .../x/sys/windows/memory_windows.go | 25 +- vendor/golang.org/x/sys/windows/mkerrors.bash | 12 +- .../x/sys/windows/mkknownfolderids.bash | 27 + vendor/golang.org/x/sys/windows/mksyscall.go | 4 +- .../x/sys/windows/security_windows.go | 872 +- vendor/golang.org/x/sys/windows/service.go | 82 +- .../x/sys/windows/setupapierrors_windows.go | 100 + vendor/golang.org/x/sys/windows/syscall.go | 46 +- .../x/sys/windows/syscall_windows.go | 538 +- .../golang.org/x/sys/windows/types_windows.go | 1417 ++- .../x/sys/windows/types_windows_386.go | 13 + .../x/sys/windows/types_windows_amd64.go | 12 + .../x/sys/windows/types_windows_arm.go | 13 + .../x/sys/windows/types_windows_arm64.go | 34 + .../x/sys/windows/zerrors_windows.go | 2621 ++++- .../x/sys/windows/zknownfolderids_windows.go | 149 + .../x/sys/windows/zsyscall_windows.go | 4537 ++++---- .../golang.org/x/text/transform/transform.go | 12 +- .../x/text/unicode/norm/composition.go | 8 +- .../x/text/unicode/norm/forminfo.go | 19 + vendor/golang.org/x/text/unicode/norm/iter.go | 3 +- .../x/text/unicode/norm/normalize.go | 4 +- .../x/text/unicode/norm/readwriter.go | 4 +- .../x/text/unicode/norm/tables10.0.0.go | 1892 ++-- .../x/text/unicode/norm/tables11.0.0.go | 7693 ++++++++++++++ .../x/text/unicode/norm/tables12.0.0.go | 7710 ++++++++++++++ .../x/text/unicode/norm/tables9.0.0.go | 1890 ++-- .../x/text/unicode/norm/transform.go | 10 +- vendor/modules.txt | 80 +- 596 files changed, 158543 insertions(+), 88929 deletions(-) create mode 100644 vendor/github.com/skycoin/skycoin/cmd/monitor-peers/connection/connection.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/README.md create mode 100644 vendor/github.com/skycoin/skycoin/src/api/address.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/blockchain.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/client.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/csrf.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/explorer.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/gateway.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/health.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/http.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/middleware.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/network.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/outputs.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/spend.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/storage.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/transaction.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/uxout.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/version.go create mode 100644 vendor/github.com/skycoin/skycoin/src/api/wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/address.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE_old create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/base58/README.md create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/base58/base58.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/base58/base58_old.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip32/LICENSE create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip32/README.md create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip32/bip32.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip32/path.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip32/utils.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/LICENSE create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/README.md create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/bip39.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/chinese_simplified.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/chinese_traditional.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/english.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/french.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/italian.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/japanese.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/korean.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/spanish.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bip44/bip44.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/bitcoin.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_amd64.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_amd64.s create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_generic.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_noasm.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/internal/chacha20/chacha_generic.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/crypto.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/crypto/crypto.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/encoder/README.md create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/encoder/encoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/encrypt/scrypt_chacha20poly1305.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/encrypt/sha256xor.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/hash.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/pbkdf2/pbkdf2.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/poly1305/poly1305.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_amd64.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_amd64.s create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_arm.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_arm.s create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_ref.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripemd160block.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripmd_160.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/scrypt/scrypt.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/README.md create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256_rand.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/COPYING create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/README.md create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/ec.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/field.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/num.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/secp256k1.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/sig.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xy.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xyz.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_consts.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_init.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cipher/testsuite/testsuite.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/add_private_key.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/address_gen.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/addresscount.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/blocks.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/broadcast_rawtx.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/check_balance.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/checkdb.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/cli.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/create_rawtx.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/decrypt_wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/distribute_genesis.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/encrypt_wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/generate_addrs.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/generate_wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/last_blocks.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/list_addrs.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/list_wallets.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/outputs.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/richlist.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/scan_addrs.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/send.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/show_seed.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/status.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/transaction.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/verify_address.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/version.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/wallet_history.go create mode 100644 vendor/github.com/skycoin/skycoin/src/cli/wallet_key_export.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/block.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/block_body_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/block_header_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/outputs.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/transaction_inputs_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/transaction_outputs_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/transaction_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/transactions.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/ux_body_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/coin/ux_head_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/announce_blocks_message_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/announce_txns_message_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/announced_txns.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/connections.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/daemon.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/disconnect_message_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/errors.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/get_blocks_message_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/get_txns_message_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/give_blocks_message_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/give_peers_message_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/give_txns_message_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/gnet/README.md create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/gnet/dispatcher.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/gnet/message.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/gnet/pool.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/introduction_message_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/ip_addr_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/messages.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/pex/README.md create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/pex/peerlist.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/pex/pex.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/pool.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/signed_block_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/strand/strand.go create mode 100644 vendor/github.com/skycoin/skycoin/src/daemon/transaction_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/fiber/config.go create mode 100644 vendor/github.com/skycoin/skycoin/src/kvstorage/empty.go create mode 100644 vendor/github.com/skycoin/skycoin/src/kvstorage/error.go create mode 100644 vendor/github.com/skycoin/skycoin/src/kvstorage/kvstorage.go create mode 100644 vendor/github.com/skycoin/skycoin/src/kvstorage/manager.go create mode 100644 vendor/github.com/skycoin/skycoin/src/kvstorage/manager_config.go create mode 100644 vendor/github.com/skycoin/skycoin/src/kvstorage/map.go create mode 100644 vendor/github.com/skycoin/skycoin/src/params/distribution.go create mode 100644 vendor/github.com/skycoin/skycoin/src/params/droplet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/params/init.go create mode 100644 vendor/github.com/skycoin/skycoin/src/params/params.go create mode 100644 vendor/github.com/skycoin/skycoin/src/params/verify_txn.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/block.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/blockchain.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/fiber.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/network.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/output.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/page.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/richlist.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/transaction.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/verbose.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/version.go create mode 100644 vendor/github.com/skycoin/skycoin/src/readable/wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/skycoin/config.go create mode 100644 vendor/github.com/skycoin/skycoin/src/skycoin/db_check.go create mode 100644 vendor/github.com/skycoin/skycoin/src/skycoin/skycoin.go create mode 100644 vendor/github.com/skycoin/skycoin/src/testutil/assert/assertions.go create mode 100644 vendor/github.com/skycoin/skycoin/src/testutil/require/require.go create mode 100644 vendor/github.com/skycoin/skycoin/src/testutil/testutil.go create mode 100644 vendor/github.com/skycoin/skycoin/src/transaction/choose.go create mode 100644 vendor/github.com/skycoin/skycoin/src/transaction/create.go create mode 100644 vendor/github.com/skycoin/skycoin/src/transaction/distribution.go create mode 100644 vendor/github.com/skycoin/skycoin/src/transaction/hours.go create mode 100644 vendor/github.com/skycoin/skycoin/src/transaction/params.go create mode 100644 vendor/github.com/skycoin/skycoin/src/transaction/verify.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/apputil/apputil.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/certutil/LICENSE create mode 100644 vendor/github.com/skycoin/skycoin/src/util/certutil/cert.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/droplet/droplet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/elapse/elapser.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/fee/fee.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/file/file.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/gziphandler/LICENSE create mode 100644 vendor/github.com/skycoin/skycoin/src/util/gziphandler/gziphandler.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/http/error.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/http/json.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/http/log.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/iputil/iputil.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/logging/formatter.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/logging/hooks.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/logging/logger.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/logging/logging.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/mathutil/mathutil.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/timeutil/timeutil.go create mode 100644 vendor/github.com/skycoin/skycoin/src/util/useragent/useragent.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockchain.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/block_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/block_tree.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/blockchain.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/blocksigs.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/chain_meta.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/hash_pairs_wrapper_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/hashes_wrapper_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/sig_wrapper_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/unspent.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/ux_out_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/blockdb/verify.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/config.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/db.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/dbutil/dbutil.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/address_txn.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/address_uxout.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/hashes_wrapper_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/history_meta.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/historydb.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/output.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/transaction.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/transaction_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/ux_out_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/historydb/verify.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/interfaces.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/meta.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/objects.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/richlist.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/transaction_model.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/unconfirmed.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/unconfirmed_transaction_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/ux_array_skyencoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/visor.go create mode 100644 vendor/github.com/skycoin/skycoin/src/visor/wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/balance.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/account.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/decoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/collection/decoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/collection/wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/creators.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/decoders.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/deterministic/decoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/deterministic/wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/entry.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/loaders.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/meta.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/options.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/secrets.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/service.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/transaction.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/wallet.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/wallets.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/xpubwallet/decoder.go create mode 100644 vendor/github.com/skycoin/skycoin/src/wallet/xpubwallet/wallet.go create mode 100644 vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go rename vendor/golang.org/x/sys/unix/{asm_darwin_386.s => asm_bsd_386.s} (68%) rename vendor/golang.org/x/sys/unix/{asm_openbsd_amd64.s => asm_bsd_amd64.s} (71%) rename vendor/golang.org/x/sys/unix/{asm_netbsd_arm.s => asm_bsd_arm.s} (73%) rename vendor/golang.org/x/sys/unix/{asm_netbsd_amd64.s => asm_bsd_arm64.s} (73%) delete mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_arm64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_riscv64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_arm.s rename vendor/golang.org/x/sys/unix/{asm_darwin_amd64.s => asm_openbsd_mips64.s} (83%) create mode 100644 vendor/golang.org/x/sys/unix/asm_zos_s390x.s create mode 100644 vendor/golang.org/x/sys/unix/dev_zos.go create mode 100644 vendor/golang.org/x/sys/unix/epoll_zos.go create mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/fdset.go create mode 100644 vendor/golang.org/x/sys/unix/fstatfs_zos.go create mode 100644 vendor/golang.org/x/sys/unix/ioctl_zos.go delete mode 100644 vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl rename vendor/golang.org/x/sys/unix/{openbsd_pledge.go => pledge_openbsd.go} (98%) create mode 100644 vendor/golang.org/x/sys/unix/ptrace_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/ptrace_ios.go create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdents.go create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdirentries.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_illumos.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_zos_s390x.go rename vendor/golang.org/x/sys/unix/{openbsd_unveil.go => unveil_openbsd.go} (98%) create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go rename vendor/golang.org/x/sys/unix/{zptracearm_linux.go => zptrace_armnn_linux.go} (90%) create mode 100644 vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go rename vendor/golang.org/x/sys/unix/{zptracemips_linux.go => zptrace_mipsnn_linux.go} (91%) rename vendor/golang.org/x/sys/unix/{zptracemipsle_linux.go => zptrace_mipsnnle_linux.go} (91%) rename vendor/golang.org/x/sys/unix/{zptrace386_linux.go => zptrace_x86_linux.go} (93%) create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go rename vendor/golang.org/x/sys/unix/{zsyscall_darwin_386.1_11.go => zsyscall_linux.go} (54%) rename vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm64.1_11.go => zsyscall_openbsd_arm64.go} (85%) rename vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm.1_11.go => zsyscall_openbsd_mips64.go} (84%) create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go delete mode 100644 vendor/golang.org/x/sys/windows/asm_windows_386.s delete mode 100644 vendor/golang.org/x/sys/windows/asm_windows_amd64.s delete mode 100644 vendor/golang.org/x/sys/windows/asm_windows_arm.s rename vendor/golang.org/x/sys/windows/{mkerrors.go => empty.s} (51%) create mode 100644 vendor/golang.org/x/sys/windows/mkknownfolderids.bash create mode 100644 vendor/golang.org/x/sys/windows/setupapierrors_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_arm64.go create mode 100644 vendor/golang.org/x/sys/windows/zknownfolderids_windows.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables11.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables12.0.0.go diff --git a/cmd/newcoin/newcoin.go b/cmd/newcoin/newcoin.go index 72b78de8e..8c19716d6 100644 --- a/cmd/newcoin/newcoin.go +++ b/cmd/newcoin/newcoin.go @@ -13,9 +13,9 @@ import ( "github.com/urfave/cli" - "github.com/skycoin/skycoin/src/fiber" - "github.com/skycoin/skycoin/src/util/logging" - "github.com/skycoin/skycoin/src/util/useragent" + "github.com/ness-network/ness/src/fiber" + "github.com/ness-network/ness/src/util/logging" + "github.com/ness-network/ness/src/util/useragent" ) const ( diff --git a/go.mod b/go.mod index 91787d11c..46c0e33f7 100644 --- a/go.mod +++ b/go.mod @@ -1,32 +1,26 @@ -module github.com/skycoin/skycoin +module github.com/ness-network/ness -go 1.14 +go 1.15 require ( - github.com/BurntSushi/toml v0.3.1 // indirect github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 github.com/blang/semver v3.5.1+incompatible github.com/boltdb/bolt v1.3.1 github.com/cenkalti/backoff v1.1.0 github.com/google/go-cmp v0.2.0 - github.com/inconshreveable/mousetrap v1.0.0 // indirect - github.com/konsorten/go-windows-terminal-sequences v1.0.1 // indirect - github.com/mattn/go-colorable v0.0.9 // indirect - github.com/mattn/go-isatty v0.0.4 // indirect github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b - github.com/mitchellh/mapstructure v1.1.2 // indirect github.com/rs/cors v1.6.0 - github.com/sergi/go-diff v1.0.0 // indirect - github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 + github.com/shopspring/decimal v1.1.0 github.com/sirupsen/logrus v1.1.1 github.com/skycoin/encodertest v0.0.0-20190217072920-14c2e31898b9 + github.com/skycoin/skycoin v0.25.2-0.20211109103940-9ca7016bd686 github.com/spf13/cobra v0.0.3 github.com/spf13/pflag v1.0.3 github.com/spf13/viper v1.2.1 - github.com/stretchr/objx v0.1.1 // indirect github.com/stretchr/testify v1.2.2 github.com/toqueteos/webbrowser v1.1.0 github.com/urfave/cli v1.20.0 - golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 - golang.org/x/net v0.0.0-20200226121028-0de0cce0169b // indirect + golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 + golang.org/x/net v0.0.0-20201021035429-f5854403a974 // indirect + golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750 // indirect ) diff --git a/go.sum b/go.sum index 253af1dde..beff17852 100644 --- a/go.sum +++ b/go.sum @@ -40,12 +40,15 @@ github.com/rs/cors v1.6.0 h1:G9tHG9lebljV9mfp9SNPDL36nCDxmo3zTlAf1YgvzmI= github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 h1:pntxY8Ary0t43dCZ5dqY4YTJCObLY1kIXl0uzMv+7DE= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= +github.com/shopspring/decimal v1.1.0 h1:Jh2P6mQOEIEa/8YqU5ITvmWCGGrIloCHvYl+FfQqdd4= +github.com/shopspring/decimal v1.1.0/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/sirupsen/logrus v1.1.1 h1:VzGj7lhU7KEB9e9gMpAV/v5XT2NVSvLJhJLCWbnkgXg= github.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A= github.com/skycoin/encodertest v0.0.0-20190217072920-14c2e31898b9 h1:DElGw1Fhj4amuW1KM5q8Xowosb3RiOQce0lDJw0Qv0Y= github.com/skycoin/encodertest v0.0.0-20190217072920-14c2e31898b9/go.mod h1:OQz8NXVJUWEw7PWYASZ/1BIw5GXgVMTGvrCGDlZa9+k= +github.com/skycoin/skycoin v0.25.2-0.20211109103940-9ca7016bd686 h1:cj4RTCOCaVaVITMULbx7kPzteBP1RESNHs+nXrWr8MQ= +github.com/skycoin/skycoin v0.25.2-0.20211109103940-9ca7016bd686/go.mod h1:E9RvlMn8iQGX/upaIQvkHHcw/180JBqAQbRIzkLrkSQ= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.2.0 h1:HHl1DSRbEQN2i8tJmtS6ViPyHx35+p51amrdsiTCrkg= @@ -68,19 +71,26 @@ github.com/toqueteos/webbrowser v1.1.0/go.mod h1:Hqqqmzj8AHn+VlZyVjaRWY20i25hoOZ github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180906133057-8cf3aee42992/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181023152157-44b849a8bc13/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750 h1:ZBu6861dZq7xBnG1bn5SRU0vA8nx42at4+kP07FMTog= +golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= diff --git a/src/gui/static/dist/assets/logo-white.png b/src/gui/static/dist/assets/logo-white.png index cd615cf8af1acdc0a95483a571028bb219cb6e75..2c4ffd07bf5c52a1efcc4b6093803d38e78666e1 100644 GIT binary patch literal 97013 zcmeFXWmJ^!7dASyk|HSxD4;Zml;ohabW0=MNH;TzN=vCI-HmifN_Tg6$It@|Gv^t8 z|97qP>HT;<9lpStx!1Grz4x{Eb?yBSs-_}GginJH0)dDW_* z)#v0cMfXW7Iz!|cneA3cY+@44UKIcM^Rj#N$^G97>6X=%6Xfs1UDaRUlHTHm{(QJO z5gGnE@4dtKqadt!uci7Ury;*2H;n(A+5hjqg9c>h9zY_?qt-td$-NJFTn_^UdY zfSZ^e**C=~xQo9_+6}mH5lH4J%5~#NB<)<$|0U{j;K_)F(M8I&CRL&4TFKGbpuaxR zeaKRHi40T!7e9?Pg5THcUv}>Shw}W7&56p^w-J&PvOdkku5TcX8O`FOj@Zbh^~>Zf2JR#+vHfcwQ@xcC*(r z1$7!Zi>T7rLnt1Rz)WZZwY&n9ret~uo?NRR#& zawK`a@~&&a5HfT&TJ!cTBK!jHm+|!?Z_*yvJ5L7!907$OOT9||8R>Y@w=lFW@w>+5 zu+g$Ix*9zFB^f4p7!NTMRf#`LtC}rqne1J~vBVg$Oe>u~TA_S$|7j)hVO~(VrGUOx z7-QJHbK8FSHy%&_l~;6D!8V?;OiQRyRft9)jfN(Ms<*)UU$%aqqpyi$Mr&vjrV6zl$0ntfnDmPoDt2-Qj*@Au>By^RZl+}Ng^33SZd_G z8PJl7A@s*fAZ zR~Fijx^ICefhtXeqqym{%B_|-CPY=d_9ajyBa{yomA&PF&mWNk*_HHrxxAQq!ERXX zWm}GfGaz;$j=31IL|r@-+&AZ=bA^GU9B6A=lZ{7d?bBC0Dh1OgBe{Y|lLO$|UdN*T zSzTVZ^>;BE=kt|4fR_{D5$hg_B|c2txk!Q$uX$aq#Yw<=)2*YV0g_(wEHOyJG3W?_7_Jb zPWS;xL6l<*?68gcb6E)R<+3cz1uSWQReOL)JCdbj`&9ME4Tg&Gee;+5>DCqK>%v8@ z*LAJPIRibcEEi%3zTM;+xBmKE#`f-PcfY7%Gy<}pbyzt2nUg|a>Vlef)6T7?Ad*h#y+fa16NDY&8K52ir{)gMX?%~a zPA#S0P9FLd`*!`N?79_wy~;~$ZUi93o{7Ogf*D9fntA=2Uz{HW_foys%m+lQ$*t)7 zRbCQvhN+g`kC(SaUO*-!yG9$AmjBTK0z;R+nW(x(A5d&gMwL?>jDYLRe3d3jVWE{tE%xGB+>%5 zbw$by{*8*C#-7XZh#c|&#z3dNI`4=`Tl{yXY zo4R_SMn9#NmmSgXfD(KF0zLV$uDld&qF;fM^oWyy)bZZ0BDZ7zQ_PDlO-K9bHn;L{ zT>&92fs}@fArt+zK&YC5OQZm?pN)zq;7iNEgtfb+?7vlAYn@5Dy5-vD`3T^u_AUbh zgS{MmXi(W0g&O!}Mfx<^zPZ{A+Hyo>D<9%bBmSWxeE!(J$uLm8YZR4V=UFDdaq3;F zxOt4Bqn~{M;9=Y}uVcPTHwul1T3%dLfA$KS4qDpSIaR}p!saZcReeGMy~@>d<)EX~ z6bc~Mu!%Ez5s`rT*7#g)CsD-j$mT4&H;y_^H}F#z0u!H%%VESBI>h#4+4hWF=={%g zUaHQ(75x_(RH4|yA{mVUa6$G1I=K*c}@|M)e(4lO%1Nzy9Y$W#T~&wMuS zo_A2&nd^Qe^a@Qj?y{Ly4&0n`AC^Cy4_2_1>5z}Y9wNO%gw4`Pihe492nfVObNjUB zit6e#$^O1uX65Drme1JKmK_=D27d z2+xy=06%xjPPk0TV9~ti`lmG{81ZD0@+cx=$~G2JgyypWIW(Mo+omv^*&FmmsR?Y zMecoSk|Fy`!8yZM^B+EBL}XhHiQPm}=1#AFsO+PGm^>xq)c2P5^r+cCt>I$$2!Mx( zRqH&ln^^z3^ZbS59X>=78*=Sre@r&qsQeEfJJZ5b4>x_qwl25Ct0cgH_aaT{;J|8C zpm$fJb%qR(4;DqSt+sg{{h9d}XaDqOfO`)gTWtKWj4-M6lijF}f*jR0%WtW?!&7hI%e{-1BdDAOICuY6I!wB&Jx8wwEwb8`XRt2N;k=95f?6G0= z%zkOnV8K17!v#WmW#EYMJ~Ct~Y_mSMmCV$Ibh?5YoEIF;LG} zviP;COedZ zxkU1ygzFjb$y=3%NuUH;2E6F_=vR_=Z7q?VE!_+j3W z2$dtp_7VO7b^8lzty5yN`uW|m_Qhv%3Yqb*A&-52MCew~R2y%;Onj;@_4brViYH+& zgM&w(%BXVk-OV|Q&d9cE(dzs$Jh1wx^A(Agb@MSKWeX(+ltGILm8;ihrT|UUL$8}| z0ZODa`MsT@mwbDDXUcdC#E~JZRUgsEQeFO>3!nN+1uZu58t=(Tf7C_|Y+=Dwh=1$- zv;$B8f)~SAd$*Imn$yWF#CPh!$4f--`8@SxDsj+{DbHcC4(2ZMD{O#m z3^lEILKqX|ca+9va`>ElU3Gq;&nU@$i&pDG6#NOEcWg7~M1^h^-!2rh-Y8V-Z7m)MUD2p_dvdj`Eej5ojo!8^z9P&3bWdHl1EFTk3f8n+}o^TG#A28!cE&>?U-U`tEty6=Kg;W_alGIea%-z2*;9 zrOz&_aklsSU-F#=@+oowPipzrnsMmCIqkYV^68suv)PL3#olh@H6%C4-=xQQhj2nK zLH$&}r*d0Q3@wU57rd8OKhGKha=$hP=)O~m893oN@kp&|`lRe!L8&@qsSKH1+OhT} zEXiV?%jOd(xf<`DKba&%Uk46;_T3@rcl}lneZ?=cRPaoZ0VUEZ-Nbvjp?28fJ_j;mB`7a4_o$D4- z9j1l|P`nGOTs}>4<))`kd3Dt-2NT3&Pm~%rQ8V+6W)gndhD~If)2B)Ip3LP`=ve>x z-AH?=aH&!OJPr!cgpGfY^YvIV1HeheiRdw22rPuCPs#K+BjsOKH$5FJfByT{qL}&5 zJbP%=)cj&E4X>(EyztP$kBEe+4hPGTI9y~Lo^cAPq@YrBycMpAV#%S&!-w=e_E-RD zKWqv2`K!47IIGn&EYnTcpBVV^_b{G&w~6`6u`RalR@u#?Suggjm;7oN*F)4a?wG6s zT>IKjIZ8oan`N--hS_Zn+7xf3%DCNwO;0I*(T56PAd7dl8BSVu)d%k1lKi0FeIX)g z;i%@uFY^}SV!8Zke2?q53mK7OL3SG(ruQj5}`^UpsU`8FFF)BaDcQZ39MUK8uQb`7a4jxc$oRJ`2?C(^yhMEG_}^O!g%JA z=fs@B=QTYdw2|*){z?BLyo-VrCo3dmUo>R@#&w2DopfaNtGo*pm2@_H*bTQ+t=4=^ z^*8g|no0e=cY8MW#Z{AkJNV;rY!h;9BW!8RBY3|ypxm1L8VO8u`7#%&yaRjU`d42} z`(Fkg2_Fd$X^I%B@r5G=>~oCy;NUgXHX;{Gd)b zekOz{5+wgN9|;m|u8aS>|IVYPl-vLfH2@vWpE_q{$$*B5QJ1-tg{c_U#)VzAv)_DL z(ESb~%RGKSrLMi_{W$Gr>K7|`D2%nCo%52G*dA3( zJmn2=8)VX*1`46P?a#KLuGJZ~elyHfIP1U)Re!>qpGVr#Ls_%q!S42^se%)fWtQg4z2NnKX`&P`^7L&P{7bH+WZGc;ftlIMnT;hoSCO zn)hhH0)Go3QV+pLGzLmyZdt^fcbC_P5eq$yrUof+_&&elJC(2Bw7^oXf5mZkjWoBl z#zgp+cwB#0(=ca)^yWty$7o;2@O zfdIoa7n(FP43rZ>v>XhbEec6(?24wA?4W#z^<*dO8fzbUfze1td9(ggnEk&ro5S7; z2`QW1&PlmdL(a+Y0rQXWAwmC4CO1z%iLu$#G{x}24I*wT+L~7;Q_XJ=ug)H6?`@OW zl{7Frn7CD44AQB;MuNb*xfpP-Rc-8wD$oU9NJ{x@=0VXG-Y<5B?-``=-aHIjx{q*@ zFM#;f8hMel;{w7LSg=@kXK@M^9;a^El0TBcV~*-4ME)5&M99SaJ^K|>Jd<-c9y}%= zQ2Tx!wNs3G+~l+Mt4S^}K(53qRNh0I^K+(GUZeBBJpB{AT5Aa+Q$vE~O&RRp6tb#w zSFo0qeu7?;KIV5tuWHauJf@Z1Q`F4IT!g{z}RUx0=V8zN>;X;JQjeKZc zQ@T_nNLx(k)1(VATy7R%)Cndmufe3 zYshG^mjdwmp8DekrlIU@`T4nE3mJ)hL(5QhWm0O*g}G zs1r@vH(kmIdkkL)NDzOWx@~+zl?==22`?yCIZn+=;fTi^F9@{dIN!6M>-}| z;$C=}kWx^1sllaAx-EuMlW)C@C?3&DY%F*$#%vk+ETo`*J;U{aXvQ_S#In^imIqVX zIvmV)IF8KkbTc|?S ze|h&U-dYt_@)iAkXWvl%_OzQ7_Ex^H3i{TAt7Z5ex@EQx@hT8bN1+2d{v&yA{r&OG zPF{h>3i`zl2vkbwKDHg(bg>p$sfwVkK}Pex+`p=*KzYP8o)g5Bujhs2&-B*A8pxc> zx0<8F&D&}ru;>Il3s}vxF!P{-?bfvCfz?5ru8yqiM=)f1qwut)Xgm(8@BM*^$9JJt^6bmr7%pt?bIT7+RTn*3BJ-=f0h#lDcLmIGR zK2fmP-G?ZuoqXN}%duW#nR)TcvB{zKpo!`};y^`uVn$|mx|@M^H%5>mf- zZ_*8$WoeY%ox)^yM}iu)A)o-Jw703$rTeyKEgtB;7@8twtefsNc0;&jIB6S<#rA|5q5 zBE0mr9U~Z6g(@z5?P7w%^Qcv4>a)QA9qP@wJR>Xgcz*K4bo{*VIlmye(TS0>=|^+p$>$-*xYj5gTu9|9GK3IG zW0c7^Pd@xy@Y~=dKLu~n`~(}X>0v50&Mq0&F2LeF9LSXJS^t%n#iceBcX=BYbYH&A zq1(mcU!98>F_tI(O^$Sc)!dd3{}D<5mL-=!gNO{YgXub(!F1=8)PKnNJ-_U5f|<0B z@J$bvI9qxEWm1nAie_Q$kHoAaE!6-Lc0Uv&x*=mLddc!k#VhZbax5CT=yI!NXZJtZd2 zX*gp5dYWtZ`0^1Y!@SJq*NRUmngCk{g;tmpGW5 zJty*b_-QCUr19U<;gPh?n$K%1V}85EY4*{QstVLuebW~T%>!}FeRA0R@i3*FhFOb( zky(qFxtXM8Upw?GbnP5ekI_4#b9Q|71Wuj z%20Oq;`JAKz3Y^_*0m{Xjq05oME;Yq5xt|BpfVW-QWWws(!u z$%-uMdridIn%S5dJeV+XVjpaZcv|xr(*&nM%i(c-)emY@2kZy|X}ptJTtG?Kb{xI& zWkISObtW9f?EIof6RYHnoVj^ndSY#BQZbctCMAe^dPt7>X%c5S2$~CMYF<+ zbI6&wHH7rVhtWqQ2QA(>@5u3v9;guJ-KW=Z<8jZjWipN76^W+BAk(c$rUpSk@()KU zx)&+Dx-Ba6`Zz9N=+_~Dsn4CcQhY)w;v?4J3&hhzB=6Vo|MiRT{r;l8TJ1rJTl*N0g22?Chx$}|{jx-gMopf!Z}n1M2| zo+>n@!hQPZ;WKO}<@Yqv#z37;DRlI$<+VkM7x?^1e)SN$7|8v9L$PWNV zh_NI4IU(GLAmh}FaMjmWwYq=LE487OFcH}n=zTjg=VvA88pHWgFH7liNY7?TT+9^ zRWzrOp2QvI%f#SsKbZE^Cd2BriChaFCUpaxS>Bek!&cH83Vguz5UZ31)N|aZQ;O2z z6Hk=u$!s^dbINp*A9euJ)1K_(tayT0Yz2HDjBZQ~^w#{H6yA=SLx&=4PPhm`~WGkMskd zGvpMDltuU}lqLZ089-2~sO0eauf$z#Y<#yY0RJm}0aMul3f_{+G3FKO!NRtan(|WX zL@OY;Jb6R73qfyDXkP|>KJFSh=iB>0r;um|k18=(ou}OX(!-i-v3bj*1)@1<6 zu^zWeQhIwbq(HF91(_JYTQWk2)0=nr<11c3FsF`r3&@&1Wy6PP1~nHAQ01B4&{{SL zoygbxfiWy(z!=i4&KK!#m6EAXLUN9;*nfr-BA!pX^^CDX)M58}BkT zdNgPsGSgYR3MY5|U4%9S663ManibDnIZOEzAXK_VqM!w@__yT2-p}p&vGWT})Q3c? zs~T>EVlMasXh@2e-R?p-?!NPyc1o&$oSJCdSQ|>yg>*M<8n=L16awSFKz?S6UjcHiE~yte|qz zVvej(87^JE&ndpLg8;=kZ6n5~NHC4}DM5OlAl(_eUy~N&{a1L)MnQ}PS_)k!L;=p( z^J6}-Z9m#>Fw#BBEry#q4Yf=BazOX17L%^o!PjwWHO;?djhp3GNP4v4ORIT;-yGJq z1-ZLxU-)^hfZd;q-k6-o^Ng_T=)8bq4YlVKhF5tx=?P!GLD)E8_iHmTwz2PCU9D~@ zCEp7vuzPUd?J{;`9X$OZmJG|3{GP(oK6|iMTpxVekv}QvWUi>U#1Es-*zpvq8vF6*xf}Yzm8a zIU}yRJkV69<@cTy|Mrz|MHX~}{k?DxW1sC`Bq-%o`ql?=T9ty%xbGpKfZ`|KX;gnH zlq@QBbY^q6V@Z4V@mZYFwoVle5Mc5m!D%#J=#P8mKu!H} zRXOm2a1Xo0!ovI@)j6I&-?| zG|`2V{Q5A*cY1CXIlxidfyqOsLI~?+FHW=RNky;L{^o<6aA8`|zw~KBgof>8oOWh1 zzHKaaW|9~{=U~ghIE-%Y^@`e78eX2N8P!9#V#%(5ivwK=gaz#XM@e_hmBK?6ybxtaN zo&X#h#y3F5MPBk&sKlCW1QSr9k5~CHl8FM9jo~$K{VqZFcj!JyoKA4eUsnqFEvxF% z{h65;USBMdZS7q5B$kSfbYx7h>?4h60noY5Gm+mlj$3lm{AcW6^Qz#3Vn>Q~GYY*9 zL(a$Vc}owmKU1g9#XQ@?_$n(2OjW??MnK4gN@AHae$QQ?s{`0H;%`$!emBW5>|FM@rV`|{0Q}P>@O;hyL(j!^4bQB+2;jN7 z(~i*$m*b2#l@wiDBOyCj5jRpA`&YDtNN$3I0y4CqJCXrs!lojx-A2}@yw37ddIB;j zK(mj?>8OvAbv=L5U@)e6Gb)#A?c`v-Ed<6vA&*Gth~jui-}uJS-b1VlMnI>Sb3un5 z*m6YiFqcsH-NpCh{n~bsLK39(J8=v+4HlfmiXhQgDWO3GwBgz~eD3rc{wv=sltPJg z8}LNT=q1xlidR1SLau#32t4ex(hg1OxxKzxk7`h{rEoCpp{Lx{f=axNP7Odl{xFLp zXY3jjL2EhxqD>maEW`A~`bHNVE7v!yYwXr>$qNMf2|=Y4U2@gVyx#1yj$%^g$bSs9 z$(BxH91pkX9>i2$&L=Y6F23tN+%|+KF2LPhuLCl62pC4$9g_@ArEx?E5n`HJmd^w* z19LWizEHtY+Ek!Am2H{cc>EC%OVjDkaZMRP<)!YLhI)xeABn$zd5zIgzl3%|X*-&XsYLqeBf4oeBE+sMN?dPoDFY;B-W}?I)-LWsZ5YD0Vbh>Cd_i@(S z+DEZ`0Vk%ar@M8CXR|7nmA8H*1sS=Uz7)V5RA-V@ThAUY!TTkE`APtqYnzel^pO8n zCKSWur2>P{eCXfX4wXkcLBJPpceN+rSuRSg&BuEB3UF z_t#%p$+9xi2O?(G*LvakGwh=}0dRg^knG3kj$DlGh?95qn`@E$D;pVTUzfpMBOKES zvJzeEf&sU*z~&X-8iiFeA#U+D36P)8;lPS3X+!l3xY4RD(ywr=5iF8<_-o<%bdmRnfrUrnjd?e% zhaQq*h!vsu{FM8Y>1duba-lWWkOI^K`P}FSH6O}qI%TCiB{5<$)!LJ78GckyX9cg_ zU<@2IPUz-k#!Vvy>1iMk$2Y4q0(q`Q{6?jRXn=`@!^#u`Y>Te%MY;>FE#oS@ht*u- z9?+UR%t-!*}GgxQAii}Ry=n8_30$Rc}nxatHIk__kfFQcsE4J{lH%y4It zgLhiIYMWI6GokT35~M;5<9R8F`DUAMrqG|hc#|JkVl1KGraToH`yjRZezt(DZ<}r< z4{bR4ktmfH(SZg@?!Bs1VE(3TJ_hIU!Pf#-BRq0t5c>=6g|)HsU8$7F3ZgHNv@+P1 z_{Pz~SQws{&xUq{FD49ghdy1|LzVW!B8T-an4k*wHZ6v>-K=bPsUD+)mUzkTFJRlv z`k=f4+;UM8sG<*Zx+-*%xEq&;uR`({AFF02q>iN%*1U|y{?a_S%;UCZ&FHd-0le2T z@ACaoD1>yRLI!XgY5402&~5IMgIW~R!;6zU1w<;QnTp}nH402ELq()&%8QSy5RY_p zy|ynX?wD|kr|=lj@oUE*4!v_qcAvTF)507y%Fre3| zccmIRE$7?P0o!>cGOS?$%6lZGN3wj%2?v=~6sl-MZHK6JR?t1lpBP=)BLNyEKQ3gh zi9BC1DsF-E0P@ai`Nuar!j+!3$P_Rf0C0iL z3RrUL-aYQ(l_7ydZ!`(Y`cwAKd7KB%o{(&gKDr-g0hklPHQL`70K`6(X8O4}P`P2P zfWE2cL{Bs#SMzR1lbjerRkLh9?_%SAXX0fd{;NrT=8SbyLK zzXZ)<07^Lh?6>&l?mnd)cxBTOd}x*96B(MATI$L3ccto_^$ z>OT2zVvs!-^cAW@8-@12x(YVPp)0K{kSrLNe-QWxF*7BH zSFJ<{rvX6RL5t!3^KX3lSz}KLPDdIk5#TO&5kC#EZ~vCGUuftwceesA4uk0y~XG{-kkn--(4 zQx*z=jBQKC0oy>;@ph=h-*!+DjwB^%az5P1Qye*9DLE(u5(pf&&cxH~vB|&FW?%st*%ElEkagv}M~2lTWd^d)gFqLi=xuc&m0^RX z?=*oS80K2)<}$_1<(qs8rm-26)OI3xt!~PB6S*)PfY-EhUm`nz2mcv3q z3ugul7FLMpM|D@!n{!3Zx871=_w)hEghRauz7Y07Nf<6nCct3Ngt~s(Z(oZ(Sh0nC}-o= zkk3NW+`!cWP}KRsC()$Wt&k6et*HY|^nNyq)xyE;bwE#q?YBcU-V(x%spxFX$Zg~a zO*18p%p@HKbY5pp140U!+USNcxU)D5A507n3E^jc$oMAciBR2=47ZcZj>4V>zjmbJ zj}LFYJjs*ACMC_c|D0Lytw5xpprA6WdN)mCZ0DCsu3OF+Z_d~bwRuF(zH>2ZamHtf z`FpS5!jSXk@4zKt>%qq{jhEM8R8@-Qxiiz0RsNpD46TTzZ5nzRCPoy~(ceGkI4HE;R#JBgz;hv`eipJ+S^$IM6!78)VkmV3}5LCTgYnhA&S zTQXU1dBAi_-16w+*aHJY@N@G%UGVBMi5_YhCB9T1I#-?7N~3bI^&?O$v9GwUp|x*) zdFZ`y<>(P3#qrMgVmK5GY9Sj-_X`pF^7#+G{3EwqHr5ZWnrh3x^z77@X&L>Pt<;l~ zbbP{O;{fBP9#1SNn4pm-iTpH|NrkyWO%T95G9hG!wsn*pEc%*nvi2Xehyhk}5UaGt z^724(v&yhxG>RB`nom)49t2*PUN{Typ;vuQ`6&kE{nn=ax#%AY6PZ*O87$`H)d`LU zT1UcZh1VZRK9iazkfh<@oJ_{N=w(b#r5dnIU5Ui##)B3;8c{r|0g0EunwI} zny4{hxs1D&K#$0O(YzoK zD6Q_dM1S}Yl*Z+`S+%b0We)V^t%X_1>uXGz}EiDl)`Vx|= zgLu>eQUv(xFEj?9E4(|VcO-npGB!ja3$oy1g7Uf1t2yePIvBsFx)0pSR79M1=V$53 zGUsf1AORkvdlv&DD!hDDq_h{gUi!#>!UDzU0%M5_({+2qfT(-Wyp{UPU}r+~aR(8| zQU1f>S&V{n04t#|QqW?||7JPCjb!y_lct>CNf0yLs>KUxf86Jm!x85lI;R-2L;U#o zhU{{K`LVXo4F>ZXp^+HT9;X=90e+(IH`0YAZpr4Efh%3N_sn!WFskH=^Q19JH_%Ol z%fI#=C5j7bcI|`zNUA-FR^keOnf>VWEts@gCOFax57i?UHTNKze;2BXf-eHG8c453 zi3~2Nb^WUh!VY%H(G3WUw_5D0Ckb3M7=1c;NY8D=IMxNAC#v_IWS>9iuggZXMvUG= z0Z4d~VW86UOrt?rwI>$hOwf9bKXN?tF$e4WVgA6~hRMj^jf;A;4yz)aJ@M=2iz+%`RW!}AWL z$HNIDjN8T$g7@+@b=o!onEny$HLZ=c%J zBkDjaReEd`45u_)&z7At9>Q{q&uDogoyND9Q~7>xISS99@RnZx9vW$Knl}WQ%BI|p zBp?p36)ve6BZLOyL|QtbRC3fm+JB$monM|+i664+q7P_fV=Ybkgn1+wiPON0=O)o& z^Nit%#k_xv<;&7ErEf-tLl}-p9<5-h2pq}DZCq2bBl?NY6lcj3mMp;F_=^9a-rXzx z_b!{%ViO$v81b~Q`olwS00{911@GdpxVTFC+w_ zx5b9Z4=wNV9CmTfXe#2Sq-JTdCNj5zUDl5ed#gd2Wl&6d$A?TR0na(J(poH&d>G4B zU)nXTa+0rON$Nyz_pcqDcI5dO!~*RWba8*7;Cc*sCc@rLqb4s&sRQ&tZYMGwWMbF? zQPQ^svqA8$Eky7JEe;}b@kXinoze41EK|qr;RIeuYEUje*0KWe!8*d zh6|>V=i#eINkqwQntWKXawZvGG>HjGmW;BAm1R&WX$j~({D`Fb-*Rm0PphbAZ4@k1a$<4d6vnhT(`xztuzra`o=vRGZ7-B3~F42860EZ)5c*7P5AlLZ(D; z3+$SpP!Fm3UY46@^X(@Hq!aY_gRBd;oc=}}4d~6RD6}gecIt7xg5U9}p}6SIONN$? z%uIrScoq$b7FFe^AA75z#^&v_lDwD`M;&G{U*6<|D*4TA^cOFgnS(5<%0Pdf+J4!{ z_){iK{}2e&+~>)Mk8E;$$rmb-&>*mdPZc42jnPwWMCZ5j!{yAP^eKwMH5uXGj-=;a9NZJahjXkNa1;NtD;rAnv_Z`Z zIKBIrsB3NXhZL)YGToX#b+W@%<5rUzG;o69X|krC_O&+q=3?}tZq1rFUC_;qTD5}A z6U!v*&}c~yPSbJ1!wBHN#Tgl({SSp5eCr<9Sd=6gp9`~8n*(99wS6REOA8i#Bw^p^ zge8FiYOzXd`z~}~`zNb)Spt|5?5l6wToRggA|C6Os}jLE(&vhBT;+``0+74<%`Fkf zUI;QbU7w5Xt!Ee@2Yg?h-0B|~!!H?@*-@8^p~kgt6wfyO-imzD<-%o-oTdFGoc@}Y zfclEvOWq}y+)L@W`};lotf2VE%?J<j2emrio--c zc!3R#d^6og(+`Kb#7ElAV=*jLBBJw4FU zuW%1_(r{Qc2kj{2U_g>|k}I$8;UKibS1XUC6HXbdUv4>HATO*ua}0AI z&a`OJ0`IK176rovg2HwCtY3-(7ixJy3!rG34guDQjCeq7jUBiVfIwEk64$Tu_f+Y- z7bB|zqkrh%)&<04A*32B2nOjY;Z$ufLgG9KN>;Ac=7gE6lA4H`yO%`yP2hK%483hPxG3 z26A+K;`Q!4u|b+%9#{G7(}C;Tj;_aldshkpX5!>HpUIv*GeyPgVk-h!oyA3cCZ$(! zrqfeWXz?08B+=uUL5bw5yRi%8YPz+gvc9=ddY5*1>YTj*HlODqhs7U_rjyNLW0W#= zwEJkBTr$Dk?GC3 zEa2#v){Xb8{QD=&sqVAWhbx78qTc2pJe&+BQ27UmmT!GtHXF`t9@p<3p8)?fZ;{k_~<&S?C9sqn)Kwz1p1@yJXoM_3lGALs& z9_vr3)A+s>J`Ri7(v~ATQn;L)I|3-rILSiD^{9TcxjXz* z5Q(0^vNOyIXcz&i*ogBXlfm~|{x?}wH>br~un=ANWa<{;$V>5&!QKMPtO+J)nrnPO zlbH~@TQU23^hA&8?UcI4%m^(OL9eVxjeW@+)|Vk@`=Wcr-&B!8np#>Y(Uh?{O$`og zRx*ah`t?-gahZlkuc>LW|5busM|KxDw}Sr;I(FnkNLmL}XN0jDo=r^cdvZL^YD0DAmL{hcWCc z0SaC?PQSp$iQE;Du2fuKo<7_eO5GLaG$Fd5G-$6g6Ft$1X~Q2Lgn6|vaP*-mX2VNF z1oKJw6nR5NLdu*lxof_`DKQ8{zXpS(LBo=96TN+;L}Cm7gCIZ(O-yu2TqAeKPv>u~9J&B3TO)iQhXe3@KhPnSXgslMO6wlTfNgYr(2n z!eDF!#OW|m=PWH2Cu7!8%n*=vG`Kv0q z$?#_Es0Rxmhv9N{dwxpED-aJC+0ogykf-Y(%n~E=BgA8DoHsv7!4;QmLrnSrZ4ZBr z`)4Y@u}`-M1|*dO0|Lk)rLb_>ss#vrNlHeB#%IKF5qRhdMIS9@^&Ssp{Fkc% z7*4A!8 z!K5@YqW%WeH{k}T9sj+d9pt6WU~?~^fq^Myc{m!QG@;c-7<>GJ5R~Z;YUlve2SzKlHHOG(jH{#bNrs}x?3G2QZvY08^3P1@q`XH7s5mU{`W$0(TsQQ4%5 zsv-8a)XoDYVacb*18q3>ZiD(+#-PoFT+7ZCN(>g<_!FKe#+0WUdKzmJfkX> z>vm!qua`lyR~HzBt>b{PvCkCV%+Z5HJ}qMHeZf#;A_R%PdJuM* z^r}6_Q7j;Sb3xZjnR?~f4t4XdqV|^lQ0oXO%+vvn@lH(d3Pl^_OHy)b0cQe+L7SUC z83#gW|K!JCe-GQ)fhiD*iF5jWMT(#*ot_3J=hnEJgfe5tq@wwP5Lmdr>`p;2eNo&H zuJ>DBCV>(^#Y%hWAS=8?I2VdB%*kN7W%)be+=OXMOZjx0CTlKDW6Se^2zj4Lc0}~{ z>%)hve=%My$ObJ_ga-5_VLTC#PU&j zQj_|9I6?aW@ zkpaWoMndw|L#5&WVd~A}sp{VM@q6!c4vslw&X75C<|s!>g$yMniV%{i%rfj!RK`-s zTp~@Vh$MEi22q)kI88`qGGzKK&-1)L-=BY~*Q=Mk_B~wJb>H_|YxfW`fZ+f5hEnwYsLMDv#-Mp6|e=}>U2 z0ZIf}NWo*;VA+>EE1w-`{Vk*Z*vWNyf6dnwyES3^Crh2pM&^x^Hsae~;`{f?*NIf@ zJKpGKrPNAExYn5Y@feYcyY`L<41Fc z5B>NZy>lzmNcVKo3p_o+e=F+se6sY|dFkyz6byN=|bL4RM zncFP$kDfml6FL%kvk;-E*4`n#*y-8)v4qAm8EAq~gxQGc-rFdA*5KG+4`?*9&ZtXn z^4mGO@AB@lfPE>3s9SV$sv#>VbKPUnyj`Za>5ImUId3;i&S;(dMz=zCy?YPd*7J7= z!(;Sp0@>bM{0ezOC3LhMUsM}&$`x0|7hgZv^Zm;9L(};M_viW=TkYrGZ&(t;wiUh* zcKZA)L_!coGgwIbRtPxF4KgS%je7E&LMB;gg~=a+nb*_OE~A3b?yqjn_jekqvH?!# z-tQqASeXTk18Wt^W>buQ43!~@i`YRaFhfXLAOe-ib}lA@Y%`x9qmuMzhukqGrhjgi zbMA!D&?5h)hxJDqBu6HeZaa1wdsL2eec6r!u|*6%uWALaJRXwu)5(>r)_=0?#8D!8 zPIJc*KQzN9Z_hkdlx+@EVZ32wa;@jGcr%rDA?C&!|6LZ(jo(OEyvbf#D)wG*KE|mU6RNY|xosrt^x`A4 z+iQ1RFD|+jdh%OVMPjs>+!48r3BUT@?A;W@!|`jxXTw77yX2gEzaA7^-gzST^RJov z>30&ba#ZkC3W>LYh9*8xI+i#``5X0F#OUZ=y=^ZmriX^jOpf1+-BR~A+jeWguRV;# zqhmw#{7S3h>5}FCpXH%oH>kl1;zdAg!|mlv_F4swzTatFpDs)psW8j3o?NoO8Mr7H zY3TN0*!o_MQQuMl;?zH=DyGO85{sb`&C+!_d8Z763ZJdwzPdDCTY5uTH67?(Xe69yBb`2Z9tN2piSDsO3OZEgPcDH#Nl!z{I&caR8%I?Xl9$Lkxve7FZU>ckJS%@PxQuVP_(J~695lco3(Q+2+ z;w^uc7hIm*qGZ$Nu2L|P@catDs&Q_DseGH1pa#*N57SUZ1k{das##EQ}_ftG5 zs@C8H=8N7}THnbKujf(zoi4r#Oj6XR!d=3>L;jB$1d^CR&2-(h#}* z_sr z@a&U1=p1IjJj6vreZANAyBjo6Ps>d~%(&j-_=TU^_pko$(QN15uZC*K7dsmUw|_@V zsXSgZ$#pEva*+MfMu+R!L;S^L%6x2;=uV> z2JP#bzXl`_o$u^EN9CF}48MQfu(8T2SCemanvEqe@MVH?QcBiX1bZ&tn27XNh?9_%OZKeEDT zF)q}40pFiAE{8SD5yzU%--!BE+R6{&&dPiwjPEopoeJ;FiD~+(?mT7vwlQR_zWwEG z54)9JfZ^+hd&yv|+-Zk;WsWQ80QU~O&J_laW23w>L|>;te{xJy@`uZMb{`DtY(-22 z1ol|Vc=Lp*kU_puV%T1rg8mQ-r|{DgE2{%p%?NJl@)lGVG`ZWm$6+VwEXO+En((P% zF@g@NHA>&s~K3)}8pOn4N*J$gYrv-;pji${A@iYw3B_KBBO z6=;)0!kSx`hB`4vT;e0>-x7s>2)hzVEPW`QNUPt{cr&->*Qc$a+g|D$JQT)vyl`ht ziTrc-zHYO&B!h#UGy9Hx^8WJN#&!E2p+sk0$%&RiV9aW7iP7B?7rlZLbMBpanz~8M zz5ho%ZN9PE8jGpSWtE?^SVwT4%Qbj-02saJ+UVtTHTrv+*HkT3to`U$<*|oN7m_!T z5a#-`BzOO%&-H0(Z;}^zb)$xa`$8mYbaR~^MLN}Z)@l^Bmxvhay5l z+L>{sB~F9G$77a8qXKyUXBveeW)Ess*uB7F9QEh>&%Ii-3wUEr$+CSvJnfAhn%>bQhc{RHJ^D9m+)65m`jpKU z-^mj?#jh6m1@CX28Zj9B>95FCH$A$xf4KPclY0ZmB-&^AG zSrjg6KwdXn^El=z*t%=S^qH!wf$MlI2R1&=xu`u5V*Q4-`2?QfZF1Zv3k_~uDVrsn z7Ea|IpfgB$4#c0{2udp0;rshio8rnqvmC&`(6Ypb|%tDeG>RJnkQ55SfMdwfgBf#6h8|?Y@5#6a9?IR2bX3-$gYQTGr!wrbmD4y zzQt~_H2fkg(D71Hu{p?%@xZ7*-~S_9ldZ&U8$A{&#pb+CLbCrD3Ka-d7lpJZ6~B1N zF-OEDrGA`lzgfNYE2A)eczi_1`|pCpCH|XHe-&o7F&M@VDH-N0CjE|HG1wOO}+yFwY|&9Jf@T{yym%oUvrey;$g}JK2yI*%4~vQ9{iU z1J>nu`Q520LSsIS4a>V1;#5rD`N*@n&rj{>@0QKe55OIAR#RXV_}&mZd*PhsVsuU# zK_ANdH6W<(9*IS1Elul-QCt&#KkwMr%YD#|v=PR1RhOX^D5O=33e*30mFw=Yf-AnO zuPSQChzQBwmYje2_JY!2zia!<*X!rg(uR3f-ac18-V=}3B4`wOsOg?AyObqy)9Ce6 zWy4vUBN|fS6{Wjr=dplw-~J>;K0Qm>m2Iw-A13y^iO*|gS@()O_pA(?t;6|~+jr@) zRA}QYR*tF@CG06ZMZ0rt^;qU5by+$}T+oV$UxEngbQQkG)_44Vi|MYFGx(_TP1I_Q zU&v_tlZ6>()2l^2%8nO_p=1504Vt#3R*yHY_&fUqh+EB=OD8S$kwqrBMtMFt8{>TW z(huHk*HW>7xEEP2kZJ0z;Ba*Ij&p8M_3Y1W{o;88lG@t!>1)>wAHGScOeXlAvt`z7 z{32YwE%7^7_q^QtH*D+`n~Qekbt)sRWwSLFb8*~pmc`d!zenZS#d!-B?+$}Ns`t{}W+{ZDO z5DH=V%FjT=1&p|(?-)cKx`Gs=^tLu^yJ?)N<*h!d#U(?={V!hfvS{;M z-M3ig8%uwLJdGEhcm6ICb7@E7i0$2&mA3_cuRi`V&faiUJO&OQ!R8@sZLhF};hC?i zX0HD>4resQoI?%dQf_Z|h+ILZkhfSE12z0H`VXovn+|Gz)vO_|+FqZ$z5bXxalO6<* z`qa*21UG1j!l8@#UxJ64>4mN_X;abbyD0INnWjD89et=qK2cKHGhemPR*dtHj&{EI zIPWx}l~TZ1Ue_p_3+NZLn8GW4W{N+%zU65SR<+e(ZK>=WzIFLiGanzvWLf@tW<0CV zn;d#*xwWeSDhl5XmTuOLI8x_PA5=ZwO6}`sTur#T zvFFGA`o7WYk)!q2TJf#jQCAjZn~R$d3>d8gscbE15eHoe3(*g}DNJKhD3`$V=Z{Ls zBl=!No-UH{gZOF+^R5QmFQgO-*x}jt0b|)>sM8YZ1${oLIm&2@0b;GW^Mai;K zScq9I_@EaZ-E@1WP*B<>47J6jrNSpi^PY~ErLG`*Lb*o{YB7e`_mBpd5B2n&`uDDhHkHopzx5}=IKb`j@C-(0MeIiT4?* z)H&btcXTZh3dNj6O&b?ssSDkLERe!`L;`xgvGYrny7vs#@e6ru<;H_e_wD2)Mn-+I zlqgb3TtqSo9+Q`O3+sPN- zH1lot+4$>Nh0va^`Gk}WJuEhwr0-(TXud3~N8-cp`T9pi8Yc%l+N)GkomePv_a`T? z<6Von-Vj+R3PK&gR09bbGuY1^&q@7m!P7O8@4W6Q+FUdIFs?r}X#HIqVbG^uQl_Fm zn-F|ShcdN_UUREO4rD-uyh(B7E+$1(V1$4WX2gQ>R| z7ZKP+BM(wyh4+y8|#9856OShbce3fDz^|@2`Y&I8d*Q=8~DXVA=zi1 zyKmXq-lG#NOAO$_;zS@ep792iiO;o?{rUf`5L|ZiZLU-N_I-BBIL07`S@}7Jd+vK% zOcsw3bNIV|`}3OhrpFW8ZQV_#yue*s6tds3rD+B)Y%@4Gbi@En18Sw2)iJK6U*aeq zhWdGI-NF3;m2{FOB86*ycV0#hQU3bTxI5mPcoQUDaEdaX4w~#Xqk^H>s6H>J#((0* z@2Y@p9JP>%d(JALv3Z{*;1^>WD!O1xd^RL%pV| zvqr>)@suA|TO~)&-uWFwvYi{`T?^5PS-VYRqJyB~Q5Gi%@u+7u*+0`;BcrH4-P&_e zjoA2(^_wjmIl%kSUEO$TW&x4#GE5Dc-N49G5zhvb1_$rGQTJFp5y2iPLTI6pH!)58;}i=Sjk@^234uZmPFLgW@8=m0tp1Y`8>0xP z{g;{yMRJBV+ z+*pZ)JZO~Ns|}q`pv=G^~8~jXf99a+ZHJ55cKsaLy9^6u29m z?{_~{Z%}JXIFF6qa|J01S<6BwaDo`>3|@6J5^d1g*f4Px(n zvz>SA8mXiFW2Gg;R#nB-HtMYr^*#P}hc3F(Hf`SQXntqc;mUP(1=sE;wpFzud{tzzOn)J!4CpuN3|7QAqlH*Nir&Bipybd(K+#Arb} zupwg-P;UPVX9i}&o~^ixy|go=%D_1{iKdlOWI5R*(VlJ1w`5-=vO4@gi|5k*fR4*DEv@F>8rNmIoV8cfmBYhtj z^~$1B*F}sb{P1_h1qkvO*0lnM%C4_?yhr>glzwj$@Nq)kHVNy zxYQdtY*d(o5V{JfN<`xN5pOr;Xk|IF|C^hN0#EQ6a~lPAKYlRoppwpG_dX5NumVx- z^E+GpBd{3R)VUKZ>i6ixng4si%STs2f_a6k60ldCRJvJtx?`D^j$+693duX1qcn|OjA$HCfq(5Y2}=6&xuI?90_qlwJEFImYr1beb80F%FBT$ zO-ls}80$-I)?fqL=~oUjk>3)p&B$OQ9N+S{BvFO={%7LrNBNXnMElv?86;&oPlkH!2?*T_OZ0>pwjaShyM#P zy9aE9$qw*o>rXMF601i|V(=E$yn_E%xBm@sg>k`s-pS4Ov&P6{|;^*sKpb{bghbvCE z)N&##s~ZS9bd7J*FVpGkxc2-nxO{7<~?1fpvl^?`@QJEggAyt4|fb{Ycaq{R-d3fEQVn`*- z112o8Klt~y7Czoc)4*)5ae#9fRBQvIH8j%UA?V*ulEYH#p6arv+S^+jV&1 zc>5Lds`!LOCJR=8i^mj|xfn}h#M&rU#v?aeio^>xvV#?tN}W+h6C^7&7V+6hle{f; z;^(r&RNuxv7pD^RnCz|5-2~Xgc5F)sZQv&Y^M4*OVT12fQfV32aWaR>NJ@Y`7KU*2 zBaKb*@ha185Xp%VcL^9hLMABbwh)YeMtfCXjrF00zNIH=rz6IVHvJpMu0^qg>F0{T80OKdK;vyErfx}Z{ zGatUbTXE;|3wFY)5oaddocW|}1(E6}PDp_OgPr))? zs9#(n>%r0oRfM+daOU9{Gw7l*D$&Dt>SE?(TTf@_w>#|#}%%JDm;yv(YGP+(W+_Fy*-XH0;?cNcl)_tw*P7!Y z5{=TBO+fZyj424)a@D|02AK0^R9#g$LnCn^EI&IS3K!J3xvs zXlz4MTZPwW`N=GM6O(G!+pmgE8e;+P>nKc_8zFq~yzGrFVOzl?^mIz&n{3TJ<2 z82&lU?)&n6j+!h)Z&y7I8sq*St8ehs^E2pPk3Aed@XrTMyn;A;};#n4sgL`zsG;y20T{u~#41f8^`wH*@g-|(^ z1oOfcCE93K7i((m*uhTv=oMWAYO2w%ZzQabyE^SHgf;(^Mga17$$^1Fwre^S6fg5o zLol0Cu3%w|D2PJ_KvutbK@Apn%fnU3{GtM@Ka9Vm^V&R#Fgph`{wS=jE5L#^IE@W+ z7Kme`&Tw@AVd{GGtH}J2gp0SB`E-_NNIHQoHn=~Gy_wwmiSr}%3F#6R> z1fM>gDEg^Jhs2V~-3K4x{|1-`9jrj5>&95Rv$xMSxYf4$1p}yA?;g26c_}%cZ|GHS z^TMuB&k*)nLCgJ}ctK|{l^KP6_u?L;W`GYa^?VQt|&dwq|(4c2b3tT^5r9}!}a^B6CXz{x$>Xef4pppt<*K&66%*mX<_Nwj~= zzl_P>@?gS9k`$f%Xuh)1&6nja&E5iL%?476q5d19jhWy9KQg7t25;-m{UdK=7L z_+fJhR-Q|PbXY!rfbu;3raZXfGMAX`iyD~QLZ@nAXnsoZYwg+{peTn591PdF;&`1tmxB<(y zM#l#*%;o)E9fz*!iFU31c)u)Md0}-)g~13{jP|nrdm=)}5NzU%7uTy}lg=O>#1H$? z-&DY=LIrd`)5wp>ctMsRUWa)8Xk7T{-Bl`>{+}R)HE!M_xzoRy7omT}Cw`n1z?u~a zzGpx6=mZ~X4r2s*Gz#y-={_?L&h>d@XMG(K^`9NmD`X_Yrh}H*s%QcFnh%7AysEQP z)KwG@nnB%^8@KabS4n$=+HM7Y;fwntaGQ5(YmmAU z+2#$8O4bg!UXh}zE%m+%5x!o=eKr!58Sm6>NImaL9p z=TEV&n@&E%47|PratP3{g89X)f85&CNhQ}RK>!Q#+CRAFaQAD*_Q;6mN`5DY+~9Xb zW)7{7%BHxUCFM*xoiK|$V4}1dYQ?b35)R-ugZuYuDdauqP^OWoKUanaNs%{JG-E2v)t-rD#@}KigJ5L1kStx<_tqPI~&20!am-gC;-p@e}GT5Lw=)rjCeroCpa(pcK{%#N)PIg|zsx-L|*j7mmi zgK(QH*xQZ9#{Ik|PTQKb`|6*3hZ6J+B-PcbBLRDw8Z`7U-iy4O>t%*;rYMy-LMQ6k z3aCfI--y#7W+#QP^SwUj-5}~^)AbcnE|cc(&dO`XA`yKQm-?JR zB@>2}!R!?kF$<#@1bxmuwBgI|BKa<)U$$Df;`r^f{#Qo(hBNQyVM=d3WYGFc6ZKdOxT< zjuQ9*JLGSHAgtUwMGX}Wmd18MON2xU0Ox?D?f* zCb6g1j&Qm>5~34(owop|05m;t!o1dFsN1BEl~->Afj0t-rAuNzH(aQGnQ{32C9M&o zwexpYMXu2>@+jDc+VP-a4^Ar>^g%kLyKnu+#sn`fOxynAV~Y6=hwJXveLc3*{>y3c ziLm=nym9QiJ|7^?<}5Ljq>?>G?68E&lmK2BnUjb612V9<%m^y*LxR92icrA>d4H@C z{|!_74WsXyy}{H^zT`G{L&BGWh?@DBOb5j{bin|6<;*Q@i`E0XW@%AN8H>Ek-gL20 z?_%elWd}n0mG`WO!Z-v;fxn5_=NKtU2sW`+FDsmEUx8}gV^JMg0SEEjR~+kTy$hL# z`C-1fPk=H1<6`70MuI$@;byDni!*)Mz>P)kSU`UIf(hBU^sI1q*w>3b z$!-d&8@@y_%tJBGcnPsH{3)nduv`gtLmAL8b&Qp~WX}iDDp-&JSUAxbw)Y^jE^i0i zJjgC3?|E4;SI03HG&X~iAcHQ2LmqcJ}Ct`pXD1dy04rcS~0M#X1(h%ChMKQ&D9E55JHp;nvQm>Oniay}g&<#D) zrguz&1G>|2%;hSCEygy{Z18_oRsfP;a}OuuF}=mEXMt|p8;^WdfA4V5p5;^!xs^B& zm|=0g%6JWr(r{coT^*Loj3D$cbH3oN(PK>hsb_YoGB{@^Uk<_ z#d9j-5-V2TrUvQ1aAI*EFCg`8O|`-IfePAHxD26|tNH10$~*(+d6{u}**^O-|L`YK z->x(<5vF@7C`K4vkk}=RF&wPG{g@nV@Dqexi+PyQa5;6f(gU;c5(4Y+^*GZ3ewd;Q z)j;CQ^yAIg1#&ywiu+f_%YsC$cP9sfhvGN&(foJi@dWeX4_$vRmqw*Mp^l10xO2t> zY-l?h&~V)|W>o1g2Mj8z1bnH((=@ zkR><>4y4e{{*6nKL@?@TWtIz}!bDWnr{z2ckIlsVkhsrW@v2^u-9#S3xlL|_argPubpt@@}8%D<^4ECW_0;~b(t z9q<6tw@ESHhjOE2U4FgUH#f<#lJqS3YW~V#YH8VtDqtiJduwoJ6$lUg;U>Ot(?OC( zS_;C*2Q~pJA&nPUu@e)x;_)=t(=7|hNZ%|goEPU%rzKiPd)*L?8GqR9=dp2R$9jdf zsP~2kcjUkZlav+9Vu4W^sB=RBy7yUo@LnT{}aS-j{ti-eoT#CR8hGamg z6emBg0_BC3;3*A>NSdOUll|AyK4EkzDj{bcW7*HcwzyaScpYAxp5rA-FZsnMl5!5z zg=>9|v7mO-qZPn|GfPr%GGzr}x5T%s8*Djn=BsoXBZdvMsN^x^zyF{M!wB!v^x-qk zeeo1M_AZUzGFXtDlnJCX-z_>aS^k6#%rPvWaT^4LOJFk}zOymX+hxEL)zrhti@q!1 zbL3Vi2gM&N6qa=zwAzf>NoM%uP|E-kHa-Sq5q7yaw%j0PPSGQfHx-zK%yaRHiAC%3MUej)r*Q1isr z6)Py4STvnBB~<*a@;-dHb+4VbYNhwZj3euEt@?~df^tH;kBG+~S(o^9a4s@tFmJHe zy=nNk>Nnd=o@iclL^+q7pDQ>RoCh-x*@4+2SHX z7hcU-9g8*WzvhV74P{i7Zwl^Dy`p&AcG}360WN>3Wu@~1EW2L5Q}8i3{`g{a>};*D zWz>93lrU?|mqG0TEeTJ`yA|T|8}v19xjLmhefDigK2hWC-BQ{jP7%_qepI``1sb=lI1;zTJgw+9unOo zMDe`+?EMS>=0WzJ0)y!pKLMGr@3lIe0^E7^f-&lUpRJ(BD?NMfpB(>9<<@vUt6Kh! z9Pg-6UEi7Uy**x)>7x&LDO}Se-mK(bL&3*WHyZR@&R~Pp!j0+79W;oYq-E%p&q|$xKz-_Gbt%ya) zLBVe-UsOHIa{ex!3SBkm>=d#?;)b!9w*Q~a!rO&yg+HJ0G&b|4et^7^U7@Owtc6a4 zF^sezFQuL)r2^GWINYa_Ryf3>9PK}O#YlR#YxlN&0W1h|H`}%xTmco+ZX)be#ZLw* zeJu8oxfbkGb4%$&+zZ^w70pe?q#`bO#hjLS*{u|e7 zOFW|FJs-h3{9^L4TTMxb;+gm!`xzsCFiTzKIVU6AGW zb0(Rz@sTk(P9;taOPzt|H?Ek*Eok25_eQ``Pi6CxB>qYrk!P2Bg9=bPH^@^^o;X;2z_6aq}e$xOS_S zN|Of|#J&DkZ9I!IZ-Onzj41hc61O`qz37^2$ytqqn>;1|fw*R>MhM@prHY*?(T4`u ze|IKI=N9D_nDkPeUVmz4;~(;;Hy=W7W7g+ORM9Ps8K&!jto54bq9 zf$*c^Q&jS`1~96??yn=XRd7P|U-W)%z*GjJ5UqG4KR8|j4Hk%Ax`CqliV8H7>cZ+0 z*|RA!_K5sWi;3f@iUC`*f zLnFCS8>PGn_9ROa(J*>=K5|d~3n0<($><6%1WXrN{)Zbh80<4m7vgzqdIcc)kNt|c zjoD{TcrKO9oeIp_i(7ST7**Z$X62jE%Lh^xW}LF0CmssjZ#k6H?GSFc{zWgBg#O{@ z3L4kbBx1N+-nQ|jk~P6BumxQljLt2T^22ARCOD1On35n!XwZqva=WPDfdSLH5GB72 z@P5Ea)qmak0vPM*_k>a$A)vHK5X3p)WY*bwDc94l`ume6ezxVZ`_O0NYo!}^`8v4` zAB#W?ey2%wgQv!s(@V~&67$+WO@fEDO45AzN-`>sXT0z?x^ehGae^w=3#5=H5YvUM zkV1h?nOOPzeH>(_7e6GRm*zkwSPdGSz^(k6-xdD{iq?EW2T$K1r{$eqSh|A|FPb9z zqtuPW`;`}|FIeR_mUX}0zm#Z{(-ULccDvOn_zTzd8%gGg7Ici*2BW)YRa!Zq`n%yL z-LJozYmZtBX+FOvHzihD{D(ozHR((NGhYy4);OcaM`yf}(l49%QiFhU?kuC(#*8{GWT#J?pY06 zJO3rg65@x+5mw2&wIS~u70#)`lwLy2o#F%`(r!kYU`T6H)miuAi(e2XySBcN-4_3R z{9eIh4Jx=46g6%Ha(>C)JX``8?H-&%E%nv6q!0gkVZpB}xn+Ana@Sj0fM(g#%T}xI zLnbRIJOQH5M-_IMZl@DE)@A@=*}yn7K}9e&j*(4b0zc`mMlF`>l(Sb#es~Y0`TO>o zrng&dnn>aIpt8UolCZ-x=;%bEStPrl#H1Lw%qi zTInB8Ugz04rB&QLX5E_Aa@o}U#iXIdLB54hH|6QCmu>4W<%-m!>qFo+Zleu%?w;+0s#-Wp65lbjabt+A&POS*ka zT?RC`L4!Iva%1I<_LG+!&PUJsw5&JO5ToeCMkGvX3_IPNN?N5hpq;D=r9hq;RfSe* zkgBGUyKt$s|32PJPgLV$K2#?-qLv^6tMjsF`im3jwakmz+SZ9uM#e47PKd6&Rgk|hf9xo}=E7^Byk0aEvvqAt8t|B=2jD7R$7D5`se_*G7!tt>6)pAUyrkpE2 zt?WAY2T1m1zGJF)3ZD&M+*pbIxuk#W2Xl5h%D~*Rbh4!|`AG$}+6(o>TGJtb4jalb zcu6I{YnEcSLO4Joi4L3}ff$Ay`N6zq)bGZ<(6t{%SQ>yOi(JtKu9Au0N7vEDiX%Tw8yABHU6H!nsvZYfCnWg73df#M zh@Tl4Bb^2ki8!=0$n)WVCiy!buKY@RP-~q)^-s@asD(&}y$^8$d4@dH}n#-CMp8%<^ z3N9fF=yUUXH@~}~d-Xy~g@B0NZfTxDW2s^eibN+L)256YNMBq^yJ*6MA3DUg<4m1v zI)on|9Kc96F*xnV!iWLlxlT12t|Gj2eytM|o`Hgp3j|j{=7w+|3}x%l!6Y?-@6*OP z8-73UUJ3&u5HCPz7Kx&_5gWA@c`2mG87GO)+e?vU2i3@%AIiemc&5jpesF18)H&zc z-s3NJNjhx@mv3HBV7#*s0}qwiJ(VVZE*bfEr5d)!BrTb>;2SI!hp0czNR?7D5b0?XFTG4$LwTdT8)KvNx3Pw9QM6^tX@0i6I~CA51Z?yPNL!_CkE8 z)@k;&T+9RD(u2Eo%_8JXTmi zZ7JHeEwZeixC_UR-rFA1|AnqLh!?WS*bzBdwO4RnI>j-augJf`kF}3+1 zP7VnYGZ@4EnFuJy0%=*V2DDp5)tfw*&^qx*QG7JU4n0_!Bnvi595Ri7kP0$ z&{%o=<7!C#&IY4#cMM>3TI6sn7KqAS3Z^B+Gxb|zekiDF1wX4|iuv2OS>I%+P|OEf zDo{RI;r;Z-;{-#&q`4f+O zK$=%7*aR5Buod{J`YPjtOL&3Nn{>jS9deNP+r$EMR)&ubJ~IMgP6lMMYjP)bP?Ed5 zEus{fKKDGBCf>a^t$EPKbcwfe%M4{jRqs{6_V`HLK;|EaGBb)O>!ctgG2xuP zS}Zefk}I#itzEtB$Gzdg;zT=%bD3G@IN=V&-JX(=s}+-e*C~FFj(y*LFgr%PeypU7 zF+dMKlfR7@t@j}k;>jpMIH9WoGASVADuR1q1lLwkl&~~#T*evFcQ6~GCD|cF4T*s^C&sx~m6_Y_wg*5;RvzuV&^YNunXUAWA3)sz7q3Hq^xTwx+p3qCUbnvK z_q4@3hfa7t!H6m!Aisz*rd44WBVYFdp#_OJk>QP2NJEE0`2W?w`_nBSy*tnPwyA@U zS-Fx};Q`v~Fyda=;hT-m69s`0y$1^V0ND|JogwdtgwL90X>$A@D8<65r`w zSlHVGEXZ)giq}Z{aDgt;q3q~b+JAztt$KDR6;o_g{|9 z*HK@fm&eg*VyOBCOU1_mwcA;hWrK-pv1S(>YK50X$z6@8ee4M3^d+?EjRhmfl6d6R z75_?uO7o;WvmF89%=z=Gn5Kxl7Leif)k8y9Zqv~4W~SgEl%wsLY-hyWBuHfq(N1^E zj-W19nUi|4Vf`aoN2dHgu%`SfIoaH0!B`%?4~va=t~H_bAoIoe{*em#Bq zXQ5z%>26G(8wL+OhXNn1#baL4Y|wdXBSs>e{HJWby@l`B@M_bZZMU*_Lixudj3R25VH@puwf(0|AZWBxGn`T$#j1vE3Mkdqh}!%c8OEjviX znPzhdbNQ}ym#n|V-gTSnxTRHn%S5k;A!o#^LQW&s7WF2b;-vFepHvS$T;E53Ko=v9sEYVM&;}p%`BsFI;>Ix zKnBz%h6A7JsrUNqv6mY+wS7qHgvq*tZI^z>C$1{sH1FiS|GFs-$YxI9JWqwx+!+Od z)+=j^yU(q^`eU)|<*hHV$Fp{1J9q4WVIb$|+u&Ib4lueW5slIoqk-V@ihhehSLjVd ztNU1>^?&|#776G0_^a7*iy76SFkI~>!>LCriC8ALV0zYIN2D#RTyClpv49OPPPYHeOoS+ zx}I=;E*99rHt^p0p8f64!vcS1kGR9=g+QEK5Bixig0P-au$l^-&i23GC;-|^xfplM zuLybF;o@F{TNltY2DSQbB$c@BRj8oamCH$;pS2F-0LzooFv{8vE_a8LzQ0NTn#puF zl=q;RnR1%N)*3`VQJDL9XU*u2lsmI?Wy9T7Y3AiWn&i;u3qb#d;+CQiE9-OlI~x&0 zsNr#!qpp-F(TH`(-;xFZDYD>W3OAo9z}YvWP5&QHR~}F0_Py78&M_QwWFE^wW+Fp| zj-<>XWk?c9nTG}~`~E(k`^UYXPgnN4 z_g?E+&-1Lc8BgPOFXzDsNyf)}JCfv1Q*dUm@B@6qN{W4dd_(a2N4{Y~2CXR|_1V>GBZ`??1CK^PYofpSPr>1JYxepz=YyR3<9u-kUbRaM?KXAfyR6}_-N+z`z zd{F3EgQ;nv0MGX?f~=W(wKq+LJ6&$zb%~H;WP#IApAHaaJkWV;WA)q49(`=$fDJo+ z9i$x;zL<@Hn*eT&ecgq}itf`o%8(hChSqAa1EQmJ;VxNi0 zT~}QbVfXkx$s?^?efy&ip0Ud{l83^roB*eMK)W0v#ofxN=O=JxS9i$D$#d!0fM_mM zB}Y^Rh%Jjrh>_TB`?B!9nXsHPwtnglOAqgxdu@<1r%i^7WfU+>ctdjAtFa3O%&%6U zx*G^@GBNVt!pFl6=jhR}le1>@NO;-Ril8y?y{M#|M*|!-eXN`zR1~Zmv#YKE(JcVJ zm+?4pL^Z83sk9q*CBNIxRX_Imm5=ImLz^qt<#9C4D_8Q(x5L)Hz)(k;pe@*ZqrgPp z3kt3axQ{t7R&`*b*6k?!c4=;vnkWt*Et~2N?|u4BrY1{UFzZSRKB|KeDkR`Td?c5Gf~=>2 zioEcnilM5Y_pRPn_6nI|V(y~Q=5zxjTydYR;i#YvlWWdf!I%C z#0Q{928gD`bLX5Ma!Ok?|4LQs%vWz$xR^{b)jG84(s%ZRmP~JOUL}NKnc>U3lHe5mH-Cl{>UvbA&MLp=(j5H1n6G_ z$Q+i&CB&7+na0t~^rny`*D`%X(qKw3bH2Cpy#a(C;>OUPN%d3Jkd2fyggi&^87-xE)=L0<9$diOVTS5(!n`_AiTqAXEqR%Oi zVX4Pd+em`gCUmRRvHz~P$_DpAkNyFpDWAAI=b!m;?+qP3brA!eegQy;ItgYo$q?GZ z1Uh3Zunpyg>#yYTJIw0hQ|?;Rtd!0{(V&^!hYAy}SJ~D2ChU zZ-RAwh54t6cbG=%&hus!Xa9g3#!Aopa({B+6l4N1K$C;DWW4M(9|WVZZ?#WihhEYk z^b!z?BYO|00?zWU68V_Dzh}2Y7>~iX0P4a1LwG3aVC*FEIIt6vepHwNM(P7H7_dmW z>5IH!gEp)dE4hB*WET6Sz2_=nsq*tJYO=h;p3ECJE;UP{QZe`>M)U(z@h7W!TBU5w=Ev|mIP@@sG?H(BMdsyP350^YgaB%^hHIKY|fBylxA1R zwduTe>yBFu?Ez2pTZ&~Q6R6r~@nsZiRi4dwAj}+iyETE>mkBWO-M3OUk z61MhLiE3b_Z!Z}gN|U%)2{r!Ga!-%?^*!sk0WkGq+f(n{Y}M@;zUQ3z>>WaMxNm+< zWKF($CW#0U#QqMk!df}_EsL+ih~2Az zC|rdRlqeFU!?h>KoE%7S1C1%LPh$Dt(y)n%o5Q5vEtx;Q8y@($sVzY4iYNx7s)qGQ zZ3ny+X>p_W_Ro*_)nC#K^Qn=XRI@S8w-qZTS#CRVL+kG2_V2p3SDsBBRKto5K5W2s zW`{BOXr|Z6k3q#nPxL!G15~V7Y>?RTWBWr=VPRU`4tJYRHWtL3fE}v+30oF;^HmF* zu(hP(@+g!D{-EM+FyU6Bo$y_$KROK5t_g|B%6eSUT7BYnw+d=7Q#mT0vZF`+?hbDu zc%wEc#0PQOLRv`Xu|3d^^rVpb#6e?0gHUV=>rZetQG}5l9YbT~wyDp6s7bCR!6pkE z660qlM%+EtpZ#(%7KqhwkOBuC@2uO7^aqP;GXG!Sml@|Bt>IF}d|p_VK1jhQ<5=J& zhYX0I^T$F(KZ%TA_|8cPX+hui9pyqWfhHGRxJGpAKuvFDYmNl^ z4W|Z-NKgxI$;|MH-!pV4quO__c}cts7pZHNIC9Pj@?Z17#Fq2Qx&ok<4S~I+9E{F{ z;Xzq0MU#UOfX(~6?0>O z-KThAcLpC^zVMREK;L(^XLnhbke%JP?|Va2?|00)?=82zvXpFiu>Ix%VDMmgqX5qB zMtRYB_s))_AQa8=(yPs)c35hAbKHge9R;n&7EggV5d5DIkaOD(@pn3-=eb`etN|NZ zAK9ajOKDeEdL*IIK%nPa(@<|7od9x~G!G{&WoA1as7I<1Z@-_?9-jIr$t=I{+#qiZ) z3w*B=P%522Sb(a39w6tMBg#sMLGofV--=^k}%5O z|KO$eP_IG;Po=xA-)=b5cg`sFV}xkgov6&UWx8F?Or2s-Ew+*Dwgb^_M^K^rEtnl=0%V+QCh3%qRnM;{qw8 zGv9ySDYE`?YaI)+bnW6=K~bVM2cF%ySMIymWu|`r?oAm+^;Dq`E6+|6qwv5>16XH? z?(SlJ@LCK$iO_Y`5qrnX4wU6f#G!n5n$xM+_30rbYoGg!e=I`Gn>l0{+tE;t+11W( z+i|`Bo#)fPX6;z~llN@JlMeY7?Kj)|6_rW&&maJlKrPy-FgNpJoIGi~%=9oK<9swC zUgR!`=!Eagx{|4!mU66UtN_cl!)CG=eZy9B5m`{hya6zcr z2`+h&A>b2+C&R3#CKYr|VGEjRrOF02s7HmyR6M(8Ihrm$QV*$jFXE+vDH}LC<>o8i zy6AAs`f_V{8NK+tqq5d}?h#pw6V{3Qi8^Hc=*UHY$4Hxs`(5UPY1CQBKczIYW<@V9 zi<`e8vC-i{|I2;neMUCUNTl7$-_Nd?pbUX+50#Ao|EDwBJDRo5=%{DzJ>NJLC?cgb znV`{jii*So3XGoME(8xG6L#)~4CGiKL0c^bzom#O^$5$SVRcGy6W*{%#q_&oSO0vT z<++mag#q^q&E1`suXqo64q8R^qkd?+x2v;2*}1)M+3;&g$MyLk_-~jP*C!np8g!HK z;JGKPU`d8NC~4#mqP8>3KZ{=blw->!Q9W}$xd@oE_Y z1%llqf(j91%+L@=f#)}5 zNM1lhji`ENg+#EQ)@O7oVtr=sE{x}i+u7+z@tCg#p+{-|)ph62$&V>;-zuD(&is2_ zNOqR#{)^!+C+5f9*_TmxXnEQaf`R4eZ)jtNj02!k3Ux?*t@n6#{3c9uuR$%;Ax}_D6XRNP8Jed-HEN_i+mweF%{m;QjMpGq~-K2l$rpc4iETl5AjD zySS@)!7QC0RD+w>pBu^>VtkU|B1Lf>`Zb& zHJ&4eR|$abJpf*W6#$h13&=*}vHT%ZzR^hp2K%@9W5qyN9rJsLLEL7t8j=Xqg%Fzc z>G`10v}5GbJ9Qb4<7SoZ&$->d+&z*h#CrB|ofv-0d5gGV0?is>f+Gi6Ad*LrA1Zp7 z;pVOE#0xaUg24zc4?Jx;%HQr`qm0-q?{M*teDE5GhhH(g zbX~*vHgFRGx7loFU{?mPA*fnw_>WS|W(YHjtJqiWP!YbTSV)OzxdjcF|SF8pWuMJDgJ z%y5#Pfr85sp*B|loeR4QpNnX>;)7U;8S69~+MU2XK^OL!28}P4 zcN?GQPqvv-bZqB<_J8!EZJbSC!DO3f#rwDe2-dQ~7HgymSg-K9)9lbGXhM?uD*(e& z9_nS#PI(fBK-X4qTaQhYGC>pndxiF6zkbNLH$1&^{8z_Uc@D~!yHZR!J_u5>EI`h? zJI2GPePTCB3Q?)y+>zT?;>dlqYsx4hD6&J*$BWKCM!qd@*agpSGtfwvwVRQ#G- z|C%TP3?+~We}Ezz`$F5+jOU*pR(=+X*K3aQ-vcBu69Z;%Tg0B&0KUQ($EI8V4k~I2@XU&@<{x9GmA~b{U04t+%s94GOq=1(yKi zul=t$xWTIs*3g($w3}qe?MMxtq+&*TZCkk9|6$L);q49*KU zDb)DTd(@}f>B$1ev{_(-E#SwOk+{?=W{`LYki+>-v?4}Y8H(Az3r`(Km;Vkoi3B%E z^?x5neST+n?%XO+a?x`n`Y)gl^tUes z=*3w8g93QQSt@>v1axb6r0>)UfDbcWAKch6{3`MbjOQc>-SRKE;e7XaU$9Rv@u}&l zk=6CB80NNMb45)anPbl=zh7f{GaQPUnGt)W1D!%L5GvNOx>OObgJX8shYh%la{A~bB3Pj3*pe>(BHj%>6Z4GV`5TW3+v=+tf z(7^2`cgR1)5pSnDw22WJuX(on{ss#1fi;4QYpPk^+`+!RDb4laV?_U;qG$s?zW2X6 zeO=Sd2HiTUs$)V<4(n+)D- z0T2HsJM#u)2XVndV8FxPr!p|=Q z6(wSYhinC%{sj#C;N-;PJI{^gsPK8r8#IU5h!CRkc(EcFWAvX7RC^u)Lx+r$B~7eB zf9_N0ZWwS>1{JU6(oGdfewLs=RYfP|Y_at-P8=W82s+w@+^s5SpOtHo(f4%!Y_$yQ z84nm6Ik;g6Wf7t44|cKy?sX>-mM2K}7|y2w-zNZ_$ZcKB_6FrCeJvD765e0Z;HHA%tq8U$+1RJswFWWe zqS|a;8nvIB1>Iluh@%+ws(wt}hsWmb)(pRI~<71TOSWtLe@vYc4+9O6i^JRd3unqH1 zmy_2IiSV4|3m_33NR@)W$R-^j(N4k6{-*JCLi>{P&-3sM*`Xac;mlkr7=1t(vRPyx@P;pTFpvz9e8$Tr z*#UH_3ekq$m75FnLiBUk^v zu%&yL>f$AmBX6Z~kSO9$RRg{batGGu@h;}Ms{oQ6RV@qCjY?Ua$o|we+GGBR>CliV{V+ z28uekhXOVcgZ@hnCaT+b2x3G%Rsi3Y!3(pKE7eQ{mnN)JsIszMdf8hE4m({>MDcBA z#cGvL^Ca>}xmCpSY$mNa%|k!EcI{dwraYYOT*LXb`3-qVYk#f%!td%|#vib=;8Fg; z2a=D(Z#x@WT)jAHJ)C~AEl8{${j*O@Hl$|i)2MGtqao^G2x+m7e)3nN_092T#n~mT zB_GD;?w8#=enk1M(xpWF3T?VNoesQPGcekf>hmS5iW#z&M8z+(8u+VEJ6Kt4eho7Yf z8&9eQyhr2PA@GboM&m#N{L&hX-DqRE>Axj9Rt%yN=`V! zAIlVHELjRAsqqTH9roOUP$g7%bk9u+=)l+)FB@Qp!mQ|PDP@@GXEx?vH+b=y{_jPImof>q* z^)<~}CK_4zN$bF-!2S;65NBpImu~nfP}7QsX|YJbYv*v5!Op*?TZu4@J-zkyqxDvL za?df-m^X8Nzv9F>DkV+Ld(Z5D;1$ss5X2c-}u=yc8{ z<1Z~CCpu|6qPbz-#&OgAUK=Lso|ucuKlU7(l;=I(YbyoxvnrEG*rm`!JowWg5`O5| z>6@5xROYd)ak(=ghEKBjJU_B)g?Lf%^JGFA7<%0#hhHnNYP)Ig^?+$@)WYXk5(+<(P`f)iO zR#hq^W;~*`sbHq`bu*i<8UEX}A@$lXZnIm`79>Yy3iOJ>#Z~w{E67BBl^7AH27%p2 zp&cFG5yYvyMI;6W&hL>?`Z^E}s6ejdw(D^A$tM+R`F+ZpDoU%~a*GntTGbFrPqZ+{ zLM30@;u_B};*L!vV(t63*Ysn``@n7I!5k+N1MxQ1ofNe!GT~1#6-G9V(YL5-$l%Wq z-JsVysPtJ(N2ROG=xpu&i2Dc@%wfp10IvVqbnq4V5*URVs_jYyE(H(UE z4G(m#bO*K}mC9i7Np|VX{XhPHmKoyT?UX=Mdni`q0DTWK{_6nbtQ7jK^hHxLN(&I9}tq0sx1un(ANvOzRUS}VilQt(wyi|WysoYoY%=_Q6^v$_G z)lwtENSJAwsZeE4ElFq>Z}FCs+9fo`UW29)(usaKY{x0uvn4K{&VHe#RA(T9gJ1!5 zDKtEG0ph+&G89>?0mp$6AdWV--Y|d#7Ko6u7gk8l4|%$;=lF%pu%ri3)!B6DwYY`_ z$CyrP)VDQ;KXt(HC>hWU8>~{B;{_DSj#YBPa}n&<;&!S)-?I#M+QSU~I({t*!}s#v zEtac8O`6VGT5kz)g9C&S}!ZY-kV$@a^EbRz1B9%P|c zuIj_lDGdkxE1OveHg>3PDQTzG27pcYj=bx3PUfwTWev*Rn@*kKWLIIJ{SlY?aG=*L zQIuD-chPKqHOxNrMYCzgQCOn6kOFU`C7HwY78ZC!X4oJPDvcL>9{{L8i9ADHV@`6Z zPx4JbOic9NrdGbMK{x#NkJ=?%<{PHkENV3+L6e+L+Y$4BA;dDV?#b7w^Q*N%D}+Sl z3Le==9ZKWHlliKyb$+lutSm0xxv_@JfbE@(+VO+W#}Y;pAxa#Sv{}&V)ZQLLq7F8J z)DL+f-mY9rtTk7JQP?TZhk`J2~@<%M%x3Ukj&WbE|Wk3 z@)r!xdyNq-Y2cPrLXlEH^8pGK*nq)ty0%JBiVpP!5=i)Q!Sg@h8=kIly5zLRnaMLHF(I*& zu~Flt_&Ivi?fpl;CwGPXZvVl=7jS4aq-Sl5#x&1_pY`5L7A!3h%2XT3u`95bXNKwZ z0e5tLbux5Ebx&8krm9j8CSBI5(i;$9O6eBdpww`g*)+g9iK6!`5&jClG%uy*lweYY z@^fA%QjkW{c@5n5_~^hctz?+cC|HjCHh#zoH$gIxwI93}uVS$N_{FS;Pm1?N=DueX zQ6WFMi)DG&i*p7k&)*l_HNa8uXc0~BuhGcUzZ*LO| zQT7(ea9MUNbkvhpedk*(XR<=18KLw|@aKhZ5Nab1k%;u(vlu{ux^Gx9rsIcwv-%HEZ#>srNn!jdb9NCjJEJ$nt&5Z4j4diX$!lmwbJ zziVY0( zTY|`?8zJx*wCiGc(JZ(XRgtC2cEH%#KJv1Dlb`?-tDtyT7V^`09Xk@5!f%I!ZGVdF zn2Nw)7Dsc{V4?HXYCJP;3PRU$LFWL#=L_)7KLEqeKY?{j42~PiJ_zBaN=@${M#6$R zs&D#9RosOIytfB8otNFsN%BnSYTI{gTrK5jwu?aYYTuBCL1hzPfBr}N5uvSnL6uhZW2nJ7}zG7{DCqrb*qV+<4+ z&aB~KC&Tzl3<4gL@L2=M@{1-D;t;FQf2b-Z#K#ZS$er~mA?O~Yp*y3*q_zfz`K55jev8UL*54KMO2==q2B{ZU ze`xK0{=%E5LgZ5Iq}O;HC&}qwYF$8F!A9egCeItuqh(xKsf7E9{4Mp|>SJ;87!%*{ zUn!024zGN_5?Yg&Yb)(f=CqE;2nR@AE~n$eW@x+?5$s1gNM5$sH6Ra;6H+@`X1M_9 zN9?$8^u!%$V(+vNogLl;Iip01Zh`dtgsJHP2X0OKJEwvEsT2!wh^n2TpIQ#}gjo%X zG=`&~P(o$2#p%F)nJ+MFg&cebhpHa{-o=h?5U=w!kuNT}EUUbBe;t+)6&*}oLG%inFuaYEzE&Y_Alvkh={r^( z)91(_|8;d_QHYsS)+(DLl6IN$Ms5Do10oN$hp64I$B1(jux24{tH=N{TztX;n+1_G z8@kg^s^e&S_wID~!wLT3nzYP2797b6m{~yD;mWwbkG`y7g1<^_PBAC42GHE4vzwTR zaBkc|oD0}NM-F3XB0LW*k}YchA0(kYo46JduMyuj^BX-@$@#m2@Hf5_+a&a%)$=)X zi$&M?V6cE8Vfbs&mvp5O^XAE4!FtY|knvy*m?>z#78|1lc5+hb`8#uI^!l!a-T5a@ zt#adZdVD0M-5^V5-*A}8N#N$f$w6W;y&6(^@c|5;Wst#M_Zs|pOLjAkfMToV9b$x# z0=rIa+uRd-k^OM0fAZ~g3w97gKu{EPJY-u?xlEmc&e0KA7a~bc+l;z|NTs(hM^7MW z1Y(YhVCt>=N~djhIO-DbnGNE{S5rRhOM73UQ|L8#q;<7rb>4&4c9VFoTShsSp`AqU zgcBoCiieZLzYK|z*-_-3jz+IiBtkSL8g7oqd#-uh5p3GHuk7xLj&2U=oJ8{D{NUPG za;$F6%+V|c0QWthCmkNL7O@tymhzI}lNCs@v(Q6e;y4Ej@i_^@jZ(-`*4z-el?mLc zi+RM7D68+7SUc^Maf&aeS&x_L&|J))2C>~kUDG1klL>n)6v^Qsod}r6Q0&ubL?wMa z{}40ckUF_wMgm)PdzaY*>8FzI{C&LX|$V;^>A#xKZW(AU4%gV7gcaYf!kBvUF~2_}MhfiZ)wY@;mD zpL5p@DfPSb$M-u#J}u$(X-?UCC0bmt)02_ER=#|J?3r5UT<4-0MPnv61deIDyg*QP zIT$vH!|cFg5UDJJRKG#$8)t+T2#JXt={JPwX-V9jeFE^hu~1t>qgtekgxiUk(#U^6_`zOBZCt< zMkr==GC_n8defGIrk=S|i7$@ec7cTNVun!-BhTT#(x?RBwfi*f1o*g&6GE{4S9j0f zWCDNRt7JFF5(#LLhk3-~G@P>~73=aNKP_IihuMt;g_8L1$DgbFNBft^Vl55X8gEdF zqJ*6IJ1hEBDWe)Uw2TnwjOyyh%;>?d6yE!{pgjU0^^k@?Ht;90uD{9Eu0qW@$ zVS$XGRXq4!nK9i>U$S}%HL7OVd{5D%ODe0Pc%YT-A-9*|cdF$L zzF#{JjD1XCh+J8{aI}U!6WpR}F~&ybVkHt(#A7bQOi+Dd6%Ab}Srk;Vga0}WGvv*g z4)V-qC5bZ&*gbmPY@S--om}TI99QzE#Zg4z>JvLd^7p~f6DeLT8vRApU-}TSjhKle zl^Cw34UOd3xv#NNjXzE$QMx5Z^d_xKXkeG=uwk)mw8pqf7~6UOn&@Lwo2eV`ixFhV z@LZlypn?yfZl|&&S0FAPqki~8!WBfJ(+bitoUD$DxzkP6Q_J^C4;6c;0n}qUXU8+b zWjQ$f*m$%hvFpdChGS1juool7#lg+(1{YrCQV+f3@0J@JT#u5WaU<;SLVpEFJx6nb z8@%F|TCYx(EeLyw_p5eS6>dDKg27ad#&Sazem;R>)ra>+~XBL za{gDkt00@R3bH4OaQU6Y3beadB|f&P7cjf~(OsVE$dmZ7Y^mdfqt%5~HlI%l9qqXI zNoLM)+sW~dtZI>bL>-2|XCV-$w1bN4LFh(x;6c;JB@3yH9!fIWJLEG`FENna2!EM+%N$c9ms7Vr;p(c>w%rLkidiuILyt64h~1&+BSES zm=+ze5A}QW+hwDpl%TRpMT4pP@%3f_w_a{ufAy5?xjH@vCCYy#QmQ(za@!Yw3+m*v z=Skuza)yVQH~{wC?mFF8TyP#l?XA`$19U|>il zWjRS+MfH5 zjnl?QnI3qe&^PXq{O1@uG@GwNn1cDu6ErCiIRxb~on92mzmj>rk#sy~nhH{%s-8G& z&3;-zgLDT`Qn#jroT7ZjKc?4si15jzS$cg@Qr=w|`-CyK=kmWWKJt(S(7%g~&@RMF z-!S78@W1v!t##MXM~U(E#rkMrJ+U1J%!smBQI0H>sNKTku?a4aD97jzWdIR?sdAl& zc;uGU&4q+dW8daaa5j)NNGNDskWP^4R8h6R z!-0g}t6S+Z2E4yy4$dh*du5_cUoA*SStgId;5O5R`ZO7Ma2xC^kP3l}nFf#n3^IbN zWSpILWI2rECUj{&7fBv)Zv1_kjqbGZ+N`(JxQJ`?GVUTXE%W2Olm`)sSDS2FE@gIZto*#KnJX0xwXWK5t)N6JM%(vFO^mR1uzlJE%Kh`2$ zO1@V$IJkd{vGn!HU2c3wcyP^klkt%txk)erfP3gS@gcs1s_Pjc=WTJ}_=+VuKucBVS4zCoDy+JzQ zEQ$PnA>Z8ohQAA(NpjKQ&>|^_s0^F;d!o@4XRpRIM??-}diHe*y6}-Ol~(5H6#zG4 zj)($u^V|7o>YiIT%lYGr_8sPw_7(D!miFU1rtny+SYROI;bWz(qCuzB8`%QIE`T4R zXQ(iX?&$ccA{kb24LU>;5?qmC&{=OeKZeFqeHbuiLk)irAM9~6J^m>B=-sPL=|aNt zjTG&3E3rGmAsra?XlrV=u@FtNEJR7;Gz6m6pgZ^gi0n*+$~mEURK059#MW`Hs`8>a&h6_`k{sh`Vd-!_GpBPNnV&BMku1~qd)?Z0vO#GFoz=vzXuIwTB**rBg+}8 zv(BUI&kSx|R?s63T)@MHS(AAx4$p3Ozd*RE-1IEn{z`nqp{sQceSBWFC%dAipB#{k zd$_Z;*h}BTFeKFkJ>R;5gWdyvmN{Cin}YG~uco~|q}6sahW^sm*?3Z9&4+DzGoo2O z6npXDUv1mEt3LVi=p4G=!|{d+Sw6auAGecKJa~ap53-+-i~TU5o2|tC-mm}=0ZG)@ zMFtr@F-CCf&gmqi)J1;tLjoj%2yAfig#soOW+4GOx0eqt3Wj9ZbPSn|CCowpHw3DZ zi#z(}lA~g>2U)I-JsQv8>wI-)%($LQ@b=&#u~bbD=HmW!pC_MJ23X5{5tgu9Dfdz@ z+~WdbqlY%@K(VBvQQgF#9@U%maP!X%XV%wm_3o%?7B;NuWi7s`RaNc%O4N%rUWt`h zmpx&N*o3sN$kD0;F5$~(j;wwQMjx2N(LHEf-9|Aqw~*Mjl6;=#sQjLP^rK|`GTm@w zY}1XL-;cHp9B^Dl<9OXiCsMKOdmy^VjL&sIII=_FMV)YnaKq5G!qEfmco8cLyu#qi zG#0oScz6F5?d(mMzWPwDIF(&IJoRv5mWAr-P8sagO&X)-O^%6ZXOufjRsd4d{$s+E zNw@%7oQ<66CE3t5Cz}$}$F3yep4V>_up2WS2~k}su(qaV5VCT=hR5yy5;eoJ`bQo< z=w&-A<_WE7JOt_q>%gE|2hgFCfvO$-kXDwlDV79%K*;+q01V%B+U3@#p4?&UA&tQ= z@t@a_X!hZHCqk+AsChTh0Ju(*0V!5q+{l-3iJuD$FLJ~5V+1;S0e^xN%N-<@-Z{IL zY=)~!>7gqhJO=7?*Pr<&dP|*u`%+v){TOx6e1BO+j|eri^QGhK1(0bthrp$a zIE%NUA_5^~1dK(Wt`J4Au4@y0Tbc+ZQf`zR>6!J!o=)Wl>p|Iq(CU_cnB2 zSb+7<1OBMgl&n>qA03mmkBGYLgT zyI@#Af~gpqjt!6@vtWLT-qPB{shWMs%LNtXKdOcf{6?r{_p`d)B0+n;)C`o=&nveW zhb+l9hLpFst;7d@#HPtBQWnBh}ZiotIdC~9k~oXKf@Tz@Ii(R+;yQhgoMjUFTdIs7z8>m;i1?L&`$v| zZ|6s%cpvw+?yfZ!QOlB2@K(!%U-#(E_qjZJ6B}0|=pf;x6V8!F{a^ULwHj{v?$hp< zk}F7N4y9=D{?;d=X)JADc*K3fFI0UFsXQa%O>tab^~B}m!#0Wy#hPNorZpQMrnrl7)k9T6-{DVa;HY)jHvuKm-8&^Wh2Bn9!HD)O(c1i$LDJKDHK z)-XI`Xx8_qQ~nhLL{t2at3$$ff~=|70)?;nPBQLgV06i`JtZd1Q&GdOb!y%Hy=y-V z5-F6!lFnB)1W!#?(Hgun4o;Et$)wS_PJaq&BqXgDgo&fP1~9E_fo4AvA>44%RRGJ~ z2n%Ewl{u2#S8C=X+Bsu7XoYwrM$Q?OjZiz4*>X!SdN^8ZBck*lk?|5dl6z+y3D3+z z;2HrVWGL6y#^Twq+3t@#c)^zNO@pKJmiWPfRW^BEp0{U;(jGdCs4dxOdR`X}NN%oi zF!cFu%{1CluA7Jpuv(3fR9FrY=@CQBB#W2=T6Ad8a9=2i-5Vj8M9M7YmXzXU&Ef0rf z4~(P3MS=VuVrA2~{^WbFPdD?H0p3lNweza0bV^0I5OYF>iOkVPj3ExA=aK%>f_?%L znYiEILqaZH&yGc_({rzk}w^1^1dn1rRk!u&~g;E0RDO@P9Bh)*@pIp3{f(( z!&jqvZlMZy=kr`MmdUYQsA5G%kb{WEH$|PRdXPVj{0S^LB6>ff7k~fmK|yA*?*$VN zGv=ttI>0e_RjftwnDL`kHlBjqV~Gw1{V#4M;x!uM9Ldd2FNQC)vW7Pr-h6B%g<`ES z@+H}0Eby?X_Nu4_uM^cZ>$b&Rv8^*^r-)_R*xl*X-LwUps*9QA-LI5Ny4z^8RXa%! z12CXCCz0Aom@jIbAl(cvVTaJWc{^b3ap15x%!X1D0^yPyo=psAt}T|GeTfC$dqvnT zE@#`p3s<%5d-s^ftWYYEA}rATVI$-yAo^ZU4hU@GCd;zsG$D@2WUdMl?79Itm7@5P z3eOOG*av=8lReq@uI^_@xKYpR;dM`L((rGV5r1d(-|PRBnBT9>YRL(+jI-C#x)jhm z12!}k4ooiE7Xd0 zMclKLZvdN+??J1Mj5tIcI4Y;d%mefs3~X2sHl;IOk%!V=qbf%ONtqXa-MPi>0B=Nq zfga5a%ucWZ?kyNR{q0Da(DR}a_qb8Kx)oX7`?fHFhZq`Q zvkBZ>?Sa0-*h+1g{JCzK#BkEsmuoxPqxbRHx6AwT?bT_S&tDDnD`X)3mumlypN7TijXjTUNJ>UupSZfo9CWra*Bkk)428FPlyIKvM-h~`0Poikr z@e-j2%t=BW&BL(<2Lck6sEm?H#g$WsvcU#~@AkEequKmC7%#RX`@6syHrd{Hoh88| z7n?H{ETxIWPd&kA1KZQJ)pp4Pc8v@RNb;^W%Ngc^uR>3>F7x7$*W3y~ITKZkIz>i4%8*CWHu@gayyL+!_me}G%v{cl z?pZH`MI3e2L=3)p9uRj?5uUv&l(LSpiKaoZe9^JA#a~nK^fJ;gLy$uT?ahg=6-Ae4 zHdUbp%J~arT9h1Nw@EWVHYW5P-H<8eLN8_F9>SbNj(Ki%{OZ5k5C#l%Ri9~fDm zwPNc?;c^~YPn(2YcL(I#zozv(Q&b`0xhQrhVvO*#IBlBa-LIg7Hf$mtX#~h(R-N4!q%Y*M^8l;Qe089NB?$=;qX}9=j3NaG{cJ_Yt$`1wB($#H0JeIr|4U|1};=aM&0fuZxqIMJ*%tK z4c3ud#R5hmDOSGWj-tpUi3-SEJ#e3f(8r!!a2(dbK~&QBsxuK8H{Txn!<(fSPUqQn z@>#x>JT)y$v#PJyKgOI1^3!u6XD1Lo`?&CVMAb=5?PJ4_u@DsqY1Jgipoi=F{-FA6 z%PD%|?!Ti;DU(WXtP2oz;9R+XPB2yZMceB{Fw9K?UWelBQL;a*fID>hB(>oPPFY2J z*sUMJV{6g!?DQV1ja^xnFFvZh0E$-iOykm({V&A2~^)gBPy{e z(E1V0HQWKL$EjRp6yi4R6r?}tzsgs=Z*V{$c7`cb%Tx-&P3Rrr&tET%8u~`Kz1&xz zVz%|tX!;&TionGAm#bfYP=RX;E)>CU@i`6V#hdg!aTCqBAq*lGBNyEO6I8O zMu8;CqcHE`#D^KK{r;hCO4N#)0-9S{gi85@uKUw2RVn&fVC4LZ8m+Pm&ToE449!anUJ-Z||A~%FMcJpPJT{Smr!&leYK?M=RGchcl!BUUF7mtb60OZ8 ze~QNwQkc-%K23|iLuQ@h+xIP2kKaX`RvuwJs4=6TO`TrvYKBKdu6Wqc>7!Yo`F*A? zm5l?tt}uIbAGYI_S|N>u()=inS9`+qEQ%}4{r^6_A11~+!SyV21CUC+#!_qpHq`nq4QhmPnG z8xT8W=wcV-#I;M@%%HwFe#<&=kGn{HbnebC^JFB_=PqNL>h?SF9Jj{Ix;Bz`R|MKz z|6MY*S>z`Vq@BykXY+j>OaT!v29nU+VZ9f){ij(whTnEy`%#=89Idu+)-zv0g&V(W z^`oxTALkpiGF5+{8LN~){mNeB|9qml*?dlz1HJpM7O!BPOwgw<0SB%-9;Y11x(6Hj zC&VrTbJuIn_9Uu*SBwjrxs}Mc}s1CzNT2Hc19N#yM?8 z6t<+9)NAbBwCQbefT%}y#P#>LMkOV7IMCRwdHcd*^8`AH&SYlL?@$ffg6Y3!Phs-R zzN`H&UU^hZQ~n)fJiGF&45!57MvsF7Wv0!~b?MDjn_HBlVeXy{ zeZ~{@C1sbUH_VQo=OH7dF2C$g@Bv%{wibi|O5!`vn#e$Ig7Y)BpneI*)U6!bVi=~+ zfq7EYRZaby3wfM)=e+?sqYWP3SZw>h%W`<~MkQGM{5NBSZY4JKgYkfvo@|A z4&7E3#I6;P_%sPf=^YJP8BDj9-ATi8ubwT)L=4X93v;wSDC;fcD{fv%>j%Dw7gglA zYvP*403{5CuVjHAC9AZJO$7pf|IRoL!nUO>bd6GRDcr%M{A?@oK`=w zRID(w~R-hSUemb zZ1`}|%z?KhJ3m~0UfuoW1ZO)?semw8IE!8nL77j5K=|Vjyy^BPjSR|U;3|V#&=1t< zgJbRf*k>r88oywNTuHUT$o{&yWX^6?i>qC$oP1WjDdeZmoq9!!`k_i~+Ap-7C9_tW z_^ILHFMxVrfi-D4#7ri2WRzu=C#h||Fn@R7{PG%?w@J)>hqcCh4%s693pmvWoKC^- z!%r8G)C1SEAQ{g@48DvUn&TQ-S`oncN3K6`g6y`6A6=q^-Q>gjHr&_pi-_N+^&H5W zjQ-gZ-XA(xK2LTY=QKQ&jA4S8VYG!qCK??;$pDrv9`k`~2D`O7vEfIAz0?HLlVNPo zQ-NN`95&CF$&EwqhuT&NIx{xpj`PN;j`84VXQb#bkyiEM$VfQ{>J_bOlTXi%K60-s z)U@`0LD|hfB=i7N6w@h36{|$Q0L!hbU;1vmmqM66+W)NfH2-_^Pe!2zT!!tRaIoQu zSe$LsR)Rg!8w{sybh-L;zr*=$#=`U*i|@QOLh8sy?A}mua;K46;yo6b=1`qjjr;eC z9ap*@{FGFEDe-#M3<8Yh;O`Ow+p~0{ACBi*rc-JvkS7k_IBawmG}fn2j3dC?0UADg z5?4dtWnE^y+nRQ=RsVYEgf#13&X#0(r?Ow>W}yM8KRO>^g5Iju@%iX~*;p$-pbNL;dGGj&U*5HDOL9m^Q-P>*nz zy2Ruw{DTsnj}T|sdCWem0ArCp)1$j&!EdVJ57 zQjYyFmRWo3o`-5%A#Ph9Oc5KJ4%CeT*KjCT!&S>qSVrQY;c_X#|4_OK4VKIpk=^o+hvg(cRq`>m0!7Hrt7q$;|^u=B-uEL z;yx0BooA+Bo7+>hMhj7r26q_z6q8p6(bDuFY^Dr&;gpu2ctbYf1*<3T;iuVC$eWqH z`lEFj?=u;{SISgJ*(X}GxU5?>bDO)7BTfPOr#GD5uXhqjRhA)tMAb<~qViY7H75&v zM#fUyA?`aCyJP=qnSHKg}alvVm?;1LnJ%&d%S<_TV(- zs4#AaH=TSRB_oj}W;N;W*vGAV(tFH4{~57UR+SGcwztx|Wk^zc(DvBS^q2vYaC0c- zpffJ$^e%HkQxhFXrK-gb-MjqpeOckxd0W4H`#I_=D9CYp zi2+hdCl4k?z60*x-1iczY?6emPRrPjGekH8_C^jt4l7N8J|cg22UZ=)7RaDYJUpZE zfJZ`R8-p)8x`jq6mL0SF)jhJu;sZvblqZ1v-nIaM&@=3`USU0a|}ERB*hBke2PI!w0&$M*33+ ztCk-|0}(uMq!0|@WcJ2V_w(%A_HHRkIR{T$qRu4@E|DFn#kR# z3~C`jxs?&a#&f*C7tsS3{@+uR(1068p1{@rwcR(w8GV6c$d zvbW+*r6!_va%3U*7(!kOT(9P{4^Pq~q0Suv+drx!##n;~} zvr{cEtXuu))Dl`IvTyo~j@@aV8)Do7jvErxdjoxb0Ljs{qTGU-B-pEPQ!#ea zBJbORoIZ!^NN~0h5G}k=`l$G)XZ9g~7%;tVZ9uk1t|0h1aKlrXX;8hoht7@E2x*h^XBiZ~O(d>Pb{@4kD^9bK~M#X>e5JxvrsH~R^wKZj0VJV#e0e?*(MB_KNIXP z=YKKQwT*e{AM)vy$c~fm?7psaP{Q58Gzk#d#tx`L8j*E4EkDc6iabM1C+3$NBw@eI zRKQ7CDFJ%l-#oK;+C>=Ne8clbn6qdo>~NODr3`7XL_Dwk_`aQj5u(=>Q1@`4b&%-j-lK8*))g3m z+OAofUkkxyv8GxzT>)STZuD9&e1Y)rpzT@eJ;Bv1%-lcu$xmzx|9r=6 zJjUQCNK)V8x4nv z4T?}WXC{*2+mo6=@YGMk&fdb1WQ%CB3zQ@^JvC937-?ErsQ&y-DTlNUc*(4KL{_*BNo zv!8W;llnSF^UMzo+Hbxyy7P17pNRUSBzW655_|-HA8M5uuqo8$P|F=&Dy+GoEg;~X zeFUjE=>Ba@pWn?L8Mw0|d`eX1W*oRy$F9MpW65P;gfizr1|cF)M8dLjb`RS2Z9D2H zOl=Utqpi%aOtC^E>b-br$~nS?Yrj62ynoSzY0R$ZvHbXXy-=qE60zAJ(HHPU0d8%D zkCn*daf!t}*E1Px<@JGW0lTLQK}!R0zPIBBL0k$1yQqFO?`z({7VtE7PlHBbaCwym zJa?d(B(x@7`*9%4yBk1p1DcaPN>~OF7K4HG4?eIdO#mLJVv>14}AS(}r zOM%`&QsyqP(Z26%gx~BdC$-+pK=xaxd?0YvT)^rRLj~!g7o(0YG`3 z^zy>xu(~Q7|1s3N#pHQIk6fiDy!VxyKIp9+5R}Ep>x||>err3Cr8J53J zrMGK4dETC;dl`@T$TUy~Kfi5BDJjz*M_!RjP;_1Nk)hw4H_X$!pD;~!>bN_%n*qA- zE)V!5mooT$xQbFea6=u!tVEzU=95vJgxq9ZBNvx67xg6-2@rRySz=1&R+o%KEVB0X zx2e?VAXgeB8s1#KDkRwK@WyGAi0Z^xhk8`rKnUInabjmZBo+ewd(DPout$VZ41#K6 zGEAuP{)vQdLiB9Lq6IB^{NKC(9d_X&NW7SRLJ|VhAzSgu&!HW`P_A=GE6%ZqM2|i- zfQ^<)-C9wUT8$oe2F3sugxSpA_qXh9<)@QK*~8VN*6!G`;KXW>lOLA%QC!^}^<+x! zccE4NNj+I^m^HTQ-Yj3EGO_?!OR{%P;wySV&0^C_+X!ljZv(iPL9!<#OM(gLMmefu zcYhrc*{vNC(D_r3HRy%PB>xS4{QL2i)L12??R2Y>CMX04O_K%tXkUV|A*nwu*Xvu) z)e2F^U#uKICYJ_tlth*Q5AO(<^C7ca0daB%3EBl!y!uV+Ldr)HNW$ALdcA^z@9y$w zCsLQ%e^TT8<)XVy*O8LBW-po)gQE!?!m!yQL}uiO*Ta3Ta7_YinuBK|QI7;4g__>z z!%_&c?1nd(ag<97!K1B6o+b>H#SG56ziT3jhZFchMxNyIiS)a7HmtqXm2p%h*k&FLlHB6tdvD^pLO%YY&f~C zHI8*8Fb~*@?v+}v99v27P$CFSo8b|_{k%QM=FlO&<$Hg{#Dsd~BuQB8NFT0R!c_a` z$DSfdKqCYGm;u|j2gz+^Kst?&*kl05p6U7q_c!HO>$iv_%>wdp0c`>ar1qG;dt&d?i zt8OsHO>njFTpj~Tao0(2Y2aIPr#~-CoO1u9vkvDgVC!(kl$)x+F=HAb%3E3tb{x66 zd&j7Q+~gHr7Xl<0MUV*)#oF2mjAx8 zzF;SAT_>KLFY&`XsMS{iLZp#!xW_bgJb$wo0%1&5AZ{`|A*emF!muje16H7H&4#gr ztJ=Je_cDd^^1bT+J$GgtsK0i$MvF1HkzbE=Evbx8h>d-+O_-VjI~+6wgld{6V^55w zwu-9vbd4)V7eqJjGP~QIfBf0|-S+c!vkibgj4#?rutG>by4N6O;@>uBoribR&Ti|^ zE4n_c)biK;Ms?#+%@I1HD z>|bOUJST#Z81NaPSBPtG(B1QEa+onS@zhMS7Ub*REIylx9_c;dOL-6dgMNfKOk zaJx+7;s;Ay-MM`EaRYBL?;*W!qX_|lF1wI7@htE@&h>n!7Xj` zPfTO5goNTRWG9Yl4o)uk^|+3GtIK3-(xXYGe}JAxEWytdyN#ajZ^ervyrR$gFW$A9 zW)=Acj9-p_UP8QCugfiz=WRS^BGUM@s?+s{%Qq+_Xz9gb98*yG6a;=OI8q8wIR>8#+G8jOlycG-(8B;C}J7=?a1&+Ym z4Jva`*{PN=T7k0&Z(qwz;r%rPCKRn>U&Oqd+2HkuW&0=nBK~QAY1vw(;PI4+{3G0QZZxEIY^ns)w#t8^Ufb74}93_YH8^Gz8 zqIX@8q->>C;IR#EHJy$2{arX)Zt@xrV!7`f(>PJf^WyoU=@mbhUA?e)oy5%7CziU{flR%6GNww-@|Yu{+ar4zfR%$t$8YVQ1?Pq`*FwOl>=h3bP0F+_#w^C~u%P;P6%kH55(HC{RHH#*FfKofFbPdoF~5gKtHtk7T}3(GVRI-%K@6 z>?;Yb9uYdd6kL`IvO#`hfTrYSlkF#`Unkdi&o3R=QpchXgDC->i3v3aaF!nx0vtRl z5BM?$SkPRLhHmExE?)MbaT;G5PC6g~*ts09_k+7j6Y8i}bmb&dK zRyejXp4~!%q}0>Ku)zY_Vm); zXv?)o3L%Co391ak$4NQt4!H}twAHPJ|X0mvws_CHq{NojU59yQ@$TcW~m`s~a z&_!Xr#Em|?*aS7NN5`tyLBkMu*$PnVL_ptCKOw3rJQtgH=xm!W$xZp465%?=tOwbA>BrLV!8BB*p=?ka_K_CbY;+GDXF`MYm!QFr>!-RI0&qrOOXO#e)96;Qy*juA2wr-meaJ}k-JB8IP* zr$(lgGk7;7CPH7!P!f}TYP+=m#m|LO1eIWedmI=zle6r-mIF@~(htk4g&NA)!l#`u zt7#qsm2t9)?Bx!vZwA9ZHDOx4))T#_nZwA{mha#0^zA-4oQm4h-$X?6``Zw|Lz z%r}GE`-P)XgZhMNptWe7{?>Qp+Wn_6B|-duoCt8oFX;xjbaU0G2$GURZ=YTqW5ONu zmNkJlfiosaSZ4bX!z()!DAmmuJ}AJ!QWy_#mP>7~dg-)-N&Gc!y3pReTj(+g!n1%Q zjKQGrL1WhMvBAwdC-3UHe-c~CG2fuZi8eCUX^ur9ZwYk;B$E(@FdZRiw8EiqG6PoL zvYFh)Y_5vV|FpmL5!U(_@zP4;1D=djT89avM$UHRHjBP7GgkZaGI8cr!DZLq4zd{{S0~^X8z|)ir|egT>Q66!0CkH z8Uus$d(}R#IKUo>2pc>)bmY^G5~rc`)k5;3ASnxe!cdbCd)z#!=$_oB_%q`R2JZ(x zSuOsJ$)xR|gABRZG?SM7J(DAx_I@jFUOv;s)E!;oH*8kV1CiR5#SFfU8yK015bl4s zhcMjriBaRh0AE2`B!?z=$sD)EIf$fi2(||-2Fj0p*b|Jiwq?S!X7OPNKoxS!2>@mIXulHJpq zM|zraIH9I|BMx+2VSlciPoO~wf$wo)_H_}pEZ zrJ*|p{XwZQihy6if)wc0t)PB~!M*yFkdppqHY0@_$ccn`Y&o0x^&X+KLo0i~2yNQv zbf?G9`t2X8(tm}?zohgp!%kIiEN9-A^M{vtXe^~^a<-D5gWZvUHS5_0Gb8^D;@%z!uLGwMyAy=;28>c zWW-$k6X1ar&rXz8cLpj*L4LJ{tJWb_oNTnK`3I#Kv~lhUs&$+5@riL0X9Ng>hRlj(URstLV&4>m%?yS-+cA1l{5Ml9aK1nMvL zNlr8P$1uZTECv4VKh_0bIy}kWN6#J1Tlvq=c(YBQ<_d#0#=86r14rF;JyzF)mfIM^ zAFdF`VI2W?8-rd70#yC44fQ&4uQzK%-%n_!hT?ofmu4jGHkon_mERJ7=s!L!NRv4k z$y0u1U%xxF6_s`-ZE{{qnVHr2a6oR4A1nK{5LF)ej0G+wQ0l`_dNSVs6iagBYyNE7 zWT5PCe9i3tu5O^5HIkL;6|tck2I8}Hy_|t}oy8}u(tY3UL#9&?UqN-eBhFU{SwK+t zWe=zqrQw`=T;=hsJ)M2Dgt6m<_NkX*$L+FnFP0Su5%4dJbUfX5DTAfA2ea~H9cte- z`xs@{XBsIPG0Ak1RwkFA=4+DFUv#_WF9|A9WkG5YgEkoVB_V&}WvMpk6QQL}hcHh7 z`V?^Dlrd*<$e8CZ=xzZIY0?7&iR_8V&>5ftQWo)CE7+PDFn8J}r}WV);!74iw-a=f!ai?tjUB%fdZ$w{swwo(9OH&fwqoiqD4Pcw zL6V?ecU~5|w|^t=D}d>BCVa><-<^NO57c9-@3*B;)^1PlJV_CB-H`8m0>vK8!7^7m zVSK-)p#O+lV4N7#P*VV(9Yh)*M*vrjS;VpLy3iAfPn&63mlo?R=Rc=UFdpxkJLTxc z%?~}tQjU-rUfEX6P@e~HPHz;$Vq5FuPUu}K z1HB2taL^XywicQ*!hX*5{^dOR?7T`prVI=$mx4wDI}(uwcZY`zj4gGyvePvD)h8-~ zn>;#hcl0_g6e%3bY88^&E6b4p-6NtP^&DW@M{&Rdn7YP;toKUZzWMM%JQrzrwbku9 z&{O1Wu1g5S&>JP7Ev0h5zq)ZSBz7pkAzbQe@dPc*Ex(R^oPCV_*LvK0Vdvy>!=ja5 zNtJ$^UZ&(J@4SEA%kXN4SMBVvG{EEG)X$o2ne%&}-R3=dX?sP7*d3OG^88!@=zwgpN91lMyDsZfvb*H+w-DP2WziP^j z50}4TMMOZx$JeHyaJi7h-IEgwGlz~}N71txpYXD+4*<*Jhdq6_f_!<8^M+LX+xKj= zxD-9}R?zRs={-19S`a<$8a8MeHdIw@d){~FC)V)(y|aru6myx2t*Y3R<>C{Ev8q1@ zZot91VYqU!7` zCJQZDlGL+c2FNMNtoajPbtOL50)Ef*1UYB<)7VXl(|yN{QY+lKgx4G|-@dV}8njvmkLkwq-Q*iIJODLl$LAc>Wqj+kVWhV{i=kYO-6Ucr2)2 zv>UjRoL7@!iU&xB2yqrL>!tG#L_KLZYFGB(eZ=N&9Im=!H0i*`1ZQ(PlJ7wsPMSh+ z=JyS0WGacooXKE_or9+&>3n;@WMFL5FZmXEYljPh|eO!I3n>?&(>A zbM%93anFJ*-;(cpR1^m`nNxN#;_+ESuMp;hTi-&C?F%kU7-)sUGe;$gp}rEzAr=n+*349NPpMt2T30SGbg#D zw=%X4{??HnzAgHLt%D;?_dfYySmRPh^NSnKj#${KQ)ZK}7gemG>IFA|bGp`qs##+- zHsmD2gt=o2_g4f>|Cdbw!SQXXIlg4~a{@E)^2w#^Kaa6*Lv}2DzJkrqMJm8uldM6V zcE~4oD##r%ZH|4bPw0kqD7ihoVKBBZu1k=h{kfyf^Bn)C7z2D2f?5qOvl|Ak<@Y@= zIbIakdn)1xJXiSWw8)(1;EsE_i#u15{)6pmiI$bFa}~~lOa%=*`FvE za~BJ@6aTFLfhYwfIRHP(w9VQ^{{ak8LhRVmnb?7GOHW@_WOf)~xKe_I$U zxy<-qV5XAocIo1OrfZXI3X_17D%gWc>%_djYEZddijIA?9R%IhgFwxn#(-)C*kcRw z5!Jp7!4N>P`@p;p_5~kTO`N>?#kkY;T7d_7=fucsYhi5t3j;%01gQM4Z}Q5-6K0)? zc)F>~TI7v|qz+Xq)A&w^TR{F@G;J%;AENe)7ZJ(#eisVdI!jx2CmX&#Brq$LKi={) zb^(^N0HRw77-HRA!9qYi0pE*3{Mc)<@U0nxTQmhsOK_lmi$#|SHSTkj9tvK9#;#~I zyY~Ylx-GPcb#r=s-j3GdEsj+>PnC?vq7Fz>$m5K?W=_#sJH|@8wxWwYSI0g_6fxD? zZ%ixXecTzO&13i2{P>x!=`0WQ@v+S2yfv5pY;S2UnJh3bRg~TGOaB*fyltZk&@=6P zP8QCsBlwu+AH%jzJ>im=&EVb-5rWE1V$>aN@R`J#+jdUQHl)STs?Rjc#<{9Tro`q^ zn$OtO`tOTKT(E|{b6@&VUmK&ArS?7%^X}i*WnQM}_TcEoh0viF@_HKsn@C$S%tKG( z5|zShABN~@<^P^#7Xv$|e3RoXJCPcivJ>zI7Me$j@bhraSBU$QVBi7R)N(@>yq84c zM}6?o7KT@$gi9kWs{go`ZT7j=@afB67+aFc0=~Q;gIwziRBUm=G;*{@wrcKzefnCL zKCkgPmti)3!sLZeD7#Q<48ti$I`i8gTnkdW4Q)oFAozEoS77- zVybB7g`VHFH@qXvFtcyXyW`dWB!!y(<=I&r2T!eTjrK)HjD^6tYVk|a*B#sPG_$n% zQT&*b#RX{z>lZ?(0(JU&fFRKxmq22Qc><%q4c&Xd(oRtHNV{WaSPUX(ye#!Oy>KV? zp0HXrV&eFx7eojslSaep!CAqpePXoiXDQBWaU4DdS+BJmAxq7RFgY?)$!n-Q9^JQ6 zA>&(`C%-I(+MM_P_Q?l_QajQ=4$q$d3kMo6c3zV1#^m5zM^~T5Ep7gTnQ|1hN1@1~ z3t)C=@jJ+sL^ ztLsT>!GGZf>!f5JcB;V;XYGVJd__3egI!Zmp2?h`(}gQlL2NsNx@nKI3{d(UAjIj_ z2WL~Du4_`jA44aAK_jb69RAiL)T#oP6v2Z4?7zya|~Q<7(gj}GrzngKEwM^PsbyRzQ=p%?-v=ImHQQNj2?OCt>3|I@AXQK zduCJDX5xI&|FH&pP94{)U43}6eg=>%_oPWDvD_9TP6BI@1MYG&T)iC^|1bI-2b z%Oh;>Hbyqi&8wnr*xoszw_mu~zTrzPdBAaqciF~!YUoNma9=U+tzTA>|0#@5n$)0h zi*w;kIXyDiOGQfkg(&Cu#OS<7R?7t%OPlmEfzz%45fXeHBu{b>rEQslmRH<1%TC07 zY6roqZNw21W?|h2z)p3w6rGAM*AqLDI}o%tJx-?|IN3m1iAdel<_`Z+B)pe3AAXZ% z_{3~<)^)$WletIt^gWxIe#^7|lfluDx6=x%;%?%6>gmQ-4 zvD%Gk?UFZs_Dk_x40?q3Y>Kb&-;-Lt_4J%QT%T0e5|v~h=bFrY`abRD^TMCGug`e@ zxAkhwq*r%FtfTI}&>eBqv!udt9cF zR;U#;mUo~1v$QjVlW(mHm&}tA{GhPWeVmarOzG + +- [API Version 1](#api-version-1) +- [API Version 2](#api-version-2) +- [API Sets](#api-sets) +- [Authentication](#authentication) +- [CSRF](#csrf) + - [Get current csrf token](#get-current-csrf-token) +- [General system checks](#general-system-checks) + - [Health check](#health-check) + - [Version info](#version-info) +- [Simple query APIs](#simple-query-apis) + - [Get balance of addresses](#get-balance-of-addresses) + - [Get unspent output set of address or hash](#get-unspent-output-set-of-address-or-hash) + - [Verify an address](#verify-an-address) +- [Wallet APIs](#wallet-apis) + - [Get wallet](#get-wallet) + - [Get unconfirmed transactions of a wallet](#get-unconfirmed-transactions-of-a-wallet) + - [Get wallets](#get-wallets) + - [Get wallet folder name](#get-wallet-folder-name) + - [Generate wallet seed](#generate-wallet-seed) + - [Verify wallet Seed](#verify-wallet-seed) + - [Create wallet](#create-wallet) + - [Generate new address in wallet](#generate-new-address-in-wallet) + - [Scan addresses in wallet](#scan-addresses-in-wallet) + - [Change wallet label](#change-wallet-label) + - [Get wallet balance](#get-wallet-balance) + - [Create transaction](#create-transaction) + - [Sign transaction](#sign-transaction) + - [Unload wallet](#unload-wallet) + - [Encrypt wallet](#encrypt-wallet) + - [Decrypt wallet](#decrypt-wallet) + - [Get wallet seed](#get-wallet-seed) + - [Recover encrypted wallet by seed](#recover-encrypted-wallet-by-seed) +- [Key-value storage APIs](#key-value-storage-apis) + - [Get all storage values](#get-all-storage-values) + - [Add value to storage](#add-value-to-storage) + - [Remove value from storage](#remove-value-from-storage) +- [Transaction APIs](#transaction-apis) + - [Get unconfirmed transactions](#get-unconfirmed-transactions) + - [Create transaction from unspent outputs or addresses](#create-transaction-from-unspent-outputs-or-addresses) + - [Get transaction info by id](#get-transaction-info-by-id) + - [Get raw transaction by id](#get-raw-transaction-by-id) + - [Inject raw transaction](#inject-raw-transaction) + - [Get transactions for addresses](#get-transactions-for-addresses) + - [Get transactions with pagination](#get-transactions-with-pagination) + - [Resend unconfirmed transactions](#resend-unconfirmed-transactions) + - [Verify encoded transaction](#verify-encoded-transaction) +- [Block APIs](#block-apis) + - [Get blockchain metadata](#get-blockchain-metadata) + - [Get blockchain progress](#get-blockchain-progress) + - [Get block by hash or seq](#get-block-by-hash-or-seq) + - [Get blocks in specific range](#get-blocks-in-specific-range) + - [Get last N blocks](#get-last-n-blocks) +- [Uxout APIs](#uxout-apis) + - [Get uxout](#get-uxout) + - [Get historical unspent outputs for an address](#get-historical-unspent-outputs-for-an-address) +- [Coin supply related information](#coin-supply-related-information) + - [Coin supply](#coin-supply) + - [Richlist show top N addresses by uxouts](#richlist-show-top-n-addresses-by-uxouts) + - [Count unique addresses](#count-unique-addresses) +- [Network status](#network-status) + - [Get information for a specific connection](#get-information-for-a-specific-connection) + - [Get a list of all connections](#get-a-list-of-all-connections) + - [Get a list of all default connections](#get-a-list-of-all-default-connections) + - [Get a list of all trusted connections](#get-a-list-of-all-trusted-connections) + - [Get a list of all connections discovered through peer exchange](#get-a-list-of-all-connections-discovered-through-peer-exchange) + - [Disconnect a peer](#disconnect-a-peer) +- [Migrating from the unversioned API](#migrating-from-the-unversioned-api) +- [Migrating from the JSONRPC API](#migrating-from-the-jsonrpc-api) +- [Migrating from /api/v1/spend](#migrating-from-apiv1spend) +- [Migration from /api/v1/explorer/address](#migration-from-apiv1exploreraddress) + + + +## API Version 1 + +`/api/v1` endpoints have no standard format. Most of them accept formdata in POST requests, +but a few accept `application/json` instead. Most of them return JSON but one or two +return a plaintext string. + +All endpoints will set an appropriate HTTP status code, using `200` for success and codes greater than or equal to `400` for error. + +`/api/v1` endpoints guarantee backwards compatibility. + +## API Version 2 + +*Note: API Version 2 is under development, and not stable. The guidelines here are subject to change.* + +`/api/v2` endpoints have a standard format. + +All `/api/v2` `POST` endpoints accept only `application/json` and return `application/json`. + +All `/api/v2` `GET` requires accept data in the query string. +In the future we may have choose to have `GET` requests also accept `POST` with a JSON body, +to support requests with a large query body, such as when requesting data for a large number +of addresses or transactions. + +`/api/v2` responses are always JSON. If there is an error, the JSON object will +look like this: + +```json +{ + "error": { + "code": 400, + "message": "bad arguments" + } +} +``` + +Response data will be included in a `"data"` field, which will always be a JSON object (not an array). + +Some endpoints may return both `"error"` and `"data"`. This will be noted in the documentation for that endpoint. + +All responses will set an appropriate HTTP status code indicating an error, and it will be equal to the value of `response["error"]["code"]`. + +Since `/api/v2` is still under development, there are no guarantees for backwards compatibility. +However, any changes to the API will be recorded in the [changelog](../../CHANGELOG.md). + +Under some circumstances an error response body may not be valid JSON. +Any client consuming the API should accomodate this and conditionally parse JSON for non-`200` responses. + +## API Sets + +API endpoints are grouped into "sets" which can be toggled with the command line parameters +`-enable-api-sets`, `-disable-api-sets` and `-enable-all-api-sets`. + +These API sets are: + +* `READ` - All query-related endpoints, they do not modify the state of the program +* `STATUS` - A subset of `READ`, these endpoints report the application, network or blockchain status +* `TXN` - Enables `/api/v1/injectTransaction` and `/api/v1/resendUnconfirmedTxns` without enabling wallet endpoints +* `WALLET` - These endpoints operate on local wallet files +* `NET_CTRL` - The `/api/v1/network/connection/disconnect` method, intended for network administration endpoints +* `INSECURE_WALLET_SEED` - This is the `/api/v1/wallet/seed` endpoint, used to decrypt and return the seed from an encrypted wallet. It is only intended for use by the desktop client. +* `STORAGE` - This is the `/api/v2/data` endpoint, used to interact with the key-value storage. + +## Authentication + +Authentication can be enabled with the `-web-interface-username` and `-web-interface-password` options. +The username and password should be provided in an `Authorization: Basic` header. + +Authentication can only be enabled when using HTTPS with `-web-interface-https`, unless `-web-interface-plaintext-auth` is enabled. + +## CSRF + +All `POST`, `PUT` and `DELETE` requests require a CSRF token, obtained with a `GET /api/v1/csrf` call. +The token must be placed in the `X-CSRF-Token` header. A token is only valid +for 30 seconds and it is expected that the client obtains a new CSRF token +for each request. Requesting a CSRF token invalidates any previous CSRF token. + +A request rejected for invalid or expired CSRF will respond with `403 Forbidden - invalid CSRF token` +as the response body. + +### Get current csrf token + +API sets: any + +``` +URI: /api/v1/csrf +Method: GET +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/csrf +``` + +Result: + +```json +{ + "csrf_token": "klSgXoMOFTvEnt8KptBvHjhlFnW0OIkzyFVn4i8frDvIus9iLsFukqA9sM9Rxf3pLZHRLr82vBQxTq50vbYA8g" +} +``` + +## General system checks + +### Health check + +API sets: `STATUS`, `READ` + +``` +URI: /api/v1/health +Method: GET +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/health +``` + +Response: + +```json +{ + "blockchain": { + "head": { + "seq": 58894, + "block_hash": "3961bea8c4ab45d658ae42effd4caf36b81709dc52a5708fdd4c8eb1b199a1f6", + "previous_block_hash": "8eca94e7597b87c8587286b66a6b409f6b4bf288a381a56d7fde3594e319c38a", + "timestamp": 1537581604, + "fee": 485194, + "version": 0, + "tx_body_hash": "c03c0dd28841d5aa87ce4e692ec8adde923799146ec5504e17ac0c95036362dd", + "ux_hash": "f7d30ecb49f132283862ad58f691e8747894c9fc241cb3a864fc15bd3e2c83d3" + }, + "unspents": 38171, + "unconfirmed": 1, + "time_since_last_block": "4m46s" + }, + "version": { + "version": "0.25.0", + "commit": "8798b5ee43c7ce43b9b75d57a1a6cd2c1295cd1e", + "branch": "develop" + }, + "coin": "skycoin", + "user_agent": "skycoin:0.25.0", + "open_connections": 8, + "outgoing_connections": 5, + "incoming_connections": 3, + "uptime": "6m30.629057248s", + "csrf_enabled": true, + "csp_enabled": true, + "wallet_api_enabled": true, + "gui_enabled": true, + "user_verify_transaction": { + "burn_factor": 10, + "max_transaction_size": 32768, + "max_decimals": 3 + }, + "unconfirmed_verify_transaction": { + "burn_factor": 10, + "max_transaction_size": 32768, + "max_decimals": 3 + }, + "started_at": 1542443907, + "fiber": { + "name": "skycoin", + "display_name": "Skycoin", + "ticker": "SKY", + "coin_hours_display_name": "Coin Hours", + "coin_hours_display_name_singular": "Coin Hour", + "coin_hours_ticker": "SCH", + "explorer_url": "https://explorer.skycoin.com", + "bip44_coin": 8000 + } +} +``` + +### Version info + +API sets: any + +``` +URI: /api/v1/version +Method: GET +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/version +``` + +Result: + +```json +{ + "version": "0.20.0", + "commit": "cc733e9922d85c359f5f183d3a3a6e42c73ccb16", + "branch": "develop" +} +``` + + + +## Simple query APIs + +### Get balance of addresses + +API sets: `READ` + +``` +URI: /api/v1/balance +Method: GET, POST +Args: + addrs: comma-separated list of addresses. must contain at least one address +``` + +Returns the cumulative and individual balances of one or more addresses. +The `POST` method can be used if many addresses need to be queried. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/balance?addrs=7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD,nu7eSpT6hr5P21uzw7bnbxm83B6ywSjHdq,2jBbGxZRGoQG1mqhPBnXnLTxK6oxsTf8os6 +``` + +Result: + +```json +{ + "confirmed": { + "coins": 21000000, + "hours": 142744 + }, + "predicted": { + "coins": 21000000, + "hours": 142744 + }, + "addresses": { + "2jBbGxZRGoQG1mqhPBnXnLTxK6oxsTf8os6": { + "confirmed": { + "coins": 0, + "hours": 0 + }, + "predicted": { + "coins": 0, + "hours": 0 + } + }, + "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD": { + "confirmed": { + "coins": 9000000, + "hours": 88075 + }, + "predicted": { + "coins": 9000000, + "hours": 88075 + } + }, + "nu7eSpT6hr5P21uzw7bnbxm83B6ywSjHdq": { + "confirmed": { + "coins": 12000000, + "hours": 54669 + }, + "predicted": { + "coins": 12000000, + "hours": 54669 + } + } + } +} +``` + +### Get unspent output set of address or hash + +API sets: `READ` + +``` +URI: /api/v1/outputs +Method: GET, POST +Args: + addrs: address list, joined with "," + hashes: hash list, joined with "," +``` + +Addrs and hashes cannot be combined. + +In the response, `"head_outputs"` are outputs in the current unspent output set, +`"outgoing_outputs"` are head outputs that are being spent by an unconfirmed transaction, +and `"incoming_outputs"` are outputs that will be created by an unconfirmed transaction. + +The current head block header is returned as `"head"`. + +The `POST` method can be used if many addresses or hashes need to be queried. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/outputs?addrs=6dkVxyKFbFKg9Vdg6HPg1UANLByYRqkrdY +``` + +or + +```sh +curl http://127.0.0.1:6420/api/v1/outputs?hashes=7669ff7350d2c70a88093431a7b30d3e69dda2319dcb048aa80fa0d19e12ebe0 +``` + +Result: + +```json +{ + "head": { + "seq": 58891, + "block_hash": "d9ca9442febd8788de0a3093158943beca228017bf8c9c9b8529a382fad8d991", + "previous_block_hash": "098ea5c6e12370c38529ef7c7c38779f83d05f707affb747022eee77332ba510", + "timestamp": 1537580414, + "fee": 2165, + "version": 0, + "tx_body_hash": "c488835c85ccb153a6d42b39aaae01c3e30d16de33de282f4b3f6fa1ccf6f7eb", + "ux_hash": "f7d30ecb49f132283862ad58f691e8747894c9fc241cb3a864fc15bd3e2c83d3" + }, + "head_outputs": [ + { + "hash": "7669ff7350d2c70a88093431a7b30d3e69dda2319dcb048aa80fa0d19e12ebe0", + "block_seq": 22, + "time": 1494275011, + "src_tx": "b51e1933f286c4f03d73e8966186bafb25f64053db8514327291e690ae8aafa5", + "address": "6dkVxyKFbFKg9Vdg6HPg1UANLByYRqkrdY", + "coins": "2.000000", + "hours": 633, + "calculated_hours": 10023 + } + ], + "outgoing_outputs": [], + "incoming_outputs": [] +} +``` + +### Verify an address + +API sets: `READ` + +``` +URI: /api/v2/address/verify +Method: POST +Content-Type: application/json +Args: {"address": "
"} +``` + +Parses and validates a Skycoin address. Returns the address version in the response. + +Error responses: + +* `400 Bad Request`: The request body is not valid JSON or the address is missing from the request body +* `422 Unprocessable Entity`: The address is invalid + +Example for a valid address: + +```sh +curl -X POST http://127.0.0.1:6420/api/v2/address/verify \ + -H 'Content-Type: application/json' \ + -d '{"address":"2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2"}' +``` + +Result: + +```json +{ + "data": { + "version": 0 + } +} +``` + +Example for an invalid address: + +```sh +curl -X POST http://127.0.0.1:6420/api/v2/address/verify \ + -H 'Content-Type: application/json' \ + -d '{"address":"2aTnQe3ZupkG6k8S81brNC3JycGV2Em71F2"}' +``` + +Result: + +```json +{ + "error": { + "message": "Invalid checksum", + "code": 422 + } +} +``` + +## Wallet APIs + +### Get wallet + +API sets: `WALLET` + +``` +URI: /api/v1/wallet +Method: GET +Args: + id: Wallet ID [required] +``` + +Example ("deterministic" wallet): + +```sh +curl http://127.0.0.1:6420/api/v1/wallet?id=2017_11_25_e5fb.wlt +``` + +Result: + +```json +{ + "meta": { + "coin": "skycoin", + "filename": "2017_11_25_e5fb.wlt", + "label": "test", + "type": "deterministic", + "version": "0.2", + "crypto_type": "", + "timestamp": 1511640884, + "encrypted": false + }, + "entries": [ + { + "address": "2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2", + "public_key": "0316ff74a8004adf9c71fa99808ee34c3505ee73c5cf82aa301d17817da3ca33b1" + }, + { + "address": "SMnCGfpt7zVXm8BkRSFMLeMRA6LUu3Ewne", + "public_key": "02539528248a1a2c4f0b73233491103ca83b40249dac3ae9eee9a10b9f9debd9a3" + } + ] +} +``` + +Example ("bip44" wallet): + +```sh +curl http://127.0.0.1:6420/api/v1/wallet?id=2017_11_25_e5fb.wlt +``` + +Result: + +```json +{ + "meta": { + "coin": "skycoin", + "filename": "2017_11_25_e5fb.wlt", + "label": "test", + "type": "bip44", + "version": "0.3", + "crypto_type": "", + "timestamp": 1511640884, + "encrypted": false, + "bip44_coin": 8000 + }, + "entries": [ + { + "address": "2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2", + "public_key": "0316ff74a8004adf9c71fa99808ee34c3505ee73c5cf82aa301d17817da3ca33b1", + "child_number": 0, + "change": 0 + }, + { + "address": "SMnCGfpt7zVXm8BkRSFMLeMRA6LUu3Ewne", + "public_key": "02539528248a1a2c4f0b73233491103ca83b40249dac3ae9eee9a10b9f9debd9a3", + "child_number": 1, + "change": 0 + }, + { + "address": "8C5icxR9zdkYTZZTVV3cCX7QoK4EkLuK4p", + "public_key": "0316ff74a8004adf9c71fa99808ee34c3505ee73c5cf82aa301d17817da3ca33b1", + "child_number": 0, + "change": 1 + } + ] +} +``` + + +### Get unconfirmed transactions of a wallet + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/transactions +Method: GET +Args: + id: Wallet ID + verbose: [bool] include verbose transaction input data +``` + +Returns all unconfirmed transactions for all addresses in a given wallet + +If verbose, the transaction inputs include the owner address, coins, hours and calculated hours. +The hours are the original hours the output was created with. +The calculated hours are based upon the current system time, and are approximately +equal to the hours the output would have if it become confirmed immediately. + + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/wallet/transactions?id=2017_11_25_e5fb.wlt +``` + +Result: + +```json +{ + "transactions": [ + { + "transaction": { + "length": 317, + "type": 0, + "txid": "76ecbabc53ea2a3be46983058433dda6a3cf7ea0b86ba14d90b932fa97385de7", + "inner_hash": "5d55837bb0cbda9c9323ff9aafd7c3d31d0d38638346172fbe2d9078ebaa892a", + "sigs": [ + "464b7724302178c1cfeacadaaf3556a3b7e5259adf51919476c3acc695747ed244b5ce2187ce7bedb6ad65c71f7f7ff3fa6805e64fe5da3aaa00ad563c7424f600", + "1155537b0391d4a6ee5eac07dee5798e953dca3a7c30643403dd2d326582c7d35080a16dc22644782ce1087bfc3bd06c2bf68e9a98e3989d90831646a9be2c9101" + ], + "inputs": [ + "782a8662efb0e933cab7d3ae9429ab53c4208cf44d8cdc07c2fbd7204b6b5cad", + "2f6b61a44086588c4eaa56a5dd9f1e0be2528861a6731608fcec38891b95db91" + ], + "outputs": [ + { + "uxid": "bd302ef776efa8548183b89f21e90649f21b90fe2d2e90ecc1b880f2d995f226", + "dst": "2UXZTg4ZHF6715b6tRhtaqceuQQ3G79GiZg", + "coins": "998.000000", + "hours": 247538 + }, + { + "uxid": "31058b6bfb30bfd441aec00929e75782bce47c8a75787ba519dbb268f89d2c4b", + "dst": "2awsJ2CR5H6QXCF2hwDjcvcAH9SgyfxCxgz", + "coins": "1.000000", + "hours": 247538 + } + ] + }, + "received": "2018-03-16T18:03:57.139109904+05:30", + "checked": "2018-03-16T18:03:57.139109904+05:30", + "announced": "0001-01-01T00:00:00Z", + "is_valid": true + } + ] +} +``` + +Example (verbose): + +```sh +curl http://127.0.0.1:6420/api/v1/wallet/transactions?id=2017_11_25_e5fb.wlt&verbose=1 +``` + +Result: + +```json +{ + "transactions": [ + { + "transaction": { + "length": 317, + "type": 0, + "txid": "76ecbabc53ea2a3be46983058433dda6a3cf7ea0b86ba14d90b932fa97385de7", + "inner_hash": "5d55837bb0cbda9c9323ff9aafd7c3d31d0d38638346172fbe2d9078ebaa892a", + "sigs": [ + "464b7724302178c1cfeacadaaf3556a3b7e5259adf51919476c3acc695747ed244b5ce2187ce7bedb6ad65c71f7f7ff3fa6805e64fe5da3aaa00ad563c7424f600", + "1155537b0391d4a6ee5eac07dee5798e953dca3a7c30643403dd2d326582c7d35080a16dc22644782ce1087bfc3bd06c2bf68e9a98e3989d90831646a9be2c9101" + ], + "fee": 495076, + "inputs": [ + { + "uxid": "782a8662efb0e933cab7d3ae9429ab53c4208cf44d8cdc07c2fbd7204b6b5cad", + "owner": "8C5icxR9zdkYTZZTVV3cCX7QoK4EkLuK4p", + "coins": "997.000000", + "hours": 880000, + "calculated_hours": 990000 + }, + { + "uxid": "2f6b61a44086588c4eaa56a5dd9f1e0be2528861a6731608fcec38891b95db91", + "owner": "23A1EWMZopUFLCwtXMe2CU9xTCbi5Gth643", + "coins": "2.000000", + "hours": 10, + "calculated_hours": 152 + } + ], + "outputs": [ + { + "uxid": "bd302ef776efa8548183b89f21e90649f21b90fe2d2e90ecc1b880f2d995f226", + "dst": "2UXZTg4ZHF6715b6tRhtaqceuQQ3G79GiZg", + "coins": "998.000000", + "hours": 247538 + }, + { + "uxid": "31058b6bfb30bfd441aec00929e75782bce47c8a75787ba519dbb268f89d2c4b", + "dst": "2awsJ2CR5H6QXCF2hwDjcvcAH9SgyfxCxgz", + "coins": "1.000000", + "hours": 247538 + } + ] + }, + "received": "2018-03-16T18:03:57.139109904+05:30", + "checked": "2018-03-16T18:03:57.139109904+05:30", + "announced": "0001-01-01T00:00:00Z", + "is_valid": true + } + ] +} +``` + +### Get wallets + +API sets: `WALLET` + +``` +URI: /api/v1/wallets +Method: GET +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/wallets +``` + +Result: + +```json +[ + { + "meta": { + "coin": "skycoin", + "filename": "2017_11_25_e5fb.wlt", + "label": "test", + "type": "deterministic", + "version": "0.2", + "crypto_type": "", + "timestamp": 1511640884, + "encrypted": false + }, + "entries": [ + { + "address": "8C5icxR9zdkYTZZTVV3cCX7QoK4EkLuK4p", + "public_key": "0316ff74a8004adf9c71fa99808ee34c3505ee73c5cf82aa301d17817da3ca33b1" + }, + { + "address": "23A1EWMZopUFLCwtXMe2CU9xTCbi5Gth643", + "public_key": "02539528248a1a2c4f0b73233491103ca83b40249dac3ae9eee9a10b9f9debd9a3" + } + ] + } +] +``` + +### Get wallet folder name + +API sets: `WALLET` + +``` +URI: /api/v1/wallets/folderName +Method: GET +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/wallets/folderName +``` + +Result: + +```json +{ + "address": "/Users/user/.skycoin/wallets" +} +``` + +### Generate wallet seed + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/newSeed +Method: GET +Args: + entropy: seed entropy [optional] + can either be 128 or 256; 128 = 12 word seed, 256 = 24 word seed + default: 128 +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/wallet/newSeed +``` + +Result: + +```json +{ + "seed": "helmet van actor peanut differ icon trial glare member cancel marble rack" +} +``` + +### Verify wallet Seed + +API sets: `WALLET` + +``` +URI: /api/v2/wallet/seed/verify +Method: POST +Args: + seed: seed to be verified +``` + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v2/wallet/seed/verify \ + -H 'Content-type: application/json' \ + -d '{ "seed": "nut wife logic sample addict shop before tobacco crisp bleak lawsuit affair" }' +``` + +Result: + +```json +{ + "data": {} +} +``` + +Example (wrong bip39 seed): + +```sh +curl -X POST http://127.0.0.1:6420/api/v2/wallet/seed/verify \ + -H 'Content-type: application/json' \ + -d '{ "seed": "wrong seed" }' +``` + +Result: + +```json +{ + "error": { + "message": "Mnemonic must have 12, 15, 18, 21 or 24 words", + "code": 422 + } +} +``` + +### Create wallet + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/create +Method: POST +Args: + seed: wallet seed [required] + seed-passphrase: wallet seed passphrase [optional, bip44 type wallet only] + type: wallet type [required, one of "deterministic", "bip44" or "xpub"] + bip44-coin: BIP44 coin type [optional, defaults to 8000 (skycoin's coin type), only valid if type is "bip44"] + xpub: xpub key [required for xpub wallets] + label: wallet label [required] + scan: the number of addresses to scan ahead for balances [optional, must be > 0] + encrypt: encrypt wallet [optional, bool value] + password: wallet password [optional, must be provided if encrypt is true] +``` + +Example (deterministic): + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/create \ + -H 'Content-Type: application/x-www-form-urlencoded' \ + -d 'seed=$seed' \ + -d 'type=deterministic' \ + -d 'label=$label' \ + -d 'scan=5' \ + -d 'password=$password' +``` + +Result: + +```json +{ + "meta": { + "coin": "skycoin", + "filename": "2017_05_09_d554.wlt", + "label": "test", + "type": "deterministic", + "version": "0.3", + "crypto_type": "", + "timestamp": 1511640884, + "encrypted": false + }, + "entries": [ + { + "address": "y2JeYS4RS8L9GYM7UKdjLRyZanKHXumFoH", + "public_key": "0316ff74a8004adf9c71fa99808ee34c3505ee73c5cf82aa301d17817da3ca33b1" + } + ] +} +``` + +Example (bip44): + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/create \ + -H 'Content-Type: application/x-www-form-urlencoded' \ + -d 'seed=$seed' \ + -d 'seed-passphrase=$seed' \ + -d 'type=bip44' \ + -d 'label=$label' \ + -d 'scan=5' \ + -d 'password=$password' +``` + +Result: + +```json +{ + "meta": { + "coin": "skycoin", + "filename": "2017_05_09_d554.wlt", + "label": "test", + "type": "bip44", + "version": "0.3", + "crypto_type": "scrypt-chacha20poly1305", + "timestamp": 1511640884, + "encrypted": true, + "bip44_coin": 8000 + }, + "entries": [ + { + "address": "y2JeYS4RS8L9GYM7UKdjLRyZanKHXumFoH", + "public_key": "0316ff74a8004adf9c71fa99808ee34c3505ee73c5cf82aa301d17817da3ca33b1", + "child_number": 0, + "change": 0 + } + ] +} +``` + +Example (xpub): + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/create \ + -H 'Content-Type: application/x-www-form-urlencoded' \ + -d 'type=xpub' \ + -d 'xpub=xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8' \ + -d 'label=$label' \ + -d 'scan=5' +``` + +Result: + +```json +{ + "meta": { + "coin": "skycoin", + "filename": "2017_05_09_d554.wlt", + "label": "test", + "type": "bip44", + "version": "0.4", + "crypto_type": "", + "timestamp": 1511640884, + "encrypted": false, + "xpub": "xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8" + }, + "entries": [ + { + "address": "y2JeYS4RS8L9GYM7UKdjLRyZanKHXumFoH", + "public_key": "0316ff74a8004adf9c71fa99808ee34c3505ee73c5cf82aa301d17817da3ca33b1", + "child_number": 0 + } + ] +} +``` + +### Generate new address in wallet + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/newAddress +Method: POST +Args: + id: wallet file name + num: the number you want to generate + password: wallet password +``` + +For `bip44` type wallets, the new addresses will be generated on the `external` chain (`change=0`). + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/newAddress \ + -H 'Content-Type: x-www-form-urlencoded' \ + -d 'id=2017_05_09_d554.wlt' \ + -d 'num=2' \ + -d 'password=$password' +``` + +Result: + +```json +{ + "addresses": [ + "TDdQmMgbEVTwLe8EAiH2AoRc4SjoEFKrHB" + ] +} +``` + +### Scan addresses in wallet + +API sets: `WALLET` + +This API would scan wallet addresses ahead to search for addresses that currently have unspent outputs (coins) associated with them. + +``` +URI: /api/v1/wallet/scan +Method: POST +Args: + id: wallet file name + num: the number you want to scan ahaed [optional(default to 20), must be > 0 if provided] + password: wallet password +``` + +The return value is a list of `new` generated addresses after scanning. + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/scan \ +-F id=test.wlt \ +-F num=10 \ +-F password="${password}" +``` + +Result: + +```json +{ + "addresses": [ + "TDdQmMgbEVTwLe8EAiH2AoRc4SjoEFKrHB" + ] +} +``` + +### Change wallet label + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/update +Method: POST +Args: + id: wallet file name + label: wallet label +``` + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/update \ + -H 'Content-Type: application/x-www-form-urlencoded' \ + -d 'id=$id' \ + -d 'label=$label' +``` + +Result: + +```json +"success" +``` + +### Get wallet balance + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/balance +Method: GET +Args: + id: wallet file name +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/wallet/balance?id=2018_03_07_3088.wlt +``` + +Result: + +```json +{ + "confirmed": { + "coins": 210400000, + "hours": 1873147 + }, + "predicted": { + "coins": 210400000, + "hours": 1873147 + }, + "addresses": { + "AXrFisGovRhRHipsbGahs4u2hXX7pDRT5p": { + "confirmed": { + "coins": 1250000, + "hours": 941185 + }, + "predicted": { + "coins": 1250000, + "hours": 941185 + } + }, + "AtNorKBpCgkSRL7zES7aAQyNjqjqPp2QJU": { + "confirmed": { + "coins": 1150000, + "hours": 61534 + }, + "predicted": { + "coins": 1150000, + "hours": 61534 + } + }, + "VUv9ehMZWmDvwWV36BQ3eL1ujb4MQ5TGyK": { + "confirmed": { + "coins": 208000000, + "hours": 870428 + }, + "predicted": { + "coins": 208000000, + "hours": 870428 + } + }, + "j4mbF1fTe8jgXbrRARZSBjDpD1hMGSe1E4": { + "confirmed": { + "coins": 0, + "hours": 0 + }, + "predicted": { + "coins": 0, + "hours": 0 + } + }, + "uyqBPcRCWucHXs18e9VZyNEeuNsD5tFDhy": { + "confirmed": { + "coins": 0, + "hours": 0 + }, + "predicted": { + "coins": 0, + "hours": 0 + } + } + } +} +``` + +### Create transaction + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/transaction +Method: POST +Content-Type: application/json +Args: JSON body, see examples +``` + +Creates a transaction, returning the transaction preview and the encoded, serialized transaction. +The `encoded_transaction` can be provided to `POST /api/v1/injectTransaction` to broadcast it to the network +if the transaction is fully signed. + +The request body includes: + +* An optional change address +* A wallet to spend from with the optional ability to restrict which addresses or which unspent outputs in the wallet to use +* A list of destinations with address and coins specified, as well as optionally specifying hours +* A configuration for how destination hours are distributed, either manual or automatic +* Additional options + +`change_address` is optional. If not provided and the wallet is a `deterministic` type +wallet, then the change address will default to an address from one of the +unspent outputs being spent as a transaction input. If the wallet is a `bip44` type +wallet, then a new, unused change address will be created. + +Example request body with manual hours selection type, unencrypted wallet and all wallet addresses may spend: + +```json +{ + "hours_selection": { + "type": "manual" + }, + "wallet_id": "foo.wlt", + "change_address": "nu7eSpT6hr5P21uzw7bnbxm83B6ywSjHdq", + "to": [{ + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.032", + "hours": "7" + }, { + "address": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "99.2", + "hours": "0" + }], + "unsigned": false, + "ignore_unconfirmed": false +} +``` + +Example request body with auto hours selection type, encrypted wallet, specified spending addresses: + +```json +{ + "hours_selection": { + "type": "auto", + "mode": "share", + "share_factor": "0.5" + }, + "wallet_id": "foo.wlt", + "password": "foobar", + "addresses": ["2iVtHS5ye99Km5PonsB42No3pQRGEURmxyc"], + "change_address": "nu7eSpT6hr5P21uzw7bnbxm83B6ywSjHdq", + "to": [{ + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.032" + }, { + "address": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "99.2" + }], + "unsigned": false, + "ignore_unconfirmed": false +} +``` + +Example request body with manual hours selection type, unencrypted wallet and spending specific unspent outputs: + +```json +{ + "hours_selection": { + "type": "manual" + }, + "wallet_id": "foo.wlt", + "unspents": ["519c069a0593e179f226e87b528f60aea72826ec7f99d51279dd8854889ed7e2", "4e4e41996297511a40e2ef0046bd6b7118a8362c1f4f09a288c5c3ea2f4dfb85"], + "change_address": "nu7eSpT6hr5P21uzw7bnbxm83B6ywSjHdq", + "to": [{ + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.032", + "hours": "7" + }, { + "address": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "99.2", + "hours": "0" + }], + "unsigned": false, + "ignore_unconfirmed": false +} +``` + + +The `hours_selection` field has two types: `manual` or `auto`. + +If `manual`, all destination hours must be specified. + +If `auto`, the `mode` field must be set. The only valid value for `mode` is `"share"`. +For the `"share"` mode, `share_factor` must also be set. This must be a decimal value greater than or equal to 0 and less than or equal to 1. +In the auto share mode, the remaining hours after the fee are shared between the destination addresses as a whole, +and the change address. Amongst the destination addresses, the shared hours are distributed proportionally. + +When using the `auto` `"share"` `mode`, if there are remaining coin hours as change, +but no coins are available as change from the wallet (which are needed to retain the coin hours as change), +the `share_factor` will switch to `1.0` so that extra coin hours are distributed to the outputs +instead of being burned as an additional fee. +For the `manual` mode, if there are leftover coin hours but no coins to make change with, +the leftover coin hours will be burned in addition to the required fee. + +All objects in `to` must be unique; a single transaction cannot create multiple outputs with the same `address`, `coins` and `hours`. + +For example, this is a valid value for `to`, if `hours_selection.type` is `"manual"`: + +```json +[{ + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.2", + "hours": "1" +}, { + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.2", + "hours": "2" +}] +``` + +But this is an invalid value for `to`, if `hours_selection.type` is `"manual"`: + +```json +[{ + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.2", + "hours": "1" +}, { + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.2", + "hours": "1" +}] +``` + +And this is a valid value for `to`, if `hours_selection.type` is `"auto"`: + +```json +[{ + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.2" +}, { + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.201" +}] +``` + +But this is an invalid value for `to`, if `hours_selection.type` is `"auto"`: + +```json +[{ + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.2" +}, { + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.2" +}] +``` + +To control which addresses to spend from, specify `addresses`. +A subset of the unspent outputs associated with these addresses will be chosen for spending, +based upon an internal selection algorithm. + +To control which unspent outputs to spend from, specify `unspents`. +A subset of these unspent outputs will be chosen for spending, +based upon an internal selection algorithm. + +`addresses` and `unspents` cannot be combined. + +If neither `addresses` nor `unspents` are specified, +then all outputs associated with all addresses in the wallet may be chosen from to spend with. + +`change_address` is optional. +If set, it is not required to be an address in the wallet. +If not set, it will default to one of the addresses associated with the unspent outputs being spent in the transaction. + +`ignore_unconfirmed` is optional and defaults to `false`. +When `false`, the API will return an error if any of the unspent outputs +associated with the wallet addresses or the wallet outputs appear as spent in +a transaction in the unconfirmed transaction pool. +When `true`, the API will ignore unspent outputs that appear as spent in +a transaction in the unconfirmed transaction pool when building the transaction, +but not return an error. + +`unsigned` is optional and defaults to `false`. +When `true`, the transaction will not be signed by the wallet. +An unsigned transaction will be returned. +The `"txid"` value of the `"transaction"` object will need to be updated +after signing the transaction. +The unsigned `encoded_transaction` can be sent to `POST /api/v2/wallet/transaction/sign` for signing. + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/transaction -H 'content-type: application/json' -d '{ + "hours_selection": { + "type": "auto", + "mode": "share", + "share_factor": "0.5" + }, + "wallet_id": "foo.wlt", + "change_address": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "to": [{ + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "1" + }, { + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "8.99" + }] +}' +``` + +Result: + +```json +{ + "transaction": { + "length": 257, + "type": 0, + "txid": "5f060918d2da468a784ff440fbba80674c829caca355a27ae067f465d0a5e43e", + "inner_hash": "97dd062820314c46da0fc18c8c6c10bfab1d5da80c30adc79bbe72e90bfab11d", + "fee": "437691", + "sigs": [ + "6120acebfa61ba4d3970dec5665c3c952374f5d9bbf327674a0b240de62b202b319f61182e2a262b2ca5ef5a592084299504689db5448cd64c04b1f26eb01d9100" + ], + "inputs": [ + { + "uxid": "7068bfd0f0f914ea3682d0e5cb3231b75cb9f0776bf9013d79b998d96c93ce2b", + "address": "g4XmbmVyDnkswsQTSqYRsyoh1YqydDX1wp", + "coins": "10.000000", + "hours": "853667", + "calculated_hours": "862290", + "timestamp": 1524242826, + "block": 23575, + "txid": "ccfbb51e94cb58a619a82502bc986fb028f632df299ce189c2ff2932574a03e7" + } + ], + "outputs": [ + { + "uxid": "519c069a0593e179f226e87b528f60aea72826ec7f99d51279dd8854889ed7e2", + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "1.000000", + "hours": "22253" + }, + { + "uxid": "4e4e41996297511a40e2ef0046bd6b7118a8362c1f4f09a288c5c3ea2f4dfb85", + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "8.990000", + "hours": "200046" + }, + { + "uxid": "fdeb3f77408f39e50a8e3b6803ce2347aac2eba8118c494424f9fa4959bab507", + "address": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "0.010000", + "hours": "222300" + } + ] + }, + "encoded_transaction": "010100000097dd062820314c46da0fc18c8c6c10bfab1d5da80c30adc79bbe72e90bfab11d010000006120acebfa61ba4d3970dec5665c3c952374f5d9bbf327674a0b240de62b202b319f61182e2a262b2ca5ef5a592084299504689db5448cd64c04b1f26eb01d9100010000007068bfd0f0f914ea3682d0e5cb3231b75cb9f0776bf9013d79b998d96c93ce2b0300000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b140420f0000000000ed5600000000000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b1302d8900000000006e0d0300000000000083874350e65e84aa6e06192408951d7aaac7809e10270000000000005c64030000000000" +} +``` + + +### Sign transaction + +API sets: `WALLET` + +``` +URI: /api/v2/wallet/transaction/sign +Method: POST +Content-Type: application/json +Args: JSON body, see examples +``` + +Signs an unsigned transaction, returning the transaction with updated signatures and the encoded, serialized transaction. +The transaction must spendable to be signed. If the inputs of the transaction are not in the unspent pool, signing fails. + +Specific transaction inputs may be signed by specifying `sign_indexes`, otherwise all transaction inputs will be signed. +`sign_indexes` is an array of positional indexes for the transaction's signature array. Indexes start at 0. + +Signing an input that is already signed in the transaction is an error. + +The `encoded_transaction` can be provided to `POST /api/v1/injectTransaction` to broadcast it to the network, if the transaction is fully signed. + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v2/wallet/transaction/sign -H 'content-type: application/json' -d '{ + "wallet_id": "foo.wlt", + "password": "password", + "encoded_transaction": "010100000097dd062820314c46da0fc18c8c6c10bfab1d5da80c30adc79bbe72e90bfab11d010000006120acebfa61ba4d3970dec5665c3c952374f5d9bbf327674a0b240de62b202b319f61182e2a262b2ca5ef5a592084299504689db5448cd64c04b1f26eb01d9100010000007068bfd0f0f914ea3682d0e5cb3231b75cb9f0776bf9013d79b998d96c93ce2b0300000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b140420f0000000000ed5600000000000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b1302d8900000000006e0d0300000000000083874350e65e84aa6e06192408951d7aaac7809e10270000000000005c64030000000000" +}' +``` + +Example with `sign_indexes`: + +```sh +curl -X POST http://127.0.0.1:6420/api/v2/wallet/transaction/sign -H 'content-type: application/json' -d '{ + "wallet_id": "foo.wlt", + "password": "password", + "sign_indexes": [1, 2], + "encoded_transaction": "010100000097dd062820314c46da0fc18c8c6c10bfab1d5da80c30adc79bbe72e90bfab11d010000006120acebfa61ba4d3970dec5665c3c952374f5d9bbf327674a0b240de62b202b319f61182e2a262b2ca5ef5a592084299504689db5448cd64c04b1f26eb01d9100010000007068bfd0f0f914ea3682d0e5cb3231b75cb9f0776bf9013d79b998d96c93ce2b0300000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b140420f0000000000ed5600000000000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b1302d8900000000006e0d0300000000000083874350e65e84aa6e06192408951d7aaac7809e10270000000000005c64030000000000" +}' +``` + +Result: + +```json +{ + "data": { + "transaction": { + "length": 257, + "type": 0, + "txid": "5f060918d2da468a784ff440fbba80674c829caca355a27ae067f465d0a5e43e", + "inner_hash": "97dd062820314c46da0fc18c8c6c10bfab1d5da80c30adc79bbe72e90bfab11d", + "fee": "437691", + "sigs": [ + "6120acebfa61ba4d3970dec5665c3c952374f5d9bbf327674a0b240de62b202b319f61182e2a262b2ca5ef5a592084299504689db5448cd64c04b1f26eb01d9100" + ], + "inputs": [ + { + "uxid": "7068bfd0f0f914ea3682d0e5cb3231b75cb9f0776bf9013d79b998d96c93ce2b", + "address": "g4XmbmVyDnkswsQTSqYRsyoh1YqydDX1wp", + "coins": "10.000000", + "hours": "853667", + "calculated_hours": "862290", + "timestamp": 1524242826, + "block": 23575, + "txid": "ccfbb51e94cb58a619a82502bc986fb028f632df299ce189c2ff2932574a03e7" + } + ], + "outputs": [ + { + "uxid": "519c069a0593e179f226e87b528f60aea72826ec7f99d51279dd8854889ed7e2", + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "1.000000", + "hours": "22253" + }, + { + "uxid": "4e4e41996297511a40e2ef0046bd6b7118a8362c1f4f09a288c5c3ea2f4dfb85", + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "8.990000", + "hours": "200046" + }, + { + "uxid": "fdeb3f77408f39e50a8e3b6803ce2347aac2eba8118c494424f9fa4959bab507", + "address": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "0.010000", + "hours": "222300" + } + ] + }, + "encoded_transaction": "010100000097dd062820314c46da0fc18c8c6c10bfab1d5da80c30adc79bbe72e90bfab11d010000006120acebfa61ba4d3970dec5665c3c952374f5d9bbf327674a0b240de62b202b319f61182e2a262b2ca5ef5a592084299504689db5448cd64c04b1f26eb01d9100010000007068bfd0f0f914ea3682d0e5cb3231b75cb9f0776bf9013d79b998d96c93ce2b0300000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b140420f0000000000ed5600000000000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b1302d8900000000006e0d0300000000000083874350e65e84aa6e06192408951d7aaac7809e10270000000000005c64030000000000" + } +} +``` + + +### Unload wallet + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/unload +Method: POST +Args: + id: wallet file name +``` + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/unload \ + -H 'Content-Type: x-www-form-urlencoded' \ + -d 'id=2017_05_09_d554.wlt' +``` + +### Encrypt wallet + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/encrypt +Method: POST +Args: + id: wallet id + password: wallet password +``` + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/encrypt \ + -H 'Content-Type: application/x-www-form-urlencoded' \ + -d 'id=test.wlt' \ + -d 'password=$password' +``` + +Result: + +```json +{ + "meta": { + "coin": "skycoin", + "filename": "test.wlt", + "label": "test", + "type": "deterministic", + "version": "0.2", + "crypto_type": "scrypt-chacha20poly1305", + "timestamp": 1521083044, + "encrypted": true + }, + "entries": [ + { + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "public_key": "0316ff74a8004adf9c71fa99808ee34c3505ee73c5cf82aa301d17817da3ca33b1" + } + ] +} +``` + +### Decrypt wallet + +API sets: `WALLET` + +``` +URI: /api/v1/wallet/decrypt +Method: POST +Args: + id: wallet id + password: wallet password +``` + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/decrypt \ + -H 'Content-Type: application/x-www-form-urlencoded' \ + -d 'id=test.wlt' \ + -d 'password=$password' +``` + +Result: + +```json +{ + "meta": { + "coin": "skycoin", + "filename": "test.wlt", + "label": "test", + "type": "deterministic", + "version": "0.2", + "crypto_type": "", + "timestamp": 1521083044, + "encrypted": false + }, + "entries": [ + { + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "public_key": "032a1218cbafc8a93233f363c19c667cf02d42fa5a8a07c0d6feca79e82d72753d" + } + ] +} +``` + +### Get wallet seed + +API sets: `INSECURE_WALLET_SEED` + +``` +URI: /api/v1/wallet/seed +Method: POST +Args: + id: wallet id + password: wallet password +``` + +This endpoint only works for encrypted wallets. +If the wallet is unencrypted, the seed will not be returned. + +If the wallet is of type `bip44` and has a seed passphrase, it will be included +in the response. Otherwise, the seed passphrase will be missing. + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/wallet/seed \ + -H 'Content-type: application/x-www-form-urlencoded' \ + -d 'id=test.wlt' \ + -d 'password=$password' +``` + +Result: + +```json +{ + "seed": "your wallet seed", + "seed_passphrase": "your optional wallet seed-passphrase" +} +``` + +### Recover encrypted wallet by seed + +API sets: `INSECURE_WALLET_SEED` + +``` +URI: /api/v2/wallet/recover +Method: POST +Args: + id: wallet id + seed: wallet seed + seed passphrase: wallet seed passphrase (bip44 wallets only) + password: [optional] password to encrypt the recovered wallet with +``` + +Recovers an encrypted wallet by providing the wallet seed and optional seed passphrase. + +Example: + +```sh +curl -X POST http://127.0.0.1/api/v2/wallet/recover + -H 'Content-Type: application/json' \ + -d '{"id":"2017_11_25_e5fb.wlt","seed":"your wallet seed","seed_passphrase":"your seed passphrase"}' +``` + +Result: + +```json +{ + "data": { + "meta": { + "coin": "skycoin", + "filename": "2017_11_25_e5fb.wlt", + "label": "test", + "type": "deterministic", + "version": "0.2", + "crypto_type": "", + "timestamp": 1511640884, + "encrypted": false + }, + "entries": [ + { + "address": "2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2", + "public_key": "0316ff74a8004adf9c71fa99808ee34c3505ee73c5cf82aa301d17817da3ca33b1" + }, + { + "address": "SMnCGfpt7zVXm8BkRSFMLeMRA6LUu3Ewne", + "public_key": "02539528248a1a2c4f0b73233491103ca83b40249dac3ae9eee9a10b9f9debd9a3" + } + ] + } +} +``` + +## Key-value storage APIs + +Endpoints interact with the key-value storage. Each request require the `type` argument to +be passed. + +Currently allowed types: + +* `txid`: used for transaction notes +* `client`: used for generic client data, instead of using e.g. LocalStorage in the browser + +### Get all storage values + +API sets: `STORAGE` + +``` +Method: GET +URI: /api/v2/data +Args: + type: storage type + key [string]: key of the specific value to get +``` + +If key is passed, only the specific value will be returned from the storage. +Otherwise the whole dataset will be returned. + +If the key does not exist, a 404 error is returned. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v2/data?type=txid +``` + +Result: + +```json +{ + "data": { + "key1": "value", + "key2": "{\"key\":\"value\"}" + } +} +``` + +Example (key): + +```sh +curl http://127.0.0.1:6420/api/v2/data?type=txid&key=key1 +``` + +Result: + +```json +{ + "data": "value" +} +``` + +### Add value to storage + +API sets: `STORAGE` + +``` +Method: POST +URI: /api/v2/data +Args: JSON Body, see examples +``` + +Sets one or more values by key. Existing values will be overwritten. + +Example request body: + +```json +{ + "type": "txid", + "key": "key1", + "val": "val1" +} +``` + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v2/data -H 'Content-Type: application/json' -d '{ + "type": "txid", + "key": "key1", + "val": "val1" +}' +``` + +Result: + +```json +{} +``` + +### Remove value from storage + +API sets: `STORAGE` + +``` +Method: DELETE +URI: /api/v2/data +Args: + type: storage type + key: key of the specific value to get +``` + +Deletes a value by key. Returns a 404 error if the key does not exist. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v2/data?type=txid&key=key1 +``` + +Result: + +```json +{} +``` + +## Transaction APIs + +### Get unconfirmed transactions + +API sets: `READ` + +``` +URI: /api/v1/pendingTxs +Method: GET +Args: + verbose [bool] include verbose transaction input data +``` + +If verbose, the transaction inputs include the owner address, coins, hours and calculated hours. +The hours are the original hours the output was created with. +The calculated hours are calculated based upon the current system time, and provide an approximate +coin hour value of the output if it were to be confirmed at that instant. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/pendingTxs +``` + +Result: + +```json +[ + { + "transaction": { + "length": 317, + "type": 0, + "txid": "89578005d8730fe1789288ee7dea036160a9bd43234fb673baa6abd91289a48b", + "inner_hash": "cac977eee019832245724aa643ceff451b9d8b24612b2f6a58177c79e8a4c26f", + "sigs": [ + "3f084a0c750731dd985d3137200f9b5fc3de06069e62edea0cdd3a91d88e56b95aff5104a3e797ab4d6d417861af0c343efb0fff2e5ba9e7cf88ab714e10f38101", + "e9a8aa8860d189daf0b1dbfd2a4cc309fc0c7250fa81113aa7258f9603d19727793c1b7533131605db64752aeb9c1f4465198bb1d8dd597213d6406a0a81ed3701" + ], + "inputs": [ + "bb89d4ed40d0e6e3a82c12e70b01a4bc240d2cd4f252cfac88235abe61bd3ad0", + "170d6fd7be1d722a1969cb3f7d45cdf4d978129c3433915dbaf098d4f075bbfc" + ], + "outputs": [ + { + "uxid": "ec9cf2f6052bab24ec57847c72cfb377c06958a9e04a077d07b6dd5bf23ec106", + "dst": "nu7eSpT6hr5P21uzw7bnbxm83B6ywSjHdq", + "coins": "60.000000", + "hours": 2458 + }, + { + "uxid": "be40210601829ba8653bac1d6ecc4049955d97fb490a48c310fd912280422bd9", + "dst": "2iVtHS5ye99Km5PonsB42No3pQRGEURmxyc", + "coins": "1.000000", + "hours": 2458 + } + ] + }, + "received": "2017-05-09T10:11:57.14303834+02:00", + "checked": "2017-05-09T10:19:58.801315452+02:00", + "announced": "0001-01-01T00:00:00Z", + "is_valid": true + } +] +``` + +Example (verbose): + +```sh +curl http://127.0.0.1:6420/api/v1/pendingTxs?verbose=1 +``` + +Result: + +```json +[ + { + "transaction": { + "length": 220, + "type": 0, + "txid": "d455564dcf1fb666c3846cf579ff33e21c203e2923938c6563fe7fcb8573ba44", + "inner_hash": "4e73155db8ed04a3bd2b953218efcc9122ebfbf4c55f08f50d1563e48eacf71d", + "fee": 12855964, + "sigs": [ + "17330c256a50e2117ddccf51f1980fc14380f0f9476432196ade3043668759847b97e1b209961458745684d9239541f79d9ca9255582864d30a540017ab84f2b01" + ], + "inputs": [ + { + "uxid": "27e7bc48ceca4d47e806a87100a8a98592b7618702e1cd479bf4c190462a6d09", + "owner": "23MjQipM9YsPKkYiuaBmf6m7fD54wrzHxpd", + "coins": "7815.000000", + "hours": 279089, + "calculated_hours": 13101146 + } + ], + "outputs": [ + { + "uxid": "4b4ebf62acbaece798d0dfc92fcea85768a2874dad8a9b8eb5454288deae468c", + "dst": "23MjQipM9YsPKkYiuaBmf6m7fD54wrzHxpd", + "coins": "586.000000", + "hours": 122591 + }, + { + "uxid": "781cfb134d5fdad48f3c937dfcfc66b169a305adc8abdfe92a0ec94c564913f2", + "dst": "2ehrG4VKLRuvBNWYz3U7tS75QWvzyWR89Dg", + "coins": "7229.000000", + "hours": 122591 + } + ] + }, + "received": "2018-06-20T14:14:52.415702671+08:00", + "checked": "2018-08-26T19:47:45.328131142+08:00", + "announced": "2018-08-26T19:51:47.356083569+08:00", + "is_valid": true + } +] +``` + +### Create transaction from unspent outputs or addresses + +API sets: `TXN` + +``` +URI: /api/v2/transaction +Method: POST +Args: JSON Body, see examples +``` + +Creates an unsigned transaction from a pool of unspent outputs or addresses. +`addresses` and `unspents` cannot be combined, and at least one must have elements in their array. + +The transaction will choose unspent outputs from the provided pool to construct a transaction +that satisfies the requested outputs in the `to` field. Not all unspent outputs will necessarily be used +in the transaction. + +If `ignore_unconfirmed` is true, the transaction will not use any outputs which are being spent by an unconfirmed transaction. +If `ignore_unconfirmed` is false, the endpoint returns an error if any unspent output is spent by an unconfirmed transaction. + +`change_address` is optional. If not provided then the change address will +default to an address from one of the +unspent outputs being spent as a transaction input. + +Refer to `POST /api/v1/wallet/transaction` for creating a transaction from a specific wallet. + +`POST /api/v2/wallet/transaction/sign` can be used to sign the transaction with a wallet, +but `POST /api/v1/wallet/transaction` can create and sign a transaction with a wallet in one operation instead. +Otherwise, sign the transaction separately from the API. + +The transaction must be fully valid and spendable (except for the lack of signatures) or else an error is returned. + +Example request body with manual hours selection type, spending from specific addresses, ignoring unconfirmed unspent outputs: + +```json +{ + "hours_selection": { + "type": "manual" + }, + "addresses": ["g4XmbmVyDnkswsQTSqYRsyoh1YqydDX1wp", "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS"], + "change_address": "nu7eSpT6hr5P21uzw7bnbxm83B6ywSjHdq", + "to": [{ + "address": "fznGedkc87a8SsW94dBowEv6J7zLGAjT17", + "coins": "1.032", + "hours": "7" + }, { + "address": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "99.2", + "hours": "0" + }], + "ignore_unconfirmed": false +} +``` + +Example request body with auto hours selection type, spending specific uxouts: + +```json +{ + "hours_selection": { + "type": "auto", + "mode": "share", + "share_factor": "0.5" + }, + "unspents": ["519c069a0593e179f226e87b528f60aea72826ec7f99d51279dd8854889ed7e2", "4e4e41996297511a40e2ef0046bd6b7118a8362c1f4f09a288c5c3ea2f4dfb85"], + "change_address": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "to": [{ + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "1" + }, { + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "8.99" + }] +} +``` + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v2/transaction -H 'Content-Type: application/json' -d '{ + "hours_selection": { + "type": "auto", + "mode": "share", + "share_factor": "0.5" + }, + "addresses": ["g4XmbmVyDnkswsQTSqYRsyoh1YqydDX1wp"], + "change_address": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "to": [{ + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "1" + }, { + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "8.99" + }] +}' +``` + +Result: + +```json +{ + "data": { + "transaction": { + "length": 257, + "type": 0, + "txid": "5f060918d2da468a784ff440fbba80674c829caca355a27ae067f465d0a5e43e", + "inner_hash": "97dd062820314c46da0fc18c8c6c10bfab1d5da80c30adc79bbe72e90bfab11d", + "fee": "437691", + "sigs": [ + "6120acebfa61ba4d3970dec5665c3c952374f5d9bbf327674a0b240de62b202b319f61182e2a262b2ca5ef5a592084299504689db5448cd64c04b1f26eb01d9100" + ], + "inputs": [ + { + "uxid": "7068bfd0f0f914ea3682d0e5cb3231b75cb9f0776bf9013d79b998d96c93ce2b", + "address": "g4XmbmVyDnkswsQTSqYRsyoh1YqydDX1wp", + "coins": "10.000000", + "hours": "853667", + "calculated_hours": "862290", + "timestamp": 1524242826, + "block": 23575, + "txid": "ccfbb51e94cb58a619a82502bc986fb028f632df299ce189c2ff2932574a03e7" + } + ], + "outputs": [ + { + "uxid": "519c069a0593e179f226e87b528f60aea72826ec7f99d51279dd8854889ed7e2", + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "1.000000", + "hours": "22253" + }, + { + "uxid": "4e4e41996297511a40e2ef0046bd6b7118a8362c1f4f09a288c5c3ea2f4dfb85", + "address": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "8.990000", + "hours": "200046" + }, + { + "uxid": "fdeb3f77408f39e50a8e3b6803ce2347aac2eba8118c494424f9fa4959bab507", + "address": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "0.010000", + "hours": "222300" + } + ] + }, + "encoded_transaction": "010100000097dd062820314c46da0fc18c8c6c10bfab1d5da80c30adc79bbe72e90bfab11d010000006120acebfa61ba4d3970dec5665c3c952374f5d9bbf327674a0b240de62b202b319f61182e2a262b2ca5ef5a592084299504689db5448cd64c04b1f26eb01d9100010000007068bfd0f0f914ea3682d0e5cb3231b75cb9f0776bf9013d79b998d96c93ce2b0300000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b140420f0000000000ed5600000000000000ba2a4ac4a5ce4e03a82d2240ae3661419f7081b1302d8900000000006e0d0300000000000083874350e65e84aa6e06192408951d7aaac7809e10270000000000005c64030000000000" + } +} +``` + +### Get transaction info by id + +API sets: `READ` + +``` +URI: /api/v1/transaction +Method: GET +Args: + txid: transaction id + verbose: [bool] include verbose transaction input data + encoded: [bool] return the transaction as hex-encoded serialized bytes +``` + +If verbose, the transaction inputs include the owner address, coins, hours and calculated hours. +The hours are the original hours the output was created with. +If the transaction is confirmed, the calculated hours are the hours the transaction had in the block in which it was executed.. +If the transaction is unconfirmed, the calculated hours are based upon the current system time, and are approximately +equal to the hours the output would have if it become confirmed immediately. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/transaction?txid=a6446654829a4a844add9f181949d12f8291fdd2c0fcb22200361e90e814e2d3 +``` + +Result: + +```json +{ + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 1, + "block_seq": 1178 + }, + "txn": { + "length": 183, + "type": 0, + "txid": "a6446654829a4a844add9f181949d12f8291fdd2c0fcb22200361e90e814e2d3", + "inner_hash": "075f255d42ddd2fb228fe488b8b468526810db7a144aeed1fd091e3fd404626e", + "timestamp": 1494275231, + "sigs": [ + "9b6fae9a70a42464dda089c943fafbf7bae8b8402e6bf4e4077553206eebc2ed4f7630bb1bd92505131cca5bf8bd82a44477ef53058e1995411bdbf1f5dfad1f00" + ], + "inputs": [ + "5287f390628909dd8c25fad0feb37859c0c1ddcf90da0c040c837c89fefd9191" + ], + "outputs": [ + { + "uxid": "70fa9dfb887f9ef55beb4e960f60e4703c56f98201acecf2cad729f5d7e84690", + "dst": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "8.000000", + "hours": 931 + } + ] + } +} +``` + +Example (verbose): + +```sh +curl http://127.0.0.1:6420/api/v1/transaction?txid=a6446654829a4a844add9f181949d12f8291fdd2c0fcb22200361e90e814e2d3&verbose=1 +``` + +Result: + +```json +{ + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 53107, + "block_seq": 1178 + }, + "time": 1494275231, + "txn": { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 53107, + "block_seq": 1178 + }, + "timestamp": 1494275231, + "length": 183, + "type": 0, + "txid": "a6446654829a4a844add9f181949d12f8291fdd2c0fcb22200361e90e814e2d3", + "inner_hash": "075f255d42ddd2fb228fe488b8b468526810db7a144aeed1fd091e3fd404626e", + "fee": 6523, + "sigs": [ + "9b6fae9a70a42464dda089c943fafbf7bae8b8402e6bf4e4077553206eebc2ed4f7630bb1bd92505131cca5bf8bd82a44477ef53058e1995411bdbf1f5dfad1f00" + ], + "inputs": [ + { + "uxid": "5287f390628909dd8c25fad0feb37859c0c1ddcf90da0c040c837c89fefd9191", + "owner": "2K6NuLBBapWndAssUtkxKfCtyjDQDHrEhhT", + "coins": "8.000000", + "hours": 7454, + "calculated_hours": 7454 + } + ], + "outputs": [ + { + "uxid": "70fa9dfb887f9ef55beb4e960f60e4703c56f98201acecf2cad729f5d7e84690", + "dst": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "8.000000", + "hours": 931 + } + ] + } +} +``` + +Example (encoded): + +```sh +curl http://127.0.0.1:6420/api/v1/transaction?txid=a6446654829a4a844add9f181949d12f8291fdd2c0fcb22200361e90e814e2d3&encoded=1 +``` + +Result: + +```json +{ + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 53267, + "block_seq": 1178 + }, + "time": 1494275231, + "encoded_transaction": "b700000000075f255d42ddd2fb228fe488b8b468526810db7a144aeed1fd091e3fd404626e010000009b6fae9a70a42464dda089c943fafbf7bae8b8402e6bf4e4077553206eebc2ed4f7630bb1bd92505131cca5bf8bd82a44477ef53058e1995411bdbf1f5dfad1f00010000005287f390628909dd8c25fad0feb37859c0c1ddcf90da0c040c837c89fefd9191010000000010722f061aa262381dce35193d43eceb112373c300127a0000000000a303000000000000" +} +``` + +### Get raw transaction by id + +API sets: `READ` + +``` +URI: /api/v1/rawtx +Method: GET +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/rawtx?txid=a6446654829a4a844add9f181949d12f8291fdd2c0fcb22200361e90e814e2d3 +``` + +Result: + +```json +"b700000000075f255d42ddd2fb228fe488b8b468526810db7a144aeed1fd091e3fd404626e010000009b6fae9a70a42464dda089c943fafbf7bae8b8402e6bf4e4077553206eebc2ed4f7630bb1bd92505131cca5bf8bd82a44477ef53058e1995411bdbf1f5dfad1f00010000005287f390628909dd8c25fad0feb37859c0c1ddcf90da0c040c837c89fefd9191010000000010722f061aa262381dce35193d43eceb112373c300127a0000000000a303000000000000" +``` + +### Inject raw transaction + +API sets: `TXN`, `WALLET` + +``` +URI: /api/v1/injectTransaction +Method: POST +Content-Type: application/json +Body: {"rawtx": "hex-encoded serialized transaction string"} +Errors: + 400 - Bad input + 500 - Other + 503 - Network unavailable (transaction failed to broadcast) +``` + +Broadcasts a hex-encoded, serialized transaction to the network. +Transactions are serialized with the `encoder` package. +See [`coin.Transaction.Serialize`](https://godoc.org/github.com/skycoin/skycoin/src/coin#Transaction.Serialize). + +If there are no available connections, the API responds with a `503 Service Unavailable` error. + +Note that in some circumstances the transaction can fail to broadcast but this endpoint will still return successfully. +This can happen if the node's network has recently become unavailable but its connections have not timed out yet. + +The recommended way to handle transaction injections from your system is to inject the transaction then wait +for the transaction to be confirmed. Transactions typically confirm quickly, so if it is not confirmed after some +timeout such as 1 minute, the application can continue to retry the broadcast with `/api/v1/resendUnconfirmedTxns`. +Broadcast only fails without an error if the node's peers disconnect or timeout after the broadcast was initiated, +which is a network problem that may recover, so rebroadcasting with `/api/v1/resendUnconfirmedTxns` will resolve it, +or else the network is unavailable. + +`POST /api/v1/transaction` accepts an `ignore_unconfirmed` option to allow transactions to be created without waiting +for unconfirmed transactions to confirm. + +Any unconfirmed transactions found in the database at startup are resent. So, if the network broadcast failed but +the transaction was saved to the database, when you restart the client, it will resend. + +It is safe to retry the injection after a `503` failure. + +To disable the network broadcast, add `"no_broadcast": true` to the JSON request body. +The transaction will be added to the local transaction pool but not be broadcast at the same time. +Note that transactions from the pool are periodically announced, so this transaction will still +be announced eventually if the daemon continues running with connectivity for enough time. + +Example: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/injectTransaction -H 'content-type: application/json' -d '{ + "rawtx":"dc0000000008b507528697b11340f5a3fcccbff031c487bad59d26c2bdaea0cd8a0199a1720100000017f36c9d8bce784df96a2d6848f1b7a8f5c890986846b7c53489eb310090b91143c98fd233830055b5959f60030b3ca08d95f22f6b96ba8c20e548d62b342b5e0001000000ec9cf2f6052bab24ec57847c72cfb377c06958a9e04a077d07b6dd5bf23ec106020000000072116096fe2207d857d18565e848b403807cd825c044840300000000330100000000000000575e472f8c5295e8fa644e9bc5e06ec10351c65f40420f000000000066020000000000000" +}' +``` + +Result: + +```json +"3615fc23cc12a5cb9190878a2151d1cf54129ff0cd90e5fc4f4e7debebad6868" +``` + +Example, without broadcasting the transaction: + +```sh +curl -X POST http://127.0.0.1:6420/api/v1/injectTransaction -H 'content-type: application/json' -d '{ + "rawtx":"dc0000000008b507528697b11340f5a3fcccbff031c487bad59d26c2bdaea0cd8a0199a1720100000017f36c9d8bce784df96a2d6848f1b7a8f5c890986846b7c53489eb310090b91143c98fd233830055b5959f60030b3ca08d95f22f6b96ba8c20e548d62b342b5e0001000000ec9cf2f6052bab24ec57847c72cfb377c06958a9e04a077d07b6dd5bf23ec106020000000072116096fe2207d857d18565e848b403807cd825c044840300000000330100000000000000575e472f8c5295e8fa644e9bc5e06ec10351c65f40420f000000000066020000000000000", + "no_broadcast": true +}' +``` + +Result: + +```json +"3615fc23cc12a5cb9190878a2151d1cf54129ff0cd90e5fc4f4e7debebad6868" +``` + + +### Get transactions for addresses + +API sets: `READ` + +``` +URI: /api/v1/transactions +Method: GET, POST +Args: + addrs: Comma separated addresses [optional, returns all transactions if no address is provided] + confirmed: Whether the transactions should be confirmed [optional, must be 0 or 1; if not provided, returns all] + verbose: [bool] include verbose transaction input data +``` + +If verbose, the transaction inputs include the owner address, coins, hours and calculated hours. +The hours are the original hours the output was created with. +If the transaction is confirmed, the calculated hours are the hours the transaction had in the block in which it was executed. +If the transaction is unconfirmed, the calculated hours are based upon the current system time, and are approximately +equal to the hours the output would have if it become confirmed immediately. + +The `"time"` field at the top level of each object in the response array indicates either the confirmed timestamp of a confirmed +transaction or the last received timestamp of an unconfirmed transaction. + +The `POST` method can be used if many addresses need to be queried. + +To get confirmed transactions for one or more addresses: + +```sh +curl http://127.0.0.1:6420/api/v1/transactions?addrs=7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD,6dkVxyKFbFKg9Vdg6HPg1UANLByYRqkrdY&confirmed=1 +``` + +To get unconfirmed transactions for one or more addresses: + +```sh +curl http://127.0.0.1:6420/api/v1/transactions?addrs=7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD,6dkVxyKFbFKg9Vdg6HPg1UANLByYRqkrdY&confirmed=0 +``` + +To get both confirmed and unconfirmed transactions for one or more addresses: + +```sh +curl http://127.0.0.1:6420/api/v1/transactions?addrs=7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD,6dkVxyKFbFKg9Vdg6HPg1UANLByYRqkrdY +``` + +Result: + +```json +[ + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 10492, + "block_seq": 1177 + }, + "time": 1494275011, + "txn": { + "length": 317, + "type": 0, + "txid": "b09cd3a8baef6a449848f50a1b97943006ca92747d4e485d0647a3ea74550eca", + "inner_hash": "2cb370051c92521a04ba5357e229d8ffa90d9d1741ea223b44dd60a1483ee0e5", + "timestamp": 1494275011, + "sigs": [ + "a55155ca15f73f0762f79c15917949a936658cff668647daf82a174eed95703a02622881f9cf6c7495536676f931b2d91d389a9e7b034232b3a1519c8da6fb8800", + "cc7d7cbd6f31adabd9bde2c0deaa9277c0f3cf807a4ec97e11872817091dc3705841a6adb74acb625ee20ab6d3525350b8663566003276073d94c3bfe22fe48e01" + ], + "inputs": [ + "4f4b0078a9cd19b3395e54b3f42af6adc997f77f04e0ca54016c67c4f2384e3c", + "36f4871646b6564b2f1ab72bd768a67579a1e0242bc68bcbcf1779bc75b3dddd" + ], + "outputs": [ + { + "uxid": "5287f390628909dd8c25fad0feb37859c0c1ddcf90da0c040c837c89fefd9191", + "dst": "2K6NuLBBapWndAssUtkxKfCtyjDQDHrEhhT", + "coins": "8.000000", + "hours": 7454 + }, + { + "uxid": "a1268e9bd2033b49b44afa765d20876467254f51e5515626780467267a65c563", + "dst": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "1.000000", + "hours": 7454 + } + ] + } + }, + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 10491, + "block_seq": 1178 + }, + "time": 1494275231, + "txn": { + "length": 183, + "type": 0, + "txid": "a6446654829a4a844add9f181949d12f8291fdd2c0fcb22200361e90e814e2d3", + "inner_hash": "075f255d42ddd2fb228fe488b8b468526810db7a144aeed1fd091e3fd404626e", + "timestamp": 1494275231, + "sigs": [ + "9b6fae9a70a42464dda089c943fafbf7bae8b8402e6bf4e4077553206eebc2ed4f7630bb1bd92505131cca5bf8bd82a44477ef53058e1995411bdbf1f5dfad1f00" + ], + "inputs": [ + "5287f390628909dd8c25fad0feb37859c0c1ddcf90da0c040c837c89fefd9191" + ], + "outputs": [ + { + "uxid": "70fa9dfb887f9ef55beb4e960f60e4703c56f98201acecf2cad729f5d7e84690", + "dst": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "8.000000", + "hours": 931 + } + ] + } + }, + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 8730, + "block_seq": 2939 + }, + "time": 1505205561, + "txn": { + "length": 474, + "type": 0, + "txid": "b45e571988bc07bd0b623c999655fa878fb9bdd24c8cd24fde179bf4b26ae7b7", + "inner_hash": "393804eca6afadc05db80cfb9e1024ef5761231c70705c406301bad33161f8bf", + "timestamp": 1505205561, + "sigs": [ + "fb9dd021cdff51ab56891cca0fd1600877f6e0691136dbe3f8324c3f4f7ee5bc624ded4954c1d70d8cb776ce3454d8f195bbb252e48b0f2cd388f5a733697d9301", + "0639e61ba87a61f10b0e0114008ddd4e7090d9397370de28da27b7852b231b8e66c36d10fe3424c9b23a41266fd2c50f169233009713b332d6a48ce9c128ccef01", + "055afe17222aab66c48c8e08e03a406bf2b8719f5221ec54c8e678078033bcd56b66bbc46a866f2be5e3f9ca454e3fbc2021630d0430b72e18c24d02df03c03100", + "8cf56fb96e11d49bea728cb35ba5953fbc640817fac01b82e62a959ef8d4c3105298f2a6ea127bb07552abd905a667b58f6c79717e9f05258079de08d91f10a500" + ], + "inputs": [ + "dea9266aa7b687f4391e92f04436407c51a834274a5a33bc8bcf3189732e82e3", + "e811bdce52ddac0d952d2546fdca8d1ac4e0ad32f170d3d73b724fb37c802652", + "e94ccdbc07cc62fb41140b4daa7969438c749837c0808acf20dde113bdf1876b", + "534afc496a7aee2ec55c71d85abfc27f35d16c56506f663b24d8ee4815583b6e" + ], + "outputs": [ + { + "uxid": "732e129fc1630aba3f06d833ce0a7a25f05dae5df3e7a135b5f82e99222e8c28", + "dst": "2hAjmdPP9R3um9JhKczeVdJUVugY6SPJBDm", + "coins": "6.000000", + "hours": 204 + } + ] + } + } +] +``` + +Example (verbose): + +```sh +curl http://127.0.0.1:6420/api/v1/transactions?addrs=7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD,2K6NuLBBapWndAssUtkxKfCtyjDQDHrEhhT&verbose=1 +``` + +Result: + +```json +[ + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 53207, + "block_seq": 1131 + }, + "time": 1494192581, + "txn": { + "timestamp": 1494192581, + "length": 220, + "type": 0, + "txid": "b785dc57a9b53dbf0390213480dd9dffc32356fb79b82fa622a2607894bfab98", + "inner_hash": "5279e944502d6bdaff25af7b7fb7c6e503c62ae70a01084031e1cb563afe2e2c", + "fee": 317021, + "sigs": [ + "f8cd208acc6674de79fa1192e5177325cda871c26707242dbd6fb9df245bf34b2fbc3dfe32e61eefa0543934556cb073bdeab6e555d7bfe6b7220f1ae575613d01" + ], + "inputs": [ + { + "uxid": "004d3ef83af64c542701b923ec5c727734de9d88837bcea37a2927a569dd3f0d", + "owner": "MbZvwdXHnMUZ1eUFxNDqxPEEHkkffKgq2F", + "coins": "904.000000", + "hours": 14, + "calculated_hours": 422693 + } + ], + "outputs": [ + { + "uxid": "4047c5cbbaf0ed927caa1391d5456d58e0857ef188f2eec8ee987a30b3f53aed", + "dst": "MbZvwdXHnMUZ1eUFxNDqxPEEHkkffKgq2F", + "coins": "903.000000", + "hours": 52836 + }, + { + "uxid": "4f4b0078a9cd19b3395e54b3f42af6adc997f77f04e0ca54016c67c4f2384e3c", + "dst": "2K6NuLBBapWndAssUtkxKfCtyjDQDHrEhhT", + "coins": "1.000000", + "hours": 52836 + } + ] + } + }, + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 53206, + "block_seq": 1132 + }, + "time": 1494192731, + "txn": { + "timestamp": 1494192731, + "length": 220, + "type": 0, + "txid": "dc39c39bea82e5b56a1a77ce8485d9b06fda694e04ddf63af1273351c87dd077", + "inner_hash": "b8f36a57212a68f4b3ecf9d699f286dafcdb624551e07c35a983832ffd37326c", + "fee": 39628, + "sigs": [ + "1005adda19efe31b5cd85caa85b4a42599263f649103fd26761f2261f3ee00460d9693c45406d782b0e04613aa412a5ef6b275c2a665a9f13167912da91777a700" + ], + "inputs": [ + { + "uxid": "4047c5cbbaf0ed927caa1391d5456d58e0857ef188f2eec8ee987a30b3f53aed", + "owner": "MbZvwdXHnMUZ1eUFxNDqxPEEHkkffKgq2F", + "coins": "903.000000", + "hours": 52836, + "calculated_hours": 52836 + } + ], + "outputs": [ + { + "uxid": "a6662ea872dabee2fae96a4561d67728d16cb3da372d4b7bbc74a18f2bc3fecf", + "dst": "MbZvwdXHnMUZ1eUFxNDqxPEEHkkffKgq2F", + "coins": "895.000000", + "hours": 6604 + }, + { + "uxid": "36f4871646b6564b2f1ab72bd768a67579a1e0242bc68bcbcf1779bc75b3dddd", + "dst": "2K6NuLBBapWndAssUtkxKfCtyjDQDHrEhhT", + "coins": "8.000000", + "hours": 6604 + } + ] + } + }, + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 53161, + "block_seq": 1177 + }, + "time": 1494275011, + "txn": { + "timestamp": 1494275011, + "length": 317, + "type": 0, + "txid": "b09cd3a8baef6a449848f50a1b97943006ca92747d4e485d0647a3ea74550eca", + "inner_hash": "2cb370051c92521a04ba5357e229d8ffa90d9d1741ea223b44dd60a1483ee0e5", + "fee": 44726, + "sigs": [ + "a55155ca15f73f0762f79c15917949a936658cff668647daf82a174eed95703a02622881f9cf6c7495536676f931b2d91d389a9e7b034232b3a1519c8da6fb8800", + "cc7d7cbd6f31adabd9bde2c0deaa9277c0f3cf807a4ec97e11872817091dc3705841a6adb74acb625ee20ab6d3525350b8663566003276073d94c3bfe22fe48e01" + ], + "inputs": [ + { + "uxid": "4f4b0078a9cd19b3395e54b3f42af6adc997f77f04e0ca54016c67c4f2384e3c", + "owner": "2K6NuLBBapWndAssUtkxKfCtyjDQDHrEhhT", + "coins": "1.000000", + "hours": 52836, + "calculated_hours": 52857 + }, + { + "uxid": "36f4871646b6564b2f1ab72bd768a67579a1e0242bc68bcbcf1779bc75b3dddd", + "owner": "2K6NuLBBapWndAssUtkxKfCtyjDQDHrEhhT", + "coins": "8.000000", + "hours": 6604, + "calculated_hours": 6777 + } + ], + "outputs": [ + { + "uxid": "5287f390628909dd8c25fad0feb37859c0c1ddcf90da0c040c837c89fefd9191", + "dst": "2K6NuLBBapWndAssUtkxKfCtyjDQDHrEhhT", + "coins": "8.000000", + "hours": 7454 + }, + { + "uxid": "a1268e9bd2033b49b44afa765d20876467254f51e5515626780467267a65c563", + "dst": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "1.000000", + "hours": 7454 + } + ] + } + }, + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 53160, + "block_seq": 1178 + }, + "time": 1494275231, + "txn": { + "timestamp": 1494275231, + "length": 183, + "type": 0, + "txid": "a6446654829a4a844add9f181949d12f8291fdd2c0fcb22200361e90e814e2d3", + "inner_hash": "075f255d42ddd2fb228fe488b8b468526810db7a144aeed1fd091e3fd404626e", + "fee": 6523, + "sigs": [ + "9b6fae9a70a42464dda089c943fafbf7bae8b8402e6bf4e4077553206eebc2ed4f7630bb1bd92505131cca5bf8bd82a44477ef53058e1995411bdbf1f5dfad1f00" + ], + "inputs": [ + { + "uxid": "5287f390628909dd8c25fad0feb37859c0c1ddcf90da0c040c837c89fefd9191", + "owner": "2K6NuLBBapWndAssUtkxKfCtyjDQDHrEhhT", + "coins": "8.000000", + "hours": 7454, + "calculated_hours": 7454 + } + ], + "outputs": [ + { + "uxid": "70fa9dfb887f9ef55beb4e960f60e4703c56f98201acecf2cad729f5d7e84690", + "dst": "7cpQ7t3PZZXvjTst8G7Uvs7XH4LeM8fBPD", + "coins": "8.000000", + "hours": 931 + } + ] + } + } +] +``` + +### Get transactions with pagination + +``` +URI: /api/v2/transactions +Method: GET +Args: + addrs: Comma separated addresses [optional, returns all transactions if no address is provided] + confirmed: Whether the transactions should be confirmed [optional, must be 0 or 1; if not provided, returns all] + verbose: [bool] include verbose transaction input data + page: Page number [optional, default to 1, must be greater than 0] + limit: The transactions number per page [optional, default to 10, maximum to 100] + sort: Sort the transactions by block seq [optional, default to asc, must be 'asc' or 'desc'] +``` + +This API is almost the same as the `v1` version, except that it would not return all transactions by default and has +pagination supported. If there are unconfirmed transactions, they will be appended after the confirmed transactions. + +If no argument is provided, the first 10 transactions will be returned. The response would have a `page_info` field which +includes `total pages`, `page size`, and `current page`. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v2/transaction?page=1024&limit=2 +``` + +
+ View Output + +```json +{ + "data": { + "page_info": { + "total_pages": 66530, + "page_size": 2, + "current_page": 1024 + }, + "txns": [ + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 128216, + "block_seq": 2016 + }, + "time": 1500130512, + "txn": { + "timestamp": 1500130512, + "length": 414, + "type": 0, + "txid": "f0a3c01325f3e8f09255d49b490c804b929d668fcb70ea814e1a9868b608cfdb", + "inner_hash": "85a298977f5fa338b7a73359c51b83787130b4f3db4a8425a1c54e45e317499d", + "sigs": [ + "25333b9a283691cb189e1d2ade7dd6eeb6a275be820ff031af9b877b56330f1546a875a528bab2e559236141a644f2248a19ee5fcc86b2271f9dc60fb296f3f701", + "e21fdae15af052f9b842bc062ab8a2ed42baf61fe11c60255555c0fc86b99abc659269dd907472091d392d31b3c1ad24e11176ee6a9e27da1fc57e2d8ddbd04d00", + "5e4aa1cfca62e0a0aac1c646c3917a96bb6d1c7b8cde2e255d01730eb9d436b446cd5a09dfec097d28f5e7038a05e7172e7d5ddfe4558b1f9e3c25367051ff4f00" + ], + "inputs": [ + "5d83e6df94ca78079c8689e700dcabdab2de959fe9f803b36fec34b47b07d025", + "ba1ba491090065d943ce3990b62c5d94f363bbdf37043032d79046af3687ef4c", + "cdce197632464ee9c46d48cb21c959772b8bf2aa04239399353988b937b6e149" + ], + "outputs": [ + { + "uxid": "d19549c470bb6d217bb8095df9ef14346ee8f86730208a4247420307fadbb0f0", + "dst": "WSJoAtC4XcjAxTHAFLKU6MNthhpSDX7i1z", + "coins": "3908.000000", + "hours": 1070530 + }, + { + "uxid": "1742af80ec06a3ef2123a371c6f5e82c275d881e7444f8a921818bc98032fff4", + "dst": "2f9JhZJ147v9D4KxnJwbj8i5iNxqeKL3xNh", + "coins": "50.000000", + "hours": 1070530 + } + ] + } + }, + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 128215, + "block_seq": 2017 + }, + "time": 1500130612, + "txn": { + "timestamp": 1500130612, + "length": 414, + "type": 0, + "txid": "7dc9ae6524abe9108fdc744f210b94274a9c9fdd3da16eaea1aa88037792c27d", + "inner_hash": "752142fcd1cc4b9bad972611a9e64108d91b7642e1eb6b65ac92360a0c9c6bfc", + "sigs": [ + "07973d43d4782ee96af70fa0ee4c73f667b035ade8770d55524b91e6d762a73b7bb6e24358c929609dd91c0140e51fa4f55952b45638bae699e522f4009c8f0c01", + "6d8cd2ebabcb511b1772546c898fa456bfeffefcba69aea0f6c285cda38014c015bb664f66ce0d840c71f66403782e5b6b9fd2688a212eb2e3d275aebee5856b00", + "4844a246eff8b59f177f9a4a43815b1fa8a3168c18d63b50c75773ee51c0b9c047ce59431871ba9fdb7df8827c9a2b175424f22cc6cf02a784b805b50574cc7000" + ], + "inputs": [ + "8754b0d917f6690d5e88dd0950bdcb8e09d96ffb14b76964da923f5dc8969e0c", + "8fe7df28494563a5b47abbe737c095da461235a2529dda2a1119a19965293c8b", + "421ec170519fab890e3410af5ba4cf33f71fa57d786d5d39f71b7a96ed898094" + ], + "outputs": [ + { + "uxid": "fceb40fd9e8895c050fc165d861ebcbe87789eeb89809879a662fdac854bf84e", + "dst": "2bfYafFtdkCRNcCyuDvsATV66GvBR9xfvjy", + "coins": "37659.000000", + "hours": 93972 + }, + { + "uxid": "eb8c8677da0200be7a405f2e3497db9beaa6288734d85acc5488d573ce2b8399", + "dst": "fXZv5X2NXhWYShoE8jazbh5UWYVCFgUXdW", + "coins": "25000.000000", + "hours": 187945 + } + ] + } + } + ] + } +} +``` +
+ +### Resend unconfirmed transactions + +API sets: `TXN`, `WALLET` + +``` +URI: /api/v1/resendUnconfirmedTxns +Method: POST +``` + +Example: + +```sh +curl -X POST 'http://127.0.0.1:6420/api/v1/resendUnconfirmedTxns' +``` + +Result: + +```json +{ + "txids":[ + "b45e571988bc07bd0b623c999655fa878fb9bdd24c8cd24fde179bf4b26ae7b7", + "a6446654829a4a844add9f181949d12f8291fdd2c0fcb22200361e90e814e2d3" + ] +} +``` + +### Verify encoded transaction + +API sets: `READ` + +``` +URI: /api/v2/transaction/verify +Method: POST +Content-Type: application/json +Args: {"unsigned": false, "encoded_transaction": ""} +``` + +If the transaction can be parsed, passes validation and has not been spent, returns `200 OK` with the decoded transaction data, +and the `"confirmed"` field will be `false`. + +If the transaction is structurally valid, passes validation but has been spent, returns `422 Unprocessable Entity` with the decoded transaction data, +and the `"confirmed"` field will be `true`. The `"error"` `"message"` will be `"transaction has been spent"`. + +`"unsigned"` may be specified in the request. If `true`, the transaction will report an error if it is fully signed. +It will not report an error if the transaction is missing at least one signature, and the remainder of the transaction is valid. +In the response, if the transaction has any unsigned inputs, the `"unsigned"` field will be `true`. +If the request did not specify `"unsigned"` or specified it as `false`, the response will return an error for an unsigned transaction. + +If the transaction can be parsed but does not pass validation, returns `422 Unprocessable Entity` with the decoded transaction data. +The `"error"` object will be included in the response with the reason why. +If the transaction's inputs cannot be found in the unspent pool nor in the historical archive of unspents, +the transaction `"inputs"` metadata will be absent and only `"uxid"` will be present. + +If the transaction can not be parsed, returns `400 Bad Request` and the `"error"` object will be included in the response with the reason why. + +Example of valid transaction that has not been spent: + +```sh +curl -X POST -H 'Content-Type: application/json' http://127.0.0.1:6420/api/v2/transaction/verify \ +-d '{"encoded_transaction": "dc000000004fd024d60939fede67065b36adcaaeaf70fc009e3a5bbb8358940ccc8bbb2074010000007635ce932158ec06d94138adc9c9b19113fa4c2279002e6b13dcd0b65e0359f247e8666aa64d7a55378b9cc9983e252f5877a7cb2671c3568ec36579f8df1581000100000019ad5059a7fffc0369fc24b31db7e92e12a4ee2c134fb00d336d7495dec7354d02000000003f0555073e17ea6e45283f0f1115b520d0698d03a086010000000000010000000000000000b90dc595d102c48d3281b47428670210415f585200f22b0000000000ff01000000000000"}' +``` + +Result: + +```json +{ + "data": { + "unsigned": false, + "confirmed": false, + "transaction": { + "length": 220, + "type": 0, + "txid": "82b5fcb182e3d70c285e59332af6b02bf11d8acc0b1407d7d82b82e9eeed94c0", + "inner_hash": "4fd024d60939fede67065b36adcaaeaf70fc009e3a5bbb8358940ccc8bbb2074", + "fee": "1042", + "sigs": [ + "7635ce932158ec06d94138adc9c9b19113fa4c2279002e6b13dcd0b65e0359f247e8666aa64d7a55378b9cc9983e252f5877a7cb2671c3568ec36579f8df158100" + ], + "inputs": [ + { + "uxid": "19ad5059a7fffc0369fc24b31db7e92e12a4ee2c134fb00d336d7495dec7354d", + "address": "2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2", + "coins": "2.980000", + "hours": "985", + "calculated_hours": "1554", + "timestamp": 1527080354, + "block": 30074, + "txid": "94204347ef52d90b3c5d6c31a3fced56ae3f74fd8f1f5576931aeb60847f0e59" + } + ], + "outputs": [ + { + "uxid": "b0911a5fc4dfe4524cdb82f6db9c705f4849af42fcd487a3c4abb2d17573d234", + "address": "SMnCGfpt7zVXm8BkRSFMLeMRA6LUu3Ewne", + "coins": "0.100000", + "hours": "1" + }, + { + "uxid": "a492e6b85a434866be40da7e287bfcf14efce9803ff2fcd9d865c4046e81712a", + "address": "2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2", + "coins": "2.880000", + "hours": "511" + } + ] + } + } +} +``` + +Example of valid transaction that *has* been spent: + +```sh +curl -X POST -H 'Content-Type: application/json' http://127.0.0.1:6420/api/v2/transaction/verify \ +-d '{"encoded_transaction": "dc000000004fd024d60939fede67065b36adcaaeaf70fc009e3a5bbb8358940ccc8bbb2074010000007635ce932158ec06d94138adc9c9b19113fa4c2279002e6b13dcd0b65e0359f247e8666aa64d7a55378b9cc9983e252f5877a7cb2671c3568ec36579f8df1581000100000019ad5059a7fffc0369fc24b31db7e92e12a4ee2c134fb00d336d7495dec7354d02000000003f0555073e17ea6e45283f0f1115b520d0698d03a086010000000000010000000000000000b90dc595d102c48d3281b47428670210415f585200f22b0000000000ff01000000000000"}' +``` + +Result: + +```json +{ + "error": { + "message": "transaction has been spent", + "code": 422 + }, + "data": { + "unsigned": false, + "confirmed": true, + "transaction": { + "length": 220, + "type": 0, + "txid": "82b5fcb182e3d70c285e59332af6b02bf11d8acc0b1407d7d82b82e9eeed94c0", + "inner_hash": "4fd024d60939fede67065b36adcaaeaf70fc009e3a5bbb8358940ccc8bbb2074", + "fee": "1042", + "sigs": [ + "7635ce932158ec06d94138adc9c9b19113fa4c2279002e6b13dcd0b65e0359f247e8666aa64d7a55378b9cc9983e252f5877a7cb2671c3568ec36579f8df158100" + ], + "inputs": [ + { + "uxid": "19ad5059a7fffc0369fc24b31db7e92e12a4ee2c134fb00d336d7495dec7354d", + "address": "2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2", + "coins": "2.980000", + "hours": "985", + "calculated_hours": "1554", + "timestamp": 1527080354, + "block": 30074, + "txid": "94204347ef52d90b3c5d6c31a3fced56ae3f74fd8f1f5576931aeb60847f0e59" + } + ], + "outputs": [ + { + "uxid": "b0911a5fc4dfe4524cdb82f6db9c705f4849af42fcd487a3c4abb2d17573d234", + "address": "SMnCGfpt7zVXm8BkRSFMLeMRA6LUu3Ewne", + "coins": "0.100000", + "hours": "1" + }, + { + "uxid": "a492e6b85a434866be40da7e287bfcf14efce9803ff2fcd9d865c4046e81712a", + "address": "2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2", + "coins": "2.880000", + "hours": "511" + } + ] + } + } +} +``` + +Example of valid, unsigned transaction that has not been spent, with the unsigned parameter set to true in the request: + +```sh +curl -X POST -H 'Content-Type: application/json' http://127.0.0.1:6420/api/v2/transaction/verify \ +-d '{"unsigned": true, "encoded_transaction": "dc000000004fd024d60939fede67065b36adcaaeaf70fc009e3a5bbb8358940ccc8bbb2074010000007635ce932158ec06d94138adc9c9b19113fa4c2279002e6b13dcd0b65e0359f247e8666aa64d7a55378b9cc9983e252f5877a7cb2671c3568ec36579f8df1581000100000019ad5059a7fffc0369fc24b31db7e92e12a4ee2c134fb00d336d7495dec7354d02000000003f0555073e17ea6e45283f0f1115b520d0698d03a086010000000000010000000000000000b90dc595d102c48d3281b47428670210415f585200f22b0000000000ff01000000000000"}' +``` + +Result: + +```json +{ + "data": { + "unsigned": true, + "confirmed": false, + "transaction": { + "length": 220, + "type": 0, + "txid": "82b5fcb182e3d70c285e59332af6b02bf11d8acc0b1407d7d82b82e9eeed94c0", + "inner_hash": "4fd024d60939fede67065b36adcaaeaf70fc009e3a5bbb8358940ccc8bbb2074", + "fee": "1042", + "sigs": [ + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "inputs": [ + { + "uxid": "19ad5059a7fffc0369fc24b31db7e92e12a4ee2c134fb00d336d7495dec7354d", + "address": "2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2", + "coins": "2.980000", + "hours": "985", + "calculated_hours": "1554", + "timestamp": 1527080354, + "block": 30074, + "txid": "94204347ef52d90b3c5d6c31a3fced56ae3f74fd8f1f5576931aeb60847f0e59" + } + ], + "outputs": [ + { + "uxid": "b0911a5fc4dfe4524cdb82f6db9c705f4849af42fcd487a3c4abb2d17573d234", + "address": "SMnCGfpt7zVXm8BkRSFMLeMRA6LUu3Ewne", + "coins": "0.100000", + "hours": "1" + }, + { + "uxid": "a492e6b85a434866be40da7e287bfcf14efce9803ff2fcd9d865c4046e81712a", + "address": "2HTnQe3ZupkG6k8S81brNC3JycGV2Em71F2", + "coins": "2.880000", + "hours": "511" + } + ] + } + } +} +``` + + +## Block APIs + +### Get blockchain metadata + +API sets: `STATUS`, `READ` + +``` +URI: /api/v1/blockchain/metadata +Method: GET +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/blockchain/metadata +``` + +Result: + +```json +{ + "head": { + "seq": 58894, + "block_hash": "3961bea8c4ab45d658ae42effd4caf36b81709dc52a5708fdd4c8eb1b199a1f6", + "previous_block_hash": "8eca94e7597b87c8587286b66a6b409f6b4bf288a381a56d7fde3594e319c38a", + "timestamp": 1537581604, + "fee": 485194, + "version": 0, + "tx_body_hash": "c03c0dd28841d5aa87ce4e692ec8adde923799146ec5504e17ac0c95036362dd", + "ux_hash": "f7d30ecb49f132283862ad58f691e8747894c9fc241cb3a864fc15bd3e2c83d3" + }, + "unspents": 38171, + "unconfirmed": 1 +} +``` + +### Get blockchain progress + +API sets: `STATUS`, `READ` + +``` +URI: /api/v1/blockchain/progress +Method: GET +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/blockchain/progress +``` + +Result: + +```json +{ + "current": 2760, + "highest": 2760, + "peers": [ + { + "address": "35.157.164.126:6000", + "height": 2760 + }, + { + "address": "63.142.253.76:6000", + "height": 2760 + } + ] +} +``` + +### Get block by hash or seq + +API sets: `READ` + +``` +URI: /api/v1/block +Method: GET +Args: + hash: get block by hash + seq: get block by sequence number + verbose: [bool] return verbose transaction input data +``` + +If verbose, the transaction inputs include the owner address, coins, hours and calculated hours. +The hours are the original hours the output was created with. +The calculated hours are the hours the transaction had in the block in which it was executed. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/block?hash=6eafd13ab6823223b714246b32c984b56e0043412950faf17defdbb2cbf3fe30 +``` + +or + +```sh +curl http://127.0.0.1:6420/api/v1/block?seq=2760 +``` + +Result: + +```json +{ + "header": { + "seq": 2760, + "block_hash": "6eafd13ab6823223b714246b32c984b56e0043412950faf17defdbb2cbf3fe30", + "previous_block_hash": "eaccd527ef263573c29000dbfb3c782ee175153c63f42abb671588b7071e877f", + "timestamp": 1504220821, + "fee": 196130, + "version": 0, + "tx_body_hash": "825ae95b81ae0ce037cdf9f1cda138bac3f3ed41c51b09e0befb71848e0f3bfd", + "ux_hash": "366af6bd80cfce79ce1ef63b45fb3ae8d9a6afc92a8590f14e18220884bd9d22" + }, + "body": { + "txns": [ + { + "length": 220, + "type": 0, + "txid": "825ae95b81ae0ce037cdf9f1cda138bac3f3ed41c51b09e0befb71848e0f3bfd", + "inner_hash": "312e5dd55e06be5f9a0ee43a00d447f2fea47a7f1fb9669ecb477d2768ab04fd", + "sigs": [ + "f0d0eb337e3440af6e8f0c105037ec205f36c83770d26a9e3a0fb4b7ec1a2be64764f4e31cbaf6629933c971613d10d58e6acb592704a7d511f19836441f09fb00" + ], + "inputs": [ + "e7594379c9a6bb111205cbfa6fac908cac1d136e207960eb0429f15fde09ac8c" + ], + "outputs": [ + { + "uxid": "840d0ee483c1dc085e6518e1928c68979af61188b809fc74da9fca982e6a61ba", + "dst": "2GgFvqoyk9RjwVzj8tqfcXVXB4orBwoc9qv", + "coins": "998.000000", + "hours": 35390 + }, + { + "uxid": "38177c437ff42f29dc8d682e2f7c278f2203b6b02f42b1a88f9eb6c2392a7f70", + "dst": "2YHKP9yH7baLvkum3U6HCBiJjnAUCLS5Z9U", + "coins": "2.000000", + "hours": 70780 + } + ] + } + ] + }, + "size": 220 +} +``` + +Example (verbose): + +```sh +curl http://127.0.0.1:6420/api/v1/block?hash=6eafd13ab6823223b714246b32c984b56e0043412950faf17defdbb2cbf3fe30&verbose=1 +``` + +or + +```sh +curl http://127.0.0.1:6420/api/v1/block?seq=2760&verbose=1 +``` + +Result: + +```json +{ + "header": { + "seq": 2760, + "block_hash": "6eafd13ab6823223b714246b32c984b56e0043412950faf17defdbb2cbf3fe30", + "previous_block_hash": "eaccd527ef263573c29000dbfb3c782ee175153c63f42abb671588b7071e877f", + "timestamp": 1504220821, + "fee": 196130, + "version": 0, + "tx_body_hash": "825ae95b81ae0ce037cdf9f1cda138bac3f3ed41c51b09e0befb71848e0f3bfd", + "ux_hash": "366af6bd80cfce79ce1ef63b45fb3ae8d9a6afc92a8590f14e18220884bd9d22" + }, + "body": { + "txns": [ + { + "length": 220, + "type": 0, + "txid": "825ae95b81ae0ce037cdf9f1cda138bac3f3ed41c51b09e0befb71848e0f3bfd", + "inner_hash": "312e5dd55e06be5f9a0ee43a00d447f2fea47a7f1fb9669ecb477d2768ab04fd", + "fee": 196130, + "sigs": [ + "f0d0eb337e3440af6e8f0c105037ec205f36c83770d26a9e3a0fb4b7ec1a2be64764f4e31cbaf6629933c971613d10d58e6acb592704a7d511f19836441f09fb00" + ], + "inputs": [ + { + "uxid": "e7594379c9a6bb111205cbfa6fac908cac1d136e207960eb0429f15fde09ac8c", + "owner": "kbbzyrUKNVJsJDGFLAjVT5neVcx5SQjFx5", + "coins": "1000.000000", + "hours": 283123, + "calculated_hours": 302300 + } + ], + "outputs": [ + { + "uxid": "840d0ee483c1dc085e6518e1928c68979af61188b809fc74da9fca982e6a61ba", + "dst": "2GgFvqoyk9RjwVzj8tqfcXVXB4orBwoc9qv", + "coins": "998.000000", + "hours": 35390 + }, + { + "uxid": "38177c437ff42f29dc8d682e2f7c278f2203b6b02f42b1a88f9eb6c2392a7f70", + "dst": "2YHKP9yH7baLvkum3U6HCBiJjnAUCLS5Z9U", + "coins": "2.000000", + "hours": 70780 + } + ] + } + ] + }, + "size": 220 +} +``` + + +### Get blocks in specific range + +API sets: `READ` + +``` +URI: /api/v1/blocks +Method: GET, POST +Args: + start: start seq + end: end seq + seqs: comma-separated list of block seqs + verbose: [bool] return verbose transaction input data +``` + +This endpoint has two modes: range and seqs. +The `seqs` parameter cannot be combined with `start`, `end`. + +If `start` and/or `end` are provided, returns blocks in the range [`start`, `end`]. +Both start and end sequences are included in the returned array of blocks. + +If `seqs` is provided, returns blocks matching the specified sequences. +`seqs` must not contain any duplicate values. +If a block does not exist for any of the given sequence numbers, a `404` error is returned. + +If verbose, the transaction inputs include the owner address, coins, hours and calculated hours. +The hours are the original hours the output was created with. +The calculated hours are the hours the transaction had in the block in which it was executed. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/blocks?start=101&end=102 +``` + +Result: + +```json +{ + "blocks": [ + { + "header": { + "seq": 101, + "block_hash": "8156057fc823589288f66c91edb60c11ff004465bcbe3a402b1328be7f0d6ce0", + "previous_block_hash": "725e76907998485d367a847b0fb49f08536c592247762279fcdbd9907fee5607", + "timestamp": 1429274666, + "fee": 720335, + "version": 0, + "tx_body_hash": "e8fe5290afba3933389fd5860dca2cbcc81821028be9c65d0bb7cf4e8d2c4c18", + "ux_hash": "348989599d30d3adfaaea98577963caa419ab0276279296e7d194a9cbb8cad04" + }, + "body": { + "txns": [ + { + "length": 183, + "type": 0, + "txid": "e8fe5290afba3933389fd5860dca2cbcc81821028be9c65d0bb7cf4e8d2c4c18", + "inner_hash": "45da31b68748eafdb08ef8bf1ebd1c07c0f14fcb0d66759d6cf4642adc956d06", + "sigs": [ + "09bce2c888ceceeb19999005cceb1efdee254cacb60edee118b51ffd740ff6503a8f9cbd60a16c7581bfd64f7529b649d0ecc8adbe913686da97fe8c6543189001" + ], + "inputs": [ + "6002f3afc7054c0e1161bcf2b4c1d4d1009440751bc1fe806e0eae33291399f4" + ], + "outputs": [ + { + "uxid": "f9bffdcbe252acb1c3a8a1e8c99829342ba1963860d5692eebaeb9bcfbcaf274", + "dst": "R6aHqKWSQfvpdo2fGSrq4F1RYXkBWR9HHJ", + "coins": "27000.000000", + "hours": 102905 + } + ] + } + ] + }, + "size": 183 + }, + { + "header": { + "seq": 102, + "block_hash": "311f4b83b4fdb9fd1d45648115969cf4b3aab2d1acad9e2aa735829245c525f3", + "previous_block_hash": "8156057fc823589288f66c91edb60c11ff004465bcbe3a402b1328be7f0d6ce0", + "timestamp": 1429274686, + "fee": 710046, + "version": 0, + "tx_body_hash": "7b13cab45b52dd2df291ec97cf000bf6ea1b647d6fdf0261a7527578d8b71b9d", + "ux_hash": "f7512b0718f392c7503f86e69175efd7835ea4c3dd3f71ff65c7ad8873a6a9e8" + }, + "body": { + "txns": [ + { + "length": 183, + "type": 0, + "txid": "7b13cab45b52dd2df291ec97cf000bf6ea1b647d6fdf0261a7527578d8b71b9d", + "inner_hash": "73bfee3a7c8d4f8a68657ebcaf69a59639f762bfc1a6f4468f3ca4724bc5b9f8", + "sigs": [ + "c4bcada17604a4a62baf50f929655027f2913639c27b773871f2135b72553c1959737e39d50e8349ffa5a7679de845aa6370999dbaaff4c7f9fd01260818683901" + ], + "inputs": [ + "4e75b4bced3404590d38ca06440c275d7fd86618a84966a0a1053fb18164e898" + ], + "outputs": [ + { + "uxid": "0a5603a1a5aeda575aa498cdaec5a4c893a28669dba84163eba2e90db3d9f39d", + "dst": "2JJ8pgq8EDAnrzf9xxBJapE2qkYLefW4uF8", + "coins": "26700.000000", + "hours": 101435 + } + ] + } + ] + }, + "size": 183 + } + ] +} +``` + +Example (verbose): + +```sh +curl http://127.0.0.1:6420/api/v1/blocks?start=101&end=102&verbose=1 +``` + +Result: + +```json +{ + "blocks": [ + { + "header": { + "seq": 101, + "block_hash": "8156057fc823589288f66c91edb60c11ff004465bcbe3a402b1328be7f0d6ce0", + "previous_block_hash": "725e76907998485d367a847b0fb49f08536c592247762279fcdbd9907fee5607", + "timestamp": 1429274666, + "fee": 720335, + "version": 0, + "tx_body_hash": "e8fe5290afba3933389fd5860dca2cbcc81821028be9c65d0bb7cf4e8d2c4c18", + "ux_hash": "348989599d30d3adfaaea98577963caa419ab0276279296e7d194a9cbb8cad04" + }, + "body": { + "txns": [ + { + "length": 183, + "type": 0, + "txid": "e8fe5290afba3933389fd5860dca2cbcc81821028be9c65d0bb7cf4e8d2c4c18", + "inner_hash": "45da31b68748eafdb08ef8bf1ebd1c07c0f14fcb0d66759d6cf4642adc956d06", + "fee": 720335, + "sigs": [ + "09bce2c888ceceeb19999005cceb1efdee254cacb60edee118b51ffd740ff6503a8f9cbd60a16c7581bfd64f7529b649d0ecc8adbe913686da97fe8c6543189001" + ], + "inputs": [ + { + "uxid": "6002f3afc7054c0e1161bcf2b4c1d4d1009440751bc1fe806e0eae33291399f4", + "owner": "2M1C5LSZ4Pvu5RWS44bCdY6or3R8grQw7ez", + "coins": "27000.000000", + "hours": 220, + "calculated_hours": 823240 + } + ], + "outputs": [ + { + "uxid": "f9bffdcbe252acb1c3a8a1e8c99829342ba1963860d5692eebaeb9bcfbcaf274", + "dst": "R6aHqKWSQfvpdo2fGSrq4F1RYXkBWR9HHJ", + "coins": "27000.000000", + "hours": 102905 + } + ] + } + ] + }, + "size": 183 + }, + { + "header": { + "seq": 102, + "block_hash": "311f4b83b4fdb9fd1d45648115969cf4b3aab2d1acad9e2aa735829245c525f3", + "previous_block_hash": "8156057fc823589288f66c91edb60c11ff004465bcbe3a402b1328be7f0d6ce0", + "timestamp": 1429274686, + "fee": 710046, + "version": 0, + "tx_body_hash": "7b13cab45b52dd2df291ec97cf000bf6ea1b647d6fdf0261a7527578d8b71b9d", + "ux_hash": "f7512b0718f392c7503f86e69175efd7835ea4c3dd3f71ff65c7ad8873a6a9e8" + }, + "body": { + "txns": [ + { + "length": 183, + "type": 0, + "txid": "7b13cab45b52dd2df291ec97cf000bf6ea1b647d6fdf0261a7527578d8b71b9d", + "inner_hash": "73bfee3a7c8d4f8a68657ebcaf69a59639f762bfc1a6f4468f3ca4724bc5b9f8", + "fee": 710046, + "sigs": [ + "c4bcada17604a4a62baf50f929655027f2913639c27b773871f2135b72553c1959737e39d50e8349ffa5a7679de845aa6370999dbaaff4c7f9fd01260818683901" + ], + "inputs": [ + { + "uxid": "4e75b4bced3404590d38ca06440c275d7fd86618a84966a0a1053fb18164e898", + "owner": "2JJ8pgq8EDAnrzf9xxBJapE2qkYLefW4uF8", + "coins": "26700.000000", + "hours": 54, + "calculated_hours": 811481 + } + ], + "outputs": [ + { + "uxid": "0a5603a1a5aeda575aa498cdaec5a4c893a28669dba84163eba2e90db3d9f39d", + "dst": "2JJ8pgq8EDAnrzf9xxBJapE2qkYLefW4uF8", + "coins": "26700.000000", + "hours": 101435 + } + ] + } + ] + }, + "size": 183 + } + ] +} +``` + +Example (seqs): + +```sh +curl http://127.0.0.1:6420/api/v1/blocks?seqs=3,5,7 +``` + +```json +{ + "blocks": [ + { + "header": { + "seq": 3, + "block_hash": "35c3ebbe6feaeeab27ac77c1712051787bdd4bbfb5cdcdebc81f8aac98a2f3f3", + "previous_block_hash": "01723bc4dc90f1cb857a94fe5e3bb50c02e6689fd998f8147c9cae07fbfa63af", + "timestamp": 1427927671, + "fee": 0, + "version": 0, + "tx_body_hash": "a6a709e9388a4d67a47d262b11da5f804eddd9d67acc4a3e450f7a567bdc1619" + }, + "body": { + "txns": [ + { + "length": 183, + "type": 0, + "txid": "a6a709e9388a4d67a47d262b11da5f804eddd9d67acc4a3e450f7a567bdc1619", + "inner_hash": "ea6adee3180c7f9d73d1e693822d5d1c2bba85067f89a873355bc771a078faa1", + "sigs": [ + "ce8fd47e2044ed17998f92621e90329f673a746c802d67f639ca083705dd199f6ee346781497b44132434922879244d819694b5903093f784570c55d293ab4af01" + ], + "inputs": [ + "af0b2c1cc882a56b6c0c06e99e7d2731413b988329a2c47a5c2aa8be589b707a" + ], + "outputs": [ + { + "uxid": "9eb7954461ba0256c9054fe38c00c66e60428dccf900a62e74b9fe39310aea13", + "dst": "R6aHqKWSQfvpdo2fGSrq4F1RYXkBWR9HHJ", + "coins": "10.000000", + "hours": 0 + } + ] + } + ] + }, + "size": 183 + }, + { + "header": { + "seq": 5, + "block_hash": "114fe60587a158428a47e0f9571d764f495912c299aa4e67fc88004cf21b0c24", + "previous_block_hash": "415e47348a1e642cb2e31d00ee500747d3aed0336aabfff7d783ed21465251c7", + "timestamp": 1428798821, + "fee": 2036, + "version": 0, + "tx_body_hash": "0579e7727627cd9815a8a8b5e1df86124f45a4132cc0dbd00d2f110e4f409b69" + }, + "body": { + "txns": [ + { + "length": 317, + "type": 0, + "txid": "0579e7727627cd9815a8a8b5e1df86124f45a4132cc0dbd00d2f110e4f409b69", + "inner_hash": "fe123ca954a82bb1ce2cc9ef9c56d6b649a4cbaf5b17394b0ffda651ed32327e", + "sigs": [ + "056ed0f74367fb1370d7e98689953983d9cf34eb6669854f1645c8a16c93d85075661e7d4f6df0ce5ca8eb9852eff6a12fbac2caafee03bb8c616f847c61416800", + "8aaa7f320a7b01169d3217a600100cb27c55e4ce56cd3455814f56d8e4e65be746e0e20e776087af6f19361f0b898edc2123a5f9bd35d24ef8b8669ca85b142601" + ], + "inputs": [ + "9eb7954461ba0256c9054fe38c00c66e60428dccf900a62e74b9fe39310aea13", + "706f82c481906108880d79372ab5c126d32ecc98cf3f7c74cf33f5fda49dcf70" + ], + "outputs": [ + { + "uxid": "fa2b598d233fe434f907f858d5de812eacf50c7b3fd152c77cd6e246fe356a9e", + "dst": "R6aHqKWSQfvpdo2fGSrq4F1RYXkBWR9HHJ", + "coins": "999890.000000", + "hours": 4073 + }, + { + "uxid": "dc63c680f408c4e646037966189383a5d50eda34e666c2a0c75c0c6bf13b71a1", + "dst": "2fGC7kwAM9yZyEF1QqBqp8uo9RUsF6ENGJF", + "coins": "100.000000", + "hours": 0 + } + ] + } + ] + }, + "size": 317 + }, + { + "header": { + "seq": 7, + "block_hash": "6cb71b57c998a5367101e01d48c097eccd4f5abf311c89bcca8ee213581f355f", + "previous_block_hash": "103949030e90fcebc5d8ca1c9c59f30a31aa71911401d22a2422e4571b035701", + "timestamp": 1428807671, + "fee": 0, + "version": 0, + "tx_body_hash": "f832428481690fa918d6d29946e191f2c8c89b2388a906e0c53dceee6070a24b" + }, + "body": { + "txns": [ + { + "length": 220, + "type": 0, + "txid": "f832428481690fa918d6d29946e191f2c8c89b2388a906e0c53dceee6070a24b", + "inner_hash": "f440c514779522a6387edda9b9d9835f00680fb314546efb7bc9762a17884156", + "sigs": [ + "8fe96f5502270e4efa962b2aef2b81795fe26a8f0c9a494e2ae9c7e624af455c49396270ae7a25b41d439fd56dea9d556a135129122de1b1274b1e2a5d75f2ea01" + ], + "inputs": [ + "8ff8a647e4542fab01e078ac467b2c9f2e5f7de55d77ec2711f8abc718e2c91b" + ], + "outputs": [ + { + "uxid": "17090c40091d009d6a684043d3be2e9cb1dc60a664a9c2e388af1f3a7345724b", + "dst": "2fGC7kwAM9yZyEF1QqBqp8uo9RUsF6ENGJF", + "coins": "90.000000", + "hours": 0 + }, + { + "uxid": "f9e7a412cdff80e95ddbe1d76fcc73f967cb99d383b0659e1355c8e623f02b62", + "dst": "WADSeEwEQVbtUy8CfcVimyxX1KjTRkvfoK", + "coins": "5.000000", + "hours": 0 + } + ] + } + ] + }, + "size": 220 + } + ] +} +``` + + +### Get last N blocks + +API sets: `READ` + +``` +URI: /api/v1/last_blocks +Method: GET +Args: + num: number of most recent blocks to return + verbose: [bool] return verbose transaction input data +``` + +If verbose, the transaction inputs include the owner address, coins, hours and calculated hours. +The hours are the original hours the output was created with. +The calculated hours are the hours the transaction had in the block in which it was executed. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/last_blocks?num=2 +``` + +Result: + +```json +{ + "blocks": [ + { + "header": { + "seq": 58893, + "block_hash": "8eca94e7597b87c8587286b66a6b409f6b4bf288a381a56d7fde3594e319c38a", + "previous_block_hash": "1f042ed976c0cb150ea6b71c9608d65b519e4bc1c507eba9f1146e443a856c2d", + "timestamp": 1537581594, + "fee": 970389, + "version": 0, + "tx_body_hash": "1bea5cf1279693a0da24828c37b267c702007842b16ca5557ae497574d15aab7", + "ux_hash": "bf35652af199779bc40cbeb339e8a782ff70673b07779e5c5621d37dfe13b42b" + }, + "body": { + "txns": [ + { + "length": 377, + "type": 0, + "txid": "1bea5cf1279693a0da24828c37b267c702007842b16ca5557ae497574d15aab7", + "inner_hash": "a25232405bcef0c007bb2d7d3520f2a389e17e11125c252ab6c00168ec52c08d", + "sigs": [ + "2ff7390c3b66c6b0fbb2b4c59c8e218291d4cbb82a836bb577c7264677f4a8320f6f3ad72d804e3014728baa214c223ecced8725b64be96fe3b51332ad1eda4201", + "9e7c715f897b3c987c00ee8c6b14e4b90bb3e4e11d003b481f82042b1795b3c75eaa3d563cd0358cdabdab77cfdbead7323323cf73e781f9c1a8cf6d9b4f8ac100", + "5c9748314f2fe0cd442df5ebb8f211087111d22e9463355bf9eee583d44df1bd36addb510eb470cb5dafba0732615f8533072f80ae05fc728c91ce373ada1e7b00" + ], + "inputs": [ + "5f634c825b2a53103758024b3cb8578b17d56d422539e23c26b91ea397161703", + "16ac52084ffdac2e9169b9e057d44630dec23d18cfb90b9437d28220a3dc585d", + "8d3263890d32382e182b86f8772c7685a8f253ed475c05f7d530e9296f692bc9" + ], + "outputs": [ + { + "uxid": "fb8db3f78928aee3f5cbda8db7fc290df9e64414e8107872a1c5cf83e08e4df7", + "dst": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "26.913000", + "hours": 970388 + } + ] + } + ] + }, + "size": 377 + }, + { + "header": { + "seq": 58894, + "block_hash": "3961bea8c4ab45d658ae42effd4caf36b81709dc52a5708fdd4c8eb1b199a1f6", + "previous_block_hash": "8eca94e7597b87c8587286b66a6b409f6b4bf288a381a56d7fde3594e319c38a", + "timestamp": 1537581604, + "fee": 485194, + "version": 0, + "tx_body_hash": "c03c0dd28841d5aa87ce4e692ec8adde923799146ec5504e17ac0c95036362dd", + "ux_hash": "f7d30ecb49f132283862ad58f691e8747894c9fc241cb3a864fc15bd3e2c83d3" + }, + "body": { + "txns": [ + { + "length": 257, + "type": 0, + "txid": "c03c0dd28841d5aa87ce4e692ec8adde923799146ec5504e17ac0c95036362dd", + "inner_hash": "f7dbd09f7e9f65d87003984640f1977fb9eec95b07ef6275a1ec6261065e68d7", + "sigs": [ + "af5329e77213f34446a0ff41d249fd25bc1dae913390871df359b9bd587c95a10b625a74a3477a05cc7537cb532253b12c03349ead5be066b8e0009e79462b9501" + ], + "inputs": [ + "fb8db3f78928aee3f5cbda8db7fc290df9e64414e8107872a1c5cf83e08e4df7" + ], + "outputs": [ + { + "uxid": "235811602fc96cf8b5b031edb88ee1606830aa641c06e0986681552d8728ec07", + "dst": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "0.500000", + "hours": 1 + }, + { + "uxid": "873da4edc01c0b5184e1f26c4c3471dd407d08e9ab36b018ab93874e7392320b", + "dst": "2XBMMDMqTTYmqs2rfjEwYDz8ABd38y9B8r7", + "coins": "0.500000", + "hours": 1 + }, + { + "uxid": "42a6f0127f61e1d7bca8e9680027eddcecad772250c5634a03e56a8b1cf5a816", + "dst": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "25.913000", + "hours": 485192 + } + ] + } + ] + }, + "size": 257 + } + ] +} +``` + +Example (verbose): + +```sh +curl http://127.0.0.1:6420/api/v1/last_blocks?num=2&verbose=1 +``` + +Result: + +```json +{ + "blocks": [ + { + "header": { + "seq": 58893, + "block_hash": "8eca94e7597b87c8587286b66a6b409f6b4bf288a381a56d7fde3594e319c38a", + "previous_block_hash": "1f042ed976c0cb150ea6b71c9608d65b519e4bc1c507eba9f1146e443a856c2d", + "timestamp": 1537581594, + "fee": 970389, + "version": 0, + "tx_body_hash": "1bea5cf1279693a0da24828c37b267c702007842b16ca5557ae497574d15aab7", + "ux_hash": "bf35652af199779bc40cbeb339e8a782ff70673b07779e5c5621d37dfe13b42b" + }, + "body": { + "txns": [ + { + "length": 377, + "type": 0, + "txid": "1bea5cf1279693a0da24828c37b267c702007842b16ca5557ae497574d15aab7", + "inner_hash": "a25232405bcef0c007bb2d7d3520f2a389e17e11125c252ab6c00168ec52c08d", + "fee": 970389, + "sigs": [ + "2ff7390c3b66c6b0fbb2b4c59c8e218291d4cbb82a836bb577c7264677f4a8320f6f3ad72d804e3014728baa214c223ecced8725b64be96fe3b51332ad1eda4201", + "9e7c715f897b3c987c00ee8c6b14e4b90bb3e4e11d003b481f82042b1795b3c75eaa3d563cd0358cdabdab77cfdbead7323323cf73e781f9c1a8cf6d9b4f8ac100", + "5c9748314f2fe0cd442df5ebb8f211087111d22e9463355bf9eee583d44df1bd36addb510eb470cb5dafba0732615f8533072f80ae05fc728c91ce373ada1e7b00" + ], + "inputs": [ + { + "uxid": "5f634c825b2a53103758024b3cb8578b17d56d422539e23c26b91ea397161703", + "owner": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "25.910000", + "hours": 7745, + "calculated_hours": 17458 + }, + { + "uxid": "16ac52084ffdac2e9169b9e057d44630dec23d18cfb90b9437d28220a3dc585d", + "owner": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "1.000000", + "hours": 1915246, + "calculated_hours": 1915573 + }, + { + "uxid": "8d3263890d32382e182b86f8772c7685a8f253ed475c05f7d530e9296f692bc9", + "owner": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "0.003000", + "hours": 7745, + "calculated_hours": 7746 + } + ], + "outputs": [ + { + "uxid": "fb8db3f78928aee3f5cbda8db7fc290df9e64414e8107872a1c5cf83e08e4df7", + "dst": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "26.913000", + "hours": 970388 + } + ] + } + ] + }, + "size": 377 + }, + { + "header": { + "seq": 58894, + "block_hash": "3961bea8c4ab45d658ae42effd4caf36b81709dc52a5708fdd4c8eb1b199a1f6", + "previous_block_hash": "8eca94e7597b87c8587286b66a6b409f6b4bf288a381a56d7fde3594e319c38a", + "timestamp": 1537581604, + "fee": 485194, + "version": 0, + "tx_body_hash": "c03c0dd28841d5aa87ce4e692ec8adde923799146ec5504e17ac0c95036362dd", + "ux_hash": "f7d30ecb49f132283862ad58f691e8747894c9fc241cb3a864fc15bd3e2c83d3" + }, + "body": { + "txns": [ + { + "length": 257, + "type": 0, + "txid": "c03c0dd28841d5aa87ce4e692ec8adde923799146ec5504e17ac0c95036362dd", + "inner_hash": "f7dbd09f7e9f65d87003984640f1977fb9eec95b07ef6275a1ec6261065e68d7", + "fee": 485194, + "sigs": [ + "af5329e77213f34446a0ff41d249fd25bc1dae913390871df359b9bd587c95a10b625a74a3477a05cc7537cb532253b12c03349ead5be066b8e0009e79462b9501" + ], + "inputs": [ + { + "uxid": "fb8db3f78928aee3f5cbda8db7fc290df9e64414e8107872a1c5cf83e08e4df7", + "owner": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "26.913000", + "hours": 970388, + "calculated_hours": 970388 + } + ], + "outputs": [ + { + "uxid": "235811602fc96cf8b5b031edb88ee1606830aa641c06e0986681552d8728ec07", + "dst": "2Huip6Eizrq1uWYqfQEh4ymibLysJmXnWXS", + "coins": "0.500000", + "hours": 1 + }, + { + "uxid": "873da4edc01c0b5184e1f26c4c3471dd407d08e9ab36b018ab93874e7392320b", + "dst": "2XBMMDMqTTYmqs2rfjEwYDz8ABd38y9B8r7", + "coins": "0.500000", + "hours": 1 + }, + { + "uxid": "42a6f0127f61e1d7bca8e9680027eddcecad772250c5634a03e56a8b1cf5a816", + "dst": "uvcDrKc8rHTjxLrU4mPN56Hyh2tR6RvCvw", + "coins": "25.913000", + "hours": 485192 + } + ] + } + ] + }, + "size": 257 + } + ] +} +``` + +## Uxout APIs + +### Get uxout + +API sets: `READ` + +``` +URI: /api/v1/uxout +Method: GET +Args: + uxid +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/uxout?uxid=8b64d9b058e10472b9457fd2d05a1d89cbbbd78ce1d97b16587d43379271bed1 +``` + +Result: + +```json +{ + "uxid": "8b64d9b058e10472b9457fd2d05a1d89cbbbd78ce1d97b16587d43379271bed1", + "time": 1502870712, + "src_block_seq": 2545, + "src_tx": "ded9e671510ab300a4ea3ee126fe8e2d50b995021e2db4589c6fb4ac000fe7bb", + "owner_address": "c9zyTYwgR4n89KyzknpmGaaDarUCPEs9mV", + "coins": 2000000, + "hours": 5039, + "spent_block_seq": 2556, + "spent_tx": "b51e1933f286c4f03d73e8966186bafb25f64053db8514327291e690ae8aafa5" +} +``` + +### Get historical unspent outputs for an address + +API sets: `READ` + +``` +URI: /api/v1/address_uxouts +Method: GET +Args: + address +``` + +Returns the historical, spent outputs of a given address. + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/address_uxouts?address=6dkVxyKFbFKg9Vdg6HPg1UANLByYRqkrdY +``` + +Result: + +```json +[ + { + "uxid": "7669ff7350d2c70a88093431a7b30d3e69dda2319dcb048aa80fa0d19e12ebe0", + "time": 1502936862, + "src_block_seq": 2556, + "src_tx": "b51e1933f286c4f03d73e8966186bafb25f64053db8514327291e690ae8aafa5", + "owner_address": "6dkVxyKFbFKg9Vdg6HPg1UANLByYRqkrdY", + "coins": 2000000, + "hours": 633, + "spent_block_seq": 0, + "spent_tx": "0000000000000000000000000000000000000000000000000000000000000000" + } +] +``` + +## Coin supply related information + +### Coin supply + +API sets: `READ` + +``` +URI: /api/v1/coinSupply +Method: GET +``` + +Example: + +```sh +curl http://127.0.0.1:6420/api/v1/coinSupply +``` + +Result: + +```json +{ + "current_supply": "7187500.000000", + "total_supply": "25000000.000000", + "max_supply": "100000000.000000", + "current_coinhour_supply": "23499025077", + "total_coinhour_supply": "93679828577", + "unlocked_distribution_addresses": [ + "R6aHqKWSQfvpdo2fGSrq4F1RYXkBWR9HHJ", + "2EYM4WFHe4Dgz6kjAdUkM6Etep7ruz2ia6h", + "25aGyzypSA3T9K6rgPUv1ouR13efNPtWP5m", + "ix44h3cojvN6nqGcdpy62X7Rw6Ahnr3Thk", + "AYV8KEBEAPCg8a59cHgqHMqYHP9nVgQDyW", + "2Nu5Jv5Wp3RYGJU1EkjWFFHnebxMx1GjfkF", + "2THDupTBEo7UqB6dsVizkYUvkKq82Qn4gjf", + "tWZ11Nvor9parjg4FkwxNVcby59WVTw2iL", + "m2joQiJRZnj3jN6NsoKNxaxzUTijkdRoSR", + "8yf8PAQqU2cDj8Yzgz3LgBEyDqjvCh2xR7", + "sgB3n11ZPUYHToju6TWMpUZTUcKvQnoFMJ", + "2UYPbDBnHUEc67e7qD4eXtQQ6zfU2cyvAvk", + "wybwGC9rhm8ZssBuzpy5goXrAdE31MPdsj", + "JbM25o7kY7hqJZt3WGYu9pHZFCpA9TCR6t", + "2efrft5Lnwjtk7F1p9d7BnPd72zko2hQWNi", + "Syzmb3MiMoiNVpqFdQ38hWgffHg86D2J4e", + "2g3GUmTQooLrNHaRDhKtLU8rWLz36Beow7F", + "D3phtGr9iv6238b3zYXq6VgwrzwvfRzWZQ", + "gpqsFSuMCZmsjPc6Rtgy1FmLx424tH86My", + "2EUF3GPEUmfocnUc1w6YPtqXVCy3UZA4rAq", + "TtAaxB3qGz5zEAhhiGkBY9VPV7cekhvRYS", + "2fM5gVpi7XaiMPm4i29zddTNkmrKe6TzhVZ", + "ix3NDKgxfYYANKAb5kbmwBYXPrkAsha7uG", + "2RkPshpFFrkuaP98GprLtgHFTGvPY5e6wCK", + "Ak1qCDNudRxZVvcW6YDAdD9jpYNNStAVqm" + ], + "locked_distribution_addresses": [ + "2eZYSbzBKJ7QCL4kd5LSqV478rJQGb4UNkf", + "KPfqM6S96WtRLMuSy4XLfVwymVqivdcDoM", + "5B98bU1nsedGJBdRD5wLtq7Z8t8ZXio8u5", + "2iZWk5tmBynWxj2PpAFyiZzEws9qSnG3a6n", + "XUGdPaVnMh7jtzPe3zkrf9FKh5nztFnQU5", + "hSNgHgewJme8uaHrEuKubHYtYSDckD6hpf", + "2DeK765jLgnMweYrMp1NaYHfzxumfR1PaQN", + "orrAssY5V2HuQAbW9K6WktFrGieq2m23pr", + "4Ebf4PkG9QEnQTm4MVvaZvJV6Y9av3jhgb", + "7Uf5xJ3GkiEKaLxC2WmJ1t6SeekJeBdJfu", + "oz4ytDKbCqpgjW3LPc52pW2CaK2gxCcWmL", + "2ex5Z7TufQ5Z8xv5mXe53fSQRfUr35SSo7Q", + "WV2ap7ZubTxeDdmEZ1Xo7ufGMkekLWikJu", + "ckCTV4r1pNuz6j2VBRHhaJN9HsCLY7muLV", + "MXJx96ZJVSjktgeYZpVK8vn1H3xWP8ooq5", + "wyQVmno9aBJZmQ99nDSLoYWwp7YDJCWsrH", + "2cc9wKxCsFNRkoAQDAoHke3ZoyL1mSV14cj", + "29k9g3F5AYfVaa1joE1PpZjBED6hQXes8Mm", + "2XPLzz4ZLf1A9ykyTCjW5gEmVjnWa8CuatH", + "iH7DqqojTgUn2JxmY9hgFp165Nk7wKfan9", + "RJzzwUs3c9C8Y7NFYzNfFoqiUKeBhBfPki", + "2W2cGyiCRM4nwmmiGPgMuGaPGeBzEm7VZPn", + "ALJVNKYL7WGxFBSriiZuwZKWD4b7fbV1od", + "tBaeg9zE2sgmw5ZQENaPPYd6jfwpVpGTzS", + "2hdTw5Hk3rsgpZjvk8TyKcCZoRVXU5QVrUt", + "A1QU6jKq8YgTP79M8fwZNHUZc7hConFKmy", + "q9RkXoty3X1fuaypDDRUi78rWgJWYJMmpJ", + "2Xvm6is5cAPA85xnSYXDuAqiRyoXiky5RaD", + "4CW2CPJEzxhn2PS4JoSLoWGL5QQ7dL2eji", + "24EG6uTzL7DHNzcwsygYGRR1nfu5kco7AZ1", + "KghGnWw5fppTrqHSERXZf61yf7GkuQdCnV", + "2WojewRA3LbpyXTP9ANy8CZqJMgmyNm3MDr", + "2BsMfywmGV3M2CoDA112Rs7ZBkiMHfy9X11", + "kK1Q4gPyYfVVMzQtAPRzL8qXMqJ67Y7tKs", + "28J4mx8xfUtM92DbQ6i2Jmqw5J7dNivfroN", + "gQvgyG1djgtftoCVrSZmsRxr7okD4LheKw", + "3iFGBKapAWWzbiGFSr5ScbhrEPm6Esyvia", + "NFW2akQH2vu7AqkQXxFz2P5vkXTWkSqrSm", + "2MQJjLnWRp9eHh6MpCwpiUeshhtmri12mci", + "2QjRQUMyL6iodtHP9zKmxCNYZ7k3jxtk49C", + "USdfKy7B6oFNoauHWMmoCA7ND9rHqYw2Mf", + "cA49et9WtptYHf6wA1F8qqVgH3kS5jJ9vK", + "qaJT9TjcMi46sTKcgwRQU8o5Lw2Ea1gC4N", + "22pyn5RyhqtTQu4obYjuWYRNNw4i54L8xVr", + "22dkmukC6iH4FFLBmHne6modJZZQ3MC9BAT", + "z6CJZfYLvmd41GRVE8HASjRcy5hqbpHZvE", + "GEBWJ2KpRQDBTCCtvnaAJV2cYurgXS8pta", + "oS8fbEm82cprmAeineBeDkaKd7QownDZQh", + "rQpAs1LVQdphyj9ipEAuukAoj9kNpSP8cM", + "6NSJKsPxmqipGAfFFhUKbkopjrvEESTX3j", + "cuC68ycVXmD2EBzYFNYQ6akhKGrh3FGjSf", + "bw4wtYU8toepomrhWP2p8UFYfHBbvEV425", + "HvgNmDz5jD39Gwmi9VfDY1iYMhZUpZ8GKz", + "SbApuZAYquWP3Q6iD51BcMBQjuApYEkRVf", + "2Ugii5yxJgLzC59jV1vF8GK7UBZdvxwobeJ", + "21N2iJ1qnQRiJWcEqNRxXwfNp8QcmiyhtPy", + "9TC4RGs6AtFUsbcVWnSoCdoCpSfM66ALAc", + "oQzn55UWG4iMcY9bTNb27aTnRdfiGHAwbD", + "2GCdwsRpQhcf8SQcynFrMVDM26Bbj6sgv9M", + "2NRFe7REtSmaM2qAgZeG45hC8EtVGV2QjeB", + "25RGnhN7VojHUTvQBJA9nBT5y1qTQGULMzR", + "26uCBDfF8E2PJU2Dzz2ysgKwv9m4BhodTz9", + "Wkvima5cF7DDFdmJQqcdq8Syaq9DuAJJRD", + "286hSoJYxvENFSHwG51ZbmKaochLJyq4ERQ", + "FEGxF3HPoM2HCWHn82tyeh9o7vEQq5ySGE", + "h38DxNxGhWGTq9p5tJnN5r4Fwnn85Krrb6", + "2c1UU8J6Y3kL4cmQh21Tj8wkzidCiZxwdwd", + "2bJ32KuGmjmwKyAtzWdLFpXNM6t83CCPLq5", + "2fi8oLC9zfVVGnzzQtu3Y3rffS65Hiz6QHo", + "TKD93RxFr2Am44TntLiJQus4qcEwTtvEEQ", + "zMDywYdGEDtTSvWnCyc3qsYHWwj9ogws74", + "25NbotTka7TwtbXUpSCQD8RMgHKspyDubXJ", + "2ayCELBERubQWH5QxUr3cTxrYpidvUAzsSw", + "RMTCwLiYDKEAiJu5ekHL1NQ8UKHi5ozCPg", + "ejJjiCwp86ykmFr5iTJ8LxQXJ2wJPTYmkm" + ] +} +``` + +### Richlist show top N addresses by uxouts + +API sets: `READ` + +``` +URI: /api/v1/richlist +Method: GET +Args: + n: top N addresses, [default 20, returns all if <= 0]. + include-distribution: include distribution addresses or not, default false. +``` + +Example: + +```sh +curl "http://127.0.0.1:6420/api/v1/richlist?n=4&include-distribution=true" +``` + +Result: + +```json +{ + "richlist": [ + { + "address": "zMDywYdGEDtTSvWnCyc3qsYHWwj9ogws74", + "coins": "1000000.000000", + "locked": true + }, + { + "address": "z6CJZfYLvmd41GRVE8HASjRcy5hqbpHZvE", + "coins": "1000000.000000", + "locked": true + }, + { + "address": "wyQVmno9aBJZmQ99nDSLoYWwp7YDJCWsrH", + "coins": "1000000.000000", + "locked": true + }, + { + "address": "tBaeg9zE2sgmw5ZQENaPPYd6jfwpVpGTzS", + "coins": "1000000.000000", + "locked": true + } + ] +} +``` + +### Count the addresses that currently have unspent outputs (coins) + +API sets: `READ` + +``` +URI: /api/v1/addresscount +Method: GET +``` + +Example: + +```sh +curl "http://127.0.0.1:6420/api/v1/addresscount" +``` + +Result: + +```json +{ + "count": 10103 +} +``` + +## Network status + +### Get information for a specific connection + +API sets: `STATUS`, `READ` + +``` +URI: /api/v1/network/connection +Method: GET +Args: + addr: ip:port address of a known connection +``` + +Connection `"state"` value can be `"pending"`, `"connected"` or `"introduced"`. + +* The `"pending"` state is prior to connection establishment. +* The `"connected"` state is after connection establishment, but before the introduction handshake has completed. +* The `"introduced"` state is after the introduction handshake has completed. + +Example: + +```sh +curl 'http://127.0.0.1:6420/api/v1/network/connection?addr=176.9.84.75:6000' +``` + +Result: + +```json +{ + "id": 109548, + "address": "176.9.84.75:6000", + "last_sent": 1520675817, + "last_received": 1520675817, + "connected_at": 1520675700, + "outgoing": false, + "state": "introduced", + "mirror": 719118746, + "height": 181, + "listen_port": 6000, + "user_agent": "skycoin:0.25.0", + "is_trusted_peer": true, + "unconfirmed_verify_transaction": { + "burn_factor": 10, + "max_transaction_size": 32768, + "max_decimals": 3 + } +} +``` + +### Get a list of all connections + +API sets: `STATUS`, `READ` + +``` +URI: /api/v1/network/connections +Method: GET +Args: + states: [optional] comma-separated list of connection states ("pending", "connected" or "introduced"). Defaults to "connected,introduced" + direction: [optional] "outgoing" or "incoming". If not provided, both are included. +``` + +Connection `"state"` value can be `"pending"`, `"connected"` or `"introduced"`. + +* The `"pending"` state is prior to connection establishment. +* The `"connected"` state is after connection establishment, but before the introduction handshake has completed. +* The `"introduced"` state is after the introduction handshake has completed. + +By default, both incoming and outgoing connections in the `"connected"` or `"introduced"` state are returned. + +Example: + +```sh +curl 'http://127.0.0.1:6420/api/v1/network/connections' +``` + +Result: + +```json +{ + "connections": [ + { + "id": 99107, + "address": "139.162.161.41:20002", + "last_sent": 1520675750, + "last_received": 1520675750, + "connected_at": 1520675500, + "outgoing": false, + "state": "introduced", + "mirror": 1338939619, + "listen_port": 20002, + "height": 180, + "user_agent": "skycoin:0.25.0", + "is_trusted_peer": true, + "unconfirmed_verify_transaction": { + "burn_factor": 10, + "max_transaction_size": 32768, + "max_decimals": 3 + } + }, + { + "id": 109548, + "address": "176.9.84.75:6000", + "last_sent": 1520675751, + "last_received": 1520675751, + "connected_at": 1520675751, + "state": "connected", + "outgoing": true, + "mirror": 0, + "listen_port": 6000, + "height": 0, + "user_agent": "", + "is_trusted_peer": true, + "unconfirmed_verify_transaction": { + "burn_factor": 0, + "max_transaction_size": 0, + "max_decimals": 0 + } + }, + { + "id": 99115, + "address": "185.120.34.60:6000", + "last_sent": 1520675754, + "last_received": 1520675754, + "connected_at": 1520673013, + "outgoing": false, + "state": "introduced", + "mirror": 1931713869, + "listen_port": 6000, + "height": 180, + "user_agent": "", + "is_trusted_peer": true, + "unconfirmed_verify_transaction": { + "burn_factor": 0, + "max_transaction_size": 0, + "max_decimals": 0 + } + } + ] +} +``` + + +### Get a list of all default connections + +API sets: `STATUS`, `READ` + +``` +URI: /api/v1/network/defaultConnections +Method: GET +``` + +Returns addresses in the default hardcoded list of peers. + +Example: + +```sh +curl 'http://127.0.0.1:6420/api/v1/network/defaultConnections' +``` + +Result: + +```json +[ + "104.237.142.206:6000", + "118.178.135.93:6000", + "139.162.7.132:6000", + "172.104.85.6:6000", + "176.58.126.224:6000", + "47.88.33.156:6000" +] +``` + +### Get a list of all trusted connections + +API sets: `STATUS`, `READ` + +``` +URI: /api/v1/network/connections/trust +Method: GET +``` + +Returns addresses marked as trusted in the peerlist. +This is typically equal to the list of addresses in the default hardcoded list of peers. + +Example: + +```sh +curl 'http://127.0.0.1:6420/api/v1/network/connections/trust' +``` + +Result: + +```json +[ + "104.237.142.206:6000", + "118.178.135.93:6000", + "139.162.7.132:6000", + "172.104.85.6:6000", + "176.58.126.224:6000", + "47.88.33.156:6000" +] +``` + +### Get a list of all connections discovered through peer exchange + +API sets: `STATUS`, `READ` + +``` +URI: /api/v1/network/connections/exchange +Method: GET +``` + +Returns addresses from the peerlist that are known to have an open port. + +Example: + +```sh +curl 'http://127.0.0.1:6420/api/v1/network/connections/exchange' +``` + +Result: + +```json +[ + "104.237.142.206:6000", + "116.62.220.158:7200", + "118.237.210.163:6000", + "139.162.161.41:20000", + "139.162.161.41:20001", + "139.162.161.41:20002", + "139.162.33.154:6000", + "139.162.7.132:6000", + "155.94.137.34:6000", + "164.132.108.92:6000", + "165.227.199.63:6000", + "172.104.145.6:6000", + "172.104.52.230:7200", + "172.104.85.6:6000", + "173.212.205.184:6000", + "173.249.30.221:6000", + "176.58.126.224:6000", + "176.9.84.75:6000", + "185.120.34.60:6000", + "35.201.160.163:6000", + "47.88.33.156:6000" +] +``` + +### Disconnect a peer + +API sets: `NET_CTRL` + +``` +URI: /api/v1/network/connection/disconnect +Method: POST +Args: + id: ID of the connection + +Returns 404 if the connection is not found. +``` + +Disconnects a peer by ID. + +Example: + +```sh +curl -X POST 'http://127.0.0.1:6420/api/v1/network/connection/disconnect?id=999' +``` + +Result: + +```json +{} +``` + +## Migrating from the unversioned API + +The unversioned API are the API endpoints without an `/api` prefix. +These endpoints are all prefixed with `/api/v1` now. + +`-enable-unversioned-api` was added as an option to assist migration to `/api/v1` +but this option was removed in v0.26.0. + +To migrate from the unversioned API, add `/api/v1` to all endpoints that you call +that do not have an `/api` prefix already. + +For example, `/block` would become `/api/v1/block`. + +## Migrating from the JSONRPC API + +The JSONRPC-2.0 RPC API was deprecated in v0.25.0 and removed in v0.26.0. + +Anyone still using this can follow this guide to migrate to the REST API: + +* `get_status` is replaced by `/api/v1/blockchain/metadata` and `/api/v1/health` +* `get_lastblocks` is replaced by `/api/v1/last_blocks` +* `get_blocks` is replaced by `/api/v1/blocks` +* `get_outputs` is replaced by `/api/v1/outputs` +* `inject_transaction` is replaced by `/api/v1/injectTransaction` +* `get_transaction` is replaced by `/api/v1/transaction` + +## Migrating from /api/v1/spend + +The `POST /api/v1/spend` endpoint is deprecated and will be removed in v0.26.0. + +To migrate from it, use [`POST /api/v1/wallet/transaction`](#create-transaction) followed by [`POST /api/v1/injectTransaction`](#inject-raw-transaction). +Do not create another transaction before injecting the created transaction, otherwise you might create two conflicting transactions. + +`POST /api/v1/wallet/transaction` has more options for creating the transaction than the `/api/v1/spend` endpoint. +To replicate the same behavior as `/api/v1/spend`, use the following request body template: + +```json +{ + "hours_selection": { + "type": "auto", + "mode": "share", + "share_factor": "0.5" + }, + "wallet": { + "id": "$wallet_id", + "password": "$password" + }, + "to": [{ + "address": "$dst", + "coins": "$coins" + }] +} +``` + +You must use a string for `"coins"` instead of an integer measured in "droplets" (the smallest unit of currency in Skycoin, 1/1000000 of a skycoin). +For example, if you sent 1 Skycoin with `/api/v1/spend` you would have specified the `coins` field as `1000000`. +Now, you would specify it as `"1"`. + +Some examples: + +* 123.456 coins: before `123456000`, now `"123.456"` +* 0.1 coins: before `100000`, now `"0.1"` +* 1 coin: before `1000000`, now `"1"` + +Extra zeros on the `"coins"` string are ok, for example `"1"` is the same as `"1.0"` or `"1.000000"`. + +Only provide `"password"` if the wallet is encrypted. Note that decryption can take a few seconds, and this can impact +throughput. + +The request header `Content-Type` must be `application/json`. + +The response to `POST /api/v1/wallet/transaction` will include a verbose decoded transaction with details +and the hex-encoded binary transaction in the `"encoded_transaction"` field. +Use the value of `"encoded_transaction"` as the `"rawtx"` value in the request to `/api/v1/injectTransaction`. + +## Migration from /api/v1/explorer/address + +The `GET /api/v1/explorer/address` was deprecated in v0.25.0 and removed in v0.26.0. + +To migrate from it, use [`GET /api/v1/transactions?verbose=1`](#get-transactions-for-addresses). + +`/api/v1/explorer/address` accepted a single `address` query parameter. `/api/v1/transactions` uses an `addrs` query parameter and +accepts multiple addresses at once. + +The response data is the same but the structure is slightly different. Compare the follow two example responses: + +`/api/v1/explorer/address?address=WzPDgdfL1NzSbX96tscUNXUqtCRLjaBugC`: + +```json +[ + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 38076, + "block_seq": 15493 + }, + "timestamp": 1518878675, + "length": 183, + "type": 0, + "txid": "6d8e2f8b436a2f38d604b3aa1196ef2176779c5e11e33fbdd09f993fe659c39f", + "inner_hash": "8da7c64dcedeeb6aa1e0d21fb84a0028dcd68e6801f1a3cc0224fdd50682046f", + "fee": 126249, + "sigs": [ + "c60e43980497daad59b4c72a2eac053b1584f960c57a5e6ac8337118dccfcee4045da3f60d9be674867862a13fdd87af90f4b85cbf39913bde13674e0a039b7800" + ], + "inputs": [ + { + "uxid": "349b06e5707f633fd2d8f048b687b40462d875d968b246831434fb5ab5dcac38", + "owner": "WzPDgdfL1NzSbX96tscUNXUqtCRLjaBugC", + "coins": "125.000000", + "hours": 34596, + "calculated_hours": 178174 + } + ], + "outputs": [ + { + "uxid": "5b4a79c7de2e9099e083bbc8096619ae76ba6fbe34875c61bbe2d3bfa6b18b99", + "dst": "2NfNKsaGJEndpSajJ6TsKJfsdDjW2gFsjXg", + "coins": "125.000000", + "hours": 51925 + } + ] + } +] +``` + +`/api/v1/transactions?verbose=1&addrs=WzPDgdfL1NzSbX96tscUNXUqtCRLjaBugC`: + +```json +[ + { + "status": { + "confirmed": true, + "unconfirmed": false, + "height": 57564, + "block_seq": 7498 + }, + "time": 1514743602, + "txn": { + "timestamp": 1514743602, + "length": 220, + "type": 0, + "txid": "df5bcef198fe6e96d496c30482730f895cabc1d55b338afe5633b0c2889d02f9", + "inner_hash": "4677ff9b9b56485495a45693cc09f8496199929fccb52091d32f2d3cf2ee8a41", + "fee": 69193, + "sigs": [ + "8e1f6f621a11f737ac2031be975d4b2fc17bf9f17a0da0a2fe219ee018011ab506e2ad0367be302a8d859cc355c552313389cd0aa9fa98dc7d2085a52f11ef5a00" + ], + "inputs": [ + { + "uxid": "2374201ff29f1c024ccfc6c53160e741d06720562853ad3613c121acd8389031", + "owner": "2GgFvqoyk9RjwVzj8tqfcXVXB4orBwoc9qv", + "coins": "162768.000000", + "hours": 485, + "calculated_hours": 138385 + } + ], + "outputs": [ + { + "uxid": "63f299fc85fe6fc34d392718eee55909837c7231b6ffd93e5a9a844c4375b313", + "dst": "2GgFvqoyk9RjwVzj8tqfcXVXB4orBwoc9qv", + "coins": "162643.000000", + "hours": 34596 + }, + { + "uxid": "349b06e5707f633fd2d8f048b687b40462d875d968b246831434fb5ab5dcac38", + "dst": "WzPDgdfL1NzSbX96tscUNXUqtCRLjaBugC", + "coins": "125.000000", + "hours": 34596 + } + ] + } + } +] +``` + +The transaction data is wrapped in a `"txn"` field. A `"time"` field is present at the top level. This `"time"` field +is either the confirmation timestamp of a confirmed transaction or the last received time of an unconfirmed transaction. diff --git a/vendor/github.com/skycoin/skycoin/src/api/address.go b/vendor/github.com/skycoin/skycoin/src/api/address.go new file mode 100644 index 000000000..82c75daea --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/address.go @@ -0,0 +1,56 @@ +package api + +import ( + "encoding/json" + "net/http" + + "github.com/skycoin/skycoin/src/cipher" +) + +// VerifyAddressRequest is the request data for POST /api/v2/address/verify +type VerifyAddressRequest struct { + Address string `json:"address"` +} + +// VerifyAddressResponse is returned by POST /api/v2/address/verify +type VerifyAddressResponse struct { + Version byte `json:"version"` +} + +// addressVerifyHandler verifies a Skycoin address +// Method: POST +// URI: /api/v2/address/verify +func addressVerifyHandler(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + resp := NewHTTPErrorResponse(http.StatusMethodNotAllowed, "") + writeHTTPResponse(w, resp) + return + } + + var req VerifyAddressRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + writeHTTPResponse(w, resp) + return + } + + if req.Address == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "address is required") + writeHTTPResponse(w, resp) + return + } + + addr, err := cipher.DecodeBase58Address(req.Address) + + if err != nil { + resp := NewHTTPErrorResponse(http.StatusUnprocessableEntity, err.Error()) + writeHTTPResponse(w, resp) + return + } + + writeHTTPResponse(w, HTTPResponse{ + Data: VerifyAddressResponse{ + Version: addr.Version, + }, + }) +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/blockchain.go b/vendor/github.com/skycoin/skycoin/src/api/blockchain.go new file mode 100644 index 000000000..974a5e4fb --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/blockchain.go @@ -0,0 +1,401 @@ +package api + +// APIs for blockchain related information + +import ( + "errors" + "fmt" + "net/http" + "strconv" + "strings" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/readable" + wh "github.com/skycoin/skycoin/src/util/http" + "github.com/skycoin/skycoin/src/visor" +) + +// blockchainMetadataHandler returns the blockchain metadata +// Method: GET +// URI: /api/v1/blockchain/metadata +func blockchainMetadataHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + visorMetadata, err := gateway.GetBlockchainMetadata() + if err != nil { + err = fmt.Errorf("gateway.GetBlockchainMetadata failed: %v", err) + wh.Error500(w, err.Error()) + return + } + + // This can happen if the node is shut down at the right moment, guard against a panic + if visorMetadata == nil { + err = errors.New("gateway.GetBlockchainMetadata metadata is nil") + wh.Error500(w, err.Error()) + return + } + + metadata := readable.NewBlockchainMetadata(*visorMetadata) + + wh.SendJSONOr500(logger, w, metadata) + } +} + +// blockchainProgressHandler returns the blockchain sync progress +// Method: GET +// URI: /api/v1/blockchain/progress +func blockchainProgressHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + headSeq, _, err := gateway.HeadBkSeq() + if err != nil { + err = fmt.Errorf("gateway.HeadBkSeq failed: %v", err) + wh.Error500(w, err.Error()) + return + } + + progress := gateway.GetBlockchainProgress(headSeq) + + // This can happen if the node is shut down at the right moment, guard against a panic + if progress == nil { + err = errors.New("gateway.GetBlockchainProgress progress is nil") + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, readable.NewBlockchainProgress(progress)) + } +} + +func parseBoolFlag(v string) (bool, error) { + if v == "" { + return false, nil + } + + return strconv.ParseBool(v) +} + +// blockHandler returns a block by hash or seq +// Method: GET +// URI: /api/v1/block +// Args: +// hash [transaction hash string] +// seq [int] +// Note: only one of hash or seq is allowed +func blockHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + hash := r.FormValue("hash") + seq := r.FormValue("seq") + + verbose, err := parseBoolFlag(r.FormValue("verbose")) + if err != nil { + wh.Error400(w, "Invalid value for verbose") + return + } + + switch { + case hash == "" && seq == "": + wh.Error400(w, "should specify one filter, hash or seq") + return + case hash != "" && seq != "": + wh.Error400(w, "should only specify one filter, hash or seq") + return + } + + var h cipher.SHA256 + if hash != "" { + var err error + h, err = cipher.SHA256FromHex(hash) + if err != nil { + wh.Error400(w, err.Error()) + return + } + } + + var uSeq uint64 + if seq != "" { + var err error + uSeq, err = strconv.ParseUint(seq, 10, 64) + if err != nil { + wh.Error400(w, fmt.Sprintf("Invalid seq value %q", seq)) + return + } + } + + if verbose { + var b *coin.SignedBlock + var inputs [][]visor.TransactionInput + + switch { + case hash != "": + b, inputs, err = gateway.GetSignedBlockByHashVerbose(h) + case seq != "": + b, inputs, err = gateway.GetSignedBlockBySeqVerbose(uSeq) + } + + if err != nil { + wh.Error500(w, err.Error()) + return + } + + if b == nil { + wh.Error404(w, "") + return + } + + rb, err := readable.NewBlockVerbose(b.Block, inputs) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, rb) + return + } + + var b *coin.SignedBlock + switch { + case hash != "": + b, err = gateway.GetSignedBlockByHash(h) + case seq != "": + b, err = gateway.GetSignedBlockBySeq(uSeq) + } + + if err != nil { + wh.Error500(w, err.Error()) + return + } + + if b == nil { + wh.Error404(w, "") + return + } + + rb, err := readable.NewBlock(b.Block) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, rb) + } +} + +// blocksHandler returns blocks between a start and end point, +// or an explicit list of sequences. +// If using start and end, the block sequences include both the start and end point. +// Explicit sequences cannot be combined with start and end. +// Method: GET, POST +// URI: /api/v1/blocks +// Args: +// start [int] +// end [int] +// seqs [comma separated list of ints] +// verbose [bool] +func blocksHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet && r.Method != http.MethodPost { + wh.Error405(w) + return + } + + verbose, err := parseBoolFlag(r.FormValue("verbose")) + if err != nil { + wh.Error400(w, "Invalid value for verbose") + return + } + + sStart := r.FormValue("start") + sEnd := r.FormValue("end") + sSeqs := r.FormValue("seqs") + + if sSeqs != "" && (sStart != "" || sEnd != "") { + wh.Error400(w, "seqs cannot be used with start or end") + return + } + + if sSeqs == "" && sStart == "" && sEnd == "" { + wh.Error400(w, "At least one of seqs or start or end are required") + return + } + + var start uint64 + var end uint64 + var seqs []uint64 + + if sStart != "" { + var err error + start, err = strconv.ParseUint(sStart, 10, 64) + if err != nil { + wh.Error400(w, fmt.Sprintf("Invalid start value %q", sStart)) + return + } + } + + if sEnd != "" { + var err error + end, err = strconv.ParseUint(sEnd, 10, 64) + if err != nil { + wh.Error400(w, fmt.Sprintf("Invalid end value %q", sEnd)) + return + } + } + + if sSeqs != "" { + ssSeqs := strings.Split(sSeqs, ",") + seqs = make([]uint64, len(ssSeqs)) + seqsMap := make(map[uint64]struct{}, len(ssSeqs)) + for i, s := range ssSeqs { + x, err := strconv.ParseUint(s, 10, 64) + if err != nil { + wh.Error400(w, fmt.Sprintf("Invalid sequence %q at seqs[%d]", s, i)) + return + } + + if _, ok := seqsMap[x]; ok { + wh.Error400(w, fmt.Sprintf("Duplicate sequence %d at seqs[%d]", x, i)) + return + } + seqsMap[x] = struct{}{} + + seqs[i] = x + } + } + + if verbose { + var blocks []coin.SignedBlock + var inputs [][][]visor.TransactionInput + var err error + + if len(seqs) > 0 { + blocks, inputs, err = gateway.GetBlocksVerbose(seqs) + } else { + blocks, inputs, err = gateway.GetBlocksInRangeVerbose(start, end) + } + + if err != nil { + switch err.(type) { + case visor.ErrBlockNotExist: + wh.Error404(w, err.Error()) + default: + wh.Error500(w, err.Error()) + } + return + } + + rb, err := readable.NewBlocksVerbose(blocks, inputs) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, rb) + } else { + var blocks []coin.SignedBlock + var err error + + if len(seqs) > 0 { + blocks, err = gateway.GetBlocks(seqs) + } else { + blocks, err = gateway.GetBlocksInRange(start, end) + } + + if err != nil { + switch err.(type) { + case visor.ErrBlockNotExist: + wh.Error404(w, err.Error()) + default: + wh.Error500(w, err.Error()) + } + return + } + + rb, err := readable.NewBlocks(blocks) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, rb) + } + } +} + +// lastBlocksHandler returns the most recent N blocks on the blockchain +// Method: GET +// URI: /api/v1/last_blocks +// Args: +// num [int] +// verbose [bool] +func lastBlocksHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + verbose, err := parseBoolFlag(r.FormValue("verbose")) + if err != nil { + wh.Error400(w, "Invalid value for verbose") + return + } + + num := r.FormValue("num") + n, err := strconv.ParseUint(num, 10, 64) + if err != nil { + wh.Error400(w, fmt.Sprintf("Invalid num value %q", num)) + return + } + + maxLBC := gateway.DaemonConfig().MaxLastBlocksCount + if n > maxLBC { + wh.Error400(w, fmt.Sprintf("num: %q must < %d", num, maxLBC)) + return + } + + if verbose { + blocks, inputs, err := gateway.GetLastBlocksVerbose(n) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + rb, err := readable.NewBlocksVerbose(blocks, inputs) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, rb) + return + } + + blocks, err := gateway.GetLastBlocks(n) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + rb, err := readable.NewBlocks(blocks) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, rb) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/client.go b/vendor/github.com/skycoin/skycoin/src/api/client.go new file mode 100644 index 000000000..3c04011b2 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/client.go @@ -0,0 +1,1468 @@ +package api + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io" + "io/ioutil" + "net" + "net/http" + "net/url" + "strings" + "time" + + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/daemon" + "github.com/skycoin/skycoin/src/kvstorage" + "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/wallet" +) + +const ( + dialTimeout = 60 * time.Second + httpClientTimeout = 120 * time.Second + tlsHandshakeTimeout = 60 * time.Second + + // ContentTypeJSON json content type header + ContentTypeJSON = "application/json" + // ContentTypeForm form data content type header + ContentTypeForm = "application/x-www-form-urlencoded" +) + +// ClientError is used for non-200 API responses +type ClientError struct { + Status string + StatusCode int + Message string +} + +// NewClientError creates a ClientError +func NewClientError(status string, statusCode int, message string) ClientError { + return ClientError{ + Status: status, + StatusCode: statusCode, + Message: strings.TrimRight(message, "\n"), + } +} + +func (e ClientError) Error() string { + return e.Message +} + +// ReceivedHTTPResponse parsed a HTTPResponse received by the Client, for the V2 API +type ReceivedHTTPResponse struct { + Error *HTTPError `json:"error,omitempty"` + Data json.RawMessage `json:"data"` +} + +// Client provides an interface to a remote node's HTTP API +type Client struct { + HTTPClient *http.Client + Addr string + Username string + Password string +} + +// NewClient creates a Client +func NewClient(addr string) *Client { + transport := &http.Transport{ + Dial: (&net.Dialer{ + Timeout: dialTimeout, + }).Dial, + TLSHandshakeTimeout: tlsHandshakeTimeout, + } + httpClient := &http.Client{ + Transport: transport, + Timeout: httpClientTimeout, + } + addr = strings.TrimRight(addr, "/") + addr += "/" + + return &Client{ + Addr: addr, + HTTPClient: httpClient, + } +} + +// SetAuth configures the Client's request authentication +func (c *Client) SetAuth(username, password string) { + c.Username = username + c.Password = password +} + +func (c *Client) applyAuth(req *http.Request) { + if c.Username == "" && c.Password == "" { + return + } + + req.SetBasicAuth(c.Username, c.Password) +} + +// GetV2 makes a GET request to an endpoint and unmarshals the response to respObj. +// If the response is not 200 OK, returns an error +func (c *Client) GetV2(endpoint string, respObj interface{}) (bool, error) { + return c.requestV2(http.MethodGet, endpoint, nil, respObj) +} + +// Get makes a GET request to an endpoint and unmarshals the response to obj. +// If the response is not 200 OK, returns an error +func (c *Client) Get(endpoint string, obj interface{}) error { + resp, err := c.get(endpoint) + if err != nil { + return err + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return err + } + + return NewClientError(resp.Status, resp.StatusCode, string(body)) + } + + if obj == nil { + return nil + } + + d := json.NewDecoder(resp.Body) + d.DisallowUnknownFields() + return d.Decode(obj) +} + +// get makes a GET request to an endpoint. Caller must close response body. +func (c *Client) get(endpoint string) (*http.Response, error) { + return c.makeRequestWithoutBody(endpoint, http.MethodGet) +} + +// makeRequestWithoutBody makes a `method` request to an endpoint. Caller must close response body. +func (c *Client) makeRequestWithoutBody(endpoint, method string) (*http.Response, error) { + endpoint = strings.TrimLeft(endpoint, "/") + endpoint = c.Addr + endpoint + + req, err := http.NewRequest(method, endpoint, nil) + if err != nil { + return nil, err + } + + c.applyAuth(req) + + return c.HTTPClient.Do(req) +} + +// DeleteV2 makes a DELETE request to an endpoint with body of json data, +// and parses the standard JSON response. +func (c *Client) DeleteV2(endpoint string, respObj interface{}) (bool, error) { + return c.requestV2(http.MethodDelete, endpoint, nil, respObj) +} + +// PostForm makes a POST request to an endpoint with body of ContentTypeForm formated data. +func (c *Client) PostForm(endpoint string, body io.Reader, obj interface{}) error { + return c.Post(endpoint, ContentTypeForm, body, obj) +} + +// PostJSON makes a POST request to an endpoint with body of json data. +func (c *Client) PostJSON(endpoint string, reqObj, respObj interface{}) error { + body, err := json.Marshal(reqObj) + if err != nil { + return err + } + + return c.Post(endpoint, ContentTypeJSON, bytes.NewReader(body), respObj) +} + +// Post makes a POST request to an endpoint. +func (c *Client) Post(endpoint string, contentType string, body io.Reader, obj interface{}) error { + csrf, err := c.CSRF() + if err != nil { + return err + } + + endpoint = strings.TrimLeft(endpoint, "/") + endpoint = c.Addr + endpoint + + req, err := http.NewRequest(http.MethodPost, endpoint, body) + if err != nil { + return err + } + + c.applyAuth(req) + + if csrf != "" { + req.Header.Set(CSRFHeaderName, csrf) + } + + req.Header.Set("Content-Type", contentType) + + resp, err := c.HTTPClient.Do(req) + if err != nil { + return err + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return err + } + + return NewClientError(resp.Status, resp.StatusCode, string(body)) + } + + if obj == nil { + return nil + } + + decoder := json.NewDecoder(resp.Body) + decoder.DisallowUnknownFields() + return decoder.Decode(obj) +} + +// PostJSONV2 makes a POST request to an endpoint with body of json data, +// and parses the standard JSON response. +func (c *Client) PostJSONV2(endpoint string, reqObj, respObj interface{}) (bool, error) { + body, err := json.Marshal(reqObj) + if err != nil { + return false, err + } + + return c.requestV2(http.MethodPost, endpoint, bytes.NewReader(body), respObj) +} + +func (c *Client) requestV2(method, endpoint string, body io.Reader, respObj interface{}) (bool, error) { + csrf, err := c.CSRF() + if err != nil { + return false, err + } + + endpoint = strings.TrimLeft(endpoint, "/") + endpoint = c.Addr + endpoint + + req, err := http.NewRequest(method, endpoint, body) + if err != nil { + return false, err + } + + c.applyAuth(req) + + if csrf != "" { + req.Header.Set(CSRFHeaderName, csrf) + } + + switch method { + case http.MethodPost: + req.Header.Set("Content-Type", ContentTypeJSON) + } + + req.Header.Set("Accept", ContentTypeJSON) + + resp, err := c.HTTPClient.Do(req) + if err != nil { + return false, err + } + + defer resp.Body.Close() + + respBody, err := ioutil.ReadAll(resp.Body) + if err != nil { + return false, err + } + + decoder := json.NewDecoder(bytes.NewReader(respBody)) + decoder.DisallowUnknownFields() + + var wrapObj ReceivedHTTPResponse + if err := decoder.Decode(&wrapObj); err != nil { + // In some cases, the server can send an error response in a non-JSON format, + // such as a 404 when the endpoint is not registered, or if a 500 error + // occurs in the go HTTP stack, outside of the application's control. + // If this happens, treat the entire response body as the error message. + if resp.StatusCode != http.StatusOK { + return false, NewClientError(resp.Status, resp.StatusCode, string(respBody)) + } + + return false, err + } + + // The JSON decoder stops at the end of the first valid JSON object. + // Check that there is no trailing data after the end of the first valid JSON object. + // This could occur if an endpoint mistakenly wrote an object twice, for example. + // This line returns the decoder's underlying read buffer. Read(nil) will return io.EOF + // if the buffer was completely consumed. + if _, err := decoder.Buffered().Read(nil); err != io.EOF { + return false, NewClientError(resp.Status, resp.StatusCode, "Response has additional bytes after the first JSON object: "+string(respBody)) + } + + var rspErr error + if resp.StatusCode != http.StatusOK { + rspErr = NewClientError(resp.Status, resp.StatusCode, wrapObj.Error.Message) + } + + if wrapObj.Data == nil { + return false, rspErr + } + + decoder = json.NewDecoder(bytes.NewReader(wrapObj.Data)) + decoder.DisallowUnknownFields() + + if err := decoder.Decode(respObj); err != nil { + return false, err + } + + return true, rspErr +} + +// CSRF returns a CSRF token. If CSRF is disabled on the node, returns an empty string and nil error. +func (c *Client) CSRF() (string, error) { + resp, err := c.get("/api/v1/csrf") + if err != nil { + return "", err + } + + defer resp.Body.Close() + + switch resp.StatusCode { + case http.StatusOK: + case http.StatusNotFound: + // CSRF is disabled on the node + return "", nil + default: + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return "", err + } + + return "", NewClientError(resp.Status, resp.StatusCode, string(body)) + } + + d := json.NewDecoder(resp.Body) + d.DisallowUnknownFields() + + var m map[string]string + if err := d.Decode(&m); err != nil { + return "", err + } + + token, ok := m["csrf_token"] + if !ok { + return "", errors.New("csrf_token not found in response") + } + + return token, nil +} + +// Version makes a request to GET /api/v1/version +func (c *Client) Version() (*readable.BuildInfo, error) { + var bi readable.BuildInfo + if err := c.Get("/api/v1/version", &bi); err != nil { + return nil, err + } + return &bi, nil +} + +// Outputs makes a request to GET /api/v1/outputs +func (c *Client) Outputs() (*readable.UnspentOutputsSummary, error) { + var o readable.UnspentOutputsSummary + if err := c.Get("/api/v1/outputs", &o); err != nil { + return nil, err + } + return &o, nil +} + +// OutputsForAddresses makes a request to POST /api/v1/outputs?addrs=xxx +func (c *Client) OutputsForAddresses(addrs []string) (*readable.UnspentOutputsSummary, error) { + v := url.Values{} + v.Add("addrs", strings.Join(addrs, ",")) + + endpoint := "/api/v1/outputs" + + var o readable.UnspentOutputsSummary + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &o); err != nil { + return nil, err + } + return &o, nil +} + +// OutputsForHashes makes a request to POST /api/v1/outputs?hashes=zzz +func (c *Client) OutputsForHashes(hashes []string) (*readable.UnspentOutputsSummary, error) { + v := url.Values{} + v.Add("hashes", strings.Join(hashes, ",")) + endpoint := "/api/v1/outputs" + + var o readable.UnspentOutputsSummary + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &o); err != nil { + return nil, err + } + return &o, nil +} + +// CoinSupply makes a request to GET /api/v1/coinSupply +func (c *Client) CoinSupply() (*CoinSupply, error) { + var cs CoinSupply + if err := c.Get("/api/v1/coinSupply", &cs); err != nil { + return nil, err + } + return &cs, nil +} + +// BlockByHash makes a request to GET /api/v1/block?hash=xxx +func (c *Client) BlockByHash(hash string) (*readable.Block, error) { + v := url.Values{} + v.Add("hash", hash) + endpoint := "/api/v1/block?" + v.Encode() + + var b readable.Block + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// BlockByHashVerbose makes a request to GET /api/v1/block?hash=xxx&verbose=1 +func (c *Client) BlockByHashVerbose(hash string) (*readable.BlockVerbose, error) { + v := url.Values{} + v.Add("hash", hash) + v.Add("verbose", "1") + endpoint := "/api/v1/block?" + v.Encode() + + var b readable.BlockVerbose + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// BlockBySeq makes a request to GET /api/v1/block?seq=xxx +func (c *Client) BlockBySeq(seq uint64) (*readable.Block, error) { + v := url.Values{} + v.Add("seq", fmt.Sprint(seq)) + endpoint := "/api/v1/block?" + v.Encode() + + var b readable.Block + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// BlockBySeqVerbose makes a request to GET /api/v1/block?seq=xxx&verbose=1 +func (c *Client) BlockBySeqVerbose(seq uint64) (*readable.BlockVerbose, error) { + v := url.Values{} + v.Add("seq", fmt.Sprint(seq)) + v.Add("verbose", "1") + endpoint := "/api/v1/block?" + v.Encode() + + var b readable.BlockVerbose + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// Blocks makes a request to POST /api/v1/blocks?seqs= +func (c *Client) Blocks(seqs []uint64) (*readable.Blocks, error) { + sSeqs := make([]string, len(seqs)) + for i, x := range seqs { + sSeqs[i] = fmt.Sprint(x) + } + + v := url.Values{} + v.Add("seqs", strings.Join(sSeqs, ",")) + endpoint := "/api/v1/blocks" + + var b readable.Blocks + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &b); err != nil { + return nil, err + } + return &b, nil +} + +// BlocksVerbose makes a request to POST /api/v1/blocks?verbose=1&seqs= +func (c *Client) BlocksVerbose(seqs []uint64) (*readable.BlocksVerbose, error) { + sSeqs := make([]string, len(seqs)) + for i, x := range seqs { + sSeqs[i] = fmt.Sprint(x) + } + + v := url.Values{} + v.Add("seqs", strings.Join(sSeqs, ",")) + v.Add("verbose", "1") + endpoint := "/api/v1/blocks" + + var b readable.BlocksVerbose + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &b); err != nil { + return nil, err + } + return &b, nil +} + +// BlocksInRange makes a request to GET /api/v1/blocks?start=&end= +func (c *Client) BlocksInRange(start, end uint64) (*readable.Blocks, error) { + v := url.Values{} + v.Add("start", fmt.Sprint(start)) + v.Add("end", fmt.Sprint(end)) + endpoint := "/api/v1/blocks?" + v.Encode() + + var b readable.Blocks + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// BlocksInRangeVerbose makes a request to GET /api/v1/blocks?verbose=1&start=&end= +func (c *Client) BlocksInRangeVerbose(start, end uint64) (*readable.BlocksVerbose, error) { + v := url.Values{} + v.Add("start", fmt.Sprint(start)) + v.Add("end", fmt.Sprint(end)) + v.Add("verbose", "1") + endpoint := "/api/v1/blocks?" + v.Encode() + + var b readable.BlocksVerbose + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// LastBlocks makes a request to GET /api/v1/last_blocks +func (c *Client) LastBlocks(n uint64) (*readable.Blocks, error) { + v := url.Values{} + v.Add("num", fmt.Sprint(n)) + endpoint := "/api/v1/last_blocks?" + v.Encode() + + var b readable.Blocks + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// LastBlocksVerbose makes a request to GET /api/v1/last_blocks?verbose=1 +func (c *Client) LastBlocksVerbose(n uint64) (*readable.BlocksVerbose, error) { + v := url.Values{} + v.Add("num", fmt.Sprint(n)) + v.Add("verbose", "1") + endpoint := "/api/v1/last_blocks?" + v.Encode() + + var b readable.BlocksVerbose + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// BlockchainMetadata makes a request to GET /api/v1/blockchain/metadata +func (c *Client) BlockchainMetadata() (*readable.BlockchainMetadata, error) { + var b readable.BlockchainMetadata + if err := c.Get("/api/v1/blockchain/metadata", &b); err != nil { + return nil, err + } + return &b, nil +} + +// BlockchainProgress makes a request to GET /api/v1/blockchain/progress +func (c *Client) BlockchainProgress() (*readable.BlockchainProgress, error) { + var b readable.BlockchainProgress + if err := c.Get("/api/v1/blockchain/progress", &b); err != nil { + return nil, err + } + return &b, nil +} + +// Balance makes a request to POST /api/v1/balance?addrs=xxx +func (c *Client) Balance(addrs []string) (*BalanceResponse, error) { + v := url.Values{} + v.Add("addrs", strings.Join(addrs, ",")) + endpoint := "/api/v1/balance" + + var b BalanceResponse + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &b); err != nil { + return nil, err + } + return &b, nil +} + +// UxOut makes a request to GET /api/v1/uxout?uxid=xxx +func (c *Client) UxOut(uxID string) (*readable.SpentOutput, error) { + v := url.Values{} + v.Add("uxid", uxID) + endpoint := "/api/v1/uxout?" + v.Encode() + + var b readable.SpentOutput + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// AddressUxOuts makes a request to GET /api/v1/address_uxouts +func (c *Client) AddressUxOuts(addr string) ([]readable.SpentOutput, error) { + v := url.Values{} + v.Add("address", addr) + endpoint := "/api/v1/address_uxouts?" + v.Encode() + + var b []readable.SpentOutput + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return b, nil +} + +// Wallet makes a request to GET /api/v1/wallet +func (c *Client) Wallet(id string) (*WalletResponse, error) { + v := url.Values{} + v.Add("id", id) + endpoint := "/api/v1/wallet?" + v.Encode() + + var wr WalletResponse + if err := c.Get(endpoint, &wr); err != nil { + return nil, err + } + + return &wr, nil +} + +// Wallets makes a request to GET /api/v1/wallets +func (c *Client) Wallets() ([]WalletResponse, error) { + var wrs []WalletResponse + if err := c.Get("/api/v1/wallets", &wrs); err != nil { + return nil, err + } + + return wrs, nil +} + +// CreateWalletOptions are the options for creating a wallet +type CreateWalletOptions struct { + Type string + Seed string + SeedPassphrase string + Label string + Password string + ScanN uint64 + XPub string + Encrypt bool + Bip44Coin *bip44.CoinType + CollectionPrivateKeys string +} + +// CreateWallet makes a request to POST /api/v1/wallet/create and creates a wallet. +// If scanN is <= 0, the scan number defaults to 1 +func (c *Client) CreateWallet(o CreateWalletOptions) (*WalletResponse, error) { + v := url.Values{} + v.Add("type", o.Type) + v.Add("seed", o.Seed) + v.Add("label", o.Label) + v.Add("encrypt", fmt.Sprint(o.Encrypt)) + + if o.Password != "" { + v.Add("password", o.Password) + } + + if o.ScanN > 0 { + v.Add("scan", fmt.Sprint(o.ScanN)) + } + + if o.SeedPassphrase != "" { + v.Add("seed-passphrase", o.SeedPassphrase) + } + + if o.Bip44Coin != nil { + v.Add("bip44-coin", fmt.Sprintf("%d", *o.Bip44Coin)) + } + + if o.XPub != "" { + v.Add("xpub", o.XPub) + } + + if o.CollectionPrivateKeys != "" { + v.Add("private-keys", o.CollectionPrivateKeys) + } + + var w WalletResponse + if err := c.PostForm("/api/v1/wallet/create", strings.NewReader(v.Encode()), &w); err != nil { + return nil, err + } + return &w, nil +} + +// CreateWalletTemp makes a request to POST /api/v1/wallet/createTemp and creates a +// temporary wallet. +// If scanN is <= 0, the scan number defaults to 1 +func (c *Client) CreateWalletTemp(o CreateWalletOptions) (*WalletResponse, error) { + v := url.Values{} + v.Add("type", o.Type) + v.Add("seed", o.Seed) + v.Add("label", o.Label) + + if o.ScanN > 0 { + v.Add("scan", fmt.Sprint(o.ScanN)) + } + + if o.Bip44Coin != nil { + v.Add("bip44-coin", fmt.Sprintf("%d", *o.Bip44Coin)) + } + + if o.XPub != "" { + v.Add("xpub", o.XPub) + } + + if o.CollectionPrivateKeys != "" { + v.Add("private-keys", o.CollectionPrivateKeys) + } + + var w WalletResponse + if err := c.PostForm("/api/v1/wallet/createTemp", strings.NewReader(v.Encode()), &w); err != nil { + return nil, err + } + return &w, nil +} + +// NewWalletAddress makes a request to POST /api/v1/wallet/newAddress +// if n is <= 0, defaults to 1 +func (c *Client) NewWalletAddress(id string, password string, options ...wallet.Option) ([]string, error) { + v := url.Values{} + v.Add("id", id) + if len(password) > 0 { + v.Add("password", password) + } + + var opts wallet.AdvancedOptions + for _, f := range options { + f(&opts) + } + + if opts.GenerateN > 0 { + v.Add("num", fmt.Sprint(opts.GenerateN)) + } + + if len(opts.PrivateKeys) > 0 { + keys := make([]string, 0, len(opts.PrivateKeys)) + for _, k := range opts.PrivateKeys { + keys = append(keys, k.Hex()) + } + v.Add("private-keys", strings.Join(keys, ",")) + } + + var obj struct { + Addresses []string `json:"addresses"` + } + if err := c.PostForm("/api/v1/wallet/newAddress", strings.NewReader(v.Encode()), &obj); err != nil { + return nil, err + } + return obj.Addresses, nil +} + +// ScanWalletAddresses makes a request to POST /api/v1/wallet/scan +// if n is <= 0, defaults to 20 +func (c *Client) ScanWalletAddresses(id string, n int, password string) ([]string, error) { + v := url.Values{} + v.Add("id", id) + v.Add("password", password) + if n > 0 { + v.Add("num", fmt.Sprint(n)) + } + + var obj struct { + Addresses []string `json:"addresses"` + } + if err := c.PostForm("/api/v1/wallet/scan", strings.NewReader(v.Encode()), &obj); err != nil { + return nil, err + } + return obj.Addresses, nil +} + +// WalletBalance makes a request to GET /api/v1/wallet/balance +func (c *Client) WalletBalance(id string) (*BalanceResponse, error) { + v := url.Values{} + v.Add("id", id) + endpoint := "/api/v1/wallet/balance?" + v.Encode() + + var b BalanceResponse + if err := c.Get(endpoint, &b); err != nil { + return nil, err + } + return &b, nil +} + +// CreateTransactionRequest is sent to /api/v2/transaction +type CreateTransactionRequest struct { + IgnoreUnconfirmed bool `json:"ignore_unconfirmed"` + HoursSelection HoursSelection `json:"hours_selection"` + ChangeAddress *string `json:"change_address,omitempty"` + To []Receiver `json:"to"` + UxOuts []string `json:"unspents,omitempty"` + Addresses []string `json:"addresses,omitempty"` +} + +// HoursSelection defines options for hours distribution +type HoursSelection struct { + Type string `json:"type"` + Mode string `json:"mode"` + ShareFactor string `json:"share_factor,omitempty"` +} + +// Receiver specifies a spend destination +type Receiver struct { + Address string `json:"address"` + Coins string `json:"coins"` + Hours string `json:"hours,omitempty"` +} + +// WalletCreateTransactionRequest is sent to /api/v1/wallet/transaction +type WalletCreateTransactionRequest struct { + Unsigned bool `json:"unsigned"` + WalletID string `json:"wallet_id"` + Password string `json:"password"` + CreateTransactionRequest +} + +// WalletCreateTransaction makes a request to POST /api/v1/wallet/transaction +func (c *Client) WalletCreateTransaction(req WalletCreateTransactionRequest) (*CreateTransactionResponse, error) { + var r CreateTransactionResponse + endpoint := "/api/v1/wallet/transaction" + if err := c.PostJSON(endpoint, req, &r); err != nil { + return nil, err + } + + return &r, nil +} + +// WalletSignTransaction makes a request to POST /api/v2/wallet/transaction/sign +func (c *Client) WalletSignTransaction(req WalletSignTransactionRequest) (*CreateTransactionResponse, error) { + var r CreateTransactionResponse + endpoint := "/api/v2/wallet/transaction/sign" + ok, err := c.PostJSONV2(endpoint, req, &r) + if ok { + return &r, err + } + return nil, err +} + +// CreateTransaction makes a request to POST /api/v2/transaction +func (c *Client) CreateTransaction(req CreateTransactionRequest) (*CreateTransactionResponse, error) { + var r CreateTransactionResponse + endpoint := "/api/v2/transaction" + ok, err := c.PostJSONV2(endpoint, req, &r) + if ok { + return &r, err + } + return nil, err +} + +// WalletUnconfirmedTransactions makes a request to GET /api/v1/wallet/transactions +func (c *Client) WalletUnconfirmedTransactions(id string) (*UnconfirmedTxnsResponse, error) { + v := url.Values{} + v.Add("id", id) + endpoint := "/api/v1/wallet/transactions?" + v.Encode() + + var utx *UnconfirmedTxnsResponse + if err := c.Get(endpoint, &utx); err != nil { + return nil, err + } + return utx, nil +} + +// WalletUnconfirmedTransactionsVerbose makes a request to GET /api/v1/wallet/transactions&verbose=1 +func (c *Client) WalletUnconfirmedTransactionsVerbose(id string) (*UnconfirmedTxnsVerboseResponse, error) { + v := url.Values{} + v.Add("id", id) + v.Add("verbose", "1") + endpoint := "/api/v1/wallet/transactions?" + v.Encode() + + var utx *UnconfirmedTxnsVerboseResponse + if err := c.Get(endpoint, &utx); err != nil { + return nil, err + } + return utx, nil +} + +// UpdateWallet makes a request to POST /api/v1/wallet/update +func (c *Client) UpdateWallet(id, label string) error { + v := url.Values{} + v.Add("id", id) + v.Add("label", label) + + return c.PostForm("/api/v1/wallet/update", strings.NewReader(v.Encode()), nil) +} + +// WalletFolderName makes a request to GET /api/v1/wallets/folderName +func (c *Client) WalletFolderName() (*WalletFolder, error) { + var w WalletFolder + if err := c.Get("/api/v1/wallets/folderName", &w); err != nil { + return nil, err + } + return &w, nil +} + +// NewSeed makes a request to GET /api/v1/wallet/newSeed +// entropy must be 128 or 256 +func (c *Client) NewSeed(entropy int) (string, error) { + v := url.Values{} + v.Add("entropy", fmt.Sprint(entropy)) + endpoint := "/api/v1/wallet/newSeed?" + v.Encode() + + var r struct { + Seed string `json:"seed"` + } + if err := c.Get(endpoint, &r); err != nil { + return "", err + } + return r.Seed, nil +} + +// VerifySeed verifies whether the given seed is a valid bip39 mnemonic or not +func (c *Client) VerifySeed(seed string) (bool, error) { + ok, err := c.PostJSONV2("/api/v2/wallet/seed/verify", VerifySeedRequest{ + Seed: seed, + }, &struct{}{}) + if err != nil { + return false, err + } + return ok, nil +} + +// WalletSeed makes a request to POST /api/v1/wallet/seed +func (c *Client) WalletSeed(id string, password string) (*WalletSeedResponse, error) { + v := url.Values{} + v.Add("id", id) + v.Add("password", password) + + var r WalletSeedResponse + if err := c.PostForm("/api/v1/wallet/seed", strings.NewReader(v.Encode()), &r); err != nil { + return nil, err + } + + return &r, nil +} + +// NetworkConnection makes a request to GET /api/v1/network/connection +func (c *Client) NetworkConnection(addr string) (*readable.Connection, error) { + v := url.Values{} + v.Add("addr", addr) + endpoint := "/api/v1/network/connection?" + v.Encode() + + var dc readable.Connection + if err := c.Get(endpoint, &dc); err != nil { + return nil, err + } + return &dc, nil +} + +// NetworkConnectionsFilter filters for network connections +type NetworkConnectionsFilter struct { + States []daemon.ConnectionState // "pending", "connected" and "introduced" + Direction string // "incoming" or "outgoing" +} + +// NetworkConnections makes a request to GET /api/v1/network/connections. +// Connections can be filtered by state and direction. By default, "connected" and "introduced" connections +// of both directions are returned. +func (c *Client) NetworkConnections(filters *NetworkConnectionsFilter) (*Connections, error) { + v := url.Values{} + if filters != nil { + if len(filters.States) != 0 { + states := make([]string, len(filters.States)) + for i, s := range filters.States { + states[i] = string(s) + } + v.Add("states", strings.Join(states, ",")) + } + if filters.Direction != "" { + v.Add("direction", filters.Direction) + } + } + endpoint := "/api/v1/network/connections?" + v.Encode() + + var dc Connections + if err := c.Get(endpoint, &dc); err != nil { + return nil, err + } + return &dc, nil +} + +// NetworkDefaultPeers makes a request to GET /api/v1/network/defaultConnections +func (c *Client) NetworkDefaultPeers() ([]string, error) { + var dc []string + if err := c.Get("/api/v1/network/defaultConnections", &dc); err != nil { + return nil, err + } + return dc, nil +} + +// NetworkTrustedPeers makes a request to GET /api/v1/network/connections/trust +func (c *Client) NetworkTrustedPeers() ([]string, error) { + var dc []string + if err := c.Get("/api/v1/network/connections/trust", &dc); err != nil { + return nil, err + } + return dc, nil +} + +// NetworkExchangedPeers makes a request to GET /api/v1/network/connections/exchange +func (c *Client) NetworkExchangedPeers() ([]string, error) { + var dc []string + if err := c.Get("/api/v1/network/connections/exchange", &dc); err != nil { + return nil, err + } + return dc, nil +} + +// PendingTransactions makes a request to GET /api/v1/pendingTxs +func (c *Client) PendingTransactions() ([]readable.UnconfirmedTransactions, error) { + var v []readable.UnconfirmedTransactions + if err := c.Get("/api/v1/pendingTxs", &v); err != nil { + return nil, err + } + return v, nil +} + +// PendingTransactionsVerbose makes a request to GET /api/v1/pendingTxs?verbose=1 +func (c *Client) PendingTransactionsVerbose() ([]readable.UnconfirmedTransactionVerbose, error) { + var v []readable.UnconfirmedTransactionVerbose + if err := c.Get("/api/v1/pendingTxs?verbose=1", &v); err != nil { + return nil, err + } + return v, nil +} + +// Transaction makes a request to GET /api/v1/transaction +func (c *Client) Transaction(txid string) (*readable.TransactionWithStatus, error) { + v := url.Values{} + v.Add("txid", txid) + endpoint := "/api/v1/transaction?" + v.Encode() + + var r readable.TransactionWithStatus + if err := c.Get(endpoint, &r); err != nil { + return nil, err + } + return &r, nil +} + +// TransactionVerbose makes a request to GET /api/v1/transaction?verbose=1 +func (c *Client) TransactionVerbose(txid string) (*readable.TransactionWithStatusVerbose, error) { + v := url.Values{} + v.Add("txid", txid) + v.Add("verbose", "1") + endpoint := "/api/v1/transaction?" + v.Encode() + + var r readable.TransactionWithStatusVerbose + if err := c.Get(endpoint, &r); err != nil { + return nil, err + } + return &r, nil +} + +// TransactionEncoded makes a request to GET /api/v1/transaction?encoded=1 +func (c *Client) TransactionEncoded(txid string) (*TransactionEncodedResponse, error) { + v := url.Values{} + v.Add("txid", txid) + v.Add("encoded", "1") + endpoint := "/api/v1/transaction?" + v.Encode() + + var r TransactionEncodedResponse + if err := c.Get(endpoint, &r); err != nil { + return nil, err + } + return &r, nil +} + +// Transactions makes a request to POST /api/v1/transactions +func (c *Client) Transactions(addrs []string) ([]readable.TransactionWithStatus, error) { + v := url.Values{} + v.Add("addrs", strings.Join(addrs, ",")) + endpoint := "/api/v1/transactions" + + var r []readable.TransactionWithStatus + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &r); err != nil { + return nil, err + } + return r, nil +} + +// ConfirmedTransactions makes a request to POST /api/v1/transactions?confirmed=true +func (c *Client) ConfirmedTransactions(addrs []string) ([]readable.TransactionWithStatus, error) { + v := url.Values{} + v.Add("addrs", strings.Join(addrs, ",")) + v.Add("confirmed", "true") + endpoint := "/api/v1/transactions" + + var r []readable.TransactionWithStatus + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &r); err != nil { + return nil, err + } + return r, nil +} + +// UnconfirmedTransactions makes a request to POST /api/v1/transactions?confirmed=false +func (c *Client) UnconfirmedTransactions(addrs []string) ([]readable.TransactionWithStatus, error) { + v := url.Values{} + v.Add("addrs", strings.Join(addrs, ",")) + v.Add("confirmed", "false") + endpoint := "/api/v1/transactions" + + var r []readable.TransactionWithStatus + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &r); err != nil { + return nil, err + } + return r, nil +} + +// TransactionsVerbose makes a request to POST /api/v1/transactions?verbose=1 +func (c *Client) TransactionsVerbose(addrs []string) ([]readable.TransactionWithStatusVerbose, error) { + v := url.Values{} + v.Add("addrs", strings.Join(addrs, ",")) + v.Add("verbose", "1") + endpoint := "/api/v1/transactions" + + var r []readable.TransactionWithStatusVerbose + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &r); err != nil { + return nil, err + } + return r, nil +} + +// ConfirmedTransactionsVerbose makes a request to POST /api/v1/transactions?confirmed=true&verbose=1 +func (c *Client) ConfirmedTransactionsVerbose(addrs []string) ([]readable.TransactionWithStatusVerbose, error) { + v := url.Values{} + v.Add("addrs", strings.Join(addrs, ",")) + v.Add("confirmed", "true") + v.Add("verbose", "1") + endpoint := "/api/v1/transactions" + + var r []readable.TransactionWithStatusVerbose + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &r); err != nil { + return nil, err + } + return r, nil +} + +// UnconfirmedTransactionsVerbose makes a request to POST /api/v1/transactions?confirmed=false&verbose=1 +func (c *Client) UnconfirmedTransactionsVerbose(addrs []string) ([]readable.TransactionWithStatusVerbose, error) { + v := url.Values{} + v.Add("addrs", strings.Join(addrs, ",")) + v.Add("confirmed", "false") + v.Add("verbose", "1") + endpoint := "/api/v1/transactions" + + var r []readable.TransactionWithStatusVerbose + if err := c.PostForm(endpoint, strings.NewReader(v.Encode()), &r); err != nil { + return nil, err + } + return r, nil +} + +// GetTransactionsNum makes a GET request to /api/v1/transactions/num +func (c *Client) GetTransactionsNum() (uint64, error) { + var r struct { + TxnsNum uint64 `json:"txns_num"` + } + if err := c.Get("api/v1/transactions/num", &r); err != nil { + return 0, err + } + + return r.TxnsNum, nil +} + +// InjectTransaction makes a request to POST /api/v1/injectTransaction. +func (c *Client) InjectTransaction(txn *coin.Transaction) (string, error) { + rawTxn, err := txn.SerializeHex() + if err != nil { + return "", err + } + return c.InjectEncodedTransaction(rawTxn) +} + +// InjectTransactionNoBroadcast makes a request to POST /api/v1/injectTransaction +// but does not broadcast the transaction. +func (c *Client) InjectTransactionNoBroadcast(txn *coin.Transaction) (string, error) { + rawTxn, err := txn.SerializeHex() + if err != nil { + return "", err + } + return c.InjectEncodedTransactionNoBroadcast(rawTxn) +} + +// InjectEncodedTransaction makes a request to POST /api/v1/injectTransaction. +// rawTxn is a hex-encoded, serialized transaction +func (c *Client) InjectEncodedTransaction(rawTxn string) (string, error) { + return c.injectEncodedTransaction(rawTxn, false) +} + +// InjectEncodedTransactionNoBroadcast makes a request to POST /api/v1/injectTransaction +// but does not broadcast the transaction. +// rawTxn is a hex-encoded, serialized transaction +func (c *Client) InjectEncodedTransactionNoBroadcast(rawTxn string) (string, error) { + return c.injectEncodedTransaction(rawTxn, true) +} + +func (c *Client) injectEncodedTransaction(rawTxn string, noBroadcast bool) (string, error) { + v := InjectTransactionRequest{ + RawTxn: rawTxn, + NoBroadcast: noBroadcast, + } + + var txid string + if err := c.PostJSON("/api/v1/injectTransaction", v, &txid); err != nil { + return "", err + } + return txid, nil +} + +// ResendUnconfirmedTransactions makes a request to POST /api/v1/resendUnconfirmedTxns +func (c *Client) ResendUnconfirmedTransactions() (*ResendResult, error) { + endpoint := "/api/v1/resendUnconfirmedTxns" + var r ResendResult + if err := c.PostForm(endpoint, strings.NewReader(""), &r); err != nil { + return nil, err + } + return &r, nil +} + +// RawTransaction makes a request to GET /api/v1/rawtx +func (c *Client) RawTransaction(txid string) (string, error) { + v := url.Values{} + v.Add("txid", txid) + endpoint := "/api/v1/rawtx?" + v.Encode() + + var rawTxn string + if err := c.Get(endpoint, &rawTxn); err != nil { + return "", err + } + return rawTxn, nil +} + +// VerifyTransaction makes a request to POST /api/v2/transaction/verify. +func (c *Client) VerifyTransaction(req VerifyTransactionRequest) (*VerifyTransactionResponse, error) { + var rsp VerifyTransactionResponse + ok, err := c.PostJSONV2("/api/v2/transaction/verify", req, &rsp) + if ok { + return &rsp, err + } + + return nil, err +} + +// VerifyAddress makes a request to POST /api/v2/address/verify +// The API may respond with an error but include data useful for processing, +// so both return values may be non-nil. +func (c *Client) VerifyAddress(addr string) (*VerifyAddressResponse, error) { + req := VerifyAddressRequest{ + Address: addr, + } + + var rsp VerifyAddressResponse + ok, err := c.PostJSONV2("/api/v2/address/verify", req, &rsp) + if ok { + return &rsp, err + } + + return nil, err +} + +// RichlistParams are arguments to the /richlist endpoint +type RichlistParams struct { + N int + IncludeDistribution bool +} + +// Richlist makes a request to GET /api/v1/richlist +func (c *Client) Richlist(params *RichlistParams) (*Richlist, error) { + endpoint := "/api/v1/richlist" + + if params != nil { + v := url.Values{} + v.Add("n", fmt.Sprint(params.N)) + v.Add("include-distribution", fmt.Sprint(params.IncludeDistribution)) + endpoint = "/api/v1/richlist?" + v.Encode() + } + + var r Richlist + if err := c.Get(endpoint, &r); err != nil { + return nil, err + } + return &r, nil +} + +// AddressCount makes a request to GET /api/v1/addresscount +func (c *Client) AddressCount() (uint64, error) { + var r struct { + Count uint64 `json:"count"` + } + if err := c.Get("/api/v1/addresscount", &r); err != nil { + return 0, err + } + return r.Count, nil + +} + +// UnloadWallet makes a request to POST /api/v1/wallet/unload +func (c *Client) UnloadWallet(id string) error { + v := url.Values{} + v.Add("id", id) + return c.PostForm("/api/v1/wallet/unload", strings.NewReader(v.Encode()), nil) +} + +// Health makes a request to GET /api/v1/health +func (c *Client) Health() (*HealthResponse, error) { + var r HealthResponse + if err := c.Get("/api/v1/health", &r); err != nil { + return nil, err + } + + return &r, nil +} + +// EncryptWallet makes a request to POST /api/v1/wallet/encrypt to encrypt a specific wallet with the given password +func (c *Client) EncryptWallet(id, password string) (*WalletResponse, error) { + v := url.Values{} + v.Add("id", id) + v.Add("password", password) + var wlt WalletResponse + if err := c.PostForm("/api/v1/wallet/encrypt", strings.NewReader(v.Encode()), &wlt); err != nil { + return nil, err + } + + return &wlt, nil +} + +// DecryptWallet makes a request to POST /api/v1/wallet/decrypt to decrypt a wallet +func (c *Client) DecryptWallet(id, password string) (*WalletResponse, error) { + v := url.Values{} + v.Add("id", id) + v.Add("password", password) + var wlt WalletResponse + if err := c.PostForm("/api/v1/wallet/decrypt", strings.NewReader(v.Encode()), &wlt); err != nil { + return nil, err + } + + return &wlt, nil +} + +// RecoverWallet makes a request to POST /api/v2/wallet/recover to recover an encrypted wallet by seed. +// The password argument is optional, if provided, the recovered wallet will be encrypted with this password, +// otherwise the recovered wallet will be unencrypted. +func (c *Client) RecoverWallet(req WalletRecoverRequest) (*WalletResponse, error) { + var rsp WalletResponse + ok, err := c.PostJSONV2("/api/v2/wallet/recover", req, &rsp) + if ok { + return &rsp, err + } + + return nil, err +} + +// Disconnect disconnect a connections by ID +func (c *Client) Disconnect(id uint64) error { + v := url.Values{} + v.Add("id", fmt.Sprint(id)) + + var obj struct{} + return c.PostForm("/api/v1/network/connection/disconnect", strings.NewReader(v.Encode()), &obj) +} + +// GetAllStorageValues makes a GET request to /api/v2/data to get all the values from the storage of +// `storageType` type +func (c *Client) GetAllStorageValues(storageType kvstorage.Type) (map[string]string, error) { + var values map[string]string + ok, err := c.GetV2(fmt.Sprintf("/api/v2/data?type=%s", storageType), &values) + if !ok { + return nil, err + } + + return values, err +} + +// GetStorageValue makes a GET request to /api/v2/data to get the value associated with `key` from storage +// of `storageType` type +func (c *Client) GetStorageValue(storageType kvstorage.Type, key string) (string, error) { + var value string + ok, err := c.GetV2(fmt.Sprintf("/api/v2/data?type=%s&key=%s", storageType, key), &value) + if !ok { + return "", err + } + + return value, err +} + +// AddStorageValue make a POST request to /api/v2/data to add a value with the key to the storage +// of `storageType` type +func (c *Client) AddStorageValue(storageType kvstorage.Type, key, val string) error { + _, err := c.PostJSONV2("/api/v2/data", StorageRequest{ + StorageType: storageType, + Key: key, + Val: val, + }, nil) + + return err +} + +// RemoveStorageValue makes a DELETE request to /api/v2/data to remove a value associated with the `key` +// from the storage of `storageType` type +func (c *Client) RemoveStorageValue(storageType kvstorage.Type, key string) error { + _, err := c.DeleteV2(fmt.Sprintf("/api/v2/data?type=%s&key=%s", storageType, key), nil) + + return err +} + +// RequestArg is the general data type for sending request +type RequestArg struct { + Key string + Value string +} + +// TransactionsWithStatusV2 represents transactions result with page info +type TransactionsWithStatusV2 struct { + PageInfo readable.PageInfo `json:"page_info"` + Txns []readable.TransactionWithStatus `json:"txns"` +} + +// TransactionsWithStatusVerboseV2 represents verbose transactions result with page info +type TransactionsWithStatusVerboseV2 struct { + PageInfo readable.PageInfo `json:"page_info"` + Txns []readable.TransactionWithStatusVerbose `json:"txns"` +} + +// TransactionsV2 make a GET request to /api/v2/transaction to get transactions with no verbose. +func (c *Client) TransactionsV2(args ...RequestArg) (*TransactionsWithStatusV2, error) { + kvs := make([]string, len(args)) + for i, arg := range args { + kvs[i] = fmt.Sprintf("%s=%s", arg.Key, arg.Value) + if strings.Contains(arg.Key, "verbose") { + return nil, errors.New("arguments should not include 'verbose'") + } + } + + endpoint := fmt.Sprintf("/api/v2/transactions?%s", strings.Join(kvs, "&")) + + var obj TransactionsWithStatusV2 + _, err := c.GetV2(endpoint, &obj) + if err != nil { + return nil, err + } + return &obj, nil +} + +// TransactionsVerboseV2 make a GET request to /api/v2/transaction to get transactions with no verbose. +func (c *Client) TransactionsVerboseV2(args ...RequestArg) (*TransactionsWithStatusVerboseV2, error) { + kvs := make([]string, len(args)) + for i, arg := range args { + kvs[i] = fmt.Sprintf("%s=%s", arg.Key, arg.Value) + } + + endpoint := fmt.Sprintf("/api/v2/transactions?verbose=true&%s", strings.Join(kvs, "&")) + + var obj TransactionsWithStatusVerboseV2 + _, err := c.GetV2(endpoint, &obj) + if err != nil { + return nil, err + } + return &obj, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/csrf.go b/vendor/github.com/skycoin/skycoin/src/api/csrf.go new file mode 100644 index 000000000..23de8cbd1 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/csrf.go @@ -0,0 +1,165 @@ +package api + +import ( + "net/http" + "time" + + "crypto/hmac" + "crypto/sha256" + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "strings" + + "github.com/skycoin/skycoin/src/cipher" + wh "github.com/skycoin/skycoin/src/util/http" +) + +const ( + // CSRFHeaderName is the name of the CSRF header + CSRFHeaderName = "X-CSRF-Token" + + // CSRFMaxAge is the lifetime of a CSRF token in seconds + CSRFMaxAge = time.Second * 30 + + csrfSecretLength = 64 + + csrfNonceLength = 64 +) + +var ( + // ErrCSRFInvalid is returned when the the CSRF token is in invalid format + ErrCSRFInvalid = errors.New("invalid CSRF token") + // ErrCSRFInvalidSignature is returned when the signature of the csrf token is invalid + ErrCSRFInvalidSignature = errors.New("invalid CSRF token signature") + // ErrCSRFExpired is returned when the csrf token has expired + ErrCSRFExpired = errors.New("csrf token expired") +) + +var csrfSecretKey []byte + +func init() { + csrfSecretKey = cipher.RandByte(csrfSecretLength) +} + +// CSRFToken csrf token +type CSRFToken struct { + Nonce []byte + ExpiresAt time.Time +} + +// newCSRFToken generates a new CSRF Token +func newCSRFToken() (string, error) { + return newCSRFTokenWithTime(time.Now().Add(CSRFMaxAge)) +} + +func newCSRFTokenWithTime(expiresAt time.Time) (string, error) { + token := &CSRFToken{ + Nonce: cipher.RandByte(csrfNonceLength), + ExpiresAt: expiresAt, + } + + tokenJSON, err := json.Marshal(token) + if err != nil { + return "", err + } + + h := hmac.New(sha256.New, csrfSecretKey) + _, err = h.Write([]byte(tokenJSON)) + if err != nil { + return "", err + } + + sig := base64.RawURLEncoding.EncodeToString(h.Sum(nil)) + + signingString := base64.RawURLEncoding.EncodeToString(tokenJSON) + + return strings.Join([]string{signingString, sig}, "."), nil +} + +// verifyCSRFToken checks validity of the given token +func verifyCSRFToken(headerToken string) error { + tokenParts := strings.Split(headerToken, ".") + if len(tokenParts) != 2 { + return ErrCSRFInvalid + } + + signingString, err := base64.RawURLEncoding.DecodeString(tokenParts[0]) + if err != nil { + return err + } + + h := hmac.New(sha256.New, csrfSecretKey) + _, err = h.Write([]byte(signingString)) + if err != nil { + return err + } + + sig := base64.RawURLEncoding.EncodeToString(h.Sum(nil)) + + if sig != tokenParts[1] { + return ErrCSRFInvalidSignature + } + + var csrfToken CSRFToken + err = json.Unmarshal(signingString, &csrfToken) + if err != nil { + return err + } + + if time.Now().After(csrfToken.ExpiresAt) { + return ErrCSRFExpired + } + + return nil +} + +// Creates a new CSRF token. Previous CSRF tokens are invalidated by this call. +// URI: /api/v1/csrf +// Method: GET +// Response: +// csrf_token: CSRF token to use in POST requests +func getCSRFToken(disabled bool) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + if disabled { + logger.Warning("CSRF check disabled") + wh.Error404(w, "") + return + } + + // generate a new token + csrfToken, err := newCSRFToken() + if err != nil { + logger.Error(err) + wh.Error500(w, fmt.Sprintf("Failed to create a csrf token: %v", err)) + return + } + + wh.SendJSONOr500(logger, w, &map[string]string{"csrf_token": csrfToken}) + } +} + +// CSRFCheck verifies X-CSRF-Token header value +func CSRFCheck(apiVersion string, disabled bool, handler http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if !disabled { + switch r.Method { + case http.MethodPost, http.MethodPut, http.MethodDelete: + token := r.Header.Get(CSRFHeaderName) + if err := verifyCSRFToken(token); err != nil { + logger.Errorf("CSRF token invalid: %v", err) + writeError(w, apiVersion, http.StatusForbidden, err.Error()) + return + } + } + } + + handler.ServeHTTP(w, r) + }) +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/explorer.go b/vendor/github.com/skycoin/skycoin/src/api/explorer.go new file mode 100644 index 000000000..3b400e415 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/explorer.go @@ -0,0 +1,242 @@ +package api + +import ( + "fmt" + "net/http" + "strconv" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/util/droplet" + wh "github.com/skycoin/skycoin/src/util/http" + "github.com/skycoin/skycoin/src/util/mathutil" +) + +// CoinSupply records the coin supply info +type CoinSupply struct { + // Coins distributed beyond the project: + CurrentSupply string `json:"current_supply"` + // TotalSupply is CurrentSupply plus coins held by the distribution addresses that are spendable + TotalSupply string `json:"total_supply"` + // MaxSupply is the maximum number of coins to be distributed ever + MaxSupply string `json:"max_supply"` + // CurrentCoinHourSupply is coins hours in non distribution addresses + CurrentCoinHourSupply string `json:"current_coinhour_supply"` + // TotalCoinHourSupply is coin hours in all addresses including unlocked distribution addresses + TotalCoinHourSupply string `json:"total_coinhour_supply"` + // Distribution addresses which count towards total supply + UnlockedAddresses []string `json:"unlocked_distribution_addresses"` + // Distribution addresses which are locked and do not count towards total supply + LockedAddresses []string `json:"locked_distribution_addresses"` +} + +func newAddrSet(addrs []cipher.Address) map[cipher.Address]struct{} { + s := make(map[cipher.Address]struct{}, len(addrs)) + for _, a := range addrs { + s[a] = struct{}{} + } + return s +} + +// coinSupplyHandler returns coin distribution supply stats +// Method: GET +// URI: /api/v1/coinSupply +func coinSupplyHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + allUnspents, err := gateway.GetUnspentOutputsSummary(nil) + if err != nil { + err = fmt.Errorf("gateway.GetUnspentOutputsSummary failed: %v", err) + wh.Error500(w, err.Error()) + return + } + + dist := gateway.VisorConfig().Distribution + + unlockedAddrs := dist.UnlockedAddressesDecoded() + // Search map of unlocked addresses, used to filter unspents + unlockedAddrSet := newAddrSet(unlockedAddrs) + + var unlockedSupply uint64 + // check confirmed unspents only + for _, u := range allUnspents.Confirmed { + // check if address is an unlocked distribution address + if _, ok := unlockedAddrSet[u.Body.Address]; ok { + var err error + unlockedSupply, err = mathutil.AddUint64(unlockedSupply, u.Body.Coins) + if err != nil { + err = fmt.Errorf("uint64 overflow while adding up unlocked supply coins: %v", err) + wh.Error500(w, err.Error()) + return + } + } + } + + // "total supply" is the number of coins unlocked. + // Each distribution address was allocated distribution.AddressInitialBalance coins. + totalSupply := uint64(len(unlockedAddrs)) * dist.AddressInitialBalance() + totalSupply *= droplet.Multiplier + + // "current supply" is the number of coins distributed from the unlocked pool + currentSupply := totalSupply - unlockedSupply + + currentSupplyStr, err := droplet.ToString(currentSupply) + if err != nil { + err = fmt.Errorf("Failed to convert coins to string: %v", err) + wh.Error500(w, err.Error()) + return + } + + totalSupplyStr, err := droplet.ToString(totalSupply) + if err != nil { + err = fmt.Errorf("Failed to convert coins to string: %v", err) + wh.Error500(w, err.Error()) + return + } + + maxSupplyStr, err := droplet.ToString(dist.MaxCoinSupply * droplet.Multiplier) + if err != nil { + err = fmt.Errorf("Failed to convert coins to string: %v", err) + wh.Error500(w, err.Error()) + return + } + + // locked distribution addresses + lockedAddrs := dist.LockedAddressesDecoded() + lockedAddrSet := newAddrSet(lockedAddrs) + + // get total coins hours which excludes locked distribution addresses + var totalCoinHours uint64 + for _, out := range allUnspents.Confirmed { + if _, ok := lockedAddrSet[out.Body.Address]; !ok { + var err error + totalCoinHours, err = mathutil.AddUint64(totalCoinHours, out.CalculatedHours) + if err != nil { + err = fmt.Errorf("uint64 overflow while adding up total coin hours: %v", err) + wh.Error500(w, err.Error()) + return + } + } + } + + // get current coin hours which excludes all distribution addresses + var currentCoinHours uint64 + for _, out := range allUnspents.Confirmed { + // check if address not in locked distribution addresses + if _, ok := lockedAddrSet[out.Body.Address]; !ok { + // check if address not in unlocked distribution addresses + if _, ok := unlockedAddrSet[out.Body.Address]; !ok { + currentCoinHours += out.CalculatedHours + } + } + } + + if err != nil { + err = fmt.Errorf("Failed to get total coinhours: %v", err) + wh.Error500(w, err.Error()) + return + } + + cs := CoinSupply{ + CurrentSupply: currentSupplyStr, + TotalSupply: totalSupplyStr, + MaxSupply: maxSupplyStr, + CurrentCoinHourSupply: strconv.FormatUint(currentCoinHours, 10), + TotalCoinHourSupply: strconv.FormatUint(totalCoinHours, 10), + UnlockedAddresses: dist.UnlockedAddresses(), + LockedAddresses: dist.LockedAddresses(), + } + + wh.SendJSONOr500(logger, w, cs) + } +} + +// Richlist contains top address balances +type Richlist struct { + Richlist []readable.RichlistBalance `json:"richlist"` +} + +// richlistHandler returns the top skycoin holders +// Method: GET +// URI: /richlist?n=${number}&include-distribution=${bool} +// Args: +// n [int, number of results to include] +// include-distribution [bool, include the distribution addresses in the richlist] +func richlistHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + var topn int + topnStr := r.FormValue("n") + if topnStr == "" { + topn = 20 + } else { + var err error + topn, err = strconv.Atoi(topnStr) + if err != nil { + wh.Error400(w, "invalid n") + return + } + } + + var includeDistribution bool + includeDistributionStr := r.FormValue("include-distribution") + if includeDistributionStr == "" { + includeDistribution = false + } else { + var err error + includeDistribution, err = strconv.ParseBool(includeDistributionStr) + if err != nil { + wh.Error400(w, "invalid include-distribution") + return + } + } + + richlist, err := gateway.GetRichlist(includeDistribution) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + if topn > 0 && topn < len(richlist) { + richlist = richlist[:topn] + } + + readableRichlist, err := readable.NewRichlistBalances(richlist) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, Richlist{ + Richlist: readableRichlist, + }) + } +} + +// addressCountHandler returns the total number of unique address that have coins +// Method: GET +// URI: /addresscount +func addressCountHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + addrCount, err := gateway.AddressCount() + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, &map[string]uint64{"count": addrCount}) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/gateway.go b/vendor/github.com/skycoin/skycoin/src/api/gateway.go new file mode 100644 index 000000000..277dba1b9 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/gateway.go @@ -0,0 +1,122 @@ +package api + +import ( + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/daemon" + "github.com/skycoin/skycoin/src/kvstorage" + "github.com/skycoin/skycoin/src/transaction" + "github.com/skycoin/skycoin/src/visor" + "github.com/skycoin/skycoin/src/visor/historydb" + "github.com/skycoin/skycoin/src/wallet" +) + +// Gateway bundles daemon.Daemon, Visor, wallet.Service and kvstorage.Manager into a single object +type Gateway struct { + *daemon.Daemon + *visor.Visor + *wallet.Service + *kvstorage.Manager +} + +// NewGateway creates a Gateway +func NewGateway(d *daemon.Daemon, v *visor.Visor, w *wallet.Service, m *kvstorage.Manager) *Gateway { + return &Gateway{ + Daemon: d, + Visor: v, + Service: w, + Manager: m, + } +} + +//go:generate mockery -name Gatewayer -case underscore -inpkg -testonly + +// Gatewayer interface for Gateway methods +type Gatewayer interface { + Daemoner + Visorer + Walleter + Storer +} + +// Daemoner interface for daemon.Daemon methods used by the API +type Daemoner interface { + DaemonConfig() daemon.DaemonConfig + GetConnection(addr string) (*daemon.Connection, error) + GetConnections(f func(c daemon.Connection) bool) ([]daemon.Connection, error) + DisconnectByGnetID(gnetID uint64) error + GetDefaultConnections() []string + GetTrustConnections() []string + GetExchgConnection() []string + GetBlockchainProgress(headSeq uint64) *daemon.BlockchainProgress + InjectBroadcastTransaction(txn coin.Transaction) error + InjectTransaction(txn coin.Transaction) error +} + +// Visorer interface for visor.Visor methods used by the API +type Visorer interface { + VisorConfig() visor.Config + StartedAt() time.Time + HeadBkSeq() (uint64, bool, error) + GetBlockchainMetadata() (*visor.BlockchainMetadata, error) + ResendUnconfirmedTxns() ([]cipher.SHA256, error) + GetSignedBlockByHash(hash cipher.SHA256) (*coin.SignedBlock, error) + GetSignedBlockByHashVerbose(hash cipher.SHA256) (*coin.SignedBlock, [][]visor.TransactionInput, error) + GetSignedBlockBySeq(seq uint64) (*coin.SignedBlock, error) + GetSignedBlockBySeqVerbose(seq uint64) (*coin.SignedBlock, [][]visor.TransactionInput, error) + GetBlocks(seqs []uint64) ([]coin.SignedBlock, error) + GetBlocksVerbose(seqs []uint64) ([]coin.SignedBlock, [][][]visor.TransactionInput, error) + GetBlocksInRange(start, end uint64) ([]coin.SignedBlock, error) + GetBlocksInRangeVerbose(start, end uint64) ([]coin.SignedBlock, [][][]visor.TransactionInput, error) + GetLastBlocks(num uint64) ([]coin.SignedBlock, error) + GetLastBlocksVerbose(num uint64) ([]coin.SignedBlock, [][][]visor.TransactionInput, error) + GetUnspentOutputsSummary(filters []visor.OutputsFilter) (*visor.UnspentOutputsSummary, error) + GetBalanceOfAddresses(addrs []cipher.Address) ([]wallet.BalancePair, error) + VerifyTxnVerbose(txn *coin.Transaction, signed transaction.TxnSignedFlag) ([]visor.TransactionInput, bool, error) + AddressCount() (uint64, error) + GetUxOutByID(id cipher.SHA256) (*historydb.UxOut, uint64, error) + GetSpentOutputsForAddresses(addr []cipher.Address) ([][]historydb.UxOut, uint64, error) + GetRichlist(includeDistribution bool) (visor.Richlist, error) + GetAllUnconfirmedTransactions() ([]visor.UnconfirmedTransaction, error) + GetAllUnconfirmedTransactionsVerbose() ([]visor.UnconfirmedTransaction, [][]visor.TransactionInput, error) + GetTransaction(txid cipher.SHA256) (*visor.Transaction, error) + GetTransactionWithInputs(txid cipher.SHA256) (*visor.Transaction, []visor.TransactionInput, error) + GetTransactions(flts []visor.TxFilter, order visor.SortOrder, page *visor.PageIndex) ([]visor.Transaction, uint64, error) + GetTransactionsWithInputs(flts []visor.TxFilter, order visor.SortOrder, page *visor.PageIndex) ([]visor.Transaction, [][]visor.TransactionInput, uint64, error) + GetTransactionsNum() (uint64, error) + GetWalletUnconfirmedTransactions(wltID string) ([]visor.UnconfirmedTransaction, error) + GetWalletUnconfirmedTransactionsVerbose(wltID string) ([]visor.UnconfirmedTransaction, [][]visor.TransactionInput, error) + GetWalletBalance(wltID string) (wallet.BalancePair, wallet.AddressBalances, error) + CreateTransaction(p transaction.Params, wp visor.CreateTransactionParams) (*coin.Transaction, []visor.TransactionInput, error) + WalletCreateTransaction(wltID string, p transaction.Params, wp visor.CreateTransactionParams) (*coin.Transaction, []visor.TransactionInput, error) + WalletCreateTransactionSigned(wltID string, password []byte, p transaction.Params, wp visor.CreateTransactionParams) (*coin.Transaction, []visor.TransactionInput, error) + WalletSignTransaction(wltID string, password []byte, txn *coin.Transaction, signIndexes []int) (*coin.Transaction, []visor.TransactionInput, error) + ScanWalletAddresses(wltID string, password []byte, num uint64) ([]cipher.Address, error) + TransactionsFinder() wallet.TransactionsFinder +} + +// Walleter interface for wallet.Service methods used by the API +type Walleter interface { + UnloadWallet(wltID string) error + EncryptWallet(wltID string, password []byte) (wallet.Wallet, error) + DecryptWallet(wltID string, password []byte) (wallet.Wallet, error) + GetWalletSeed(wltID string, password []byte) (string, string, error) + CreateWallet(wltName string, options wallet.Options) (wallet.Wallet, error) + RecoverWallet(wltID, seed, seedPassphrase string, password []byte) (wallet.Wallet, error) + NewAddresses(wltID string, password []byte, options ...wallet.Option) ([]cipher.Address, error) + ScanAddresses(wltID string, password []byte, n uint64, tf wallet.TransactionsFinder) ([]cipher.Address, error) + GetWallet(wltID string) (wallet.Wallet, error) + GetWallets() (wallet.Wallets, error) + UpdateWalletLabel(wltID, label string) error + WalletDir() (string, error) +} + +// Storer interface for kvstorage.Manager methods used by the API +type Storer interface { + GetStorageValue(storageType kvstorage.Type, key string) (string, error) + GetAllStorageValues(storageType kvstorage.Type) (map[string]string, error) + AddStorageValue(storageType kvstorage.Type, key, val string) error + RemoveStorageValue(storageType kvstorage.Type, key string) error +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/health.go b/vendor/github.com/skycoin/skycoin/src/api/health.go new file mode 100644 index 000000000..f64c07cba --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/health.go @@ -0,0 +1,118 @@ +package api + +import ( + "fmt" + "net/http" + "time" + + "github.com/skycoin/skycoin/src/daemon" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/readable" + wh "github.com/skycoin/skycoin/src/util/http" +) + +// BlockchainMetadata extends visor.BlockchainMetadata to include the time since the last block +type BlockchainMetadata struct { + readable.BlockchainMetadata + TimeSinceLastBlock wh.Duration `json:"time_since_last_block"` +} + +// HealthResponse is returned by the /health endpoint +type HealthResponse struct { + BlockchainMetadata BlockchainMetadata `json:"blockchain"` + Version readable.BuildInfo `json:"version"` + CoinName string `json:"coin"` + DaemonUserAgent string `json:"user_agent"` + OpenConnections int `json:"open_connections"` + OutgoingConnections int `json:"outgoing_connections"` + IncomingConnections int `json:"incoming_connections"` + Uptime wh.Duration `json:"uptime"` + CSRFEnabled bool `json:"csrf_enabled"` + HeaderCheckEnabled bool `json:"header_check_enabled"` + CSPEnabled bool `json:"csp_enabled"` + WalletAPIEnabled bool `json:"wallet_api_enabled"` + GUIEnabled bool `json:"gui_enabled"` + BlockPublisher bool `json:"block_publisher"` + UserVerifyTxn readable.VerifyTxn `json:"user_verify_transaction"` + UnconfirmedVerifyTxn readable.VerifyTxn `json:"unconfirmed_verify_transaction"` + StartedAt int64 `json:"started_at"` + Fiber readable.FiberConfig `json:"fiber"` +} + +func getHealthData(c muxConfig, gateway Gatewayer) (*HealthResponse, error) { + metadata, err := gateway.GetBlockchainMetadata() + if err != nil { + return nil, fmt.Errorf("gateway.GetBlockchainMetadata failed: %v", err) + } + + conns, err := gateway.GetConnections(func(c daemon.Connection) bool { + return c.State != daemon.ConnectionStatePending + }) + if err != nil { + return nil, fmt.Errorf("gateway.GetConnections failed: %v", err) + } + + outgoingConns := 0 + incomingConns := 0 + for _, c := range conns { + if c.Outgoing { + outgoingConns++ + } else { + incomingConns++ + } + } + + elapsedBlockTime := time.Now().UTC().Unix() - int64(metadata.HeadBlock.Head.Time) + timeSinceLastBlock := time.Second * time.Duration(elapsedBlockTime) + + _, walletAPIEnabled := c.enabledAPISets[EndpointsWallet] + + userAgent, err := c.health.DaemonUserAgent.Build() + if err != nil { + return nil, err + } + + return &HealthResponse{ + BlockchainMetadata: BlockchainMetadata{ + BlockchainMetadata: readable.NewBlockchainMetadata(*metadata), + TimeSinceLastBlock: wh.FromDuration(timeSinceLastBlock), + }, + Version: c.health.BuildInfo, + CoinName: c.health.Fiber.Name, + Fiber: c.health.Fiber, + DaemonUserAgent: userAgent, + OpenConnections: len(conns), + OutgoingConnections: outgoingConns, + IncomingConnections: incomingConns, + CSRFEnabled: !c.disableCSRF, + HeaderCheckEnabled: !c.disableHeaderCheck, + CSPEnabled: !c.disableCSP, + GUIEnabled: c.enableGUI, + BlockPublisher: c.health.BlockPublisher, + WalletAPIEnabled: walletAPIEnabled, + UserVerifyTxn: readable.NewVerifyTxn(params.UserVerifyTxn), + UnconfirmedVerifyTxn: readable.NewVerifyTxn(gateway.DaemonConfig().UnconfirmedVerifyTxn), + Uptime: wh.FromDuration(time.Since(gateway.StartedAt())), + StartedAt: gateway.StartedAt().Unix(), + }, nil +} + +// healthHandler returns node health data +// URI: /api/v1/health +// Method: GET +func healthHandler(c muxConfig, gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + health, err := getHealthData(c, gateway) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, health) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/http.go b/vendor/github.com/skycoin/skycoin/src/api/http.go new file mode 100644 index 000000000..2ae4c62ab --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/http.go @@ -0,0 +1,743 @@ +/* +Package api implements the REST API interface +*/ +package api + +import ( + "crypto/tls" + "encoding/json" + "errors" + "fmt" + "io/ioutil" + "net" + "net/http" + "path/filepath" + "strings" + "time" + "unicode" + + "github.com/rs/cors" + "github.com/skycoin/skycoin/src/util/gziphandler" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/util/file" + wh "github.com/skycoin/skycoin/src/util/http" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/util/useragent" + "github.com/skycoin/skycoin/src/visor" +) + +var ( + logger = logging.MustGetLogger("api") +) + +const ( + resourceDir = "dist/" + devDir = "dev/" + indexPage = "index.html" + + apiVersion1 = "v1" + apiVersion2 = "v2" + + defaultReadTimeout = time.Second * 10 + defaultWriteTimeout = time.Second * 60 + defaultIdleTimeout = time.Second * 120 + + // EndpointsRead endpoints with no side-effects and no changes in node state + EndpointsRead = "READ" + // EndpointsStatus endpoints offer (meta,runtime)data to dashboard and monitoring clients + EndpointsStatus = "STATUS" + // EndpointsTransaction endpoints export operations on transactions that modify node state + EndpointsTransaction = "TXN" + // EndpointsWallet endpoints implement wallet interface + EndpointsWallet = "WALLET" + // EndpointsInsecureWalletSeed endpoints implement wallet interface + EndpointsInsecureWalletSeed = "INSECURE_WALLET_SEED" + // EndpointsNetCtrl endpoints for managing network connections + EndpointsNetCtrl = "NET_CTRL" + // EndpointsStorage endpoints implement interface for key-value storage for arbitrary data + EndpointsStorage = "STORAGE" +) + +// Server exposes an HTTP API +type Server struct { + server *http.Server + listener net.Listener + done chan struct{} +} + +// Config configures Server +type Config struct { + StaticDir string + DisableCSRF bool + DisableHeaderCheck bool + DisableCSP bool + EnableGUI bool + ReadTimeout time.Duration + WriteTimeout time.Duration + IdleTimeout time.Duration + Health HealthConfig + HostWhitelist []string + EnabledAPISets map[string]struct{} + Username string + Password string +} + +// HealthConfig configuration data exposed in /health +type HealthConfig struct { + BuildInfo readable.BuildInfo + Fiber readable.FiberConfig + DaemonUserAgent useragent.Data + BlockPublisher bool +} + +type muxConfig struct { + host string + appLoc string + enableGUI bool + disableCSRF bool + disableHeaderCheck bool + disableCSP bool + enabledAPISets map[string]struct{} + hostWhitelist []string + username string + password string + health HealthConfig +} + +// HTTPResponse represents the http response struct +type HTTPResponse struct { + Error *HTTPError `json:"error,omitempty"` + Data interface{} `json:"data,omitempty"` +} + +// HTTPError is included in an HTTPResponse +type HTTPError struct { + Message string `json:"message"` + Code int `json:"code"` +} + +// NewHTTPErrorResponse returns an HTTPResponse with the Error field populated +func NewHTTPErrorResponse(code int, msg string) HTTPResponse { + if msg == "" { + msg = http.StatusText(code) + } + + return HTTPResponse{ + Error: &HTTPError{ + Code: code, + Message: msg, + }, + } +} + +func writeError400Response(w http.ResponseWriter, msg string) { + writeHTTPResponse(w, NewHTTPErrorResponse(http.StatusBadRequest, msg)) +} + +func writeError405Response(w http.ResponseWriter) { + writeHTTPResponse(w, NewHTTPErrorResponse(http.StatusMethodNotAllowed, "")) +} + +func writeError500Response(w http.ResponseWriter, msg string) { + writeHTTPResponse(w, NewHTTPErrorResponse(http.StatusInternalServerError, msg)) +} + +func writeHTTPResponse(w http.ResponseWriter, resp HTTPResponse) { + out, err := json.MarshalIndent(resp, "", " ") + if err != nil { + wh.Error500(w, "json.MarshalIndent failed") + return + } + + w.Header().Add("Content-Type", ContentTypeJSON) + + if resp.Error == nil { + w.WriteHeader(http.StatusOK) + } else { + if resp.Error.Code < 400 || resp.Error.Code >= 600 { + logger.Critical().Errorf("writeHTTPResponse invalid error status code: %d", resp.Error.Code) + w.WriteHeader(http.StatusInternalServerError) + } else { + w.WriteHeader(resp.Error.Code) + } + } + + if _, err := w.Write(out); err != nil { + logger.WithError(err).Error("http Write failed") + } +} + +func create(host string, c Config, gateway Gatewayer) (*Server, error) { + var appLoc string + if c.EnableGUI { + var err error + appLoc, err = file.DetermineResourcePath(c.StaticDir, resourceDir, devDir) + if err != nil { + return nil, err + } + logger.Infof("Web resources directory: %s", appLoc) + } + + if c.DisableCSRF { + logger.Warning("CSRF check disabled") + } + + if c.DisableHeaderCheck { + logger.Warning("Header check disabled") + } + + if c.ReadTimeout == 0 { + c.ReadTimeout = defaultReadTimeout + } + if c.WriteTimeout == 0 { + c.WriteTimeout = defaultWriteTimeout + } + if c.IdleTimeout == 0 { + c.IdleTimeout = defaultIdleTimeout + } + + mc := muxConfig{ + host: host, + appLoc: appLoc, + enableGUI: c.EnableGUI, + disableCSRF: c.DisableCSRF, + disableHeaderCheck: c.DisableHeaderCheck, + disableCSP: c.DisableCSP, + health: c.Health, + enabledAPISets: c.EnabledAPISets, + hostWhitelist: c.HostWhitelist, + username: c.Username, + password: c.Password, + } + + srvMux := newServerMux(mc, gateway) + srv := &http.Server{ + Handler: srvMux, + ReadTimeout: c.ReadTimeout, + WriteTimeout: c.WriteTimeout, + IdleTimeout: c.IdleTimeout, + // MaxHeaderBytes: http.DefaultMaxHeaderBytes, // adjust this to allow longer GET queries + } + + return &Server{ + server: srv, + done: make(chan struct{}), + }, nil +} + +// Create creates a new Server instance that listens on HTTP +func Create(host string, c Config, gateway Gatewayer) (*Server, error) { + logger.Warning("HTTPS not in use!") + + listener, err := net.Listen("tcp", host) + if err != nil { + return nil, err + } + + // If the host did not specify a port, allowing the kernel to assign one, + // we need to get the assigned address to know the full hostname + host = listener.Addr().String() + + s, err := create(host, c, gateway) + if err != nil { + if s != nil { + if closeErr := s.listener.Close(); closeErr != nil { + logger.WithError(err).Warning("s.listener.Close() error") + } + } + return nil, err + } + + s.listener = listener + + return s, nil +} + +// CreateHTTPS creates a new Server instance that listens on HTTPS +func CreateHTTPS(host string, c Config, gateway Gatewayer, certFile, keyFile string) (*Server, error) { + cert, err := tls.LoadX509KeyPair(certFile, keyFile) + if err != nil { + return nil, err + } + + logger.Infof("Using %s for the certificate", certFile) + logger.Infof("Using %s for the key", keyFile) + + listener, err := tls.Listen("tcp", host, &tls.Config{ + Certificates: []tls.Certificate{cert}, + }) + if err != nil { + return nil, err + } + + // If the host did not specify a port, allowing the kernel to assign one, + // we need to get the assigned address to know the full hostname + host = listener.Addr().String() + + s, err := create(host, c, gateway) + if err != nil { + if s != nil { + if closeErr := s.listener.Close(); closeErr != nil { + logger.WithError(err).Warning("s.listener.Close() error") + } + } + return nil, err + } + + s.listener = listener + + return s, nil +} + +// Addr returns the listening address of the Server +func (s *Server) Addr() string { + if s == nil || s.listener == nil { + return "" + } + return s.listener.Addr().String() +} + +// Serve serves the web interface on the configured host +func (s *Server) Serve() error { + logger.Infof("Starting web interface on %s", s.listener.Addr()) + defer logger.Info("Web interface closed") + defer close(s.done) + + if err := s.server.Serve(s.listener); err != nil { + if err != http.ErrServerClosed { + return err + } + } + return nil +} + +// Shutdown closes the HTTP service. This can only be called after Serve or ServeHTTPS has been called. +func (s *Server) Shutdown() { + if s == nil { + return + } + + logger.Info("Shutting down web interface") + defer logger.Info("Web interface shut down") + if err := s.listener.Close(); err != nil { + logger.WithError(err).Warning("s.listener.Close() error") + } + <-s.done +} + +// newServerMux creates an http.ServeMux with handlers registered +func newServerMux(c muxConfig, gateway Gatewayer) *http.ServeMux { + mux := http.NewServeMux() + + allowedOrigins := []string{fmt.Sprintf("http://%s", c.host)} + for _, s := range c.hostWhitelist { + allowedOrigins = append(allowedOrigins, fmt.Sprintf("http://%s", s)) + } + + corsHandler := cors.New(cors.Options{ + AllowedOrigins: allowedOrigins, + Debug: false, + AllowedMethods: []string{http.MethodGet, http.MethodPost}, + AllowedHeaders: []string{"Origin", "Accept", "Content-Type", "X-Requested-With", CSRFHeaderName}, + AllowCredentials: false, // credentials are not used, but it would be safe to enable if necessary + OptionsPassthrough: false, + }) + + headerCheck := func(apiVersion, host string, hostWhitelist []string, handler http.Handler) http.Handler { + handler = originRefererCheck(apiVersion, host, hostWhitelist, handler) + handler = hostCheck(apiVersion, host, hostWhitelist, handler) + return handler + } + + forMethodAPISets := func(apiVersion string, f http.Handler, methodsAPISets map[string][]string) http.Handler { + if len(methodsAPISets) == 0 { + logger.Panic("methodsAPISets should not be empty") + } + + switch apiVersion { + case apiVersion1, apiVersion2: + default: + logger.Panicf("Invalid API version %q", apiVersion) + } + + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + apiSets := methodsAPISets[r.Method] + + // If no API sets are specified for a given method, return 405 Method Not Allowed + if len(apiSets) == 0 { + switch apiVersion { + case apiVersion1: + wh.Error405(w) + case apiVersion2: + resp := NewHTTPErrorResponse(http.StatusMethodNotAllowed, "") + writeHTTPResponse(w, resp) + } + return + } + + for _, k := range apiSets { + if _, ok := c.enabledAPISets[k]; ok { + f.ServeHTTP(w, r) + return + } + } + + switch apiVersion { + case apiVersion1: + wh.Error403(w, "Endpoint is disabled") + case apiVersion2: + resp := NewHTTPErrorResponse(http.StatusForbidden, "Endpoint is disabled") + writeHTTPResponse(w, resp) + } + }) + } + + webHandlerWithOptionals := func(apiVersion, endpoint string, handlerFunc http.Handler, checkCSRF, checkHeaders bool) { + handler := wh.ElapsedHandler(logger, handlerFunc) + + handler = corsHandler.Handler(handler) + + if checkCSRF { + handler = CSRFCheck(apiVersion, c.disableCSRF, handler) + } + + if checkHeaders { + handler = headerCheck(apiVersion, c.host, c.hostWhitelist, handler) + } + + if apiVersion == apiVersion2 { + handler = ContentTypeJSONRequired(handler) + } + + handler = basicAuth(apiVersion, c.username, c.password, "skycoin daemon", handler) + handler = gziphandler.New(handler) + mux.Handle(endpoint, handler) + } + + webHandler := func(apiVersion, endpoint string, handler http.Handler, methodAPISets map[string][]string) { + // methodAPISets can be nil to ignore the concept of API sets for an endpoint. It will always be enabled. + // Explicitly check nil, caller should not pass empty initialized map + if methodAPISets != nil { + handler = forMethodAPISets(apiVersion, handler, methodAPISets) + } + + webHandlerWithOptionals(apiVersion, endpoint, handler, true, !c.disableHeaderCheck) + } + + webHandlerV1 := func(endpoint string, handler http.Handler, methodAPISets map[string][]string) { + webHandler(apiVersion1, "/api/v1"+endpoint, handler, methodAPISets) + } + + webHandlerV2 := func(endpoint string, handler http.Handler, methodAPISets map[string][]string) { + webHandler(apiVersion2, "/api/v2"+endpoint, handler, methodAPISets) + } + + indexHandler := newIndexHandler(c.appLoc, c.enableGUI) + if !c.disableCSP { + indexHandler = CSPHandler(indexHandler, ContentSecurityPolicy) + } + webHandler(apiVersion1, "/", indexHandler, nil) + + if c.enableGUI { + fileInfos, err := ioutil.ReadDir(c.appLoc) + if err != nil { + logger.WithError(err).Panicf("ioutil.ReadDir(%s) failed", c.appLoc) + } + + fs := http.FileServer(http.Dir(c.appLoc)) + if !c.disableCSP { + fs = CSPHandler(fs, ContentSecurityPolicy) + } + + for _, fileInfo := range fileInfos { + route := fmt.Sprintf("/%s", fileInfo.Name()) + if fileInfo.IsDir() { + route = route + "/" + } + + webHandler(apiVersion1, route, fs, nil) + } + } + + // get the current CSRF token + csrfHandlerV1 := func(endpoint string, handler http.Handler) { + webHandlerWithOptionals(apiVersion1, "/api/v1"+endpoint, handler, false, !c.disableHeaderCheck) + } + csrfHandlerV1("/csrf", getCSRFToken(c.disableCSRF)) // csrf is always available, regardless of the API set + + // Status endpoints + webHandlerV1("/version", versionHandler(c.health.BuildInfo), nil) // version is always available, regardless of the API set + webHandlerV1("/health", healthHandler(c, gateway), map[string][]string{ + http.MethodGet: {EndpointsRead, EndpointsStatus}, + }) + + // Wallet endpoints + webHandlerV1("/wallet", walletHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsWallet}, + }) + webHandlerV1("/wallet/create", walletCreateHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV1("/wallet/createTemp", walletCreateTempHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV1("/wallet/newAddress", walletNewAddressesHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV1("/wallet/scan", walletScanAddressesHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV1("/wallet/balance", walletBalanceHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsWallet}, + }) + webHandlerV1("/wallet/transaction", walletCreateTransactionHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV2("/wallet/transaction/sign", walletSignTransactionHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV1("/wallet/transactions", walletTransactionsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsWallet}, + }) + webHandlerV1("/wallet/update", walletUpdateHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV1("/wallets", walletsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsWallet}, + }) + webHandlerV1("/wallets/folderName", walletFolderHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsWallet}, + }) + webHandlerV1("/wallet/newSeed", newSeedHandler(), map[string][]string{ + http.MethodGet: {EndpointsWallet}, + }) + webHandlerV1("/wallet/seed", walletSeedHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsInsecureWalletSeed}, + }) + webHandlerV2("/wallet/seed/verify", http.HandlerFunc(walletVerifySeedHandler), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + + webHandlerV1("/wallet/unload", walletUnloadHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV1("/wallet/encrypt", walletEncryptHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV1("/wallet/decrypt", walletDecryptHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + webHandlerV2("/wallet/recover", walletRecoverHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsWallet}, + }) + + // Blockchain interface + webHandlerV1("/blockchain/metadata", blockchainMetadataHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead, EndpointsStatus}, + }) + webHandlerV1("/blockchain/progress", blockchainProgressHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead, EndpointsStatus}, + }) + webHandlerV1("/block", blockHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + webHandlerV1("/blocks", blocksHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + http.MethodPost: {EndpointsRead}, + }) + webHandlerV1("/last_blocks", lastBlocksHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + + // Network stats endpoints + webHandlerV1("/network/connection", connectionHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead, EndpointsStatus}, + }) + webHandlerV1("/network/connections", connectionsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead, EndpointsStatus}, + }) + webHandlerV1("/network/defaultConnections", defaultConnectionsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead, EndpointsStatus}, + }) + webHandlerV1("/network/connections/trust", trustConnectionsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead, EndpointsStatus}, + }) + webHandlerV1("/network/connections/exchange", exchgConnectionsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead, EndpointsStatus}, + }) + + // Network admin endpoints + webHandlerV1("/network/connection/disconnect", disconnectHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsNetCtrl}, + }) + + // Transaction related endpoints + webHandlerV1("/pendingTxs", pendingTxnsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + webHandlerV1("/transaction", transactionHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + webHandlerV2("/transaction", transactionHandlerV2(gateway), map[string][]string{ + // http.MethodGet: []string{EndpointsRead}, + http.MethodPost: {EndpointsTransaction}, + }) + webHandlerV2("/transaction/verify", verifyTxnHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsRead}, + }) + webHandlerV1("/transactions", transactionsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + http.MethodPost: {EndpointsRead}, + }) + webHandlerV1("/transactions/num", transactionsNumHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + + webHandlerV2("/transactions", transactionsHandlerV2(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + webHandlerV1("/injectTransaction", injectTransactionHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsTransaction, EndpointsWallet}, + }) + webHandlerV1("/resendUnconfirmedTxns", resendUnconfirmedTxnsHandler(gateway), map[string][]string{ + http.MethodPost: {EndpointsTransaction, EndpointsWallet}, + }) + webHandlerV1("/rawtx", rawTxnHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + + // Unspent output related endpoints + webHandlerV1("/outputs", outputsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + http.MethodPost: {EndpointsRead}, + }) + webHandlerV1("/balance", balanceHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + http.MethodPost: {EndpointsRead}, + }) + webHandlerV1("/uxout", uxOutHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + webHandlerV1("/address_uxouts", addrUxOutsHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + + // Address related endpoints + webHandlerV2("/address/verify", http.HandlerFunc(addressVerifyHandler), map[string][]string{ + http.MethodPost: {EndpointsRead}, + }) + + // Explorer endpoints + webHandlerV1("/coinSupply", coinSupplyHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + webHandlerV1("/richlist", richlistHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + webHandlerV1("/addresscount", addressCountHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsRead}, + }) + + // Storage endpoint + webHandlerV2("/data", storageHandler(gateway), map[string][]string{ + http.MethodGet: {EndpointsStorage}, + http.MethodPost: {EndpointsStorage}, + http.MethodDelete: {EndpointsStorage}, + }) + + return mux +} + +// newIndexHandler returns a http.Handler for index.html, where index.html is in appLoc +func newIndexHandler(appLoc string, enableGUI bool) http.Handler { + // Serves the main page + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if !enableGUI { + wh.Error404(w, "") + return + } + + if r.URL.Path != "/" { + wh.Error404(w, "") + return + } + + if r.URL.Path == "/" { + page := filepath.Join(appLoc, indexPage) + logger.Debugf("Serving index page: %s", page) + http.ServeFile(w, r, page) + } + }) +} + +// splitCommaString splits a string separated by commas or whitespace into tokens +// and returns an array of unique tokens split from that string +func splitCommaString(s string) []string { + words := strings.FieldsFunc(s, func(r rune) bool { + return r == ',' || unicode.IsSpace(r) + }) + + // Deduplicate + var dedupWords []string + wordsMap := make(map[string]struct{}) + for _, w := range words { + if _, ok := wordsMap[w]; !ok { + dedupWords = append(dedupWords, w) + } + wordsMap[w] = struct{}{} + } + + return dedupWords +} + +// parseAddressesFromStr parses comma-separated addresses string into []cipher.Address +func parseAddressesFromStr(s string) ([]cipher.Address, error) { + addrsStr := splitCommaString(s) + + addrs := make([]cipher.Address, len(addrsStr)) + for i, s := range addrsStr { + a, err := cipher.DecodeBase58Address(s) + if err != nil { + return nil, fmt.Errorf("address %q is invalid: %v", s, err) + } + + addrs[i] = a + } + + return addrs, nil +} + +func parseSortOrderFromStr(s string) (visor.SortOrder, error) { + if s == "" { + return visor.AscOrder, nil + } + + s = strings.ToUpper(strings.TrimSpace(s)) + switch s { + case "ASC": + return visor.AscOrder, nil + case "DESC": + return visor.DescOrder, nil + default: + return visor.UnknownOrder, errors.New("Unknown sort order") + } +} + +// parseAddressesFromStr parses comma-separated hashes string into []cipher.SHA256 +func parseHashesFromStr(s string) ([]cipher.SHA256, error) { + hashesStr := splitCommaString(s) + + hashes := make([]cipher.SHA256, len(hashesStr)) + for i, s := range hashesStr { + h, err := cipher.SHA256FromHex(s) + if err != nil { + return nil, fmt.Errorf("SHA256 hash %q is invalid: %v", s, err) + } + + hashes[i] = h + } + + return hashes, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/middleware.go b/vendor/github.com/skycoin/skycoin/src/api/middleware.go new file mode 100644 index 000000000..e92c56d4d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/middleware.go @@ -0,0 +1,208 @@ +package api + +import ( + "crypto/subtle" + "fmt" + "net/http" + "net/url" + "strings" + + "github.com/skycoin/skycoin/src/cipher" + wh "github.com/skycoin/skycoin/src/util/http" + "github.com/skycoin/skycoin/src/util/iputil" +) + +// ContentSecurityPolicy represents the value of content-security-policy +// header in http response +const ContentSecurityPolicy = "default-src 'self'" + + "; connect-src 'self' https://api.coinpaprika.com https://swaplab.cc https://version.skycoin.com https://downloads.skycoin.com http://127.0.0.1:9510" + + "; img-src 'self' 'unsafe-inline' data:" + + "; style-src 'self' 'unsafe-inline'" + + "; object-src 'none'" + + "; form-action 'none'" + + "; frame-ancestors 'none'" + + "; block-all-mixed-content" + + "; base-uri 'self'" + +// CSPHandler sets the Content-Security-Policy header +func CSPHandler(handler http.Handler, policy string) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Security-Policy", policy) + handler.ServeHTTP(w, r) + }) +} + +// ContentTypeJSONRequired enforces Content-Type: application/json in a POST request. +// Return 415 Unsupported Media Type if the Content-Type is not application/json, +// in the V2 error format. +func ContentTypeJSONRequired(handler http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == http.MethodPost { + contentType := r.Header.Get("Content-Type") + if !isContentTypeJSON(contentType) { + resp := NewHTTPErrorResponse(http.StatusUnsupportedMediaType, "") + writeHTTPResponse(w, resp) + return + } + } + + handler.ServeHTTP(w, r) + }) +} + +// isContentTypeJSON returns true if the content type is application/json, +// allowing the content-type string to include extra parameters like charset=utf-8, +// for example `Content-Type: application/json; charset=utf-8` will return true. +func isContentTypeJSON(contentType string) bool { + return contentType == ContentTypeJSON || strings.HasPrefix(contentType, ContentTypeJSON+";") +} + +// HostCheck checks that the request's Host header is 127.0.0.1:$port or localhost:$port +// if the HTTP interface host is also a localhost address. +// This prevents DNS rebinding attacks, where an attacker uses a DNS rebinding service +// to bypass CORS checks. +// If the HTTP interface host is not a localhost address, +// the Host header is not checked. This is considered a public interface. +// If the Host header is not set, it is not checked. +// All major browsers send the Host header as required by the HTTP spec. +// hostWhitelist allows additional Host header values to be accepted. +func HostCheck(host string, hostWhitelist []string, handler http.Handler) http.Handler { + return hostCheck(apiVersion1, host, hostWhitelist, handler) +} + +func hostCheck(apiVersion, host string, hostWhitelist []string, handler http.Handler) http.Handler { + addr := host + var port uint16 + if strings.Contains(host, ":") { + var err error + addr, port, err = iputil.SplitAddr(host) + if err != nil { + logger.Panic(err) + } + } + + isLocalhost := iputil.IsLocalhost(addr) + + if isLocalhost && port == 0 { + logger.Panic("localhost with no port specified is unsupported") + } + + hostWhitelistMap := make(map[string]struct{}, len(hostWhitelist)+2) + for _, k := range hostWhitelist { + hostWhitelistMap[k] = struct{}{} + } + hostWhitelistMap[fmt.Sprintf("127.0.0.1:%d", port)] = struct{}{} + hostWhitelistMap[fmt.Sprintf("localhost:%d", port)] = struct{}{} + + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + // NOTE: The "Host" header is not in http.Request.Header, it's put in the http.Request.Host field + _, isWhitelisted := hostWhitelistMap[r.Host] + if isLocalhost && r.Host != "" && !isWhitelisted { + logger.Critical().Errorf("Detected DNS rebind attempt - configured-host=%s header-host=%s", host, r.Host) + writeError(w, apiVersion, http.StatusForbidden, "Invalid Host") + return + } + + handler.ServeHTTP(w, r) + }) +} + +// OriginRefererCheck checks the Origin header if present, falling back on Referer. +// The Origin or Referer hostname must match the configured host. +// If neither are present, the request is allowed. All major browsers will set +// at least one of these values. If neither are set, assume it is a request +// from curl/wget. +func OriginRefererCheck(host string, hostWhitelist []string, handler http.Handler) http.Handler { + return originRefererCheck(apiVersion1, host, hostWhitelist, handler) +} + +func originRefererCheck(apiVersion, host string, hostWhitelist []string, handler http.Handler) http.Handler { + hostWhitelistMap := make(map[string]struct{}, len(hostWhitelist)+2) + for _, k := range hostWhitelist { + hostWhitelistMap[k] = struct{}{} + } + + if addr, port, _ := iputil.SplitAddr(host); iputil.IsLocalhost(addr) { //nolint:errcheck + hostWhitelistMap[fmt.Sprintf("127.0.0.1:%d", port)] = struct{}{} + hostWhitelistMap[fmt.Sprintf("localhost:%d", port)] = struct{}{} + } else { + hostWhitelistMap[host] = struct{}{} + } + + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + origin := r.Header.Get("Origin") + referer := r.Header.Get("Referer") + toCheck := origin + toCheckHeader := "Origin" + if toCheck == "" { + toCheck = referer + toCheckHeader = "Referer" + } + + if toCheck != "" { + u, err := url.Parse(toCheck) + if err != nil { + logger.Critical().Errorf("Invalid URL in %s header: %s %v", toCheckHeader, toCheck, err) + writeError(w, apiVersion, http.StatusForbidden, "Invalid URL in Origin or Referer header") + return + } + + if _, isWhitelisted := hostWhitelistMap[u.Host]; !isWhitelisted { + logger.Critical().Errorf("%s header value %s does not match host and is not whitelisted", toCheckHeader, toCheck) + writeError(w, apiVersion, http.StatusForbidden, "Invalid Origin or Referer") + return + } + } + + handler.ServeHTTP(w, r) + }) +} + +func basicAuth(apiVersion, username, password, realm string, f http.Handler) http.HandlerFunc { + needsAuth := username != "" || password != "" + usernamePasswordHash := cipher.SumSHA256(append([]byte(username), []byte(password)...)) + authHeader := fmt.Sprintf("Basic realm=%q", realm) + + return func(w http.ResponseWriter, r *http.Request) { + user, pass, ok := r.BasicAuth() + + if needsAuth { + if !ok { + w.Header().Set("WWW-Authenticate", authHeader) + writeError(w, apiVersion, http.StatusUnauthorized, "") + return + } + + userPassHash := cipher.SumSHA256(append([]byte(user), []byte(pass)...)) + + if subtle.ConstantTimeCompare(userPassHash[:], usernamePasswordHash[:]) != 1 { + w.Header().Set("WWW-Authenticate", authHeader) + writeError(w, apiVersion, http.StatusUnauthorized, "") + return + } + } else { + // If auth is not configured but the request provides auth, reject + // This will avoid a mistake where the daemon is not configured with auth, + // but the client is, and does not realize the daemon is not configured with auth + // because all requests are accepted + if user != "" || pass != "" { + w.Header().Set("WWW-Authenticate", authHeader) + writeError(w, apiVersion, http.StatusUnauthorized, "") + return + } + } + + f.ServeHTTP(w, r) + } +} + +func writeError(w http.ResponseWriter, apiVersion string, code int, msg string) { + switch apiVersion { + case apiVersion1: + wh.ErrorXXX(w, code, msg) + case apiVersion2: + writeHTTPResponse(w, NewHTTPErrorResponse(code, msg)) + default: + wh.Error500(w, "Invalid internal API version") + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/network.go b/vendor/github.com/skycoin/skycoin/src/api/network.go new file mode 100644 index 000000000..384f8191c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/network.go @@ -0,0 +1,228 @@ +package api + +// APIs for network-related information + +import ( + "fmt" + "net/http" + "sort" + "strconv" + "strings" + + "github.com/skycoin/skycoin/src/daemon" + "github.com/skycoin/skycoin/src/readable" + wh "github.com/skycoin/skycoin/src/util/http" +) + +// connectionHandler returns a specific connection +// URI: /api/v1/network/connections +// Method: GET +// Args: +// addr - An IP:Port string +func connectionHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + addr := r.FormValue("addr") + if addr == "" { + wh.Error400(w, "addr is required") + return + } + + c, err := gateway.GetConnection(addr) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + if c == nil { + wh.Error404(w, "") + return + } + + wh.SendJSONOr500(logger, w, readable.NewConnection(c)) + } +} + +// Connections wraps []Connection +type Connections struct { + Connections []readable.Connection `json:"connections"` +} + +// NewConnections copies []daemon.Connection to a struct with json tags +func NewConnections(dconns []daemon.Connection) Connections { + conns := make([]readable.Connection, len(dconns)) + for i, dc := range dconns { + conns[i] = readable.NewConnection(&dc) + } + + return Connections{ + Connections: conns, + } +} + +// connectionsHandler returns all outgoing connections +// URI: /api/v1/network/connections +// Method: GET +// Args: +// states: [optional] comma-separated list of connection states ("pending", "connected" or "introduced"). Defaults to "connected,introduced" +// direction: [optional] "outgoing" or "incoming". If not provided, both are included. +func connectionsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + formStates := r.FormValue("states") + statesMap := make(map[daemon.ConnectionState]struct{}, 3) + if formStates != "" { + states := strings.Split(formStates, ",") + for _, s := range states { + switch daemon.ConnectionState(s) { + case daemon.ConnectionStatePending, + daemon.ConnectionStateConnected, + daemon.ConnectionStateIntroduced: + statesMap[daemon.ConnectionState(s)] = struct{}{} + default: + wh.Error400(w, fmt.Sprintf("Invalid state in states. Valid states are %q, %q or %q", daemon.ConnectionStatePending, daemon.ConnectionStateConnected, daemon.ConnectionStateIntroduced)) + return + } + } + } + + // "connected" and "introduced" are the defaults, if not specified + if len(statesMap) == 0 { + statesMap[daemon.ConnectionStateConnected] = struct{}{} + statesMap[daemon.ConnectionStateIntroduced] = struct{}{} + } + + direction := r.FormValue("direction") + switch direction { + case "incoming", "outgoing", "": + default: + wh.Error400(w, "Invalid direction. Valid directions are \"outgoing\" or \"incoming\"") + return + } + + conns, err := gateway.GetConnections(func(c daemon.Connection) bool { + switch direction { + case "outgoing": + if !c.Outgoing { + return false + } + case "incoming": + if c.Outgoing { + return false + } + } + + if _, ok := statesMap[c.State]; !ok { + return false + } + + return true + }) + + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, NewConnections(conns)) + } +} + +// defaultConnectionsHandler returns the list of default hardcoded bootstrap addresses. +// They are not necessarily connected to. +// URI: /api/v1/network/defaultConnections +// Method: GET +func defaultConnectionsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + conns := gateway.GetDefaultConnections() + sort.Strings(conns) + + wh.SendJSONOr500(logger, w, conns) + } +} + +// trustConnectionsHandler returns all trusted connections +// In the default configuration, these will be a subset of the default hardcoded bootstrap addresses +// URI: /api/v1/network/trust +// Method: GET +func trustConnectionsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + conns := gateway.GetTrustConnections() + sort.Strings(conns) + + wh.SendJSONOr500(logger, w, conns) + } +} + +// exchgConnectionsHandler returns all connections found through peer exchange +// URI: /api/v1/network/exchange +// Method: GET +func exchgConnectionsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + conns := gateway.GetExchgConnection() + sort.Strings(conns) + + wh.SendJSONOr500(logger, w, conns) + } +} + +// disconnectHandler disconnects a connection by ID or address +// URI: /api/v1/network/connection/disconnect +// Method: POST +// Args: +// id: ID of the connection +func disconnectHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + formID := r.FormValue("id") + if formID == "" { + wh.Error400(w, "id is required") + return + } + + id, err := strconv.ParseUint(formID, 10, 64) + if err != nil || id == 0 { // gnet IDs are non-zero + wh.Error400(w, "invalid id") + return + } + + if err := gateway.DisconnectByGnetID(uint64(id)); err != nil { + switch err { + case daemon.ErrConnectionNotExist: + wh.Error404(w, "") + default: + wh.Error500(w, err.Error()) + } + return + } + + wh.SendJSONOr500(logger, w, struct{}{}) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/outputs.go b/vendor/github.com/skycoin/skycoin/src/api/outputs.go new file mode 100644 index 000000000..9e672e8ea --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/outputs.go @@ -0,0 +1,77 @@ +package api + +import ( + "fmt" + "net/http" + + "github.com/skycoin/skycoin/src/readable" + wh "github.com/skycoin/skycoin/src/util/http" + "github.com/skycoin/skycoin/src/visor" +) + +// outputsHandler returns UxOuts filtered by a set of addresses or a set of hashes +// URI: /api/v1/outputs +// Method: GET, POST +// Args: +// addrs: comma-separated list of addresses +// hashes: comma-separated list of uxout hashes +// If neither addrs nor hashes are specificed, return all unspent outputs. +// If only one filter is specified, then return outputs match the filter. +// Both filters cannot be specified. +func outputsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet && r.Method != http.MethodPost { + wh.Error405(w) + return + } + + addrStr := r.FormValue("addrs") + hashStr := r.FormValue("hashes") + + if addrStr != "" && hashStr != "" { + wh.Error400(w, "addrs and hashes cannot be specified together") + return + } + + var filters []visor.OutputsFilter + + if addrStr != "" { + addrs, err := parseAddressesFromStr(addrStr) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + if len(addrs) > 0 { + filters = append(filters, visor.FbyAddresses(addrs)) + } + } + + if hashStr != "" { + hashes, err := parseHashesFromStr(hashStr) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + if len(hashes) > 0 { + filters = append(filters, visor.FbyHashes(hashes)) + } + } + + summary, err := gateway.GetUnspentOutputsSummary(filters) + if err != nil { + err = fmt.Errorf("gateway.GetUnspentOutputsSummary failed: %v", err) + wh.Error500(w, err.Error()) + return + } + + rSummary, err := readable.NewUnspentOutputsSummary(summary) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, rSummary) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/spend.go b/vendor/github.com/skycoin/skycoin/src/api/spend.go new file mode 100644 index 000000000..3fd3a2ae8 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/spend.go @@ -0,0 +1,748 @@ +package api + +import ( + "encoding/json" + "errors" + "fmt" + "net/http" + "strconv" + + "github.com/shopspring/decimal" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/transaction" + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/util/fee" + wh "github.com/skycoin/skycoin/src/util/http" + "github.com/skycoin/skycoin/src/util/mathutil" + "github.com/skycoin/skycoin/src/visor" + "github.com/skycoin/skycoin/src/visor/blockdb" + "github.com/skycoin/skycoin/src/wallet" +) + +// CreateTransactionResponse is returned by /wallet/transaction +type CreateTransactionResponse struct { + Transaction CreatedTransaction `json:"transaction"` + EncodedTransaction string `json:"encoded_transaction"` +} + +// NewCreateTransactionResponse creates a CreateTransactionResponse +func NewCreateTransactionResponse(txn *coin.Transaction, inputs []visor.TransactionInput) (*CreateTransactionResponse, error) { + cTxn, err := NewCreatedTransaction(txn, inputs) + if err != nil { + return nil, err + } + + txnHex, err := txn.SerializeHex() + if err != nil { + return nil, err + } + + return &CreateTransactionResponse{ + Transaction: *cTxn, + EncodedTransaction: txnHex, + }, nil +} + +// CreatedTransaction represents a transaction created by /wallet/transaction +type CreatedTransaction struct { + Length uint32 `json:"length"` + Type uint8 `json:"type"` + TxID string `json:"txid"` + InnerHash string `json:"inner_hash"` + Fee string `json:"fee"` + + Sigs []string `json:"sigs"` + In []CreatedTransactionInput `json:"inputs"` + Out []CreatedTransactionOutput `json:"outputs"` +} + +// NewCreatedTransaction returns a CreatedTransaction +func NewCreatedTransaction(txn *coin.Transaction, inputs []visor.TransactionInput) (*CreatedTransaction, error) { + if len(txn.In) != len(inputs) { + return nil, errors.New("len(txn.In) != len(inputs)") + } + + var outputHours uint64 + for _, o := range txn.Out { + var err error + outputHours, err = mathutil.AddUint64(outputHours, o.Hours) + if err != nil { + return nil, err + } + } + + var inputHours uint64 + for _, i := range inputs { + var err error + inputHours, err = mathutil.AddUint64(inputHours, i.CalculatedHours) + if err != nil { + return nil, err + } + } + + if inputHours < outputHours { + return nil, errors.New("inputHours unexpectedly less than output hours") + } + + fee := inputHours - outputHours + + sigs := make([]string, len(txn.Sigs)) + for i, s := range txn.Sigs { + sigs[i] = s.Hex() + } + + txID := txn.Hash() + out := make([]CreatedTransactionOutput, len(txn.Out)) + for i, o := range txn.Out { + co, err := NewCreatedTransactionOutput(o, txID) + if err != nil { + return nil, err + } + out[i] = *co + } + + in := make([]CreatedTransactionInput, len(inputs)) + for i, o := range inputs { + ci, err := NewCreatedTransactionInput(o) + if err != nil { + return nil, err + } + in[i] = *ci + } + + return &CreatedTransaction{ + Length: txn.Length, + Type: txn.Type, + TxID: txID.Hex(), + InnerHash: txn.InnerHash.Hex(), + Fee: fmt.Sprint(fee), + + Sigs: sigs, + In: in, + Out: out, + }, nil +} + +// ToTransaction converts a CreatedTransaction back to a coin.Transaction +func (r *CreatedTransaction) ToTransaction() (*coin.Transaction, error) { + t := coin.Transaction{} + + t.Length = r.Length + t.Type = r.Type + + var err error + t.InnerHash, err = cipher.SHA256FromHex(r.InnerHash) + if err != nil { + return nil, err + } + + sigs := make([]cipher.Sig, len(r.Sigs)) + for i, s := range r.Sigs { + sigs[i], err = cipher.SigFromHex(s) + if err != nil { + return nil, err + } + } + + t.Sigs = sigs + + in := make([]cipher.SHA256, len(r.In)) + for i, n := range r.In { + in[i], err = cipher.SHA256FromHex(n.UxID) + if err != nil { + return nil, err + } + } + + t.In = in + + out := make([]coin.TransactionOutput, len(r.Out)) + for i, o := range r.Out { + addr, err := cipher.DecodeBase58Address(o.Address) + if err != nil { + return nil, err + } + + coins, err := droplet.FromString(o.Coins) + if err != nil { + return nil, err + } + + hours, err := strconv.ParseUint(o.Hours, 10, 64) + if err != nil { + return nil, err + } + + out[i] = coin.TransactionOutput{ + Address: addr, + Coins: coins, + Hours: hours, + } + } + + t.Out = out + + hash, err := cipher.SHA256FromHex(r.TxID) + if err != nil { + return nil, err + } + + if t.Hash() != hash { + return nil, fmt.Errorf("readable.Transaction.Hash %s does not match parsed transaction hash %s", t.Hash().Hex(), hash.Hex()) + } + + return &t, nil +} + +// CreatedTransactionOutput is a transaction output +type CreatedTransactionOutput struct { + UxID string `json:"uxid"` + Address string `json:"address"` + Coins string `json:"coins"` + Hours string `json:"hours"` +} + +// NewCreatedTransactionOutput creates CreatedTransactionOutput +func NewCreatedTransactionOutput(out coin.TransactionOutput, txid cipher.SHA256) (*CreatedTransactionOutput, error) { + coins, err := droplet.ToString(out.Coins) + if err != nil { + return nil, err + } + + return &CreatedTransactionOutput{ + UxID: out.UxID(txid).Hex(), + Address: out.Address.String(), + Coins: coins, + Hours: fmt.Sprint(out.Hours), + }, nil +} + +// CreatedTransactionInput is a verbose transaction input +type CreatedTransactionInput struct { + UxID string `json:"uxid"` + Address string `json:"address,omitempty"` + Coins string `json:"coins,omitempty"` + Hours string `json:"hours,omitempty"` + CalculatedHours string `json:"calculated_hours,omitempty"` + Time uint64 `json:"timestamp,omitempty"` + Block uint64 `json:"block,omitempty"` + TxID string `json:"txid,omitempty"` +} + +// NewCreatedTransactionInput creates CreatedTransactionInput +func NewCreatedTransactionInput(out visor.TransactionInput) (*CreatedTransactionInput, error) { + coins, err := droplet.ToString(out.UxOut.Body.Coins) + if err != nil { + return nil, err + } + + if out.UxOut.Body.SrcTransaction.Null() { + return nil, errors.New("NewCreatedTransactionInput UxOut.SrcTransaction is not initialized") + } + + addr := out.UxOut.Body.Address.String() + hours := fmt.Sprint(out.UxOut.Body.Hours) + calculatedHours := fmt.Sprint(out.CalculatedHours) + txID := out.UxOut.Body.SrcTransaction.Hex() + + return &CreatedTransactionInput{ + UxID: out.UxOut.Hash().Hex(), + Address: addr, + Coins: coins, + Hours: hours, + CalculatedHours: calculatedHours, + Time: out.UxOut.Head.Time, + Block: out.UxOut.Head.BkSeq, + TxID: txID, + }, nil +} + +// createTransactionRequest is sent to POST /api/v2/transaction +type createTransactionRequest struct { + IgnoreUnconfirmed bool `json:"ignore_unconfirmed"` + HoursSelection hoursSelection `json:"hours_selection"` + ChangeAddress *wh.Address `json:"change_address,omitempty"` + To []receiver `json:"to"` + UxOuts []wh.SHA256 `json:"unspents,omitempty"` + Addresses []wh.Address `json:"addresses,omitempty"` +} + +// hoursSelection defines options for hours distribution +type hoursSelection struct { + Type string `json:"type"` + Mode string `json:"mode"` + ShareFactor *decimal.Decimal `json:"share_factor,omitempty"` +} + +// receiver specifies a spend destination +type receiver struct { + Address wh.Address `json:"address"` + Coins wh.Coins `json:"coins"` + Hours *wh.Hours `json:"hours,omitempty"` +} + +// Validate validates createTransactionRequest data +func (r createTransactionRequest) Validate() error { + if r.ChangeAddress != nil && r.ChangeAddress.Null() { + return errors.New("change_address must not be the null address") + } + + switch r.HoursSelection.Type { + case transaction.HoursSelectionTypeAuto: + for i, to := range r.To { + if to.Hours != nil { + return fmt.Errorf("to[%d].hours must not be specified for auto hours_selection.mode", i) + } + } + + switch r.HoursSelection.Mode { + case transaction.HoursSelectionModeShare: + case "": + return errors.New("missing hours_selection.mode") + default: + return errors.New("invalid hours_selection.mode") + } + + case transaction.HoursSelectionTypeManual: + for i, to := range r.To { + if to.Hours == nil { + return fmt.Errorf("to[%d].hours must be specified for manual hours_selection.mode", i) + } + } + + if r.HoursSelection.Mode != "" { + return errors.New("hours_selection.mode cannot be used for manual hours_selection.type") + } + + case "": + return errors.New("missing hours_selection.type") + default: + return errors.New("invalid hours_selection.type") + } + + if r.HoursSelection.ShareFactor == nil { + if r.HoursSelection.Mode == transaction.HoursSelectionModeShare { + return errors.New("missing hours_selection.share_factor when hours_selection.mode is share") + } + } else { + if r.HoursSelection.Mode != transaction.HoursSelectionModeShare { + return errors.New("hours_selection.share_factor can only be used when hours_selection.mode is share") + } + + switch { + case r.HoursSelection.ShareFactor.LessThan(decimal.New(0, 0)): + return errors.New("hours_selection.share_factor cannot be negative") + case r.HoursSelection.ShareFactor.GreaterThan(decimal.New(1, 0)): + return errors.New("hours_selection.share_factor cannot be more than 1") + } + } + + if len(r.UxOuts) != 0 && len(r.Addresses) != 0 { + return errors.New("unspents and addresses cannot be combined") + } + + addressMap := make(map[cipher.Address]struct{}, len(r.Addresses)) + for i, a := range r.Addresses { + if a.Null() { + return fmt.Errorf("addresses[%d] is empty", i) + } + + if _, ok := addressMap[a.Address]; ok { + return errors.New("addresses contains duplicate values") + } + + addressMap[a.Address] = struct{}{} + } + + // Check for duplicate spending uxouts + uxouts := make(map[cipher.SHA256]struct{}, len(r.UxOuts)) + for _, o := range r.UxOuts { + if _, ok := uxouts[o.SHA256]; ok { + return errors.New("unspents contains duplicate values") + } + + uxouts[o.SHA256] = struct{}{} + } + + if len(r.To) == 0 { + return errors.New("to is empty") + } + + for i, to := range r.To { + if to.Address.Null() { + return fmt.Errorf("to[%d].address is empty", i) + } + + if to.Coins == 0 { + return fmt.Errorf("to[%d].coins must not be zero", i) + } + + if to.Coins.Value()%params.UserVerifyTxn.MaxDropletDivisor() != 0 { + return fmt.Errorf("to[%d].coins has too many decimal places", i) + } + } + + // Check for duplicate created outputs, a transaction can't have outputs with + // the same (address, coins, hours) + // Auto mode would distribute hours to the outputs and could hypothetically + // avoid assigning duplicate hours in many cases, but the complexity for doing + // so is very high, so also reject duplicate (address, coins) for auto mode. + outputs := make(map[coin.TransactionOutput]struct{}, len(r.To)) + for _, to := range r.To { + var hours uint64 + if to.Hours != nil { + hours = to.Hours.Value() + } + + txo := coin.TransactionOutput{ + Address: to.Address.Address, + Coins: to.Coins.Value(), + Hours: hours, + } + + if _, ok := outputs[txo]; ok { + return errors.New("to contains duplicate values") + } + + outputs[txo] = struct{}{} + } + + return nil +} + +// TransactionParams converts createTransactionRequest to transaction.Params +func (r createTransactionRequest) TransactionParams() transaction.Params { + to := make([]coin.TransactionOutput, len(r.To)) + for i, t := range r.To { + var hours uint64 + if t.Hours != nil { + hours = t.Hours.Value() + } + + to[i] = coin.TransactionOutput{ + Address: t.Address.Address, + Coins: t.Coins.Value(), + Hours: hours, + } + } + + var changeAddress *cipher.Address + if r.ChangeAddress != nil { + changeAddress = &r.ChangeAddress.Address + } + + return transaction.Params{ + HoursSelection: transaction.HoursSelection{ + Type: r.HoursSelection.Type, + Mode: r.HoursSelection.Mode, + ShareFactor: r.HoursSelection.ShareFactor, + }, + ChangeAddress: changeAddress, + To: to, + } +} + +func (r createTransactionRequest) VisorParams() visor.CreateTransactionParams { + return visor.CreateTransactionParams{ + IgnoreUnconfirmed: r.IgnoreUnconfirmed, + Addresses: r.addresses(), + UxOuts: r.uxOuts(), + } +} + +func (r createTransactionRequest) addresses() []cipher.Address { + if len(r.Addresses) == 0 { + return nil + } + addresses := make([]cipher.Address, len(r.Addresses)) + for i, a := range r.Addresses { + addresses[i] = a.Address + } + return addresses +} + +func (r createTransactionRequest) uxOuts() []cipher.SHA256 { + if len(r.UxOuts) == 0 { + return nil + } + uxouts := make([]cipher.SHA256, len(r.UxOuts)) + for i, o := range r.UxOuts { + uxouts[i] = o.SHA256 + } + return uxouts +} + +// transactionHandlerV2 creates a transaction from provided outputs and parameters +// Method: POST +// URI: /api/v2/transaction +// Args: JSON body +func transactionHandlerV2(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + resp := NewHTTPErrorResponse(http.StatusMethodNotAllowed, "") + writeHTTPResponse(w, resp) + return + } + + var req createTransactionRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + writeHTTPResponse(w, resp) + return + } + + if err := req.Validate(); err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + writeHTTPResponse(w, resp) + return + } + + // Check that addresses or unspents are not empty + // This is not checked in Validate() because POST /api/v1/wallet/transaction + // allows both to be empty + if len(req.Addresses) == 0 && len(req.UxOuts) == 0 { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "one of addresses or unspents must not be empty") + writeHTTPResponse(w, resp) + return + } + + txn, inputs, err := gateway.CreateTransaction(req.TransactionParams(), req.VisorParams()) + if err != nil { + var resp HTTPResponse + switch err.(type) { + case blockdb.ErrUnspentNotExist, transaction.Error, visor.UserError, wallet.Error: + resp = NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + default: + switch err { + case fee.ErrTxnNoFee, fee.ErrTxnInsufficientCoinHours: + resp = NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + default: + resp = NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + } + } + writeHTTPResponse(w, resp) + return + } + + txnResp, err := NewCreateTransactionResponse(txn, inputs) + if err != nil { + resp := NewHTTPErrorResponse(http.StatusInternalServerError, fmt.Sprintf("NewCreateTransactionResponse failed: %v", err)) + writeHTTPResponse(w, resp) + return + } + + writeHTTPResponse(w, HTTPResponse{ + Data: txnResp, + }) + } +} + +// walletCreateTransactionRequest is sent to POST /api/v1/wallet/transaction +type walletCreateTransactionRequest struct { + Unsigned bool `json:"unsigned"` + WalletID string `json:"wallet_id"` + Password string `json:"password"` + createTransactionRequest +} + +// Validate validates walletCreateTransactionRequest data +func (r walletCreateTransactionRequest) Validate() error { + if r.WalletID == "" { + return errors.New("missing wallet_id") + } + + if r.Unsigned && len(r.Password) != 0 { + return errors.New("password must not be used for unsigned transactions") + } + + return r.createTransactionRequest.Validate() +} + +// walletCreateTransactionHandler creates a transaction +// Method: POST +// URI: /api/v1/wallet/transaction +// Args: JSON body +func walletCreateTransactionHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + if !isContentTypeJSON(r.Header.Get("Content-Type")) { + wh.Error415(w) + return + } + + var req walletCreateTransactionRequest + err := json.NewDecoder(r.Body).Decode(&req) + if err != nil { + logger.WithError(err).Error("Invalid create transaction request") + wh.Error400(w, err.Error()) + return + } + + if err := req.Validate(); err != nil { + logger.WithError(err).Error("Invalid create transaction request") + wh.Error400(w, err.Error()) + return + } + + var txn *coin.Transaction + var inputs []visor.TransactionInput + if req.Unsigned { + txn, inputs, err = gateway.WalletCreateTransaction(req.WalletID, req.TransactionParams(), req.VisorParams()) + } else { + txn, inputs, err = gateway.WalletCreateTransactionSigned(req.WalletID, []byte(req.Password), req.TransactionParams(), req.VisorParams()) + } + if err != nil { + switch err.(type) { + case wallet.Error: + switch err { + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + case wallet.ErrWalletNotExist: + wh.Error404(w, err.Error()) + default: + wh.Error400(w, err.Error()) + } + case blockdb.ErrUnspentNotExist, + transaction.Error, + visor.UserError: + wh.Error400(w, err.Error()) + default: + switch err { + case fee.ErrTxnNoFee, + fee.ErrTxnInsufficientCoinHours: + wh.Error400(w, err.Error()) + default: + wh.Error500(w, err.Error()) + } + } + return + } + + txnResp, err := NewCreateTransactionResponse(txn, inputs) + if err != nil { + err = fmt.Errorf("NewCreateTransactionResponse failed: %v", err) + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, txnResp) + } +} + +// WalletSignTransactionRequest is the request body object for /api/v2/wallet/transaction/sign +type WalletSignTransactionRequest struct { + WalletID string `json:"wallet_id"` + Password string `json:"password"` + EncodedTransaction string `json:"encoded_transaction"` + SignIndexes []int `json:"sign_indexes"` +} + +// walletSignTransactionHandler signs an unsigned transaction +// Method: POST +// URI: /api/v2/wallet/transaction/sign +// Args: JSON body +func walletSignTransactionHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + resp := NewHTTPErrorResponse(http.StatusMethodNotAllowed, "") + writeHTTPResponse(w, resp) + return + } + + var req WalletSignTransactionRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + writeHTTPResponse(w, resp) + return + } + + if req.WalletID == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "wallet_id is required") + writeHTTPResponse(w, resp) + return + } + + if req.EncodedTransaction == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "encoded_transaction is required") + writeHTTPResponse(w, resp) + return + } + + txn, err := decodeTxn(req.EncodedTransaction) + if err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, fmt.Sprintf("Decode transaction failed: %v", err)) + writeHTTPResponse(w, resp) + return + } + + // Check that number of sign_indexes does not exceed number of inputs + if len(req.SignIndexes) > len(txn.In) { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "Too many values in sign_indexes") + writeHTTPResponse(w, resp) + return + } + + // Check that values in sign_indexes are in the range of txn inputs + for _, i := range req.SignIndexes { + if i < 0 || i >= len(txn.In) { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "Value in sign_indexes exceeds range of transaction inputs array") + writeHTTPResponse(w, resp) + return + } + } + + // Check for duplicate values in sign_indexes + signIndexesMap := make(map[int]struct{}, len(req.SignIndexes)) + for _, i := range req.SignIndexes { + if _, ok := signIndexesMap[i]; ok { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "Duplicate value in sign_indexes") + writeHTTPResponse(w, resp) + return + } + signIndexesMap[i] = struct{}{} + } + + signedTxn, inputs, err := gateway.WalletSignTransaction(req.WalletID, []byte(req.Password), txn, req.SignIndexes) + if err != nil { + var resp HTTPResponse + switch err.(type) { + case wallet.Error: + switch err { + case wallet.ErrWalletNotExist: + resp = NewHTTPErrorResponse(http.StatusNotFound, err.Error()) + case wallet.ErrWalletAPIDisabled: + resp = NewHTTPErrorResponse(http.StatusForbidden, err.Error()) + default: + resp = NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + } + case transaction.ErrTxnViolatesSoftConstraint, + transaction.ErrTxnViolatesHardConstraint, + transaction.ErrTxnViolatesUserConstraint, + blockdb.ErrUnspentNotExist: + resp = NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + default: + resp = NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + } + writeHTTPResponse(w, resp) + return + } + + txnResp, err := NewCreateTransactionResponse(signedTxn, inputs) + if err != nil { + resp := NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + writeHTTPResponse(w, resp) + return + } + + writeHTTPResponse(w, HTTPResponse{ + Data: txnResp, + }) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/storage.go b/vendor/github.com/skycoin/skycoin/src/api/storage.go new file mode 100644 index 000000000..36b4f9197 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/storage.go @@ -0,0 +1,190 @@ +package api + +import ( + "encoding/json" + "net/http" + + "github.com/skycoin/skycoin/src/kvstorage" +) + +// Dispatches /data endpoint. +// Method: GET, POST, DELETE +// URI: /api/v2/data +func storageHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + switch r.Method { + case http.MethodGet: + getStorageValuesHandler(w, r, gateway) + case http.MethodPost: + addStorageValueHandler(w, r, gateway) + case http.MethodDelete: + removeStorageValueHandler(w, r, gateway) + default: + resp := NewHTTPErrorResponse(http.StatusMethodNotAllowed, "") + writeHTTPResponse(w, resp) + } + } +} + +// serves GET requests for /data enpdoint +func getStorageValuesHandler(w http.ResponseWriter, r *http.Request, gateway Gatewayer) { + storageType := r.FormValue("type") + if storageType == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "type is required") + writeHTTPResponse(w, resp) + return + } + + key := r.FormValue("key") + + if key == "" { + getAllStorageValuesHandler(w, gateway, kvstorage.Type(storageType)) + } else { + getStorageValueHandler(w, gateway, kvstorage.Type(storageType), key) + } +} + +// Returns all existing storage values of a given storage type. +// Args: +// type: storage type to get values from +func getAllStorageValuesHandler(w http.ResponseWriter, gateway Gatewayer, storageType kvstorage.Type) { + data, err := gateway.GetAllStorageValues(kvstorage.Type(storageType)) + if err != nil { + var resp HTTPResponse + switch err { + case kvstorage.ErrStorageAPIDisabled: + resp = NewHTTPErrorResponse(http.StatusForbidden, "") + case kvstorage.ErrNoSuchStorage: + resp = NewHTTPErrorResponse(http.StatusNotFound, "storage is not loaded") + case kvstorage.ErrUnknownKVStorageType: + resp = NewHTTPErrorResponse(http.StatusBadRequest, "unknown storage") + default: + resp = NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + } + writeHTTPResponse(w, resp) + return + } + + writeHTTPResponse(w, HTTPResponse{ + Data: data, + }) +} + +// Returns value from storage of a given type by key. +// Args: +// key: key for a value to be retrieved +func getStorageValueHandler(w http.ResponseWriter, gateway Gatewayer, storageType kvstorage.Type, key string) { + val, err := gateway.GetStorageValue(storageType, key) + if err != nil { + var resp HTTPResponse + switch err { + case kvstorage.ErrStorageAPIDisabled: + resp = NewHTTPErrorResponse(http.StatusForbidden, "") + case kvstorage.ErrNoSuchStorage: + resp = NewHTTPErrorResponse(http.StatusNotFound, "storage is not loaded") + case kvstorage.ErrUnknownKVStorageType: + resp = NewHTTPErrorResponse(http.StatusBadRequest, "unknown storage") + case kvstorage.ErrNoSuchKey: + resp = NewHTTPErrorResponse(http.StatusNotFound, "") + default: + resp = NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + } + writeHTTPResponse(w, resp) + return + } + + writeHTTPResponse(w, HTTPResponse{ + Data: val, + }) +} + +// StorageRequest is the request data for POST /api/v2/data +type StorageRequest struct { + StorageType kvstorage.Type `json:"type"` + Key string `json:"key"` + Val string `json:"val"` +} + +// Adds the value to the storage of a given type +// Args: +// type: storage type +// key: key +// val: value +func addStorageValueHandler(w http.ResponseWriter, r *http.Request, gateway Gatewayer) { + var req StorageRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + writeHTTPResponse(w, resp) + return + } + + if req.StorageType == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "type is required") + writeHTTPResponse(w, resp) + return + } + + if req.Key == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "key is required") + writeHTTPResponse(w, resp) + return + } + + if err := gateway.AddStorageValue(req.StorageType, req.Key, req.Val); err != nil { + var resp HTTPResponse + switch err { + case kvstorage.ErrStorageAPIDisabled: + resp = NewHTTPErrorResponse(http.StatusForbidden, "") + case kvstorage.ErrNoSuchStorage: + resp = NewHTTPErrorResponse(http.StatusNotFound, "storage is not loaded") + case kvstorage.ErrUnknownKVStorageType: + resp = NewHTTPErrorResponse(http.StatusBadRequest, "unknown storage") + default: + resp = NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + } + writeHTTPResponse(w, resp) + return + } + + writeHTTPResponse(w, HTTPResponse{}) +} + +// Removes the value by key from the storage of a given type +// Args: +// type: storage type +// key: key +func removeStorageValueHandler(w http.ResponseWriter, r *http.Request, gateway Gatewayer) { + storageType := r.FormValue("type") + if storageType == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "type is required") + writeHTTPResponse(w, resp) + return + } + + key := r.FormValue("key") + if key == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "key is required") + writeHTTPResponse(w, resp) + return + } + + if err := gateway.RemoveStorageValue(kvstorage.Type(storageType), key); err != nil { + var resp HTTPResponse + switch err { + case kvstorage.ErrStorageAPIDisabled: + resp = NewHTTPErrorResponse(http.StatusForbidden, "") + case kvstorage.ErrNoSuchStorage: + resp = NewHTTPErrorResponse(http.StatusNotFound, "storage is not loaded") + case kvstorage.ErrUnknownKVStorageType: + resp = NewHTTPErrorResponse(http.StatusBadRequest, "unknown storage") + case kvstorage.ErrNoSuchKey: + resp = NewHTTPErrorResponse(http.StatusNotFound, "") + default: + resp = NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + } + writeHTTPResponse(w, resp) + return + } + + writeHTTPResponse(w, HTTPResponse{}) +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/transaction.go b/vendor/github.com/skycoin/skycoin/src/api/transaction.go new file mode 100644 index 000000000..32422c5eb --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/transaction.go @@ -0,0 +1,849 @@ +package api + +import ( + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "net/http" + "sort" + "strconv" + "strings" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/daemon" + "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/transaction" + wh "github.com/skycoin/skycoin/src/util/http" + "github.com/skycoin/skycoin/src/util/mathutil" + "github.com/skycoin/skycoin/src/visor" +) + +// pendingTxnsHandler returns pending (unconfirmed) transactions +// Method: GET +// URI: /api/v1/pendingTxs +// Args: +// verbose: [bool] include verbose transaction input data +func pendingTxnsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + verbose, err := parseBoolFlag(r.FormValue("verbose")) + if err != nil { + wh.Error400(w, "Invalid value for verbose") + return + } + + if verbose { + txns, inputs, err := gateway.GetAllUnconfirmedTransactionsVerbose() + if err != nil { + wh.Error500(w, err.Error()) + return + } + + vb, err := readable.NewUnconfirmedTransactionsVerbose(txns, inputs) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, vb) + } else { + txns, err := gateway.GetAllUnconfirmedTransactions() + if err != nil { + wh.Error500(w, err.Error()) + return + } + + ret, err := readable.NewUnconfirmedTransactions(txns) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, ret) + } + } +} + +// TransactionEncodedResponse represents the data struct of the response to /api/v1/transaction?encoded=1 +type TransactionEncodedResponse struct { + Status readable.TransactionStatus `json:"status"` + Time uint64 `json:"time"` + EncodedTransaction string `json:"encoded_transaction"` +} + +// transactionHandler returns a transaction identified by its txid hash +// Method: GET +// URI: /api/v1/transaction +// Args: +// txid: transaction hash +// verbose: [bool] include verbose transaction input data +// encoded: [bool] return as a raw encoded transaction +func transactionHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + txid := r.FormValue("txid") + if txid == "" { + wh.Error400(w, "txid is empty") + return + } + + verbose, err := parseBoolFlag(r.FormValue("verbose")) + if err != nil { + wh.Error400(w, "Invalid value for verbose") + return + } + + encoded, err := parseBoolFlag(r.FormValue("encoded")) + if err != nil { + wh.Error400(w, "Invalid value for encoded") + return + } + + if verbose && encoded { + wh.Error400(w, "verbose and encoded cannot be combined") + return + } + + h, err := cipher.SHA256FromHex(txid) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + if verbose { + txn, inputs, err := gateway.GetTransactionWithInputs(h) + if err != nil { + wh.Error500(w, err.Error()) + return + } + if txn == nil { + wh.Error404(w, "") + return + } + + rTxn, err := readable.NewTransactionWithStatusVerbose(txn, inputs) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, rTxn) + return + } + + txn, err := gateway.GetTransaction(h) + if err != nil { + wh.Error500(w, err.Error()) + return + } + if txn == nil { + wh.Error404(w, "") + return + } + + if encoded { + txnHex, err := txn.Transaction.SerializeHex() + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, TransactionEncodedResponse{ + EncodedTransaction: txnHex, + Status: readable.NewTransactionStatus(txn.Status), + Time: txn.Time, + }) + return + } + + rTxn, err := readable.NewTransactionWithStatus(txn) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, rTxn) + } +} + +// TransactionsWithStatus array of transaction results +type TransactionsWithStatus struct { + Transactions []readable.TransactionWithStatus `json:"txns"` +} + +// Sort sorts transactions chronologically, using txid for tiebreaking +func (r TransactionsWithStatus) Sort() { + sort.Slice(r.Transactions, func(i, j int) bool { + a := r.Transactions[i] + b := r.Transactions[j] + + if a.Time == b.Time { + return strings.Compare(a.Transaction.Hash, b.Transaction.Hash) < 0 + } + + return a.Time < b.Time + }) +} + +// NewTransactionsWithStatus converts []Transaction to TransactionsWithStatus +func NewTransactionsWithStatus(txns []visor.Transaction) (*TransactionsWithStatus, error) { + txnRlts := make([]readable.TransactionWithStatus, 0, len(txns)) + for _, txn := range txns { + rTxn, err := readable.NewTransactionWithStatus(&txn) + if err != nil { + return nil, err + } + txnRlts = append(txnRlts, *rTxn) + } + + return &TransactionsWithStatus{ + Transactions: txnRlts, + }, nil +} + +// TransactionsWithStatusVerbose array of transaction results +type TransactionsWithStatusVerbose struct { + Transactions []readable.TransactionWithStatusVerbose `json:"txns"` +} + +// Sort sorts transactions chronologically, using txid for tiebreaking +func (r TransactionsWithStatusVerbose) Sort() { + sort.Slice(r.Transactions, func(i, j int) bool { + a := r.Transactions[i] + b := r.Transactions[j] + + if a.Time == b.Time { + return strings.Compare(a.Transaction.Hash, b.Transaction.Hash) < 0 + } + + return a.Time < b.Time + }) +} + +// NewTransactionsWithStatusVerbose converts []Transaction to []TransactionsWithStatusVerbose +func NewTransactionsWithStatusVerbose(txns []visor.Transaction, inputs [][]visor.TransactionInput) (*TransactionsWithStatusVerbose, error) { + if len(txns) != len(inputs) { + return nil, errors.New("NewTransactionsWithStatusVerbose: len(txns) != len(inputs)") + } + + txnRlts := make([]readable.TransactionWithStatusVerbose, len(txns)) + for i, txn := range txns { + rTxn, err := readable.NewTransactionWithStatusVerbose(&txn, inputs[i]) + if err != nil { + return nil, err + } + txnRlts[i] = *rTxn + } + + return &TransactionsWithStatusVerbose{ + Transactions: txnRlts, + }, nil +} + +// Returns transactions that match the filters. +// Method: GET, POST +// URI: /api/v1/transactions +// Args: +// addrs: Comma separated addresses [optional, returns all transactions if no address provided] +// confirmed: Whether the transactions should be confirmed [optional, must be 0 or 1; if not provided, returns all] +// verbose: [bool] include verbose transaction input data +func transactionsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet && r.Method != http.MethodPost { + wh.Error405(w) + return + } + + verbose, err := parseBoolFlag(r.FormValue("verbose")) + if err != nil { + wh.Error400(w, "Invalid value for verbose") + return + } + + // Gets 'addrs' parameter value + addrs, err := parseAddressesFromStr(r.FormValue("addrs")) + if err != nil { + wh.Error400(w, fmt.Sprintf("parse parameter: 'addrs' failed: %v", err)) + return + } + + // Initialize transaction filters + flts := []visor.TxFilter{visor.NewAddrsFilter(addrs)} + + // Gets the 'confirmed' parameter value + confirmedStr := r.FormValue("confirmed") + if confirmedStr != "" { + confirmed, err := strconv.ParseBool(confirmedStr) + if err != nil { + wh.Error400(w, fmt.Sprintf("invalid 'confirmed' value: %v", err)) + return + } + + flts = append(flts, visor.NewConfirmedTxFilter(confirmed)) + } + + if verbose { + txns, inputs, _, err := gateway.GetTransactionsWithInputs(flts, visor.AscOrder, nil) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + rTxns, err := NewTransactionsWithStatusVerbose(txns, inputs) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + rTxns.Sort() + + wh.SendJSONOr500(logger, w, rTxns.Transactions) + } else { + txns, _, err := gateway.GetTransactions(flts, visor.AscOrder, nil) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + rTxns, err := NewTransactionsWithStatus(txns) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + rTxns.Sort() + + wh.SendJSONOr500(logger, w, rTxns.Transactions) + } + } +} + +// Returns total transactions number +// Method: GET +// URI: /api/v1/transactions/num +func transactionsNumHandler(gateway Gatewayer) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + writeError405Response(w) + return + } + num, err := gateway.GetTransactionsNum() + if err != nil { + writeError500Response(w, err.Error()) + return + } + + var rsp = struct { + TxnsTotalNum uint64 `json:"txns_num"` + }{ + num, + } + + wh.SendJSONOr500(logger, w, rsp) + }) +} + +// Returns transactions that match the filters. +// Method: GET +// URI: /api/v2/transactions +// Args: +// addrs: Comma separated addresses [optional, returns all transactions if no address provided] +// confirmed: Whether the transactions should be confirmed [optional, must be 0 or 1; if not provided, returns all] +// verbose: [bool] include verbose transaction input data +// page: Page number +// limit: the number of transactions per page [optional, default to 10, must be <= 100] +// sort: Sort the transactions by block seq. [optional, must be desc or asc]; if not provided, return +// in asc order. +func transactionsHandlerV2(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + writeError405Response(w) + return + } + + verbose, err := parseBoolFlag(r.FormValue("verbose")) + if err != nil { + writeError400Response(w, "invalid value for verbose") + return + } + + // Gets 'addrs' parameter value + addrs, err := parseAddressesFromStr(r.FormValue("addrs")) + if err != nil { + writeError400Response(w, fmt.Sprintf("parse parameter: 'addrs' failed: %v", err)) + return + } + + // Initialize transaction filters + var flts []visor.TxFilter + if len(addrs) > 0 { + flts = append(flts, visor.NewAddrsFilter(addrs)) + } + + // Gets the 'confirmed' parameter value + confirmedStr := r.FormValue("confirmed") + if confirmedStr != "" { + confirmed, err := strconv.ParseBool(confirmedStr) + if err != nil { + writeError400Response(w, fmt.Sprintf("invalid 'confirmed' value: %v", err)) + return + } + + flts = append(flts, visor.NewConfirmedTxFilter(confirmed)) + } + + order, err := parseSortOrderFromStr(r.FormValue("sort")) + if err != nil { + writeError400Response(w, fmt.Sprintf("invalid 'sort' value: %v", err)) + return + } + + var pageSize = visor.DefaultTxnPageSize + pageSizeStr := r.FormValue("limit") + if pageSizeStr != "" { + var err error + pageSize, err = strconv.ParseUint(pageSizeStr, 10, 64) + if err != nil { + writeError400Response(w, fmt.Sprintf("invalid 'limit' value: %v", err)) + return + } + } + + var pageIndex *visor.PageIndex + var currentPage = uint64(1) + pageStr := r.FormValue("page") + if pageStr != "" { + currentPage, err = strconv.ParseUint(pageStr, 10, 64) + if err != nil { + writeError400Response(w, fmt.Sprintf("invalid 'page' value: %v", err)) + return + } + } + + pageIndex, err = visor.NewPageIndex(pageSize, currentPage) + if err != nil { + writeError400Response(w, err.Error()) + return + } + + var resp HTTPResponse + if verbose { + txns, inputs, pages, err := gateway.GetTransactionsWithInputs(flts, order, pageIndex) + if err != nil { + writeError500Response(w, err.Error()) + return + } + + rTxns, err := NewTransactionsWithStatusVerbose(txns, inputs) + if err != nil { + writeError500Response(w, err.Error()) + return + } + + resp.Data = struct { + PageInfo readable.PageInfo `json:"page_info"` + Txns []readable.TransactionWithStatusVerbose `json:"txns"` + }{ + PageInfo: readable.PageInfo{ + TotalPages: pages, + PageSize: pageSize, + CurrentPage: currentPage, + }, + Txns: rTxns.Transactions, + } + writeHTTPResponse(w, resp) + } else { + txns, pages, err := gateway.GetTransactions(flts, order, pageIndex) + if err != nil { + writeError500Response(w, err.Error()) + return + } + + rTxns, err := NewTransactionsWithStatus(txns) + if err != nil { + writeError500Response(w, err.Error()) + return + } + + resp.Data = struct { + PageInfo readable.PageInfo `json:"page_info"` + Txns []readable.TransactionWithStatus `json:"txns"` + }{ + PageInfo: readable.PageInfo{ + TotalPages: pages, + PageSize: pageSize, + CurrentPage: currentPage, + }, + Txns: rTxns.Transactions, + } + writeHTTPResponse(w, resp) + } + } +} + +// InjectTransactionRequest is sent to POST /api/v1/injectTransaction +type InjectTransactionRequest struct { + RawTxn string `json:"rawtx"` + NoBroadcast bool `json:"no_broadcast,omitempty"` +} + +// URI: /api/v1/injectTransaction +// Method: POST +// Content-Type: application/json +// Body: {"rawtx": ""} +// Response: +// 200 - ok, returns the transaction hash in hex as string +// 400 - bad transaction +// 500 - other error +// 503 - network unavailable for broadcasting transaction +func injectTransactionHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + var v InjectTransactionRequest + if err := json.NewDecoder(r.Body).Decode(&v); err != nil { + wh.Error400(w, err.Error()) + return + } + + if v.RawTxn == "" { + wh.Error400(w, "rawtx is required") + return + } + + txn, err := coin.DeserializeTransactionHex(v.RawTxn) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + if v.NoBroadcast { + if err := gateway.InjectTransaction(txn); err != nil { + switch err.(type) { + case transaction.ErrTxnViolatesUserConstraint, + transaction.ErrTxnViolatesHardConstraint, + transaction.ErrTxnViolatesSoftConstraint: + wh.Error400(w, err.Error()) + default: + wh.Error500(w, err.Error()) + } + return + } + } else { + if err := gateway.InjectBroadcastTransaction(txn); err != nil { + switch err.(type) { + case transaction.ErrTxnViolatesUserConstraint, + transaction.ErrTxnViolatesHardConstraint, + transaction.ErrTxnViolatesSoftConstraint: + wh.Error400(w, err.Error()) + default: + if daemon.IsBroadcastFailure(err) { + wh.Error503(w, err.Error()) + } else { + wh.Error500(w, err.Error()) + } + } + return + } + } + + wh.SendJSONOr500(logger, w, txn.Hash().Hex()) + } +} + +// ResendResult the result of rebroadcasting transaction +type ResendResult struct { + Txids []string `json:"txids"` +} + +// NewResendResult creates a ResendResult from a list of transaction ID hashes +func NewResendResult(hashes []cipher.SHA256) ResendResult { + txids := make([]string, len(hashes)) + for i, h := range hashes { + txids[i] = h.Hex() + } + return ResendResult{ + Txids: txids, + } +} + +// URI: /api/v1/resendUnconfirmedTxns +// Method: POST +// Broadcasts all unconfirmed transactions from the unconfirmed transaction pool +// Response: +// 200 - ok, returns the transaction hashes that were resent +// 405 - method not POST +// 500 - other error +// 503 - network unavailable for broadcasting transaction +func resendUnconfirmedTxnsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + hashes, err := gateway.ResendUnconfirmedTxns() + if err != nil { + if daemon.IsBroadcastFailure(err) { + wh.Error503(w, err.Error()) + } else { + wh.Error500(w, err.Error()) + } + return + } + + wh.SendJSONOr500(logger, w, NewResendResult(hashes)) + } +} + +// URI: /api/v1/rawtx +// Method: GET +// Args: +// txid: transaction ID hash +// Returns the hex-encoded byte serialization of a transaction. +// The transaction may be confirmed or unconfirmed. +func rawTxnHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + txid := r.FormValue("txid") + if txid == "" { + wh.Error400(w, "txid is empty") + return + } + + h, err := cipher.SHA256FromHex(txid) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + txn, err := gateway.GetTransaction(h) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + if txn == nil { + wh.Error404(w, "") + return + } + + txnHex, err := txn.Transaction.SerializeHex() + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, txnHex) + } +} + +// VerifyTransactionRequest represents the data struct of the request for /api/v2/transaction/verify +type VerifyTransactionRequest struct { + Unsigned bool `json:"unsigned"` + EncodedTransaction string `json:"encoded_transaction"` +} + +// VerifyTransactionResponse the response data struct for /api/v2/transaction/verify +type VerifyTransactionResponse struct { + Unsigned bool `json:"unsigned"` + Confirmed bool `json:"confirmed"` + Transaction CreatedTransaction `json:"transaction"` +} + +// Decode and verify an encoded transaction +// Method: POST +// URI: /api/v2/transaction/verify +func verifyTxnHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + resp := NewHTTPErrorResponse(http.StatusMethodNotAllowed, "") + writeHTTPResponse(w, resp) + return + } + + var req VerifyTransactionRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + writeHTTPResponse(w, resp) + return + } + + if req.EncodedTransaction == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "encoded_transaction is required") + writeHTTPResponse(w, resp) + return + } + + txn, err := decodeTxn(req.EncodedTransaction) + if err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, fmt.Sprintf("decode transaction failed: %v", err)) + writeHTTPResponse(w, resp) + return + } + + signed := transaction.TxnSigned + if req.Unsigned { + signed = transaction.TxnUnsigned + } + + var resp HTTPResponse + inputs, isTxnConfirmed, err := gateway.VerifyTxnVerbose(txn, signed) + if err != nil { + switch err.(type) { + case transaction.ErrTxnViolatesSoftConstraint, + transaction.ErrTxnViolatesHardConstraint, + transaction.ErrTxnViolatesUserConstraint: + resp.Error = &HTTPError{ + Code: http.StatusUnprocessableEntity, + Message: err.Error(), + } + default: + resp := NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + writeHTTPResponse(w, resp) + return + } + } + + verifyTxnResp := VerifyTransactionResponse{ + Confirmed: isTxnConfirmed, + Unsigned: !txn.IsFullySigned(), + } + + if len(inputs) != len(txn.In) { + inputs = nil + } + verboseTxn, err := newCreatedTransactionFuzzy(txn, inputs) + if err != nil { + resp := NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + writeHTTPResponse(w, resp) + return + } + + verifyTxnResp.Transaction = *verboseTxn + + resp.Data = verifyTxnResp + + if isTxnConfirmed && resp.Error == nil { + resp.Error = &HTTPError{ + Code: http.StatusUnprocessableEntity, + Message: "transaction has been spent", + } + } + + writeHTTPResponse(w, resp) + } +} + +func decodeTxn(encodedTxn string) (*coin.Transaction, error) { + var txn coin.Transaction + b, err := hex.DecodeString(encodedTxn) + if err != nil { + return nil, err + } + + txn, err = coin.DeserializeTransaction(b) + if err != nil { + return nil, err + } + + return &txn, nil +} + +// newCreatedTransactionFuzzy creates a CreatedTransaction but accommodates possibly invalid txn input +func newCreatedTransactionFuzzy(txn *coin.Transaction, inputs []visor.TransactionInput) (*CreatedTransaction, error) { + if len(txn.In) != len(inputs) && len(inputs) != 0 { + return nil, errors.New("len(txn.In) != len(inputs)") + } + + var outputHours uint64 + var feeInvalid bool + for _, o := range txn.Out { + var err error + outputHours, err = mathutil.AddUint64(outputHours, o.Hours) + if err != nil { + feeInvalid = true + } + } + + var inputHours uint64 + for _, i := range inputs { + var err error + inputHours, err = mathutil.AddUint64(inputHours, i.CalculatedHours) + if err != nil { + feeInvalid = true + } + } + + if inputHours < outputHours { + feeInvalid = true + } + + var fee uint64 + if !feeInvalid { + fee = inputHours - outputHours + } + + sigs := make([]string, len(txn.Sigs)) + for i, s := range txn.Sigs { + sigs[i] = s.Hex() + } + + txID := txn.Hash() + out := make([]CreatedTransactionOutput, len(txn.Out)) + for i, o := range txn.Out { + co, err := NewCreatedTransactionOutput(o, txID) + if err != nil { + logger.WithError(err).Error("NewCreatedTransactionOutput failed") + continue + } + out[i] = *co + } + + in := make([]CreatedTransactionInput, len(txn.In)) + if len(inputs) == 0 { + for i, h := range txn.In { + in[i] = CreatedTransactionInput{ + UxID: h.Hex(), + } + } + } else { + for i, o := range inputs { + ci, err := NewCreatedTransactionInput(o) + if err != nil { + logger.WithError(err).Error("NewCreatedTransactionInput failed") + continue + } + in[i] = *ci + } + } + + return &CreatedTransaction{ + Length: txn.Length, + Type: txn.Type, + TxID: txID.Hex(), + InnerHash: txn.InnerHash.Hex(), + Fee: fmt.Sprint(fee), + + Sigs: sigs, + In: in, + Out: out, + }, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/uxout.go b/vendor/github.com/skycoin/skycoin/src/api/uxout.go new file mode 100644 index 000000000..0db7cde90 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/uxout.go @@ -0,0 +1,98 @@ +package api + +import ( + "net/http" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/readable" + wh "github.com/skycoin/skycoin/src/util/http" +) + +// URI: /api/v1/uxout +// Method: GET +// Args: +// uxid: unspent output ID hash +// Returns an unspent output by ID +func uxOutHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + uxid := r.FormValue("uxid") + if uxid == "" { + wh.Error400(w, "uxid is empty") + return + } + + id, err := cipher.SHA256FromHex(uxid) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + uxout, headTime, err := gateway.GetUxOutByID(id) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + if uxout == nil { + wh.Error404(w, "") + return + } + + out, err := readable.NewSpentOutput(uxout, headTime) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, *out) + } +} + +// URI: /api/v1/address_uxouts +// Method: GET +// Args: +// address +// Returns the historical, spent outputs associated with an address +func addrUxOutsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + addr := r.FormValue("address") + if addr == "" { + wh.Error400(w, "address is empty") + return + } + + cipherAddr, err := cipher.DecodeBase58Address(addr) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + uxs, headTime, err := gateway.GetSpentOutputsForAddresses([]cipher.Address{cipherAddr}) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + ret := make([]readable.SpentOutput, 0) + for _, u := range uxs { + out, err := readable.NewSpentOutputs(u, headTime) + if err != nil { + wh.Error400(w, err.Error()) + return + } + ret = append(ret, out...) + } + + wh.SendJSONOr500(logger, w, ret) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/version.go b/vendor/github.com/skycoin/skycoin/src/api/version.go new file mode 100644 index 000000000..86c2a9a0f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/version.go @@ -0,0 +1,22 @@ +package api + +import ( + "net/http" + + "github.com/skycoin/skycoin/src/readable" + wh "github.com/skycoin/skycoin/src/util/http" +) + +// versionHandler returns the application version info +// URI: /api/v1/version +// Method: GET +func versionHandler(bi readable.BuildInfo) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + wh.SendJSONOr500(logger, w, bi) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/api/wallet.go b/vendor/github.com/skycoin/skycoin/src/api/wallet.go new file mode 100644 index 000000000..0943aaf69 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/api/wallet.go @@ -0,0 +1,1175 @@ +package api + +// APIs for wallet-related information + +import ( + "encoding/json" + "errors" + "fmt" + "net/http" + "sort" + "strconv" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip39" + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/readable" + wh "github.com/skycoin/skycoin/src/util/http" + "github.com/skycoin/skycoin/src/wallet" +) + +// UnconfirmedTxnsResponse contains unconfirmed transaction data +type UnconfirmedTxnsResponse struct { + Transactions []readable.UnconfirmedTransactions `json:"transactions"` +} + +// UnconfirmedTxnsVerboseResponse contains verbose unconfirmed transaction data +type UnconfirmedTxnsVerboseResponse struct { + Transactions []readable.UnconfirmedTransactionVerbose `json:"transactions"` +} + +// BalanceResponse address balance summary struct +type BalanceResponse struct { + readable.BalancePair + Addresses readable.AddressBalances `json:"addresses"` +} + +// WalletResponse wallet response struct for http apis +type WalletResponse struct { + Meta readable.WalletMeta `json:"meta"` + Entries []readable.WalletEntry `json:"entries"` +} + +// NewWalletResponse creates WalletResponse struct from wallet.Wallet +func NewWalletResponse(w wallet.Wallet) (*WalletResponse, error) { + var wr WalletResponse + + wr.Meta.Coin = w.Coin() + wr.Meta.Filename = w.Filename() + wr.Meta.Label = w.Label() + wr.Meta.Type = w.Type() + wr.Meta.Version = w.Version() + wr.Meta.CryptoType = w.CryptoType() + wr.Meta.Encrypted = w.IsEncrypted() + wr.Meta.Timestamp = w.Timestamp() + wr.Meta.Temp = w.IsTemp() + + var options []wallet.Option + switch w.Type() { + case wallet.WalletTypeBip44: + bip44Coin := w.Bip44Coin() + if bip44Coin == nil { + return nil, errors.New("Wallet has no Bip44Coin meta data") + } + wr.Meta.Bip44Coin = bip44Coin + + // get entries on both external and change chains + options = append(options, wallet.OptionExternal(), wallet.OptionChange()) + case wallet.WalletTypeXPub: + wr.Meta.XPub = w.XPub() + } + + entries, err := w.GetEntries(options...) + if err != nil { + return nil, fmt.Errorf("failed to get wallet entries: %v", err) + } + wr.Entries = make([]readable.WalletEntry, len(entries)) + + for i, e := range entries { + wr.Entries[i] = readable.WalletEntry{ + Address: e.Address.String(), + Public: e.Public.Hex(), + } + + switch w.Type() { + // Copy these values to another ref to avoid having a pointer + // to an element of Entry which could affect GC of the Entry, + // which could cause retention/copying of secret data in the Entry. + // This is speculative. I don't know if this matters to the go runtime + case wallet.WalletTypeBip44: + childNumber := e.ChildNumber + wr.Entries[i].ChildNumber = &childNumber + change := e.Change + wr.Entries[i].Change = &change + case wallet.WalletTypeXPub: + childNumber := e.ChildNumber + wr.Entries[i].ChildNumber = &childNumber + } + } + + return &wr, nil +} + +// Returns the wallet's balance, both confirmed and predicted. The predicted +// balance is the confirmed balance minus the pending spends. +// URI: /api/v1/wallet/balance +// Method: GET +// Args: +// id: wallet id [required] +func walletBalanceHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + wltID := r.FormValue("id") + if wltID == "" { + wh.Error400(w, "missing wallet id") + return + } + + walletBalance, addressBalances, err := gateway.GetWalletBalance(wltID) + if err != nil { + logger.Errorf("Get wallet balance failed: id: %v, err: %v", wltID, err) + switch err { + case wallet.ErrWalletNotExist: + wh.Error404(w, "") + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + default: + wh.Error500(w, err.Error()) + } + return + } + + wh.SendJSONOr500(logger, w, BalanceResponse{ + BalancePair: readable.NewBalancePair(walletBalance), + Addresses: readable.NewAddressBalances(addressBalances), + }) + } +} + +// Returns the balance of one or more addresses, both confirmed and predicted. The predicted +// balance is the confirmed balance minus the pending spends. +// URI: /api/v1s/balance +// Method: GET, POST +// Args: +// addrs: command separated list of addresses [required] +func balanceHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet && r.Method != http.MethodPost { + wh.Error405(w) + return + } + + addrsParam := r.FormValue("addrs") + addrs, err := parseAddressesFromStr(addrsParam) + if err != nil { + wh.Error400(w, err.Error()) + return + } + + if len(addrs) == 0 { + wh.Error400(w, "addrs is required") + return + } + + bals, err := gateway.GetBalanceOfAddresses(addrs) + if err != nil { + err = fmt.Errorf("gateway.GetBalanceOfAddresses failed: %v", err) + wh.Error500(w, err.Error()) + return + } + + // create map of address to balance + addressBalances := make(readable.AddressBalances, len(addrs)) + for idx, addr := range addrs { + addressBalances[addr.String()] = readable.NewBalancePair(bals[idx]) + } + + var balance wallet.BalancePair + for _, bal := range bals { + var err error + balance.Confirmed, err = balance.Confirmed.Add(bal.Confirmed) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + balance.Predicted, err = balance.Predicted.Add(bal.Predicted) + if err != nil { + wh.Error500(w, err.Error()) + return + } + } + + wh.SendJSONOr500(logger, w, BalanceResponse{ + BalancePair: readable.NewBalancePair(balance), + Addresses: addressBalances, + }) + } +} + +// Loads wallet from seed, will scan ahead N address and +// load addresses till the last one that have coins. +// URI: /api/v1/wallet/create +// Method: POST +// Args: +// seed: wallet seed [required] +// seed-passphrase: wallet seed passphrase [optional, bip44 type wallet only] +// type: wallet type [required, one of "deterministic", "bip44" or "xpub"] +// bip44-coin: BIP44 coin type [optional, defaults to 8000 (skycoin's coin type), only valid if type is "bip44"] +// xpub: xpub key [required for xpub wallets] +// label: wallet label [required] +// scan: the number of addresses to scan ahead for balances [optional, must be > 0] +// encrypt: bool value, whether encrypt the wallet [optional] +// password: password for encrypting wallet [optional, must be provided if "encrypt" is set] +// private-keys: private keys for generating addresses for collection wallets.[optional, multiple keys must be joined with commas] +func walletCreateHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + walletType := r.FormValue("type") + if walletType == "" { + wh.Error400(w, "missing type") + return + } + + seed := r.FormValue("seed") + label := r.FormValue("label") + password := r.FormValue("password") + + defer func() { + password = "" + }() + + var encrypt bool + encryptStr := r.FormValue("encrypt") + if encryptStr != "" { + var err error + encrypt, err = strconv.ParseBool(encryptStr) + if err != nil { + wh.Error400(w, fmt.Sprintf("invalid encrypt value: %v", err)) + return + } + } + + if encrypt && len(password) == 0 { + wh.Error400(w, "missing password") + return + } + + if !encrypt && len(password) > 0 { + wh.Error400(w, "encrypt must be true as password is provided") + return + } + + scanNStr := r.FormValue("scan") + var scanN uint64 + if scanNStr != "" { + var err error + scanN, err = strconv.ParseUint(scanNStr, 10, 64) + if err != nil { + wh.Error400(w, "invalid scan value") + return + } + } + + var bip44Coin *bip44.CoinType + bip44CoinStr := r.FormValue("bip44-coin") + if bip44CoinStr != "" { + if walletType != wallet.WalletTypeBip44 { + wh.Error400(w, "bip44-coin is only valid for bip44 type wallets") + return + } + + bip44CoinInt, err := strconv.ParseUint(bip44CoinStr, 10, 32) + if err != nil { + wh.Error400(w, "invalid bip44-coin value") + return + } + + c := bip44.CoinType(bip44CoinInt) + bip44Coin = &c + } + + secKeys, err := wallet.ParsePrivateKeys(r.FormValue("private-keys")) + if err != nil { + wh.Error400(w, "invalid collection private keys") + return + } + defer func() { + for i := range secKeys { + secKeys[i] = cipher.SecKey{} + } + }() + + wlt, err := gateway.CreateWallet("", wallet.Options{ + Seed: seed, + Label: label, + Encrypt: encrypt, + Password: []byte(password), + ScanN: scanN, + Type: walletType, + SeedPassphrase: r.FormValue("seed-passphrase"), + Bip44Coin: bip44Coin, + XPub: r.FormValue("xpub"), + TF: gateway.TransactionsFinder(), + CollectionPrivateKeys: secKeys, + }) + if err != nil { + switch err.(type) { + case wallet.Error: + switch err { + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + return + default: + wh.Error400(w, err.Error()) + return + } + default: + wh.Error500(w, err.Error()) + return + } + } + + rlt, err := NewWalletResponse(wlt) + if err != nil { + wh.Error500(w, err.Error()) + return + } + wh.SendJSONOr500(logger, w, rlt) + } +} + +// Note: The wallet will not be saved to disk +// Loads wallet from seed temporary in memory, will scan ahead N address and +// load addresses till the last one that have coins. +// URI: /api/v1/wallet/createTemp +// Method: POST +// Args: +// seed: wallet seed [required] +// type: wallet type [required, one of "deterministic", "bip44" or "xpub"] +// bip44-coin: BIP44 coin type [optional, defaults to 8000 (skycoin's coin type), only valid if type is "bip44"] +// xpub: xpub key [required for xpub wallets] +// label: wallet label [required] +// scan: the number of addresses to scan ahead for balances [optional, must be > 0] +// private-keys: private keys for generating addresses for collection wallets.[optional, multiple keys must be joined with commas] +func walletCreateTempHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + walletType := r.FormValue("type") + if walletType == "" { + wh.Error400(w, "missing type") + return + } + + seed := r.FormValue("seed") + label := r.FormValue("label") + + scanNStr := r.FormValue("scan") + var scanN uint64 + if scanNStr != "" { + var err error + scanN, err = strconv.ParseUint(scanNStr, 10, 64) + if err != nil { + wh.Error400(w, "invalid scan value") + return + } + } + + var bip44Coin *bip44.CoinType + bip44CoinStr := r.FormValue("bip44-coin") + if bip44CoinStr != "" { + if walletType != wallet.WalletTypeBip44 { + wh.Error400(w, "bip44-coin is only valid for bip44 type wallets") + return + } + + bip44CoinInt, err := strconv.ParseUint(bip44CoinStr, 10, 32) + if err != nil { + wh.Error400(w, "invalid bip44-coin value") + return + } + + c := bip44.CoinType(bip44CoinInt) + bip44Coin = &c + } + + secKeys, err := wallet.ParsePrivateKeys(r.FormValue("private-keys")) + if err != nil { + wh.Error400(w, "invalid collection private keys") + return + } + defer func() { + for i := range secKeys { + secKeys[i] = cipher.SecKey{} + } + }() + + wlt, err := gateway.CreateWallet("", wallet.Options{ + Temp: true, + Seed: seed, + Label: label, + ScanN: scanN, + Type: walletType, + Bip44Coin: bip44Coin, + XPub: r.FormValue("xpub"), + TF: gateway.TransactionsFinder(), + CollectionPrivateKeys: secKeys, + }) + if err != nil { + switch err.(type) { + case wallet.Error: + switch err { + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + return + default: + wh.Error400(w, err.Error()) + return + } + default: + wh.Error500(w, err.Error()) + return + } + } + + rlt, err := NewWalletResponse(wlt) + if err != nil { + wh.Error500(w, err.Error()) + return + } + wh.SendJSONOr500(logger, w, rlt) + } +} + +// Genreates new addresses +// URI: /api/v1/wallet/newAddress +// Method: POST +// Args: +// id: wallet id [required] +// num: number of address need to create [optional, if not set the default value is 1] +// password: wallet password [optional, must be provided if the wallet is encrypted] +func walletNewAddressesHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + wltID := r.FormValue("id") + if wltID == "" { + wh.Error400(w, "missing wallet id") + return + } + + var opts []wallet.Option + // Compute the number of addresses to create, default is 1 + num := r.FormValue("num") + if num != "" { + n, err := strconv.ParseUint(num, 10, 64) + if err != nil { + wh.Error400(w, "invalid num value") + return + } + opts = append(opts, wallet.OptionGenerateN(n)) + } + + password := r.FormValue("password") + defer func() { + password = "" + }() + + privateKeys, err := wallet.ParsePrivateKeys(r.FormValue("private-keys")) + if err != nil { + wh.Error400(w, "invalid private keys") + return + } + if len(privateKeys) > 0 { + opts = append(opts, wallet.OptionCollectionPrivateKeys(privateKeys)) + } + + addrs, err := gateway.NewAddresses(wltID, []byte(password), opts...) + if err != nil { + switch err { + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + default: + wh.Error400(w, err.Error()) + } + return + } + + var rlt = struct { + Addresses []string `json:"addresses"` + }{} + + for _, a := range addrs { + rlt.Addresses = append(rlt.Addresses, a.String()) + } + + wh.SendJSONOr500(logger, w, rlt) + } +} + +// Scan addresses to find balances +// URI: /api/v1/wallet/scan +// Method: POST +// Args: +// id: wallet id [required] +// num: the number of addresses to scan ahead for balance [optional, must be > 0, default to 20] +// password: wallet password [optional, must be provided is the wallet is encrypted] +func walletScanAddressesHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + wltID := r.FormValue("id") + if wltID == "" { + wh.Error400(w, "missing wallet id") + return + } + + // Get the number of address to scan + num := r.FormValue("num") + var n uint64 = 20 + if num != "" { + var err error + n, err = strconv.ParseUint(num, 10, 64) + if err != nil { + wh.Error400(w, "invalid num value") + return + } + if n <= 0 { + wh.Error400(w, "invalid num value, must be > 0") + return + } + } + + password := r.FormValue("password") + defer func() { + password = "" + }() + + addrs, err := gateway.ScanWalletAddresses(wltID, []byte(password), n) + if err != nil { + switch err { + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + default: + wh.Error400(w, err.Error()) + } + return + } + + var rlt = struct { + Addresses []string `json:"addresses"` + }{} + + for _, a := range addrs { + rlt.Addresses = append(rlt.Addresses, a.String()) + } + + wh.SendJSONOr500(logger, w, rlt) + } +} + +// Update wallet label +// URI: /api/v1/wallet/update +// Method: POST +// Args: +// id: wallet id [required] +// label: the label the wallet will be updated to [required] +func walletUpdateHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + // Update wallet + wltID := r.FormValue("id") + if wltID == "" { + wh.Error400(w, "missing wallet id") + return + } + + label := r.FormValue("label") + if label == "" { + wh.Error400(w, "missing label") + return + } + + if err := gateway.UpdateWalletLabel(wltID, label); err != nil { + logger.Errorf("update wallet label failed: %v", err) + + switch err { + case wallet.ErrWalletNotExist: + wh.Error404(w, "") + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + default: + wh.Error500(w, err.Error()) + } + return + } + + wh.SendJSONOr500(logger, w, "success") + } +} + +// Returns a wallet by id +// URI: /api/v1/wallet +// Method: GET +// Args: +// id: wallet id [required] +func walletHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + wltID := r.FormValue("id") + if wltID == "" { + wh.Error400(w, fmt.Sprintf("missing wallet id")) + return + } + + wlt, err := gateway.GetWallet(wltID) + if err != nil { + switch err { + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + default: + wh.Error400(w, err.Error()) + } + return + } + rlt, err := NewWalletResponse(wlt) + if err != nil { + wh.Error500(w, err.Error()) + return + } + wh.SendJSONOr500(logger, w, rlt) + } +} + +// walletTransactionsHandler returns all unconfirmed transactions for all addresses in a given wallet +// URI: /api/v1/wallet/transactions +// Method: GET +// Args: +// id: wallet id [required] +// verbose: [bool] include verbose transaction input data +func walletTransactionsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + verbose, err := parseBoolFlag(r.FormValue("verbose")) + if err != nil { + wh.Error400(w, "Invalid value for verbose") + return + } + + wltID := r.FormValue("id") + if wltID == "" { + wh.Error400(w, "missing wallet id") + return + } + + handleWalletError := func(err error) { + switch err { + case nil: + case wallet.ErrWalletNotExist: + wh.Error404(w, "") + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + default: + wh.Error500(w, err.Error()) + } + } + + if verbose { + txns, inputs, err := gateway.GetWalletUnconfirmedTransactionsVerbose(wltID) + if err != nil { + logger.Errorf("get wallet unconfirmed transactions verbose failed: %v", err) + handleWalletError(err) + return + } + + vb := make([]readable.UnconfirmedTransactionVerbose, len(txns)) + for i, txn := range txns { + v, err := readable.NewUnconfirmedTransactionVerbose(&txn, inputs[i]) + if err != nil { + wh.Error500(w, err.Error()) + return + } + vb[i] = *v + } + + wh.SendJSONOr500(logger, w, UnconfirmedTxnsVerboseResponse{ + Transactions: vb, + }) + } else { + txns, err := gateway.GetWalletUnconfirmedTransactions(wltID) + if err != nil { + logger.Errorf("get wallet unconfirmed transactions failed: %v", err) + handleWalletError(err) + return + } + + unconfirmedTxns, err := readable.NewUnconfirmedTransactions(txns) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wh.SendJSONOr500(logger, w, UnconfirmedTxnsResponse{ + Transactions: unconfirmedTxns, + }) + } + } +} + +// Returns all loaded wallets +// URI: /api/v1/wallets +// Method: GET +func walletsHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + wlts, err := gateway.GetWallets() + if err != nil { + switch err { + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + default: + wh.Error500(w, err.Error()) + } + return + } + + wrs := make([]*WalletResponse, 0, len(wlts)) + for _, wlt := range wlts { + wr, err := NewWalletResponse(wlt) + if err != nil { + wh.Error500(w, err.Error()) + return + } + + wrs = append(wrs, wr) + } + + sort.Slice(wrs, func(i, j int) bool { + return wrs[i].Meta.Timestamp < wrs[j].Meta.Timestamp + }) + + wh.SendJSONOr500(logger, w, wrs) + } +} + +// WalletFolder struct +type WalletFolder struct { + Address string `json:"address"` +} + +// Returns the wallet directory path +// URI: /api/v1/wallets/folderName +// Method: GET +func walletFolderHandler(s Walleter) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + addr, err := s.WalletDir() + if err != nil { + switch err { + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + default: + wh.Error500(w, err.Error()) + } + return + } + ret := WalletFolder{ + Address: addr, + } + wh.SendJSONOr500(logger, w, ret) + } +} + +// Generates wallet seed +// URI: /api/v1/wallet/newSeed +// Method: GET +// Args: +// entropy: entropy bitsize [optional, default value of 128 will be used if not set] +func newSeedHandler() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + wh.Error405(w) + return + } + + entropyValue := r.FormValue("entropy") + if entropyValue == "" { + entropyValue = "128" + } + + entropyBits, err := strconv.Atoi(entropyValue) + if err != nil { + wh.Error400(w, "invalid entropy") + return + } + + // Entropy bit size can either be 128 or 256 + if entropyBits != 128 && entropyBits != 256 { + wh.Error400(w, "entropy length must be 128 or 256") + return + } + + entropy, err := bip39.NewEntropy(entropyBits) + if err != nil { + err = fmt.Errorf("bip39.NewEntropy failed: %v", err) + wh.Error500(w, err.Error()) + return + } + + mnemonic, err := bip39.NewMnemonic(entropy) + if err != nil { + err = fmt.Errorf("bip39.NewDefaultMnemonic failed: %v", err) + wh.Error500(w, err.Error()) + return + } + + var rlt = struct { + Seed string `json:"seed"` + }{ + mnemonic, + } + wh.SendJSONOr500(logger, w, rlt) + } +} + +// WalletSeedResponse is returned by /api/v1/wallet/seed +type WalletSeedResponse struct { + Seed string `json:"seed"` + SeedPassphrase string `json:"seed_passphrase,omitempty"` +} + +// Returns seed and seed passphrase of wallet of given id +// URI: /api/v1/wallet/seed +// Method: POST +// Args: +// id: wallet id +// password: wallet password +func walletSeedHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + id := r.FormValue("id") + if id == "" { + wh.Error400(w, "missing wallet id") + return + } + + password := r.FormValue("password") + defer func() { + password = "" + }() + + seed, seedPassphrase, err := gateway.GetWalletSeed(id, []byte(password)) + if err != nil { + switch err { + case wallet.ErrMissingPassword, + wallet.ErrWalletNotEncrypted, + wallet.ErrInvalidPassword: + wh.Error400(w, err.Error()) + case wallet.ErrWalletAPIDisabled, wallet.ErrSeedAPIDisabled: + wh.Error403(w, "") + case wallet.ErrWalletNotExist: + wh.Error404(w, "") + default: + wh.Error500(w, err.Error()) + } + return + } + + v := WalletSeedResponse{ + Seed: seed, + SeedPassphrase: seedPassphrase, + } + + wh.SendJSONOr500(logger, w, v) + } +} + +// VerifySeedRequest is the request data for POST /api/v2/wallet/seed/verify +type VerifySeedRequest struct { + Seed string `json:"seed"` +} + +// walletVerifySeedHandler verifies a wallet seed +// Method: POST +// URI: /api/v2/wallet/seed/verify +func walletVerifySeedHandler(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + resp := NewHTTPErrorResponse(http.StatusMethodNotAllowed, "") + writeHTTPResponse(w, resp) + return + } + + var req VerifySeedRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + writeHTTPResponse(w, resp) + return + } + + if req.Seed == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "seed is required") + writeHTTPResponse(w, resp) + return + } + + if err := bip39.ValidateMnemonic(req.Seed); err != nil { + resp := NewHTTPErrorResponse(http.StatusUnprocessableEntity, err.Error()) + writeHTTPResponse(w, resp) + return + } + + writeHTTPResponse(w, HTTPResponse{Data: struct{}{}}) +} + +// Unloads wallet from the wallet service +// URI: /api/v1/wallet/unload +// Method: POST +// Args: +// id: wallet id +func walletUnloadHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + id := r.FormValue("id") + if id == "" { + wh.Error400(w, "missing wallet id") + return + } + + if err := gateway.UnloadWallet(id); err != nil { + switch err { + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + default: + wh.Error500(w, err.Error()) + } + } + } +} + +// Encrypts wallet +// URI: /api/v1/wallet/encrypt +// Method: POST +// Args: +// id: wallet id +// password: wallet password +func walletEncryptHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + id := r.FormValue("id") + if id == "" { + wh.Error400(w, "missing wallet id") + return + } + + password := r.FormValue("password") + defer func() { + password = "" + }() + + wlt, err := gateway.EncryptWallet(id, []byte(password)) + if err != nil { + switch err { + case wallet.ErrWalletEncrypted, + wallet.ErrMissingPassword, + wallet.ErrEncryptTempWallet, + wallet.ErrInvalidPassword: + wh.Error400(w, err.Error()) + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + case wallet.ErrWalletNotExist: + wh.Error404(w, "") + default: + wh.Error500(w, err.Error()) + } + return + } + + // Make sure the sensitive data are wiped + rlt, err := NewWalletResponse(wlt) + if err != nil { + wh.Error500(w, err.Error()) + return + } + wh.SendJSONOr500(logger, w, rlt) + } +} + +// Decrypts wallet +// URI: /api/v1/wallet/decrypt +// Method: POST +// Args: +// id: wallet id +// password: wallet password +func walletDecryptHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + wh.Error405(w) + return + } + + id := r.FormValue("id") + if id == "" { + wh.Error400(w, "missing wallet id") + return + } + + password := r.FormValue("password") + defer func() { + password = "" + }() + + wlt, err := gateway.DecryptWallet(id, []byte(password)) + if err != nil { + switch err { + case wallet.ErrMissingPassword, + wallet.ErrWalletNotEncrypted, + wallet.ErrInvalidPassword: + wh.Error400(w, err.Error()) + case wallet.ErrWalletAPIDisabled: + wh.Error403(w, "") + case wallet.ErrWalletNotExist: + wh.Error404(w, "") + default: + wh.Error500(w, err.Error()) + } + return + } + + rlt, err := NewWalletResponse(wlt) + if err != nil { + wh.Error500(w, err.Error()) + return + } + wh.SendJSONOr500(logger, w, rlt) + } +} + +// WalletRecoverRequest is the request data for POST /api/v2/wallet/recover +type WalletRecoverRequest struct { + ID string `json:"id"` + Seed string `json:"seed"` + SeedPassphrase string `json:"seed_passphrase"` + Password string `json:"password"` +} + +// URI: /api/v2/wallet/recover +// Method: POST +// Args: +// id: wallet id +// seed: wallet seed +// password: [optional] new password +// Recovers an encrypted wallet by providing the seed. +// The first address will be generated from seed and compared to the first address +// of the specified wallet. If they match, the wallet will be regenerated +// with an optional password. +// If the wallet is not encrypted, an error is returned. +func walletRecoverHandler(gateway Gatewayer) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + resp := NewHTTPErrorResponse(http.StatusMethodNotAllowed, "") + writeHTTPResponse(w, resp) + return + } + + var req WalletRecoverRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + resp := NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + writeHTTPResponse(w, resp) + return + } + + if req.ID == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "id is required") + writeHTTPResponse(w, resp) + return + } + + if req.Seed == "" { + resp := NewHTTPErrorResponse(http.StatusBadRequest, "seed is required") + writeHTTPResponse(w, resp) + return + } + + var password []byte + if req.Password != "" { + password = []byte(req.Password) + } + + defer func() { + req.Seed = "" + req.SeedPassphrase = "" + req.Password = "" + password = nil + }() + + wlt, err := gateway.RecoverWallet(req.ID, req.Seed, req.SeedPassphrase, password) + if err != nil { + var resp HTTPResponse + switch err.(type) { + case wallet.Error: + switch err { + case wallet.ErrWalletNotExist: + resp = NewHTTPErrorResponse(http.StatusNotFound, "") + case wallet.ErrWalletAPIDisabled: + resp = NewHTTPErrorResponse(http.StatusForbidden, "") + default: + resp = NewHTTPErrorResponse(http.StatusBadRequest, err.Error()) + } + default: + resp = NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + } + writeHTTPResponse(w, resp) + return + } + + rlt, err := NewWalletResponse(wlt) + if err != nil { + resp := NewHTTPErrorResponse(http.StatusInternalServerError, err.Error()) + writeHTTPResponse(w, resp) + return + } + + writeHTTPResponse(w, HTTPResponse{ + Data: rlt, + }) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/address.go b/vendor/github.com/skycoin/skycoin/src/cipher/address.go new file mode 100644 index 000000000..b5d93275b --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/address.go @@ -0,0 +1,183 @@ +package cipher + +import ( + "errors" + "log" + + "github.com/skycoin/skycoin/src/cipher/base58" +) + +var ( + // ErrAddressInvalidLength Unexpected size of address bytes buffer + ErrAddressInvalidLength = errors.New("Invalid address length") + // ErrAddressInvalidChecksum Computed checksum did not match expected value + ErrAddressInvalidChecksum = errors.New("Invalid checksum") + // ErrAddressInvalidVersion Unsupported address version value + ErrAddressInvalidVersion = errors.New("Address version invalid") + // ErrAddressInvalidPubKey Public key invalid for address + ErrAddressInvalidPubKey = errors.New("Public key invalid for address") + // ErrAddressInvalidFirstByte Invalid first byte in wallet import format string + ErrAddressInvalidFirstByte = errors.New("first byte invalid") + // ErrAddressInvalidLastByte 33rd byte in wallet import format string is invalid + ErrAddressInvalidLastByte = errors.New("invalid 33rd byte") +) + +/* +Addresses are the Ripemd160 of the double SHA256 of the public key +- public key must be in compressed format + +In the block chain the address is 20+1 bytes +- the first byte is the version byte +- the next twenty bytes are RIPMD160(SHA256(SHA256(pubkey))) + +In base 58 format the address is 20+1+4 bytes +- the first 20 bytes are RIPMD160(SHA256(SHA256(pubkey))). +-- this is to allow for any prefix in vanity addresses +- the next byte is the version byte +- the next 4 bytes are a checksum +-- the first 4 bytes of the SHA256 of the 21 bytes that come before + +*/ + +// Checksum 4 bytes +type Checksum [4]byte + +// Addresser defines an interface for cryptocurrency addresses +type Addresser interface { + Bytes() []byte + String() string + Checksum() Checksum + Verify(PubKey) error + Null() bool +} + +// PubKeyRipemd160 returns ripemd160(sha256(sha256(pubkey))) +func PubKeyRipemd160(pubKey PubKey) Ripemd160 { + r1 := SumSHA256(pubKey[:]) + r2 := SumSHA256(r1[:]) + return HashRipemd160(r2[:]) +} + +// Address version is after Key to enable better vanity address generation +// Address struct is a 25 byte with a 20 byte public key hash, 1 byte address +// type and 4 byte checksum. +type Address struct { + Version byte //1 byte + Key Ripemd160 //20 byte pubkey hash +} + +// AddressFromPubKey creates Address from PubKey as ripemd160(sha256(sha256(pubkey))) +func AddressFromPubKey(pubKey PubKey) Address { + return Address{ + Version: 0, + Key: PubKeyRipemd160(pubKey), + } +} + +// AddressFromSecKey generates address from secret key +func AddressFromSecKey(secKey SecKey) (Address, error) { + p, err := PubKeyFromSecKey(secKey) + if err != nil { + return Address{}, err + } + return AddressFromPubKey(p), nil +} + +// MustAddressFromSecKey generates address from secret key, panics on error +func MustAddressFromSecKey(secKey SecKey) Address { + return AddressFromPubKey(MustPubKeyFromSecKey(secKey)) +} + +// DecodeBase58Address creates an Address from its base58 encoding +func DecodeBase58Address(addr string) (Address, error) { + b, err := base58.Decode(addr) + if err != nil { + return Address{}, err + } + return AddressFromBytes(b) +} + +// MustDecodeBase58Address creates an Address from its base58 encoding, panics on error +func MustDecodeBase58Address(addr string) Address { + a, err := DecodeBase58Address(addr) + if err != nil { + log.Panicf("Invalid address %s: %v", addr, err) + } + return a +} + +// AddressFromBytes converts []byte to an Address +func AddressFromBytes(b []byte) (Address, error) { + if len(b) != 20+1+4 { + return Address{}, ErrAddressInvalidLength + } + a := Address{} + copy(a.Key[0:20], b[0:20]) + a.Version = b[20] + + chksum := a.Checksum() + var checksum [4]byte + copy(checksum[0:4], b[21:25]) + + if checksum != chksum { + return Address{}, ErrAddressInvalidChecksum + } + + if a.Version != 0 { + return Address{}, ErrAddressInvalidVersion + } + + return a, nil +} + +// MustAddressFromBytes converts []byte to an Address, panics on error +func MustAddressFromBytes(b []byte) Address { + addr, err := AddressFromBytes(b) + if err != nil { + log.Panic(err) + } + + return addr +} + +// Null returns true if the address is null (0x0000....) +func (addr Address) Null() bool { + return addr == Address{} +} + +// Bytes return address as a byte slice +func (addr Address) Bytes() []byte { + b := make([]byte, 20+1+4) + copy(b[0:20], addr.Key[0:20]) + b[20] = addr.Version + chksum := addr.Checksum() + copy(b[21:25], chksum[0:4]) + return b +} + +// Verify checks that the address appears valid for the public key +func (addr Address) Verify(pubKey PubKey) error { + if addr.Version != 0x00 { + return ErrAddressInvalidVersion + } + + if addr.Key != PubKeyRipemd160(pubKey) { + return ErrAddressInvalidPubKey + } + + return nil +} + +// String address as Base58 encoded string +func (addr Address) String() string { + return string(base58.Encode(addr.Bytes())) +} + +// Checksum returns Address Checksum which is the first 4 bytes of sha256(key+version) +func (addr Address) Checksum() Checksum { + r1 := append(addr.Key[:], []byte{addr.Version}...) + r2 := SumSHA256(r1[:]) + c := Checksum{} + copy(c[:], r2[:len(c)]) + return c +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE b/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE new file mode 100644 index 000000000..9d58fbb4d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE @@ -0,0 +1,24 @@ +MIT License + +Copyright (c) 2017 Denis Subbotin +Copyright (c) 2017 Nika Jones +Copyright (c) 2017 Philip Schlump +Copyright (c) 2019 gz-c + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE_old b/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE_old new file mode 100644 index 000000000..58da01b3f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE_old @@ -0,0 +1,27 @@ +Copyright (c) 2012 ThePiachu. All rights reserved. +Copyright (c) 2019 gz-c, Skycoin developers. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * The name of ThePiachu may not be used to endorse or promote products +derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/README.md b/vendor/github.com/skycoin/skycoin/src/cipher/base58/README.md new file mode 100644 index 000000000..5042659ad --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/README.md @@ -0,0 +1,47 @@ +# Fast Implementation of Base58 encoding + +[![GoDoc](https://godoc.org/github.com/skycoin/skycoin/src/cipher/base58?status.svg)](https://godoc.org/github.com/skycoin/skycoin/src/cipher/base58) + +Fast implementation of base58 encoding in Go. + +This code is a fork of https://github.com/mr-tron/base58 + +Base algorithm is copied from https://github.com/trezor/trezor-crypto/blob/master/base58.c +Which was copied from an older version of libbase58 https://github.com/bitcoin/libbase58 + +## Performance + +Other base58 golang libraries use `big.Int` which has a lot of malloc overhead and shows up as a common bottleneck when profiling. + +This version removes the use of `big.Int`. + +## Usage example + +```go +package main + +import ( + "fmt" + "os" + + "github.com/skycoin/skycoin/src/cipher/base58" +) + +func main() { + encoded := "1QCaxc8hutpdZ62iKZsn1TCG3nh7uPZojq" + bin, err := base58.Decode(encoded) + if err != nil { + fmt.Println("Decode error:", err) + os.Exit(1) + } + + chk := base58.Encode(bin) + if encoded == string(chk) { + fmt.Println("Successfully decoded then re-encoded") + } +} +``` + +## base58-old + +The old base58 code is retained here as a reference and used in tests to compare the output is equivalent. diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58.go b/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58.go new file mode 100644 index 000000000..c18ae5a88 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58.go @@ -0,0 +1,178 @@ +package base58 + +import ( + "errors" + "fmt" +) + +var ( + // ErrInvalidChar Invalid base58 character + ErrInvalidChar = errors.New("Invalid base58 character") + // ErrInvalidString Invalid base58 string + ErrInvalidString = errors.New("Invalid base58 string") +) + +// Alphabet is a a b58 alphabet. +type Alphabet struct { + decode [128]int8 + encode [58]byte +} + +// NewAlphabet creates a new alphabet from the passed string. +// +// It panics if the passed string is not 58 bytes long or isn't valid ASCII. +func NewAlphabet(s string) *Alphabet { + if len(s) != 58 { + panic("base58 alphabets must be 58 bytes long") + } + + ret := &Alphabet{} + + copy(ret.encode[:], s) + + for i := range ret.decode { + ret.decode[i] = -1 + } + for i, b := range ret.encode { + ret.decode[b] = int8(i) + } + + return ret +} + +// btcAlphabet is the bitcoin base58 alphabet. +var btcAlphabet = NewAlphabet("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz") + +// Encode encodes the passed bytes into a base58 encoded string. +func Encode(bin []byte) string { + return fastBase58EncodingAlphabet(bin, btcAlphabet) +} + +// fastBase58EncodingAlphabet encodes the passed bytes into a base58 encoded +// string with the passed alphabet. +func fastBase58EncodingAlphabet(bin []byte, alphabet *Alphabet) string { + binsz := len(bin) + var i, j, zcount, high int + var carry uint32 + + for zcount < binsz && bin[zcount] == 0 { + zcount++ + } + + size := (binsz-zcount)*138/100 + 1 + var buf = make([]uint32, size) + + high = size - 1 + for i = zcount; i < binsz; i++ { + j = size - 1 + for carry = uint32(bin[i]); j > high || carry != 0; j-- { + carry += buf[j] << 8 + buf[j] = carry % 58 + carry /= 58 + } + high = j + } + + for j = 0; j < size && buf[j] == 0; j++ { + } + + var b58 = make([]byte, size-j+zcount) + + if zcount != 0 { + for i = 0; i < zcount; i++ { + b58[i] = '1' + } + } + + for i = zcount; j < size; i++ { + b58[i] = alphabet.encode[buf[j]] + j++ + } + + return string(b58) +} + +// Decode decodes the base58 encoded bytes. +func Decode(str string) ([]byte, error) { + return fastBase58DecodingAlphabet(str, btcAlphabet) +} + +// fastBase58DecodingAlphabet decodes the base58 encoded bytes using the given +// b58 alphabet. +func fastBase58DecodingAlphabet(str string, alphabet *Alphabet) ([]byte, error) { + if len(str) == 0 { + return nil, ErrInvalidString + } + + var ( + t, c uint64 + zmask uint32 + zcount int + + b58u = []rune(str) + b58sz = len(b58u) + + outisz = (b58sz + 3) >> 2 + binu = make([]byte, (b58sz+3)*3) + bytesleft = b58sz & 3 + ) + + if bytesleft > 0 { + zmask = 0xffffffff << uint32(bytesleft*8) + } else { + bytesleft = 4 + } + + var outi = make([]uint32, outisz) + + for i := 0; i < b58sz && b58u[i] == '1'; i++ { + zcount++ + } + + for _, r := range b58u { + if r > 127 { + return nil, ErrInvalidChar + } + if alphabet.decode[r] == -1 { + return nil, ErrInvalidChar + } + + c = uint64(alphabet.decode[r]) + + for j := outisz - 1; j >= 0; j-- { + t = uint64(outi[j])*58 + c + c = (t >> 32) & 0x3f + outi[j] = uint32(t & 0xffffffff) + } + + // Neither of these should occur because the buffer is allocated ourselves + if c > 0 { + return nil, fmt.Errorf("output number too big (carry to the next int32)") + } + + if outi[0]&zmask != 0 { + return nil, fmt.Errorf("output number too big (last int32 filled too far)") + } + } + + var j, cnt int + for j, cnt = 0, 0; j < outisz; j++ { + for mask := byte(bytesleft-1) * 8; mask <= 0x18; mask, cnt = mask-8, cnt+1 { + binu[cnt] = byte(outi[j] >> mask) + } + if j == 0 { + bytesleft = 4 // because it could be less than 4 the first time through + } + } + + for n, v := range binu { + if v > 0 { + start := n - zcount + if start < 0 { + start = 0 + } + return binu[start:cnt], nil + } + } + return binu[:cnt], nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58_old.go b/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58_old.go new file mode 100644 index 000000000..ffa4bca5c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58_old.go @@ -0,0 +1,190 @@ +// Copyright 2011 ThePiachu. All rights reserved. +// Copyright 2019 gz-c, Skycoin developers. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package base58 + +import ( + "errors" + "fmt" + "math/big" +) + +//alphabet used by Bitcoins +var alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" + +var ( + // errInvalidBase58Char Invalid base58 character + errInvalidBase58Char = errors.New("Invalid base58 character") + // errInvalidBase58String Invalid base58 string + errInvalidBase58String = errors.New("Invalid base58 string") + // errInvalidBase58Length Invalid base58 length + errInvalidBase58Length = errors.New("base58 invalid length") +) + +// oldBase58 type to hold the oldBase58 string +type oldBase58 string + +//reverse alphabet used for quckly converting base58 strings into numbers +var revalp = map[string]int{ + "1": 0, "2": 1, "3": 2, "4": 3, "5": 4, "6": 5, "7": 6, "8": 7, "9": 8, "A": 9, + "B": 10, "C": 11, "D": 12, "E": 13, "F": 14, "G": 15, "H": 16, "J": 17, "K": 18, "L": 19, + "M": 20, "N": 21, "P": 22, "Q": 23, "R": 24, "S": 25, "T": 26, "U": 27, "V": 28, "W": 29, + "X": 30, "Y": 31, "Z": 32, "a": 33, "b": 34, "c": 35, "d": 36, "e": 37, "f": 38, "g": 39, + "h": 40, "i": 41, "j": 42, "k": 43, "m": 44, "n": 45, "o": 46, "p": 47, "q": 48, "r": 49, + "s": 50, "t": 51, "u": 52, "v": 53, "w": 54, "x": 55, "y": 56, "z": 57, +} + +// oldHex2Big converts hex to big +func oldHex2Big(b []byte) *big.Int { + answer := big.NewInt(0) + + for i := 0; i < len(b); i++ { + answer.Lsh(answer, 8) + answer.Add(answer, big.NewInt(int64(b[i]))) + } + + return answer +} + +// ToBig convert base58 to big.Int +func (b oldBase58) ToBig() (*big.Int, error) { + answer := new(big.Int) + for i := 0; i < len(b); i++ { + answer.Mul(answer, big.NewInt(58)) //multiply current value by 58 + c, ok := revalp[string(b[i:i+1])] + if !ok { + return nil, errInvalidBase58Char + } + answer.Add(answer, big.NewInt(int64(c))) //add value of the current letter + } + return answer, nil +} + +// ToInt converts base58 to int +func (b oldBase58) ToInt() (int, error) { + answer := 0 + for i := 0; i < len(b); i++ { + answer *= 58 //multiply current value by 58 + c, ok := revalp[string(b[i:i+1])] + if !ok { + return 0, errInvalidBase58Char + } + answer += c //add value of the current letter + } + return answer, nil +} + +//ToHex converts base58 to hex bytes +func (b oldBase58) ToHex() ([]byte, error) { + value, err := b.ToBig() //convert to big.Int + if err != nil { + return nil, err + } + oneCount := 0 + bs := string(b) + if len(bs) == 0 { + return nil, fmt.Errorf("%v - len(bs) == 0", errInvalidBase58String) + } + for bs[oneCount] == '1' { + oneCount++ + if oneCount >= len(bs) { + return nil, fmt.Errorf("%v - oneCount >= len(bs)", errInvalidBase58String) + } + } + //convert big.Int to bytes + return append(make([]byte, oneCount), value.Bytes()...), nil +} + +// Base582Big converts base58 to big +func (b oldBase58) Base582Big() (*big.Int, error) { + answer := new(big.Int) + for i := 0; i < len(b); i++ { + answer.Mul(answer, big.NewInt(58)) //multiply current value by 58 + c, ok := revalp[string(b[i:i+1])] + if !ok { + return nil, errInvalidBase58Char + } + answer.Add(answer, big.NewInt(int64(c))) //add value of the current letter + } + return answer, nil +} + +// Base582Int converts base58 to int +func (b oldBase58) Base582Int() (int, error) { + answer := 0 + for i := 0; i < len(b); i++ { + answer *= 58 //multiply current value by 58 + c, ok := revalp[string(b[i:i+1])] + if !ok { + return 0, errInvalidBase58Char + } + answer += c //add value of the current letter + } + return answer, nil +} + +// oldBase582Hex converts base58 to hex bytes +func oldBase582Hex(b string) ([]byte, error) { + return oldBase58(b).ToHex() +} + +// BitHex converts base58 to hexes used by Bitcoins (keeping the zeroes on the front, 25 bytes long) +func (b oldBase58) BitHex() ([]byte, error) { + value, err := b.ToBig() //convert to big.Int + if err != nil { + return nil, err + } + + tmp := value.Bytes() //convert to hex bytes + if len(tmp) == 25 { //if it is exactly 25 bytes, return + return tmp, nil + } else if len(tmp) > 25 { //if it is longer than 25, return nothing + return nil, errInvalidBase58Length + } + answer := make([]byte, 25) //make 25 byte container + for i := 0; i < len(tmp); i++ { //copy converted bytes + answer[24-i] = tmp[len(tmp)-1-i] + } + return answer, nil +} + +// oldBig2Base58 encodes big.Int to base58 string +func oldBig2Base58(val *big.Int) oldBase58 { + answer := "" + valCopy := new(big.Int).Abs(val) //copies big.Int + + if val.Cmp(big.NewInt(0)) <= 0 { //if it is less than 0, returns empty string + return oldBase58("") + } + + tmpStr := "" + tmp := new(big.Int) + for valCopy.Cmp(big.NewInt(0)) > 0 { //converts the number into base58 + tmp.Mod(valCopy, big.NewInt(58)) //takes modulo 58 value + valCopy.Div(valCopy, big.NewInt(58)) //divides the rest by 58 + tmpStr += alphabet[tmp.Int64() : tmp.Int64()+1] //encodes + } + for i := (len(tmpStr) - 1); i > -1; i-- { + answer += tmpStr[i : i+1] //reverses the order + } + return oldBase58(answer) //returns +} + +// oldHex2Base58 encodes hex bytes into base58 +func oldHex2Base58(val []byte) oldBase58 { + tmp := oldBig2Base58(oldHex2Big(val)) //encoding of the number without zeroes in front + + //looking for zeros at the beginning + i := 0 + for i = 0; val[i] == 0 && i < len(val); i++ { + } + answer := "" + for j := 0; j < i; j++ { //adds zeroes from the front + answer += alphabet[0:1] + } + answer += string(tmp) //concatenates + + return oldBase58(answer) //returns +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip32/LICENSE b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/LICENSE new file mode 100644 index 000000000..23d5c3efc --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2017 Tyler Smith +Copyright (c) 2019 Skycoin Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip32/README.md b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/README.md new file mode 100644 index 000000000..c14868623 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/README.md @@ -0,0 +1,102 @@ +# go-bip32 + +An implementation of the BIP32 spec for Hierarchical Deterministic Bitcoin addresses as a simple Go library. The semantics of derived keys are up to the user. +[BIP43](https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki) and [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) are good schemes to implement with this library. +An additional library for either or both of those on top of this library should be developed. + +Modified for use in Skycoin, derived from https://github.com/tyler-smith/go-bip32 + +## Example + +It's very unlikely, but possible, that a given index does not produce a valid +private key. Error checking is skipped in this example for brevity but should be +handled in real code. In such a case, an error of type `Error` is returned and it's +method `ImpossibleChild()` will return true. + +An example for handling this: + +```go +func tryNewPrivateKeyFromPath() (*bip32.PrivateKey, error) { + k, err := bip32.NewPrivateKeyFromPath([]byte("abc123"), "m/1'/1'/0/1") + if err != nil { + if bip32.IsImpossibleChildError(err) { + fmt.Println("Child number 1 generated an invalid key, use the next child number") + } + return err + } + + return k, nil +} +``` + +Any valid private key will have a valid public key so that `PrivateKey.PublicKey()` +method never returns an error. + +```go +package main + +import ( + "github.com/skycoin/skycoin/src/cipher/bip32" + "github.com/skycoin/skycoin/src/cipher/bip39" + "fmt" + "log" +) + +// Example address creation for a fictitious company ComputerVoice Inc. where +// each department has their own wallet to manage +func main(){ + // Generate a mnemonic to determine all keys from. Don't lose it. + mnemonic := bip39.MustNewDefaultMnemonic() + + // Derivce a seed from the mnemonic + seed, err := bip39.NewSeed(mnemonic, "") + if err != nil { + log.Fatalln("Error generating seed:", err) + } + + // Create master private key from seed + computerVoiceMasterKey, err := bip32.NewMasterKey(seed) + if err != nil { + log.Fatalln("NewMasterKey failed:", err) + } + + // Map departments to keys + // There is a very small chance a given child index is invalid (less than 1 in 2^127) + // If so your real program should handle this by skipping the index + departmentKeys := map[string]*bip32.Key{} + departmentKeys["Sales"], err = computerVoiceMasterKey.NewChildKey(0) + if err != nil { + log.Fatalln("NewChildKey:", err) + } + departmentKeys["Marketing"], err = computerVoiceMasterKey.NewChildKey(1) + if err != nil { + log.Fatalln("NewChildKey:", err) + } + departmentKeys["Engineering"], err = computerVoiceMasterKey.NewChildKey(2) + if err != nil { + log.Fatalln("NewChildKey:", err) + } + departmentKeys["Customer Support"], err = computerVoiceMasterKey.NewChildKey(3) + if err != nil { + log.Fatalln("NewChildKey:", err) + } + + // Create public keys for record keeping, auditors, payroll, etc + departmentAuditKeys := map[string]*bip32.Key{} + departmentAuditKeys["Sales"] = departmentKeys["Sales"].PublicKey() + departmentAuditKeys["Marketing"] = departmentKeys["Marketing"].PublicKey() + departmentAuditKeys["Engineering"] = departmentKeys["Engineering"].PublicKey() + departmentAuditKeys["Customer Support"] = departmentKeys["Customer Support"].PublicKey() + + // Print public keys + for department, pubKey := range departmentAuditKeys { + fmt.Println(department, pubKey) + } +} +``` + +## Thanks + +The developers at [Factom](https://www.factom.com/) have contributed a lot to this library and have made many great improvements to it. Please check out their project(s) and give them a thanks if you use this library. + +Thanks to [bartekn](https://github.com/bartekn) from Stellar for some important bug catches. diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip32/bip32.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/bip32.go new file mode 100644 index 000000000..37dc2ed16 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/bip32.go @@ -0,0 +1,653 @@ +/* +Package bip32 implements the bip32 spec https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki +*/ +package bip32 + +import ( + "bytes" + "crypto/hmac" + "crypto/sha512" + "encoding/binary" + "errors" + "fmt" + "log" + + "github.com/skycoin/skycoin/src/cipher/base58" +) + +const ( + // FirstHardenedChild is the index of the firxt "hardened" child key as per the + // bip32 spec + FirstHardenedChild = uint32(0x80000000) + + // masterKey is the "Key" value specified by bip32 for the master key + masterKey = "Bitcoin seed" +) + +// Error wraps bip32 errors +type Error struct { + error + impossibleChild bool +} + +// NewError creates an Error +func NewError(err error) error { + if err == nil { + log.Panic("NewError called with nil error") + } + return Error{ + error: err, + } +} + +// ImpossibleChild returns true if this error indicates +// that a given child number cannot produce a valid key. +// If the caller receives this error, they should skip this child and go to the next number. +// The probability of this happening is less than 1 in 2^127. +func (err Error) ImpossibleChild() bool { + return err.impossibleChild +} + +// NewImpossibleChildError creates an Error flagged as an ImpossibleChild error +func NewImpossibleChildError(err error, childNumber uint32) error { + if err == nil { + log.Panic("NewImpossibleChildError called with nil error") + } + return Error{ + error: fmt.Errorf("childNumber=%d %v", childNumber, err), + impossibleChild: true, + } +} + +// IsImpossibleChildError returns true if the error is an ImpossibleChild Error +func IsImpossibleChildError(err error) bool { + if err == nil { + return false + } + + switch t := err.(type) { + case Error: + return t.ImpossibleChild() + default: + return false + } +} + +var ( + // PrivateWalletVersion is the version flag for serialized private keys ("xpriv") + PrivateWalletVersion = []byte{0x04, 0x88, 0xAD, 0xE4} + + // PublicWalletVersion is the version flag for serialized public keys ("xpub") + PublicWalletVersion = []byte{0x04, 0x88, 0xB2, 0x1E} + + // ErrSerializedKeyWrongSize is returned when trying to deserialize a key that + // has an incorrect length + ErrSerializedKeyWrongSize = NewError(errors.New("Serialized keys should be exactly 82 bytes")) + + // ErrHardenedChildPublicKey is returned when trying to create a harded child + // of the public key + ErrHardenedChildPublicKey = NewError(errors.New("Can't create hardened child for public key")) + + // ErrInvalidChecksum is returned when deserializing a key with an incorrect checksum + ErrInvalidChecksum = NewError(errors.New("Checksum doesn't match")) + + // ErrDerivedInvalidPrivateKey is returned when an invalid private key was derived + ErrDerivedInvalidPrivateKey = NewError(errors.New("Derived invalid private key")) + + // ErrDerivedInvalidPublicKey is returned when an invalid public key was derived + ErrDerivedInvalidPublicKey = NewError(errors.New("Derived invalid public key")) + + // ErrInvalidPrivateKeyVersion is returned when a deserializing a private key without the 'xprv' prefix + ErrInvalidPrivateKeyVersion = NewError(errors.New("Invalid private key version")) + + // ErrInvalidPublicKeyVersion is returned when a deserializing a public key without the 'xpub' prefix + ErrInvalidPublicKeyVersion = NewError(errors.New("Invalid public key version")) + + // ErrInvalidSeedLength is returned when generating a master key with an invalid number of seed bits + ErrInvalidSeedLength = NewError(errors.New("Invalid master key seed length")) + + // ErrDeserializePrivateFromPublic attempted to deserialize a private key from an encoded public key + ErrDeserializePrivateFromPublic = NewError(errors.New("Cannot deserialize a private key from a public key")) + + // ErrInvalidKeyVersion is returned if the key version is not 'xpub' or 'xprv' + ErrInvalidKeyVersion = NewError(errors.New("Invalid key version")) + + // ErrInvalidFingerprint is returned if a deserialized key has an invalid fingerprint + ErrInvalidFingerprint = NewError(errors.New("Invalid key fingerprint")) + + // ErrInvalidChildNumber is returned if a deserialized key has an invalid child number + ErrInvalidChildNumber = NewError(errors.New("Invalid key child number")) + + // ErrInvalidPrivateKey is returned if a deserialized xprv key's private key is invalid + ErrInvalidPrivateKey = NewError(errors.New("Invalid private key")) + + // ErrInvalidPublicKey is returned if a deserialized xpub key's public key is invalid + ErrInvalidPublicKey = NewError(errors.New("Invalid public key")) + + // ErrMaxDepthReached maximum allowed depth (255) reached for child key + ErrMaxDepthReached = NewError(errors.New("Maximum child depth reached")) +) + +// key represents a bip32 extended key +type key struct { + Version []byte // 4 bytes + Depth byte // 1 bytes + ParentFingerprint []byte // 4 bytes + childNumber []byte // 4 bytes + ChainCode []byte // 32 bytes + Key []byte // 33 bytes for public keys; 32 bytes for private keys +} + +func (k key) ChildNumber() uint32 { + return binary.BigEndian.Uint32(k.childNumber) +} + +func (k key) clone() key { + newK := key{} + newK.Depth = k.Depth + newK.Version = append(newK.Version, k.Version...) + newK.ParentFingerprint = append(newK.ParentFingerprint, k.ParentFingerprint...) + newK.childNumber = append(newK.childNumber, k.childNumber...) + newK.ChainCode = append(newK.ChainCode, k.ChainCode...) + newK.Key = append(newK.Key, k.Key...) + return newK +} + +// PrivateKey represents a bip32 extended private key +type PrivateKey struct { + key +} + +// Clone returns a copy of the private key +func (k PrivateKey) Clone() PrivateKey { + return PrivateKey{key: k.clone()} +} + +// PublicKey represents a bip32 extended public key +type PublicKey struct { + key +} + +// Clone returns a copy of the public key +func (k PublicKey) Clone() PublicKey { + return PublicKey{key: k.clone()} +} + +// NewMasterKey creates a new master extended key from a seed. +// Seed should be between 128 and 512 bits; 256 bits are recommended. +// https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#master-key-generation +func NewMasterKey(seed []byte) (*PrivateKey, error) { + if len(seed) < 16 || len(seed) > 64 { + return nil, ErrInvalidSeedLength + } + + return newMasterKey(seed) +} + +func newMasterKey(seed []byte) (*PrivateKey, error) { + // Generate key and chaincode + hmac := hmac.New(sha512.New, []byte(masterKey)) + if _, err := hmac.Write(seed); err != nil { + log.Panic(err) + } + intermediary := hmac.Sum(nil) + + // Split it into our key and chain code + keyBytes := intermediary[:32] + chainCode := intermediary[32:] + + // Validate key + if err := validatePrivateKey(keyBytes); err != nil { + return nil, err + } + + // Create the key struct + key := &PrivateKey{ + key: key{ + Version: PrivateWalletVersion, + ChainCode: chainCode, + Key: keyBytes, + Depth: 0x0, + childNumber: []byte{0x00, 0x00, 0x00, 0x00}, + ParentFingerprint: []byte{0x00, 0x00, 0x00, 0x00}, + }, + } + + return key, nil +} + +// NewPrivateKeyFromPath returns a private key at a given bip32 path. +// The path must be a full path starting with m/, and the initial seed +// must be provided. +// This method can return an ImpossibleChild error. +func NewPrivateKeyFromPath(seed []byte, p string) (*PrivateKey, error) { + path, err := ParsePath(p) + if err != nil { + return nil, err + } + + k, err := NewMasterKey(seed) + if err != nil { + return nil, err + } + + if len(path.Elements) > 1 { + return k.DeriveSubpath(path.Elements[1:]) + } + + return k, nil +} + +// DeriveSubpath derives a PrivateKey at at bip32 subpath, e.g. `0'/1'/0`. +// The nodes argument must not be empty. +// This method can return an ImpossibleChild error. +func (k *PrivateKey) DeriveSubpath(nodes []PathNode) (*PrivateKey, error) { + if len(nodes) == 0 { + return nil, errors.New("Path nodes array empty when deriving a bip32 subpath") + } + + ck, err := k.newPrivateChildKeyFromPathNode(nodes[0]) + if err != nil { + return nil, err + } + + for _, e := range nodes[1:] { + ck, err = ck.newPrivateChildKeyFromPathNode(e) + if err != nil { + return nil, err + } + } + + return ck, nil +} + +func (k *PrivateKey) newPrivateChildKeyFromPathNode(n PathNode) (*PrivateKey, error) { + if n.Master { + return nil, errors.New("PathNode is Master at a non-zero depth") + } + + return k.NewPrivateChildKey(n.ChildNumber) +} + +// PublicKey returns the public version of key or return a copy +// The 'Neuter' function from the bip32 spec, N((k, c) -> (K, c). +// https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#private-parent-key--public-child-key +func (k *PrivateKey) PublicKey() *PublicKey { + pubKey, err := publicKeyForPrivateKey(k.Key) + if err != nil { + log.Panicf("PrivateKey.PublicKey failed: %v", err) + } + return &PublicKey{ + key: key{ + Version: PublicWalletVersion, + Key: pubKey, + Depth: k.Depth, + childNumber: k.childNumber, + ChainCode: k.ChainCode, + ParentFingerprint: k.ParentFingerprint, + }, + } +} + +// Fingerprint returns the key fingerprint +func (k *PrivateKey) Fingerprint() []byte { + // "Extended keys can be identified by the Hash160 (RIPEMD160 after SHA256) + // of the serialized ECDSA public key K, ignoring the chain code." + return k.PublicKey().Fingerprint() +} + +// Identifier returns the key ID +func (k *PrivateKey) Identifier() []byte { + return k.PublicKey().Identifier() +} + +// Fingerprint returns the key fingerprint +func (k *PublicKey) Fingerprint() []byte { + return fingerprint(k.Key) +} + +// Identifier returns the key ID +func (k *PublicKey) Identifier() []byte { + return identifier(k.Key) +} + +func identifier(key []byte) []byte { + // "Extended keys can be identified by the Hash160 (RIPEMD160 after SHA256) + // of the serialized ECDSA public key K, ignoring the chain code." + + // ripemd160(sha256(key)) + return hash160(key) +} + +func fingerprint(key []byte) []byte { + id := identifier(key) + // "The first 32 bits of the identifier are called the key fingerprint." + return id[:4] +} + +// NewPrivateChildKey derives a private child key from a given parent as outlined by bip32, CDKpriv(). +// https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#private-parent-key--private-child-key +// This method can return an ImpossibleChild error. +func (k *PrivateKey) NewPrivateChildKey(childIdx uint32) (*PrivateKey, error) { + if k.Depth == 0xFF { + return nil, ErrMaxDepthReached + } + + intermediary := k.ckdPrivHMAC(childIdx) + + iL := intermediary[:32] // used for computing the next key + chainCode := intermediary[32:] // iR + + // ki = parse256(IL) + kpar (mod n) + // In case parse256(IL) ≥ n or ki = 0, the resulting key is invalid + newKey, err := addPrivateKeys(iL, k.Key) + if err != nil { + return nil, NewImpossibleChildError(err, childIdx) + } + + return &PrivateKey{ + key: key{ + Version: PrivateWalletVersion, + childNumber: uint32Bytes(childIdx), + ChainCode: chainCode, + Depth: k.Depth + 1, + Key: newKey, + ParentFingerprint: k.Fingerprint(), + }, + }, nil +} + +// NewPublicChildKey derives a public child key from an extended public key, N(CKDpriv()). +// https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#private-parent-key--public-child-key +// This method can return an ImpossibleChild error. +func (k *PrivateKey) NewPublicChildKey(childIdx uint32) (*PublicKey, error) { + k2, err := k.NewPrivateChildKey(childIdx) + if err != nil { + return nil, err + } + return k2.PublicKey(), nil +} + +// NewPublicChildKey derives a public child key from an extended public key, CKDpub(). +// Hardened child keys cannot be derived; the value of childIdx must be less than 2^31. +// https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#public-parent-key--public-child-key +// This method can return an ImpossibleChild error. +func (k *PublicKey) NewPublicChildKey(childIdx uint32) (*PublicKey, error) { + if k.Depth == 0xFF { + return nil, ErrMaxDepthReached + } + + // CKDPub step 1 + intermediary, err := k.ckdPubHMAC(childIdx) + if err != nil { + return nil, err + } + + // CKDPub step 2 + iL := intermediary[:32] // used for computing the next key + + // CKDPub step 3: Ki = point(parse256(IL)) + Kpar + // CKDPub step 5: In case parse256(IL) ≥ n or Ki is the point at infinity, the resulting key is invalid + keyBytes, err := publicKeyForPrivateKey(iL) + if err != nil { + return nil, NewImpossibleChildError(err, childIdx) + } + + // CKDPub step 4 + chainCode := intermediary[32:] // iR + + newKey, err := addPublicKeys(keyBytes[:], k.Key) + if err != nil { + return nil, err + } + + // Create child Key with data common to all both scenarios + return &PublicKey{ + key: key{ + Version: PublicWalletVersion, + childNumber: uint32Bytes(childIdx), + ChainCode: chainCode, + Depth: k.Depth + 1, + Key: newKey, + ParentFingerprint: k.Fingerprint(), + }, + }, nil +} + +// ckdPrivHMAC computes the first step of the CKDPriv function, which computes an HMAC +func (k *key) ckdPrivHMAC(childIdx uint32) []byte { + // Get intermediary to create key and chaincode. + // Hardened children are based on the private key. + // Non-hardened children are based on the public key. + + var data []byte + if childIdx >= FirstHardenedChild { + // Hardened child + // I = HMAC-SHA512(Key = cpar, Data = 0x00 || ser256(kpar) || ser32(i)) + // 0x00 || ser256(kpar) + data = append([]byte{0x0}, k.Key...) + } else { + // Non-hardened child + // I = HMAC-SHA512(Key = cpar, Data = serP(point(kpar)) || ser32(i)) + // The equation below is "convert private key to compressed public key" + // serP(point(kpar)) + var err error + data, err = publicKeyForPrivateKey(k.Key) + if err != nil { + log.Panic(err) + } + } + + // Append the child index as big-endian serialized bytes + // || ser32(i) + childIndexBytes := uint32Bytes(childIdx) + data = append(data, childIndexBytes...) + + // HMAC-SHA512(Key = cpar, Data) + hmac := hmac.New(sha512.New, k.ChainCode) + if _, err := hmac.Write(data); err != nil { + log.Panic(err) + } + + return hmac.Sum(nil) +} + +// ckdPubHMAC computes the first step of the CKDPub function, which computes an HMAC +func (k *key) ckdPubHMAC(childIdx uint32) ([]byte, error) { + // Get intermediary to create key and chaincode. + // Hardened children are based on the private key. + // Non-hardened children are based on the public key. + + if childIdx >= FirstHardenedChild { + // Public keys can't derive hardened child keys + return nil, ErrHardenedChildPublicKey + } + + // I = HMAC-SHA512(Key = cpar, Data = serP(Kpar) || ser32(i)) + + // serP(Kpar) + data := make([]byte, len(k.Key)) + copy(data, k.Key) + + // ser32(i) + childIndexBytes := uint32Bytes(childIdx) + + // serP(Kpar) || ser32(i) + data = append(data, childIndexBytes...) + + // HMAC-SHA512(Key = cpar, Data = serP(Kpar) || ser32(i)) + hmac := hmac.New(sha512.New, k.ChainCode) + if _, err := hmac.Write(data); err != nil { + log.Panic(err) + } + + return hmac.Sum(nil), nil +} + +// Serialize a Key to a 78 byte byte slice +func (k *PrivateKey) Serialize() []byte { + // Private keys should be prepended with a single null byte + return k.serialize(append([]byte{0x0}, k.Key...)) +} + +// Serialize a Key to a 78 byte byte slice +func (k *PublicKey) Serialize() []byte { + return k.serialize(k.Key) +} + +// serialize a Key to a 78 byte byte slice +func (k *key) serialize(key []byte) []byte { + n := len(k.Version) + n++ // k.Depth + n += len(k.ParentFingerprint) + n += len(k.childNumber) + n += len(k.ChainCode) + n += len(key) + + buffer := &bytes.Buffer{} + buffer.Grow(n) + + // Write fields to buffer in order + buffer.Write(k.Version) + buffer.WriteByte(k.Depth) + buffer.Write(k.ParentFingerprint) + buffer.Write(k.childNumber) + buffer.Write(k.ChainCode) + buffer.Write(key) + + // Append the standard doublesha256 checksum + return addChecksumToBytes(buffer.Bytes()) +} + +// String encodes the Key in the standard Bitcoin base58 encoding +func (k *PrivateKey) String() string { + return base58.Encode(k.Serialize()) +} + +// String encodes the Key in the standard Bitcoin base58 encoding +func (k *PublicKey) String() string { + return base58.Encode(k.Serialize()) +} + +// DeserializeEncodedPrivateKey deserializes a base58 xprv key to a PrivateKey +func DeserializeEncodedPrivateKey(xprv string) (*PrivateKey, error) { + b, err := base58.Decode(xprv) + if err != nil { + return nil, err + } + return DeserializePrivateKey(b) +} + +// DeserializePrivateKey deserializes the []byte serialization of a PrivateKey +func DeserializePrivateKey(data []byte) (*PrivateKey, error) { + k, err := deserialize(data, true) + if err != nil { + return nil, err + } + + if len(k.Key) != 32 { + log.Panic("DeserializePrivateKey expected 32 bytes key length") + } + if !bytes.Equal(k.Version, PrivateWalletVersion) { + log.Panic("DeserializePrivateKey expected xprv prefix") + } + + return &PrivateKey{ + key: *k, + }, nil +} + +// DeserializeEncodedPublicKey deserializes a base58 xpub key to a PublicKey +func DeserializeEncodedPublicKey(xpub string) (*PublicKey, error) { + b, err := base58.Decode(xpub) + if err != nil { + return nil, err + } + return DeserializePublicKey(b) +} + +// DeserializePublicKey deserializes the []byte serialization of a PublicKey +func DeserializePublicKey(data []byte) (*PublicKey, error) { + k, err := deserialize(data, false) + if err != nil { + return nil, err + } + + if len(k.Key) != 33 { + log.Panic("DeserializePublicKey expected 33 bytes key length") + } + if !bytes.Equal(k.Version, PublicWalletVersion) { + log.Panic("DeserializePublicKey expected xpub prefix") + } + + return &PublicKey{ + key: *k, + }, nil +} + +// deserialize a byte slice into a Key. +// If the Key.Key length is 32 bytes it is a private key, otherwise it is a public key. +func deserialize(data []byte, wantPrivate bool) (*key, error) { + if len(data) != 82 { + return nil, ErrSerializedKeyWrongSize + } + + // Validate checksum + cs1 := checksum(data[0 : len(data)-4]) + cs2 := data[len(data)-4:] + if !bytes.Equal(cs1, cs2) { + return nil, ErrInvalidChecksum + } + + k := &key{} + k.Version = data[0:4] + k.Depth = data[4] + k.ParentFingerprint = data[5:9] + k.childNumber = data[9:13] + k.ChainCode = data[13:45] + + isPrivate := bytes.Equal(k.Version, PrivateWalletVersion) + isPublic := bytes.Equal(k.Version, PublicWalletVersion) + + if !isPrivate && !isPublic { + return nil, ErrInvalidKeyVersion + } + + if wantPrivate && !isPrivate { + return nil, ErrInvalidPrivateKeyVersion + } + + if !wantPrivate && !isPublic { + return nil, ErrInvalidPublicKeyVersion + } + + // Master keys (depth=0) have an empty fingerprint and a ChildNumber of 0 + if k.Depth == 0 { + var emptyBytes [4]byte + if !bytes.Equal(k.ParentFingerprint, emptyBytes[:]) { + return nil, ErrInvalidFingerprint + } + + if k.ChildNumber() != 0 { + return nil, ErrInvalidChildNumber + } + } + + // Private keys must have a 0 byte prefix padding + if isPrivate { + if data[45] != 0 { + return nil, ErrInvalidPrivateKey + } + k.Key = data[46:78] + if err := validatePrivateKey(k.Key); err != nil { + return nil, ErrInvalidPrivateKey + } + } else { + k.Key = data[45:78] + if err := validatePublicKey(k.Key); err != nil { + return nil, ErrInvalidPublicKey + } + } + + return k, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip32/path.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/path.go new file mode 100644 index 000000000..d95e6af3a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/path.go @@ -0,0 +1,108 @@ +package bip32 + +import ( + "errors" + "log" + "strconv" + "strings" +) + +// Path represents a parsed HD wallet path +type Path struct { + Elements []PathNode +} + +// PathNode is an element of an HD wallet path +type PathNode struct { + Master bool + ChildNumber uint32 +} + +// Hardened returns true if this path node is hardened +func (p PathNode) Hardened() bool { + return p.ChildNumber >= FirstHardenedChild +} + +var ( + // ErrPathNoMaster HD wallet path does not start with m + ErrPathNoMaster = errors.New("Path must start with m") + // ErrPathChildMaster HD wallet path contains m in a child node + ErrPathChildMaster = errors.New("Path contains m as a child node") + // ErrPathNodeNotNumber HD wallet path node is not a valid uint32 number + ErrPathNodeNotNumber = errors.New("Path node is not a valid uint32 number") + // ErrPathNodeNumberTooLarge HD wallet path node is >= 2^31 + ErrPathNodeNumberTooLarge = errors.New("Path node must be less than 2^31") +) + +// ParsePath parses a bip32 HD wallet path. The path must start with m/. +func ParsePath(p string) (*Path, error) { + pts := strings.Split(p, "/") + + path := &Path{ + Elements: []PathNode{ + { + Master: true, + ChildNumber: 0, + }, + }, + } + + for i, x := range pts { + if i == 0 { + if x != "m" { + return nil, ErrPathNoMaster + } + // Path.Elements already initialized with master node + continue + } else if x == "m" { + return nil, ErrPathChildMaster + } + + n, err := parseNode(x) + if err != nil { + return nil, err + } + + path.Elements = append(path.Elements, n) + } + + return path, nil +} + +func parseNode(x string) (PathNode, error) { + // Hardened nodes have an apostrophe ' appended + hardened := false + if strings.HasSuffix(x, "'") { + hardened = true + x = x[:len(x)-1] + } + + // Node element (minus a single trailing apostrophe) must be a valid uint32 number + n, err := strconv.ParseUint(x, 10, 32) + if err != nil { + return PathNode{}, ErrPathNodeNotNumber + } + + // Node number must be <2^31. If hardened, 2^31 will be added to it + if n >= uint64(FirstHardenedChild) { + return PathNode{}, ErrPathNodeNumberTooLarge + } + + nn := uint32(n) + + // Add 2^31 to the base number for hardened nodes + if hardened { + nnn := nn + FirstHardenedChild + + // Sanity check + if nnn < nn { + log.Panic("Unexpected overflow of path number when adjusting hardened child number") + } + nn = nnn + } + + return PathNode{ + Master: false, + ChildNumber: nn, + }, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip32/utils.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/utils.go new file mode 100644 index 000000000..a836bd309 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip32/utils.go @@ -0,0 +1,171 @@ +package bip32 + +import ( + "crypto/sha256" + "encoding/binary" + "fmt" + "log" + "math/big" + + "github.com/skycoin/skycoin/src/cipher/ripemd160" + secp256k1 "github.com/skycoin/skycoin/src/cipher/secp256k1-go" + secp256k1go "github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2" +) + +// +// Hashes +// + +func hashSHA256(data []byte) []byte { + h := sha256.New() + h.Write(data) //nolint:errcheck + return h.Sum(nil) +} + +func hashDoubleSHA256(data []byte) []byte { + hash1 := hashSHA256(data) + hash2 := hashSHA256(hash1) + return hash2 +} + +func hashRipemd160(data []byte) []byte { + h := ripemd160.New() + h.Write(data) //nolint:errcheck + return h.Sum(nil) +} + +func hash160(data []byte) []byte { + hash1 := hashSHA256(data) + hash2 := hashRipemd160(hash1) + return hash2 +} + +// +// Checksum +// + +func checksum(data []byte) []byte { + hash := hashDoubleSHA256(data) + return hash[:4] +} + +func addChecksumToBytes(data []byte) []byte { + checksum := checksum(data) + return append(data, checksum...) +} + +// +// Keys +// + +// publicKeyForPrivateKey converts a private key to a public key. +// Equivalent to `serP(point(k))` in the bip32 spec +func publicKeyForPrivateKey(key []byte) ([]byte, error) { + // From bip32: If parse256(IL) ≥ n, fail + if err := validatePrivateKey(key); err != nil { + return nil, err + } + + b := secp256k1.PubkeyFromSeckey(key) + if b == nil { + log.Panic("publicKeyForPrivateKey: invalid private key") + } + + // From bip32: If Ki == 0 fail + if err := validatePublicKey(b); err != nil { + return nil, err + } + + return b, nil +} + +func addPublicKeys(key, keyPar []byte) ([]byte, error) { + if code := secp256k1.VerifyPubkey(key); code != 1 { + return nil, fmt.Errorf("addPublicKeys: key is invalid, secp256k1.VerifyPubkey error code %d", code) + } + if code := secp256k1.VerifyPubkey(keyPar); code != 1 { + return nil, fmt.Errorf("addPublicKeys: keyPar is invalid, secp256k1.VerifyPubkey error code %d", code) + } + + // expandPublicKey + var pk1, pk2 secp256k1go.XY + if err := pk1.ParsePubkey(key); err != nil { + log.Panicf("addPublicKeys: invalid pubkey1: %v", err) + } + if err := pk2.ParsePubkey(keyPar); err != nil { + log.Panicf("addPublicKeys: invalid pubkey1: %v", err) + } + + // add public keys + pk1.AddXY(&pk2) + + // compress + newKey := pk1.Bytes() + + if code := secp256k1.VerifyPubkey(newKey); code != 1 { + return nil, fmt.Errorf("addPublicKeys: newKey is invalid, secp256k1.VerifyPubkey error code %d", code) + } + + return newKey, nil +} + +// addPrivateKeys computes the CKDPriv equation `parse256(IL) + kpar (mod n)` +// and verifies the result +func addPrivateKeys(key, keyPar []byte) ([]byte, error) { + // From bip32: If parse256(IL) ≥ n, fail + if code := secp256k1.VerifySeckey(key); code != 1 { + return nil, fmt.Errorf("addPrivateKeys: key is invalid, secp256k1.VerifySeckey error code %d", code) + } + if code := secp256k1.VerifySeckey(keyPar); code != 1 { + return nil, fmt.Errorf("addPrivateKeys: keyPar is invalid, secp256k1.VerifySeckey error code %d", code) + } + + var keyInt big.Int + var keyParInt big.Int + keyInt.SetBytes(key) + keyParInt.SetBytes(keyPar) + + // Computes this CKDPriv equation: + // parse256(IL) + kpar (mod n) + keyInt.Add(&keyInt, &keyParInt) + keyInt.Mod(&keyInt, &secp256k1go.TheCurve.Order.Int) + + newKey := secp256k1go.LeftPadBytes(keyInt.Bytes(), 32) + + // From bip32: If ki == 0 fail + if code := secp256k1.VerifySeckey(newKey); code != 1 { + return nil, fmt.Errorf("addPrivateKeys: newKey is invalid, secp256k1.VerifySeckey error code %d", code) + } + + return newKey, nil +} + +// validatePrivateKey verifies that the secret key is not zero and that it is inside the curve +// Corresponds to bip32 spec constraints `parse256(IL) < n && ki != 0` +func validatePrivateKey(key []byte) error { + // VerifySeckey checks that the key is > 0 and inside the curve + if secp256k1.VerifySeckey(key) != 1 { + return ErrDerivedInvalidPrivateKey + } + + return nil +} + +func validatePublicKey(key []byte) error { + if secp256k1.VerifyPubkey(key) != 1 { + return ErrDerivedInvalidPublicKey + } + + return nil +} + +// +// Numerical +// + +// uint32Bytes serializes a uint32 as bytes in big-endian form +func uint32Bytes(i uint32) []byte { + bytes := make([]byte, 4) + binary.BigEndian.PutUint32(bytes, i) + return bytes +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/LICENSE b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/LICENSE new file mode 100644 index 000000000..1dc11de82 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018 Tyler Smith and contributors +Copyright (c) 2018-2019 Skycoin Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/README.md b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/README.md new file mode 100644 index 000000000..6f5ca0fa0 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/README.md @@ -0,0 +1,43 @@ +# bip39 +[![Documentation](https://godoc.org/github.com/skycoin/skycoin/src/cipher/bip39?status.svg)](http://godoc.org/github.com/skycoin/skycoin/src/cipher/bip39) + +A golang implementation of the BIP0039 spec for mnemonic seeds. + +Forked from https://github.com/tyler-smith/go-bip39 to manually vendor the code in the `cipher/` path +and to make some structural modifications. + +## Example + +```go +package main + +import ( + "github.com/skycoin/skycoin/src/cipher/bip39" + "github.com/tyler-smith/go-bip32" + "fmt" +) + +func main(){ + // Generate a mnemonic for memorization or user-friendly seeds + entropy, _ := bip39.NewEntropy(256) + mnemonic, _ := bip39.NewMnemonic(entropy) + + // Generate a Bip32 HD wallet for the mnemonic and a user supplied password + seed := bip39.NewSeed(mnemonic, "Secret Passphrase") + + masterKey, _ := bip32.NewMasterKey(seed) + publicKey := masterKey.PublicKey() + + // Display mnemonic and keys + fmt.Println("Mnemonic: ", mnemonic) + fmt.Println("Master private key: ", masterKey) + fmt.Println("Master public key: ", publicKey) +} +``` + +## Credits + +Wordlists are from the [bip39 spec](https://github.com/bitcoin/bips/tree/master/bip-0039). + +Test vectors are from the standard Python BIP0039 implementation from the +Trezor team: [https://github.com/trezor/python-mnemonic](https://github.com/trezor/python-mnemonic) diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/bip39.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/bip39.go new file mode 100644 index 000000000..cd19b40e6 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/bip39.go @@ -0,0 +1,408 @@ +// Package bip39 is the Golang implementation of the BIP39 spec. +// +// The official BIP39 spec can be found at +// https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki +package bip39 + +import ( + "bytes" + "crypto/sha256" + "crypto/sha512" + "encoding/binary" + "errors" + "fmt" + "math/big" + "strings" + "sync" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip39/wordlists" + + "github.com/skycoin/skycoin/src/cipher/pbkdf2" +) + +var ( + // Some bitwise operands for working with big.Ints + last11BitsMask = big.NewInt(2047) + shift11BitsMask = big.NewInt(2048) + bigOne = big.NewInt(1) + bigTwo = big.NewInt(2) + + // used to isolate the checksum bits from the entropy+checksum byte array + wordLengthChecksumMasksMapping = map[int]*big.Int{ + 12: big.NewInt(15), + 15: big.NewInt(31), + 18: big.NewInt(63), + 21: big.NewInt(127), + 24: big.NewInt(255), + } + // used to use only the desired x of 8 available checksum bits. + // 256 bit (word length 24) requires all 8 bits of the checksum, + // and thus no shifting is needed for it (we would get a divByZero crash if we did) + wordLengthChecksumShiftMapping = map[int]*big.Int{ + 12: big.NewInt(16), + 15: big.NewInt(8), + 18: big.NewInt(4), + 21: big.NewInt(2), + } + + // wordList is the set of words to use + wordList []string + + // wordMap is a reverse lookup map for wordList + wordMap map[string]int + + // wordListMutex is held when changing wordList + // TODO -- make wordList non-global + wordListMutex sync.Mutex +) + +var ( + // ErrInvalidEntropyLength is returned when trying to use an entropy set with + // an invalid size. + ErrInvalidEntropyLength = errors.New("Entropy length must be [128, 256] and a multiple of 32") + + // ErrChecksumIncorrect is returned when entropy has the incorrect checksum. + ErrChecksumIncorrect = errors.New("Mnemonic checksum incorrect") + + // ErrSurroundingWhitespace is returned if a mnemonic sentence has extra whitespace around it + ErrSurroundingWhitespace = errors.New("Mnemonic has extra whitespace around it") + + // ErrInvalidSeparator is returned if the words in a mnemonic sentence are not separated by a single ASCII space + ErrInvalidSeparator = errors.New("Mnemonic must be separated by single spaces") + + // ErrUnknownWord is returned if a mnemonic sentence contains an unrecognized word + ErrUnknownWord = errors.New("Mnemonic contains an unrecognized word") + + // ErrInvalidNumberOfWords is returned if a mnemonic sentence does not have 12, 15, 18, 21 or 24 words + ErrInvalidNumberOfWords = errors.New("Mnemonic must have 12, 15, 18, 21 or 24 words") +) + +func init() { + setWordList(wordlists.English) +} + +// setWordList sets the list of words to use for mnemonics. Currently the list +// that is set is used package-wide. +func setWordList(list []string) { + wordListMutex.Lock() + defer wordListMutex.Unlock() + wordList = list + wordMap = map[string]int{} + for i, v := range wordList { + wordMap[v] = i + } +} + +// getWordList gets the list of words to use for mnemonics. +func getWordList() []string { + wordListMutex.Lock() + defer wordListMutex.Unlock() + return wordList +} + +// getWordIndex gets word index in wordMap. +func getWordIndex(word string) (int, bool) { + wordListMutex.Lock() + defer wordListMutex.Unlock() + idx, ok := wordMap[word] + return idx, ok +} + +// DefaultMnemonicEntropyBitSize is the default bit size for NewDefaultMnemonic's entropy +// TODO -- make 24 word seeds default? (256 bits entropy - recommended for HD wallets) +const DefaultMnemonicEntropyBitSize = 128 + +// NewDefaultMnemonic returns a generated mnemonic using entropy with bitSize 128 +func NewDefaultMnemonic() (string, error) { + entropy, err := NewEntropy(DefaultMnemonicEntropyBitSize) + if err != nil { + return "", err + } + + return NewMnemonic(entropy) +} + +// MustNewDefaultMnemonic returns a generated mnemonic using entropy with bitSize 128 and panics if there is an error +func MustNewDefaultMnemonic() string { + seed, err := NewDefaultMnemonic() + if err != nil { + panic(err) + } + return seed +} + +// NewEntropy will create random entropy bytes +// so long as the requested size bitSize is an appropriate size. +// +// bitSize has to be a multiple of 32 and be within the inclusive range of {128, 256} +func NewEntropy(bitSize int) ([]byte, error) { + err := validateEntropyBitSize(bitSize) + if err != nil { + return nil, err + } + + entropy := cipher.RandByte(bitSize / 8) + return entropy, err +} + +// EntropyFromMnemonic takes a mnemonic generated by this library, +// and returns the input entropy used to generate the given mnemonic. +// An error is returned if the given mnemonic is invalid. +func EntropyFromMnemonic(mnemonic string) ([]byte, error) { + words, err := splitMnemonicWords(mnemonic) + if err != nil { + return nil, err + } + + // Decode the words into a big.Int. + b := big.NewInt(0) + for _, v := range words { + index, found := wordMap[v] + if !found { + // This should have been caught by splitMnemonicWords() + panic(fmt.Sprintf("word %q not found in reverse map", v)) + } + var wordBytes [2]byte + binary.BigEndian.PutUint16(wordBytes[:], uint16(index)) + b = b.Mul(b, shift11BitsMask) + b = b.Or(b, big.NewInt(0).SetBytes(wordBytes[:])) + } + + // Build and add the checksum to the big.Int. + checksum := big.NewInt(0) + checksumMask := wordLengthChecksumMasksMapping[len(words)] + checksum = checksum.And(b, checksumMask) + + b.Div(b, big.NewInt(0).Add(checksumMask, bigOne)) + + // The entropy is the underlying bytes of the big.Int. Any upper bytes of + // all 0's are not returned so we pad the beginning of the slice with empty + // bytes if necessary. + entropy := b.Bytes() + entropy = padByteSlice(entropy, len(words)/3*4) + + // Generate the checksum and compare with the one we got from the mnemonic. + entropyChecksumBytes := computeChecksum(entropy) + entropyChecksum := big.NewInt(int64(entropyChecksumBytes[0])) + if l := len(words); l != 24 { + checksumShift := wordLengthChecksumShiftMapping[l] + entropyChecksum.Div(entropyChecksum, checksumShift) + } + + if checksum.Cmp(entropyChecksum) != 0 { + return nil, ErrChecksumIncorrect + } + + return entropy, nil +} + +// NewMnemonic will return a string consisting of the mnemonic words for +// the given entropy. +// If the provide entropy is invalid, an error will be returned. +func NewMnemonic(entropy []byte) (string, error) { + // Compute some lengths for convenience. + entropyBitLength := len(entropy) * 8 + checksumBitLength := entropyBitLength / 32 + sentenceLength := (entropyBitLength + checksumBitLength) / 11 + + // Validate that the requested size is supported. + err := validateEntropyBitSize(entropyBitLength) + if err != nil { + return "", err + } + + // Add checksum to entropy. + entropy = addChecksum(entropy) + + // Break entropy up into sentenceLength chunks of 11 bits. + // For each word AND mask the rightmost 11 bits and find the word at that index. + // Then bitshift entropy 11 bits right and repeat. + // Add to the last empty slot so we can work with LSBs instead of MSB. + + // Entropy as an int so we can bitmask without worrying about bytes slices. + entropyInt := new(big.Int).SetBytes(entropy) + + // Slice to hold words in. + words := make([]string, sentenceLength) + + // Throw away big.Int for AND masking. + word := big.NewInt(0) + + for i := sentenceLength - 1; i >= 0; i-- { + // Get 11 right most bits and bitshift 11 to the right for next time. + word.And(entropyInt, last11BitsMask) + entropyInt.Div(entropyInt, shift11BitsMask) + + // Get the bytes representing the 11 bits as a 2 byte slice. + wordBytes := padByteSlice(word.Bytes(), 2) + + // Convert bytes to an index and add that word to the list. + words[i] = wordList[binary.BigEndian.Uint16(wordBytes)] + } + + return strings.Join(words, " "), nil +} + +// NewSeed creates a hashed seed output given the mnemonic string and a password. +// An error is returned if the mnemonic is not valid. +func NewSeed(mnemonic string, password string) ([]byte, error) { + if err := ValidateMnemonic(mnemonic); err != nil { + return nil, err + } + + return newSeed(mnemonic, password), nil +} + +// newSeed creates a hashed seed output given a provided string and password. +// No checking is performed to validate that the string provided is a valid mnemonic. +func newSeed(mnemonic, password string) []byte { + return pbkdf2.Key([]byte(mnemonic), []byte("mnemonic"+password), 2048, 64, sha512.New) +} + +// ValidateMnemonic returns an error if a mnemonic is invalid. It can be invalid +// for these reasons: +// - Number of words not a multiple of 3 and not at least 12 or at most 24 words +// - Words are not separated by exactly one ascii space +// - Mnemonic string has leading or trailing whitespace +// - Any word is not present in the wordlist +// - The mnemonic checksum is incorrect +// Note: this only works on ascii wordlists. Japanese, Chinese etc are not supported yet. +func ValidateMnemonic(mnemonic string) error { + words, err := splitMnemonicWords(mnemonic) + if err != nil { + return err + } + + if !isMnemonicChecksumValid(words) { + return ErrChecksumIncorrect + } + + return nil +} + +// splitMnemonicWords attempts to verify that the provided mnemonic is valid. +// Validity is determined by both the number of words being appropriate, +// and that all the words in the mnemonic are present in the word list. +func splitMnemonicWords(mnemonic string) ([]string, error) { + // Make sure no leading/trailing whitespace + if mnemonic != strings.TrimSpace(mnemonic) { + return nil, ErrSurroundingWhitespace + } + + // Create a list of all the words in the mnemonic sentence + words := strings.Split(mnemonic, " ") + + // Detect duplicate whitespace + for _, w := range words { + if w == "" { + return nil, ErrInvalidSeparator + } + } + + numOfWords := len(words) + + // The number of words should be 12, 15, 18, 21 or 24 + if numOfWords%3 != 0 || numOfWords < 12 || numOfWords > 24 { + return nil, ErrInvalidNumberOfWords + } + + // Check if all words belong in the wordlist + for _, word := range words { + if _, ok := wordMap[word]; !ok { + return nil, ErrUnknownWord + } + } + + return words, nil +} + +// isMnemonicChecksumValid validates the checksum value of a mnemonic +func isMnemonicChecksumValid(words []string) bool { + if len(words)%3 != 0 || len(words) < 12 || len(words) > 24 { + panic("invalid number of words") // caller should validate words before passing to this function + } + + var ( + entropyBitSize = len(words) * 11 + checksumBitSize = entropyBitSize % 32 + fullByteSize = (entropyBitSize-checksumBitSize)/8 + 1 + checksumByteSize = fullByteSize - (fullByteSize % 4) + ) + + // Convert word indices to a big.Int representing the entropy. + checksummedEntropy := big.NewInt(0) + modulo := big.NewInt(2048) + for _, v := range words { + index := big.NewInt(int64(wordMap[v])) + checksummedEntropy.Mul(checksummedEntropy, modulo) + checksummedEntropy.Add(checksummedEntropy, index) + } + + // Calculate the unchecksummed entropy so we can validate that the checksum is + // correct. + checksumModulo := big.NewInt(0).Exp(bigTwo, big.NewInt(int64(checksumBitSize)), nil) + rawEntropy := big.NewInt(0).Div(checksummedEntropy, checksumModulo) + + // Convert big.Ints to byte padded byte slices. + rawEntropyBytes := padByteSlice(rawEntropy.Bytes(), checksumByteSize) + checksummedEntropyBytes := padByteSlice(checksummedEntropy.Bytes(), fullByteSize) + + // Validate that the checksum is correct. + newChecksummedEntropyBytes := padByteSlice(addChecksum(rawEntropyBytes), fullByteSize) + return bytes.Equal(checksummedEntropyBytes, newChecksummedEntropyBytes) +} + +// Appends to data the first (len(data) / 32)bits of the result of sha256(data) +// Currently only supports data up to 32 bytes +func addChecksum(data []byte) []byte { + // Get first byte of sha256 + hash := computeChecksum(data) + firstChecksumByte := hash[0] + + // len() is in bytes so we divide by 4 + checksumBitLength := uint(len(data) / 4) + + // For each bit of check sum we want we shift the data one the left + // and then set the (new) right most bit equal to checksum bit at that index + // staring from the left + dataBigInt := new(big.Int).SetBytes(data) + for i := uint(0); i < checksumBitLength; i++ { + // Bitshift 1 left + dataBigInt.Mul(dataBigInt, bigTwo) + + // Set rightmost bit if leftmost checksum bit is set + if uint8(firstChecksumByte&(1<<(7-i))) > 0 { + dataBigInt.Or(dataBigInt, bigOne) + } + } + + return dataBigInt.Bytes() +} + +func computeChecksum(data []byte) []byte { + hasher := sha256.New() + hasher.Write(data) //nolint:errcheck + return hasher.Sum(nil) +} + +// validateEntropyBitSize ensures that entropy is the correct size for being a +// mnemonic. +func validateEntropyBitSize(bitSize int) error { + if (bitSize%32) != 0 || bitSize < 128 || bitSize > 256 { + return ErrInvalidEntropyLength + } + return nil +} + +// padByteSlice returns a byte slice of the given size with contents of the +// given slice left padded and any empty spaces filled with 0's. +func padByteSlice(slice []byte, length int) []byte { + offset := length - len(slice) + if offset <= 0 { + return slice + } + newSlice := make([]byte, length) + copy(newSlice[offset:], slice) + return newSlice +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/chinese_simplified.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/chinese_simplified.go new file mode 100644 index 000000000..0ee297270 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/chinese_simplified.go @@ -0,0 +1,2071 @@ +package wordlists + +import ( + "fmt" + "hash/crc32" + "strings" +) + +func init() { + // Ensure word list is correct + // $ wget https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/chinese_simplified.txt + // $ crc32 chinese_simplified.txt + // e3721bbf + checksum := crc32.ChecksumIEEE([]byte(chineseSimplified)) + if fmt.Sprintf("%x", checksum) != "e3721bbf" { + panic("chineseSimplified checksum invalid") + } +} + +// ChineseSimplified is a slice of mnemonic words taken from the bip39 specification +// https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/chinese_simplified.txt +var ChineseSimplified = strings.Split(strings.TrimSpace(chineseSimplified), "\n") +var chineseSimplified = `的 +一 +是 +在 +不 +了 +有 +和 +人 +这 +中 +大 +为 +上 +个 +国 +我 +以 +要 +他 +时 +来 +用 +们 +生 +到 +作 +地 +于 +出 +就 +分 +对 +成 +会 +可 +主 +发 +年 +动 +同 +工 +也 +能 +下 +过 +子 +说 +产 +种 +面 +而 +方 +后 +多 +定 +行 +学 +法 +所 +民 +得 +经 +十 +三 +之 +进 +着 +等 +部 +度 +家 +电 +力 +里 +如 +水 +化 +高 +自 +二 +理 +起 +小 +物 +现 +实 +加 +量 +都 +两 +体 +制 +机 +当 +使 +点 +从 +业 +本 +去 +把 +性 +好 +应 +开 +它 +合 +还 +因 +由 +其 +些 +然 +前 +外 +天 +政 +四 +日 +那 +社 +义 +事 +平 +形 +相 +全 +表 +间 +样 +与 +关 +各 +重 +新 +线 +内 +数 +正 +心 +反 +你 +明 +看 +原 +又 +么 +利 +比 +或 +但 +质 +气 +第 +向 +道 +命 +此 +变 +条 +只 +没 +结 +解 +问 +意 +建 +月 +公 +无 +系 +军 +很 +情 +者 +最 +立 +代 +想 +已 +通 +并 +提 +直 +题 +党 +程 +展 +五 +果 +料 +象 +员 +革 +位 +入 +常 +文 +总 +次 +品 +式 +活 +设 +及 +管 +特 +件 +长 +求 +老 +头 +基 +资 +边 +流 +路 +级 +少 +图 +山 +统 +接 +知 +较 +将 +组 +见 +计 +别 +她 +手 +角 +期 +根 +论 +运 +农 +指 +几 +九 +区 +强 +放 +决 +西 +被 +干 +做 +必 +战 +先 +回 +则 +任 +取 +据 +处 +队 +南 +给 +色 +光 +门 +即 +保 +治 +北 +造 +百 +规 +热 +领 +七 +海 +口 +东 +导 +器 +压 +志 +世 +金 +增 +争 +济 +阶 +油 +思 +术 +极 +交 +受 +联 +什 +认 +六 +共 +权 +收 +证 +改 +清 +美 +再 +采 +转 +更 +单 +风 +切 +打 +白 +教 +速 +花 +带 +安 +场 +身 +车 +例 +真 +务 +具 +万 +每 +目 +至 +达 +走 +积 +示 +议 +声 +报 +斗 +完 +类 +八 +离 +华 +名 +确 +才 +科 +张 +信 +马 +节 +话 +米 +整 +空 +元 +况 +今 +集 +温 +传 +土 +许 +步 +群 +广 +石 +记 +需 +段 +研 +界 +拉 +林 +律 +叫 +且 +究 +观 +越 +织 +装 +影 +算 +低 +持 +音 +众 +书 +布 +复 +容 +儿 +须 +际 +商 +非 +验 +连 +断 +深 +难 +近 +矿 +千 +周 +委 +素 +技 +备 +半 +办 +青 +省 +列 +习 +响 +约 +支 +般 +史 +感 +劳 +便 +团 +往 +酸 +历 +市 +克 +何 +除 +消 +构 +府 +称 +太 +准 +精 +值 +号 +率 +族 +维 +划 +选 +标 +写 +存 +候 +毛 +亲 +快 +效 +斯 +院 +查 +江 +型 +眼 +王 +按 +格 +养 +易 +置 +派 +层 +片 +始 +却 +专 +状 +育 +厂 +京 +识 +适 +属 +圆 +包 +火 +住 +调 +满 +县 +局 +照 +参 +红 +细 +引 +听 +该 +铁 +价 +严 +首 +底 +液 +官 +德 +随 +病 +苏 +失 +尔 +死 +讲 +配 +女 +黄 +推 +显 +谈 +罪 +神 +艺 +呢 +席 +含 +企 +望 +密 +批 +营 +项 +防 +举 +球 +英 +氧 +势 +告 +李 +台 +落 +木 +帮 +轮 +破 +亚 +师 +围 +注 +远 +字 +材 +排 +供 +河 +态 +封 +另 +施 +减 +树 +溶 +怎 +止 +案 +言 +士 +均 +武 +固 +叶 +鱼 +波 +视 +仅 +费 +紧 +爱 +左 +章 +早 +朝 +害 +续 +轻 +服 +试 +食 +充 +兵 +源 +判 +护 +司 +足 +某 +练 +差 +致 +板 +田 +降 +黑 +犯 +负 +击 +范 +继 +兴 +似 +余 +坚 +曲 +输 +修 +故 +城 +夫 +够 +送 +笔 +船 +占 +右 +财 +吃 +富 +春 +职 +觉 +汉 +画 +功 +巴 +跟 +虽 +杂 +飞 +检 +吸 +助 +升 +阳 +互 +初 +创 +抗 +考 +投 +坏 +策 +古 +径 +换 +未 +跑 +留 +钢 +曾 +端 +责 +站 +简 +述 +钱 +副 +尽 +帝 +射 +草 +冲 +承 +独 +令 +限 +阿 +宣 +环 +双 +请 +超 +微 +让 +控 +州 +良 +轴 +找 +否 +纪 +益 +依 +优 +顶 +础 +载 +倒 +房 +突 +坐 +粉 +敌 +略 +客 +袁 +冷 +胜 +绝 +析 +块 +剂 +测 +丝 +协 +诉 +念 +陈 +仍 +罗 +盐 +友 +洋 +错 +苦 +夜 +刑 +移 +频 +逐 +靠 +混 +母 +短 +皮 +终 +聚 +汽 +村 +云 +哪 +既 +距 +卫 +停 +烈 +央 +察 +烧 +迅 +境 +若 +印 +洲 +刻 +括 +激 +孔 +搞 +甚 +室 +待 +核 +校 +散 +侵 +吧 +甲 +游 +久 +菜 +味 +旧 +模 +湖 +货 +损 +预 +阻 +毫 +普 +稳 +乙 +妈 +植 +息 +扩 +银 +语 +挥 +酒 +守 +拿 +序 +纸 +医 +缺 +雨 +吗 +针 +刘 +啊 +急 +唱 +误 +训 +愿 +审 +附 +获 +茶 +鲜 +粮 +斤 +孩 +脱 +硫 +肥 +善 +龙 +演 +父 +渐 +血 +欢 +械 +掌 +歌 +沙 +刚 +攻 +谓 +盾 +讨 +晚 +粒 +乱 +燃 +矛 +乎 +杀 +药 +宁 +鲁 +贵 +钟 +煤 +读 +班 +伯 +香 +介 +迫 +句 +丰 +培 +握 +兰 +担 +弦 +蛋 +沉 +假 +穿 +执 +答 +乐 +谁 +顺 +烟 +缩 +征 +脸 +喜 +松 +脚 +困 +异 +免 +背 +星 +福 +买 +染 +井 +概 +慢 +怕 +磁 +倍 +祖 +皇 +促 +静 +补 +评 +翻 +肉 +践 +尼 +衣 +宽 +扬 +棉 +希 +伤 +操 +垂 +秋 +宜 +氢 +套 +督 +振 +架 +亮 +末 +宪 +庆 +编 +牛 +触 +映 +雷 +销 +诗 +座 +居 +抓 +裂 +胞 +呼 +娘 +景 +威 +绿 +晶 +厚 +盟 +衡 +鸡 +孙 +延 +危 +胶 +屋 +乡 +临 +陆 +顾 +掉 +呀 +灯 +岁 +措 +束 +耐 +剧 +玉 +赵 +跳 +哥 +季 +课 +凯 +胡 +额 +款 +绍 +卷 +齐 +伟 +蒸 +殖 +永 +宗 +苗 +川 +炉 +岩 +弱 +零 +杨 +奏 +沿 +露 +杆 +探 +滑 +镇 +饭 +浓 +航 +怀 +赶 +库 +夺 +伊 +灵 +税 +途 +灭 +赛 +归 +召 +鼓 +播 +盘 +裁 +险 +康 +唯 +录 +菌 +纯 +借 +糖 +盖 +横 +符 +私 +努 +堂 +域 +枪 +润 +幅 +哈 +竟 +熟 +虫 +泽 +脑 +壤 +碳 +欧 +遍 +侧 +寨 +敢 +彻 +虑 +斜 +薄 +庭 +纳 +弹 +饲 +伸 +折 +麦 +湿 +暗 +荷 +瓦 +塞 +床 +筑 +恶 +户 +访 +塔 +奇 +透 +梁 +刀 +旋 +迹 +卡 +氯 +遇 +份 +毒 +泥 +退 +洗 +摆 +灰 +彩 +卖 +耗 +夏 +择 +忙 +铜 +献 +硬 +予 +繁 +圈 +雪 +函 +亦 +抽 +篇 +阵 +阴 +丁 +尺 +追 +堆 +雄 +迎 +泛 +爸 +楼 +避 +谋 +吨 +野 +猪 +旗 +累 +偏 +典 +馆 +索 +秦 +脂 +潮 +爷 +豆 +忽 +托 +惊 +塑 +遗 +愈 +朱 +替 +纤 +粗 +倾 +尚 +痛 +楚 +谢 +奋 +购 +磨 +君 +池 +旁 +碎 +骨 +监 +捕 +弟 +暴 +割 +贯 +殊 +释 +词 +亡 +壁 +顿 +宝 +午 +尘 +闻 +揭 +炮 +残 +冬 +桥 +妇 +警 +综 +招 +吴 +付 +浮 +遭 +徐 +您 +摇 +谷 +赞 +箱 +隔 +订 +男 +吹 +园 +纷 +唐 +败 +宋 +玻 +巨 +耕 +坦 +荣 +闭 +湾 +键 +凡 +驻 +锅 +救 +恩 +剥 +凝 +碱 +齿 +截 +炼 +麻 +纺 +禁 +废 +盛 +版 +缓 +净 +睛 +昌 +婚 +涉 +筒 +嘴 +插 +岸 +朗 +庄 +街 +藏 +姑 +贸 +腐 +奴 +啦 +惯 +乘 +伙 +恢 +匀 +纱 +扎 +辩 +耳 +彪 +臣 +亿 +璃 +抵 +脉 +秀 +萨 +俄 +网 +舞 +店 +喷 +纵 +寸 +汗 +挂 +洪 +贺 +闪 +柬 +爆 +烯 +津 +稻 +墙 +软 +勇 +像 +滚 +厘 +蒙 +芳 +肯 +坡 +柱 +荡 +腿 +仪 +旅 +尾 +轧 +冰 +贡 +登 +黎 +削 +钻 +勒 +逃 +障 +氨 +郭 +峰 +币 +港 +伏 +轨 +亩 +毕 +擦 +莫 +刺 +浪 +秘 +援 +株 +健 +售 +股 +岛 +甘 +泡 +睡 +童 +铸 +汤 +阀 +休 +汇 +舍 +牧 +绕 +炸 +哲 +磷 +绩 +朋 +淡 +尖 +启 +陷 +柴 +呈 +徒 +颜 +泪 +稍 +忘 +泵 +蓝 +拖 +洞 +授 +镜 +辛 +壮 +锋 +贫 +虚 +弯 +摩 +泰 +幼 +廷 +尊 +窗 +纲 +弄 +隶 +疑 +氏 +宫 +姐 +震 +瑞 +怪 +尤 +琴 +循 +描 +膜 +违 +夹 +腰 +缘 +珠 +穷 +森 +枝 +竹 +沟 +催 +绳 +忆 +邦 +剩 +幸 +浆 +栏 +拥 +牙 +贮 +礼 +滤 +钠 +纹 +罢 +拍 +咱 +喊 +袖 +埃 +勤 +罚 +焦 +潜 +伍 +墨 +欲 +缝 +姓 +刊 +饱 +仿 +奖 +铝 +鬼 +丽 +跨 +默 +挖 +链 +扫 +喝 +袋 +炭 +污 +幕 +诸 +弧 +励 +梅 +奶 +洁 +灾 +舟 +鉴 +苯 +讼 +抱 +毁 +懂 +寒 +智 +埔 +寄 +届 +跃 +渡 +挑 +丹 +艰 +贝 +碰 +拔 +爹 +戴 +码 +梦 +芽 +熔 +赤 +渔 +哭 +敬 +颗 +奔 +铅 +仲 +虎 +稀 +妹 +乏 +珍 +申 +桌 +遵 +允 +隆 +螺 +仓 +魏 +锐 +晓 +氮 +兼 +隐 +碍 +赫 +拨 +忠 +肃 +缸 +牵 +抢 +博 +巧 +壳 +兄 +杜 +讯 +诚 +碧 +祥 +柯 +页 +巡 +矩 +悲 +灌 +龄 +伦 +票 +寻 +桂 +铺 +圣 +恐 +恰 +郑 +趣 +抬 +荒 +腾 +贴 +柔 +滴 +猛 +阔 +辆 +妻 +填 +撤 +储 +签 +闹 +扰 +紫 +砂 +递 +戏 +吊 +陶 +伐 +喂 +疗 +瓶 +婆 +抚 +臂 +摸 +忍 +虾 +蜡 +邻 +胸 +巩 +挤 +偶 +弃 +槽 +劲 +乳 +邓 +吉 +仁 +烂 +砖 +租 +乌 +舰 +伴 +瓜 +浅 +丙 +暂 +燥 +橡 +柳 +迷 +暖 +牌 +秧 +胆 +详 +簧 +踏 +瓷 +谱 +呆 +宾 +糊 +洛 +辉 +愤 +竞 +隙 +怒 +粘 +乃 +绪 +肩 +籍 +敏 +涂 +熙 +皆 +侦 +悬 +掘 +享 +纠 +醒 +狂 +锁 +淀 +恨 +牲 +霸 +爬 +赏 +逆 +玩 +陵 +祝 +秒 +浙 +貌 +役 +彼 +悉 +鸭 +趋 +凤 +晨 +畜 +辈 +秩 +卵 +署 +梯 +炎 +滩 +棋 +驱 +筛 +峡 +冒 +啥 +寿 +译 +浸 +泉 +帽 +迟 +硅 +疆 +贷 +漏 +稿 +冠 +嫩 +胁 +芯 +牢 +叛 +蚀 +奥 +鸣 +岭 +羊 +凭 +串 +塘 +绘 +酵 +融 +盆 +锡 +庙 +筹 +冻 +辅 +摄 +袭 +筋 +拒 +僚 +旱 +钾 +鸟 +漆 +沈 +眉 +疏 +添 +棒 +穗 +硝 +韩 +逼 +扭 +侨 +凉 +挺 +碗 +栽 +炒 +杯 +患 +馏 +劝 +豪 +辽 +勃 +鸿 +旦 +吏 +拜 +狗 +埋 +辊 +掩 +饮 +搬 +骂 +辞 +勾 +扣 +估 +蒋 +绒 +雾 +丈 +朵 +姆 +拟 +宇 +辑 +陕 +雕 +偿 +蓄 +崇 +剪 +倡 +厅 +咬 +驶 +薯 +刷 +斥 +番 +赋 +奉 +佛 +浇 +漫 +曼 +扇 +钙 +桃 +扶 +仔 +返 +俗 +亏 +腔 +鞋 +棱 +覆 +框 +悄 +叔 +撞 +骗 +勘 +旺 +沸 +孤 +吐 +孟 +渠 +屈 +疾 +妙 +惜 +仰 +狠 +胀 +谐 +抛 +霉 +桑 +岗 +嘛 +衰 +盗 +渗 +脏 +赖 +涌 +甜 +曹 +阅 +肌 +哩 +厉 +烃 +纬 +毅 +昨 +伪 +症 +煮 +叹 +钉 +搭 +茎 +笼 +酷 +偷 +弓 +锥 +恒 +杰 +坑 +鼻 +翼 +纶 +叙 +狱 +逮 +罐 +络 +棚 +抑 +膨 +蔬 +寺 +骤 +穆 +冶 +枯 +册 +尸 +凸 +绅 +坯 +牺 +焰 +轰 +欣 +晋 +瘦 +御 +锭 +锦 +丧 +旬 +锻 +垄 +搜 +扑 +邀 +亭 +酯 +迈 +舒 +脆 +酶 +闲 +忧 +酚 +顽 +羽 +涨 +卸 +仗 +陪 +辟 +惩 +杭 +姚 +肚 +捉 +飘 +漂 +昆 +欺 +吾 +郎 +烷 +汁 +呵 +饰 +萧 +雅 +邮 +迁 +燕 +撒 +姻 +赴 +宴 +烦 +债 +帐 +斑 +铃 +旨 +醇 +董 +饼 +雏 +姿 +拌 +傅 +腹 +妥 +揉 +贤 +拆 +歪 +葡 +胺 +丢 +浩 +徽 +昂 +垫 +挡 +览 +贪 +慰 +缴 +汪 +慌 +冯 +诺 +姜 +谊 +凶 +劣 +诬 +耀 +昏 +躺 +盈 +骑 +乔 +溪 +丛 +卢 +抹 +闷 +咨 +刮 +驾 +缆 +悟 +摘 +铒 +掷 +颇 +幻 +柄 +惠 +惨 +佳 +仇 +腊 +窝 +涤 +剑 +瞧 +堡 +泼 +葱 +罩 +霍 +捞 +胎 +苍 +滨 +俩 +捅 +湘 +砍 +霞 +邵 +萄 +疯 +淮 +遂 +熊 +粪 +烘 +宿 +档 +戈 +驳 +嫂 +裕 +徙 +箭 +捐 +肠 +撑 +晒 +辨 +殿 +莲 +摊 +搅 +酱 +屏 +疫 +哀 +蔡 +堵 +沫 +皱 +畅 +叠 +阁 +莱 +敲 +辖 +钩 +痕 +坝 +巷 +饿 +祸 +丘 +玄 +溜 +曰 +逻 +彭 +尝 +卿 +妨 +艇 +吞 +韦 +怨 +矮 +歇 +` diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/chinese_traditional.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/chinese_traditional.go new file mode 100644 index 000000000..83812cee5 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/chinese_traditional.go @@ -0,0 +1,2071 @@ +package wordlists + +import ( + "fmt" + "hash/crc32" + "strings" +) + +func init() { + // Ensure word list is correct + // $ wget https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/chinese_traditional.txt + // $ crc32 chinese_traditional.txt + // 3c20b443 + checksum := crc32.ChecksumIEEE([]byte(chineseTraditional)) + if fmt.Sprintf("%x", checksum) != "3c20b443" { + panic("chineseTraditional checksum invalid") + } +} + +// ChineseTraditional is a slice of mnemonic words taken from the bip39 specification +// https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/chinese_traditional.txt +var ChineseTraditional = strings.Split(strings.TrimSpace(chineseTraditional), "\n") +var chineseTraditional = `的 +一 +是 +在 +不 +了 +有 +和 +人 +這 +中 +大 +為 +上 +個 +國 +我 +以 +要 +他 +時 +來 +用 +們 +生 +到 +作 +地 +於 +出 +就 +分 +對 +成 +會 +可 +主 +發 +年 +動 +同 +工 +也 +能 +下 +過 +子 +說 +產 +種 +面 +而 +方 +後 +多 +定 +行 +學 +法 +所 +民 +得 +經 +十 +三 +之 +進 +著 +等 +部 +度 +家 +電 +力 +裡 +如 +水 +化 +高 +自 +二 +理 +起 +小 +物 +現 +實 +加 +量 +都 +兩 +體 +制 +機 +當 +使 +點 +從 +業 +本 +去 +把 +性 +好 +應 +開 +它 +合 +還 +因 +由 +其 +些 +然 +前 +外 +天 +政 +四 +日 +那 +社 +義 +事 +平 +形 +相 +全 +表 +間 +樣 +與 +關 +各 +重 +新 +線 +內 +數 +正 +心 +反 +你 +明 +看 +原 +又 +麼 +利 +比 +或 +但 +質 +氣 +第 +向 +道 +命 +此 +變 +條 +只 +沒 +結 +解 +問 +意 +建 +月 +公 +無 +系 +軍 +很 +情 +者 +最 +立 +代 +想 +已 +通 +並 +提 +直 +題 +黨 +程 +展 +五 +果 +料 +象 +員 +革 +位 +入 +常 +文 +總 +次 +品 +式 +活 +設 +及 +管 +特 +件 +長 +求 +老 +頭 +基 +資 +邊 +流 +路 +級 +少 +圖 +山 +統 +接 +知 +較 +將 +組 +見 +計 +別 +她 +手 +角 +期 +根 +論 +運 +農 +指 +幾 +九 +區 +強 +放 +決 +西 +被 +幹 +做 +必 +戰 +先 +回 +則 +任 +取 +據 +處 +隊 +南 +給 +色 +光 +門 +即 +保 +治 +北 +造 +百 +規 +熱 +領 +七 +海 +口 +東 +導 +器 +壓 +志 +世 +金 +增 +爭 +濟 +階 +油 +思 +術 +極 +交 +受 +聯 +什 +認 +六 +共 +權 +收 +證 +改 +清 +美 +再 +採 +轉 +更 +單 +風 +切 +打 +白 +教 +速 +花 +帶 +安 +場 +身 +車 +例 +真 +務 +具 +萬 +每 +目 +至 +達 +走 +積 +示 +議 +聲 +報 +鬥 +完 +類 +八 +離 +華 +名 +確 +才 +科 +張 +信 +馬 +節 +話 +米 +整 +空 +元 +況 +今 +集 +溫 +傳 +土 +許 +步 +群 +廣 +石 +記 +需 +段 +研 +界 +拉 +林 +律 +叫 +且 +究 +觀 +越 +織 +裝 +影 +算 +低 +持 +音 +眾 +書 +布 +复 +容 +兒 +須 +際 +商 +非 +驗 +連 +斷 +深 +難 +近 +礦 +千 +週 +委 +素 +技 +備 +半 +辦 +青 +省 +列 +習 +響 +約 +支 +般 +史 +感 +勞 +便 +團 +往 +酸 +歷 +市 +克 +何 +除 +消 +構 +府 +稱 +太 +準 +精 +值 +號 +率 +族 +維 +劃 +選 +標 +寫 +存 +候 +毛 +親 +快 +效 +斯 +院 +查 +江 +型 +眼 +王 +按 +格 +養 +易 +置 +派 +層 +片 +始 +卻 +專 +狀 +育 +廠 +京 +識 +適 +屬 +圓 +包 +火 +住 +調 +滿 +縣 +局 +照 +參 +紅 +細 +引 +聽 +該 +鐵 +價 +嚴 +首 +底 +液 +官 +德 +隨 +病 +蘇 +失 +爾 +死 +講 +配 +女 +黃 +推 +顯 +談 +罪 +神 +藝 +呢 +席 +含 +企 +望 +密 +批 +營 +項 +防 +舉 +球 +英 +氧 +勢 +告 +李 +台 +落 +木 +幫 +輪 +破 +亞 +師 +圍 +注 +遠 +字 +材 +排 +供 +河 +態 +封 +另 +施 +減 +樹 +溶 +怎 +止 +案 +言 +士 +均 +武 +固 +葉 +魚 +波 +視 +僅 +費 +緊 +愛 +左 +章 +早 +朝 +害 +續 +輕 +服 +試 +食 +充 +兵 +源 +判 +護 +司 +足 +某 +練 +差 +致 +板 +田 +降 +黑 +犯 +負 +擊 +范 +繼 +興 +似 +餘 +堅 +曲 +輸 +修 +故 +城 +夫 +夠 +送 +筆 +船 +佔 +右 +財 +吃 +富 +春 +職 +覺 +漢 +畫 +功 +巴 +跟 +雖 +雜 +飛 +檢 +吸 +助 +昇 +陽 +互 +初 +創 +抗 +考 +投 +壞 +策 +古 +徑 +換 +未 +跑 +留 +鋼 +曾 +端 +責 +站 +簡 +述 +錢 +副 +盡 +帝 +射 +草 +衝 +承 +獨 +令 +限 +阿 +宣 +環 +雙 +請 +超 +微 +讓 +控 +州 +良 +軸 +找 +否 +紀 +益 +依 +優 +頂 +礎 +載 +倒 +房 +突 +坐 +粉 +敵 +略 +客 +袁 +冷 +勝 +絕 +析 +塊 +劑 +測 +絲 +協 +訴 +念 +陳 +仍 +羅 +鹽 +友 +洋 +錯 +苦 +夜 +刑 +移 +頻 +逐 +靠 +混 +母 +短 +皮 +終 +聚 +汽 +村 +雲 +哪 +既 +距 +衛 +停 +烈 +央 +察 +燒 +迅 +境 +若 +印 +洲 +刻 +括 +激 +孔 +搞 +甚 +室 +待 +核 +校 +散 +侵 +吧 +甲 +遊 +久 +菜 +味 +舊 +模 +湖 +貨 +損 +預 +阻 +毫 +普 +穩 +乙 +媽 +植 +息 +擴 +銀 +語 +揮 +酒 +守 +拿 +序 +紙 +醫 +缺 +雨 +嗎 +針 +劉 +啊 +急 +唱 +誤 +訓 +願 +審 +附 +獲 +茶 +鮮 +糧 +斤 +孩 +脫 +硫 +肥 +善 +龍 +演 +父 +漸 +血 +歡 +械 +掌 +歌 +沙 +剛 +攻 +謂 +盾 +討 +晚 +粒 +亂 +燃 +矛 +乎 +殺 +藥 +寧 +魯 +貴 +鐘 +煤 +讀 +班 +伯 +香 +介 +迫 +句 +豐 +培 +握 +蘭 +擔 +弦 +蛋 +沉 +假 +穿 +執 +答 +樂 +誰 +順 +煙 +縮 +徵 +臉 +喜 +松 +腳 +困 +異 +免 +背 +星 +福 +買 +染 +井 +概 +慢 +怕 +磁 +倍 +祖 +皇 +促 +靜 +補 +評 +翻 +肉 +踐 +尼 +衣 +寬 +揚 +棉 +希 +傷 +操 +垂 +秋 +宜 +氫 +套 +督 +振 +架 +亮 +末 +憲 +慶 +編 +牛 +觸 +映 +雷 +銷 +詩 +座 +居 +抓 +裂 +胞 +呼 +娘 +景 +威 +綠 +晶 +厚 +盟 +衡 +雞 +孫 +延 +危 +膠 +屋 +鄉 +臨 +陸 +顧 +掉 +呀 +燈 +歲 +措 +束 +耐 +劇 +玉 +趙 +跳 +哥 +季 +課 +凱 +胡 +額 +款 +紹 +卷 +齊 +偉 +蒸 +殖 +永 +宗 +苗 +川 +爐 +岩 +弱 +零 +楊 +奏 +沿 +露 +桿 +探 +滑 +鎮 +飯 +濃 +航 +懷 +趕 +庫 +奪 +伊 +靈 +稅 +途 +滅 +賽 +歸 +召 +鼓 +播 +盤 +裁 +險 +康 +唯 +錄 +菌 +純 +借 +糖 +蓋 +橫 +符 +私 +努 +堂 +域 +槍 +潤 +幅 +哈 +竟 +熟 +蟲 +澤 +腦 +壤 +碳 +歐 +遍 +側 +寨 +敢 +徹 +慮 +斜 +薄 +庭 +納 +彈 +飼 +伸 +折 +麥 +濕 +暗 +荷 +瓦 +塞 +床 +築 +惡 +戶 +訪 +塔 +奇 +透 +梁 +刀 +旋 +跡 +卡 +氯 +遇 +份 +毒 +泥 +退 +洗 +擺 +灰 +彩 +賣 +耗 +夏 +擇 +忙 +銅 +獻 +硬 +予 +繁 +圈 +雪 +函 +亦 +抽 +篇 +陣 +陰 +丁 +尺 +追 +堆 +雄 +迎 +泛 +爸 +樓 +避 +謀 +噸 +野 +豬 +旗 +累 +偏 +典 +館 +索 +秦 +脂 +潮 +爺 +豆 +忽 +托 +驚 +塑 +遺 +愈 +朱 +替 +纖 +粗 +傾 +尚 +痛 +楚 +謝 +奮 +購 +磨 +君 +池 +旁 +碎 +骨 +監 +捕 +弟 +暴 +割 +貫 +殊 +釋 +詞 +亡 +壁 +頓 +寶 +午 +塵 +聞 +揭 +炮 +殘 +冬 +橋 +婦 +警 +綜 +招 +吳 +付 +浮 +遭 +徐 +您 +搖 +谷 +贊 +箱 +隔 +訂 +男 +吹 +園 +紛 +唐 +敗 +宋 +玻 +巨 +耕 +坦 +榮 +閉 +灣 +鍵 +凡 +駐 +鍋 +救 +恩 +剝 +凝 +鹼 +齒 +截 +煉 +麻 +紡 +禁 +廢 +盛 +版 +緩 +淨 +睛 +昌 +婚 +涉 +筒 +嘴 +插 +岸 +朗 +莊 +街 +藏 +姑 +貿 +腐 +奴 +啦 +慣 +乘 +夥 +恢 +勻 +紗 +扎 +辯 +耳 +彪 +臣 +億 +璃 +抵 +脈 +秀 +薩 +俄 +網 +舞 +店 +噴 +縱 +寸 +汗 +掛 +洪 +賀 +閃 +柬 +爆 +烯 +津 +稻 +牆 +軟 +勇 +像 +滾 +厘 +蒙 +芳 +肯 +坡 +柱 +盪 +腿 +儀 +旅 +尾 +軋 +冰 +貢 +登 +黎 +削 +鑽 +勒 +逃 +障 +氨 +郭 +峰 +幣 +港 +伏 +軌 +畝 +畢 +擦 +莫 +刺 +浪 +秘 +援 +株 +健 +售 +股 +島 +甘 +泡 +睡 +童 +鑄 +湯 +閥 +休 +匯 +舍 +牧 +繞 +炸 +哲 +磷 +績 +朋 +淡 +尖 +啟 +陷 +柴 +呈 +徒 +顏 +淚 +稍 +忘 +泵 +藍 +拖 +洞 +授 +鏡 +辛 +壯 +鋒 +貧 +虛 +彎 +摩 +泰 +幼 +廷 +尊 +窗 +綱 +弄 +隸 +疑 +氏 +宮 +姐 +震 +瑞 +怪 +尤 +琴 +循 +描 +膜 +違 +夾 +腰 +緣 +珠 +窮 +森 +枝 +竹 +溝 +催 +繩 +憶 +邦 +剩 +幸 +漿 +欄 +擁 +牙 +貯 +禮 +濾 +鈉 +紋 +罷 +拍 +咱 +喊 +袖 +埃 +勤 +罰 +焦 +潛 +伍 +墨 +欲 +縫 +姓 +刊 +飽 +仿 +獎 +鋁 +鬼 +麗 +跨 +默 +挖 +鏈 +掃 +喝 +袋 +炭 +污 +幕 +諸 +弧 +勵 +梅 +奶 +潔 +災 +舟 +鑑 +苯 +訟 +抱 +毀 +懂 +寒 +智 +埔 +寄 +屆 +躍 +渡 +挑 +丹 +艱 +貝 +碰 +拔 +爹 +戴 +碼 +夢 +芽 +熔 +赤 +漁 +哭 +敬 +顆 +奔 +鉛 +仲 +虎 +稀 +妹 +乏 +珍 +申 +桌 +遵 +允 +隆 +螺 +倉 +魏 +銳 +曉 +氮 +兼 +隱 +礙 +赫 +撥 +忠 +肅 +缸 +牽 +搶 +博 +巧 +殼 +兄 +杜 +訊 +誠 +碧 +祥 +柯 +頁 +巡 +矩 +悲 +灌 +齡 +倫 +票 +尋 +桂 +鋪 +聖 +恐 +恰 +鄭 +趣 +抬 +荒 +騰 +貼 +柔 +滴 +猛 +闊 +輛 +妻 +填 +撤 +儲 +簽 +鬧 +擾 +紫 +砂 +遞 +戲 +吊 +陶 +伐 +餵 +療 +瓶 +婆 +撫 +臂 +摸 +忍 +蝦 +蠟 +鄰 +胸 +鞏 +擠 +偶 +棄 +槽 +勁 +乳 +鄧 +吉 +仁 +爛 +磚 +租 +烏 +艦 +伴 +瓜 +淺 +丙 +暫 +燥 +橡 +柳 +迷 +暖 +牌 +秧 +膽 +詳 +簧 +踏 +瓷 +譜 +呆 +賓 +糊 +洛 +輝 +憤 +競 +隙 +怒 +粘 +乃 +緒 +肩 +籍 +敏 +塗 +熙 +皆 +偵 +懸 +掘 +享 +糾 +醒 +狂 +鎖 +淀 +恨 +牲 +霸 +爬 +賞 +逆 +玩 +陵 +祝 +秒 +浙 +貌 +役 +彼 +悉 +鴨 +趨 +鳳 +晨 +畜 +輩 +秩 +卵 +署 +梯 +炎 +灘 +棋 +驅 +篩 +峽 +冒 +啥 +壽 +譯 +浸 +泉 +帽 +遲 +矽 +疆 +貸 +漏 +稿 +冠 +嫩 +脅 +芯 +牢 +叛 +蝕 +奧 +鳴 +嶺 +羊 +憑 +串 +塘 +繪 +酵 +融 +盆 +錫 +廟 +籌 +凍 +輔 +攝 +襲 +筋 +拒 +僚 +旱 +鉀 +鳥 +漆 +沈 +眉 +疏 +添 +棒 +穗 +硝 +韓 +逼 +扭 +僑 +涼 +挺 +碗 +栽 +炒 +杯 +患 +餾 +勸 +豪 +遼 +勃 +鴻 +旦 +吏 +拜 +狗 +埋 +輥 +掩 +飲 +搬 +罵 +辭 +勾 +扣 +估 +蔣 +絨 +霧 +丈 +朵 +姆 +擬 +宇 +輯 +陝 +雕 +償 +蓄 +崇 +剪 +倡 +廳 +咬 +駛 +薯 +刷 +斥 +番 +賦 +奉 +佛 +澆 +漫 +曼 +扇 +鈣 +桃 +扶 +仔 +返 +俗 +虧 +腔 +鞋 +棱 +覆 +框 +悄 +叔 +撞 +騙 +勘 +旺 +沸 +孤 +吐 +孟 +渠 +屈 +疾 +妙 +惜 +仰 +狠 +脹 +諧 +拋 +黴 +桑 +崗 +嘛 +衰 +盜 +滲 +臟 +賴 +湧 +甜 +曹 +閱 +肌 +哩 +厲 +烴 +緯 +毅 +昨 +偽 +症 +煮 +嘆 +釘 +搭 +莖 +籠 +酷 +偷 +弓 +錐 +恆 +傑 +坑 +鼻 +翼 +綸 +敘 +獄 +逮 +罐 +絡 +棚 +抑 +膨 +蔬 +寺 +驟 +穆 +冶 +枯 +冊 +屍 +凸 +紳 +坯 +犧 +焰 +轟 +欣 +晉 +瘦 +禦 +錠 +錦 +喪 +旬 +鍛 +壟 +搜 +撲 +邀 +亭 +酯 +邁 +舒 +脆 +酶 +閒 +憂 +酚 +頑 +羽 +漲 +卸 +仗 +陪 +闢 +懲 +杭 +姚 +肚 +捉 +飄 +漂 +昆 +欺 +吾 +郎 +烷 +汁 +呵 +飾 +蕭 +雅 +郵 +遷 +燕 +撒 +姻 +赴 +宴 +煩 +債 +帳 +斑 +鈴 +旨 +醇 +董 +餅 +雛 +姿 +拌 +傅 +腹 +妥 +揉 +賢 +拆 +歪 +葡 +胺 +丟 +浩 +徽 +昂 +墊 +擋 +覽 +貪 +慰 +繳 +汪 +慌 +馮 +諾 +姜 +誼 +兇 +劣 +誣 +耀 +昏 +躺 +盈 +騎 +喬 +溪 +叢 +盧 +抹 +悶 +諮 +刮 +駕 +纜 +悟 +摘 +鉺 +擲 +頗 +幻 +柄 +惠 +慘 +佳 +仇 +臘 +窩 +滌 +劍 +瞧 +堡 +潑 +蔥 +罩 +霍 +撈 +胎 +蒼 +濱 +倆 +捅 +湘 +砍 +霞 +邵 +萄 +瘋 +淮 +遂 +熊 +糞 +烘 +宿 +檔 +戈 +駁 +嫂 +裕 +徙 +箭 +捐 +腸 +撐 +曬 +辨 +殿 +蓮 +攤 +攪 +醬 +屏 +疫 +哀 +蔡 +堵 +沫 +皺 +暢 +疊 +閣 +萊 +敲 +轄 +鉤 +痕 +壩 +巷 +餓 +禍 +丘 +玄 +溜 +曰 +邏 +彭 +嘗 +卿 +妨 +艇 +吞 +韋 +怨 +矮 +歇 +` diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/english.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/english.go new file mode 100644 index 000000000..f69e8a473 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/english.go @@ -0,0 +1,2071 @@ +package wordlists + +import ( + "fmt" + "hash/crc32" + "strings" +) + +func init() { + // Ensure word list is correct + // $ wget https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/english.txt + // $ crc32 english.txt + // c1dbd296 + checksum := crc32.ChecksumIEEE([]byte(english)) + if fmt.Sprintf("%x", checksum) != "c1dbd296" { + panic("english checksum invalid") + } +} + +// English is a slice of mnemonic words taken from the bip39 specification +// https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/english.txt +var English = strings.Split(strings.TrimSpace(english), "\n") +var english = `abandon +ability +able +about +above +absent +absorb +abstract +absurd +abuse +access +accident +account +accuse +achieve +acid +acoustic +acquire +across +act +action +actor +actress +actual +adapt +add +addict +address +adjust +admit +adult +advance +advice +aerobic +affair +afford +afraid +again +age +agent +agree +ahead +aim +air +airport +aisle +alarm +album +alcohol +alert +alien +all +alley +allow +almost +alone +alpha +already +also +alter +always +amateur +amazing +among +amount +amused +analyst +anchor +ancient +anger +angle +angry +animal +ankle +announce +annual +another +answer +antenna +antique +anxiety +any +apart +apology +appear +apple +approve +april +arch +arctic +area +arena +argue +arm +armed +armor +army +around +arrange +arrest +arrive +arrow +art +artefact +artist +artwork +ask +aspect +assault +asset +assist +assume +asthma +athlete +atom +attack +attend +attitude +attract +auction +audit +august +aunt +author +auto +autumn +average +avocado +avoid +awake +aware +away +awesome +awful +awkward +axis +baby +bachelor +bacon +badge +bag +balance +balcony +ball +bamboo +banana +banner +bar +barely +bargain +barrel +base +basic +basket +battle +beach +bean +beauty +because +become +beef +before +begin +behave +behind +believe +below +belt +bench +benefit +best +betray +better +between +beyond +bicycle +bid +bike +bind +biology +bird +birth +bitter +black +blade +blame +blanket +blast +bleak +bless +blind +blood +blossom +blouse +blue +blur +blush +board +boat +body +boil +bomb +bone +bonus +book +boost +border +boring +borrow +boss +bottom +bounce +box +boy +bracket +brain +brand +brass +brave +bread +breeze +brick +bridge +brief +bright +bring +brisk +broccoli +broken +bronze +broom +brother +brown +brush +bubble +buddy +budget +buffalo +build +bulb +bulk +bullet +bundle +bunker +burden +burger +burst +bus +business +busy +butter +buyer +buzz +cabbage +cabin +cable +cactus +cage +cake +call +calm +camera +camp +can +canal +cancel +candy +cannon +canoe +canvas +canyon +capable +capital +captain +car +carbon +card +cargo +carpet +carry +cart +case +cash +casino +castle +casual +cat +catalog +catch +category +cattle +caught +cause +caution +cave +ceiling +celery +cement +census +century +cereal +certain +chair +chalk +champion +change +chaos +chapter +charge +chase +chat +cheap +check +cheese +chef +cherry +chest +chicken +chief +child +chimney +choice +choose +chronic +chuckle +chunk +churn +cigar +cinnamon +circle +citizen +city +civil +claim +clap +clarify +claw +clay +clean +clerk +clever +click +client +cliff +climb +clinic +clip +clock +clog +close +cloth +cloud +clown +club +clump +cluster +clutch +coach +coast +coconut +code +coffee +coil +coin +collect +color +column +combine +come +comfort +comic +common +company +concert +conduct +confirm +congress +connect +consider +control +convince +cook +cool +copper +copy +coral +core +corn +correct +cost +cotton +couch +country +couple +course +cousin +cover +coyote +crack +cradle +craft +cram +crane +crash +crater +crawl +crazy +cream +credit +creek +crew +cricket +crime +crisp +critic +crop +cross +crouch +crowd +crucial +cruel +cruise +crumble +crunch +crush +cry +crystal +cube +culture +cup +cupboard +curious +current +curtain +curve +cushion +custom +cute +cycle +dad +damage +damp +dance +danger +daring +dash +daughter +dawn +day +deal +debate +debris +decade +december +decide +decline +decorate +decrease +deer +defense +define +defy +degree +delay +deliver +demand +demise +denial +dentist +deny +depart +depend +deposit +depth +deputy +derive +describe +desert +design +desk +despair +destroy +detail +detect +develop +device +devote +diagram +dial +diamond +diary +dice +diesel +diet +differ +digital +dignity +dilemma +dinner +dinosaur +direct +dirt +disagree +discover +disease +dish +dismiss +disorder +display +distance +divert +divide +divorce +dizzy +doctor +document +dog +doll +dolphin +domain +donate +donkey +donor +door +dose +double +dove +draft +dragon +drama +drastic +draw +dream +dress +drift +drill +drink +drip +drive +drop +drum +dry +duck +dumb +dune +during +dust +dutch +duty +dwarf +dynamic +eager +eagle +early +earn +earth +easily +east +easy +echo +ecology +economy +edge +edit +educate +effort +egg +eight +either +elbow +elder +electric +elegant +element +elephant +elevator +elite +else +embark +embody +embrace +emerge +emotion +employ +empower +empty +enable +enact +end +endless +endorse +enemy +energy +enforce +engage +engine +enhance +enjoy +enlist +enough +enrich +enroll +ensure +enter +entire +entry +envelope +episode +equal +equip +era +erase +erode +erosion +error +erupt +escape +essay +essence +estate +eternal +ethics +evidence +evil +evoke +evolve +exact +example +excess +exchange +excite +exclude +excuse +execute +exercise +exhaust +exhibit +exile +exist +exit +exotic +expand +expect +expire +explain +expose +express +extend +extra +eye +eyebrow +fabric +face +faculty +fade +faint +faith +fall +false +fame +family +famous +fan +fancy +fantasy +farm +fashion +fat +fatal +father +fatigue +fault +favorite +feature +february +federal +fee +feed +feel +female +fence +festival +fetch +fever +few +fiber +fiction +field +figure +file +film +filter +final +find +fine +finger +finish +fire +firm +first +fiscal +fish +fit +fitness +fix +flag +flame +flash +flat +flavor +flee +flight +flip +float +flock +floor +flower +fluid +flush +fly +foam +focus +fog +foil +fold +follow +food +foot +force +forest +forget +fork +fortune +forum +forward +fossil +foster +found +fox +fragile +frame +frequent +fresh +friend +fringe +frog +front +frost +frown +frozen +fruit +fuel +fun +funny +furnace +fury +future +gadget +gain +galaxy +gallery +game +gap +garage +garbage +garden +garlic +garment +gas +gasp +gate +gather +gauge +gaze +general +genius +genre +gentle +genuine +gesture +ghost +giant +gift +giggle +ginger +giraffe +girl +give +glad +glance +glare +glass +glide +glimpse +globe +gloom +glory +glove +glow +glue +goat +goddess +gold +good +goose +gorilla +gospel +gossip +govern +gown +grab +grace +grain +grant +grape +grass +gravity +great +green +grid +grief +grit +grocery +group +grow +grunt +guard +guess +guide +guilt +guitar +gun +gym +habit +hair +half +hammer +hamster +hand +happy +harbor +hard +harsh +harvest +hat +have +hawk +hazard +head +health +heart +heavy +hedgehog +height +hello +helmet +help +hen +hero +hidden +high +hill +hint +hip +hire +history +hobby +hockey +hold +hole +holiday +hollow +home +honey +hood +hope +horn +horror +horse +hospital +host +hotel +hour +hover +hub +huge +human +humble +humor +hundred +hungry +hunt +hurdle +hurry +hurt +husband +hybrid +ice +icon +idea +identify +idle +ignore +ill +illegal +illness +image +imitate +immense +immune +impact +impose +improve +impulse +inch +include +income +increase +index +indicate +indoor +industry +infant +inflict +inform +inhale +inherit +initial +inject +injury +inmate +inner +innocent +input +inquiry +insane +insect +inside +inspire +install +intact +interest +into +invest +invite +involve +iron +island +isolate +issue +item +ivory +jacket +jaguar +jar +jazz +jealous +jeans +jelly +jewel +job +join +joke +journey +joy +judge +juice +jump +jungle +junior +junk +just +kangaroo +keen +keep +ketchup +key +kick +kid +kidney +kind +kingdom +kiss +kit +kitchen +kite +kitten +kiwi +knee +knife +knock +know +lab +label +labor +ladder +lady +lake +lamp +language +laptop +large +later +latin +laugh +laundry +lava +law +lawn +lawsuit +layer +lazy +leader +leaf +learn +leave +lecture +left +leg +legal +legend +leisure +lemon +lend +length +lens +leopard +lesson +letter +level +liar +liberty +library +license +life +lift +light +like +limb +limit +link +lion +liquid +list +little +live +lizard +load +loan +lobster +local +lock +logic +lonely +long +loop +lottery +loud +lounge +love +loyal +lucky +luggage +lumber +lunar +lunch +luxury +lyrics +machine +mad +magic +magnet +maid +mail +main +major +make +mammal +man +manage +mandate +mango +mansion +manual +maple +marble +march +margin +marine +market +marriage +mask +mass +master +match +material +math +matrix +matter +maximum +maze +meadow +mean +measure +meat +mechanic +medal +media +melody +melt +member +memory +mention +menu +mercy +merge +merit +merry +mesh +message +metal +method +middle +midnight +milk +million +mimic +mind +minimum +minor +minute +miracle +mirror +misery +miss +mistake +mix +mixed +mixture +mobile +model +modify +mom +moment +monitor +monkey +monster +month +moon +moral +more +morning +mosquito +mother +motion +motor +mountain +mouse +move +movie +much +muffin +mule +multiply +muscle +museum +mushroom +music +must +mutual +myself +mystery +myth +naive +name +napkin +narrow +nasty +nation +nature +near +neck +need +negative +neglect +neither +nephew +nerve +nest +net +network +neutral +never +news +next +nice +night +noble +noise +nominee +noodle +normal +north +nose +notable +note +nothing +notice +novel +now +nuclear +number +nurse +nut +oak +obey +object +oblige +obscure +observe +obtain +obvious +occur +ocean +october +odor +off +offer +office +often +oil +okay +old +olive +olympic +omit +once +one +onion +online +only +open +opera +opinion +oppose +option +orange +orbit +orchard +order +ordinary +organ +orient +original +orphan +ostrich +other +outdoor +outer +output +outside +oval +oven +over +own +owner +oxygen +oyster +ozone +pact +paddle +page +pair +palace +palm +panda +panel +panic +panther +paper +parade +parent +park +parrot +party +pass +patch +path +patient +patrol +pattern +pause +pave +payment +peace +peanut +pear +peasant +pelican +pen +penalty +pencil +people +pepper +perfect +permit +person +pet +phone +photo +phrase +physical +piano +picnic +picture +piece +pig +pigeon +pill +pilot +pink +pioneer +pipe +pistol +pitch +pizza +place +planet +plastic +plate +play +please +pledge +pluck +plug +plunge +poem +poet +point +polar +pole +police +pond +pony +pool +popular +portion +position +possible +post +potato +pottery +poverty +powder +power +practice +praise +predict +prefer +prepare +present +pretty +prevent +price +pride +primary +print +priority +prison +private +prize +problem +process +produce +profit +program +project +promote +proof +property +prosper +protect +proud +provide +public +pudding +pull +pulp +pulse +pumpkin +punch +pupil +puppy +purchase +purity +purpose +purse +push +put +puzzle +pyramid +quality +quantum +quarter +question +quick +quit +quiz +quote +rabbit +raccoon +race +rack +radar +radio +rail +rain +raise +rally +ramp +ranch +random +range +rapid +rare +rate +rather +raven +raw +razor +ready +real +reason +rebel +rebuild +recall +receive +recipe +record +recycle +reduce +reflect +reform +refuse +region +regret +regular +reject +relax +release +relief +rely +remain +remember +remind +remove +render +renew +rent +reopen +repair +repeat +replace +report +require +rescue +resemble +resist +resource +response +result +retire +retreat +return +reunion +reveal +review +reward +rhythm +rib +ribbon +rice +rich +ride +ridge +rifle +right +rigid +ring +riot +ripple +risk +ritual +rival +river +road +roast +robot +robust +rocket +romance +roof +rookie +room +rose +rotate +rough +round +route +royal +rubber +rude +rug +rule +run +runway +rural +sad +saddle +sadness +safe +sail +salad +salmon +salon +salt +salute +same +sample +sand +satisfy +satoshi +sauce +sausage +save +say +scale +scan +scare +scatter +scene +scheme +school +science +scissors +scorpion +scout +scrap +screen +script +scrub +sea +search +season +seat +second +secret +section +security +seed +seek +segment +select +sell +seminar +senior +sense +sentence +series +service +session +settle +setup +seven +shadow +shaft +shallow +share +shed +shell +sheriff +shield +shift +shine +ship +shiver +shock +shoe +shoot +shop +short +shoulder +shove +shrimp +shrug +shuffle +shy +sibling +sick +side +siege +sight +sign +silent +silk +silly +silver +similar +simple +since +sing +siren +sister +situate +six +size +skate +sketch +ski +skill +skin +skirt +skull +slab +slam +sleep +slender +slice +slide +slight +slim +slogan +slot +slow +slush +small +smart +smile +smoke +smooth +snack +snake +snap +sniff +snow +soap +soccer +social +sock +soda +soft +solar +soldier +solid +solution +solve +someone +song +soon +sorry +sort +soul +sound +soup +source +south +space +spare +spatial +spawn +speak +special +speed +spell +spend +sphere +spice +spider +spike +spin +spirit +split +spoil +sponsor +spoon +sport +spot +spray +spread +spring +spy +square +squeeze +squirrel +stable +stadium +staff +stage +stairs +stamp +stand +start +state +stay +steak +steel +stem +step +stereo +stick +still +sting +stock +stomach +stone +stool +story +stove +strategy +street +strike +strong +struggle +student +stuff +stumble +style +subject +submit +subway +success +such +sudden +suffer +sugar +suggest +suit +summer +sun +sunny +sunset +super +supply +supreme +sure +surface +surge +surprise +surround +survey +suspect +sustain +swallow +swamp +swap +swarm +swear +sweet +swift +swim +swing +switch +sword +symbol +symptom +syrup +system +table +tackle +tag +tail +talent +talk +tank +tape +target +task +taste +tattoo +taxi +teach +team +tell +ten +tenant +tennis +tent +term +test +text +thank +that +theme +then +theory +there +they +thing +this +thought +three +thrive +throw +thumb +thunder +ticket +tide +tiger +tilt +timber +time +tiny +tip +tired +tissue +title +toast +tobacco +today +toddler +toe +together +toilet +token +tomato +tomorrow +tone +tongue +tonight +tool +tooth +top +topic +topple +torch +tornado +tortoise +toss +total +tourist +toward +tower +town +toy +track +trade +traffic +tragic +train +transfer +trap +trash +travel +tray +treat +tree +trend +trial +tribe +trick +trigger +trim +trip +trophy +trouble +truck +true +truly +trumpet +trust +truth +try +tube +tuition +tumble +tuna +tunnel +turkey +turn +turtle +twelve +twenty +twice +twin +twist +two +type +typical +ugly +umbrella +unable +unaware +uncle +uncover +under +undo +unfair +unfold +unhappy +uniform +unique +unit +universe +unknown +unlock +until +unusual +unveil +update +upgrade +uphold +upon +upper +upset +urban +urge +usage +use +used +useful +useless +usual +utility +vacant +vacuum +vague +valid +valley +valve +van +vanish +vapor +various +vast +vault +vehicle +velvet +vendor +venture +venue +verb +verify +version +very +vessel +veteran +viable +vibrant +vicious +victory +video +view +village +vintage +violin +virtual +virus +visa +visit +visual +vital +vivid +vocal +voice +void +volcano +volume +vote +voyage +wage +wagon +wait +walk +wall +walnut +want +warfare +warm +warrior +wash +wasp +waste +water +wave +way +wealth +weapon +wear +weasel +weather +web +wedding +weekend +weird +welcome +west +wet +whale +what +wheat +wheel +when +where +whip +whisper +wide +width +wife +wild +will +win +window +wine +wing +wink +winner +winter +wire +wisdom +wise +wish +witness +wolf +woman +wonder +wood +wool +word +work +world +worry +worth +wrap +wreck +wrestle +wrist +write +wrong +yard +year +yellow +you +young +youth +zebra +zero +zone +zoo +` diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/french.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/french.go new file mode 100644 index 000000000..1ae685d3a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/french.go @@ -0,0 +1,2071 @@ +package wordlists + +import ( + "fmt" + "hash/crc32" + "strings" +) + +func init() { + // Ensure word list is correct + // $ wget https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/french.txt + // $ crc32 french.txt + // 3e56b216 + checksum := crc32.ChecksumIEEE([]byte(french)) + if fmt.Sprintf("%x", checksum) != "3e56b216" { + panic("french checksum invalid") + } +} + +// French is a slice of mnemonic words taken from the bip39 specification +// https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/french.txt +var French = strings.Split(strings.TrimSpace(french), "\n") +var french = `abaisser +abandon +abdiquer +abeille +abolir +aborder +aboutir +aboyer +abrasif +abreuver +abriter +abroger +abrupt +absence +absolu +absurde +abusif +abyssal +académie +acajou +acarien +accabler +accepter +acclamer +accolade +accroche +accuser +acerbe +achat +acheter +aciduler +acier +acompte +acquérir +acronyme +acteur +actif +actuel +adepte +adéquat +adhésif +adjectif +adjuger +admettre +admirer +adopter +adorer +adoucir +adresse +adroit +adulte +adverbe +aérer +aéronef +affaire +affecter +affiche +affreux +affubler +agacer +agencer +agile +agiter +agrafer +agréable +agrume +aider +aiguille +ailier +aimable +aisance +ajouter +ajuster +alarmer +alchimie +alerte +algèbre +algue +aliéner +aliment +alléger +alliage +allouer +allumer +alourdir +alpaga +altesse +alvéole +amateur +ambigu +ambre +aménager +amertume +amidon +amiral +amorcer +amour +amovible +amphibie +ampleur +amusant +analyse +anaphore +anarchie +anatomie +ancien +anéantir +angle +angoisse +anguleux +animal +annexer +annonce +annuel +anodin +anomalie +anonyme +anormal +antenne +antidote +anxieux +apaiser +apéritif +aplanir +apologie +appareil +appeler +apporter +appuyer +aquarium +aqueduc +arbitre +arbuste +ardeur +ardoise +argent +arlequin +armature +armement +armoire +armure +arpenter +arracher +arriver +arroser +arsenic +artériel +article +aspect +asphalte +aspirer +assaut +asservir +assiette +associer +assurer +asticot +astre +astuce +atelier +atome +atrium +atroce +attaque +attentif +attirer +attraper +aubaine +auberge +audace +audible +augurer +aurore +automne +autruche +avaler +avancer +avarice +avenir +averse +aveugle +aviateur +avide +avion +aviser +avoine +avouer +avril +axial +axiome +badge +bafouer +bagage +baguette +baignade +balancer +balcon +baleine +balisage +bambin +bancaire +bandage +banlieue +bannière +banquier +barbier +baril +baron +barque +barrage +bassin +bastion +bataille +bateau +batterie +baudrier +bavarder +belette +bélier +belote +bénéfice +berceau +berger +berline +bermuda +besace +besogne +bétail +beurre +biberon +bicycle +bidule +bijou +bilan +bilingue +billard +binaire +biologie +biopsie +biotype +biscuit +bison +bistouri +bitume +bizarre +blafard +blague +blanchir +blessant +blinder +blond +bloquer +blouson +bobard +bobine +boire +boiser +bolide +bonbon +bondir +bonheur +bonifier +bonus +bordure +borne +botte +boucle +boueux +bougie +boulon +bouquin +bourse +boussole +boutique +boxeur +branche +brasier +brave +brebis +brèche +breuvage +bricoler +brigade +brillant +brioche +brique +brochure +broder +bronzer +brousse +broyeur +brume +brusque +brutal +bruyant +buffle +buisson +bulletin +bureau +burin +bustier +butiner +butoir +buvable +buvette +cabanon +cabine +cachette +cadeau +cadre +caféine +caillou +caisson +calculer +calepin +calibre +calmer +calomnie +calvaire +camarade +caméra +camion +campagne +canal +caneton +canon +cantine +canular +capable +caporal +caprice +capsule +capter +capuche +carabine +carbone +caresser +caribou +carnage +carotte +carreau +carton +cascade +casier +casque +cassure +causer +caution +cavalier +caverne +caviar +cédille +ceinture +céleste +cellule +cendrier +censurer +central +cercle +cérébral +cerise +cerner +cerveau +cesser +chagrin +chaise +chaleur +chambre +chance +chapitre +charbon +chasseur +chaton +chausson +chavirer +chemise +chenille +chéquier +chercher +cheval +chien +chiffre +chignon +chimère +chiot +chlorure +chocolat +choisir +chose +chouette +chrome +chute +cigare +cigogne +cimenter +cinéma +cintrer +circuler +cirer +cirque +citerne +citoyen +citron +civil +clairon +clameur +claquer +classe +clavier +client +cligner +climat +clivage +cloche +clonage +cloporte +cobalt +cobra +cocasse +cocotier +coder +codifier +coffre +cogner +cohésion +coiffer +coincer +colère +colibri +colline +colmater +colonel +combat +comédie +commande +compact +concert +conduire +confier +congeler +connoter +consonne +contact +convexe +copain +copie +corail +corbeau +cordage +corniche +corpus +correct +cortège +cosmique +costume +coton +coude +coupure +courage +couteau +couvrir +coyote +crabe +crainte +cravate +crayon +créature +créditer +crémeux +creuser +crevette +cribler +crier +cristal +critère +croire +croquer +crotale +crucial +cruel +crypter +cubique +cueillir +cuillère +cuisine +cuivre +culminer +cultiver +cumuler +cupide +curatif +curseur +cyanure +cycle +cylindre +cynique +daigner +damier +danger +danseur +dauphin +débattre +débiter +déborder +débrider +débutant +décaler +décembre +déchirer +décider +déclarer +décorer +décrire +décupler +dédale +déductif +déesse +défensif +défiler +défrayer +dégager +dégivrer +déglutir +dégrafer +déjeuner +délice +déloger +demander +demeurer +démolir +dénicher +dénouer +dentelle +dénuder +départ +dépenser +déphaser +déplacer +déposer +déranger +dérober +désastre +descente +désert +désigner +désobéir +dessiner +destrier +détacher +détester +détourer +détresse +devancer +devenir +deviner +devoir +diable +dialogue +diamant +dicter +différer +digérer +digital +digne +diluer +dimanche +diminuer +dioxyde +directif +diriger +discuter +disposer +dissiper +distance +divertir +diviser +docile +docteur +dogme +doigt +domaine +domicile +dompter +donateur +donjon +donner +dopamine +dortoir +dorure +dosage +doseur +dossier +dotation +douanier +double +douceur +douter +doyen +dragon +draper +dresser +dribbler +droiture +duperie +duplexe +durable +durcir +dynastie +éblouir +écarter +écharpe +échelle +éclairer +éclipse +éclore +écluse +école +économie +écorce +écouter +écraser +écrémer +écrivain +écrou +écume +écureuil +édifier +éduquer +effacer +effectif +effigie +effort +effrayer +effusion +égaliser +égarer +éjecter +élaborer +élargir +électron +élégant +éléphant +élève +éligible +élitisme +éloge +élucider +éluder +emballer +embellir +embryon +émeraude +émission +emmener +émotion +émouvoir +empereur +employer +emporter +emprise +émulsion +encadrer +enchère +enclave +encoche +endiguer +endosser +endroit +enduire +énergie +enfance +enfermer +enfouir +engager +engin +englober +énigme +enjamber +enjeu +enlever +ennemi +ennuyeux +enrichir +enrobage +enseigne +entasser +entendre +entier +entourer +entraver +énumérer +envahir +enviable +envoyer +enzyme +éolien +épaissir +épargne +épatant +épaule +épicerie +épidémie +épier +épilogue +épine +épisode +épitaphe +époque +épreuve +éprouver +épuisant +équerre +équipe +ériger +érosion +erreur +éruption +escalier +espadon +espèce +espiègle +espoir +esprit +esquiver +essayer +essence +essieu +essorer +estime +estomac +estrade +étagère +étaler +étanche +étatique +éteindre +étendoir +éternel +éthanol +éthique +ethnie +étirer +étoffer +étoile +étonnant +étourdir +étrange +étroit +étude +euphorie +évaluer +évasion +éventail +évidence +éviter +évolutif +évoquer +exact +exagérer +exaucer +exceller +excitant +exclusif +excuse +exécuter +exemple +exercer +exhaler +exhorter +exigence +exiler +exister +exotique +expédier +explorer +exposer +exprimer +exquis +extensif +extraire +exulter +fable +fabuleux +facette +facile +facture +faiblir +falaise +fameux +famille +farceur +farfelu +farine +farouche +fasciner +fatal +fatigue +faucon +fautif +faveur +favori +fébrile +féconder +fédérer +félin +femme +fémur +fendoir +féodal +fermer +féroce +ferveur +festival +feuille +feutre +février +fiasco +ficeler +fictif +fidèle +figure +filature +filetage +filière +filleul +filmer +filou +filtrer +financer +finir +fiole +firme +fissure +fixer +flairer +flamme +flasque +flatteur +fléau +flèche +fleur +flexion +flocon +flore +fluctuer +fluide +fluvial +folie +fonderie +fongible +fontaine +forcer +forgeron +formuler +fortune +fossile +foudre +fougère +fouiller +foulure +fourmi +fragile +fraise +franchir +frapper +frayeur +frégate +freiner +frelon +frémir +frénésie +frère +friable +friction +frisson +frivole +froid +fromage +frontal +frotter +fruit +fugitif +fuite +fureur +furieux +furtif +fusion +futur +gagner +galaxie +galerie +gambader +garantir +gardien +garnir +garrigue +gazelle +gazon +géant +gélatine +gélule +gendarme +général +génie +genou +gentil +géologie +géomètre +géranium +germe +gestuel +geyser +gibier +gicler +girafe +givre +glace +glaive +glisser +globe +gloire +glorieux +golfeur +gomme +gonfler +gorge +gorille +goudron +gouffre +goulot +goupille +gourmand +goutte +graduel +graffiti +graine +grand +grappin +gratuit +gravir +grenat +griffure +griller +grimper +grogner +gronder +grotte +groupe +gruger +grutier +gruyère +guépard +guerrier +guide +guimauve +guitare +gustatif +gymnaste +gyrostat +habitude +hachoir +halte +hameau +hangar +hanneton +haricot +harmonie +harpon +hasard +hélium +hématome +herbe +hérisson +hermine +héron +hésiter +heureux +hiberner +hibou +hilarant +histoire +hiver +homard +hommage +homogène +honneur +honorer +honteux +horde +horizon +horloge +hormone +horrible +houleux +housse +hublot +huileux +humain +humble +humide +humour +hurler +hydromel +hygiène +hymne +hypnose +idylle +ignorer +iguane +illicite +illusion +image +imbiber +imiter +immense +immobile +immuable +impact +impérial +implorer +imposer +imprimer +imputer +incarner +incendie +incident +incliner +incolore +indexer +indice +inductif +inédit +ineptie +inexact +infini +infliger +informer +infusion +ingérer +inhaler +inhiber +injecter +injure +innocent +inoculer +inonder +inscrire +insecte +insigne +insolite +inspirer +instinct +insulter +intact +intense +intime +intrigue +intuitif +inutile +invasion +inventer +inviter +invoquer +ironique +irradier +irréel +irriter +isoler +ivoire +ivresse +jaguar +jaillir +jambe +janvier +jardin +jauger +jaune +javelot +jetable +jeton +jeudi +jeunesse +joindre +joncher +jongler +joueur +jouissif +journal +jovial +joyau +joyeux +jubiler +jugement +junior +jupon +juriste +justice +juteux +juvénile +kayak +kimono +kiosque +label +labial +labourer +lacérer +lactose +lagune +laine +laisser +laitier +lambeau +lamelle +lampe +lanceur +langage +lanterne +lapin +largeur +larme +laurier +lavabo +lavoir +lecture +légal +léger +légume +lessive +lettre +levier +lexique +lézard +liasse +libérer +libre +licence +licorne +liège +lièvre +ligature +ligoter +ligue +limer +limite +limonade +limpide +linéaire +lingot +lionceau +liquide +lisière +lister +lithium +litige +littoral +livreur +logique +lointain +loisir +lombric +loterie +louer +lourd +loutre +louve +loyal +lubie +lucide +lucratif +lueur +lugubre +luisant +lumière +lunaire +lundi +luron +lutter +luxueux +machine +magasin +magenta +magique +maigre +maillon +maintien +mairie +maison +majorer +malaxer +maléfice +malheur +malice +mallette +mammouth +mandater +maniable +manquant +manteau +manuel +marathon +marbre +marchand +mardi +maritime +marqueur +marron +marteler +mascotte +massif +matériel +matière +matraque +maudire +maussade +mauve +maximal +méchant +méconnu +médaille +médecin +méditer +méduse +meilleur +mélange +mélodie +membre +mémoire +menacer +mener +menhir +mensonge +mentor +mercredi +mérite +merle +messager +mesure +métal +météore +méthode +métier +meuble +miauler +microbe +miette +mignon +migrer +milieu +million +mimique +mince +minéral +minimal +minorer +minute +miracle +miroiter +missile +mixte +mobile +moderne +moelleux +mondial +moniteur +monnaie +monotone +monstre +montagne +monument +moqueur +morceau +morsure +mortier +moteur +motif +mouche +moufle +moulin +mousson +mouton +mouvant +multiple +munition +muraille +murène +murmure +muscle +muséum +musicien +mutation +muter +mutuel +myriade +myrtille +mystère +mythique +nageur +nappe +narquois +narrer +natation +nation +nature +naufrage +nautique +navire +nébuleux +nectar +néfaste +négation +négliger +négocier +neige +nerveux +nettoyer +neurone +neutron +neveu +niche +nickel +nitrate +niveau +noble +nocif +nocturne +noirceur +noisette +nomade +nombreux +nommer +normatif +notable +notifier +notoire +nourrir +nouveau +novateur +novembre +novice +nuage +nuancer +nuire +nuisible +numéro +nuptial +nuque +nutritif +obéir +objectif +obliger +obscur +observer +obstacle +obtenir +obturer +occasion +occuper +océan +octobre +octroyer +octupler +oculaire +odeur +odorant +offenser +officier +offrir +ogive +oiseau +oisillon +olfactif +olivier +ombrage +omettre +onctueux +onduler +onéreux +onirique +opale +opaque +opérer +opinion +opportun +opprimer +opter +optique +orageux +orange +orbite +ordonner +oreille +organe +orgueil +orifice +ornement +orque +ortie +osciller +osmose +ossature +otarie +ouragan +ourson +outil +outrager +ouvrage +ovation +oxyde +oxygène +ozone +paisible +palace +palmarès +palourde +palper +panache +panda +pangolin +paniquer +panneau +panorama +pantalon +papaye +papier +papoter +papyrus +paradoxe +parcelle +paresse +parfumer +parler +parole +parrain +parsemer +partager +parure +parvenir +passion +pastèque +paternel +patience +patron +pavillon +pavoiser +payer +paysage +peigne +peintre +pelage +pélican +pelle +pelouse +peluche +pendule +pénétrer +pénible +pensif +pénurie +pépite +péplum +perdrix +perforer +période +permuter +perplexe +persil +perte +peser +pétale +petit +pétrir +peuple +pharaon +phobie +phoque +photon +phrase +physique +piano +pictural +pièce +pierre +pieuvre +pilote +pinceau +pipette +piquer +pirogue +piscine +piston +pivoter +pixel +pizza +placard +plafond +plaisir +planer +plaque +plastron +plateau +pleurer +plexus +pliage +plomb +plonger +pluie +plumage +pochette +poésie +poète +pointe +poirier +poisson +poivre +polaire +policier +pollen +polygone +pommade +pompier +ponctuel +pondérer +poney +portique +position +posséder +posture +potager +poteau +potion +pouce +poulain +poumon +pourpre +poussin +pouvoir +prairie +pratique +précieux +prédire +préfixe +prélude +prénom +présence +prétexte +prévoir +primitif +prince +prison +priver +problème +procéder +prodige +profond +progrès +proie +projeter +prologue +promener +propre +prospère +protéger +prouesse +proverbe +prudence +pruneau +psychose +public +puceron +puiser +pulpe +pulsar +punaise +punitif +pupitre +purifier +puzzle +pyramide +quasar +querelle +question +quiétude +quitter +quotient +racine +raconter +radieux +ragondin +raideur +raisin +ralentir +rallonge +ramasser +rapide +rasage +ratisser +ravager +ravin +rayonner +réactif +réagir +réaliser +réanimer +recevoir +réciter +réclamer +récolter +recruter +reculer +recycler +rédiger +redouter +refaire +réflexe +réformer +refrain +refuge +régalien +région +réglage +régulier +réitérer +rejeter +rejouer +relatif +relever +relief +remarque +remède +remise +remonter +remplir +remuer +renard +renfort +renifler +renoncer +rentrer +renvoi +replier +reporter +reprise +reptile +requin +réserve +résineux +résoudre +respect +rester +résultat +rétablir +retenir +réticule +retomber +retracer +réunion +réussir +revanche +revivre +révolte +révulsif +richesse +rideau +rieur +rigide +rigoler +rincer +riposter +risible +risque +rituel +rival +rivière +rocheux +romance +rompre +ronce +rondin +roseau +rosier +rotatif +rotor +rotule +rouge +rouille +rouleau +routine +royaume +ruban +rubis +ruche +ruelle +rugueux +ruiner +ruisseau +ruser +rustique +rythme +sabler +saboter +sabre +sacoche +safari +sagesse +saisir +salade +salive +salon +saluer +samedi +sanction +sanglier +sarcasme +sardine +saturer +saugrenu +saumon +sauter +sauvage +savant +savonner +scalpel +scandale +scélérat +scénario +sceptre +schéma +science +scinder +score +scrutin +sculpter +séance +sécable +sécher +secouer +sécréter +sédatif +séduire +seigneur +séjour +sélectif +semaine +sembler +semence +séminal +sénateur +sensible +sentence +séparer +séquence +serein +sergent +sérieux +serrure +sérum +service +sésame +sévir +sevrage +sextuple +sidéral +siècle +siéger +siffler +sigle +signal +silence +silicium +simple +sincère +sinistre +siphon +sirop +sismique +situer +skier +social +socle +sodium +soigneux +soldat +soleil +solitude +soluble +sombre +sommeil +somnoler +sonde +songeur +sonnette +sonore +sorcier +sortir +sosie +sottise +soucieux +soudure +souffle +soulever +soupape +source +soutirer +souvenir +spacieux +spatial +spécial +sphère +spiral +stable +station +sternum +stimulus +stipuler +strict +studieux +stupeur +styliste +sublime +substrat +subtil +subvenir +succès +sucre +suffixe +suggérer +suiveur +sulfate +superbe +supplier +surface +suricate +surmener +surprise +sursaut +survie +suspect +syllabe +symbole +symétrie +synapse +syntaxe +système +tabac +tablier +tactile +tailler +talent +talisman +talonner +tambour +tamiser +tangible +tapis +taquiner +tarder +tarif +tartine +tasse +tatami +tatouage +taupe +taureau +taxer +témoin +temporel +tenaille +tendre +teneur +tenir +tension +terminer +terne +terrible +tétine +texte +thème +théorie +thérapie +thorax +tibia +tiède +timide +tirelire +tiroir +tissu +titane +titre +tituber +toboggan +tolérant +tomate +tonique +tonneau +toponyme +torche +tordre +tornade +torpille +torrent +torse +tortue +totem +toucher +tournage +tousser +toxine +traction +trafic +tragique +trahir +train +trancher +travail +trèfle +tremper +trésor +treuil +triage +tribunal +tricoter +trilogie +triomphe +tripler +triturer +trivial +trombone +tronc +tropical +troupeau +tuile +tulipe +tumulte +tunnel +turbine +tuteur +tutoyer +tuyau +tympan +typhon +typique +tyran +ubuesque +ultime +ultrason +unanime +unifier +union +unique +unitaire +univers +uranium +urbain +urticant +usage +usine +usuel +usure +utile +utopie +vacarme +vaccin +vagabond +vague +vaillant +vaincre +vaisseau +valable +valise +vallon +valve +vampire +vanille +vapeur +varier +vaseux +vassal +vaste +vecteur +vedette +végétal +véhicule +veinard +véloce +vendredi +vénérer +venger +venimeux +ventouse +verdure +vérin +vernir +verrou +verser +vertu +veston +vétéran +vétuste +vexant +vexer +viaduc +viande +victoire +vidange +vidéo +vignette +vigueur +vilain +village +vinaigre +violon +vipère +virement +virtuose +virus +visage +viseur +vision +visqueux +visuel +vital +vitesse +viticole +vitrine +vivace +vivipare +vocation +voguer +voile +voisin +voiture +volaille +volcan +voltiger +volume +vorace +vortex +voter +vouloir +voyage +voyelle +wagon +xénon +yacht +zèbre +zénith +zeste +zoologie +` diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/italian.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/italian.go new file mode 100644 index 000000000..32cd2cf6d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/italian.go @@ -0,0 +1,2071 @@ +package wordlists + +import ( + "fmt" + "hash/crc32" + "strings" +) + +func init() { + // Ensure word list is correct + // $ wget https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/italian.txt + // $ crc32 italian.txt + // 2fc7d07e + checksum := crc32.ChecksumIEEE([]byte(italian)) + if fmt.Sprintf("%x", checksum) != "2fc7d07e" { + panic("italian checksum invalid") + } +} + +// Italian is a slice of mnemonic words taken from the bip39 specification +// https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/italian.txt +var Italian = strings.Split(strings.TrimSpace(italian), "\n") +var italian = `abaco +abbaglio +abbinato +abete +abisso +abolire +abrasivo +abrogato +accadere +accenno +accusato +acetone +achille +acido +acqua +acre +acrilico +acrobata +acuto +adagio +addebito +addome +adeguato +aderire +adipe +adottare +adulare +affabile +affetto +affisso +affranto +aforisma +afoso +africano +agave +agente +agevole +aggancio +agire +agitare +agonismo +agricolo +agrumeto +aguzzo +alabarda +alato +albatro +alberato +albo +albume +alce +alcolico +alettone +alfa +algebra +aliante +alibi +alimento +allagato +allegro +allievo +allodola +allusivo +almeno +alogeno +alpaca +alpestre +altalena +alterno +alticcio +altrove +alunno +alveolo +alzare +amalgama +amanita +amarena +ambito +ambrato +ameba +america +ametista +amico +ammasso +ammenda +ammirare +ammonito +amore +ampio +ampliare +amuleto +anacardo +anagrafe +analista +anarchia +anatra +anca +ancella +ancora +andare +andrea +anello +angelo +angolare +angusto +anima +annegare +annidato +anno +annuncio +anonimo +anticipo +anzi +apatico +apertura +apode +apparire +appetito +appoggio +approdo +appunto +aprile +arabica +arachide +aragosta +araldica +arancio +aratura +arazzo +arbitro +archivio +ardito +arenile +argento +argine +arguto +aria +armonia +arnese +arredato +arringa +arrosto +arsenico +arso +artefice +arzillo +asciutto +ascolto +asepsi +asettico +asfalto +asino +asola +aspirato +aspro +assaggio +asse +assoluto +assurdo +asta +astenuto +astice +astratto +atavico +ateismo +atomico +atono +attesa +attivare +attorno +attrito +attuale +ausilio +austria +autista +autonomo +autunno +avanzato +avere +avvenire +avviso +avvolgere +azione +azoto +azzimo +azzurro +babele +baccano +bacino +baco +badessa +badilata +bagnato +baita +balcone +baldo +balena +ballata +balzano +bambino +bandire +baraonda +barbaro +barca +baritono +barlume +barocco +basilico +basso +batosta +battuto +baule +bava +bavosa +becco +beffa +belgio +belva +benda +benevole +benigno +benzina +bere +berlina +beta +bibita +bici +bidone +bifido +biga +bilancia +bimbo +binocolo +biologo +bipede +bipolare +birbante +birra +biscotto +bisesto +bisnonno +bisonte +bisturi +bizzarro +blando +blatta +bollito +bonifico +bordo +bosco +botanico +bottino +bozzolo +braccio +bradipo +brama +branca +bravura +bretella +brevetto +brezza +briglia +brillante +brindare +broccolo +brodo +bronzina +brullo +bruno +bubbone +buca +budino +buffone +buio +bulbo +buono +burlone +burrasca +bussola +busta +cadetto +caduco +calamaro +calcolo +calesse +calibro +calmo +caloria +cambusa +camerata +camicia +cammino +camola +campale +canapa +candela +cane +canino +canotto +cantina +capace +capello +capitolo +capogiro +cappero +capra +capsula +carapace +carcassa +cardo +carisma +carovana +carretto +cartolina +casaccio +cascata +caserma +caso +cassone +castello +casuale +catasta +catena +catrame +cauto +cavillo +cedibile +cedrata +cefalo +celebre +cellulare +cena +cenone +centesimo +ceramica +cercare +certo +cerume +cervello +cesoia +cespo +ceto +chela +chiaro +chicca +chiedere +chimera +china +chirurgo +chitarra +ciao +ciclismo +cifrare +cigno +cilindro +ciottolo +circa +cirrosi +citrico +cittadino +ciuffo +civetta +civile +classico +clinica +cloro +cocco +codardo +codice +coerente +cognome +collare +colmato +colore +colposo +coltivato +colza +coma +cometa +commando +comodo +computer +comune +conciso +condurre +conferma +congelare +coniuge +connesso +conoscere +consumo +continuo +convegno +coperto +copione +coppia +copricapo +corazza +cordata +coricato +cornice +corolla +corpo +corredo +corsia +cortese +cosmico +costante +cottura +covato +cratere +cravatta +creato +credere +cremoso +crescita +creta +criceto +crinale +crisi +critico +croce +cronaca +crostata +cruciale +crusca +cucire +cuculo +cugino +cullato +cupola +curatore +cursore +curvo +cuscino +custode +dado +daino +dalmata +damerino +daniela +dannoso +danzare +datato +davanti +davvero +debutto +decennio +deciso +declino +decollo +decreto +dedicato +definito +deforme +degno +delegare +delfino +delirio +delta +demenza +denotato +dentro +deposito +derapata +derivare +deroga +descritto +deserto +desiderio +desumere +detersivo +devoto +diametro +dicembre +diedro +difeso +diffuso +digerire +digitale +diluvio +dinamico +dinnanzi +dipinto +diploma +dipolo +diradare +dire +dirotto +dirupo +disagio +discreto +disfare +disgelo +disposto +distanza +disumano +dito +divano +divelto +dividere +divorato +doblone +docente +doganale +dogma +dolce +domato +domenica +dominare +dondolo +dono +dormire +dote +dottore +dovuto +dozzina +drago +druido +dubbio +dubitare +ducale +duna +duomo +duplice +duraturo +ebano +eccesso +ecco +eclissi +economia +edera +edicola +edile +editoria +educare +egemonia +egli +egoismo +egregio +elaborato +elargire +elegante +elencato +eletto +elevare +elfico +elica +elmo +elsa +eluso +emanato +emblema +emesso +emiro +emotivo +emozione +empirico +emulo +endemico +enduro +energia +enfasi +enoteca +entrare +enzima +epatite +epilogo +episodio +epocale +eppure +equatore +erario +erba +erboso +erede +eremita +erigere +ermetico +eroe +erosivo +errante +esagono +esame +esanime +esaudire +esca +esempio +esercito +esibito +esigente +esistere +esito +esofago +esortato +esoso +espanso +espresso +essenza +esso +esteso +estimare +estonia +estroso +esultare +etilico +etnico +etrusco +etto +euclideo +europa +evaso +evidenza +evitato +evoluto +evviva +fabbrica +faccenda +fachiro +falco +famiglia +fanale +fanfara +fango +fantasma +fare +farfalla +farinoso +farmaco +fascia +fastoso +fasullo +faticare +fato +favoloso +febbre +fecola +fede +fegato +felpa +feltro +femmina +fendere +fenomeno +fermento +ferro +fertile +fessura +festivo +fetta +feudo +fiaba +fiducia +fifa +figurato +filo +finanza +finestra +finire +fiore +fiscale +fisico +fiume +flacone +flamenco +flebo +flemma +florido +fluente +fluoro +fobico +focaccia +focoso +foderato +foglio +folata +folclore +folgore +fondente +fonetico +fonia +fontana +forbito +forchetta +foresta +formica +fornaio +foro +fortezza +forzare +fosfato +fosso +fracasso +frana +frassino +fratello +freccetta +frenata +fresco +frigo +frollino +fronde +frugale +frutta +fucilata +fucsia +fuggente +fulmine +fulvo +fumante +fumetto +fumoso +fune +funzione +fuoco +furbo +furgone +furore +fuso +futile +gabbiano +gaffe +galateo +gallina +galoppo +gambero +gamma +garanzia +garbo +garofano +garzone +gasdotto +gasolio +gastrico +gatto +gaudio +gazebo +gazzella +geco +gelatina +gelso +gemello +gemmato +gene +genitore +gennaio +genotipo +gergo +ghepardo +ghiaccio +ghisa +giallo +gilda +ginepro +giocare +gioiello +giorno +giove +girato +girone +gittata +giudizio +giurato +giusto +globulo +glutine +gnomo +gobba +golf +gomito +gommone +gonfio +gonna +governo +gracile +grado +grafico +grammo +grande +grattare +gravoso +grazia +greca +gregge +grifone +grigio +grinza +grotta +gruppo +guadagno +guaio +guanto +guardare +gufo +guidare +ibernato +icona +identico +idillio +idolo +idra +idrico +idrogeno +igiene +ignaro +ignorato +ilare +illeso +illogico +illudere +imballo +imbevuto +imbocco +imbuto +immane +immerso +immolato +impacco +impeto +impiego +importo +impronta +inalare +inarcare +inattivo +incanto +incendio +inchino +incisivo +incluso +incontro +incrocio +incubo +indagine +india +indole +inedito +infatti +infilare +inflitto +ingaggio +ingegno +inglese +ingordo +ingrosso +innesco +inodore +inoltrare +inondato +insano +insetto +insieme +insonnia +insulina +intasato +intero +intonaco +intuito +inumidire +invalido +invece +invito +iperbole +ipnotico +ipotesi +ippica +iride +irlanda +ironico +irrigato +irrorare +isolato +isotopo +isterico +istituto +istrice +italia +iterare +labbro +labirinto +lacca +lacerato +lacrima +lacuna +laddove +lago +lampo +lancetta +lanterna +lardoso +larga +laringe +lastra +latenza +latino +lattuga +lavagna +lavoro +legale +leggero +lembo +lentezza +lenza +leone +lepre +lesivo +lessato +lesto +letterale +leva +levigato +libero +lido +lievito +lilla +limatura +limitare +limpido +lineare +lingua +liquido +lira +lirica +lisca +lite +litigio +livrea +locanda +lode +logica +lombare +londra +longevo +loquace +lorenzo +loto +lotteria +luce +lucidato +lumaca +luminoso +lungo +lupo +luppolo +lusinga +lusso +lutto +macabro +macchina +macero +macinato +madama +magico +maglia +magnete +magro +maiolica +malafede +malgrado +malinteso +malsano +malto +malumore +mana +mancia +mandorla +mangiare +manifesto +mannaro +manovra +mansarda +mantide +manubrio +mappa +maratona +marcire +maretta +marmo +marsupio +maschera +massaia +mastino +materasso +matricola +mattone +maturo +mazurca +meandro +meccanico +mecenate +medesimo +meditare +mega +melassa +melis +melodia +meninge +meno +mensola +mercurio +merenda +merlo +meschino +mese +messere +mestolo +metallo +metodo +mettere +miagolare +mica +micelio +michele +microbo +midollo +miele +migliore +milano +milite +mimosa +minerale +mini +minore +mirino +mirtillo +miscela +missiva +misto +misurare +mitezza +mitigare +mitra +mittente +mnemonico +modello +modifica +modulo +mogano +mogio +mole +molosso +monastero +monco +mondina +monetario +monile +monotono +monsone +montato +monviso +mora +mordere +morsicato +mostro +motivato +motosega +motto +movenza +movimento +mozzo +mucca +mucosa +muffa +mughetto +mugnaio +mulatto +mulinello +multiplo +mummia +munto +muovere +murale +musa +muscolo +musica +mutevole +muto +nababbo +nafta +nanometro +narciso +narice +narrato +nascere +nastrare +naturale +nautica +naviglio +nebulosa +necrosi +negativo +negozio +nemmeno +neofita +neretto +nervo +nessuno +nettuno +neutrale +neve +nevrotico +nicchia +ninfa +nitido +nobile +nocivo +nodo +nome +nomina +nordico +normale +norvegese +nostrano +notare +notizia +notturno +novella +nucleo +nulla +numero +nuovo +nutrire +nuvola +nuziale +oasi +obbedire +obbligo +obelisco +oblio +obolo +obsoleto +occasione +occhio +occidente +occorrere +occultare +ocra +oculato +odierno +odorare +offerta +offrire +offuscato +oggetto +oggi +ognuno +olandese +olfatto +oliato +oliva +ologramma +oltre +omaggio +ombelico +ombra +omega +omissione +ondoso +onere +onice +onnivoro +onorevole +onta +operato +opinione +opposto +oracolo +orafo +ordine +orecchino +orefice +orfano +organico +origine +orizzonte +orma +ormeggio +ornativo +orologio +orrendo +orribile +ortensia +ortica +orzata +orzo +osare +oscurare +osmosi +ospedale +ospite +ossa +ossidare +ostacolo +oste +otite +otre +ottagono +ottimo +ottobre +ovale +ovest +ovino +oviparo +ovocito +ovunque +ovviare +ozio +pacchetto +pace +pacifico +padella +padrone +paese +paga +pagina +palazzina +palesare +pallido +palo +palude +pandoro +pannello +paolo +paonazzo +paprica +parabola +parcella +parere +pargolo +pari +parlato +parola +partire +parvenza +parziale +passivo +pasticca +patacca +patologia +pattume +pavone +peccato +pedalare +pedonale +peggio +peloso +penare +pendice +penisola +pennuto +penombra +pensare +pentola +pepe +pepita +perbene +percorso +perdonato +perforare +pergamena +periodo +permesso +perno +perplesso +persuaso +pertugio +pervaso +pesatore +pesista +peso +pestifero +petalo +pettine +petulante +pezzo +piacere +pianta +piattino +piccino +picozza +piega +pietra +piffero +pigiama +pigolio +pigro +pila +pilifero +pillola +pilota +pimpante +pineta +pinna +pinolo +pioggia +piombo +piramide +piretico +pirite +pirolisi +pitone +pizzico +placebo +planare +plasma +platano +plenario +pochezza +poderoso +podismo +poesia +poggiare +polenta +poligono +pollice +polmonite +polpetta +polso +poltrona +polvere +pomice +pomodoro +ponte +popoloso +porfido +poroso +porpora +porre +portata +posa +positivo +possesso +postulato +potassio +potere +pranzo +prassi +pratica +precluso +predica +prefisso +pregiato +prelievo +premere +prenotare +preparato +presenza +pretesto +prevalso +prima +principe +privato +problema +procura +produrre +profumo +progetto +prolunga +promessa +pronome +proposta +proroga +proteso +prova +prudente +prugna +prurito +psiche +pubblico +pudica +pugilato +pugno +pulce +pulito +pulsante +puntare +pupazzo +pupilla +puro +quadro +qualcosa +quasi +querela +quota +raccolto +raddoppio +radicale +radunato +raffica +ragazzo +ragione +ragno +ramarro +ramingo +ramo +randagio +rantolare +rapato +rapina +rappreso +rasatura +raschiato +rasente +rassegna +rastrello +rata +ravveduto +reale +recepire +recinto +recluta +recondito +recupero +reddito +redimere +regalato +registro +regola +regresso +relazione +remare +remoto +renna +replica +reprimere +reputare +resa +residente +responso +restauro +rete +retina +retorica +rettifica +revocato +riassunto +ribadire +ribelle +ribrezzo +ricarica +ricco +ricevere +riciclato +ricordo +ricreduto +ridicolo +ridurre +rifasare +riflesso +riforma +rifugio +rigare +rigettato +righello +rilassato +rilevato +rimanere +rimbalzo +rimedio +rimorchio +rinascita +rincaro +rinforzo +rinnovo +rinomato +rinsavito +rintocco +rinuncia +rinvenire +riparato +ripetuto +ripieno +riportare +ripresa +ripulire +risata +rischio +riserva +risibile +riso +rispetto +ristoro +risultato +risvolto +ritardo +ritegno +ritmico +ritrovo +riunione +riva +riverso +rivincita +rivolto +rizoma +roba +robotico +robusto +roccia +roco +rodaggio +rodere +roditore +rogito +rollio +romantico +rompere +ronzio +rosolare +rospo +rotante +rotondo +rotula +rovescio +rubizzo +rubrica +ruga +rullino +rumine +rumoroso +ruolo +rupe +russare +rustico +sabato +sabbiare +sabotato +sagoma +salasso +saldatura +salgemma +salivare +salmone +salone +saltare +saluto +salvo +sapere +sapido +saporito +saraceno +sarcasmo +sarto +sassoso +satellite +satira +satollo +saturno +savana +savio +saziato +sbadiglio +sbalzo +sbancato +sbarra +sbattere +sbavare +sbendare +sbirciare +sbloccato +sbocciato +sbrinare +sbruffone +sbuffare +scabroso +scadenza +scala +scambiare +scandalo +scapola +scarso +scatenare +scavato +scelto +scenico +scettro +scheda +schiena +sciarpa +scienza +scindere +scippo +sciroppo +scivolo +sclerare +scodella +scolpito +scomparto +sconforto +scoprire +scorta +scossone +scozzese +scriba +scrollare +scrutinio +scuderia +scultore +scuola +scuro +scusare +sdebitare +sdoganare +seccatura +secondo +sedano +seggiola +segnalato +segregato +seguito +selciato +selettivo +sella +selvaggio +semaforo +sembrare +seme +seminato +sempre +senso +sentire +sepolto +sequenza +serata +serbato +sereno +serio +serpente +serraglio +servire +sestina +setola +settimana +sfacelo +sfaldare +sfamato +sfarzoso +sfaticato +sfera +sfida +sfilato +sfinge +sfocato +sfoderare +sfogo +sfoltire +sforzato +sfratto +sfruttato +sfuggito +sfumare +sfuso +sgabello +sgarbato +sgonfiare +sgorbio +sgrassato +sguardo +sibilo +siccome +sierra +sigla +signore +silenzio +sillaba +simbolo +simpatico +simulato +sinfonia +singolo +sinistro +sino +sintesi +sinusoide +sipario +sisma +sistole +situato +slitta +slogatura +sloveno +smarrito +smemorato +smentito +smeraldo +smilzo +smontare +smottato +smussato +snellire +snervato +snodo +sobbalzo +sobrio +soccorso +sociale +sodale +soffitto +sogno +soldato +solenne +solido +sollazzo +solo +solubile +solvente +somatico +somma +sonda +sonetto +sonnifero +sopire +soppeso +sopra +sorgere +sorpasso +sorriso +sorso +sorteggio +sorvolato +sospiro +sosta +sottile +spada +spalla +spargere +spatola +spavento +spazzola +specie +spedire +spegnere +spelatura +speranza +spessore +spettrale +spezzato +spia +spigoloso +spillato +spinoso +spirale +splendido +sportivo +sposo +spranga +sprecare +spronato +spruzzo +spuntino +squillo +sradicare +srotolato +stabile +stacco +staffa +stagnare +stampato +stantio +starnuto +stasera +statuto +stelo +steppa +sterzo +stiletto +stima +stirpe +stivale +stizzoso +stonato +storico +strappo +stregato +stridulo +strozzare +strutto +stuccare +stufo +stupendo +subentro +succoso +sudore +suggerito +sugo +sultano +suonare +superbo +supporto +surgelato +surrogato +sussurro +sutura +svagare +svedese +sveglio +svelare +svenuto +svezia +sviluppo +svista +svizzera +svolta +svuotare +tabacco +tabulato +tacciare +taciturno +tale +talismano +tampone +tannino +tara +tardivo +targato +tariffa +tarpare +tartaruga +tasto +tattico +taverna +tavolata +tazza +teca +tecnico +telefono +temerario +tempo +temuto +tendone +tenero +tensione +tentacolo +teorema +terme +terrazzo +terzetto +tesi +tesserato +testato +tetro +tettoia +tifare +tigella +timbro +tinto +tipico +tipografo +tiraggio +tiro +titanio +titolo +titubante +tizio +tizzone +toccare +tollerare +tolto +tombola +tomo +tonfo +tonsilla +topazio +topologia +toppa +torba +tornare +torrone +tortora +toscano +tossire +tostatura +totano +trabocco +trachea +trafila +tragedia +tralcio +tramonto +transito +trapano +trarre +trasloco +trattato +trave +treccia +tremolio +trespolo +tributo +tricheco +trifoglio +trillo +trincea +trio +tristezza +triturato +trivella +tromba +trono +troppo +trottola +trovare +truccato +tubatura +tuffato +tulipano +tumulto +tunisia +turbare +turchino +tuta +tutela +ubicato +uccello +uccisore +udire +uditivo +uffa +ufficio +uguale +ulisse +ultimato +umano +umile +umorismo +uncinetto +ungere +ungherese +unicorno +unificato +unisono +unitario +unte +uovo +upupa +uragano +urgenza +urlo +usanza +usato +uscito +usignolo +usuraio +utensile +utilizzo +utopia +vacante +vaccinato +vagabondo +vagliato +valanga +valgo +valico +valletta +valoroso +valutare +valvola +vampata +vangare +vanitoso +vano +vantaggio +vanvera +vapore +varano +varcato +variante +vasca +vedetta +vedova +veduto +vegetale +veicolo +velcro +velina +velluto +veloce +venato +vendemmia +vento +verace +verbale +vergogna +verifica +vero +verruca +verticale +vescica +vessillo +vestale +veterano +vetrina +vetusto +viandante +vibrante +vicenda +vichingo +vicinanza +vidimare +vigilia +vigneto +vigore +vile +villano +vimini +vincitore +viola +vipera +virgola +virologo +virulento +viscoso +visione +vispo +vissuto +visura +vita +vitello +vittima +vivanda +vivido +viziare +voce +voga +volatile +volere +volpe +voragine +vulcano +zampogna +zanna +zappato +zattera +zavorra +zefiro +zelante +zelo +zenzero +zerbino +zibetto +zinco +zircone +zitto +zolla +zotico +zucchero +zufolo +zulu +zuppa +` diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/japanese.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/japanese.go new file mode 100644 index 000000000..23a76a343 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/japanese.go @@ -0,0 +1,2071 @@ +package wordlists + +import ( + "fmt" + "hash/crc32" + "strings" +) + +func init() { + // Ensure word list is correct + // $ wget https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/japanese.txt + // $ crc32 japanese.txt + // 0acc1419 + checksum := crc32.ChecksumIEEE([]byte(japanese)) + if fmt.Sprintf("%x", checksum) != "acc1419" { + panic(fmt.Sprintf("japanese checksum invalid: %x", checksum)) + } +} + +// Japanese is a slice of mnemonic words taken from the bip39 specification +// https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/japanese.txt +var Japanese = strings.Split(strings.TrimSpace(japanese), "\n") +var japanese = `あいこくしん +あいさつ +あいだ +あおぞら +あかちゃん +あきる +あけがた +あける +あこがれる +あさい +あさひ +あしあと +あじわう +あずかる +あずき +あそぶ +あたえる +あたためる +あたりまえ +あたる +あつい +あつかう +あっしゅく +あつまり +あつめる +あてな +あてはまる +あひる +あぶら +あぶる +あふれる +あまい +あまど +あまやかす +あまり +あみもの +あめりか +あやまる +あゆむ +あらいぐま +あらし +あらすじ +あらためる +あらゆる +あらわす +ありがとう +あわせる +あわてる +あんい +あんがい +あんこ +あんぜん +あんてい +あんない +あんまり +いいだす +いおん +いがい +いがく +いきおい +いきなり +いきもの +いきる +いくじ +いくぶん +いけばな +いけん +いこう +いこく +いこつ +いさましい +いさん +いしき +いじゅう +いじょう +いじわる +いずみ +いずれ +いせい +いせえび +いせかい +いせき +いぜん +いそうろう +いそがしい +いだい +いだく +いたずら +いたみ +いたりあ +いちおう +いちじ +いちど +いちば +いちぶ +いちりゅう +いつか +いっしゅん +いっせい +いっそう +いったん +いっち +いってい +いっぽう +いてざ +いてん +いどう +いとこ +いない +いなか +いねむり +いのち +いのる +いはつ +いばる +いはん +いびき +いひん +いふく +いへん +いほう +いみん +いもうと +いもたれ +いもり +いやがる +いやす +いよかん +いよく +いらい +いらすと +いりぐち +いりょう +いれい +いれもの +いれる +いろえんぴつ +いわい +いわう +いわかん +いわば +いわゆる +いんげんまめ +いんさつ +いんしょう +いんよう +うえき +うえる +うおざ +うがい +うかぶ +うかべる +うきわ +うくらいな +うくれれ +うけたまわる +うけつけ +うけとる +うけもつ +うける +うごかす +うごく +うこん +うさぎ +うしなう +うしろがみ +うすい +うすぎ +うすぐらい +うすめる +うせつ +うちあわせ +うちがわ +うちき +うちゅう +うっかり +うつくしい +うったえる +うつる +うどん +うなぎ +うなじ +うなずく +うなる +うねる +うのう +うぶげ +うぶごえ +うまれる +うめる +うもう +うやまう +うよく +うらがえす +うらぐち +うらない +うりあげ +うりきれ +うるさい +うれしい +うれゆき +うれる +うろこ +うわき +うわさ +うんこう +うんちん +うんてん +うんどう +えいえん +えいが +えいきょう +えいご +えいせい +えいぶん +えいよう +えいわ +えおり +えがお +えがく +えきたい +えくせる +えしゃく +えすて +えつらん +えのぐ +えほうまき +えほん +えまき +えもじ +えもの +えらい +えらぶ +えりあ +えんえん +えんかい +えんぎ +えんげき +えんしゅう +えんぜつ +えんそく +えんちょう +えんとつ +おいかける +おいこす +おいしい +おいつく +おうえん +おうさま +おうじ +おうせつ +おうたい +おうふく +おうべい +おうよう +おえる +おおい +おおう +おおどおり +おおや +おおよそ +おかえり +おかず +おがむ +おかわり +おぎなう +おきる +おくさま +おくじょう +おくりがな +おくる +おくれる +おこす +おこなう +おこる +おさえる +おさない +おさめる +おしいれ +おしえる +おじぎ +おじさん +おしゃれ +おそらく +おそわる +おたがい +おたく +おだやか +おちつく +おっと +おつり +おでかけ +おとしもの +おとなしい +おどり +おどろかす +おばさん +おまいり +おめでとう +おもいで +おもう +おもたい +おもちゃ +おやつ +おやゆび +およぼす +おらんだ +おろす +おんがく +おんけい +おんしゃ +おんせん +おんだん +おんちゅう +おんどけい +かあつ +かいが +がいき +がいけん +がいこう +かいさつ +かいしゃ +かいすいよく +かいぜん +かいぞうど +かいつう +かいてん +かいとう +かいふく +がいへき +かいほう +かいよう +がいらい +かいわ +かえる +かおり +かかえる +かがく +かがし +かがみ +かくご +かくとく +かざる +がぞう +かたい +かたち +がちょう +がっきゅう +がっこう +がっさん +がっしょう +かなざわし +かのう +がはく +かぶか +かほう +かほご +かまう +かまぼこ +かめれおん +かゆい +かようび +からい +かるい +かろう +かわく +かわら +がんか +かんけい +かんこう +かんしゃ +かんそう +かんたん +かんち +がんばる +きあい +きあつ +きいろ +ぎいん +きうい +きうん +きえる +きおう +きおく +きおち +きおん +きかい +きかく +きかんしゃ +ききて +きくばり +きくらげ +きけんせい +きこう +きこえる +きこく +きさい +きさく +きさま +きさらぎ +ぎじかがく +ぎしき +ぎじたいけん +ぎじにってい +ぎじゅつしゃ +きすう +きせい +きせき +きせつ +きそう +きぞく +きぞん +きたえる +きちょう +きつえん +ぎっちり +きつつき +きつね +きてい +きどう +きどく +きない +きなが +きなこ +きぬごし +きねん +きのう +きのした +きはく +きびしい +きひん +きふく +きぶん +きぼう +きほん +きまる +きみつ +きむずかしい +きめる +きもだめし +きもち +きもの +きゃく +きやく +ぎゅうにく +きよう +きょうりゅう +きらい +きらく +きりん +きれい +きれつ +きろく +ぎろん +きわめる +ぎんいろ +きんかくじ +きんじょ +きんようび +ぐあい +くいず +くうかん +くうき +くうぐん +くうこう +ぐうせい +くうそう +ぐうたら +くうふく +くうぼ +くかん +くきょう +くげん +ぐこう +くさい +くさき +くさばな +くさる +くしゃみ +くしょう +くすのき +くすりゆび +くせげ +くせん +ぐたいてき +くださる +くたびれる +くちこみ +くちさき +くつした +ぐっすり +くつろぐ +くとうてん +くどく +くなん +くねくね +くのう +くふう +くみあわせ +くみたてる +くめる +くやくしょ +くらす +くらべる +くるま +くれる +くろう +くわしい +ぐんかん +ぐんしょく +ぐんたい +ぐんて +けあな +けいかく +けいけん +けいこ +けいさつ +げいじゅつ +けいたい +げいのうじん +けいれき +けいろ +けおとす +けおりもの +げきか +げきげん +げきだん +げきちん +げきとつ +げきは +げきやく +げこう +げこくじょう +げざい +けさき +げざん +けしき +けしごむ +けしょう +げすと +けたば +けちゃっぷ +けちらす +けつあつ +けつい +けつえき +けっこん +けつじょ +けっせき +けってい +けつまつ +げつようび +げつれい +けつろん +げどく +けとばす +けとる +けなげ +けなす +けなみ +けぬき +げねつ +けねん +けはい +げひん +けぶかい +げぼく +けまり +けみかる +けむし +けむり +けもの +けらい +けろけろ +けわしい +けんい +けんえつ +けんお +けんか +げんき +けんげん +けんこう +けんさく +けんしゅう +けんすう +げんそう +けんちく +けんてい +けんとう +けんない +けんにん +げんぶつ +けんま +けんみん +けんめい +けんらん +けんり +こあくま +こいぬ +こいびと +ごうい +こうえん +こうおん +こうかん +ごうきゅう +ごうけい +こうこう +こうさい +こうじ +こうすい +ごうせい +こうそく +こうたい +こうちゃ +こうつう +こうてい +こうどう +こうない +こうはい +ごうほう +ごうまん +こうもく +こうりつ +こえる +こおり +ごかい +ごがつ +ごかん +こくご +こくさい +こくとう +こくない +こくはく +こぐま +こけい +こける +ここのか +こころ +こさめ +こしつ +こすう +こせい +こせき +こぜん +こそだて +こたい +こたえる +こたつ +こちょう +こっか +こつこつ +こつばん +こつぶ +こてい +こてん +ことがら +ことし +ことば +ことり +こなごな +こねこね +このまま +このみ +このよ +ごはん +こひつじ +こふう +こふん +こぼれる +ごまあぶら +こまかい +ごますり +こまつな +こまる +こむぎこ +こもじ +こもち +こもの +こもん +こやく +こやま +こゆう +こゆび +こよい +こよう +こりる +これくしょん +ころっけ +こわもて +こわれる +こんいん +こんかい +こんき +こんしゅう +こんすい +こんだて +こんとん +こんなん +こんびに +こんぽん +こんまけ +こんや +こんれい +こんわく +ざいえき +さいかい +さいきん +ざいげん +ざいこ +さいしょ +さいせい +ざいたく +ざいちゅう +さいてき +ざいりょう +さうな +さかいし +さがす +さかな +さかみち +さがる +さぎょう +さくし +さくひん +さくら +さこく +さこつ +さずかる +ざせき +さたん +さつえい +ざつおん +ざっか +ざつがく +さっきょく +ざっし +さつじん +ざっそう +さつたば +さつまいも +さてい +さといも +さとう +さとおや +さとし +さとる +さのう +さばく +さびしい +さべつ +さほう +さほど +さます +さみしい +さみだれ +さむけ +さめる +さやえんどう +さゆう +さよう +さよく +さらだ +ざるそば +さわやか +さわる +さんいん +さんか +さんきゃく +さんこう +さんさい +ざんしょ +さんすう +さんせい +さんそ +さんち +さんま +さんみ +さんらん +しあい +しあげ +しあさって +しあわせ +しいく +しいん +しうち +しえい +しおけ +しかい +しかく +じかん +しごと +しすう +じだい +したうけ +したぎ +したて +したみ +しちょう +しちりん +しっかり +しつじ +しつもん +してい +してき +してつ +じてん +じどう +しなぎれ +しなもの +しなん +しねま +しねん +しのぐ +しのぶ +しはい +しばかり +しはつ +しはらい +しはん +しひょう +しふく +じぶん +しへい +しほう +しほん +しまう +しまる +しみん +しむける +じむしょ +しめい +しめる +しもん +しゃいん +しゃうん +しゃおん +じゃがいも +しやくしょ +しゃくほう +しゃけん +しゃこ +しゃざい +しゃしん +しゃせん +しゃそう +しゃたい +しゃちょう +しゃっきん +じゃま +しゃりん +しゃれい +じゆう +じゅうしょ +しゅくはく +じゅしん +しゅっせき +しゅみ +しゅらば +じゅんばん +しょうかい +しょくたく +しょっけん +しょどう +しょもつ +しらせる +しらべる +しんか +しんこう +じんじゃ +しんせいじ +しんちく +しんりん +すあげ +すあし +すあな +ずあん +すいえい +すいか +すいとう +ずいぶん +すいようび +すうがく +すうじつ +すうせん +すおどり +すきま +すくう +すくない +すける +すごい +すこし +ずさん +すずしい +すすむ +すすめる +すっかり +ずっしり +ずっと +すてき +すてる +すねる +すのこ +すはだ +すばらしい +ずひょう +ずぶぬれ +すぶり +すふれ +すべて +すべる +ずほう +すぼん +すまい +すめし +すもう +すやき +すらすら +するめ +すれちがう +すろっと +すわる +すんぜん +すんぽう +せあぶら +せいかつ +せいげん +せいじ +せいよう +せおう +せかいかん +せきにん +せきむ +せきゆ +せきらんうん +せけん +せこう +せすじ +せたい +せたけ +せっかく +せっきゃく +ぜっく +せっけん +せっこつ +せっさたくま +せつぞく +せつだん +せつでん +せっぱん +せつび +せつぶん +せつめい +せつりつ +せなか +せのび +せはば +せびろ +せぼね +せまい +せまる +せめる +せもたれ +せりふ +ぜんあく +せんい +せんえい +せんか +せんきょ +せんく +せんげん +ぜんご +せんさい +せんしゅ +せんすい +せんせい +せんぞ +せんたく +せんちょう +せんてい +せんとう +せんぬき +せんねん +せんぱい +ぜんぶ +ぜんぽう +せんむ +せんめんじょ +せんもん +せんやく +せんゆう +せんよう +ぜんら +ぜんりゃく +せんれい +せんろ +そあく +そいとげる +そいね +そうがんきょう +そうき +そうご +そうしん +そうだん +そうなん +そうび +そうめん +そうり +そえもの +そえん +そがい +そげき +そこう +そこそこ +そざい +そしな +そせい +そせん +そそぐ +そだてる +そつう +そつえん +そっかん +そつぎょう +そっけつ +そっこう +そっせん +そっと +そとがわ +そとづら +そなえる +そなた +そふぼ +そぼく +そぼろ +そまつ +そまる +そむく +そむりえ +そめる +そもそも +そよかぜ +そらまめ +そろう +そんかい +そんけい +そんざい +そんしつ +そんぞく +そんちょう +ぞんび +ぞんぶん +そんみん +たあい +たいいん +たいうん +たいえき +たいおう +だいがく +たいき +たいぐう +たいけん +たいこ +たいざい +だいじょうぶ +だいすき +たいせつ +たいそう +だいたい +たいちょう +たいてい +だいどころ +たいない +たいねつ +たいのう +たいはん +だいひょう +たいふう +たいへん +たいほ +たいまつばな +たいみんぐ +たいむ +たいめん +たいやき +たいよう +たいら +たいりょく +たいる +たいわん +たうえ +たえる +たおす +たおる +たおれる +たかい +たかね +たきび +たくさん +たこく +たこやき +たさい +たしざん +だじゃれ +たすける +たずさわる +たそがれ +たたかう +たたく +ただしい +たたみ +たちばな +だっかい +だっきゃく +だっこ +だっしゅつ +だったい +たてる +たとえる +たなばた +たにん +たぬき +たのしみ +たはつ +たぶん +たべる +たぼう +たまご +たまる +だむる +ためいき +ためす +ためる +たもつ +たやすい +たよる +たらす +たりきほんがん +たりょう +たりる +たると +たれる +たれんと +たろっと +たわむれる +だんあつ +たんい +たんおん +たんか +たんき +たんけん +たんご +たんさん +たんじょうび +だんせい +たんそく +たんたい +だんち +たんてい +たんとう +だんな +たんにん +だんねつ +たんのう +たんぴん +だんぼう +たんまつ +たんめい +だんれつ +だんろ +だんわ +ちあい +ちあん +ちいき +ちいさい +ちえん +ちかい +ちから +ちきゅう +ちきん +ちけいず +ちけん +ちこく +ちさい +ちしき +ちしりょう +ちせい +ちそう +ちたい +ちたん +ちちおや +ちつじょ +ちてき +ちてん +ちぬき +ちぬり +ちのう +ちひょう +ちへいせん +ちほう +ちまた +ちみつ +ちみどろ +ちめいど +ちゃんこなべ +ちゅうい +ちゆりょく +ちょうし +ちょさくけん +ちらし +ちらみ +ちりがみ +ちりょう +ちるど +ちわわ +ちんたい +ちんもく +ついか +ついたち +つうか +つうじょう +つうはん +つうわ +つかう +つかれる +つくね +つくる +つけね +つける +つごう +つたえる +つづく +つつじ +つつむ +つとめる +つながる +つなみ +つねづね +つのる +つぶす +つまらない +つまる +つみき +つめたい +つもり +つもる +つよい +つるぼ +つるみく +つわもの +つわり +てあし +てあて +てあみ +ていおん +ていか +ていき +ていけい +ていこく +ていさつ +ていし +ていせい +ていたい +ていど +ていねい +ていひょう +ていへん +ていぼう +てうち +ておくれ +てきとう +てくび +でこぼこ +てさぎょう +てさげ +てすり +てそう +てちがい +てちょう +てつがく +てつづき +でっぱ +てつぼう +てつや +でぬかえ +てぬき +てぬぐい +てのひら +てはい +てぶくろ +てふだ +てほどき +てほん +てまえ +てまきずし +てみじか +てみやげ +てらす +てれび +てわけ +てわたし +でんあつ +てんいん +てんかい +てんき +てんぐ +てんけん +てんごく +てんさい +てんし +てんすう +でんち +てんてき +てんとう +てんない +てんぷら +てんぼうだい +てんめつ +てんらんかい +でんりょく +でんわ +どあい +といれ +どうかん +とうきゅう +どうぐ +とうし +とうむぎ +とおい +とおか +とおく +とおす +とおる +とかい +とかす +ときおり +ときどき +とくい +とくしゅう +とくてん +とくに +とくべつ +とけい +とける +とこや +とさか +としょかん +とそう +とたん +とちゅう +とっきゅう +とっくん +とつぜん +とつにゅう +とどける +ととのえる +とない +となえる +となり +とのさま +とばす +どぶがわ +とほう +とまる +とめる +ともだち +ともる +どようび +とらえる +とんかつ +どんぶり +ないかく +ないこう +ないしょ +ないす +ないせん +ないそう +なおす +ながい +なくす +なげる +なこうど +なさけ +なたでここ +なっとう +なつやすみ +ななおし +なにごと +なにもの +なにわ +なのか +なふだ +なまいき +なまえ +なまみ +なみだ +なめらか +なめる +なやむ +ならう +ならび +ならぶ +なれる +なわとび +なわばり +にあう +にいがた +にうけ +におい +にかい +にがて +にきび +にくしみ +にくまん +にげる +にさんかたんそ +にしき +にせもの +にちじょう +にちようび +にっか +にっき +にっけい +にっこう +にっさん +にっしょく +にっすう +にっせき +にってい +になう +にほん +にまめ +にもつ +にやり +にゅういん +にりんしゃ +にわとり +にんい +にんか +にんき +にんげん +にんしき +にんずう +にんそう +にんたい +にんち +にんてい +にんにく +にんぷ +にんまり +にんむ +にんめい +にんよう +ぬいくぎ +ぬかす +ぬぐいとる +ぬぐう +ぬくもり +ぬすむ +ぬまえび +ぬめり +ぬらす +ぬんちゃく +ねあげ +ねいき +ねいる +ねいろ +ねぐせ +ねくたい +ねくら +ねこぜ +ねこむ +ねさげ +ねすごす +ねそべる +ねだん +ねつい +ねっしん +ねつぞう +ねったいぎょ +ねぶそく +ねふだ +ねぼう +ねほりはほり +ねまき +ねまわし +ねみみ +ねむい +ねむたい +ねもと +ねらう +ねわざ +ねんいり +ねんおし +ねんかん +ねんきん +ねんぐ +ねんざ +ねんし +ねんちゃく +ねんど +ねんぴ +ねんぶつ +ねんまつ +ねんりょう +ねんれい +のいず +のおづま +のがす +のきなみ +のこぎり +のこす +のこる +のせる +のぞく +のぞむ +のたまう +のちほど +のっく +のばす +のはら +のべる +のぼる +のみもの +のやま +のらいぬ +のらねこ +のりもの +のりゆき +のれん +のんき +ばあい +はあく +ばあさん +ばいか +ばいく +はいけん +はいご +はいしん +はいすい +はいせん +はいそう +はいち +ばいばい +はいれつ +はえる +はおる +はかい +ばかり +はかる +はくしゅ +はけん +はこぶ +はさみ +はさん +はしご +ばしょ +はしる +はせる +ぱそこん +はそん +はたん +はちみつ +はつおん +はっかく +はづき +はっきり +はっくつ +はっけん +はっこう +はっさん +はっしん +はったつ +はっちゅう +はってん +はっぴょう +はっぽう +はなす +はなび +はにかむ +はぶらし +はみがき +はむかう +はめつ +はやい +はやし +はらう +はろうぃん +はわい +はんい +はんえい +はんおん +はんかく +はんきょう +ばんぐみ +はんこ +はんしゃ +はんすう +はんだん +ぱんち +ぱんつ +はんてい +はんとし +はんのう +はんぱ +はんぶん +はんぺん +はんぼうき +はんめい +はんらん +はんろん +ひいき +ひうん +ひえる +ひかく +ひかり +ひかる +ひかん +ひくい +ひけつ +ひこうき +ひこく +ひさい +ひさしぶり +ひさん +びじゅつかん +ひしょ +ひそか +ひそむ +ひたむき +ひだり +ひたる +ひつぎ +ひっこし +ひっし +ひつじゅひん +ひっす +ひつぜん +ぴったり +ぴっちり +ひつよう +ひてい +ひとごみ +ひなまつり +ひなん +ひねる +ひはん +ひびく +ひひょう +ひほう +ひまわり +ひまん +ひみつ +ひめい +ひめじし +ひやけ +ひやす +ひよう +びょうき +ひらがな +ひらく +ひりつ +ひりょう +ひるま +ひるやすみ +ひれい +ひろい +ひろう +ひろき +ひろゆき +ひんかく +ひんけつ +ひんこん +ひんしゅ +ひんそう +ぴんち +ひんぱん +びんぼう +ふあん +ふいうち +ふうけい +ふうせん +ぷうたろう +ふうとう +ふうふ +ふえる +ふおん +ふかい +ふきん +ふくざつ +ふくぶくろ +ふこう +ふさい +ふしぎ +ふじみ +ふすま +ふせい +ふせぐ +ふそく +ぶたにく +ふたん +ふちょう +ふつう +ふつか +ふっかつ +ふっき +ふっこく +ぶどう +ふとる +ふとん +ふのう +ふはい +ふひょう +ふへん +ふまん +ふみん +ふめつ +ふめん +ふよう +ふりこ +ふりる +ふるい +ふんいき +ぶんがく +ぶんぐ +ふんしつ +ぶんせき +ふんそう +ぶんぽう +へいあん +へいおん +へいがい +へいき +へいげん +へいこう +へいさ +へいしゃ +へいせつ +へいそ +へいたく +へいてん +へいねつ +へいわ +へきが +へこむ +べにいろ +べにしょうが +へらす +へんかん +べんきょう +べんごし +へんさい +へんたい +べんり +ほあん +ほいく +ぼうぎょ +ほうこく +ほうそう +ほうほう +ほうもん +ほうりつ +ほえる +ほおん +ほかん +ほきょう +ぼきん +ほくろ +ほけつ +ほけん +ほこう +ほこる +ほしい +ほしつ +ほしゅ +ほしょう +ほせい +ほそい +ほそく +ほたて +ほたる +ぽちぶくろ +ほっきょく +ほっさ +ほったん +ほとんど +ほめる +ほんい +ほんき +ほんけ +ほんしつ +ほんやく +まいにち +まかい +まかせる +まがる +まける +まこと +まさつ +まじめ +ますく +まぜる +まつり +まとめ +まなぶ +まぬけ +まねく +まほう +まもる +まゆげ +まよう +まろやか +まわす +まわり +まわる +まんが +まんきつ +まんぞく +まんなか +みいら +みうち +みえる +みがく +みかた +みかん +みけん +みこん +みじかい +みすい +みすえる +みせる +みっか +みつかる +みつける +みてい +みとめる +みなと +みなみかさい +みねらる +みのう +みのがす +みほん +みもと +みやげ +みらい +みりょく +みわく +みんか +みんぞく +むいか +むえき +むえん +むかい +むかう +むかえ +むかし +むぎちゃ +むける +むげん +むさぼる +むしあつい +むしば +むじゅん +むしろ +むすう +むすこ +むすぶ +むすめ +むせる +むせん +むちゅう +むなしい +むのう +むやみ +むよう +むらさき +むりょう +むろん +めいあん +めいうん +めいえん +めいかく +めいきょく +めいさい +めいし +めいそう +めいぶつ +めいれい +めいわく +めぐまれる +めざす +めした +めずらしい +めだつ +めまい +めやす +めんきょ +めんせき +めんどう +もうしあげる +もうどうけん +もえる +もくし +もくてき +もくようび +もちろん +もどる +もらう +もんく +もんだい +やおや +やける +やさい +やさしい +やすい +やすたろう +やすみ +やせる +やそう +やたい +やちん +やっと +やっぱり +やぶる +やめる +ややこしい +やよい +やわらかい +ゆうき +ゆうびんきょく +ゆうべ +ゆうめい +ゆけつ +ゆしゅつ +ゆせん +ゆそう +ゆたか +ゆちゃく +ゆでる +ゆにゅう +ゆびわ +ゆらい +ゆれる +ようい +ようか +ようきゅう +ようじ +ようす +ようちえん +よかぜ +よかん +よきん +よくせい +よくぼう +よけい +よごれる +よさん +よしゅう +よそう +よそく +よっか +よてい +よどがわく +よねつ +よやく +よゆう +よろこぶ +よろしい +らいう +らくがき +らくご +らくさつ +らくだ +らしんばん +らせん +らぞく +らたい +らっか +られつ +りえき +りかい +りきさく +りきせつ +りくぐん +りくつ +りけん +りこう +りせい +りそう +りそく +りてん +りねん +りゆう +りゅうがく +りよう +りょうり +りょかん +りょくちゃ +りょこう +りりく +りれき +りろん +りんご +るいけい +るいさい +るいじ +るいせき +るすばん +るりがわら +れいかん +れいぎ +れいせい +れいぞうこ +れいとう +れいぼう +れきし +れきだい +れんあい +れんけい +れんこん +れんさい +れんしゅう +れんぞく +れんらく +ろうか +ろうご +ろうじん +ろうそく +ろくが +ろこつ +ろじうら +ろしゅつ +ろせん +ろてん +ろめん +ろれつ +ろんぎ +ろんぱ +ろんぶん +ろんり +わかす +わかめ +わかやま +わかれる +わしつ +わじまし +わすれもの +わらう +われる +` diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/korean.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/korean.go new file mode 100644 index 000000000..1d3177563 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/korean.go @@ -0,0 +1,2071 @@ +package wordlists + +import ( + "fmt" + "hash/crc32" + "strings" +) + +func init() { + // Ensure word list is correct + // $ wget https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/korean.txt + // $ crc32 korean.txt + // 4ef461eb + checksum := crc32.ChecksumIEEE([]byte(korean)) + if fmt.Sprintf("%x", checksum) != "4ef461eb" { + panic("korean checksum invalid") + } +} + +// Korean is a slice of mnemonic words taken from the bip39 specification +// https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/korean.txt +var Korean = strings.Split(strings.TrimSpace(korean), "\n") +var korean = `가격 +가끔 +가난 +가능 +가득 +가르침 +가뭄 +가방 +가상 +가슴 +가운데 +가을 +가이드 +가입 +가장 +가정 +가족 +가죽 +각오 +각자 +간격 +간부 +간섭 +간장 +간접 +간판 +갈등 +갈비 +갈색 +갈증 +감각 +감기 +감소 +감수성 +감자 +감정 +갑자기 +강남 +강당 +강도 +강력히 +강변 +강북 +강사 +강수량 +강아지 +강원도 +강의 +강제 +강조 +같이 +개구리 +개나리 +개방 +개별 +개선 +개성 +개인 +객관적 +거실 +거액 +거울 +거짓 +거품 +걱정 +건강 +건물 +건설 +건조 +건축 +걸음 +검사 +검토 +게시판 +게임 +겨울 +견해 +결과 +결국 +결론 +결석 +결승 +결심 +결정 +결혼 +경계 +경고 +경기 +경력 +경복궁 +경비 +경상도 +경영 +경우 +경쟁 +경제 +경주 +경찰 +경치 +경향 +경험 +계곡 +계단 +계란 +계산 +계속 +계약 +계절 +계층 +계획 +고객 +고구려 +고궁 +고급 +고등학생 +고무신 +고민 +고양이 +고장 +고전 +고집 +고춧가루 +고통 +고향 +곡식 +골목 +골짜기 +골프 +공간 +공개 +공격 +공군 +공급 +공기 +공동 +공무원 +공부 +공사 +공식 +공업 +공연 +공원 +공장 +공짜 +공책 +공통 +공포 +공항 +공휴일 +과목 +과일 +과장 +과정 +과학 +관객 +관계 +관광 +관념 +관람 +관련 +관리 +관습 +관심 +관점 +관찰 +광경 +광고 +광장 +광주 +괴로움 +굉장히 +교과서 +교문 +교복 +교실 +교양 +교육 +교장 +교직 +교통 +교환 +교훈 +구경 +구름 +구멍 +구별 +구분 +구석 +구성 +구속 +구역 +구입 +구청 +구체적 +국가 +국기 +국내 +국립 +국물 +국민 +국수 +국어 +국왕 +국적 +국제 +국회 +군대 +군사 +군인 +궁극적 +권리 +권위 +권투 +귀국 +귀신 +규정 +규칙 +균형 +그날 +그냥 +그늘 +그러나 +그룹 +그릇 +그림 +그제서야 +그토록 +극복 +극히 +근거 +근교 +근래 +근로 +근무 +근본 +근원 +근육 +근처 +글씨 +글자 +금강산 +금고 +금년 +금메달 +금액 +금연 +금요일 +금지 +긍정적 +기간 +기관 +기념 +기능 +기독교 +기둥 +기록 +기름 +기법 +기본 +기분 +기쁨 +기숙사 +기술 +기억 +기업 +기온 +기운 +기원 +기적 +기준 +기침 +기혼 +기획 +긴급 +긴장 +길이 +김밥 +김치 +김포공항 +깍두기 +깜빡 +깨달음 +깨소금 +껍질 +꼭대기 +꽃잎 +나들이 +나란히 +나머지 +나물 +나침반 +나흘 +낙엽 +난방 +날개 +날씨 +날짜 +남녀 +남대문 +남매 +남산 +남자 +남편 +남학생 +낭비 +낱말 +내년 +내용 +내일 +냄비 +냄새 +냇물 +냉동 +냉면 +냉방 +냉장고 +넥타이 +넷째 +노동 +노란색 +노력 +노인 +녹음 +녹차 +녹화 +논리 +논문 +논쟁 +놀이 +농구 +농담 +농민 +농부 +농업 +농장 +농촌 +높이 +눈동자 +눈물 +눈썹 +뉴욕 +느낌 +늑대 +능동적 +능력 +다방 +다양성 +다음 +다이어트 +다행 +단계 +단골 +단독 +단맛 +단순 +단어 +단위 +단점 +단체 +단추 +단편 +단풍 +달걀 +달러 +달력 +달리 +닭고기 +담당 +담배 +담요 +담임 +답변 +답장 +당근 +당분간 +당연히 +당장 +대규모 +대낮 +대단히 +대답 +대도시 +대략 +대량 +대륙 +대문 +대부분 +대신 +대응 +대장 +대전 +대접 +대중 +대책 +대출 +대충 +대통령 +대학 +대한민국 +대합실 +대형 +덩어리 +데이트 +도대체 +도덕 +도둑 +도망 +도서관 +도심 +도움 +도입 +도자기 +도저히 +도전 +도중 +도착 +독감 +독립 +독서 +독일 +독창적 +동화책 +뒷모습 +뒷산 +딸아이 +마누라 +마늘 +마당 +마라톤 +마련 +마무리 +마사지 +마약 +마요네즈 +마을 +마음 +마이크 +마중 +마지막 +마찬가지 +마찰 +마흔 +막걸리 +막내 +막상 +만남 +만두 +만세 +만약 +만일 +만점 +만족 +만화 +많이 +말기 +말씀 +말투 +맘대로 +망원경 +매년 +매달 +매력 +매번 +매스컴 +매일 +매장 +맥주 +먹이 +먼저 +먼지 +멀리 +메일 +며느리 +며칠 +면담 +멸치 +명단 +명령 +명예 +명의 +명절 +명칭 +명함 +모금 +모니터 +모델 +모든 +모범 +모습 +모양 +모임 +모조리 +모집 +모퉁이 +목걸이 +목록 +목사 +목소리 +목숨 +목적 +목표 +몰래 +몸매 +몸무게 +몸살 +몸속 +몸짓 +몸통 +몹시 +무관심 +무궁화 +무더위 +무덤 +무릎 +무슨 +무엇 +무역 +무용 +무조건 +무지개 +무척 +문구 +문득 +문법 +문서 +문제 +문학 +문화 +물가 +물건 +물결 +물고기 +물론 +물리학 +물음 +물질 +물체 +미국 +미디어 +미사일 +미술 +미역 +미용실 +미움 +미인 +미팅 +미혼 +민간 +민족 +민주 +믿음 +밀가루 +밀리미터 +밑바닥 +바가지 +바구니 +바나나 +바늘 +바닥 +바닷가 +바람 +바이러스 +바탕 +박물관 +박사 +박수 +반대 +반드시 +반말 +반발 +반성 +반응 +반장 +반죽 +반지 +반찬 +받침 +발가락 +발걸음 +발견 +발달 +발레 +발목 +발바닥 +발생 +발음 +발자국 +발전 +발톱 +발표 +밤하늘 +밥그릇 +밥맛 +밥상 +밥솥 +방금 +방면 +방문 +방바닥 +방법 +방송 +방식 +방안 +방울 +방지 +방학 +방해 +방향 +배경 +배꼽 +배달 +배드민턴 +백두산 +백색 +백성 +백인 +백제 +백화점 +버릇 +버섯 +버튼 +번개 +번역 +번지 +번호 +벌금 +벌레 +벌써 +범위 +범인 +범죄 +법률 +법원 +법적 +법칙 +베이징 +벨트 +변경 +변동 +변명 +변신 +변호사 +변화 +별도 +별명 +별일 +병실 +병아리 +병원 +보관 +보너스 +보라색 +보람 +보름 +보상 +보안 +보자기 +보장 +보전 +보존 +보통 +보편적 +보험 +복도 +복사 +복숭아 +복습 +볶음 +본격적 +본래 +본부 +본사 +본성 +본인 +본질 +볼펜 +봉사 +봉지 +봉투 +부근 +부끄러움 +부담 +부동산 +부문 +부분 +부산 +부상 +부엌 +부인 +부작용 +부장 +부정 +부족 +부지런히 +부친 +부탁 +부품 +부회장 +북부 +북한 +분노 +분량 +분리 +분명 +분석 +분야 +분위기 +분필 +분홍색 +불고기 +불과 +불교 +불꽃 +불만 +불법 +불빛 +불안 +불이익 +불행 +브랜드 +비극 +비난 +비닐 +비둘기 +비디오 +비로소 +비만 +비명 +비밀 +비바람 +비빔밥 +비상 +비용 +비율 +비중 +비타민 +비판 +빌딩 +빗물 +빗방울 +빗줄기 +빛깔 +빨간색 +빨래 +빨리 +사건 +사계절 +사나이 +사냥 +사람 +사랑 +사립 +사모님 +사물 +사방 +사상 +사생활 +사설 +사슴 +사실 +사업 +사용 +사월 +사장 +사전 +사진 +사촌 +사춘기 +사탕 +사투리 +사흘 +산길 +산부인과 +산업 +산책 +살림 +살인 +살짝 +삼계탕 +삼국 +삼십 +삼월 +삼촌 +상관 +상금 +상대 +상류 +상반기 +상상 +상식 +상업 +상인 +상자 +상점 +상처 +상추 +상태 +상표 +상품 +상황 +새벽 +색깔 +색연필 +생각 +생명 +생물 +생방송 +생산 +생선 +생신 +생일 +생활 +서랍 +서른 +서명 +서민 +서비스 +서양 +서울 +서적 +서점 +서쪽 +서클 +석사 +석유 +선거 +선물 +선배 +선생 +선수 +선원 +선장 +선전 +선택 +선풍기 +설거지 +설날 +설렁탕 +설명 +설문 +설사 +설악산 +설치 +설탕 +섭씨 +성공 +성당 +성명 +성별 +성인 +성장 +성적 +성질 +성함 +세금 +세미나 +세상 +세월 +세종대왕 +세탁 +센터 +센티미터 +셋째 +소규모 +소극적 +소금 +소나기 +소년 +소득 +소망 +소문 +소설 +소속 +소아과 +소용 +소원 +소음 +소중히 +소지품 +소질 +소풍 +소형 +속담 +속도 +속옷 +손가락 +손길 +손녀 +손님 +손등 +손목 +손뼉 +손실 +손질 +손톱 +손해 +솔직히 +솜씨 +송아지 +송이 +송편 +쇠고기 +쇼핑 +수건 +수년 +수단 +수돗물 +수동적 +수면 +수명 +수박 +수상 +수석 +수술 +수시로 +수업 +수염 +수영 +수입 +수준 +수집 +수출 +수컷 +수필 +수학 +수험생 +수화기 +숙녀 +숙소 +숙제 +순간 +순서 +순수 +순식간 +순위 +숟가락 +술병 +술집 +숫자 +스님 +스물 +스스로 +스승 +스웨터 +스위치 +스케이트 +스튜디오 +스트레스 +스포츠 +슬쩍 +슬픔 +습관 +습기 +승객 +승리 +승부 +승용차 +승진 +시각 +시간 +시골 +시금치 +시나리오 +시댁 +시리즈 +시멘트 +시민 +시부모 +시선 +시설 +시스템 +시아버지 +시어머니 +시월 +시인 +시일 +시작 +시장 +시절 +시점 +시중 +시즌 +시집 +시청 +시합 +시험 +식구 +식기 +식당 +식량 +식료품 +식물 +식빵 +식사 +식생활 +식초 +식탁 +식품 +신고 +신규 +신념 +신문 +신발 +신비 +신사 +신세 +신용 +신제품 +신청 +신체 +신화 +실감 +실내 +실력 +실례 +실망 +실수 +실습 +실시 +실장 +실정 +실질적 +실천 +실체 +실컷 +실태 +실패 +실험 +실현 +심리 +심부름 +심사 +심장 +심정 +심판 +쌍둥이 +씨름 +씨앗 +아가씨 +아나운서 +아드님 +아들 +아쉬움 +아스팔트 +아시아 +아울러 +아저씨 +아줌마 +아직 +아침 +아파트 +아프리카 +아픔 +아홉 +아흔 +악기 +악몽 +악수 +안개 +안경 +안과 +안내 +안녕 +안동 +안방 +안부 +안주 +알루미늄 +알코올 +암시 +암컷 +압력 +앞날 +앞문 +애인 +애정 +액수 +앨범 +야간 +야단 +야옹 +약간 +약국 +약속 +약수 +약점 +약품 +약혼녀 +양념 +양력 +양말 +양배추 +양주 +양파 +어둠 +어려움 +어른 +어젯밤 +어쨌든 +어쩌다가 +어쩐지 +언니 +언덕 +언론 +언어 +얼굴 +얼른 +얼음 +얼핏 +엄마 +업무 +업종 +업체 +엉덩이 +엉망 +엉터리 +엊그제 +에너지 +에어컨 +엔진 +여건 +여고생 +여관 +여군 +여권 +여대생 +여덟 +여동생 +여든 +여론 +여름 +여섯 +여성 +여왕 +여인 +여전히 +여직원 +여학생 +여행 +역사 +역시 +역할 +연결 +연구 +연극 +연기 +연락 +연설 +연세 +연속 +연습 +연애 +연예인 +연인 +연장 +연주 +연출 +연필 +연합 +연휴 +열기 +열매 +열쇠 +열심히 +열정 +열차 +열흘 +염려 +엽서 +영국 +영남 +영상 +영양 +영역 +영웅 +영원히 +영하 +영향 +영혼 +영화 +옆구리 +옆방 +옆집 +예감 +예금 +예방 +예산 +예상 +예선 +예술 +예습 +예식장 +예약 +예전 +예절 +예정 +예컨대 +옛날 +오늘 +오락 +오랫동안 +오렌지 +오로지 +오른발 +오븐 +오십 +오염 +오월 +오전 +오직 +오징어 +오페라 +오피스텔 +오히려 +옥상 +옥수수 +온갖 +온라인 +온몸 +온종일 +온통 +올가을 +올림픽 +올해 +옷차림 +와이셔츠 +와인 +완성 +완전 +왕비 +왕자 +왜냐하면 +왠지 +외갓집 +외국 +외로움 +외삼촌 +외출 +외침 +외할머니 +왼발 +왼손 +왼쪽 +요금 +요일 +요즘 +요청 +용기 +용서 +용어 +우산 +우선 +우승 +우연히 +우정 +우체국 +우편 +운동 +운명 +운반 +운전 +운행 +울산 +울음 +움직임 +웃어른 +웃음 +워낙 +원고 +원래 +원서 +원숭이 +원인 +원장 +원피스 +월급 +월드컵 +월세 +월요일 +웨이터 +위반 +위법 +위성 +위원 +위험 +위협 +윗사람 +유난히 +유럽 +유명 +유물 +유산 +유적 +유치원 +유학 +유행 +유형 +육군 +육상 +육십 +육체 +은행 +음력 +음료 +음반 +음성 +음식 +음악 +음주 +의견 +의논 +의문 +의복 +의식 +의심 +의외로 +의욕 +의원 +의학 +이것 +이곳 +이념 +이놈 +이달 +이대로 +이동 +이렇게 +이력서 +이론적 +이름 +이민 +이발소 +이별 +이불 +이빨 +이상 +이성 +이슬 +이야기 +이용 +이웃 +이월 +이윽고 +이익 +이전 +이중 +이튿날 +이틀 +이혼 +인간 +인격 +인공 +인구 +인근 +인기 +인도 +인류 +인물 +인생 +인쇄 +인연 +인원 +인재 +인종 +인천 +인체 +인터넷 +인하 +인형 +일곱 +일기 +일단 +일대 +일등 +일반 +일본 +일부 +일상 +일생 +일손 +일요일 +일월 +일정 +일종 +일주일 +일찍 +일체 +일치 +일행 +일회용 +임금 +임무 +입대 +입력 +입맛 +입사 +입술 +입시 +입원 +입장 +입학 +자가용 +자격 +자극 +자동 +자랑 +자부심 +자식 +자신 +자연 +자원 +자율 +자전거 +자정 +자존심 +자판 +작가 +작년 +작성 +작업 +작용 +작은딸 +작품 +잔디 +잔뜩 +잔치 +잘못 +잠깐 +잠수함 +잠시 +잠옷 +잠자리 +잡지 +장관 +장군 +장기간 +장래 +장례 +장르 +장마 +장면 +장모 +장미 +장비 +장사 +장소 +장식 +장애인 +장인 +장점 +장차 +장학금 +재능 +재빨리 +재산 +재생 +재작년 +재정 +재채기 +재판 +재학 +재활용 +저것 +저고리 +저곳 +저녁 +저런 +저렇게 +저번 +저울 +저절로 +저축 +적극 +적당히 +적성 +적용 +적응 +전개 +전공 +전기 +전달 +전라도 +전망 +전문 +전반 +전부 +전세 +전시 +전용 +전자 +전쟁 +전주 +전철 +전체 +전통 +전혀 +전후 +절대 +절망 +절반 +절약 +절차 +점검 +점수 +점심 +점원 +점점 +점차 +접근 +접시 +접촉 +젓가락 +정거장 +정도 +정류장 +정리 +정말 +정면 +정문 +정반대 +정보 +정부 +정비 +정상 +정성 +정오 +정원 +정장 +정지 +정치 +정확히 +제공 +제과점 +제대로 +제목 +제발 +제법 +제삿날 +제안 +제일 +제작 +제주도 +제출 +제품 +제한 +조각 +조건 +조금 +조깅 +조명 +조미료 +조상 +조선 +조용히 +조절 +조정 +조직 +존댓말 +존재 +졸업 +졸음 +종교 +종로 +종류 +종소리 +종업원 +종종 +종합 +좌석 +죄인 +주관적 +주름 +주말 +주머니 +주먹 +주문 +주민 +주방 +주변 +주식 +주인 +주일 +주장 +주전자 +주택 +준비 +줄거리 +줄기 +줄무늬 +중간 +중계방송 +중국 +중년 +중단 +중독 +중반 +중부 +중세 +중소기업 +중순 +중앙 +중요 +중학교 +즉석 +즉시 +즐거움 +증가 +증거 +증권 +증상 +증세 +지각 +지갑 +지경 +지극히 +지금 +지급 +지능 +지름길 +지리산 +지방 +지붕 +지식 +지역 +지우개 +지원 +지적 +지점 +지진 +지출 +직선 +직업 +직원 +직장 +진급 +진동 +진로 +진료 +진리 +진짜 +진찰 +진출 +진통 +진행 +질문 +질병 +질서 +짐작 +집단 +집안 +집중 +짜증 +찌꺼기 +차남 +차라리 +차량 +차림 +차별 +차선 +차츰 +착각 +찬물 +찬성 +참가 +참기름 +참새 +참석 +참여 +참외 +참조 +찻잔 +창가 +창고 +창구 +창문 +창밖 +창작 +창조 +채널 +채점 +책가방 +책방 +책상 +책임 +챔피언 +처벌 +처음 +천국 +천둥 +천장 +천재 +천천히 +철도 +철저히 +철학 +첫날 +첫째 +청년 +청바지 +청소 +청춘 +체계 +체력 +체온 +체육 +체중 +체험 +초등학생 +초반 +초밥 +초상화 +초순 +초여름 +초원 +초저녁 +초점 +초청 +초콜릿 +촛불 +총각 +총리 +총장 +촬영 +최근 +최상 +최선 +최신 +최악 +최종 +추석 +추억 +추진 +추천 +추측 +축구 +축소 +축제 +축하 +출근 +출발 +출산 +출신 +출연 +출입 +출장 +출판 +충격 +충고 +충돌 +충분히 +충청도 +취업 +취직 +취향 +치약 +친구 +친척 +칠십 +칠월 +칠판 +침대 +침묵 +침실 +칫솔 +칭찬 +카메라 +카운터 +칼국수 +캐릭터 +캠퍼스 +캠페인 +커튼 +컨디션 +컬러 +컴퓨터 +코끼리 +코미디 +콘서트 +콜라 +콤플렉스 +콩나물 +쾌감 +쿠데타 +크림 +큰길 +큰딸 +큰소리 +큰아들 +큰어머니 +큰일 +큰절 +클래식 +클럽 +킬로 +타입 +타자기 +탁구 +탁자 +탄생 +태권도 +태양 +태풍 +택시 +탤런트 +터널 +터미널 +테니스 +테스트 +테이블 +텔레비전 +토론 +토마토 +토요일 +통계 +통과 +통로 +통신 +통역 +통일 +통장 +통제 +통증 +통합 +통화 +퇴근 +퇴원 +퇴직금 +튀김 +트럭 +특급 +특별 +특성 +특수 +특징 +특히 +튼튼히 +티셔츠 +파란색 +파일 +파출소 +판결 +판단 +판매 +판사 +팔십 +팔월 +팝송 +패션 +팩스 +팩시밀리 +팬티 +퍼센트 +페인트 +편견 +편의 +편지 +편히 +평가 +평균 +평생 +평소 +평양 +평일 +평화 +포스터 +포인트 +포장 +포함 +표면 +표정 +표준 +표현 +품목 +품질 +풍경 +풍속 +풍습 +프랑스 +프린터 +플라스틱 +피곤 +피망 +피아노 +필름 +필수 +필요 +필자 +필통 +핑계 +하느님 +하늘 +하드웨어 +하룻밤 +하반기 +하숙집 +하순 +하여튼 +하지만 +하천 +하품 +하필 +학과 +학교 +학급 +학기 +학년 +학력 +학번 +학부모 +학비 +학생 +학술 +학습 +학용품 +학원 +학위 +학자 +학점 +한계 +한글 +한꺼번에 +한낮 +한눈 +한동안 +한때 +한라산 +한마디 +한문 +한번 +한복 +한식 +한여름 +한쪽 +할머니 +할아버지 +할인 +함께 +함부로 +합격 +합리적 +항공 +항구 +항상 +항의 +해결 +해군 +해답 +해당 +해물 +해석 +해설 +해수욕장 +해안 +핵심 +핸드백 +햄버거 +햇볕 +햇살 +행동 +행복 +행사 +행운 +행위 +향기 +향상 +향수 +허락 +허용 +헬기 +현관 +현금 +현대 +현상 +현실 +현장 +현재 +현지 +혈액 +협력 +형부 +형사 +형수 +형식 +형제 +형태 +형편 +혜택 +호기심 +호남 +호랑이 +호박 +호텔 +호흡 +혹시 +홀로 +홈페이지 +홍보 +홍수 +홍차 +화면 +화분 +화살 +화요일 +화장 +화학 +확보 +확인 +확장 +확정 +환갑 +환경 +환영 +환율 +환자 +활기 +활동 +활발히 +활용 +활짝 +회견 +회관 +회복 +회색 +회원 +회장 +회전 +횟수 +횡단보도 +효율적 +후반 +후춧가루 +훈련 +훨씬 +휴식 +휴일 +흉내 +흐름 +흑백 +흑인 +흔적 +흔히 +흥미 +흥분 +희곡 +희망 +희생 +흰색 +힘껏 +` diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/spanish.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/spanish.go new file mode 100644 index 000000000..ad76da976 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip39/wordlists/spanish.go @@ -0,0 +1,2071 @@ +package wordlists + +import ( + "fmt" + "hash/crc32" + "strings" +) + +func init() { + // Ensure word list is correct + // $ wget https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/spanish.txt + // $ crc32 spanish.txt + // 266e4f3d + checksum := crc32.ChecksumIEEE([]byte(spanish)) + if fmt.Sprintf("%x", checksum) != "266e4f3d" { + panic("spanish checksum invalid") + } +} + +// Spanish is a slice of mnemonic words taken from the bip39 specification +// https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/spanish.txt +var Spanish = strings.Split(strings.TrimSpace(spanish), "\n") +var spanish = `ábaco +abdomen +abeja +abierto +abogado +abono +aborto +abrazo +abrir +abuelo +abuso +acabar +academia +acceso +acción +aceite +acelga +acento +aceptar +ácido +aclarar +acné +acoger +acoso +activo +acto +actriz +actuar +acudir +acuerdo +acusar +adicto +admitir +adoptar +adorno +aduana +adulto +aéreo +afectar +afición +afinar +afirmar +ágil +agitar +agonía +agosto +agotar +agregar +agrio +agua +agudo +águila +aguja +ahogo +ahorro +aire +aislar +ajedrez +ajeno +ajuste +alacrán +alambre +alarma +alba +álbum +alcalde +aldea +alegre +alejar +alerta +aleta +alfiler +alga +algodón +aliado +aliento +alivio +alma +almeja +almíbar +altar +alteza +altivo +alto +altura +alumno +alzar +amable +amante +amapola +amargo +amasar +ámbar +ámbito +ameno +amigo +amistad +amor +amparo +amplio +ancho +anciano +ancla +andar +andén +anemia +ángulo +anillo +ánimo +anís +anotar +antena +antiguo +antojo +anual +anular +anuncio +añadir +añejo +año +apagar +aparato +apetito +apio +aplicar +apodo +aporte +apoyo +aprender +aprobar +apuesta +apuro +arado +araña +arar +árbitro +árbol +arbusto +archivo +arco +arder +ardilla +arduo +área +árido +aries +armonía +arnés +aroma +arpa +arpón +arreglo +arroz +arruga +arte +artista +asa +asado +asalto +ascenso +asegurar +aseo +asesor +asiento +asilo +asistir +asno +asombro +áspero +astilla +astro +astuto +asumir +asunto +atajo +ataque +atar +atento +ateo +ático +atleta +átomo +atraer +atroz +atún +audaz +audio +auge +aula +aumento +ausente +autor +aval +avance +avaro +ave +avellana +avena +avestruz +avión +aviso +ayer +ayuda +ayuno +azafrán +azar +azote +azúcar +azufre +azul +baba +babor +bache +bahía +baile +bajar +balanza +balcón +balde +bambú +banco +banda +baño +barba +barco +barniz +barro +báscula +bastón +basura +batalla +batería +batir +batuta +baúl +bazar +bebé +bebida +bello +besar +beso +bestia +bicho +bien +bingo +blanco +bloque +blusa +boa +bobina +bobo +boca +bocina +boda +bodega +boina +bola +bolero +bolsa +bomba +bondad +bonito +bono +bonsái +borde +borrar +bosque +bote +botín +bóveda +bozal +bravo +brazo +brecha +breve +brillo +brinco +brisa +broca +broma +bronce +brote +bruja +brusco +bruto +buceo +bucle +bueno +buey +bufanda +bufón +búho +buitre +bulto +burbuja +burla +burro +buscar +butaca +buzón +caballo +cabeza +cabina +cabra +cacao +cadáver +cadena +caer +café +caída +caimán +caja +cajón +cal +calamar +calcio +caldo +calidad +calle +calma +calor +calvo +cama +cambio +camello +camino +campo +cáncer +candil +canela +canguro +canica +canto +caña +cañón +caoba +caos +capaz +capitán +capote +captar +capucha +cara +carbón +cárcel +careta +carga +cariño +carne +carpeta +carro +carta +casa +casco +casero +caspa +castor +catorce +catre +caudal +causa +cazo +cebolla +ceder +cedro +celda +célebre +celoso +célula +cemento +ceniza +centro +cerca +cerdo +cereza +cero +cerrar +certeza +césped +cetro +chacal +chaleco +champú +chancla +chapa +charla +chico +chiste +chivo +choque +choza +chuleta +chupar +ciclón +ciego +cielo +cien +cierto +cifra +cigarro +cima +cinco +cine +cinta +ciprés +circo +ciruela +cisne +cita +ciudad +clamor +clan +claro +clase +clave +cliente +clima +clínica +cobre +cocción +cochino +cocina +coco +código +codo +cofre +coger +cohete +cojín +cojo +cola +colcha +colegio +colgar +colina +collar +colmo +columna +combate +comer +comida +cómodo +compra +conde +conejo +conga +conocer +consejo +contar +copa +copia +corazón +corbata +corcho +cordón +corona +correr +coser +cosmos +costa +cráneo +cráter +crear +crecer +creído +crema +cría +crimen +cripta +crisis +cromo +crónica +croqueta +crudo +cruz +cuadro +cuarto +cuatro +cubo +cubrir +cuchara +cuello +cuento +cuerda +cuesta +cueva +cuidar +culebra +culpa +culto +cumbre +cumplir +cuna +cuneta +cuota +cupón +cúpula +curar +curioso +curso +curva +cutis +dama +danza +dar +dardo +dátil +deber +débil +década +decir +dedo +defensa +definir +dejar +delfín +delgado +delito +demora +denso +dental +deporte +derecho +derrota +desayuno +deseo +desfile +desnudo +destino +desvío +detalle +detener +deuda +día +diablo +diadema +diamante +diana +diario +dibujo +dictar +diente +dieta +diez +difícil +digno +dilema +diluir +dinero +directo +dirigir +disco +diseño +disfraz +diva +divino +doble +doce +dolor +domingo +don +donar +dorado +dormir +dorso +dos +dosis +dragón +droga +ducha +duda +duelo +dueño +dulce +dúo +duque +durar +dureza +duro +ébano +ebrio +echar +eco +ecuador +edad +edición +edificio +editor +educar +efecto +eficaz +eje +ejemplo +elefante +elegir +elemento +elevar +elipse +élite +elixir +elogio +eludir +embudo +emitir +emoción +empate +empeño +empleo +empresa +enano +encargo +enchufe +encía +enemigo +enero +enfado +enfermo +engaño +enigma +enlace +enorme +enredo +ensayo +enseñar +entero +entrar +envase +envío +época +equipo +erizo +escala +escena +escolar +escribir +escudo +esencia +esfera +esfuerzo +espada +espejo +espía +esposa +espuma +esquí +estar +este +estilo +estufa +etapa +eterno +ética +etnia +evadir +evaluar +evento +evitar +exacto +examen +exceso +excusa +exento +exigir +exilio +existir +éxito +experto +explicar +exponer +extremo +fábrica +fábula +fachada +fácil +factor +faena +faja +falda +fallo +falso +faltar +fama +familia +famoso +faraón +farmacia +farol +farsa +fase +fatiga +fauna +favor +fax +febrero +fecha +feliz +feo +feria +feroz +fértil +fervor +festín +fiable +fianza +fiar +fibra +ficción +ficha +fideo +fiebre +fiel +fiera +fiesta +figura +fijar +fijo +fila +filete +filial +filtro +fin +finca +fingir +finito +firma +flaco +flauta +flecha +flor +flota +fluir +flujo +flúor +fobia +foca +fogata +fogón +folio +folleto +fondo +forma +forro +fortuna +forzar +fosa +foto +fracaso +frágil +franja +frase +fraude +freír +freno +fresa +frío +frito +fruta +fuego +fuente +fuerza +fuga +fumar +función +funda +furgón +furia +fusil +fútbol +futuro +gacela +gafas +gaita +gajo +gala +galería +gallo +gamba +ganar +gancho +ganga +ganso +garaje +garza +gasolina +gastar +gato +gavilán +gemelo +gemir +gen +género +genio +gente +geranio +gerente +germen +gesto +gigante +gimnasio +girar +giro +glaciar +globo +gloria +gol +golfo +goloso +golpe +goma +gordo +gorila +gorra +gota +goteo +gozar +grada +gráfico +grano +grasa +gratis +grave +grieta +grillo +gripe +gris +grito +grosor +grúa +grueso +grumo +grupo +guante +guapo +guardia +guerra +guía +guiño +guion +guiso +guitarra +gusano +gustar +haber +hábil +hablar +hacer +hacha +hada +hallar +hamaca +harina +haz +hazaña +hebilla +hebra +hecho +helado +helio +hembra +herir +hermano +héroe +hervir +hielo +hierro +hígado +higiene +hijo +himno +historia +hocico +hogar +hoguera +hoja +hombre +hongo +honor +honra +hora +hormiga +horno +hostil +hoyo +hueco +huelga +huerta +hueso +huevo +huida +huir +humano +húmedo +humilde +humo +hundir +huracán +hurto +icono +ideal +idioma +ídolo +iglesia +iglú +igual +ilegal +ilusión +imagen +imán +imitar +impar +imperio +imponer +impulso +incapaz +índice +inerte +infiel +informe +ingenio +inicio +inmenso +inmune +innato +insecto +instante +interés +íntimo +intuir +inútil +invierno +ira +iris +ironía +isla +islote +jabalí +jabón +jamón +jarabe +jardín +jarra +jaula +jazmín +jefe +jeringa +jinete +jornada +joroba +joven +joya +juerga +jueves +juez +jugador +jugo +juguete +juicio +junco +jungla +junio +juntar +júpiter +jurar +justo +juvenil +juzgar +kilo +koala +labio +lacio +lacra +lado +ladrón +lagarto +lágrima +laguna +laico +lamer +lámina +lámpara +lana +lancha +langosta +lanza +lápiz +largo +larva +lástima +lata +látex +latir +laurel +lavar +lazo +leal +lección +leche +lector +leer +legión +legumbre +lejano +lengua +lento +leña +león +leopardo +lesión +letal +letra +leve +leyenda +libertad +libro +licor +líder +lidiar +lienzo +liga +ligero +lima +límite +limón +limpio +lince +lindo +línea +lingote +lino +linterna +líquido +liso +lista +litera +litio +litro +llaga +llama +llanto +llave +llegar +llenar +llevar +llorar +llover +lluvia +lobo +loción +loco +locura +lógica +logro +lombriz +lomo +lonja +lote +lucha +lucir +lugar +lujo +luna +lunes +lupa +lustro +luto +luz +maceta +macho +madera +madre +maduro +maestro +mafia +magia +mago +maíz +maldad +maleta +malla +malo +mamá +mambo +mamut +manco +mando +manejar +manga +maniquí +manjar +mano +manso +manta +mañana +mapa +máquina +mar +marco +marea +marfil +margen +marido +mármol +marrón +martes +marzo +masa +máscara +masivo +matar +materia +matiz +matriz +máximo +mayor +mazorca +mecha +medalla +medio +médula +mejilla +mejor +melena +melón +memoria +menor +mensaje +mente +menú +mercado +merengue +mérito +mes +mesón +meta +meter +método +metro +mezcla +miedo +miel +miembro +miga +mil +milagro +militar +millón +mimo +mina +minero +mínimo +minuto +miope +mirar +misa +miseria +misil +mismo +mitad +mito +mochila +moción +moda +modelo +moho +mojar +molde +moler +molino +momento +momia +monarca +moneda +monja +monto +moño +morada +morder +moreno +morir +morro +morsa +mortal +mosca +mostrar +motivo +mover +móvil +mozo +mucho +mudar +mueble +muela +muerte +muestra +mugre +mujer +mula +muleta +multa +mundo +muñeca +mural +muro +músculo +museo +musgo +música +muslo +nácar +nación +nadar +naipe +naranja +nariz +narrar +nasal +natal +nativo +natural +náusea +naval +nave +navidad +necio +néctar +negar +negocio +negro +neón +nervio +neto +neutro +nevar +nevera +nicho +nido +niebla +nieto +niñez +niño +nítido +nivel +nobleza +noche +nómina +noria +norma +norte +nota +noticia +novato +novela +novio +nube +nuca +núcleo +nudillo +nudo +nuera +nueve +nuez +nulo +número +nutria +oasis +obeso +obispo +objeto +obra +obrero +observar +obtener +obvio +oca +ocaso +océano +ochenta +ocho +ocio +ocre +octavo +octubre +oculto +ocupar +ocurrir +odiar +odio +odisea +oeste +ofensa +oferta +oficio +ofrecer +ogro +oído +oír +ojo +ola +oleada +olfato +olivo +olla +olmo +olor +olvido +ombligo +onda +onza +opaco +opción +ópera +opinar +oponer +optar +óptica +opuesto +oración +orador +oral +órbita +orca +orden +oreja +órgano +orgía +orgullo +oriente +origen +orilla +oro +orquesta +oruga +osadía +oscuro +osezno +oso +ostra +otoño +otro +oveja +óvulo +óxido +oxígeno +oyente +ozono +pacto +padre +paella +página +pago +país +pájaro +palabra +palco +paleta +pálido +palma +paloma +palpar +pan +panal +pánico +pantera +pañuelo +papá +papel +papilla +paquete +parar +parcela +pared +parir +paro +párpado +parque +párrafo +parte +pasar +paseo +pasión +paso +pasta +pata +patio +patria +pausa +pauta +pavo +payaso +peatón +pecado +pecera +pecho +pedal +pedir +pegar +peine +pelar +peldaño +pelea +peligro +pellejo +pelo +peluca +pena +pensar +peñón +peón +peor +pepino +pequeño +pera +percha +perder +pereza +perfil +perico +perla +permiso +perro +persona +pesa +pesca +pésimo +pestaña +pétalo +petróleo +pez +pezuña +picar +pichón +pie +piedra +pierna +pieza +pijama +pilar +piloto +pimienta +pino +pintor +pinza +piña +piojo +pipa +pirata +pisar +piscina +piso +pista +pitón +pizca +placa +plan +plata +playa +plaza +pleito +pleno +plomo +pluma +plural +pobre +poco +poder +podio +poema +poesía +poeta +polen +policía +pollo +polvo +pomada +pomelo +pomo +pompa +poner +porción +portal +posada +poseer +posible +poste +potencia +potro +pozo +prado +precoz +pregunta +premio +prensa +preso +previo +primo +príncipe +prisión +privar +proa +probar +proceso +producto +proeza +profesor +programa +prole +promesa +pronto +propio +próximo +prueba +público +puchero +pudor +pueblo +puerta +puesto +pulga +pulir +pulmón +pulpo +pulso +puma +punto +puñal +puño +pupa +pupila +puré +quedar +queja +quemar +querer +queso +quieto +química +quince +quitar +rábano +rabia +rabo +ración +radical +raíz +rama +rampa +rancho +rango +rapaz +rápido +rapto +rasgo +raspa +rato +rayo +raza +razón +reacción +realidad +rebaño +rebote +recaer +receta +rechazo +recoger +recreo +recto +recurso +red +redondo +reducir +reflejo +reforma +refrán +refugio +regalo +regir +regla +regreso +rehén +reino +reír +reja +relato +relevo +relieve +relleno +reloj +remar +remedio +remo +rencor +rendir +renta +reparto +repetir +reposo +reptil +res +rescate +resina +respeto +resto +resumen +retiro +retorno +retrato +reunir +revés +revista +rey +rezar +rico +riego +rienda +riesgo +rifa +rígido +rigor +rincón +riñón +río +riqueza +risa +ritmo +rito +rizo +roble +roce +rociar +rodar +rodeo +rodilla +roer +rojizo +rojo +romero +romper +ron +ronco +ronda +ropa +ropero +rosa +rosca +rostro +rotar +rubí +rubor +rudo +rueda +rugir +ruido +ruina +ruleta +rulo +rumbo +rumor +ruptura +ruta +rutina +sábado +saber +sabio +sable +sacar +sagaz +sagrado +sala +saldo +salero +salir +salmón +salón +salsa +salto +salud +salvar +samba +sanción +sandía +sanear +sangre +sanidad +sano +santo +sapo +saque +sardina +sartén +sastre +satán +sauna +saxofón +sección +seco +secreto +secta +sed +seguir +seis +sello +selva +semana +semilla +senda +sensor +señal +señor +separar +sepia +sequía +ser +serie +sermón +servir +sesenta +sesión +seta +setenta +severo +sexo +sexto +sidra +siesta +siete +siglo +signo +sílaba +silbar +silencio +silla +símbolo +simio +sirena +sistema +sitio +situar +sobre +socio +sodio +sol +solapa +soldado +soledad +sólido +soltar +solución +sombra +sondeo +sonido +sonoro +sonrisa +sopa +soplar +soporte +sordo +sorpresa +sorteo +sostén +sótano +suave +subir +suceso +sudor +suegra +suelo +sueño +suerte +sufrir +sujeto +sultán +sumar +superar +suplir +suponer +supremo +sur +surco +sureño +surgir +susto +sutil +tabaco +tabique +tabla +tabú +taco +tacto +tajo +talar +talco +talento +talla +talón +tamaño +tambor +tango +tanque +tapa +tapete +tapia +tapón +taquilla +tarde +tarea +tarifa +tarjeta +tarot +tarro +tarta +tatuaje +tauro +taza +tazón +teatro +techo +tecla +técnica +tejado +tejer +tejido +tela +teléfono +tema +temor +templo +tenaz +tender +tener +tenis +tenso +teoría +terapia +terco +término +ternura +terror +tesis +tesoro +testigo +tetera +texto +tez +tibio +tiburón +tiempo +tienda +tierra +tieso +tigre +tijera +tilde +timbre +tímido +timo +tinta +tío +típico +tipo +tira +tirón +titán +títere +título +tiza +toalla +tobillo +tocar +tocino +todo +toga +toldo +tomar +tono +tonto +topar +tope +toque +tórax +torero +tormenta +torneo +toro +torpedo +torre +torso +tortuga +tos +tosco +toser +tóxico +trabajo +tractor +traer +tráfico +trago +traje +tramo +trance +trato +trauma +trazar +trébol +tregua +treinta +tren +trepar +tres +tribu +trigo +tripa +triste +triunfo +trofeo +trompa +tronco +tropa +trote +trozo +truco +trueno +trufa +tubería +tubo +tuerto +tumba +tumor +túnel +túnica +turbina +turismo +turno +tutor +ubicar +úlcera +umbral +unidad +unir +universo +uno +untar +uña +urbano +urbe +urgente +urna +usar +usuario +útil +utopía +uva +vaca +vacío +vacuna +vagar +vago +vaina +vajilla +vale +válido +valle +valor +válvula +vampiro +vara +variar +varón +vaso +vecino +vector +vehículo +veinte +vejez +vela +velero +veloz +vena +vencer +venda +veneno +vengar +venir +venta +venus +ver +verano +verbo +verde +vereda +verja +verso +verter +vía +viaje +vibrar +vicio +víctima +vida +vídeo +vidrio +viejo +viernes +vigor +vil +villa +vinagre +vino +viñedo +violín +viral +virgo +virtud +visor +víspera +vista +vitamina +viudo +vivaz +vivero +vivir +vivo +volcán +volumen +volver +voraz +votar +voto +voz +vuelo +vulgar +yacer +yate +yegua +yema +yerno +yeso +yodo +yoga +yogur +zafiro +zanja +zapato +zarza +zona +zorro +zumo +zurdo +` diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bip44/bip44.go b/vendor/github.com/skycoin/skycoin/src/cipher/bip44/bip44.go new file mode 100644 index 000000000..801a455cf --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bip44/bip44.go @@ -0,0 +1,103 @@ +/* +Package bip44 implements the bip44 spec https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki +*/ +package bip44 + +import ( + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher/bip32" +) + +// Bip44's bip32 path: m / purpose' / coin_type' / account' / change / address_index + +var ( + // ErrInvalidCoinType coin_type is >= 0x80000000 + ErrInvalidCoinType = errors.New("invalid bip44 coin type") + + // ErrInvalidAccount account is >= 0x80000000 + ErrInvalidAccount = errors.New("bip44 account index must be < 0x80000000") +) + +// CoinType is the coin_type part of the bip44 path +type CoinType uint32 + +const ( + // CoinTypeBitcoin is the coin_type for Bitcoin + CoinTypeBitcoin CoinType = 0 + // CoinTypeBitcoinTestnet is the coin_type for Skycoin + CoinTypeBitcoinTestnet CoinType = 1 + // CoinTypeSkycoin is the coin_type for Skycoin + CoinTypeSkycoin CoinType = 8000 + + // ExternalChainIndex is the index of the external chain + ExternalChainIndex uint32 = 0 + // ChangeChainIndex is the index of the change chain + ChangeChainIndex uint32 = 1 +) + +// Coin is a bip32 node at the `coin_type` level of a bip44 path +type Coin struct { + *bip32.PrivateKey +} + +// NewCoin creates a bip32 node at the `coin_type` level of a bip44 path +func NewCoin(seed []byte, coinType CoinType) (*Coin, error) { + if uint32(coinType) >= bip32.FirstHardenedChild { + return nil, ErrInvalidCoinType + } + + path := fmt.Sprintf("m/44'/%d'", coinType) + pk, err := bip32.NewPrivateKeyFromPath(seed, path) + if err != nil { + return nil, err + } + + return &Coin{ + pk, + }, nil +} + +// Account creates a bip32 node at the `account'` level of the bip44 path. +// The account number should be as it would appear in the path string, without +// the apostrophe that indicates hardening +func (c *Coin) Account(account uint32) (*Account, error) { + if account >= bip32.FirstHardenedChild { + return nil, ErrInvalidAccount + } + + pk, err := c.NewPrivateChildKey(account + bip32.FirstHardenedChild) + if err != nil { + return nil, err + } + + return &Account{ + pk, + }, nil +} + +// Account is a bip32 node at the `account` level of a bip44 path +type Account struct { + *bip32.PrivateKey +} + +// External returns the external chain node, to be used for receiving coins +func (a *Account) External() (*bip32.PrivateKey, error) { + return a.NewPrivateChildKey(ExternalChainIndex) +} + +// Change returns the change chain node, to be used for change addresses +func (a *Account) Change() (*bip32.PrivateKey, error) { + return a.NewPrivateChildKey(ChangeChainIndex) +} + +// Clone clones the account +func (a *Account) Clone() Account { + na := Account{} + if a.PrivateKey != nil { + key := a.PrivateKey.Clone() + na.PrivateKey = &key + } + return na +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bitcoin.go b/vendor/github.com/skycoin/skycoin/src/cipher/bitcoin.go new file mode 100644 index 000000000..e601d5a2c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/bitcoin.go @@ -0,0 +1,195 @@ +package cipher + +import ( + "bytes" + "errors" + "log" + + "github.com/skycoin/skycoin/src/cipher/base58" +) + +var ( + // ErrInvalidLength Unexpected size of string or bytes buffer + ErrInvalidLength = errors.New("Invalid length") + // ErrBitcoinWIFInvalidFirstByte Unexpected value (!= 0x80) of first byte in Bitcoin Wallet Import Format + ErrBitcoinWIFInvalidFirstByte = errors.New("Bitcoin WIF: First byte invalid") + // ErrBitcoinWIFInvalidSuffix Unexpected value (!= 0x01) of 33rd byte in Bitcoin Wallet Import Format + ErrBitcoinWIFInvalidSuffix = errors.New("Bitcoin WIF: Invalid 33rd byte") + // ErrBitcoinWIFInvalidChecksum Invalid Checksum in Bitcoin WIF address + ErrBitcoinWIFInvalidChecksum = errors.New("Bitcoin WIF: Checksum fail") +) + +// BitcoinAddress is a bitcoin address +type BitcoinAddress struct { + Version byte // 1 byte + Key Ripemd160 // 20 byte pubkey hash +} + +// BitcoinPubKeyRipemd160 returns ripemd160(sha256(key)) +func BitcoinPubKeyRipemd160(pubKey PubKey) Ripemd160 { + r1 := SumSHA256(pubKey[:]) + return HashRipemd160(r1[:]) +} + +// BitcoinAddressFromPubKey creates a mainnet (version 0) BitcoinAddress from PubKey as ripemd160(sha256(pubkey))) +func BitcoinAddressFromPubKey(pubKey PubKey) BitcoinAddress { + return BitcoinAddress{ + Version: 0, + Key: BitcoinPubKeyRipemd160(pubKey), + } +} + +// BitcoinAddressFromSecKey generates a BitcoinAddress from SecKey +func BitcoinAddressFromSecKey(secKey SecKey) (BitcoinAddress, error) { + p, err := PubKeyFromSecKey(secKey) + if err != nil { + return BitcoinAddress{}, err + } + return BitcoinAddressFromPubKey(p), nil +} + +// MustBitcoinAddressFromSecKey generates a BitcoinAddress from SecKey, panics on error +func MustBitcoinAddressFromSecKey(secKey SecKey) BitcoinAddress { + return BitcoinAddressFromPubKey(MustPubKeyFromSecKey(secKey)) +} + +// DecodeBase58BitcoinAddress creates a BitcoinAddress from its base58 encoding +func DecodeBase58BitcoinAddress(addr string) (BitcoinAddress, error) { + b, err := base58.Decode(addr) + if err != nil { + return BitcoinAddress{}, err + } + return BitcoinAddressFromBytes(b) +} + +// MustDecodeBase58BitcoinAddress creates a BitcoinAddress from its base58 encoding, panics on error +func MustDecodeBase58BitcoinAddress(addr string) BitcoinAddress { + a, err := DecodeBase58BitcoinAddress(addr) + if err != nil { + log.Panicf("Invalid bitcoin address %s: %v", addr, err) + } + return a +} + +// BitcoinAddressFromBytes converts []byte to a BitcoinAddress. Only supports mainnet (version 0) addresses. +func BitcoinAddressFromBytes(b []byte) (BitcoinAddress, error) { + if len(b) != 20+1+4 { + return BitcoinAddress{}, ErrAddressInvalidLength + } + a := BitcoinAddress{} + copy(a.Key[0:20], b[1:21]) + a.Version = b[0] + + var checksum [4]byte + copy(checksum[0:4], b[21:25]) + + if checksum != a.Checksum() { + return BitcoinAddress{}, ErrAddressInvalidChecksum + } + + // BitcoinAddress only supports mainnet addresses for now + if a.Version != 0 { + return BitcoinAddress{}, ErrAddressInvalidVersion + } + + return a, nil +} + +// MustBitcoinAddressFromBytes converts []byte to a BitcoinAddress, panics on error +func MustBitcoinAddressFromBytes(b []byte) BitcoinAddress { + addr, err := BitcoinAddressFromBytes(b) + if err != nil { + log.Panic(err) + } + + return addr +} + +// Null returns true if the address is null (0x0000....) +func (addr BitcoinAddress) Null() bool { + return addr == BitcoinAddress{} +} + +// Bytes returns bitcoin address as byte slice +func (addr BitcoinAddress) Bytes() []byte { + b := make([]byte, 20+1+4) + b[0] = addr.Version + copy(b[1:21], addr.Key[0:20]) + chksum := addr.Checksum() + copy(b[21:25], chksum[0:4]) + return b +} + +// Verify checks that the bitcoin address appears valid for the public key +func (addr BitcoinAddress) Verify(key PubKey) error { + // BitcoinAddress only supports mainnet addresses for now + if addr.Version != 0x00 { + return ErrAddressInvalidVersion + } + if addr.Key != BitcoinPubKeyRipemd160(key) { + return ErrAddressInvalidPubKey + } + return nil +} + +// String convert bitcoin address to hex string +func (addr BitcoinAddress) String() string { + return string(base58.Encode(addr.Bytes())) +} + +// Checksum returns a bitcoin address Checksum which is the first 4 bytes of sha256(sha256(version+key)) +func (addr BitcoinAddress) Checksum() Checksum { + r1 := append([]byte{addr.Version}, addr.Key[:]...) + r2 := DoubleSHA256(r1[:]) + c := Checksum{} + copy(c[:], r2[:len(c)]) + return c +} + +// BitcoinWalletImportFormatFromSeckey exports seckey in wallet import format +// key must be compressed +func BitcoinWalletImportFormatFromSeckey(seckey SecKey) string { + b1 := append([]byte{byte(0x80)}, seckey[:]...) + b2 := append(b1[:], []byte{0x01}...) + b3 := DoubleSHA256(b2) //checksum + b4 := append(b2, b3[0:4]...) + return string(base58.Encode(b4)) +} + +// SecKeyFromBitcoinWalletImportFormat extracts a seckey from the bitcoin wallet import format +func SecKeyFromBitcoinWalletImportFormat(input string) (SecKey, error) { + b, err := base58.Decode(input) + if err != nil { + return SecKey{}, err + } + + //1+32+1+4 + if len(b) != 38 { + return SecKey{}, ErrInvalidLength + } + if b[0] != 0x80 { + return SecKey{}, ErrBitcoinWIFInvalidFirstByte + } + + if b[1+32] != 0x01 { + return SecKey{}, ErrBitcoinWIFInvalidSuffix + } + + b2 := DoubleSHA256(b[0:34]) + chksum := b[34:38] + + if !bytes.Equal(chksum, b2[0:4]) { + return SecKey{}, ErrBitcoinWIFInvalidChecksum + } + + return NewSecKey(b[1:33]) +} + +// MustSecKeyFromBitcoinWalletImportFormat extracts a seckey from the bitcoin wallet import format, panics on error +func MustSecKeyFromBitcoinWalletImportFormat(input string) SecKey { + seckey, err := SecKeyFromBitcoinWalletImportFormat(input) + if err != nil { + log.Panicf("MustSecKeyFromBitcoinWalletImportFormat, invalid seckey, %v", err) + } + return seckey +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305.go b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305.go new file mode 100644 index 000000000..b3a33ae65 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305.go @@ -0,0 +1,83 @@ +// 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. + +// Package chacha20poly1305 implements the ChaCha20-Poly1305 AEAD as specified in RFC 7539. +package chacha20poly1305 // import "github.com/skycoin/skycoin/src/cipher/chacha20poly1305" + +import ( + "crypto/cipher" + "errors" +) + +const ( + // KeySize is the size of the key used by this AEAD, in bytes. + KeySize = 32 + // NonceSize is the size of the nonce used with this AEAD, in bytes. + NonceSize = 12 +) + +type chacha20poly1305 struct { + key [32]byte +} + +// New returns a ChaCha20-Poly1305 AEAD that uses the given, 256-bit key. +func New(key []byte) (cipher.AEAD, error) { + if len(key) != KeySize { + return nil, errors.New("chacha20poly1305: bad key length") + } + ret := new(chacha20poly1305) + copy(ret.key[:], key) + return ret, nil +} + +func (c *chacha20poly1305) NonceSize() int { + return NonceSize +} + +func (c *chacha20poly1305) Overhead() int { + return 16 +} + +func (c *chacha20poly1305) Seal(dst, nonce, plaintext, additionalData []byte) []byte { + if len(nonce) != NonceSize { + panic("chacha20poly1305: bad nonce length passed to Seal") + } + + if uint64(len(plaintext)) > (1<<38)-64 { + panic("chacha20poly1305: plaintext too large") + } + + return c.seal(dst, nonce, plaintext, additionalData) +} + +var errOpen = errors.New("chacha20poly1305: message authentication failed") + +func (c *chacha20poly1305) Open(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) { + if len(nonce) != NonceSize { + panic("chacha20poly1305: bad nonce length passed to Open") + } + if len(ciphertext) < 16 { + return nil, errOpen + } + if uint64(len(ciphertext)) > (1<<38)-48 { + panic("chacha20poly1305: ciphertext too large") + } + + return c.open(dst, nonce, ciphertext, additionalData) +} + +// sliceForAppend takes a slice and a requested number of bytes. It returns a +// slice with the contents of the given slice followed by that many bytes and a +// second slice that aliases into it and contains only the extra bytes. If the +// original slice has sufficient capacity then no allocation is performed. +func sliceForAppend(in []byte, n int) (head, tail []byte) { + if total := len(in) + n; cap(in) >= total { + head = in[:total] + } else { + head = make([]byte, total) + copy(head, in) + } + tail = head[len(in):] + return +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_amd64.go b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_amd64.go new file mode 100644 index 000000000..7cd7ad834 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_amd64.go @@ -0,0 +1,127 @@ +// 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.7,amd64,!gccgo,!appengine + +package chacha20poly1305 + +import "encoding/binary" + +//go:noescape +func chacha20Poly1305Open(dst []byte, key []uint32, src, ad []byte) bool + +//go:noescape +func chacha20Poly1305Seal(dst []byte, key []uint32, src, ad []byte) + +// cpuid is implemented in chacha20poly1305_amd64.s. +func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) + +// xgetbv with ecx = 0 is implemented in chacha20poly1305_amd64.s. +func xgetbv() (eax, edx uint32) + +var ( + useASM bool + useAVX2 bool +) + +func init() { + detectCPUFeatures() +} + +// detectCPUFeatures is used to detect if cpu instructions +// used by the functions implemented in assembler in +// chacha20poly1305_amd64.s are supported. +func detectCPUFeatures() { + maxID, _, _, _ := cpuid(0, 0) + if maxID < 1 { + return + } + + _, _, ecx1, _ := cpuid(1, 0) + + haveSSSE3 := isSet(9, ecx1) + useASM = haveSSSE3 + + haveOSXSAVE := isSet(27, ecx1) + + osSupportsAVX := false + // For XGETBV, OSXSAVE bit is required and sufficient. + if haveOSXSAVE { + eax, _ := xgetbv() + // Check if XMM and YMM registers have OS support. + osSupportsAVX = isSet(1, eax) && isSet(2, eax) + } + haveAVX := isSet(28, ecx1) && osSupportsAVX + + if maxID < 7 { + return + } + + _, ebx7, _, _ := cpuid(7, 0) + haveAVX2 := isSet(5, ebx7) && haveAVX + haveBMI2 := isSet(8, ebx7) + + useAVX2 = haveAVX2 && haveBMI2 +} + +// isSet checks if bit at bitpos is set in value. +func isSet(bitpos uint, value uint32) bool { + return value&(1<+0x00(SB)/4, $0x61707865 +DATA ·chacha20Constants<>+0x04(SB)/4, $0x3320646e +DATA ·chacha20Constants<>+0x08(SB)/4, $0x79622d32 +DATA ·chacha20Constants<>+0x0c(SB)/4, $0x6b206574 +DATA ·chacha20Constants<>+0x10(SB)/4, $0x61707865 +DATA ·chacha20Constants<>+0x14(SB)/4, $0x3320646e +DATA ·chacha20Constants<>+0x18(SB)/4, $0x79622d32 +DATA ·chacha20Constants<>+0x1c(SB)/4, $0x6b206574 +// <<< 16 with PSHUFB +DATA ·rol16<>+0x00(SB)/8, $0x0504070601000302 +DATA ·rol16<>+0x08(SB)/8, $0x0D0C0F0E09080B0A +DATA ·rol16<>+0x10(SB)/8, $0x0504070601000302 +DATA ·rol16<>+0x18(SB)/8, $0x0D0C0F0E09080B0A +// <<< 8 with PSHUFB +DATA ·rol8<>+0x00(SB)/8, $0x0605040702010003 +DATA ·rol8<>+0x08(SB)/8, $0x0E0D0C0F0A09080B +DATA ·rol8<>+0x10(SB)/8, $0x0605040702010003 +DATA ·rol8<>+0x18(SB)/8, $0x0E0D0C0F0A09080B + +DATA ·avx2InitMask<>+0x00(SB)/8, $0x0 +DATA ·avx2InitMask<>+0x08(SB)/8, $0x0 +DATA ·avx2InitMask<>+0x10(SB)/8, $0x1 +DATA ·avx2InitMask<>+0x18(SB)/8, $0x0 + +DATA ·avx2IncMask<>+0x00(SB)/8, $0x2 +DATA ·avx2IncMask<>+0x08(SB)/8, $0x0 +DATA ·avx2IncMask<>+0x10(SB)/8, $0x2 +DATA ·avx2IncMask<>+0x18(SB)/8, $0x0 +// Poly1305 key clamp +DATA ·polyClampMask<>+0x00(SB)/8, $0x0FFFFFFC0FFFFFFF +DATA ·polyClampMask<>+0x08(SB)/8, $0x0FFFFFFC0FFFFFFC +DATA ·polyClampMask<>+0x10(SB)/8, $0xFFFFFFFFFFFFFFFF +DATA ·polyClampMask<>+0x18(SB)/8, $0xFFFFFFFFFFFFFFFF + +DATA ·sseIncMask<>+0x00(SB)/8, $0x1 +DATA ·sseIncMask<>+0x08(SB)/8, $0x0 +// To load/store the last < 16 bytes in a buffer +DATA ·andMask<>+0x00(SB)/8, $0x00000000000000ff +DATA ·andMask<>+0x08(SB)/8, $0x0000000000000000 +DATA ·andMask<>+0x10(SB)/8, $0x000000000000ffff +DATA ·andMask<>+0x18(SB)/8, $0x0000000000000000 +DATA ·andMask<>+0x20(SB)/8, $0x0000000000ffffff +DATA ·andMask<>+0x28(SB)/8, $0x0000000000000000 +DATA ·andMask<>+0x30(SB)/8, $0x00000000ffffffff +DATA ·andMask<>+0x38(SB)/8, $0x0000000000000000 +DATA ·andMask<>+0x40(SB)/8, $0x000000ffffffffff +DATA ·andMask<>+0x48(SB)/8, $0x0000000000000000 +DATA ·andMask<>+0x50(SB)/8, $0x0000ffffffffffff +DATA ·andMask<>+0x58(SB)/8, $0x0000000000000000 +DATA ·andMask<>+0x60(SB)/8, $0x00ffffffffffffff +DATA ·andMask<>+0x68(SB)/8, $0x0000000000000000 +DATA ·andMask<>+0x70(SB)/8, $0xffffffffffffffff +DATA ·andMask<>+0x78(SB)/8, $0x0000000000000000 +DATA ·andMask<>+0x80(SB)/8, $0xffffffffffffffff +DATA ·andMask<>+0x88(SB)/8, $0x00000000000000ff +DATA ·andMask<>+0x90(SB)/8, $0xffffffffffffffff +DATA ·andMask<>+0x98(SB)/8, $0x000000000000ffff +DATA ·andMask<>+0xa0(SB)/8, $0xffffffffffffffff +DATA ·andMask<>+0xa8(SB)/8, $0x0000000000ffffff +DATA ·andMask<>+0xb0(SB)/8, $0xffffffffffffffff +DATA ·andMask<>+0xb8(SB)/8, $0x00000000ffffffff +DATA ·andMask<>+0xc0(SB)/8, $0xffffffffffffffff +DATA ·andMask<>+0xc8(SB)/8, $0x000000ffffffffff +DATA ·andMask<>+0xd0(SB)/8, $0xffffffffffffffff +DATA ·andMask<>+0xd8(SB)/8, $0x0000ffffffffffff +DATA ·andMask<>+0xe0(SB)/8, $0xffffffffffffffff +DATA ·andMask<>+0xe8(SB)/8, $0x00ffffffffffffff + +GLOBL ·chacha20Constants<>(SB), (NOPTR+RODATA), $32 +GLOBL ·rol16<>(SB), (NOPTR+RODATA), $32 +GLOBL ·rol8<>(SB), (NOPTR+RODATA), $32 +GLOBL ·sseIncMask<>(SB), (NOPTR+RODATA), $16 +GLOBL ·avx2IncMask<>(SB), (NOPTR+RODATA), $32 +GLOBL ·avx2InitMask<>(SB), (NOPTR+RODATA), $32 +GLOBL ·polyClampMask<>(SB), (NOPTR+RODATA), $32 +GLOBL ·andMask<>(SB), (NOPTR+RODATA), $240 +// No PALIGNR in Go ASM yet (but VPALIGNR is present). +#define shiftB0Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xdb; BYTE $0x04 // PALIGNR $4, X3, X3 +#define shiftB1Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xe4; BYTE $0x04 // PALIGNR $4, X4, X4 +#define shiftB2Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xed; BYTE $0x04 // PALIGNR $4, X5, X5 +#define shiftB3Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xed; BYTE $0x04 // PALIGNR $4, X13, X13 +#define shiftC0Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xf6; BYTE $0x08 // PALIGNR $8, X6, X6 +#define shiftC1Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xff; BYTE $0x08 // PALIGNR $8, X7, X7 +#define shiftC2Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xc0; BYTE $0x08 // PALIGNR $8, X8, X8 +#define shiftC3Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xf6; BYTE $0x08 // PALIGNR $8, X14, X14 +#define shiftD0Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xc9; BYTE $0x0c // PALIGNR $12, X9, X9 +#define shiftD1Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xd2; BYTE $0x0c // PALIGNR $12, X10, X10 +#define shiftD2Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xdb; BYTE $0x0c // PALIGNR $12, X11, X11 +#define shiftD3Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xff; BYTE $0x0c // PALIGNR $12, X15, X15 +#define shiftB0Right BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xdb; BYTE $0x0c // PALIGNR $12, X3, X3 +#define shiftB1Right BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xe4; BYTE $0x0c // PALIGNR $12, X4, X4 +#define shiftB2Right BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xed; BYTE $0x0c // PALIGNR $12, X5, X5 +#define shiftB3Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xed; BYTE $0x0c // PALIGNR $12, X13, X13 +#define shiftC0Right shiftC0Left +#define shiftC1Right shiftC1Left +#define shiftC2Right shiftC2Left +#define shiftC3Right shiftC3Left +#define shiftD0Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xc9; BYTE $0x04 // PALIGNR $4, X9, X9 +#define shiftD1Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xd2; BYTE $0x04 // PALIGNR $4, X10, X10 +#define shiftD2Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xdb; BYTE $0x04 // PALIGNR $4, X11, X11 +#define shiftD3Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xff; BYTE $0x04 // PALIGNR $4, X15, X15 +// Some macros +#define chachaQR(A, B, C, D, T) \ + PADDD B, A; PXOR A, D; PSHUFB ·rol16<>(SB), D \ + PADDD D, C; PXOR C, B; MOVO B, T; PSLLL $12, T; PSRLL $20, B; PXOR T, B \ + PADDD B, A; PXOR A, D; PSHUFB ·rol8<>(SB), D \ + PADDD D, C; PXOR C, B; MOVO B, T; PSLLL $7, T; PSRLL $25, B; PXOR T, B + +#define chachaQR_AVX2(A, B, C, D, T) \ + VPADDD B, A, A; VPXOR A, D, D; VPSHUFB ·rol16<>(SB), D, D \ + VPADDD D, C, C; VPXOR C, B, B; VPSLLD $12, B, T; VPSRLD $20, B, B; VPXOR T, B, B \ + VPADDD B, A, A; VPXOR A, D, D; VPSHUFB ·rol8<>(SB), D, D \ + VPADDD D, C, C; VPXOR C, B, B; VPSLLD $7, B, T; VPSRLD $25, B, B; VPXOR T, B, B + +#define polyAdd(S) ADDQ S, acc0; ADCQ 8+S, acc1; ADCQ $1, acc2 +#define polyMulStage1 MOVQ (0*8)(BP), AX; MOVQ AX, t2; MULQ acc0; MOVQ AX, t0; MOVQ DX, t1; MOVQ (0*8)(BP), AX; MULQ acc1; IMULQ acc2, t2; ADDQ AX, t1; ADCQ DX, t2 +#define polyMulStage2 MOVQ (1*8)(BP), AX; MOVQ AX, t3; MULQ acc0; ADDQ AX, t1; ADCQ $0, DX; MOVQ DX, acc0; MOVQ (1*8)(BP), AX; MULQ acc1; ADDQ AX, t2; ADCQ $0, DX +#define polyMulStage3 IMULQ acc2, t3; ADDQ acc0, t2; ADCQ DX, t3 +#define polyMulReduceStage MOVQ t0, acc0; MOVQ t1, acc1; MOVQ t2, acc2; ANDQ $3, acc2; MOVQ t2, t0; ANDQ $-4, t0; MOVQ t3, t1; SHRQ $2, t2:t3; SHRQ $2, t3; ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $0, acc2; ADDQ t2, acc0; ADCQ t3, acc1; ADCQ $0, acc2 + +#define polyMulStage1_AVX2 MOVQ (0*8)(BP), DX; MOVQ DX, t2; MULXQ acc0, t0, t1; IMULQ acc2, t2; MULXQ acc1, AX, DX; ADDQ AX, t1; ADCQ DX, t2 +#define polyMulStage2_AVX2 MOVQ (1*8)(BP), DX; MULXQ acc0, acc0, AX; ADDQ acc0, t1; MULXQ acc1, acc1, t3; ADCQ acc1, t2; ADCQ $0, t3 +#define polyMulStage3_AVX2 IMULQ acc2, DX; ADDQ AX, t2; ADCQ DX, t3 + +#define polyMul polyMulStage1; polyMulStage2; polyMulStage3; polyMulReduceStage +#define polyMulAVX2 polyMulStage1_AVX2; polyMulStage2_AVX2; polyMulStage3_AVX2; polyMulReduceStage +// ---------------------------------------------------------------------------- +TEXT polyHashADInternal<>(SB), NOSPLIT, $0 + // adp points to beginning of additional data + // itr2 holds ad length + XORQ acc0, acc0 + XORQ acc1, acc1 + XORQ acc2, acc2 + CMPQ itr2, $13 + JNE hashADLoop + +openFastTLSAD: + // Special treatment for the TLS case of 13 bytes + MOVQ (adp), acc0 + MOVQ 5(adp), acc1 + SHRQ $24, acc1 + MOVQ $1, acc2 + polyMul + RET + +hashADLoop: + // Hash in 16 byte chunks + CMPQ itr2, $16 + JB hashADTail + polyAdd(0(adp)) + LEAQ (1*16)(adp), adp + SUBQ $16, itr2 + polyMul + JMP hashADLoop + +hashADTail: + CMPQ itr2, $0 + JE hashADDone + + // Hash last < 16 byte tail + XORQ t0, t0 + XORQ t1, t1 + XORQ t2, t2 + ADDQ itr2, adp + +hashADTailLoop: + SHLQ $8, t1:t0 + SHLQ $8, t0 + MOVB -1(adp), t2 + XORQ t2, t0 + DECQ adp + DECQ itr2 + JNE hashADTailLoop + +hashADTailFinish: + ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $1, acc2 + polyMul + + // Finished AD +hashADDone: + RET + +// ---------------------------------------------------------------------------- +// func chacha20Poly1305Open(dst, key, src, ad []byte) bool +TEXT ·chacha20Poly1305Open(SB), 0, $288-97 + // For aligned stack access + MOVQ SP, BP + ADDQ $32, BP + ANDQ $-32, BP + MOVQ dst+0(FP), oup + MOVQ key+24(FP), keyp + MOVQ src+48(FP), inp + MOVQ src_len+56(FP), inl + MOVQ ad+72(FP), adp + + // Check for AVX2 support + CMPB ·useAVX2(SB), $1 + JE chacha20Poly1305Open_AVX2 + + // Special optimization, for very short buffers + CMPQ inl, $128 + JBE openSSE128 // About 16% faster + + // For long buffers, prepare the poly key first + MOVOU ·chacha20Constants<>(SB), A0 + MOVOU (1*16)(keyp), B0 + MOVOU (2*16)(keyp), C0 + MOVOU (3*16)(keyp), D0 + MOVO D0, T1 + + // Store state on stack for future use + MOVO B0, state1Store + MOVO C0, state2Store + MOVO D0, ctr3Store + MOVQ $10, itr2 + +openSSEPreparePolyKey: + chachaQR(A0, B0, C0, D0, T0) + shiftB0Left; shiftC0Left; shiftD0Left + chachaQR(A0, B0, C0, D0, T0) + shiftB0Right; shiftC0Right; shiftD0Right + DECQ itr2 + JNE openSSEPreparePolyKey + + // A0|B0 hold the Poly1305 32-byte key, C0,D0 can be discarded + PADDL ·chacha20Constants<>(SB), A0; PADDL state1Store, B0 + + // Clamp and store the key + PAND ·polyClampMask<>(SB), A0 + MOVO A0, rStore; MOVO B0, sStore + + // Hash AAD + MOVQ ad_len+80(FP), itr2 + CALL polyHashADInternal<>(SB) + +openSSEMainLoop: + CMPQ inl, $256 + JB openSSEMainLoopDone + + // Load state, increment counter blocks + MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0 + MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1 + MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2 + MOVO A2, A3; MOVO B2, B3; MOVO C2, C3; MOVO D2, D3; PADDL ·sseIncMask<>(SB), D3 + + // Store counters + MOVO D0, ctr0Store; MOVO D1, ctr1Store; MOVO D2, ctr2Store; MOVO D3, ctr3Store + + // There are 10 ChaCha20 iterations of 2QR each, so for 6 iterations we hash 2 blocks, and for the remaining 4 only 1 block - for a total of 16 + MOVQ $4, itr1 + MOVQ inp, itr2 + +openSSEInternalLoop: + MOVO C3, tmpStore + chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3) + MOVO tmpStore, C3 + MOVO C1, tmpStore + chachaQR(A3, B3, C3, D3, C1) + MOVO tmpStore, C1 + polyAdd(0(itr2)) + shiftB0Left; shiftB1Left; shiftB2Left; shiftB3Left + shiftC0Left; shiftC1Left; shiftC2Left; shiftC3Left + shiftD0Left; shiftD1Left; shiftD2Left; shiftD3Left + polyMulStage1 + polyMulStage2 + LEAQ (2*8)(itr2), itr2 + MOVO C3, tmpStore + chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3) + MOVO tmpStore, C3 + MOVO C1, tmpStore + polyMulStage3 + chachaQR(A3, B3, C3, D3, C1) + MOVO tmpStore, C1 + polyMulReduceStage + shiftB0Right; shiftB1Right; shiftB2Right; shiftB3Right + shiftC0Right; shiftC1Right; shiftC2Right; shiftC3Right + shiftD0Right; shiftD1Right; shiftD2Right; shiftD3Right + DECQ itr1 + JGE openSSEInternalLoop + + polyAdd(0(itr2)) + polyMul + LEAQ (2*8)(itr2), itr2 + + CMPQ itr1, $-6 + JG openSSEInternalLoop + + // Add in the state + PADDD ·chacha20Constants<>(SB), A0; PADDD ·chacha20Constants<>(SB), A1; PADDD ·chacha20Constants<>(SB), A2; PADDD ·chacha20Constants<>(SB), A3 + PADDD state1Store, B0; PADDD state1Store, B1; PADDD state1Store, B2; PADDD state1Store, B3 + PADDD state2Store, C0; PADDD state2Store, C1; PADDD state2Store, C2; PADDD state2Store, C3 + PADDD ctr0Store, D0; PADDD ctr1Store, D1; PADDD ctr2Store, D2; PADDD ctr3Store, D3 + + // Load - xor - store + MOVO D3, tmpStore + MOVOU (0*16)(inp), D3; PXOR D3, A0; MOVOU A0, (0*16)(oup) + MOVOU (1*16)(inp), D3; PXOR D3, B0; MOVOU B0, (1*16)(oup) + MOVOU (2*16)(inp), D3; PXOR D3, C0; MOVOU C0, (2*16)(oup) + MOVOU (3*16)(inp), D3; PXOR D3, D0; MOVOU D0, (3*16)(oup) + MOVOU (4*16)(inp), D0; PXOR D0, A1; MOVOU A1, (4*16)(oup) + MOVOU (5*16)(inp), D0; PXOR D0, B1; MOVOU B1, (5*16)(oup) + MOVOU (6*16)(inp), D0; PXOR D0, C1; MOVOU C1, (6*16)(oup) + MOVOU (7*16)(inp), D0; PXOR D0, D1; MOVOU D1, (7*16)(oup) + MOVOU (8*16)(inp), D0; PXOR D0, A2; MOVOU A2, (8*16)(oup) + MOVOU (9*16)(inp), D0; PXOR D0, B2; MOVOU B2, (9*16)(oup) + MOVOU (10*16)(inp), D0; PXOR D0, C2; MOVOU C2, (10*16)(oup) + MOVOU (11*16)(inp), D0; PXOR D0, D2; MOVOU D2, (11*16)(oup) + MOVOU (12*16)(inp), D0; PXOR D0, A3; MOVOU A3, (12*16)(oup) + MOVOU (13*16)(inp), D0; PXOR D0, B3; MOVOU B3, (13*16)(oup) + MOVOU (14*16)(inp), D0; PXOR D0, C3; MOVOU C3, (14*16)(oup) + MOVOU (15*16)(inp), D0; PXOR tmpStore, D0; MOVOU D0, (15*16)(oup) + LEAQ 256(inp), inp + LEAQ 256(oup), oup + SUBQ $256, inl + JMP openSSEMainLoop + +openSSEMainLoopDone: + // Handle the various tail sizes efficiently + TESTQ inl, inl + JE openSSEFinalize + CMPQ inl, $64 + JBE openSSETail64 + CMPQ inl, $128 + JBE openSSETail128 + CMPQ inl, $192 + JBE openSSETail192 + JMP openSSETail256 + +openSSEFinalize: + // Hash in the PT, AAD lengths + ADDQ ad_len+80(FP), acc0; ADCQ src_len+56(FP), acc1; ADCQ $1, acc2 + polyMul + + // Final reduce + MOVQ acc0, t0 + MOVQ acc1, t1 + MOVQ acc2, t2 + SUBQ $-5, acc0 + SBBQ $-1, acc1 + SBBQ $3, acc2 + CMOVQCS t0, acc0 + CMOVQCS t1, acc1 + CMOVQCS t2, acc2 + + // Add in the "s" part of the key + ADDQ 0+sStore, acc0 + ADCQ 8+sStore, acc1 + + // Finally, constant time compare to the tag at the end of the message + XORQ AX, AX + MOVQ $1, DX + XORQ (0*8)(inp), acc0 + XORQ (1*8)(inp), acc1 + ORQ acc1, acc0 + CMOVQEQ DX, AX + + // Return true iff tags are equal + MOVB AX, ret+96(FP) + RET + +// ---------------------------------------------------------------------------- +// Special optimization for buffers smaller than 129 bytes +openSSE128: + // For up to 128 bytes of ciphertext and 64 bytes for the poly key, we require to process three blocks + MOVOU ·chacha20Constants<>(SB), A0; MOVOU (1*16)(keyp), B0; MOVOU (2*16)(keyp), C0; MOVOU (3*16)(keyp), D0 + MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1 + MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2 + MOVO B0, T1; MOVO C0, T2; MOVO D1, T3 + MOVQ $10, itr2 + +openSSE128InnerCipherLoop: + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0) + shiftB0Left; shiftB1Left; shiftB2Left + shiftC0Left; shiftC1Left; shiftC2Left + shiftD0Left; shiftD1Left; shiftD2Left + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0) + shiftB0Right; shiftB1Right; shiftB2Right + shiftC0Right; shiftC1Right; shiftC2Right + shiftD0Right; shiftD1Right; shiftD2Right + DECQ itr2 + JNE openSSE128InnerCipherLoop + + // A0|B0 hold the Poly1305 32-byte key, C0,D0 can be discarded + PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1; PADDL ·chacha20Constants<>(SB), A2 + PADDL T1, B0; PADDL T1, B1; PADDL T1, B2 + PADDL T2, C1; PADDL T2, C2 + PADDL T3, D1; PADDL ·sseIncMask<>(SB), T3; PADDL T3, D2 + + // Clamp and store the key + PAND ·polyClampMask<>(SB), A0 + MOVOU A0, rStore; MOVOU B0, sStore + + // Hash + MOVQ ad_len+80(FP), itr2 + CALL polyHashADInternal<>(SB) + +openSSE128Open: + CMPQ inl, $16 + JB openSSETail16 + SUBQ $16, inl + + // Load for hashing + polyAdd(0(inp)) + + // Load for decryption + MOVOU (inp), T0; PXOR T0, A1; MOVOU A1, (oup) + LEAQ (1*16)(inp), inp + LEAQ (1*16)(oup), oup + polyMul + + // Shift the stream "left" + MOVO B1, A1 + MOVO C1, B1 + MOVO D1, C1 + MOVO A2, D1 + MOVO B2, A2 + MOVO C2, B2 + MOVO D2, C2 + JMP openSSE128Open + +openSSETail16: + TESTQ inl, inl + JE openSSEFinalize + + // We can safely load the CT from the end, because it is padded with the MAC + MOVQ inl, itr2 + SHLQ $4, itr2 + LEAQ ·andMask<>(SB), t0 + MOVOU (inp), T0 + ADDQ inl, inp + PAND -16(t0)(itr2*1), T0 + MOVO T0, 0+tmpStore + MOVQ T0, t0 + MOVQ 8+tmpStore, t1 + PXOR A1, T0 + + // We can only store one byte at a time, since plaintext can be shorter than 16 bytes +openSSETail16Store: + MOVQ T0, t3 + MOVB t3, (oup) + PSRLDQ $1, T0 + INCQ oup + DECQ inl + JNE openSSETail16Store + ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $1, acc2 + polyMul + JMP openSSEFinalize + +// ---------------------------------------------------------------------------- +// Special optimization for the last 64 bytes of ciphertext +openSSETail64: + // Need to decrypt up to 64 bytes - prepare single block + MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr0Store + XORQ itr2, itr2 + MOVQ inl, itr1 + CMPQ itr1, $16 + JB openSSETail64LoopB + +openSSETail64LoopA: + // Perform ChaCha rounds, while hashing the remaining input + polyAdd(0(inp)(itr2*1)) + polyMul + SUBQ $16, itr1 + +openSSETail64LoopB: + ADDQ $16, itr2 + chachaQR(A0, B0, C0, D0, T0) + shiftB0Left; shiftC0Left; shiftD0Left + chachaQR(A0, B0, C0, D0, T0) + shiftB0Right; shiftC0Right; shiftD0Right + + CMPQ itr1, $16 + JAE openSSETail64LoopA + + CMPQ itr2, $160 + JNE openSSETail64LoopB + + PADDL ·chacha20Constants<>(SB), A0; PADDL state1Store, B0; PADDL state2Store, C0; PADDL ctr0Store, D0 + +openSSETail64DecLoop: + CMPQ inl, $16 + JB openSSETail64DecLoopDone + SUBQ $16, inl + MOVOU (inp), T0 + PXOR T0, A0 + MOVOU A0, (oup) + LEAQ 16(inp), inp + LEAQ 16(oup), oup + MOVO B0, A0 + MOVO C0, B0 + MOVO D0, C0 + JMP openSSETail64DecLoop + +openSSETail64DecLoopDone: + MOVO A0, A1 + JMP openSSETail16 + +// ---------------------------------------------------------------------------- +// Special optimization for the last 128 bytes of ciphertext +openSSETail128: + // Need to decrypt up to 128 bytes - prepare two blocks + MOVO ·chacha20Constants<>(SB), A1; MOVO state1Store, B1; MOVO state2Store, C1; MOVO ctr3Store, D1; PADDL ·sseIncMask<>(SB), D1; MOVO D1, ctr0Store + MOVO A1, A0; MOVO B1, B0; MOVO C1, C0; MOVO D1, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr1Store + XORQ itr2, itr2 + MOVQ inl, itr1 + ANDQ $-16, itr1 + +openSSETail128LoopA: + // Perform ChaCha rounds, while hashing the remaining input + polyAdd(0(inp)(itr2*1)) + polyMul + +openSSETail128LoopB: + ADDQ $16, itr2 + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0) + shiftB0Left; shiftC0Left; shiftD0Left + shiftB1Left; shiftC1Left; shiftD1Left + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0) + shiftB0Right; shiftC0Right; shiftD0Right + shiftB1Right; shiftC1Right; shiftD1Right + + CMPQ itr2, itr1 + JB openSSETail128LoopA + + CMPQ itr2, $160 + JNE openSSETail128LoopB + + PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1 + PADDL state1Store, B0; PADDL state1Store, B1 + PADDL state2Store, C0; PADDL state2Store, C1 + PADDL ctr1Store, D0; PADDL ctr0Store, D1 + + MOVOU (0*16)(inp), T0; MOVOU (1*16)(inp), T1; MOVOU (2*16)(inp), T2; MOVOU (3*16)(inp), T3 + PXOR T0, A1; PXOR T1, B1; PXOR T2, C1; PXOR T3, D1 + MOVOU A1, (0*16)(oup); MOVOU B1, (1*16)(oup); MOVOU C1, (2*16)(oup); MOVOU D1, (3*16)(oup) + + SUBQ $64, inl + LEAQ 64(inp), inp + LEAQ 64(oup), oup + JMP openSSETail64DecLoop + +// ---------------------------------------------------------------------------- +// Special optimization for the last 192 bytes of ciphertext +openSSETail192: + // Need to decrypt up to 192 bytes - prepare three blocks + MOVO ·chacha20Constants<>(SB), A2; MOVO state1Store, B2; MOVO state2Store, C2; MOVO ctr3Store, D2; PADDL ·sseIncMask<>(SB), D2; MOVO D2, ctr0Store + MOVO A2, A1; MOVO B2, B1; MOVO C2, C1; MOVO D2, D1; PADDL ·sseIncMask<>(SB), D1; MOVO D1, ctr1Store + MOVO A1, A0; MOVO B1, B0; MOVO C1, C0; MOVO D1, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr2Store + + MOVQ inl, itr1 + MOVQ $160, itr2 + CMPQ itr1, $160 + CMOVQGT itr2, itr1 + ANDQ $-16, itr1 + XORQ itr2, itr2 + +openSSLTail192LoopA: + // Perform ChaCha rounds, while hashing the remaining input + polyAdd(0(inp)(itr2*1)) + polyMul + +openSSLTail192LoopB: + ADDQ $16, itr2 + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0) + shiftB0Left; shiftC0Left; shiftD0Left + shiftB1Left; shiftC1Left; shiftD1Left + shiftB2Left; shiftC2Left; shiftD2Left + + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0) + shiftB0Right; shiftC0Right; shiftD0Right + shiftB1Right; shiftC1Right; shiftD1Right + shiftB2Right; shiftC2Right; shiftD2Right + + CMPQ itr2, itr1 + JB openSSLTail192LoopA + + CMPQ itr2, $160 + JNE openSSLTail192LoopB + + CMPQ inl, $176 + JB openSSLTail192Store + + polyAdd(160(inp)) + polyMul + + CMPQ inl, $192 + JB openSSLTail192Store + + polyAdd(176(inp)) + polyMul + +openSSLTail192Store: + PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1; PADDL ·chacha20Constants<>(SB), A2 + PADDL state1Store, B0; PADDL state1Store, B1; PADDL state1Store, B2 + PADDL state2Store, C0; PADDL state2Store, C1; PADDL state2Store, C2 + PADDL ctr2Store, D0; PADDL ctr1Store, D1; PADDL ctr0Store, D2 + + MOVOU (0*16)(inp), T0; MOVOU (1*16)(inp), T1; MOVOU (2*16)(inp), T2; MOVOU (3*16)(inp), T3 + PXOR T0, A2; PXOR T1, B2; PXOR T2, C2; PXOR T3, D2 + MOVOU A2, (0*16)(oup); MOVOU B2, (1*16)(oup); MOVOU C2, (2*16)(oup); MOVOU D2, (3*16)(oup) + + MOVOU (4*16)(inp), T0; MOVOU (5*16)(inp), T1; MOVOU (6*16)(inp), T2; MOVOU (7*16)(inp), T3 + PXOR T0, A1; PXOR T1, B1; PXOR T2, C1; PXOR T3, D1 + MOVOU A1, (4*16)(oup); MOVOU B1, (5*16)(oup); MOVOU C1, (6*16)(oup); MOVOU D1, (7*16)(oup) + + SUBQ $128, inl + LEAQ 128(inp), inp + LEAQ 128(oup), oup + JMP openSSETail64DecLoop + +// ---------------------------------------------------------------------------- +// Special optimization for the last 256 bytes of ciphertext +openSSETail256: + // Need to decrypt up to 256 bytes - prepare four blocks + MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0 + MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1 + MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2 + MOVO A2, A3; MOVO B2, B3; MOVO C2, C3; MOVO D2, D3; PADDL ·sseIncMask<>(SB), D3 + + // Store counters + MOVO D0, ctr0Store; MOVO D1, ctr1Store; MOVO D2, ctr2Store; MOVO D3, ctr3Store + XORQ itr2, itr2 + +openSSETail256Loop: + // This loop inteleaves 8 ChaCha quarter rounds with 1 poly multiplication + polyAdd(0(inp)(itr2*1)) + MOVO C3, tmpStore + chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3) + MOVO tmpStore, C3 + MOVO C1, tmpStore + chachaQR(A3, B3, C3, D3, C1) + MOVO tmpStore, C1 + shiftB0Left; shiftB1Left; shiftB2Left; shiftB3Left + shiftC0Left; shiftC1Left; shiftC2Left; shiftC3Left + shiftD0Left; shiftD1Left; shiftD2Left; shiftD3Left + polyMulStage1 + polyMulStage2 + MOVO C3, tmpStore + chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3) + MOVO tmpStore, C3 + MOVO C1, tmpStore + chachaQR(A3, B3, C3, D3, C1) + MOVO tmpStore, C1 + polyMulStage3 + polyMulReduceStage + shiftB0Right; shiftB1Right; shiftB2Right; shiftB3Right + shiftC0Right; shiftC1Right; shiftC2Right; shiftC3Right + shiftD0Right; shiftD1Right; shiftD2Right; shiftD3Right + ADDQ $2*8, itr2 + CMPQ itr2, $160 + JB openSSETail256Loop + MOVQ inl, itr1 + ANDQ $-16, itr1 + +openSSETail256HashLoop: + polyAdd(0(inp)(itr2*1)) + polyMul + ADDQ $2*8, itr2 + CMPQ itr2, itr1 + JB openSSETail256HashLoop + + // Add in the state + PADDD ·chacha20Constants<>(SB), A0; PADDD ·chacha20Constants<>(SB), A1; PADDD ·chacha20Constants<>(SB), A2; PADDD ·chacha20Constants<>(SB), A3 + PADDD state1Store, B0; PADDD state1Store, B1; PADDD state1Store, B2; PADDD state1Store, B3 + PADDD state2Store, C0; PADDD state2Store, C1; PADDD state2Store, C2; PADDD state2Store, C3 + PADDD ctr0Store, D0; PADDD ctr1Store, D1; PADDD ctr2Store, D2; PADDD ctr3Store, D3 + MOVO D3, tmpStore + + // Load - xor - store + MOVOU (0*16)(inp), D3; PXOR D3, A0 + MOVOU (1*16)(inp), D3; PXOR D3, B0 + MOVOU (2*16)(inp), D3; PXOR D3, C0 + MOVOU (3*16)(inp), D3; PXOR D3, D0 + MOVOU A0, (0*16)(oup) + MOVOU B0, (1*16)(oup) + MOVOU C0, (2*16)(oup) + MOVOU D0, (3*16)(oup) + MOVOU (4*16)(inp), A0; MOVOU (5*16)(inp), B0; MOVOU (6*16)(inp), C0; MOVOU (7*16)(inp), D0 + PXOR A0, A1; PXOR B0, B1; PXOR C0, C1; PXOR D0, D1 + MOVOU A1, (4*16)(oup); MOVOU B1, (5*16)(oup); MOVOU C1, (6*16)(oup); MOVOU D1, (7*16)(oup) + MOVOU (8*16)(inp), A0; MOVOU (9*16)(inp), B0; MOVOU (10*16)(inp), C0; MOVOU (11*16)(inp), D0 + PXOR A0, A2; PXOR B0, B2; PXOR C0, C2; PXOR D0, D2 + MOVOU A2, (8*16)(oup); MOVOU B2, (9*16)(oup); MOVOU C2, (10*16)(oup); MOVOU D2, (11*16)(oup) + LEAQ 192(inp), inp + LEAQ 192(oup), oup + SUBQ $192, inl + MOVO A3, A0 + MOVO B3, B0 + MOVO C3, C0 + MOVO tmpStore, D0 + + JMP openSSETail64DecLoop + +// ---------------------------------------------------------------------------- +// ------------------------- AVX2 Code ---------------------------------------- +chacha20Poly1305Open_AVX2: + VZEROUPPER + VMOVDQU ·chacha20Constants<>(SB), AA0 + BYTE $0xc4; BYTE $0x42; BYTE $0x7d; BYTE $0x5a; BYTE $0x70; BYTE $0x10 // broadcasti128 16(r8), ymm14 + BYTE $0xc4; BYTE $0x42; BYTE $0x7d; BYTE $0x5a; BYTE $0x60; BYTE $0x20 // broadcasti128 32(r8), ymm12 + BYTE $0xc4; BYTE $0xc2; BYTE $0x7d; BYTE $0x5a; BYTE $0x60; BYTE $0x30 // broadcasti128 48(r8), ymm4 + VPADDD ·avx2InitMask<>(SB), DD0, DD0 + + // Special optimization, for very short buffers + CMPQ inl, $192 + JBE openAVX2192 + CMPQ inl, $320 + JBE openAVX2320 + + // For the general key prepare the key first - as a byproduct we have 64 bytes of cipher stream + VMOVDQA BB0, state1StoreAVX2 + VMOVDQA CC0, state2StoreAVX2 + VMOVDQA DD0, ctr3StoreAVX2 + MOVQ $10, itr2 + +openAVX2PreparePolyKey: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0) + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $12, DD0, DD0, DD0 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0) + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $4, DD0, DD0, DD0 + DECQ itr2 + JNE openAVX2PreparePolyKey + + VPADDD ·chacha20Constants<>(SB), AA0, AA0 + VPADDD state1StoreAVX2, BB0, BB0 + VPADDD state2StoreAVX2, CC0, CC0 + VPADDD ctr3StoreAVX2, DD0, DD0 + + VPERM2I128 $0x02, AA0, BB0, TT0 + + // Clamp and store poly key + VPAND ·polyClampMask<>(SB), TT0, TT0 + VMOVDQA TT0, rsStoreAVX2 + + // Stream for the first 64 bytes + VPERM2I128 $0x13, AA0, BB0, AA0 + VPERM2I128 $0x13, CC0, DD0, BB0 + + // Hash AD + first 64 bytes + MOVQ ad_len+80(FP), itr2 + CALL polyHashADInternal<>(SB) + XORQ itr1, itr1 + +openAVX2InitialHash64: + polyAdd(0(inp)(itr1*1)) + polyMulAVX2 + ADDQ $16, itr1 + CMPQ itr1, $64 + JNE openAVX2InitialHash64 + + // Decrypt the first 64 bytes + VPXOR (0*32)(inp), AA0, AA0 + VPXOR (1*32)(inp), BB0, BB0 + VMOVDQU AA0, (0*32)(oup) + VMOVDQU BB0, (1*32)(oup) + LEAQ (2*32)(inp), inp + LEAQ (2*32)(oup), oup + SUBQ $64, inl + +openAVX2MainLoop: + CMPQ inl, $512 + JB openAVX2MainLoopDone + + // Load state, increment counter blocks, store the incremented counters + VMOVDQU ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3 + VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3 + VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3 + VMOVDQA ctr3StoreAVX2, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3 + VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2 + XORQ itr1, itr1 + +openAVX2InternalLoop: + // Lets just say this spaghetti loop interleaves 2 quarter rounds with 3 poly multiplications + // Effectively per 512 bytes of stream we hash 480 bytes of ciphertext + polyAdd(0*8(inp)(itr1*1)) + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + polyMulStage1_AVX2 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3 + polyMulStage2_AVX2 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + polyMulStage3_AVX2 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyMulReduceStage + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3 + polyAdd(2*8(inp)(itr1*1)) + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + polyMulStage1_AVX2 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyMulStage2_AVX2 + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $4, BB3, BB3, BB3 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2; VPALIGNR $12, DD3, DD3, DD3 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + polyMulStage3_AVX2 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3 + polyMulReduceStage + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + polyAdd(4*8(inp)(itr1*1)) + LEAQ (6*8)(itr1), itr1 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyMulStage1_AVX2 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + polyMulStage2_AVX2 + VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + polyMulStage3_AVX2 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyMulReduceStage + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $12, BB3, BB3, BB3 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2; VPALIGNR $4, DD3, DD3, DD3 + CMPQ itr1, $480 + JNE openAVX2InternalLoop + + VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3 + VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3 + VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3 + VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3 + VMOVDQA CC3, tmpStoreAVX2 + + // We only hashed 480 of the 512 bytes available - hash the remaining 32 here + polyAdd(480(inp)) + polyMulAVX2 + VPERM2I128 $0x02, AA0, BB0, CC3; VPERM2I128 $0x13, AA0, BB0, BB0; VPERM2I128 $0x02, CC0, DD0, AA0; VPERM2I128 $0x13, CC0, DD0, CC0 + VPXOR (0*32)(inp), CC3, CC3; VPXOR (1*32)(inp), AA0, AA0; VPXOR (2*32)(inp), BB0, BB0; VPXOR (3*32)(inp), CC0, CC0 + VMOVDQU CC3, (0*32)(oup); VMOVDQU AA0, (1*32)(oup); VMOVDQU BB0, (2*32)(oup); VMOVDQU CC0, (3*32)(oup) + VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0 + VPXOR (4*32)(inp), AA0, AA0; VPXOR (5*32)(inp), BB0, BB0; VPXOR (6*32)(inp), CC0, CC0; VPXOR (7*32)(inp), DD0, DD0 + VMOVDQU AA0, (4*32)(oup); VMOVDQU BB0, (5*32)(oup); VMOVDQU CC0, (6*32)(oup); VMOVDQU DD0, (7*32)(oup) + + // and here + polyAdd(496(inp)) + polyMulAVX2 + VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0 + VPXOR (8*32)(inp), AA0, AA0; VPXOR (9*32)(inp), BB0, BB0; VPXOR (10*32)(inp), CC0, CC0; VPXOR (11*32)(inp), DD0, DD0 + VMOVDQU AA0, (8*32)(oup); VMOVDQU BB0, (9*32)(oup); VMOVDQU CC0, (10*32)(oup); VMOVDQU DD0, (11*32)(oup) + VPERM2I128 $0x02, AA3, BB3, AA0; VPERM2I128 $0x02, tmpStoreAVX2, DD3, BB0; VPERM2I128 $0x13, AA3, BB3, CC0; VPERM2I128 $0x13, tmpStoreAVX2, DD3, DD0 + VPXOR (12*32)(inp), AA0, AA0; VPXOR (13*32)(inp), BB0, BB0; VPXOR (14*32)(inp), CC0, CC0; VPXOR (15*32)(inp), DD0, DD0 + VMOVDQU AA0, (12*32)(oup); VMOVDQU BB0, (13*32)(oup); VMOVDQU CC0, (14*32)(oup); VMOVDQU DD0, (15*32)(oup) + LEAQ (32*16)(inp), inp + LEAQ (32*16)(oup), oup + SUBQ $(32*16), inl + JMP openAVX2MainLoop + +openAVX2MainLoopDone: + // Handle the various tail sizes efficiently + TESTQ inl, inl + JE openSSEFinalize + CMPQ inl, $128 + JBE openAVX2Tail128 + CMPQ inl, $256 + JBE openAVX2Tail256 + CMPQ inl, $384 + JBE openAVX2Tail384 + JMP openAVX2Tail512 + +// ---------------------------------------------------------------------------- +// Special optimization for buffers smaller than 193 bytes +openAVX2192: + // For up to 192 bytes of ciphertext and 64 bytes for the poly key, we process four blocks + VMOVDQA AA0, AA1 + VMOVDQA BB0, BB1 + VMOVDQA CC0, CC1 + VPADDD ·avx2IncMask<>(SB), DD0, DD1 + VMOVDQA AA0, AA2 + VMOVDQA BB0, BB2 + VMOVDQA CC0, CC2 + VMOVDQA DD0, DD2 + VMOVDQA DD1, TT3 + MOVQ $10, itr2 + +openAVX2192InnerCipherLoop: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1 + DECQ itr2 + JNE openAVX2192InnerCipherLoop + VPADDD AA2, AA0, AA0; VPADDD AA2, AA1, AA1 + VPADDD BB2, BB0, BB0; VPADDD BB2, BB1, BB1 + VPADDD CC2, CC0, CC0; VPADDD CC2, CC1, CC1 + VPADDD DD2, DD0, DD0; VPADDD TT3, DD1, DD1 + VPERM2I128 $0x02, AA0, BB0, TT0 + + // Clamp and store poly key + VPAND ·polyClampMask<>(SB), TT0, TT0 + VMOVDQA TT0, rsStoreAVX2 + + // Stream for up to 192 bytes + VPERM2I128 $0x13, AA0, BB0, AA0 + VPERM2I128 $0x13, CC0, DD0, BB0 + VPERM2I128 $0x02, AA1, BB1, CC0 + VPERM2I128 $0x02, CC1, DD1, DD0 + VPERM2I128 $0x13, AA1, BB1, AA1 + VPERM2I128 $0x13, CC1, DD1, BB1 + +openAVX2ShortOpen: + // Hash + MOVQ ad_len+80(FP), itr2 + CALL polyHashADInternal<>(SB) + +openAVX2ShortOpenLoop: + CMPQ inl, $32 + JB openAVX2ShortTail32 + SUBQ $32, inl + + // Load for hashing + polyAdd(0*8(inp)) + polyMulAVX2 + polyAdd(2*8(inp)) + polyMulAVX2 + + // Load for decryption + VPXOR (inp), AA0, AA0 + VMOVDQU AA0, (oup) + LEAQ (1*32)(inp), inp + LEAQ (1*32)(oup), oup + + // Shift stream left + VMOVDQA BB0, AA0 + VMOVDQA CC0, BB0 + VMOVDQA DD0, CC0 + VMOVDQA AA1, DD0 + VMOVDQA BB1, AA1 + VMOVDQA CC1, BB1 + VMOVDQA DD1, CC1 + VMOVDQA AA2, DD1 + VMOVDQA BB2, AA2 + JMP openAVX2ShortOpenLoop + +openAVX2ShortTail32: + CMPQ inl, $16 + VMOVDQA A0, A1 + JB openAVX2ShortDone + + SUBQ $16, inl + + // Load for hashing + polyAdd(0*8(inp)) + polyMulAVX2 + + // Load for decryption + VPXOR (inp), A0, T0 + VMOVDQU T0, (oup) + LEAQ (1*16)(inp), inp + LEAQ (1*16)(oup), oup + VPERM2I128 $0x11, AA0, AA0, AA0 + VMOVDQA A0, A1 + +openAVX2ShortDone: + VZEROUPPER + JMP openSSETail16 + +// ---------------------------------------------------------------------------- +// Special optimization for buffers smaller than 321 bytes +openAVX2320: + // For up to 320 bytes of ciphertext and 64 bytes for the poly key, we process six blocks + VMOVDQA AA0, AA1; VMOVDQA BB0, BB1; VMOVDQA CC0, CC1; VPADDD ·avx2IncMask<>(SB), DD0, DD1 + VMOVDQA AA0, AA2; VMOVDQA BB0, BB2; VMOVDQA CC0, CC2; VPADDD ·avx2IncMask<>(SB), DD1, DD2 + VMOVDQA BB0, TT1; VMOVDQA CC0, TT2; VMOVDQA DD0, TT3 + MOVQ $10, itr2 + +openAVX2320InnerCipherLoop: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0) + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0) + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2 + DECQ itr2 + JNE openAVX2320InnerCipherLoop + + VMOVDQA ·chacha20Constants<>(SB), TT0 + VPADDD TT0, AA0, AA0; VPADDD TT0, AA1, AA1; VPADDD TT0, AA2, AA2 + VPADDD TT1, BB0, BB0; VPADDD TT1, BB1, BB1; VPADDD TT1, BB2, BB2 + VPADDD TT2, CC0, CC0; VPADDD TT2, CC1, CC1; VPADDD TT2, CC2, CC2 + VMOVDQA ·avx2IncMask<>(SB), TT0 + VPADDD TT3, DD0, DD0; VPADDD TT0, TT3, TT3 + VPADDD TT3, DD1, DD1; VPADDD TT0, TT3, TT3 + VPADDD TT3, DD2, DD2 + + // Clamp and store poly key + VPERM2I128 $0x02, AA0, BB0, TT0 + VPAND ·polyClampMask<>(SB), TT0, TT0 + VMOVDQA TT0, rsStoreAVX2 + + // Stream for up to 320 bytes + VPERM2I128 $0x13, AA0, BB0, AA0 + VPERM2I128 $0x13, CC0, DD0, BB0 + VPERM2I128 $0x02, AA1, BB1, CC0 + VPERM2I128 $0x02, CC1, DD1, DD0 + VPERM2I128 $0x13, AA1, BB1, AA1 + VPERM2I128 $0x13, CC1, DD1, BB1 + VPERM2I128 $0x02, AA2, BB2, CC1 + VPERM2I128 $0x02, CC2, DD2, DD1 + VPERM2I128 $0x13, AA2, BB2, AA2 + VPERM2I128 $0x13, CC2, DD2, BB2 + JMP openAVX2ShortOpen + +// ---------------------------------------------------------------------------- +// Special optimization for the last 128 bytes of ciphertext +openAVX2Tail128: + // Need to decrypt up to 128 bytes - prepare two blocks + VMOVDQA ·chacha20Constants<>(SB), AA1 + VMOVDQA state1StoreAVX2, BB1 + VMOVDQA state2StoreAVX2, CC1 + VMOVDQA ctr3StoreAVX2, DD1 + VPADDD ·avx2IncMask<>(SB), DD1, DD1 + VMOVDQA DD1, DD0 + + XORQ itr2, itr2 + MOVQ inl, itr1 + ANDQ $-16, itr1 + TESTQ itr1, itr1 + JE openAVX2Tail128LoopB + +openAVX2Tail128LoopA: + // Perform ChaCha rounds, while hashing the remaining input + polyAdd(0(inp)(itr2*1)) + polyMulAVX2 + +openAVX2Tail128LoopB: + ADDQ $16, itr2 + chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + VPALIGNR $4, BB1, BB1, BB1 + VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $12, DD1, DD1, DD1 + chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + VPALIGNR $12, BB1, BB1, BB1 + VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $4, DD1, DD1, DD1 + CMPQ itr2, itr1 + JB openAVX2Tail128LoopA + CMPQ itr2, $160 + JNE openAVX2Tail128LoopB + + VPADDD ·chacha20Constants<>(SB), AA1, AA1 + VPADDD state1StoreAVX2, BB1, BB1 + VPADDD state2StoreAVX2, CC1, CC1 + VPADDD DD0, DD1, DD1 + VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0 + +openAVX2TailLoop: + CMPQ inl, $32 + JB openAVX2Tail + SUBQ $32, inl + + // Load for decryption + VPXOR (inp), AA0, AA0 + VMOVDQU AA0, (oup) + LEAQ (1*32)(inp), inp + LEAQ (1*32)(oup), oup + VMOVDQA BB0, AA0 + VMOVDQA CC0, BB0 + VMOVDQA DD0, CC0 + JMP openAVX2TailLoop + +openAVX2Tail: + CMPQ inl, $16 + VMOVDQA A0, A1 + JB openAVX2TailDone + SUBQ $16, inl + + // Load for decryption + VPXOR (inp), A0, T0 + VMOVDQU T0, (oup) + LEAQ (1*16)(inp), inp + LEAQ (1*16)(oup), oup + VPERM2I128 $0x11, AA0, AA0, AA0 + VMOVDQA A0, A1 + +openAVX2TailDone: + VZEROUPPER + JMP openSSETail16 + +// ---------------------------------------------------------------------------- +// Special optimization for the last 256 bytes of ciphertext +openAVX2Tail256: + // Need to decrypt up to 256 bytes - prepare four blocks + VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1 + VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1 + VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1 + VMOVDQA ctr3StoreAVX2, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD1 + VMOVDQA DD0, TT1 + VMOVDQA DD1, TT2 + + // Compute the number of iterations that will hash data + MOVQ inl, tmpStoreAVX2 + MOVQ inl, itr1 + SUBQ $128, itr1 + SHRQ $4, itr1 + MOVQ $10, itr2 + CMPQ itr1, $10 + CMOVQGT itr2, itr1 + MOVQ inp, inl + XORQ itr2, itr2 + +openAVX2Tail256LoopA: + polyAdd(0(inl)) + polyMulAVX2 + LEAQ 16(inl), inl + + // Perform ChaCha rounds, while hashing the remaining input +openAVX2Tail256LoopB: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1 + INCQ itr2 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1 + CMPQ itr2, itr1 + JB openAVX2Tail256LoopA + + CMPQ itr2, $10 + JNE openAVX2Tail256LoopB + + MOVQ inl, itr2 + SUBQ inp, inl + MOVQ inl, itr1 + MOVQ tmpStoreAVX2, inl + + // Hash the remainder of data (if any) +openAVX2Tail256Hash: + ADDQ $16, itr1 + CMPQ itr1, inl + JGT openAVX2Tail256HashEnd + polyAdd (0(itr2)) + polyMulAVX2 + LEAQ 16(itr2), itr2 + JMP openAVX2Tail256Hash + +// Store 128 bytes safely, then go to store loop +openAVX2Tail256HashEnd: + VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1 + VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1 + VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1 + VPADDD TT1, DD0, DD0; VPADDD TT2, DD1, DD1 + VPERM2I128 $0x02, AA0, BB0, AA2; VPERM2I128 $0x02, CC0, DD0, BB2; VPERM2I128 $0x13, AA0, BB0, CC2; VPERM2I128 $0x13, CC0, DD0, DD2 + VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0 + + VPXOR (0*32)(inp), AA2, AA2; VPXOR (1*32)(inp), BB2, BB2; VPXOR (2*32)(inp), CC2, CC2; VPXOR (3*32)(inp), DD2, DD2 + VMOVDQU AA2, (0*32)(oup); VMOVDQU BB2, (1*32)(oup); VMOVDQU CC2, (2*32)(oup); VMOVDQU DD2, (3*32)(oup) + LEAQ (4*32)(inp), inp + LEAQ (4*32)(oup), oup + SUBQ $4*32, inl + + JMP openAVX2TailLoop + +// ---------------------------------------------------------------------------- +// Special optimization for the last 384 bytes of ciphertext +openAVX2Tail384: + // Need to decrypt up to 384 bytes - prepare six blocks + VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2 + VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2 + VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2 + VMOVDQA ctr3StoreAVX2, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD1 + VPADDD ·avx2IncMask<>(SB), DD1, DD2 + VMOVDQA DD0, ctr0StoreAVX2 + VMOVDQA DD1, ctr1StoreAVX2 + VMOVDQA DD2, ctr2StoreAVX2 + + // Compute the number of iterations that will hash two blocks of data + MOVQ inl, tmpStoreAVX2 + MOVQ inl, itr1 + SUBQ $256, itr1 + SHRQ $4, itr1 + ADDQ $6, itr1 + MOVQ $10, itr2 + CMPQ itr1, $10 + CMOVQGT itr2, itr1 + MOVQ inp, inl + XORQ itr2, itr2 + + // Perform ChaCha rounds, while hashing the remaining input +openAVX2Tail384LoopB: + polyAdd(0(inl)) + polyMulAVX2 + LEAQ 16(inl), inl + +openAVX2Tail384LoopA: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0) + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2 + polyAdd(0(inl)) + polyMulAVX2 + LEAQ 16(inl), inl + INCQ itr2 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0) + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2 + + CMPQ itr2, itr1 + JB openAVX2Tail384LoopB + + CMPQ itr2, $10 + JNE openAVX2Tail384LoopA + + MOVQ inl, itr2 + SUBQ inp, inl + MOVQ inl, itr1 + MOVQ tmpStoreAVX2, inl + +openAVX2Tail384Hash: + ADDQ $16, itr1 + CMPQ itr1, inl + JGT openAVX2Tail384HashEnd + polyAdd(0(itr2)) + polyMulAVX2 + LEAQ 16(itr2), itr2 + JMP openAVX2Tail384Hash + +// Store 256 bytes safely, then go to store loop +openAVX2Tail384HashEnd: + VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2 + VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2 + VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2 + VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2 + VPERM2I128 $0x02, AA0, BB0, TT0; VPERM2I128 $0x02, CC0, DD0, TT1; VPERM2I128 $0x13, AA0, BB0, TT2; VPERM2I128 $0x13, CC0, DD0, TT3 + VPXOR (0*32)(inp), TT0, TT0; VPXOR (1*32)(inp), TT1, TT1; VPXOR (2*32)(inp), TT2, TT2; VPXOR (3*32)(inp), TT3, TT3 + VMOVDQU TT0, (0*32)(oup); VMOVDQU TT1, (1*32)(oup); VMOVDQU TT2, (2*32)(oup); VMOVDQU TT3, (3*32)(oup) + VPERM2I128 $0x02, AA1, BB1, TT0; VPERM2I128 $0x02, CC1, DD1, TT1; VPERM2I128 $0x13, AA1, BB1, TT2; VPERM2I128 $0x13, CC1, DD1, TT3 + VPXOR (4*32)(inp), TT0, TT0; VPXOR (5*32)(inp), TT1, TT1; VPXOR (6*32)(inp), TT2, TT2; VPXOR (7*32)(inp), TT3, TT3 + VMOVDQU TT0, (4*32)(oup); VMOVDQU TT1, (5*32)(oup); VMOVDQU TT2, (6*32)(oup); VMOVDQU TT3, (7*32)(oup) + VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0 + LEAQ (8*32)(inp), inp + LEAQ (8*32)(oup), oup + SUBQ $8*32, inl + JMP openAVX2TailLoop + +// ---------------------------------------------------------------------------- +// Special optimization for the last 512 bytes of ciphertext +openAVX2Tail512: + VMOVDQU ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3 + VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3 + VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3 + VMOVDQA ctr3StoreAVX2, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3 + VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2 + XORQ itr1, itr1 + MOVQ inp, itr2 + +openAVX2Tail512LoopB: + polyAdd(0(itr2)) + polyMulAVX2 + LEAQ (2*8)(itr2), itr2 + +openAVX2Tail512LoopA: + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyAdd(0*8(itr2)) + polyMulAVX2 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $4, BB3, BB3, BB3 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2; VPALIGNR $12, DD3, DD3, DD3 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + polyAdd(2*8(itr2)) + polyMulAVX2 + LEAQ (4*8)(itr2), itr2 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $12, BB3, BB3, BB3 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2; VPALIGNR $4, DD3, DD3, DD3 + INCQ itr1 + CMPQ itr1, $4 + JLT openAVX2Tail512LoopB + + CMPQ itr1, $10 + JNE openAVX2Tail512LoopA + + MOVQ inl, itr1 + SUBQ $384, itr1 + ANDQ $-16, itr1 + +openAVX2Tail512HashLoop: + TESTQ itr1, itr1 + JE openAVX2Tail512HashEnd + polyAdd(0(itr2)) + polyMulAVX2 + LEAQ 16(itr2), itr2 + SUBQ $16, itr1 + JMP openAVX2Tail512HashLoop + +openAVX2Tail512HashEnd: + VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3 + VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3 + VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3 + VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3 + VMOVDQA CC3, tmpStoreAVX2 + VPERM2I128 $0x02, AA0, BB0, CC3; VPERM2I128 $0x13, AA0, BB0, BB0; VPERM2I128 $0x02, CC0, DD0, AA0; VPERM2I128 $0x13, CC0, DD0, CC0 + VPXOR (0*32)(inp), CC3, CC3; VPXOR (1*32)(inp), AA0, AA0; VPXOR (2*32)(inp), BB0, BB0; VPXOR (3*32)(inp), CC0, CC0 + VMOVDQU CC3, (0*32)(oup); VMOVDQU AA0, (1*32)(oup); VMOVDQU BB0, (2*32)(oup); VMOVDQU CC0, (3*32)(oup) + VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0 + VPXOR (4*32)(inp), AA0, AA0; VPXOR (5*32)(inp), BB0, BB0; VPXOR (6*32)(inp), CC0, CC0; VPXOR (7*32)(inp), DD0, DD0 + VMOVDQU AA0, (4*32)(oup); VMOVDQU BB0, (5*32)(oup); VMOVDQU CC0, (6*32)(oup); VMOVDQU DD0, (7*32)(oup) + VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0 + VPXOR (8*32)(inp), AA0, AA0; VPXOR (9*32)(inp), BB0, BB0; VPXOR (10*32)(inp), CC0, CC0; VPXOR (11*32)(inp), DD0, DD0 + VMOVDQU AA0, (8*32)(oup); VMOVDQU BB0, (9*32)(oup); VMOVDQU CC0, (10*32)(oup); VMOVDQU DD0, (11*32)(oup) + VPERM2I128 $0x02, AA3, BB3, AA0; VPERM2I128 $0x02, tmpStoreAVX2, DD3, BB0; VPERM2I128 $0x13, AA3, BB3, CC0; VPERM2I128 $0x13, tmpStoreAVX2, DD3, DD0 + + LEAQ (12*32)(inp), inp + LEAQ (12*32)(oup), oup + SUBQ $12*32, inl + + JMP openAVX2TailLoop + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// func chacha20Poly1305Seal(dst, key, src, ad []byte) +TEXT ·chacha20Poly1305Seal(SB), 0, $288-96 + // For aligned stack access + MOVQ SP, BP + ADDQ $32, BP + ANDQ $-32, BP + MOVQ dst+0(FP), oup + MOVQ key+24(FP), keyp + MOVQ src+48(FP), inp + MOVQ src_len+56(FP), inl + MOVQ ad+72(FP), adp + + CMPB ·useAVX2(SB), $1 + JE chacha20Poly1305Seal_AVX2 + + // Special optimization, for very short buffers + CMPQ inl, $128 + JBE sealSSE128 // About 15% faster + + // In the seal case - prepare the poly key + 3 blocks of stream in the first iteration + MOVOU ·chacha20Constants<>(SB), A0 + MOVOU (1*16)(keyp), B0 + MOVOU (2*16)(keyp), C0 + MOVOU (3*16)(keyp), D0 + + // Store state on stack for future use + MOVO B0, state1Store + MOVO C0, state2Store + + // Load state, increment counter blocks + MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1 + MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2 + MOVO A2, A3; MOVO B2, B3; MOVO C2, C3; MOVO D2, D3; PADDL ·sseIncMask<>(SB), D3 + + // Store counters + MOVO D0, ctr0Store; MOVO D1, ctr1Store; MOVO D2, ctr2Store; MOVO D3, ctr3Store + MOVQ $10, itr2 + +sealSSEIntroLoop: + MOVO C3, tmpStore + chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3) + MOVO tmpStore, C3 + MOVO C1, tmpStore + chachaQR(A3, B3, C3, D3, C1) + MOVO tmpStore, C1 + shiftB0Left; shiftB1Left; shiftB2Left; shiftB3Left + shiftC0Left; shiftC1Left; shiftC2Left; shiftC3Left + shiftD0Left; shiftD1Left; shiftD2Left; shiftD3Left + + MOVO C3, tmpStore + chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3) + MOVO tmpStore, C3 + MOVO C1, tmpStore + chachaQR(A3, B3, C3, D3, C1) + MOVO tmpStore, C1 + shiftB0Right; shiftB1Right; shiftB2Right; shiftB3Right + shiftC0Right; shiftC1Right; shiftC2Right; shiftC3Right + shiftD0Right; shiftD1Right; shiftD2Right; shiftD3Right + DECQ itr2 + JNE sealSSEIntroLoop + + // Add in the state + PADDD ·chacha20Constants<>(SB), A0; PADDD ·chacha20Constants<>(SB), A1; PADDD ·chacha20Constants<>(SB), A2; PADDD ·chacha20Constants<>(SB), A3 + PADDD state1Store, B0; PADDD state1Store, B1; PADDD state1Store, B2; PADDD state1Store, B3 + PADDD state2Store, C1; PADDD state2Store, C2; PADDD state2Store, C3 + PADDD ctr1Store, D1; PADDD ctr2Store, D2; PADDD ctr3Store, D3 + + // Clamp and store the key + PAND ·polyClampMask<>(SB), A0 + MOVO A0, rStore + MOVO B0, sStore + + // Hash AAD + MOVQ ad_len+80(FP), itr2 + CALL polyHashADInternal<>(SB) + + MOVOU (0*16)(inp), A0; MOVOU (1*16)(inp), B0; MOVOU (2*16)(inp), C0; MOVOU (3*16)(inp), D0 + PXOR A0, A1; PXOR B0, B1; PXOR C0, C1; PXOR D0, D1 + MOVOU A1, (0*16)(oup); MOVOU B1, (1*16)(oup); MOVOU C1, (2*16)(oup); MOVOU D1, (3*16)(oup) + MOVOU (4*16)(inp), A0; MOVOU (5*16)(inp), B0; MOVOU (6*16)(inp), C0; MOVOU (7*16)(inp), D0 + PXOR A0, A2; PXOR B0, B2; PXOR C0, C2; PXOR D0, D2 + MOVOU A2, (4*16)(oup); MOVOU B2, (5*16)(oup); MOVOU C2, (6*16)(oup); MOVOU D2, (7*16)(oup) + + MOVQ $128, itr1 + SUBQ $128, inl + LEAQ 128(inp), inp + + MOVO A3, A1; MOVO B3, B1; MOVO C3, C1; MOVO D3, D1 + + CMPQ inl, $64 + JBE sealSSE128SealHash + + MOVOU (0*16)(inp), A0; MOVOU (1*16)(inp), B0; MOVOU (2*16)(inp), C0; MOVOU (3*16)(inp), D0 + PXOR A0, A3; PXOR B0, B3; PXOR C0, C3; PXOR D0, D3 + MOVOU A3, (8*16)(oup); MOVOU B3, (9*16)(oup); MOVOU C3, (10*16)(oup); MOVOU D3, (11*16)(oup) + + ADDQ $64, itr1 + SUBQ $64, inl + LEAQ 64(inp), inp + + MOVQ $2, itr1 + MOVQ $8, itr2 + + CMPQ inl, $64 + JBE sealSSETail64 + CMPQ inl, $128 + JBE sealSSETail128 + CMPQ inl, $192 + JBE sealSSETail192 + +sealSSEMainLoop: + // Load state, increment counter blocks + MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0 + MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1 + MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2 + MOVO A2, A3; MOVO B2, B3; MOVO C2, C3; MOVO D2, D3; PADDL ·sseIncMask<>(SB), D3 + + // Store counters + MOVO D0, ctr0Store; MOVO D1, ctr1Store; MOVO D2, ctr2Store; MOVO D3, ctr3Store + +sealSSEInnerLoop: + MOVO C3, tmpStore + chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3) + MOVO tmpStore, C3 + MOVO C1, tmpStore + chachaQR(A3, B3, C3, D3, C1) + MOVO tmpStore, C1 + polyAdd(0(oup)) + shiftB0Left; shiftB1Left; shiftB2Left; shiftB3Left + shiftC0Left; shiftC1Left; shiftC2Left; shiftC3Left + shiftD0Left; shiftD1Left; shiftD2Left; shiftD3Left + polyMulStage1 + polyMulStage2 + LEAQ (2*8)(oup), oup + MOVO C3, tmpStore + chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3) + MOVO tmpStore, C3 + MOVO C1, tmpStore + polyMulStage3 + chachaQR(A3, B3, C3, D3, C1) + MOVO tmpStore, C1 + polyMulReduceStage + shiftB0Right; shiftB1Right; shiftB2Right; shiftB3Right + shiftC0Right; shiftC1Right; shiftC2Right; shiftC3Right + shiftD0Right; shiftD1Right; shiftD2Right; shiftD3Right + DECQ itr2 + JGE sealSSEInnerLoop + polyAdd(0(oup)) + polyMul + LEAQ (2*8)(oup), oup + DECQ itr1 + JG sealSSEInnerLoop + + // Add in the state + PADDD ·chacha20Constants<>(SB), A0; PADDD ·chacha20Constants<>(SB), A1; PADDD ·chacha20Constants<>(SB), A2; PADDD ·chacha20Constants<>(SB), A3 + PADDD state1Store, B0; PADDD state1Store, B1; PADDD state1Store, B2; PADDD state1Store, B3 + PADDD state2Store, C0; PADDD state2Store, C1; PADDD state2Store, C2; PADDD state2Store, C3 + PADDD ctr0Store, D0; PADDD ctr1Store, D1; PADDD ctr2Store, D2; PADDD ctr3Store, D3 + MOVO D3, tmpStore + + // Load - xor - store + MOVOU (0*16)(inp), D3; PXOR D3, A0 + MOVOU (1*16)(inp), D3; PXOR D3, B0 + MOVOU (2*16)(inp), D3; PXOR D3, C0 + MOVOU (3*16)(inp), D3; PXOR D3, D0 + MOVOU A0, (0*16)(oup) + MOVOU B0, (1*16)(oup) + MOVOU C0, (2*16)(oup) + MOVOU D0, (3*16)(oup) + MOVO tmpStore, D3 + + MOVOU (4*16)(inp), A0; MOVOU (5*16)(inp), B0; MOVOU (6*16)(inp), C0; MOVOU (7*16)(inp), D0 + PXOR A0, A1; PXOR B0, B1; PXOR C0, C1; PXOR D0, D1 + MOVOU A1, (4*16)(oup); MOVOU B1, (5*16)(oup); MOVOU C1, (6*16)(oup); MOVOU D1, (7*16)(oup) + MOVOU (8*16)(inp), A0; MOVOU (9*16)(inp), B0; MOVOU (10*16)(inp), C0; MOVOU (11*16)(inp), D0 + PXOR A0, A2; PXOR B0, B2; PXOR C0, C2; PXOR D0, D2 + MOVOU A2, (8*16)(oup); MOVOU B2, (9*16)(oup); MOVOU C2, (10*16)(oup); MOVOU D2, (11*16)(oup) + ADDQ $192, inp + MOVQ $192, itr1 + SUBQ $192, inl + MOVO A3, A1 + MOVO B3, B1 + MOVO C3, C1 + MOVO D3, D1 + CMPQ inl, $64 + JBE sealSSE128SealHash + MOVOU (0*16)(inp), A0; MOVOU (1*16)(inp), B0; MOVOU (2*16)(inp), C0; MOVOU (3*16)(inp), D0 + PXOR A0, A3; PXOR B0, B3; PXOR C0, C3; PXOR D0, D3 + MOVOU A3, (12*16)(oup); MOVOU B3, (13*16)(oup); MOVOU C3, (14*16)(oup); MOVOU D3, (15*16)(oup) + LEAQ 64(inp), inp + SUBQ $64, inl + MOVQ $6, itr1 + MOVQ $4, itr2 + CMPQ inl, $192 + JG sealSSEMainLoop + + MOVQ inl, itr1 + TESTQ inl, inl + JE sealSSE128SealHash + MOVQ $6, itr1 + CMPQ inl, $64 + JBE sealSSETail64 + CMPQ inl, $128 + JBE sealSSETail128 + JMP sealSSETail192 + +// ---------------------------------------------------------------------------- +// Special optimization for the last 64 bytes of plaintext +sealSSETail64: + // Need to encrypt up to 64 bytes - prepare single block, hash 192 or 256 bytes + MOVO ·chacha20Constants<>(SB), A1 + MOVO state1Store, B1 + MOVO state2Store, C1 + MOVO ctr3Store, D1 + PADDL ·sseIncMask<>(SB), D1 + MOVO D1, ctr0Store + +sealSSETail64LoopA: + // Perform ChaCha rounds, while hashing the previously encrypted ciphertext + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + +sealSSETail64LoopB: + chachaQR(A1, B1, C1, D1, T1) + shiftB1Left; shiftC1Left; shiftD1Left + chachaQR(A1, B1, C1, D1, T1) + shiftB1Right; shiftC1Right; shiftD1Right + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + + DECQ itr1 + JG sealSSETail64LoopA + + DECQ itr2 + JGE sealSSETail64LoopB + PADDL ·chacha20Constants<>(SB), A1 + PADDL state1Store, B1 + PADDL state2Store, C1 + PADDL ctr0Store, D1 + + JMP sealSSE128Seal + +// ---------------------------------------------------------------------------- +// Special optimization for the last 128 bytes of plaintext +sealSSETail128: + // Need to encrypt up to 128 bytes - prepare two blocks, hash 192 or 256 bytes + MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr0Store + MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1; MOVO D1, ctr1Store + +sealSSETail128LoopA: + // Perform ChaCha rounds, while hashing the previously encrypted ciphertext + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + +sealSSETail128LoopB: + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0) + shiftB0Left; shiftC0Left; shiftD0Left + shiftB1Left; shiftC1Left; shiftD1Left + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0) + shiftB0Right; shiftC0Right; shiftD0Right + shiftB1Right; shiftC1Right; shiftD1Right + + DECQ itr1 + JG sealSSETail128LoopA + + DECQ itr2 + JGE sealSSETail128LoopB + + PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1 + PADDL state1Store, B0; PADDL state1Store, B1 + PADDL state2Store, C0; PADDL state2Store, C1 + PADDL ctr0Store, D0; PADDL ctr1Store, D1 + + MOVOU (0*16)(inp), T0; MOVOU (1*16)(inp), T1; MOVOU (2*16)(inp), T2; MOVOU (3*16)(inp), T3 + PXOR T0, A0; PXOR T1, B0; PXOR T2, C0; PXOR T3, D0 + MOVOU A0, (0*16)(oup); MOVOU B0, (1*16)(oup); MOVOU C0, (2*16)(oup); MOVOU D0, (3*16)(oup) + + MOVQ $64, itr1 + LEAQ 64(inp), inp + SUBQ $64, inl + + JMP sealSSE128SealHash + +// ---------------------------------------------------------------------------- +// Special optimization for the last 192 bytes of plaintext +sealSSETail192: + // Need to encrypt up to 192 bytes - prepare three blocks, hash 192 or 256 bytes + MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr0Store + MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1; MOVO D1, ctr1Store + MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2; MOVO D2, ctr2Store + +sealSSETail192LoopA: + // Perform ChaCha rounds, while hashing the previously encrypted ciphertext + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + +sealSSETail192LoopB: + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0) + shiftB0Left; shiftC0Left; shiftD0Left + shiftB1Left; shiftC1Left; shiftD1Left + shiftB2Left; shiftC2Left; shiftD2Left + + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0) + shiftB0Right; shiftC0Right; shiftD0Right + shiftB1Right; shiftC1Right; shiftD1Right + shiftB2Right; shiftC2Right; shiftD2Right + + DECQ itr1 + JG sealSSETail192LoopA + + DECQ itr2 + JGE sealSSETail192LoopB + + PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1; PADDL ·chacha20Constants<>(SB), A2 + PADDL state1Store, B0; PADDL state1Store, B1; PADDL state1Store, B2 + PADDL state2Store, C0; PADDL state2Store, C1; PADDL state2Store, C2 + PADDL ctr0Store, D0; PADDL ctr1Store, D1; PADDL ctr2Store, D2 + + MOVOU (0*16)(inp), T0; MOVOU (1*16)(inp), T1; MOVOU (2*16)(inp), T2; MOVOU (3*16)(inp), T3 + PXOR T0, A0; PXOR T1, B0; PXOR T2, C0; PXOR T3, D0 + MOVOU A0, (0*16)(oup); MOVOU B0, (1*16)(oup); MOVOU C0, (2*16)(oup); MOVOU D0, (3*16)(oup) + MOVOU (4*16)(inp), T0; MOVOU (5*16)(inp), T1; MOVOU (6*16)(inp), T2; MOVOU (7*16)(inp), T3 + PXOR T0, A1; PXOR T1, B1; PXOR T2, C1; PXOR T3, D1 + MOVOU A1, (4*16)(oup); MOVOU B1, (5*16)(oup); MOVOU C1, (6*16)(oup); MOVOU D1, (7*16)(oup) + + MOVO A2, A1 + MOVO B2, B1 + MOVO C2, C1 + MOVO D2, D1 + MOVQ $128, itr1 + LEAQ 128(inp), inp + SUBQ $128, inl + + JMP sealSSE128SealHash + +// ---------------------------------------------------------------------------- +// Special seal optimization for buffers smaller than 129 bytes +sealSSE128: + // For up to 128 bytes of ciphertext and 64 bytes for the poly key, we require to process three blocks + MOVOU ·chacha20Constants<>(SB), A0; MOVOU (1*16)(keyp), B0; MOVOU (2*16)(keyp), C0; MOVOU (3*16)(keyp), D0 + MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1 + MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2 + MOVO B0, T1; MOVO C0, T2; MOVO D1, T3 + MOVQ $10, itr2 + +sealSSE128InnerCipherLoop: + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0) + shiftB0Left; shiftB1Left; shiftB2Left + shiftC0Left; shiftC1Left; shiftC2Left + shiftD0Left; shiftD1Left; shiftD2Left + chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0) + shiftB0Right; shiftB1Right; shiftB2Right + shiftC0Right; shiftC1Right; shiftC2Right + shiftD0Right; shiftD1Right; shiftD2Right + DECQ itr2 + JNE sealSSE128InnerCipherLoop + + // A0|B0 hold the Poly1305 32-byte key, C0,D0 can be discarded + PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1; PADDL ·chacha20Constants<>(SB), A2 + PADDL T1, B0; PADDL T1, B1; PADDL T1, B2 + PADDL T2, C1; PADDL T2, C2 + PADDL T3, D1; PADDL ·sseIncMask<>(SB), T3; PADDL T3, D2 + PAND ·polyClampMask<>(SB), A0 + MOVOU A0, rStore + MOVOU B0, sStore + + // Hash + MOVQ ad_len+80(FP), itr2 + CALL polyHashADInternal<>(SB) + XORQ itr1, itr1 + +sealSSE128SealHash: + // itr1 holds the number of bytes encrypted but not yet hashed + CMPQ itr1, $16 + JB sealSSE128Seal + polyAdd(0(oup)) + polyMul + + SUBQ $16, itr1 + ADDQ $16, oup + + JMP sealSSE128SealHash + +sealSSE128Seal: + CMPQ inl, $16 + JB sealSSETail + SUBQ $16, inl + + // Load for decryption + MOVOU (inp), T0 + PXOR T0, A1 + MOVOU A1, (oup) + LEAQ (1*16)(inp), inp + LEAQ (1*16)(oup), oup + + // Extract for hashing + MOVQ A1, t0 + PSRLDQ $8, A1 + MOVQ A1, t1 + ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $1, acc2 + polyMul + + // Shift the stream "left" + MOVO B1, A1 + MOVO C1, B1 + MOVO D1, C1 + MOVO A2, D1 + MOVO B2, A2 + MOVO C2, B2 + MOVO D2, C2 + JMP sealSSE128Seal + +sealSSETail: + TESTQ inl, inl + JE sealSSEFinalize + + // We can only load the PT one byte at a time to avoid read after end of buffer + MOVQ inl, itr2 + SHLQ $4, itr2 + LEAQ ·andMask<>(SB), t0 + MOVQ inl, itr1 + LEAQ -1(inp)(inl*1), inp + XORQ t2, t2 + XORQ t3, t3 + XORQ AX, AX + +sealSSETailLoadLoop: + SHLQ $8, t2, t3 + SHLQ $8, t2 + MOVB (inp), AX + XORQ AX, t2 + LEAQ -1(inp), inp + DECQ itr1 + JNE sealSSETailLoadLoop + MOVQ t2, 0+tmpStore + MOVQ t3, 8+tmpStore + PXOR 0+tmpStore, A1 + MOVOU A1, (oup) + MOVOU -16(t0)(itr2*1), T0 + PAND T0, A1 + MOVQ A1, t0 + PSRLDQ $8, A1 + MOVQ A1, t1 + ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $1, acc2 + polyMul + + ADDQ inl, oup + +sealSSEFinalize: + // Hash in the buffer lengths + ADDQ ad_len+80(FP), acc0 + ADCQ src_len+56(FP), acc1 + ADCQ $1, acc2 + polyMul + + // Final reduce + MOVQ acc0, t0 + MOVQ acc1, t1 + MOVQ acc2, t2 + SUBQ $-5, acc0 + SBBQ $-1, acc1 + SBBQ $3, acc2 + CMOVQCS t0, acc0 + CMOVQCS t1, acc1 + CMOVQCS t2, acc2 + + // Add in the "s" part of the key + ADDQ 0+sStore, acc0 + ADCQ 8+sStore, acc1 + + // Finally store the tag at the end of the message + MOVQ acc0, (0*8)(oup) + MOVQ acc1, (1*8)(oup) + RET + +// ---------------------------------------------------------------------------- +// ------------------------- AVX2 Code ---------------------------------------- +chacha20Poly1305Seal_AVX2: + VZEROUPPER + VMOVDQU ·chacha20Constants<>(SB), AA0 + BYTE $0xc4; BYTE $0x42; BYTE $0x7d; BYTE $0x5a; BYTE $0x70; BYTE $0x10 // broadcasti128 16(r8), ymm14 + BYTE $0xc4; BYTE $0x42; BYTE $0x7d; BYTE $0x5a; BYTE $0x60; BYTE $0x20 // broadcasti128 32(r8), ymm12 + BYTE $0xc4; BYTE $0xc2; BYTE $0x7d; BYTE $0x5a; BYTE $0x60; BYTE $0x30 // broadcasti128 48(r8), ymm4 + VPADDD ·avx2InitMask<>(SB), DD0, DD0 + + // Special optimizations, for very short buffers + CMPQ inl, $192 + JBE seal192AVX2 // 33% faster + CMPQ inl, $320 + JBE seal320AVX2 // 17% faster + + // For the general key prepare the key first - as a byproduct we have 64 bytes of cipher stream + VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3 + VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3; VMOVDQA BB0, state1StoreAVX2 + VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3; VMOVDQA CC0, state2StoreAVX2 + VPADDD ·avx2IncMask<>(SB), DD0, DD1; VMOVDQA DD0, ctr0StoreAVX2 + VPADDD ·avx2IncMask<>(SB), DD1, DD2; VMOVDQA DD1, ctr1StoreAVX2 + VPADDD ·avx2IncMask<>(SB), DD2, DD3; VMOVDQA DD2, ctr2StoreAVX2 + VMOVDQA DD3, ctr3StoreAVX2 + MOVQ $10, itr2 + +sealAVX2IntroLoop: + VMOVDQA CC3, tmpStoreAVX2 + chachaQR_AVX2(AA0, BB0, CC0, DD0, CC3); chachaQR_AVX2(AA1, BB1, CC1, DD1, CC3); chachaQR_AVX2(AA2, BB2, CC2, DD2, CC3) + VMOVDQA tmpStoreAVX2, CC3 + VMOVDQA CC1, tmpStoreAVX2 + chachaQR_AVX2(AA3, BB3, CC3, DD3, CC1) + VMOVDQA tmpStoreAVX2, CC1 + + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $12, DD0, DD0, DD0 + VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $12, DD1, DD1, DD1 + VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $12, DD2, DD2, DD2 + VPALIGNR $4, BB3, BB3, BB3; VPALIGNR $8, CC3, CC3, CC3; VPALIGNR $12, DD3, DD3, DD3 + + VMOVDQA CC3, tmpStoreAVX2 + chachaQR_AVX2(AA0, BB0, CC0, DD0, CC3); chachaQR_AVX2(AA1, BB1, CC1, DD1, CC3); chachaQR_AVX2(AA2, BB2, CC2, DD2, CC3) + VMOVDQA tmpStoreAVX2, CC3 + VMOVDQA CC1, tmpStoreAVX2 + chachaQR_AVX2(AA3, BB3, CC3, DD3, CC1) + VMOVDQA tmpStoreAVX2, CC1 + + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $4, DD0, DD0, DD0 + VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $4, DD1, DD1, DD1 + VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $4, DD2, DD2, DD2 + VPALIGNR $12, BB3, BB3, BB3; VPALIGNR $8, CC3, CC3, CC3; VPALIGNR $4, DD3, DD3, DD3 + DECQ itr2 + JNE sealAVX2IntroLoop + + VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3 + VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3 + VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3 + VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3 + + VPERM2I128 $0x13, CC0, DD0, CC0 // Stream bytes 96 - 127 + VPERM2I128 $0x02, AA0, BB0, DD0 // The Poly1305 key + VPERM2I128 $0x13, AA0, BB0, AA0 // Stream bytes 64 - 95 + + // Clamp and store poly key + VPAND ·polyClampMask<>(SB), DD0, DD0 + VMOVDQA DD0, rsStoreAVX2 + + // Hash AD + MOVQ ad_len+80(FP), itr2 + CALL polyHashADInternal<>(SB) + + // Can store at least 320 bytes + VPXOR (0*32)(inp), AA0, AA0 + VPXOR (1*32)(inp), CC0, CC0 + VMOVDQU AA0, (0*32)(oup) + VMOVDQU CC0, (1*32)(oup) + + VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0 + VPXOR (2*32)(inp), AA0, AA0; VPXOR (3*32)(inp), BB0, BB0; VPXOR (4*32)(inp), CC0, CC0; VPXOR (5*32)(inp), DD0, DD0 + VMOVDQU AA0, (2*32)(oup); VMOVDQU BB0, (3*32)(oup); VMOVDQU CC0, (4*32)(oup); VMOVDQU DD0, (5*32)(oup) + VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0 + VPXOR (6*32)(inp), AA0, AA0; VPXOR (7*32)(inp), BB0, BB0; VPXOR (8*32)(inp), CC0, CC0; VPXOR (9*32)(inp), DD0, DD0 + VMOVDQU AA0, (6*32)(oup); VMOVDQU BB0, (7*32)(oup); VMOVDQU CC0, (8*32)(oup); VMOVDQU DD0, (9*32)(oup) + + MOVQ $320, itr1 + SUBQ $320, inl + LEAQ 320(inp), inp + + VPERM2I128 $0x02, AA3, BB3, AA0; VPERM2I128 $0x02, CC3, DD3, BB0; VPERM2I128 $0x13, AA3, BB3, CC0; VPERM2I128 $0x13, CC3, DD3, DD0 + CMPQ inl, $128 + JBE sealAVX2SealHash + + VPXOR (0*32)(inp), AA0, AA0; VPXOR (1*32)(inp), BB0, BB0; VPXOR (2*32)(inp), CC0, CC0; VPXOR (3*32)(inp), DD0, DD0 + VMOVDQU AA0, (10*32)(oup); VMOVDQU BB0, (11*32)(oup); VMOVDQU CC0, (12*32)(oup); VMOVDQU DD0, (13*32)(oup) + SUBQ $128, inl + LEAQ 128(inp), inp + + MOVQ $8, itr1 + MOVQ $2, itr2 + + CMPQ inl, $128 + JBE sealAVX2Tail128 + CMPQ inl, $256 + JBE sealAVX2Tail256 + CMPQ inl, $384 + JBE sealAVX2Tail384 + CMPQ inl, $512 + JBE sealAVX2Tail512 + + // We have 448 bytes to hash, but main loop hashes 512 bytes at a time - perform some rounds, before the main loop + VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3 + VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3 + VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3 + VMOVDQA ctr3StoreAVX2, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3 + VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2 + + VMOVDQA CC3, tmpStoreAVX2 + chachaQR_AVX2(AA0, BB0, CC0, DD0, CC3); chachaQR_AVX2(AA1, BB1, CC1, DD1, CC3); chachaQR_AVX2(AA2, BB2, CC2, DD2, CC3) + VMOVDQA tmpStoreAVX2, CC3 + VMOVDQA CC1, tmpStoreAVX2 + chachaQR_AVX2(AA3, BB3, CC3, DD3, CC1) + VMOVDQA tmpStoreAVX2, CC1 + + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $12, DD0, DD0, DD0 + VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $12, DD1, DD1, DD1 + VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $12, DD2, DD2, DD2 + VPALIGNR $4, BB3, BB3, BB3; VPALIGNR $8, CC3, CC3, CC3; VPALIGNR $12, DD3, DD3, DD3 + + VMOVDQA CC3, tmpStoreAVX2 + chachaQR_AVX2(AA0, BB0, CC0, DD0, CC3); chachaQR_AVX2(AA1, BB1, CC1, DD1, CC3); chachaQR_AVX2(AA2, BB2, CC2, DD2, CC3) + VMOVDQA tmpStoreAVX2, CC3 + VMOVDQA CC1, tmpStoreAVX2 + chachaQR_AVX2(AA3, BB3, CC3, DD3, CC1) + VMOVDQA tmpStoreAVX2, CC1 + + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $4, DD0, DD0, DD0 + VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $4, DD1, DD1, DD1 + VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $4, DD2, DD2, DD2 + VPALIGNR $12, BB3, BB3, BB3; VPALIGNR $8, CC3, CC3, CC3; VPALIGNR $4, DD3, DD3, DD3 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + + SUBQ $16, oup // Adjust the pointer + MOVQ $9, itr1 + JMP sealAVX2InternalLoopStart + +sealAVX2MainLoop: + // Load state, increment counter blocks, store the incremented counters + VMOVDQU ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3 + VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3 + VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3 + VMOVDQA ctr3StoreAVX2, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3 + VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2 + MOVQ $10, itr1 + +sealAVX2InternalLoop: + polyAdd(0*8(oup)) + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + polyMulStage1_AVX2 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3 + polyMulStage2_AVX2 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + polyMulStage3_AVX2 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyMulReduceStage + +sealAVX2InternalLoopStart: + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3 + polyAdd(2*8(oup)) + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + polyMulStage1_AVX2 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyMulStage2_AVX2 + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $4, BB3, BB3, BB3 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2; VPALIGNR $12, DD3, DD3, DD3 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + polyMulStage3_AVX2 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3 + polyMulReduceStage + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + polyAdd(4*8(oup)) + LEAQ (6*8)(oup), oup + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyMulStage1_AVX2 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + polyMulStage2_AVX2 + VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + polyMulStage3_AVX2 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyMulReduceStage + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $12, BB3, BB3, BB3 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2; VPALIGNR $4, DD3, DD3, DD3 + DECQ itr1 + JNE sealAVX2InternalLoop + + VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3 + VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3 + VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3 + VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3 + VMOVDQA CC3, tmpStoreAVX2 + + // We only hashed 480 of the 512 bytes available - hash the remaining 32 here + polyAdd(0*8(oup)) + polyMulAVX2 + LEAQ (4*8)(oup), oup + VPERM2I128 $0x02, AA0, BB0, CC3; VPERM2I128 $0x13, AA0, BB0, BB0; VPERM2I128 $0x02, CC0, DD0, AA0; VPERM2I128 $0x13, CC0, DD0, CC0 + VPXOR (0*32)(inp), CC3, CC3; VPXOR (1*32)(inp), AA0, AA0; VPXOR (2*32)(inp), BB0, BB0; VPXOR (3*32)(inp), CC0, CC0 + VMOVDQU CC3, (0*32)(oup); VMOVDQU AA0, (1*32)(oup); VMOVDQU BB0, (2*32)(oup); VMOVDQU CC0, (3*32)(oup) + VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0 + VPXOR (4*32)(inp), AA0, AA0; VPXOR (5*32)(inp), BB0, BB0; VPXOR (6*32)(inp), CC0, CC0; VPXOR (7*32)(inp), DD0, DD0 + VMOVDQU AA0, (4*32)(oup); VMOVDQU BB0, (5*32)(oup); VMOVDQU CC0, (6*32)(oup); VMOVDQU DD0, (7*32)(oup) + + // and here + polyAdd(-2*8(oup)) + polyMulAVX2 + VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0 + VPXOR (8*32)(inp), AA0, AA0; VPXOR (9*32)(inp), BB0, BB0; VPXOR (10*32)(inp), CC0, CC0; VPXOR (11*32)(inp), DD0, DD0 + VMOVDQU AA0, (8*32)(oup); VMOVDQU BB0, (9*32)(oup); VMOVDQU CC0, (10*32)(oup); VMOVDQU DD0, (11*32)(oup) + VPERM2I128 $0x02, AA3, BB3, AA0; VPERM2I128 $0x02, tmpStoreAVX2, DD3, BB0; VPERM2I128 $0x13, AA3, BB3, CC0; VPERM2I128 $0x13, tmpStoreAVX2, DD3, DD0 + VPXOR (12*32)(inp), AA0, AA0; VPXOR (13*32)(inp), BB0, BB0; VPXOR (14*32)(inp), CC0, CC0; VPXOR (15*32)(inp), DD0, DD0 + VMOVDQU AA0, (12*32)(oup); VMOVDQU BB0, (13*32)(oup); VMOVDQU CC0, (14*32)(oup); VMOVDQU DD0, (15*32)(oup) + LEAQ (32*16)(inp), inp + SUBQ $(32*16), inl + CMPQ inl, $512 + JG sealAVX2MainLoop + + // Tail can only hash 480 bytes + polyAdd(0*8(oup)) + polyMulAVX2 + polyAdd(2*8(oup)) + polyMulAVX2 + LEAQ 32(oup), oup + + MOVQ $10, itr1 + MOVQ $0, itr2 + CMPQ inl, $128 + JBE sealAVX2Tail128 + CMPQ inl, $256 + JBE sealAVX2Tail256 + CMPQ inl, $384 + JBE sealAVX2Tail384 + JMP sealAVX2Tail512 + +// ---------------------------------------------------------------------------- +// Special optimization for buffers smaller than 193 bytes +seal192AVX2: + // For up to 192 bytes of ciphertext and 64 bytes for the poly key, we process four blocks + VMOVDQA AA0, AA1 + VMOVDQA BB0, BB1 + VMOVDQA CC0, CC1 + VPADDD ·avx2IncMask<>(SB), DD0, DD1 + VMOVDQA AA0, AA2 + VMOVDQA BB0, BB2 + VMOVDQA CC0, CC2 + VMOVDQA DD0, DD2 + VMOVDQA DD1, TT3 + MOVQ $10, itr2 + +sealAVX2192InnerCipherLoop: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1 + DECQ itr2 + JNE sealAVX2192InnerCipherLoop + VPADDD AA2, AA0, AA0; VPADDD AA2, AA1, AA1 + VPADDD BB2, BB0, BB0; VPADDD BB2, BB1, BB1 + VPADDD CC2, CC0, CC0; VPADDD CC2, CC1, CC1 + VPADDD DD2, DD0, DD0; VPADDD TT3, DD1, DD1 + VPERM2I128 $0x02, AA0, BB0, TT0 + + // Clamp and store poly key + VPAND ·polyClampMask<>(SB), TT0, TT0 + VMOVDQA TT0, rsStoreAVX2 + + // Stream for up to 192 bytes + VPERM2I128 $0x13, AA0, BB0, AA0 + VPERM2I128 $0x13, CC0, DD0, BB0 + VPERM2I128 $0x02, AA1, BB1, CC0 + VPERM2I128 $0x02, CC1, DD1, DD0 + VPERM2I128 $0x13, AA1, BB1, AA1 + VPERM2I128 $0x13, CC1, DD1, BB1 + +sealAVX2ShortSeal: + // Hash aad + MOVQ ad_len+80(FP), itr2 + CALL polyHashADInternal<>(SB) + XORQ itr1, itr1 + +sealAVX2SealHash: + // itr1 holds the number of bytes encrypted but not yet hashed + CMPQ itr1, $16 + JB sealAVX2ShortSealLoop + polyAdd(0(oup)) + polyMul + SUBQ $16, itr1 + ADDQ $16, oup + JMP sealAVX2SealHash + +sealAVX2ShortSealLoop: + CMPQ inl, $32 + JB sealAVX2ShortTail32 + SUBQ $32, inl + + // Load for encryption + VPXOR (inp), AA0, AA0 + VMOVDQU AA0, (oup) + LEAQ (1*32)(inp), inp + + // Now can hash + polyAdd(0*8(oup)) + polyMulAVX2 + polyAdd(2*8(oup)) + polyMulAVX2 + LEAQ (1*32)(oup), oup + + // Shift stream left + VMOVDQA BB0, AA0 + VMOVDQA CC0, BB0 + VMOVDQA DD0, CC0 + VMOVDQA AA1, DD0 + VMOVDQA BB1, AA1 + VMOVDQA CC1, BB1 + VMOVDQA DD1, CC1 + VMOVDQA AA2, DD1 + VMOVDQA BB2, AA2 + JMP sealAVX2ShortSealLoop + +sealAVX2ShortTail32: + CMPQ inl, $16 + VMOVDQA A0, A1 + JB sealAVX2ShortDone + + SUBQ $16, inl + + // Load for encryption + VPXOR (inp), A0, T0 + VMOVDQU T0, (oup) + LEAQ (1*16)(inp), inp + + // Hash + polyAdd(0*8(oup)) + polyMulAVX2 + LEAQ (1*16)(oup), oup + VPERM2I128 $0x11, AA0, AA0, AA0 + VMOVDQA A0, A1 + +sealAVX2ShortDone: + VZEROUPPER + JMP sealSSETail + +// ---------------------------------------------------------------------------- +// Special optimization for buffers smaller than 321 bytes +seal320AVX2: + // For up to 320 bytes of ciphertext and 64 bytes for the poly key, we process six blocks + VMOVDQA AA0, AA1; VMOVDQA BB0, BB1; VMOVDQA CC0, CC1; VPADDD ·avx2IncMask<>(SB), DD0, DD1 + VMOVDQA AA0, AA2; VMOVDQA BB0, BB2; VMOVDQA CC0, CC2; VPADDD ·avx2IncMask<>(SB), DD1, DD2 + VMOVDQA BB0, TT1; VMOVDQA CC0, TT2; VMOVDQA DD0, TT3 + MOVQ $10, itr2 + +sealAVX2320InnerCipherLoop: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0) + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0) + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2 + DECQ itr2 + JNE sealAVX2320InnerCipherLoop + + VMOVDQA ·chacha20Constants<>(SB), TT0 + VPADDD TT0, AA0, AA0; VPADDD TT0, AA1, AA1; VPADDD TT0, AA2, AA2 + VPADDD TT1, BB0, BB0; VPADDD TT1, BB1, BB1; VPADDD TT1, BB2, BB2 + VPADDD TT2, CC0, CC0; VPADDD TT2, CC1, CC1; VPADDD TT2, CC2, CC2 + VMOVDQA ·avx2IncMask<>(SB), TT0 + VPADDD TT3, DD0, DD0; VPADDD TT0, TT3, TT3 + VPADDD TT3, DD1, DD1; VPADDD TT0, TT3, TT3 + VPADDD TT3, DD2, DD2 + + // Clamp and store poly key + VPERM2I128 $0x02, AA0, BB0, TT0 + VPAND ·polyClampMask<>(SB), TT0, TT0 + VMOVDQA TT0, rsStoreAVX2 + + // Stream for up to 320 bytes + VPERM2I128 $0x13, AA0, BB0, AA0 + VPERM2I128 $0x13, CC0, DD0, BB0 + VPERM2I128 $0x02, AA1, BB1, CC0 + VPERM2I128 $0x02, CC1, DD1, DD0 + VPERM2I128 $0x13, AA1, BB1, AA1 + VPERM2I128 $0x13, CC1, DD1, BB1 + VPERM2I128 $0x02, AA2, BB2, CC1 + VPERM2I128 $0x02, CC2, DD2, DD1 + VPERM2I128 $0x13, AA2, BB2, AA2 + VPERM2I128 $0x13, CC2, DD2, BB2 + JMP sealAVX2ShortSeal + +// ---------------------------------------------------------------------------- +// Special optimization for the last 128 bytes of ciphertext +sealAVX2Tail128: + // Need to decrypt up to 128 bytes - prepare two blocks + // If we got here after the main loop - there are 512 encrypted bytes waiting to be hashed + // If we got here before the main loop - there are 448 encrpyred bytes waiting to be hashed + VMOVDQA ·chacha20Constants<>(SB), AA0 + VMOVDQA state1StoreAVX2, BB0 + VMOVDQA state2StoreAVX2, CC0 + VMOVDQA ctr3StoreAVX2, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD0 + VMOVDQA DD0, DD1 + +sealAVX2Tail128LoopA: + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + +sealAVX2Tail128LoopB: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0) + polyAdd(0(oup)) + polyMul + VPALIGNR $4, BB0, BB0, BB0 + VPALIGNR $8, CC0, CC0, CC0 + VPALIGNR $12, DD0, DD0, DD0 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0) + polyAdd(16(oup)) + polyMul + LEAQ 32(oup), oup + VPALIGNR $12, BB0, BB0, BB0 + VPALIGNR $8, CC0, CC0, CC0 + VPALIGNR $4, DD0, DD0, DD0 + DECQ itr1 + JG sealAVX2Tail128LoopA + DECQ itr2 + JGE sealAVX2Tail128LoopB + + VPADDD ·chacha20Constants<>(SB), AA0, AA1 + VPADDD state1StoreAVX2, BB0, BB1 + VPADDD state2StoreAVX2, CC0, CC1 + VPADDD DD1, DD0, DD1 + + VPERM2I128 $0x02, AA1, BB1, AA0 + VPERM2I128 $0x02, CC1, DD1, BB0 + VPERM2I128 $0x13, AA1, BB1, CC0 + VPERM2I128 $0x13, CC1, DD1, DD0 + JMP sealAVX2ShortSealLoop + +// ---------------------------------------------------------------------------- +// Special optimization for the last 256 bytes of ciphertext +sealAVX2Tail256: + // Need to decrypt up to 256 bytes - prepare two blocks + // If we got here after the main loop - there are 512 encrypted bytes waiting to be hashed + // If we got here before the main loop - there are 448 encrpyred bytes waiting to be hashed + VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA ·chacha20Constants<>(SB), AA1 + VMOVDQA state1StoreAVX2, BB0; VMOVDQA state1StoreAVX2, BB1 + VMOVDQA state2StoreAVX2, CC0; VMOVDQA state2StoreAVX2, CC1 + VMOVDQA ctr3StoreAVX2, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD1 + VMOVDQA DD0, TT1 + VMOVDQA DD1, TT2 + +sealAVX2Tail256LoopA: + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + +sealAVX2Tail256LoopB: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + polyAdd(0(oup)) + polyMul + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0) + polyAdd(16(oup)) + polyMul + LEAQ 32(oup), oup + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1 + DECQ itr1 + JG sealAVX2Tail256LoopA + DECQ itr2 + JGE sealAVX2Tail256LoopB + + VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1 + VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1 + VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1 + VPADDD TT1, DD0, DD0; VPADDD TT2, DD1, DD1 + VPERM2I128 $0x02, AA0, BB0, TT0 + VPERM2I128 $0x02, CC0, DD0, TT1 + VPERM2I128 $0x13, AA0, BB0, TT2 + VPERM2I128 $0x13, CC0, DD0, TT3 + VPXOR (0*32)(inp), TT0, TT0; VPXOR (1*32)(inp), TT1, TT1; VPXOR (2*32)(inp), TT2, TT2; VPXOR (3*32)(inp), TT3, TT3 + VMOVDQU TT0, (0*32)(oup); VMOVDQU TT1, (1*32)(oup); VMOVDQU TT2, (2*32)(oup); VMOVDQU TT3, (3*32)(oup) + MOVQ $128, itr1 + LEAQ 128(inp), inp + SUBQ $128, inl + VPERM2I128 $0x02, AA1, BB1, AA0 + VPERM2I128 $0x02, CC1, DD1, BB0 + VPERM2I128 $0x13, AA1, BB1, CC0 + VPERM2I128 $0x13, CC1, DD1, DD0 + + JMP sealAVX2SealHash + +// ---------------------------------------------------------------------------- +// Special optimization for the last 384 bytes of ciphertext +sealAVX2Tail384: + // Need to decrypt up to 384 bytes - prepare two blocks + // If we got here after the main loop - there are 512 encrypted bytes waiting to be hashed + // If we got here before the main loop - there are 448 encrpyred bytes waiting to be hashed + VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2 + VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2 + VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2 + VMOVDQA ctr3StoreAVX2, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2 + VMOVDQA DD0, TT1; VMOVDQA DD1, TT2; VMOVDQA DD2, TT3 + +sealAVX2Tail384LoopA: + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + +sealAVX2Tail384LoopB: + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0) + polyAdd(0(oup)) + polyMul + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2 + chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0) + polyAdd(16(oup)) + polyMul + LEAQ 32(oup), oup + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2 + DECQ itr1 + JG sealAVX2Tail384LoopA + DECQ itr2 + JGE sealAVX2Tail384LoopB + + VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2 + VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2 + VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2 + VPADDD TT1, DD0, DD0; VPADDD TT2, DD1, DD1; VPADDD TT3, DD2, DD2 + VPERM2I128 $0x02, AA0, BB0, TT0 + VPERM2I128 $0x02, CC0, DD0, TT1 + VPERM2I128 $0x13, AA0, BB0, TT2 + VPERM2I128 $0x13, CC0, DD0, TT3 + VPXOR (0*32)(inp), TT0, TT0; VPXOR (1*32)(inp), TT1, TT1; VPXOR (2*32)(inp), TT2, TT2; VPXOR (3*32)(inp), TT3, TT3 + VMOVDQU TT0, (0*32)(oup); VMOVDQU TT1, (1*32)(oup); VMOVDQU TT2, (2*32)(oup); VMOVDQU TT3, (3*32)(oup) + VPERM2I128 $0x02, AA1, BB1, TT0 + VPERM2I128 $0x02, CC1, DD1, TT1 + VPERM2I128 $0x13, AA1, BB1, TT2 + VPERM2I128 $0x13, CC1, DD1, TT3 + VPXOR (4*32)(inp), TT0, TT0; VPXOR (5*32)(inp), TT1, TT1; VPXOR (6*32)(inp), TT2, TT2; VPXOR (7*32)(inp), TT3, TT3 + VMOVDQU TT0, (4*32)(oup); VMOVDQU TT1, (5*32)(oup); VMOVDQU TT2, (6*32)(oup); VMOVDQU TT3, (7*32)(oup) + MOVQ $256, itr1 + LEAQ 256(inp), inp + SUBQ $256, inl + VPERM2I128 $0x02, AA2, BB2, AA0 + VPERM2I128 $0x02, CC2, DD2, BB0 + VPERM2I128 $0x13, AA2, BB2, CC0 + VPERM2I128 $0x13, CC2, DD2, DD0 + + JMP sealAVX2SealHash + +// ---------------------------------------------------------------------------- +// Special optimization for the last 512 bytes of ciphertext +sealAVX2Tail512: + // Need to decrypt up to 512 bytes - prepare two blocks + // If we got here after the main loop - there are 512 encrypted bytes waiting to be hashed + // If we got here before the main loop - there are 448 encrpyred bytes waiting to be hashed + VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3 + VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3 + VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3 + VMOVDQA ctr3StoreAVX2, DD0 + VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3 + VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2 + +sealAVX2Tail512LoopA: + polyAdd(0(oup)) + polyMul + LEAQ 16(oup), oup + +sealAVX2Tail512LoopB: + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + polyAdd(0*8(oup)) + polyMulAVX2 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $4, BB3, BB3, BB3 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3 + VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2; VPALIGNR $12, DD3, DD3, DD3 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + polyAdd(2*8(oup)) + polyMulAVX2 + LEAQ (4*8)(oup), oup + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3 + VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3 + VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3 + VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3 + VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3 + VMOVDQA CC3, tmpStoreAVX2 + VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0 + VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1 + VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2 + VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3 + VMOVDQA tmpStoreAVX2, CC3 + VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $12, BB3, BB3, BB3 + VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3 + VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2; VPALIGNR $4, DD3, DD3, DD3 + + DECQ itr1 + JG sealAVX2Tail512LoopA + DECQ itr2 + JGE sealAVX2Tail512LoopB + + VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3 + VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3 + VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3 + VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3 + VMOVDQA CC3, tmpStoreAVX2 + VPERM2I128 $0x02, AA0, BB0, CC3 + VPXOR (0*32)(inp), CC3, CC3 + VMOVDQU CC3, (0*32)(oup) + VPERM2I128 $0x02, CC0, DD0, CC3 + VPXOR (1*32)(inp), CC3, CC3 + VMOVDQU CC3, (1*32)(oup) + VPERM2I128 $0x13, AA0, BB0, CC3 + VPXOR (2*32)(inp), CC3, CC3 + VMOVDQU CC3, (2*32)(oup) + VPERM2I128 $0x13, CC0, DD0, CC3 + VPXOR (3*32)(inp), CC3, CC3 + VMOVDQU CC3, (3*32)(oup) + + VPERM2I128 $0x02, AA1, BB1, AA0 + VPERM2I128 $0x02, CC1, DD1, BB0 + VPERM2I128 $0x13, AA1, BB1, CC0 + VPERM2I128 $0x13, CC1, DD1, DD0 + VPXOR (4*32)(inp), AA0, AA0; VPXOR (5*32)(inp), BB0, BB0; VPXOR (6*32)(inp), CC0, CC0; VPXOR (7*32)(inp), DD0, DD0 + VMOVDQU AA0, (4*32)(oup); VMOVDQU BB0, (5*32)(oup); VMOVDQU CC0, (6*32)(oup); VMOVDQU DD0, (7*32)(oup) + + VPERM2I128 $0x02, AA2, BB2, AA0 + VPERM2I128 $0x02, CC2, DD2, BB0 + VPERM2I128 $0x13, AA2, BB2, CC0 + VPERM2I128 $0x13, CC2, DD2, DD0 + VPXOR (8*32)(inp), AA0, AA0; VPXOR (9*32)(inp), BB0, BB0; VPXOR (10*32)(inp), CC0, CC0; VPXOR (11*32)(inp), DD0, DD0 + VMOVDQU AA0, (8*32)(oup); VMOVDQU BB0, (9*32)(oup); VMOVDQU CC0, (10*32)(oup); VMOVDQU DD0, (11*32)(oup) + + MOVQ $384, itr1 + LEAQ 384(inp), inp + SUBQ $384, inl + VPERM2I128 $0x02, AA3, BB3, AA0 + VPERM2I128 $0x02, tmpStoreAVX2, DD3, BB0 + VPERM2I128 $0x13, AA3, BB3, CC0 + VPERM2I128 $0x13, tmpStoreAVX2, DD3, DD0 + + JMP sealAVX2SealHash + +// func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) +TEXT ·cpuid(SB), NOSPLIT, $0-24 + MOVL eaxArg+0(FP), AX + MOVL ecxArg+4(FP), CX + CPUID + MOVL AX, eax+8(FP) + MOVL BX, ebx+12(FP) + MOVL CX, ecx+16(FP) + MOVL DX, edx+20(FP) + RET + +// func xgetbv() (eax, edx uint32) +TEXT ·xgetbv(SB),NOSPLIT,$0-8 + MOVL $0, CX + XGETBV + MOVL AX, eax+0(FP) + MOVL DX, edx+4(FP) + RET diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_generic.go b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_generic.go new file mode 100644 index 000000000..6b6d99bdb --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_generic.go @@ -0,0 +1,70 @@ +// 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. + +package chacha20poly1305 + +import ( + "encoding/binary" + + "github.com/skycoin/skycoin/src/cipher/chacha20poly1305/internal/chacha20" + "github.com/skycoin/skycoin/src/cipher/poly1305" +) + +func roundTo16(n int) int { + return 16 * ((n + 15) / 16) +} + +func (c *chacha20poly1305) sealGeneric(dst, nonce, plaintext, additionalData []byte) []byte { + var counter [16]byte + copy(counter[4:], nonce) + + var polyKey [32]byte + chacha20.XORKeyStream(polyKey[:], polyKey[:], &counter, &c.key) + + ret, out := sliceForAppend(dst, len(plaintext)+poly1305.TagSize) + counter[0] = 1 + chacha20.XORKeyStream(out, plaintext, &counter, &c.key) + + polyInput := make([]byte, roundTo16(len(additionalData))+roundTo16(len(plaintext))+8+8) + copy(polyInput, additionalData) + copy(polyInput[roundTo16(len(additionalData)):], out[:len(plaintext)]) + binary.LittleEndian.PutUint64(polyInput[len(polyInput)-16:], uint64(len(additionalData))) + binary.LittleEndian.PutUint64(polyInput[len(polyInput)-8:], uint64(len(plaintext))) + + var tag [poly1305.TagSize]byte + poly1305.Sum(&tag, polyInput, &polyKey) + copy(out[len(plaintext):], tag[:]) + + return ret +} + +func (c *chacha20poly1305) openGeneric(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) { + var tag [poly1305.TagSize]byte + copy(tag[:], ciphertext[len(ciphertext)-16:]) + ciphertext = ciphertext[:len(ciphertext)-16] + + var counter [16]byte + copy(counter[4:], nonce) + + var polyKey [32]byte + chacha20.XORKeyStream(polyKey[:], polyKey[:], &counter, &c.key) + + polyInput := make([]byte, roundTo16(len(additionalData))+roundTo16(len(ciphertext))+8+8) + copy(polyInput, additionalData) + copy(polyInput[roundTo16(len(additionalData)):], ciphertext) + binary.LittleEndian.PutUint64(polyInput[len(polyInput)-16:], uint64(len(additionalData))) + binary.LittleEndian.PutUint64(polyInput[len(polyInput)-8:], uint64(len(ciphertext))) + + ret, out := sliceForAppend(dst, len(ciphertext)) + if !poly1305.Verify(&tag, polyInput, &polyKey) { + for i := range out { + out[i] = 0 + } + return nil, errOpen + } + + counter[0] = 1 + chacha20.XORKeyStream(out, ciphertext, &counter, &c.key) + return ret, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_noasm.go b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_noasm.go new file mode 100644 index 000000000..4c2eb703c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/chacha20poly1305_noasm.go @@ -0,0 +1,15 @@ +// 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 !amd64 !go1.7 gccgo appengine + +package chacha20poly1305 + +func (c *chacha20poly1305) seal(dst, nonce, plaintext, additionalData []byte) []byte { + return c.sealGeneric(dst, nonce, plaintext, additionalData) +} + +func (c *chacha20poly1305) open(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) { + return c.openGeneric(dst, nonce, ciphertext, additionalData) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/internal/chacha20/chacha_generic.go b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/internal/chacha20/chacha_generic.go new file mode 100644 index 000000000..b017a7319 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/chacha20poly1305/internal/chacha20/chacha_generic.go @@ -0,0 +1,199 @@ +// 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. + +// Package chacha20 implements the core ChaCha20 function as specified in https://tools.ietf.org/html/rfc7539#section-2.3. +package chacha20 + +import "encoding/binary" + +const rounds = 20 + +// core applies the ChaCha20 core function to 16-byte input in, 32-byte key k, +// and 16-byte constant c, and puts the result into 64-byte array out. +func core(out *[64]byte, in *[16]byte, k *[32]byte) { + j0 := uint32(0x61707865) + j1 := uint32(0x3320646e) + j2 := uint32(0x79622d32) + j3 := uint32(0x6b206574) + j4 := binary.LittleEndian.Uint32(k[0:4]) + j5 := binary.LittleEndian.Uint32(k[4:8]) + j6 := binary.LittleEndian.Uint32(k[8:12]) + j7 := binary.LittleEndian.Uint32(k[12:16]) + j8 := binary.LittleEndian.Uint32(k[16:20]) + j9 := binary.LittleEndian.Uint32(k[20:24]) + j10 := binary.LittleEndian.Uint32(k[24:28]) + j11 := binary.LittleEndian.Uint32(k[28:32]) + j12 := binary.LittleEndian.Uint32(in[0:4]) + j13 := binary.LittleEndian.Uint32(in[4:8]) + j14 := binary.LittleEndian.Uint32(in[8:12]) + j15 := binary.LittleEndian.Uint32(in[12:16]) + + x0, x1, x2, x3, x4, x5, x6, x7 := j0, j1, j2, j3, j4, j5, j6, j7 + x8, x9, x10, x11, x12, x13, x14, x15 := j8, j9, j10, j11, j12, j13, j14, j15 + + for i := 0; i < rounds; i += 2 { + x0 += x4 + x12 ^= x0 + x12 = (x12 << 16) | (x12 >> (16)) + x8 += x12 + x4 ^= x8 + x4 = (x4 << 12) | (x4 >> (20)) + x0 += x4 + x12 ^= x0 + x12 = (x12 << 8) | (x12 >> (24)) + x8 += x12 + x4 ^= x8 + x4 = (x4 << 7) | (x4 >> (25)) + x1 += x5 + x13 ^= x1 + x13 = (x13 << 16) | (x13 >> 16) + x9 += x13 + x5 ^= x9 + x5 = (x5 << 12) | (x5 >> 20) + x1 += x5 + x13 ^= x1 + x13 = (x13 << 8) | (x13 >> 24) + x9 += x13 + x5 ^= x9 + x5 = (x5 << 7) | (x5 >> 25) + x2 += x6 + x14 ^= x2 + x14 = (x14 << 16) | (x14 >> 16) + x10 += x14 + x6 ^= x10 + x6 = (x6 << 12) | (x6 >> 20) + x2 += x6 + x14 ^= x2 + x14 = (x14 << 8) | (x14 >> 24) + x10 += x14 + x6 ^= x10 + x6 = (x6 << 7) | (x6 >> 25) + x3 += x7 + x15 ^= x3 + x15 = (x15 << 16) | (x15 >> 16) + x11 += x15 + x7 ^= x11 + x7 = (x7 << 12) | (x7 >> 20) + x3 += x7 + x15 ^= x3 + x15 = (x15 << 8) | (x15 >> 24) + x11 += x15 + x7 ^= x11 + x7 = (x7 << 7) | (x7 >> 25) + x0 += x5 + x15 ^= x0 + x15 = (x15 << 16) | (x15 >> 16) + x10 += x15 + x5 ^= x10 + x5 = (x5 << 12) | (x5 >> 20) + x0 += x5 + x15 ^= x0 + x15 = (x15 << 8) | (x15 >> 24) + x10 += x15 + x5 ^= x10 + x5 = (x5 << 7) | (x5 >> 25) + x1 += x6 + x12 ^= x1 + x12 = (x12 << 16) | (x12 >> 16) + x11 += x12 + x6 ^= x11 + x6 = (x6 << 12) | (x6 >> 20) + x1 += x6 + x12 ^= x1 + x12 = (x12 << 8) | (x12 >> 24) + x11 += x12 + x6 ^= x11 + x6 = (x6 << 7) | (x6 >> 25) + x2 += x7 + x13 ^= x2 + x13 = (x13 << 16) | (x13 >> 16) + x8 += x13 + x7 ^= x8 + x7 = (x7 << 12) | (x7 >> 20) + x2 += x7 + x13 ^= x2 + x13 = (x13 << 8) | (x13 >> 24) + x8 += x13 + x7 ^= x8 + x7 = (x7 << 7) | (x7 >> 25) + x3 += x4 + x14 ^= x3 + x14 = (x14 << 16) | (x14 >> 16) + x9 += x14 + x4 ^= x9 + x4 = (x4 << 12) | (x4 >> 20) + x3 += x4 + x14 ^= x3 + x14 = (x14 << 8) | (x14 >> 24) + x9 += x14 + x4 ^= x9 + x4 = (x4 << 7) | (x4 >> 25) + } + + x0 += j0 + x1 += j1 + x2 += j2 + x3 += j3 + x4 += j4 + x5 += j5 + x6 += j6 + x7 += j7 + x8 += j8 + x9 += j9 + x10 += j10 + x11 += j11 + x12 += j12 + x13 += j13 + x14 += j14 + x15 += j15 + + binary.LittleEndian.PutUint32(out[0:4], x0) + binary.LittleEndian.PutUint32(out[4:8], x1) + binary.LittleEndian.PutUint32(out[8:12], x2) + binary.LittleEndian.PutUint32(out[12:16], x3) + binary.LittleEndian.PutUint32(out[16:20], x4) + binary.LittleEndian.PutUint32(out[20:24], x5) + binary.LittleEndian.PutUint32(out[24:28], x6) + binary.LittleEndian.PutUint32(out[28:32], x7) + binary.LittleEndian.PutUint32(out[32:36], x8) + binary.LittleEndian.PutUint32(out[36:40], x9) + binary.LittleEndian.PutUint32(out[40:44], x10) + binary.LittleEndian.PutUint32(out[44:48], x11) + binary.LittleEndian.PutUint32(out[48:52], x12) + binary.LittleEndian.PutUint32(out[52:56], x13) + binary.LittleEndian.PutUint32(out[56:60], x14) + binary.LittleEndian.PutUint32(out[60:64], x15) +} + +// XORKeyStream crypts bytes from in to out using the given key and counters. +// In and out may be the same slice but otherwise should not overlap. Counter +// contains the raw ChaCha20 counter bytes (i.e. block counter followed by +// nonce). +func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { + var block [64]byte + var counterCopy [16]byte + copy(counterCopy[:], counter[:]) + + for len(in) >= 64 { + core(&block, &counterCopy, key) + for i, x := range block { + out[i] = in[i] ^ x + } + u := uint32(1) + for i := 0; i < 4; i++ { + u += uint32(counterCopy[i]) + counterCopy[i] = byte(u) + u >>= 8 + } + in = in[64:] + out = out[64:] + } + + if len(in) > 0 { + core(&block, &counterCopy, key) + for i, v := range in { + out[i] = v ^ block[i] + } + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/crypto.go b/vendor/github.com/skycoin/skycoin/src/cipher/crypto.go new file mode 100644 index 000000000..53bce1fe7 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/crypto.go @@ -0,0 +1,713 @@ +/* +Package cipher implements cryptographic methods. + +These methods include: + +* Public and private key generation +* Address generation +* Signing + +Private keys are secp256k1 keys. Addresses are base58 encoded. + +All dependencies are either from the go stdlib, or are manually vendored +below this package. This manual vendoring ensures that the exact same dependencies +are used by any user of this package, regardless of their gopath. +*/ +package cipher + +import ( + "crypto/sha256" + "encoding/hex" + "errors" + "fmt" + "hash" + "log" + "time" + + "github.com/skycoin/skycoin/src/cipher/ripemd160" + secp256k1 "github.com/skycoin/skycoin/src/cipher/secp256k1-go" +) + +var ( + // DebugLevel1 debug level one + DebugLevel1 = true //checks for extremely unlikely conditions (10e-40) + // DebugLevel2 debug level two + DebugLevel2 = true //enable checks for impossible conditions + + // ErrInvalidLengthPubKey Invalid public key length + ErrInvalidLengthPubKey = errors.New("Invalid public key length") + // ErrPubKeyFromNullSecKey Attempt to load null seckey, unsafe + ErrPubKeyFromNullSecKey = errors.New("Attempt to load null seckey, unsafe") + // ErrPubKeyFromBadSecKey PubKeyFromSecKey, pubkey recovery failed. Function + ErrPubKeyFromBadSecKey = errors.New("PubKeyFromSecKey, pubkey recovery failed. Function assumes seckey is valid. Check seckey") + // ErrInvalidLengthSecKey Invalid secret key length + ErrInvalidLengthSecKey = errors.New("Invalid secret key length") + // ErrECHDInvalidPubKey ECDH invalid pubkey input + ErrECHDInvalidPubKey = errors.New("ECDH invalid pubkey input") + // ErrECHDInvalidSecKey ECDH invalid seckey input + ErrECHDInvalidSecKey = errors.New("ECDH invalid seckey input") + // ErrInvalidLengthSig Invalid signature length + ErrInvalidLengthSig = errors.New("Invalid signature length") + // ErrInvalidPubKey Invalid public key + ErrInvalidPubKey = errors.New("Invalid public key") + // ErrInvalidSecKey Invalid secret key + ErrInvalidSecKey = errors.New("Invalid secret key") + // ErrNullSignHash Attempted to sign null hash digest + ErrNullSignHash = errors.New("Cannot sign null hash digest") + // ErrInvalidSig Invalid signature + ErrInvalidSig = errors.New("Invalid signature") + // ErrInvalidSigPubKeyRecovery could not recover pubkey from sig + ErrInvalidSigPubKeyRecovery = errors.New("Failed to recover pubkey from signature") + // ErrInvalidAddressForSig the address derived from the pubkey recovered from the signature does not match a provided address + ErrInvalidAddressForSig = errors.New("Address does not match recovered signing address") + // ErrInvalidHashForSig Signature invalid for hash + ErrInvalidHashForSig = errors.New("Signature not valid for hash") + // ErrPubKeyRecoverMismatch Recovered pubkey does not match pubkey + ErrPubKeyRecoverMismatch = errors.New("Recovered pubkey does not match pubkey") + // ErrInvalidSigInvalidPubKey VerifySignatureRecoverPubKey, secp256k1.VerifyPubkey failed + ErrInvalidSigInvalidPubKey = errors.New("VerifySignatureRecoverPubKey, secp256k1.VerifyPubkey failed") + // ErrInvalidSigValidity VerifySignatureRecoverPubKey, VerifySignatureValidity failed + ErrInvalidSigValidity = errors.New("VerifySignatureRecoverPubKey, VerifySignatureValidity failed") + // ErrInvalidSigForMessage Invalid signature for this message + ErrInvalidSigForMessage = errors.New("Invalid signature for this message") + // ErrInvalidSecKyVerification Seckey secp256k1 verification failed + ErrInvalidSecKyVerification = errors.New("Seckey verification failed") + // ErrNullPubKeyFromSecKey Impossible error, TestSecKey, nil pubkey recovered + ErrNullPubKeyFromSecKey = errors.New("impossible error, TestSecKey, nil pubkey recovered") + // ErrInvalidDerivedPubKeyFromSecKey impossible error, TestSecKey, Derived Pubkey verification failed + ErrInvalidDerivedPubKeyFromSecKey = errors.New("impossible error, TestSecKey, Derived Pubkey verification failed") + // ErrInvalidPubKeyFromHash Recovered pubkey does not match signed hash + ErrInvalidPubKeyFromHash = errors.New("Recovered pubkey does not match signed hash") + // ErrPubKeyFromSecKeyMismatch impossible error TestSecKey, pubkey does not match recovered pubkey + ErrPubKeyFromSecKeyMismatch = errors.New("impossible error TestSecKey, pubkey does not match recovered pubkey") + // ErrEmptySeed Seed input is empty + ErrEmptySeed = errors.New("Seed input is empty") +) + +// PubKey public key +type PubKey [33]byte + +// RandByte returns rand N bytes +func RandByte(n int) []byte { + return secp256k1.RandByte(n) +} + +// NewPubKey converts []byte to a PubKey +func NewPubKey(b []byte) (PubKey, error) { + p := PubKey{} + if len(b) != len(p) { + return PubKey{}, ErrInvalidLengthPubKey + } + copy(p[:], b[:]) + + if err := p.Verify(); err != nil { + return PubKey{}, err + } + + return p, nil +} + +// MustNewPubKey converts []byte to a PubKey, panics on error +func MustNewPubKey(b []byte) PubKey { + p, err := NewPubKey(b) + if err != nil { + log.Panic(err) + } + return p +} + +// PubKeyFromHex generates PubKey from hex string +func PubKeyFromHex(s string) (PubKey, error) { + b, err := hex.DecodeString(s) + if err != nil { + return PubKey{}, ErrInvalidPubKey + } + return NewPubKey(b) +} + +// MustPubKeyFromHex decodes a hex encoded PubKey, panics on error +func MustPubKeyFromHex(s string) PubKey { + b, err := hex.DecodeString(s) + if err != nil { + log.Panic(err) + } + return MustNewPubKey(b) +} + +// PubKeyFromSecKey recovers the public key for a secret key +func PubKeyFromSecKey(seckey SecKey) (PubKey, error) { + if seckey.Null() { + return PubKey{}, ErrPubKeyFromNullSecKey + } + + b := secp256k1.PubkeyFromSeckey(seckey[:]) + if b == nil { + return PubKey{}, ErrPubKeyFromBadSecKey + } + + return NewPubKey(b) +} + +// MustPubKeyFromSecKey recovers the public key for a secret key. Panics on error. +func MustPubKeyFromSecKey(seckey SecKey) PubKey { + pk, err := PubKeyFromSecKey(seckey) + if err != nil { + log.Panic(err) + } + return pk +} + +// PubKeyFromSig recovers the public key from a signed hash +func PubKeyFromSig(sig Sig, hash SHA256) (PubKey, error) { + rawPubKey := secp256k1.RecoverPubkey(hash[:], sig[:]) + if rawPubKey == nil { + return PubKey{}, ErrInvalidSigPubKeyRecovery + } + return NewPubKey(rawPubKey) +} + +// MustPubKeyFromSig recovers the public key from a signed hash, panics on error +func MustPubKeyFromSig(sig Sig, hash SHA256) PubKey { + pk, err := PubKeyFromSig(sig, hash) + if err != nil { + log.Panic(err) + } + return pk +} + +// Verify attempts to determine if pubkey is valid. Returns nil on success +func (pk PubKey) Verify() error { + if secp256k1.VerifyPubkey(pk[:]) != 1 { + return ErrInvalidPubKey + } + return nil +} + +// Hex returns a hex encoded PubKey string +func (pk PubKey) Hex() string { + return hex.EncodeToString(pk[:]) +} + +// Null returns true if PubKey is the null PubKey +func (pk PubKey) Null() bool { + return pk == PubKey{} +} + +// SecKey secret key +type SecKey [32]byte + +// NewSecKey converts []byte to a SecKey +func NewSecKey(b []byte) (SecKey, error) { + p := SecKey{} + if len(b) != len(p) { + return SecKey{}, ErrInvalidLengthSecKey + } + copy(p[:], b[:]) + + // Disable the DebugLevel2 check here because it is too slow. + // If desired, perform the full Verify() check after using this method + if err := p.verify(false); err != nil { + return SecKey{}, err + } + + return p, nil +} + +// MustNewSecKey converts []byte to a SecKey. Panics is []byte is not the exact size +func MustNewSecKey(b []byte) SecKey { + p, err := NewSecKey(b) + if err != nil { + log.Panic(err) + } + return p +} + +// MustSecKeyFromHex decodes a hex encoded SecKey, or panics +func MustSecKeyFromHex(s string) SecKey { + b, err := hex.DecodeString(s) + if err != nil { + log.Panic(err) + } + return MustNewSecKey(b) +} + +// SecKeyFromHex decodes a hex encoded SecKey, or panics +func SecKeyFromHex(s string) (SecKey, error) { + b, err := hex.DecodeString(s) + if err != nil { + return SecKey{}, ErrInvalidSecKey + } + return NewSecKey(b) +} + +// Verify attempts to determine if SecKey is valid. Returns nil on success. +// If DebugLevel2, will do additional sanity checking +func (sk SecKey) Verify() error { + return sk.verify(DebugLevel2) +} + +func (sk SecKey) verify(debugLevel2Check bool) error { + if secp256k1.VerifySeckey(sk[:]) != 1 { + return ErrInvalidSecKey + } + + if debugLevel2Check { + if err := CheckSecKey(sk); err != nil { + log.Panicf("DebugLevel2, WARNING CRYPTO ARMAGEDDON: %v", err) + } + } + + return nil +} + +// Hex returns a hex encoded SecKey string +func (sk SecKey) Hex() string { + return hex.EncodeToString(sk[:]) +} + +// Null returns true if SecKey is the null SecKey +func (sk SecKey) Null() bool { + return sk == SecKey{} +} + +//ECDH generates a shared secret +// A: pub1,sec1 +// B: pub2,sec2 +// person A sends their public key pub1 +// person B sends an emphameral pubkey pub2 +// person A computes cipher.ECDH(pub2, sec1) +// person B computes cipher.ECDH(pub1, sec2) +// cipher.ECDH(pub2, sec1) equals cipher.ECDH(pub1, sec2) +// This is their shared secret +func ECDH(pub PubKey, sec SecKey) ([]byte, error) { + if err := pub.Verify(); err != nil { + return nil, ErrECHDInvalidPubKey + } + + // Don't perform the DebugLevel2 verification check for the secret key, + // it is too slow to use in an ECDH context and is not important for that use case + if err := sec.verify(false); err != nil { + return nil, ErrECHDInvalidSecKey + } + + buff := secp256k1.ECDH(pub[:], sec[:]) + ret := SumSHA256(buff) // hash this so they cant screw up + return ret[:], nil +} + +// MustECDH calls ECDH and panics on error +func MustECDH(pub PubKey, sec SecKey) []byte { + r, err := ECDH(pub, sec) + if err != nil { + log.Panic(err) + } + return r +} + +// Sig signature +type Sig [64 + 1]byte //64 byte signature with 1 byte for key recovery + +// NewSig converts []byte to a Sig +func NewSig(b []byte) (Sig, error) { + s := Sig{} + if len(b) != len(s) { + return Sig{}, ErrInvalidLengthSig + } + copy(s[:], b[:]) + return s, nil +} + +// MustNewSig converts []byte to a Sig. Panics is []byte is not the exact size +func MustNewSig(b []byte) Sig { + s := Sig{} + if len(b) != len(s) { + log.Panic("Invalid signature length") + } + copy(s[:], b[:]) + return s +} + +// SigFromHex converts a hex string to a signature +func SigFromHex(s string) (Sig, error) { + b, err := hex.DecodeString(s) + if err != nil { + return Sig{}, ErrInvalidSig + } + return NewSig(b) +} + +// MustSigFromHex converts a hex string to a signature, panics on error +func MustSigFromHex(s string) Sig { + sig, err := SigFromHex(s) + if err != nil { + log.Panic(err) + } + return sig +} + +func (s Sig) String() string { + return s.Hex() +} + +// Null returns true if the Sig is a null Sig +func (s Sig) Null() bool { + return s == Sig{} +} + +// Hex converts signature to hex string +func (s Sig) Hex() string { + return hex.EncodeToString(s[:]) +} + +// SignHash sign hash +func SignHash(hash SHA256, sec SecKey) (Sig, error) { + if secp256k1.VerifySeckey(sec[:]) != 1 { + // Can't use sec.Verify() because that calls SignHash again, with DebugLevel2 set + return Sig{}, ErrInvalidSecKey + } + + // Null hashes can't be signed + if hash.Null() { + return Sig{}, ErrNullSignHash + } + + s := secp256k1.Sign(hash[:], sec[:]) + + sig, err := NewSig(s) + if err != nil { + return Sig{}, err + } + + if DebugLevel2 || DebugLevel1 { + // Guard against coin loss; + // if the generated signature is somehow invalid, coins would be lost, + // make sure that the signature is valid + pubkey, err := PubKeyFromSig(sig, hash) + if err != nil { + log.Panic("SignHash error: pubkey from sig recovery failure") + } + if VerifyPubKeySignedHash(pubkey, sig, hash) != nil { + log.Panic("SignHash error: secp256k1.Sign returned non-null invalid non-null signature") + } + if VerifyAddressSignedHash(AddressFromPubKey(pubkey), sig, hash) != nil { + log.Panic("SignHash error: VerifyAddressSignedHash failed for signature") + } + } + + return sig, nil +} + +// MustSignHash sign hash, panics on error +func MustSignHash(hash SHA256, sec SecKey) Sig { + sig, err := SignHash(hash, sec) + if err != nil { + log.Panic(err) + } + return sig +} + +// VerifyAddressSignedHash checks whether PubKey corresponding to address hash signed hash +// - recovers the PubKey from sig and hash +// - fail if PubKey cannot be be recovered +// - computes the address from the PubKey +// - fail if recovered address does not match PubKey hash +// - verify that signature is valid for hash for PubKey +func VerifyAddressSignedHash(address Address, sig Sig, hash SHA256) error { + rawPubKey := secp256k1.RecoverPubkey(hash[:], sig[:]) + if rawPubKey == nil { + return ErrInvalidSigPubKeyRecovery + } + + pubKey, err := NewPubKey(rawPubKey) + if err != nil { + return err + } + + if address != AddressFromPubKey(pubKey) { + return ErrInvalidAddressForSig + } + + if secp256k1.VerifySignature(hash[:], sig[:], rawPubKey[:]) != 1 { + return ErrInvalidHashForSig + } + + return nil +} + +// VerifyPubKeySignedHash verifies that hash was signed by PubKey +func VerifyPubKeySignedHash(pubkey PubKey, sig Sig, hash SHA256) error { + pubkeyRec, err := PubKeyFromSig(sig, hash) // recovered pubkey + if err != nil { + return ErrInvalidSigPubKeyRecovery + } + if pubkeyRec != pubkey { + return ErrPubKeyRecoverMismatch + } + if secp256k1.VerifyPubkey(pubkey[:]) != 1 { + if DebugLevel2 { + if secp256k1.VerifySignature(hash[:], sig[:], pubkey[:]) == 1 { + log.Panic("VerifyPubKeySignedHash warning, invalid pubkey is valid for signature") + } + } + return ErrInvalidSigInvalidPubKey + } + if secp256k1.VerifySignatureValidity(sig[:]) != 1 { + return ErrInvalidSigValidity + } + if secp256k1.VerifySignature(hash[:], sig[:], pubkey[:]) != 1 { + return ErrInvalidSigForMessage + } + return nil +} + +// VerifySignatureRecoverPubKey this only checks that the signature can be converted to a public key. +// It does not check that the signature signed the hash. +// The original public key or address is required to verify that the signature signed the hash. +func VerifySignatureRecoverPubKey(sig Sig, hash SHA256) error { + rawPubKey := secp256k1.RecoverPubkey(hash[:], sig[:]) + if rawPubKey == nil { + return ErrInvalidSigPubKeyRecovery + } + if secp256k1.VerifySignature(hash[:], sig[:], rawPubKey) != 1 { + // This should always pass; the recovered pubkey should always be valid + return ErrInvalidHashForSig + } + return nil +} + +// GenerateKeyPair creates key pair +func GenerateKeyPair() (PubKey, SecKey) { + public, secret := secp256k1.GenerateKeyPair() + + secKey, err := NewSecKey(secret) + if err != nil { + log.Panicf("GenerateKeyPair: secp256k1.GenerateKeyPair returned invalid secKey: %v", err) + } + + pubKey, err := NewPubKey(public) + if err != nil { + log.Panicf("GenerateKeyPair: secp256k1.GenerateKeyPair returned invalid pubKey: %v", err) + } + + if DebugLevel1 { + if err := CheckSecKey(secKey); err != nil { + log.Panicf("DebugLevel1, GenerateKeyPair, generated private key failed CheckSecKey: %v", err) + } + + if MustPubKeyFromSecKey(secKey) != pubKey { + log.Panic("DebugLevel1, GenerateKeyPair, public key does not match private key") + } + } + + return pubKey, secKey +} + +// GenerateDeterministicKeyPair generates deterministic key pair +func GenerateDeterministicKeyPair(seed []byte) (PubKey, SecKey, error) { + if len(seed) == 0 { + return PubKey{}, SecKey{}, ErrEmptySeed + } + + public, secret := secp256k1.GenerateDeterministicKeyPair(seed) + + secKey, err := NewSecKey(secret) + if err != nil { + log.Panicf("GenerateDeterministicKeyPair: secp256k1.GenerateDeterministicKeyPair returned invalid secKey: %v", err) + } + + pubKey, err := NewPubKey(public) + if err != nil { + log.Panicf("GenerateDeterministicKeyPair: secp256k1.GenerateDeterministicKeyPair returned invalid pubKey: %v", err) + } + + if DebugLevel1 { + if err := CheckSecKey(secKey); err != nil { + log.Panicf("DebugLevel1, GenerateDeterministicKeyPair, CheckSecKey failed: %v", err) + } + + if MustPubKeyFromSecKey(secKey) != pubKey { + log.Panic("DebugLevel1, GenerateDeterministicKeyPair, public key does not match private key") + } + } + + return pubKey, secKey, nil +} + +// MustGenerateDeterministicKeyPair generates deterministic key pair, panics on error +func MustGenerateDeterministicKeyPair(seed []byte) (PubKey, SecKey) { + p, s, err := GenerateDeterministicKeyPair(seed) + if err != nil { + log.Panic(err) + } + return p, s +} + +// DeterministicKeyPairIterator takes SHA256 value, returns a new +// SHA256 value and publickey and private key. Apply multiple times +// feeding the SHA256 value back into generate sequence of keys +func DeterministicKeyPairIterator(seed []byte) ([]byte, PubKey, SecKey, error) { + if len(seed) == 0 { + return nil, PubKey{}, SecKey{}, ErrEmptySeed + } + + hash, public, secret := secp256k1.DeterministicKeyPairIterator(seed) + + secKey := MustNewSecKey(secret) + pubKey := MustNewPubKey(public) + + if DebugLevel1 { + if err := CheckSecKey(secKey); err != nil { + log.Panicf("DebugLevel1, DeterministicKeyPairIterator, CheckSecKey failed: %v", err) + } + + if MustPubKeyFromSecKey(secKey) != pubKey { + log.Panic("DebugLevel1, DeterministicKeyPairIterator, public key does not match private key") + } + } + + return hash, pubKey, secKey, nil +} + +// MustDeterministicKeyPairIterator takes SHA256 value, returns a new +// SHA256 value and publickey and private key. Apply multiple times +// feeding the SHA256 value back into generate sequence of keys, panics on error +func MustDeterministicKeyPairIterator(seed []byte) ([]byte, PubKey, SecKey) { + hash, p, s, err := DeterministicKeyPairIterator(seed) + if err != nil { + log.Panic(err) + } + return hash, p, s +} + +// GenerateDeterministicKeyPairs returns sequence of n private keys from initial seed +func GenerateDeterministicKeyPairs(seed []byte, n int) ([]SecKey, error) { + _, keys, err := GenerateDeterministicKeyPairsSeed(seed, n) + return keys, err +} + +// MustGenerateDeterministicKeyPairs returns sequence of n private keys from initial seed, panics on error +func MustGenerateDeterministicKeyPairs(seed []byte, n int) []SecKey { + keys, err := GenerateDeterministicKeyPairs(seed, n) + if err != nil { + log.Panic(err) + } + return keys +} + +// GenerateDeterministicKeyPairsSeed returns sequence of n private keys from initial seed, and return the new seed +func GenerateDeterministicKeyPairsSeed(seed []byte, n int) ([]byte, []SecKey, error) { + var keys []SecKey + var seckey SecKey + for i := 0; i < n; i++ { + var err error + seed, _, seckey, err = DeterministicKeyPairIterator(seed) + if err != nil { + return nil, nil, err + } + keys = append(keys, seckey) + } + return seed, keys, nil +} + +// MustGenerateDeterministicKeyPairsSeed returns sequence of n private keys from initial seed, and return the new seed +func MustGenerateDeterministicKeyPairsSeed(seed []byte, n int) ([]byte, []SecKey) { + newSeed, keys, err := GenerateDeterministicKeyPairsSeed(seed, n) + if err != nil { + log.Panic(err) + } + return newSeed, keys +} + +// CheckSecKey test seckey hash +func CheckSecKey(seckey SecKey) error { + hash := SumSHA256([]byte(time.Now().String())) + return CheckSecKeyHash(seckey, hash) +} + +// CheckSecKeyHash performs a series of tests to determine if a seckey is valid. +// All generated keys and keys loaded from disc must pass the CheckSecKey suite. +// TestPrivKey returns error if a key fails any test in the test suite. +func CheckSecKeyHash(seckey SecKey, hash SHA256) error { + // check seckey with verify + if secp256k1.VerifySeckey(seckey[:]) != 1 { + return ErrInvalidSecKyVerification + } + + // check pubkey recovery + pubkey, err := PubKeyFromSecKey(seckey) + if err != nil { + return fmt.Errorf("PubKeyFromSecKey failed: %v", err) + } + if pubkey == (PubKey{}) { + return ErrNullPubKeyFromSecKey + } + // verify recovered pubkey + if secp256k1.VerifyPubkey(pubkey[:]) != 1 { + return ErrInvalidDerivedPubKeyFromSecKey + } + + // check signature production + sig, err := SignHash(hash, seckey) + if err != nil { + return fmt.Errorf("SignHash failed: %v", err) + } + + pubkey2, err := PubKeyFromSig(sig, hash) + if err != nil { + return fmt.Errorf("PubKeyFromSig failed: %v", err) + } + if pubkey != pubkey2 { + return ErrInvalidPubKeyFromHash + } + + // check pubkey recovered from sig + recoveredPubkey, err := PubKeyFromSig(sig, hash) + if err != nil { + return fmt.Errorf("impossible error, CheckSecKeyHash, pubkey recovery from signature failed: %v", err) + } + if pubkey != recoveredPubkey { + return ErrPubKeyFromSecKeyMismatch + } + + // verify produced signature + err = VerifyPubKeySignedHash(pubkey, sig, hash) + if err != nil { + return fmt.Errorf("impossible error, CheckSecKeyHash, VerifyPubKeySignedHash failed for sig: %v", err) + } + + // verify VerifyAddressSignedHash + addr := AddressFromPubKey(pubkey) + err = VerifyAddressSignedHash(addr, sig, hash) + if err != nil { + return fmt.Errorf("impossible error CheckSecKeyHash, VerifyAddressSignedHash Failed, should not get this far: %v", err) + } + + // verify VerifySignatureRecoverPubKey + err = VerifySignatureRecoverPubKey(sig, hash) + if err != nil { + return fmt.Errorf("VerifySignatureRecoverPubKey failed: %v", err) + } + + return nil +} + +func init() { + ripemd160HashPool = make(chan hash.Hash, ripemd160HashPoolSize) + for i := 0; i < ripemd160HashPoolSize; i++ { + ripemd160HashPool <- ripemd160.New() + } + + sha256HashPool = make(chan hash.Hash, sha256HashPoolSize) + for i := 0; i < sha256HashPoolSize; i++ { + sha256HashPool <- sha256.New() + } + + // Do not allow program to start if crypto tests fail + pubkey, seckey := GenerateKeyPair() + if err := CheckSecKey(seckey); err != nil { + log.Panicf("CRYPTOGRAPHIC INTEGRITY CHECK FAILED: TERMINATING PROGRAM TO PROTECT COINS: %v", err) + } + if MustPubKeyFromSecKey(seckey) != pubkey { + log.Panic("DebugLevel1, GenerateKeyPair, public key does not match private key") + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/crypto/crypto.go b/vendor/github.com/skycoin/skycoin/src/cipher/crypto/crypto.go new file mode 100644 index 000000000..3db8c5ee0 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/crypto/crypto.go @@ -0,0 +1,86 @@ +package crypto + +import ( + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher/encrypt" +) + +// Cryptor wraps the Encrypt and Decrypt method +type Cryptor interface { + Encrypt(data, password []byte) ([]byte, error) + Decrypt(data, password []byte) ([]byte, error) +} + +// CryptoType represents the type of crypto name +type CryptoType string + +// CryptoTypeFromString converts string to CryptoType +func CryptoTypeFromString(s string) (CryptoType, error) { + switch CryptoType(s) { + case CryptoTypeSha256Xor: + return CryptoTypeSha256Xor, nil + case CryptoTypeScryptChacha20poly1305: + return CryptoTypeScryptChacha20poly1305, nil + case CryptoTypeScryptChacha20poly1305Insecure: + return CryptoTypeScryptChacha20poly1305Insecure, nil + default: + return "", errors.New("unknown crypto type") + } +} + +// Crypto types +const ( + // CryptoTypeSha256Xor uses the SHA256-XOR encryption method (unsafe - no key derivation) + CryptoTypeSha256Xor = CryptoType("sha256-xor") + // CryptoTypeScryptChacha20poly1305 uses chacha20poly1305 + scrypt key derivation (use this) + CryptoTypeScryptChacha20poly1305 = CryptoType("scrypt-chacha20poly1305") + // CryptoTypeScryptChacha20poly1305Insecure uses chacha20poly1305 + scrypt key derivation with a weak work factor (unsafe) + CryptoTypeScryptChacha20poly1305Insecure = CryptoType("scrypt-chacha20poly1305-insecure") + + // DefaultCryptoType is the default CryptoType used + DefaultCryptoType = CryptoTypeScryptChacha20poly1305 +) + +// cryptoTable records all supported wallet crypto methods +// If want to support new crypto methods, register here. +var cryptoTable = map[CryptoType]Cryptor{ + CryptoTypeSha256Xor: encrypt.DefaultSha256Xor, + CryptoTypeScryptChacha20poly1305: encrypt.DefaultScryptChacha20poly1305, + CryptoTypeScryptChacha20poly1305Insecure: encrypt.ScryptChacha20poly1305{ + N: 1 << 15, + R: encrypt.ScryptR, + P: encrypt.ScryptP, + KeyLen: encrypt.ScryptKeyLen, + }, +} + +// GetCrypto gets crypto of given type +func GetCrypto(cryptoType CryptoType) (Cryptor, error) { + c, ok := cryptoTable[cryptoType] + if !ok { + return nil, fmt.Errorf("can not find crypto %v in crypto table", cryptoType) + } + + return c, nil +} + +// Types returns all supported crypto types +func Types() []CryptoType { + return []CryptoType{ + CryptoTypeSha256Xor, + CryptoTypeScryptChacha20poly1305, + CryptoTypeScryptChacha20poly1305Insecure, + DefaultCryptoType, + } +} + +// TypesInsecure returns the CryptoTypeScryptChacha21poly1305Insecure, it +// would be used in testing to speed up the tests. +func TypesInsecure() []CryptoType { + return []CryptoType{ + CryptoTypeSha256Xor, + CryptoTypeScryptChacha20poly1305Insecure, + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/encoder/README.md b/vendor/github.com/skycoin/skycoin/src/cipher/encoder/README.md new file mode 100644 index 000000000..3aa1c31ad --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/encoder/README.md @@ -0,0 +1,8 @@ +encoder +======= + +[![GoDoc](http://godoc.org/github.com//skycoin/skycoin/src/cipher/encoder?status.png)](http://godoc.org/github.com/skycoin/skycoin/src/cipher/encoder) + +[Godoc generated documentation](https://godoc.org/github.com/skycoin/skycoin/src/cipher/encoder) + +Binary struct encoder for Go. Fork of go's pkg encoding/binary. diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/encoder/encoder.go b/vendor/github.com/skycoin/skycoin/src/cipher/encoder/encoder.go new file mode 100644 index 000000000..da17043bf --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/encoder/encoder.go @@ -0,0 +1,1027 @@ +// 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 encoder binary implements translation between struct data and byte sequences +// +// Fields can be ignored with the struct tag `enc:"-"` . +// Unexported struct fields are ignored by default . +// +// Fields can be skipped if empty with the struct tag `enc:",omitempty"` +// Note the comma, which follows package json's conventions. +// Only Slice, Map and String types recognize the omitempty tag. +// When omitempty is set, the no data will be written if the value is empty. +// If the value is empty and omitempty is not set, then a length prefix with value 0 would be written. +// omitempty can only be used for the last field in the struct +// +// Encoding of maps is supported, but note that the use of them results in non-deterministic output. +// If determinism is required, do not use map. +// +// A length restriction to certain fields can be applied when decoding. +// Use the tag `,maxlen=` on a struct field to apply this restriction. +// `maxlen` works for string and slice types. The length is interpreted as the length +// of the string or the number of elements in the slice. +// Note that maxlen does not affect serialization; it may serialize objects which could fail deserialization. +// Callers should check their length restricted values manually prior to serialization. +package encoder + +import ( + "errors" + "fmt" + "log" + "math" + "reflect" + "strconv" + "strings" +) + +var ( + // ErrBufferUnderflow bytes in input buffer not enough to deserialize expected type + ErrBufferUnderflow = errors.New("Not enough buffer data to deserialize") + // ErrBufferOverflow bytes in output buffer not enough to serialize expected type + ErrBufferOverflow = errors.New("Not enough buffer data to serialize") + // ErrInvalidOmitEmpty field tagged with omitempty and it's not last one in struct + ErrInvalidOmitEmpty = errors.New("omitempty only supported for the final field in the struct") + // ErrRemainingBytes bytes remain in buffer after deserializing object + ErrRemainingBytes = errors.New("Bytes remain in buffer after deserializing object") + // ErrMaxLenExceeded a specified maximum length was exceeded when serializing or deserializing a variable length field + ErrMaxLenExceeded = errors.New("Maximum length exceeded for variable length field") + // ErrMapDuplicateKeys encountered duplicate map keys while decoding a map + ErrMapDuplicateKeys = errors.New("Duplicate keys encountered while decoding a map") + // ErrInvalidBool is returned if the decoder encounters a value other than 0 or 1 for a bool type field + ErrInvalidBool = errors.New("Invalid value for bool type") +) + +// SerializeUint32 serializes a uint32 +func SerializeUint32(x uint32) []byte { + var b [4]byte + lePutUint32(b[:], x) + return b[:] +} + +// DeserializeUint32 serializes a uint32 +func DeserializeUint32(buf []byte) (uint32, uint64, error) { + if len(buf) < 4 { + return 0, 0, ErrBufferUnderflow + } + return leUint32(buf[:4]), 4, nil +} + +// SerializeAtomic encodes an integer or boolean contained in `data` to bytes. +// Panics if `data` is not an integer or boolean type. +func SerializeAtomic(data interface{}) []byte { + var b [8]byte + + switch v := data.(type) { + case bool: + if v { + b[0] = 1 + } else { + b[0] = 0 + } + return b[:1] + case int8: + b[0] = byte(v) + return b[:1] + case uint8: + b[0] = v + return b[:1] + case int16: + lePutUint16(b[:2], uint16(v)) + return b[:2] + case uint16: + lePutUint16(b[:2], v) + return b[:2] + case int32: + lePutUint32(b[:4], uint32(v)) + return b[:4] + case uint32: + lePutUint32(b[:4], v) + return b[:4] + case int64: + lePutUint64(b[:8], uint64(v)) + return b[:8] + case uint64: + lePutUint64(b[:8], v) + return b[:8] + default: + log.Panic("SerializeAtomic unhandled type") + return nil + } +} + +// DeserializeAtomic deserializes `in` buffer into `data` +// parameter. Panics if `data` is not an integer or boolean type. +// Returns the number of bytes read. +func DeserializeAtomic(in []byte, data interface{}) (uint64, error) { + switch v := data.(type) { + case *bool: + if len(in) < 1 { + return 0, ErrBufferUnderflow + } + if in[0] == 0 { + *v = false + } else { + *v = true + } + return 1, nil + case *int8: + if len(in) < 1 { + return 0, ErrBufferUnderflow + } + *v = int8(in[0]) + return 1, nil + case *uint8: + if len(in) < 1 { + return 0, ErrBufferUnderflow + } + *v = in[0] + return 1, nil + case *int16: + if len(in) < 2 { + return 0, ErrBufferUnderflow + } + *v = int16(leUint16(in[:2])) + return 2, nil + case *uint16: + if len(in) < 2 { + return 0, ErrBufferUnderflow + } + *v = leUint16(in[:2]) + return 2, nil + case *int32: + if len(in) < 4 { + return 0, ErrBufferUnderflow + } + *v = int32(leUint32(in[:4])) + return 4, nil + case *uint32: + if len(in) < 4 { + return 0, ErrBufferUnderflow + } + *v = leUint32(in[:4]) + return 4, nil + case *int64: + if len(in) < 8 { + return 0, ErrBufferUnderflow + } + *v = int64(leUint64(in[:8])) + return 8, nil + case *uint64: + if len(in) < 8 { + return 0, ErrBufferUnderflow + } + *v = leUint64(in[:8]) + return 8, nil + default: + log.Panic("DeserializeAtomic unhandled type") + return 0, nil + } +} + +// SerializeString serializes a string to []byte +func SerializeString(s string) []byte { + v := reflect.ValueOf(s) + size := datasizeWrite(v) + buf := make([]byte, size) + e := &Encoder{ + Buffer: buf, + } + e.value(v) + return buf +} + +// DeserializeString deserializes a string from []byte, returning the string and the number of bytes read +func DeserializeString(in []byte, maxlen int) (string, uint64, error) { + var s string + v := reflect.ValueOf(&s) + v = v.Elem() + + inlen := len(in) + d1 := &Decoder{ + Buffer: make([]byte, inlen), + } + copy(d1.Buffer, in) + + err := d1.value(v, maxlen) + if err != nil { + return "", 0, err + } + + return s, uint64(inlen - len(d1.Buffer)), nil +} + +// DeserializeRaw deserializes `in` buffer into return +// parameter. If `data` is not a Pointer or Map type an error +// is returned. If `in` buffer can't be deserialized, +// an error message is returned. +// Returns number of bytes read if no error. +func DeserializeRaw(in []byte, data interface{}) (uint64, error) { + v := reflect.ValueOf(data) + switch v.Kind() { + case reflect.Ptr: + v = v.Elem() + case reflect.Map: + default: + return 0, fmt.Errorf("DeserializeRaw value must be a ptr, is %s", v.Kind().String()) + } + + inlen := len(in) + d1 := &Decoder{ + Buffer: make([]byte, inlen), + } + copy(d1.Buffer, in) + + if err := d1.value(v, 0); err != nil { + return 0, err + } + + return uint64(inlen - len(d1.Buffer)), nil +} + +// DeserializeRawExact deserializes `in` buffer into return +// parameter. If `data` is not a Pointer or Map type an error +// is returned. If `in` buffer can't be deserialized, +// an error message is returned. +// Returns number of bytes read if no error. +// If the number of bytes read does not equal the length of the input buffer, +// ErrRemainingBytes is returned. +func DeserializeRawExact(in []byte, data interface{}) error { + n, err := DeserializeRaw(in, data) + if err != nil { + return err + } + if n != uint64(len(in)) { + return ErrRemainingBytes + } + return nil +} + +// DeserializeRawToValue deserializes `in` buffer into +// `dst`'s type and returns the number of bytes used and +// the value of the buffer. If `data` is not either a +// Pointer type an error is returned. +// If `in` buffer can't be deserialized, the number of bytes read and an error message are returned. +func DeserializeRawToValue(in []byte, v reflect.Value) (uint64, error) { + switch v.Kind() { + case reflect.Ptr: + v = v.Elem() + case reflect.Map: + default: + return 0, fmt.Errorf("DeserializeRawToValue value must be a ptr, is %s", v.Kind().String()) + } + + inlen := len(in) + d1 := &Decoder{ + Buffer: make([]byte, inlen), + } + copy(d1.Buffer, in) + + err := d1.value(v, 0) + if err != nil { + return 0, err + } + + return uint64(inlen - len(d1.Buffer)), nil +} + +// Serialize returns serialized basic type-based `data` +// parameter. Encoding is reflect-based. Panics if `data` is not serializable. +func Serialize(data interface{}) []byte { + v := reflect.Indirect(reflect.ValueOf(data)) + size := datasizeWrite(v) + buf := make([]byte, size) + e := &Encoder{ + Buffer: buf, + } + e.value(v) + return buf +} + +// Size returns how many bytes would it take to encode the +// value v, which must be a fixed-size value (struct) or a +// slice of fixed-size values, or a pointer to such data. +// Reflect-based encoding is used. +func Size(v interface{}) uint64 { + return datasizeWrite(reflect.Indirect(reflect.ValueOf(v))) +} + +// isEmpty returns true if a value is "empty". +// Only supports Slice, Map and String. +// All other values are never considered empty. +func isEmpty(v reflect.Value) bool { + t := v.Type() + switch t.Kind() { + case reflect.String: + return v.Len() == 0 + case reflect.Map: + return v.IsNil() || v.Len() == 0 + case reflect.Slice: + return v.IsNil() || v.Len() == 0 + default: + return false + } +} + +// datasizeWrite returns the number of bytes the actual data represented by v occupies in memory. +// For compound structures, it sums the sizes of the elements. Thus, for instance, for a slice +// it returns the length of the slice times the element size and does not count the memory +// occupied by the header. +func datasizeWrite(v reflect.Value) uint64 { + t := v.Type() + switch t.Kind() { + case reflect.Interface: + return datasizeWrite(v.Elem()) + + case reflect.Array: + // Arrays are a fixed size, so the length is not written + t := v.Type() + elem := t.Elem() + switch elem.Kind() { + case reflect.Uint8, reflect.Int8: + return uint64(v.Len()) + case reflect.Uint16, reflect.Int16: + return uint64(v.Len()) * 2 + case reflect.Uint32, reflect.Int32, reflect.Float32: + return uint64(v.Len()) * 4 + case reflect.Uint64, reflect.Int64, reflect.Float64: + return uint64(v.Len()) * 8 + default: + size := uint64(0) + for i := 0; i < v.Len(); i++ { + elem := v.Index(i) + s := datasizeWrite(elem) + size += s + } + return size + } + + case reflect.Slice: + t := v.Type() + elem := t.Elem() + switch elem.Kind() { + case reflect.Uint8, reflect.Int8: + return 4 + uint64(v.Len()) + case reflect.Uint16, reflect.Int16: + return 4 + uint64(v.Len())*2 + case reflect.Uint32, reflect.Int32, reflect.Float32: + return 4 + uint64(v.Len())*4 + case reflect.Uint64, reflect.Int64, reflect.Float64: + return 4 + uint64(v.Len())*8 + default: + size := uint64(0) + for i := 0; i < v.Len(); i++ { + elem := v.Index(i) + s := datasizeWrite(elem) + size += s + } + return 4 + size + } + + case reflect.Map: + // length prefix + size := uint64(4) + for _, key := range v.MapKeys() { + s := datasizeWrite(key) + size += s + elem := v.MapIndex(key) + s = datasizeWrite(elem) + size += s + } + return size + + case reflect.Struct: + sum := uint64(0) + nFields := t.NumField() + for i, n := 0, nFields; i < n; i++ { + ff := t.Field(i) + // Skip unexported fields + if ff.PkgPath != "" { + continue + } + + tag := ff.Tag.Get("enc") + omitempty := TagOmitempty(tag) + + if omitempty && i != nFields-1 { + log.Panic(ErrInvalidOmitEmpty) + } + + if len(tag) > 0 && tag[0] == '-' { + continue + } + + fv := v.Field(i) + if !omitempty || !isEmpty(fv) { + s := datasizeWrite(fv) + sum += s + } + } + return sum + + case reflect.Bool: + return 1 + + case reflect.String: + return 4 + uint64(v.Len()) + + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, + reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Float32, reflect.Float64: + return uint64(t.Size()) + + default: + log.Panicf("invalid type %s", t.String()) + return 0 + } +} + +// TagOmitempty returns true if the tag specifies omitempty +func TagOmitempty(tag string) bool { + return strings.Contains(tag, ",omitempty") +} + +func tagName(tag string) string { //nolint:deadcode,megacheck + commaIndex := strings.Index(tag, ",") + if commaIndex == -1 { + return tag + } + + return tag[:commaIndex] +} + +// TagMaxLen returns the maxlen value tagged on a struct. Returns 0 if no tag is present. +func TagMaxLen(tag string) int { + maxlenIndex := strings.Index(tag, ",maxlen=") + if maxlenIndex == -1 { + return 0 + } + + maxlenRem := tag[maxlenIndex+len(",maxlen="):] + commaIndex := strings.Index(maxlenRem, ",") + if commaIndex != -1 { + maxlenRem = maxlenRem[:commaIndex] + } + + maxlen, err := strconv.Atoi(maxlenRem) + if err != nil { + panic("maxlen must be a number") + } + + return maxlen +} + +/* + Internals +*/ + +func leUint16(b []byte) uint16 { return uint16(b[0]) | uint16(b[1])<<8 } + +func lePutUint16(b []byte, v uint16) { + b[0] = byte(v) + b[1] = byte(v >> 8) +} + +func leUint32(b []byte) uint32 { + return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 +} + +func lePutUint32(b []byte, v uint32) { + b[0] = byte(v) + b[1] = byte(v >> 8) + b[2] = byte(v >> 16) + b[3] = byte(v >> 24) +} + +func leUint64(b []byte) uint64 { + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 +} + +func lePutUint64(b []byte, v uint64) { + b[0] = byte(v) + b[1] = byte(v >> 8) + b[2] = byte(v >> 16) + b[3] = byte(v >> 24) + b[4] = byte(v >> 32) + b[5] = byte(v >> 40) + b[6] = byte(v >> 48) + b[7] = byte(v >> 56) +} + +// Decoder decodes an object from the skycoin binary encoding format +type Decoder struct { + Buffer []byte +} + +// Encoder encodes an object to the skycoin binary encoding format +type Encoder struct { + Buffer []byte +} + +// Bool decodes bool +func (d *Decoder) Bool() (bool, error) { + if len(d.Buffer) < 1 { + return false, ErrBufferUnderflow + } + x := d.Buffer[0] + d.Buffer = d.Buffer[1:] // advance slice + + switch x { + case 0: + return false, nil + case 1: + return true, nil + default: + return false, ErrInvalidBool + } +} + +// Bool encodes bool +func (e *Encoder) Bool(x bool) { + if x { + e.Buffer[0] = 1 + } else { + e.Buffer[0] = 0 + } + e.Buffer = e.Buffer[1:] +} + +// Uint8 decodes uint8 +func (d *Decoder) Uint8() (uint8, error) { + if len(d.Buffer) < 1 { + return 0, ErrBufferUnderflow + } + + x := d.Buffer[0] + d.Buffer = d.Buffer[1:] // advance slice + return x, nil +} + +// Uint8 encodes uint8 +func (e *Encoder) Uint8(x uint8) { + e.Buffer[0] = x + e.Buffer = e.Buffer[1:] +} + +// Uint16 decodes uint16 +func (d *Decoder) Uint16() (uint16, error) { + if len(d.Buffer) < 2 { + return 0, ErrBufferUnderflow + } + + x := leUint16(d.Buffer[0:2]) + d.Buffer = d.Buffer[2:] + return x, nil +} + +// Uint16 encodes uint16 +func (e *Encoder) Uint16(x uint16) { + lePutUint16(e.Buffer[0:2], x) + e.Buffer = e.Buffer[2:] +} + +// Uint32 decodes a Uint32 +func (d *Decoder) Uint32() (uint32, error) { + if len(d.Buffer) < 4 { + return 0, ErrBufferUnderflow + } + + x := leUint32(d.Buffer[0:4]) + d.Buffer = d.Buffer[4:] + return x, nil +} + +// Uint32 encodes a Uint32 +func (e *Encoder) Uint32(x uint32) { + lePutUint32(e.Buffer[0:4], x) + e.Buffer = e.Buffer[4:] +} + +// Uint64 decodes uint64 +func (d *Decoder) Uint64() (uint64, error) { + if len(d.Buffer) < 8 { + return 0, ErrBufferUnderflow + } + + x := leUint64(d.Buffer[0:8]) + d.Buffer = d.Buffer[8:] + return x, nil +} + +// Uint64 encodes uint64 +func (e *Encoder) Uint64(x uint64) { + lePutUint64(e.Buffer[0:8], x) + e.Buffer = e.Buffer[8:] +} + +// ByteSlice encodes []byte +func (e *Encoder) ByteSlice(x []byte) { + e.Uint32(uint32(len(x))) + e.CopyBytes(x) +} + +// CopyBytes copies bytes to the buffer, without a length prefix +func (e *Encoder) CopyBytes(x []byte) { + if len(x) == 0 { + return + } + copy(e.Buffer, x) + e.Buffer = e.Buffer[len(x):] +} + +// Int8 decodes int8 +func (d *Decoder) Int8() (int8, error) { + u, err := d.Uint8() + if err != nil { + return 0, err + } + + return int8(u), nil +} + +// Int8 encodes int8 +func (e *Encoder) Int8(x int8) { + e.Uint8(uint8(x)) +} + +// Int16 decodes int16 +func (d *Decoder) Int16() (int16, error) { + u, err := d.Uint16() + if err != nil { + return 0, err + } + + return int16(u), nil +} + +// Int16 encodes int16 +func (e *Encoder) Int16(x int16) { + e.Uint16(uint16(x)) +} + +// Int32 decodes int32 +func (d *Decoder) Int32() (int32, error) { + u, err := d.Uint32() + if err != nil { + return 0, err + } + + return int32(u), nil +} + +// Int32 encodes int32 +func (e *Encoder) Int32(x int32) { + e.Uint32(uint32(x)) +} + +// Int64 decodes int64 +func (d *Decoder) Int64() (int64, error) { + u, err := d.Uint64() + if err != nil { + return 0, err + } + + return int64(u), nil +} + +// Int64 encodes int64 +func (e *Encoder) Int64(x int64) { + e.Uint64(uint64(x)) +} + +func (d *Decoder) value(v reflect.Value, maxlen int) error { + kind := v.Kind() + switch kind { + case reflect.Array: + + t := v.Type() + elem := t.Elem() + + // Arrays are a fixed size, so the length is not written + length := v.Len() + + switch elem.Kind() { + case reflect.Uint8: + if length > len(d.Buffer) { + return ErrBufferUnderflow + } + + reflect.Copy(v, reflect.ValueOf(d.Buffer[:length])) + d.Buffer = d.Buffer[length:] + default: + for i := 0; i < length; i++ { + if err := d.value(v.Index(i), 0); err != nil { + return err + } + } + } + + case reflect.Map: + ul, err := d.Uint32() + if err != nil { + return err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return ErrBufferUnderflow + } + + if length == 0 { + return nil + } + + t := v.Type() + key := t.Key() + elem := t.Elem() + + if v.IsNil() { + v.Set(reflect.Indirect(reflect.MakeMap(t))) + } + + for i := 0; i < length; i++ { + keyv := reflect.Indirect(reflect.New(key)) + elemv := reflect.Indirect(reflect.New(elem)) + if err := d.value(keyv, 0); err != nil { + return err + } + if err := d.value(elemv, 0); err != nil { + return err + } + v.SetMapIndex(keyv, elemv) + } + + if v.Len() != length { + return ErrMapDuplicateKeys + } + + case reflect.Slice: + ul, err := d.Uint32() + if err != nil { + return err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return ErrBufferUnderflow + } + + if length == 0 { + return nil + } + + if maxlen > 0 && length > maxlen { + return ErrMaxLenExceeded + } + + t := v.Type() + elem := t.Elem() + + switch elem.Kind() { + case reflect.Uint8: + v.SetBytes(d.Buffer[:length]) + d.Buffer = d.Buffer[length:] + default: + elemvs := reflect.MakeSlice(t, length, length) + for i := 0; i < length; i++ { + elemv := reflect.Indirect(elemvs.Index(i)) + if err := d.value(elemv, 0); err != nil { + return err + } + } + v.Set(elemvs) + } + + case reflect.Struct: + t := v.Type() + nFields := v.NumField() + for i := 0; i < nFields; i++ { + ff := t.Field(i) + // Skip unexported fields + if ff.PkgPath != "" { + continue + } + + tag := ff.Tag.Get("enc") + omitempty := TagOmitempty(tag) + + if omitempty && i != nFields-1 { + log.Panic(ErrInvalidOmitEmpty) + } + + if len(tag) > 0 && tag[0] == '-' { + continue + } + + fv := v.Field(i) + if fv.CanSet() && ff.Name != "_" { + maxlen := TagMaxLen(tag) + + if err := d.value(fv, maxlen); err != nil { + if err == ErrMaxLenExceeded { + return err + } + + // omitempty fields at the end of the buffer are ignored if missing + if !omitempty || len(d.Buffer) != 0 { + return err + } + } + } + } + + case reflect.String: + ul, err := d.Uint32() + if err != nil { + return err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return ErrBufferUnderflow + } + + if maxlen > 0 && length > maxlen { + return ErrMaxLenExceeded + } + + v.SetString(string(d.Buffer[:length])) + d.Buffer = d.Buffer[length:] + + case reflect.Bool: + b, err := d.Bool() + if err != nil { + return err + } + v.SetBool(b) + case reflect.Int8: + i, err := d.Int8() + if err != nil { + return err + } + v.SetInt(int64(i)) + case reflect.Int16: + i, err := d.Int16() + if err != nil { + return err + } + v.SetInt(int64(i)) + case reflect.Int32: + i, err := d.Int32() + if err != nil { + return err + } + v.SetInt(int64(i)) + case reflect.Int64: + i, err := d.Int64() + if err != nil { + return err + } + v.SetInt(i) + + case reflect.Uint8: + u, err := d.Uint8() + if err != nil { + return err + } + v.SetUint(uint64(u)) + case reflect.Uint16: + u, err := d.Uint16() + if err != nil { + return err + } + v.SetUint(uint64(u)) + case reflect.Uint32: + u, err := d.Uint32() + if err != nil { + return err + } + v.SetUint(uint64(u)) + case reflect.Uint64: + u, err := d.Uint64() + if err != nil { + return err + } + v.SetUint(u) + + case reflect.Float32: + u, err := d.Uint32() + if err != nil { + return err + } + v.SetFloat(float64(math.Float32frombits(u))) + case reflect.Float64: + u, err := d.Uint64() + if err != nil { + return err + } + v.SetFloat(math.Float64frombits(u)) + + default: + log.Panicf("Decode error: kind %s not handled", v.Kind().String()) + } + + return nil +} + +func (e *Encoder) value(v reflect.Value) { + switch v.Kind() { + case reflect.Interface: + e.value(v.Elem()) + + case reflect.Array: + // Arrays are a fixed size, so the length is not written + t := v.Type() + elem := t.Elem() + switch elem.Kind() { + case reflect.Uint8: + reflect.Copy(reflect.ValueOf(e.Buffer), v) + e.Buffer = e.Buffer[v.Len():] + default: + for i := 0; i < v.Len(); i++ { + e.value(v.Index(i)) + } + } + + case reflect.Slice: + t := v.Type() + elem := t.Elem() + switch elem.Kind() { + case reflect.Uint8: + e.ByteSlice(v.Bytes()) + default: + e.Uint32(uint32(v.Len())) + for i := 0; i < v.Len(); i++ { + e.value(v.Index(i)) + } + } + + case reflect.Map: + e.Uint32(uint32(v.Len())) + for _, key := range v.MapKeys() { + e.value(key) + e.value(v.MapIndex(key)) + } + + case reflect.Struct: + t := v.Type() + nFields := v.NumField() + for i := 0; i < nFields; i++ { + // see comment for corresponding code in Decoder.value() + ff := t.Field(i) + // Skip unexported fields + if ff.PkgPath != "" { + continue + } + + tag := ff.Tag.Get("enc") + omitempty := TagOmitempty(tag) + + if omitempty && i != nFields-1 { + log.Panic(ErrInvalidOmitEmpty) + } + + if len(tag) > 0 && tag[0] == '-' { + continue + } + + fv := v.Field(i) + if !(omitempty && isEmpty(fv)) && (fv.CanSet() || ff.Name != "_") { + e.value(fv) + } + } + + case reflect.Bool: + e.Bool(v.Bool()) + + case reflect.String: + e.ByteSlice([]byte(v.String())) + + case reflect.Int8: + e.Int8(int8(v.Int())) + case reflect.Int16: + e.Int16(int16(v.Int())) + case reflect.Int32: + e.Int32(int32(v.Int())) + case reflect.Int64: + e.Int64(v.Int()) + + case reflect.Uint8: + e.Uint8(uint8(v.Uint())) + case reflect.Uint16: + e.Uint16(uint16(v.Uint())) + case reflect.Uint32: + e.Uint32(uint32(v.Uint())) + case reflect.Uint64: + e.Uint64(v.Uint()) + + case reflect.Float32: + e.Uint32(math.Float32bits(float32(v.Float()))) + case reflect.Float64: + e.Uint64(math.Float64bits(v.Float())) + + default: + log.Panicf("Encoding unhandled type %s", v.Type().Name()) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/encrypt/scrypt_chacha20poly1305.go b/vendor/github.com/skycoin/skycoin/src/cipher/encrypt/scrypt_chacha20poly1305.go new file mode 100644 index 000000000..7fe6238e9 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/encrypt/scrypt_chacha20poly1305.go @@ -0,0 +1,171 @@ +/* +Package encrypt provides encryption methods. + +Encryption methods provided: + +* chacha20-poly1305 with scrypt key derivation +* sha256xor with sha256 key derivation + +The latter is insecure due to the insecure key derivation so should not be used. +The keys are easily brute forced. + +These methods are design for long-term (3-5 years) encryption of disk-persisted data. +They are not designed for network traffic encryption. +*/ +package encrypt + +import ( + "encoding/base64" + "encoding/binary" + "encoding/json" + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/chacha20poly1305" + "github.com/skycoin/skycoin/src/cipher/scrypt" +) + +const ( + scryptChacha20MetaLengthSize = 2 // meta data length field size in bytes + scryptChacha20SaltSize = 32 // salt bytes number +) + +// Default scrypt paramenters +const ( + // ScryptN: scrypt N paramenter. 1<<20 is the recommended value for file encryption, it takes about 3 seconds in 2.9 GHz Intel core i7. + ScryptN = 1 << 20 + // ScryptR: scrypt r paramenter. Cache line size have not significantly increased since 2009, 8 should still be optimal for r. + ScryptR = 8 + // ScryptP: scrypt p paramenter. The parallel difficulty, 1 is still optimal. + ScryptP = 1 + // ScryptKeyLen: The length of returned byte slice that can be used as cryptographic key. + ScryptKeyLen = 32 +) + +// DefaultScryptChacha20poly1305 default ScryptChacha20poly1305 encryptor +var DefaultScryptChacha20poly1305 = ScryptChacha20poly1305{ + N: ScryptN, + R: ScryptR, + P: ScryptP, + KeyLen: ScryptKeyLen, +} + +// ScryptChacha20poly1305 provides methods for encryption/decryption with scrypt and chacha20poly1305 +type ScryptChacha20poly1305 struct { + N int + R int + P int + KeyLen int +} + +type meta struct { + N int `json:"n"` + R int `json:"r"` + P int `json:"p"` + KeyLen int `json:"keyLen"` + Salt []byte `json:"salt"` + Nonce []byte `json:"nonce"` +} + +// Encrypt encrypts data with password, +// 1. Scrypt derives the key from password +// 2. Chacha20poly1305 generates AEAD from the derived key +// 4. Puts scrypt paramenters, salt and nonce into metadata, json serialize it and get the serialized metadata length +// 5. AEAD.Seal encrypts the data, and use [length][metadata] as additional data +// 6. Final format: base64([[length][metadata]][ciphertext]), length is 2 bytes. +func (s ScryptChacha20poly1305) Encrypt(data, password []byte) ([]byte, error) { + if len(password) == 0 { + return nil, errors.New("missing password") + } + + // Scyrpt derives key from password + salt := cipher.RandByte(scryptChacha20SaltSize) + dk, err := scrypt.Key(password, salt, s.N, s.R, s.P, s.KeyLen) + if err != nil { + return nil, err + } + + // Prepare metadata + m := meta{ + N: s.N, + R: s.R, + P: s.P, + KeyLen: s.KeyLen, + Salt: salt, + Nonce: cipher.RandByte(chacha20poly1305.NonceSize), + } + // json serialize the metadata + ms, err := json.Marshal(m) + if err != nil { + return nil, err + } + + if len(ms) > math.MaxUint16 { + return nil, errors.New("metadata length beyond the math.MaxUint16") + } + + length := make([]byte, scryptChacha20MetaLengthSize) + binary.LittleEndian.PutUint16(length, uint16(len(ms))) + + // Additional data for AEAD + ad := append(length, ms...) + aead, err := chacha20poly1305.New(dk) + if err != nil { + return nil, err + } + + ciphertext := aead.Seal(nil, m.Nonce, data, ad) + + // Base64 encode the [[length][metadata]][ciphertext] + rawData := append(ad, ciphertext...) + enc := base64.StdEncoding + buf := make([]byte, enc.EncodedLen(len(rawData))) + enc.Encode(buf, rawData) + return buf, nil +} + +// Decrypt decrypts the data with password +// 1. Base64 decodes the data +// 2. Reads the first [metaLengthSize] bytes data to get the metadata length, and reads out the metadata. +// 3. Scrypt derives key from password and paramenters in metadata +// 4. Chacha20poly1305 geneates AEAD +// 5. AEAD decrypts ciphertext with nonce in metadata and [length][metadata] as additional data. +func (s ScryptChacha20poly1305) Decrypt(data, password []byte) ([]byte, error) { + if len(password) == 0 { + return nil, errors.New("missing password") + } + + enc := base64.StdEncoding + encData := make([]byte, enc.DecodedLen(len(data))) + n, err := enc.Decode(encData, data) + if err != nil { + return nil, err + } + encData = encData[:n] + + length := binary.LittleEndian.Uint16(encData[:scryptChacha20MetaLengthSize]) + if int(scryptChacha20MetaLengthSize+length) > len(encData) { + return nil, errors.New("invalid metadata length") + } + + var m meta + if err := json.Unmarshal(encData[scryptChacha20MetaLengthSize:scryptChacha20MetaLengthSize+length], &m); err != nil { + return nil, err + } + + ad := encData[:scryptChacha20MetaLengthSize+length] + // Scrypt derives key + dk, err := scrypt.Key(password, m.Salt, m.N, m.R, m.P, m.KeyLen) + if err != nil { + return nil, err + } + + // Geneates AEAD + aead, err := chacha20poly1305.New(dk) + if err != nil { + return nil, err + } + + return aead.Open(nil, m.Nonce, encData[scryptChacha20MetaLengthSize+length:], ad) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/encrypt/sha256xor.go b/vendor/github.com/skycoin/skycoin/src/cipher/encrypt/sha256xor.go new file mode 100644 index 000000000..3923e7782 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/encrypt/sha256xor.go @@ -0,0 +1,260 @@ +package encrypt + +import ( + "bytes" + "encoding/base64" + "encoding/binary" + "errors" + "fmt" + "io" + "math" + + "github.com/skycoin/skycoin/src/cipher" + secp256k1 "github.com/skycoin/skycoin/src/cipher/secp256k1-go" +) + +const ( + // Data size of each block + sha256XorBlockSize = 32 // 32 bytes + // Nonce data size + sha256XorNonceSize = 32 // 32 bytes + // Checksum data size + sha256XorChecksumSize = 32 // 32 bytes + // Data length size + sha256XorDataLengthSize = 4 // 4 bytes + +) + +// Error definition +var ( + ErrMissingPassword = errors.New("missing password") + ErrDataTooLarge = errors.New("data length overflowed, it must <= math.MaxUint32(4294967295)") + ErrInvalidChecksumLength = errors.New("invalid checksum length") + ErrInvalidChecksum = errors.New("invalid data, checksum is not matched") + ErrInvalidNonceLength = errors.New("invalid nonce length") + ErrInvalidBlockSize = errors.New("invalid block size, must be multiple of 32 bytes") + ErrReadDataHashFailed = errors.New("read data hash failed: read length != 32") + ErrInvalidPassword = errors.New("invalid password") + ErrReadDataLengthFailed = errors.New("read data length failed") + ErrInvalidDataLength = errors.New("invalid data length") +) + +// DefaultSha256Xor default sha256xor encryptor +var DefaultSha256Xor = Sha256Xor{} + +// Sha256Xor provides methods to do encryption and decryption +type Sha256Xor struct{} + +// Encrypt encrypts the data with password +// +// 1> Add 32 bits length prefix to indicate the length of data. +// 2> Pad the length + data to 32 bytes with nulls at end +// 2> SHA256() and prefix the hash. +// 3> Split the whole data(hash+length+data+padding) into 256 bits(32 bytes) blocks +// 4> Each block is encrypted by XORing the unencrypted block with SHA256(SHA256(password), SHA256(index, SHA256(nonce)) +// - index is 0 for the first block of 32 bytes, 1 for the second block of 32 bytes, 2 for third block +// 5> Prefix nonce and SHA256 the nonce with blocks to get checksum, and prefix the checksum +// 6> Finally, the data format is: base64() +func (s Sha256Xor) Encrypt(data []byte, password []byte) ([]byte, error) { + if len(password) == 0 { + return nil, ErrMissingPassword + } + + if uint(len(data)) > math.MaxUint32 { + return nil, ErrDataTooLarge + } + + // Sets data length prefix + dataLenBytes := make([]byte, sha256XorDataLengthSize) + binary.LittleEndian.PutUint32(dataLenBytes, uint32(len(data))) + + // Prefixes data with length + ldata := append(dataLenBytes, data...) + + // Pads length + data with null to 32 bytes + l := len(ldata) // hash + length + data + n := l / sha256XorBlockSize + m := l % sha256XorBlockSize + if m > 0 { + paddingNull := make([]byte, sha256XorBlockSize-m) + ldata = append(ldata, paddingNull...) + n++ + } + + // Hash(length+data+padding) + dataHash := cipher.SumSHA256(ldata) + + // Initialize blocks with data hash + blocks := []cipher.SHA256{dataHash} + for i := 0; i < n; i++ { + var b cipher.SHA256 + copy(b[:], ldata[i*sha256XorBlockSize:(i+1)*sha256XorBlockSize]) + blocks = append(blocks, b) + } + + // Generates a nonce + nonce := cipher.RandByte(sha256XorNonceSize) + // Hash the nonce + hashNonce := cipher.SumSHA256(nonce) + // Derives key by secp256k1 hashing password + key := secp256k1.Secp256k1Hash(password) + + var encryptedData []byte + // Encodes the blocks + for i := range blocks { + // Hash(password, hash(index, hash(nonce))) + h := hashKeyIndexNonce(key, int64(i), hashNonce) + encryptedHash := blocks[i].Xor(h) + encryptedData = append(encryptedData, encryptedHash[:]...) + } + + // Prefix the nonce + nonceAndDataBytes := append(nonce, encryptedData...) + // Calculates the checksum + checkSum := cipher.SumSHA256(nonceAndDataBytes) + + finalData := append(checkSum[:], nonceAndDataBytes...) + + // Base64 encodes the data + enc := base64.StdEncoding + buf := make([]byte, enc.EncodedLen(len(finalData))) + enc.Encode(buf, finalData) + return buf, nil +} + +// Decrypt decrypts the data +func (s Sha256Xor) Decrypt(data []byte, password []byte) ([]byte, error) { + if len(password) == 0 { + return nil, ErrMissingPassword + } + + // Base64 decodes data + enc := base64.StdEncoding + encData := make([]byte, enc.DecodedLen(len(data))) + n, err := enc.Decode(encData, data) + if err != nil { + return nil, err + } + + encData = encData[:n] + + // Derives key by secp256k1 hashing password + key := secp256k1.Secp256k1Hash(password) + + buf := bytes.NewBuffer(encData) + + // Gets checksum + var checkSum cipher.SHA256 + n, err = buf.Read(checkSum[:]) + if err != nil { + return nil, err + } + + if n != sha256XorChecksumSize { + return nil, ErrInvalidChecksumLength + } + + // Checks the checksum + csh := cipher.SumSHA256(buf.Bytes()) + if csh != checkSum { + return nil, ErrInvalidChecksum + } + + // Gets the nonce + nonce := make([]byte, sha256XorNonceSize) + n, err = buf.Read(nonce) + if err != nil { + return nil, err + } + + if n != sha256XorNonceSize { + return nil, ErrInvalidNonceLength + } + + var decodeData []byte + hashNonce := cipher.SumSHA256(nonce) + i := 0 + for { + var block cipher.SHA256 + n, err := buf.Read(block[:]) + if err == io.EOF { + break + } + + if n != sha256XorBlockSize { + return nil, ErrInvalidBlockSize + } + + // Decodes the block + dataHash := block.Xor(hashKeyIndexNonce(key, int64(i), hashNonce)) + decodeData = append(decodeData, dataHash[:]...) + i++ + } + + buf = bytes.NewBuffer(decodeData) + + // Gets the hash + var dataHash cipher.SHA256 + n, err = buf.Read(dataHash[:]) + if err != nil { + return nil, fmt.Errorf("read data hash failed: %v", err) + } + + if n != 32 { + return nil, ErrReadDataHashFailed + } + + // Checks the hash + if dataHash != cipher.SumSHA256(buf.Bytes()) { + return nil, ErrInvalidPassword + } + + // Reads out the data length + dataLenBytes := make([]byte, sha256XorDataLengthSize) + n, err = buf.Read(dataLenBytes) + if err != nil { + return nil, err + } + + if n != sha256XorDataLengthSize { + return nil, ErrReadDataLengthFailed + } + + l := binary.LittleEndian.Uint32(dataLenBytes) + + if uint64(buf.Len()) > math.MaxUint32 { + return nil, ErrDataTooLarge + } + + if l > uint32(buf.Len()) { + return nil, ErrInvalidDataLength + } + + // Reads out the raw data + rawData := make([]byte, l) + n, err = buf.Read(rawData) + if err != nil { + return nil, err + } + + if uint32(n) != l { + return nil, fmt.Errorf("read data failed, expect %d bytes, but get %d bytes", l, n) + } + + return rawData, nil +} + +// hash(password, hash(index, hash(nonce))) +func hashKeyIndexNonce(key []byte, index int64, nonceHash cipher.SHA256) cipher.SHA256 { + // convert index to 256bit number + indexBytes := make([]byte, 32) + binary.PutVarint(indexBytes, index) + + // hash(index, nonceHash) + indexNonceHash := cipher.SumSHA256(append(indexBytes, nonceHash[:]...)) + + // hash(hash(password), indexNonceHash) + var keyHash cipher.SHA256 + copy(keyHash[:], key[:]) + return cipher.AddSHA256(keyHash, indexNonceHash) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/hash.go b/vendor/github.com/skycoin/skycoin/src/cipher/hash.go new file mode 100644 index 000000000..039cf6a4c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/hash.go @@ -0,0 +1,208 @@ +package cipher + +import ( + "encoding/hex" + "errors" + "hash" + "log" +) + +var ( + // Memory pool for hashes + sha256HashPoolSize = 30 + sha256HashPool chan hash.Hash + ripemd160HashPoolSize = 30 + ripemd160HashPool chan hash.Hash +) + +var ( + // ErrInvalidLengthRipemd160 Invalid ripemd160 length + ErrInvalidLengthRipemd160 = errors.New("Invalid ripemd160 length") + // ErrInvalidLengthSHA256 Invalid sha256 length + ErrInvalidLengthSHA256 = errors.New("Invalid sha256 length") + // ErrInvalidHexLength Invalid hex length + ErrInvalidHexLength = errors.New("Invalid hex length") + // ErrInvalidBytesLength Invalid bytes length + ErrInvalidBytesLength = errors.New("Invalid bytes length") +) + +// Ripemd160 ripemd160 +type Ripemd160 [20]byte + +// MustSet sets value, panics on error +func (rd *Ripemd160) MustSet(b []byte) { + if len(b) != 20 { + log.Panic(ErrInvalidLengthRipemd160) + } + copy(rd[:], b[:]) +} + +// Set sets value +func (rd *Ripemd160) Set(b []byte) error { + if len(b) != 20 { + return ErrInvalidLengthRipemd160 + } + copy(rd[:], b[:]) + return nil +} + +// Ripemd160FromBytes converts []byte to Ripemd160 +func Ripemd160FromBytes(b []byte) (Ripemd160, error) { + h := Ripemd160{} + err := h.Set(b) + return h, err +} + +// MustRipemd160FromBytes converts []byte to Ripemd160, panics on error +func MustRipemd160FromBytes(b []byte) Ripemd160 { + h := Ripemd160{} + h.MustSet(b) + return h +} + +// HashRipemd160 hash data to Ripemd160 +func HashRipemd160(data []byte) Ripemd160 { + ripemd160Hash := <-ripemd160HashPool + ripemd160Hash.Reset() + // ripemd160.Write never returns an error + ripemd160Hash.Write(data) //nolint:errcheck + sum := ripemd160Hash.Sum(nil) + ripemd160HashPool <- ripemd160Hash + + h := Ripemd160{} + h.MustSet(sum) + return h +} + +// SHA256 32 bytes +type SHA256 [32]byte + +// MustSet sets value, panics on error +func (g *SHA256) MustSet(b []byte) { + if len(b) != 32 { + panic(ErrInvalidLengthSHA256) + } + copy(g[:], b[:]) +} + +// Set sets value +func (g *SHA256) Set(b []byte) error { + if len(b) != 32 { + return ErrInvalidLengthSHA256 + } + copy(g[:], b[:]) + return nil +} + +func (g SHA256) String() string { + return g.Hex() +} + +// Hex encode SHA256 to hex string +func (g SHA256) Hex() string { + return hex.EncodeToString(g[:]) +} + +// Null returns true if the hash is null (0x0000..) +func (g SHA256) Null() bool { + return g == SHA256{} +} + +// Xor xor +func (g *SHA256) Xor(b SHA256) SHA256 { + c := SHA256{} + for i := 0; i < 32; i++ { + c[i] = g[i] ^ b[i] + } + return c +} + +// SHA256FromHex decodes a hex encoded SHA256 hash to bytes +func SHA256FromHex(hs string) (SHA256, error) { + h := SHA256{} + b, err := hex.DecodeString(hs) + if err != nil { + return h, err + } + if len(b) != len(h) { + return h, ErrInvalidHexLength + } + h.MustSet(b) + return h, nil +} + +// MustSHA256FromHex decodes a hex encoded SHA256 hash to bytes, panics on error +func MustSHA256FromHex(hs string) SHA256 { + h, err := SHA256FromHex(hs) + if err != nil { + log.Panic(err) + } + return h +} + +// SHA256FromBytes converts []byte to SHA256 +func SHA256FromBytes(b []byte) (SHA256, error) { + h := SHA256{} + err := h.Set(b) + return h, err +} + +// MustSHA256FromBytes converts []byte to SHA256, panics on error +func MustSHA256FromBytes(b []byte) SHA256 { + h := SHA256{} + h.MustSet(b) + return h +} + +// SumSHA256 sum sha256 +func SumSHA256(b []byte) SHA256 { + sha256Hash := <-sha256HashPool + sha256Hash.Reset() + // sha256.Write never returns an error + sha256Hash.Write(b) //nolint:errcheck + sum := sha256Hash.Sum(nil) + sha256HashPool <- sha256Hash + + h := SHA256{} + h.MustSet(sum) + return h +} + +// DoubleSHA256 double SHA256 +func DoubleSHA256(b []byte) SHA256 { + h1 := SumSHA256(b) + h2 := SumSHA256(h1[:]) + return h2 +} + +// AddSHA256 returns the SHA256 hash of to two concatenated hashes +func AddSHA256(a SHA256, b SHA256) SHA256 { + c := append(a[:], b[:]...) + return SumSHA256(c) +} + +// Returns the next highest power of 2 above n, if n is not already a +// power of 2 +func nextPowerOfTwo(n uint64) uint64 { + var k uint64 = 1 + for k < n { + k *= 2 + } + return k +} + +// Merkle computes the merkle root of a hash array +// Array of hashes is padded with 0 hashes until next power of 2 +func Merkle(h0 []SHA256) SHA256 { + lh := uint64(len(h0)) + np := nextPowerOfTwo(lh) + h1 := append(h0, make([]SHA256, np-lh)...) + for len(h1) != 1 { + h2 := make([]SHA256, len(h1)/2) + for i := 0; i < len(h2); i++ { + h2[i] = AddSHA256(h1[2*i], h1[2*i+1]) + } + h1 = h2 + } + return h1[0] +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/pbkdf2/pbkdf2.go b/vendor/github.com/skycoin/skycoin/src/cipher/pbkdf2/pbkdf2.go new file mode 100644 index 000000000..ad971605a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/pbkdf2/pbkdf2.go @@ -0,0 +1,77 @@ +// 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. + +/* +Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC +2898 / PKCS #5 v2.0. + +A key derivation function is useful when encrypting data based on a password +or any other not-fully-random data. It uses a pseudorandom function to derive +a secure encryption key based on the password. + +While v2.0 of the standard defines only one pseudorandom function to use, +HMAC-SHA1, the drafted v2.1 specification allows use of all five FIPS Approved +Hash Functions SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 for HMAC. To +choose, you can pass the `New` functions from the different SHA packages to +pbkdf2.Key. +*/ +package pbkdf2 // import "github.com/skycoin/skycoin/src/cipher/pbkdf2" + +import ( + "crypto/hmac" + "hash" +) + +// Key derives a key from the password, salt and iteration count, returning a +// []byte of length keylen that can be used as cryptographic key. The key is +// derived based on the method described as PBKDF2 with the HMAC variant using +// the supplied hash function. +// +// For example, to use a HMAC-SHA-1 based PBKDF2 key derivation function, you +// can get a derived key for e.g. AES-256 (which needs a 32-byte key) by +// doing: +// +// dk := pbkdf2.Key([]byte("some password"), salt, 4096, 32, sha1.New) +// +// Remember to get a good random salt. At least 8 bytes is recommended by the +// RFC. +// +// Using a higher iteration count will increase the cost of an exhaustive +// search but will also make derivation proportionally slower. +func Key(password, salt []byte, iter, keyLen int, h func() hash.Hash) []byte { + prf := hmac.New(h, password) + hashLen := prf.Size() + numBlocks := (keyLen + hashLen - 1) / hashLen + + var buf [4]byte + dk := make([]byte, 0, numBlocks*hashLen) + U := make([]byte, hashLen) + for block := 1; block <= numBlocks; block++ { + // N.B.: || means concatenation, ^ means XOR + // for each block T_i = U_1 ^ U_2 ^ ... ^ U_iter + // U_1 = PRF(password, salt || uint(i)) + prf.Reset() + prf.Write(salt) //nolint:errcheck,gosec + buf[0] = byte(block >> 24) + buf[1] = byte(block >> 16) + buf[2] = byte(block >> 8) + buf[3] = byte(block) + prf.Write(buf[:4]) //nolint:errcheck,gosec + dk = prf.Sum(dk) + T := dk[len(dk)-hashLen:] + copy(U, T) + + // U_n = PRF(password, U_(n-1)) + for n := 2; n <= iter; n++ { + prf.Reset() + prf.Write(U) //nolint:errcheck,gosec + U = U[:0] + U = prf.Sum(U) + for x := range U { + T[x] ^= U[x] + } + } + } + return dk[:keyLen] +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/poly1305.go b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/poly1305.go new file mode 100644 index 000000000..e7a594571 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/poly1305.go @@ -0,0 +1,32 @@ +// 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. + +/* +Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf. + +Poly1305 is a fast, one-time authentication function. It is infeasible for an +attacker to generate an authenticator for a message without the key. However, a +key must only be used for a single message. Authenticating two different +messages with the same key allows an attacker to forge authenticators for other +messages with the same key. + +Poly1305 was originally coupled with AES in order to make Poly1305-AES. AES was +used with a fixed key in order to generate one-time keys from an nonce. +However, in this package AES isn't used and the one-time key is specified +directly. +*/ +package poly1305 // import "github.com/skycoin/skycoin/src/cipher/poly1305" + +import "crypto/subtle" + +// TagSize is the size, in bytes, of a poly1305 authenticator. +const TagSize = 16 + +// Verify returns true if mac is a valid authenticator for m with the given +// key. +func Verify(mac *[16]byte, m []byte, key *[32]byte) bool { + var tmp [16]byte + Sum(&tmp, m, key) + return subtle.ConstantTimeCompare(tmp[:], mac[:]) == 1 +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_amd64.go b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_amd64.go new file mode 100644 index 000000000..4dd72fe79 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_amd64.go @@ -0,0 +1,22 @@ +// 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. + +// +build amd64,!gccgo,!appengine + +package poly1305 + +// This function is implemented in sum_amd64.s +//go:noescape +func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]byte) + +// Sum generates an authenticator for m 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) { + var mPtr *byte + if len(m) > 0 { + mPtr = &m[0] + } + poly1305(out, mPtr, uint64(len(m)), key) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_amd64.s b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_amd64.s new file mode 100644 index 000000000..2edae6382 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_amd64.s @@ -0,0 +1,125 @@ +// 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. + +// +build amd64,!gccgo,!appengine + +#include "textflag.h" + +#define POLY1305_ADD(msg, h0, h1, h2) \ + ADDQ 0(msg), h0; \ + ADCQ 8(msg), h1; \ + ADCQ $1, h2; \ + LEAQ 16(msg), msg + +#define POLY1305_MUL(h0, h1, h2, r0, r1, t0, t1, t2, t3) \ + MOVQ r0, AX; \ + MULQ h0; \ + MOVQ AX, t0; \ + MOVQ DX, t1; \ + MOVQ r0, AX; \ + MULQ h1; \ + ADDQ AX, t1; \ + ADCQ $0, DX; \ + MOVQ r0, t2; \ + IMULQ h2, t2; \ + ADDQ DX, t2; \ + \ + MOVQ r1, AX; \ + MULQ h0; \ + ADDQ AX, t1; \ + ADCQ $0, DX; \ + MOVQ DX, h0; \ + MOVQ r1, t3; \ + IMULQ h2, t3; \ + MOVQ r1, AX; \ + MULQ h1; \ + ADDQ AX, t2; \ + ADCQ DX, t3; \ + ADDQ h0, t2; \ + ADCQ $0, t3; \ + \ + MOVQ t0, h0; \ + MOVQ t1, h1; \ + MOVQ t2, h2; \ + ANDQ $3, h2; \ + MOVQ t2, t0; \ + ANDQ $0xFFFFFFFFFFFFFFFC, t0; \ + ADDQ t0, h0; \ + ADCQ t3, h1; \ + ADCQ $0, h2; \ + SHRQ $2, t3, t2; \ + SHRQ $2, t3; \ + ADDQ t2, h0; \ + ADCQ t3, h1; \ + ADCQ $0, h2 + +DATA ·poly1305Mask<>+0x00(SB)/8, $0x0FFFFFFC0FFFFFFF +DATA ·poly1305Mask<>+0x08(SB)/8, $0x0FFFFFFC0FFFFFFC +GLOBL ·poly1305Mask<>(SB), RODATA, $16 + +// func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]key) +TEXT ·poly1305(SB), $0-32 + MOVQ out+0(FP), DI + MOVQ m+8(FP), SI + MOVQ mlen+16(FP), R15 + MOVQ key+24(FP), AX + + MOVQ 0(AX), R11 + MOVQ 8(AX), R12 + ANDQ ·poly1305Mask<>(SB), R11 // r0 + ANDQ ·poly1305Mask<>+8(SB), R12 // r1 + XORQ R8, R8 // h0 + XORQ R9, R9 // h1 + XORQ R10, R10 // h2 + + CMPQ R15, $16 + JB bytes_between_0_and_15 + +loop: + POLY1305_ADD(SI, R8, R9, R10) + +multiply: + POLY1305_MUL(R8, R9, R10, R11, R12, BX, CX, R13, R14) + SUBQ $16, R15 + CMPQ R15, $16 + JAE loop + +bytes_between_0_and_15: + TESTQ R15, R15 + JZ done + MOVQ $1, BX + XORQ CX, CX + XORQ R13, R13 + ADDQ R15, SI + +flush_buffer: + SHLQ $8, BX, CX + SHLQ $8, BX + MOVB -1(SI), R13 + XORQ R13, BX + DECQ SI + DECQ R15 + JNZ flush_buffer + + ADDQ BX, R8 + ADCQ CX, R9 + ADCQ $0, R10 + MOVQ $16, R15 + JMP multiply + +done: + MOVQ R8, AX + MOVQ R9, BX + SUBQ $0xFFFFFFFFFFFFFFFB, AX + SBBQ $0xFFFFFFFFFFFFFFFF, BX + SBBQ $3, R10 + CMOVQCS R8, AX + CMOVQCS R9, BX + MOVQ key+24(FP), R8 + ADDQ 16(R8), AX + ADCQ 24(R8), BX + + MOVQ AX, 0(DI) + MOVQ BX, 8(DI) + RET diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_arm.go b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_arm.go new file mode 100644 index 000000000..5dc321c2f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_arm.go @@ -0,0 +1,22 @@ +// 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 arm,!gccgo,!appengine,!nacl + +package poly1305 + +// This function is implemented in sum_arm.s +//go:noescape +func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]byte) + +// Sum generates an authenticator for m 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) { + var mPtr *byte + if len(m) > 0 { + mPtr = &m[0] + } + poly1305_auth_armv6(out, mPtr, uint32(len(m)), key) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_arm.s b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_arm.s new file mode 100644 index 000000000..f70b4ac48 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_arm.s @@ -0,0 +1,427 @@ +// 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 arm,!gccgo,!appengine,!nacl + +#include "textflag.h" + +// This code was translated into a form compatible with 5a from the public +// domain source by Andrew Moon: github.com/floodyberry/poly1305-opt/blob/master/app/extensions/poly1305. + +DATA ·poly1305_init_constants_armv6<>+0x00(SB)/4, $0x3ffffff +DATA ·poly1305_init_constants_armv6<>+0x04(SB)/4, $0x3ffff03 +DATA ·poly1305_init_constants_armv6<>+0x08(SB)/4, $0x3ffc0ff +DATA ·poly1305_init_constants_armv6<>+0x0c(SB)/4, $0x3f03fff +DATA ·poly1305_init_constants_armv6<>+0x10(SB)/4, $0x00fffff +GLOBL ·poly1305_init_constants_armv6<>(SB), 8, $20 + +// Warning: the linker may use R11 to synthesize certain instructions. Please +// take care and verify that no synthetic instructions use it. + +TEXT poly1305_init_ext_armv6<>(SB), NOSPLIT, $0 + // Needs 16 bytes of stack and 64 bytes of space pointed to by R0. (It + // might look like it's only 60 bytes of space but the final four bytes + // will be written by another function.) We need to skip over four + // bytes of stack because that's saving the value of 'g'. + ADD $4, R13, R8 + MOVM.IB [R4-R7], (R8) + MOVM.IA.W (R1), [R2-R5] + MOVW $·poly1305_init_constants_armv6<>(SB), R7 + MOVW R2, R8 + MOVW R2>>26, R9 + MOVW R3>>20, g + MOVW R4>>14, R11 + MOVW R5>>8, R12 + ORR R3<<6, R9, R9 + ORR R4<<12, g, g + ORR R5<<18, R11, R11 + MOVM.IA (R7), [R2-R6] + AND R8, R2, R2 + AND R9, R3, R3 + AND g, R4, R4 + AND R11, R5, R5 + AND R12, R6, R6 + MOVM.IA.W [R2-R6], (R0) + EOR R2, R2, R2 + EOR R3, R3, R3 + EOR R4, R4, R4 + EOR R5, R5, R5 + EOR R6, R6, R6 + MOVM.IA.W [R2-R6], (R0) + MOVM.IA.W (R1), [R2-R5] + MOVM.IA [R2-R6], (R0) + ADD $20, R13, R0 + MOVM.DA (R0), [R4-R7] + RET + +#define MOVW_UNALIGNED(Rsrc, Rdst, Rtmp, offset) \ + MOVBU (offset+0)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+0)(Rdst); \ + MOVBU (offset+1)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+1)(Rdst); \ + MOVBU (offset+2)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+2)(Rdst); \ + MOVBU (offset+3)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+3)(Rdst) + +TEXT poly1305_blocks_armv6<>(SB), NOSPLIT, $0 + // Needs 24 bytes of stack for saved registers and then 88 bytes of + // scratch space after that. We assume that 24 bytes at (R13) have + // already been used: four bytes for the link register saved in the + // prelude of poly1305_auth_armv6, four bytes for saving the value of g + // in that function and 16 bytes of scratch space used around + // poly1305_finish_ext_armv6_skip1. + ADD $24, R13, R12 + MOVM.IB [R4-R8, R14], (R12) + MOVW R0, 88(R13) + MOVW R1, 92(R13) + MOVW R2, 96(R13) + MOVW R1, R14 + MOVW R2, R12 + MOVW 56(R0), R8 + WORD $0xe1180008 // TST R8, R8 not working see issue 5921 + EOR R6, R6, R6 + MOVW.EQ $(1<<24), R6 + MOVW R6, 84(R13) + ADD $116, R13, g + MOVM.IA (R0), [R0-R9] + MOVM.IA [R0-R4], (g) + CMP $16, R12 + BLO poly1305_blocks_armv6_done + +poly1305_blocks_armv6_mainloop: + WORD $0xe31e0003 // TST R14, #3 not working see issue 5921 + BEQ poly1305_blocks_armv6_mainloop_aligned + ADD $100, R13, g + MOVW_UNALIGNED(R14, g, R0, 0) + MOVW_UNALIGNED(R14, g, R0, 4) + MOVW_UNALIGNED(R14, g, R0, 8) + MOVW_UNALIGNED(R14, g, R0, 12) + MOVM.IA (g), [R0-R3] + ADD $16, R14 + B poly1305_blocks_armv6_mainloop_loaded + +poly1305_blocks_armv6_mainloop_aligned: + MOVM.IA.W (R14), [R0-R3] + +poly1305_blocks_armv6_mainloop_loaded: + MOVW R0>>26, g + MOVW R1>>20, R11 + MOVW R2>>14, R12 + MOVW R14, 92(R13) + MOVW R3>>8, R4 + ORR R1<<6, g, g + ORR R2<<12, R11, R11 + ORR R3<<18, R12, R12 + BIC $0xfc000000, R0, R0 + BIC $0xfc000000, g, g + MOVW 84(R13), R3 + BIC $0xfc000000, R11, R11 + BIC $0xfc000000, R12, R12 + ADD R0, R5, R5 + ADD g, R6, R6 + ORR R3, R4, R4 + ADD R11, R7, R7 + ADD $116, R13, R14 + ADD R12, R8, R8 + ADD R4, R9, R9 + MOVM.IA (R14), [R0-R4] + MULLU R4, R5, (R11, g) + MULLU R3, R5, (R14, R12) + MULALU R3, R6, (R11, g) + MULALU R2, R6, (R14, R12) + MULALU R2, R7, (R11, g) + MULALU R1, R7, (R14, R12) + ADD R4<<2, R4, R4 + ADD R3<<2, R3, R3 + MULALU R1, R8, (R11, g) + MULALU R0, R8, (R14, R12) + MULALU R0, R9, (R11, g) + MULALU R4, R9, (R14, R12) + MOVW g, 76(R13) + MOVW R11, 80(R13) + MOVW R12, 68(R13) + MOVW R14, 72(R13) + MULLU R2, R5, (R11, g) + MULLU R1, R5, (R14, R12) + MULALU R1, R6, (R11, g) + MULALU R0, R6, (R14, R12) + MULALU R0, R7, (R11, g) + MULALU R4, R7, (R14, R12) + ADD R2<<2, R2, R2 + ADD R1<<2, R1, R1 + MULALU R4, R8, (R11, g) + MULALU R3, R8, (R14, R12) + MULALU R3, R9, (R11, g) + MULALU R2, R9, (R14, R12) + MOVW g, 60(R13) + MOVW R11, 64(R13) + MOVW R12, 52(R13) + MOVW R14, 56(R13) + MULLU R0, R5, (R11, g) + MULALU R4, R6, (R11, g) + MULALU R3, R7, (R11, g) + MULALU R2, R8, (R11, g) + MULALU R1, R9, (R11, g) + ADD $52, R13, R0 + MOVM.IA (R0), [R0-R7] + MOVW g>>26, R12 + MOVW R4>>26, R14 + ORR R11<<6, R12, R12 + ORR R5<<6, R14, R14 + BIC $0xfc000000, g, g + BIC $0xfc000000, R4, R4 + ADD.S R12, R0, R0 + ADC $0, R1, R1 + ADD.S R14, R6, R6 + ADC $0, R7, R7 + MOVW R0>>26, R12 + MOVW R6>>26, R14 + ORR R1<<6, R12, R12 + ORR R7<<6, R14, R14 + BIC $0xfc000000, R0, R0 + BIC $0xfc000000, R6, R6 + ADD R14<<2, R14, R14 + ADD.S R12, R2, R2 + ADC $0, R3, R3 + ADD R14, g, g + MOVW R2>>26, R12 + MOVW g>>26, R14 + ORR R3<<6, R12, R12 + BIC $0xfc000000, g, R5 + BIC $0xfc000000, R2, R7 + ADD R12, R4, R4 + ADD R14, R0, R0 + MOVW R4>>26, R12 + BIC $0xfc000000, R4, R8 + ADD R12, R6, R9 + MOVW 96(R13), R12 + MOVW 92(R13), R14 + MOVW R0, R6 + CMP $32, R12 + SUB $16, R12, R12 + MOVW R12, 96(R13) + BHS poly1305_blocks_armv6_mainloop + +poly1305_blocks_armv6_done: + MOVW 88(R13), R12 + MOVW R5, 20(R12) + MOVW R6, 24(R12) + MOVW R7, 28(R12) + MOVW R8, 32(R12) + MOVW R9, 36(R12) + ADD $48, R13, R0 + MOVM.DA (R0), [R4-R8, R14] + RET + +#define MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp) \ + MOVBU.P 1(Rsrc), Rtmp; \ + MOVBU.P Rtmp, 1(Rdst); \ + MOVBU.P 1(Rsrc), Rtmp; \ + MOVBU.P Rtmp, 1(Rdst) + +#define MOVWP_UNALIGNED(Rsrc, Rdst, Rtmp) \ + MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp); \ + MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp) + +// func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]key) +TEXT ·poly1305_auth_armv6(SB), $196-16 + // The value 196, just above, is the sum of 64 (the size of the context + // structure) and 132 (the amount of stack needed). + // + // At this point, the stack pointer (R13) has been moved down. It + // points to the saved link register and there's 196 bytes of free + // space above it. + // + // The stack for this function looks like: + // + // +--------------------- + // | + // | 64 bytes of context structure + // | + // +--------------------- + // | + // | 112 bytes for poly1305_blocks_armv6 + // | + // +--------------------- + // | 16 bytes of final block, constructed at + // | poly1305_finish_ext_armv6_skip8 + // +--------------------- + // | four bytes of saved 'g' + // +--------------------- + // | lr, saved by prelude <- R13 points here + // +--------------------- + MOVW g, 4(R13) + + MOVW out+0(FP), R4 + MOVW m+4(FP), R5 + MOVW mlen+8(FP), R6 + MOVW key+12(FP), R7 + + ADD $136, R13, R0 // 136 = 4 + 4 + 16 + 112 + MOVW R7, R1 + + // poly1305_init_ext_armv6 will write to the stack from R13+4, but + // that's ok because none of the other values have been written yet. + BL poly1305_init_ext_armv6<>(SB) + BIC.S $15, R6, R2 + BEQ poly1305_auth_armv6_noblocks + ADD $136, R13, R0 + MOVW R5, R1 + ADD R2, R5, R5 + SUB R2, R6, R6 + BL poly1305_blocks_armv6<>(SB) + +poly1305_auth_armv6_noblocks: + ADD $136, R13, R0 + MOVW R5, R1 + MOVW R6, R2 + MOVW R4, R3 + + MOVW R0, R5 + MOVW R1, R6 + MOVW R2, R7 + MOVW R3, R8 + AND.S R2, R2, R2 + BEQ poly1305_finish_ext_armv6_noremaining + EOR R0, R0 + ADD $8, R13, R9 // 8 = offset to 16 byte scratch space + MOVW R0, (R9) + MOVW R0, 4(R9) + MOVW R0, 8(R9) + MOVW R0, 12(R9) + WORD $0xe3110003 // TST R1, #3 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_aligned + WORD $0xe3120008 // TST R2, #8 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip8 + MOVWP_UNALIGNED(R1, R9, g) + MOVWP_UNALIGNED(R1, R9, g) + +poly1305_finish_ext_armv6_skip8: + WORD $0xe3120004 // TST $4, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip4 + MOVWP_UNALIGNED(R1, R9, g) + +poly1305_finish_ext_armv6_skip4: + WORD $0xe3120002 // TST $2, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip2 + MOVHUP_UNALIGNED(R1, R9, g) + B poly1305_finish_ext_armv6_skip2 + +poly1305_finish_ext_armv6_aligned: + WORD $0xe3120008 // TST R2, #8 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip8_aligned + MOVM.IA.W (R1), [g-R11] + MOVM.IA.W [g-R11], (R9) + +poly1305_finish_ext_armv6_skip8_aligned: + WORD $0xe3120004 // TST $4, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip4_aligned + MOVW.P 4(R1), g + MOVW.P g, 4(R9) + +poly1305_finish_ext_armv6_skip4_aligned: + WORD $0xe3120002 // TST $2, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip2 + MOVHU.P 2(R1), g + MOVH.P g, 2(R9) + +poly1305_finish_ext_armv6_skip2: + WORD $0xe3120001 // TST $1, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip1 + MOVBU.P 1(R1), g + MOVBU.P g, 1(R9) + +poly1305_finish_ext_armv6_skip1: + MOVW $1, R11 + MOVBU R11, 0(R9) + MOVW R11, 56(R5) + MOVW R5, R0 + ADD $8, R13, R1 + MOVW $16, R2 + BL poly1305_blocks_armv6<>(SB) + +poly1305_finish_ext_armv6_noremaining: + MOVW 20(R5), R0 + MOVW 24(R5), R1 + MOVW 28(R5), R2 + MOVW 32(R5), R3 + MOVW 36(R5), R4 + MOVW R4>>26, R12 + BIC $0xfc000000, R4, R4 + ADD R12<<2, R12, R12 + ADD R12, R0, R0 + MOVW R0>>26, R12 + BIC $0xfc000000, R0, R0 + ADD R12, R1, R1 + MOVW R1>>26, R12 + BIC $0xfc000000, R1, R1 + ADD R12, R2, R2 + MOVW R2>>26, R12 + BIC $0xfc000000, R2, R2 + ADD R12, R3, R3 + MOVW R3>>26, R12 + BIC $0xfc000000, R3, R3 + ADD R12, R4, R4 + ADD $5, R0, R6 + MOVW R6>>26, R12 + BIC $0xfc000000, R6, R6 + ADD R12, R1, R7 + MOVW R7>>26, R12 + BIC $0xfc000000, R7, R7 + ADD R12, R2, g + MOVW g>>26, R12 + BIC $0xfc000000, g, g + ADD R12, R3, R11 + MOVW $-(1<<26), R12 + ADD R11>>26, R12, R12 + BIC $0xfc000000, R11, R11 + ADD R12, R4, R9 + MOVW R9>>31, R12 + SUB $1, R12 + AND R12, R6, R6 + AND R12, R7, R7 + AND R12, g, g + AND R12, R11, R11 + AND R12, R9, R9 + MVN R12, R12 + AND R12, R0, R0 + AND R12, R1, R1 + AND R12, R2, R2 + AND R12, R3, R3 + AND R12, R4, R4 + ORR R6, R0, R0 + ORR R7, R1, R1 + ORR g, R2, R2 + ORR R11, R3, R3 + ORR R9, R4, R4 + ORR R1<<26, R0, R0 + MOVW R1>>6, R1 + ORR R2<<20, R1, R1 + MOVW R2>>12, R2 + ORR R3<<14, R2, R2 + MOVW R3>>18, R3 + ORR R4<<8, R3, R3 + MOVW 40(R5), R6 + MOVW 44(R5), R7 + MOVW 48(R5), g + MOVW 52(R5), R11 + ADD.S R6, R0, R0 + ADC.S R7, R1, R1 + ADC.S g, R2, R2 + ADC.S R11, R3, R3 + MOVM.IA [R0-R3], (R8) + MOVW R5, R12 + EOR R0, R0, R0 + EOR R1, R1, R1 + EOR R2, R2, R2 + EOR R3, R3, R3 + EOR R4, R4, R4 + EOR R5, R5, R5 + EOR R6, R6, R6 + EOR R7, R7, R7 + MOVM.IA.W [R0-R7], (R12) + MOVM.IA [R0-R7], (R12) + MOVW 4(R13), g + RET diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_ref.go b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_ref.go new file mode 100644 index 000000000..b2805a5ca --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/poly1305/sum_ref.go @@ -0,0 +1,141 @@ +// 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. + +// +build !amd64,!arm gccgo appengine nacl + +package poly1305 + +import "encoding/binary" + +// 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 *[TagSize]byte, msg []byte, key *[32]byte) { + var ( + h0, h1, h2, h3, h4 uint32 // the hash accumulators + r0, r1, r2, r3, r4 uint64 // the r part of the key + ) + + 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:] + } + + 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 + } + + // 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/github.com/skycoin/skycoin/src/cipher/ripemd160/ripemd160block.go b/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripemd160block.go new file mode 100644 index 000000000..2f45a532c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripemd160block.go @@ -0,0 +1,161 @@ +// Copyright 2010 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. + +// RIPEMD-160 block step. +// In its own file so that a faster assembly or C version +// can be substituted easily. + +package ripemd160 + +// work buffer indices and roll amounts for one line +var _n = [80]uint{ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, + 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, + 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, + 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, +} + +var _r = [80]uint{ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, + 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, + 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, + 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, + 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6, +} + +// same for the other parallel one +var n_ = [80]uint{ //nolint:golint + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, + 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, + 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, + 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, + 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, +} + +var r_ = [80]uint{ //nolint:golint + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, + 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, + 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, + 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, + 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11, +} + +func _Block(md *digest, p []byte) int { + n := 0 + var x [16]uint32 + var alpha, beta uint32 + for len(p) >= BlockSize { + a, b, c, d, e := md.s[0], md.s[1], md.s[2], md.s[3], md.s[4] + aa, bb, cc, dd, ee := a, b, c, d, e + j := 0 + for i := 0; i < 16; i++ { + x[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24 + j += 4 + } + + // round 1 + i := 0 + for i < 16 { + alpha = a + (b ^ c ^ d) + x[_n[i]] + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb ^ (cc | ^dd)) + x[n_[i]] + 0x50a28be6 + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // round 2 + for i < 32 { + alpha = a + (b&c | ^b&d) + x[_n[i]] + 0x5a827999 + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb&dd | cc&^dd) + x[n_[i]] + 0x5c4dd124 + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // round 3 + for i < 48 { + alpha = a + (b | ^c ^ d) + x[_n[i]] + 0x6ed9eba1 + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb | ^cc ^ dd) + x[n_[i]] + 0x6d703ef3 + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // round 4 + for i < 64 { + alpha = a + (b&d | c&^d) + x[_n[i]] + 0x8f1bbcdc + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb&cc | ^bb&dd) + x[n_[i]] + 0x7a6d76e9 + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // round 5 + for i < 80 { + alpha = a + (b ^ (c | ^d)) + x[_n[i]] + 0xa953fd4e + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb ^ cc ^ dd) + x[n_[i]] + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // combine results + dd += c + md.s[1] + md.s[1] = md.s[2] + d + ee + md.s[2] = md.s[3] + e + aa + md.s[3] = md.s[4] + a + bb + md.s[4] = md.s[0] + b + cc + md.s[0] = dd + + p = p[BlockSize:] + n += BlockSize + } + return n +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripmd_160.go b/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripmd_160.go new file mode 100644 index 000000000..d406bbfe8 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripmd_160.go @@ -0,0 +1,121 @@ +// Copyright 2010 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 ripemd160 implements the RIPEMD-160 hash algorithm. +package ripemd160 + +// RIPEMD-160 is designed by by Hans Dobbertin, Antoon Bosselaers, and Bart +// Preneel with specifications available at: +// http://homes.esat.kuleuven.be/~cosicart/pdf/AB-9601/AB-9601.pdf. + +import ( + "crypto" + "hash" +) + +func init() { + crypto.RegisterHash(crypto.RIPEMD160, New) +} + +// Size is the size of the checksum in bytes. +const Size = 20 + +// BlockSize is the block size of the hash algorithm in bytes. +const BlockSize = 64 + +const ( + _s0 = 0x67452301 + _s1 = 0xefcdab89 + _s2 = 0x98badcfe + _s3 = 0x10325476 + _s4 = 0xc3d2e1f0 +) + +// digest represents the partial evaluation of a checksum. +type digest struct { + s [5]uint32 // running context + x [BlockSize]byte // temporary buffer + nx int // index into x + tc uint64 // total count of bytes processed +} + +func (d *digest) Reset() { + d.s[0], d.s[1], d.s[2], d.s[3], d.s[4] = _s0, _s1, _s2, _s3, _s4 + d.nx = 0 + d.tc = 0 +} + +// New returns a new hash.Hash computing the checksum. +func New() hash.Hash { + result := new(digest) + result.Reset() + return result +} + +func (d *digest) Size() int { return Size } + +func (d *digest) BlockSize() int { return BlockSize } + +func (d *digest) Write(p []byte) (nn int, err error) { + nn = len(p) + d.tc += uint64(nn) + if d.nx > 0 { + n := len(p) + if n > BlockSize-d.nx { + n = BlockSize - d.nx + } + for i := 0; i < n; i++ { + d.x[d.nx+i] = p[i] + } + d.nx += n + if d.nx == BlockSize { + _Block(d, d.x[0:]) + d.nx = 0 + } + p = p[n:] + } + n := _Block(d, p) + p = p[n:] + if len(p) > 0 { + d.nx = copy(d.x[:], p) + } + return +} + +func (d0 *digest) Sum(in []byte) []byte { //nolint:golint + // Make a copy of d0 so that caller can keep writing and summing. + d := *d0 + + // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. + tc := d.tc + var tmp [64]byte + tmp[0] = 0x80 + if tc%64 < 56 { + + d.Write(tmp[0 : 56-tc%64]) //nolint:errcheck,gosec + } else { + d.Write(tmp[0 : 64+56-tc%64]) //nolint:errcheck,gosec + } + + // Length in bits. + tc <<= 3 + for i := uint(0); i < 8; i++ { + tmp[i] = byte(tc >> (8 * i)) + } + d.Write(tmp[0:8]) //nolint:errcheck,gosec + + if d.nx != 0 { + panic("d.nx != 0") + } + + var digest [Size]byte + for i, s := range d.s { + digest[i*4] = byte(s) + digest[i*4+1] = byte(s >> 8) + digest[i*4+2] = byte(s >> 16) + digest[i*4+3] = byte(s >> 24) + } + + return append(in, digest[:]...) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/scrypt/scrypt.go b/vendor/github.com/skycoin/skycoin/src/cipher/scrypt/scrypt.go new file mode 100644 index 000000000..347f32d5a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/scrypt/scrypt.go @@ -0,0 +1,243 @@ +// 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. + +// Package scrypt implements the scrypt key derivation function as defined in +// Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard +// Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf). +package scrypt // import "github.com/skycoin/skycoin/src/cipher/scrypt" + +import ( + "crypto/sha256" + "errors" + + "github.com/skycoin/skycoin/src/cipher/pbkdf2" +) + +const maxInt = int(^uint(0) >> 1) + +// blockCopy copies n numbers from src into dst. +func blockCopy(dst, src []uint32, n int) { + copy(dst, src[:n]) +} + +// blockXOR XORs numbers from dst with n numbers from src. +func blockXOR(dst, src []uint32, n int) { + for i, v := range src[:n] { + dst[i] ^= v + } +} + +// salsaXOR applies Salsa20/8 to the XOR of 16 numbers from tmp and in, +// and puts the result into both both tmp and out. +func salsaXOR(tmp *[16]uint32, in, out []uint32) { + w0 := tmp[0] ^ in[0] + w1 := tmp[1] ^ in[1] + w2 := tmp[2] ^ in[2] + w3 := tmp[3] ^ in[3] + w4 := tmp[4] ^ in[4] + w5 := tmp[5] ^ in[5] + w6 := tmp[6] ^ in[6] + w7 := tmp[7] ^ in[7] + w8 := tmp[8] ^ in[8] + w9 := tmp[9] ^ in[9] + w10 := tmp[10] ^ in[10] + w11 := tmp[11] ^ in[11] + w12 := tmp[12] ^ in[12] + w13 := tmp[13] ^ in[13] + w14 := tmp[14] ^ in[14] + w15 := tmp[15] ^ in[15] + + x0, x1, x2, x3, x4, x5, x6, x7, x8 := w0, w1, w2, w3, w4, w5, w6, w7, w8 + x9, x10, x11, x12, x13, x14, x15 := w9, w10, w11, w12, w13, w14, w15 + + for i := 0; i < 8; i += 2 { + u := x0 + x12 + x4 ^= u<<7 | u>>(32-7) + u = x4 + x0 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x4 + x12 ^= u<<13 | u>>(32-13) + u = x12 + x8 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x1 + x9 ^= u<<7 | u>>(32-7) + u = x9 + x5 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x9 + x1 ^= u<<13 | u>>(32-13) + u = x1 + x13 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x6 + x14 ^= u<<7 | u>>(32-7) + u = x14 + x10 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x14 + x6 ^= u<<13 | u>>(32-13) + u = x6 + x2 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x11 + x3 ^= u<<7 | u>>(32-7) + u = x3 + x15 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x3 + x11 ^= u<<13 | u>>(32-13) + u = x11 + x7 + x15 ^= u<<18 | u>>(32-18) + + u = x0 + x3 + x1 ^= u<<7 | u>>(32-7) + u = x1 + x0 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x1 + x3 ^= u<<13 | u>>(32-13) + u = x3 + x2 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x4 + x6 ^= u<<7 | u>>(32-7) + u = x6 + x5 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x6 + x4 ^= u<<13 | u>>(32-13) + u = x4 + x7 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x9 + x11 ^= u<<7 | u>>(32-7) + u = x11 + x10 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x11 + x9 ^= u<<13 | u>>(32-13) + u = x9 + x8 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x14 + x12 ^= u<<7 | u>>(32-7) + u = x12 + x15 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x12 + x14 ^= u<<13 | u>>(32-13) + u = x14 + x13 + x15 ^= u<<18 | u>>(32-18) + } + x0 += w0 + x1 += w1 + x2 += w2 + x3 += w3 + x4 += w4 + x5 += w5 + x6 += w6 + x7 += w7 + x8 += w8 + x9 += w9 + x10 += w10 + x11 += w11 + x12 += w12 + x13 += w13 + x14 += w14 + x15 += w15 + + out[0], tmp[0] = x0, x0 + out[1], tmp[1] = x1, x1 + out[2], tmp[2] = x2, x2 + out[3], tmp[3] = x3, x3 + out[4], tmp[4] = x4, x4 + out[5], tmp[5] = x5, x5 + out[6], tmp[6] = x6, x6 + out[7], tmp[7] = x7, x7 + out[8], tmp[8] = x8, x8 + out[9], tmp[9] = x9, x9 + out[10], tmp[10] = x10, x10 + out[11], tmp[11] = x11, x11 + out[12], tmp[12] = x12, x12 + out[13], tmp[13] = x13, x13 + out[14], tmp[14] = x14, x14 + out[15], tmp[15] = x15, x15 +} + +func blockMix(tmp *[16]uint32, in, out []uint32, r int) { + blockCopy(tmp[:], in[(2*r-1)*16:], 16) + for i := 0; i < 2*r; i += 2 { + salsaXOR(tmp, in[i*16:], out[i*8:]) + salsaXOR(tmp, in[i*16+16:], out[i*8+r*16:]) + } +} + +func integer(b []uint32, r int) uint64 { + j := (2*r - 1) * 16 + return uint64(b[j]) | uint64(b[j+1])<<32 +} + +func smix(b []byte, r, N int, v, xy []uint32) { + var tmp [16]uint32 + x := xy + y := xy[32*r:] + + j := 0 + for i := 0; i < 32*r; i++ { + x[i] = uint32(b[j]) | uint32(b[j+1])<<8 | uint32(b[j+2])<<16 | uint32(b[j+3])<<24 + j += 4 + } + for i := 0; i < N; i += 2 { + blockCopy(v[i*(32*r):], x, 32*r) + blockMix(&tmp, x, y, r) + + blockCopy(v[(i+1)*(32*r):], y, 32*r) + blockMix(&tmp, y, x, r) + } + for i := 0; i < N; i += 2 { + j := int(integer(x, r) & uint64(N-1)) + blockXOR(x, v[j*(32*r):], 32*r) + blockMix(&tmp, x, y, r) + + j = int(integer(y, r) & uint64(N-1)) + blockXOR(y, v[j*(32*r):], 32*r) + blockMix(&tmp, y, x, r) + } + j = 0 + for _, v := range x[:32*r] { + b[j+0] = byte(v >> 0) + b[j+1] = byte(v >> 8) + b[j+2] = byte(v >> 16) + b[j+3] = byte(v >> 24) + j += 4 + } +} + +// Key derives a key from the password, salt, and cost parameters, returning +// a byte slice of length keyLen that can be used as cryptographic key. +// +// N is a CPU/memory cost parameter, which must be a power of two greater than 1. +// r and p must satisfy r * p < 2³⁰. If the parameters do not satisfy the +// limits, the function returns a nil byte slice and an error. +// +// For example, you can get a derived key for e.g. AES-256 (which needs a +// 32-byte key) by doing: +// +// dk, err := scrypt.Key([]byte("some password"), salt, 16384, 8, 1, 32) +// +// The recommended parameters for interactive logins as of 2009 are N=16384, +// r=8, p=1. They should be increased as memory latency and CPU parallelism +// increases. Remember to get a good random salt. +func Key(password, salt []byte, N, r, p, keyLen int) ([]byte, error) { + if N <= 1 || N&(N-1) != 0 { + return nil, errors.New("scrypt: N must be > 1 and a power of 2") + } + if uint64(r)*uint64(p) >= 1<<30 || r > maxInt/128/p || r > maxInt/256 || N > maxInt/128/r { + return nil, errors.New("scrypt: parameters are too large") + } + + xy := make([]uint32, 64*r) + v := make([]uint32, 32*N*r) + b := pbkdf2.Key(password, salt, 1, p*128*r, sha256.New) + + for i := 0; i < p; i++ { + smix(b[i*128*r:], r, N, v, xy) + } + + return pbkdf2.Key(password, b, 1, keyLen, sha256.New), nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/README.md b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/README.md new file mode 100644 index 000000000..6bbf7f4f6 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/README.md @@ -0,0 +1,5 @@ +# secp256k1-go + +golang secp256k1 library + +Implements cryptographic operations for the secp256k1 ECDSA curve used by Bitcoin. diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256_rand.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256_rand.go new file mode 100644 index 000000000..3a785a9e2 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256_rand.go @@ -0,0 +1,151 @@ +package secp256k1 + +import ( + crand "crypto/rand" // secure, system random number generator + "crypto/sha256" + "hash" + "io" + "log" + "os" + "strconv" + "strings" + "sync" + "time" +) + +var ( + // Memory pool for SHA256 hashes + sha256HashPoolSize = 30 + sha256HashPool chan hash.Hash +) + +// SumSHA256 sum sha256 +func SumSHA256(b []byte) []byte { + sha256Hash := <-sha256HashPool + sha256Hash.Reset() + // sha256.Write never returns an error + sha256Hash.Write(b) //nolint:errcheck + sum := sha256Hash.Sum(nil) + sha256HashPool <- sha256Hash + return sum[:] +} + +/* +Entropy pool needs +- state (an array of bytes) +- a compression function (two 256 bit blocks to single block) +- a mixing function across the pool + +- Xor is safe, as it cannot make value less random +-- apply compression function, then xor with current value +-- + +*/ + +// EntropyPool entropy pool +type EntropyPool struct { + Ent [32]byte // 256 bit accumulator + lock sync.Mutex +} + +// Mix256 mixes in 256 bits, outputs 256 bits +func (ep *EntropyPool) Mix256(in []byte) (out []byte) { + // hash input + val1 := SumSHA256(in) + // return value + ep.lock.Lock() + val2 := SumSHA256(append(val1, ep.Ent[:]...)) + // next ent value + val3 := SumSHA256(append(val1, val2...)) + + for i := 0; i < 32; i++ { + ep.Ent[i] = val3[i] + val3[i] = 0x00 + } + ep.lock.Unlock() + + return val2 +} + +// Mix take in N bytes, salts, return N +func (ep *EntropyPool) Mix(in []byte) []byte { + length := len(in) - len(in)%32 + 32 + buff := make([]byte, length) + for i := 0; i < len(in); i++ { + buff[i] = in[i] + } + iterations := (len(in) / 32) + 1 + for i := 0; i < iterations; i++ { + tmp := ep.Mix256(buff[32*i : 32+32*i]) //32 byte slice + for j := 0; j < 32; j++ { + buff[i*32+j] = tmp[j] + } + } + return buff[:len(in)] +} + +/* +Note: + +- On windows cryto/rand uses CrytoGenRandom which uses RC4 which is insecure +- Android random number generator is known to be insecure. +- Linux uses /dev/urandom , which is thought to be secure and uses entropy pool + +Therefore the output is salted. +*/ + +/* +Note: + +Should allow pseudo-random mode for repeatability for certain types of tests +*/ + +var _ent EntropyPool + +// seed pseudo random number generator with +// - hash of system time in nano seconds +// - hash of system environmental variables +// - hash of process id +func init() { + // init the hash reuse pool + sha256HashPool = make(chan hash.Hash, sha256HashPoolSize) + for i := 0; i < sha256HashPoolSize; i++ { + sha256HashPool <- sha256.New() + } + + seed1 := []byte(strconv.FormatUint(uint64(time.Now().UnixNano()), 16)) + seed2 := []byte(strings.Join(os.Environ(), "")) + seed3 := []byte(strconv.FormatUint(uint64(os.Getpid()), 16)) + + seed4 := make([]byte, 256) + _, err := io.ReadFull(crand.Reader, seed4) // system secure random number generator + if err != nil { + log.Panic(err) + } + + // seed entropy pool + _ent.Mix256(seed1) + _ent.Mix256(seed2) + _ent.Mix256(seed3) + _ent.Mix256(seed4) +} + +// RandByte Secure Random number generator for forwards security +// On Unix-like systems, Reader reads from /dev/urandom. +// On Windows systems, Reader uses the CryptGenRandom API. +// Pseudo-random sequence, seeded from program start time, environmental variables, +// and process id is mixed in for forward security. Future version should use entropy pool +func RandByte(n int) []byte { + buff := make([]byte, n) + _, err := io.ReadFull(crand.Reader, buff) // system secure random number generator + if err != nil { + log.Panic(err) + } + + // XORing in sequence, cannot reduce security (even if sequence is bad/known/non-random) + buff2 := _ent.Mix(buff) + for i := 0; i < n; i++ { + buff[i] ^= buff2[i] + } + return buff +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/COPYING b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/COPYING new file mode 100644 index 000000000..a7fd60bbe --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/COPYING @@ -0,0 +1,4 @@ +This single package (secp256k1) is distributed with the same license as +the original C implementation by sipa: + + * https://github.com/bitcoin/secp256k1/blob/master/COPYING diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/README.md b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/README.md new file mode 100644 index 000000000..f0466f40f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/README.md @@ -0,0 +1,5 @@ +Implementation of this package has been based on source code created by Pieter Wuille. + + * https://github.com/bitcoin/secp256k1 + +Modified by HaltingState \ No newline at end of file diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/ec.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/ec.go new file mode 100644 index 000000000..0ade1604b --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/ec.go @@ -0,0 +1,202 @@ +package secp256k1go + +import ( + "bytes" + "log" +) + +// DecompressPoint decompresses point +func DecompressPoint(X []byte, off bool, Y []byte) { + var rx, ry, c, x2, x3 Field + rx.SetB32(X) + rx.Sqr(&x2) + rx.Mul(&x3, &x2) + c.SetInt(7) + c.SetAdd(&x3) + c.Sqrt(&ry) + ry.Normalize() + if ry.IsOdd() != off { + ry.Negate(&ry, 1) + } + ry.Normalize() + ry.GetB32(Y) +} + +// RecoverPublicKey recovers a public key from a signature and the message it signed. +// Returns nil on error with an int error code. Returns 1 on success. +func RecoverPublicKey(sigBytes, msgBytes []byte, recid int) ([]byte, int) { + if len(sigBytes) != 64 { + log.Panic("must pass in 64 byte pubkey") + } + + var pubkey XY + var sig Signature + var msg Number + + sig.ParseBytes(sigBytes[0:64]) + + if sig.R.Sign() <= 0 || sig.R.Cmp(&TheCurve.Order.Int) >= 0 { + if sig.R.Sign() == 0 { + return nil, -1 + } + if sig.R.Sign() <= 0 { + return nil, -2 + } + if sig.R.Cmp(&TheCurve.Order.Int) >= 0 { + return nil, -3 + } + return nil, -4 + } + if sig.S.Sign() <= 0 || sig.S.Cmp(&TheCurve.Order.Int) >= 0 { + return nil, -5 + } + + msg.SetBytes(msgBytes) + if !sig.Recover(&pubkey, &msg, recid) { + return nil, -6 + } + + return pubkey.Bytes(), 1 +} + +// Multiply standard EC multiplication k(xy) +// xy is the compressed public key format (33 bytes long) +func Multiply(xy, k []byte) []byte { + var pk XY + var xyz XYZ + var na, nzero Number + if err := pk.ParsePubkey(xy); err != nil { + return nil + } + xyz.SetXY(&pk) + na.SetBytes(k) + xyz.ECmult(&xyz, &na, &nzero) + pk.SetXYZ(&xyz) + + if !pk.IsValid() { + log.Panic("Multiply pk is invalid") + } + return pk.Bytes() +} + +// pubkeyTest panics if assumptions about pubkey are violated +func pubkeyTest(pk XY) { + if !pk.IsValid() { + log.Panic("IMPOSSIBLE3: pubkey invalid") + } + var pk2 XY + if err := pk2.ParsePubkey(pk.Bytes()); err != nil { + log.Panicf("IMPOSSIBLE2: parse failed: %v", err) + } + if !pk2.IsValid() { + log.Panic("IMPOSSIBLE3: parse failed non valid key") + } + if PubkeyIsValid(pk2.Bytes()) != 1 { + log.Panic("IMPOSSIBLE4: pubkey failed") + } +} + +// BaseMultiply base multiply +func BaseMultiply(k []byte) []byte { + var n Number + var pk XY + n.SetBytes(k) + r := ECmultGen(n) + pk.SetXYZ(&r) + if !pk.IsValid() { + log.Panic("BaseMultiply pk is invalid") + } + + pubkeyTest(pk) + + return pk.Bytes() +} + +// BaseMultiplyAdd computes G*k + xy +// Returns 33 bytes out (compressed pubkey). +func BaseMultiplyAdd(xy, k []byte) []byte { + var n Number + var pk XY + if err := pk.ParsePubkey(xy); err != nil { + return nil + } + n.SetBytes(k) + r := ECmultGen(n) + r.AddXY(&r, &pk) + pk.SetXYZ(&r) + + pubkeyTest(pk) + return pk.Bytes() +} + +// GeneratePublicKey generates a public key from secret key bytes. +// The secret key must 32 bytes. +func GeneratePublicKey(k []byte) []byte { + if len(k) != 32 { + log.Panic("secret key length must be 32 bytes") + } + var n Number + var pk XY + + // must not be zero + // must not be negative + // must be less than order of curve + n.SetBytes(k) + if n.Sign() <= 0 || n.Cmp(&TheCurve.Order.Int) >= 0 { + log.Panic("only call for valid seckey, check that seckey is valid first") + return nil + } + r := ECmultGen(n) + pk.SetXYZ(&r) + if !pk.IsValid() { + log.Panic("public key derived from secret key is unexpectedly valid") + } + pubkeyTest(pk) + return pk.Bytes() +} + +// SeckeyIsValid 1 on success +// Must be 32 bytes +// Must not be zero +// Must not be negative +// Must be less than order of curve +// The probability of any 32 bytes being an invalid secret key is ~2^-128 +func SeckeyIsValid(seckey []byte) int { + if len(seckey) != 32 { + log.Panic("SeckeyIsValid seckey must be 32 bytes") + } + var n Number + n.SetBytes(seckey) + // must not be zero + // must not be negative + // must be less than order of curve + if n.Sign() <= 0 { + return -1 + } + if n.Cmp(&TheCurve.Order.Int) >= 0 { + return -2 + } + return 1 +} + +// PubkeyIsValid returns 1 on success +func PubkeyIsValid(pubkey []byte) int { + if len(pubkey) != 33 { + log.Panic("public key length must be 33 bytes") + return -2 + } + var pubkey1 XY + if err := pubkey1.ParsePubkey(pubkey); err != nil { + return -1 + } + + if !bytes.Equal(pubkey1.Bytes(), pubkey) { + log.Panic("pubkey parses but serialize/deserialize roundtrip fails") + } + + if !pubkey1.IsValid() { + return -3 // invalid, point is infinity or some other problem + } + + return 1 +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/field.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/field.go new file mode 100644 index 000000000..1be6c8170 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/field.go @@ -0,0 +1,738 @@ +package secp256k1go + +import ( + "encoding/hex" + "math/big" +) + +// Field represents the signature field +type Field struct { + n [10]uint32 +} + +// String returns the hex string of the field +func (fd *Field) String() string { + var tmp [32]byte + b := *fd + b.Normalize() + b.GetB32(tmp[:]) + return hex.EncodeToString(tmp[:]) +} + +// GetBig returns big int +func (fd *Field) GetBig() (r *big.Int) { + fd.Normalize() + r = new(big.Int) + var tmp [32]byte + fd.GetB32(tmp[:]) + r.SetBytes(tmp[:]) + return +} + +// SetB32 sets +func (fd *Field) SetB32(a []byte) { + fd.n[0] = 0 + fd.n[1] = 0 + fd.n[2] = 0 + fd.n[3] = 0 + fd.n[4] = 0 + fd.n[5] = 0 + fd.n[6] = 0 + fd.n[7] = 0 + fd.n[8] = 0 + fd.n[9] = 0 + var v uint32 + for i := uint(0); i < 32; i++ { + for j := uint(0); j < 4; j++ { + limb := (8*i + 2*j) / 26 + shift := (8*i + 2*j) % 26 + v = (uint32)((a[31-i]>>(2*j))&0x3) << shift + fd.n[limb] |= v + } + } +} + +// SetBytes sets bytes +func (fd *Field) SetBytes(a []byte) { + if len(a) > 32 { + panic("too many bytes to set") + } + if len(a) == 32 { + fd.SetB32(a) + } else { + var buf [32]byte + copy(buf[32-len(a):], a) + fd.SetB32(buf[:]) + } +} + +// SetHex sets field in hex string +func (fd *Field) SetHex(s string) { + d, err := hex.DecodeString(s) + if err != nil { + panic(err) + } + fd.SetBytes(d) +} + +// IsOdd check if odd +func (fd *Field) IsOdd() bool { + return (fd.n[0] & 1) != 0 +} + +// IsZero check if field is zero +func (fd *Field) IsZero() bool { + return (fd.n[0] == 0 && fd.n[1] == 0 && fd.n[2] == 0 && fd.n[3] == 0 && fd.n[4] == 0 && fd.n[5] == 0 && fd.n[6] == 0 && fd.n[7] == 0 && fd.n[8] == 0 && fd.n[9] == 0) +} + +// SetInt set fields with an int value +func (fd *Field) SetInt(a uint32) { + fd.n[0] = a + fd.n[1] = 0 + fd.n[2] = 0 + fd.n[3] = 0 + fd.n[4] = 0 + fd.n[5] = 0 + fd.n[6] = 0 + fd.n[7] = 0 + fd.n[8] = 0 + fd.n[9] = 0 +} + +// Normalize normalize the field +func (fd *Field) Normalize() { + c := fd.n[0] + t0 := c & 0x3FFFFFF + c = (c >> 26) + fd.n[1] + t1 := c & 0x3FFFFFF + c = (c >> 26) + fd.n[2] + t2 := c & 0x3FFFFFF + c = (c >> 26) + fd.n[3] + t3 := c & 0x3FFFFFF + c = (c >> 26) + fd.n[4] + t4 := c & 0x3FFFFFF + c = (c >> 26) + fd.n[5] + t5 := c & 0x3FFFFFF + c = (c >> 26) + fd.n[6] + t6 := c & 0x3FFFFFF + c = (c >> 26) + fd.n[7] + t7 := c & 0x3FFFFFF + c = (c >> 26) + fd.n[8] + t8 := c & 0x3FFFFFF + c = (c >> 26) + fd.n[9] + t9 := c & 0x03FFFFF + c >>= 22 + + // The following code will not modify the t's if c is initially 0. + d := c*0x3D1 + t0 + t0 = d & 0x3FFFFFF + d = (d >> 26) + t1 + c*0x40 + t1 = d & 0x3FFFFFF + d = (d >> 26) + t2 + t2 = d & 0x3FFFFFF + d = (d >> 26) + t3 + t3 = d & 0x3FFFFFF + d = (d >> 26) + t4 + t4 = d & 0x3FFFFFF + d = (d >> 26) + t5 + t5 = d & 0x3FFFFFF + d = (d >> 26) + t6 + t6 = d & 0x3FFFFFF + d = (d >> 26) + t7 + t7 = d & 0x3FFFFFF + d = (d >> 26) + t8 + t8 = d & 0x3FFFFFF + d = (d >> 26) + t9 + t9 = d & 0x03FFFFF + + // Subtract p if result >= p + low := (uint64(t1) << 26) | uint64(t0) + //mask := uint64(-(int64)((t9 < 0x03FFFFF) | (t8 < 0x3FFFFFF) | (t7 < 0x3FFFFFF) | (t6 < 0x3FFFFFF) | (t5 < 0x3FFFFFF) | (t4 < 0x3FFFFFF) | (t3 < 0x3FFFFFF) | (t2 < 0x3FFFFFF) | (low < 0xFFFFEFFFFFC2F))) + var mask uint64 + if (t9 < 0x03FFFFF) || + (t8 < 0x3FFFFFF) || + (t7 < 0x3FFFFFF) || + (t6 < 0x3FFFFFF) || + (t5 < 0x3FFFFFF) || + (t4 < 0x3FFFFFF) || + (t3 < 0x3FFFFFF) || + (t2 < 0x3FFFFFF) || + (low < 0xFFFFEFFFFFC2F) { + mask = 0xFFFFFFFFFFFFFFFF + } + t9 &= uint32(mask) + t8 &= uint32(mask) + t7 &= uint32(mask) + t6 &= uint32(mask) + t5 &= uint32(mask) + t4 &= uint32(mask) + t3 &= uint32(mask) + t2 &= uint32(mask) + low -= ((mask ^ 0xFFFFFFFFFFFFFFFF) & 0xFFFFEFFFFFC2F) + + // push internal variables back + fd.n[0] = uint32(low) & 0x3FFFFFF + fd.n[1] = uint32(low>>26) & 0x3FFFFFF + fd.n[2] = t2 + fd.n[3] = t3 + fd.n[4] = t4 + fd.n[5] = t5 + fd.n[6] = t6 + fd.n[7] = t7 + fd.n[8] = t8 + fd.n[9] = t9 +} + +// GetB32 get B32, TODO: need further explanation +func (fd *Field) GetB32(r []byte) { + var i, j, c, limb, shift uint32 + for i = 0; i < 32; i++ { + c = 0 + for j = 0; j < 4; j++ { + limb = (8*i + 2*j) / 26 + shift = (8*i + 2*j) % 26 + c |= ((fd.n[limb] >> shift) & 0x3) << (2 * j) + } + r[31-i] = byte(c) + } +} + +// Equals check if field is the same as the given one +func (fd *Field) Equals(b *Field) bool { + return (fd.n[0] == b.n[0] && fd.n[1] == b.n[1] && fd.n[2] == b.n[2] && fd.n[3] == b.n[3] && fd.n[4] == b.n[4] && + fd.n[5] == b.n[5] && fd.n[6] == b.n[6] && fd.n[7] == b.n[7] && fd.n[8] == b.n[8] && fd.n[9] == b.n[9]) +} + +// SetAdd adds value to corresponding fields +func (fd *Field) SetAdd(a *Field) { + fd.n[0] += a.n[0] + fd.n[1] += a.n[1] + fd.n[2] += a.n[2] + fd.n[3] += a.n[3] + fd.n[4] += a.n[4] + fd.n[5] += a.n[5] + fd.n[6] += a.n[6] + fd.n[7] += a.n[7] + fd.n[8] += a.n[8] + fd.n[9] += a.n[9] +} + +// MulInt multiples the fields +func (fd *Field) MulInt(a uint32) { + fd.n[0] *= a + fd.n[1] *= a + fd.n[2] *= a + fd.n[3] *= a + fd.n[4] *= a + fd.n[5] *= a + fd.n[6] *= a + fd.n[7] *= a + fd.n[8] *= a + fd.n[9] *= a +} + +// Negate caculate the negate +func (fd *Field) Negate(r *Field, m uint32) { + r.n[0] = 0x3FFFC2F*(m+1) - fd.n[0] + r.n[1] = 0x3FFFFBF*(m+1) - fd.n[1] + r.n[2] = 0x3FFFFFF*(m+1) - fd.n[2] + r.n[3] = 0x3FFFFFF*(m+1) - fd.n[3] + r.n[4] = 0x3FFFFFF*(m+1) - fd.n[4] + r.n[5] = 0x3FFFFFF*(m+1) - fd.n[5] + r.n[6] = 0x3FFFFFF*(m+1) - fd.n[6] + r.n[7] = 0x3FFFFFF*(m+1) - fd.n[7] + r.n[8] = 0x3FFFFFF*(m+1) - fd.n[8] + r.n[9] = 0x03FFFFF*(m+1) - fd.n[9] +} + +// Inv new algo by peterdettman - https://github.com/sipa/TheCurve/pull/19 +func (fd *Field) Inv(r *Field) { + var x2, x3, x6, x9, x11, x22, x44, x88, x176, x220, x223, t1 Field + var j int + + fd.Sqr(&x2) + x2.Mul(&x2, fd) + + x2.Sqr(&x3) + x3.Mul(&x3, fd) + + x3.Sqr(&x6) + x6.Sqr(&x6) + x6.Sqr(&x6) + x6.Mul(&x6, &x3) + + x6.Sqr(&x9) + x9.Sqr(&x9) + x9.Sqr(&x9) + x9.Mul(&x9, &x3) + + x9.Sqr(&x11) + x11.Sqr(&x11) + x11.Mul(&x11, &x2) + + x11.Sqr(&x22) + for j = 1; j < 11; j++ { + x22.Sqr(&x22) + } + x22.Mul(&x22, &x11) + + x22.Sqr(&x44) + for j = 1; j < 22; j++ { + x44.Sqr(&x44) + } + x44.Mul(&x44, &x22) + + x44.Sqr(&x88) + for j = 1; j < 44; j++ { + x88.Sqr(&x88) + } + x88.Mul(&x88, &x44) + + x88.Sqr(&x176) + for j = 1; j < 88; j++ { + x176.Sqr(&x176) + } + x176.Mul(&x176, &x88) + + x176.Sqr(&x220) + for j = 1; j < 44; j++ { + x220.Sqr(&x220) + } + x220.Mul(&x220, &x44) + + x220.Sqr(&x223) + x223.Sqr(&x223) + x223.Sqr(&x223) + x223.Mul(&x223, &x3) + + x223.Sqr(&t1) + for j = 1; j < 23; j++ { + t1.Sqr(&t1) + } + t1.Mul(&t1, &x22) + t1.Sqr(&t1) + t1.Sqr(&t1) + t1.Sqr(&t1) + t1.Sqr(&t1) + t1.Sqr(&t1) + t1.Mul(&t1, fd) + t1.Sqr(&t1) + t1.Sqr(&t1) + t1.Sqr(&t1) + t1.Mul(&t1, &x2) + t1.Sqr(&t1) + t1.Sqr(&t1) + t1.Mul(r, fd) +} + +// Sqrt new algo by peterdettman - https://github.com/sipa/TheCurve/pull/19 +func (fd *Field) Sqrt(r *Field) { + var x2, x3, x6, x9, x11, x22, x44, x88, x176, x220, x223, t1 Field + var j int + + fd.Sqr(&x2) + x2.Mul(&x2, fd) + + x2.Sqr(&x3) + x3.Mul(&x3, fd) + + x3.Sqr(&x6) + x6.Sqr(&x6) + x6.Sqr(&x6) + x6.Mul(&x6, &x3) + + x6.Sqr(&x9) + x9.Sqr(&x9) + x9.Sqr(&x9) + x9.Mul(&x9, &x3) + + x9.Sqr(&x11) + x11.Sqr(&x11) + x11.Mul(&x11, &x2) + + x11.Sqr(&x22) + for j = 1; j < 11; j++ { + x22.Sqr(&x22) + } + x22.Mul(&x22, &x11) + + x22.Sqr(&x44) + for j = 1; j < 22; j++ { + x44.Sqr(&x44) + } + x44.Mul(&x44, &x22) + + x44.Sqr(&x88) + for j = 1; j < 44; j++ { + x88.Sqr(&x88) + } + x88.Mul(&x88, &x44) + + x88.Sqr(&x176) + for j = 1; j < 88; j++ { + x176.Sqr(&x176) + } + x176.Mul(&x176, &x88) + + x176.Sqr(&x220) + for j = 1; j < 44; j++ { + x220.Sqr(&x220) + } + x220.Mul(&x220, &x44) + + x220.Sqr(&x223) + x223.Sqr(&x223) + x223.Sqr(&x223) + x223.Mul(&x223, &x3) + + x223.Sqr(&t1) + for j = 1; j < 23; j++ { + t1.Sqr(&t1) + } + t1.Mul(&t1, &x22) + for j = 0; j < 6; j++ { + t1.Sqr(&t1) + } + t1.Mul(&t1, &x2) + t1.Sqr(&t1) + t1.Sqr(r) +} + +// InvVar ... +func (fd *Field) InvVar(r *Field) { + var b [32]byte + c := *fd + c.Normalize() + c.GetB32(b[:]) + var n Number + n.SetBytes(b[:]) + n.modInv(&n, &TheCurve.p) + r.SetBytes(n.Bytes()) +} + +// Mul ... +func (fd *Field) Mul(r, b *Field) { + var c, d uint64 + var t0, t1, t2, t3, t4, t5, t6 uint64 + var t7, t8, t9, t10, t11, t12, t13 uint64 + var t14, t15, t16, t17, t18, t19 uint64 + + c = uint64(fd.n[0]) * uint64(b.n[0]) + t0 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[0])*uint64(b.n[1]) + + uint64(fd.n[1])*uint64(b.n[0]) + t1 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[0])*uint64(b.n[2]) + + uint64(fd.n[1])*uint64(b.n[1]) + + uint64(fd.n[2])*uint64(b.n[0]) + t2 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[0])*uint64(b.n[3]) + + uint64(fd.n[1])*uint64(b.n[2]) + + uint64(fd.n[2])*uint64(b.n[1]) + + uint64(fd.n[3])*uint64(b.n[0]) + t3 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[0])*uint64(b.n[4]) + + uint64(fd.n[1])*uint64(b.n[3]) + + uint64(fd.n[2])*uint64(b.n[2]) + + uint64(fd.n[3])*uint64(b.n[1]) + + uint64(fd.n[4])*uint64(b.n[0]) + t4 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[0])*uint64(b.n[5]) + + uint64(fd.n[1])*uint64(b.n[4]) + + uint64(fd.n[2])*uint64(b.n[3]) + + uint64(fd.n[3])*uint64(b.n[2]) + + uint64(fd.n[4])*uint64(b.n[1]) + + uint64(fd.n[5])*uint64(b.n[0]) + t5 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[0])*uint64(b.n[6]) + + uint64(fd.n[1])*uint64(b.n[5]) + + uint64(fd.n[2])*uint64(b.n[4]) + + uint64(fd.n[3])*uint64(b.n[3]) + + uint64(fd.n[4])*uint64(b.n[2]) + + uint64(fd.n[5])*uint64(b.n[1]) + + uint64(fd.n[6])*uint64(b.n[0]) + t6 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[0])*uint64(b.n[7]) + + uint64(fd.n[1])*uint64(b.n[6]) + + uint64(fd.n[2])*uint64(b.n[5]) + + uint64(fd.n[3])*uint64(b.n[4]) + + uint64(fd.n[4])*uint64(b.n[3]) + + uint64(fd.n[5])*uint64(b.n[2]) + + uint64(fd.n[6])*uint64(b.n[1]) + + uint64(fd.n[7])*uint64(b.n[0]) + t7 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[0])*uint64(b.n[8]) + + uint64(fd.n[1])*uint64(b.n[7]) + + uint64(fd.n[2])*uint64(b.n[6]) + + uint64(fd.n[3])*uint64(b.n[5]) + + uint64(fd.n[4])*uint64(b.n[4]) + + uint64(fd.n[5])*uint64(b.n[3]) + + uint64(fd.n[6])*uint64(b.n[2]) + + uint64(fd.n[7])*uint64(b.n[1]) + + uint64(fd.n[8])*uint64(b.n[0]) + t8 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[0])*uint64(b.n[9]) + + uint64(fd.n[1])*uint64(b.n[8]) + + uint64(fd.n[2])*uint64(b.n[7]) + + uint64(fd.n[3])*uint64(b.n[6]) + + uint64(fd.n[4])*uint64(b.n[5]) + + uint64(fd.n[5])*uint64(b.n[4]) + + uint64(fd.n[6])*uint64(b.n[3]) + + uint64(fd.n[7])*uint64(b.n[2]) + + uint64(fd.n[8])*uint64(b.n[1]) + + uint64(fd.n[9])*uint64(b.n[0]) + t9 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[1])*uint64(b.n[9]) + + uint64(fd.n[2])*uint64(b.n[8]) + + uint64(fd.n[3])*uint64(b.n[7]) + + uint64(fd.n[4])*uint64(b.n[6]) + + uint64(fd.n[5])*uint64(b.n[5]) + + uint64(fd.n[6])*uint64(b.n[4]) + + uint64(fd.n[7])*uint64(b.n[3]) + + uint64(fd.n[8])*uint64(b.n[2]) + + uint64(fd.n[9])*uint64(b.n[1]) + t10 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[2])*uint64(b.n[9]) + + uint64(fd.n[3])*uint64(b.n[8]) + + uint64(fd.n[4])*uint64(b.n[7]) + + uint64(fd.n[5])*uint64(b.n[6]) + + uint64(fd.n[6])*uint64(b.n[5]) + + uint64(fd.n[7])*uint64(b.n[4]) + + uint64(fd.n[8])*uint64(b.n[3]) + + uint64(fd.n[9])*uint64(b.n[2]) + t11 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[3])*uint64(b.n[9]) + + uint64(fd.n[4])*uint64(b.n[8]) + + uint64(fd.n[5])*uint64(b.n[7]) + + uint64(fd.n[6])*uint64(b.n[6]) + + uint64(fd.n[7])*uint64(b.n[5]) + + uint64(fd.n[8])*uint64(b.n[4]) + + uint64(fd.n[9])*uint64(b.n[3]) + t12 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[4])*uint64(b.n[9]) + + uint64(fd.n[5])*uint64(b.n[8]) + + uint64(fd.n[6])*uint64(b.n[7]) + + uint64(fd.n[7])*uint64(b.n[6]) + + uint64(fd.n[8])*uint64(b.n[5]) + + uint64(fd.n[9])*uint64(b.n[4]) + t13 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[5])*uint64(b.n[9]) + + uint64(fd.n[6])*uint64(b.n[8]) + + uint64(fd.n[7])*uint64(b.n[7]) + + uint64(fd.n[8])*uint64(b.n[6]) + + uint64(fd.n[9])*uint64(b.n[5]) + t14 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[6])*uint64(b.n[9]) + + uint64(fd.n[7])*uint64(b.n[8]) + + uint64(fd.n[8])*uint64(b.n[7]) + + uint64(fd.n[9])*uint64(b.n[6]) + t15 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[7])*uint64(b.n[9]) + + uint64(fd.n[8])*uint64(b.n[8]) + + uint64(fd.n[9])*uint64(b.n[7]) + t16 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[8])*uint64(b.n[9]) + + uint64(fd.n[9])*uint64(b.n[8]) + t17 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[9])*uint64(b.n[9]) + t18 = c & 0x3FFFFFF + c = c >> 26 + t19 = c + + c = t0 + t10*0x3D10 + t0 = c & 0x3FFFFFF + c = c >> 26 + c = c + t1 + t10*0x400 + t11*0x3D10 + t1 = c & 0x3FFFFFF + c = c >> 26 + c = c + t2 + t11*0x400 + t12*0x3D10 + t2 = c & 0x3FFFFFF + c = c >> 26 + c = c + t3 + t12*0x400 + t13*0x3D10 + r.n[3] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t4 + t13*0x400 + t14*0x3D10 + r.n[4] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t5 + t14*0x400 + t15*0x3D10 + r.n[5] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t6 + t15*0x400 + t16*0x3D10 + r.n[6] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t7 + t16*0x400 + t17*0x3D10 + r.n[7] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t8 + t17*0x400 + t18*0x3D10 + r.n[8] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t9 + t18*0x400 + t19*0x1000003D10 + r.n[9] = uint32(c) & 0x03FFFFF + c = c >> 22 + d = t0 + c*0x3D1 + r.n[0] = uint32(d) & 0x3FFFFFF + d = d >> 26 + d = d + t1 + c*0x40 + r.n[1] = uint32(d) & 0x3FFFFFF + d = d >> 26 + r.n[2] = uint32(t2 + d) +} + +// Sqr ... +func (fd *Field) Sqr(r *Field) { + var c, d uint64 + var t0, t1, t2, t3, t4, t5, t6 uint64 + var t7, t8, t9, t10, t11, t12, t13 uint64 + var t14, t15, t16, t17, t18, t19 uint64 + + c = uint64(fd.n[0]) * uint64(fd.n[0]) + t0 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[0])*2)*uint64(fd.n[1]) + t1 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[0])*2)*uint64(fd.n[2]) + + uint64(fd.n[1])*uint64(fd.n[1]) + t2 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[0])*2)*uint64(fd.n[3]) + + (uint64(fd.n[1])*2)*uint64(fd.n[2]) + t3 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[0])*2)*uint64(fd.n[4]) + + (uint64(fd.n[1])*2)*uint64(fd.n[3]) + + uint64(fd.n[2])*uint64(fd.n[2]) + t4 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[0])*2)*uint64(fd.n[5]) + + (uint64(fd.n[1])*2)*uint64(fd.n[4]) + + (uint64(fd.n[2])*2)*uint64(fd.n[3]) + t5 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[0])*2)*uint64(fd.n[6]) + + (uint64(fd.n[1])*2)*uint64(fd.n[5]) + + (uint64(fd.n[2])*2)*uint64(fd.n[4]) + + uint64(fd.n[3])*uint64(fd.n[3]) + t6 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[0])*2)*uint64(fd.n[7]) + + (uint64(fd.n[1])*2)*uint64(fd.n[6]) + + (uint64(fd.n[2])*2)*uint64(fd.n[5]) + + (uint64(fd.n[3])*2)*uint64(fd.n[4]) + t7 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[0])*2)*uint64(fd.n[8]) + + (uint64(fd.n[1])*2)*uint64(fd.n[7]) + + (uint64(fd.n[2])*2)*uint64(fd.n[6]) + + (uint64(fd.n[3])*2)*uint64(fd.n[5]) + + uint64(fd.n[4])*uint64(fd.n[4]) + t8 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[0])*2)*uint64(fd.n[9]) + + (uint64(fd.n[1])*2)*uint64(fd.n[8]) + + (uint64(fd.n[2])*2)*uint64(fd.n[7]) + + (uint64(fd.n[3])*2)*uint64(fd.n[6]) + + (uint64(fd.n[4])*2)*uint64(fd.n[5]) + t9 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[1])*2)*uint64(fd.n[9]) + + (uint64(fd.n[2])*2)*uint64(fd.n[8]) + + (uint64(fd.n[3])*2)*uint64(fd.n[7]) + + (uint64(fd.n[4])*2)*uint64(fd.n[6]) + + uint64(fd.n[5])*uint64(fd.n[5]) + t10 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[2])*2)*uint64(fd.n[9]) + + (uint64(fd.n[3])*2)*uint64(fd.n[8]) + + (uint64(fd.n[4])*2)*uint64(fd.n[7]) + + (uint64(fd.n[5])*2)*uint64(fd.n[6]) + t11 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[3])*2)*uint64(fd.n[9]) + + (uint64(fd.n[4])*2)*uint64(fd.n[8]) + + (uint64(fd.n[5])*2)*uint64(fd.n[7]) + + uint64(fd.n[6])*uint64(fd.n[6]) + t12 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[4])*2)*uint64(fd.n[9]) + + (uint64(fd.n[5])*2)*uint64(fd.n[8]) + + (uint64(fd.n[6])*2)*uint64(fd.n[7]) + t13 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[5])*2)*uint64(fd.n[9]) + + (uint64(fd.n[6])*2)*uint64(fd.n[8]) + + uint64(fd.n[7])*uint64(fd.n[7]) + t14 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[6])*2)*uint64(fd.n[9]) + + (uint64(fd.n[7])*2)*uint64(fd.n[8]) + t15 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[7])*2)*uint64(fd.n[9]) + + uint64(fd.n[8])*uint64(fd.n[8]) + t16 = c & 0x3FFFFFF + c = c >> 26 + c = c + (uint64(fd.n[8])*2)*uint64(fd.n[9]) + t17 = c & 0x3FFFFFF + c = c >> 26 + c = c + uint64(fd.n[9])*uint64(fd.n[9]) + t18 = c & 0x3FFFFFF + c = c >> 26 + t19 = c + + c = t0 + t10*0x3D10 + t0 = c & 0x3FFFFFF + c = c >> 26 + c = c + t1 + t10*0x400 + t11*0x3D10 + t1 = c & 0x3FFFFFF + c = c >> 26 + c = c + t2 + t11*0x400 + t12*0x3D10 + t2 = c & 0x3FFFFFF + c = c >> 26 + c = c + t3 + t12*0x400 + t13*0x3D10 + r.n[3] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t4 + t13*0x400 + t14*0x3D10 + r.n[4] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t5 + t14*0x400 + t15*0x3D10 + r.n[5] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t6 + t15*0x400 + t16*0x3D10 + r.n[6] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t7 + t16*0x400 + t17*0x3D10 + r.n[7] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t8 + t17*0x400 + t18*0x3D10 + r.n[8] = uint32(c) & 0x3FFFFFF + c = c >> 26 + c = c + t9 + t18*0x400 + t19*0x1000003D10 + r.n[9] = uint32(c) & 0x03FFFFF + c = c >> 22 + d = t0 + c*0x3D1 + r.n[0] = uint32(d) & 0x3FFFFFF + d = d >> 26 + d = d + t1 + c*0x40 + r.n[1] = uint32(d) & 0x3FFFFFF + d = d >> 26 + r.n[2] = uint32(t2 + d) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/num.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/num.go new file mode 100644 index 000000000..07527d85b --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/num.go @@ -0,0 +1,100 @@ +package secp256k1go + +import ( + "math/big" +) + +var ( + // BigInt1 represents big int with value 1 + BigInt1 = new(big.Int).SetInt64(1) +) + +// Number wraps the big.Int +type Number struct { + big.Int +} + +func (num *Number) modMul(a, b, m *Number) { + num.Mul(&a.Int, &b.Int) + num.Mod(&num.Int, &m.Int) +} + +func (num *Number) modInv(a, b *Number) { + num.ModInverse(&a.Int, &b.Int) +} + +func (num *Number) mod(a *Number) { + num.Mod(&num.Int, &a.Int) +} + +// SetHex sets number from string +func (num *Number) SetHex(s string) { + if _, ok := num.SetString(s, 16); !ok { + panic("Number.SetHex failed") + } +} + +func (num *Number) maskBits(bits uint) { + mask := new(big.Int).Lsh(BigInt1, bits) + mask.Sub(mask, BigInt1) + num.Int.And(&num.Int, mask) +} + +func (num *Number) splitExp(r1, r2 *Number) { + var bnc1, bnc2, bnn2, bnt1, bnt2 Number + + bnn2.Int.Rsh(&TheCurve.Order.Int, 1) + + bnc1.Mul(&num.Int, &TheCurve.a1b2.Int) + bnc1.Add(&bnc1.Int, &bnn2.Int) + bnc1.Div(&bnc1.Int, &TheCurve.Order.Int) + + bnc2.Mul(&num.Int, &TheCurve.b1.Int) + bnc2.Add(&bnc2.Int, &bnn2.Int) + bnc2.Div(&bnc2.Int, &TheCurve.Order.Int) + + bnt1.Mul(&bnc1.Int, &TheCurve.a1b2.Int) + bnt2.Mul(&bnc2.Int, &TheCurve.a2.Int) + bnt1.Add(&bnt1.Int, &bnt2.Int) + r1.Sub(&num.Int, &bnt1.Int) + + bnt1.Mul(&bnc1.Int, &TheCurve.b1.Int) + bnt2.Mul(&bnc2.Int, &TheCurve.a1b2.Int) + r2.Sub(&bnt1.Int, &bnt2.Int) +} + +func (num *Number) split(rl, rh *Number, bits uint) { //nolint:unparam + rl.Int.Set(&num.Int) + rh.Int.Rsh(&rl.Int, bits) + rl.maskBits(bits) +} + +func (num *Number) rsh(bits uint) { //nolint:unparam + num.Rsh(&num.Int, bits) +} + +func (num *Number) inc() { + num.Add(&num.Int, BigInt1) +} + +func (num *Number) rshX(bits uint) (res int) { + res = int(new(big.Int).And(&num.Int, new(big.Int).SetUint64((1< length { + panic("buffer too small") + } + if len(b) == length { + return b + } + return append(make([]byte, length-len(b)), b...) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/secp256k1.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/secp256k1.go new file mode 100644 index 000000000..1cbb4ae33 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/secp256k1.go @@ -0,0 +1,64 @@ +/* +Package secp256k1go implements the underlying secp256k1 primitives +*/ +package secp256k1go + +const winA = 5 +const winG = 14 + +// TheCurve is the secp256k1 curve +var TheCurve struct { + Order Number // the order of the base point (stdlib crypto/elliptic.CurveParams.N) + halfOrder Number // half of the Order value + G XY // (x, y) of the base point (stdlib crypto/elliptic.CurveParams.Gx, Gy) + beta Field // endomorphism optimization parameter (derived from Hal Finney's post https://bitcointalk.org/index.php?topic=3238.msg45565#msg45565) + lambda, a1b2, b1, a2 Number // endomorphism optimization parameters (derived from Hal Finney's post https://bitcointalk.org/index.php?topic=3238.msg45565#msg45565) + p Number // // the order of the underlying field (stdlib crypto/elliptic.CurveParams.P) +} + +func initConstants() { + TheCurve.Order.SetBytes([]byte{ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, + 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B, 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41}) + + TheCurve.halfOrder.SetBytes([]byte{ + 0X7F, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, + 0X5D, 0X57, 0X6E, 0X73, 0X57, 0XA4, 0X50, 0X1D, 0XDF, 0XE9, 0X2F, 0X46, 0X68, 0X1B, 0X20, 0XA0}) + + TheCurve.p.SetBytes([]byte{ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0x2F}) + + TheCurve.G.X.SetB32([]byte{ + 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95, 0xCE, 0x87, 0x0B, 0x07, + 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9, 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98}) + + TheCurve.G.Y.SetB32([]byte{ + 0x48, 0x3A, 0xDA, 0x77, 0x26, 0xA3, 0xC4, 0x65, 0x5D, 0xA4, 0xFB, 0xFC, 0x0E, 0x11, 0x08, 0xA8, + 0xFD, 0x17, 0xB4, 0x48, 0xA6, 0x85, 0x54, 0x19, 0x9C, 0x47, 0xD0, 0x8F, 0xFB, 0x10, 0xD4, 0xB8}) + + // See Hal Finney's post https://bitcointalk.org/index.php?topic=3238.msg45565#msg45565 + // Backup archive: https://gist.github.com/gz-c/bf70ce96b2488e5ccca65900086c75f5 + // for explanation of the following constants: + + TheCurve.lambda.SetBytes([]byte{ + 0x53, 0x63, 0xad, 0x4c, 0xc0, 0x5c, 0x30, 0xe0, 0xa5, 0x26, 0x1c, 0x02, 0x88, 0x12, 0x64, 0x5a, + 0x12, 0x2e, 0x22, 0xea, 0x20, 0x81, 0x66, 0x78, 0xdf, 0x02, 0x96, 0x7c, 0x1b, 0x23, 0xbd, 0x72}) + + TheCurve.beta.SetB32([]byte{ + 0x7a, 0xe9, 0x6a, 0x2b, 0x65, 0x7c, 0x07, 0x10, 0x6e, 0x64, 0x47, 0x9e, 0xac, 0x34, 0x34, 0xe9, + 0x9c, 0xf0, 0x49, 0x75, 0x12, 0xf5, 0x89, 0x95, 0xc1, 0x39, 0x6c, 0x28, 0x71, 0x95, 0x01, 0xee}) + + TheCurve.a1b2.SetBytes([]byte{ + 0x30, 0x86, 0xd2, 0x21, 0xa7, 0xd4, 0x6b, 0xcd, 0xe8, 0x6c, 0x90, 0xe4, 0x92, 0x84, 0xeb, 0x15}) + + TheCurve.b1.SetBytes([]byte{ + 0xe4, 0x43, 0x7e, 0xd6, 0x01, 0x0e, 0x88, 0x28, 0x6f, 0x54, 0x7f, 0xa9, 0x0a, 0xbf, 0xe4, 0xc3}) + + TheCurve.a2.SetBytes([]byte{ + 0x01, 0x14, 0xca, 0x50, 0xf7, 0xa8, 0xe2, 0xf3, 0xf6, 0x57, 0xc1, 0x10, 0x8d, 0x9d, 0x44, 0xcf, 0xd8}) +} + +func init() { + initConstants() +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/sig.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/sig.go new file mode 100644 index 000000000..2ea702c3a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/sig.go @@ -0,0 +1,280 @@ +package secp256k1go + +import ( + "bytes" + "log" +) + +// Signature represents the signature +type Signature struct { + R, S Number +} + +// Verify verify the signature +func (sig *Signature) Verify(pubkey *XY, message *Number) bool { + var r2 Number + return sig.recompute(&r2, pubkey, message) && sig.R.Cmp(&r2.Int) == 0 +} + +func (sig *Signature) recompute(r2 *Number, pubkey *XY, message *Number) bool { + var sn, u1, u2 Number + + sn.modInv(&sig.S, &TheCurve.Order) + u1.modMul(&sn, message, &TheCurve.Order) + u2.modMul(&sn, &sig.R, &TheCurve.Order) + + var pr, pubkeyj XYZ + pubkeyj.SetXY(pubkey) + + pubkeyj.ECmult(&pr, &u2, &u1) + if pr.IsInfinity() { + return false + } + + var xr Field + pr.getX(&xr) + xr.Normalize() + var xrb [32]byte + xr.GetB32(xrb[:]) + r2.SetBytes(xrb[:]) + r2.Mod(&r2.Int, &TheCurve.Order.Int) + + return true +} + +/* +Reference code for Signature.Recover + +https://github.com/bitcoin-core/secp256k1/blob/e541a90ef6461007d9c6a74b9f9a7fb8aa34aaa8/src/modules/recovery/main_impl.h + +static int secp256k1_ecdsa_sig_recover(const secp256k1_ecmult_context *ctx, const secp256k1_scalar *sigr, const secp256k1_scalar* sigs, secp256k1_ge *pubkey, const secp256k1_scalar *message, int recid) { + unsigned char brx[32]; + secp256k1_fe fx; + secp256k1_ge x; + secp256k1_gej xj; + secp256k1_scalar rn, u1, u2; + secp256k1_gej qj; + int r; + + if (secp256k1_scalar_is_zero(sigr) || secp256k1_scalar_is_zero(sigs)) { + return 0; + } + + secp256k1_scalar_get_b32(brx, sigr); + r = secp256k1_fe_set_b32(&fx, brx); + (void)r; + VERIFY_CHECK(r); // brx comes from a scalar, so is less than the order; certainly less than p + if (recid & 2) { + if (secp256k1_fe_cmp_var(&fx, &secp256k1_ecdsa_const_p_minus_order) >= 0) { + return 0; + } + secp256k1_fe_add(&fx, &secp256k1_ecdsa_const_order_as_fe); + } + if (!secp256k1_ge_set_xo_var(&x, &fx, recid & 1)) { + return 0; + } + secp256k1_gej_set_ge(&xj, &x); + secp256k1_scalar_inverse_var(&rn, sigr); + secp256k1_scalar_mul(&u1, &rn, message); + secp256k1_scalar_negate(&u1, &u1); + secp256k1_scalar_mul(&u2, &rn, sigs); + secp256k1_ecmult(ctx, &qj, &xj, &u2, &u1); + secp256k1_ge_set_gej_var(pubkey, &qj); + return !secp256k1_gej_is_infinity(&qj); +} +*/ + +// Recover recovers a pubkey XY point given the message that was signed to create +// this signature. +func (sig *Signature) Recover(pubkey *XY, msg *Number, recid int) bool { + var rx, rn, u1, u2 Number + var fx Field + var x XY + var xj, qj XYZ + + if sig.R.Sign() == 0 || sig.S.Sign() == 0 { + return false + } + + rx.Set(&sig.R.Int) + if (recid & 2) != 0 { + rx.Add(&rx.Int, &TheCurve.Order.Int) + if rx.Cmp(&TheCurve.p.Int) >= 0 { + return false + } + } + + fx.SetB32(LeftPadBytes(rx.Bytes(), 32)) + + x.SetXO(&fx, (recid&1) != 0) + if !x.IsValid() { + return false + } + + xj.SetXY(&x) + rn.modInv(&sig.R, &TheCurve.Order) + u1.modMul(&rn, msg, &TheCurve.Order) + u1.Sub(&TheCurve.Order.Int, &u1.Int) + u2.modMul(&rn, &sig.S, &TheCurve.Order) + xj.ECmult(&qj, &u2, &u1) + pubkey.SetXYZ(&qj) + return !qj.IsInfinity() +} + +/* +Reference code for Signature.Sign + +https://github.com/bitcoin-core/secp256k1/blob/master/src/ecdsa_impl.h + +static int secp256k1_ecdsa_sig_sign(const secp256k1_ecmult_gen_context *ctx, secp256k1_scalar *sigr, secp256k1_scalar *sigs, const secp256k1_scalar *seckey, const secp256k1_scalar *message, const secp256k1_scalar *nonce, int *recid) { + unsigned char b[32]; + secp256k1_gej rp; + secp256k1_ge r; + secp256k1_scalar n; + int overflow = 0; + + secp256k1_ecmult_gen(ctx, &rp, nonce); + secp256k1_ge_set_gej(&r, &rp); + secp256k1_fe_normalize(&r.x); + secp256k1_fe_normalize(&r.y); + secp256k1_fe_get_b32(b, &r.x); + secp256k1_scalar_set_b32(sigr, b, &overflow); + // These two conditions should be checked before calling + VERIFY_CHECK(!secp256k1_scalar_is_zero(sigr)); + VERIFY_CHECK(overflow == 0); + + if (recid) { + // The overflow condition is cryptographically unreachable as hitting it requires finding the discrete log + // of some P where P.x >= order, and only 1 in about 2^127 points meet this criteria. + *recid = (overflow ? 2 : 0) | (secp256k1_fe_is_odd(&r.y) ? 1 : 0); + } + secp256k1_scalar_mul(&n, sigr, seckey); + secp256k1_scalar_add(&n, &n, message); + secp256k1_scalar_inverse(sigs, nonce); + secp256k1_scalar_mul(sigs, sigs, &n); + secp256k1_scalar_clear(&n); + secp256k1_gej_clear(&rp); + secp256k1_ge_clear(&r); + if (secp256k1_scalar_is_zero(sigs)) { + return 0; + } + if (secp256k1_scalar_is_high(sigs)) { + secp256k1_scalar_negate(sigs, sigs); + if (recid) { + *recid ^= 1; + } + } + return 1; +} +*/ + +// Sign signs the signature. Returns 1 on success, 0 on failure +func (sig *Signature) Sign(seckey, message, nonce *Number, recid *int) int { + var r XY + var n Number + var b [32]byte + + // r = nonce*G + rp := ECmultGen(*nonce) + r.SetXYZ(&rp) + r.X.Normalize() + r.Y.Normalize() + r.X.GetB32(b[:]) + sig.R.SetBytes(b[:]) + + if sig.R.Sign() == 0 { + log.Panic("sig R value should not be 0") + } + + if recid != nil { + *recid = 0 + // The overflow condition is cryptographically unreachable as hitting + // it requires finding the discrete log of some P where P.x >= order, + // and only 1 in about 2^127 points meet this criteria. + if sig.R.Cmp(&TheCurve.Order.Int) >= 0 { + *recid |= 2 + } + if r.Y.IsOdd() { + *recid |= 1 + } + } + + sig.R.mod(&TheCurve.Order) + n.modMul(&sig.R, seckey, &TheCurve.Order) + n.Add(&n.Int, &message.Int) + n.mod(&TheCurve.Order) + sig.S.modInv(nonce, &TheCurve.Order) + sig.S.modMul(&sig.S, &n, &TheCurve.Order) + + if sig.S.Sign() == 0 { + return 0 + } + + // Break signature malleability + if sig.S.Cmp(&TheCurve.halfOrder.Int) == 1 { + sig.S.Sub(&TheCurve.Order.Int, &sig.S.Int) + if recid != nil { + *recid ^= 1 + } + } + + return 1 +} + +// ParseBytes parses a serialized R||S pair to Signature. +// R and S should be in big-endian encoding. +func (sig *Signature) ParseBytes(v []byte) { + if len(v) != 64 { + log.Panic("Signature.ParseBytes requires 64 bytes") + } + sig.R.SetBytes(v[0:32]) + sig.S.SetBytes(v[32:64]) +} + +//secp256k1_num_get_bin(sig64, 32, &sig.r); +//secp256k1_num_get_bin(sig64 + 32, 32, &sig.s); + +// Bytes serializes compressed signatures as bytes. +// The serialization format is R||S. R and S bytes are big-endian. +// R and S are left-padded with the NUL byte to ensure their length is 32 bytes. +func (sig *Signature) Bytes() []byte { + r := sig.R.Bytes() // big-endian + s := sig.S.Bytes() // big-endian + + for len(r) < 32 { + r = append([]byte{0}, r...) + } + for len(s) < 32 { + s = append([]byte{0}, s...) + } + + if len(r) != 32 || len(s) != 32 { + log.Panicf("signature size invalid: %d, %d", len(r), len(s)) + } + + res := new(bytes.Buffer) + if _, err := res.Write(r); err != nil { + log.Panic(err) + } + if _, err := res.Write(s); err != nil { + log.Panic(err) + } + + //test + if true { + ret := res.Bytes() + var sig2 Signature + sig2.ParseBytes(ret) + if !bytes.Equal(sig.R.Bytes(), sig2.R.Bytes()) { + log.Panic("serialization failed 1") + } + if !bytes.Equal(sig.S.Bytes(), sig2.S.Bytes()) { + log.Panic("serialization failed 2") + } + } + + if len(res.Bytes()) != 64 { + log.Panic("Signature.Bytes result bytes must be 64 bytes long") + } + return res.Bytes() +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xy.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xy.go new file mode 100644 index 000000000..a6f9d6c89 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xy.go @@ -0,0 +1,244 @@ +package secp256k1go + +import ( + "errors" + "log" +) + +// XY is a point on the secp256k1 curve +type XY struct { + X, Y Field + Infinity bool +} + +func (xy *XY) String() string { + if xy.Infinity { + return "Infinity" + } + return xy.X.String() + "," + xy.Y.String() +} + +//edited + +/* + if (size == 33 && (pub[0] == 0x02 || pub[0] == 0x03)) { + secp256k1_fe_t x; + secp256k1_fe_set_b32(&x, pub+1); + return secp256k1_ge_set_xo(elem, &x, pub[0] == 0x03); + } else if (size == 65 && (pub[0] == 0x04 || pub[0] == 0x06 || pub[0] == 0x07)) { + secp256k1_fe_t x, y; + secp256k1_fe_set_b32(&x, pub+1); + secp256k1_fe_set_b32(&y, pub+33); + secp256k1_ge_set_xy(elem, &x, &y); + if ((pub[0] == 0x06 || pub[0] == 0x07) && secp256k1_fe_is_odd(&y) != (pub[0] == 0x07)) + return 0; + return secp256k1_ge_is_valid(elem); + } +*/ +//All compact keys appear to be valid by construction, but may fail +//is valid check + +// ParsePubkey parses a compressed pubkey to a point on the curve +func (xy *XY) ParsePubkey(pub []byte) error { + // ParsePubkey WARNING: for compact signatures, will succeed unconditionally + //however, elem.IsValid will fail + if len(pub) != 33 { + log.Panic("pubkey len must be 33 bytes") // do not permit invalid length inputs + return errors.New("pubkey len must be 33 bytes") + } + if len(pub) == 33 && (pub[0] == 0x02 || pub[0] == 0x03) { + xy.X.SetB32(pub[1:33]) + xy.SetXO(&xy.X, pub[0] == 0x03) + } else { + return errors.New("pubkey y-coordinate parity byte is invalid") // the leading bytes indicates if Y is odd or not + } + //THIS FAILS + //reenable later + //if !elem.IsValid() { + // return false + //} + + /* + else if len(pub) == 65 && (pub[0] == 0x04 || pub[0] == 0x06 || pub[0] == 0x07) { + elem.X.SetB32(pub[1:33]) + elem.Y.SetB32(pub[33:65]) + if (pub[0] == 0x06 || pub[0] == 0x07) && elem.Y.IsOdd() != (pub[0] == 0x07) { + return false + } + } + */ + return nil +} + +// Bytes returns the compressed public key (33 bytes) in the format +// "<0x03> " or <0x02> ". The leading byte is 0x03 if the Y point is odd. +func (xy XY) Bytes() []byte { + xy.X.Normalize() // See https://github.com/piotrnar/gocoin/issues/15 + + raw := make([]byte, 33) + if xy.Y.IsOdd() { + raw[0] = 0x03 + } else { + raw[0] = 0x02 + } + xy.X.GetB32(raw[1:]) + return raw +} + +// BytesUncompressed returns serialized key in uncompressed format "<04> " +//65 bytes +func (xy *XY) BytesUncompressed() (raw []byte) { + xy.X.Normalize() // See https://github.com/piotrnar/gocoin/issues/15 + xy.Y.Normalize() // See https://github.com/piotrnar/gocoin/issues/15 + + raw = make([]byte, 65) + raw[0] = 0x04 + xy.X.GetB32(raw[1:33]) + xy.Y.GetB32(raw[33:65]) + return +} + +// SetXY sets x y fields +func (xy *XY) SetXY(X, Y *Field) { + xy.Infinity = false + xy.X = *X + xy.Y = *Y +} + +/* +int static secp256k1_ecdsa_pubkey_parse(secp256k1_ge_t *elem, const unsigned char *pub, int size) { + if (size == 33 && (pub[0] == 0x02 || pub[0] == 0x03)) { + secp256k1_fe_t x; + secp256k1_fe_set_b32(&x, pub+1); + return secp256k1_ge_set_xo(elem, &x, pub[0] == 0x03); + } else if (size == 65 && (pub[0] == 0x04 || pub[0] == 0x06 || pub[0] == 0x07)) { + secp256k1_fe_t x, y; + secp256k1_fe_set_b32(&x, pub+1); + secp256k1_fe_set_b32(&y, pub+33); + secp256k1_ge_set_xy(elem, &x, &y); + if ((pub[0] == 0x06 || pub[0] == 0x07) && secp256k1_fe_is_odd(&y) != (pub[0] == 0x07)) + return 0; + return secp256k1_ge_is_valid(elem); + } else { + return 0; + } +} +*/ + +// if (size == 33 && (pub[0] == 0x02 || pub[0] == 0x03)) { +// secp256k1_fe_t x; +// secp256k1_fe_set_b32(&x, pub+1); +// return secp256k1_ge_set_xo(elem, &x, pub[0] == 0x03); + +// IsValid checks that the point is not infinity and is on the secp256k1 curve +func (xy *XY) IsValid() bool { + // Adopted from libsecp256k1: + // https://github.com/bitcoin-core/secp256k1/blob/2ebdad772af770b4587af0856de27c63de1b03be/src/group_impl.h#L292-L304 + /* + static int secp256k1_ge_is_valid_var(const secp256k1_ge *a) { + secp256k1_fe y2, x3, c; + if (a->infinity) { + return 0; + } + // y^2 = x^3 + 7 // + secp256k1_fe_sqr(&y2, &a->y); + secp256k1_fe_sqr(&x3, &a->x); secp256k1_fe_mul(&x3, &x3, &a->x); + secp256k1_fe_set_int(&c, CURVE_B); + secp256k1_fe_add(&x3, &c); + secp256k1_fe_normalize_weak(&x3); + return secp256k1_fe_equal_var(&y2, &x3); + } + */ + if xy.Infinity { + return false + } + var y2, x3, c Field + xy.Y.Sqr(&y2) + xy.X.Sqr(&x3) + x3.Mul(&x3, &xy.X) + c.SetInt(7) + x3.SetAdd(&c) + y2.Normalize() + x3.Normalize() + return y2.Equals(&x3) +} + +// SetXYZ sets X Y Z fields +func (xy *XY) SetXYZ(a *XYZ) { + var z2, z3 Field + a.Z.InvVar(&a.Z) + a.Z.Sqr(&z2) + a.Z.Mul(&z3, &z2) + a.X.Mul(&a.X, &z2) + a.Y.Mul(&a.Y, &z3) + a.Z.SetInt(1) + xy.Infinity = a.Infinity + xy.X = a.X + xy.Y = a.Y +} + +func (xy *XY) precomp(w int) []XY { //nolint:unused,megacheck + pre := make([]XY, (1 << (uint(w) - 2))) + pre[0] = *xy + var X, d, tmp XYZ + X.SetXY(xy) + X.Double(&d) + for i := 1; i < len(pre); i++ { + d.AddXY(&tmp, &pre[i-1]) + pre[i].SetXYZ(&tmp) + } + return pre +} + +// Neg caculates negate +func (xy *XY) Neg(r *XY) { + r.Infinity = xy.Infinity + r.X = xy.X + r.Y = xy.Y + r.Y.Normalize() + r.Y.Negate(&r.Y, 1) +} + +/* +int static secp256k1_ge_set_xo(secp256k1_ge_t *r, const secp256k1_fe_t *x, int odd) { + r->x = *x; + secp256k1_fe_t x2; secp256k1_fe_sqr(&x2, x); + secp256k1_fe_t x3; secp256k1_fe_mul(&x3, x, &x2); + r->infinity = 0; + secp256k1_fe_t c; secp256k1_fe_set_int(&c, 7); + secp256k1_fe_add(&c, &x3); + if (!secp256k1_fe_sqrt(&r->y, &c)) + return 0; + secp256k1_fe_normalize(&r->y); + if (secp256k1_fe_is_odd(&r->y) != odd) + secp256k1_fe_negate(&r->y, &r->y, 1); + return 1; +} +*/ + +// SetXO sets the X and Y field from an X value and flag indicating whether or +// not Y is odd. +func (xy *XY) SetXO(X *Field, odd bool) { + var c, x2, x3 Field + xy.X = *X + X.Sqr(&x2) + X.Mul(&x3, &x2) + xy.Infinity = false + c.SetInt(7) + c.SetAdd(&x3) + c.Sqrt(&xy.Y) //does not return, can fail + if xy.Y.IsOdd() != odd { + xy.Y.Negate(&xy.Y, 1) + } + + //r.X.Normalize() // See https://github.com/piotrnar/gocoin/issues/15 + xy.Y.Normalize() +} + +// AddXY adds xy +func (xy *XY) AddXY(a *XY) { + var xyz XYZ + xyz.SetXY(xy) + xyz.AddXY(&xyz, a) + xy.SetXYZ(&xyz) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xyz.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xyz.go new file mode 100644 index 000000000..88a0a1ce0 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xyz.go @@ -0,0 +1,378 @@ +package secp256k1go + +// XYZ contains xyz fields +type XYZ struct { + X, Y, Z Field + Infinity bool +} + +func (xyz XYZ) String() string { + if xyz.Infinity { + return "INFINITY" + } + return xyz.X.String() + "," + xyz.Y.String() + "," + xyz.Z.String() +} + +// SetXY sets xy +func (xyz *XYZ) SetXY(a *XY) { + xyz.Infinity = a.Infinity + xyz.X = a.X + xyz.Y = a.Y + xyz.Z.SetInt(1) +} + +// IsInfinity check if xyz is infinity +func (xyz *XYZ) IsInfinity() bool { + return xyz.Infinity +} + +// IsValid check if xyz is valid +func (xyz *XYZ) IsValid() bool { + if xyz.Infinity { + return false + } + var y2, x3, z2, z6 Field + xyz.Y.Sqr(&y2) + xyz.X.Sqr(&x3) + x3.Mul(&x3, &xyz.X) + xyz.Z.Sqr(&z2) + z2.Sqr(&z6) + z6.Mul(&z6, &z2) + z6.MulInt(7) + x3.SetAdd(&z6) + y2.Normalize() + x3.Normalize() + return y2.Equals(&x3) +} + +func (xyz *XYZ) getX(r *Field) { + var zi2 Field + xyz.Z.InvVar(&zi2) + zi2.Sqr(&zi2) + xyz.X.Mul(r, &zi2) +} + +// Normalize normalize all fields +func (xyz *XYZ) Normalize() { + xyz.X.Normalize() + xyz.Y.Normalize() + xyz.Z.Normalize() +} + +// Equals checks if equal +func (xyz *XYZ) Equals(b *XYZ) bool { + if xyz.Infinity != b.Infinity { + return false + } + // TODO: is the normalize really needed here? + xyz.Normalize() + b.Normalize() + return xyz.X.Equals(&b.X) && xyz.Y.Equals(&b.Y) && xyz.Z.Equals(&b.Z) +} + +func (xyz *XYZ) precomp(w int) (pre []XYZ) { //nolint:unparam + var d XYZ + pre = make([]XYZ, (1 << (uint(w) - 2))) + pre[0] = *xyz + pre[0].Double(&d) + for i := 1; i < len(pre); i++ { + d.Add(&pre[i], &pre[i-1]) + } + return +} + +func ecmultWnaf(wnaf []int, a *Number, w uint) (ret int) { + var zeroes uint + var X Number + X.Set(&a.Int) + + for X.Sign() != 0 { + for X.Bit(0) == 0 { + zeroes++ + X.rsh(1) + } + word := X.rshX(w) + for zeroes > 0 { + wnaf[ret] = 0 + ret++ + zeroes-- + } + if (word & (1 << (w - 1))) != 0 { + X.inc() + wnaf[ret] = (word - (1 << w)) + } else { + wnaf[ret] = word + } + zeroes = w - 1 + ret++ + } + return +} + +// ECmult r = na*a + ng*G +func (xyz *XYZ) ECmult(r *XYZ, na, ng *Number) { + var na1, naLam, ng1, ng128 Number + + // split na into na_1 and na_lam (where na = na_1 + na_lam*lambda, and na_1 and na_lam are ~128 bit) + na.splitExp(&na1, &naLam) + + // split ng into ng_1 and ng_128 (where gn = gn_1 + gn_128*2^128, and gn_1 and gn_128 are ~128 bit) + ng.split(&ng1, &ng128, 128) + + // build wnaf representation for na_1, na_lam, ng_1, ng_128 + var wnafNa1, wnafNaLam, wnafNg1, wnafNg128 [129]int + bitsNa1 := ecmultWnaf(wnafNa1[:], &na1, winA) + bitsNaLam := ecmultWnaf(wnafNaLam[:], &naLam, winA) + bitsNg1 := ecmultWnaf(wnafNg1[:], &ng1, winG) + bitsNg128 := ecmultWnaf(wnafNg128[:], &ng128, winG) + + // calculate a_lam = a*lambda + var aLam XYZ + xyz.mulLambda(&aLam) + + // calculate odd multiples of a and a_lam + preA1 := xyz.precomp(winA) + preALam := aLam.precomp(winA) + + bits := bitsNa1 + if bitsNaLam > bits { + bits = bitsNaLam + } + if bitsNg1 > bits { + bits = bitsNg1 + } + if bitsNg128 > bits { + bits = bitsNg128 + } + + r.Infinity = true + + var tmpj XYZ + var tmpa XY + var n int + + for i := bits - 1; i >= 0; i-- { + r.Double(r) + + if i < bitsNa1 { + n = wnafNa1[i] + if n > 0 { + r.Add(r, &preA1[((n)-1)/2]) + } else if n != 0 { + preA1[(-(n)-1)/2].Neg(&tmpj) + r.Add(r, &tmpj) + } + } + + if i < bitsNaLam { + n = wnafNaLam[i] + if n > 0 { + r.Add(r, &preALam[((n)-1)/2]) + } else if n != 0 { + preALam[(-(n)-1)/2].Neg(&tmpj) + r.Add(r, &tmpj) + } + } + + if i < bitsNg1 { + n = wnafNg1[i] + if n > 0 { + r.AddXY(r, &preG[((n)-1)/2]) + } else if n != 0 { + preG[(-(n)-1)/2].Neg(&tmpa) + r.AddXY(r, &tmpa) + } + } + + if i < bitsNg128 { + n = wnafNg128[i] + if n > 0 { + r.AddXY(r, &preG128[((n)-1)/2]) + } else if n != 0 { + preG128[(-(n)-1)/2].Neg(&tmpa) + r.AddXY(r, &tmpa) + } + } + } +} + +// Neg caculate neg +func (xyz *XYZ) Neg(r *XYZ) { + r.Infinity = xyz.Infinity + r.X = xyz.X + r.Y = xyz.Y + r.Z = xyz.Z + r.Y.Normalize() + r.Y.Negate(&r.Y, 1) +} + +func (xyz *XYZ) mulLambda(r *XYZ) { + *r = *xyz + r.X.Mul(&r.X, &TheCurve.beta) +} + +// Double cacule double +func (xyz *XYZ) Double(r *XYZ) { + var t1, t2, t3, t4, t5 Field + + t5 = xyz.Y + t5.Normalize() + if xyz.Infinity || t5.IsZero() { + r.Infinity = true + return + } + + t5.Mul(&r.Z, &xyz.Z) + r.Z.MulInt(2) + xyz.X.Sqr(&t1) + t1.MulInt(3) + t1.Sqr(&t2) + t5.Sqr(&t3) + t3.MulInt(2) + t3.Sqr(&t4) + t4.MulInt(2) + xyz.X.Mul(&t3, &t3) + r.X = t3 + r.X.MulInt(4) + r.X.Negate(&r.X, 4) + r.X.SetAdd(&t2) + t2.Negate(&t2, 1) + t3.MulInt(6) + t3.SetAdd(&t2) + t1.Mul(&r.Y, &t3) + t4.Negate(&t2, 2) + r.Y.SetAdd(&t2) + r.Infinity = false +} + +// AddXY adds XY +func (xyz *XYZ) AddXY(r *XYZ, b *XY) { + if xyz.Infinity { + r.Infinity = b.Infinity + r.X = b.X + r.Y = b.Y + r.Z.SetInt(1) + return + } + if b.Infinity { + *r = *xyz + return + } + r.Infinity = false + var z12, u1, u2, s1, s2 Field + xyz.Z.Sqr(&z12) + u1 = xyz.X + u1.Normalize() + b.X.Mul(&u2, &z12) + s1 = xyz.Y + s1.Normalize() + b.Y.Mul(&s2, &z12) + s2.Mul(&s2, &xyz.Z) + u1.Normalize() + u2.Normalize() + + if u1.Equals(&u2) { + s1.Normalize() + s2.Normalize() + if s1.Equals(&s2) { + xyz.Double(r) + } else { + r.Infinity = true + } + return + } + + var h, i, i2, h2, h3, t Field + u1.Negate(&h, 1) + h.SetAdd(&u2) + s1.Negate(&i, 1) + i.SetAdd(&s2) + i.Sqr(&i2) + h.Sqr(&h2) + h.Mul(&h3, &h2) + r.Z = xyz.Z + r.Z.Mul(&r.Z, &h) + u1.Mul(&t, &h2) + r.X = t + r.X.MulInt(2) + r.X.SetAdd(&h3) + r.X.Negate(&r.X, 3) + r.X.SetAdd(&i2) + r.X.Negate(&r.Y, 5) + r.Y.SetAdd(&t) + r.Y.Mul(&r.Y, &i) + h3.Mul(&h3, &s1) + h3.Negate(&h3, 1) + r.Y.SetAdd(&h3) +} + +// Add adds value +func (xyz *XYZ) Add(r, b *XYZ) { + if xyz.Infinity { + *r = *b + return + } + if b.Infinity { + *r = *xyz + return + } + r.Infinity = false + var z22, z12, u1, u2, s1, s2 Field + + b.Z.Sqr(&z22) + xyz.Z.Sqr(&z12) + xyz.X.Mul(&u1, &z22) + b.X.Mul(&u2, &z12) + xyz.Y.Mul(&s1, &z22) + s1.Mul(&s1, &b.Z) + b.Y.Mul(&s2, &z12) + s2.Mul(&s2, &xyz.Z) + u1.Normalize() + u2.Normalize() + if u1.Equals(&u2) { + s1.Normalize() + s2.Normalize() + if s1.Equals(&s2) { + xyz.Double(r) + } else { + r.Infinity = true + } + return + } + var h, i, i2, h2, h3, t Field + + u1.Negate(&h, 1) + h.SetAdd(&u2) + s1.Negate(&i, 1) + i.SetAdd(&s2) + i.Sqr(&i2) + h.Sqr(&h2) + h.Mul(&h3, &h2) + xyz.Z.Mul(&r.Z, &b.Z) + r.Z.Mul(&r.Z, &h) + u1.Mul(&t, &h2) + r.X = t + r.X.MulInt(2) + r.X.SetAdd(&h3) + r.X.Negate(&r.X, 3) + r.X.SetAdd(&i2) + r.X.Negate(&r.Y, 5) + r.Y.SetAdd(&t) + r.Y.Mul(&r.Y, &i) + h3.Mul(&h3, &s1) + h3.Negate(&h3, 1) + r.Y.SetAdd(&h3) +} + +// ECmultGen r = a*G +func ECmultGen(a Number) XYZ { + var n Number + var r XYZ + n.Set(&a.Int) + r.SetXY(&prec[0][n.rshX(4)]) + for j := 1; j < 64; j++ { + r.AddXY(&r, &prec[j][n.rshX(4)]) + } + r.AddXY(&r, &fin) + return r +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_consts.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_consts.go new file mode 100644 index 000000000..4b6c0f76a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_consts.go @@ -0,0 +1,9356 @@ +package secp256k1go + +var fin = XY{X: Field{[10]uint32{0x035871aa, 0x002dc101, 0x0059ab0f, 0x02cb297e, 0x00684bb5, 0x02585764, 0x02f3cceb, 0x002bdca3, 0x03dcb7cc, 0x0013cd56}}, Y: Field{[10]uint32{0x044d069d, 0x0603c088, 0x07541d4e, 0x04a4074d, 0x045fcba8, 0x05f00c34, 0x04bab268, 0x05fd8d65, 0x04e47151, 0x0071e924}}} + +var preG = []XY{ + {X: Field{[10]uint32{0x02f81798, 0x00a056c5, 0x028d959f, 0x036cb738, 0x03029bfc, 0x03a1c2c1, 0x0206295c, 0x02eeb156, 0x027ef9dc, 0x001e6f99}}, Y: Field{[10]uint32{0x0310d4b8, 0x01f423fe, 0x014199c4, 0x01229a15, 0x00fd17b4, 0x0384422a, 0x024fbfc0, 0x03119576, 0x027726a3, 0x00120eb6}}}, + {X: Field{[10]uint32{0x00e036f9, 0x007c44ef, 0x019b0860, 0x01160dbe, 0x01b531c8, 0x0227548a, 0x0344f85f, 0x030c4124, 0x02019258, 0x003e4c22}}, Y: Field{[10]uint32{0x00b8e672, 0x027f5d61, 0x0231b6cb, 0x0264d308, 0x026500a9, 0x028dfcd5, 0x02337e62, 0x03a0503f, 0x030f632d, 0x000e23de}}}, + {X: Field{[10]uint32{0x0240efe4, 0x02355a6c, 0x01ab7cba, 0x02f77186, 0x00e88b84, 0x0297144a, 0x034a7250, 0x00824d56, 0x024d1a07, 0x000be2f7}}, Y: Field{[10]uint32{0x02ac62d6, 0x021f4ea9, 0x02840dca, 0x006eac35, 0x02f78827, 0x01b27109, 0x01ba9dda, 0x038f5b53, 0x022636e5, 0x00362b08}}}, + {X: Field{[10]uint32{0x02c4f9bc, 0x02f77b72, 0x0239ce92, 0x01f80cc3, 0x023d419b, 0x00ba9e83, 0x018f365f, 0x02d3aa8e, 0x00646e5d, 0x00172f7c}}, Y: Field{[10]uint32{0x007264da, 0x02098a02, 0x027b5a50, 0x02e04ff7, 0x03a813d0, 0x01869536, 0x0178d6d8, 0x0165828c, 0x0240ba25, 0x001abaf2}}}, + {X: Field{[10]uint32{0x0027ccbe, 0x03c4437f, 0x02714c35, 0x025d315f, 0x01e09796, 0x03d566af, 0x02d178a9, 0x03d94c26, 0x00e2f0c7, 0x002b3521}}, Y: Field{[10]uint32{0x024f9c37, 0x03098ab1, 0x00e0f05c, 0x0290dd7e, 0x01add888, 0x018ed87a, 0x03809717, 0x0367f590, 0x0121b0a7, 0x00330ce2}}}, + {X: Field{[10]uint32{0x01a008cb, 0x0305e257, 0x03891bbe, 0x002f9705, 0x00564998, 0x003196ab, 0x034246b7, 0x0104797b, 0x03f858a9, 0x001dd2b9}}, Y: Field{[10]uint32{0x0153c61b, 0x035d3272, 0x016a8301, 0x038b7fe7, 0x01372db1, 0x01edecd9, 0x003dd56d, 0x01786409, 0x0032eb6b, 0x00366128}}}, + {X: Field{[10]uint32{0x01405aa8, 0x0377e3c6, 0x018cddee, 0x03198439, 0x01b075fb, 0x00dd2194, 0x011d205c, 0x00a22f1f, 0x03c2d975, 0x003ca1dc}}, Y: Field{[10]uint32{0x0303ed81, 0x0172d4b6, 0x0291f29b, 0x0369487e, 0x033a1a06, 0x01736bd1, 0x00212eb6, 0x002a25d6, 0x002e8d88, 0x0002ac24}}}, + {X: Field{[10]uint32{0x027e080e, 0x036f3e38, 0x0379e44a, 0x01bcf217, 0x0131e594, 0x0257fd04, 0x0065ae30, 0x03aa5969, 0x014f7d43, 0x0035e493}}, Y: Field{[10]uint32{0x02a26b58, 0x013727fd, 0x013a5c50, 0x00af625b, 0x03ea40af, 0x02331b7b, 0x0042ec22, 0x01ca9a0e, 0x0072a86c, 0x0016078a}}}, + {X: Field{[10]uint32{0x022d4a34, 0x013ea812, 0x0368766e, 0x02b9e6e5, 0x01eb9898, 0x01fab3c8, 0x020fee80, 0x01dd4290, 0x024cdb67, 0x0037bf7a}}, Y: Field{[10]uint32{0x0256eb77, 0x00667da7, 0x000f6cfb, 0x02812a57, 0x02ced1f4, 0x00aa4f6b, 0x017b0ead, 0x0145a3a6, 0x03069463, 0x0010846a}}}, + {X: Field{[10]uint32{0x00385b6c, 0x0159584e, 0x02d27747, 0x03af5fa1, 0x01f06acf, 0x0113d25e, 0x02f5cff4, 0x010f4a4f, 0x00a797a4, 0x000ad3a8}}, Y: Field{[10]uint32{0x01c09b7a, 0x00321539, 0x01763b57, 0x0031409a, 0x031a01f6, 0x02872184, 0x003083b5, 0x01764ecd, 0x03c03794, 0x00217a26}}}, + {X: Field{[10]uint32{0x01be59d5, 0x0102bbc9, 0x01071813, 0x0009c7e0, 0x001d9ad4, 0x0338cccc, 0x013fa332, 0x0049593e, 0x034a4cdd, 0x000d4aef}}, Y: Field{[10]uint32{0x0381998c, 0x034f62f3, 0x0039c67b, 0x00b9c6c4, 0x034a1b3b, 0x03768f87, 0x01c18259, 0x03d4d356, 0x00075348, 0x000c87ad}}}, + {X: Field{[10]uint32{0x02cacc3f, 0x0336b753, 0x03f29dc9, 0x037fbfd7, 0x00e42ab8, 0x0261e449, 0x03001055, 0x03446c08, 0x004d6b38, 0x000be884}}, Y: Field{[10]uint32{0x032b7d67, 0x02e9dad4, 0x02648423, 0x03b3f220, 0x00181d70, 0x02f57760, 0x00569335, 0x036196d9, 0x0068295d, 0x0000b784}}}, + {X: Field{[10]uint32{0x01453714, 0x028335fd, 0x032e269c, 0x02138255, 0x03263c3d, 0x01bb76a0, 0x021a9b06, 0x035a36ac, 0x039b09b4, 0x00249209}}, Y: Field{[10]uint32{0x03cb3402, 0x028cb3a5, 0x012ffe54, 0x00aa21e4, 0x033fc0de, 0x03a8ac7f, 0x01aa71bd, 0x02ab7974, 0x037bf234, 0x001cc05b}}}, + {X: Field{[10]uint32{0x01ee8729, 0x025b510f, 0x015c07e9, 0x00512fd8, 0x022f570e, 0x002fadd4, 0x030132fb, 0x02fc9e39, 0x032be3a8, 0x0036bb53}}, Y: Field{[10]uint32{0x00be1c55, 0x003948a4, 0x02726ab4, 0x00c3cebe, 0x003f83c2, 0x03be35c0, 0x021aca87, 0x0263a352, 0x024a7d6c, 0x0029a773}}}, + {X: Field{[10]uint32{0x0122e7db, 0x00ed7a1f, 0x001b0e6a, 0x03a7f7ca, 0x0011ecd9, 0x02ec67e4, 0x00f28d7c, 0x0204ba2b, 0x02c7065d, 0x00311344}}, Y: Field{[10]uint32{0x020e6482, 0x02418fc3, 0x021c5a03, 0x02187b7d, 0x000e106e, 0x0260bf6b, 0x0045926c, 0x01b371db, 0x0060ce32, 0x00084669}}}, + {X: Field{[10]uint32{0x0269e6b4, 0x031972f4, 0x00063b61, 0x014cdb0a, 0x03152b69, 0x03b58214, 0x01a20cfd, 0x02141322, 0x03f6dc69, 0x001a8916}}, Y: Field{[10]uint32{0x000d8a82, 0x0398d204, 0x03b6efd5, 0x01234108, 0x018b33ba, 0x005a892b, 0x03f5126f, 0x0129c22c, 0x0342c2bd, 0x003808b3}}}, + {X: Field{[10]uint32{0x010bd6a5, 0x02b95fc3, 0x01146f95, 0x002c2fb0, 0x00ce1330, 0x03950421, 0x037e3d2f, 0x03989f01, 0x03a6fd9d, 0x0005a5ff}}, Y: Field{[10]uint32{0x001b2396, 0x03a758f4, 0x00ae7ade, 0x00027926, 0x03a2cf15, 0x01155d0c, 0x0161506e, 0x01bd749d, 0x00f18680, 0x002e70e6}}}, + {X: Field{[10]uint32{0x027a7479, 0x008d17bc, 0x0361df98, 0x0183fedf, 0x019deb83, 0x020d32c3, 0x02d0f07e, 0x01c62e61, 0x03019981, 0x001816f6}}, Y: Field{[10]uint32{0x016b8c49, 0x00787a41, 0x00db43b0, 0x03a13ec5, 0x03c26bfa, 0x0325bf88, 0x0278d93e, 0x03481a06, 0x012de4f8, 0x0000a5cb}}}, + {X: Field{[10]uint32{0x007ff33d, 0x0071fa76, 0x0310cfe3, 0x00d52566, 0x00dcb01c, 0x02885784, 0x002fdc45, 0x02fd25d0, 0x01ab4150, 0x0018b453}}, Y: Field{[10]uint32{0x03b25eaf, 0x01590920, 0x0072235f, 0x00a59ead, 0x0301aa13, 0x003bb436, 0x0088a195, 0x02c04260, 0x02bd8cc5, 0x00203f01}}}, + {X: Field{[10]uint32{0x02308b6f, 0x01570be1, 0x00b425e5, 0x03d5ae6e, 0x032c50e9, 0x0102395a, 0x01b4b06c, 0x009f6b79, 0x02d0040f, 0x00203182}}, Y: Field{[10]uint32{0x030bd57a, 0x0007d590, 0x024eb1aa, 0x0132f9c0, 0x00a65eed, 0x03f9cbdc, 0x0266bad7, 0x030c3c9b, 0x003f1cc5, 0x00070e0c}}}, + {X: Field{[10]uint32{0x0203c8fb, 0x03aaec3e, 0x007049d5, 0x02521f61, 0x004cc5dc, 0x0331534d, 0x034c6348, 0x02b552a9, 0x01ad6167, 0x001ea4dd}}, Y: Field{[10]uint32{0x024dc7f7, 0x01267b08, 0x00e2b02d, 0x028431c3, 0x02bdc59e, 0x0249a411, 0x0159e0d7, 0x01c9a425, 0x03a9eca8, 0x0003438f}}}, + {X: Field{[10]uint32{0x03c3ffc9, 0x0147d166, 0x01f504bb, 0x030e6da3, 0x01bb408e, 0x01511e9e, 0x03a9ed04, 0x02d53241, 0x00d9b696, 0x00354a3b}}, Y: Field{[10]uint32{0x01409933, 0x01196d48, 0x00dbc063, 0x01017148, 0x02bc4345, 0x007f595b, 0x026f2188, 0x0397e665, 0x01253136, 0x003bb3d0}}}, + {X: Field{[10]uint32{0x00b45963, 0x00c6023e, 0x00b13872, 0x017929fb, 0x00526611, 0x023b36b4, 0x025f514e, 0x00d04ba8, 0x00a4b5f4, 0x000124dc}}, Y: Field{[10]uint32{0x02949c9a, 0x00c14a84, 0x02764b65, 0x02beed6d, 0x0254c3f3, 0x004bf58a, 0x03081b05, 0x03b50a2c, 0x0341afd6, 0x001d63cf}}}, + {X: Field{[10]uint32{0x00345d74, 0x004fac7f, 0x018e2f1c, 0x00783852, 0x03881d81, 0x0191c0bb, 0x03df930d, 0x0232ef5c, 0x00936ee8, 0x001dfc8c}}, Y: Field{[10]uint32{0x031c60d6, 0x03acf1d9, 0x037cbbe8, 0x00c365c1, 0x0096c953, 0x02e86cde, 0x008266e9, 0x02d90028, 0x002a7886, 0x002563bd}}}, + {X: Field{[10]uint32{0x0339f530, 0x0214c6dd, 0x00dbaeb2, 0x01d2ae75, 0x0258c800, 0x031f02f3, 0x004887e5, 0x0392e7a9, 0x0191cc4c, 0x003cb6b2}}, Y: Field{[10]uint32{0x003a3c37, 0x005f6e9c, 0x024fd1a1, 0x03ac1663, 0x039eb5fb, 0x03094c77, 0x021f32de, 0x0236b536, 0x009b3b2f, 0x003837b7}}}, + {X: Field{[10]uint32{0x0290d45b, 0x02921431, 0x023debcb, 0x037f276b, 0x025a216c, 0x03894804, 0x00be8fbb, 0x0087ec6d, 0x019f6626, 0x00118ecf}}, Y: Field{[10]uint32{0x02f7307e, 0x00ddec06, 0x01de31cb, 0x01f25c28, 0x03c622e2, 0x036188b5, 0x0114306d, 0x01b0d50c, 0x00d78c29, 0x0017b50c}}}, + {X: Field{[10]uint32{0x0198f247, 0x0125ad26, 0x022d1a32, 0x03050ca2, 0x036b98fa, 0x03ced665, 0x0232d4af, 0x01b8a824, 0x004244e4, 0x003c5be0}}, Y: Field{[10]uint32{0x00e31df6, 0x01e658b1, 0x00e26d65, 0x0309b973, 0x012a6c53, 0x03d38cf6, 0x01206fcd, 0x00fdf84f, 0x019b8220, 0x0033b6af}}}, + {X: Field{[10]uint32{0x011d41d1, 0x03857dc5, 0x03c65369, 0x0056b389, 0x015d2453, 0x010c46bd, 0x0352b7a1, 0x01158ec0, 0x00272dc8, 0x0032bdd5}}, Y: Field{[10]uint32{0x00a04476, 0x03e420c6, 0x032a5c32, 0x02de5888, 0x035f4fa9, 0x01791815, 0x01b643fa, 0x03d7ca90, 0x0260ef35, 0x0032d1d1}}}, + {X: Field{[10]uint32{0x03082120, 0x025ef21b, 0x017c1244, 0x001f2e1b, 0x0344a09c, 0x0265e762, 0x01d0f170, 0x02e61be1, 0x024b282c, 0x00098032}}, Y: Field{[10]uint32{0x027e4b40, 0x02fa51d6, 0x00ef44b0, 0x01d2ad7c, 0x015ac6be, 0x0376ed17, 0x013b03fc, 0x016f5a9a, 0x008753c1, 0x0010466e}}}, + {X: Field{[10]uint32{0x0198e435, 0x00a9dd1a, 0x03dc8c60, 0x0217893d, 0x0001c486, 0x0048882f, 0x00ec53cd, 0x010cb0ce, 0x0272d7e8, 0x001d8d72}}, Y: Field{[10]uint32{0x005b9c61, 0x01dbcc0b, 0x008bad9e, 0x018755c1, 0x034ecfc0, 0x03de39b5, 0x01d5e590, 0x027584f4, 0x00960948, 0x000246d9}}}, + {X: Field{[10]uint32{0x0356cc18, 0x0141d0ef, 0x028fbc1a, 0x00d1e751, 0x02b7f2b3, 0x03bba299, 0x03f4a87d, 0x015c336e, 0x0239f325, 0x001d538c}}, Y: Field{[10]uint32{0x00536683, 0x0366024f, 0x0295d0c5, 0x034065e9, 0x0023ee33, 0x013a9268, 0x00d0ed30, 0x028c3ecf, 0x0386e5bd, 0x00019cfe}}}, + {X: Field{[10]uint32{0x01d9b9e8, 0x009a51a4, 0x0152f9fe, 0x01987472, 0x00330800, 0x00b55c3c, 0x017859c8, 0x03a5abfd, 0x011071a1, 0x0038f9af}}, Y: Field{[10]uint32{0x020e37f5, 0x000abd24, 0x00c41670, 0x00e64fa4, 0x02a5a228, 0x01e68f2d, 0x000aa583, 0x039dbd03, 0x00bba394, 0x00167278}}}, + {X: Field{[10]uint32{0x004aa6eb, 0x011ff73c, 0x01f4b4cc, 0x03ccae8d, 0x01c4ccb1, 0x03dcca61, 0x02e73d88, 0x000ce09a, 0x003d056a, 0x00061ad2}}, Y: Field{[10]uint32{0x0280888b, 0x01e5fe1b, 0x038b4a4a, 0x02422544, 0x0321fb80, 0x0010602a, 0x017446e2, 0x03ddf8b8, 0x0132c67c, 0x000ee54b}}}, + {X: Field{[10]uint32{0x00e0963f, 0x00c85c93, 0x019c91a8, 0x034adcdf, 0x025442e6, 0x012f93dc, 0x0098561f, 0x01b39513, 0x00a6b987, 0x0037e75c}}, Y: Field{[10]uint32{0x02ba2417, 0x0231173c, 0x01da217b, 0x009c83be, 0x02b15722, 0x0370e752, 0x0062b785, 0x01b3357e, 0x01afd84d, 0x00157acb}}}, + {X: Field{[10]uint32{0x00ce7143, 0x019317cd, 0x018995de, 0x013e127b, 0x00ab5255, 0x0177383e, 0x03ca815d, 0x03a1e925, 0x00c23c51, 0x0017b757}}, Y: Field{[10]uint32{0x0399a868, 0x01c1aadc, 0x02905cdc, 0x030345e8, 0x00c13c66, 0x003226b4, 0x028cec03, 0x004c1987, 0x008dbc14, 0x003beba7}}}, + {X: Field{[10]uint32{0x00614fba, 0x034d8be1, 0x0317a722, 0x02870d56, 0x037aa3fb, 0x021fa79d, 0x012fe022, 0x01a0c368, 0x00c2b647, 0x000a41e6}}, Y: Field{[10]uint32{0x01943e7a, 0x000ebf50, 0x023146d0, 0x02536ca8, 0x015b29c0, 0x01e6bc97, 0x00d00bcf, 0x00188662, 0x036dcd44, 0x0038e369}}}, + {X: Field{[10]uint32{0x00053b45, 0x03f7b3bd, 0x0257362d, 0x00bf8d80, 0x01cd2955, 0x00542b0e, 0x00754efa, 0x03d6cc15, 0x023a95d9, 0x002bcf10}}, Y: Field{[10]uint32{0x018fd9c6, 0x03fb7b52, 0x01581bc2, 0x02999e85, 0x00c8cd5a, 0x00d73ed0, 0x013b0e6f, 0x00add26a, 0x03d831eb, 0x003e628f}}}, + {X: Field{[10]uint32{0x0084249a, 0x03fb5436, 0x018df8d2, 0x02c9b73e, 0x0106bb66, 0x026fc9d2, 0x00aa28c9, 0x039d1733, 0x0324d134, 0x001d9b6e}}, Y: Field{[10]uint32{0x03ac5996, 0x0093e5f2, 0x00edd2c9, 0x0197e81b, 0x0097584a, 0x00368e2e, 0x00c88798, 0x03978e37, 0x0152eacb, 0x001d12c4}}}, + {X: Field{[10]uint32{0x011abe3e, 0x00b99986, 0x02a58ce9, 0x013db165, 0x0245f7b4, 0x01e13d05, 0x01277c33, 0x01d66e88, 0x006f8c94, 0x001676fd}}, Y: Field{[10]uint32{0x02307f6e, 0x03885b12, 0x0398cd85, 0x0269e465, 0x0042ce73, 0x0120c268, 0x00ea6ce6, 0x02f0c03d, 0x0144175f, 0x00314d2b}}}, + {X: Field{[10]uint32{0x00fd87b8, 0x03718063, 0x0273cb62, 0x01c46a57, 0x00dd647e, 0x013a692a, 0x01e691e7, 0x0114dcc1, 0x0295103c, 0x003c4eb6}}, Y: Field{[10]uint32{0x02f5733d, 0x021066f6, 0x00257077, 0x0069a9d7, 0x026949e2, 0x020d07cc, 0x03f4bc80, 0x0137998e, 0x03b44ee1, 0x00384e05}}}, + {X: Field{[10]uint32{0x0288522c, 0x01540056, 0x01fb6488, 0x0301baeb, 0x00da1869, 0x01673293, 0x00167a2c, 0x033b41b5, 0x00fa0e8a, 0x001dd52d}}, Y: Field{[10]uint32{0x001163a2, 0x0122d5e1, 0x03cc537a, 0x00d42db2, 0x028d1e4e, 0x00082e3e, 0x00b967c3, 0x02760889, 0x02864e66, 0x000c3a4f}}}, + {X: Field{[10]uint32{0x02262519, 0x00a32678, 0x001d2a68, 0x02577a01, 0x0301858f, 0x02afbe75, 0x03874d46, 0x038122a8, 0x02df5990, 0x00252372}}, Y: Field{[10]uint32{0x0347d57e, 0x028b2b94, 0x031d2cbb, 0x03bef4bb, 0x01df9154, 0x012c6f09, 0x0128a322, 0x03965f57, 0x002537f6, 0x00392469}}}, + {X: Field{[10]uint32{0x017c77ab, 0x00a2a28f, 0x03a15703, 0x03d6b02f, 0x03fb224c, 0x0080bb0d, 0x007b48f8, 0x01b05a27, 0x014450c7, 0x001e5890}}, Y: Field{[10]uint32{0x01b83437, 0x03e96ca7, 0x02c5760a, 0x00147c12, 0x0312507a, 0x00fbdbda, 0x01c1fc13, 0x02d1d835, 0x010ec4ff, 0x000402d8}}}, + {X: Field{[10]uint32{0x03ec47ca, 0x0342144d, 0x0047bb0d, 0x01c896e2, 0x005a1697, 0x01364552, 0x01b16064, 0x012d52c5, 0x00783496, 0x000d4502}}, Y: Field{[10]uint32{0x02293311, 0x03456837, 0x0378b7e7, 0x01f05708, 0x006039e7, 0x03a049ff, 0x01652c48, 0x00151238, 0x03b20562, 0x003bc2be}}}, + {X: Field{[10]uint32{0x03527eaf, 0x010f4fde, 0x007b4429, 0x03ae37de, 0x0193e947, 0x0362f152, 0x01ce2c9d, 0x00f92f1e, 0x00ad6b48, 0x0034f30c}}, Y: Field{[10]uint32{0x02ede0a4, 0x00d36c13, 0x00630afb, 0x018a40d6, 0x023c2ad4, 0x03e5422b, 0x005e9be8, 0x009e3627, 0x0222d827, 0x0022cde2}}}, + {X: Field{[10]uint32{0x00847610, 0x016e83fd, 0x03649397, 0x00f6e44f, 0x032b2982, 0x03fbf822, 0x01c78fcb, 0x00a18338, 0x00478073, 0x00058936}}, Y: Field{[10]uint32{0x00078575, 0x01b8a901, 0x024c8cc0, 0x03d4a0af, 0x02896878, 0x03367532, 0x014448c6, 0x0240f824, 0x00f9b6da, 0x001a1947}}}, + {X: Field{[10]uint32{0x03c61cd4, 0x01ed3f57, 0x007da6df, 0x012d6bc8, 0x00519247, 0x00f98aa6, 0x002c9563, 0x02a289a4, 0x000da955, 0x001ccf3a}}, Y: Field{[10]uint32{0x01c5ea1d, 0x019cef07, 0x00578c54, 0x03808079, 0x023e1ef8, 0x036e7f33, 0x01a4d8b8, 0x037df521, 0x022bd2ba, 0x003d50d6}}}, + {X: Field{[10]uint32{0x001c045c, 0x01637eae, 0x02699ef2, 0x002485c7, 0x038966c5, 0x02f4ed27, 0x01a1c33b, 0x0141933c, 0x00125494, 0x00057651}}, Y: Field{[10]uint32{0x03e4070d, 0x01eefa7b, 0x00685fc3, 0x02eb3aff, 0x03434800, 0x00ee105d, 0x035137b7, 0x00f9c8d3, 0x030b6946, 0x00355bac}}}, + {X: Field{[10]uint32{0x00717940, 0x00e16674, 0x00aaaac1, 0x01f274ae, 0x031c2141, 0x0339c349, 0x012136e5, 0x0399d6d8, 0x00f2ec9d, 0x0028743f}}, Y: Field{[10]uint32{0x0197a629, 0x004b4e70, 0x033d5192, 0x029501c3, 0x02641462, 0x002599fc, 0x02907373, 0x028f2acb, 0x0350bcb5, 0x003b75df}}}, + {X: Field{[10]uint32{0x00b36980, 0x028dccc7, 0x01c06c7c, 0x037ba091, 0x01a790ba, 0x03e136fa, 0x000c0735, 0x0233315e, 0x0215c0af, 0x00388bef}}, Y: Field{[10]uint32{0x0131da06, 0x0341b5df, 0x0399be43, 0x00552591, 0x03a38289, 0x03d4e869, 0x03430a69, 0x03583222, 0x03abad5c, 0x0002a156}}}, + {X: Field{[10]uint32{0x02cfa9b3, 0x02514891, 0x02aa7400, 0x00e51c13, 0x0369635e, 0x004557d7, 0x0213473c, 0x03a3883b, 0x01dd9860, 0x000c4424}}, Y: Field{[10]uint32{0x006d8374, 0x003c2c4a, 0x02685bd8, 0x02993fbb, 0x00871ec5, 0x02301a0c, 0x011f0478, 0x03c13fff, 0x016f87d1, 0x0019b6d9}}}, + {X: Field{[10]uint32{0x02c2dbdf, 0x01f508cb, 0x00078186, 0x02d16a4d, 0x00883928, 0x00f9ab09, 0x01c0442d, 0x02fa26cc, 0x0104d301, 0x000d307f}}, Y: Field{[10]uint32{0x0273abee, 0x008615ee, 0x0043dc53, 0x03bad21d, 0x02d57f1c, 0x0005d04d, 0x03d46f73, 0x006d6552, 0x0285e97b, 0x00025051}}}, + {X: Field{[10]uint32{0x009b8d63, 0x02979ac1, 0x00affcc2, 0x02aef342, 0x028d13f3, 0x015fad0a, 0x014de5b5, 0x01c07070, 0x025d6b54, 0x003c867a}}, Y: Field{[10]uint32{0x000766d1, 0x00a58a90, 0x03fb8d8c, 0x00f01ec9, 0x01f4b08d, 0x03333dac, 0x03af4544, 0x0102c3dc, 0x0157e83d, 0x00132e56}}}, + {X: Field{[10]uint32{0x01a0b448, 0x01a4491a, 0x02708723, 0x0242f298, 0x02543a54, 0x03d17789, 0x03683db8, 0x03eeaac7, 0x000f74a8, 0x0035ee1d}}, Y: Field{[10]uint32{0x02a4593b, 0x0380c57a, 0x009b3411, 0x017b4f01, 0x02ff15db, 0x02b51c5f, 0x0010f337, 0x0324bb84, 0x028128d9, 0x003e9de5}}}, + {X: Field{[10]uint32{0x02a824bf, 0x0134c246, 0x014289fe, 0x00caaf76, 0x02ad5bcd, 0x00e8ccd7, 0x02f7c98d, 0x01bc3be1, 0x00222f8f, 0x000cb4c7}}, Y: Field{[10]uint32{0x022e1661, 0x03452e11, 0x02961118, 0x0279bc9b, 0x022e6dac, 0x016e7876, 0x00d3d791, 0x015b8e73, 0x02f58921, 0x0017cc0c}}}, + {X: Field{[10]uint32{0x018347b5, 0x03e1b2f0, 0x012c4340, 0x01f35656, 0x028793d7, 0x03660c7a, 0x0045a155, 0x02cc99c4, 0x0371914a, 0x001d187c}}, Y: Field{[10]uint32{0x00092ff6, 0x0211ecf3, 0x02ea6b39, 0x03d43261, 0x002eee1f, 0x02a91095, 0x01ddcae0, 0x02fb032f, 0x02238b96, 0x0023b02e}}}, + {X: Field{[10]uint32{0x03b2b2d6, 0x01a62eb5, 0x0053d287, 0x00b0f99d, 0x026d716b, 0x028e081a, 0x0356a25a, 0x021801d0, 0x02db1df1, 0x003b81e6}}, Y: Field{[10]uint32{0x001c8c1e, 0x02b11e7b, 0x00e25eba, 0x026bc131, 0x02a44698, 0x03317e7d, 0x01f37e0e, 0x02f97131, 0x012aafe3, 0x00237090}}}, + {X: Field{[10]uint32{0x029da6b5, 0x036185ae, 0x01dc72bf, 0x00c61d32, 0x03e65de3, 0x03b9883d, 0x03b18302, 0x020fc119, 0x03e447ec, 0x0005bb24}}, Y: Field{[10]uint32{0x01b0674d, 0x019de389, 0x01713962, 0x01a94392, 0x039d5818, 0x02960128, 0x028c2a7c, 0x03ed0343, 0x01150e62, 0x0017918c}}}, + {X: Field{[10]uint32{0x0137bd99, 0x02581975, 0x02aa485b, 0x025fe62d, 0x03d88558, 0x03e9c2da, 0x0178290a, 0x03dbc0e2, 0x0180c245, 0x003aa97e}}, Y: Field{[10]uint32{0x02dc07dc, 0x00104093, 0x0267fb18, 0x0275f9ba, 0x00d78486, 0x03265189, 0x02528391, 0x00b82066, 0x013e292c, 0x003d97d7}}}, + {X: Field{[10]uint32{0x01a49f51, 0x0312dacd, 0x0342ea96, 0x021dc544, 0x0158ae04, 0x028090e6, 0x02ee1910, 0x0304c9a4, 0x0007544a, 0x0001e325}}, Y: Field{[10]uint32{0x00a3ddb4, 0x019d7c65, 0x00d2462b, 0x0160f019, 0x00fa1fbd, 0x00e6979a, 0x00047955, 0x026e1755, 0x019169eb, 0x003cf80c}}}, + {X: Field{[10]uint32{0x002857a5, 0x015e365c, 0x00688726, 0x02b9e9bf, 0x0001cdc8, 0x00c6ba80, 0x01cd8384, 0x029dc05b, 0x03e219a1, 0x001253d2}}, Y: Field{[10]uint32{0x000d562c, 0x012c0c62, 0x02d6e55f, 0x00c35d9f, 0x02f925ce, 0x038dae8a, 0x03a7f075, 0x0297cce6, 0x02969283, 0x0010890a}}}, + {X: Field{[10]uint32{0x001fe9b5, 0x03079997, 0x0270ebf4, 0x03a963ea, 0x01d28211, 0x0113a952, 0x007f2f51, 0x0361b1af, 0x00030da6, 0x0029662a}}, Y: Field{[10]uint32{0x01864e6b, 0x009b6f4b, 0x0386a100, 0x02d96cd7, 0x0023fc63, 0x001cdebb, 0x00b4a714, 0x00b0c1f9, 0x016f8482, 0x000812d7}}}, + {X: Field{[10]uint32{0x00595997, 0x02b70f96, 0x00a184db, 0x003c495c, 0x00208f02, 0x036fabfb, 0x0192f5f2, 0x00ad7424, 0x02365abb, 0x00310645}}, Y: Field{[10]uint32{0x00fa9913, 0x01ba5ad6, 0x03fc0ed1, 0x01143cd2, 0x01d5caf9, 0x02261262, 0x01245b32, 0x01fbe927, 0x0351d008, 0x00013c50}}}, + {X: Field{[10]uint32{0x00742881, 0x01ce9545, 0x02acfe4c, 0x034b828d, 0x0392a2e0, 0x0280ef16, 0x0324604d, 0x03e91d69, 0x0063a586, 0x00210758}}, Y: Field{[10]uint32{0x028d6154, 0x00db7806, 0x0169ce7a, 0x0359d130, 0x00e62562, 0x01d50da6, 0x004f9a1c, 0x0167a064, 0x03f59c06, 0x0001ce19}}}, + {X: Field{[10]uint32{0x030e20d5, 0x004ab135, 0x03e4ded1, 0x020424a2, 0x03282b33, 0x0226f78b, 0x0026947f, 0x01c74dd8, 0x03399a69, 0x0017a56e}}, Y: Field{[10]uint32{0x02012865, 0x00e131d1, 0x0238b161, 0x03b5f62e, 0x01a99c9a, 0x004c4ddd, 0x03fc7118, 0x00216fba, 0x03366809, 0x000e7c8f}}}, + {X: Field{[10]uint32{0x00ef2f66, 0x011c6f28, 0x01d8bf99, 0x0192d4c5, 0x025ec075, 0x027f65d3, 0x0039f8a9, 0x023f51db, 0x001a5394, 0x000db919}}, Y: Field{[10]uint32{0x014c78fc, 0x01473d5a, 0x023e06fd, 0x0124ff55, 0x0056ea13, 0x01726aa5, 0x00227b08, 0x013ae059, 0x031b1abe, 0x00349092}}}, + {X: Field{[10]uint32{0x0179f726, 0x02c9f0b1, 0x0114faea, 0x01085c3a, 0x00f56438, 0x0141e907, 0x00191a2f, 0x02eeca43, 0x001ea7bf, 0x0000cd96}}, Y: Field{[10]uint32{0x02fda224, 0x03372af4, 0x01e0ef3d, 0x00504334, 0x0391f7ab, 0x01b95acc, 0x0252129b, 0x0386fa64, 0x0168595f, 0x003ab448}}}, + {X: Field{[10]uint32{0x03d43ede, 0x01d09c1a, 0x010c4849, 0x0097b5a2, 0x00037810, 0x03c03b21, 0x032634fc, 0x035ada87, 0x0016dadf, 0x0022ae26}}, Y: Field{[10]uint32{0x01cdd24e, 0x011ea44a, 0x0045858a, 0x0270fa26, 0x03503d45, 0x018904db, 0x02654aef, 0x03428113, 0x0309f2f6, 0x001bf73b}}}, + {X: Field{[10]uint32{0x00c5fb94, 0x0100a12e, 0x032544bb, 0x023a2b3f, 0x0220b093, 0x00a67f2a, 0x033344d9, 0x0315de04, 0x01a746c9, 0x00078cfc}}, Y: Field{[10]uint32{0x03f3b3b6, 0x029f4815, 0x03010e33, 0x0083c740, 0x032306d3, 0x03493b7f, 0x008ed618, 0x006ceaa7, 0x00257dd1, 0x00018198}}}, + {X: Field{[10]uint32{0x00f08f31, 0x000d87f6, 0x00fcfa41, 0x0330632f, 0x020ed1f4, 0x01e77482, 0x03f30ded, 0x0306dfb9, 0x01dcb3ce, 0x00216df0}}, Y: Field{[10]uint32{0x02999511, 0x03b4f0d7, 0x02633c6f, 0x0062575e, 0x00fcafad, 0x02a211fd, 0x01048f25, 0x03750fce, 0x01cdd026, 0x000f662a}}}, + {X: Field{[10]uint32{0x01ac5f51, 0x00a00198, 0x03af872a, 0x00ee1e29, 0x017fbe9a, 0x0175b517, 0x035f4b12, 0x01194249, 0x03bd8d9e, 0x000a77e7}}, Y: Field{[10]uint32{0x0227d84b, 0x021dbaca, 0x01e55cd2, 0x02187006, 0x03da61dc, 0x01e44e7f, 0x02d88621, 0x016981b8, 0x03e99c77, 0x0002d313}}}, + {X: Field{[10]uint32{0x01fce252, 0x00acb912, 0x0105c808, 0x028bdda0, 0x03dfe58c, 0x02abe2b7, 0x02a6e671, 0x0211e8ff, 0x02e06b0a, 0x00282c72}}, Y: Field{[10]uint32{0x02296cf2, 0x0012540e, 0x030e650f, 0x0060d2bf, 0x026b72da, 0x01e9a8a3, 0x00b19d91, 0x002563b1, 0x0102edde, 0x002b90d0}}}, + {X: Field{[10]uint32{0x00e121e5, 0x00fcb930, 0x03e4ba11, 0x02cec84c, 0x01b499df, 0x03a100a5, 0x01c7ff67, 0x03a684db, 0x02afb9b3, 0x00013a33}}, Y: Field{[10]uint32{0x0326683c, 0x01f398a8, 0x00502b82, 0x01a98d18, 0x01422c08, 0x0133971e, 0x008f6d53, 0x01b5e92d, 0x00118c8b, 0x0033c85d}}}, + {X: Field{[10]uint32{0x0389a33b, 0x01c970ad, 0x00919f42, 0x01a26804, 0x000a5076, 0x028bda42, 0x03b81c7c, 0x026dbd6b, 0x00e047e1, 0x00349291}}, Y: Field{[10]uint32{0x03ea8fa3, 0x03b105eb, 0x0244d2cd, 0x01a21ee0, 0x01013f99, 0x0303c71a, 0x03db50f1, 0x01be3f18, 0x01591b46, 0x001bee35}}}, + {X: Field{[10]uint32{0x023b35d4, 0x013a63a3, 0x0377b510, 0x00a2aeea, 0x00001edd, 0x032e6561, 0x01fdfcfa, 0x02737492, 0x006a7a6c, 0x003a8058}}, Y: Field{[10]uint32{0x023ea98d, 0x01948622, 0x03700cfd, 0x012f0a08, 0x01b7d449, 0x01e9ecf3, 0x03fe369f, 0x004ac33e, 0x00908c73, 0x000c8abd}}}, + {X: Field{[10]uint32{0x00e2131f, 0x0065b7a3, 0x031be4ad, 0x036317a8, 0x01252007, 0x03ae5994, 0x02328655, 0x007229b1, 0x01bf2b66, 0x002be2b7}}, Y: Field{[10]uint32{0x01749700, 0x03ef36dc, 0x02ac8f3d, 0x021a0389, 0x03252081, 0x0025a0da, 0x0034eafd, 0x0217d4a8, 0x027c029b, 0x0019d279}}}, + {X: Field{[10]uint32{0x00f45889, 0x03c38d14, 0x0215e722, 0x036af3f2, 0x01a674a3, 0x0383ec59, 0x00516d47, 0x01b281b3, 0x02197456, 0x000038eb}}, Y: Field{[10]uint32{0x030bd6a4, 0x0029cbba, 0x01f53342, 0x0121d3e0, 0x000de97e, 0x03d341cc, 0x0217f07b, 0x01440458, 0x027e4531, 0x000abaaf}}}, + {X: Field{[10]uint32{0x0397e246, 0x03aa33b4, 0x00802075, 0x03cfb496, 0x0301993f, 0x03b478f8, 0x036993ff, 0x0265c873, 0x0355313d, 0x001647b8}}, Y: Field{[10]uint32{0x03e5d196, 0x0263c692, 0x022bdeee, 0x014f4972, 0x001ff0b0, 0x011831e4, 0x00fc4775, 0x00c2fa98, 0x018a113c, 0x002c3a95}}}, + {X: Field{[10]uint32{0x01b52984, 0x033c0c95, 0x00945077, 0x0391ec21, 0x01fa8584, 0x02363698, 0x01aa9731, 0x013127c6, 0x0155fda5, 0x00044e5b}}, Y: Field{[10]uint32{0x03ea57a4, 0x019efaa4, 0x03be4c57, 0x02c06c95, 0x004ff536, 0x01efad1d, 0x01d5833a, 0x02b004a2, 0x00a8cd45, 0x0026631d}}}, + {X: Field{[10]uint32{0x0017aa7a, 0x010055f8, 0x00b64055, 0x0151a1d5, 0x038dcdfd, 0x02783102, 0x0000738c, 0x01685e40, 0x021ba39c, 0x000f174a}}, Y: Field{[10]uint32{0x001bd257, 0x01e72932, 0x00f6661f, 0x027f749c, 0x000f9b8b, 0x01bf062e, 0x014de739, 0x00d38be7, 0x0279995a, 0x002c8a10}}}, + {X: Field{[10]uint32{0x013cc030, 0x03be285e, 0x00078425, 0x02bec12b, 0x03fbc395, 0x027cba70, 0x0299a729, 0x0037be8e, 0x00b8a60a, 0x003321c1}}, Y: Field{[10]uint32{0x001f1b13, 0x02dd38eb, 0x01c4e940, 0x013f12f3, 0x00f395b7, 0x02cd1fe3, 0x01e0862d, 0x005e2074, 0x0039feed, 0x002f7518}}}, + {X: Field{[10]uint32{0x0089b197, 0x010466ca, 0x02e7ea20, 0x03f3314f, 0x017dd4de, 0x032b4a6e, 0x01777ac5, 0x0156ab36, 0x00f7ea85, 0x00314cf9}}, Y: Field{[10]uint32{0x03596096, 0x0383d17a, 0x03a26bb8, 0x02ed292c, 0x02d9b925, 0x03c690e8, 0x02fb6242, 0x037d0a68, 0x016bc5ef, 0x001bc289}}}, + {X: Field{[10]uint32{0x03da6593, 0x01b5238c, 0x03bbcf56, 0x00d3bb01, 0x0269ba8c, 0x000f325a, 0x01f6d08d, 0x01f5bc42, 0x00f2ccb2, 0x0003053e}}, Y: Field{[10]uint32{0x03dc3a38, 0x02192444, 0x035e6c0e, 0x03742601, 0x0075b740, 0x03f870a1, 0x00473e16, 0x0263dff5, 0x02923bb3, 0x0030d675}}}, + {X: Field{[10]uint32{0x0390e6ef, 0x007dcb82, 0x0321ce44, 0x03b5d7e3, 0x024c9739, 0x0285c456, 0x0024789f, 0x029142eb, 0x03046bc6, 0x0029b2f0}}, Y: Field{[10]uint32{0x03fa9b9f, 0x00abf585, 0x00313986, 0x01cf1c18, 0x0360ceb5, 0x0303e568, 0x030619e2, 0x02226ec4, 0x03f4680e, 0x000086b9}}}, + {X: Field{[10]uint32{0x0143cc38, 0x02ce7e67, 0x01ce6344, 0x00099f44, 0x03130a3c, 0x0166c72b, 0x03b86c13, 0x02249faf, 0x019a02c4, 0x000d1f5b}}, Y: Field{[10]uint32{0x01c74448, 0x027fc78c, 0x00cb1268, 0x02da1e1c, 0x006d565a, 0x03b24bc2, 0x0187f6ec, 0x01493472, 0x0361a353, 0x00183a9f}}}, + {X: Field{[10]uint32{0x0372656a, 0x03bdd0de, 0x008cf855, 0x02c6fcc7, 0x02d47c67, 0x017bd619, 0x037dcb37, 0x02e3660f, 0x01d2181d, 0x00369951}}, Y: Field{[10]uint32{0x03dc208a, 0x02a092dd, 0x03d897fe, 0x006d24d6, 0x01667305, 0x015a0317, 0x038f07ce, 0x01e29e79, 0x0315ab68, 0x00126e59}}}, + {X: Field{[10]uint32{0x03eb1111, 0x016652e3, 0x03146b9d, 0x02517595, 0x03ec25d6, 0x00271b79, 0x03b81483, 0x00b2c684, 0x03cc9d01, 0x003101d1}}, Y: Field{[10]uint32{0x020fa2d4, 0x03a0c0df, 0x014e1bb5, 0x0055ae54, 0x025db936, 0x032d2255, 0x01e6caf2, 0x0284bf1b, 0x00753be2, 0x00172958}}}, + {X: Field{[10]uint32{0x037f3502, 0x000fbd00, 0x03d34c82, 0x01c4cd22, 0x00338c7f, 0x03a1c39e, 0x033a610b, 0x025e6333, 0x00ec82c9, 0x001390b2}}, Y: Field{[10]uint32{0x03606437, 0x0111cda4, 0x03cc40a9, 0x01133152, 0x01a54921, 0x01de0cd0, 0x028b33a0, 0x03ee4a9e, 0x034ee5e0, 0x001d5c75}}}, + {X: Field{[10]uint32{0x030dedea, 0x008a86ce, 0x03432875, 0x036c3219, 0x02d251ca, 0x03dc2c8d, 0x02ba2e1a, 0x01abe08e, 0x037089bc, 0x000ddd6a}}, Y: Field{[10]uint32{0x01018cf7, 0x03658502, 0x02a2c42a, 0x01efde9d, 0x03ac8db1, 0x00a33e9f, 0x039736a8, 0x002762f2, 0x0107bcfa, 0x002f94b4}}}, + {X: Field{[10]uint32{0x02f74e26, 0x01678fa0, 0x03a88469, 0x01744c52, 0x02d95459, 0x034f5dd6, 0x014fb814, 0x03b0de76, 0x00bf7e34, 0x0033b8c7}}, Y: Field{[10]uint32{0x003b1c6d, 0x01228071, 0x014d80f4, 0x002f853b, 0x020149ef, 0x02f3dafe, 0x03947ae2, 0x0162709a, 0x0214c06b, 0x0023f592}}}, + {X: Field{[10]uint32{0x00b47986, 0x00680742, 0x02befcdc, 0x03f516c7, 0x02fddb58, 0x03ad5193, 0x036ea6a4, 0x0245d867, 0x02ea09b6, 0x002d3e7a}}, Y: Field{[10]uint32{0x0200682a, 0x02a2b01c, 0x0142eb24, 0x03004b29, 0x038bb131, 0x03185c9b, 0x033a4f18, 0x0152c1d0, 0x01925b5a, 0x000e7972}}}, + {X: Field{[10]uint32{0x02bcc60e, 0x0241de4b, 0x00cc1b77, 0x016bf0f7, 0x0284e251, 0x019b4c33, 0x0179a489, 0x03e48e80, 0x01fc3d2d, 0x0035098f}}, Y: Field{[10]uint32{0x02208d54, 0x0193848a, 0x00f7fae1, 0x01d82b5b, 0x0189e127, 0x01614f38, 0x0230d629, 0x023facc3, 0x0307a0f7, 0x0018b7eb}}}, + {X: Field{[10]uint32{0x017612c4, 0x00fbb6a2, 0x01e42223, 0x0302928b, 0x000032ac, 0x024c215f, 0x00d35eb6, 0x0299693e, 0x0124820f, 0x0012115d}}, Y: Field{[10]uint32{0x01bd0f77, 0x01daaa92, 0x00a9ae7a, 0x01f6cb58, 0x03dc6cc0, 0x03e870b9, 0x033c38a1, 0x01e7661c, 0x00ab3679, 0x000969d2}}}, + {X: Field{[10]uint32{0x011cceda, 0x0285d9f0, 0x0123f367, 0x0246454a, 0x02045e19, 0x00abf7f0, 0x01644f3a, 0x007cb2c4, 0x03188110, 0x0037fbbb}}, Y: Field{[10]uint32{0x029a7517, 0x020eb826, 0x03dff16a, 0x039d2d2e, 0x00c390bd, 0x0259e4f0, 0x0020bab3, 0x03810be5, 0x0056cf1d, 0x003b3edc}}}, + {X: Field{[10]uint32{0x00fae859, 0x00b7e0ee, 0x00ed36c8, 0x02f1818b, 0x035d89bc, 0x007ce260, 0x0173f44e, 0x03e0dcf1, 0x02b17543, 0x001b5fbd}}, Y: Field{[10]uint32{0x02712d10, 0x02c64372, 0x000bbf74, 0x02566cb6, 0x00c521a0, 0x01ffaa6f, 0x02fa10c5, 0x02261b7f, 0x02c33543, 0x00335143}}}, + {X: Field{[10]uint32{0x0204541f, 0x0096bd9b, 0x007035af, 0x024c8955, 0x03f3c88b, 0x02647cb8, 0x00500d3b, 0x029689a1, 0x01d59102, 0x0039d581}}, Y: Field{[10]uint32{0x03fad125, 0x0026438a, 0x00693836, 0x0314c22c, 0x014f729a, 0x0211cf8c, 0x039b4872, 0x007b9502, 0x0354a8f7, 0x003d7151}}}, + {X: Field{[10]uint32{0x01ed620c, 0x010ffbec, 0x008457dd, 0x0182af8e, 0x019a0c2e, 0x014082f2, 0x02be453d, 0x03ea81a8, 0x020f4c4d, 0x003ae619}}, Y: Field{[10]uint32{0x0099223e, 0x03d10400, 0x0131ce85, 0x022a5044, 0x00a0a7cd, 0x0349b348, 0x009af3ad, 0x02e14818, 0x00876d9c, 0x001b2e6a}}}, + {X: Field{[10]uint32{0x00dba942, 0x0158f8ee, 0x00336dc3, 0x01a50622, 0x02215459, 0x024ac664, 0x039f2e68, 0x00534d64, 0x03027d85, 0x0004fa1e}}, Y: Field{[10]uint32{0x02b8adf1, 0x00355591, 0x02beb257, 0x0295a35a, 0x02ac2b9d, 0x02fc7a46, 0x01624114, 0x029b7b17, 0x03c68059, 0x003fbd68}}}, + {X: Field{[10]uint32{0x01e5764a, 0x011245a4, 0x0308e7bf, 0x00dc7389, 0x0125424b, 0x016f9bf0, 0x0038f06a, 0x01bf805f, 0x0026e9fd, 0x003b858c}}, Y: Field{[10]uint32{0x016c62b2, 0x00c3682b, 0x02623e54, 0x03e856e5, 0x00f49ae3, 0x01c343d6, 0x0194ccc6, 0x0358710f, 0x010f255d, 0x0006b2c9}}}, + {X: Field{[10]uint32{0x03af3d80, 0x00b976cc, 0x02799993, 0x010d4161, 0x031e626d, 0x030b7226, 0x01e3a750, 0x007935e3, 0x01ef9ad5, 0x002c9a3d}}, Y: Field{[10]uint32{0x0216e423, 0x03a51684, 0x01614003, 0x013f5064, 0x018cf0d3, 0x03077b80, 0x01f77d41, 0x02e7aec6, 0x014b3c99, 0x0017cc43}}}, + {X: Field{[10]uint32{0x03c4750d, 0x03ff6ea4, 0x02ea3bf7, 0x0072a673, 0x002b02f0, 0x01b1eff9, 0x03ad85eb, 0x03c0d7a7, 0x03118a9d, 0x003fc1fc}}, Y: Field{[10]uint32{0x02d1f0d8, 0x00342633, 0x02ddd474, 0x0084538b, 0x01c1d294, 0x03b32eb7, 0x00440c38, 0x01628e97, 0x02d603e8, 0x0010e04d}}}, + {X: Field{[10]uint32{0x02b526a1, 0x03a30f38, 0x01ebec16, 0x02783609, 0x02a4b9f6, 0x03ed962f, 0x006fd20f, 0x014a8d05, 0x0055c7c0, 0x002362e6}}, Y: Field{[10]uint32{0x03036758, 0x00b9fd18, 0x03ceb30e, 0x03fb9475, 0x004bcf50, 0x0213a935, 0x03af44fb, 0x01e7e49a, 0x01eedc2d, 0x00336d56}}}, + {X: Field{[10]uint32{0x01a32b63, 0x0098c603, 0x031eba54, 0x033b2a46, 0x03e4b851, 0x01eb89b7, 0x029d472d, 0x02fc16fe, 0x035384df, 0x0014b6c2}}, Y: Field{[10]uint32{0x00a7b375, 0x012da761, 0x0279de92, 0x0240a1d5, 0x03b3180c, 0x01b6e7d5, 0x02baf66a, 0x0397508f, 0x017d050e, 0x00030ee6}}}, + {X: Field{[10]uint32{0x03d43352, 0x0150efb2, 0x008c6fff, 0x030fcfe9, 0x007d0f29, 0x02024673, 0x01efd24e, 0x007698e5, 0x0090d3d5, 0x00398be5}}, Y: Field{[10]uint32{0x00cafa7d, 0x001eff67, 0x02f5170e, 0x01647c76, 0x02f342c8, 0x031a0a18, 0x002ca280, 0x01ac2c8b, 0x017ba487, 0x001b626b}}}, + {X: Field{[10]uint32{0x02ab1193, 0x039f596a, 0x014fd6d8, 0x03d72dec, 0x011afa2f, 0x03ddf406, 0x03509c88, 0x0266d255, 0x022476b3, 0x001fcc3a}}, Y: Field{[10]uint32{0x037acaec, 0x03d2ffd8, 0x03e9880e, 0x02d9ec40, 0x01daff7b, 0x03d8c47a, 0x015389a5, 0x032530ec, 0x03d4b231, 0x003297bd}}}, + {X: Field{[10]uint32{0x000b7a00, 0x0280d860, 0x01d9ac60, 0x02d28774, 0x03ef0fb7, 0x029b240f, 0x02210fad, 0x0053ed1a, 0x031e1d9f, 0x0014263f}}, Y: Field{[10]uint32{0x0117ddc0, 0x016c4cbf, 0x03e5362a, 0x01035837, 0x02b3ee1b, 0x01d50801, 0x00d37c6e, 0x0323e021, 0x0141d81f, 0x00025cc4}}}, + {X: Field{[10]uint32{0x0378ad58, 0x00b20789, 0x01c96b9f, 0x03333911, 0x02e2f3c4, 0x0272fbe9, 0x0095be6b, 0x0144a9ca, 0x007de9ee, 0x000cade3}}, Y: Field{[10]uint32{0x00c8753c, 0x01c8dde5, 0x0275ba49, 0x0151eb88, 0x0073bb80, 0x038a0983, 0x03c3896e, 0x01c78cbb, 0x01f513df, 0x003b8612}}}, + {X: Field{[10]uint32{0x0147a4f7, 0x01605541, 0x01fc074b, 0x03c209a7, 0x00e37d50, 0x01f1cac3, 0x036eef2a, 0x027ef341, 0x00fddc8e, 0x0038b2dd}}, Y: Field{[10]uint32{0x005cc4a4, 0x006af2c0, 0x012be864, 0x038d848b, 0x03addea9, 0x01cdbac2, 0x022df062, 0x034891e9, 0x02d71c9d, 0x0034ea8b}}}, + {X: Field{[10]uint32{0x010ae3a8, 0x00366734, 0x00b141be, 0x00d7c8d7, 0x0026009a, 0x01aacd5d, 0x01c29949, 0x035efb6b, 0x007566d4, 0x00210e11}}, Y: Field{[10]uint32{0x02dd791f, 0x00109acb, 0x01c4f239, 0x01e4198c, 0x0334ef0d, 0x01ab4cc1, 0x0101ac5e, 0x00293697, 0x02091698, 0x00313840}}}, + {X: Field{[10]uint32{0x0311d67e, 0x019720b1, 0x00b878ab, 0x0311bd98, 0x030587d9, 0x01b0c221, 0x0184c6fc, 0x00080e6d, 0x0088b894, 0x001058b5}}, Y: Field{[10]uint32{0x00852649, 0x011eb968, 0x0295dbda, 0x00ae12d3, 0x03c1732f, 0x03ee28eb, 0x02f22c25, 0x00a27ddd, 0x02903236, 0x0019c58f}}}, + {X: Field{[10]uint32{0x035f683d, 0x02e9292f, 0x010684f3, 0x01ebb0f9, 0x00175d76, 0x0373d53f, 0x0389bfd2, 0x003cd3c3, 0x03a84caf, 0x000feb4f}}, Y: Field{[10]uint32{0x03e61826, 0x0083bf37, 0x012a53fa, 0x01cb9f43, 0x030cf718, 0x031c629c, 0x030ca647, 0x0101eecb, 0x007cb6cc, 0x0003346f}}}, + {X: Field{[10]uint32{0x02b1a86b, 0x0254cbeb, 0x0398f1c6, 0x02fc4dc1, 0x02c1fb84, 0x00174205, 0x00c1a7ce, 0x01e8015a, 0x0200a300, 0x0019d3c9}}, Y: Field{[10]uint32{0x020d38a5, 0x03bb31a7, 0x02259e09, 0x03682c60, 0x0370db57, 0x00011602, 0x0343b257, 0x00cecfb7, 0x01f9413f, 0x000a6748}}}, + {X: Field{[10]uint32{0x02e9f08f, 0x034a6f57, 0x00bcff87, 0x031a49c5, 0x023d82d6, 0x007ecec9, 0x01b815ad, 0x01d2aee0, 0x01a54ade, 0x0034cbd3}}, Y: Field{[10]uint32{0x033eea87, 0x0105a442, 0x01d582fc, 0x0114d4d6, 0x0382e14f, 0x00165c1d, 0x0299016c, 0x014ee5a3, 0x02738b8e, 0x003e50a7}}}, + {X: Field{[10]uint32{0x03ce3ff6, 0x02553c78, 0x008cb1ed, 0x00c7dcac, 0x036fbb69, 0x00d61174, 0x01936571, 0x021555b9, 0x02704353, 0x000c3939}}, Y: Field{[10]uint32{0x0388db7b, 0x0169567a, 0x0340dc69, 0x00d769c1, 0x010a878d, 0x00eef26c, 0x01935011, 0x02618e12, 0x03ce6198, 0x00118be6}}}, + {X: Field{[10]uint32{0x00cad297, 0x01c6c135, 0x0180bf19, 0x0042c079, 0x027f3dcd, 0x00c3937b, 0x02829043, 0x0330c011, 0x02003c51, 0x002f8818}}, Y: Field{[10]uint32{0x01ccb9bc, 0x0163b5cb, 0x002a0d55, 0x0242415a, 0x01b1c610, 0x01387195, 0x033d48a7, 0x03950a15, 0x03c49d61, 0x00188622}}}, + {X: Field{[10]uint32{0x035df04a, 0x026167ff, 0x01993c41, 0x0298077d, 0x01cb6e84, 0x030abc84, 0x01e0fb9a, 0x01147b4a, 0x0023ace3, 0x0024c511}}, Y: Field{[10]uint32{0x0037b47c, 0x00a9b44c, 0x039d1d90, 0x0093dcae, 0x00f10652, 0x01e6480e, 0x031a3f9d, 0x01097d71, 0x03b164c3, 0x001f0437}}}, + {X: Field{[10]uint32{0x017b112c, 0x01906305, 0x012a7cb6, 0x00171edf, 0x01978292, 0x030d3ee0, 0x01ca26d6, 0x032f73c8, 0x00044f5f, 0x002c057e}}, Y: Field{[10]uint32{0x023a1d5f, 0x03a85153, 0x008c1d3a, 0x01bea8c2, 0x003b3cdc, 0x037e357e, 0x00a655b2, 0x03a04dd1, 0x02086d04, 0x002ae307}}}, + {X: Field{[10]uint32{0x01a21b52, 0x03cabcd0, 0x000d36b3, 0x03795e85, 0x024f8a18, 0x0291968e, 0x00868117, 0x025f6279, 0x01da649d, 0x00357a78}}, Y: Field{[10]uint32{0x0327447a, 0x017a164b, 0x0080d895, 0x01708901, 0x03169346, 0x03537436, 0x01a13cc1, 0x03b5cc44, 0x0037f391, 0x00132c11}}}, + {X: Field{[10]uint32{0x036966bb, 0x0294c5b4, 0x02d6f996, 0x0335cb85, 0x01983005, 0x02e6490e, 0x03f8ed77, 0x03281976, 0x01047dd7, 0x0034eb90}}, Y: Field{[10]uint32{0x0125ac46, 0x00370534, 0x00a614b1, 0x035f7c2b, 0x0164f8cd, 0x0105f1b6, 0x010f0303, 0x03aec8a8, 0x0321ad22, 0x002f46ba}}}, + {X: Field{[10]uint32{0x0097b065, 0x002be1f2, 0x037b49f8, 0x002a0b8d, 0x0087197d, 0x02003c29, 0x026cdd22, 0x03e563f1, 0x0363d885, 0x00118f89}}, Y: Field{[10]uint32{0x02f7ca7f, 0x026499c7, 0x03508b79, 0x0187ef25, 0x0326b80c, 0x0137818a, 0x03a311a9, 0x003f5f7c, 0x00db0e5d, 0x002ffbeb}}}, + {X: Field{[10]uint32{0x00641917, 0x0377f244, 0x0347c83c, 0x03102ff9, 0x0158e597, 0x02d8fb0c, 0x0353ec1b, 0x00159f1b, 0x01fd127c, 0x001e617f}}, Y: Field{[10]uint32{0x0332ed03, 0x016f559f, 0x0308703a, 0x00783b19, 0x0124ed29, 0x038a26bb, 0x0325fe1d, 0x0218bbca, 0x02daf3d9, 0x00180f04}}}, + {X: Field{[10]uint32{0x027703e9, 0x03c550f6, 0x02d0ed5f, 0x0272e0f4, 0x019e74c5, 0x003ab1fe, 0x01d24941, 0x038e76cb, 0x016b5f76, 0x001d286b}}, Y: Field{[10]uint32{0x00e0db08, 0x00dff5e4, 0x00c33d57, 0x01a250ba, 0x00093e09, 0x00c6efa8, 0x0193d836, 0x0318f358, 0x03ef18c9, 0x00331855}}}, + {X: Field{[10]uint32{0x022f6da3, 0x034225ac, 0x03463a71, 0x00b1c9d1, 0x03c9bab4, 0x02e866df, 0x01416664, 0x01d7d80b, 0x02507033, 0x000c1a0a}}, Y: Field{[10]uint32{0x03a22ff8, 0x0053665d, 0x0273f177, 0x0383c672, 0x036290d0, 0x00c474c5, 0x00f39e7f, 0x02d3e9b2, 0x00f6b018, 0x00154f81}}}, + {X: Field{[10]uint32{0x0369ef57, 0x01b04d1d, 0x0352b1ee, 0x00ac9193, 0x03654e7a, 0x03e9e565, 0x03791efe, 0x0357c9b0, 0x00f0d7c0, 0x00278856}}, Y: Field{[10]uint32{0x01008373, 0x03efc98a, 0x038509e2, 0x023bcd68, 0x029ffd7c, 0x03e9dd8b, 0x003a3481, 0x014fc240, 0x00dd1b90, 0x0001c4bf}}}, + {X: Field{[10]uint32{0x02327d66, 0x0215fcef, 0x03ce7322, 0x019b8f13, 0x028172e5, 0x00094e30, 0x024029c2, 0x03273fae, 0x02989a43, 0x0005db89}}, Y: Field{[10]uint32{0x03a4b1c3, 0x01e0d307, 0x009ee7b4, 0x007d3bb8, 0x019aefd3, 0x023710f0, 0x0270b487, 0x03ae1df4, 0x01d04b29, 0x003b6332}}}, + {X: Field{[10]uint32{0x00374da8, 0x011e2314, 0x00f1b700, 0x00e4f7f1, 0x02cf1892, 0x00eb5d1f, 0x02bb89a1, 0x0079b9a2, 0x02fea377, 0x001d751b}}, Y: Field{[10]uint32{0x02a6bed8, 0x011c9961, 0x02e1a3ca, 0x008544d1, 0x00d7efc2, 0x02ce6a1a, 0x00b86fd2, 0x01d9e7f4, 0x010a9950, 0x0026148e}}}, + {X: Field{[10]uint32{0x01605721, 0x00c67d91, 0x029345b7, 0x00114721, 0x032310fb, 0x0097db57, 0x0298c4c8, 0x02403fed, 0x00c67d64, 0x00202688}}, Y: Field{[10]uint32{0x00e286c1, 0x03e97cfe, 0x03e6a5eb, 0x03315258, 0x003d096c, 0x01fe8105, 0x02b06192, 0x01f88add, 0x0180d991, 0x0027a652}}}, + {X: Field{[10]uint32{0x0172c180, 0x018d11be, 0x023528d5, 0x0073ca71, 0x03defece, 0x02b1c20f, 0x00500b4e, 0x03c453b5, 0x003a43f7, 0x0006ce24}}, Y: Field{[10]uint32{0x02f408f9, 0x02504676, 0x0272ad33, 0x01adbd76, 0x022708b2, 0x0354f792, 0x0353f77f, 0x002ba224, 0x01c931a6, 0x00100dbb}}}, + {X: Field{[10]uint32{0x00feef23, 0x01b1621a, 0x0166df4e, 0x0338b41d, 0x03263458, 0x03e8fbf9, 0x00b4e8dd, 0x012e7aac, 0x01b6eb29, 0x00242a03}}, Y: Field{[10]uint32{0x03cf91e6, 0x031dba4b, 0x01681442, 0x02c9eef6, 0x035ee050, 0x0278a4da, 0x0321145d, 0x03c6361f, 0x039f9754, 0x001d4f22}}}, + {X: Field{[10]uint32{0x036bea9b, 0x009751cd, 0x0146e6dc, 0x00152851, 0x023e6f36, 0x03d80d03, 0x01625460, 0x0166604b, 0x03844b70, 0x0030b203}}, Y: Field{[10]uint32{0x02a79c64, 0x02f5120e, 0x00f6123a, 0x029c0ad3, 0x0173b871, 0x0074ec6d, 0x03495b89, 0x03539c62, 0x020d68f4, 0x0021b285}}}, + {X: Field{[10]uint32{0x028e7553, 0x00f38468, 0x01692a32, 0x038757f3, 0x012d00cf, 0x0067ec99, 0x03989d3f, 0x02d7cff7, 0x02744cf4, 0x00273d81}}, Y: Field{[10]uint32{0x0247759d, 0x003144f0, 0x0385dc30, 0x0038f116, 0x03edd0f3, 0x03eb5a18, 0x017b6a3c, 0x03f3056d, 0x03f7b973, 0x002051f2}}}, + {X: Field{[10]uint32{0x02d82208, 0x023d6156, 0x005abce9, 0x0031d080, 0x02a6280b, 0x018364db, 0x0093fd60, 0x031ac969, 0x03a28742, 0x0015d223}}, Y: Field{[10]uint32{0x01a29574, 0x021e113c, 0x03921dc2, 0x03994084, 0x03af949a, 0x009ed1c2, 0x02dbe56c, 0x02fa9562, 0x02455073, 0x000c6cf2}}}, + {X: Field{[10]uint32{0x0099447d, 0x02f17ad2, 0x00dc84ed, 0x005b1d63, 0x02d40ed6, 0x01d658f0, 0x00df2b8d, 0x02ef2372, 0x00be6be8, 0x003c44cf}}, Y: Field{[10]uint32{0x0252f50f, 0x02ee24fd, 0x016870cb, 0x018375e8, 0x0110bd3a, 0x0359f558, 0x014626d8, 0x02c8fd5c, 0x00472225, 0x0015ff09}}}, + {X: Field{[10]uint32{0x03be89c0, 0x038105d6, 0x025050f4, 0x02ffcf90, 0x013f3d69, 0x00196ee0, 0x00989c79, 0x02f5e1fe, 0x02753301, 0x0025420f}}, Y: Field{[10]uint32{0x00b33482, 0x024fe925, 0x03c70cc5, 0x038055ac, 0x00ee4e92, 0x01dc1039, 0x017c73ca, 0x0037a518, 0x035ce7d1, 0x002112b6}}}, + {X: Field{[10]uint32{0x005c75c6, 0x000110ef, 0x01973621, 0x02cd8f23, 0x038668c7, 0x03266bd8, 0x0176ed29, 0x0159d579, 0x0355cbb7, 0x0006a420}}, Y: Field{[10]uint32{0x032454a2, 0x02b48b8b, 0x03f27057, 0x001d2d13, 0x00a73538, 0x01589f60, 0x03787222, 0x01b8d4bd, 0x026c6e55, 0x0035d951}}}, + {X: Field{[10]uint32{0x0349b648, 0x037cefbc, 0x01db4f04, 0x018f17cc, 0x038a2d1f, 0x02b65fe7, 0x0067308f, 0x010f56aa, 0x03740bd3, 0x0031648b}}, Y: Field{[10]uint32{0x027bd648, 0x014f251b, 0x00c4377f, 0x01108da9, 0x00da8118, 0x0362dd4b, 0x02605e50, 0x036fa204, 0x00687cfc, 0x001dec7c}}}, + {X: Field{[10]uint32{0x02c95dc9, 0x00d10839, 0x017d9964, 0x00c458e2, 0x02055dcf, 0x006c2d9c, 0x011a4043, 0x000a5dda, 0x01969f91, 0x0019386c}}, Y: Field{[10]uint32{0x0222550c, 0x02538ca4, 0x0371ddce, 0x034873bc, 0x029bfb77, 0x0240d6d9, 0x027fa26a, 0x030f27ac, 0x00c7c11f, 0x00305bd8}}}, + {X: Field{[10]uint32{0x03ce08de, 0x03edfa81, 0x01ce7808, 0x029d527a, 0x03c602f8, 0x00ccf74d, 0x0121bad3, 0x0113b5b1, 0x02766877, 0x0000cecb}}, Y: Field{[10]uint32{0x02988efd, 0x01444aa1, 0x038114c2, 0x032a9b79, 0x03d742e8, 0x03f7652f, 0x036c2437, 0x022ba573, 0x027fc8ed, 0x00386f3f}}}, + {X: Field{[10]uint32{0x01e4f294, 0x011cef91, 0x0275c951, 0x003fca52, 0x0189fbf3, 0x01ed2b0c, 0x02310331, 0x0228730a, 0x034c866d, 0x00083c63}}, Y: Field{[10]uint32{0x02d0ea0e, 0x032ba074, 0x0358943f, 0x027dc5cf, 0x030fe852, 0x034defb9, 0x00883363, 0x03ded3f6, 0x03c9d08e, 0x00235a15}}}, + {X: Field{[10]uint32{0x03b69a8b, 0x01105db5, 0x03befd14, 0x014d5190, 0x012df346, 0x038aa2e7, 0x02b4c685, 0x031c5a83, 0x03c944c9, 0x00134588}}, Y: Field{[10]uint32{0x0117be80, 0x0160e222, 0x02f7854f, 0x0357b654, 0x022b601b, 0x01bb0d25, 0x016bf6b9, 0x02b40fe6, 0x01fe8744, 0x00377c6e}}}, + {X: Field{[10]uint32{0x01b079e0, 0x0343fd4f, 0x027e2d4a, 0x02937436, 0x014faad0, 0x016251e1, 0x00d6b368, 0x00a4b4a0, 0x00dbe8ab, 0x002a406c}}, Y: Field{[10]uint32{0x03298a9d, 0x00398391, 0x023b301d, 0x03829ac1, 0x00716bc5, 0x0079eb99, 0x02f04dc6, 0x006986bd, 0x03e1834f, 0x000fc9f9}}}, + {X: Field{[10]uint32{0x03fc9a70, 0x007269ba, 0x0089b303, 0x013df202, 0x012f42a2, 0x0211916c, 0x03d66f44, 0x023ff542, 0x00713021, 0x001f82bc}}, Y: Field{[10]uint32{0x02aedb3f, 0x01b6de16, 0x003ab241, 0x005fd6f7, 0x010d5795, 0x017ac7a2, 0x013fbb23, 0x0343127d, 0x03f3926c, 0x00142f08}}}, + {X: Field{[10]uint32{0x02ebf20d, 0x00aaac16, 0x01da4ef8, 0x00a151ba, 0x00b47f05, 0x0102a40e, 0x005d3354, 0x00968b06, 0x007e1a7b, 0x001eea06}}, Y: Field{[10]uint32{0x02185187, 0x00924c26, 0x033a39ab, 0x02f39f62, 0x000527ef, 0x0329775e, 0x026c25c7, 0x00dc2be1, 0x026c9625, 0x001b9abb}}}, + {X: Field{[10]uint32{0x013a6807, 0x02128e76, 0x0277255b, 0x02583a49, 0x009767b7, 0x0063f28e, 0x0000816e, 0x02c9e6d8, 0x03c34d83, 0x00230143}}, Y: Field{[10]uint32{0x01174870, 0x026f104d, 0x023ce701, 0x0336073c, 0x015d699f, 0x0106604e, 0x03c29650, 0x023eca09, 0x00ef75b6, 0x002618c5}}}, + {X: Field{[10]uint32{0x019c2ec9, 0x02e2c6f2, 0x006202a7, 0x028b2fd4, 0x009d7201, 0x01492652, 0x0060583a, 0x037e1896, 0x009a78e4, 0x0014ede1}}, Y: Field{[10]uint32{0x03e469c0, 0x00b77e78, 0x012c544d, 0x00951ca3, 0x02e0a44d, 0x006f8b14, 0x024b22de, 0x01f41d77, 0x0212ac60, 0x00138c7a}}}, + {X: Field{[10]uint32{0x03313b33, 0x03149f94, 0x0278efeb, 0x0010c77b, 0x02b63350, 0x03f9d8af, 0x0075a010, 0x032655a8, 0x0267a5d0, 0x0026f7e7}}, Y: Field{[10]uint32{0x029d2bb0, 0x0252bf63, 0x00d5a17e, 0x00d9d8ba, 0x02907f26, 0x03c5b2b4, 0x00c27926, 0x00383b89, 0x0221a596, 0x00250991}}}, + {X: Field{[10]uint32{0x02381f34, 0x03f66412, 0x012fb429, 0x00b1bb0b, 0x0117d9f4, 0x01d81be2, 0x02c031a4, 0x02cef42e, 0x02b37a8a, 0x001f2a9c}}, Y: Field{[10]uint32{0x017303c9, 0x01f77597, 0x037f1ef8, 0x00781a0b, 0x03ff8fbd, 0x00804253, 0x023d6beb, 0x037a34d3, 0x03ab7ee5, 0x0016d614}}}, + {X: Field{[10]uint32{0x0193d81a, 0x01ae5f8e, 0x0093dde1, 0x031d54c9, 0x03925d62, 0x00fd236d, 0x000295fc, 0x01e5d5e7, 0x039f0982, 0x000bbca6}}, Y: Field{[10]uint32{0x03110753, 0x008cde8c, 0x015e89b4, 0x0090e1f6, 0x00a0afff, 0x02fd31c5, 0x0137ef96, 0x016e9829, 0x004dd987, 0x00125b25}}}, + {X: Field{[10]uint32{0x03317ff8, 0x030d2fa5, 0x00e6a9e5, 0x014bb0d5, 0x024029e9, 0x039740b1, 0x03c1860a, 0x01e1d55c, 0x00ad95b0, 0x0037c55f}}, Y: Field{[10]uint32{0x0284c162, 0x01bb8e04, 0x03ba470f, 0x00ba15a4, 0x00b629e6, 0x00acf30c, 0x01c979a0, 0x00ad4226, 0x02c77592, 0x003cbb32}}}, + {X: Field{[10]uint32{0x02454b1d, 0x02a61c05, 0x020e7b15, 0x00dadc64, 0x00e651d2, 0x02e7ad51, 0x0182e643, 0x02949ad8, 0x0150a29c, 0x00375570}}, Y: Field{[10]uint32{0x002e9368, 0x01788fd3, 0x00f5c4d9, 0x02af5dea, 0x00ac685a, 0x01a30944, 0x01605d42, 0x03a8bace, 0x03a542f4, 0x001131d5}}}, + {X: Field{[10]uint32{0x00227f27, 0x02792e26, 0x0172325b, 0x024e1fc0, 0x02c4d5d3, 0x018f4c95, 0x01477630, 0x00b1e464, 0x00f46ed4, 0x0005a21b}}, Y: Field{[10]uint32{0x0217fffb, 0x00e0c5c2, 0x00367ec5, 0x02378bd2, 0x02c824ed, 0x00f280f7, 0x02192fc9, 0x00ca6751, 0x02207ee7, 0x001d0868}}}, + {X: Field{[10]uint32{0x0360732f, 0x03aa9eca, 0x0345e56a, 0x0089213f, 0x0327968c, 0x01bc2b3f, 0x028b306d, 0x00186023, 0x00fcdaa3, 0x001bfc60}}, Y: Field{[10]uint32{0x029961a9, 0x00fa87bd, 0x038cc22f, 0x008baa16, 0x026c8d40, 0x018dd868, 0x0254dad0, 0x02bfc3f0, 0x0254f0c2, 0x001f45b5}}}, + {X: Field{[10]uint32{0x00395e36, 0x03323ab7, 0x005c4f8b, 0x0154e7da, 0x00aa912b, 0x003b99df, 0x034f51f4, 0x030a80fa, 0x0111a00d, 0x0000fa91}}, Y: Field{[10]uint32{0x03c9259d, 0x000d719c, 0x0049824b, 0x00d94a43, 0x030a2f2e, 0x010376d4, 0x02398393, 0x0008564e, 0x01f1528b, 0x001b27b4}}}, + {X: Field{[10]uint32{0x0253081d, 0x0332883c, 0x014b63c7, 0x002a0d79, 0x0153e415, 0x00cb7ee3, 0x00742d8f, 0x03a7aace, 0x0170dc3d, 0x0002e0b3}}, Y: Field{[10]uint32{0x01d0e24d, 0x012f02ab, 0x0326860d, 0x015aa48b, 0x0302effc, 0x00ca5d97, 0x02e20499, 0x01b9d74c, 0x03fe1f7f, 0x0003a2f2}}}, + {X: Field{[10]uint32{0x0196c77f, 0x00e2d5e8, 0x03d49b7b, 0x03c05cc9, 0x0206d056, 0x00169a69, 0x02e23bf1, 0x021d1613, 0x03e00074, 0x003f8bf0}}, Y: Field{[10]uint32{0x01bf3916, 0x02ef6dba, 0x0271d4f9, 0x007793f7, 0x007da856, 0x01601ec7, 0x01a32f69, 0x034a5f32, 0x001cc3c6, 0x000f8625}}}, + {X: Field{[10]uint32{0x03b7858b, 0x036fd5d2, 0x035ec845, 0x00511ba8, 0x02e8b001, 0x00b6e75b, 0x028778b1, 0x00da4d1f, 0x0176cdaa, 0x00012e40}}, Y: Field{[10]uint32{0x0173c154, 0x032abb2e, 0x03155295, 0x03f0bdea, 0x021fdad0, 0x02162031, 0x026e349b, 0x017f4fb2, 0x03ab6e9c, 0x003d8151}}}, + {X: Field{[10]uint32{0x0144c6d2, 0x03b04296, 0x028a0cd3, 0x01cbd654, 0x01defc42, 0x0036f27b, 0x00c86a9f, 0x01802d2e, 0x02511d34, 0x000d7ce0}}, Y: Field{[10]uint32{0x00b5ccd5, 0x00c8d2f4, 0x00daeae8, 0x02c6c4a8, 0x0043762b, 0x03e5b2a6, 0x0337a80c, 0x028797db, 0x01f6ef7f, 0x000a6a0d}}}, + {X: Field{[10]uint32{0x022cb94a, 0x0308dc5c, 0x011cdf3c, 0x02b0fc04, 0x03e1d0e9, 0x021f4fd6, 0x0027e265, 0x02dffe84, 0x02970311, 0x00075d2c}}, Y: Field{[10]uint32{0x00c2071e, 0x03307dca, 0x030e2606, 0x02ba771f, 0x0135dc99, 0x003d7183, 0x03bcfb81, 0x005382dc, 0x038b57f1, 0x00171ef3}}}, + {X: Field{[10]uint32{0x00450428, 0x0129a2a6, 0x013e6f93, 0x02df1056, 0x024f75d1, 0x027b1c8b, 0x0020737b, 0x03e5582c, 0x00f309c6, 0x00142825}}, Y: Field{[10]uint32{0x03778eee, 0x0243c7a0, 0x021b554a, 0x02da1a6a, 0x0089c86d, 0x02a07c11, 0x009eaba6, 0x0033f65a, 0x0222dfe1, 0x0028a1b8}}}, + {X: Field{[10]uint32{0x03c63db7, 0x0029b589, 0x0010599b, 0x036452d2, 0x00282dbc, 0x01d7b0e3, 0x02cf12e2, 0x0055f37f, 0x03812129, 0x0026d96e}}, Y: Field{[10]uint32{0x00223188, 0x0164ef06, 0x03d65528, 0x0102b423, 0x00660b4c, 0x007a629e, 0x013b2e95, 0x00890864, 0x031a3f0f, 0x003160b6}}}, + {X: Field{[10]uint32{0x02a4bc6b, 0x00200b4d, 0x02ca51c2, 0x03179883, 0x0085e7f1, 0x007720c7, 0x02c1115a, 0x0281b915, 0x00fc1fdf, 0x0022d151}}, Y: Field{[10]uint32{0x0220350d, 0x022c67de, 0x003b06ea, 0x02e6556c, 0x01e4116f, 0x02dc3993, 0x022af7f4, 0x00980b9c, 0x0041288f, 0x0038f9df}}}, + {X: Field{[10]uint32{0x020ab4aa, 0x02076577, 0x01e29d5f, 0x004f773b, 0x006cb2ae, 0x0155e3f7, 0x039b29cc, 0x03adf145, 0x0080b959, 0x001b1c26}}, Y: Field{[10]uint32{0x027c4bdc, 0x033144e7, 0x03b43c2d, 0x0314254f, 0x02ee2b59, 0x03cf7aae, 0x036c0c76, 0x02e9099c, 0x03aebd8e, 0x003278cf}}}, + {X: Field{[10]uint32{0x01537806, 0x02d59dcf, 0x001e7085, 0x019e00ae, 0x0076fc9d, 0x012821e8, 0x01891f79, 0x01a9c657, 0x035137ba, 0x001ddd82}}, Y: Field{[10]uint32{0x018e3a25, 0x0206af85, 0x037f0d7e, 0x037b9a39, 0x021b87ff, 0x03d105ef, 0x0358c7ed, 0x02962fd3, 0x00f5aaee, 0x003d480b}}}, + {X: Field{[10]uint32{0x02163102, 0x03109b9f, 0x025d0df4, 0x03e3bf58, 0x03e23cd4, 0x02324699, 0x02904a8a, 0x00320ba6, 0x03836a0b, 0x0006a2f5}}, Y: Field{[10]uint32{0x02285844, 0x0317f304, 0x01f2e4e9, 0x005adc02, 0x01c2a963, 0x03dd2a1f, 0x0174f282, 0x00b2b8f1, 0x00cab095, 0x00187f99}}}, + {X: Field{[10]uint32{0x024abc30, 0x02d4e421, 0x031d753d, 0x02679a51, 0x02a3fb30, 0x00936475, 0x01e453ed, 0x02644fec, 0x01b65907, 0x003f885f}}, Y: Field{[10]uint32{0x01730b58, 0x03dac0d3, 0x012538cd, 0x00714e5a, 0x0193a0c6, 0x007c11f5, 0x030f20fb, 0x017b5a02, 0x02bba962, 0x001773e6}}}, + {X: Field{[10]uint32{0x01b33b91, 0x02bb527d, 0x02c5f212, 0x035d232d, 0x0107e3ab, 0x03ab5a5b, 0x00f58b65, 0x0357af0e, 0x023754af, 0x00094135}}, Y: Field{[10]uint32{0x035d75d4, 0x0004eb5e, 0x03437b5e, 0x004159d7, 0x00ba7cec, 0x01cbeefd, 0x01321c6c, 0x011a713d, 0x034375f1, 0x001e69af}}}, + {X: Field{[10]uint32{0x03197b5c, 0x03772bf6, 0x0176b7fb, 0x02fd7322, 0x036160ab, 0x021c4170, 0x029bd3f6, 0x008b5e26, 0x0302f47b, 0x0002c1bd}}, Y: Field{[10]uint32{0x0332f63d, 0x017e4635, 0x007781cd, 0x01ff45e7, 0x005bd2fe, 0x02a8f7f9, 0x012a35b6, 0x035247d6, 0x03d419a4, 0x001d9a6e}}}, + {X: Field{[10]uint32{0x01044e23, 0x004a2983, 0x010acbc2, 0x027af48f, 0x00a6f3f9, 0x006d5120, 0x034eeb93, 0x0273e500, 0x003bb31f, 0x00200ec8}}, Y: Field{[10]uint32{0x0328d1c7, 0x014e0705, 0x006a954e, 0x02fd26e5, 0x03bfc9cc, 0x03e98aeb, 0x0320c5c7, 0x03dd6566, 0x008df271, 0x000c22af}}}, + {X: Field{[10]uint32{0x0302749a, 0x00a27f80, 0x028dcd57, 0x037a3a56, 0x02e52de1, 0x000e9cc4, 0x010e5bda, 0x033ab6ed, 0x00b4c5f5, 0x00099aa7}}, Y: Field{[10]uint32{0x02e0ae7e, 0x021bff11, 0x03baa8b3, 0x02e879f0, 0x033dc0ef, 0x03213b53, 0x0282877c, 0x02cbea8f, 0x030ba856, 0x0027baa5}}}, + {X: Field{[10]uint32{0x004eba94, 0x00d82f3e, 0x02a355d7, 0x0107a6af, 0x0364c4c1, 0x02058f7c, 0x019a7ab9, 0x01eb5496, 0x0195d80c, 0x003f62a7}}, Y: Field{[10]uint32{0x03b1030c, 0x035f5cf7, 0x01a713e2, 0x03691eff, 0x03a30377, 0x02b9ff4c, 0x032e2688, 0x014ecd66, 0x03021009, 0x002a7ec5}}}, + {X: Field{[10]uint32{0x01db0a7d, 0x02dbc9be, 0x038f8f2c, 0x0316dec2, 0x026e84ac, 0x02cb202f, 0x03c339a8, 0x023c8d67, 0x01f309f2, 0x0029cc8b}}, Y: Field{[10]uint32{0x02db6be6, 0x028ba85b, 0x00885c12, 0x0384c5c5, 0x03095f40, 0x03c4be95, 0x01b7f5b2, 0x025405ff, 0x029d2174, 0x0008bdbf}}}, + {X: Field{[10]uint32{0x03052d36, 0x00f1f932, 0x01ffc82c, 0x006ba95a, 0x00bd4c46, 0x03dfc3c6, 0x02104ddb, 0x0199258e, 0x010f336a, 0x0020aa30}}, Y: Field{[10]uint32{0x01f1dd0c, 0x0384a1e5, 0x038c118f, 0x03533411, 0x015e5c31, 0x02dc6d9c, 0x010501cc, 0x01c89e2e, 0x00a2c0ef, 0x001cdf3b}}}, + {X: Field{[10]uint32{0x0315d6df, 0x01e12a53, 0x00516c54, 0x02dd6e97, 0x026c4ef2, 0x01698309, 0x03cd12f0, 0x03de5401, 0x01b68e3b, 0x0026d434}}, Y: Field{[10]uint32{0x03ddd8fd, 0x01bfadf2, 0x02778737, 0x009cb51f, 0x02403fff, 0x03c63549, 0x003fd2a4, 0x01db6340, 0x0109b791, 0x000abf23}}}, + {X: Field{[10]uint32{0x02e08d32, 0x021657ee, 0x00b80671, 0x035fba0b, 0x02b8dcb9, 0x0074c15a, 0x023a8228, 0x008ff9f7, 0x03ddc8b4, 0x000fe420}}, Y: Field{[10]uint32{0x028fa758, 0x0257ff3c, 0x01376e21, 0x01b48330, 0x0081f77f, 0x03e80868, 0x020ed90a, 0x007646a7, 0x0152fd51, 0x0032c4f0}}}, + {X: Field{[10]uint32{0x02167faf, 0x0041d3bc, 0x00bfadbd, 0x00196754, 0x03c92317, 0x024999b2, 0x02ff6bd5, 0x0306895b, 0x01c1ee17, 0x0031d721}}, Y: Field{[10]uint32{0x00023a52, 0x02bc5a50, 0x00c8596d, 0x005b53df, 0x01bd698a, 0x0191fd23, 0x00ca8922, 0x010275d7, 0x02be5e09, 0x0006ad3a}}}, + {X: Field{[10]uint32{0x00656045, 0x02355da6, 0x03fb95c6, 0x00acf52d, 0x0060ea8e, 0x03deab5f, 0x010cf0d2, 0x03d74ed3, 0x03eaf8a0, 0x00314d07}}, Y: Field{[10]uint32{0x00e88915, 0x034eae5d, 0x023986e6, 0x035535c4, 0x02dc48a4, 0x009aae60, 0x00fa422a, 0x016e7e92, 0x00e9007e, 0x00257e7d}}}, + {X: Field{[10]uint32{0x00c2d89b, 0x01e80c98, 0x027fd896, 0x02ddd4b5, 0x02220852, 0x01c17748, 0x02bd4c68, 0x025f8354, 0x023e2a89, 0x0020eb36}}, Y: Field{[10]uint32{0x03c31df0, 0x03a5de46, 0x00e8e330, 0x00ef752e, 0x030a77cd, 0x025c45d5, 0x01b55809, 0x02e945fd, 0x02e1d655, 0x0037386e}}}, + {X: Field{[10]uint32{0x0025237b, 0x009e6cc0, 0x039625bd, 0x01c5b174, 0x00f1c0d5, 0x00a75653, 0x01c4164e, 0x0241d16e, 0x01468b29, 0x0016e064}}, Y: Field{[10]uint32{0x03625d8e, 0x0227d2bd, 0x034fcf69, 0x0329c6e8, 0x011c48d2, 0x00207cd6, 0x0188daab, 0x0377eafb, 0x02a03fdd, 0x00330d8d}}}, + {X: Field{[10]uint32{0x003b0e6c, 0x0241178b, 0x037219b8, 0x01934e35, 0x0332f5f6, 0x01984139, 0x00417961, 0x00e3bfe0, 0x0122214e, 0x00191de0}}, Y: Field{[10]uint32{0x0211a32d, 0x033e6111, 0x02f81974, 0x000e352b, 0x00d8b632, 0x02e29f47, 0x02afc4a0, 0x03bb1ee3, 0x00497e15, 0x000ca73c}}}, + {X: Field{[10]uint32{0x02f12323, 0x0032e7c6, 0x0017c43d, 0x0275b684, 0x002b475a, 0x02bba199, 0x01099099, 0x018bd1e5, 0x026afe57, 0x003b5360}}, Y: Field{[10]uint32{0x03e48e78, 0x00c6defd, 0x02274d05, 0x02696510, 0x01c4d88c, 0x02b1e467, 0x0296f928, 0x0297bb20, 0x01be3faf, 0x00231be0}}}, + {X: Field{[10]uint32{0x01109c4a, 0x01bad033, 0x02fe97a0, 0x00ad57de, 0x024d82ac, 0x011bf586, 0x016f5513, 0x03b30eb3, 0x0124419a, 0x000e2d0a}}, Y: Field{[10]uint32{0x03e05583, 0x032e4adc, 0x02b07b5a, 0x01a28b39, 0x02de49d7, 0x03cd669a, 0x030965a1, 0x00bdceca, 0x00962feb, 0x001fd0b0}}}, + {X: Field{[10]uint32{0x02138911, 0x02b0ba60, 0x016e3446, 0x018893c8, 0x01bb2a8f, 0x020fa185, 0x034cf701, 0x02529ed0, 0x00a8d8bb, 0x0030f2b5}}, Y: Field{[10]uint32{0x0282765e, 0x023b4e1c, 0x01b2759a, 0x00bbc6c9, 0x01420e37, 0x00b738e8, 0x0342ce38, 0x025d9081, 0x02278cad, 0x003d926f}}}, + {X: Field{[10]uint32{0x00bd6538, 0x02239295, 0x01a9e555, 0x015cd964, 0x00d9212e, 0x038faa7b, 0x03ae40dc, 0x00dbf553, 0x03f4d3d2, 0x000b5023}}, Y: Field{[10]uint32{0x00e815b7, 0x02816d43, 0x021324b9, 0x01c5616a, 0x0285e2a1, 0x00a66fbd, 0x02284bf0, 0x00a81af1, 0x01f0e869, 0x003565ab}}}, + {X: Field{[10]uint32{0x0233c854, 0x02dfaa9e, 0x03daebaf, 0x028e8f1b, 0x03d67423, 0x00fe223a, 0x0290cf81, 0x0097eddb, 0x036d247f, 0x003b9eb7}}, Y: Field{[10]uint32{0x027a8fb4, 0x03bf0754, 0x01801dea, 0x01c5e278, 0x01143f68, 0x01505a27, 0x010dd9ef, 0x03dc15b0, 0x004b4ae8, 0x00381dc6}}}, + {X: Field{[10]uint32{0x01144b34, 0x0047cf80, 0x0064b7c8, 0x028df26a, 0x01dd5d37, 0x01317a27, 0x011151dc, 0x02b284f6, 0x03c8a9ff, 0x000be515}}, Y: Field{[10]uint32{0x035e221d, 0x018d3839, 0x01cfbb40, 0x033acf4f, 0x02787120, 0x035bf122, 0x015407e1, 0x0355ce8a, 0x00489093, 0x003ad326}}}, + {X: Field{[10]uint32{0x03fec294, 0x00311bad, 0x01c277b3, 0x020fbd4c, 0x03601204, 0x03f86378, 0x023478ce, 0x00560873, 0x02b8a0f1, 0x0034fccc}}, Y: Field{[10]uint32{0x030b2155, 0x0085786e, 0x00f9f323, 0x0243bc4d, 0x01c8968b, 0x030dca50, 0x02f1c019, 0x01e18746, 0x01b25d71, 0x003a9d6e}}}, + {X: Field{[10]uint32{0x02152b91, 0x0337c7e3, 0x02f7e9a4, 0x02199ad4, 0x035f3ddb, 0x03bcdb75, 0x021fcd86, 0x016ab4d4, 0x00d338b0, 0x00060d02}}, Y: Field{[10]uint32{0x0241218c, 0x00d54dc5, 0x018095de, 0x01339126, 0x00210e20, 0x00326209, 0x01be21f2, 0x012b1bce, 0x01206edf, 0x0019a661}}}, + {X: Field{[10]uint32{0x0340374e, 0x02558257, 0x006863d3, 0x035b094d, 0x0321faff, 0x0273e269, 0x00f1f0ff, 0x01794eea, 0x005db114, 0x000a0ffb}}, Y: Field{[10]uint32{0x0032fefe, 0x006fa0af, 0x02f77851, 0x000f3ce6, 0x0008846e, 0x01729ba6, 0x0268e5f6, 0x015439a3, 0x023774af, 0x001c2c04}}}, + {X: Field{[10]uint32{0x0152fa62, 0x02837ef7, 0x016daf54, 0x01e5dc3f, 0x00ebc735, 0x0239f6ff, 0x03bd249d, 0x00f3e904, 0x030a4f94, 0x000339d5}}, Y: Field{[10]uint32{0x0375d41d, 0x01be73a2, 0x013907c3, 0x02260f81, 0x00bd5e5b, 0x02e8e617, 0x005bdf98, 0x02573fee, 0x014bef46, 0x0038456c}}}, + {X: Field{[10]uint32{0x038fd470, 0x02529320, 0x02b15377, 0x0055d32f, 0x01df7903, 0x03646549, 0x029f648c, 0x03b0fc49, 0x0319c8f4, 0x001fa713}}, Y: Field{[10]uint32{0x00fa5270, 0x037d73ac, 0x013e9c86, 0x0236b5af, 0x0060fafa, 0x03447d20, 0x015d6ccb, 0x03d732a1, 0x03fe8cf5, 0x003a7676}}}, + {X: Field{[10]uint32{0x00cb001b, 0x01146d19, 0x03ec23bf, 0x0131c8a8, 0x010ba04f, 0x03c8c27e, 0x007f919d, 0x016ffa9f, 0x03e60d5d, 0x0038aa6e}}, Y: Field{[10]uint32{0x02393fb0, 0x004691e1, 0x03f16984, 0x024741a9, 0x03d1925b, 0x039cb2dd, 0x0125bd67, 0x01ab1de2, 0x00e1c3cd, 0x003905df}}}, + {X: Field{[10]uint32{0x01271012, 0x0264009d, 0x00265e70, 0x006c5563, 0x00f55e64, 0x00aa5264, 0x03bf37d4, 0x03bd4390, 0x02a43e17, 0x00141144}}, Y: Field{[10]uint32{0x021ed18b, 0x029274b9, 0x0381b742, 0x02e5a265, 0x011f21c4, 0x02387cb3, 0x00b1f41e, 0x00eb3cb5, 0x03d857ba, 0x00255297}}}, + {X: Field{[10]uint32{0x005f850d, 0x032fa1ca, 0x03411cd5, 0x036285ec, 0x01859945, 0x029cb1c8, 0x02d1d51b, 0x00c97d2c, 0x0013a6bb, 0x0020747c}}, Y: Field{[10]uint32{0x00937193, 0x012f3177, 0x0071adce, 0x0127535c, 0x01259d3d, 0x0262c816, 0x01fe2492, 0x002154ec, 0x03b1f0c3, 0x000b574b}}}, + {X: Field{[10]uint32{0x01895022, 0x00ce0f47, 0x0387ca73, 0x0050528e, 0x01d90dd5, 0x0399b0cf, 0x02872767, 0x02099862, 0x02dfc1d2, 0x0016d9b0}}, Y: Field{[10]uint32{0x0154e0ff, 0x02d51cb5, 0x00f5449e, 0x03684b63, 0x0327fcae, 0x0101fa61, 0x017267b7, 0x0255a488, 0x038e3818, 0x0026f405}}}, + {X: Field{[10]uint32{0x00381186, 0x03e1a208, 0x00597afa, 0x0366bd63, 0x0399b583, 0x036ffe2a, 0x012d544b, 0x0178e36f, 0x030e98ec, 0x002bad7d}}, Y: Field{[10]uint32{0x0184427b, 0x02b705cd, 0x01a052e7, 0x01cc3cbd, 0x01691b09, 0x00cdb908, 0x00b76929, 0x029c37c2, 0x02b0d25c, 0x001862f5}}}, + {X: Field{[10]uint32{0x0105052e, 0x02a60849, 0x0353a707, 0x0329dab5, 0x02557679, 0x01ea700a, 0x0361e3c6, 0x0250ee11, 0x02ffe841, 0x0002ca27}}, Y: Field{[10]uint32{0x0079992c, 0x02e743fa, 0x01e330cf, 0x00e17974, 0x00530ed7, 0x0318920b, 0x034f895d, 0x018aa14e, 0x01f0c218, 0x0001ea60}}}, + {X: Field{[10]uint32{0x0219291c, 0x02f4d5bd, 0x01200f81, 0x005f9138, 0x003f5859, 0x03f4a0a2, 0x00c8360c, 0x006679ac, 0x01458b12, 0x002aeb8e}}, Y: Field{[10]uint32{0x01753f28, 0x02dd7bed, 0x02934233, 0x02ded99f, 0x000b2a81, 0x011a6c1a, 0x03be30b2, 0x01a717a0, 0x03cdb3d0, 0x002b6c8e}}}, + {X: Field{[10]uint32{0x01fbacaa, 0x02720255, 0x03013941, 0x02323646, 0x011e0f65, 0x0063aca7, 0x02c224a5, 0x01696a06, 0x03a6485b, 0x0012a560}}, Y: Field{[10]uint32{0x00e8dbca, 0x00558c6d, 0x037decea, 0x00466dec, 0x00803ecf, 0x01dda36d, 0x02375a8a, 0x010bd7b7, 0x009ee3c8, 0x0036000f}}}, + {X: Field{[10]uint32{0x00ebc169, 0x00404084, 0x017ae3a2, 0x0305183c, 0x02ea236a, 0x012ac367, 0x03cf4654, 0x03df2d97, 0x030edba6, 0x00354bd8}}, Y: Field{[10]uint32{0x030d26d0, 0x0304f84d, 0x003d9145, 0x003106f2, 0x0368e21a, 0x02801714, 0x01bea50d, 0x00ee20f9, 0x03489fa9, 0x00084555}}}, + {X: Field{[10]uint32{0x02dd6a4d, 0x00384826, 0x029bf8d1, 0x018cd6f2, 0x01c74a2a, 0x00b9307a, 0x0050fc05, 0x016163d7, 0x023782c7, 0x0002f714}}, Y: Field{[10]uint32{0x0034f189, 0x01010d9a, 0x0323e585, 0x00ef0755, 0x0312ff02, 0x02fd4a74, 0x014efbaf, 0x01d9a388, 0x01f87463, 0x002aec76}}}, + {X: Field{[10]uint32{0x019ad087, 0x038244b9, 0x00e8626e, 0x005a3c4f, 0x0288156d, 0x03ad859e, 0x0364e476, 0x02aae0ee, 0x02338bf0, 0x00111dc2}}, Y: Field{[10]uint32{0x0360a55c, 0x0170cf7b, 0x01b99c96, 0x008edca4, 0x036a3abd, 0x030b5915, 0x0393a895, 0x0102f2cc, 0x00f12e9c, 0x0016d64c}}}, + {X: Field{[10]uint32{0x015e1679, 0x00b64914, 0x021c83e3, 0x02363ba3, 0x02650310, 0x00f8d99c, 0x01ac2032, 0x012bb8c6, 0x03322e40, 0x002c579e}}, Y: Field{[10]uint32{0x01997e7a, 0x00f3abcf, 0x03d57a87, 0x00961cd1, 0x005ced5c, 0x001e5bd4, 0x002ed565, 0x02ca457e, 0x00190bbf, 0x001491aa}}}, + {X: Field{[10]uint32{0x01b00f22, 0x02f66bb7, 0x0019027b, 0x00235781, 0x01665ae1, 0x0287077e, 0x0050f758, 0x017343cb, 0x01570522, 0x00287b5d}}, Y: Field{[10]uint32{0x02791ee2, 0x0049dd9a, 0x001a13d2, 0x001024ca, 0x02d71dbd, 0x02143b40, 0x017e7464, 0x021d21ee, 0x005dad9f, 0x000f20c5}}}, + {X: Field{[10]uint32{0x01918af5, 0x022becc7, 0x037a23cf, 0x032708e8, 0x03479e9e, 0x03181603, 0x03fc43c2, 0x03183f66, 0x03616a1b, 0x003a2abc}}, Y: Field{[10]uint32{0x0279827c, 0x02dbc9e7, 0x03d3ec89, 0x000e96b0, 0x009ab9c3, 0x02e68356, 0x0141041a, 0x0319c9f8, 0x03b64a37, 0x001b39a4}}}, + {X: Field{[10]uint32{0x014c20a3, 0x00ea8dc1, 0x01b76c5a, 0x010ce28f, 0x020759c0, 0x0061e9b5, 0x024a4ef6, 0x01798d4a, 0x00cd2c85, 0x001771be}}, Y: Field{[10]uint32{0x026f4838, 0x01c05193, 0x03f0fbb8, 0x03d4b9a9, 0x000fe9f5, 0x0307620d, 0x031d1bc7, 0x02a6a359, 0x03428593, 0x003d80b0}}}, + {X: Field{[10]uint32{0x0342f3a6, 0x0281f2da, 0x0326a5f1, 0x0081186b, 0x00f65636, 0x00aa9227, 0x02063ef2, 0x0362bda2, 0x031167be, 0x0018cc9c}}, Y: Field{[10]uint32{0x034424a6, 0x0032e06d, 0x01f1a3ea, 0x00026a46, 0x02bf94a7, 0x01874f95, 0x00ca0367, 0x004c83c8, 0x03b22070, 0x002e3df0}}}, + {X: Field{[10]uint32{0x00080263, 0x008c3e52, 0x020d3535, 0x002b5e62, 0x03ad66e5, 0x03a19536, 0x005c2017, 0x00ece08c, 0x01259a39, 0x00229036}}, Y: Field{[10]uint32{0x019fcaff, 0x02d747e7, 0x01d6f6a7, 0x03326a69, 0x0143f9cb, 0x031985b4, 0x03f703a5, 0x01153b75, 0x034d9849, 0x002beda9}}}, + {X: Field{[10]uint32{0x0078645a, 0x037abe08, 0x0317dcdf, 0x022f3082, 0x02a6a02c, 0x02816df7, 0x017fd3f9, 0x01082bd4, 0x010727c7, 0x0039c51c}}, Y: Field{[10]uint32{0x0217daca, 0x00513ad0, 0x03055eaa, 0x02809606, 0x01a3561b, 0x025ac13e, 0x01d5dcdc, 0x03a753fb, 0x03cbc1ed, 0x00369f59}}}, + {X: Field{[10]uint32{0x0261c82d, 0x007da725, 0x026c0cae, 0x03a24700, 0x029922bc, 0x014e54b0, 0x0242a685, 0x02e1e007, 0x011cd95f, 0x00184c4a}}, Y: Field{[10]uint32{0x0130bf01, 0x03f0410b, 0x03b89384, 0x01e44dcc, 0x0042b894, 0x02b98cae, 0x014f9898, 0x00bf5167, 0x001c1334, 0x00058387}}}, + {X: Field{[10]uint32{0x01ca4951, 0x00af3c74, 0x003bfb78, 0x02a76940, 0x02fc5e2a, 0x01e22027, 0x029bfa81, 0x011a4b42, 0x0045b676, 0x0012f13e}}, Y: Field{[10]uint32{0x00b751f0, 0x03103f04, 0x0383cefd, 0x0315fec5, 0x0164c4a7, 0x029dbb01, 0x03055ff3, 0x0349538e, 0x01cbb9c3, 0x0021c24b}}}, + {X: Field{[10]uint32{0x02be67df, 0x039bb2a8, 0x0201f698, 0x017560a8, 0x0052865b, 0x02617cd9, 0x039bff5c, 0x03a77ca7, 0x00a27bbe, 0x00116a20}}, Y: Field{[10]uint32{0x0055fabb, 0x00cae8de, 0x00eb6131, 0x01ae3ba5, 0x02a831d4, 0x02af5643, 0x0279714d, 0x01afc7bd, 0x02a8b5e4, 0x003f9269}}}, + {X: Field{[10]uint32{0x02f4f2a4, 0x03c68352, 0x000d3f21, 0x0256c854, 0x01877e54, 0x00805174, 0x016847a2, 0x00321993, 0x0238317c, 0x001aa09a}}, Y: Field{[10]uint32{0x005f4513, 0x0117e1f8, 0x0322c154, 0x002ef081, 0x02f6b83f, 0x01b9ad1e, 0x02f14e0e, 0x02098f7c, 0x014efcc9, 0x00114865}}}, + {X: Field{[10]uint32{0x026a23a9, 0x03a28d0d, 0x0075f613, 0x0379f1b3, 0x028bd860, 0x0277395c, 0x008aa1b0, 0x03dfa5b3, 0x0106f255, 0x00054d59}}, Y: Field{[10]uint32{0x00110bf3, 0x014ec700, 0x034cee3e, 0x02d38d8a, 0x03122f37, 0x03e26977, 0x01e401f1, 0x03521435, 0x03bcd744, 0x0033456a}}}, + {X: Field{[10]uint32{0x02b89b91, 0x0387283c, 0x0043a2b5, 0x02973299, 0x00cacff3, 0x00b6b0bb, 0x00651780, 0x027d7dae, 0x02aef53d, 0x003cef04}}, Y: Field{[10]uint32{0x00e00957, 0x03294246, 0x03131368, 0x017fc91f, 0x01303e91, 0x0281cdeb, 0x03d0f367, 0x0047c907, 0x036beb2e, 0x0033f534}}}, + {X: Field{[10]uint32{0x035c0fd4, 0x00a0a5cc, 0x033736f7, 0x03bd6114, 0x0122320b, 0x02ce1d92, 0x0226ef18, 0x0294dbde, 0x006dfa04, 0x001f8f23}}, Y: Field{[10]uint32{0x01f7c189, 0x01c4a134, 0x03fe9155, 0x01362339, 0x02b6a129, 0x000f008d, 0x032400b3, 0x00cdb4cc, 0x02b532a7, 0x001cba85}}}, + {X: Field{[10]uint32{0x010369d8, 0x0111822b, 0x03223d88, 0x026f5b85, 0x026943ab, 0x0214557f, 0x021c696d, 0x017f0b05, 0x03cfa057, 0x0006632f}}, Y: Field{[10]uint32{0x013cf7ae, 0x01cac985, 0x006c2f29, 0x025209e9, 0x03032159, 0x039ee8b9, 0x019fe0ef, 0x00908af9, 0x028b3095, 0x00357989}}}, + {X: Field{[10]uint32{0x03b0e5e8, 0x02c4d42b, 0x01fd63ae, 0x02a9e02c, 0x015a147c, 0x00226e43, 0x0183c089, 0x03cd6888, 0x0289b68c, 0x0007815b}}, Y: Field{[10]uint32{0x003f32b9, 0x0011cae5, 0x008379f8, 0x00e431be, 0x003e258a, 0x01b505bd, 0x02d6ff38, 0x01315f76, 0x0053abc4, 0x002e0905}}}, + {X: Field{[10]uint32{0x02faaa21, 0x031ca79c, 0x018fb3fa, 0x011339fe, 0x03d81081, 0x02991b51, 0x0173b2f1, 0x01f9fa98, 0x01748d82, 0x00371ffe}}, Y: Field{[10]uint32{0x030c4914, 0x00b9ffb9, 0x02a1aaaf, 0x001c51b6, 0x013e3d5f, 0x01105f1c, 0x038e1c5c, 0x01bc3ff2, 0x005aef4c, 0x00307f6b}}}, + {X: Field{[10]uint32{0x03d28e79, 0x027686cb, 0x00ec29a9, 0x03c2fe3e, 0x0036b2ef, 0x0337ef12, 0x0354bc11, 0x00781c14, 0x02fcc498, 0x001c6e57}}, Y: Field{[10]uint32{0x03d684cc, 0x010b31bb, 0x03fa30af, 0x02c269cd, 0x011f3695, 0x00faef14, 0x004752cc, 0x01abbb0c, 0x01976fad, 0x003f568c}}}, + {X: Field{[10]uint32{0x02542b3a, 0x01a20eb7, 0x004ae687, 0x008625c1, 0x03f6b961, 0x0096eea0, 0x033e8ffa, 0x00af5b27, 0x00af29dc, 0x0010e153}}, Y: Field{[10]uint32{0x009c6c81, 0x02d1200f, 0x03f36fd8, 0x02957072, 0x0034c5c9, 0x02893d56, 0x01e31677, 0x018cbe37, 0x01760897, 0x00158d94}}}, + {X: Field{[10]uint32{0x0027b222, 0x00bb3cb5, 0x0396145c, 0x0243ee1d, 0x00b6eff9, 0x0357f421, 0x00c9b730, 0x027e71c2, 0x0217090e, 0x0000ab7f}}, Y: Field{[10]uint32{0x03abd7ed, 0x01b66d14, 0x010cd4c8, 0x008301a5, 0x02c44398, 0x0334a244, 0x00ae425c, 0x0367188b, 0x01605d6d, 0x002d738c}}}, + {X: Field{[10]uint32{0x03a9d6f9, 0x038fa089, 0x00620471, 0x0152b8cf, 0x0209f70c, 0x02cffcc6, 0x033a5343, 0x02bcc456, 0x012c2b7e, 0x002848d1}}, Y: Field{[10]uint32{0x01e3b4eb, 0x0053337b, 0x0396e8fa, 0x029bdde7, 0x03f53e37, 0x03f15179, 0x008194aa, 0x007d10de, 0x008378a7, 0x0024cf4d}}}, + {X: Field{[10]uint32{0x02c0a6ab, 0x01b8cb33, 0x00a603d0, 0x02b9f7b3, 0x03aab166, 0x004d21cd, 0x00152176, 0x016a061b, 0x03c2ca99, 0x0026e268}}, Y: Field{[10]uint32{0x03731232, 0x02a322b9, 0x0141480b, 0x034150ed, 0x03cbea83, 0x0092b020, 0x03c48302, 0x012c4af5, 0x0301a872, 0x000a9f4d}}}, + {X: Field{[10]uint32{0x01e9e9b2, 0x01e59184, 0x032edc90, 0x00ce7b62, 0x03384b04, 0x031149ca, 0x022b9a0d, 0x035ce423, 0x0057e7d9, 0x0019375d}}, Y: Field{[10]uint32{0x023c470e, 0x00a430e0, 0x03885b29, 0x031de03b, 0x014e311d, 0x019a6626, 0x0208a723, 0x03b85bb5, 0x00aae214, 0x003aa43e}}}, + {X: Field{[10]uint32{0x03a2176c, 0x015d9f5b, 0x0150a6b3, 0x010871fd, 0x0320abba, 0x03adc721, 0x027fd714, 0x01f1af4c, 0x0031be60, 0x0016489d}}, Y: Field{[10]uint32{0x0061d598, 0x01449712, 0x03d0b870, 0x02c4b254, 0x00796da2, 0x00f3cfce, 0x03d289ea, 0x01549d96, 0x01c4071c, 0x0032dd5c}}}, + {X: Field{[10]uint32{0x015fe2c2, 0x0041bbde, 0x03bdc8c5, 0x00229c8d, 0x03843b7d, 0x024dd0d8, 0x000ddf19, 0x01ba7872, 0x01cdadb2, 0x0014f5d9}}, Y: Field{[10]uint32{0x017c287b, 0x0269016b, 0x000bec98, 0x00ec4a29, 0x00a66d4f, 0x01351454, 0x0187f819, 0x025ceddb, 0x0198eb39, 0x001eeeec}}}, + {X: Field{[10]uint32{0x03bb66af, 0x02d46695, 0x03fc16d7, 0x02426d9b, 0x010452ee, 0x03d7fdb0, 0x03a989c0, 0x00efcd48, 0x029ec16b, 0x003941f7}}, Y: Field{[10]uint32{0x03f7892a, 0x014078a3, 0x0195259a, 0x03401320, 0x0251b6d3, 0x022566b4, 0x008b3950, 0x0379b8f7, 0x002a8272, 0x0028bcbc}}}, + {X: Field{[10]uint32{0x01b4a6f2, 0x027260ce, 0x03983556, 0x01db8a95, 0x0265601d, 0x027d82de, 0x0103b8cb, 0x013eca06, 0x00c60eb8, 0x00005bd2}}, Y: Field{[10]uint32{0x0132b289, 0x023d40f7, 0x016a441d, 0x00a43d25, 0x03d827b6, 0x02dbbd13, 0x031e75d5, 0x01a0759b, 0x03848398, 0x002184ee}}}, + {X: Field{[10]uint32{0x01446056, 0x02d8ce78, 0x03af90ca, 0x00e0a8ec, 0x010bb98e, 0x00f44b61, 0x00b51323, 0x01978c9c, 0x01ae7742, 0x0019411c}}, Y: Field{[10]uint32{0x01a50306, 0x009c92a9, 0x03cda4e6, 0x00c85765, 0x01187b40, 0x00d670ce, 0x0290a62d, 0x01bf9b2b, 0x039334aa, 0x0020e39d}}}, + {X: Field{[10]uint32{0x0021dda8, 0x02ab0aaf, 0x00821559, 0x0287f5eb, 0x02348d1b, 0x026097eb, 0x010e19d6, 0x01613f32, 0x0016fa34, 0x000577a9}}, Y: Field{[10]uint32{0x00433047, 0x01c090ea, 0x01c15d40, 0x03d7517e, 0x00010fa5, 0x012f44c1, 0x012a3d28, 0x0339a3b8, 0x03f21e19, 0x00007f2a}}}, + {X: Field{[10]uint32{0x005b46e2, 0x032e81ec, 0x00751dc5, 0x001ed3df, 0x02ee9d6a, 0x00d5ee91, 0x03900878, 0x01c3b4f6, 0x00954f1f, 0x002d0ac9}}, Y: Field{[10]uint32{0x0169ed71, 0x0065a802, 0x03ec69f9, 0x02d31546, 0x034851f5, 0x00110f18, 0x0328d6da, 0x036f9b5b, 0x03eb0e0b, 0x003855c8}}}, + {X: Field{[10]uint32{0x00230f83, 0x03f15ff0, 0x00960a17, 0x01fa3894, 0x006ab10b, 0x03b26d18, 0x02b1125d, 0x02b0c476, 0x00f5c6ae, 0x00023a79}}, Y: Field{[10]uint32{0x03959ab2, 0x01db4c6a, 0x03dee645, 0x00d358a1, 0x03f1e32c, 0x0016899f, 0x03d4e53a, 0x02ede5e2, 0x0211c79f, 0x003fec38}}}, + {X: Field{[10]uint32{0x03e1ac2e, 0x0127fa4f, 0x03528295, 0x0207e012, 0x03d6f2bb, 0x0353542f, 0x027fb63b, 0x012dce18, 0x032373bd, 0x0021ef9c}}, Y: Field{[10]uint32{0x0294e1a4, 0x01087e1f, 0x00288ce8, 0x01f5d589, 0x021ae553, 0x03038956, 0x00844b2e, 0x02e6d7ff, 0x006ff147, 0x003daa46}}}, + {X: Field{[10]uint32{0x019d60f7, 0x01c9f859, 0x02c95002, 0x019abcd2, 0x01d2cfd4, 0x01722493, 0x029514ab, 0x00e1d217, 0x0161c836, 0x0010d807}}, Y: Field{[10]uint32{0x03bc2c2a, 0x039d6d60, 0x02b099a5, 0x00d999e7, 0x00113335, 0x02316eef, 0x028034b8, 0x032536cc, 0x00007c09, 0x0021e470}}}, + {X: Field{[10]uint32{0x02b49d0d, 0x02abe8ca, 0x020aca0d, 0x0250a895, 0x026902e3, 0x0299abe5, 0x01f0bcbb, 0x01c714d9, 0x0180f830, 0x000d06c5}}, Y: Field{[10]uint32{0x00877b20, 0x00d38519, 0x01d941c0, 0x0386e840, 0x037e8fdb, 0x0119271b, 0x03564d2d, 0x024099ff, 0x0313c549, 0x0012e616}}}, + {X: Field{[10]uint32{0x014dad95, 0x009c5c7c, 0x012eb576, 0x02a39592, 0x0033ac1a, 0x01e7ec55, 0x03181e2c, 0x00e90df1, 0x00b3ce4a, 0x0005d79f}}, Y: Field{[10]uint32{0x01135b0d, 0x0363f0a0, 0x01d9ce92, 0x01558f29, 0x02581301, 0x00da5bd0, 0x038703f9, 0x03d4bbf3, 0x01a87834, 0x000c7398}}}, + {X: Field{[10]uint32{0x007165ad, 0x0391704c, 0x03a98249, 0x02553202, 0x0089c1e4, 0x0328fb2b, 0x033c8482, 0x0071878e, 0x00cc64e6, 0x0016b50c}}, Y: Field{[10]uint32{0x0251c791, 0x033b3aa4, 0x03fbeac7, 0x01b86b08, 0x009ead5f, 0x016a2e17, 0x03ca083c, 0x004ef0c5, 0x0060505c, 0x002fa8a8}}}, + {X: Field{[10]uint32{0x01b8b837, 0x03fbe983, 0x009f28ae, 0x038f75f4, 0x01080f0c, 0x01fea130, 0x00602df0, 0x038c6262, 0x00d96dac, 0x00107738}}, Y: Field{[10]uint32{0x02827928, 0x03fe3434, 0x02e333cd, 0x0247e137, 0x02088500, 0x0154c8ed, 0x02635ea8, 0x01ba7225, 0x003fed9a, 0x001d258b}}}, + {X: Field{[10]uint32{0x01961bcc, 0x0330508e, 0x03e5ba23, 0x017810cb, 0x039aed2d, 0x00819d90, 0x03c1dc25, 0x01376840, 0x00988710, 0x00297bd1}}, Y: Field{[10]uint32{0x0122db3a, 0x02c3587c, 0x009f0696, 0x0099d96c, 0x02a165c5, 0x0194ee9e, 0x02ecc328, 0x038364f9, 0x003ea363, 0x00072f3e}}}, + {X: Field{[10]uint32{0x033a9d45, 0x015c8d7e, 0x01e626db, 0x00b8b5b5, 0x0218225f, 0x014a8b2f, 0x03df68b8, 0x01800ce2, 0x02ce9ad4, 0x0013689b}}, Y: Field{[10]uint32{0x01fae659, 0x037a427a, 0x029c73d3, 0x001b9ee8, 0x0061b0a8, 0x030f587d, 0x0210e2d1, 0x011aff31, 0x02637ab5, 0x003442d6}}}, + {X: Field{[10]uint32{0x018f4763, 0x03b71a7e, 0x0111129d, 0x0214479a, 0x03e9d955, 0x0286693d, 0x00d8eb16, 0x01023922, 0x026f53d2, 0x001b9887}}, Y: Field{[10]uint32{0x00ea1a19, 0x017f540f, 0x0048e4bb, 0x00b2d4b1, 0x007b945a, 0x00d0b1ef, 0x01ad4779, 0x02c4c4d0, 0x02f273e1, 0x001ec523}}}, + {X: Field{[10]uint32{0x038be83b, 0x01553549, 0x02ab6da4, 0x002a3c20, 0x0066bae2, 0x028e56a4, 0x017ea758, 0x01d1a66d, 0x03645bed, 0x003aebd5}}, Y: Field{[10]uint32{0x03cfbba7, 0x02ae782f, 0x02028650, 0x01298049, 0x02d91631, 0x0227b8f9, 0x029ea943, 0x00c0cd78, 0x00e06c65, 0x001611fd}}}, + {X: Field{[10]uint32{0x0310182f, 0x03fd8d4c, 0x0017a6a6, 0x028450e3, 0x02faa38c, 0x014ac574, 0x0355dbf0, 0x018cb492, 0x0271711b, 0x00303e22}}, Y: Field{[10]uint32{0x010676ff, 0x027913b3, 0x012481c5, 0x02605069, 0x03fb2e98, 0x002020be, 0x0211eec4, 0x01c08619, 0x014d16c0, 0x000b2feb}}}, + {X: Field{[10]uint32{0x035c6350, 0x00a1ec16, 0x00ae01b5, 0x02dcf3dc, 0x02dc1cdd, 0x018a48b1, 0x0244fbf2, 0x02526318, 0x001884b7, 0x001766db}}, Y: Field{[10]uint32{0x017fdf1d, 0x0144431f, 0x0297e5e8, 0x02316dab, 0x0118db17, 0x02d53321, 0x03e1644b, 0x0058b12a, 0x031d2f2b, 0x000ca3a0}}}, + {X: Field{[10]uint32{0x0202e21c, 0x03127c13, 0x00016654, 0x02555641, 0x03e57d75, 0x008e94ed, 0x03214c63, 0x01b9a753, 0x020f37ed, 0x0034744d}}, Y: Field{[10]uint32{0x01d15e4e, 0x007ce51b, 0x02b6a152, 0x0351b248, 0x006eba68, 0x002a2c40, 0x01594144, 0x02d4fe51, 0x0293c6c9, 0x00189fba}}}, + {X: Field{[10]uint32{0x02411731, 0x01a732fb, 0x00703e49, 0x020d959d, 0x02ace29a, 0x01ec6cac, 0x02cfa189, 0x00ebd562, 0x03cbf102, 0x003bf261}}, Y: Field{[10]uint32{0x01740c69, 0x026f10bd, 0x01dbbe15, 0x03f27d59, 0x02e38242, 0x02f3bd0c, 0x02429863, 0x002fb1c5, 0x0265d379, 0x0006569a}}}, + {X: Field{[10]uint32{0x00284ff0, 0x0243ea86, 0x02b01310, 0x01ee0fbd, 0x00968d1d, 0x00e19120, 0x0388b787, 0x03cef586, 0x0397163d, 0x003cc09a}}, Y: Field{[10]uint32{0x0211509b, 0x015ab06d, 0x030e9a6c, 0x01321359, 0x035f8764, 0x0167c1bf, 0x0281615d, 0x018eaefc, 0x02616823, 0x0005df0e}}}, + {X: Field{[10]uint32{0x002c5873, 0x0082435a, 0x0030b562, 0x03e5a3fe, 0x020deeec, 0x03273fd1, 0x02c92c68, 0x016da64a, 0x035f123b, 0x00174d3f}}, Y: Field{[10]uint32{0x01955ac8, 0x02d989b1, 0x02ff3d49, 0x03ea03e2, 0x0025443e, 0x023ac586, 0x0204df14, 0x0281950c, 0x039c8eab, 0x000b4682}}}, + {X: Field{[10]uint32{0x028447f4, 0x019ca011, 0x030bbdac, 0x0074c6a6, 0x00e0ee59, 0x010c2332, 0x01da0658, 0x01491f0e, 0x021794a9, 0x0032fe6e}}, Y: Field{[10]uint32{0x00461736, 0x009e5ab4, 0x005381b8, 0x0075d3c0, 0x03405810, 0x00d044b4, 0x025fade9, 0x02ba8408, 0x00c310fe, 0x001526c6}}}, + {X: Field{[10]uint32{0x03dcd31f, 0x032b3531, 0x03a5379a, 0x02e0da35, 0x008e7747, 0x015e9cd1, 0x01982a6b, 0x00986efd, 0x01ba09e2, 0x0024825d}}, Y: Field{[10]uint32{0x00b46dbd, 0x039d8e2b, 0x03dcb434, 0x012f5516, 0x016367d2, 0x0255040c, 0x0221f5ae, 0x01543424, 0x010881af, 0x003a5781}}}, + {X: Field{[10]uint32{0x03eeca64, 0x033c4c81, 0x000ff33f, 0x0048ef06, 0x00391323, 0x02d3c974, 0x02cdce82, 0x02d57649, 0x02e46fdc, 0x002056ca}}, Y: Field{[10]uint32{0x01b8c971, 0x022d3f92, 0x01512c96, 0x021d57c9, 0x0199285b, 0x0194462e, 0x01e2e268, 0x018dd23c, 0x03c67d88, 0x0018bd8d}}}, + {X: Field{[10]uint32{0x03e0b16e, 0x00f1153d, 0x019260de, 0x0097688c, 0x0227ca80, 0x02934e1f, 0x02a86397, 0x0352e8c3, 0x02c28e28, 0x0006ee69}}, Y: Field{[10]uint32{0x00d7ab93, 0x03bf1277, 0x01a94f56, 0x0355040d, 0x03206349, 0x031f8051, 0x004265ea, 0x005c7206, 0x00165e32, 0x002832f0}}}, + {X: Field{[10]uint32{0x0268bc22, 0x00cdf1b6, 0x00c3d34d, 0x02e9e3ad, 0x019c05a4, 0x03789e3c, 0x019d29dd, 0x020faac2, 0x03fedffd, 0x001bc054}}, Y: Field{[10]uint32{0x03f0c626, 0x00147e79, 0x02f824d5, 0x019c3838, 0x039fc499, 0x0288c7ca, 0x00041d3a, 0x00fe167d, 0x000d3501, 0x00294cb4}}}, + {X: Field{[10]uint32{0x0320258a, 0x032dea46, 0x028552e9, 0x039b1b6b, 0x02ed23e5, 0x006fd556, 0x000d3847, 0x01de9034, 0x033b3bee, 0x000d153d}}, Y: Field{[10]uint32{0x00d18dde, 0x023e54b6, 0x0128f23a, 0x00e8fd03, 0x03992683, 0x01af7b70, 0x025bcaa0, 0x007a3cff, 0x0046cfdf, 0x0024b082}}}, + {X: Field{[10]uint32{0x030e9a86, 0x024c5f08, 0x01f02fc5, 0x021903b7, 0x001dfcf6, 0x0354a00c, 0x00c2616a, 0x01ad386e, 0x03c9a360, 0x000d9e01}}, Y: Field{[10]uint32{0x016ecae6, 0x012904b0, 0x01a14830, 0x00bc00a0, 0x03fdc4f9, 0x00902572, 0x01ba14c1, 0x03b39c0f, 0x032fa2bb, 0x0007c08f}}}, + {X: Field{[10]uint32{0x001af62b, 0x02965048, 0x00909acb, 0x0105d7f1, 0x0101b825, 0x03112e05, 0x034e06f0, 0x03dabc4d, 0x01c39891, 0x0023b13f}}, Y: Field{[10]uint32{0x034e5f1b, 0x015b3dfb, 0x01751137, 0x033d7f0a, 0x00fe067b, 0x00f1e63e, 0x01ca0e50, 0x03621e0f, 0x02e5cac2, 0x000b71b2}}}, + {X: Field{[10]uint32{0x0178a263, 0x026c1aa4, 0x03842872, 0x014546e2, 0x03ffa085, 0x017ea4df, 0x0142f91e, 0x0093e451, 0x026d4c5b, 0x00173092}}, Y: Field{[10]uint32{0x037da472, 0x027573fe, 0x00b98da1, 0x02a0f76f, 0x02ca8d55, 0x0067e87f, 0x0338a4e4, 0x00687efe, 0x02358153, 0x002c76a1}}}, + {X: Field{[10]uint32{0x03599e9f, 0x013f1378, 0x02a21913, 0x01414314, 0x0292602a, 0x02a04374, 0x0244a6cd, 0x00170ea5, 0x0126c039, 0x0020e416}}, Y: Field{[10]uint32{0x0246089a, 0x0038315e, 0x01e16cf2, 0x022c8767, 0x00909429, 0x02a0dd8e, 0x00b115ea, 0x019e4a88, 0x020fe8af, 0x0010a4c9}}}, + {X: Field{[10]uint32{0x0189b6c7, 0x02ca6159, 0x00822481, 0x0050d2b9, 0x02e8fa6c, 0x034e1e3e, 0x0204ac30, 0x03a777e0, 0x017e4721, 0x002512c2}}, Y: Field{[10]uint32{0x03d6ddf6, 0x03d2e5a6, 0x00e8ee8a, 0x013011d9, 0x011525bd, 0x039d16e6, 0x03796431, 0x02c257e2, 0x016530e9, 0x0017f11d}}}, + {X: Field{[10]uint32{0x0023b73d, 0x017aefcd, 0x0030107b, 0x00797ea4, 0x0117327a, 0x018e9ccc, 0x00aaf04a, 0x0304d387, 0x023fcfb7, 0x002ac2d2}}, Y: Field{[10]uint32{0x0296c9da, 0x00efc6b3, 0x00781376, 0x034de170, 0x02b84944, 0x02bb334e, 0x038c92cf, 0x02ea2b35, 0x0263a5bb, 0x003879e4}}}, + {X: Field{[10]uint32{0x03e8b85f, 0x00f7fb83, 0x010bcf80, 0x0361efc2, 0x031aa2c3, 0x0168b939, 0x03f7fbf0, 0x00ac3bde, 0x00b5220f, 0x0015e8d1}}, Y: Field{[10]uint32{0x01a7d04e, 0x0398e6ec, 0x00f10576, 0x00f059e3, 0x01a9e11a, 0x00e9caa5, 0x00c9f135, 0x02588392, 0x010e08ef, 0x003e0adf}}}, + {X: Field{[10]uint32{0x00d81ac5, 0x02498ff2, 0x0188da1a, 0x025bb118, 0x033608e3, 0x033c3d3f, 0x038c4c95, 0x01f13147, 0x021a800b, 0x001b814f}}, Y: Field{[10]uint32{0x015e7473, 0x0363124e, 0x03dbadc3, 0x01e5c80b, 0x0362e365, 0x03390a30, 0x035384ff, 0x008f2786, 0x0298e3c8, 0x00218e27}}}, + {X: Field{[10]uint32{0x02485cb7, 0x03ab8973, 0x03f1c59d, 0x03b1fc20, 0x0148a289, 0x0159ed51, 0x00d4a7c7, 0x01c5fecc, 0x00061804, 0x0018b5d9}}, Y: Field{[10]uint32{0x0268be84, 0x03f2506d, 0x020fc4ca, 0x00b6989a, 0x03d1509b, 0x011c3ed4, 0x031d57b9, 0x007e3614, 0x014b661d, 0x003c758c}}}, + {X: Field{[10]uint32{0x0129250f, 0x011fcc77, 0x006589e3, 0x00020b4d, 0x025c4d08, 0x02f49126, 0x00cf1080, 0x02caaa0c, 0x00f2219f, 0x003976ca}}, Y: Field{[10]uint32{0x008bd453, 0x023f9a22, 0x00b248e5, 0x034bcd7e, 0x03324fcf, 0x02b512db, 0x03b7012e, 0x01f756e8, 0x024632f9, 0x0030a5b9}}}, + {X: Field{[10]uint32{0x01b32729, 0x02057c42, 0x00ab23fe, 0x026f0a65, 0x03733ec8, 0x03ffe0c7, 0x013177c9, 0x00379229, 0x03e9a3d0, 0x0011c96c}}, Y: Field{[10]uint32{0x01f8e778, 0x0279a26e, 0x02e12d4a, 0x0334a5e7, 0x02324127, 0x0120aed4, 0x01fdb741, 0x03003c51, 0x0347de38, 0x002b0edd}}}, + {X: Field{[10]uint32{0x01d72b3e, 0x0278d190, 0x00569bbe, 0x017a9db8, 0x03b036b6, 0x0004f8d1, 0x00ed9187, 0x01cb9ce5, 0x03b6492c, 0x003434eb}}, Y: Field{[10]uint32{0x0202fef3, 0x010bede3, 0x03f1396f, 0x002c0bd8, 0x00bd952b, 0x0028a158, 0x0061caa0, 0x03f81d4c, 0x005b94aa, 0x000b74e9}}}, + {X: Field{[10]uint32{0x0304632c, 0x0241a3f0, 0x00b4c786, 0x03b73d2d, 0x03104143, 0x0092b3fc, 0x0385654a, 0x03215e5e, 0x0335d717, 0x001e14f9}}, Y: Field{[10]uint32{0x021efadd, 0x00d4d577, 0x00e69cb5, 0x0068524e, 0x02bae3a3, 0x01680a48, 0x0377a8fb, 0x03452b09, 0x03d9e70f, 0x00002a1c}}}, + {X: Field{[10]uint32{0x02e904a4, 0x02778ce3, 0x032ca778, 0x0325fe75, 0x02ee44e2, 0x013248d5, 0x021a01a1, 0x0371644e, 0x02b37d4f, 0x0001b6c9}}, Y: Field{[10]uint32{0x031941fb, 0x00a2ba58, 0x01b6854a, 0x02498e1a, 0x02d8adf7, 0x02612712, 0x001c409e, 0x028330a3, 0x0225bf2b, 0x00053f88}}}, + {X: Field{[10]uint32{0x032848df, 0x028bbe3a, 0x00ce699a, 0x003d8ea7, 0x02538e40, 0x01a7e90f, 0x02f7f5c6, 0x02bcf02c, 0x0069bb98, 0x002d4bc2}}, Y: Field{[10]uint32{0x0107be5a, 0x005b85e2, 0x03858bb6, 0x02329dbe, 0x028b821c, 0x00395eda, 0x03378cca, 0x01152b9e, 0x032455bc, 0x0009159a}}}, + {X: Field{[10]uint32{0x0197b448, 0x007e4e80, 0x037e4c1e, 0x03004e13, 0x03234152, 0x01c3e9f0, 0x034a9e99, 0x02bc0fac, 0x01e11ee6, 0x00218537}}, Y: Field{[10]uint32{0x0372f3cc, 0x0134f31e, 0x02ba15e5, 0x015762e9, 0x024e5c7e, 0x008c3103, 0x0222b5ad, 0x01a1c0ae, 0x01a2ac99, 0x000a8449}}}, + {X: Field{[10]uint32{0x038c1cfa, 0x00824de4, 0x00ab2dbc, 0x03ad6743, 0x008b3308, 0x03c82f74, 0x0271c180, 0x01b96de3, 0x03ae625f, 0x00260a8d}}, Y: Field{[10]uint32{0x02a40d0c, 0x014c26ad, 0x017dc18e, 0x00af75b1, 0x032a689e, 0x02d41c2f, 0x01249e20, 0x0144a164, 0x016f00a6, 0x0019c7f8}}}, + {X: Field{[10]uint32{0x003e703a, 0x0068bf53, 0x01d9b408, 0x02bc8b2a, 0x00627a09, 0x0248c700, 0x019742fc, 0x020a73b2, 0x030526b4, 0x001afaa4}}, Y: Field{[10]uint32{0x019a6cc1, 0x00ac1652, 0x014832b0, 0x0043116f, 0x01d7541f, 0x00650f9a, 0x0344d14b, 0x01ed307c, 0x002a5451, 0x002bb150}}}, + {X: Field{[10]uint32{0x02583edb, 0x01ef4a65, 0x019200ba, 0x026481cc, 0x0054016a, 0x01b445ac, 0x00188b33, 0x0121f9f3, 0x03818694, 0x002d5c91}}, Y: Field{[10]uint32{0x03845cdc, 0x03d8a19d, 0x03ec6208, 0x02ced35f, 0x011d278f, 0x02f163ff, 0x018262de, 0x0292f4f5, 0x01861f80, 0x00172ef4}}}, + {X: Field{[10]uint32{0x017c5412, 0x03a78b66, 0x01bb62e0, 0x00d1c13b, 0x024df5a5, 0x022b14e4, 0x02f4f531, 0x003a45e1, 0x02627ba0, 0x003786b7}}, Y: Field{[10]uint32{0x022021e0, 0x03fba76b, 0x01a8e4bf, 0x039b8742, 0x03a9d003, 0x007019cf, 0x02dc15a4, 0x00efeff1, 0x02c50bf2, 0x001fbd21}}}, + {X: Field{[10]uint32{0x0398c0a0, 0x01b4dbcc, 0x0166dd47, 0x0262f004, 0x03337203, 0x02e03875, 0x01e465df, 0x0071067e, 0x017cb172, 0x000dce29}}, Y: Field{[10]uint32{0x030c22f5, 0x01529e2d, 0x00bfd118, 0x01b14a49, 0x0243df56, 0x03610e16, 0x028a629a, 0x02c5b5b4, 0x03b21662, 0x00387c96}}}, + {X: Field{[10]uint32{0x0281885d, 0x00001b9e, 0x02e37694, 0x02e2dd40, 0x021955fe, 0x0377db6a, 0x01575f12, 0x0048e6a1, 0x01c16b2a, 0x00132b88}}, Y: Field{[10]uint32{0x00dc99c3, 0x03d5972d, 0x019e237a, 0x026ca755, 0x0225fa2c, 0x020a0cac, 0x0271e89c, 0x0183609d, 0x00553886, 0x000abffa}}}, + {X: Field{[10]uint32{0x00c2bd7b, 0x00bebe37, 0x02039573, 0x03b86ea9, 0x0397bfa7, 0x016f30e9, 0x037cf558, 0x002f8db8, 0x021fba8a, 0x00131446}}, Y: Field{[10]uint32{0x025651af, 0x029172ac, 0x0372d8a6, 0x01a621f0, 0x03abb272, 0x02575a0c, 0x0000fd4a, 0x02affc8d, 0x03945c6b, 0x003a9a7d}}}, + {X: Field{[10]uint32{0x005a7e29, 0x0145e79d, 0x01f8320c, 0x012cae94, 0x02c2e4a4, 0x03a4db02, 0x007c25ad, 0x010dc098, 0x00c4323b, 0x00360476}}, Y: Field{[10]uint32{0x03c05345, 0x037652b9, 0x0293c3c4, 0x00fda7e7, 0x0346c6df, 0x02d2438e, 0x020aeabc, 0x011fe036, 0x00a217bf, 0x001bfe5c}}}, + {X: Field{[10]uint32{0x02c43eee, 0x03897985, 0x01b0b1ca, 0x02b87ec2, 0x0233db68, 0x004ed7fe, 0x01bbafdf, 0x02abff8e, 0x01d3b5e5, 0x000407ad}}, Y: Field{[10]uint32{0x02c5ddb3, 0x00698eae, 0x00f4a163, 0x00e4d383, 0x00a49709, 0x02c0c483, 0x03a1c96e, 0x01c96981, 0x01149867, 0x00275a95}}}, + {X: Field{[10]uint32{0x02480519, 0x0073e2dc, 0x03968de2, 0x01c3bfe3, 0x01ecdc7f, 0x018bfab4, 0x001f21f0, 0x03917f85, 0x0152b8dd, 0x00227ac4}}, Y: Field{[10]uint32{0x0297b447, 0x036c1f2d, 0x0195b41f, 0x02a18fef, 0x00cb6703, 0x00af11dc, 0x02c99d7f, 0x038f55a7, 0x03c43181, 0x003e28cd}}}, + {X: Field{[10]uint32{0x02d0dc16, 0x03a59366, 0x030cdbd1, 0x03ada379, 0x0149d95e, 0x0154066a, 0x03d8f1e4, 0x0291349c, 0x03f3f48e, 0x0014f58c}}, Y: Field{[10]uint32{0x011645fe, 0x03f4cef3, 0x023af48f, 0x03b923f9, 0x028e8ff4, 0x039b6df9, 0x03fe6f32, 0x033c6cfd, 0x0176964d, 0x0006c9bb}}}, + {X: Field{[10]uint32{0x00d9be6a, 0x023e57f6, 0x02d1a92f, 0x012e0e62, 0x006ce3db, 0x0273b6d9, 0x0294d26b, 0x00441966, 0x01104989, 0x0037841a}}, Y: Field{[10]uint32{0x02b43d32, 0x03644cd7, 0x03e7b5b9, 0x039b73e0, 0x008768a4, 0x008f5022, 0x00a3d06d, 0x0274595e, 0x0341dbd9, 0x0021d902}}}, + {X: Field{[10]uint32{0x02f5bea2, 0x005dcf1a, 0x023caf76, 0x01ed0685, 0x00cc6daa, 0x02027684, 0x0189a9a7, 0x038916b0, 0x026f0b9e, 0x00103b47}}, Y: Field{[10]uint32{0x00217b2e, 0x0330787f, 0x03adb50b, 0x00ba9c65, 0x0082bae8, 0x010c2b01, 0x02b7bdf1, 0x03ee69e3, 0x01017298, 0x003ffb45}}}, + {X: Field{[10]uint32{0x03ba15c1, 0x0046f599, 0x02dfaa3b, 0x028ca7c9, 0x001b7ab3, 0x03a94a73, 0x004d1719, 0x002e68de, 0x02ee59a2, 0x00157eaa}}, Y: Field{[10]uint32{0x002f4a65, 0x014f77c6, 0x0075c373, 0x00169f95, 0x000d7f28, 0x0391c197, 0x014771d8, 0x014f8d7b, 0x039b52ac, 0x002a7e24}}}, + {X: Field{[10]uint32{0x028af3fb, 0x02f40afe, 0x03ccba53, 0x001fc0d3, 0x00a95ac6, 0x01255b44, 0x000ca172, 0x0222bc86, 0x024e21cf, 0x002d4779}}, Y: Field{[10]uint32{0x03b7f81e, 0x02ce1b00, 0x01ac4878, 0x0066922c, 0x029b8400, 0x0399b129, 0x0399f1f6, 0x00bafd1a, 0x03701c65, 0x0005d766}}}, + {X: Field{[10]uint32{0x0307b143, 0x03e65ede, 0x00171556, 0x03a3361d, 0x007b8927, 0x00d9f3d0, 0x03235be9, 0x007a092e, 0x00dcbcd9, 0x001455ac}}, Y: Field{[10]uint32{0x00cc91dc, 0x03d2fe08, 0x018dec2a, 0x02432ec3, 0x01d40ada, 0x0049c05b, 0x01ded191, 0x0130ff99, 0x000fa29d, 0x0007515f}}}, + {X: Field{[10]uint32{0x016dd63d, 0x00476382, 0x02bcd00e, 0x0019e46d, 0x03f1993c, 0x02391069, 0x01fac558, 0x0125cc58, 0x0172060b, 0x000efd47}}, Y: Field{[10]uint32{0x00722d49, 0x02ba293d, 0x0312663e, 0x038abdd3, 0x0173e1e4, 0x03da6126, 0x023905dd, 0x02bf6ff1, 0x007090a7, 0x001ef1ad}}}, + {X: Field{[10]uint32{0x02d61fe5, 0x036dec26, 0x0205ad76, 0x03193eab, 0x0122fa74, 0x029bcb68, 0x014f4d3b, 0x02040845, 0x00912008, 0x0034a5c4}}, Y: Field{[10]uint32{0x028e3fc8, 0x0123dad8, 0x00156926, 0x01cd954a, 0x02bc33cb, 0x014708f0, 0x000cc141, 0x03cf23e5, 0x03aaf2cc, 0x001cd43a}}}, + {X: Field{[10]uint32{0x0368013d, 0x02d82a71, 0x0126c559, 0x01f88d05, 0x036d7a3b, 0x007ff4c2, 0x015a5202, 0x0044be89, 0x03ca8e17, 0x0030bb91}}, Y: Field{[10]uint32{0x03ece448, 0x0014058a, 0x0031a453, 0x002080a6, 0x0280d9ff, 0x036cec8e, 0x008e83be, 0x01fd6c77, 0x036bd83b, 0x000b9ba2}}}, + {X: Field{[10]uint32{0x0270b6cf, 0x016b6f4f, 0x03aaae47, 0x012d5876, 0x00c5ef44, 0x01b31300, 0x00da39e9, 0x03383678, 0x00d69ddc, 0x00156666}}, Y: Field{[10]uint32{0x00ffb328, 0x014d308d, 0x03ac525c, 0x01cc6bcb, 0x00cf0f31, 0x02d34879, 0x02b5e8cd, 0x03b96e37, 0x020095ae, 0x0031270a}}}, + {X: Field{[10]uint32{0x03baf363, 0x0152405a, 0x032f9e9d, 0x03764372, 0x017c1955, 0x01c86a63, 0x01305c39, 0x02eb7791, 0x02c3e4c8, 0x0012d2c0}}, Y: Field{[10]uint32{0x00d43468, 0x01a178c6, 0x00fb925b, 0x0191856f, 0x01d22a6a, 0x00f70c13, 0x01d546e0, 0x0166cf09, 0x037ebe8f, 0x00282d9e}}}, + {X: Field{[10]uint32{0x02c549c5, 0x01f74b2a, 0x0101fe0d, 0x03a3b87b, 0x007650ad, 0x0350a25f, 0x00f897c5, 0x02d09d47, 0x03fd7836, 0x003eebf9}}, Y: Field{[10]uint32{0x02668436, 0x00044384, 0x03aeb5e7, 0x00a26914, 0x01229a7e, 0x03b69489, 0x03841f58, 0x01f945ed, 0x014352d0, 0x000bd446}}}, + {X: Field{[10]uint32{0x0076c06c, 0x03786d9c, 0x0219f954, 0x0340a92c, 0x0281b21b, 0x01ceb139, 0x004e620b, 0x02e281e2, 0x02f90c65, 0x003334c1}}, Y: Field{[10]uint32{0x0257510b, 0x017d6c55, 0x005668ab, 0x029d6932, 0x00003f68, 0x00f8115d, 0x03056dc7, 0x02d43241, 0x007fa7b0, 0x00208fe9}}}, + {X: Field{[10]uint32{0x00195a3b, 0x02e35586, 0x01980820, 0x0177626a, 0x01912415, 0x0211d14b, 0x01a870a7, 0x01a474ed, 0x0038995a, 0x002ebef6}}, Y: Field{[10]uint32{0x00ad92a3, 0x024f9f42, 0x006874e8, 0x03560e72, 0x004f05f4, 0x00082d6c, 0x00e7f521, 0x00a7bbec, 0x01fac948, 0x00237d32}}}, + {X: Field{[10]uint32{0x024f458f, 0x0330e008, 0x019fb157, 0x00dee1a4, 0x00713d8f, 0x03e50299, 0x0166af8f, 0x0055b828, 0x003a8073, 0x00344973}}, Y: Field{[10]uint32{0x0035abde, 0x013b2f2f, 0x012a3a03, 0x00bbc981, 0x021bb7a2, 0x0288e9e3, 0x001054ae, 0x00de9f7c, 0x00b6ac4e, 0x00280c3a}}}, + {X: Field{[10]uint32{0x038187c2, 0x03c9e3b2, 0x008668cb, 0x03f629fa, 0x01f2d1bb, 0x0388b90b, 0x02c6433b, 0x036aebbc, 0x03281b5d, 0x001f5247}}, Y: Field{[10]uint32{0x00dfe8ed, 0x009ee9bd, 0x02af9bea, 0x031faf20, 0x0228b040, 0x01d82cbf, 0x0381ea3f, 0x00259b28, 0x021d7036, 0x00328605}}}, + {X: Field{[10]uint32{0x01f8c39e, 0x017c1ef3, 0x03961601, 0x025541e6, 0x016d70a5, 0x02a7d25e, 0x002995c6, 0x0048ea1b, 0x02339f29, 0x000c7336}}, Y: Field{[10]uint32{0x00b49f65, 0x030b93fa, 0x03a19561, 0x02c2f201, 0x02376626, 0x0018347c, 0x0128a9ff, 0x007eb265, 0x010bedf6, 0x002bac9f}}}, + {X: Field{[10]uint32{0x017807ba, 0x00e7d28a, 0x01ba7d74, 0x00bc3784, 0x01e5ec91, 0x006ddbec, 0x012073e7, 0x024625b2, 0x00c7f45f, 0x0001e799}}, Y: Field{[10]uint32{0x0023c921, 0x0177b5d6, 0x02e7efe8, 0x02f3258c, 0x00d17685, 0x0097626d, 0x011abe38, 0x0258f162, 0x0036b354, 0x0015f64d}}}, + {X: Field{[10]uint32{0x0042274e, 0x00c7daa3, 0x0206c78a, 0x034b7af3, 0x0369f422, 0x002f690f, 0x02f057b6, 0x00e1a1c7, 0x02dffccb, 0x003588cb}}, Y: Field{[10]uint32{0x000ef826, 0x0331f5fb, 0x004d6d62, 0x018eb0f7, 0x0158a18f, 0x026d7df4, 0x03472f22, 0x038274db, 0x03a0b2e2, 0x0004f6bb}}}, + {X: Field{[10]uint32{0x006e368e, 0x02ed99d1, 0x03ea6a7e, 0x0349228c, 0x00722d78, 0x020a2516, 0x038fc00c, 0x038e94dc, 0x0298b2d6, 0x0008703c}}, Y: Field{[10]uint32{0x03062383, 0x019837f7, 0x034a2b20, 0x016b97cc, 0x02cbb3f2, 0x017695a7, 0x015eede1, 0x03f656e2, 0x03ec17d2, 0x00219d54}}}, + {X: Field{[10]uint32{0x003196c8, 0x00b2bb93, 0x031d0f4f, 0x0070ff66, 0x00eaa231, 0x013dd1c8, 0x011621c5, 0x03de6755, 0x01010dcb, 0x0007468f}}, Y: Field{[10]uint32{0x039734eb, 0x03ebab90, 0x0233d6f8, 0x00701f97, 0x005453bf, 0x00e51763, 0x01b1a301, 0x03e4321e, 0x01159900, 0x003569e8}}}, + {X: Field{[10]uint32{0x00e76735, 0x02ec770a, 0x025614f4, 0x0171dd4e, 0x0162e26d, 0x0160a854, 0x00a97d18, 0x027b7803, 0x02808fa9, 0x0015d221}}, Y: Field{[10]uint32{0x03c17c6f, 0x02876e4b, 0x02b1eeba, 0x00d2576c, 0x00b3bbee, 0x03b06925, 0x000ecc54, 0x03b78373, 0x00597117, 0x0037af6a}}}, + {X: Field{[10]uint32{0x0391715a, 0x03eb7225, 0x0207c9f6, 0x034c7073, 0x03607194, 0x0322f7a7, 0x01e820c4, 0x037fe938, 0x00d34ce1, 0x002db74d}}, Y: Field{[10]uint32{0x0239cc9d, 0x02194862, 0x03200717, 0x0150e810, 0x031487e5, 0x0126f1f3, 0x01c0ec90, 0x0354ccab, 0x0068e405, 0x0022fd22}}}, + {X: Field{[10]uint32{0x0291d0de, 0x01412f52, 0x031600f3, 0x01b27882, 0x035821df, 0x0148b7e6, 0x02bc8871, 0x021dcb28, 0x02d56908, 0x00243e77}}, Y: Field{[10]uint32{0x02f902ac, 0x03ae9dba, 0x017f9a2b, 0x006c498e, 0x01f76b3c, 0x011250ce, 0x010af26b, 0x0129bbf7, 0x024add53, 0x000345f9}}}, + {X: Field{[10]uint32{0x032cfa59, 0x02b3195a, 0x0299d260, 0x00e66c40, 0x03db07b2, 0x00c00a1c, 0x006e4a0c, 0x024d4e44, 0x00e858d1, 0x003157cd}}, Y: Field{[10]uint32{0x00e50f5b, 0x0058b78c, 0x00dda11f, 0x03ef05ae, 0x009a8fe1, 0x00b3becd, 0x0149f7fe, 0x0288b9ca, 0x00d474b5, 0x001f67ce}}}, + {X: Field{[10]uint32{0x02b8ecad, 0x03c5c895, 0x025750c5, 0x034adbd4, 0x03f39c16, 0x0128ad89, 0x03f8452c, 0x0207166c, 0x0192d389, 0x001ab910}}, Y: Field{[10]uint32{0x030b099d, 0x0365c55f, 0x02d61603, 0x0073b69a, 0x03fa61de, 0x00e3925c, 0x01c4b91e, 0x00812a7b, 0x00dd7c49, 0x0026eeea}}}, + {X: Field{[10]uint32{0x03dcffbc, 0x0113bbdb, 0x0379ae03, 0x007db362, 0x00bd0c25, 0x02ad9113, 0x013ad99e, 0x006cd9aa, 0x0239423e, 0x000ce9f5}}, Y: Field{[10]uint32{0x0011c61e, 0x021b8ee5, 0x002c02bb, 0x024756eb, 0x032f0678, 0x027b48b4, 0x012684fc, 0x0328abe9, 0x02cc006d, 0x00309844}}}, + {X: Field{[10]uint32{0x0159af0a, 0x010351fc, 0x024b2ea6, 0x03643d4a, 0x013380c1, 0x01db29b1, 0x03a6642a, 0x0219c0a3, 0x0331eac4, 0x001211c4}}, Y: Field{[10]uint32{0x00142704, 0x021b51e8, 0x0314d5b5, 0x0251c169, 0x01c5047b, 0x022ed87d, 0x0103a311, 0x038073ee, 0x014693fd, 0x002d3aa1}}}, + {X: Field{[10]uint32{0x02587917, 0x0004a970, 0x00e86d46, 0x01e6fae3, 0x0172defd, 0x00f492dc, 0x03faab74, 0x00c70133, 0x00399ae7, 0x0001596b}}, Y: Field{[10]uint32{0x00bbab48, 0x000a6066, 0x000d779c, 0x0227f53d, 0x02146649, 0x0026a591, 0x0011fece, 0x00c7abf1, 0x02a5d450, 0x0037ad5a}}}, + {X: Field{[10]uint32{0x00314c0b, 0x01c21726, 0x03773eaa, 0x0251b72f, 0x00995490, 0x03168cbf, 0x00d017d0, 0x00adf5aa, 0x00b53b6c, 0x0025920e}}, Y: Field{[10]uint32{0x01130b97, 0x03e717bf, 0x02a2f6ca, 0x027be810, 0x03ac6fdc, 0x039daf5d, 0x0271ee0e, 0x000d3f22, 0x033cec44, 0x000b6be7}}}, + {X: Field{[10]uint32{0x00eb88d5, 0x038bc7b1, 0x0087c4aa, 0x00340bbe, 0x006f9bff, 0x039522c5, 0x003522da, 0x001e2e76, 0x02907b8d, 0x002f0036}}, Y: Field{[10]uint32{0x00ddb152, 0x03856908, 0x02befeaf, 0x01fed066, 0x020fef4d, 0x0132ca7d, 0x0321dd13, 0x036dcd97, 0x0111f9e2, 0x001af43f}}}, + {X: Field{[10]uint32{0x03a7bea4, 0x01156af6, 0x0111d075, 0x02cc9fec, 0x00a2082b, 0x03d79543, 0x03dd8ae9, 0x027c33c4, 0x005500f8, 0x0006967e}}, Y: Field{[10]uint32{0x0200c823, 0x0321c29d, 0x035c2150, 0x01db8b90, 0x00e77e6e, 0x02997142, 0x0225c530, 0x02b7ff27, 0x0340d460, 0x001fa8be}}}, + {X: Field{[10]uint32{0x02ccc764, 0x01662953, 0x02fdad88, 0x028c9e69, 0x00452706, 0x015a5409, 0x01081624, 0x03f1ab51, 0x011bd3bf, 0x001e8ed8}}, Y: Field{[10]uint32{0x02233145, 0x0286b48c, 0x030d368a, 0x035a875c, 0x0283d30b, 0x015274ea, 0x033d6efe, 0x01b94b21, 0x01896806, 0x0005b825}}}, + {X: Field{[10]uint32{0x015d6d91, 0x01786dc0, 0x02bef4cd, 0x00a14444, 0x02a0a1cc, 0x0315b89e, 0x02fa95b5, 0x002969e1, 0x01779cbe, 0x000bfb55}}, Y: Field{[10]uint32{0x014bddfa, 0x02751b8b, 0x02637995, 0x0399bf97, 0x02f66fd3, 0x01b71942, 0x01691fa3, 0x01fed58f, 0x0027b229, 0x001fbab3}}}, + {X: Field{[10]uint32{0x034a9558, 0x0152835d, 0x02d02f01, 0x0377c6cd, 0x03018326, 0x02faed12, 0x03efaea6, 0x037d959c, 0x0217952e, 0x00099eb4}}, Y: Field{[10]uint32{0x01a13fef, 0x01456ec4, 0x01e6d907, 0x02de8121, 0x01703cc9, 0x02fd5280, 0x00a7b330, 0x017979a2, 0x00c07e9d, 0x001dd64f}}}, + {X: Field{[10]uint32{0x036687e8, 0x0017b85f, 0x02b106fa, 0x006f29fa, 0x010e0d34, 0x017cc851, 0x038cceca, 0x026721a5, 0x022c239b, 0x003adbb5}}, Y: Field{[10]uint32{0x02c0a241, 0x027eff14, 0x0133b662, 0x02e24187, 0x012a6e6a, 0x00eb61d5, 0x029b2258, 0x02a3a338, 0x022250f6, 0x002b6267}}}, + {X: Field{[10]uint32{0x030a9e5b, 0x00425350, 0x027b1089, 0x026fe232, 0x035087a5, 0x005a1b13, 0x00ef33c4, 0x00853c2d, 0x017ce03d, 0x0032973c}}, Y: Field{[10]uint32{0x00989ce9, 0x018eb4f4, 0x0003ef99, 0x0201c95e, 0x01e19351, 0x023a80a6, 0x03ae683c, 0x01d6eb3f, 0x02eb473f, 0x0005f913}}}, + {X: Field{[10]uint32{0x01e82f7c, 0x01c85794, 0x03a2fe4c, 0x033d1988, 0x00c82f21, 0x024f9adb, 0x03035eca, 0x0190b98f, 0x029cacf0, 0x00131ef0}}, Y: Field{[10]uint32{0x02776875, 0x034af8a0, 0x01322e59, 0x03903c7d, 0x03eb537b, 0x0102900a, 0x03f64e7e, 0x01e5b050, 0x036e8756, 0x001f1579}}}, + {X: Field{[10]uint32{0x031058e3, 0x0186f0d9, 0x03d2080b, 0x02108e27, 0x03797831, 0x02b3d375, 0x03e50130, 0x0227c140, 0x00e9b422, 0x0015f2ae}}, Y: Field{[10]uint32{0x03d9e2bc, 0x0262aaa7, 0x012ca7c3, 0x011650c3, 0x022b048c, 0x01cba6fb, 0x030b884e, 0x009cf69e, 0x03186671, 0x001e0894}}}, + {X: Field{[10]uint32{0x03c4823e, 0x03d8c426, 0x02c2753f, 0x01cbb4b9, 0x01abf3d2, 0x015a10fd, 0x0013a82a, 0x0030d37a, 0x023df112, 0x000f0afc}}, Y: Field{[10]uint32{0x013f1990, 0x03add64b, 0x029d0d08, 0x00a384bf, 0x00767409, 0x032772e2, 0x00c5b47e, 0x0348cf38, 0x036388ae, 0x0005d676}}}, + {X: Field{[10]uint32{0x02ab38d2, 0x0206c683, 0x02856d85, 0x0288a34d, 0x0234170a, 0x0373f774, 0x03348dc3, 0x01d0a834, 0x01ac83e0, 0x0030042a}}, Y: Field{[10]uint32{0x0076aafd, 0x009da10f, 0x038ea9cd, 0x004111ad, 0x002b2dc8, 0x02433e48, 0x031da1f1, 0x029a3f87, 0x03ed0644, 0x0018d325}}}, + {X: Field{[10]uint32{0x02071994, 0x01164ea4, 0x01660550, 0x00fee8ea, 0x014f1b77, 0x00f6722a, 0x00cb632b, 0x0291a039, 0x01ee548b, 0x00292af6}}, Y: Field{[10]uint32{0x00f87182, 0x017a3bf2, 0x00b6111b, 0x0123afff, 0x01c9390b, 0x0100d597, 0x02ab00a8, 0x00ca5ff1, 0x026aba26, 0x000e8509}}}, + {X: Field{[10]uint32{0x00dda172, 0x028ccf7a, 0x007115a7, 0x039666de, 0x01d68b82, 0x03b3bff9, 0x0008540d, 0x0057c717, 0x0052efc1, 0x003700b2}}, Y: Field{[10]uint32{0x036c29c6, 0x01febd57, 0x009ba236, 0x03732e15, 0x028a35f8, 0x023332a8, 0x03f4eaed, 0x03a10b29, 0x013a8e1a, 0x00393996}}}, + {X: Field{[10]uint32{0x01ec57c8, 0x036d68a4, 0x01cac1b6, 0x0205c85d, 0x000a54fc, 0x03ca7f5f, 0x00a5a4b5, 0x008bff0a, 0x01e82238, 0x003b91da}}, Y: Field{[10]uint32{0x0020385f, 0x004ff9b0, 0x00619384, 0x0050a025, 0x00338905, 0x02c05631, 0x0178b9a2, 0x0323ae82, 0x02bc4076, 0x003f28b1}}}, + {X: Field{[10]uint32{0x013ef066, 0x0349c9f6, 0x032abb11, 0x033cc493, 0x002cf990, 0x03c2230e, 0x035a6dec, 0x00303f50, 0x001d3491, 0x003cc01b}}, Y: Field{[10]uint32{0x0149eae2, 0x00da4132, 0x00d9b82d, 0x01b2237f, 0x03f8016a, 0x00d73c99, 0x01ebaf12, 0x01fd468a, 0x01f5aa36, 0x00001d8a}}}, + {X: Field{[10]uint32{0x027313b7, 0x02e4d5c7, 0x030f3794, 0x001124cb, 0x02b1b9c8, 0x00970ff5, 0x01f0a3e3, 0x0159a44a, 0x003d07bf, 0x001f3ec8}}, Y: Field{[10]uint32{0x002bc60f, 0x0116ed3a, 0x02d3982a, 0x03f99c60, 0x01e4ae08, 0x021ec05b, 0x00c42173, 0x0270e322, 0x01fd2433, 0x0013ddae}}}, + {X: Field{[10]uint32{0x02312c0a, 0x01343acc, 0x03206a32, 0x01c60eba, 0x01efeabe, 0x01c1156b, 0x0130be8e, 0x00264c27, 0x00e036e0, 0x0003328f}}, Y: Field{[10]uint32{0x0215b9e5, 0x035fa345, 0x018b20ef, 0x03766369, 0x0091b437, 0x00163223, 0x00637252, 0x01f1b4d3, 0x0258fe94, 0x00259d2b}}}, + {X: Field{[10]uint32{0x02b0d9c8, 0x02b39982, 0x01212c66, 0x03488e27, 0x01d9815f, 0x007e635c, 0x01a071c0, 0x01709e0b, 0x014881cd, 0x0027ed90}}, Y: Field{[10]uint32{0x01813251, 0x00f04fb4, 0x0309bce2, 0x011e71da, 0x03d11d50, 0x0013c71c, 0x035e515c, 0x00dd097d, 0x00541a51, 0x00013095}}}, + {X: Field{[10]uint32{0x01558b25, 0x001c2d94, 0x01542c2c, 0x03601aa8, 0x01eb5d2a, 0x009582d3, 0x0139de23, 0x03516443, 0x02bf03e3, 0x000076ef}}, Y: Field{[10]uint32{0x010b9db1, 0x02e739cb, 0x01876877, 0x0145a60c, 0x01940eae, 0x01d21328, 0x014753fd, 0x03924106, 0x031c2e94, 0x003b1a39}}}, + {X: Field{[10]uint32{0x006bb5f7, 0x00428fe9, 0x01e215a2, 0x03a49061, 0x015a890e, 0x01321350, 0x002856b0, 0x01d085dd, 0x021992f4, 0x001dd474}}, Y: Field{[10]uint32{0x03237fef, 0x00f19206, 0x01a2273a, 0x028532b1, 0x036371f6, 0x03da6305, 0x01327493, 0x0321b3b7, 0x01c5b770, 0x000a456a}}}, + {X: Field{[10]uint32{0x00f36a2d, 0x025ff2bb, 0x01737707, 0x02593847, 0x01e7b89c, 0x033d992c, 0x0382983e, 0x0270f881, 0x01a05b18, 0x000e6a12}}, Y: Field{[10]uint32{0x013690c5, 0x02d7b440, 0x01114f43, 0x014d53d0, 0x0148e692, 0x019a1625, 0x02274d15, 0x036c1af8, 0x00f16191, 0x0034f9be}}}, + {X: Field{[10]uint32{0x039b25bb, 0x0045f2f9, 0x01dea768, 0x00a2e2ff, 0x0080e3d6, 0x0104b59f, 0x0395522d, 0x03b483e7, 0x0125b29c, 0x0019f958}}, Y: Field{[10]uint32{0x0103da21, 0x01edc4a3, 0x0257f916, 0x033c19ba, 0x033c83ed, 0x0340b4a4, 0x020fd883, 0x008fd12a, 0x00157e3c, 0x0018237f}}}, + {X: Field{[10]uint32{0x038f1525, 0x008a6ded, 0x027bb5cb, 0x03bd4a4c, 0x02ecdd01, 0x02560e7d, 0x01eec20e, 0x0356774c, 0x02da02f7, 0x0002946b}}, Y: Field{[10]uint32{0x03847903, 0x0024b035, 0x02cdd1f0, 0x03420364, 0x036621c7, 0x031a062a, 0x038b18f4, 0x0218acf4, 0x03df93fb, 0x001c1259}}}, + {X: Field{[10]uint32{0x02c1745d, 0x019308da, 0x01e7aaae, 0x01bfed22, 0x01f8bcb3, 0x00ec00e2, 0x02b71b77, 0x032d1bd7, 0x013e73a1, 0x0032601a}}, Y: Field{[10]uint32{0x02fae474, 0x0330162d, 0x02bd4274, 0x03bc01c1, 0x00b3b21f, 0x03eee9ba, 0x01853e56, 0x01fbeddc, 0x008efe6b, 0x002fcee0}}}, + {X: Field{[10]uint32{0x021391a9, 0x01e8dd02, 0x007136b1, 0x034a5235, 0x0394167b, 0x025d7a7c, 0x0227aab2, 0x013070a3, 0x0130bcf5, 0x0031e37e}}, Y: Field{[10]uint32{0x004d9ae7, 0x023c378c, 0x01e5e031, 0x00886f19, 0x00163bfe, 0x020ef878, 0x03b5e9a2, 0x01e6f956, 0x03366d3a, 0x00269093}}}, + {X: Field{[10]uint32{0x01284089, 0x010bf11b, 0x016e5fb2, 0x039399cc, 0x00a998b1, 0x03dfc794, 0x0168ebc8, 0x03cea798, 0x03bcc6d2, 0x00269d7d}}, Y: Field{[10]uint32{0x03169e01, 0x03cc566f, 0x037bfd40, 0x030de1e5, 0x0239bf6e, 0x03f1f8d6, 0x0106c6e8, 0x02e6a8eb, 0x00e6dff8, 0x00032d1e}}}, + {X: Field{[10]uint32{0x036e6224, 0x02dc68e2, 0x001c0d20, 0x01f2dbe0, 0x007eba1e, 0x01739cf9, 0x008277d9, 0x02cf9f6d, 0x031adb0b, 0x001dac84}}, Y: Field{[10]uint32{0x0179263a, 0x034924a6, 0x007b2f79, 0x03e04831, 0x03196c5a, 0x034a1dcd, 0x01e36e6c, 0x03956c2a, 0x00daef60, 0x0000cb8f}}}, + {X: Field{[10]uint32{0x001384e1, 0x0290acd7, 0x01e68f32, 0x011b7ae3, 0x03cdcc4c, 0x036a2520, 0x01f96c93, 0x025c77d5, 0x03614ec5, 0x00086260}}, Y: Field{[10]uint32{0x026dac3e, 0x021ad7c4, 0x02c97d64, 0x012b6726, 0x01c5eda5, 0x01dda5d0, 0x02a2d224, 0x0254eac8, 0x005044a4, 0x000b0e5b}}}, + {X: Field{[10]uint32{0x03db8adc, 0x013e1d78, 0x002a9aa1, 0x029b3d76, 0x03a08449, 0x014a3fb2, 0x01dbe1ca, 0x00603440, 0x02494e9d, 0x002b02c2}}, Y: Field{[10]uint32{0x00412554, 0x03bf8f9c, 0x02dd9b2a, 0x027cc518, 0x00371dd1, 0x01a9aa3a, 0x0153b9c5, 0x02d60cb7, 0x001225a1, 0x0009b475}}}, + {X: Field{[10]uint32{0x00e04625, 0x029b09cc, 0x00a1b6dc, 0x0336efc1, 0x029d1a78, 0x017d65a8, 0x02d33297, 0x02997ef5, 0x018c0851, 0x003e1a6d}}, Y: Field{[10]uint32{0x02a5bff0, 0x02eaec31, 0x01b09c3c, 0x006ee2e4, 0x00a0cfb3, 0x00526527, 0x00b1603e, 0x0171cb06, 0x0344fc6f, 0x001037b8}}}, + {X: Field{[10]uint32{0x01544c3a, 0x01e35bae, 0x032aaecf, 0x00ea39f5, 0x01a640a4, 0x01cf18fb, 0x004a5f22, 0x00943e26, 0x02db2406, 0x003dd3c0}}, Y: Field{[10]uint32{0x0386185b, 0x02bd64f3, 0x02aea1c0, 0x01e87bba, 0x015e364f, 0x017caf3c, 0x03c1a618, 0x007a4a28, 0x026dcacc, 0x00220b8e}}}, + {X: Field{[10]uint32{0x027ea65d, 0x0250ea81, 0x0069ff3d, 0x01412dfa, 0x0288c390, 0x002a9a74, 0x03c9284a, 0x0157acba, 0x02b61d67, 0x0030184f}}, Y: Field{[10]uint32{0x03848cba, 0x0084f149, 0x02c09fe4, 0x006fc34d, 0x0129931c, 0x01764a27, 0x03a89665, 0x0320b92b, 0x02e527b5, 0x001cbd86}}}, + {X: Field{[10]uint32{0x031285db, 0x00e7c23c, 0x007a7eb7, 0x018d490c, 0x00ae0dbf, 0x0045ebac, 0x00fd8c47, 0x002298f0, 0x039860ba, 0x003ad9bf}}, Y: Field{[10]uint32{0x03ddc5d5, 0x01d456a1, 0x0261655c, 0x03cc1dd3, 0x027d3662, 0x03903d2e, 0x005dfb94, 0x03caba2c, 0x02ca54bc, 0x00030c50}}}, + {X: Field{[10]uint32{0x004a861d, 0x0145bc3b, 0x015b871a, 0x005455b0, 0x02e41c6b, 0x0294d180, 0x025d58bc, 0x018187f0, 0x00e6a125, 0x000e9c42}}, Y: Field{[10]uint32{0x004393a6, 0x00c1938f, 0x01226a18, 0x035d9b7c, 0x00957bfc, 0x005f9fa2, 0x011b5bec, 0x02aec806, 0x0102041c, 0x0036ab8b}}}, + {X: Field{[10]uint32{0x00f89d5f, 0x03a500ee, 0x00958949, 0x03cd39d1, 0x00ea1a2f, 0x02c817cb, 0x02e73717, 0x01a744cf, 0x0258c831, 0x00345f8e}}, Y: Field{[10]uint32{0x018b1a20, 0x01ffcc98, 0x010225ac, 0x02e60729, 0x012d75fc, 0x034574d2, 0x00ffafa6, 0x03662e48, 0x037d69e5, 0x002630d7}}}, + {X: Field{[10]uint32{0x03f6541c, 0x00daeac2, 0x01385fff, 0x0353dd9e, 0x0298caf6, 0x018638bf, 0x0350cbf2, 0x02e3b450, 0x0092cefb, 0x0035b8ca}}, Y: Field{[10]uint32{0x02636298, 0x0207af6c, 0x0021e080, 0x02f3b6f8, 0x00976196, 0x015bc926, 0x0072b553, 0x017b001e, 0x022ebe0f, 0x001c5d51}}}, + {X: Field{[10]uint32{0x02ffef75, 0x01777e02, 0x0229186d, 0x02ba4ea9, 0x0282ddc8, 0x00e3b001, 0x00e2182f, 0x0002b9ba, 0x01ff60e9, 0x000c6352}}, Y: Field{[10]uint32{0x026333b2, 0x02205981, 0x00831a98, 0x03aef8a2, 0x0008dcc3, 0x037daa9c, 0x02d4fd8f, 0x01853707, 0x0027dd7d, 0x001ba5fb}}}, + {X: Field{[10]uint32{0x00cf6346, 0x03e05126, 0x0367c5a2, 0x00ada35b, 0x01c075e7, 0x01616aef, 0x00ea5aeb, 0x036e2e9a, 0x02301772, 0x003f5be7}}, Y: Field{[10]uint32{0x0128d2c0, 0x03aace07, 0x001254d4, 0x00c2abfd, 0x02d76082, 0x01610d55, 0x01c5f513, 0x016f5729, 0x02e76477, 0x0036b745}}}, + {X: Field{[10]uint32{0x002ddd36, 0x02b90e86, 0x00d31566, 0x00aba558, 0x00f07428, 0x02f39da3, 0x00ed08d4, 0x011d86a4, 0x0338a2c7, 0x0023f896}}, Y: Field{[10]uint32{0x024c23a2, 0x0386a087, 0x015c73f8, 0x010c9c74, 0x0251d668, 0x03ef7f8b, 0x00da1b32, 0x02ade28b, 0x004a77c6, 0x001bb87a}}}, + {X: Field{[10]uint32{0x0393bef8, 0x03fae665, 0x03e5d2e6, 0x02ca91b5, 0x013e12ba, 0x01afee05, 0x0217bcff, 0x023fbd2b, 0x02d288ed, 0x000df3c3}}, Y: Field{[10]uint32{0x03e3e0d3, 0x02851b6e, 0x03339119, 0x01ec85e4, 0x00e17a41, 0x036d709e, 0x01254f4d, 0x001d4726, 0x025718eb, 0x00024b9e}}}, + {X: Field{[10]uint32{0x03bf403c, 0x01611081, 0x011e0091, 0x013d4c7b, 0x00eca0e0, 0x0180003a, 0x01eb812b, 0x034321db, 0x006106b9, 0x001a2308}}, Y: Field{[10]uint32{0x00cc01fe, 0x01fac517, 0x035bda8b, 0x020fcb3a, 0x00011d85, 0x008802f7, 0x0112e763, 0x01354f7d, 0x02ba41ba, 0x002ead2c}}}, + {X: Field{[10]uint32{0x00b3d804, 0x020e569c, 0x004e9d86, 0x0213626a, 0x02d1b535, 0x00e59485, 0x022371d6, 0x0254d760, 0x02aaf539, 0x0012d32a}}, Y: Field{[10]uint32{0x01ee73d2, 0x01ef5014, 0x0070ae4c, 0x02444571, 0x02652fbd, 0x01d8793a, 0x001d0437, 0x001268ec, 0x03afcd18, 0x000f7749}}}, + {X: Field{[10]uint32{0x02fa1d2e, 0x013754b8, 0x00e56144, 0x02609388, 0x0347cca3, 0x022ce6d7, 0x00ed9a51, 0x036981d6, 0x03c44135, 0x001bd6b2}}, Y: Field{[10]uint32{0x02cd58c4, 0x0134df12, 0x02569052, 0x035ccd7e, 0x02f729f1, 0x00bc65e8, 0x02f2efc0, 0x03653522, 0x0146e5f6, 0x00017727}}}, + {X: Field{[10]uint32{0x0267fc42, 0x010c4f70, 0x008c6ce9, 0x008dce0a, 0x02661d6f, 0x022dad88, 0x01a527bf, 0x032e45bf, 0x00493dff, 0x001e74b5}}, Y: Field{[10]uint32{0x020c08db, 0x0017cdc2, 0x01de1d28, 0x0247575b, 0x038d9027, 0x03ef2454, 0x0302823d, 0x03dff2f8, 0x03f13fa8, 0x002c9a0e}}}, + {X: Field{[10]uint32{0x01f95524, 0x0002ccfe, 0x00118c08, 0x02f00860, 0x01f3915d, 0x03319f50, 0x037a6b07, 0x01ee7271, 0x007e246b, 0x000cea3a}}, Y: Field{[10]uint32{0x0116ff8f, 0x00d0cce7, 0x0229470b, 0x03bf736c, 0x01207d30, 0x00b97116, 0x015e36be, 0x03417c99, 0x004c584f, 0x002eaa09}}}, + {X: Field{[10]uint32{0x01868e95, 0x036aae9e, 0x03a193f4, 0x02c83ee9, 0x013235dd, 0x012f5518, 0x0161a7ae, 0x01f7e081, 0x0132f388, 0x002685a4}}, Y: Field{[10]uint32{0x00630bcd, 0x02408a51, 0x03bc0719, 0x000397e2, 0x02a233b1, 0x02a59656, 0x01452161, 0x011b110a, 0x03179954, 0x001a1bf0}}}, + {X: Field{[10]uint32{0x0383ac42, 0x01184121, 0x026fc290, 0x0278b297, 0x01c85998, 0x010e7cbd, 0x03dc7e90, 0x0338fe6a, 0x00f48405, 0x001e42dd}}, Y: Field{[10]uint32{0x0224a701, 0x02cc12e2, 0x028a66eb, 0x00aec6a4, 0x011dc676, 0x01c44697, 0x00593a37, 0x02172a64, 0x01135623, 0x00225872}}}, + {X: Field{[10]uint32{0x02f9e49c, 0x021ea8dc, 0x02438b54, 0x0217d493, 0x02954717, 0x03ccbf35, 0x00aaeb69, 0x030b661f, 0x00cfae1f, 0x0038a8f4}}, Y: Field{[10]uint32{0x00c93046, 0x00b4cdc5, 0x008db498, 0x000e63ed, 0x0211f7dc, 0x00233914, 0x03edb543, 0x01c230d5, 0x0205ecf2, 0x00273090}}}, + {X: Field{[10]uint32{0x020bcbea, 0x03087b25, 0x03a7a2b3, 0x00f98f8e, 0x00cfd265, 0x01bcab9a, 0x01372b19, 0x030655db, 0x00435992, 0x00032cc3}}, Y: Field{[10]uint32{0x01ccd0b4, 0x01f374e2, 0x0083d498, 0x016099a9, 0x02fb6830, 0x02d246e2, 0x009cba14, 0x00e326b3, 0x01b97083, 0x003d95cd}}}, + {X: Field{[10]uint32{0x00e8b46a, 0x0090e044, 0x01d2dfe9, 0x01adf265, 0x03296ca6, 0x03ecf9a8, 0x018ffb16, 0x002fb98a, 0x0095d631, 0x0007ebb7}}, Y: Field{[10]uint32{0x00725089, 0x02f493ee, 0x012cee7b, 0x03391097, 0x0226d9f0, 0x02f62dd9, 0x0378d032, 0x03a41394, 0x023f8201, 0x000d40e7}}}, + {X: Field{[10]uint32{0x02b3e8f9, 0x031d42d4, 0x03f318f6, 0x014c78a2, 0x018e93ea, 0x03546cfd, 0x005410ce, 0x030744fc, 0x035a2be8, 0x002991b3}}, Y: Field{[10]uint32{0x00c102bb, 0x03d19429, 0x029bda01, 0x03911950, 0x01e427d7, 0x00794744, 0x03a7e78e, 0x02a482d1, 0x02cb7727, 0x00163163}}}, + {X: Field{[10]uint32{0x02be2205, 0x02f00837, 0x02d39dce, 0x031857b7, 0x011c77c0, 0x01730c8b, 0x038c397a, 0x01f4e3a6, 0x03271853, 0x000c9cd1}}, Y: Field{[10]uint32{0x01a42d65, 0x00092402, 0x032bb72c, 0x012f0f94, 0x01c1ea78, 0x011d69f5, 0x007b072d, 0x03d82f53, 0x008958c3, 0x0030b7af}}}, + {X: Field{[10]uint32{0x0172827e, 0x00bce4f5, 0x03f4d4ce, 0x008b9f6c, 0x009906dd, 0x024c289c, 0x028c095d, 0x02884b01, 0x03180855, 0x0005a869}}, Y: Field{[10]uint32{0x0115605c, 0x01adc934, 0x00660219, 0x005aa2dd, 0x01b1ef30, 0x02fa3df7, 0x0280335c, 0x02a7adb3, 0x024bb30b, 0x0034e275}}}, + {X: Field{[10]uint32{0x03687596, 0x02bd33c8, 0x002e9a61, 0x03e129d0, 0x00eeb1eb, 0x01859ba4, 0x0294b867, 0x0155c4cd, 0x01145de2, 0x002d2fd3}}, Y: Field{[10]uint32{0x03d11242, 0x00bf046e, 0x023dbfac, 0x0186962b, 0x0237d389, 0x02d817a5, 0x018640a6, 0x025f958c, 0x00a4d823, 0x001276c8}}}, + {X: Field{[10]uint32{0x03892630, 0x019ee6c2, 0x0164bbf3, 0x004fa42a, 0x03fc3114, 0x0364e032, 0x00a0de08, 0x01997906, 0x03a9ccf4, 0x00353b59}}, Y: Field{[10]uint32{0x011df131, 0x0017462d, 0x015fa371, 0x01dd86c1, 0x0007472b, 0x00924dd9, 0x028a9729, 0x00220c7f, 0x017ce79a, 0x0023fdf9}}}, + {X: Field{[10]uint32{0x014fe70d, 0x03c7d1fd, 0x01366b32, 0x0373e45b, 0x0044d5df, 0x03070b29, 0x02e906f0, 0x00fbc83a, 0x02f19f41, 0x0022b495}}, Y: Field{[10]uint32{0x02d34da7, 0x0090fb69, 0x02ff494e, 0x01783497, 0x0134778f, 0x00725c86, 0x0147f659, 0x01371609, 0x03418d2c, 0x002f7bba}}}, + {X: Field{[10]uint32{0x01f17f8e, 0x018a854c, 0x0362f07f, 0x03b887c7, 0x01c67d22, 0x029561ee, 0x03723e01, 0x02d7c7c4, 0x02fafe55, 0x002374f8}}, Y: Field{[10]uint32{0x03c88cb0, 0x02fe4fd7, 0x0160b4b4, 0x0072e99a, 0x028f2db4, 0x036711b1, 0x017c6b65, 0x01c5f957, 0x02a47d6b, 0x002a88f4}}}, + {X: Field{[10]uint32{0x00b3d0f6, 0x01de9741, 0x01a678e5, 0x005d5536, 0x0103c139, 0x01ec3a4e, 0x034db01a, 0x00c2beb0, 0x02282a8e, 0x00113f67}}, Y: Field{[10]uint32{0x011a61d0, 0x003305a4, 0x0290e484, 0x001b32c4, 0x0218927d, 0x0256f6f8, 0x0269d592, 0x0066ce85, 0x00613533, 0x0032c1e4}}}, + {X: Field{[10]uint32{0x00b7aa42, 0x02c69c62, 0x02477746, 0x03d39691, 0x022db7c9, 0x025917d1, 0x01d2aa9c, 0x03b5960c, 0x02024464, 0x00174926}}, Y: Field{[10]uint32{0x037281d0, 0x03e2c501, 0x01a12b54, 0x03efca53, 0x0023bb8d, 0x0022d348, 0x0195f80e, 0x01ad70b1, 0x0386527d, 0x000affdc}}}, + {X: Field{[10]uint32{0x0210fb23, 0x0311f203, 0x008ca85a, 0x01502e50, 0x01ddd18b, 0x02247120, 0x01e123cd, 0x03547519, 0x00581edc, 0x003663ad}}, Y: Field{[10]uint32{0x00b4dcf2, 0x033086de, 0x010816a2, 0x005c6c99, 0x032b1537, 0x03c95326, 0x031f9e60, 0x01ab1bcb, 0x03bed375, 0x00056ff4}}}, + {X: Field{[10]uint32{0x00db6082, 0x02013591, 0x02eb5876, 0x01ba759c, 0x036edb48, 0x03a14543, 0x032134d2, 0x02bad884, 0x036919a2, 0x000bc4b0}}, Y: Field{[10]uint32{0x038cf73b, 0x004cf15f, 0x02dd0827, 0x031ef6a0, 0x0320834d, 0x030af438, 0x01264b8d, 0x00a313b7, 0x02dd3b4d, 0x00300447}}}, + {X: Field{[10]uint32{0x004b4624, 0x0005f0c5, 0x023e6f03, 0x00d23c1f, 0x02713260, 0x02f395ea, 0x01d35dfe, 0x0327e108, 0x02847099, 0x00136525}}, Y: Field{[10]uint32{0x01b673da, 0x02c7fff7, 0x02adb126, 0x0136c60b, 0x00b91f95, 0x022c1f68, 0x01b308fb, 0x01a71ca3, 0x0257d713, 0x0026bed6}}}, + {X: Field{[10]uint32{0x02af2466, 0x01a1c038, 0x008b2a97, 0x00936777, 0x020fca8f, 0x014aac5f, 0x020b39a7, 0x03c7238d, 0x01105e95, 0x0033c76e}}, Y: Field{[10]uint32{0x0247ca5f, 0x02371cfd, 0x020040ad, 0x029ecf4b, 0x015e645c, 0x02e59006, 0x001b94b4, 0x0219d29b, 0x0366c49c, 0x0039f267}}}, + {X: Field{[10]uint32{0x02a62b85, 0x0390a11a, 0x03f22a9e, 0x01fc16c9, 0x01d4b174, 0x00b19d61, 0x01d63a24, 0x03ea2ade, 0x00257d2f, 0x0039c7ad}}, Y: Field{[10]uint32{0x022c8865, 0x03d9099a, 0x033c3d10, 0x01e61c38, 0x023bc0a7, 0x0294f8d0, 0x0321f45d, 0x028dd9f5, 0x02ecf901, 0x002a41ab}}}, + {X: Field{[10]uint32{0x00559887, 0x0220aacc, 0x03b218f9, 0x01b289fa, 0x0321c58b, 0x0128a66f, 0x005c3e1b, 0x01d7d0ef, 0x03d30b25, 0x002f3661}}, Y: Field{[10]uint32{0x01483f65, 0x03a6ce87, 0x01b00761, 0x01324a27, 0x00690c1b, 0x018e93ad, 0x02fd894e, 0x02b89cae, 0x00c94339, 0x00100e01}}}, + {X: Field{[10]uint32{0x01f8cab0, 0x031f8d2c, 0x00042ea9, 0x02e9a559, 0x007a2beb, 0x029a7dd0, 0x01d2d5e8, 0x01c588e5, 0x00f748af, 0x002dd357}}, Y: Field{[10]uint32{0x0049b336, 0x015f7afa, 0x00a3ea3c, 0x02a9f73f, 0x035728df, 0x02be9150, 0x01e9a234, 0x03ed660d, 0x01db332b, 0x002d717f}}}, + {X: Field{[10]uint32{0x0160837d, 0x0146dc8d, 0x03edc572, 0x03b98cec, 0x01e9bc12, 0x02482faa, 0x03b3b13a, 0x0326b869, 0x02f59835, 0x0011bcf7}}, Y: Field{[10]uint32{0x010ce67b, 0x014f9a05, 0x02eca91d, 0x007040d7, 0x00818fb7, 0x01c0853b, 0x02a69778, 0x02e72cde, 0x021f2e8e, 0x00161ecb}}}, + {X: Field{[10]uint32{0x0267d572, 0x0133eddd, 0x018b6577, 0x02906457, 0x01a50ceb, 0x02ed80a6, 0x011f4d7c, 0x0025a379, 0x00fdeb3f, 0x00234d06}}, Y: Field{[10]uint32{0x00661db8, 0x014456ab, 0x022039d0, 0x00e03d2c, 0x03e8b3dd, 0x03d9ed31, 0x01da7c00, 0x02118aaa, 0x011016a2, 0x0033b9e6}}}, + {X: Field{[10]uint32{0x016f7c10, 0x033c84ab, 0x03bcf529, 0x01ede193, 0x0230f432, 0x02d9c94e, 0x020a672e, 0x01a575e2, 0x03094510, 0x002632c3}}, Y: Field{[10]uint32{0x020ab333, 0x0355abca, 0x0132f09f, 0x01d69af5, 0x03300fde, 0x00a14b47, 0x007e9b55, 0x0140d66d, 0x01ac4e1b, 0x0009654b}}}, + {X: Field{[10]uint32{0x0339a3cf, 0x02e6384a, 0x00effb58, 0x0132c0c3, 0x01a34c7c, 0x000f7841, 0x01383f3f, 0x01d7f129, 0x024c0ca0, 0x00258117}}, Y: Field{[10]uint32{0x0201bafe, 0x03548c5c, 0x00c6e8f2, 0x038e9412, 0x016ebd03, 0x02f577fb, 0x011f24f7, 0x010546e8, 0x00fd9223, 0x003d49ee}}}, + {X: Field{[10]uint32{0x01cc6030, 0x02fd5aa6, 0x0293e703, 0x03956642, 0x01c3f4b3, 0x035de5d8, 0x0226a9ca, 0x037be32e, 0x009142ad, 0x003c98ba}}, Y: Field{[10]uint32{0x030b594b, 0x00c8635b, 0x01ca1d1f, 0x02dcce4e, 0x035382c7, 0x0024bb3f, 0x0197dd67, 0x01aa403d, 0x036486c8, 0x0009d731}}}, + {X: Field{[10]uint32{0x016d17fe, 0x01c5f6c5, 0x016347cc, 0x0204f1b1, 0x03ad75ef, 0x03946eca, 0x01f7900b, 0x014cd97e, 0x0002ee17, 0x000335e7}}, Y: Field{[10]uint32{0x007a985d, 0x00000c65, 0x0394ac45, 0x023ad245, 0x014ff919, 0x01aaeeb8, 0x03260441, 0x0396f694, 0x00ffb30d, 0x002d7afa}}}, + {X: Field{[10]uint32{0x00f858f4, 0x00897e52, 0x009d280a, 0x00a73147, 0x02d9ba46, 0x018c20c2, 0x0122e03e, 0x01037780, 0x03225b1d, 0x000a2d2f}}, Y: Field{[10]uint32{0x00f3cac0, 0x00db894b, 0x027954ea, 0x03f2c439, 0x03aadf4f, 0x00c00a5e, 0x0134c6be, 0x01053529, 0x018998bb, 0x00091d58}}}, + {X: Field{[10]uint32{0x02ed2ff7, 0x02119731, 0x03ea016c, 0x00db1ec2, 0x03cc765c, 0x0184a297, 0x013344bc, 0x0177ce71, 0x02067dd5, 0x003c063c}}, Y: Field{[10]uint32{0x00aa7e66, 0x02803e39, 0x0261a960, 0x01da1b15, 0x00cda34a, 0x01454133, 0x02c1cd22, 0x02752b19, 0x02b2cd61, 0x00367f16}}}, + {X: Field{[10]uint32{0x024a7a13, 0x03621b10, 0x0394218e, 0x03c5222c, 0x027f661e, 0x03d1f2f6, 0x01dd5c74, 0x01b40a69, 0x00cf0808, 0x00125a5a}}, Y: Field{[10]uint32{0x021874e7, 0x012de1c7, 0x022dfc8d, 0x00909dd3, 0x00360b51, 0x01e71980, 0x017a3635, 0x0183803c, 0x03984420, 0x0035f637}}}, + {X: Field{[10]uint32{0x02efedab, 0x00405ac8, 0x03949892, 0x01728741, 0x03b98435, 0x00d80369, 0x02485749, 0x00eddda3, 0x0059e911, 0x00090b53}}, Y: Field{[10]uint32{0x020f42b1, 0x022de59e, 0x0257727a, 0x0081ac2b, 0x0342f509, 0x014155ce, 0x0228074a, 0x030bb58e, 0x03d7b0c8, 0x0011c373}}}, + {X: Field{[10]uint32{0x0385e8c7, 0x003d3744, 0x015861d2, 0x02f356ac, 0x03466280, 0x01794143, 0x004afacc, 0x01674e13, 0x00cc1a1a, 0x002dae01}}, Y: Field{[10]uint32{0x0121d439, 0x01e62ed9, 0x02d0c898, 0x019c2ec9, 0x0139b579, 0x00a0a7d0, 0x022a1d23, 0x00daa66e, 0x034602a6, 0x000bde24}}}, + {X: Field{[10]uint32{0x01918a4e, 0x02d26dc7, 0x011ca0d1, 0x00b4a931, 0x0346904b, 0x00a04092, 0x038048af, 0x017f74e2, 0x03d07ecc, 0x00370c28}}, Y: Field{[10]uint32{0x018cc917, 0x014469b0, 0x0110febb, 0x02d9e29f, 0x02b701f7, 0x024da952, 0x03536987, 0x003a5d63, 0x01b07055, 0x000c9902}}}, + {X: Field{[10]uint32{0x03d3fab8, 0x0057cad0, 0x013c20c0, 0x00d25de0, 0x005fb229, 0x03d3d12b, 0x02bb6280, 0x03ccc20e, 0x034d345b, 0x00387f90}}, Y: Field{[10]uint32{0x034c4d83, 0x0256c1dd, 0x03f7a59a, 0x00b0b735, 0x03d3b31b, 0x038f4581, 0x008df48c, 0x025eb130, 0x00a52af8, 0x0006c947}}}, + {X: Field{[10]uint32{0x02fb8d08, 0x03f5745d, 0x02060bd1, 0x004f3f5c, 0x0182c2f5, 0x039dd591, 0x03e4a40e, 0x03178abe, 0x00dae08a, 0x002a3b62}}, Y: Field{[10]uint32{0x00175729, 0x007e7ce1, 0x0081b77b, 0x023c74a5, 0x035cc2d9, 0x005eca9b, 0x02f5b537, 0x0258c3ee, 0x00b07441, 0x003d3ed8}}}, + {X: Field{[10]uint32{0x007c6481, 0x0295e40b, 0x0143f76f, 0x004e8389, 0x008e7707, 0x0314348a, 0x01c083ee, 0x02735f25, 0x0028de1e, 0x002d4b3e}}, Y: Field{[10]uint32{0x0375790f, 0x017abdc6, 0x02d833c9, 0x0314dd23, 0x0343eebd, 0x00f8ed4a, 0x03dc729d, 0x03eefe40, 0x01530046, 0x0018d68e}}}, + {X: Field{[10]uint32{0x021d5e83, 0x01e0a485, 0x0178e4dc, 0x015358d2, 0x00b1297c, 0x02ab64ff, 0x03957a94, 0x026ff732, 0x01aef76d, 0x001c081e}}, Y: Field{[10]uint32{0x02783b52, 0x00419096, 0x01f82c8c, 0x011712e5, 0x0132a43a, 0x0031b76e, 0x033a202e, 0x00714b4e, 0x008bf2d8, 0x001260f0}}}, + {X: Field{[10]uint32{0x0257bbf5, 0x00fb8baf, 0x009a0dd7, 0x02e544f3, 0x023ed3dc, 0x02d0de38, 0x00fe8cbd, 0x03873bbd, 0x00d18e9d, 0x00118e35}}, Y: Field{[10]uint32{0x0327e110, 0x01fbc832, 0x01e87cf7, 0x01029654, 0x020cb507, 0x007e8daf, 0x00853f75, 0x00c19a5a, 0x003245cc, 0x001587b8}}}, + {X: Field{[10]uint32{0x03386bfc, 0x02c8b64e, 0x039cbecf, 0x02024410, 0x01d98e48, 0x00f4280e, 0x021dc5ee, 0x02b77b55, 0x02b75fac, 0x003bacd3}}, Y: Field{[10]uint32{0x02e57c4c, 0x0308d269, 0x00af4c21, 0x00eb473d, 0x00e9d8f6, 0x030c46a5, 0x018db8c1, 0x03723015, 0x00ff05eb, 0x003cac8f}}}, + {X: Field{[10]uint32{0x012c45ca, 0x01a167b1, 0x0175e5c5, 0x0190f7dd, 0x01f70a8c, 0x03efa38e, 0x0107df0c, 0x00c84f07, 0x02e5becf, 0x0001fcb1}}, Y: Field{[10]uint32{0x02b6c89d, 0x03903788, 0x0189a77b, 0x03bac847, 0x02cf9d66, 0x03614794, 0x01a04248, 0x0276b83f, 0x01c01971, 0x00254126}}}, + {X: Field{[10]uint32{0x03e53647, 0x008cc0c8, 0x00f81856, 0x003daa54, 0x023cea09, 0x013e2c05, 0x0211064d, 0x0349f3df, 0x03221ec5, 0x001bb1d9}}, Y: Field{[10]uint32{0x0269a3d6, 0x02c5c0eb, 0x01254984, 0x02816b5d, 0x01d0aa7b, 0x0018f13f, 0x02ec7d0f, 0x03a0e723, 0x03579704, 0x0026c0f1}}}, + {X: Field{[10]uint32{0x024dea7e, 0x027e2914, 0x02f5499e, 0x01eb16ca, 0x01b44a70, 0x01e3d9f3, 0x03184b03, 0x017b2807, 0x029d320d, 0x00263dbd}}, Y: Field{[10]uint32{0x02b69a02, 0x03d509bc, 0x0244d79e, 0x0375e324, 0x02ca54a3, 0x015af0ce, 0x01333fe0, 0x01d98e5e, 0x033d7b03, 0x0009bbda}}}, + {X: Field{[10]uint32{0x0347e390, 0x0073c156, 0x017af296, 0x01a0b67b, 0x012d3086, 0x03005c32, 0x037ac998, 0x00b1d975, 0x004558b8, 0x0033c7bd}}, Y: Field{[10]uint32{0x018511c3, 0x037d1192, 0x03d23bef, 0x0360d8e5, 0x00f4345b, 0x016bfbfa, 0x022d8f3f, 0x003b1e1d, 0x0105fb88, 0x0022f307}}}, + {X: Field{[10]uint32{0x006f07e8, 0x00a02863, 0x035aa37c, 0x02096821, 0x009ab62b, 0x01653cde, 0x00cc5c10, 0x01bcbbe2, 0x0251efa2, 0x00043805}}, Y: Field{[10]uint32{0x01779df2, 0x03540fae, 0x00c0a8fa, 0x028c1f8a, 0x0083105d, 0x0222aaa6, 0x03b2cdb7, 0x018cd4c3, 0x01e11f77, 0x000b9a85}}}, + {X: Field{[10]uint32{0x013eee4a, 0x009e59ba, 0x01a58054, 0x0114482e, 0x000af909, 0x01260c4c, 0x03d77d74, 0x00826dbb, 0x03e041ce, 0x002e538b}}, Y: Field{[10]uint32{0x01bca443, 0x01c50b72, 0x020f01d0, 0x02349dda, 0x01a86bfb, 0x011b7c43, 0x00b1dde7, 0x024bd577, 0x03f1103e, 0x00023dea}}}, + {X: Field{[10]uint32{0x02d41154, 0x0174acc5, 0x02ccc122, 0x00d385fc, 0x026d71cc, 0x011362bd, 0x01d233e2, 0x02a7a851, 0x0102c671, 0x0033e79f}}, Y: Field{[10]uint32{0x012d2ca7, 0x03bfe143, 0x00c4ee13, 0x02ef86d8, 0x01a853e2, 0x021e3e5a, 0x003858a3, 0x0259beef, 0x00a10f0b, 0x0020bbae}}}, + {X: Field{[10]uint32{0x03d48bb2, 0x00e6bfd2, 0x034366d5, 0x00af814b, 0x00df8e4f, 0x033d2e4d, 0x01d18ebd, 0x00ee44c6, 0x002994ad, 0x00368e8f}}, Y: Field{[10]uint32{0x01dc0193, 0x01a6a474, 0x00f54256, 0x03b7db6d, 0x035e0d32, 0x03b21998, 0x01ccfe7b, 0x0091e20c, 0x0253c404, 0x000a3e75}}}, + {X: Field{[10]uint32{0x01eec101, 0x0289ec3c, 0x02450d4b, 0x03274394, 0x00a0a095, 0x00a0c7cc, 0x014c9fcd, 0x00de2f64, 0x00182b80, 0x002ae04a}}, Y: Field{[10]uint32{0x026666b3, 0x01351780, 0x0078f142, 0x00ab7030, 0x022286dc, 0x02ec7602, 0x00e366af, 0x01db58f7, 0x01822748, 0x00016af1}}}, + {X: Field{[10]uint32{0x01c4977a, 0x01023df9, 0x014ab831, 0x019fe37e, 0x03f0edd9, 0x00259714, 0x0164391c, 0x032a9757, 0x02a2bf02, 0x003a96e0}}, Y: Field{[10]uint32{0x033d9339, 0x022f3a3f, 0x02cac5d2, 0x00fa25f6, 0x022518d5, 0x01ee2239, 0x01dd5040, 0x0020deb3, 0x02990f32, 0x00207fa0}}}, + {X: Field{[10]uint32{0x03e70fa2, 0x02e3ef3e, 0x00d2ca95, 0x0305f7d6, 0x01318aea, 0x00f68b4a, 0x01d618be, 0x0075f40f, 0x000bab20, 0x00141817}}, Y: Field{[10]uint32{0x02a60383, 0x03ce5f5c, 0x028afc03, 0x03f1b0a9, 0x02d4c978, 0x024a335b, 0x02cc160d, 0x015a4f13, 0x031e007b, 0x00003942}}}, + {X: Field{[10]uint32{0x021191dd, 0x0162c97a, 0x0316831b, 0x0184422d, 0x02513566, 0x0153de6d, 0x01409d88, 0x032b3bd1, 0x00b66d7d, 0x003ddb14}}, Y: Field{[10]uint32{0x01f3cc72, 0x0346041b, 0x01f86d3b, 0x0121dc83, 0x03a30401, 0x025fc1ec, 0x00e2e93a, 0x014502f0, 0x0374b019, 0x001f4156}}}, + {X: Field{[10]uint32{0x03260e7d, 0x00f65664, 0x01b32f6d, 0x0240af5e, 0x01413126, 0x01cb9384, 0x02367db2, 0x0011f330, 0x03bad716, 0x00379414}}, Y: Field{[10]uint32{0x017cc7e2, 0x00e37872, 0x03bf3d3f, 0x02041444, 0x03b1e4c5, 0x017d180c, 0x02b61b5b, 0x02c36c37, 0x02d39c34, 0x00071528}}}, + {X: Field{[10]uint32{0x0206499d, 0x03df237e, 0x017121af, 0x00902527, 0x00437f1a, 0x03786395, 0x018a332b, 0x0251ac6e, 0x019f180e, 0x002b4f9c}}, Y: Field{[10]uint32{0x02f1b554, 0x032b4f80, 0x032c882b, 0x037df28b, 0x03ef310a, 0x02fb7018, 0x0073863a, 0x02935f49, 0x03f1390f, 0x002d1635}}}, + {X: Field{[10]uint32{0x036bae4b, 0x03210330, 0x026ecb46, 0x039db899, 0x01839a3a, 0x00cbe2de, 0x010c8673, 0x02bdad8c, 0x02345560, 0x0009c280}}, Y: Field{[10]uint32{0x02bedeaf, 0x005a8653, 0x01bc689d, 0x01c86f6d, 0x01ef7ef0, 0x02661de8, 0x020f1600, 0x01f45832, 0x004b9215, 0x00236aae}}}, + {X: Field{[10]uint32{0x00624621, 0x00cd3b9a, 0x02d30f98, 0x016cafdc, 0x0325ba2b, 0x012a13fd, 0x03ffdb29, 0x03271321, 0x017e3027, 0x003ad7b4}}, Y: Field{[10]uint32{0x0060a942, 0x012d3b02, 0x003ae3b5, 0x02ff5667, 0x03df4a91, 0x013186b4, 0x028d1a21, 0x0351c66f, 0x00b38f74, 0x000e7fff}}}, + {X: Field{[10]uint32{0x00e0a5dd, 0x0304d70b, 0x02d6a7ba, 0x00869d5c, 0x01fb1f66, 0x016b351a, 0x03f4e807, 0x02633188, 0x01f28a0b, 0x002e7047}}, Y: Field{[10]uint32{0x00a76278, 0x03b15150, 0x00a1e391, 0x028938bf, 0x015eb506, 0x024aceea, 0x03eb0c36, 0x0257bcc9, 0x0278d42b, 0x0016fea2}}}, + {X: Field{[10]uint32{0x03e74b5c, 0x018c433a, 0x0221ca8a, 0x0264f126, 0x00f60f13, 0x03b68102, 0x02611066, 0x038967f9, 0x004380ab, 0x003bb45c}}, Y: Field{[10]uint32{0x02a0d750, 0x03576dc8, 0x0324a567, 0x018594b0, 0x028cc2c6, 0x01ebf366, 0x02a243f5, 0x01ee4458, 0x0276cbe3, 0x001b72d8}}}, + {X: Field{[10]uint32{0x03aa97a7, 0x01400314, 0x034c2526, 0x00417b8d, 0x028c68e3, 0x02b7d8ad, 0x025524a4, 0x0273d1a3, 0x036f5f5b, 0x002392c3}}, Y: Field{[10]uint32{0x01b7f74a, 0x004dfb30, 0x00d56e25, 0x00b455f0, 0x02c7e59f, 0x0341063d, 0x00578c16, 0x000646dd, 0x00aec18d, 0x00347e20}}}, + {X: Field{[10]uint32{0x02a5ebbe, 0x03d67232, 0x0176e90c, 0x036848e3, 0x01a7f393, 0x00c44ac7, 0x005ce9c9, 0x025ae6ba, 0x01bdfc65, 0x001deb88}}, Y: Field{[10]uint32{0x034a21d1, 0x01b151ff, 0x02f9b910, 0x005cc81b, 0x03516947, 0x01ca4553, 0x0225390e, 0x019b37d1, 0x01811e32, 0x003d1211}}}, + {X: Field{[10]uint32{0x03d2346f, 0x035ac1f6, 0x03999e16, 0x00cfc140, 0x01929225, 0x01419899, 0x028bd35f, 0x00bbd166, 0x00a871c0, 0x00074de7}}, Y: Field{[10]uint32{0x0140cad0, 0x002ddc90, 0x011c10d5, 0x01785e36, 0x00a6333d, 0x006571c1, 0x0197cfed, 0x0269ed08, 0x039a7289, 0x00301542}}}, + {X: Field{[10]uint32{0x03ef1ccc, 0x0359c30f, 0x00296cba, 0x0085f51f, 0x025c7ea7, 0x03c09dca, 0x03671995, 0x005aba64, 0x03f328fc, 0x00189405}}, Y: Field{[10]uint32{0x00450603, 0x0269d359, 0x02bf3618, 0x001985f0, 0x02d7056d, 0x0004437d, 0x03eb4ac5, 0x00853fb6, 0x0253af3b, 0x0006d138}}}, + {X: Field{[10]uint32{0x0238412d, 0x029cae01, 0x01eb78ea, 0x0059d029, 0x00d1019d, 0x010e1dfa, 0x023f508d, 0x00d424eb, 0x02496bdc, 0x0031e93f}}, Y: Field{[10]uint32{0x020febef, 0x02a5d125, 0x016fba30, 0x022d9d66, 0x01673093, 0x012e3dcd, 0x03924067, 0x01c4c3a1, 0x02a895fb, 0x0006d6c4}}}, + {X: Field{[10]uint32{0x02441d3f, 0x00a0d22c, 0x0052fa56, 0x019add3c, 0x01b65c61, 0x03123102, 0x000102cb, 0x0313bcfa, 0x003ce8f9, 0x0033fe7e}}, Y: Field{[10]uint32{0x0352ee6f, 0x038cb378, 0x0252e338, 0x001ea2f4, 0x02814ceb, 0x035a5cfc, 0x0046a41e, 0x0081fbf2, 0x00f82180, 0x00133106}}}, + {X: Field{[10]uint32{0x02700541, 0x0011c859, 0x02ef82c6, 0x0395eb79, 0x002fd23a, 0x027a8477, 0x038ae98a, 0x030a5724, 0x031045b8, 0x0021009d}}, Y: Field{[10]uint32{0x001e4f99, 0x0381c8e1, 0x01da5f56, 0x033502c5, 0x03f3f80d, 0x02ea0753, 0x01b972ce, 0x00501220, 0x0192d3c1, 0x001ca519}}}, + {X: Field{[10]uint32{0x012e0d2c, 0x01c18503, 0x004afb5c, 0x013aa53e, 0x015e304a, 0x023d548b, 0x01a346bd, 0x02e7b018, 0x0330e00c, 0x003deac4}}, Y: Field{[10]uint32{0x035e6144, 0x004406f7, 0x02f866bb, 0x028e7753, 0x012ef0f6, 0x03cfcf5a, 0x018def46, 0x002952bd, 0x00518935, 0x001752b2}}}, + {X: Field{[10]uint32{0x03d4e618, 0x0062131b, 0x0292c785, 0x037304fd, 0x01d0da4d, 0x021b260a, 0x01a4d5b7, 0x02dde230, 0x02192303, 0x0029f213}}, Y: Field{[10]uint32{0x031774fe, 0x02e915ae, 0x01744939, 0x00cea0a7, 0x01659285, 0x0178fc45, 0x0164bad3, 0x036cbc87, 0x025b8fc2, 0x0015b8cb}}}, + {X: Field{[10]uint32{0x0098c43a, 0x0276036b, 0x00dccf19, 0x00e41fd7, 0x02c65f41, 0x0299de9c, 0x03bc55af, 0x036b00d8, 0x0084a680, 0x002e2c32}}, Y: Field{[10]uint32{0x016b8127, 0x0239c794, 0x03932d0f, 0x01e98976, 0x016569f8, 0x013b6c11, 0x02bec5ba, 0x001b0735, 0x008ac926, 0x0010f906}}}, + {X: Field{[10]uint32{0x025e0df6, 0x014120a9, 0x038ddac2, 0x023a50eb, 0x01c5bef9, 0x036d285e, 0x03bc33c1, 0x0184d568, 0x0043d057, 0x00205bb1}}, Y: Field{[10]uint32{0x01f0b360, 0x021f1215, 0x022a9c9b, 0x00c04862, 0x02054f9a, 0x01b8d9ad, 0x00f6fa19, 0x01623664, 0x02c9e9f3, 0x002269ec}}}, + {X: Field{[10]uint32{0x011e28a0, 0x027526aa, 0x03fd2af3, 0x003cedc5, 0x00b10196, 0x03f3311f, 0x03ba24f7, 0x001f54cf, 0x0103823d, 0x00237b48}}, Y: Field{[10]uint32{0x00011728, 0x02549b30, 0x02ad4fb1, 0x0244a9a0, 0x01e3e1a3, 0x01d4faab, 0x03ef9f7d, 0x01987bd0, 0x011fbe1a, 0x000fc0fb}}}, + {X: Field{[10]uint32{0x00d6260b, 0x026baab4, 0x00c87484, 0x0312fb88, 0x010ff4f7, 0x03a30c59, 0x03df9e3c, 0x0351e2fe, 0x039ce874, 0x002c712c}}, Y: Field{[10]uint32{0x004b4fde, 0x02f48db0, 0x00dbda54, 0x02137ef1, 0x0132c25b, 0x00e5ab72, 0x03fe7245, 0x006207ee, 0x03613070, 0x000e2be2}}}, + {X: Field{[10]uint32{0x02b2c971, 0x0176b67e, 0x0390d0e7, 0x03c9f842, 0x01f011bc, 0x02af2082, 0x03f657cf, 0x00face85, 0x023be595, 0x001f56f3}}, Y: Field{[10]uint32{0x00f84787, 0x03b78aac, 0x0167cbbc, 0x029d0198, 0x01864b2b, 0x00b0e792, 0x0308b3b6, 0x035e0ac1, 0x02865f5f, 0x001ce035}}}, + {X: Field{[10]uint32{0x0000f285, 0x034ae1d3, 0x01497a54, 0x01e22c8a, 0x00096af1, 0x031c5c71, 0x027717fb, 0x03cb3453, 0x011a422a, 0x000abd44}}, Y: Field{[10]uint32{0x03771f41, 0x012fabae, 0x0259f753, 0x031722b2, 0x032f3445, 0x01ecec90, 0x0000b68b, 0x03c401fa, 0x031bee43, 0x00111a2f}}}, + {X: Field{[10]uint32{0x037af766, 0x029ed258, 0x0155dc81, 0x02ba8b42, 0x01fe010d, 0x01010ed8, 0x03dfb65f, 0x0377bfe2, 0x01c06dc8, 0x002d1b8a}}, Y: Field{[10]uint32{0x017b59f5, 0x03b27767, 0x016459c1, 0x026c2714, 0x03748c5c, 0x01289ea7, 0x010cef82, 0x00c53f5f, 0x0095ae16, 0x00189ddd}}}, + {X: Field{[10]uint32{0x03a6b1ea, 0x02c8673e, 0x034a5089, 0x03e9648e, 0x00aef6d8, 0x00e73545, 0x02b3bd53, 0x02903dc7, 0x02d3f44e, 0x000415e1}}, Y: Field{[10]uint32{0x0343d0bc, 0x0001736d, 0x00f151ba, 0x00927f0b, 0x0139fad0, 0x03a1b42e, 0x012c4508, 0x008b2df6, 0x03dac875, 0x000a93a9}}}, + {X: Field{[10]uint32{0x02adb23f, 0x0093d205, 0x038575c6, 0x03bfc22d, 0x02d2d2d8, 0x024b3ac8, 0x01345738, 0x01b8c062, 0x0081be85, 0x0007cf03}}, Y: Field{[10]uint32{0x03f6072b, 0x03a959e2, 0x031c9faa, 0x014b4c9c, 0x0011158d, 0x027135ed, 0x02f48408, 0x012673d4, 0x0290de24, 0x0001cc85}}}, + {X: Field{[10]uint32{0x028bd2b3, 0x03d1aa91, 0x01c9f5ab, 0x01afc5be, 0x02e43787, 0x020cee83, 0x012484ff, 0x0257e824, 0x02e3a95a, 0x0005b72e}}, Y: Field{[10]uint32{0x01ffa44d, 0x027c9056, 0x00034344, 0x00ab3785, 0x0030e558, 0x031a45c0, 0x02de4733, 0x004b5b06, 0x0007247b, 0x00159c9f}}}, + {X: Field{[10]uint32{0x02e70726, 0x02510e36, 0x03fff1c7, 0x029927b6, 0x02e42314, 0x017b6af1, 0x00ff3c0f, 0x00f23e49, 0x016cd672, 0x000452f9}}, Y: Field{[10]uint32{0x028ac521, 0x03641949, 0x035e1d5f, 0x01d6511c, 0x0245b61b, 0x00cb3e9e, 0x0180046b, 0x037ab9f1, 0x0172855c, 0x00026137}}}, + {X: Field{[10]uint32{0x0103fdaf, 0x02dfab36, 0x0217d747, 0x00ea35d3, 0x0351766b, 0x03d6eaff, 0x029dbac7, 0x0211cb85, 0x02e601f9, 0x0023432c}}, Y: Field{[10]uint32{0x00bc9b92, 0x03dcdaa0, 0x0160a0f1, 0x02ae2678, 0x01f06b36, 0x033aaec4, 0x00ea3682, 0x024fdc97, 0x03f5b9e7, 0x0034564e}}}, + {X: Field{[10]uint32{0x01714db3, 0x01c9fd4c, 0x005caab4, 0x00f9212d, 0x0134e3b4, 0x020125a4, 0x032f3a2c, 0x020b936d, 0x0354188c, 0x0016d081}}, Y: Field{[10]uint32{0x00723d9f, 0x01b304e9, 0x008838bf, 0x0171dd66, 0x001c7eed, 0x0066f852, 0x00d16437, 0x03cd81eb, 0x007d27d7, 0x0012a24c}}}, + {X: Field{[10]uint32{0x00cbf74b, 0x006d63e2, 0x006ed18c, 0x00b87311, 0x019f01c6, 0x0003f82d, 0x0056a728, 0x00765a36, 0x021d9576, 0x002478dd}}, Y: Field{[10]uint32{0x0396c772, 0x00494c0a, 0x02bc7258, 0x03034cf7, 0x01b73a58, 0x02667bd5, 0x033389e9, 0x020dd8a3, 0x01e396f8, 0x002d6ad8}}}, + {X: Field{[10]uint32{0x001a4655, 0x0174a717, 0x02ad35b0, 0x007c0b62, 0x02016e0f, 0x02af814a, 0x02f55480, 0x0397ca70, 0x0383dc77, 0x000c4e02}}, Y: Field{[10]uint32{0x0193403d, 0x00ff8999, 0x01b20107, 0x02f06a87, 0x02b42173, 0x020e7342, 0x0034342b, 0x03a9c8f1, 0x03aecc84, 0x0008f32b}}}, + {X: Field{[10]uint32{0x021edd27, 0x0336a02c, 0x0239a764, 0x009e8325, 0x038f3f37, 0x02406554, 0x00b44c7c, 0x01099241, 0x018cbcd5, 0x002b9006}}, Y: Field{[10]uint32{0x00eeba8f, 0x02b988cd, 0x012005cf, 0x0269b0e7, 0x02ffceea, 0x009f6628, 0x01a0e7c8, 0x0333f336, 0x0308ffec, 0x0000e95f}}}, + {X: Field{[10]uint32{0x00a981c8, 0x0093222a, 0x0015f73e, 0x0151c9ed, 0x015764a8, 0x0066ec09, 0x01b1d3ac, 0x0303c492, 0x0387abea, 0x003d1ca5}}, Y: Field{[10]uint32{0x0265d172, 0x02d3a7ab, 0x0319d00a, 0x00542ff9, 0x03b51aae, 0x03851b41, 0x039783fd, 0x004ca31f, 0x01a568d8, 0x0038c458}}}, + {X: Field{[10]uint32{0x02d5884a, 0x03205d5f, 0x03b69ce4, 0x023029f5, 0x02f52d3b, 0x03a13429, 0x0059b617, 0x0224d3dc, 0x02b83414, 0x003e4bc0}}, Y: Field{[10]uint32{0x00864080, 0x00f3d06a, 0x026b706f, 0x023c3eed, 0x03cacd20, 0x031b7a92, 0x00eb5305, 0x00c08222, 0x02f88273, 0x003ebb5f}}}, + {X: Field{[10]uint32{0x00c93363, 0x00f385df, 0x01ec49ed, 0x008acac3, 0x029efe40, 0x007e13f0, 0x028cc4dd, 0x035a082f, 0x00aae93b, 0x0028afb6}}, Y: Field{[10]uint32{0x018ada1d, 0x003277c6, 0x00213d63, 0x02cecfc2, 0x027bf235, 0x03b7ae27, 0x0340f299, 0x01bedf80, 0x01c96212, 0x000a1eae}}}, + {X: Field{[10]uint32{0x03af4724, 0x01063e6d, 0x0198e899, 0x038b80a5, 0x00cf6219, 0x024c204d, 0x0309dc80, 0x00474666, 0x03cd3d18, 0x001690b3}}, Y: Field{[10]uint32{0x013f8423, 0x03ba3c16, 0x007172e0, 0x00f583ee, 0x02e30141, 0x002fc970, 0x02a83b18, 0x0275dac3, 0x021c3992, 0x0025739c}}}, + {X: Field{[10]uint32{0x030e530f, 0x028ae516, 0x0278940b, 0x01ae850d, 0x012e768a, 0x0105d421, 0x03f1eca4, 0x02fc64c8, 0x030567e8, 0x000749ea}}, Y: Field{[10]uint32{0x01e1afa8, 0x00cf9a84, 0x01b07c6c, 0x03775468, 0x02a23e3d, 0x01ac124c, 0x02532be7, 0x00a68562, 0x0139496d, 0x000610e6}}}, + {X: Field{[10]uint32{0x02ab4326, 0x01d2451b, 0x03d319bc, 0x0222dc98, 0x01bbbf80, 0x01337cff, 0x002fcf6e, 0x016fd12d, 0x005922c0, 0x00164afe}}, Y: Field{[10]uint32{0x004c7f65, 0x016f1d00, 0x0201e7d9, 0x01da3dfd, 0x013aaab9, 0x028bab09, 0x03946f3b, 0x03c3bf78, 0x00c38dcc, 0x002132f6}}}, + {X: Field{[10]uint32{0x009359d5, 0x02785bc0, 0x00fcf1dd, 0x015b40f1, 0x010d4df1, 0x03bab710, 0x0001f4ad, 0x036ae2ff, 0x02705ae3, 0x00199cc2}}, Y: Field{[10]uint32{0x038273ee, 0x03d5e81d, 0x03718582, 0x00b1218f, 0x036e8f42, 0x026e7bec, 0x03b91701, 0x0362c89c, 0x00c44ea1, 0x0030131f}}}, + {X: Field{[10]uint32{0x03b7fe83, 0x016453b6, 0x011ae07c, 0x01ee5e52, 0x001ce689, 0x01392158, 0x03b246d8, 0x0082b027, 0x02005324, 0x000f4009}}, Y: Field{[10]uint32{0x00c7d98e, 0x010775e5, 0x0152a532, 0x0074c871, 0x03c221fa, 0x00925148, 0x00c48557, 0x03539def, 0x02642f16, 0x0016f5cc}}}, + {X: Field{[10]uint32{0x03a24487, 0x03509d50, 0x021c061e, 0x02b5c42a, 0x02750395, 0x008b8b0a, 0x0089d37d, 0x0348bf48, 0x02362b5d, 0x000350ab}}, Y: Field{[10]uint32{0x0339ada7, 0x01863fb2, 0x02fc9c2a, 0x0126ca84, 0x00ded0a6, 0x0046dbdf, 0x03cc24ba, 0x0387a94e, 0x02001571, 0x002110e7}}}, + {X: Field{[10]uint32{0x02253743, 0x03c494ea, 0x01670ede, 0x00796f74, 0x00409e10, 0x0063a41d, 0x00b306dc, 0x02aff400, 0x01ca486f, 0x000df1d8}}, Y: Field{[10]uint32{0x010cad12, 0x01fd99ee, 0x033d0627, 0x02a5701f, 0x0129669d, 0x01ecb2e2, 0x02c241ae, 0x0036c627, 0x00e30111, 0x00394e10}}}, + {X: Field{[10]uint32{0x03b0e788, 0x027b42bc, 0x0345b288, 0x0206865c, 0x002afa97, 0x016b035b, 0x0019f371, 0x02f23bae, 0x02f8bbaf, 0x001399cb}}, Y: Field{[10]uint32{0x00814061, 0x03f3d30e, 0x0385204a, 0x02e5464d, 0x03130cb0, 0x018b83aa, 0x000133fe, 0x03601d1a, 0x00dbbb16, 0x0027043c}}}, + {X: Field{[10]uint32{0x03d51fec, 0x01e475a3, 0x03a68ed8, 0x004bcd6a, 0x0108e1df, 0x01bd8a52, 0x00635ae6, 0x01e4a7a7, 0x003b23c0, 0x00307ca5}}, Y: Field{[10]uint32{0x0264ae75, 0x0352ffba, 0x005fdfc4, 0x0319a001, 0x012f2262, 0x029ac441, 0x01f7ef96, 0x017b1664, 0x02c893ad, 0x000cddad}}}, + {X: Field{[10]uint32{0x00370be6, 0x0180abb0, 0x00ffce17, 0x01b5ebf7, 0x01351e82, 0x0198f994, 0x00f10cdf, 0x036611cb, 0x021e739c, 0x000f7c91}}, Y: Field{[10]uint32{0x0292cb06, 0x000340b1, 0x0301fc9f, 0x0295fbab, 0x02bd5ec5, 0x0206b6aa, 0x014eeb00, 0x0303b0d6, 0x00b33ed9, 0x0017923f}}}, + {X: Field{[10]uint32{0x022a82b7, 0x02307cf5, 0x033fd551, 0x009d6d8e, 0x0150f123, 0x02d83f61, 0x004ecfba, 0x024b57d3, 0x0128f98b, 0x003534f5}}, Y: Field{[10]uint32{0x027d5b76, 0x0034b3b6, 0x01a2e049, 0x00ed52c1, 0x01255405, 0x02612f02, 0x01a838ed, 0x01779a64, 0x01508543, 0x0019125b}}}, + {X: Field{[10]uint32{0x0209236b, 0x039f4084, 0x01108b3e, 0x011c3889, 0x03ad6448, 0x00ffc0e9, 0x03a41136, 0x00da3c69, 0x019b4aa3, 0x003b360e}}, Y: Field{[10]uint32{0x01355213, 0x00dc48dd, 0x011af30f, 0x023c1329, 0x01c629d8, 0x00f00b2d, 0x0351e617, 0x0070a438, 0x01fba792, 0x000b8482}}}, + {X: Field{[10]uint32{0x01f78722, 0x00cb8273, 0x01ae38c3, 0x01c1e173, 0x01416d1a, 0x02cd1356, 0x033354af, 0x0036a40c, 0x03e57e6a, 0x00356642}}, Y: Field{[10]uint32{0x03a17814, 0x0316445e, 0x01eceeef, 0x03224e5e, 0x00278f73, 0x01110402, 0x039198d3, 0x01bcf441, 0x018b73f7, 0x002ca8b3}}}, + {X: Field{[10]uint32{0x00374b1b, 0x03c10aa4, 0x0174f85e, 0x0224a1ef, 0x02b57e90, 0x01876007, 0x03d59786, 0x03b402bc, 0x03651d8c, 0x001d662a}}, Y: Field{[10]uint32{0x0028f04f, 0x036d835b, 0x00240b60, 0x021e3d33, 0x027edaae, 0x0008ba7b, 0x000cbd4b, 0x02c7fee7, 0x00269466, 0x001627f1}}}, + {X: Field{[10]uint32{0x01f694e7, 0x0248b3d0, 0x00e7d7e0, 0x03f663af, 0x03be088c, 0x00714c06, 0x02048b76, 0x00b4c614, 0x0017b12d, 0x003f41c5}}, Y: Field{[10]uint32{0x0232c363, 0x013688ef, 0x00b45966, 0x01d163be, 0x00d47d8f, 0x01ad5236, 0x01f679d9, 0x00ee4cab, 0x03f10ee6, 0x000b6714}}}, + {X: Field{[10]uint32{0x0372ca0e, 0x01b3804a, 0x038d15e5, 0x02ff2f0a, 0x02b1e513, 0x03a4d1fc, 0x01571ac8, 0x021a2b47, 0x0190e290, 0x001696d2}}, Y: Field{[10]uint32{0x03ebf968, 0x0186663b, 0x005d5e51, 0x039fa0c5, 0x01424285, 0x0313271f, 0x01569f63, 0x02549150, 0x02f50715, 0x0031da14}}}, + {X: Field{[10]uint32{0x01e7f2bd, 0x023015bf, 0x020f5972, 0x02057cf4, 0x0225c900, 0x01ba9bcd, 0x035a415f, 0x03c5190b, 0x00243cd4, 0x0024f7bb}}, Y: Field{[10]uint32{0x032dc7cb, 0x0217c96f, 0x0336dd5e, 0x0164641d, 0x006abfa8, 0x0150527d, 0x0378145f, 0x00e85987, 0x01beb999, 0x00223e46}}}, + {X: Field{[10]uint32{0x02df82b6, 0x02645f91, 0x02602f5c, 0x01f9d84e, 0x019c9bec, 0x001a350e, 0x01104c93, 0x03659e5a, 0x017ba65a, 0x00248934}}, Y: Field{[10]uint32{0x00a32f65, 0x03bef3c6, 0x0071055c, 0x03ef3d69, 0x001b5691, 0x03ac4193, 0x0289e54e, 0x0293a31d, 0x00e32bc2, 0x000d1b26}}}, + {X: Field{[10]uint32{0x0379c38e, 0x015450ce, 0x011890f0, 0x00ddb956, 0x01cfc916, 0x01cd1e9c, 0x00f054b8, 0x03fe7053, 0x009124dd, 0x002146b3}}, Y: Field{[10]uint32{0x02116f35, 0x031a7307, 0x0213a55c, 0x03c4c3c3, 0x022dd20b, 0x03127715, 0x00527e8c, 0x00730d0c, 0x01f058d2, 0x0036566f}}}, + {X: Field{[10]uint32{0x00ea4d96, 0x0041d7cb, 0x012122b7, 0x004a4c7e, 0x00eff0a6, 0x0120a544, 0x03e01ef4, 0x00471421, 0x0303b7c1, 0x003fdb04}}, Y: Field{[10]uint32{0x034841f6, 0x003ba85e, 0x01574537, 0x03fd6a56, 0x027e99d0, 0x02495417, 0x02239beb, 0x0142a832, 0x03bf7bcf, 0x00093c26}}}, + {X: Field{[10]uint32{0x035fdac0, 0x02f18d90, 0x029d06a4, 0x013d3d32, 0x020fd501, 0x022dbb2d, 0x03fb51ec, 0x02f4750c, 0x01f055e7, 0x003c8ef6}}, Y: Field{[10]uint32{0x016d7b60, 0x00653ba9, 0x03da69d2, 0x01f7c482, 0x0325ba91, 0x03b91d11, 0x02e7012a, 0x026b65a3, 0x00589d26, 0x002594ad}}}, + {X: Field{[10]uint32{0x01f46ff7, 0x01549e92, 0x035642a0, 0x03e4e46e, 0x001fe070, 0x02ef52bc, 0x0023e601, 0x017465ee, 0x0056ea6d, 0x0027588b}}, Y: Field{[10]uint32{0x015c609e, 0x00ea473f, 0x01494e6c, 0x0310b809, 0x02c648c7, 0x01b6cf72, 0x03bd5576, 0x0217fb67, 0x03940d64, 0x0020186e}}}, + {X: Field{[10]uint32{0x03020c13, 0x0342b7cb, 0x03b80370, 0x03795a4c, 0x012915af, 0x001ee658, 0x014b67c4, 0x03579d8e, 0x03e4cff5, 0x0025253b}}, Y: Field{[10]uint32{0x00a7e4ea, 0x016bce16, 0x00a8184f, 0x02e3f4fc, 0x03fd86ec, 0x03908dcb, 0x03964b2d, 0x03873009, 0x0238c85e, 0x002ac31f}}}, + {X: Field{[10]uint32{0x012e1a86, 0x005802a5, 0x03268dbe, 0x01665d00, 0x00e028c2, 0x024e2807, 0x028cb6c2, 0x014bf002, 0x03baffbc, 0x002a3935}}, Y: Field{[10]uint32{0x011a0bed, 0x019f0a4d, 0x0096fc9f, 0x02e72591, 0x02cc7eee, 0x01bc59c8, 0x0379723c, 0x0008b013, 0x003d0dc3, 0x0002356e}}}, + {X: Field{[10]uint32{0x00927ac5, 0x030eed79, 0x00df1f17, 0x02bc5467, 0x01203c01, 0x035cb5e9, 0x03191ad4, 0x01183fbf, 0x0364938e, 0x0020e107}}, Y: Field{[10]uint32{0x03536800, 0x00075e7a, 0x03e4180e, 0x0036c813, 0x02ecb1f3, 0x00105712, 0x03733974, 0x01c92484, 0x00f2c2e8, 0x0003d61a}}}, + {X: Field{[10]uint32{0x020612f6, 0x00f220c0, 0x02acbd62, 0x03da542b, 0x02af2a2d, 0x02d65fec, 0x00dcba67, 0x00fe2a18, 0x00d95ef0, 0x003ba25d}}, Y: Field{[10]uint32{0x00f141ac, 0x0381fe29, 0x0321634e, 0x03ebadf3, 0x016596ab, 0x03e7dd8f, 0x02951453, 0x01775f31, 0x01740308, 0x00173c43}}}, + {X: Field{[10]uint32{0x02579606, 0x0006982d, 0x01857b2d, 0x01ac9a47, 0x01a92dde, 0x0109d8a3, 0x036e5fa3, 0x01b28ec4, 0x018c2361, 0x001a3a23}}, Y: Field{[10]uint32{0x00fd5450, 0x01345e68, 0x03c41257, 0x01ce1a85, 0x01e5ec7b, 0x02da959d, 0x00c5d609, 0x035baf16, 0x00903766, 0x000016a4}}}, + {X: Field{[10]uint32{0x0122345b, 0x031626a5, 0x02e7c50a, 0x016b38ec, 0x00cfe6ab, 0x01333290, 0x01bea794, 0x0322d883, 0x018ac62e, 0x003f8d37}}, Y: Field{[10]uint32{0x03d6c8c0, 0x02ee6fda, 0x025bff0a, 0x03562634, 0x0330c9ed, 0x034f8029, 0x01611d7b, 0x0384894d, 0x0055adf1, 0x002233c0}}}, + {X: Field{[10]uint32{0x0251bc1f, 0x017c8d60, 0x03ff7f6a, 0x019bf462, 0x00099893, 0x004c5cda, 0x0262479c, 0x005226aa, 0x029cc0f8, 0x00108e9e}}, Y: Field{[10]uint32{0x01c678ee, 0x00986f4a, 0x0271fde4, 0x02591cb3, 0x01259ce8, 0x01844b90, 0x02776ea1, 0x0090740b, 0x03dd0519, 0x003249ac}}}, + {X: Field{[10]uint32{0x010b98f4, 0x013c55eb, 0x00e730ed, 0x02d1c9f0, 0x010ffb0e, 0x00b82364, 0x01bb840b, 0x0153ff98, 0x03f97cbf, 0x001fe982}}, Y: Field{[10]uint32{0x0294d733, 0x02cec243, 0x0281f6e7, 0x03b5e5e3, 0x027e296f, 0x01fdcda9, 0x01c7b26a, 0x021ee3f7, 0x02df84d3, 0x00356c6a}}}, + {X: Field{[10]uint32{0x00153a66, 0x01dd0cd8, 0x0098cf1e, 0x01743bbe, 0x01829481, 0x0245fe45, 0x02df8a66, 0x037af1df, 0x030ef1ed, 0x002794f2}}, Y: Field{[10]uint32{0x02b41ccf, 0x03e05fd1, 0x037a2ed8, 0x0273f955, 0x01498349, 0x022faf82, 0x024c6f1b, 0x028a86e6, 0x02f260fe, 0x0014d636}}}, + {X: Field{[10]uint32{0x02d6f119, 0x01a5548e, 0x01e9631e, 0x023a3b24, 0x00140471, 0x0150ccb0, 0x0344ad53, 0x0319de66, 0x0241c616, 0x002b7e4d}}, Y: Field{[10]uint32{0x0242ff9e, 0x00a84edf, 0x00619dfe, 0x01056b4e, 0x028dc172, 0x031ab10a, 0x01f67615, 0x02cf7fd5, 0x02afe4cf, 0x00368f19}}}, + {X: Field{[10]uint32{0x034e4ca8, 0x01bb2d91, 0x02f0c972, 0x0310e5bd, 0x035b6242, 0x02f857d2, 0x0287ddb2, 0x02cd9ec1, 0x03ec485d, 0x0001c078}}, Y: Field{[10]uint32{0x013b9e83, 0x0360644b, 0x00f946f2, 0x033cf44f, 0x03691aa3, 0x001d00dd, 0x01f7fea3, 0x0387140a, 0x027613dc, 0x0004263e}}}, + {X: Field{[10]uint32{0x00ccfefc, 0x0036443e, 0x01e84aac, 0x01781852, 0x02d51364, 0x03149402, 0x01a7e042, 0x02a8167a, 0x03a5d3ec, 0x00363f16}}, Y: Field{[10]uint32{0x034b3d8a, 0x025c225e, 0x01920c25, 0x020f95e3, 0x02df96ee, 0x00e8b7c1, 0x014b4d98, 0x025369d2, 0x034d0eec, 0x001c9c92}}}, + {X: Field{[10]uint32{0x0371398e, 0x03aa0fbf, 0x038dcc9e, 0x027528ce, 0x00c900cb, 0x02aa97c3, 0x018a186f, 0x03fedc19, 0x039a8279, 0x001ef223}}, Y: Field{[10]uint32{0x03a14a7c, 0x01581983, 0x001b0aa9, 0x027c7d56, 0x034939d3, 0x0022ddbd, 0x02d8c77e, 0x02054468, 0x01dfe5ed, 0x00337348}}}, + {X: Field{[10]uint32{0x035ef0e5, 0x01ba845b, 0x019190f4, 0x0297befe, 0x03e5fb92, 0x03c85ca8, 0x0219bc77, 0x02787db8, 0x01310bc7, 0x00215e35}}, Y: Field{[10]uint32{0x03b7d550, 0x01d67344, 0x00290768, 0x0137b45f, 0x00cac2d0, 0x008ce3e7, 0x02ef5e05, 0x018b1a53, 0x02ac39c2, 0x003f346c}}}, + {X: Field{[10]uint32{0x00020a62, 0x0379d62a, 0x010935cd, 0x008112ee, 0x02d41240, 0x01f87302, 0x01eb5f43, 0x01986d51, 0x02d73ea2, 0x00262f08}}, Y: Field{[10]uint32{0x02232226, 0x038530a0, 0x032d9f32, 0x03ca86a8, 0x002607bf, 0x03118be5, 0x02c8d83c, 0x02e96f0a, 0x01de0d33, 0x00050f1f}}}, + {X: Field{[10]uint32{0x01e8ee10, 0x0112c2b5, 0x0001aaca, 0x0197a8f1, 0x019980f2, 0x016fc215, 0x008106ca, 0x005db742, 0x021e95d2, 0x001ff3e0}}, Y: Field{[10]uint32{0x02400284, 0x03b274bf, 0x01cfb266, 0x01506ce2, 0x03c127b0, 0x02389f2a, 0x02f4598e, 0x02bfbbe2, 0x01ae87e7, 0x0009f0d0}}}, + {X: Field{[10]uint32{0x0216a5f1, 0x00a4ba80, 0x02ca8316, 0x01e87f1d, 0x0367acd6, 0x028cd3e4, 0x03e195b6, 0x03bc17e1, 0x01b9d440, 0x0022628e}}, Y: Field{[10]uint32{0x00ce52ef, 0x03290ec6, 0x037c3fc2, 0x0398af53, 0x02c0db80, 0x0113eafe, 0x011cae97, 0x01d394bf, 0x03bbfe32, 0x003ad90b}}}, + {X: Field{[10]uint32{0x032192a4, 0x00e2fd0f, 0x03e3cbf1, 0x009e0cc8, 0x0287d6a6, 0x03c62fe6, 0x01624801, 0x0308582a, 0x00a28918, 0x000fba5d}}, Y: Field{[10]uint32{0x01660d9c, 0x002d56f3, 0x01c63dc5, 0x03f04375, 0x020fde39, 0x0183f483, 0x01d5b2a9, 0x03acd526, 0x02dfac71, 0x003d6ce1}}}, + {X: Field{[10]uint32{0x0047c14a, 0x030fcd90, 0x010a57dd, 0x03d0bed8, 0x019766bb, 0x001b0494, 0x03753eed, 0x037cd26a, 0x012fde76, 0x002f7443}}, Y: Field{[10]uint32{0x02923dec, 0x01d0cc05, 0x03bbd6bc, 0x03da7100, 0x022b8b47, 0x02d1000c, 0x0327664a, 0x01fae6e2, 0x02ed34f9, 0x0014114c}}}, + {X: Field{[10]uint32{0x03edd63d, 0x0028738e, 0x02b23c00, 0x0123105d, 0x02477a51, 0x02e7fca4, 0x039a4a0e, 0x0104913f, 0x00373978, 0x000b05e5}}, Y: Field{[10]uint32{0x032fcfb6, 0x039803c3, 0x00173e37, 0x03dcf98c, 0x002c1ca5, 0x02684aa3, 0x02fcccab, 0x01ecaea0, 0x01844f9b, 0x0028d9ed}}}, + {X: Field{[10]uint32{0x03e71580, 0x0225e62c, 0x01841362, 0x028cb4f3, 0x01a83036, 0x03ba5faf, 0x031e6df6, 0x00744dbd, 0x030ef2d6, 0x000a0bbc}}, Y: Field{[10]uint32{0x03d0f43a, 0x02097738, 0x0286fc47, 0x030c7d63, 0x035b4f9d, 0x028ff247, 0x00252647, 0x03a8b953, 0x0133c350, 0x00242c33}}}, + {X: Field{[10]uint32{0x019eff23, 0x00e31ce2, 0x00ef71ea, 0x03ab6c4e, 0x01085bf6, 0x03b82faf, 0x00ab3d50, 0x03e9f2d5, 0x015542ac, 0x00290ad3}}, Y: Field{[10]uint32{0x03566bb7, 0x03cf3287, 0x030bdb1f, 0x00e83f4b, 0x0363d0e0, 0x009ac2e7, 0x00c49973, 0x02649dd9, 0x0080f10b, 0x0005f8e2}}}, + {X: Field{[10]uint32{0x037ef00e, 0x008947bf, 0x0138b1a0, 0x0295d7cf, 0x01a06fce, 0x02562556, 0x0180d474, 0x00323d2d, 0x0064c5b0, 0x002c8eb3}}, Y: Field{[10]uint32{0x00b6464f, 0x01502a87, 0x007293bc, 0x02b3fe42, 0x03073964, 0x0115fd79, 0x03e6a17d, 0x0193612f, 0x000a7eaa, 0x0019aec6}}}, + {X: Field{[10]uint32{0x01885ea7, 0x0298a3dd, 0x03023411, 0x0273b31d, 0x0189df02, 0x001d45ba, 0x001ce7a4, 0x02c18d1a, 0x00e696ae, 0x000250b7}}, Y: Field{[10]uint32{0x007caf14, 0x00fe02dc, 0x02784ba1, 0x02eb545e, 0x01c439f0, 0x00eabed1, 0x02b06cea, 0x01ecfdad, 0x028a88be, 0x0038822f}}}, + {X: Field{[10]uint32{0x00392d16, 0x01196ae2, 0x020e1610, 0x0253843a, 0x0023e64a, 0x01c7ae52, 0x038e4dbe, 0x013b0208, 0x02b95219, 0x002e29a8}}, Y: Field{[10]uint32{0x03a5fec1, 0x018f5472, 0x015c74cb, 0x03d306d5, 0x0034c7be, 0x010ef896, 0x02758ae3, 0x03b8fdde, 0x0331b8e5, 0x003e00a7}}}, + {X: Field{[10]uint32{0x0068fc20, 0x020ff082, 0x016d90cc, 0x03105e90, 0x02f15fea, 0x0298532d, 0x03db083e, 0x0017dec7, 0x0369a1ee, 0x0028db4c}}, Y: Field{[10]uint32{0x02f0af52, 0x00c9f8dd, 0x01f10e94, 0x03817c28, 0x00aacd2a, 0x02a7f5c5, 0x03b76516, 0x03c9f56d, 0x03f9fe40, 0x00392af5}}}, + {X: Field{[10]uint32{0x008dda1d, 0x03d790c2, 0x00cc0ebe, 0x01a3d142, 0x016f03bd, 0x035bf535, 0x00cc89b9, 0x006b9bff, 0x01083d71, 0x0013a8c0}}, Y: Field{[10]uint32{0x00a3e513, 0x01e4f557, 0x02c83eed, 0x017f3957, 0x0340f9ea, 0x015059b4, 0x0154bcf1, 0x01652419, 0x017a8b1c, 0x00207a66}}}, + {X: Field{[10]uint32{0x02ffdc55, 0x03d0938a, 0x0175ece2, 0x023d01a8, 0x020fee11, 0x0109edc4, 0x0342e62e, 0x02271d91, 0x03161c1c, 0x000808a1}}, Y: Field{[10]uint32{0x03fa35b1, 0x005dd999, 0x02c28bc8, 0x00317b34, 0x0291eaff, 0x00787426, 0x00d28644, 0x029fcd0a, 0x025ecf26, 0x001e0de5}}}, + {X: Field{[10]uint32{0x0070d20c, 0x036dfa18, 0x0384cf5a, 0x024bc599, 0x0395be90, 0x00481848, 0x010d4296, 0x03c5815e, 0x02fc8e4b, 0x0034f01c}}, Y: Field{[10]uint32{0x00daf31a, 0x032ae0b6, 0x01c0cf5b, 0x03ac2bf4, 0x00f412e0, 0x03de6472, 0x015c0faa, 0x01d6eeed, 0x0262594c, 0x001c9a20}}}, + {X: Field{[10]uint32{0x0130ec82, 0x037d8381, 0x03dad3e6, 0x02f729d8, 0x0294003d, 0x0228d534, 0x00e8f342, 0x03e9f33c, 0x007ce307, 0x000a536b}}, Y: Field{[10]uint32{0x0384673d, 0x026d17f3, 0x01ecc0fb, 0x020ebf52, 0x02cfbcc7, 0x0298c279, 0x02807c4b, 0x02a98abb, 0x0222a7bc, 0x0011e7f0}}}, + {X: Field{[10]uint32{0x02732fae, 0x01766b13, 0x0175c707, 0x0027a891, 0x02225de6, 0x01ec9dbf, 0x0042a8d6, 0x03a36790, 0x025cc09f, 0x000e55b2}}, Y: Field{[10]uint32{0x02eaa23e, 0x01e89a8b, 0x00302e28, 0x0075ef5e, 0x03719643, 0x007f58bc, 0x025ee0ce, 0x02414a74, 0x03e7a821, 0x00072597}}}, + {X: Field{[10]uint32{0x01fb3def, 0x03a0afe4, 0x029e697e, 0x0359b61e, 0x014f4109, 0x0125005d, 0x036eb068, 0x012d239c, 0x0396da14, 0x000934b8}}, Y: Field{[10]uint32{0x0372236e, 0x01f43668, 0x0081e76d, 0x01d47f9f, 0x02ea875c, 0x036eb484, 0x01e3c9ce, 0x00bf3f74, 0x037224b0, 0x002ede79}}}, + {X: Field{[10]uint32{0x01a2aa5e, 0x038ae6e6, 0x00d3ab49, 0x0224f84b, 0x01188528, 0x03670be4, 0x03f9619d, 0x01701ff2, 0x0042f16e, 0x0018e350}}, Y: Field{[10]uint32{0x032b3d92, 0x0392acac, 0x024db222, 0x010dd2e2, 0x03f618da, 0x03976051, 0x039eb8b8, 0x00429037, 0x00424f00, 0x0034365e}}}, + {X: Field{[10]uint32{0x030d866c, 0x019e0a23, 0x00c5cd7d, 0x02218da0, 0x0194202d, 0x00c0cb87, 0x0323a1fd, 0x01caeaec, 0x015ba999, 0x0003e46b}}, Y: Field{[10]uint32{0x0052bdc0, 0x02853565, 0x03571e24, 0x0386c344, 0x001cb558, 0x03eccb6b, 0x038bb4fe, 0x005d68e8, 0x0145a693, 0x00182d9b}}}, + {X: Field{[10]uint32{0x02a69b7c, 0x005c9cba, 0x03c39c64, 0x0236239f, 0x039e6af4, 0x01b40dc2, 0x031fb88a, 0x0097c53f, 0x037d779c, 0x000c5504}}, Y: Field{[10]uint32{0x02295f7a, 0x034e7ee4, 0x03b13560, 0x0066c664, 0x02c1980c, 0x00991213, 0x00e112a9, 0x005e28e6, 0x011e9c09, 0x003acef6}}}, + {X: Field{[10]uint32{0x01549597, 0x0072e4d8, 0x01355072, 0x00b65286, 0x01f710be, 0x03475e99, 0x03acb3c1, 0x027f2078, 0x021fdfdf, 0x003e2087}}, Y: Field{[10]uint32{0x018993ec, 0x013116df, 0x002a3f4b, 0x00171ebf, 0x02c5770c, 0x033ca396, 0x03635b9d, 0x014a0946, 0x0068c1e0, 0x002ed41e}}}, + {X: Field{[10]uint32{0x0354a655, 0x013d8fa0, 0x033b06dd, 0x02be1c0c, 0x00ec5d6f, 0x01438eb6, 0x018aa900, 0x0012968b, 0x023a5214, 0x00210251}}, Y: Field{[10]uint32{0x01db3bd4, 0x0215efb8, 0x01ecf91b, 0x00949a68, 0x031b8a65, 0x00edeacd, 0x00c1b668, 0x00b294e7, 0x012b8509, 0x00332651}}}, + {X: Field{[10]uint32{0x003bc471, 0x01041980, 0x01e09f72, 0x0395a08a, 0x02314380, 0x015d1767, 0x0222eb53, 0x01c2d5b6, 0x001112d3, 0x0025a009}}, Y: Field{[10]uint32{0x005d8f38, 0x017e518a, 0x0092ff49, 0x000c4eed, 0x0327d6c7, 0x0165b440, 0x020419d6, 0x030807fe, 0x01377f03, 0x00376b0b}}}, + {X: Field{[10]uint32{0x023a69c8, 0x027f0fe8, 0x01393d3f, 0x01fda329, 0x020f85e8, 0x005c2547, 0x03628244, 0x00568571, 0x02ec9f57, 0x002746ae}}, Y: Field{[10]uint32{0x0328cadf, 0x02b4a2cf, 0x03bdd149, 0x039e6219, 0x0071b010, 0x02508d4e, 0x00c89e62, 0x02d8708e, 0x030050db, 0x003c87b9}}}, + {X: Field{[10]uint32{0x001f7ae6, 0x01d0b585, 0x03a32f72, 0x02816166, 0x019886d6, 0x012c10dc, 0x03234b6a, 0x02bd1b0d, 0x02918db3, 0x0007ee59}}, Y: Field{[10]uint32{0x001f7379, 0x035560b5, 0x00ecab09, 0x01e08101, 0x02a17b55, 0x03a69096, 0x034c4426, 0x03f647df, 0x02cc207e, 0x0022f04f}}}, + {X: Field{[10]uint32{0x021ec7b8, 0x00876da7, 0x01281ee2, 0x03c169e0, 0x02416d54, 0x0010a3a2, 0x00bcb23e, 0x0136ac26, 0x0364b927, 0x0008b678}}, Y: Field{[10]uint32{0x02d8407d, 0x01219780, 0x024c1c1e, 0x0244a3e4, 0x014c300a, 0x01d3a546, 0x0399195b, 0x01f6d795, 0x0258f93d, 0x0017708c}}}, + {X: Field{[10]uint32{0x0073e45d, 0x01ca5efe, 0x03ff8398, 0x030091f2, 0x01adb168, 0x0161d04c, 0x0166766d, 0x020fecc0, 0x0050aed0, 0x001897e9}}, Y: Field{[10]uint32{0x0376bb7b, 0x007d9121, 0x011175a2, 0x02196e39, 0x00fbb5a2, 0x0280913c, 0x0185ed21, 0x03241195, 0x0104473d, 0x001c82a0}}}, + {X: Field{[10]uint32{0x02a2147f, 0x020bcde9, 0x028ff01f, 0x003fc86b, 0x002deacc, 0x009a06ba, 0x03b01c2e, 0x03f0977b, 0x01c19b6d, 0x00092b2c}}, Y: Field{[10]uint32{0x03ca5d4b, 0x02647774, 0x03d52783, 0x036b7ebd, 0x0193f50a, 0x01c6aaf8, 0x00abdcdb, 0x0201862a, 0x0335210e, 0x003dca74}}}, + {X: Field{[10]uint32{0x035ab555, 0x004c0b3d, 0x0339f33c, 0x025ae96c, 0x036c6d18, 0x02fdf6ce, 0x02328e3b, 0x00c353ce, 0x0003a99d, 0x0034a15a}}, Y: Field{[10]uint32{0x0292d6ff, 0x02727681, 0x00fdf568, 0x0224f9e0, 0x012b814a, 0x02d06dc9, 0x0098bbf1, 0x016e1d8b, 0x014d6470, 0x00259266}}}, + {X: Field{[10]uint32{0x00b5fe0a, 0x002f2613, 0x0031b50a, 0x023cef1e, 0x008fb529, 0x01c797f6, 0x01e95ef8, 0x01a212c5, 0x02659d19, 0x002014a7}}, Y: Field{[10]uint32{0x00b3b778, 0x0391dbc4, 0x02de6e9a, 0x02a1d3a1, 0x000b74b4, 0x01696c9a, 0x01e50bfc, 0x02faa3bf, 0x024f9ae4, 0x0021a2cf}}}, + {X: Field{[10]uint32{0x0328e183, 0x01d35fa1, 0x01dded06, 0x005a54fc, 0x030e0bb3, 0x02710c9d, 0x0288e494, 0x0007b574, 0x01aa3b82, 0x001fe466}}, Y: Field{[10]uint32{0x025288b9, 0x0387e7c6, 0x01e2ffcb, 0x0107765f, 0x00ee9d7e, 0x029c89a3, 0x02c174a3, 0x0080a551, 0x0273d037, 0x00006ae9}}}, + {X: Field{[10]uint32{0x0029ecbc, 0x0322598b, 0x02fb76d0, 0x01b59134, 0x0129b456, 0x03332c64, 0x004674cd, 0x0167d923, 0x008508e9, 0x001f4cb2}}, Y: Field{[10]uint32{0x02d39698, 0x0000d081, 0x013e866e, 0x0278c7d5, 0x02875ea9, 0x01971ce1, 0x011afb8e, 0x03fba325, 0x00ecb50b, 0x003643a5}}}, + {X: Field{[10]uint32{0x011abfbf, 0x020678cb, 0x0374cbf8, 0x03feb67a, 0x011f1727, 0x02f46fc0, 0x02ce67eb, 0x03b3215d, 0x01c09291, 0x003cae58}}, Y: Field{[10]uint32{0x0126f795, 0x001c408c, 0x00524017, 0x002b5030, 0x00ed0aec, 0x0195bd8e, 0x00382208, 0x01a8d91b, 0x00495a1e, 0x003aff96}}}, + {X: Field{[10]uint32{0x01be876e, 0x02efefe0, 0x02676f75, 0x005d3a62, 0x026b4ae3, 0x025c606c, 0x02d6a728, 0x00ca465c, 0x02899528, 0x00366831}}, Y: Field{[10]uint32{0x02bfa042, 0x03e31eb1, 0x00d922b7, 0x024eecd4, 0x01e9039b, 0x034fc0c2, 0x0164d974, 0x02f26b45, 0x0086a0ac, 0x0034daba}}}, + {X: Field{[10]uint32{0x007c3e0a, 0x0375205f, 0x0269fbe2, 0x0048c2ce, 0x00fff299, 0x002af7d7, 0x01b2aa71, 0x01f23264, 0x03246aeb, 0x0031e8d8}}, Y: Field{[10]uint32{0x01c9e21f, 0x016c3001, 0x025f815f, 0x01235b47, 0x0102b321, 0x02d2cb52, 0x01863026, 0x0234b5e6, 0x01d70e44, 0x0004a63f}}}, + {X: Field{[10]uint32{0x00985a86, 0x010853f9, 0x00ac4830, 0x01931ff8, 0x02640d24, 0x036fd58e, 0x02535a04, 0x034ef019, 0x03a05064, 0x0018d735}}, Y: Field{[10]uint32{0x01e3ae1f, 0x014f89fa, 0x01a4ce04, 0x011fcca0, 0x00e8d5f0, 0x03e78bcc, 0x0335cfca, 0x01dfd919, 0x0265913e, 0x00003900}}}, + {X: Field{[10]uint32{0x009ee5f5, 0x02478426, 0x00adcc5b, 0x02dc85a7, 0x02eca54b, 0x0256d206, 0x035b6326, 0x03a894df, 0x024f38ed, 0x00017698}}, Y: Field{[10]uint32{0x02721779, 0x0035dc72, 0x02505a22, 0x0088dec5, 0x0248c288, 0x00e9495b, 0x03aeeb24, 0x000c03ff, 0x01baa108, 0x0034fa9b}}}, + {X: Field{[10]uint32{0x007d4d5e, 0x024a13fa, 0x0080efe1, 0x0230a5db, 0x01ce0527, 0x03f92db5, 0x001f6871, 0x01d7b24b, 0x00a2b197, 0x002a93d9}}, Y: Field{[10]uint32{0x02d4f240, 0x01e4f70f, 0x0118e293, 0x00a20e59, 0x00224ea0, 0x0160e99b, 0x036e9499, 0x0383eda5, 0x017e95fc, 0x003ce7c4}}}, + {X: Field{[10]uint32{0x027e0641, 0x02d70d90, 0x038c1477, 0x03b3af8d, 0x01d60969, 0x00b81554, 0x0293f266, 0x006d088a, 0x00ea99ff, 0x0026d946}}, Y: Field{[10]uint32{0x0393165a, 0x01d21f63, 0x0165627b, 0x03147508, 0x01bebdf7, 0x0014cbfe, 0x02ea9dd3, 0x03eced0e, 0x02558650, 0x000ba7c5}}}, + {X: Field{[10]uint32{0x0297b562, 0x024f402b, 0x011594b1, 0x01ffec40, 0x006547f4, 0x03772fae, 0x02011381, 0x00b83e87, 0x02a2b597, 0x001b26e6}}, Y: Field{[10]uint32{0x0275e27d, 0x01280e18, 0x02d3b162, 0x02c99d1d, 0x02a6e78e, 0x034816f6, 0x0123d0f9, 0x01c74af9, 0x011c8d4c, 0x002bc276}}}, + {X: Field{[10]uint32{0x03467cbe, 0x019984b6, 0x01f71f53, 0x031a8df9, 0x00cf80ae, 0x031c44a8, 0x02365410, 0x02571579, 0x00803cdc, 0x0028a872}}, Y: Field{[10]uint32{0x0223fc09, 0x02e6cb53, 0x02fc273e, 0x00683108, 0x01802e2e, 0x00352c5d, 0x025410d5, 0x03c103ff, 0x030f3638, 0x003133d5}}}, + {X: Field{[10]uint32{0x03650427, 0x010df96a, 0x008a9ca8, 0x02b883cb, 0x0213102b, 0x02225cd9, 0x025af104, 0x033358d2, 0x0350c961, 0x00018f4d}}, Y: Field{[10]uint32{0x02339248, 0x01c01163, 0x03fa06d6, 0x03c1c4e4, 0x01f21125, 0x0261d0a8, 0x01e90dc6, 0x0269d9cb, 0x033274b3, 0x0021d054}}}, + {X: Field{[10]uint32{0x02bdd04a, 0x00582c94, 0x0130e1f5, 0x02fc66da, 0x00bcc97d, 0x02117453, 0x013e8fb5, 0x02095429, 0x0266e442, 0x002341c3}}, Y: Field{[10]uint32{0x01487ecd, 0x036a3766, 0x00bb2497, 0x02433bbd, 0x0248cdef, 0x005cf348, 0x0084099f, 0x013c1326, 0x00824f2b, 0x0012f263}}}, + {X: Field{[10]uint32{0x0291c8bd, 0x02ff4ad2, 0x01456175, 0x037decd8, 0x03e3f3d4, 0x03305963, 0x00143950, 0x00022ed4, 0x02a72e5f, 0x003c7f95}}, Y: Field{[10]uint32{0x01f275f2, 0x03219bbd, 0x017b2be2, 0x017ffa29, 0x03a19caa, 0x00da2159, 0x01e302ad, 0x01f69740, 0x02bee57a, 0x002f97ff}}}, + {X: Field{[10]uint32{0x03554b21, 0x01a87f9c, 0x01635747, 0x02756bb3, 0x03b41239, 0x019d6f31, 0x0271a950, 0x025a7a6e, 0x02dbd2eb, 0x00200b26}}, Y: Field{[10]uint32{0x0372bc5e, 0x008b84d9, 0x007efb74, 0x0326f841, 0x02cc3344, 0x01c3e703, 0x026527d3, 0x0339a59b, 0x0026f547, 0x001084c8}}}, + {X: Field{[10]uint32{0x0093db56, 0x020812c5, 0x02745c71, 0x0293c5e2, 0x009d24cd, 0x02f1e965, 0x030a5cda, 0x03b48803, 0x02c09d6c, 0x00256c6d}}, Y: Field{[10]uint32{0x02adb01d, 0x0002752d, 0x023ddf69, 0x0074db2c, 0x0127b233, 0x01b3c903, 0x00ce5e9a, 0x00f45ab2, 0x02815303, 0x002f050d}}}, + {X: Field{[10]uint32{0x02ede35d, 0x0120e9a9, 0x0169d2d6, 0x01bb5dac, 0x017b79a0, 0x005c08bc, 0x03b2aa4e, 0x013ab860, 0x012901f9, 0x0003abb5}}, Y: Field{[10]uint32{0x01d559b3, 0x009fee57, 0x03f8f9cb, 0x01f266b1, 0x00bc6e37, 0x02b5aebc, 0x02c1efa3, 0x02267376, 0x027691c5, 0x0014f56c}}}, + {X: Field{[10]uint32{0x0027d770, 0x02dcd667, 0x02abeac7, 0x0038d9ef, 0x03906d69, 0x03bcfdfc, 0x02b485b6, 0x011231cb, 0x03e59f6f, 0x001df113}}, Y: Field{[10]uint32{0x031102fd, 0x008bbafe, 0x009d3833, 0x027feb31, 0x00e6629c, 0x038f5ace, 0x00f03604, 0x003e00b3, 0x00226c44, 0x002f35d4}}}, + {X: Field{[10]uint32{0x000a0306, 0x02b97ef9, 0x0144efad, 0x01e55046, 0x00011b62, 0x0364daa2, 0x0352002c, 0x00291ad9, 0x02e2f00f, 0x003a18ec}}, Y: Field{[10]uint32{0x03243a5f, 0x03f81119, 0x00358b36, 0x01f59802, 0x01c2ed93, 0x00c7a3ab, 0x039caff6, 0x027c5c16, 0x03a36da2, 0x002d71e6}}}, + {X: Field{[10]uint32{0x02f8f191, 0x0079cbbb, 0x02dec272, 0x02d3cf73, 0x003883ad, 0x02b68c26, 0x03eedda4, 0x01c742cb, 0x03ef93df, 0x00089bd6}}, Y: Field{[10]uint32{0x001707c3, 0x008cf39d, 0x00fbcc13, 0x022f5d73, 0x00f96607, 0x02116186, 0x00a08fbe, 0x02f05228, 0x00b52bce, 0x00282481}}}, + {X: Field{[10]uint32{0x03467184, 0x03a40da0, 0x0046e3a4, 0x0292bfdf, 0x02c33bed, 0x031bc237, 0x03a82b39, 0x01f14e7c, 0x03b08c1e, 0x002a888b}}, Y: Field{[10]uint32{0x001c3765, 0x03590c5f, 0x01d4ac5d, 0x00a641ad, 0x01c1653d, 0x01b7fe4c, 0x01a7c3aa, 0x03f4e608, 0x01cf21ca, 0x00010441}}}, + {X: Field{[10]uint32{0x01fec96a, 0x01d53c78, 0x01a82239, 0x033048db, 0x01f94482, 0x025ec540, 0x01220bb3, 0x013b4f71, 0x02cd26ef, 0x00061e70}}, Y: Field{[10]uint32{0x01f0d67d, 0x01c96ddc, 0x01351464, 0x01472dcf, 0x024fc689, 0x00758c10, 0x03b16092, 0x03785247, 0x033575ea, 0x00244b57}}}, + {X: Field{[10]uint32{0x009902e0, 0x01fb2c6b, 0x03b76765, 0x007af70a, 0x026df621, 0x01c352df, 0x024cfc59, 0x03622fd2, 0x00a4e7ee, 0x002f8e79}}, Y: Field{[10]uint32{0x0227cb4e, 0x03311d9f, 0x00899f94, 0x02915857, 0x0132ae54, 0x0133d692, 0x006d9a2b, 0x029edd8c, 0x00f113fc, 0x00362c79}}}, + {X: Field{[10]uint32{0x012d5786, 0x02f70bdd, 0x00631d3f, 0x0391f3d1, 0x001c2912, 0x01b0fe2a, 0x03028368, 0x0230f740, 0x03ce3337, 0x0007a9cb}}, Y: Field{[10]uint32{0x0348906e, 0x002e220d, 0x007c9aed, 0x02c201ff, 0x000cb6e2, 0x03941ade, 0x03f261af, 0x03745333, 0x0158fe1c, 0x003883d1}}}, + {X: Field{[10]uint32{0x02036806, 0x0198beb6, 0x032423ac, 0x0046dd36, 0x022d0ca0, 0x00caf0e5, 0x00638e6f, 0x03d5f7a3, 0x03dd67bf, 0x00015b8c}}, Y: Field{[10]uint32{0x0393f461, 0x00ee4ff0, 0x02e2efbb, 0x033cf853, 0x0350d78e, 0x007795ef, 0x0317d4e4, 0x01c4c024, 0x00cc165e, 0x00100e70}}}, + {X: Field{[10]uint32{0x000f37ad, 0x01c330ba, 0x034470c4, 0x0153c429, 0x02d036ce, 0x00e2e78f, 0x02fb95a7, 0x03637c72, 0x0291a5f1, 0x00146605}}, Y: Field{[10]uint32{0x01972261, 0x02a998b1, 0x03664d31, 0x03711c7b, 0x01d03fab, 0x03a5fc11, 0x026e3c26, 0x00aa641d, 0x004767cf, 0x00027ee4}}}, + {X: Field{[10]uint32{0x00869dbd, 0x03165e66, 0x03f3016e, 0x02e6f355, 0x02b90db9, 0x03e49e65, 0x00be7f95, 0x025e0dac, 0x028577a5, 0x003bce95}}, Y: Field{[10]uint32{0x037c5e07, 0x030f6306, 0x024d372a, 0x00d92ed4, 0x03fabe11, 0x0387d1e0, 0x01782c6a, 0x01d27a52, 0x0057ff22, 0x001473f9}}}, + {X: Field{[10]uint32{0x03196415, 0x0301836b, 0x00a22523, 0x020814c1, 0x0379a668, 0x038f190c, 0x029e0b16, 0x0216e9fb, 0x02a18c3a, 0x003bf194}}, Y: Field{[10]uint32{0x00f7b2a5, 0x0111ecd5, 0x01d49737, 0x00726302, 0x038fcee7, 0x01661c20, 0x01b2498f, 0x006bcc07, 0x0014cef9, 0x0022995b}}}, + {X: Field{[10]uint32{0x004bbf82, 0x00dc2862, 0x015def07, 0x018b012a, 0x018adc79, 0x0226203c, 0x00021983, 0x0338b366, 0x03eff4d5, 0x00337687}}, Y: Field{[10]uint32{0x01e31d6c, 0x01726c12, 0x0235a0e5, 0x02ae14d8, 0x024417f9, 0x0291e058, 0x019174b4, 0x0370175e, 0x03fcb0c9, 0x0022f09b}}}, + {X: Field{[10]uint32{0x016cf0d4, 0x021a11ee, 0x03a3f938, 0x02b370e8, 0x00d46bb6, 0x01f7b750, 0x00b76d77, 0x02a84c4d, 0x01853454, 0x001bcfce}}, Y: Field{[10]uint32{0x00adba81, 0x03b1724b, 0x01637e4e, 0x02479592, 0x00b6e324, 0x029020d1, 0x03e5192e, 0x0286d6b9, 0x019c4f7c, 0x002a2e92}}}, + {X: Field{[10]uint32{0x014b13e4, 0x033577f9, 0x01ee8061, 0x01f61452, 0x03a2a362, 0x03636013, 0x0042065e, 0x03ee0faa, 0x01af91ab, 0x00394b44}}, Y: Field{[10]uint32{0x01cfff97, 0x00e384aa, 0x01069468, 0x00f438fb, 0x012e132a, 0x039cca17, 0x021f6ed4, 0x0159cb2c, 0x006d619e, 0x00167cc4}}}, + {X: Field{[10]uint32{0x027256ff, 0x0033e8e7, 0x02ac066c, 0x01a70c38, 0x038fb918, 0x00cacf2a, 0x0254d13b, 0x0072d915, 0x0336f0de, 0x00227fb1}}, Y: Field{[10]uint32{0x03e44274, 0x01156b81, 0x01ded46b, 0x036ed63d, 0x0173e708, 0x037f798b, 0x02b938d9, 0x0069b6da, 0x02e84d3e, 0x003e505e}}}, + {X: Field{[10]uint32{0x02b70b29, 0x036b0248, 0x03f7531b, 0x0082a240, 0x03522615, 0x000a1d27, 0x006ce733, 0x00154f3a, 0x035691b1, 0x00014503}}, Y: Field{[10]uint32{0x022dc024, 0x019f5caa, 0x00afd0dd, 0x002fe894, 0x00ad0acf, 0x007033a4, 0x021f4ce2, 0x0308f401, 0x022b9e02, 0x00246865}}}, + {X: Field{[10]uint32{0x01267b5c, 0x0243f21f, 0x00d09c0f, 0x03ae1548, 0x030579d0, 0x034cbe52, 0x035e199e, 0x02645c41, 0x01309310, 0x0000f058}}, Y: Field{[10]uint32{0x00ac64c3, 0x01f4dade, 0x00e51a5f, 0x03297a00, 0x01e9f156, 0x01a4eb00, 0x02a00107, 0x0036e40e, 0x00dfe404, 0x00354341}}}, + {X: Field{[10]uint32{0x03e8bac9, 0x00fbae26, 0x01fa8be1, 0x014a4474, 0x02a2d0b9, 0x00090154, 0x00b8a58f, 0x0008dc96, 0x010e63a5, 0x003f61da}}, Y: Field{[10]uint32{0x021b9225, 0x013fa922, 0x0247458e, 0x038eb144, 0x03b40f04, 0x011ff19a, 0x023ee352, 0x01a3d5be, 0x01acccb9, 0x00101b70}}}, + {X: Field{[10]uint32{0x01a12a81, 0x01d0d2f5, 0x01347ebc, 0x0381aa36, 0x0299005c, 0x01cecca3, 0x028ad599, 0x01e3ccb3, 0x01de017e, 0x00023934}}, Y: Field{[10]uint32{0x01a2a8ae, 0x0065006c, 0x036da429, 0x02a230c6, 0x02992baf, 0x02efc362, 0x00c843b4, 0x029975d1, 0x033e744c, 0x00318d23}}}, + {X: Field{[10]uint32{0x007743c2, 0x00e6831b, 0x03ff6ea7, 0x001059de, 0x02f49881, 0x029632aa, 0x03b6eebb, 0x0319e05c, 0x03cfea62, 0x000e0b1e}}, Y: Field{[10]uint32{0x01c5eb7d, 0x0154e69a, 0x035237cf, 0x0372bf34, 0x0267e9ad, 0x000703da, 0x01f7f27e, 0x01090d4f, 0x01da77e6, 0x00006429}}}, + {X: Field{[10]uint32{0x0114ed0f, 0x0364357e, 0x01d29e87, 0x03254efd, 0x0125b0da, 0x03a941e5, 0x01fa471b, 0x01201d4e, 0x034e74b8, 0x003d5aa2}}, Y: Field{[10]uint32{0x0096db8b, 0x00547ef0, 0x01a48c50, 0x00704e45, 0x008f9f20, 0x01a9ba89, 0x03881c65, 0x039848ea, 0x0108da57, 0x001515b6}}}, + {X: Field{[10]uint32{0x03965b80, 0x03f6c185, 0x02a044ec, 0x00b157c4, 0x003af365, 0x005ae031, 0x02f8ea2b, 0x0155e87f, 0x03fb6a5e, 0x002423a7}}, Y: Field{[10]uint32{0x038bc2ce, 0x0379d6a1, 0x02043562, 0x0253b5ad, 0x03b9c010, 0x03af0c4d, 0x0182ca07, 0x0133c3e0, 0x00c9d1b1, 0x002fab8a}}}, + {X: Field{[10]uint32{0x02c86ef4, 0x00b9ba6f, 0x01e787ef, 0x012e6750, 0x033fad25, 0x014a4d3a, 0x03225330, 0x0207f45a, 0x03184333, 0x0029b0c1}}, Y: Field{[10]uint32{0x023fb818, 0x024015d8, 0x026f44bf, 0x020817b8, 0x029e266f, 0x000c271c, 0x01129e4e, 0x01440813, 0x0286a60d, 0x0011ea68}}}, + {X: Field{[10]uint32{0x00b3e903, 0x019bade6, 0x01361047, 0x038d28a6, 0x0230a652, 0x00af882b, 0x01461635, 0x00b0980b, 0x01866c3e, 0x002522eb}}, Y: Field{[10]uint32{0x01c35164, 0x01312136, 0x00d3395b, 0x0129da86, 0x004321da, 0x02457783, 0x0043b0f0, 0x0228ae67, 0x0222ad47, 0x000c34c1}}}, + {X: Field{[10]uint32{0x00f6a3f2, 0x03a13487, 0x02c9f0c9, 0x0373e5b4, 0x029d536e, 0x021e0b4d, 0x03881251, 0x005eb9dd, 0x039dcb8a, 0x0035b24a}}, Y: Field{[10]uint32{0x02de09b9, 0x00412bca, 0x0207b9e0, 0x00923b08, 0x030ed686, 0x02bb1752, 0x030ae881, 0x020dde5e, 0x03a09351, 0x003764d9}}}, + {X: Field{[10]uint32{0x01566abd, 0x03bc3f59, 0x0232854c, 0x00269d6b, 0x037b0822, 0x0137e00b, 0x00641ca6, 0x004f591b, 0x017b7d8b, 0x003e7fcf}}, Y: Field{[10]uint32{0x02deec98, 0x0396580c, 0x011c8c84, 0x00a2861c, 0x01b9269d, 0x00f60474, 0x02230224, 0x008257dc, 0x019e1f19, 0x002b1618}}}, + {X: Field{[10]uint32{0x02c8d5e0, 0x00a3dba4, 0x014e1c35, 0x01fe0d34, 0x017f4e76, 0x00a0dfb5, 0x009a9204, 0x0383dc08, 0x01ba3a70, 0x000f6b87}}, Y: Field{[10]uint32{0x000f797f, 0x0134154a, 0x0332e08b, 0x0367aa64, 0x015c7816, 0x03ffa1f2, 0x03cdfad3, 0x03cb3f87, 0x028d6ea1, 0x001eb891}}}, + {X: Field{[10]uint32{0x01b49937, 0x012c0746, 0x007cad0b, 0x01f836ef, 0x008ffd22, 0x03caabac, 0x03ffe130, 0x024df272, 0x01056fcc, 0x0009c114}}, Y: Field{[10]uint32{0x03fa4397, 0x029a63c7, 0x02ad4d08, 0x03d710a1, 0x01bbd801, 0x01875b1d, 0x00d37246, 0x03f7f888, 0x02546c24, 0x00045d9a}}}, + {X: Field{[10]uint32{0x00defd22, 0x00359788, 0x00865bb9, 0x01599271, 0x012024c5, 0x018beea0, 0x00340752, 0x0183bb35, 0x03f96c32, 0x003e7657}}, Y: Field{[10]uint32{0x03a13c2d, 0x0009af05, 0x01dda24b, 0x0128696c, 0x030a89d5, 0x00c11cc2, 0x02632ba8, 0x00504602, 0x03fd8f74, 0x000df2fd}}}, + {X: Field{[10]uint32{0x01a7021f, 0x02d5f171, 0x0021448a, 0x02ef6e64, 0x02ff0a86, 0x019b3ef9, 0x018c6d5b, 0x019fa7fb, 0x0318f90f, 0x00013a37}}, Y: Field{[10]uint32{0x02a621f5, 0x024ff6bc, 0x0329ea22, 0x03f4ea0d, 0x000e9bad, 0x02cd210f, 0x03a2b1b3, 0x01904d14, 0x00c5ccf5, 0x001f9a7e}}}, + {X: Field{[10]uint32{0x02ffef9f, 0x016dde74, 0x01821c8a, 0x02f4ef8d, 0x00ab3d32, 0x00f19916, 0x02783836, 0x01fec86e, 0x012a710a, 0x00230a93}}, Y: Field{[10]uint32{0x025511d6, 0x016ab18d, 0x01205caa, 0x0247fce7, 0x03f82d8f, 0x006f595d, 0x01715157, 0x00960d18, 0x007d27e4, 0x00354c91}}}, + {X: Field{[10]uint32{0x03654b75, 0x010f3be1, 0x00e19631, 0x007b52c1, 0x02c10e81, 0x023eb9cb, 0x00677afa, 0x027339bf, 0x03a01974, 0x000a2dfc}}, Y: Field{[10]uint32{0x005ec782, 0x035698e1, 0x03e392ce, 0x00c699e3, 0x01e241ba, 0x01c7d287, 0x017c881e, 0x02ace456, 0x01eb3245, 0x0000c11c}}}, + {X: Field{[10]uint32{0x01be416b, 0x01b5f6d6, 0x0300808f, 0x025033d2, 0x02d89f64, 0x02667b23, 0x03b5acb0, 0x039cb095, 0x010ffcb8, 0x0032d1d3}}, Y: Field{[10]uint32{0x016622fd, 0x00c146a8, 0x000c7e3a, 0x02cfbff0, 0x029a0e59, 0x01d67e15, 0x039a9508, 0x00f2ee2a, 0x00cefc29, 0x003fdf34}}}, + {X: Field{[10]uint32{0x0055b36c, 0x01ecd7d0, 0x023f5bd5, 0x00d0ba65, 0x011a1800, 0x0378a929, 0x01567fbe, 0x02f10099, 0x01825dbe, 0x0030cf9a}}, Y: Field{[10]uint32{0x0146be18, 0x023b0b31, 0x01e0db79, 0x02d64694, 0x02082c0c, 0x0266ac19, 0x03b50615, 0x01973894, 0x03f57ce2, 0x0008bfcf}}}, + {X: Field{[10]uint32{0x01bd2237, 0x01060e06, 0x00a0eee3, 0x0116cf43, 0x03257e07, 0x01112a6a, 0x02441a84, 0x01c48dc6, 0x010644d3, 0x00212ff0}}, Y: Field{[10]uint32{0x009ef6f1, 0x00861eca, 0x0235ae1c, 0x00847b38, 0x03afd7f4, 0x00f9065e, 0x03d13ffb, 0x03dc1b0c, 0x02d57b7a, 0x001f2f95}}}, + {X: Field{[10]uint32{0x017b713a, 0x026594fe, 0x008dc735, 0x02296c12, 0x03606302, 0x01f820d7, 0x000f003f, 0x00913bf5, 0x02ecd53b, 0x000270c4}}, Y: Field{[10]uint32{0x02b76d14, 0x01126c53, 0x01fe6165, 0x0297fb90, 0x0059698b, 0x00622d3a, 0x00d0b160, 0x01dfbe15, 0x010f58fc, 0x00046f2f}}}, + {X: Field{[10]uint32{0x0315cefc, 0x02a0b72b, 0x004332d0, 0x006b8074, 0x01d474f6, 0x00eef3c8, 0x0183bf4e, 0x01bcb433, 0x0359a22d, 0x001701ab}}, Y: Field{[10]uint32{0x0322aae8, 0x02059690, 0x02be2904, 0x02c50978, 0x0341fbef, 0x0319a6ab, 0x006d70d6, 0x0197f6a3, 0x03e9f1c2, 0x0011dad2}}}, + {X: Field{[10]uint32{0x01b6bdcf, 0x03516cfc, 0x002bf2d6, 0x01c72118, 0x03f44f0d, 0x02bce7ae, 0x000eb547, 0x03b50ed3, 0x01c681a3, 0x001ddc96}}, Y: Field{[10]uint32{0x033bf754, 0x037861fe, 0x02bba22f, 0x0273d58f, 0x03d6742b, 0x0320d199, 0x00448514, 0x02162bbb, 0x03535481, 0x0022a74d}}}, + {X: Field{[10]uint32{0x01266842, 0x00831410, 0x0283ce38, 0x03101d98, 0x020174b8, 0x03409137, 0x024328b4, 0x03074c53, 0x001eae1f, 0x002cdc18}}, Y: Field{[10]uint32{0x00125ac0, 0x00da0d2f, 0x029323e1, 0x02a9010a, 0x03eda7b5, 0x036603b8, 0x02a9abc8, 0x030ec1d4, 0x00792174, 0x0023bc14}}}, + {X: Field{[10]uint32{0x02fe6584, 0x022b23b6, 0x028bf824, 0x015ac054, 0x02780868, 0x01c25c81, 0x032ad406, 0x01924a91, 0x02c07f8d, 0x0016be52}}, Y: Field{[10]uint32{0x022daf1a, 0x030e59b9, 0x016552a9, 0x035e33f9, 0x00b40dff, 0x03bd7d5b, 0x01f32efc, 0x03794475, 0x03ce57ea, 0x00229531}}}, + {X: Field{[10]uint32{0x030586c6, 0x032e39d6, 0x0194581a, 0x007cfe51, 0x034f84b4, 0x0160cbcd, 0x01d4f23c, 0x01c154e1, 0x019ce2e8, 0x0023f8f0}}, Y: Field{[10]uint32{0x01728c28, 0x013d6b24, 0x03860067, 0x005c055b, 0x012f5e20, 0x02bc64f2, 0x0314d491, 0x01130e90, 0x019fd16f, 0x003e48c2}}}, + {X: Field{[10]uint32{0x03ac9a71, 0x00a23f04, 0x02fc3b5f, 0x01fe8dee, 0x01e531d1, 0x026d97ad, 0x01211b30, 0x02f4797e, 0x021d2642, 0x00356025}}, Y: Field{[10]uint32{0x034185cb, 0x0225fa46, 0x03650e4f, 0x03716ce3, 0x02d9678c, 0x02c4bea1, 0x0250a6e0, 0x022d0cdb, 0x0154337e, 0x00140301}}}, + {X: Field{[10]uint32{0x0295e82b, 0x033efc50, 0x01405256, 0x019d6a71, 0x02234e79, 0x019e430c, 0x02460338, 0x02988d27, 0x00ed529f, 0x00009577}}, Y: Field{[10]uint32{0x01799815, 0x03d2d29f, 0x00b100c8, 0x033653db, 0x035dfba7, 0x02a918c5, 0x03253d3f, 0x0071eff0, 0x01c47f3e, 0x001fbb6a}}}, + {X: Field{[10]uint32{0x00891557, 0x02f908bb, 0x004580bd, 0x00e2a376, 0x031a27c3, 0x03923957, 0x00476a4a, 0x01147eae, 0x03a79240, 0x0012dfaf}}, Y: Field{[10]uint32{0x01b59085, 0x00f60fa1, 0x012848c6, 0x035f90a1, 0x02c12622, 0x035fb604, 0x00a23cfa, 0x00d7d83f, 0x00e9f891, 0x0037ec98}}}, + {X: Field{[10]uint32{0x032fbf28, 0x01fd5547, 0x00c7d8f4, 0x0274ef45, 0x01311956, 0x0319dc67, 0x035819e0, 0x024aa68e, 0x03809e60, 0x00246741}}, Y: Field{[10]uint32{0x003d8094, 0x02bca0e1, 0x024fdcbc, 0x03528c38, 0x00c204d3, 0x02635846, 0x03b2fa50, 0x003cb3b2, 0x02f876d7, 0x003282da}}}, + {X: Field{[10]uint32{0x0070ee78, 0x03754da3, 0x03f42393, 0x01ad67ba, 0x009b8c89, 0x02b8d0a9, 0x02d73bd5, 0x02a5116f, 0x03a9de89, 0x00119a19}}, Y: Field{[10]uint32{0x02e042e1, 0x03559e2a, 0x02029385, 0x024d3ba5, 0x019cbb9f, 0x022dfb42, 0x01bd6cae, 0x01608c1e, 0x0307b3e1, 0x000a9765}}}, + {X: Field{[10]uint32{0x01db3f7b, 0x0172e8b0, 0x01f3cd98, 0x016ef995, 0x01fc740d, 0x03dc4963, 0x021526fc, 0x01145e24, 0x0108c878, 0x001c49d3}}, Y: Field{[10]uint32{0x034b25e0, 0x01237bfe, 0x03f560d8, 0x0299aaf9, 0x033cdd2c, 0x010185de, 0x01652bc4, 0x0050d3e3, 0x0130a5be, 0x00382bc0}}}, + {X: Field{[10]uint32{0x02be2bcd, 0x03838ddf, 0x0111fa0a, 0x01b47ecc, 0x03b6e825, 0x013981a3, 0x00693c1f, 0x0090744f, 0x00482d25, 0x00291ba4}}, Y: Field{[10]uint32{0x00474eda, 0x02486fa5, 0x0111140f, 0x02ff56b9, 0x01fdd708, 0x0185c9ab, 0x026e7ac9, 0x02ada604, 0x000cf22a, 0x001d59dc}}}, + {X: Field{[10]uint32{0x01e84abd, 0x000afea9, 0x03b5baec, 0x022e89b4, 0x0110ea91, 0x01ef9a14, 0x0073b0f7, 0x00449a16, 0x0391f243, 0x003dd642}}, Y: Field{[10]uint32{0x02708999, 0x024d6918, 0x00e2eded, 0x02357a8a, 0x002d2512, 0x016372f2, 0x035d6cc8, 0x02534326, 0x00f8594c, 0x00120612}}}, + {X: Field{[10]uint32{0x028c2edf, 0x00bb7790, 0x023bc9a2, 0x037ebfd7, 0x004f966e, 0x0263c1e4, 0x0139d643, 0x03876b6b, 0x00e51282, 0x000b5eaa}}, Y: Field{[10]uint32{0x035d9d79, 0x016d868c, 0x01fb5763, 0x0285c233, 0x01a30b4d, 0x005d57e7, 0x033ea24f, 0x008267ac, 0x033c4203, 0x0004ac84}}}, + {X: Field{[10]uint32{0x0236d0e3, 0x0143ea5c, 0x00607995, 0x009d7d96, 0x00822809, 0x0207c4d7, 0x03113a55, 0x0311ff67, 0x03403302, 0x00244c4f}}, Y: Field{[10]uint32{0x00838a77, 0x00fd89e4, 0x03f27c32, 0x0308b833, 0x03aa9e96, 0x03c84a16, 0x01daee91, 0x0012fd18, 0x00075e78, 0x003e2dbb}}}, + {X: Field{[10]uint32{0x006743cb, 0x0128755b, 0x010de2f4, 0x0070e867, 0x01e0be03, 0x02c51bef, 0x028e86e1, 0x02169e11, 0x011909d3, 0x00368920}}, Y: Field{[10]uint32{0x00348cbf, 0x027bd9d0, 0x01a666d3, 0x02d874b3, 0x0305d418, 0x026cdf11, 0x00625111, 0x03dbbbcb, 0x017b5f76, 0x00301f22}}}, + {X: Field{[10]uint32{0x01e82220, 0x00809a37, 0x01bd62e8, 0x03e5bc07, 0x02760ec3, 0x03a7b50c, 0x01e6082d, 0x030b8fed, 0x02240b1b, 0x002578da}}, Y: Field{[10]uint32{0x00e1cb63, 0x017a7447, 0x03d01766, 0x021c7878, 0x0352a74a, 0x032d080a, 0x003b209d, 0x0128ea3c, 0x00d73abc, 0x002f9a64}}}, + {X: Field{[10]uint32{0x02bc6e8b, 0x020ccfcf, 0x01cdf488, 0x021c5411, 0x01afe54a, 0x007e0478, 0x03489e45, 0x01d6c315, 0x00603abd, 0x0022c16c}}, Y: Field{[10]uint32{0x0340fb39, 0x003d3f9f, 0x0179dbb3, 0x0056b358, 0x0027f5b6, 0x0206f69f, 0x01e2ddce, 0x0103ee22, 0x008145db, 0x0007443e}}}, + {X: Field{[10]uint32{0x03020f54, 0x0274c33c, 0x0372855a, 0x02df7363, 0x01d43ec0, 0x0072e0ca, 0x00bbb2ba, 0x00c9e9d4, 0x023b764a, 0x003feaf2}}, Y: Field{[10]uint32{0x01d0f05a, 0x021510db, 0x01302cf5, 0x0172d828, 0x00c79196, 0x013a652d, 0x02fb393a, 0x0289816c, 0x0265c90b, 0x0024e5c2}}}, + {X: Field{[10]uint32{0x03866c72, 0x03ec14c2, 0x027c0a18, 0x01a2c4cf, 0x02d35148, 0x01d4a662, 0x00f05fa9, 0x0392a63c, 0x02efef35, 0x002cea16}}, Y: Field{[10]uint32{0x036005e2, 0x011b47d6, 0x0275238f, 0x031fa228, 0x0009ee78, 0x0139c03a, 0x016b36c5, 0x016e780f, 0x02e1c21e, 0x000c0457}}}, + {X: Field{[10]uint32{0x015b7ab5, 0x01494332, 0x012d5d15, 0x00cbaf2d, 0x015b78fc, 0x03d99b54, 0x01c56590, 0x00f3c82e, 0x015f4c23, 0x00293c7f}}, Y: Field{[10]uint32{0x01faa0da, 0x00f58720, 0x02d52c36, 0x00962764, 0x03337543, 0x03148671, 0x00419fe0, 0x00496111, 0x0385726a, 0x00247467}}}, + {X: Field{[10]uint32{0x015bbb0a, 0x00f98900, 0x03c98bec, 0x00df4a6c, 0x019eb146, 0x02d62d7b, 0x03f39232, 0x033c4e52, 0x034b7bae, 0x0025ee12}}, Y: Field{[10]uint32{0x01162435, 0x01bd254b, 0x03bf48b8, 0x00c361b6, 0x025eac7f, 0x02a4ad2d, 0x0093d73c, 0x01ece84d, 0x00afbe8e, 0x00125f6d}}}, + {X: Field{[10]uint32{0x006312b3, 0x01d34665, 0x0169a1c2, 0x0208f321, 0x03a9de5f, 0x006d6d5e, 0x0278e965, 0x00d999d7, 0x00d9203e, 0x000b3ae8}}, Y: Field{[10]uint32{0x02d2b437, 0x029d70e3, 0x0040a488, 0x02db1aad, 0x00b7805d, 0x035df062, 0x030a88a6, 0x033f7907, 0x0286f042, 0x003530bf}}}, + {X: Field{[10]uint32{0x032b7009, 0x02e1a88f, 0x01e10e91, 0x032f1a90, 0x00912391, 0x0120da66, 0x0257b78b, 0x02b28a2f, 0x01306cdd, 0x002ae2c6}}, Y: Field{[10]uint32{0x034172cf, 0x00a1940d, 0x02a03351, 0x0144da24, 0x027abed6, 0x02992081, 0x00472a17, 0x0286ba76, 0x03dc79fb, 0x003f6eea}}}, + {X: Field{[10]uint32{0x0215b394, 0x0034c146, 0x01acd6bb, 0x01742a8b, 0x03c14970, 0x024e3c9a, 0x02ac2b59, 0x0102c55f, 0x00291ff1, 0x00009d8c}}, Y: Field{[10]uint32{0x01374ee6, 0x01412b12, 0x01875a91, 0x01e61bb3, 0x00553594, 0x014bd728, 0x0240838c, 0x02e78bd1, 0x032a38dc, 0x0030adac}}}, + {X: Field{[10]uint32{0x02fc78c5, 0x01e7ad72, 0x02d8e6cc, 0x03423197, 0x009e703f, 0x03a77449, 0x011d7933, 0x014531fe, 0x01bd1cc1, 0x0008b47b}}, Y: Field{[10]uint32{0x00a85efe, 0x01959e30, 0x03f7a05e, 0x03048de3, 0x02a93942, 0x00228e05, 0x0024fca2, 0x039d044c, 0x03eea53a, 0x001d14f9}}}, + {X: Field{[10]uint32{0x00ffe222, 0x01f26f6b, 0x01b7cc8e, 0x009d7b3b, 0x00b61465, 0x02f6cfee, 0x00fa5590, 0x027a509c, 0x01c0c572, 0x001c361a}}, Y: Field{[10]uint32{0x02ec30c5, 0x0372ee3d, 0x01657115, 0x01d2704c, 0x00f8d414, 0x0230b0ea, 0x03baec84, 0x023ed185, 0x01328ce7, 0x0012ff2b}}}, + {X: Field{[10]uint32{0x011b1647, 0x0093ae1e, 0x0097dd4a, 0x0301aedf, 0x00ed9039, 0x02a5ef4a, 0x0360dccd, 0x015e0993, 0x01deda8d, 0x002896d1}}, Y: Field{[10]uint32{0x0243db8f, 0x031a362a, 0x00c7dfe1, 0x0078bc0c, 0x00f306f1, 0x0310e999, 0x03765554, 0x036558c8, 0x0183fd2a, 0x0023f612}}}, + {X: Field{[10]uint32{0x031024b8, 0x02a29d0e, 0x025cf39c, 0x0052e5d6, 0x033e77fa, 0x01cdc19b, 0x02383366, 0x01f0356a, 0x016c9b23, 0x00208ff3}}, Y: Field{[10]uint32{0x0024dde0, 0x03c5ad51, 0x01d72198, 0x012f4719, 0x01d1433e, 0x02db50d1, 0x01c2ba3b, 0x03cb77a6, 0x004d29a4, 0x0039a469}}}, + {X: Field{[10]uint32{0x02158d0c, 0x01b13396, 0x0033a3a9, 0x0349bb49, 0x01ee594b, 0x00e534c1, 0x02b1247d, 0x02bbd90c, 0x02638244, 0x0000e696}}, Y: Field{[10]uint32{0x026a8023, 0x03e2c9d8, 0x016cd32d, 0x010d4315, 0x00ee4b9f, 0x00932c42, 0x03ff37ea, 0x02125355, 0x0139dd8b, 0x00051f3b}}}, + {X: Field{[10]uint32{0x03206487, 0x012a95ac, 0x035f8de9, 0x02ed21e7, 0x022a18f6, 0x006c9de5, 0x00aaf7b8, 0x02cb701d, 0x03b5b85b, 0x0023e7fa}}, Y: Field{[10]uint32{0x0210c2a2, 0x021ab2fd, 0x0093c32a, 0x03caada8, 0x01dc7474, 0x00ad5ecf, 0x037dbdec, 0x01680038, 0x03d6d417, 0x001236ba}}}, + {X: Field{[10]uint32{0x0143f60c, 0x01e80f64, 0x013f804f, 0x014cdba7, 0x016a08db, 0x03dad38d, 0x009158a5, 0x00215914, 0x03142f50, 0x003f05be}}, Y: Field{[10]uint32{0x001f7a36, 0x033e0137, 0x02eaf58b, 0x0139acca, 0x03402758, 0x036e17f9, 0x034ada59, 0x02dce843, 0x02f27e02, 0x0023a4c9}}}, + {X: Field{[10]uint32{0x01c5a281, 0x024921a1, 0x01d788e2, 0x0007d080, 0x03eaecae, 0x021faea0, 0x015d8f09, 0x01bdba44, 0x02a71744, 0x001f6c27}}, Y: Field{[10]uint32{0x0215742b, 0x00f8c9f0, 0x03864273, 0x019f169b, 0x0279fd21, 0x004bf45f, 0x036b2adc, 0x011577dc, 0x00ee426d, 0x002d11a7}}}, + {X: Field{[10]uint32{0x00d9a57e, 0x03ef2529, 0x030b8564, 0x03d71fb2, 0x023df7ca, 0x007e34f1, 0x0256fdab, 0x03bc70fa, 0x03f528ba, 0x00351746}}, Y: Field{[10]uint32{0x02aeccc1, 0x005cb845, 0x02191c1a, 0x0344f016, 0x00ad0c84, 0x006b5c00, 0x0121d3d8, 0x003a2473, 0x01846483, 0x0024789a}}}, + {X: Field{[10]uint32{0x01f03901, 0x0286a45d, 0x0278ad43, 0x0266ba5d, 0x016a4d9c, 0x01e89aec, 0x00a9ffaa, 0x02176154, 0x03751b6f, 0x000febc2}}, Y: Field{[10]uint32{0x0044328f, 0x01710d86, 0x01368b55, 0x0050ee36, 0x00be775d, 0x00e18c47, 0x02aa39f6, 0x00f3d972, 0x022aa4e4, 0x00229741}}}, + {X: Field{[10]uint32{0x02efd121, 0x01ac1b1d, 0x03107492, 0x028cec49, 0x001eefdb, 0x019787b0, 0x00c5e39c, 0x0291c9e7, 0x00be8e08, 0x00151823}}, Y: Field{[10]uint32{0x0140f038, 0x02278831, 0x01afdcb7, 0x01d9c741, 0x039bdc27, 0x03263f0a, 0x02c5f91c, 0x03e07923, 0x01bc40de, 0x00029da5}}}, + {X: Field{[10]uint32{0x009823ec, 0x03560364, 0x02d4664d, 0x03693865, 0x02e8a201, 0x00ed5a5c, 0x00e69552, 0x03f350d9, 0x0189050d, 0x00156683}}, Y: Field{[10]uint32{0x00dc71c3, 0x03a014ba, 0x027b4c46, 0x00ac1a9a, 0x035641e3, 0x021fd654, 0x01b8d5c0, 0x022e433b, 0x01add652, 0x001efe38}}}, + {X: Field{[10]uint32{0x00f467a8, 0x025ae52b, 0x039c31a9, 0x02a42c19, 0x00bb305e, 0x00797f0a, 0x0248c344, 0x02e7cac5, 0x0058b5e2, 0x00059ba2}}, Y: Field{[10]uint32{0x02e5bdb2, 0x008168e4, 0x01d2af64, 0x00df7432, 0x00dc1b7c, 0x0023e665, 0x018a6b91, 0x03ed0ab3, 0x006dff82, 0x002726cc}}}, + {X: Field{[10]uint32{0x00fe1941, 0x0369ce0e, 0x025a8d41, 0x025317bf, 0x02e5284f, 0x02b90e3b, 0x00ec5fc3, 0x020eeaa5, 0x028ce66e, 0x001038a7}}, Y: Field{[10]uint32{0x01acb2dc, 0x0062134e, 0x009c3955, 0x013ec39c, 0x0384ae68, 0x00e88f42, 0x03154e27, 0x01e1a073, 0x031cc01e, 0x001f1c7d}}}, + {X: Field{[10]uint32{0x02d4ee7e, 0x0110e01c, 0x004081a8, 0x00f6fd9d, 0x006aeb8b, 0x01986d00, 0x007fc764, 0x027399fe, 0x00f9eb65, 0x001a0a72}}, Y: Field{[10]uint32{0x0222913b, 0x001a5172, 0x01908ea5, 0x02ccc13f, 0x036647fc, 0x03a7fcc2, 0x02825225, 0x03701553, 0x030a8332, 0x00074d54}}}, + {X: Field{[10]uint32{0x03658196, 0x00d75044, 0x00e7adbb, 0x01010b44, 0x03e25a25, 0x038abc8d, 0x0393b136, 0x027f4e4c, 0x005a322e, 0x00128ff8}}, Y: Field{[10]uint32{0x0101574c, 0x01c0631e, 0x02ea1f14, 0x0115fb7a, 0x0178dbdc, 0x03c2ac5d, 0x03c40d9e, 0x01d906a4, 0x01f8d452, 0x00216690}}}, + {X: Field{[10]uint32{0x02a44f94, 0x01784066, 0x0338225a, 0x030805df, 0x029e9dde, 0x01919f30, 0x0167ad5a, 0x03acbb05, 0x03c9a675, 0x00379605}}, Y: Field{[10]uint32{0x00f723a4, 0x01959eb3, 0x00af5ec3, 0x005d323f, 0x0271b45e, 0x0352fc40, 0x017e6256, 0x00c4737c, 0x03d05413, 0x0010143a}}}, + {X: Field{[10]uint32{0x0262a108, 0x03697ad5, 0x03e7a155, 0x02cc6d47, 0x00daa7b9, 0x03cf63ce, 0x03df1a26, 0x03d0442a, 0x02454f07, 0x003f78a4}}, Y: Field{[10]uint32{0x0327808a, 0x037f722d, 0x0371ed98, 0x015b901c, 0x03f09d17, 0x031b1c67, 0x03347a3a, 0x03a4a733, 0x02d37b39, 0x003ca939}}}, + {X: Field{[10]uint32{0x03f42436, 0x02a43b7b, 0x022e8a43, 0x00574230, 0x01b09174, 0x029dca18, 0x03c536d6, 0x022e85db, 0x00fb6eb9, 0x003ca34f}}, Y: Field{[10]uint32{0x0279d1bf, 0x0009cd44, 0x00b61e9d, 0x02310b9b, 0x001971fe, 0x022252a9, 0x003dc82d, 0x00943781, 0x022bb328, 0x0011422f}}}, + {X: Field{[10]uint32{0x0316e3ee, 0x01ee545f, 0x038c7011, 0x0259083d, 0x037bb654, 0x00669b7d, 0x0192afb1, 0x02d6df42, 0x00304d1c, 0x0031d957}}, Y: Field{[10]uint32{0x031dfdfd, 0x009f8b79, 0x0070d2e4, 0x02f946e4, 0x01a348b0, 0x00379e70, 0x0186b1cb, 0x00c3712e, 0x02c2cdb7, 0x00226058}}}, + {X: Field{[10]uint32{0x03b4b147, 0x00fb2801, 0x00d0d7ae, 0x01d3c856, 0x0053ffba, 0x02d8bd36, 0x0167936e, 0x03b999c7, 0x03c72fa3, 0x00395f65}}, Y: Field{[10]uint32{0x01fecd64, 0x031c83f8, 0x00958c07, 0x01811f0d, 0x031ed426, 0x019a3284, 0x02b80b9a, 0x00a5d646, 0x012ca3d9, 0x002c78c0}}}, + {X: Field{[10]uint32{0x022b0c01, 0x037e3078, 0x02a44bcc, 0x01edd9a1, 0x036cd3d3, 0x03805332, 0x0244f92f, 0x0096ff01, 0x02421550, 0x003ab6a1}}, Y: Field{[10]uint32{0x01dfeeed, 0x03b5f482, 0x03e9106a, 0x02b2bde7, 0x0107152a, 0x0103e0a9, 0x03c37c55, 0x006ec045, 0x017d71d7, 0x002240d7}}}, + {X: Field{[10]uint32{0x020d0e25, 0x01fb2139, 0x03e27556, 0x03e5dd40, 0x0362dbf8, 0x0047e8ff, 0x01d7e8e0, 0x0086627e, 0x027e3f17, 0x000f9d89}}, Y: Field{[10]uint32{0x021160b6, 0x02288d9b, 0x0087182d, 0x031f8bf8, 0x02416f8b, 0x01f8e5ce, 0x013001ec, 0x031b6e91, 0x03909631, 0x002860d5}}}, + {X: Field{[10]uint32{0x01a3df70, 0x00b49424, 0x0350c697, 0x00d46399, 0x0205de72, 0x0359af9f, 0x0279e692, 0x00bcd408, 0x03d89c26, 0x00284765}}, Y: Field{[10]uint32{0x012a69dd, 0x0071b6f5, 0x00b71fd3, 0x01dfa522, 0x0144768d, 0x02e22459, 0x02e48fea, 0x02c05b7c, 0x00a3dd6f, 0x0034637e}}}, + {X: Field{[10]uint32{0x01f20651, 0x03d0887d, 0x01787922, 0x0023f563, 0x01a5ab52, 0x02b9f30a, 0x0154bf8d, 0x0301bbb7, 0x0375cefe, 0x002c5b8f}}, Y: Field{[10]uint32{0x02d0eb2d, 0x021d86a9, 0x0381da75, 0x024314e6, 0x010233ae, 0x01a42624, 0x03c19891, 0x00cbb5d3, 0x02b45a6e, 0x0015feff}}}, + {X: Field{[10]uint32{0x034628b2, 0x0095e131, 0x03d9fbeb, 0x02cd128c, 0x00837339, 0x02bc51e9, 0x03564c2f, 0x03a9ba7a, 0x000a3f73, 0x000df7a0}}, Y: Field{[10]uint32{0x02254050, 0x007b04f9, 0x020a02f4, 0x01b3e8ab, 0x03e33fc9, 0x0165aab5, 0x016b7e53, 0x01600c06, 0x02599da5, 0x00164ce4}}}, + {X: Field{[10]uint32{0x03d68055, 0x03b10e32, 0x021f19be, 0x02c24c96, 0x024ae57f, 0x02db9aea, 0x00b781d8, 0x02aebdbf, 0x012d65b3, 0x001bda10}}, Y: Field{[10]uint32{0x038d3bcc, 0x00c550cb, 0x02f08ec0, 0x00cfbd26, 0x0127dc14, 0x0086aed7, 0x03310420, 0x01c6f002, 0x019d4061, 0x002213f5}}}, + {X: Field{[10]uint32{0x036e4366, 0x0240b5b2, 0x00a79572, 0x026bd82f, 0x03980f1f, 0x014bc1c3, 0x00f0ce2b, 0x03898493, 0x029e6bc5, 0x002451e6}}, Y: Field{[10]uint32{0x002f5288, 0x00d746a7, 0x0364aef9, 0x0090044b, 0x03479325, 0x02c4ef89, 0x036025d4, 0x0110d667, 0x030a22de, 0x0008c13d}}}, + {X: Field{[10]uint32{0x0119bd8a, 0x02306513, 0x03701835, 0x031d29b1, 0x014cceab, 0x005df732, 0x01e7c1e4, 0x021c2230, 0x00df36ac, 0x0022e9ac}}, Y: Field{[10]uint32{0x02ab9ed4, 0x01fe1658, 0x005baad1, 0x006de26a, 0x01989dff, 0x01deb1d5, 0x02abe8a1, 0x00578a48, 0x020ee9d5, 0x003a5adc}}}, + {X: Field{[10]uint32{0x01d567cc, 0x02b2deca, 0x02c9ef4a, 0x01a55393, 0x00f11b8a, 0x00d5453c, 0x0359a8ca, 0x00ff3163, 0x0195871f, 0x002ac548}}, Y: Field{[10]uint32{0x03267fb4, 0x03a80dc3, 0x0019c3c8, 0x0329946d, 0x01965ec1, 0x017e23fc, 0x0099ad17, 0x02f6850a, 0x0148623e, 0x0030776b}}}, + {X: Field{[10]uint32{0x011600c5, 0x00b39f55, 0x00756e55, 0x011b5357, 0x026ca45c, 0x0066b708, 0x00e6448e, 0x00af4070, 0x03485eb9, 0x001fac8f}}, Y: Field{[10]uint32{0x03c57ac5, 0x0309ec69, 0x03328b3d, 0x025ea161, 0x01a300ef, 0x00f8c315, 0x033de076, 0x02e4e41e, 0x03124278, 0x00254fa6}}}, + {X: Field{[10]uint32{0x0221ee17, 0x00924153, 0x01f0a2f6, 0x02dc3bac, 0x01e0212f, 0x01624124, 0x0120a922, 0x01c0371d, 0x002ba4b2, 0x002c8fd3}}, Y: Field{[10]uint32{0x03598530, 0x02b83762, 0x03811457, 0x01f98d27, 0x028a2c28, 0x0040e1b0, 0x007d5a5c, 0x02cebcb3, 0x03729e95, 0x0028e2d9}}}, + {X: Field{[10]uint32{0x0369c2a4, 0x002addc9, 0x024a90a1, 0x00badd50, 0x0067a6c1, 0x01b3eb59, 0x001a02b9, 0x0156da8b, 0x0323387e, 0x002174b9}}, Y: Field{[10]uint32{0x00e4d303, 0x01145432, 0x031d0db8, 0x033c8684, 0x00ded380, 0x0352050d, 0x03077fb7, 0x0262bc06, 0x01ac2238, 0x001c9eaf}}}, + {X: Field{[10]uint32{0x0309273d, 0x02369b26, 0x014be9fd, 0x0006229e, 0x0254ae69, 0x019a7d9a, 0x0383d59e, 0x02933104, 0x015e08db, 0x0009f05c}}, Y: Field{[10]uint32{0x01b1a266, 0x0357352d, 0x03f9d998, 0x03173cae, 0x03e16e22, 0x039fcc3c, 0x017d8841, 0x01b288d4, 0x0254306e, 0x0009d9f2}}}, + {X: Field{[10]uint32{0x015eed89, 0x0173e2c2, 0x0350f446, 0x01090200, 0x0342cf40, 0x03e169aa, 0x00c4fb56, 0x017a3a78, 0x00d37f9a, 0x0039c2e3}}, Y: Field{[10]uint32{0x030cb31a, 0x012c3f9a, 0x014fe5ec, 0x0018c661, 0x01faacdf, 0x01d4232b, 0x034e93c0, 0x02346e5c, 0x00589478, 0x000b8f63}}}, + {X: Field{[10]uint32{0x01e956b9, 0x00804f37, 0x0365ee2c, 0x0187439f, 0x0293932c, 0x00fc1dab, 0x0081a39f, 0x020e5a63, 0x00552405, 0x00388f75}}, Y: Field{[10]uint32{0x00cf77c9, 0x036da2de, 0x0315b1dc, 0x01e72d4c, 0x0052b57e, 0x022a82d9, 0x01cef85a, 0x022ae2fd, 0x03d000cd, 0x001b14f2}}}, + {X: Field{[10]uint32{0x01919c9f, 0x001ce653, 0x003b7d7a, 0x00c8431a, 0x039aaf08, 0x01d9df2e, 0x0209f2c4, 0x02604c46, 0x0381ccc4, 0x0017a48f}}, Y: Field{[10]uint32{0x00306873, 0x02e5fd0e, 0x019f7738, 0x01f3ed45, 0x02705966, 0x03dc153f, 0x00e64a8a, 0x02b41bf8, 0x0112e64c, 0x0018135c}}}, + {X: Field{[10]uint32{0x00142507, 0x00deaddc, 0x006a5600, 0x010d8cca, 0x031380e5, 0x004ff79a, 0x02b71d71, 0x0289e380, 0x02531a9f, 0x0008f67c}}, Y: Field{[10]uint32{0x0244a9ac, 0x00cdcaff, 0x0256442d, 0x00053da5, 0x030a9fd2, 0x02d3a178, 0x02f49f6b, 0x0184669b, 0x0247b6eb, 0x00157720}}}, + {X: Field{[10]uint32{0x033b8f24, 0x03d76275, 0x0318a050, 0x03bc4b1c, 0x02886c79, 0x03bdb494, 0x01bb2815, 0x0147bc57, 0x0095ad25, 0x003bac8c}}, Y: Field{[10]uint32{0x01ba1ddb, 0x026166c4, 0x00eac67d, 0x020a74e1, 0x0056a80f, 0x039f3ee4, 0x00c38963, 0x0033a3ac, 0x0394b981, 0x003469c6}}}, + {X: Field{[10]uint32{0x00b7c21b, 0x009a0ad5, 0x023c0e7a, 0x00db9087, 0x03899a84, 0x03bfbaa6, 0x03eee536, 0x03df8952, 0x027b57bd, 0x001929b7}}, Y: Field{[10]uint32{0x03b4755b, 0x00325bc9, 0x01537cf4, 0x02438fc3, 0x03181ad1, 0x0240bf1b, 0x0002e2d2, 0x013f2831, 0x036e2e34, 0x001909e4}}}, + {X: Field{[10]uint32{0x00270073, 0x03c0b0b3, 0x0046d779, 0x0114f3b2, 0x008207fd, 0x0079c02e, 0x01aad5e5, 0x02bcfc70, 0x02ced76d, 0x0027919d}}, Y: Field{[10]uint32{0x03dc9e42, 0x01d3d2f2, 0x00c38d9d, 0x0333ad16, 0x036ffc4a, 0x0362a112, 0x02550195, 0x0042b411, 0x03811d76, 0x0015a171}}}, + {X: Field{[10]uint32{0x01645473, 0x012cd663, 0x003e5d13, 0x00d5bb21, 0x031d83c6, 0x0110a31e, 0x020ee231, 0x01ae85db, 0x02288061, 0x00257b84}}, Y: Field{[10]uint32{0x03bf4054, 0x00b8a7a8, 0x023a37d1, 0x004c31bb, 0x0149a60d, 0x02c9531c, 0x00812789, 0x01301d60, 0x00644191, 0x001ef8d3}}}, + {X: Field{[10]uint32{0x006516ad, 0x039300ff, 0x00da994f, 0x02683166, 0x03d0b108, 0x0114f2f7, 0x01df5066, 0x02068be4, 0x02efd920, 0x00394fff}}, Y: Field{[10]uint32{0x00c59c2f, 0x00762479, 0x01929ecc, 0x019eb01c, 0x035dcd1b, 0x00591863, 0x0270b285, 0x00340a8b, 0x02c14a60, 0x001583c0}}}, + {X: Field{[10]uint32{0x022a7b68, 0x0330fa81, 0x03a83faf, 0x00418ebe, 0x0090d4eb, 0x028f665d, 0x014f1adf, 0x01223168, 0x03447c75, 0x00270cc9}}, Y: Field{[10]uint32{0x01791c63, 0x026dbb86, 0x02b8ad68, 0x023d5643, 0x00cacfb7, 0x01343315, 0x00ff7d22, 0x03f0ed34, 0x01fb09a7, 0x002731d6}}}, + {X: Field{[10]uint32{0x033d3c45, 0x00e50c25, 0x0058e4ea, 0x01fa078f, 0x02f1d103, 0x022dd050, 0x02b22b0c, 0x0057fddf, 0x01002f43, 0x003a09b5}}, Y: Field{[10]uint32{0x008b65de, 0x0346666f, 0x010455d8, 0x0380ab9d, 0x00e8ab16, 0x031f54e9, 0x039316df, 0x01c7d0ea, 0x025882f9, 0x000e919b}}}, + {X: Field{[10]uint32{0x015e13c7, 0x01ece204, 0x03512d38, 0x01ecff59, 0x00dd38a8, 0x03a6c5af, 0x00f196c6, 0x02d71237, 0x030eaf93, 0x0033b537}}, Y: Field{[10]uint32{0x028b74cc, 0x0118b1b5, 0x0197e910, 0x01c73b75, 0x018c7542, 0x02734478, 0x032c9309, 0x02772ad3, 0x023bdd14, 0x003f8229}}}, + {X: Field{[10]uint32{0x037eb33d, 0x031505b6, 0x00b27ee8, 0x01b78086, 0x038065e3, 0x03ce3d53, 0x0220182d, 0x01437cac, 0x012788ea, 0x002c15bb}}, Y: Field{[10]uint32{0x02cf6409, 0x02a0f6f6, 0x00a6b0a1, 0x027ff0c0, 0x018d514d, 0x023a687a, 0x0243aa82, 0x015fe7af, 0x0375cef4, 0x0025cce0}}}, + {X: Field{[10]uint32{0x037830df, 0x03b8a216, 0x011561c9, 0x03010187, 0x03eba030, 0x00d07da8, 0x0260b667, 0x03e529ff, 0x007402fe, 0x0000d77b}}, Y: Field{[10]uint32{0x009b933e, 0x007c161e, 0x0045caba, 0x01b9363c, 0x013eb8be, 0x02dba488, 0x0302fe6e, 0x0043f79f, 0x012139c8, 0x00009664}}}, + {X: Field{[10]uint32{0x024e020b, 0x02b77ecc, 0x02f1f081, 0x025cdf16, 0x03d7981e, 0x010abd13, 0x0215cb99, 0x0084ff4b, 0x00c87733, 0x0000fc8f}}, Y: Field{[10]uint32{0x016e8f83, 0x03f0145d, 0x0065ac8a, 0x0184ed7e, 0x007ffc0c, 0x0337b040, 0x0392455d, 0x03378d38, 0x00c0d43c, 0x00093a33}}}, + {X: Field{[10]uint32{0x03babbdb, 0x014dfbca, 0x01bc1e06, 0x03322f3a, 0x03c8471d, 0x02e8361b, 0x02cfa43d, 0x0173ab5f, 0x0076c080, 0x0026ea5b}}, Y: Field{[10]uint32{0x0143def3, 0x00ef0dfe, 0x023ae0e9, 0x008181fb, 0x01622d98, 0x03d3c1ec, 0x02f8e3a8, 0x038136f8, 0x00331c2a, 0x003068f1}}}, + {X: Field{[10]uint32{0x016a3815, 0x0221f5f4, 0x02ac5c2e, 0x01058438, 0x021d414f, 0x037b3273, 0x01103965, 0x014e5635, 0x039a3147, 0x0020f051}}, Y: Field{[10]uint32{0x009b5b7a, 0x0215d00a, 0x0292c7f0, 0x01c341f0, 0x02c123d4, 0x027ffeee, 0x0339bbff, 0x03351b97, 0x00181354, 0x00213534}}}, + {X: Field{[10]uint32{0x03e0a32d, 0x017af1fb, 0x01ab1fcb, 0x0035ecd2, 0x00a8d701, 0x00a15f6e, 0x026714a0, 0x007621db, 0x027a2db1, 0x002eb3d8}}, Y: Field{[10]uint32{0x00c83129, 0x02b8c0fa, 0x02f5ed57, 0x021aeadf, 0x0214b3e5, 0x01ab3882, 0x03777b73, 0x011239a2, 0x000da44c, 0x0028a1f7}}}, + {X: Field{[10]uint32{0x0376ebd7, 0x03173fc9, 0x024d4619, 0x03475934, 0x034ca888, 0x00051c59, 0x03fd2d3a, 0x027de442, 0x00553012, 0x001cc18f}}, Y: Field{[10]uint32{0x00159489, 0x0312ec8b, 0x004ea368, 0x01b34a16, 0x019d7190, 0x005261b1, 0x02b0362b, 0x03e320be, 0x01d944cc, 0x00355e50}}}, + {X: Field{[10]uint32{0x035d6637, 0x022802ce, 0x020114d0, 0x004b5116, 0x02a3f51a, 0x0376d00f, 0x03a4ce34, 0x02b4544a, 0x0232df55, 0x00013ba1}}, Y: Field{[10]uint32{0x02b14820, 0x039b1164, 0x03d8188a, 0x0006585b, 0x01916879, 0x025c8f46, 0x03f01a31, 0x009d68e7, 0x0199dc30, 0x0030a7dc}}}, + {X: Field{[10]uint32{0x03e7ef28, 0x00abf9f5, 0x0386ccd4, 0x03bed59d, 0x028f5345, 0x008fbeb2, 0x0318a16a, 0x03507e62, 0x026d68bb, 0x003f11b9}}, Y: Field{[10]uint32{0x0243c18a, 0x0009c569, 0x029d50d7, 0x00c7b23d, 0x01a02382, 0x02930a2e, 0x01af38a4, 0x0212754f, 0x02dfabf8, 0x0022d0a8}}}, + {X: Field{[10]uint32{0x03a7dc13, 0x0379862c, 0x039638a9, 0x0262bbf1, 0x013f9b6b, 0x028e41ec, 0x02ece5e2, 0x01e5e01f, 0x01b0158d, 0x0029c6b4}}, Y: Field{[10]uint32{0x0308bf90, 0x0179a87b, 0x026ea437, 0x0113a029, 0x02ccfc5c, 0x006e6df4, 0x038a8644, 0x03119394, 0x006da956, 0x001bf5fa}}}, + {X: Field{[10]uint32{0x01860a3a, 0x00ddda3c, 0x0028d0ed, 0x014f5476, 0x0161a7c5, 0x0031abd6, 0x03b99576, 0x0299ff5e, 0x01f36075, 0x00180861}}, Y: Field{[10]uint32{0x0110b2e7, 0x030caf53, 0x02802165, 0x0353754b, 0x0102265c, 0x01ea274e, 0x03a027ce, 0x020d7991, 0x02db706b, 0x002434c4}}}, + {X: Field{[10]uint32{0x007a77ca, 0x01edf7d8, 0x006b598e, 0x01fe50dc, 0x0336b443, 0x01f718b0, 0x019976d3, 0x024646e7, 0x02837672, 0x0036c3f2}}, Y: Field{[10]uint32{0x02efc29d, 0x01210760, 0x03dd9c4f, 0x01a26541, 0x0278699a, 0x028600be, 0x009f0b32, 0x01faff83, 0x016e8eba, 0x0008f7b7}}}, + {X: Field{[10]uint32{0x00a54939, 0x023c95e9, 0x01884761, 0x03b00ce7, 0x02237d0a, 0x03fe37a0, 0x0159909f, 0x013c24a8, 0x0061598d, 0x001a466e}}, Y: Field{[10]uint32{0x0334b90c, 0x0072f6db, 0x03ff2f3e, 0x0050e4b0, 0x0127a1a2, 0x02693864, 0x01c07845, 0x00ea8ee1, 0x02fe1fa5, 0x002ae7e0}}}, + {X: Field{[10]uint32{0x0074bd59, 0x03becba0, 0x01e39299, 0x0063df8e, 0x02877ec1, 0x0354e803, 0x00f0a5d5, 0x006e9f0f, 0x02e9f1f5, 0x003d29f4}}, Y: Field{[10]uint32{0x005bd257, 0x01f8640b, 0x01be0ef1, 0x027665d0, 0x030c9bea, 0x02f39e60, 0x00e6380c, 0x02b38b69, 0x01006aa6, 0x0027c142}}}, + {X: Field{[10]uint32{0x01453da3, 0x02cb8d73, 0x03656366, 0x01f95065, 0x02392731, 0x03ffef65, 0x011ae232, 0x03784c42, 0x0210d4f1, 0x0022975c}}, Y: Field{[10]uint32{0x00580a54, 0x0345912c, 0x02a98abc, 0x001394ca, 0x034cae10, 0x024c1ab6, 0x0158a05a, 0x03683a99, 0x021b5b71, 0x0026bfe2}}}, + {X: Field{[10]uint32{0x00e86f16, 0x020063ae, 0x039f3f93, 0x0308abf5, 0x022c9195, 0x02812e1e, 0x020406be, 0x01c566c2, 0x03dce40d, 0x00267ac8}}, Y: Field{[10]uint32{0x00ecff66, 0x011f5059, 0x01b3782b, 0x037a7a03, 0x03b1f17f, 0x01e7f2af, 0x036cddaa, 0x03f7b1ff, 0x0138a66e, 0x000bbc86}}}, + {X: Field{[10]uint32{0x00d37472, 0x02e996ad, 0x02904a99, 0x0391eb2f, 0x01611ad0, 0x02aef9e0, 0x03f0d0b9, 0x011062b1, 0x02841a87, 0x000efc5b}}, Y: Field{[10]uint32{0x03e714ad, 0x00d44868, 0x003551fb, 0x02ca2bbd, 0x007d1138, 0x009dd0df, 0x008c0f19, 0x0232cbf2, 0x01f4e194, 0x00074f2e}}}, + {X: Field{[10]uint32{0x03f01f3e, 0x027f93f9, 0x0095af45, 0x03395126, 0x02561811, 0x018e22a1, 0x007c1333, 0x00e5382e, 0x03ff19eb, 0x0028fbe0}}, Y: Field{[10]uint32{0x0178cbab, 0x0344e920, 0x024a1045, 0x03374cd6, 0x019d687c, 0x00474238, 0x007ddb47, 0x02b32f37, 0x01398bdc, 0x00065577}}}, + {X: Field{[10]uint32{0x00b1af90, 0x03bc5f9c, 0x02552063, 0x0047d6b7, 0x005a344d, 0x008f75ad, 0x01c024c2, 0x013a04fb, 0x0351da9b, 0x0009a05b}}, Y: Field{[10]uint32{0x014aabd6, 0x001e980a, 0x03d30220, 0x01feef33, 0x0365611b, 0x01813a25, 0x02809676, 0x019e8d5c, 0x021d1d6b, 0x001189e3}}}, + {X: Field{[10]uint32{0x03dea823, 0x03a1112b, 0x0125a909, 0x0325239d, 0x031d47dc, 0x01e502c3, 0x03b14f69, 0x03c523b2, 0x03c0d640, 0x00178594}}, Y: Field{[10]uint32{0x00b092c7, 0x017333d3, 0x01c86cd4, 0x0325bfbb, 0x008e499c, 0x00af714a, 0x03aef229, 0x020d43b3, 0x01ede7cb, 0x0026e2e0}}}, + {X: Field{[10]uint32{0x0028de9e, 0x03a76f7a, 0x008f247f, 0x01beb770, 0x02b7725d, 0x0096c4ad, 0x0348c231, 0x00da5158, 0x02450b0d, 0x0006f623}}, Y: Field{[10]uint32{0x00a95db0, 0x036e8bee, 0x00fe2098, 0x01a1a602, 0x009f6faf, 0x00750059, 0x03dae7ca, 0x0377695d, 0x01e32d8b, 0x00060a4e}}}, + {X: Field{[10]uint32{0x01b73c02, 0x004b17f6, 0x01fbd31b, 0x005b5080, 0x02b80ab7, 0x03aede00, 0x01e754fb, 0x013900c5, 0x02063adc, 0x0012c0ff}}, Y: Field{[10]uint32{0x0080fb06, 0x0233d507, 0x0030e73e, 0x00c7a929, 0x03a5623c, 0x000fe638, 0x00ed537e, 0x03946403, 0x00a8e2c5, 0x002a1934}}}, + {X: Field{[10]uint32{0x01d35f61, 0x013c7a11, 0x0268c588, 0x003f4217, 0x01214686, 0x0311bced, 0x01927f13, 0x023ccc7b, 0x01150781, 0x00038829}}, Y: Field{[10]uint32{0x02bcf328, 0x021d79a5, 0x00db0484, 0x02828f48, 0x02a924e9, 0x03f523d9, 0x02466c43, 0x035b1627, 0x00021a79, 0x00287048}}}, + {X: Field{[10]uint32{0x001e37be, 0x024971fe, 0x03a732db, 0x0287200a, 0x034aaece, 0x0221787a, 0x0224d874, 0x0387362f, 0x024e74a1, 0x0038f446}}, Y: Field{[10]uint32{0x021645f5, 0x00a8eda1, 0x03c7f73d, 0x0271ed12, 0x03022b0a, 0x0220c752, 0x0006787b, 0x03c07d8e, 0x001e0a1e, 0x0023c7b0}}}, + {X: Field{[10]uint32{0x0237f6e5, 0x00a8204f, 0x00617d1e, 0x00c83d00, 0x03da71fa, 0x01ca6c58, 0x0292b584, 0x0036fba3, 0x021557fe, 0x002288cc}}, Y: Field{[10]uint32{0x02cce950, 0x022415ab, 0x01f5e938, 0x00a5870d, 0x03267dbd, 0x035de632, 0x021ed74b, 0x01d416ba, 0x031abb8c, 0x002bd791}}}, + {X: Field{[10]uint32{0x0051d20d, 0x0269db5a, 0x01cbe99f, 0x03ea65a1, 0x02997e8d, 0x01c05735, 0x01070e00, 0x011a0c54, 0x022cb43f, 0x000eef02}}, Y: Field{[10]uint32{0x00b4f97d, 0x038d46df, 0x00278bb0, 0x010e5bea, 0x01fd1408, 0x01820c44, 0x0168e88b, 0x013102e6, 0x038ea5f1, 0x0026877e}}}, + {X: Field{[10]uint32{0x011d1deb, 0x0384cf24, 0x01184811, 0x00e0e50c, 0x0165380f, 0x0101ed2e, 0x0059dac9, 0x020eafa3, 0x0381082d, 0x00230135}}, Y: Field{[10]uint32{0x000a3db4, 0x014982d3, 0x00eab4a6, 0x0261c663, 0x00c0a3e0, 0x0200e54d, 0x03213408, 0x008c5bf3, 0x0093fdb2, 0x00135d39}}}, + {X: Field{[10]uint32{0x02a0291f, 0x002935b5, 0x028c8577, 0x0057279f, 0x001ed9f9, 0x00b80d91, 0x00aa7c46, 0x00b37b7c, 0x010e7231, 0x00119f53}}, Y: Field{[10]uint32{0x00a1ce32, 0x0376875c, 0x001fc0d4, 0x010060ea, 0x02f117e2, 0x00475596, 0x00624ddf, 0x025528c3, 0x00a9d7c2, 0x0020f6d0}}}, + {X: Field{[10]uint32{0x01a3dc8c, 0x03d26311, 0x00195d55, 0x00b7866b, 0x02ce73ae, 0x01072f54, 0x00601869, 0x028406ac, 0x00cd8e55, 0x002d8bd8}}, Y: Field{[10]uint32{0x0314ef41, 0x0330c06c, 0x03cef428, 0x02e3efdb, 0x034a5108, 0x01633482, 0x030ed091, 0x00958bba, 0x00b07c6d, 0x00167692}}}, + {X: Field{[10]uint32{0x039e681f, 0x03746d72, 0x02183379, 0x03301924, 0x01166e88, 0x0151bbfa, 0x036d7f19, 0x03b9877c, 0x0210f98a, 0x001ad758}}, Y: Field{[10]uint32{0x018a0d76, 0x011b9bda, 0x028e77f2, 0x01eb11c8, 0x027c6de8, 0x00c01170, 0x008afca8, 0x0229adcb, 0x034859c8, 0x0036fec5}}}, + {X: Field{[10]uint32{0x02300c97, 0x03b34288, 0x00286049, 0x036d234f, 0x00548768, 0x01625df3, 0x012cc9ef, 0x0210ada3, 0x0104e8c7, 0x00221d13}}, Y: Field{[10]uint32{0x03b9c38c, 0x03d628a3, 0x01bc0393, 0x024e4421, 0x02149d29, 0x031f242d, 0x00b0e425, 0x03147968, 0x02a51ea3, 0x002115ce}}}, + {X: Field{[10]uint32{0x032e37c8, 0x02038cb0, 0x03d4bada, 0x0296f934, 0x00d0218b, 0x005ab64e, 0x03065712, 0x02b16066, 0x002440f2, 0x003f7cb2}}, Y: Field{[10]uint32{0x01538f74, 0x01b56a97, 0x028b5587, 0x0069d019, 0x01917203, 0x02180b7f, 0x00c6f205, 0x007fef92, 0x00b59e96, 0x0030aaf1}}}, + {X: Field{[10]uint32{0x03777559, 0x012255fb, 0x028a9366, 0x03826d33, 0x0115178c, 0x011d5501, 0x02273bd2, 0x0220ecc8, 0x03641f5a, 0x00134bf7}}, Y: Field{[10]uint32{0x02a41b11, 0x002ce152, 0x029fabed, 0x00070d12, 0x02b2837f, 0x02cc85eb, 0x021b89b9, 0x03cc7190, 0x0101210b, 0x0008ae87}}}, + {X: Field{[10]uint32{0x00ddc633, 0x0185648d, 0x022699c4, 0x0330abf2, 0x035a54dc, 0x017192a3, 0x02f3faea, 0x02ff7e06, 0x00a1e743, 0x003b1f2f}}, Y: Field{[10]uint32{0x02ab0917, 0x01e05b93, 0x02e295f5, 0x039263f3, 0x03dc5263, 0x01684041, 0x0128c05e, 0x028141ed, 0x01a9ea76, 0x0027c64f}}}, + {X: Field{[10]uint32{0x00b44fdf, 0x02aef011, 0x01943c7f, 0x037e74dc, 0x00da9cd6, 0x00f2e013, 0x001e7790, 0x0262e2e0, 0x01137719, 0x003fcbe8}}, Y: Field{[10]uint32{0x01f6093c, 0x011af2cb, 0x02c54237, 0x009008b2, 0x022aec68, 0x02335bc2, 0x01d966db, 0x01d9c31e, 0x03f21ac5, 0x00258849}}}, + {X: Field{[10]uint32{0x00a57580, 0x0179de82, 0x035ee647, 0x0324a7c5, 0x034fd418, 0x010db5ab, 0x02c21bec, 0x000b48d3, 0x006b2dfb, 0x001b46d0}}, Y: Field{[10]uint32{0x00e895eb, 0x03a88f6f, 0x02f07b2d, 0x0394e2e7, 0x02f157ef, 0x00f9ed80, 0x00693d6d, 0x0238be3c, 0x02689dba, 0x002e2515}}}, + {X: Field{[10]uint32{0x004d7963, 0x03bd4e59, 0x01df587b, 0x03ddd308, 0x020317bf, 0x00371ae5, 0x00767270, 0x00033919, 0x01fb449e, 0x0012aee7}}, Y: Field{[10]uint32{0x006e6407, 0x03162f7e, 0x018e49c2, 0x02a1d517, 0x004d6dbb, 0x026bc726, 0x01807868, 0x031a6cab, 0x02b7c016, 0x001821bc}}}, + {X: Field{[10]uint32{0x010fcee6, 0x036d8e99, 0x022361f8, 0x0293f43b, 0x022fb3be, 0x016128f2, 0x00b0b895, 0x010258dd, 0x01cc634a, 0x0036c314}}, Y: Field{[10]uint32{0x01b6e6a0, 0x03f8cf31, 0x02486367, 0x01fe160d, 0x015d2825, 0x01ec3993, 0x0116fd39, 0x02b8612f, 0x012baea1, 0x001fb02f}}}, + {X: Field{[10]uint32{0x03fdb287, 0x01348b0d, 0x00e74495, 0x020886aa, 0x006996a3, 0x011b79c1, 0x01e02ed6, 0x01246699, 0x01bcd066, 0x002b9bdb}}, Y: Field{[10]uint32{0x03f2f201, 0x03eda870, 0x03d1bb76, 0x03d7d7fb, 0x02c5bbb2, 0x027e440b, 0x01313791, 0x01d01046, 0x02aef8ae, 0x002af9c3}}}, + {X: Field{[10]uint32{0x035f6227, 0x034eb234, 0x01fda63d, 0x018beb14, 0x00f4079a, 0x01ff25dc, 0x00771a91, 0x007cc2f4, 0x0397cb32, 0x002ba8fa}}, Y: Field{[10]uint32{0x02bf39b6, 0x006b919a, 0x0352506f, 0x0285105a, 0x03878145, 0x00a1f7f7, 0x0133704a, 0x005717a4, 0x00163985, 0x002da94d}}}, + {X: Field{[10]uint32{0x012233be, 0x02f28721, 0x01ded051, 0x0018fa24, 0x0039355c, 0x01b04ebe, 0x037234ef, 0x01437a07, 0x00cf711d, 0x0024327e}}, Y: Field{[10]uint32{0x0021bff5, 0x0388720d, 0x0151ed7f, 0x00baa805, 0x0317d2c3, 0x004d61e0, 0x013d4528, 0x025927cb, 0x037818f1, 0x00023655}}}, + {X: Field{[10]uint32{0x02d976e0, 0x017b6321, 0x020e2149, 0x02ae4809, 0x02fd954a, 0x012d23bf, 0x028dcde3, 0x000d1154, 0x00e5ab1d, 0x0016b5fb}}, Y: Field{[10]uint32{0x038569b0, 0x0052c0fd, 0x003d8700, 0x0112c5e1, 0x0062ac94, 0x0311adb8, 0x03274e93, 0x018eaefb, 0x023b2c3c, 0x000b7c85}}}, + {X: Field{[10]uint32{0x03d28d9a, 0x0113a38e, 0x0031cb78, 0x01f5622a, 0x001d80ae, 0x00eac32b, 0x026d3ee1, 0x00bbc05b, 0x022c8e94, 0x002dae8b}}, Y: Field{[10]uint32{0x03ef7fb4, 0x01776dc6, 0x0101d085, 0x014f402d, 0x00a2ebf4, 0x03490458, 0x01b6b067, 0x037f7d40, 0x0235f923, 0x00104602}}}, + {X: Field{[10]uint32{0x03f5f37d, 0x01319d1f, 0x01cc413a, 0x02a71a02, 0x00799555, 0x03211627, 0x03dd450b, 0x01b1f7ea, 0x03c9bba2, 0x001f9026}}, Y: Field{[10]uint32{0x01c9e6b1, 0x00f7b9de, 0x0030ce42, 0x00d067f8, 0x036066b0, 0x020763f7, 0x01c42604, 0x02bf8b90, 0x01619cc5, 0x00031462}}}, + {X: Field{[10]uint32{0x024f602c, 0x02145bb7, 0x024e0300, 0x01aa942d, 0x022c7263, 0x031f1308, 0x01010606, 0x03cbb8a3, 0x011470b2, 0x002521b3}}, Y: Field{[10]uint32{0x02b467af, 0x03edd2f7, 0x012ceaac, 0x028d27d1, 0x02c062e9, 0x01cc8d9f, 0x0131785f, 0x0001bf7e, 0x038cfc5b, 0x00221b32}}}, + {X: Field{[10]uint32{0x01338d2a, 0x027b62c8, 0x0183b1af, 0x0271520b, 0x0294b1ee, 0x0116e817, 0x01af6d87, 0x01c81478, 0x017bc8b0, 0x0039f047}}, Y: Field{[10]uint32{0x035c8e50, 0x0214b7b5, 0x00f79c74, 0x00f5e5ff, 0x016ad468, 0x024bcd6a, 0x01062aa1, 0x02ac7bf2, 0x0293828c, 0x003f7134}}}, + {X: Field{[10]uint32{0x03d50bcd, 0x00003c24, 0x02217c98, 0x01763a00, 0x0119b1a8, 0x01db7b4d, 0x01b67b27, 0x0172c06c, 0x027bff31, 0x00037f98}}, Y: Field{[10]uint32{0x01f9e773, 0x00aa3b95, 0x03c285f3, 0x0346e57b, 0x03ea0f69, 0x0275a39a, 0x01d2480c, 0x0021edbf, 0x01ebbb65, 0x00264f15}}}, + {X: Field{[10]uint32{0x0046f516, 0x03ab1969, 0x01dde189, 0x01b55210, 0x03eb31c2, 0x0183c0bc, 0x007c9818, 0x028b2d7f, 0x0017fd00, 0x00283c33}}, Y: Field{[10]uint32{0x033b8969, 0x030a5792, 0x03a74ff5, 0x03aaf4c3, 0x0214bbe4, 0x00fb74df, 0x01077a7d, 0x0228efc4, 0x004c31d5, 0x002feba2}}}, + {X: Field{[10]uint32{0x03e37338, 0x02dcaea8, 0x01dd9dd7, 0x014e47f8, 0x03d37e7f, 0x0251ad4a, 0x02ef926c, 0x00a1bb5b, 0x02bcbc14, 0x003076ed}}, Y: Field{[10]uint32{0x02df7bf0, 0x00f9a984, 0x01bd0e79, 0x00d44e78, 0x03aa5e27, 0x028ea235, 0x036fdc81, 0x01a20bd2, 0x0187bd33, 0x0019ec0b}}}, + {X: Field{[10]uint32{0x034bebb2, 0x01416f2e, 0x03eebe82, 0x004440d0, 0x03070255, 0x03bb7d7b, 0x02cb1f06, 0x02571324, 0x025bc7d4, 0x00082e41}}, Y: Field{[10]uint32{0x00756835, 0x01449184, 0x00fbd55d, 0x029c12c9, 0x014fec71, 0x018090b6, 0x021a4f90, 0x00764af4, 0x03165c23, 0x0029a61c}}}, + {X: Field{[10]uint32{0x01a69190, 0x0152043b, 0x03f2e03c, 0x01993e36, 0x0255ab9a, 0x023f21e1, 0x029544d3, 0x0230e376, 0x01d00c4d, 0x001efb7f}}, Y: Field{[10]uint32{0x00af77a1, 0x01c569be, 0x00591690, 0x0394f275, 0x01365556, 0x01cbfb81, 0x02d00491, 0x014b79ba, 0x00b00d4f, 0x0026653c}}}, + {X: Field{[10]uint32{0x035918e0, 0x034e179a, 0x01368df4, 0x03481067, 0x035adcad, 0x0083a5f2, 0x023815b7, 0x020fdab1, 0x02af9979, 0x00099d8b}}, Y: Field{[10]uint32{0x0227e6be, 0x00862356, 0x02549279, 0x0359daab, 0x0125f0c0, 0x0395883f, 0x00be2e9b, 0x0136f009, 0x008ce11b, 0x00207d51}}}, + {X: Field{[10]uint32{0x0387bb79, 0x013d337c, 0x013d9a94, 0x01d64b43, 0x03ea14f1, 0x036a1b84, 0x0354ff5d, 0x03854b0c, 0x02e7ee18, 0x001c5232}}, Y: Field{[10]uint32{0x0310b18d, 0x032d3788, 0x0336593d, 0x002fbba0, 0x02ffd42a, 0x02b1af03, 0x0065efed, 0x01ba4105, 0x01faf6f8, 0x0002f6cd}}}, + {X: Field{[10]uint32{0x03bdbc90, 0x023385e1, 0x02723503, 0x001964f0, 0x01bb4d8f, 0x015a116d, 0x01ae00b1, 0x00b0ce9a, 0x01d933ae, 0x0009f917}}, Y: Field{[10]uint32{0x01801ac9, 0x02aff594, 0x02db1f7c, 0x0281643c, 0x017dfe36, 0x009c68ac, 0x019c75c9, 0x01e68fe3, 0x033fa935, 0x0028af38}}}, + {X: Field{[10]uint32{0x03d6b7d7, 0x02fcacb5, 0x02a98fa2, 0x0047fb4a, 0x00d0539c, 0x0207980f, 0x02d79c7d, 0x02ba30a8, 0x02155b28, 0x002bc31c}}, Y: Field{[10]uint32{0x03ac41f9, 0x00b1a6a9, 0x0085640d, 0x038793cb, 0x023b5b26, 0x0073eb0f, 0x0380bfc7, 0x00270002, 0x03cfa251, 0x002b9af7}}}, + {X: Field{[10]uint32{0x03cbabf4, 0x03f80a98, 0x02bec7ec, 0x00646b32, 0x02de0f5a, 0x007a38dc, 0x00e609b2, 0x034d3cc5, 0x0008d4f8, 0x001ed8f1}}, Y: Field{[10]uint32{0x00f16327, 0x02ca6fa5, 0x03a7ce0d, 0x03402f32, 0x02236925, 0x0222166d, 0x02b6f65e, 0x025af633, 0x009a78fa, 0x002a8200}}}, + {X: Field{[10]uint32{0x01c6890c, 0x0163e6e1, 0x03f9394d, 0x000506bb, 0x024f4b48, 0x03d3cc8c, 0x03cffb68, 0x03a22f58, 0x005314f3, 0x002adda2}}, Y: Field{[10]uint32{0x037f192c, 0x0280dbf3, 0x019e05d3, 0x010455f1, 0x01c9ff98, 0x01ffc520, 0x033610ed, 0x01af0430, 0x0033d6d9, 0x00069c72}}}, + {X: Field{[10]uint32{0x023bd32e, 0x038d4727, 0x025a9953, 0x03692c97, 0x01ccd308, 0x0303b616, 0x0375487c, 0x01444be0, 0x03f07ad7, 0x0019050d}}, Y: Field{[10]uint32{0x01a9b131, 0x00e8e220, 0x026b0ccc, 0x0142130c, 0x027d2ec9, 0x03c02198, 0x00f1ba83, 0x00d1abd4, 0x03e6b255, 0x000f163d}}}, + {X: Field{[10]uint32{0x03a082cb, 0x029d9259, 0x0180b9b4, 0x0321dce5, 0x0360f7ec, 0x03406ba1, 0x01cceaff, 0x0351e307, 0x012d600e, 0x003d4cbf}}, Y: Field{[10]uint32{0x0285fa96, 0x02f3e844, 0x0145e440, 0x02b5a5f2, 0x03221847, 0x0200f27c, 0x01bb4d6c, 0x01f5fdf3, 0x014c7111, 0x001ce4d4}}}, + {X: Field{[10]uint32{0x031c7631, 0x02f41d42, 0x01c3ee1f, 0x0351d7c3, 0x00db73db, 0x03e20a4e, 0x01e6f608, 0x02ad1362, 0x01592c4b, 0x000cd9e6}}, Y: Field{[10]uint32{0x01694fbc, 0x01c058d2, 0x035aa1fd, 0x018973d9, 0x0217125d, 0x03fd5f37, 0x00782515, 0x0273cdb4, 0x00046fe8, 0x001307e0}}}, + {X: Field{[10]uint32{0x0256c9cb, 0x008681ef, 0x00a5be22, 0x0380ca5c, 0x016f18b7, 0x0232b0a1, 0x02b53962, 0x03295ec1, 0x016d2a34, 0x00386130}}, Y: Field{[10]uint32{0x02c5bf73, 0x01780f78, 0x009c77f8, 0x00d11ad4, 0x03d646cd, 0x0319b7d5, 0x02ab0688, 0x027137c5, 0x017b51ef, 0x001f7ff0}}}, + {X: Field{[10]uint32{0x0015d419, 0x01b22119, 0x0068f0e2, 0x035bbee3, 0x034f6ce6, 0x02883078, 0x00de9909, 0x027556ee, 0x01162fb4, 0x003e2a5f}}, Y: Field{[10]uint32{0x02061146, 0x0130b910, 0x034a7ded, 0x00ea19a1, 0x005f20a8, 0x007cba1b, 0x012e1616, 0x03280652, 0x00534dbf, 0x000f34f3}}}, + {X: Field{[10]uint32{0x02475781, 0x03783a84, 0x0164eb32, 0x001ab5c6, 0x0328cfc4, 0x0234f714, 0x02dd6123, 0x03608751, 0x022f6c6a, 0x0027adaa}}, Y: Field{[10]uint32{0x0045c299, 0x00f8d1db, 0x004afcb3, 0x03a3ef08, 0x0053dfe3, 0x029066ca, 0x024ce341, 0x00b824d9, 0x028379d3, 0x00051406}}}, + {X: Field{[10]uint32{0x0202668a, 0x021e8f0d, 0x036425f8, 0x017f3ae9, 0x017c4031, 0x008ff500, 0x02427403, 0x02255787, 0x026a68e6, 0x003af095}}, Y: Field{[10]uint32{0x00c7ea39, 0x024c7935, 0x0063aa06, 0x03050bbc, 0x01fab3bd, 0x03a7b269, 0x01f9f85a, 0x015b8995, 0x010996ff, 0x0001d7a0}}}, + {X: Field{[10]uint32{0x012bc392, 0x02dfacbd, 0x029fd674, 0x012d01d2, 0x03ab9c5e, 0x02921032, 0x025b29db, 0x033970be, 0x0038a966, 0x00155919}}, Y: Field{[10]uint32{0x001c8d66, 0x01c083e6, 0x0228f0a3, 0x0033a6a3, 0x022987d8, 0x017354b9, 0x003f68a4, 0x012a273f, 0x02867603, 0x000d18c6}}}, + {X: Field{[10]uint32{0x0316575e, 0x02c0cdde, 0x032e7ece, 0x01759ca7, 0x00082eff, 0x01f76453, 0x03257b8c, 0x0207ccc4, 0x0309befb, 0x002e1fe0}}, Y: Field{[10]uint32{0x016ea298, 0x036dff6a, 0x00630dee, 0x030b3157, 0x03eda5e1, 0x0202fb06, 0x03df03fb, 0x0000b5be, 0x003259e4, 0x002fa99a}}}, + {X: Field{[10]uint32{0x00a0a93e, 0x011c77dc, 0x008d7953, 0x0054a24b, 0x0224b6cf, 0x005b90d7, 0x03598b20, 0x0358fab3, 0x0185b440, 0x0011655d}}, Y: Field{[10]uint32{0x00b71427, 0x03aabab1, 0x013a00b3, 0x03f08cd2, 0x03b29739, 0x019419fe, 0x02c366a5, 0x013d3c8e, 0x0260776a, 0x003d32d8}}}, + {X: Field{[10]uint32{0x0248ca87, 0x01eef925, 0x02e11148, 0x0122e583, 0x033fe8d6, 0x03e73015, 0x024c8218, 0x010aec60, 0x024c8d9c, 0x000b243d}}, Y: Field{[10]uint32{0x03c25a8a, 0x006f9074, 0x00ab4da2, 0x01f5ac76, 0x0369bebf, 0x008bf3d5, 0x03000a9f, 0x00f2d827, 0x0157ac64, 0x0020a6f3}}}, + {X: Field{[10]uint32{0x004b5efe, 0x02c15205, 0x037be36d, 0x0048aea7, 0x012e7539, 0x01dcc5ca, 0x006a3fcc, 0x026af655, 0x02c7779c, 0x003acc9e}}, Y: Field{[10]uint32{0x018c9435, 0x00e46414, 0x025a08c4, 0x01948e15, 0x032cbbf3, 0x01b9d200, 0x032c594d, 0x0334e230, 0x00858d2f, 0x00086b0b}}}, + {X: Field{[10]uint32{0x006d007d, 0x0032c74b, 0x00e6adba, 0x00606b8c, 0x00daa354, 0x00df43c2, 0x02b07fdd, 0x03329ea8, 0x03e2272c, 0x000257b1}}, Y: Field{[10]uint32{0x03a12b5f, 0x01e3f14a, 0x00f3375f, 0x01f93dd0, 0x002d589e, 0x0042e224, 0x02ac913c, 0x01814154, 0x02ef59df, 0x001ccde1}}}, + {X: Field{[10]uint32{0x000cbbd1, 0x019f1a7f, 0x015f5fc3, 0x00a4b186, 0x0191104a, 0x03fc5cdc, 0x03c845d7, 0x028203c9, 0x02988b4f, 0x0012de99}}, Y: Field{[10]uint32{0x03a85b8f, 0x011606d8, 0x0207c928, 0x01360904, 0x008e5249, 0x0266ca79, 0x0338fd4d, 0x01584a1e, 0x03d0a360, 0x0022c10e}}}, + {X: Field{[10]uint32{0x0342e6b2, 0x02af4c68, 0x025e747d, 0x024bf194, 0x00a92337, 0x006409f0, 0x02ab28a6, 0x02077cd4, 0x018b6df5, 0x00226cb1}}, Y: Field{[10]uint32{0x03f53a2b, 0x01168435, 0x001f4100, 0x03ae223a, 0x009b053f, 0x000edd2f, 0x025edea2, 0x03996f89, 0x0334d459, 0x000c02c6}}}, + {X: Field{[10]uint32{0x03c43cf1, 0x02a04526, 0x008007ad, 0x009e27c3, 0x031c9263, 0x01d7b121, 0x027ff0db, 0x00a34392, 0x035d9f6a, 0x00104266}}, Y: Field{[10]uint32{0x0262cae5, 0x03056dde, 0x00b26995, 0x02680d65, 0x013e0791, 0x00196234, 0x009253be, 0x024adba5, 0x02962e2b, 0x000a82ae}}}, + {X: Field{[10]uint32{0x03229be4, 0x03f58581, 0x00817af7, 0x02704e27, 0x018825ea, 0x02998d55, 0x03396b29, 0x00230d41, 0x00649ec5, 0x002f2c3f}}, Y: Field{[10]uint32{0x0207d606, 0x011a4cce, 0x03e5c2c7, 0x02e4b5ef, 0x0313664d, 0x0248b991, 0x03a12ae0, 0x03d6adb0, 0x0192cf3b, 0x0005a31e}}}, + {X: Field{[10]uint32{0x018b762e, 0x01c6737b, 0x009a50ec, 0x035bdc0d, 0x029cd3b3, 0x0156a025, 0x0314ca70, 0x015abe78, 0x01585a62, 0x001e8ff2}}, Y: Field{[10]uint32{0x03df1346, 0x011172f4, 0x00f2217d, 0x01e0e44a, 0x00dadecd, 0x01c5e764, 0x0288526b, 0x001c58d4, 0x000c29cd, 0x003fa2ca}}}, + {X: Field{[10]uint32{0x01a8176a, 0x038fc198, 0x02fe1c89, 0x03980341, 0x027583c1, 0x0195b6a6, 0x03229e1e, 0x028d7b83, 0x03e1b968, 0x000ddc24}}, Y: Field{[10]uint32{0x02c601d9, 0x003e2830, 0x02b82e6e, 0x0220082b, 0x006aba8e, 0x02303600, 0x02a4dd0b, 0x03d185f9, 0x020df6c9, 0x0039f021}}}, + {X: Field{[10]uint32{0x02afecd8, 0x018fc512, 0x02a375ba, 0x03496a63, 0x01919b1d, 0x0184c068, 0x0327a933, 0x033333c7, 0x03daf4a5, 0x00317bfc}}, Y: Field{[10]uint32{0x00b97a1c, 0x01259337, 0x01d67f42, 0x027d38fc, 0x010a9412, 0x0088b0bf, 0x008a02c2, 0x020f7063, 0x023426f9, 0x000d3845}}}, + {X: Field{[10]uint32{0x023ffb27, 0x02a732f9, 0x014e984e, 0x03c54bb1, 0x033c0fa6, 0x00da2bf2, 0x0230f728, 0x0034cd10, 0x0119eb56, 0x00003f1e}}, Y: Field{[10]uint32{0x0059a6b3, 0x00a10aa6, 0x03fa9413, 0x033ab6b4, 0x00a04bc4, 0x03929f74, 0x01cb8388, 0x01bfe6f0, 0x0382af76, 0x00071f4d}}}, + {X: Field{[10]uint32{0x021ca5bd, 0x0362c921, 0x001c6287, 0x00890f4e, 0x03b31183, 0x0371bd1b, 0x0034cd6e, 0x01b5c951, 0x03fb4938, 0x0009e0f5}}, Y: Field{[10]uint32{0x03fa5c70, 0x005b8e31, 0x00111a93, 0x01d205c4, 0x01e4c685, 0x023e271e, 0x00450262, 0x01ab038f, 0x02710b80, 0x0028eabc}}}, + {X: Field{[10]uint32{0x018a02f3, 0x012cc3cb, 0x012298ad, 0x01bff4d7, 0x0188f54a, 0x0396efe5, 0x03f89495, 0x038343dd, 0x007868d4, 0x001d01e9}}, Y: Field{[10]uint32{0x03fdec9c, 0x03046d61, 0x001ce24c, 0x0250166b, 0x02debf3d, 0x024cca5f, 0x01b393ea, 0x0232c2a9, 0x016296e1, 0x00049435}}}, + {X: Field{[10]uint32{0x0061a321, 0x0137486a, 0x01df6cc5, 0x0293e118, 0x01c5899f, 0x0055101e, 0x02c108e7, 0x03b369de, 0x00e32940, 0x0030b4b3}}, Y: Field{[10]uint32{0x005a1909, 0x037a16fc, 0x01b729e6, 0x02aba0c3, 0x030a919e, 0x03321516, 0x00b05e3e, 0x0201c64a, 0x01fa40bb, 0x003c2fac}}}, + {X: Field{[10]uint32{0x01e8a56f, 0x03eb0fab, 0x013eb349, 0x00d4132c, 0x00d459a9, 0x02d7a54c, 0x014e1f5a, 0x006559aa, 0x0189c505, 0x00233dac}}, Y: Field{[10]uint32{0x03cf9c96, 0x018152f3, 0x0338c160, 0x02205884, 0x00327aa7, 0x008b51ea, 0x02d06d3b, 0x00a21b39, 0x017032e5, 0x002fdaa7}}}, + {X: Field{[10]uint32{0x01a94968, 0x019d9b4a, 0x01d51ece, 0x00adff42, 0x022deeaa, 0x00c9df47, 0x016ac5f5, 0x0211c43e, 0x0186ed9f, 0x0035ac1d}}, Y: Field{[10]uint32{0x009c5326, 0x03a0fd7c, 0x03c9c75b, 0x007b4b88, 0x022f7904, 0x038fe8a4, 0x02f0d0d5, 0x01573d2b, 0x00b4ce56, 0x0036ad35}}}, + {X: Field{[10]uint32{0x02f4d647, 0x01c89ec3, 0x0000fb85, 0x00cd136a, 0x009e661d, 0x001e560d, 0x03a09219, 0x00fb7fcc, 0x033360a0, 0x0029c82d}}, Y: Field{[10]uint32{0x0084ea63, 0x01702d52, 0x035b11bb, 0x03fef513, 0x0313d79d, 0x003d219f, 0x037e3a5a, 0x00b60980, 0x006a721c, 0x0007c84f}}}, + {X: Field{[10]uint32{0x033a5ff7, 0x01a73b07, 0x030ac95a, 0x028b2806, 0x01b39f9b, 0x0167741d, 0x03db862e, 0x031b19c5, 0x02983b03, 0x00156295}}, Y: Field{[10]uint32{0x00ffb1a4, 0x0331b1f5, 0x0155792e, 0x01a621ff, 0x00fe3ae8, 0x00117f18, 0x0338458a, 0x02da2c85, 0x0352db21, 0x001f81f1}}}, + {X: Field{[10]uint32{0x00e14ca4, 0x02d55404, 0x002639ca, 0x035fe35b, 0x02a7c2d9, 0x00474382, 0x0329941f, 0x01a2a314, 0x03c32786, 0x002e49f7}}, Y: Field{[10]uint32{0x0323388c, 0x01e570ad, 0x035524b8, 0x0152666b, 0x0172f4d8, 0x01dc1489, 0x020e35f7, 0x0089eed0, 0x03259954, 0x000f3a0d}}}, + {X: Field{[10]uint32{0x030e6da8, 0x0263b313, 0x0016513f, 0x00719470, 0x003c35f7, 0x02d568dd, 0x0223ed5a, 0x02bfd623, 0x00991085, 0x000adc35}}, Y: Field{[10]uint32{0x006a8b06, 0x013c0a94, 0x025cd1a9, 0x004c72b8, 0x030a7014, 0x03609d8b, 0x03984697, 0x01727288, 0x034daa1e, 0x0037d04e}}}, + {X: Field{[10]uint32{0x01aefe56, 0x007cbbcb, 0x01144142, 0x015298b8, 0x01e1368e, 0x012e9dfa, 0x029181d9, 0x01b80266, 0x00dcf72f, 0x002e20db}}, Y: Field{[10]uint32{0x010427ce, 0x01488279, 0x00359afa, 0x02a94e53, 0x0201beec, 0x0233abad, 0x017014b6, 0x03c9b72b, 0x012f0e31, 0x00026b51}}}, + {X: Field{[10]uint32{0x00af93a7, 0x02daa031, 0x01b004dc, 0x01173643, 0x02ec66b4, 0x03cce026, 0x0388b480, 0x0388e825, 0x017b65f0, 0x00094aca}}, Y: Field{[10]uint32{0x00916838, 0x02c37898, 0x010e806c, 0x034314cd, 0x039f77c7, 0x0092962f, 0x02a3bcfc, 0x018845cd, 0x00c43c34, 0x00233138}}}, + {X: Field{[10]uint32{0x02be6330, 0x0245c737, 0x01892aad, 0x001335ca, 0x03d34f27, 0x035adef6, 0x03d5fa03, 0x03319a3b, 0x00ca1c15, 0x0027cf4c}}, Y: Field{[10]uint32{0x023211b0, 0x0188c9ec, 0x0057b386, 0x02613888, 0x01353d9b, 0x0051d85c, 0x0056974f, 0x03b9eaf0, 0x00340f95, 0x001122d9}}}, + {X: Field{[10]uint32{0x03d35e49, 0x034a614b, 0x039e66e2, 0x01793952, 0x01653b54, 0x02f1ef38, 0x00a771b5, 0x02b767fe, 0x016e5bc9, 0x00208978}}, Y: Field{[10]uint32{0x010570fa, 0x012a9d5f, 0x0212c717, 0x02774401, 0x00df836b, 0x01fc2765, 0x024e1de8, 0x028b05b2, 0x01e3aaef, 0x00189531}}}, + {X: Field{[10]uint32{0x02d02ebe, 0x01a729aa, 0x01799046, 0x019d34f1, 0x01074f47, 0x0378956c, 0x02a80b74, 0x0266c6dc, 0x02484d6e, 0x0029f73b}}, Y: Field{[10]uint32{0x01c170a7, 0x0160ee80, 0x002a42db, 0x01e231f1, 0x00785861, 0x03bdea52, 0x021f541b, 0x02407d21, 0x00fa76a2, 0x00075bc3}}}, + {X: Field{[10]uint32{0x009976b4, 0x038c57a0, 0x03d1e210, 0x00ae8e5b, 0x009a6baa, 0x00b1992e, 0x013372fd, 0x03a43a63, 0x01a85d4c, 0x002a4511}}, Y: Field{[10]uint32{0x00b1d100, 0x020e1d9e, 0x01449f1d, 0x03e539f1, 0x0072deac, 0x0365001f, 0x01d1512c, 0x01cac6d4, 0x028b99b0, 0x002b7131}}}, + {X: Field{[10]uint32{0x027ce1f1, 0x0217b88a, 0x01c79ed6, 0x02b621b3, 0x036f6ea6, 0x01443803, 0x00410963, 0x025955d7, 0x01ce907c, 0x001d18b2}}, Y: Field{[10]uint32{0x0371c7df, 0x03fe882e, 0x00f2ae67, 0x03a0ccbe, 0x0047a854, 0x02731050, 0x02df5ac7, 0x008a6710, 0x01c5f02c, 0x0013fe90}}}, + {X: Field{[10]uint32{0x00cd4f40, 0x0232a18a, 0x005065d3, 0x0112596a, 0x00dfd855, 0x029e7c8d, 0x00e36bb6, 0x0256f6be, 0x01f3dea4, 0x00350a25}}, Y: Field{[10]uint32{0x010d9cf5, 0x024ab82d, 0x01bbd59c, 0x003ea036, 0x00982171, 0x02ee121b, 0x0069b207, 0x00710b9e, 0x031813a1, 0x000bfb7a}}}, + {X: Field{[10]uint32{0x01388adc, 0x03666853, 0x01669c29, 0x01b5da99, 0x02e8291e, 0x03bd4f44, 0x03434b27, 0x01622bc4, 0x0362ce85, 0x003be6da}}, Y: Field{[10]uint32{0x03bf912f, 0x022bb826, 0x0138adb1, 0x015516da, 0x02802612, 0x024501f2, 0x0107955e, 0x03258bb6, 0x03cf9af0, 0x000567d7}}}, + {X: Field{[10]uint32{0x01bc9f32, 0x02c1b23f, 0x03f392af, 0x01f8a9a4, 0x0392877c, 0x0325abff, 0x01fb7bdb, 0x0276bf7d, 0x01a0bc65, 0x001000fc}}, Y: Field{[10]uint32{0x0161fef9, 0x0217ad5e, 0x03cc9ea6, 0x029b09c1, 0x017faeaf, 0x012fa197, 0x03f1dcb7, 0x03c2c0a3, 0x02a17458, 0x003afff2}}}, + {X: Field{[10]uint32{0x02c09a8b, 0x01c0da9a, 0x027debed, 0x03640121, 0x01aa9ae1, 0x0121bd73, 0x00786f07, 0x03614592, 0x008b6b03, 0x0010e412}}, Y: Field{[10]uint32{0x0282f07a, 0x01da98e1, 0x03d6e5dd, 0x0304a682, 0x03452001, 0x00777ce4, 0x035b88a2, 0x02d5ac70, 0x01e5a10d, 0x001e0ca7}}}, + {X: Field{[10]uint32{0x03fadea1, 0x01d019ea, 0x006b9605, 0x005be7fe, 0x016074ee, 0x037fe2d0, 0x0006c565, 0x03ed9ad8, 0x00d29ea3, 0x002b9b68}}, Y: Field{[10]uint32{0x011cdac7, 0x00cc8d30, 0x009c05ca, 0x007ae22d, 0x0229e3f0, 0x00dc1853, 0x02f0916f, 0x00a98f9d, 0x0263dd01, 0x001d32aa}}}, + {X: Field{[10]uint32{0x03cfc72a, 0x0362a1ae, 0x014fb2fa, 0x03825414, 0x02035942, 0x013a01bd, 0x00656520, 0x011c86df, 0x01df9861, 0x001e3e1e}}, Y: Field{[10]uint32{0x00281ac6, 0x014a5b4e, 0x01c68a75, 0x034e2358, 0x032318aa, 0x03ee1731, 0x03661b7f, 0x03a02fea, 0x018c478a, 0x00106539}}}, + {X: Field{[10]uint32{0x03c97e01, 0x00be5b97, 0x01d1dedd, 0x00a1ec70, 0x000352e0, 0x00e0d577, 0x00d51cc8, 0x02c31b5b, 0x03654f41, 0x00201a10}}, Y: Field{[10]uint32{0x02b62461, 0x000cfae4, 0x01c45262, 0x01f8ec79, 0x037546bc, 0x00d7ca69, 0x0141a0d0, 0x006d3878, 0x023f13c6, 0x0022c308}}}, + {X: Field{[10]uint32{0x0387466c, 0x02ce4212, 0x0301005c, 0x00d271e5, 0x02f83b59, 0x0365f42a, 0x03d11691, 0x01d7d1bb, 0x019f4fd9, 0x000a5427}}, Y: Field{[10]uint32{0x02d0da81, 0x03ae9a81, 0x038da8a0, 0x0214bab4, 0x02a33de5, 0x00d78f21, 0x00fccbe1, 0x02be5b27, 0x037569a0, 0x00051dfa}}}, + {X: Field{[10]uint32{0x031dfa4a, 0x03ffabb7, 0x0399c2d8, 0x0105bafd, 0x004e3d57, 0x00f18ea7, 0x01532fe3, 0x01c8bc30, 0x00433d9c, 0x00064745}}, Y: Field{[10]uint32{0x003a2cd8, 0x012d375c, 0x01706eae, 0x02d997b2, 0x01a5e3c7, 0x006213bb, 0x01ecf839, 0x01c6b5d1, 0x0009b6b5, 0x0016f401}}}, + {X: Field{[10]uint32{0x030155a8, 0x022c5646, 0x001e1ebf, 0x0078f6c8, 0x02a50f0e, 0x03aa0afc, 0x02d65afe, 0x0205a17b, 0x002ed273, 0x000a10f5}}, Y: Field{[10]uint32{0x03c63ee8, 0x01f4246e, 0x02f98ff8, 0x02e02669, 0x0177edaf, 0x00cb2c89, 0x03e6e2c2, 0x027d4ed1, 0x0266c0fa, 0x00201f3a}}}, + {X: Field{[10]uint32{0x03c8f644, 0x014ef44a, 0x000184d6, 0x00b5145b, 0x00e96ed0, 0x03a084be, 0x007514b8, 0x034dbd4d, 0x03b09656, 0x00155a2d}}, Y: Field{[10]uint32{0x00e60d87, 0x03618e14, 0x009118b2, 0x026e904a, 0x02496045, 0x03a8d901, 0x03da30d7, 0x01b710fe, 0x03a65483, 0x0016d13a}}}, + {X: Field{[10]uint32{0x0145e803, 0x023b17ac, 0x03d6e5f3, 0x008701cf, 0x004a7dd4, 0x0256ccbe, 0x00d81ab5, 0x01129a7a, 0x00e0809e, 0x0016e138}}, Y: Field{[10]uint32{0x0113d398, 0x00f4fbeb, 0x00243cb4, 0x0303fa4d, 0x017e6109, 0x0390c455, 0x03a1522a, 0x0073b5cb, 0x02d0fa79, 0x00069968}}}, + {X: Field{[10]uint32{0x02dfa672, 0x02993aaf, 0x00ede900, 0x010a4b32, 0x00675ba8, 0x0234ca44, 0x021519a1, 0x0041c51f, 0x016bdd24, 0x003bd0b1}}, Y: Field{[10]uint32{0x03ff75ac, 0x01ef34e2, 0x00e3cc9e, 0x0288c51d, 0x0326a618, 0x02b76fda, 0x01e0c254, 0x0265dd84, 0x03473335, 0x001c0545}}}, + {X: Field{[10]uint32{0x0256eb63, 0x01f04a55, 0x0294c92b, 0x03b21fab, 0x00adc653, 0x02c5056d, 0x026ed003, 0x0129592f, 0x02dcb50d, 0x001237fc}}, Y: Field{[10]uint32{0x01643928, 0x01982063, 0x036b5f0f, 0x00f7dc07, 0x02fa29e6, 0x02feb550, 0x03c59e98, 0x03b3dbc2, 0x03fb53af, 0x002a6fa5}}}, + {X: Field{[10]uint32{0x02e938d4, 0x00793ed2, 0x00337f88, 0x035067f7, 0x00d1923b, 0x008ac263, 0x009a2dfc, 0x0345d043, 0x00f5246a, 0x0019cba4}}, Y: Field{[10]uint32{0x01781f19, 0x028a2e68, 0x02c9e97a, 0x0091585f, 0x02f331b6, 0x00797c27, 0x03e678b3, 0x01b6da20, 0x03801fda, 0x001cff4c}}}, + {X: Field{[10]uint32{0x03315cde, 0x032dd852, 0x03723ee7, 0x008529f2, 0x02dbfe55, 0x01770577, 0x01e094a9, 0x02067242, 0x01b171fb, 0x0016736e}}, Y: Field{[10]uint32{0x008351a2, 0x036c06fa, 0x00a187a6, 0x03679243, 0x017f2d38, 0x00208027, 0x033f8e73, 0x01298fb3, 0x0212670b, 0x000156b0}}}, + {X: Field{[10]uint32{0x012ddb18, 0x004237ab, 0x028f0043, 0x020a3873, 0x006b827f, 0x02666531, 0x00db879b, 0x0162ac4d, 0x010a357a, 0x001738e3}}, Y: Field{[10]uint32{0x0397f716, 0x0285364e, 0x009c1745, 0x019c4227, 0x0394748c, 0x036f3146, 0x0384b33d, 0x0361bb0b, 0x0202d9c1, 0x0017a058}}}, + {X: Field{[10]uint32{0x0398afda, 0x012846d4, 0x028c8282, 0x016b41c4, 0x02c1a74d, 0x02dabe49, 0x0227a940, 0x03eeeec3, 0x016a7466, 0x00326086}}, Y: Field{[10]uint32{0x00901f55, 0x0058df54, 0x006b6f00, 0x00953915, 0x032d8fb9, 0x00704cf6, 0x00e6448a, 0x00e2bee7, 0x01eae644, 0x001ea47e}}}, + {X: Field{[10]uint32{0x039ec818, 0x03d4ca60, 0x03d31725, 0x030a0f20, 0x0360bfbc, 0x01e5b403, 0x0281d297, 0x006fb372, 0x008479e6, 0x000e0f2c}}, Y: Field{[10]uint32{0x01dec91e, 0x028643de, 0x004ffdb1, 0x009ab619, 0x010bbc34, 0x0057cd36, 0x01e04980, 0x0224ce2f, 0x03a24900, 0x0009b89b}}}, + {X: Field{[10]uint32{0x002f612b, 0x03293f44, 0x00550248, 0x026dab21, 0x0328b88c, 0x01200477, 0x0117b524, 0x03c529c6, 0x03312ad4, 0x0039a515}}, Y: Field{[10]uint32{0x0176f53d, 0x030ce193, 0x0089c1b1, 0x01be5c1a, 0x00c81cc8, 0x027ac2d1, 0x03edddac, 0x01c0797a, 0x008251fc, 0x000c3b48}}}, + {X: Field{[10]uint32{0x039976f7, 0x00f131ae, 0x018a7f28, 0x03c893e9, 0x01250809, 0x0098a9ca, 0x02168d21, 0x024d4884, 0x01ba8f79, 0x000b401c}}, Y: Field{[10]uint32{0x031dfd8b, 0x00ac05d7, 0x01b03c87, 0x03c695c2, 0x01ccc118, 0x020001e7, 0x01455440, 0x01cfc45a, 0x01014e48, 0x0033729a}}}, + {X: Field{[10]uint32{0x001e927e, 0x0123c880, 0x017898d7, 0x02c210df, 0x01da35c2, 0x01e61dee, 0x00f35f06, 0x013efe47, 0x005765b7, 0x00320ae5}}, Y: Field{[10]uint32{0x005fd6a2, 0x00f67c81, 0x0133d931, 0x00a8e6c5, 0x03b57a0f, 0x02ab23c1, 0x0057dae9, 0x01aff1f8, 0x01d10bb0, 0x000b9413}}}, + {X: Field{[10]uint32{0x01bbf0a6, 0x02d8ca1d, 0x0022763c, 0x028bece9, 0x012654ed, 0x01cdf746, 0x01135ede, 0x0086a7fb, 0x002e7eac, 0x00270693}}, Y: Field{[10]uint32{0x00e9197f, 0x0023bf84, 0x02e60200, 0x011ba768, 0x0280eb66, 0x02ded681, 0x02c91289, 0x00716089, 0x036c12f7, 0x003cc4d2}}}, + {X: Field{[10]uint32{0x016c9b28, 0x02b09fa3, 0x0353b6a2, 0x00d8b55d, 0x019b170a, 0x0202df3e, 0x00bd645e, 0x00c88bb6, 0x019bbc69, 0x0025c74f}}, Y: Field{[10]uint32{0x01d22e2e, 0x00dbdfe4, 0x0098080a, 0x00cfce16, 0x01e20394, 0x03f17a1b, 0x00a73af7, 0x0370b1b1, 0x009ae296, 0x000358f5}}}, + {X: Field{[10]uint32{0x03917d2b, 0x0200bea2, 0x0023fa67, 0x01eafd6b, 0x01660a31, 0x00186781, 0x0329f2ae, 0x0045448f, 0x027386bc, 0x003d524e}}, Y: Field{[10]uint32{0x01e0f1d7, 0x008c1b99, 0x03e23964, 0x000a004c, 0x0138455e, 0x0109ee2d, 0x0305157b, 0x0014c0ac, 0x00cb8b78, 0x0039ab6f}}}, + {X: Field{[10]uint32{0x01b6e014, 0x00154de6, 0x006dadde, 0x03f502ce, 0x01763244, 0x03af78ab, 0x017a3215, 0x00282b92, 0x023e500e, 0x0020c7c4}}, Y: Field{[10]uint32{0x03221d6c, 0x01c67232, 0x03950f44, 0x002a76da, 0x01ac04af, 0x03bbd7be, 0x02fa508c, 0x0222b154, 0x00622ff5, 0x000d585a}}}, + {X: Field{[10]uint32{0x017cfb35, 0x00a321e2, 0x02975f17, 0x008a63a4, 0x027a338c, 0x03bce175, 0x014c3342, 0x011d30ce, 0x006d0018, 0x0026e338}}, Y: Field{[10]uint32{0x02a40d72, 0x033a8150, 0x0331d712, 0x015e928d, 0x0307ce87, 0x007d4dd1, 0x01a50c4c, 0x00f811f3, 0x0220b8dc, 0x001da500}}}, + {X: Field{[10]uint32{0x03c5b855, 0x004de9cf, 0x027cb1e8, 0x02b437fe, 0x0014f06c, 0x00afcf85, 0x01724104, 0x00af2580, 0x016ba98d, 0x003dc2a4}}, Y: Field{[10]uint32{0x000275a2, 0x023ffeca, 0x0023fff9, 0x02110f10, 0x03b5426d, 0x025ea23c, 0x01a3fbe9, 0x0225bfce, 0x01f470d7, 0x003c6e30}}}, + {X: Field{[10]uint32{0x00763d56, 0x014abeb0, 0x0259992d, 0x0027f653, 0x01a64d69, 0x03d88741, 0x02836612, 0x01ff92ac, 0x03bbc44e, 0x000b4aad}}, Y: Field{[10]uint32{0x015328e8, 0x034cb331, 0x0328ae57, 0x02bcd815, 0x03c5fec8, 0x02d870b4, 0x03e044e8, 0x024721a3, 0x02002a69, 0x0014d143}}}, + {X: Field{[10]uint32{0x00d10005, 0x02e751bd, 0x018f3dc9, 0x03157601, 0x03321ff7, 0x02a44c55, 0x025423f3, 0x025e33a8, 0x02b8c516, 0x00205e37}}, Y: Field{[10]uint32{0x016ff4bc, 0x00efeda3, 0x02bfb598, 0x011a89ad, 0x01f9c001, 0x00d4926f, 0x02e6a282, 0x034c0fd2, 0x032b46c9, 0x0005a9c6}}}, + {X: Field{[10]uint32{0x02b56a64, 0x01a9a48d, 0x0301126e, 0x03285800, 0x0001f700, 0x03756650, 0x02f9c32a, 0x02e9f99f, 0x0376d012, 0x002d1c2e}}, Y: Field{[10]uint32{0x014fd95c, 0x03089c98, 0x03a6927c, 0x020a8bef, 0x031775f0, 0x02349a61, 0x01f36f15, 0x0261861c, 0x03e07d17, 0x003df424}}}, + {X: Field{[10]uint32{0x02de29ce, 0x01c4cff8, 0x03f78fe1, 0x0084736c, 0x01d3a899, 0x003c0850, 0x0348eb33, 0x02b04866, 0x02ba837c, 0x000593ca}}, Y: Field{[10]uint32{0x031d28dc, 0x01d8dd21, 0x011972c0, 0x01419a49, 0x02c2837c, 0x02e08701, 0x01ec79e0, 0x0340d12a, 0x020895f7, 0x000ef015}}}, + {X: Field{[10]uint32{0x02e725f4, 0x027fb144, 0x02283ec5, 0x03aa20f8, 0x01e6a210, 0x0172ee27, 0x012268b3, 0x01b4bbd4, 0x020402a8, 0x0031de8e}}, Y: Field{[10]uint32{0x031cfba2, 0x027bb704, 0x029148dc, 0x03896d27, 0x036d1db4, 0x03b580ac, 0x007e5928, 0x0281ff96, 0x016bedf1, 0x000baf35}}}, + {X: Field{[10]uint32{0x03b11349, 0x02b4cd40, 0x00e9f060, 0x0010368e, 0x0011df55, 0x0071aafa, 0x03a3f1d7, 0x033dc555, 0x03a1f714, 0x00038b7b}}, Y: Field{[10]uint32{0x0045f229, 0x02d516b8, 0x0354bd88, 0x0368ee6a, 0x000c5107, 0x0195f651, 0x001912ea, 0x02ef1cbd, 0x03037a53, 0x0017b590}}}, + {X: Field{[10]uint32{0x02313e3c, 0x004910ed, 0x017b2d21, 0x03a73075, 0x0335280c, 0x0290cc2b, 0x03fca1e5, 0x02793058, 0x02cbb4cd, 0x003b8b44}}, Y: Field{[10]uint32{0x02153262, 0x02488ebb, 0x02f0849f, 0x01bf752e, 0x024057fb, 0x03ffeda5, 0x00ecafab, 0x01f1960e, 0x01c1a437, 0x0038a2c7}}}, + {X: Field{[10]uint32{0x019e28bd, 0x0095b59f, 0x0067c78f, 0x011489c5, 0x01a2109b, 0x016f9f0f, 0x0039c34f, 0x037b2bcf, 0x009673e6, 0x00010e4b}}, Y: Field{[10]uint32{0x00110c50, 0x00aa2180, 0x006fd590, 0x035f43d0, 0x00747d63, 0x010e9aed, 0x009edd53, 0x0094cec1, 0x0183ae35, 0x001ff930}}}, + {X: Field{[10]uint32{0x020d6960, 0x03fcc702, 0x017a6712, 0x02cbe046, 0x020f5586, 0x00023d26, 0x02655f16, 0x01d2b64e, 0x02ee1673, 0x00165cb8}}, Y: Field{[10]uint32{0x037c71d6, 0x037b069b, 0x00847bc3, 0x03f1f024, 0x02779343, 0x0240ef5c, 0x02e485ad, 0x01f1d228, 0x0055d0a5, 0x001b5c3f}}}, + {X: Field{[10]uint32{0x002c78aa, 0x0226bc0c, 0x03c19855, 0x00690038, 0x02a180f3, 0x02795d9a, 0x01f1faa2, 0x000c5622, 0x000afc2c, 0x002a1760}}, Y: Field{[10]uint32{0x017ec85e, 0x022c036e, 0x032a508f, 0x01e94b74, 0x02ff5aca, 0x00a196de, 0x0037b419, 0x01da8291, 0x03f4903c, 0x001d0a75}}}, + {X: Field{[10]uint32{0x01f1c245, 0x0215a7e9, 0x01cdc954, 0x00e1c9d6, 0x02ccee3f, 0x035418e1, 0x009e85d7, 0x013f326a, 0x030f0d59, 0x003260da}}, Y: Field{[10]uint32{0x0094fac0, 0x02dc20b4, 0x031ed943, 0x03166ed0, 0x03bed1c2, 0x035c59c9, 0x01a7d06f, 0x03fb58bc, 0x012693b7, 0x0027c2c6}}}, + {X: Field{[10]uint32{0x0202bd3b, 0x032b9ff4, 0x0222b588, 0x0106b991, 0x0375f2c4, 0x03658c64, 0x0348e5f6, 0x01195340, 0x00fdb2b8, 0x00328861}}, Y: Field{[10]uint32{0x026a4de9, 0x013c3f5c, 0x0162683c, 0x03207d9c, 0x01e2563c, 0x03a5ca6e, 0x013dbb2f, 0x01eab012, 0x00203d65, 0x0034488a}}}, + {X: Field{[10]uint32{0x02941fd8, 0x00b9814d, 0x0066b44a, 0x03331e93, 0x02b5dea0, 0x00181755, 0x03627048, 0x02599021, 0x01c63c9b, 0x00278145}}, Y: Field{[10]uint32{0x00be831a, 0x02c87255, 0x01e506d4, 0x018845fb, 0x0295f0b7, 0x036e8187, 0x02f789e2, 0x00b61abf, 0x0224a2eb, 0x000a778c}}}, + {X: Field{[10]uint32{0x035dc1cc, 0x023c002b, 0x02f6053a, 0x03694759, 0x018a3447, 0x0297cf5e, 0x022cf7af, 0x00e9fc30, 0x00253320, 0x0010810b}}, Y: Field{[10]uint32{0x01e6c05a, 0x022369fd, 0x03d9dff6, 0x007587dc, 0x03c54f3c, 0x02f04f44, 0x01420d50, 0x00e1c8c5, 0x027a6d6c, 0x003c1d69}}}, + {X: Field{[10]uint32{0x02295b96, 0x0259f1c4, 0x031bccd3, 0x032a6b90, 0x023f5a68, 0x0222557f, 0x0084ffd2, 0x000af916, 0x01bd4eab, 0x00199168}}, Y: Field{[10]uint32{0x0384cfad, 0x033344ae, 0x00b6730c, 0x01949014, 0x00bf9028, 0x003a4b13, 0x02d4b30f, 0x013b50a3, 0x01f91d26, 0x0008c7de}}}, + {X: Field{[10]uint32{0x00b32f9f, 0x0347ba35, 0x0075f30b, 0x02a21c3d, 0x036898f3, 0x0161f78d, 0x01482ab1, 0x01ba208c, 0x026d2c31, 0x00138a07}}, Y: Field{[10]uint32{0x0065602c, 0x03dd6070, 0x0091011e, 0x0357cdf9, 0x02c3f708, 0x03770d05, 0x0378062c, 0x027b7797, 0x01c81c11, 0x003d232b}}}, + {X: Field{[10]uint32{0x02af5136, 0x0153bc12, 0x00e02fcd, 0x034f90cb, 0x034fbaf7, 0x01e99880, 0x03c7ffbc, 0x007a7fc4, 0x001496e4, 0x001dc8d9}}, Y: Field{[10]uint32{0x002dd218, 0x020c1d09, 0x0328c800, 0x028195fc, 0x0398bec7, 0x00003da5, 0x00b4bf29, 0x03007bed, 0x01740d6c, 0x00088b80}}}, + {X: Field{[10]uint32{0x01d45860, 0x00765dc3, 0x02bddaf3, 0x027fded7, 0x0018ab00, 0x00488610, 0x026070cb, 0x01e166b6, 0x004c8d46, 0x000fcadc}}, Y: Field{[10]uint32{0x034dd88a, 0x03ebaa0e, 0x02a9fb59, 0x022ff417, 0x03e2b6ab, 0x035868b7, 0x038dd215, 0x03ad7a30, 0x03a5146a, 0x00291c59}}}, + {X: Field{[10]uint32{0x00ad4146, 0x02e7a4bb, 0x01b51640, 0x0342b931, 0x0384b3ac, 0x017e60f6, 0x03b70f03, 0x036044ba, 0x0130d243, 0x001e53b0}}, Y: Field{[10]uint32{0x007be84d, 0x01ddeab4, 0x01e71c80, 0x03576303, 0x00658f2d, 0x00debbd7, 0x00a537f9, 0x0171f3bb, 0x00be95c2, 0x00127b7b}}}, + {X: Field{[10]uint32{0x01a96aa3, 0x03258525, 0x023ba808, 0x0335ba7f, 0x0149c554, 0x01ec702c, 0x0304cf4a, 0x0384ade6, 0x01ece363, 0x001d43fe}}, Y: Field{[10]uint32{0x021d59a9, 0x00540bde, 0x02dfb2de, 0x02fc7931, 0x022d4474, 0x028182d0, 0x0270f149, 0x028fb7d3, 0x029dd1c5, 0x00168a09}}}, + {X: Field{[10]uint32{0x026272cf, 0x017ecaad, 0x00169633, 0x00b26dfd, 0x02263b08, 0x0344a518, 0x02c9ec1f, 0x01a3b2e5, 0x01d7df66, 0x00359701}}, Y: Field{[10]uint32{0x02188839, 0x02e93c37, 0x03c37891, 0x0019acbd, 0x017e48be, 0x031dff6b, 0x02cc5b7f, 0x0350b490, 0x00c51c10, 0x00035dca}}}, + {X: Field{[10]uint32{0x015190c3, 0x016fbd56, 0x012f6122, 0x00e5ca8f, 0x02aecffe, 0x036e685c, 0x039d2700, 0x03a7a6d6, 0x00b68cb2, 0x0034e013}}, Y: Field{[10]uint32{0x01e30d5e, 0x03091c6d, 0x01613482, 0x00f9bfc3, 0x00287902, 0x01814d0a, 0x02f41314, 0x01922cc2, 0x010c9568, 0x00047ecd}}}, + {X: Field{[10]uint32{0x00351bf6, 0x03a7a11c, 0x01b3db34, 0x0104441b, 0x036a9382, 0x03b3e34d, 0x0095c619, 0x00d27db3, 0x022635c6, 0x003dd8b7}}, Y: Field{[10]uint32{0x009fd814, 0x03702eaf, 0x0010b1ca, 0x00b4fa21, 0x000ccfe2, 0x026444b9, 0x013352da, 0x003e7b9d, 0x01e0c8a5, 0x003719fe}}}, + {X: Field{[10]uint32{0x03b87a71, 0x0395d9d4, 0x00e7dac5, 0x03baea1f, 0x03d7dcec, 0x005f8e49, 0x02e163ed, 0x03fd2c5f, 0x00bfa827, 0x002ac62d}}, Y: Field{[10]uint32{0x030da919, 0x03aa6e4a, 0x01ed5b57, 0x00734ac7, 0x0229706d, 0x01341fdc, 0x002bc09c, 0x00249b22, 0x03d573e4, 0x001b6e0e}}}, + {X: Field{[10]uint32{0x0198c95e, 0x0199a540, 0x02d8bf5c, 0x02b63d8e, 0x02b12478, 0x0116588a, 0x0343a870, 0x006ba368, 0x0248fec2, 0x003dd530}}, Y: Field{[10]uint32{0x0052b1bd, 0x009e6498, 0x02e5293b, 0x01e8caee, 0x00e056ca, 0x03d511dd, 0x008d8e67, 0x021ddae1, 0x02a25f9c, 0x000b3edd}}}, + {X: Field{[10]uint32{0x0246c51c, 0x018b53e6, 0x008e2c24, 0x030c4d07, 0x02103516, 0x005af285, 0x013ecdb7, 0x001e63e2, 0x033e3c3f, 0x003e3651}}, Y: Field{[10]uint32{0x03924e02, 0x016fa4b5, 0x006869e0, 0x00ef846d, 0x015c53bd, 0x01d51e0d, 0x03314dac, 0x03f8e89a, 0x025fa422, 0x00157c01}}}, + {X: Field{[10]uint32{0x014eb741, 0x0341435d, 0x00395352, 0x02d2fef1, 0x012f7c5a, 0x02ca7f6a, 0x035fa225, 0x032f2269, 0x0142d294, 0x000218e6}}, Y: Field{[10]uint32{0x03d11e4d, 0x02762a79, 0x01c29677, 0x020d32e0, 0x03741da8, 0x02cfb5f3, 0x0179abdd, 0x038d68db, 0x022a445d, 0x000e44fa}}}, + {X: Field{[10]uint32{0x0395d5c2, 0x03469e2e, 0x02c61794, 0x020820eb, 0x02068572, 0x0169c6d2, 0x0319230b, 0x00e22fc5, 0x006c706a, 0x000a9623}}, Y: Field{[10]uint32{0x00c47592, 0x010b12db, 0x01b00968, 0x02bafeec, 0x0361f458, 0x01f847e5, 0x007f07ea, 0x03db6590, 0x01771a56, 0x002bc97b}}}, + {X: Field{[10]uint32{0x020a0cb6, 0x03a35500, 0x01fe337e, 0x005c08b8, 0x00a54597, 0x02697b6c, 0x02dba4ad, 0x02e6a2c9, 0x01ee8931, 0x0004def4}}, Y: Field{[10]uint32{0x03ceea62, 0x01228c05, 0x00b7ff58, 0x01788455, 0x01eaea10, 0x021f5da8, 0x03e9f0ee, 0x031df49c, 0x037b8197, 0x00337a7e}}}, + {X: Field{[10]uint32{0x02de2bbf, 0x02ef8cb4, 0x03b48d21, 0x03aa8782, 0x020f9b5f, 0x00ebcb0a, 0x01523711, 0x00c4f25c, 0x0345c686, 0x00119600}}, Y: Field{[10]uint32{0x0092ef64, 0x02a3ba7b, 0x030510a3, 0x023a85ae, 0x027edade, 0x019bd30a, 0x03bc79db, 0x027fecaf, 0x017bb632, 0x001d6f17}}}, + {X: Field{[10]uint32{0x011bd233, 0x017bd90e, 0x02a8556d, 0x03586ca0, 0x0102ef93, 0x009abd51, 0x02fc491c, 0x016b3660, 0x0252afaf, 0x00128524}}, Y: Field{[10]uint32{0x00cfe285, 0x00f5e3d8, 0x0259a3b5, 0x03f16897, 0x03bb9e83, 0x018fd752, 0x0256ea38, 0x016d8259, 0x00bc10b5, 0x003ef040}}}, + {X: Field{[10]uint32{0x01a01f18, 0x03e4bc85, 0x013faad0, 0x0225f65d, 0x0395bdf0, 0x011d7592, 0x00251313, 0x033e3c38, 0x01a6fc0b, 0x002253af}}, Y: Field{[10]uint32{0x035ec056, 0x0389b3d7, 0x003779fa, 0x000b8a65, 0x001e4ede, 0x01f4deb8, 0x01d02519, 0x01cb3f1a, 0x01501557, 0x002c97cc}}}, + {X: Field{[10]uint32{0x01eb032e, 0x029bab91, 0x0285a3c2, 0x029be796, 0x002deedc, 0x03f5c82b, 0x01ef1b2b, 0x02e244c3, 0x02930a91, 0x0039c362}}, Y: Field{[10]uint32{0x00d9f9cc, 0x03f7c453, 0x01b0a693, 0x02061e28, 0x02fe1026, 0x024472c0, 0x03b96ea4, 0x03fdad17, 0x0253a3b0, 0x002f4ebb}}}, + {X: Field{[10]uint32{0x02b36852, 0x0117eed3, 0x0047eeb2, 0x00fc4d75, 0x02118988, 0x02551ada, 0x016765bf, 0x02c77528, 0x01c3e5cc, 0x001f2c7f}}, Y: Field{[10]uint32{0x03ca582d, 0x0238b2a3, 0x014e0196, 0x0022a3fb, 0x00d18890, 0x0176fc96, 0x00edbe17, 0x017fdee0, 0x00d6becf, 0x000243b8}}}, + {X: Field{[10]uint32{0x03b9bfc1, 0x02fef0a1, 0x00685bf9, 0x0340c484, 0x00b39f57, 0x00cae416, 0x0090a214, 0x03685e3f, 0x02d80331, 0x001449e2}}, Y: Field{[10]uint32{0x03a66b6f, 0x03773a74, 0x00040536, 0x0387dd6f, 0x017bc1f9, 0x00976cf9, 0x03ad759b, 0x0399e230, 0x0147f39c, 0x00016abd}}}, + {X: Field{[10]uint32{0x00f59cdd, 0x03a64115, 0x036cee9f, 0x00215389, 0x030fee50, 0x00bf3c3c, 0x03563082, 0x00c1a122, 0x021fc52b, 0x003c3baa}}, Y: Field{[10]uint32{0x02124f02, 0x02ecb27c, 0x02e63ab3, 0x03ea0460, 0x00d51cf7, 0x02befacc, 0x01e5e016, 0x01c2f7ad, 0x009b944d, 0x000243fe}}}, + {X: Field{[10]uint32{0x03aeea71, 0x0376dac0, 0x01df6648, 0x02bc94ad, 0x00df5b4c, 0x01ed4700, 0x03670c22, 0x003f4984, 0x03f28bf9, 0x000dbf26}}, Y: Field{[10]uint32{0x03836683, 0x0038e8f9, 0x0075e13d, 0x031a7f64, 0x03d975ec, 0x0376eef9, 0x02c81614, 0x01b0a181, 0x0076f1ac, 0x00221f0e}}}, + {X: Field{[10]uint32{0x0391b68b, 0x037caa26, 0x03acdba4, 0x02757996, 0x02135c54, 0x030a7d8b, 0x00d2d041, 0x010db385, 0x026b0cf9, 0x001b8c78}}, Y: Field{[10]uint32{0x00d0e7ae, 0x0258622b, 0x01a85858, 0x021f426a, 0x0194c1af, 0x029de2cc, 0x037d9f77, 0x02f6aad7, 0x02849e63, 0x00008e25}}}, + {X: Field{[10]uint32{0x0198e864, 0x02499c87, 0x02eac357, 0x03613dd0, 0x003da9fa, 0x02b4cea8, 0x02a8a1ce, 0x030afeb1, 0x0249a4b1, 0x00314111}}, Y: Field{[10]uint32{0x03a1027b, 0x02c80769, 0x000af537, 0x0136e350, 0x0345fdc8, 0x0330450e, 0x03d13270, 0x025aedc5, 0x02d283e6, 0x001b4980}}}, + {X: Field{[10]uint32{0x0299ca28, 0x02013b1a, 0x011e6eca, 0x01331148, 0x03b9b2e8, 0x016801ee, 0x028e963b, 0x011356f6, 0x0271f13c, 0x0002a4cf}}, Y: Field{[10]uint32{0x02200faa, 0x003d967d, 0x014f5c1c, 0x01e55084, 0x00c3ce02, 0x00750bf7, 0x01712073, 0x038bdb99, 0x03bcec45, 0x0024c6fc}}}, + {X: Field{[10]uint32{0x00e4a58b, 0x037d977e, 0x021aa83a, 0x0342c4ca, 0x030b8559, 0x0045c0e2, 0x0298884e, 0x00b5886e, 0x021d840c, 0x002400fd}}, Y: Field{[10]uint32{0x00d30895, 0x03d5b73a, 0x01532b67, 0x02b1cd8c, 0x001388a1, 0x02e89a15, 0x02b7ecec, 0x00e54a7f, 0x0124f72b, 0x001431d4}}}, + {X: Field{[10]uint32{0x02a0a886, 0x02df0df2, 0x022c533f, 0x02a7a7cf, 0x02914e21, 0x005ca069, 0x038abdfc, 0x01c33218, 0x00183cb3, 0x003f201f}}, Y: Field{[10]uint32{0x00af00ba, 0x009286fa, 0x02cdee9d, 0x0341ae34, 0x021ccf6f, 0x03559095, 0x02f72639, 0x00756ea6, 0x013e75ac, 0x000eb1e7}}}, + {X: Field{[10]uint32{0x03ee9cbd, 0x024f33b7, 0x033c1862, 0x02b9f901, 0x03cd780d, 0x0142f352, 0x03b608f1, 0x02b08ed0, 0x02e4aca4, 0x000f41ca}}, Y: Field{[10]uint32{0x0265d9b6, 0x0355749f, 0x0385792f, 0x00519f68, 0x03f9c604, 0x00235d89, 0x00fc5630, 0x0327e2a6, 0x0043f721, 0x0001b679}}}, + {X: Field{[10]uint32{0x03f80dc0, 0x02aaf669, 0x01d3d106, 0x02f1eb2c, 0x03ba6e26, 0x008bebe2, 0x03c5eed5, 0x02d29f4a, 0x01947061, 0x003432e1}}, Y: Field{[10]uint32{0x03012e0a, 0x00e791de, 0x0092c9b7, 0x03c507c2, 0x038d7562, 0x006a61da, 0x0107b82d, 0x03730680, 0x0326e9d0, 0x003eff43}}}, + {X: Field{[10]uint32{0x035bc9fd, 0x01b496d8, 0x02e3241a, 0x02b090b3, 0x00267aad, 0x01c88730, 0x019f46cc, 0x03191079, 0x00ab6416, 0x00393b70}}, Y: Field{[10]uint32{0x03cdc71e, 0x0307f0d3, 0x02964b84, 0x01382ec1, 0x01c496fd, 0x020201f4, 0x00344829, 0x02d31012, 0x02e9cea7, 0x003d070e}}}, + {X: Field{[10]uint32{0x017eb4b2, 0x034caaf7, 0x01271557, 0x01046c2d, 0x02ffb806, 0x012f83d7, 0x01a83c88, 0x0244063d, 0x010b2d3d, 0x00188ced}}, Y: Field{[10]uint32{0x015dbcc5, 0x007bc661, 0x00399791, 0x00af7690, 0x01034a3a, 0x00a1622c, 0x030f21e3, 0x00ab095d, 0x0124ffdd, 0x00237eab}}}, + {X: Field{[10]uint32{0x02a19ab5, 0x012df714, 0x015df943, 0x017af78a, 0x03c427e6, 0x03a607da, 0x034e5447, 0x0197889e, 0x0162e272, 0x001b2800}}, Y: Field{[10]uint32{0x0154cce1, 0x015f9944, 0x03a5ce0f, 0x00583854, 0x03223e89, 0x02aece81, 0x03fe297b, 0x009f8290, 0x0363a8f2, 0x0034cfd7}}}, + {X: Field{[10]uint32{0x02fefcfc, 0x02199b8d, 0x005b3cd6, 0x024a2d84, 0x02d6c9d9, 0x0339f2c5, 0x01328ae7, 0x02357703, 0x01aa5d2a, 0x00300481}}, Y: Field{[10]uint32{0x02831d3e, 0x00061643, 0x03b453ad, 0x02affea6, 0x02cf2988, 0x02be2e9f, 0x03d6f6f6, 0x02025786, 0x0399c4f4, 0x002d9797}}}, + {X: Field{[10]uint32{0x02e0e155, 0x02de34b6, 0x00abb4e0, 0x025d29b1, 0x0107b8a5, 0x020143ce, 0x016fb195, 0x01a32d87, 0x03930e62, 0x0038e594}}, Y: Field{[10]uint32{0x00731737, 0x00a26fe0, 0x00828a2f, 0x02973683, 0x003f971f, 0x014e0ecb, 0x00048928, 0x03876460, 0x01462ed6, 0x0007de2b}}}, + {X: Field{[10]uint32{0x00b099ce, 0x0120889b, 0x004f8012, 0x03e142f6, 0x013dc03a, 0x03f6643f, 0x010c1a69, 0x02750c01, 0x00f3702a, 0x0009eff4}}, Y: Field{[10]uint32{0x00643de8, 0x0306c72f, 0x00f390fe, 0x03c36425, 0x00c49fd3, 0x0102f9f0, 0x030c0bce, 0x02baf466, 0x0360e8ca, 0x0008b85a}}}, + {X: Field{[10]uint32{0x0396a2f0, 0x0020281b, 0x023c6cbf, 0x00b1bdd7, 0x012a3717, 0x00a65ea2, 0x02c17771, 0x0255967b, 0x03c02331, 0x0020843e}}, Y: Field{[10]uint32{0x02afee8d, 0x03aa4791, 0x0109716d, 0x0095b469, 0x03bfacbb, 0x01787bac, 0x011d5528, 0x019b2eec, 0x03921011, 0x0007775d}}}, + {X: Field{[10]uint32{0x02347b5e, 0x034869d3, 0x03ab089c, 0x0197e2fb, 0x00ae4d50, 0x0178bfe0, 0x015298a2, 0x02f6037c, 0x02b65fcb, 0x00057319}}, Y: Field{[10]uint32{0x03937c97, 0x02b34c81, 0x0334b6dd, 0x00d1223e, 0x007b225b, 0x01585b4a, 0x03324c9f, 0x020a5b7a, 0x03e93574, 0x002512d1}}}, + {X: Field{[10]uint32{0x00c97976, 0x0006b825, 0x02c4bff8, 0x03f1c9b0, 0x02c7bb08, 0x0279b0d7, 0x021a482a, 0x0005a47a, 0x02a24596, 0x003adede}}, Y: Field{[10]uint32{0x02d1b1f6, 0x008fe08b, 0x003f227c, 0x01380413, 0x02f5596f, 0x00fc195a, 0x03d20e90, 0x01de47f2, 0x0170cc18, 0x00134ba5}}}, + {X: Field{[10]uint32{0x029ba12c, 0x0039f7d7, 0x01ea15fb, 0x001ad029, 0x0118e7c1, 0x025aa11a, 0x02436e09, 0x03a11308, 0x02fced29, 0x0011663e}}, Y: Field{[10]uint32{0x035e6093, 0x0388a3fc, 0x016297dc, 0x015796c2, 0x01978a85, 0x03dc5982, 0x0379dfe7, 0x03a8b0e5, 0x02b6d292, 0x0039cf65}}}, + {X: Field{[10]uint32{0x028600f7, 0x01fbacc6, 0x007058e3, 0x03f06443, 0x00e57d4d, 0x01be4386, 0x02a25917, 0x0396515c, 0x02863612, 0x001260d6}}, Y: Field{[10]uint32{0x03cfa531, 0x003b4df7, 0x017b9825, 0x028b9223, 0x02464c08, 0x003a034d, 0x023b147e, 0x00b30730, 0x013a0fbd, 0x0000edd8}}}, + {X: Field{[10]uint32{0x02335351, 0x0245bdf3, 0x005b9965, 0x02df464c, 0x033cbfe0, 0x0136f70c, 0x023177b0, 0x02019cca, 0x03ed1fcc, 0x000e9b5b}}, Y: Field{[10]uint32{0x026624ea, 0x021a4956, 0x01d0df29, 0x01586f47, 0x0111eb2b, 0x01fc4190, 0x00a6706d, 0x0185fc52, 0x018a314d, 0x00330fcf}}}, + {X: Field{[10]uint32{0x02d7a9f5, 0x035b1ece, 0x02a78fb0, 0x0093b9ee, 0x00f672a0, 0x0080d6dd, 0x012d2efb, 0x03f8c33a, 0x01866860, 0x00084821}}, Y: Field{[10]uint32{0x00bebbb7, 0x01d2825e, 0x01d7ce10, 0x038d07c9, 0x0396ff0c, 0x03dba75c, 0x02e8be11, 0x02c7b0ff, 0x01be0051, 0x002abc51}}}, + {X: Field{[10]uint32{0x026e4e06, 0x03681349, 0x03cc867c, 0x0209b3bf, 0x01833ac0, 0x0072c46e, 0x03d609c5, 0x00bc2598, 0x032ac9bb, 0x003e0644}}, Y: Field{[10]uint32{0x00891de5, 0x009c8e53, 0x02bb37e2, 0x03bdd91a, 0x00c52f48, 0x01012bbb, 0x03fd1a06, 0x00c172ab, 0x0238ec6a, 0x002c7f79}}}, + {X: Field{[10]uint32{0x02ec009d, 0x02a50df0, 0x00428423, 0x028484f1, 0x01168385, 0x02bb58b6, 0x0334d720, 0x0190310d, 0x01d88786, 0x0014db01}}, Y: Field{[10]uint32{0x036df0d5, 0x0224c976, 0x02f134b4, 0x03b87ea7, 0x01fd84dd, 0x020e8231, 0x03c2b43c, 0x037861a2, 0x0100d827, 0x001fd2f8}}}, + {X: Field{[10]uint32{0x01df722b, 0x02dceea8, 0x024bd650, 0x02c68e68, 0x0109de2f, 0x00b22a16, 0x02e3ed34, 0x036dd8df, 0x023ec4c6, 0x0010ca04}}, Y: Field{[10]uint32{0x03a40857, 0x0275fa58, 0x01b1594c, 0x00403d75, 0x014ee11f, 0x02d3e1bd, 0x0222fa71, 0x01dd4f9a, 0x02ea0127, 0x00207000}}}, + {X: Field{[10]uint32{0x012a5f17, 0x00369a04, 0x01a08155, 0x00cb543a, 0x016a85fc, 0x003e6170, 0x029e5360, 0x0265461a, 0x02fef852, 0x003cf855}}, Y: Field{[10]uint32{0x008892d2, 0x037426ad, 0x010915d5, 0x0339d063, 0x03a2f441, 0x00d8ae14, 0x0167e83c, 0x0039bd97, 0x026b56ff, 0x00247ff5}}}, + {X: Field{[10]uint32{0x03456cc9, 0x00aa3622, 0x030e6824, 0x02bfabc0, 0x006645a1, 0x0153102b, 0x028a716a, 0x00fd0b4b, 0x035984e1, 0x000cae9c}}, Y: Field{[10]uint32{0x00b4c6f5, 0x022c60ef, 0x02200f86, 0x017279f9, 0x03f05576, 0x03bc9324, 0x02ab3178, 0x02c542a0, 0x031e1c32, 0x0019fff3}}}, + {X: Field{[10]uint32{0x01829311, 0x02f02b16, 0x03dddcca, 0x024c62ae, 0x029c868b, 0x01362d2a, 0x00674cf6, 0x00417946, 0x033a043d, 0x0032e70a}}, Y: Field{[10]uint32{0x002b691f, 0x0181fba1, 0x015db242, 0x017ef4af, 0x01834bea, 0x02721674, 0x013ac479, 0x001daf7b, 0x02f2233f, 0x0007f19f}}}, + {X: Field{[10]uint32{0x029234f0, 0x028c6f4b, 0x01e856ef, 0x015eaf06, 0x035effa9, 0x0026f34e, 0x0349695e, 0x01c1c0c8, 0x0058b7bf, 0x003853ca}}, Y: Field{[10]uint32{0x00e08bdb, 0x03457937, 0x01761f3c, 0x00352a25, 0x02cf8cbf, 0x00357fc1, 0x03cbc258, 0x03f4e620, 0x009dd3f3, 0x000f8139}}}, + {X: Field{[10]uint32{0x03550d82, 0x02dce221, 0x01e010d7, 0x03b16102, 0x0274810d, 0x025ffc09, 0x0078113c, 0x02e38c33, 0x037b1c27, 0x00055afa}}, Y: Field{[10]uint32{0x00bc5371, 0x009ea464, 0x0017b16e, 0x0318305b, 0x013a8e92, 0x0164e664, 0x02adf2fd, 0x01bb20d4, 0x030a8021, 0x0031c45c}}}, + {X: Field{[10]uint32{0x0055d600, 0x0262d6cb, 0x013557b7, 0x0267e00e, 0x01a24a33, 0x028b76a8, 0x000e4959, 0x01a1912e, 0x03e6b9b4, 0x003797a9}}, Y: Field{[10]uint32{0x00d48ee8, 0x00f18563, 0x037d53a0, 0x019c8adf, 0x02b9b1de, 0x0060b354, 0x00a9d24e, 0x008f4b70, 0x0027e6a8, 0x00224068}}}, + {X: Field{[10]uint32{0x0017c3c7, 0x02e78ffb, 0x01adeb79, 0x005284a0, 0x00aea074, 0x02cafc3b, 0x037312e7, 0x03b51896, 0x03688bfa, 0x0023b774}}, Y: Field{[10]uint32{0x0155da7b, 0x03b6db1e, 0x032316d8, 0x02c5713d, 0x0359b885, 0x0088f95e, 0x00a48a89, 0x0074d357, 0x02f92617, 0x000b6d0e}}}, + {X: Field{[10]uint32{0x00b1d4e3, 0x02b4f5fc, 0x02b85fb2, 0x003fbe57, 0x0187872e, 0x0088dfb6, 0x02489ae2, 0x03477a3e, 0x036a665a, 0x001725c6}}, Y: Field{[10]uint32{0x038b1f66, 0x031a4e97, 0x039a6c4f, 0x01ecc0b4, 0x01aa8d4d, 0x00ae8076, 0x0332ff74, 0x02bdbc2b, 0x019837c2, 0x00135c7d}}}, + {X: Field{[10]uint32{0x02b9e228, 0x03edc291, 0x0076885c, 0x03bcd095, 0x01bd3586, 0x00aa3c73, 0x0366589a, 0x00adab56, 0x013c2821, 0x003b7ec9}}, Y: Field{[10]uint32{0x02616c00, 0x02ca892c, 0x00c1d7f7, 0x0380944d, 0x02594e42, 0x03cc18a4, 0x00b26b84, 0x007da6e3, 0x0208b7e8, 0x000f96d9}}}, + {X: Field{[10]uint32{0x01525c13, 0x0315adf7, 0x03384737, 0x031acb19, 0x03d2373c, 0x00895d2e, 0x0163dd4e, 0x01dcb36c, 0x024ae127, 0x0010e57c}}, Y: Field{[10]uint32{0x00103526, 0x02f99304, 0x0047a819, 0x037006d1, 0x00676581, 0x03dce55d, 0x0096913d, 0x0030b192, 0x03254c80, 0x002eb1b9}}}, + {X: Field{[10]uint32{0x006866f5, 0x03c3fc65, 0x023eb182, 0x014d7d8a, 0x038c7823, 0x017d6a1f, 0x0113b64b, 0x019adfe2, 0x02d573a7, 0x00204402}}, Y: Field{[10]uint32{0x01a00c73, 0x02d05c3a, 0x029c9d28, 0x02ea61c2, 0x01c6afb8, 0x01477675, 0x0068f7d0, 0x00226674, 0x016e325b, 0x0014b2b0}}}, + {X: Field{[10]uint32{0x0395120f, 0x008d1efa, 0x02e407f7, 0x017b9777, 0x01dee3a0, 0x0285085b, 0x02358c3a, 0x020519ab, 0x01514116, 0x003f4e81}}, Y: Field{[10]uint32{0x028ee5b7, 0x01ef34f6, 0x03250e4c, 0x001d6339, 0x0011a3c6, 0x01f812c8, 0x01b7b88b, 0x02c4aae2, 0x030d45ce, 0x000abcbc}}}, + {X: Field{[10]uint32{0x02435ff9, 0x03f0fbf9, 0x018fa4e3, 0x00caaf46, 0x0276d1a0, 0x0285f5b0, 0x0305b6df, 0x03bbe8ff, 0x0358a7ec, 0x0005e956}}, Y: Field{[10]uint32{0x01574d4f, 0x026fdc6e, 0x02240bc9, 0x02915f81, 0x02418f35, 0x01c7c14d, 0x01cee72e, 0x019f043f, 0x0158a3ad, 0x0035c9ce}}}, + {X: Field{[10]uint32{0x03789b6d, 0x02d0224e, 0x0003bc49, 0x00157b5c, 0x02793fd0, 0x0057a2c8, 0x01c73aee, 0x017a8231, 0x03b8e2ca, 0x0021c32d}}, Y: Field{[10]uint32{0x03e67aa3, 0x003b8106, 0x01cc6a7b, 0x03b2b542, 0x0104badb, 0x0089912a, 0x017a9bce, 0x0072bc9b, 0x03407b70, 0x0030cf22}}}, + {X: Field{[10]uint32{0x0271f8a7, 0x00b306d3, 0x00897545, 0x00db6039, 0x03ffbf7c, 0x01432829, 0x0053c89a, 0x03bc02b7, 0x01fcdc46, 0x003e5471}}, Y: Field{[10]uint32{0x0392c95f, 0x0081ce31, 0x02648751, 0x02495e4b, 0x01c1705b, 0x0137e796, 0x0064d7d2, 0x033090c2, 0x00217849, 0x001ab8be}}}, + {X: Field{[10]uint32{0x02a0caf1, 0x01240b25, 0x02d6131e, 0x00a858df, 0x036cbd83, 0x0062b68f, 0x011bb06a, 0x0319dab8, 0x037f3b92, 0x002bae01}}, Y: Field{[10]uint32{0x03cc1e35, 0x00cb87ab, 0x00cfde02, 0x01f42cdf, 0x036c8a6d, 0x02fcc5ff, 0x0275fb98, 0x0290c253, 0x011df5d4, 0x000a7d07}}}, + {X: Field{[10]uint32{0x013b78f9, 0x0080d7cc, 0x0260cb9d, 0x022d6577, 0x038482b7, 0x036161f0, 0x0118a7e5, 0x00b9601b, 0x01975d2f, 0x00351bd3}}, Y: Field{[10]uint32{0x006392f0, 0x00d246ba, 0x0233c105, 0x02650c5b, 0x02f704e1, 0x00c7fb90, 0x02154ef0, 0x0045d8e5, 0x01aa3bdc, 0x002575e0}}}, + {X: Field{[10]uint32{0x0229b201, 0x0297c71e, 0x02eaf4f3, 0x025dcf1d, 0x03af810b, 0x0126e7b0, 0x021b54ac, 0x03627cb8, 0x03444b4b, 0x00001abe}}, Y: Field{[10]uint32{0x02bf932f, 0x0186089b, 0x0334eaf0, 0x00342fb4, 0x0364db46, 0x00e22acd, 0x00ed90d1, 0x02d3384d, 0x001fd7d3, 0x000d40a4}}}, + {X: Field{[10]uint32{0x03d86976, 0x00bdfb7a, 0x00394093, 0x01533ebe, 0x01e66349, 0x0161ebd7, 0x03f60869, 0x005c0e9e, 0x0182a38b, 0x0017c0b9}}, Y: Field{[10]uint32{0x017afec2, 0x01a8014b, 0x00a7def4, 0x00328ada, 0x02ccfa5d, 0x0102e3f8, 0x00b06bf7, 0x029e5ac9, 0x00de92f3, 0x0028121f}}}, + {X: Field{[10]uint32{0x020599fe, 0x014b4e82, 0x02e33c66, 0x01d67155, 0x03ad70eb, 0x00d5199f, 0x007b885f, 0x00b3b568, 0x00826043, 0x0009909d}}, Y: Field{[10]uint32{0x0028ce85, 0x03e163ae, 0x00c62949, 0x033db811, 0x03a63867, 0x00d0114e, 0x02ea7379, 0x00e0bf5d, 0x00fe2560, 0x0004648e}}}, + {X: Field{[10]uint32{0x029f91dc, 0x01999811, 0x037ff2cd, 0x029f8796, 0x014f03a5, 0x017a0dfb, 0x0319a7dd, 0x02b7694a, 0x025ad327, 0x001aca8f}}, Y: Field{[10]uint32{0x0254c6d9, 0x0012f3a2, 0x0257a22f, 0x0197a35f, 0x01354ed2, 0x036a7a51, 0x03365601, 0x020be83c, 0x012606b4, 0x000be7d1}}}, + {X: Field{[10]uint32{0x035daa79, 0x000d1710, 0x03dc4fcc, 0x01df5d25, 0x02e5fbaf, 0x03bc4fa2, 0x010934dd, 0x013eeaac, 0x008b7e21, 0x0009622e}}, Y: Field{[10]uint32{0x01435bbf, 0x02f04531, 0x035e151e, 0x013eb2e8, 0x0261ca64, 0x03c69476, 0x03f142ce, 0x01b53235, 0x010bd3ba, 0x000f973e}}}, + {X: Field{[10]uint32{0x02551a93, 0x0173fe77, 0x03fcbcff, 0x011b0830, 0x02e4e3d8, 0x02805012, 0x00178b40, 0x00bbbfea, 0x01469285, 0x00365210}}, Y: Field{[10]uint32{0x02a6d5a4, 0x020962e5, 0x024ccdbb, 0x02f65a61, 0x0213ea0a, 0x02b66618, 0x00a12196, 0x03109d0d, 0x017fe628, 0x00356c3f}}}, + {X: Field{[10]uint32{0x030de2ff, 0x02713a8e, 0x025eb9fe, 0x01e19f3b, 0x005ccc1e, 0x02dbd1d5, 0x0364b1c9, 0x00821c32, 0x03dc3a2f, 0x00173e07}}, Y: Field{[10]uint32{0x01bc0d7d, 0x023ee305, 0x031131b7, 0x0094036b, 0x01e7ff31, 0x03b1cd1c, 0x01dc7005, 0x023977df, 0x031cf6bb, 0x00382c2a}}}, + {X: Field{[10]uint32{0x03e879a7, 0x01999836, 0x023203b8, 0x01c459de, 0x00f8ed24, 0x004cb1a5, 0x00b3f174, 0x03f6d5c1, 0x037eb719, 0x00106d3b}}, Y: Field{[10]uint32{0x0221c85f, 0x0024ee0d, 0x0081ae12, 0x02a8722a, 0x009f44c2, 0x03ab0669, 0x028b459e, 0x0088d736, 0x01b1cbae, 0x0029bf99}}}, + {X: Field{[10]uint32{0x03117af7, 0x01c26a6e, 0x03bdc5c2, 0x00fd01bc, 0x007a4c0a, 0x019013b2, 0x01d16918, 0x02478aa3, 0x032c41f6, 0x0010fb55}}, Y: Field{[10]uint32{0x02481da3, 0x03481cfe, 0x03ac3fd4, 0x024c36be, 0x0390a2b0, 0x02f9351d, 0x02cbbab7, 0x000cd1ae, 0x01b890b4, 0x002dee78}}}, + {X: Field{[10]uint32{0x03397de3, 0x00e39186, 0x02e421c3, 0x0107a17e, 0x0281722b, 0x00bc6557, 0x00bb5260, 0x021a98c5, 0x02192230, 0x00138042}}, Y: Field{[10]uint32{0x03a65fa2, 0x016689fa, 0x02ec4a61, 0x038dc311, 0x00283b44, 0x02f42ee3, 0x0076e7b3, 0x017b6112, 0x011c0347, 0x003c34fc}}}, + {X: Field{[10]uint32{0x0211f36b, 0x03510bfb, 0x01e2241d, 0x00a9f4d5, 0x0045e15d, 0x007b7361, 0x03c385e8, 0x01af3136, 0x00bb7fc8, 0x002cd827}}, Y: Field{[10]uint32{0x009c5f68, 0x00643237, 0x018e20e6, 0x006aa85a, 0x00c30891, 0x01deeea2, 0x00017dc9, 0x00d3fe01, 0x01aca3df, 0x002181f9}}}, + {X: Field{[10]uint32{0x03965b4e, 0x01b90fb7, 0x009d1df9, 0x02dac9c9, 0x02d1bdd6, 0x036c4497, 0x0168cdf6, 0x03ef4def, 0x00b20543, 0x00111798}}, Y: Field{[10]uint32{0x03715fd1, 0x0373c2f1, 0x025b00b5, 0x0148a1e9, 0x03c65f8b, 0x0248b9c4, 0x03fdc7cf, 0x02d1eafa, 0x018a8c4a, 0x00297e91}}}, + {X: Field{[10]uint32{0x00f50fc9, 0x02ed90c4, 0x0364cf9d, 0x01278032, 0x01be875b, 0x03c53062, 0x0359a7be, 0x03267e1a, 0x02279264, 0x001c27e0}}, Y: Field{[10]uint32{0x00960d10, 0x00540c56, 0x0362883f, 0x03ffeaab, 0x013d4903, 0x01a39379, 0x029064b4, 0x034afa29, 0x03f0cd28, 0x0005a009}}}, + {X: Field{[10]uint32{0x01fb4ba3, 0x019ffe4a, 0x00cdbe15, 0x017befc6, 0x008a2e9d, 0x00ccfc87, 0x012e725a, 0x00902e89, 0x000dcbd1, 0x0018aa88}}, Y: Field{[10]uint32{0x020a1347, 0x038fca27, 0x021b7b18, 0x00ac4b7b, 0x001ec328, 0x010f906b, 0x0106b468, 0x02f6f12e, 0x016c7017, 0x00066abf}}}, + {X: Field{[10]uint32{0x0082c09e, 0x03c42b2e, 0x02e11f38, 0x01ff2206, 0x01e12398, 0x000b8aae, 0x01f23898, 0x01191bea, 0x01588ed5, 0x000ae9ce}}, Y: Field{[10]uint32{0x035a25a6, 0x03cf848d, 0x00423721, 0x024ddd46, 0x03d8f8a1, 0x012004d4, 0x02cc45d3, 0x0262bbe1, 0x021c9c0a, 0x003cdf6a}}}, + {X: Field{[10]uint32{0x01005de8, 0x00539bde, 0x02397073, 0x0380d64a, 0x01e266e9, 0x02d677f8, 0x01c0f549, 0x02da6ab9, 0x01cce8fb, 0x00219cae}}, Y: Field{[10]uint32{0x0305af65, 0x025ea1a6, 0x01aa399a, 0x01d699ad, 0x02c411e8, 0x03efe7ab, 0x00aac680, 0x0071e6b7, 0x036aefb6, 0x00083611}}}, + {X: Field{[10]uint32{0x01ab6ab5, 0x015c7a2f, 0x000eda26, 0x03984ccc, 0x031f32be, 0x017b9705, 0x03dbac10, 0x00a665e7, 0x00028420, 0x000cd32c}}, Y: Field{[10]uint32{0x02a574d4, 0x01686216, 0x0038d96e, 0x02d92759, 0x00e4e972, 0x01e7172e, 0x0345bfd5, 0x021e3d1a, 0x019f3da7, 0x002209f6}}}, + {X: Field{[10]uint32{0x01ac6d4d, 0x03c8a68d, 0x01afe602, 0x01391efc, 0x00e9f25f, 0x03d93e07, 0x00cad6a2, 0x03b01cd5, 0x0207d260, 0x000cacc3}}, Y: Field{[10]uint32{0x003c0427, 0x01821d0f, 0x03941856, 0x0223cc18, 0x025c5e36, 0x0049b113, 0x02904181, 0x0241e1bc, 0x030d64ee, 0x001c7ff3}}}, + {X: Field{[10]uint32{0x039a8451, 0x00798028, 0x03a05076, 0x000970e3, 0x033b5ce4, 0x0267a6fe, 0x02401ff2, 0x01398d0f, 0x02587a4b, 0x00394265}}, Y: Field{[10]uint32{0x03bb2ece, 0x00b1196c, 0x03241f13, 0x0059c3f1, 0x00683a39, 0x031acce0, 0x02acccf5, 0x026a1a53, 0x02a86542, 0x001ec0e0}}}, + {X: Field{[10]uint32{0x01d6477d, 0x01ba4c39, 0x026abd31, 0x0084a76d, 0x01ca6841, 0x02cf5e1b, 0x02ea0353, 0x00e6f382, 0x004c2bf5, 0x002ce1cb}}, Y: Field{[10]uint32{0x0101e285, 0x01342402, 0x034f9242, 0x01c48b43, 0x0159391c, 0x02775058, 0x037ed1fa, 0x0321bcec, 0x00afe4c8, 0x0001f381}}}, + {X: Field{[10]uint32{0x0135d07b, 0x0101b7a6, 0x00908f3b, 0x01d28b7e, 0x0006095e, 0x027d3106, 0x0014d964, 0x038eacb9, 0x03df9156, 0x0034ad5b}}, Y: Field{[10]uint32{0x03e3b23f, 0x00ed403b, 0x012aaadc, 0x02bcdc55, 0x03b06a33, 0x011aa397, 0x00b49259, 0x02315aa1, 0x001b6766, 0x00110f0b}}}, + {X: Field{[10]uint32{0x037fbacb, 0x02c56a7c, 0x0208115d, 0x03f58ac2, 0x034e8288, 0x0327d06c, 0x03f32e1e, 0x031d9648, 0x027e1074, 0x0003da61}}, Y: Field{[10]uint32{0x013fca16, 0x01417190, 0x00e58cd0, 0x039dbf74, 0x0368709b, 0x01c6708a, 0x0204c6ed, 0x02945a73, 0x02252a11, 0x003f5b1b}}}, + {X: Field{[10]uint32{0x01e64988, 0x01c362ae, 0x02579626, 0x0261556d, 0x00cae238, 0x0223f33b, 0x00778c86, 0x004706b6, 0x00b4a9ab, 0x002f060c}}, Y: Field{[10]uint32{0x022e3c81, 0x0256b130, 0x01ea5b6d, 0x032c4b6e, 0x028e95cd, 0x00f4323c, 0x039a0faf, 0x0184cc65, 0x0089f3c4, 0x002d8910}}}, + {X: Field{[10]uint32{0x038dbafc, 0x0392d1fc, 0x003b7445, 0x007a887d, 0x02126cfa, 0x03357ee4, 0x004bbe83, 0x027f6a63, 0x0221dc72, 0x003eaeab}}, Y: Field{[10]uint32{0x002d8cdc, 0x00cd8016, 0x01fbcc4c, 0x02eacb02, 0x03177ce1, 0x035abb67, 0x03513b3e, 0x0160cb1c, 0x03756446, 0x0006d5a5}}}, + {X: Field{[10]uint32{0x011f8bd4, 0x00f65b5e, 0x0157b547, 0x000c85b7, 0x03bcd3fc, 0x00923638, 0x012497ea, 0x0130f7e4, 0x01014d5d, 0x0024ce18}}, Y: Field{[10]uint32{0x00936725, 0x00c3e8db, 0x02d951d6, 0x00ae3a01, 0x019e57f2, 0x0129ab5c, 0x033add54, 0x0058f13f, 0x016ac141, 0x000f63f2}}}, + {X: Field{[10]uint32{0x02fd07f8, 0x02a0ffa9, 0x007f2094, 0x00934c05, 0x02da0a43, 0x031ac61b, 0x0146b8ee, 0x00a08165, 0x015f85c4, 0x00314c4b}}, Y: Field{[10]uint32{0x01d2992f, 0x03e01b11, 0x0251beda, 0x03a2cd6d, 0x00332898, 0x035511cd, 0x03be12c8, 0x001d5948, 0x022a79ba, 0x003e2b9b}}}, + {X: Field{[10]uint32{0x0203b057, 0x01202d7c, 0x03388558, 0x00a046a9, 0x01b73b11, 0x02808bd0, 0x0375c4dd, 0x00bd01b6, 0x009652c5, 0x002823c9}}, Y: Field{[10]uint32{0x033eb2e5, 0x0371d14b, 0x00ccc845, 0x0094df13, 0x02191d7a, 0x03b3f8f2, 0x01aa9251, 0x0387657a, 0x03de9ab5, 0x0028e5b1}}}, + {X: Field{[10]uint32{0x00f634df, 0x01792f50, 0x0205bc52, 0x02d626e2, 0x02a036e0, 0x00289469, 0x034b34f0, 0x01be9829, 0x030fe8df, 0x0024f54c}}, Y: Field{[10]uint32{0x01838756, 0x031582dc, 0x03a08f5a, 0x019df454, 0x000c4df5, 0x0321f68a, 0x02774f77, 0x00939575, 0x02ea10f4, 0x0032857e}}}, + {X: Field{[10]uint32{0x02b51fa2, 0x0157e4aa, 0x024f6170, 0x004c3c16, 0x005c35b8, 0x03d94844, 0x010a9941, 0x02dcafa1, 0x03ccdfca, 0x0001188a}}, Y: Field{[10]uint32{0x03ca2d4f, 0x02d07a75, 0x01a8cd29, 0x02918259, 0x00e883d2, 0x0256d4f2, 0x01cd2456, 0x02c95b49, 0x002d31ee, 0x0036581c}}}, + {X: Field{[10]uint32{0x00ef9fe5, 0x03b821b8, 0x00d8807a, 0x00fb45f2, 0x010fb6c8, 0x004e30c3, 0x03a58728, 0x02176652, 0x036c7dd8, 0x0028c980}}, Y: Field{[10]uint32{0x02cb9bf7, 0x00f359cc, 0x01a53489, 0x03871d79, 0x03456a6c, 0x01da2685, 0x00aafcde, 0x028554c7, 0x02693719, 0x002d1973}}}, + {X: Field{[10]uint32{0x02ef77a5, 0x0082d69f, 0x00946b1d, 0x02a6129b, 0x03f3d5e7, 0x03e97154, 0x030c887b, 0x01f9e5c6, 0x017e1963, 0x0008d510}}, Y: Field{[10]uint32{0x01f4bd4b, 0x027d22ca, 0x02d4d216, 0x014cf3d3, 0x01ea7400, 0x03cd3d02, 0x014fbf99, 0x034f2ec9, 0x0321b6ea, 0x002056a5}}}, + {X: Field{[10]uint32{0x03ce6fca, 0x01f322ed, 0x01f9f2b0, 0x00677757, 0x033a4078, 0x008e0435, 0x01a746b0, 0x005d3d73, 0x016dfc53, 0x00274d1b}}, Y: Field{[10]uint32{0x0376c806, 0x00acd5e5, 0x029b9851, 0x000f7c23, 0x014a199b, 0x007a4154, 0x01a8ff9f, 0x00f97295, 0x006b6429, 0x0026db30}}}, + {X: Field{[10]uint32{0x0148dd01, 0x028ccc3f, 0x00564bb5, 0x02d01542, 0x03bba638, 0x03af8843, 0x01f000ad, 0x029edfe5, 0x038ec643, 0x001cf20a}}, Y: Field{[10]uint32{0x0005b614, 0x03c4da42, 0x02f075ff, 0x01737c35, 0x027d2acf, 0x0132caf6, 0x035f61b8, 0x017187f8, 0x0299a088, 0x003ffc55}}}, + {X: Field{[10]uint32{0x00798ac8, 0x00e72fff, 0x011afc9b, 0x02fdb28a, 0x010f2d29, 0x02141ae5, 0x01316728, 0x0357473e, 0x01d5a0b2, 0x0024091a}}, Y: Field{[10]uint32{0x03c3ade4, 0x00f7a247, 0x030d4fa6, 0x036eafa2, 0x03cd78ad, 0x032bf93f, 0x02378bff, 0x01da74d0, 0x0011d71c, 0x0000d5b4}}}, + {X: Field{[10]uint32{0x03110637, 0x03f88f87, 0x00371b1e, 0x03a7f540, 0x00dc4013, 0x0066e251, 0x0123afb8, 0x021bc14d, 0x00fb3a0c, 0x00399c28}}, Y: Field{[10]uint32{0x020b31b8, 0x019677c9, 0x0250a9bf, 0x0382772c, 0x03272557, 0x001f967b, 0x03db5a3d, 0x0372c855, 0x036bcd13, 0x00021a44}}}, + {X: Field{[10]uint32{0x0205c395, 0x034f56e2, 0x005fcb9a, 0x03961255, 0x01b57f11, 0x033ee732, 0x0368e270, 0x02079ac3, 0x006d5265, 0x003cffbc}}, Y: Field{[10]uint32{0x01b8f553, 0x01d55106, 0x012f4ff3, 0x034412c2, 0x01570752, 0x03e97eef, 0x0045176e, 0x0083b313, 0x01971444, 0x000cacba}}}, + {X: Field{[10]uint32{0x016a05bd, 0x02974e4e, 0x02cac70c, 0x02711c74, 0x00f942c0, 0x03306762, 0x00fc28a8, 0x03611158, 0x02633958, 0x001ca8dd}}, Y: Field{[10]uint32{0x035ee1ad, 0x03d1521c, 0x03ba8503, 0x011834bd, 0x01729ce8, 0x000ba363, 0x004b3b84, 0x0041c3da, 0x030e6e12, 0x0037a6c6}}}, + {X: Field{[10]uint32{0x005300b0, 0x00def620, 0x01ae22b6, 0x013ea133, 0x00417289, 0x0243379a, 0x019c3a81, 0x01f7bd04, 0x02d9c43b, 0x000e2de2}}, Y: Field{[10]uint32{0x03d01e6f, 0x039d2a2c, 0x01c8423d, 0x01a77214, 0x010de7cc, 0x02ffccba, 0x0204f175, 0x017d461c, 0x01676c4f, 0x00028605}}}, + {X: Field{[10]uint32{0x0334752e, 0x00563fca, 0x013af68e, 0x0224232f, 0x03540e2e, 0x00653ec8, 0x026fac9e, 0x01f14db1, 0x02c81d2e, 0x0036e5a2}}, Y: Field{[10]uint32{0x02b48a0a, 0x03969cea, 0x00769a24, 0x023bf453, 0x0104179e, 0x018d1c9c, 0x02b4af0a, 0x025caeb1, 0x03ab79d9, 0x00135715}}}, + {X: Field{[10]uint32{0x00aad318, 0x0174d9ea, 0x02435a14, 0x03e65f1c, 0x02505dd4, 0x007b4d6c, 0x0114f28c, 0x01360dc4, 0x02792d3a, 0x000ab385}}, Y: Field{[10]uint32{0x0226f625, 0x0239cfcd, 0x03539cc8, 0x03be86b8, 0x010405b0, 0x01a17db4, 0x0063b87f, 0x01d3933b, 0x012a2468, 0x0014c50c}}}, + {X: Field{[10]uint32{0x01bae108, 0x03e4ebcf, 0x0277e852, 0x0060958c, 0x00bb1fda, 0x0189c9f1, 0x00a46008, 0x0037b76e, 0x02690c39, 0x000cb603}}, Y: Field{[10]uint32{0x00dc7c07, 0x0155ea58, 0x01d08cbd, 0x0048f67c, 0x03bc1c3e, 0x0207df36, 0x03cb3f81, 0x0341a9b4, 0x016fea89, 0x0000f1f6}}}, + {X: Field{[10]uint32{0x02ee3908, 0x0229021d, 0x01521d8e, 0x00379497, 0x03f1bf05, 0x01176cf2, 0x00e61a29, 0x01ad018a, 0x028ae7fe, 0x000fbd27}}, Y: Field{[10]uint32{0x01a123f2, 0x00778200, 0x0092bd3d, 0x009d630f, 0x033ff72d, 0x018c456b, 0x0031b54d, 0x017ec935, 0x035c62f4, 0x0010e071}}}, + {X: Field{[10]uint32{0x009722da, 0x009d508f, 0x006405aa, 0x03996797, 0x000e280e, 0x032235ec, 0x03517d41, 0x00b340e6, 0x00d5cdb8, 0x00214e02}}, Y: Field{[10]uint32{0x037e8f5e, 0x0308a7d7, 0x0200fb4d, 0x000e4b50, 0x023ed18d, 0x005c8890, 0x00a652f8, 0x025899a6, 0x00449b2a, 0x003059df}}}, + {X: Field{[10]uint32{0x03c8584f, 0x0076de07, 0x02f4958c, 0x03cca6b7, 0x03306ee4, 0x02187f32, 0x03520bd8, 0x0017fa15, 0x0083490c, 0x0015cbf5}}, Y: Field{[10]uint32{0x0013f4a5, 0x00000d8d, 0x03ca0be3, 0x0156cc7a, 0x00d38e91, 0x02ced865, 0x00107c06, 0x008c0b3c, 0x01061039, 0x0020ab32}}}, + {X: Field{[10]uint32{0x036e1386, 0x024d60cd, 0x0248138c, 0x01135164, 0x00fa7713, 0x013655b9, 0x02a9a2dd, 0x0328c5d6, 0x03b29aa8, 0x002c72ea}}, Y: Field{[10]uint32{0x02292ec9, 0x0234b759, 0x015fcbc5, 0x03d80300, 0x01265cb2, 0x01050270, 0x021de030, 0x03f7c1ae, 0x00f17f9a, 0x00222330}}}, + {X: Field{[10]uint32{0x036bab20, 0x02eee60b, 0x001a16dd, 0x00359c1c, 0x012c5c96, 0x01269ba0, 0x000a65a1, 0x00c4d1d6, 0x03924239, 0x003e15b2}}, Y: Field{[10]uint32{0x00536674, 0x02540452, 0x03869c55, 0x030b5758, 0x0377d9d6, 0x01704477, 0x01f580f6, 0x0003a664, 0x01ba192c, 0x0030cd44}}}, + {X: Field{[10]uint32{0x0273920e, 0x03f0e9fb, 0x00e230ff, 0x03edb04a, 0x039eed92, 0x015aeece, 0x0042887b, 0x004a78b0, 0x00d4773e, 0x00385807}}, Y: Field{[10]uint32{0x001054ca, 0x02805bcc, 0x00ec96f4, 0x02328142, 0x000a7864, 0x026e87f3, 0x0247c714, 0x01de5bb8, 0x00c8a38c, 0x000601d2}}}, + {X: Field{[10]uint32{0x027c7e72, 0x024a38cd, 0x01534a98, 0x02ae5d22, 0x00e8b37c, 0x0032fc76, 0x02206a5b, 0x0185dd72, 0x00d45ffb, 0x00263b88}}, Y: Field{[10]uint32{0x0273c610, 0x02391958, 0x03c30697, 0x03811486, 0x01854b70, 0x023f1017, 0x02b5e6e8, 0x036d45a2, 0x00e1ea42, 0x000b7d2b}}}, + {X: Field{[10]uint32{0x01fe179f, 0x02b53bb7, 0x00246ec0, 0x0107d6b3, 0x035417bc, 0x03b74784, 0x01cfe95b, 0x024168c7, 0x0257acde, 0x0011e5b2}}, Y: Field{[10]uint32{0x00a367a8, 0x0258a87c, 0x0015f8ff, 0x028d18fe, 0x015bc565, 0x0159308e, 0x03637e59, 0x00e00acd, 0x0122395a, 0x001d04fd}}}, + {X: Field{[10]uint32{0x02341200, 0x01a2f746, 0x01d4006c, 0x00da6aef, 0x03cfd555, 0x01b1f7e7, 0x03627fd5, 0x02c2e356, 0x006438ad, 0x002cd9f2}}, Y: Field{[10]uint32{0x028fba51, 0x0092678b, 0x0349dfd2, 0x03d72715, 0x02b4986c, 0x0089a1c0, 0x002f3657, 0x03a059e6, 0x03440b99, 0x00300d91}}}, + {X: Field{[10]uint32{0x00914d29, 0x01fd29e2, 0x01386a74, 0x00293c9f, 0x00e74076, 0x00837a11, 0x02244c00, 0x037b3df8, 0x004b723d, 0x0036cda2}}, Y: Field{[10]uint32{0x0179e023, 0x03ccccdf, 0x023b40e5, 0x0093f683, 0x03fef90e, 0x037bc3ca, 0x01e07507, 0x00e8f0a8, 0x03cc2a74, 0x0022b921}}}, + {X: Field{[10]uint32{0x01a316c4, 0x0171a826, 0x03123ccf, 0x00b9b1b0, 0x0176b473, 0x007bbd3e, 0x02458213, 0x0084aea3, 0x0018f71c, 0x001965c6}}, Y: Field{[10]uint32{0x013604db, 0x001dd538, 0x035db4cd, 0x00c71c0d, 0x01526a28, 0x00dd8446, 0x0087f391, 0x01434cec, 0x03913533, 0x001057d9}}}, + {X: Field{[10]uint32{0x00ebd65a, 0x0332b1d8, 0x01338fcb, 0x00fe5868, 0x01905390, 0x01fadb36, 0x0182a639, 0x03d2c908, 0x033a13a8, 0x003cbd3a}}, Y: Field{[10]uint32{0x00ef9ca8, 0x0032bf82, 0x00b6e795, 0x00fce8ef, 0x0018811b, 0x03aae3af, 0x02dc8b74, 0x02535c82, 0x027b667e, 0x00295d75}}}, + {X: Field{[10]uint32{0x01113a49, 0x01ad34c7, 0x00a47e8c, 0x01df301a, 0x03884b3f, 0x034f249f, 0x028fa51f, 0x03c318cc, 0x020da058, 0x0028939e}}, Y: Field{[10]uint32{0x010ef78b, 0x01c84bd1, 0x00c81a9a, 0x00559179, 0x010bcee6, 0x00a5c675, 0x032fe3f8, 0x0295a67a, 0x003079ac, 0x002fa36e}}}, + {X: Field{[10]uint32{0x01efad5a, 0x0076dc90, 0x024b8098, 0x029d23c2, 0x0142212d, 0x03af5660, 0x036cc325, 0x005e5df6, 0x00cb77e1, 0x0039668f}}, Y: Field{[10]uint32{0x00a800d9, 0x030b5381, 0x012999d4, 0x005a9281, 0x00d69034, 0x00e268b6, 0x00a10a22, 0x0099a330, 0x0145fdda, 0x002a381d}}}, + {X: Field{[10]uint32{0x024b8f32, 0x03d8183f, 0x00e9f0da, 0x01d6aaa5, 0x01fc6c1a, 0x036afa72, 0x00721f93, 0x002f96fb, 0x0263a3c7, 0x000c646c}}, Y: Field{[10]uint32{0x01f38a96, 0x02c7e657, 0x00491717, 0x009d4f9d, 0x00c7af7b, 0x028f2eac, 0x01a87c4e, 0x026f1caa, 0x02cc1c7a, 0x000ce464}}}, + {X: Field{[10]uint32{0x0187023a, 0x01e1d3e4, 0x014638b9, 0x0394f04e, 0x0012f408, 0x03a0e6c8, 0x0147e275, 0x0376c23f, 0x03c604f9, 0x0018f757}}, Y: Field{[10]uint32{0x0104bd9a, 0x00d72f21, 0x0239b84f, 0x00410588, 0x03067e09, 0x004bbdfb, 0x016cccfd, 0x02df9b51, 0x00b402e8, 0x0006bc12}}}, + {X: Field{[10]uint32{0x031bcf13, 0x036fd2d9, 0x025c12d3, 0x01030ae3, 0x032e1d86, 0x03dd4712, 0x007229b7, 0x004bb32e, 0x0057cd83, 0x0002a4b9}}, Y: Field{[10]uint32{0x03fba768, 0x03ca4b97, 0x00b3f551, 0x013cf56d, 0x02be46ab, 0x0281f59c, 0x00492413, 0x03ad7461, 0x03565447, 0x0035ebb6}}}, + {X: Field{[10]uint32{0x01b10495, 0x0375be0e, 0x035ba6c0, 0x0179617c, 0x004789f5, 0x013c02ed, 0x0320f021, 0x0274880a, 0x0170b9e0, 0x0007b9ae}}, Y: Field{[10]uint32{0x009e9462, 0x03443837, 0x032be3f8, 0x02ef5282, 0x019dcf73, 0x01894a21, 0x023c8a04, 0x03bbd746, 0x03eceff9, 0x001f2443}}}, + {X: Field{[10]uint32{0x0306a76a, 0x03459663, 0x01cebe4f, 0x025cc0a1, 0x001abe9e, 0x00f4121c, 0x0328d7c4, 0x00655c14, 0x03b9c2ac, 0x002c6708}}, Y: Field{[10]uint32{0x03a38398, 0x016ca0cd, 0x00a49274, 0x01f34232, 0x01c60560, 0x038da791, 0x0380f8cf, 0x022dc1bc, 0x01bec07c, 0x001e6a04}}}, + {X: Field{[10]uint32{0x014f49a5, 0x026bbcc0, 0x02016b1e, 0x0262e2ca, 0x014f3fbf, 0x0099a915, 0x00888f5e, 0x017f09f0, 0x039f9ed3, 0x000f0836}}, Y: Field{[10]uint32{0x03fbc4d5, 0x025438d6, 0x009ea7d8, 0x02d733d2, 0x029327c1, 0x02879684, 0x010815a4, 0x0398ebd8, 0x02943f29, 0x002eceb0}}}, + {X: Field{[10]uint32{0x02ea4389, 0x0248b14b, 0x00014f6b, 0x03f0233a, 0x00efa29f, 0x034ce091, 0x02b59040, 0x01ba7913, 0x01bab474, 0x003f4733}}, Y: Field{[10]uint32{0x028df06e, 0x02080ca6, 0x0004097a, 0x014843db, 0x0373961a, 0x010f393a, 0x012439fc, 0x01be43e9, 0x01465214, 0x00384195}}}, + {X: Field{[10]uint32{0x0364020c, 0x03682666, 0x03ab51e2, 0x00a636cd, 0x0183641a, 0x030ac35d, 0x0252dc73, 0x02e29bbc, 0x018eabde, 0x0038c3f4}}, Y: Field{[10]uint32{0x00dce88b, 0x0309304a, 0x01704cfb, 0x00a5abfa, 0x018e195d, 0x01c5bad0, 0x02bcab86, 0x03d20658, 0x02721824, 0x0012598d}}}, + {X: Field{[10]uint32{0x015bda37, 0x0085f9d4, 0x00548e6e, 0x00001550, 0x015cd723, 0x00ea7702, 0x02ea7848, 0x03e4c386, 0x038926dd, 0x0012f07d}}, Y: Field{[10]uint32{0x0200ca69, 0x0133f374, 0x0047163a, 0x01b0a94b, 0x0336d8a2, 0x00d2f66a, 0x00bfa2e7, 0x006c0237, 0x02b695dc, 0x00259acc}}}, + {X: Field{[10]uint32{0x00f036d4, 0x03ffa855, 0x0139aaff, 0x023b51ad, 0x009004f9, 0x03b3a6f1, 0x030f7d26, 0x012e2d03, 0x027b9c86, 0x0008f4f8}}, Y: Field{[10]uint32{0x02c0b05d, 0x01b1e522, 0x026c71b3, 0x02eca24a, 0x01b3dfef, 0x03054354, 0x00143d6a, 0x0289f331, 0x03ebf680, 0x002f9185}}}, + {X: Field{[10]uint32{0x026009c0, 0x0392250f, 0x01aab56d, 0x02472db0, 0x004a5130, 0x01ded730, 0x02e0a894, 0x00edc3d1, 0x03d014cd, 0x000a2b72}}, Y: Field{[10]uint32{0x00e31601, 0x024b33bf, 0x00fdaf4a, 0x031cf7b5, 0x0025040d, 0x00233f93, 0x03250b46, 0x013328e3, 0x00387520, 0x001f126a}}}, + {X: Field{[10]uint32{0x00a29d08, 0x03c867c7, 0x02a0cc86, 0x01ee9517, 0x00ea52ec, 0x003613d8, 0x0044ab87, 0x00208e94, 0x00b8a86f, 0x001dd821}}, Y: Field{[10]uint32{0x001c60db, 0x00d14c96, 0x00b2cd08, 0x01c9615c, 0x03def172, 0x027959f6, 0x010bc384, 0x034942d0, 0x02cb1048, 0x00182eef}}}, + {X: Field{[10]uint32{0x028f2350, 0x03879f48, 0x035fbd4f, 0x02e7b5ab, 0x01e3db94, 0x01811254, 0x019667bc, 0x03bd2257, 0x020ffd32, 0x001177cb}}, Y: Field{[10]uint32{0x03eaf095, 0x035e4618, 0x0399473f, 0x032da2ec, 0x004de155, 0x010592e6, 0x024076ed, 0x03f819a7, 0x024b1a8c, 0x0029cc91}}}, + {X: Field{[10]uint32{0x027dd7ea, 0x027c386f, 0x03ebe7f6, 0x03a1e0f3, 0x008ae9bb, 0x0124e8bf, 0x00bff80c, 0x03f47e9d, 0x036b46a5, 0x001a4125}}, Y: Field{[10]uint32{0x022c3e64, 0x01886bb2, 0x03cfd5ad, 0x0115799b, 0x0030f1df, 0x02802cd0, 0x0241a221, 0x0050d818, 0x01b8df9d, 0x0006741c}}}, + {X: Field{[10]uint32{0x01aef659, 0x00a3a14a, 0x00f0bef5, 0x00d47ba0, 0x03e01def, 0x03a02603, 0x01e805c8, 0x0341d6a3, 0x0328f977, 0x00212761}}, Y: Field{[10]uint32{0x025bf428, 0x00c5652b, 0x006ffedf, 0x026bb1c9, 0x018042dd, 0x0301a743, 0x017adadb, 0x018a0ee7, 0x01c46c88, 0x00361255}}}, + {X: Field{[10]uint32{0x032d58eb, 0x0319d191, 0x01281e27, 0x031fa9a1, 0x0054588d, 0x035d4d2b, 0x03facec8, 0x001b9839, 0x034c2345, 0x0038f592}}, Y: Field{[10]uint32{0x025a36eb, 0x007cd8eb, 0x030efbc6, 0x00e53265, 0x0011a9c8, 0x022ba966, 0x0047baf6, 0x00aa11d1, 0x013ccf82, 0x00128cab}}}, + {X: Field{[10]uint32{0x0063bbaa, 0x021f54d5, 0x03ece0c7, 0x02aba484, 0x02889877, 0x02d9d8e6, 0x036f1323, 0x0168c466, 0x012857d1, 0x003d071e}}, Y: Field{[10]uint32{0x014d9328, 0x018140de, 0x016d07cc, 0x0239fa91, 0x00630c45, 0x014b6777, 0x00075941, 0x01315534, 0x010e00c8, 0x001cf3f3}}}, + {X: Field{[10]uint32{0x01186079, 0x014bf5de, 0x0321d67f, 0x0071079e, 0x030e0cba, 0x02bb64e7, 0x03a4a02c, 0x02e13391, 0x0347047a, 0x00387485}}, Y: Field{[10]uint32{0x01b2b668, 0x006abf9f, 0x02f63af8, 0x019a6b24, 0x01fb26da, 0x0092a040, 0x01728a3e, 0x03028fb6, 0x0228aa4b, 0x0005ec2d}}}, + {X: Field{[10]uint32{0x006ef1d8, 0x0239f736, 0x00c8095a, 0x012e34a4, 0x005d7ddb, 0x014ad36c, 0x009da2dd, 0x019e54c6, 0x018af8f8, 0x002a2800}}, Y: Field{[10]uint32{0x0026518b, 0x02ae9f5a, 0x00c17fc8, 0x035e72ad, 0x0225b927, 0x00d8208f, 0x0180c7e9, 0x02287b7e, 0x006c84b8, 0x0022ee58}}}, + {X: Field{[10]uint32{0x036fffed, 0x03589fdc, 0x038f4cd8, 0x0384f7cc, 0x00e4e0c0, 0x003af698, 0x03a57c05, 0x0179136a, 0x02716ee0, 0x001ce0f1}}, Y: Field{[10]uint32{0x0289f0e0, 0x03625b23, 0x00ba004a, 0x01225487, 0x0338eafd, 0x031df6ab, 0x00cb973f, 0x0129d18e, 0x01465f16, 0x000ef72e}}}, + {X: Field{[10]uint32{0x01372dfd, 0x023e42eb, 0x00c1e085, 0x03d01483, 0x031ca36a, 0x00216018, 0x03e64312, 0x02b25e5a, 0x021c8bc8, 0x00187e9f}}, Y: Field{[10]uint32{0x03eba33d, 0x00d121b0, 0x002078d6, 0x02c252c3, 0x00a5f646, 0x02210778, 0x0287909c, 0x039a50c8, 0x036836c3, 0x000fc359}}}, + {X: Field{[10]uint32{0x02c4a740, 0x00c428ec, 0x0116d3cb, 0x01250efc, 0x00b4f143, 0x03d220aa, 0x0092defc, 0x03180664, 0x022bca0a, 0x002180a7}}, Y: Field{[10]uint32{0x001c2f7c, 0x018edf49, 0x00480154, 0x014f75c2, 0x00ef5f15, 0x004885b2, 0x0261cffd, 0x015bc3cc, 0x006ecd90, 0x002e2fa4}}}, + {X: Field{[10]uint32{0x03ad95cc, 0x011d3013, 0x0390e2f6, 0x02c17f17, 0x0348c4a6, 0x0035ae6a, 0x01d6c4cd, 0x02921d62, 0x03e5912a, 0x00385cbd}}, Y: Field{[10]uint32{0x00acc401, 0x019cf702, 0x00290ea0, 0x01e54027, 0x010d7bfd, 0x022d935f, 0x019920ce, 0x003b4ee2, 0x03c12b0a, 0x003b6f48}}}, + {X: Field{[10]uint32{0x02873494, 0x00df6f8c, 0x00616d1f, 0x01e335aa, 0x032d931c, 0x020e37a4, 0x03b22abf, 0x03f0922d, 0x028d322e, 0x001e61ae}}, Y: Field{[10]uint32{0x02a13634, 0x02f25a04, 0x0201ee6e, 0x034f4edf, 0x002420a5, 0x034a7f83, 0x01b75440, 0x001648c6, 0x03224c75, 0x001a4faa}}}, + {X: Field{[10]uint32{0x01e00383, 0x02319738, 0x01d4603e, 0x034daa2a, 0x03400bb5, 0x034dac4c, 0x000a6d88, 0x01d9cdd8, 0x01384a72, 0x002e9650}}, Y: Field{[10]uint32{0x002ce557, 0x02676fcf, 0x019bd867, 0x0114bd88, 0x03d9c685, 0x00c4162f, 0x03fc9535, 0x0204ac89, 0x0228bc1b, 0x001d1bd3}}}, + {X: Field{[10]uint32{0x00476c8f, 0x02be1a48, 0x006b9802, 0x035cb3c3, 0x036bf96c, 0x02c5de27, 0x02eeb77b, 0x02c45f21, 0x01c992d6, 0x00117fd0}}, Y: Field{[10]uint32{0x0002b59f, 0x035a5c88, 0x015cbec3, 0x021a1ff2, 0x004f522e, 0x009c59f6, 0x010c9e10, 0x038eb880, 0x01bf6422, 0x0024c93d}}}, + {X: Field{[10]uint32{0x016ed68f, 0x00fb30f0, 0x02a7d9a9, 0x0293655d, 0x00d00bad, 0x02199bb5, 0x031c282e, 0x013681c5, 0x0235487a, 0x002eb5e7}}, Y: Field{[10]uint32{0x007b57d2, 0x0354371e, 0x029207a6, 0x005e40e2, 0x005b1535, 0x0076c335, 0x0202e129, 0x021290c6, 0x022eefb1, 0x00064e5e}}}, + {X: Field{[10]uint32{0x023c8a41, 0x0100ef27, 0x01b79cfa, 0x00374d99, 0x0022cf89, 0x025d56ff, 0x004d5835, 0x01d7b183, 0x01072d88, 0x00377f88}}, Y: Field{[10]uint32{0x033f62e7, 0x00ad8211, 0x00d90ce2, 0x00fe1f04, 0x028dbe0d, 0x0230a21c, 0x015674c2, 0x002a2a48, 0x0117491d, 0x00318af6}}}, + {X: Field{[10]uint32{0x027eb299, 0x0203b6d9, 0x03a64b11, 0x01a68f67, 0x00d75942, 0x03be7657, 0x00ccadfb, 0x0248fe5a, 0x0253c07f, 0x002497da}}, Y: Field{[10]uint32{0x01e7809c, 0x00e6582c, 0x010b7b29, 0x00e2e329, 0x0058f000, 0x03e73b92, 0x008b26b7, 0x006399bc, 0x00ff01f9, 0x0004203a}}}, + {X: Field{[10]uint32{0x0320dd80, 0x01e2ea09, 0x00d0d878, 0x0341ac38, 0x0012768b, 0x007c0ebc, 0x025d2c7d, 0x000a0ce3, 0x01dda75f, 0x0030a392}}, Y: Field{[10]uint32{0x010db12b, 0x02116ad7, 0x00a98331, 0x02d35fda, 0x03ec5ae6, 0x0261f859, 0x0112c5b4, 0x02926f31, 0x0189c941, 0x0019c3e2}}}, + {X: Field{[10]uint32{0x00837cbb, 0x03e1b28b, 0x006f37b9, 0x01235650, 0x02b21dae, 0x017a3816, 0x008c196d, 0x016fa206, 0x013e9503, 0x0001ea41}}, Y: Field{[10]uint32{0x003a7e1c, 0x00af43d1, 0x02352e7f, 0x03dbdfef, 0x026de026, 0x03425f5d, 0x00774e79, 0x0252de65, 0x008e8e76, 0x00103b82}}}, + {X: Field{[10]uint32{0x02036aa2, 0x029e7f43, 0x01b956c6, 0x021686d8, 0x02e0b32c, 0x025986c5, 0x008ef81e, 0x00031536, 0x00eabfbb, 0x000cebde}}, Y: Field{[10]uint32{0x03cfd3c0, 0x01231a74, 0x00629d80, 0x022017bd, 0x03153319, 0x03215742, 0x01796440, 0x029e5b13, 0x02af0537, 0x001c4f9e}}}, + {X: Field{[10]uint32{0x01583bd0, 0x0031c812, 0x0163df9a, 0x02901e5f, 0x031326df, 0x01b59d30, 0x02955739, 0x00f4cca5, 0x00145a3f, 0x00316234}}, Y: Field{[10]uint32{0x0053cdfa, 0x00c719ab, 0x020d7375, 0x009232bd, 0x027f7470, 0x03f4b35d, 0x02baa8fc, 0x0336b6ae, 0x03d16c67, 0x002d7033}}}, + {X: Field{[10]uint32{0x0038d29e, 0x02ad48e0, 0x01d5a2f2, 0x00887c3b, 0x0397223f, 0x01924d06, 0x008ef12c, 0x010b19f1, 0x01edb937, 0x0025acf5}}, Y: Field{[10]uint32{0x00e44c4e, 0x007b032c, 0x016aa996, 0x015d2ca3, 0x01bf25fe, 0x0339ed3b, 0x019a2e64, 0x028174dc, 0x00aa38a3, 0x0036d1d7}}}, + {X: Field{[10]uint32{0x0244f0c7, 0x0369dfd5, 0x02782a62, 0x010968a1, 0x001eea3a, 0x01198aa7, 0x00cb00b1, 0x013b9bec, 0x036e3d89, 0x00104bd2}}, Y: Field{[10]uint32{0x02a676fe, 0x026be1bd, 0x031d6f13, 0x0226300f, 0x01a8503e, 0x00e1d10a, 0x03de8139, 0x032016ff, 0x0236ab9b, 0x002a13bd}}}, + {X: Field{[10]uint32{0x00563252, 0x01387eb9, 0x01049379, 0x0312270e, 0x0132fdfd, 0x00cb1063, 0x031421da, 0x00c0a14b, 0x0385c7b4, 0x00097c29}}, Y: Field{[10]uint32{0x0004e4bc, 0x009a20d8, 0x02334a02, 0x03d4771b, 0x02da716a, 0x03afbd01, 0x00953a3a, 0x0242d627, 0x010d4571, 0x003bfac2}}}, + {X: Field{[10]uint32{0x01741c6f, 0x0356293b, 0x02cfde0b, 0x01610c9e, 0x03f02fed, 0x027a8f9f, 0x034403a4, 0x03ebd2b2, 0x02b7f367, 0x00143f52}}, Y: Field{[10]uint32{0x0146dd5f, 0x00c1f18f, 0x0207ea56, 0x033e81e5, 0x022d08ab, 0x02b6c70e, 0x020cb520, 0x03352194, 0x01a73c9d, 0x001e2af0}}}, + {X: Field{[10]uint32{0x006a477a, 0x03efb441, 0x03313bbc, 0x007d2e53, 0x02c35762, 0x00c3c41f, 0x038fa664, 0x01fde4ce, 0x03d4cfaf, 0x00055d60}}, Y: Field{[10]uint32{0x017e8db5, 0x02737a8a, 0x02aaffc0, 0x02359674, 0x01fe35ed, 0x011b5216, 0x00d4355c, 0x0347f983, 0x0235ce8c, 0x0026a9ac}}}, + {X: Field{[10]uint32{0x033300be, 0x00ef1296, 0x03494f4b, 0x037e2f9a, 0x02f2edce, 0x016cd65d, 0x00affc16, 0x00980f91, 0x03625d26, 0x000f112e}}, Y: Field{[10]uint32{0x00bc2535, 0x03b0afcf, 0x007b9079, 0x031c7fdc, 0x021ef0e8, 0x00166054, 0x00d45949, 0x00eae17b, 0x01616797, 0x00222c71}}}, + {X: Field{[10]uint32{0x02298958, 0x0096e3ee, 0x01d935ee, 0x031b821f, 0x008fc5d9, 0x00fc8f31, 0x0371d193, 0x01ae5fcb, 0x024de160, 0x000c7509}}, Y: Field{[10]uint32{0x018251cb, 0x0004641c, 0x032c44ae, 0x02d8b98a, 0x00c8e41d, 0x021556e6, 0x025180c9, 0x007498a1, 0x01c0a3aa, 0x00118182}}}, + {X: Field{[10]uint32{0x0103ad2f, 0x0091eb97, 0x03b78a87, 0x007602a3, 0x03352d1d, 0x037060d2, 0x02b206d3, 0x011c9182, 0x030a8ff1, 0x0007d547}}, Y: Field{[10]uint32{0x0116a6e3, 0x03a8cfb0, 0x03b32ecc, 0x02d94255, 0x00fcb97a, 0x000afb8d, 0x0144f818, 0x02c5236e, 0x0006a4c8, 0x0009094f}}}, + {X: Field{[10]uint32{0x01cf333e, 0x02daed70, 0x003a87aa, 0x01ccaabb, 0x00206a1f, 0x03fd6a31, 0x03343119, 0x02101cc4, 0x021d27f0, 0x00378b13}}, Y: Field{[10]uint32{0x0195170d, 0x0173f8a0, 0x01a71c5a, 0x00ab2cb5, 0x019226ca, 0x007e9263, 0x03f4a8e4, 0x0334e8c7, 0x03a140fe, 0x0037204e}}}, + {X: Field{[10]uint32{0x00a95612, 0x02f13046, 0x01620a54, 0x03462bb5, 0x00c1f54b, 0x00e0b0bc, 0x02c4a22c, 0x012b204c, 0x01b2adf5, 0x001bf717}}, Y: Field{[10]uint32{0x030e221e, 0x03a24565, 0x00d26944, 0x032a9b71, 0x03cf60b0, 0x00748590, 0x00110536, 0x03a53703, 0x00e5f318, 0x0036cfe9}}}, + {X: Field{[10]uint32{0x03680603, 0x01dedcd4, 0x030fc7fd, 0x00342177, 0x00bb7665, 0x035fae84, 0x02ea6f4d, 0x0071468e, 0x02c6ea0e, 0x0031fadd}}, Y: Field{[10]uint32{0x035bf655, 0x011dc4b7, 0x013e0e6f, 0x00e6a0ad, 0x020a4f4a, 0x02f0cbbc, 0x0041c3d7, 0x0024a80f, 0x01d7b788, 0x0016b870}}}, + {X: Field{[10]uint32{0x00aa89ed, 0x004ea632, 0x01857b48, 0x02de0867, 0x021a52c7, 0x00c4afee, 0x00e048e6, 0x022d6d93, 0x01a2b7e7, 0x00320541}}, Y: Field{[10]uint32{0x03096806, 0x0177f037, 0x007fa87d, 0x01fe5ac9, 0x01c222be, 0x0167c0cf, 0x01e49be4, 0x03884578, 0x00426d6c, 0x0011b6ca}}}, + {X: Field{[10]uint32{0x00503bf8, 0x01fae79e, 0x031c90a1, 0x00482f71, 0x00f7dec3, 0x00eb0d42, 0x005ff0d8, 0x030f561c, 0x025515f9, 0x0032b5d4}}, Y: Field{[10]uint32{0x026bd719, 0x02704b1b, 0x034c52d1, 0x039496da, 0x0106231b, 0x00e39358, 0x012ddc76, 0x036e5fb3, 0x020276cf, 0x000cacda}}}, + {X: Field{[10]uint32{0x024cdd25, 0x03a4036f, 0x03fabc70, 0x0196094c, 0x00f17f3c, 0x035ac576, 0x02ca8a47, 0x01f8c15b, 0x0144e22b, 0x00253488}}, Y: Field{[10]uint32{0x03d93bf9, 0x006a1351, 0x02e5f612, 0x00b5e6d2, 0x03828bf7, 0x03404932, 0x01dfbbdb, 0x00be1762, 0x020d5fef, 0x0004b01d}}}, + {X: Field{[10]uint32{0x016731a3, 0x004ae2e4, 0x022253b1, 0x027f03cb, 0x0213cba1, 0x01c86f78, 0x03520407, 0x01807f77, 0x0023ef00, 0x000c9717}}, Y: Field{[10]uint32{0x022498e0, 0x02397bb5, 0x0370e962, 0x02c91763, 0x015cb38c, 0x01931f4a, 0x03f3dd30, 0x00590e64, 0x0398c09c, 0x001674f2}}}, + {X: Field{[10]uint32{0x01ee2318, 0x01b61864, 0x00a7cda9, 0x00e0f9fd, 0x027d1874, 0x006f7f69, 0x02515168, 0x020c5928, 0x0089544b, 0x0027241c}}, Y: Field{[10]uint32{0x0372d20d, 0x00639be0, 0x00911d97, 0x037a7ef9, 0x01547117, 0x03089416, 0x00539eb5, 0x0018c0d9, 0x02e7e701, 0x003d8e77}}}, + {X: Field{[10]uint32{0x002b7a82, 0x03e60d4c, 0x03fc0f32, 0x0373ab06, 0x01ec5544, 0x01e93ee0, 0x032a1d89, 0x0301b132, 0x0007ede9, 0x000d3c52}}, Y: Field{[10]uint32{0x016d9c57, 0x007ca902, 0x024828d0, 0x019d75af, 0x003c54c3, 0x01a2f79a, 0x0318813a, 0x0288a3d7, 0x028cec6a, 0x001e10de}}}, + {X: Field{[10]uint32{0x0239788b, 0x01ed8005, 0x00d75388, 0x03fc30d1, 0x01490b47, 0x032e07f7, 0x03d459af, 0x0020a380, 0x030b3f08, 0x00252634}}, Y: Field{[10]uint32{0x002522f7, 0x00da14b9, 0x03d2ece1, 0x02cd59f3, 0x00677865, 0x01461ea7, 0x001627dc, 0x02f8fac9, 0x0305b97a, 0x001e9720}}}, + {X: Field{[10]uint32{0x0354f226, 0x0114bd5d, 0x038c876d, 0x03ffaee5, 0x025d4f36, 0x00f3be23, 0x013ec32d, 0x01b8dea9, 0x036fefd3, 0x003ae823}}, Y: Field{[10]uint32{0x012015c1, 0x031f8e2f, 0x01470608, 0x01e1340a, 0x0339e171, 0x00e32f82, 0x03eade9b, 0x015329eb, 0x02b543aa, 0x003f8399}}}, + {X: Field{[10]uint32{0x0240091b, 0x0251211c, 0x01e504c7, 0x02f664b3, 0x02c8ef49, 0x03a326f3, 0x0119b77a, 0x005ca7d8, 0x03c20bd2, 0x00155752}}, Y: Field{[10]uint32{0x03437b54, 0x0046731f, 0x00315d30, 0x03fe953e, 0x036c9052, 0x024fad29, 0x02869415, 0x0078ccb2, 0x01b86952, 0x003333af}}}, + {X: Field{[10]uint32{0x03fe8872, 0x03c21ec3, 0x01823679, 0x03b31a4b, 0x013f3060, 0x005c8f51, 0x0333833d, 0x00d1d10b, 0x039c19da, 0x000cdca6}}, Y: Field{[10]uint32{0x0034fc30, 0x02f59317, 0x00800b4a, 0x001f5faf, 0x00fac2f0, 0x02fee011, 0x00854056, 0x03d813ae, 0x024f283a, 0x002a52da}}}, + {X: Field{[10]uint32{0x01f1dc11, 0x03857803, 0x03c32d8a, 0x03835131, 0x0378124e, 0x00eae4b3, 0x03b060a7, 0x0119e191, 0x009fafe6, 0x000a86a2}}, Y: Field{[10]uint32{0x008b75d8, 0x0017fcff, 0x01218986, 0x0341fbe4, 0x0275aba0, 0x01b6efc3, 0x02ba46be, 0x007e39a1, 0x023d3bf1, 0x00189be5}}}, + {X: Field{[10]uint32{0x00197d6f, 0x02f2c2df, 0x027fff2d, 0x02cd38e4, 0x01639148, 0x0162ecbd, 0x0062f702, 0x039bf3ff, 0x014ca303, 0x0011c0a1}}, Y: Field{[10]uint32{0x031e1156, 0x011111f5, 0x02c5195c, 0x02cc3cec, 0x022da76e, 0x00164dcb, 0x0075c2de, 0x0095f345, 0x01b28513, 0x001f6898}}}, + {X: Field{[10]uint32{0x01319c5b, 0x01f165b3, 0x00e03485, 0x03f5f681, 0x0351d90c, 0x01b9279e, 0x0015cae0, 0x008e8194, 0x01c5a0cc, 0x001c00bb}}, Y: Field{[10]uint32{0x03db73bb, 0x00f88c30, 0x02975db6, 0x015a13f1, 0x0178c47b, 0x027f5845, 0x012d2ae1, 0x02a961eb, 0x01bd06b7, 0x001bca11}}}, + {X: Field{[10]uint32{0x0348d485, 0x02b7c2db, 0x00ae67c1, 0x0321c976, 0x03f4cc5b, 0x00755143, 0x0169f057, 0x018436c8, 0x00d4483d, 0x0009cca5}}, Y: Field{[10]uint32{0x03d942b1, 0x0221d2d9, 0x036d3726, 0x030473ee, 0x02a71e3c, 0x0208e6a8, 0x039a0031, 0x03278280, 0x01a20ffe, 0x00266c90}}}, + {X: Field{[10]uint32{0x018c9a69, 0x00d7a3fa, 0x00e83b03, 0x00ab134a, 0x010710c7, 0x02a14a97, 0x0126a535, 0x02d103eb, 0x03823055, 0x0006fb33}}, Y: Field{[10]uint32{0x038aecfc, 0x03780fde, 0x03489e2f, 0x00597892, 0x002c5db7, 0x0351c7ab, 0x00ce0a40, 0x03b881f2, 0x0166ac0e, 0x0003cead}}}, + {X: Field{[10]uint32{0x03128160, 0x02386494, 0x02197fae, 0x008dde24, 0x00a19023, 0x023f99cb, 0x0149caec, 0x00f54d76, 0x02cf4f03, 0x0036f93b}}, Y: Field{[10]uint32{0x01aa566f, 0x00f51f35, 0x00a1f5fd, 0x0018702a, 0x01896fc8, 0x012583f1, 0x0241c722, 0x00396d58, 0x03c7927f, 0x002cfd42}}}, + {X: Field{[10]uint32{0x01bd1e20, 0x03b3d28e, 0x02631133, 0x0212c2b8, 0x03caf7f4, 0x03715cff, 0x011887a5, 0x0031a516, 0x0075bed8, 0x001990ff}}, Y: Field{[10]uint32{0x038d58e5, 0x02d717e1, 0x03b7a1f8, 0x0270a4f0, 0x038ec1e6, 0x031289b8, 0x001875fd, 0x01f24eeb, 0x0285f7ac, 0x00011c04}}}, + {X: Field{[10]uint32{0x01422a21, 0x00d0bf81, 0x03f14516, 0x00daf298, 0x03ef19d9, 0x00fe0839, 0x01582805, 0x0335781c, 0x03decf1d, 0x00267e42}}, Y: Field{[10]uint32{0x019cd4fd, 0x034b5e6e, 0x01e2a180, 0x0064cfe4, 0x025cfd77, 0x02fafab5, 0x0390a868, 0x01856c14, 0x01306dfc, 0x0028137f}}}, + {X: Field{[10]uint32{0x02e33433, 0x00774ca1, 0x0033eaad, 0x01f81270, 0x00bcf71f, 0x024ad59e, 0x03b4e351, 0x02dff917, 0x02483184, 0x001539f3}}, Y: Field{[10]uint32{0x00c0e8ef, 0x033b2205, 0x02c3c4de, 0x0118f1a8, 0x024d4f85, 0x01fd3938, 0x028b85cb, 0x0272de0e, 0x033b65ba, 0x0032b0a0}}}, + {X: Field{[10]uint32{0x03f02e08, 0x01a1ae12, 0x027d31f7, 0x0058a558, 0x034705aa, 0x03d2a65c, 0x00f4e7b8, 0x0264f911, 0x024ffb60, 0x0033e192}}, Y: Field{[10]uint32{0x036f1bde, 0x01db1f36, 0x02a51af2, 0x0145dd12, 0x016b8a19, 0x03a62f7c, 0x01db874c, 0x03ad3519, 0x020fb736, 0x001ea634}}}, + {X: Field{[10]uint32{0x0159d1ae, 0x001c849b, 0x03f26c9e, 0x01141829, 0x02a25693, 0x02a62bf8, 0x022cd457, 0x03fe456b, 0x00d6516f, 0x001bfc58}}, Y: Field{[10]uint32{0x00eedc4a, 0x017065ed, 0x034deaff, 0x03b4007c, 0x017db5d5, 0x0143e71d, 0x038b4153, 0x0042b393, 0x0355bf14, 0x001747c4}}}, + {X: Field{[10]uint32{0x035dfcc9, 0x007f9327, 0x01a46f23, 0x016cdc0b, 0x01a56fe3, 0x018a1f6a, 0x037f2a2c, 0x009a4075, 0x0262aefd, 0x00026b6e}}, Y: Field{[10]uint32{0x03b04161, 0x017c54ea, 0x02e7e482, 0x010d0765, 0x012e708d, 0x034b12f7, 0x03126aff, 0x00d66c01, 0x0045cb4a, 0x002e963b}}}, + {X: Field{[10]uint32{0x00a2402d, 0x0038aa85, 0x035d652c, 0x0183a773, 0x02b5d900, 0x00b0437f, 0x00ea9457, 0x03712335, 0x001ebbdc, 0x000813a9}}, Y: Field{[10]uint32{0x0036ae38, 0x03de02eb, 0x01809789, 0x00c8fb02, 0x02fb0b9e, 0x024929be, 0x005db8a9, 0x00bcf2cb, 0x01aca195, 0x001eca22}}}, + {X: Field{[10]uint32{0x03c8ba22, 0x02b3a5d7, 0x0296a82a, 0x0243a109, 0x02a4b4f1, 0x008349ae, 0x01a6826c, 0x00c45089, 0x0269364d, 0x003df5b1}}, Y: Field{[10]uint32{0x039d3470, 0x019e9721, 0x03d1636f, 0x03d12c32, 0x031ff47c, 0x02cf1d86, 0x027d160c, 0x00e31401, 0x0177b425, 0x00056aec}}}, + {X: Field{[10]uint32{0x01352587, 0x019bc9df, 0x03f0dcb4, 0x019116d5, 0x01e50a7e, 0x000af488, 0x0066e00c, 0x00a31e2c, 0x030a87dd, 0x001ef134}}, Y: Field{[10]uint32{0x00c294d4, 0x032ae5b4, 0x0152ec68, 0x030481ad, 0x026efbc9, 0x032c1287, 0x026e0c9f, 0x00059369, 0x00542e7e, 0x003d3b52}}}, + {X: Field{[10]uint32{0x02316ef1, 0x01250ec7, 0x009d7856, 0x0086d094, 0x01c200eb, 0x027c818a, 0x005dfb95, 0x02fb9b09, 0x0184b046, 0x00155109}}, Y: Field{[10]uint32{0x00580d82, 0x000c6a52, 0x02280905, 0x018b4676, 0x02a29c41, 0x000fcb93, 0x026353a1, 0x007b6599, 0x0171c811, 0x000b8aaa}}}, + {X: Field{[10]uint32{0x01dce1eb, 0x01a7992c, 0x02dccbcd, 0x01ca107c, 0x020923f8, 0x02a32996, 0x0224c973, 0x0240f9c4, 0x00c0de88, 0x00239f7e}}, Y: Field{[10]uint32{0x01d2a0cc, 0x0390f049, 0x0066252a, 0x0388d325, 0x03c31205, 0x007eea36, 0x0147873f, 0x01b5479c, 0x00839ae8, 0x0039054c}}}, + {X: Field{[10]uint32{0x0251de8f, 0x011bd471, 0x024915d5, 0x0324d6f6, 0x01b84a9b, 0x017eb81e, 0x0169d066, 0x02a86095, 0x01dc69d8, 0x0019c8c8}}, Y: Field{[10]uint32{0x03ef005f, 0x00f5bdb9, 0x00188d33, 0x03c5acd3, 0x02f977b1, 0x000e9bbb, 0x0009ab18, 0x0225f6fa, 0x030b8708, 0x0022b590}}}, + {X: Field{[10]uint32{0x01ac3abc, 0x003d1ca2, 0x01bfc2d2, 0x026bda4f, 0x001b8beb, 0x02175da6, 0x00327182, 0x026c0148, 0x03c143e9, 0x003d38ae}}, Y: Field{[10]uint32{0x01651a2a, 0x02fc2c57, 0x03a897ea, 0x00f8817a, 0x036d80e9, 0x0033509b, 0x0322b7f7, 0x003aacb9, 0x00f5dc33, 0x00395264}}}, + {X: Field{[10]uint32{0x0139ffff, 0x004d3c43, 0x01ad8009, 0x0119ad7f, 0x0272694f, 0x00170582, 0x03c72758, 0x00963241, 0x025fc6d2, 0x0016a8ea}}, Y: Field{[10]uint32{0x00ea9531, 0x03018012, 0x0244a7f4, 0x02632c1d, 0x023146aa, 0x03d9c330, 0x003e82b5, 0x02be96e1, 0x0170617e, 0x0008b5c8}}}, + {X: Field{[10]uint32{0x03e2e7ef, 0x03ac021e, 0x00383be3, 0x03a9170d, 0x009e9a31, 0x02de18cf, 0x033acbd1, 0x01266b1a, 0x03f9d2bf, 0x000d1d4b}}, Y: Field{[10]uint32{0x001104f8, 0x01b6d1cb, 0x03edd91a, 0x02a60c1a, 0x0339d73c, 0x03d9f22e, 0x037d0763, 0x03621947, 0x03742cf3, 0x002d4fa8}}}, + {X: Field{[10]uint32{0x03047327, 0x00d4d989, 0x02d6b517, 0x018b6cae, 0x01889770, 0x001a7871, 0x01b4c9b5, 0x0113dc36, 0x022402ea, 0x00359409}}, Y: Field{[10]uint32{0x02b16f2d, 0x00547f12, 0x02c288c7, 0x00861b6c, 0x02d80143, 0x015cdd5f, 0x034db3fb, 0x02a2fb00, 0x019af2f2, 0x0014bd72}}}, + {X: Field{[10]uint32{0x011f4cc9, 0x024f0c00, 0x032acb45, 0x02a7b576, 0x010915d4, 0x007ce6af, 0x024a0e0b, 0x00097f45, 0x02c6553d, 0x0014aceb}}, Y: Field{[10]uint32{0x00e2f8c9, 0x029dc5fd, 0x03ba2432, 0x02f3839e, 0x0377af18, 0x00c6c975, 0x00016839, 0x02caee75, 0x00021c17, 0x0014551d}}}, + {X: Field{[10]uint32{0x027ef9ca, 0x02551fa0, 0x01b174d9, 0x01bae93e, 0x02eaa0ec, 0x022de704, 0x03284186, 0x02489049, 0x037ef797, 0x00232ed9}}, Y: Field{[10]uint32{0x000183f2, 0x0243e601, 0x00e19ae5, 0x0262ffb7, 0x0292974f, 0x0046d82f, 0x0240ec64, 0x004c4ada, 0x01b8b07e, 0x0028ca02}}}, + {X: Field{[10]uint32{0x0131d47b, 0x01c938f5, 0x022487f1, 0x035b0c5e, 0x013f89f2, 0x01d1cd2e, 0x00b1564d, 0x03c5f7a5, 0x01e0e2ee, 0x00363d57}}, Y: Field{[10]uint32{0x02b7d770, 0x00fa4b26, 0x02930052, 0x01317821, 0x00fa7dc6, 0x009c7993, 0x0016f71f, 0x018dc381, 0x02f5da57, 0x003a7f51}}}, + {X: Field{[10]uint32{0x016b6fdb, 0x0133d88d, 0x02b79d0f, 0x03b7b52e, 0x03a4ddb8, 0x01ddc5a7, 0x01573014, 0x02cc7fe7, 0x01bbfaa2, 0x003e9bf2}}, Y: Field{[10]uint32{0x0357d494, 0x01083803, 0x01b331b4, 0x033e7de0, 0x0043a2ad, 0x012c4476, 0x02fd1e4d, 0x01e431eb, 0x03cddfdd, 0x002dbfd5}}}, + {X: Field{[10]uint32{0x01b58e9a, 0x00fc2758, 0x02ae6bb9, 0x005d94f9, 0x00f93590, 0x02eb4126, 0x03752d9a, 0x03b765a7, 0x028ce748, 0x0008e7c0}}, Y: Field{[10]uint32{0x00f8b516, 0x013a3b05, 0x02f7c064, 0x028a46f6, 0x01d55c8a, 0x02dec50b, 0x02463b7b, 0x03dae9ee, 0x02b78831, 0x0005f7ff}}}, + {X: Field{[10]uint32{0x025e4f3b, 0x03e3dd25, 0x017bd99a, 0x00523c96, 0x00ecad3c, 0x00e26ee9, 0x0071db05, 0x025dbe67, 0x03fb728d, 0x000bbdb2}}, Y: Field{[10]uint32{0x01b0fd00, 0x006d83de, 0x00273b41, 0x010b3c5d, 0x03deeef5, 0x0364e8de, 0x01ebe8c1, 0x001e30fc, 0x03a7a382, 0x0006689e}}}, + {X: Field{[10]uint32{0x03064a0e, 0x025d764c, 0x0343698b, 0x011f614d, 0x021a4292, 0x00dde1c7, 0x03042f13, 0x00c57a23, 0x032b9af8, 0x0025cb5c}}, Y: Field{[10]uint32{0x024fd28b, 0x02bd36ea, 0x021d4f40, 0x00fc97f7, 0x02a5c2ae, 0x012f2ee8, 0x02380fee, 0x00ee1d02, 0x03baba4c, 0x000c2054}}}, + {X: Field{[10]uint32{0x02062a4c, 0x03c9d1db, 0x02ed33c4, 0x03b6bd08, 0x02e788bc, 0x0215052f, 0x03aa2951, 0x0263c60c, 0x0334ba49, 0x000f4de2}}, Y: Field{[10]uint32{0x02c4c8a3, 0x03686a3c, 0x0017093e, 0x00e34dd6, 0x013c3d52, 0x027dd700, 0x0087b502, 0x03e46602, 0x019c9217, 0x0011a915}}}, + {X: Field{[10]uint32{0x015c3087, 0x03e20b4e, 0x011e376b, 0x03c9f591, 0x02b13d70, 0x02f8ecd8, 0x032b289a, 0x02ceabf4, 0x003b1fc1, 0x003eec80}}, Y: Field{[10]uint32{0x00dfdabd, 0x028c5701, 0x00a81653, 0x00753906, 0x03f28e5b, 0x0305f6c0, 0x02b96bb9, 0x00d8a933, 0x02a5c462, 0x0025f219}}}, + {X: Field{[10]uint32{0x037a0471, 0x0137a3e1, 0x0247e6e1, 0x02debed6, 0x00295efd, 0x016389b1, 0x03d27a92, 0x02c7e802, 0x014e8eea, 0x0000a3ea}}, Y: Field{[10]uint32{0x01d23276, 0x016a4242, 0x022a5514, 0x0065345d, 0x03622219, 0x0233a743, 0x007b5e20, 0x03a3cf03, 0x010af2ee, 0x003dd867}}}, + {X: Field{[10]uint32{0x01308ae9, 0x033283be, 0x00f25c12, 0x00cc21e6, 0x014be272, 0x03ea3f8a, 0x0227ede6, 0x030455c5, 0x02857eb9, 0x0011c228}}, Y: Field{[10]uint32{0x024fa449, 0x00dae472, 0x00c3550e, 0x019821ea, 0x02854034, 0x02a4b3d5, 0x020ab601, 0x00e642cb, 0x01642e77, 0x003cd7e6}}}, + {X: Field{[10]uint32{0x0048a62f, 0x013cbe26, 0x02c6a636, 0x032cdad8, 0x02a82427, 0x00f3bb5b, 0x00903dcb, 0x02e1d362, 0x00976ff4, 0x0024d020}}, Y: Field{[10]uint32{0x015f3c6f, 0x033ed8fa, 0x020aeff3, 0x012262f1, 0x03daf64d, 0x0282eafd, 0x032d4fe0, 0x019d926a, 0x0162d4e2, 0x0038969a}}}, + {X: Field{[10]uint32{0x020ddf9a, 0x01676f1c, 0x03cac039, 0x037495b2, 0x039e0d24, 0x02959988, 0x0195da93, 0x00072b8c, 0x03a08182, 0x003d290a}}, Y: Field{[10]uint32{0x02000f86, 0x0349f802, 0x0396a60f, 0x0239c8c3, 0x0110bd4c, 0x01ce44a1, 0x01194afe, 0x03bfc1d7, 0x03cc0be3, 0x0023f49b}}}, + {X: Field{[10]uint32{0x03a6240c, 0x006c59b8, 0x009919c5, 0x03bed06c, 0x03791cac, 0x025f82a5, 0x0339ef61, 0x03350033, 0x0216e65b, 0x00316b69}}, Y: Field{[10]uint32{0x016eb8c3, 0x000229fe, 0x011a04a7, 0x01e9834d, 0x01cc2678, 0x02441aba, 0x01b0b323, 0x0318b721, 0x0168fe41, 0x00393197}}}, + {X: Field{[10]uint32{0x00c640e7, 0x02b84020, 0x002baca2, 0x01215844, 0x01e8b1fa, 0x00186969, 0x017c62e5, 0x03646f2f, 0x02c3d3f1, 0x001f064f}}, Y: Field{[10]uint32{0x03873ccd, 0x01672b65, 0x0333a26b, 0x01a0752c, 0x0103b8e0, 0x02294da1, 0x000ff310, 0x0023cf90, 0x00955114, 0x00331f3e}}}, + {X: Field{[10]uint32{0x011bd3c3, 0x0000ac2b, 0x016f1d96, 0x01547b1c, 0x0122b763, 0x039a8706, 0x01656293, 0x03c4a0c8, 0x01438e7c, 0x001dd509}}, Y: Field{[10]uint32{0x03d2137f, 0x02fe0022, 0x007c4deb, 0x00c80306, 0x01edf7d9, 0x022182be, 0x006eec20, 0x00def864, 0x029d212c, 0x000dd1c5}}}, + {X: Field{[10]uint32{0x03d90992, 0x02643d89, 0x02c5a3b9, 0x010f9536, 0x00bb48ff, 0x002af46a, 0x01c0f7f9, 0x039e1be9, 0x0399fa75, 0x0024b754}}, Y: Field{[10]uint32{0x0311b7ba, 0x0152484f, 0x029a406e, 0x00c664cb, 0x00ee4932, 0x031b14d2, 0x025c824a, 0x020f830b, 0x028ef937, 0x00172c6f}}}, + {X: Field{[10]uint32{0x0293157d, 0x01b77bf5, 0x00b376eb, 0x029ede87, 0x004f66e7, 0x0294cbf8, 0x03550532, 0x03ae4042, 0x0028468e, 0x00305dc2}}, Y: Field{[10]uint32{0x019a2e11, 0x01f492a0, 0x02bc2d2e, 0x0269de9d, 0x02070e5e, 0x0186b928, 0x029e262f, 0x01f51ff4, 0x003da014, 0x00036959}}}, + {X: Field{[10]uint32{0x036378c8, 0x03f7732b, 0x00ad533c, 0x0396fa2a, 0x01a8baab, 0x0044e4bf, 0x009a5341, 0x03948919, 0x0116e90a, 0x0004dcb8}}, Y: Field{[10]uint32{0x00346af9, 0x00adb972, 0x004d6e9b, 0x03ccaf16, 0x011d0a1c, 0x02369bd1, 0x038c2aaf, 0x01d6ef70, 0x00a26957, 0x0017bef5}}}, + {X: Field{[10]uint32{0x01dda936, 0x00b61a99, 0x00c008f3, 0x03eb840e, 0x0105e2b7, 0x03cc24a7, 0x01520097, 0x028acaf3, 0x021e9fa1, 0x000aef7c}}, Y: Field{[10]uint32{0x039d45ec, 0x0280b24c, 0x0364cb0b, 0x0331610e, 0x011806eb, 0x02a20cd8, 0x02c0dcd2, 0x02f77185, 0x01986008, 0x00146de2}}}, + {X: Field{[10]uint32{0x013005e1, 0x010e2f5d, 0x03f7f6a7, 0x01f09bb8, 0x039b63cc, 0x01bc8485, 0x0230d49e, 0x017b5de0, 0x00a4d049, 0x000d9a53}}, Y: Field{[10]uint32{0x00bc0af8, 0x02a8345c, 0x039075f5, 0x02da56d7, 0x03a87f48, 0x00635499, 0x031e17db, 0x02c4ccff, 0x03f3bbdc, 0x000b9278}}}, + {X: Field{[10]uint32{0x032013b8, 0x01225600, 0x027e85e6, 0x01cdaee2, 0x036fbc13, 0x004f12ab, 0x0113bf8d, 0x03850e9a, 0x00b1dc9c, 0x00090f61}}, Y: Field{[10]uint32{0x027f28bf, 0x02af56db, 0x02b91108, 0x020cb7ff, 0x0021a3dd, 0x037b1784, 0x023c2dc6, 0x031c77ff, 0x03adb6be, 0x0000e4c5}}}, + {X: Field{[10]uint32{0x0191ec92, 0x02550acb, 0x0185de03, 0x037bc641, 0x020ba6df, 0x0284aa3f, 0x00eab821, 0x03cfda0e, 0x03875255, 0x00076220}}, Y: Field{[10]uint32{0x0324b489, 0x0080dfcc, 0x012bc46c, 0x02b76f64, 0x039ccabd, 0x00bc2bbc, 0x0233538d, 0x03e05575, 0x03e2e919, 0x002a74e2}}}, + {X: Field{[10]uint32{0x01be3765, 0x01be6b2c, 0x00955645, 0x00a1e920, 0x015512d6, 0x01d0dd47, 0x0160e2aa, 0x00cddbdd, 0x03754c0d, 0x000e6887}}, Y: Field{[10]uint32{0x0035e005, 0x00baa750, 0x031bde0b, 0x02c4e914, 0x01ef4950, 0x0156ed12, 0x00188c4d, 0x035e78ef, 0x00a52a7f, 0x000f3cc9}}}, + {X: Field{[10]uint32{0x002e21c8, 0x0249e3ad, 0x029e948d, 0x007e9595, 0x0118ab0a, 0x00b19fdb, 0x01394a95, 0x0177ca87, 0x020cd8e2, 0x002843fd}}, Y: Field{[10]uint32{0x01f9e991, 0x013d4083, 0x03237bfd, 0x00d7c0b2, 0x0389fd2b, 0x03e2451c, 0x000c0bd4, 0x00bbe077, 0x01633ce8, 0x002d17cb}}}, + {X: Field{[10]uint32{0x03bcbcb1, 0x031167ad, 0x022b25bb, 0x03377092, 0x01bb801a, 0x01ae5c7e, 0x011f7a64, 0x010bdc41, 0x03920d50, 0x002f09a5}}, Y: Field{[10]uint32{0x01235665, 0x00d6f5dc, 0x031f478b, 0x0378760f, 0x02c7fab6, 0x0248175f, 0x0301530c, 0x00818586, 0x01fc1c03, 0x002dc111}}}, + {X: Field{[10]uint32{0x0037cb95, 0x00709024, 0x00da99a6, 0x0123daf3, 0x025f0ef4, 0x0076d110, 0x02a7f95d, 0x00da0aa0, 0x01fefd5a, 0x000f5c9e}}, Y: Field{[10]uint32{0x00159740, 0x01980bdc, 0x021622de, 0x024c3364, 0x019a2ea1, 0x02e89253, 0x0342cca2, 0x016df88a, 0x02cae636, 0x0037d489}}}, + {X: Field{[10]uint32{0x00dbe588, 0x00b0b57a, 0x02e2fd55, 0x03439085, 0x01bc439a, 0x0146cf54, 0x036c2bd9, 0x02bc02e4, 0x0130ef92, 0x0038315b}}, Y: Field{[10]uint32{0x00555fee, 0x0212ceda, 0x03e0f064, 0x031e921c, 0x03f35189, 0x01d9a683, 0x01bd1862, 0x01711103, 0x037d02a7, 0x0030af45}}}, + {X: Field{[10]uint32{0x0073315b, 0x0266b89e, 0x03c15d99, 0x00c909ca, 0x00f0d6e3, 0x00d2ebc7, 0x00398306, 0x02fd4bf6, 0x00e52b7b, 0x0026fe58}}, Y: Field{[10]uint32{0x018d0405, 0x0188e1c7, 0x001c9066, 0x03df6732, 0x01551862, 0x02914dce, 0x0016cb16, 0x007732c0, 0x019d20e0, 0x0002ca1c}}}, + {X: Field{[10]uint32{0x00351198, 0x0120280d, 0x019dc0d5, 0x0117511f, 0x0287fffb, 0x011d5f83, 0x017a6b14, 0x029c6b98, 0x016be60b, 0x000837c6}}, Y: Field{[10]uint32{0x02eb07d8, 0x003387c9, 0x020ae996, 0x01610bfb, 0x02f12ba3, 0x02b42aea, 0x03d49539, 0x001c6e81, 0x01430c0d, 0x00271c8b}}}, + {X: Field{[10]uint32{0x029bac17, 0x01998772, 0x036330a2, 0x01c48ed7, 0x00455a5f, 0x02055260, 0x019693d0, 0x02d02e51, 0x01360208, 0x000210f0}}, Y: Field{[10]uint32{0x02f12078, 0x0137d1bc, 0x00edec9b, 0x008e19dc, 0x02d0c74f, 0x0076e950, 0x011820d3, 0x03f1034b, 0x018d9095, 0x00356d6f}}}, + {X: Field{[10]uint32{0x008d11a0, 0x02f1c890, 0x01c03e05, 0x032dcbe7, 0x03708a3f, 0x02d1b5bb, 0x024ee0ca, 0x007a837a, 0x00df702c, 0x0024426d}}, Y: Field{[10]uint32{0x02dc507a, 0x03b322e5, 0x03242cf4, 0x031e44ee, 0x007348e9, 0x030b0c09, 0x03151954, 0x020072d4, 0x02c18be5, 0x001d6ea8}}}, + {X: Field{[10]uint32{0x0191113c, 0x03bbcf16, 0x02db2329, 0x00b8dc9f, 0x018e5155, 0x0080f167, 0x02dff03c, 0x02a6ec4a, 0x01f5c960, 0x003c4334}}, Y: Field{[10]uint32{0x028c465a, 0x03c2fc57, 0x0151b8f3, 0x03191e58, 0x009d2e03, 0x03fb998b, 0x01746898, 0x036a9859, 0x00e16f65, 0x002a12b2}}}, + {X: Field{[10]uint32{0x00e747a8, 0x03f9ab44, 0x03a071ea, 0x03437d62, 0x010ae0d6, 0x02297d4e, 0x0077b69a, 0x0180beb4, 0x013cffd3, 0x0027c1dc}}, Y: Field{[10]uint32{0x03ee867b, 0x03579723, 0x00afe58c, 0x00e95e5c, 0x01cbb4ea, 0x020be3b0, 0x003d7357, 0x02420f37, 0x007342b5, 0x002b7f32}}}, + {X: Field{[10]uint32{0x0195801a, 0x018cd0b3, 0x019f3640, 0x01b2c483, 0x005ce9ec, 0x03fe25e3, 0x032b870f, 0x015cd04e, 0x010e3290, 0x001b4767}}, Y: Field{[10]uint32{0x0031018f, 0x0153e31a, 0x010efba1, 0x025e48b9, 0x0325a3f5, 0x00eef738, 0x0345f7c2, 0x02d80935, 0x00a895d3, 0x001942f9}}}, + {X: Field{[10]uint32{0x00dcbd82, 0x0083319b, 0x03fa7128, 0x026771d9, 0x015c649f, 0x0387ec52, 0x027791c7, 0x033251e8, 0x01a56b3a, 0x00125c61}}, Y: Field{[10]uint32{0x03e6568c, 0x01aa5443, 0x01c3df5b, 0x02fdd060, 0x00f33ce5, 0x039d5968, 0x00078b2f, 0x0386c5f9, 0x037c11da, 0x001f5446}}}, + {X: Field{[10]uint32{0x000a743f, 0x0153fcc4, 0x030a2c31, 0x02f85291, 0x019a35f7, 0x00b361f0, 0x01b8bc75, 0x03ae7137, 0x00f9848e, 0x003ffdce}}, Y: Field{[10]uint32{0x032c38ec, 0x03fcdccb, 0x01df57bd, 0x02685c21, 0x00211b97, 0x01171628, 0x0037cdcf, 0x00f25dda, 0x0255cd91, 0x00041ae2}}}, + {X: Field{[10]uint32{0x001b4830, 0x024086e6, 0x00e38ccb, 0x03d177f2, 0x0141899e, 0x01f58005, 0x026876a3, 0x011b2d11, 0x01a48d35, 0x000c80e4}}, Y: Field{[10]uint32{0x0251b102, 0x01c48159, 0x0000f09c, 0x01f798ce, 0x0323fa2d, 0x015c1ed2, 0x002f3032, 0x0250479d, 0x0030b455, 0x0011bd8c}}}, + {X: Field{[10]uint32{0x0185fe9e, 0x005b8017, 0x013f9adf, 0x001848a0, 0x00558791, 0x01d8c7c6, 0x0137f7fb, 0x03a2349a, 0x0240a925, 0x002f9133}}, Y: Field{[10]uint32{0x036e1dc4, 0x02c0998a, 0x0089324d, 0x032a6906, 0x02ca6948, 0x03d12db8, 0x02806d4b, 0x01b719f9, 0x01e7d22e, 0x0005d56b}}}, + {X: Field{[10]uint32{0x0333ddae, 0x00810d73, 0x012ddeeb, 0x002d0cea, 0x03da6aa8, 0x019bf0a8, 0x03b05314, 0x035827e0, 0x02b158dd, 0x00234fc1}}, Y: Field{[10]uint32{0x0337af63, 0x011c1752, 0x01f2c4c7, 0x0106630f, 0x02f1d0a6, 0x02f4ba50, 0x036e5f4d, 0x0144eee2, 0x0299efde, 0x000b5552}}}, + {X: Field{[10]uint32{0x01596729, 0x03aa11a4, 0x02627210, 0x01d1d0ad, 0x00d0c71d, 0x00153f30, 0x01c1cb3a, 0x03d54c95, 0x039cf258, 0x003e0529}}, Y: Field{[10]uint32{0x032d867d, 0x004fdd68, 0x002dc318, 0x022bb7ae, 0x010271ce, 0x0347cf51, 0x0080c42f, 0x02d2c88f, 0x0095be48, 0x0000467f}}}, + {X: Field{[10]uint32{0x0142fb60, 0x0399097a, 0x03ec8109, 0x03efbe45, 0x01d77e57, 0x038ab4c1, 0x0262bfbe, 0x03c76d76, 0x01461c37, 0x00257a3f}}, Y: Field{[10]uint32{0x00e2db93, 0x000c0a82, 0x00d09a03, 0x03f8c1ad, 0x01d3d5b1, 0x002d162e, 0x01ace316, 0x033686a9, 0x031edfdb, 0x003770a2}}}, + {X: Field{[10]uint32{0x03981e77, 0x02ac3a29, 0x02149e2d, 0x0303d0db, 0x026f4e5c, 0x03f08209, 0x0320604c, 0x02205af1, 0x03fc47e1, 0x00301950}}, Y: Field{[10]uint32{0x03021441, 0x00d20c65, 0x0234ee66, 0x00c45fb1, 0x01281854, 0x00653327, 0x034819ac, 0x029f0844, 0x0065f3a4, 0x000881c1}}}, + {X: Field{[10]uint32{0x00d5c68e, 0x025c21ad, 0x001caa2b, 0x0142f580, 0x010fd5b0, 0x037b6138, 0x014d116b, 0x02bbe928, 0x015b3716, 0x001260f6}}, Y: Field{[10]uint32{0x03f0a279, 0x036b8b01, 0x01b0280c, 0x0299beb0, 0x00f5e609, 0x02f4efbf, 0x03d47bce, 0x033450cc, 0x026da2ef, 0x0004dcd0}}}, + {X: Field{[10]uint32{0x02afe6ab, 0x0332560f, 0x03ef61fd, 0x03b79adc, 0x03ad8054, 0x01782143, 0x022cd092, 0x012e5cee, 0x00c692e8, 0x0028af57}}, Y: Field{[10]uint32{0x02a5ce2b, 0x02c9d9f9, 0x02a4e4f0, 0x025e5e56, 0x0133d8d7, 0x027e0093, 0x019011b9, 0x006c7985, 0x038af914, 0x003329b9}}}, + {X: Field{[10]uint32{0x036d741a, 0x026353da, 0x02b60bf6, 0x0098c45e, 0x00b8f852, 0x00d9f421, 0x0076281b, 0x0139ce54, 0x0231a18f, 0x00187264}}, Y: Field{[10]uint32{0x026cbfe5, 0x0102051b, 0x019299d3, 0x02c19f52, 0x01af886d, 0x02823006, 0x00616090, 0x0074c192, 0x03979e7f, 0x00208c52}}}, + {X: Field{[10]uint32{0x02b34304, 0x0182ff5a, 0x00db73ed, 0x00bdb1af, 0x02d4072a, 0x0244cc86, 0x03114fc7, 0x014a64e9, 0x03ef32c5, 0x001296b3}}, Y: Field{[10]uint32{0x020c03c9, 0x006c15a6, 0x024da9f6, 0x02252bfe, 0x0301323e, 0x012c9b6f, 0x03f9f296, 0x0166c9a6, 0x0229c068, 0x0001ca56}}}, + {X: Field{[10]uint32{0x037f4023, 0x03d6da2e, 0x02d487d4, 0x004d085a, 0x02604e50, 0x0197b2b1, 0x036dcb6c, 0x012530ac, 0x0355866f, 0x0038119d}}, Y: Field{[10]uint32{0x00b336b3, 0x01690b0c, 0x02029d9e, 0x01d4a3b3, 0x01ae9459, 0x0098626b, 0x032f9558, 0x03e86fd4, 0x03c5974d, 0x0037ab40}}}, + {X: Field{[10]uint32{0x03215ea7, 0x03034aee, 0x0059640d, 0x01808211, 0x01c4e8be, 0x016c788c, 0x014ca74b, 0x017f7d6d, 0x0305c926, 0x001a1bf7}}, Y: Field{[10]uint32{0x017ea7da, 0x018794f5, 0x01710b65, 0x03cb1640, 0x03c93723, 0x03fcd9de, 0x02f950eb, 0x02e5d02b, 0x021cedf9, 0x003d350f}}}, + {X: Field{[10]uint32{0x03d21253, 0x017b2ee2, 0x01cb9fce, 0x009347c5, 0x03e2bcd9, 0x00365b4b, 0x022b7d7b, 0x02c833a9, 0x018500f9, 0x000491da}}, Y: Field{[10]uint32{0x03522004, 0x03785b4a, 0x03842e32, 0x03c90f75, 0x033f1950, 0x010e2702, 0x027b356b, 0x013f190e, 0x00b39e90, 0x0034d0df}}}, + {X: Field{[10]uint32{0x02d17b1b, 0x0220098a, 0x0324e453, 0x007b4be9, 0x03b5eb1e, 0x0027d95e, 0x03322910, 0x0326cb96, 0x00ec9a87, 0x00195af7}}, Y: Field{[10]uint32{0x012fa64d, 0x00f738be, 0x01d116aa, 0x00c345f0, 0x030cdfc8, 0x03f7023f, 0x03f704b3, 0x0393dfd8, 0x010c47b6, 0x0031dd23}}}, + {X: Field{[10]uint32{0x0083e4b5, 0x02fae5ad, 0x0004c3ae, 0x00f983af, 0x027a3d40, 0x020f3b44, 0x0279b244, 0x00584832, 0x010e0f72, 0x0016dfdc}}, Y: Field{[10]uint32{0x03b08080, 0x03dca12f, 0x0386b698, 0x01caf65a, 0x0011db4b, 0x0396a7bb, 0x00196e8d, 0x022bb98d, 0x03a7f068, 0x0006d455}}}, + {X: Field{[10]uint32{0x01e6b4da, 0x034f4128, 0x00deabc8, 0x00f6074b, 0x01254521, 0x003e4361, 0x015bf184, 0x029bd55e, 0x02d0552b, 0x002ff299}}, Y: Field{[10]uint32{0x01754e75, 0x01b746bc, 0x0069084b, 0x0282f776, 0x00223043, 0x0032ce84, 0x00c46383, 0x01095f01, 0x00cc290d, 0x0012442c}}}, + {X: Field{[10]uint32{0x00496f16, 0x01980ca2, 0x009247f5, 0x006f3b1c, 0x001447c1, 0x0015ef45, 0x018f8ef2, 0x032ef91e, 0x028fb79d, 0x00198fe9}}, Y: Field{[10]uint32{0x03c41786, 0x009ea9a0, 0x03951f2b, 0x028aacc3, 0x00a42597, 0x00747d08, 0x005598a9, 0x02f48f62, 0x02fa1f3b, 0x000eb38b}}}, + {X: Field{[10]uint32{0x015c4321, 0x017c7792, 0x03004608, 0x02b82033, 0x017c1675, 0x0379a289, 0x02f2f86e, 0x02e3c87f, 0x03338a3d, 0x0009f338}}, Y: Field{[10]uint32{0x00d373ae, 0x01aa0ac9, 0x01c294b1, 0x027f68aa, 0x037aefa6, 0x018f53f7, 0x0144a002, 0x0391cbac, 0x018c8bab, 0x001c55af}}}, + {X: Field{[10]uint32{0x00bd9560, 0x016f1359, 0x00ce35aa, 0x012c703a, 0x03b727be, 0x00f15d7b, 0x027940e1, 0x017026f8, 0x02c452ec, 0x00352701}}, Y: Field{[10]uint32{0x038d18b0, 0x01d48e39, 0x033c2f51, 0x022551b7, 0x015d7ad7, 0x02680d8d, 0x0266469f, 0x004029ca, 0x0118b298, 0x000b194d}}}, + {X: Field{[10]uint32{0x004ad08a, 0x0005fdd5, 0x01129cfa, 0x03f442bf, 0x023d7bf4, 0x01034ef5, 0x00ecd251, 0x02009b4f, 0x007ebd02, 0x001a5820}}, Y: Field{[10]uint32{0x020e7c7c, 0x02bab024, 0x03f4cf7b, 0x020eaa6a, 0x036f9a63, 0x02f69af7, 0x03cb5465, 0x03eb9cad, 0x004f28be, 0x0029e141}}}, + {X: Field{[10]uint32{0x01f8faa1, 0x02d4c94f, 0x03aa1ede, 0x03156953, 0x02fc9263, 0x0295f6eb, 0x0375abeb, 0x00e9c68e, 0x033654b6, 0x0020e0af}}, Y: Field{[10]uint32{0x0049b011, 0x003f3c42, 0x026dcb6d, 0x00f6515d, 0x02dc9bef, 0x0189d987, 0x021da269, 0x032d4d11, 0x01dcc319, 0x003817ae}}}, + {X: Field{[10]uint32{0x02b0bffb, 0x0168f452, 0x0379acc4, 0x026bd814, 0x02b7e705, 0x02a4cbc8, 0x008cca9f, 0x021db9e3, 0x037930ec, 0x00200ee4}}, Y: Field{[10]uint32{0x01e5790f, 0x02bc1195, 0x01152b52, 0x03745f34, 0x01cb90d1, 0x01e1a51c, 0x03ec7d0b, 0x03470b1b, 0x001c5202, 0x001f6c8d}}}, + {X: Field{[10]uint32{0x02c5292c, 0x022e8474, 0x03e08f99, 0x003a2591, 0x02cb78fb, 0x01cfeac0, 0x0165ff4f, 0x02ba7c44, 0x01290ab6, 0x0032d36c}}, Y: Field{[10]uint32{0x03d1c9c2, 0x01506235, 0x02e9ef61, 0x00235d53, 0x02745c24, 0x02ecd9bf, 0x0280ad65, 0x00e12ed6, 0x039a1776, 0x000332bb}}}, + {X: Field{[10]uint32{0x00d115a2, 0x014ab37b, 0x0179aa81, 0x01ee1325, 0x038fd6af, 0x0301c3f1, 0x038be8af, 0x03d9c8e0, 0x035750e9, 0x003eaca1}}, Y: Field{[10]uint32{0x00b3f065, 0x00452430, 0x024956c3, 0x00c7671b, 0x03764ee9, 0x02ba14c0, 0x017d3b83, 0x0158b54e, 0x002889cd, 0x003567f8}}}, + {X: Field{[10]uint32{0x0249bbc1, 0x00092159, 0x0376c198, 0x01335a96, 0x02fbdf84, 0x0020cf84, 0x02e3f036, 0x03b8f43d, 0x02baf870, 0x003761e7}}, Y: Field{[10]uint32{0x0143c55a, 0x011c5b26, 0x038f7309, 0x00ab1a94, 0x00b041a1, 0x0355a5b2, 0x03a324c1, 0x01704775, 0x00c3a99a, 0x0039eec1}}}, + {X: Field{[10]uint32{0x00f8016e, 0x03330120, 0x00d8ed00, 0x01d06d7e, 0x031df68f, 0x0095cac4, 0x01319d57, 0x01a87b6a, 0x03be29b0, 0x001ea92b}}, Y: Field{[10]uint32{0x03fe7130, 0x0252c5d4, 0x00d2dc9d, 0x00364df0, 0x02423fd0, 0x0080ae5c, 0x002e3c13, 0x02161dfc, 0x029fb77b, 0x00057de6}}}, + {X: Field{[10]uint32{0x0039f890, 0x03933163, 0x0168ba19, 0x03a455c7, 0x00c34354, 0x00b5b998, 0x03fee64f, 0x00c99575, 0x03f5876a, 0x0024517c}}, Y: Field{[10]uint32{0x0285d8ff, 0x03368a2c, 0x036c998e, 0x00755d9a, 0x0337650c, 0x0284235b, 0x009ba7fd, 0x027f416f, 0x015dcf36, 0x0011782a}}}, + {X: Field{[10]uint32{0x0111ac9e, 0x03dd03d1, 0x0131713d, 0x03224688, 0x00a5a7f6, 0x001dfcf7, 0x0337afa2, 0x0004347b, 0x035236fb, 0x0015142d}}, Y: Field{[10]uint32{0x026ba175, 0x03c0603f, 0x01ef08b6, 0x00e99c42, 0x0313ff56, 0x037b4b5e, 0x021084d3, 0x03e1b537, 0x015762be, 0x0029f1fb}}}, + {X: Field{[10]uint32{0x00666a0f, 0x00b3e230, 0x001b84c3, 0x01bf44d4, 0x01bbf276, 0x0105f41d, 0x00256d67, 0x0378b32e, 0x01725e48, 0x002e9b03}}, Y: Field{[10]uint32{0x0125e442, 0x0061bcf9, 0x006405ed, 0x012e46f3, 0x02bdecd6, 0x0296640c, 0x02da6693, 0x00a67d43, 0x01327137, 0x00334aa4}}}, + {X: Field{[10]uint32{0x0205c921, 0x036dece5, 0x00b0553a, 0x0276ab56, 0x01d25a64, 0x0263ef7d, 0x011006b7, 0x03aed1bf, 0x01ff1fee, 0x002e5208}}, Y: Field{[10]uint32{0x01077c05, 0x03162afe, 0x0365a72d, 0x02bbbb10, 0x01f45ccf, 0x015d2bf3, 0x003d950c, 0x024a8b1f, 0x03a079bb, 0x00085626}}}, + {X: Field{[10]uint32{0x01a0681d, 0x0221e7c3, 0x01f8198f, 0x037a4f58, 0x00432f14, 0x02a58f32, 0x00e0d7a5, 0x01f1dadc, 0x0046497f, 0x001190d9}}, Y: Field{[10]uint32{0x01c83a5f, 0x03982352, 0x012398a3, 0x0396cfb2, 0x0348c367, 0x03a89797, 0x01a8aab5, 0x03604043, 0x024e90c4, 0x000a4d12}}}, + {X: Field{[10]uint32{0x00c1ae1d, 0x02c2ce39, 0x00d0802b, 0x005d6ea8, 0x01bd3be9, 0x02f2c33c, 0x019185b7, 0x0042f925, 0x02c6a2e2, 0x002f6396}}, Y: Field{[10]uint32{0x01b1fa19, 0x03c22a8b, 0x000a94ed, 0x0069f0fb, 0x0269c6f7, 0x03b22229, 0x03773a5e, 0x025d5769, 0x03e46dcc, 0x001ace06}}}, + {X: Field{[10]uint32{0x01f22493, 0x03463fe6, 0x0231974c, 0x024ece50, 0x017fb645, 0x022b39db, 0x00c34055, 0x029e943d, 0x021ac428, 0x00309f07}}, Y: Field{[10]uint32{0x019cf57c, 0x013e4671, 0x004a4954, 0x03cf0178, 0x0025108a, 0x02a7d665, 0x031884cf, 0x01ece872, 0x0261c12f, 0x003f2575}}}, + {X: Field{[10]uint32{0x03eb30d5, 0x00ebc89d, 0x03c029e5, 0x00050103, 0x0044c17c, 0x0364119b, 0x028168ee, 0x01329549, 0x0161837e, 0x00285d95}}, Y: Field{[10]uint32{0x02c28eb5, 0x022d9b2d, 0x015aecfc, 0x01d743e8, 0x033032c7, 0x0039b8bd, 0x0255d0b3, 0x0222ff35, 0x01e2b8d4, 0x00228b7b}}}, + {X: Field{[10]uint32{0x01ddbea9, 0x03a63060, 0x02f93b03, 0x00de0c03, 0x00e9eea7, 0x01e2e8da, 0x029279f6, 0x0332461f, 0x030d35ca, 0x000afda4}}, Y: Field{[10]uint32{0x0225209d, 0x03e81a79, 0x00db46e2, 0x00c30d74, 0x02d0f3f9, 0x0232a385, 0x03ee5383, 0x022ec0ff, 0x01433aaa, 0x00228b53}}}, + {X: Field{[10]uint32{0x0077c8d7, 0x019a9c1a, 0x0056a6a0, 0x01680e96, 0x00a36d08, 0x019d5649, 0x03005f4d, 0x02bbf643, 0x03259cc5, 0x001d9a9d}}, Y: Field{[10]uint32{0x00049190, 0x03078cd2, 0x03dc4171, 0x0012fd02, 0x0090b46d, 0x03a4e3bc, 0x01bfad15, 0x038b9fc1, 0x00974fd9, 0x0036cfeb}}}, + {X: Field{[10]uint32{0x00461268, 0x024bfe46, 0x03242887, 0x038e6a44, 0x02134196, 0x025cca76, 0x00c333c0, 0x0087517f, 0x00cd953f, 0x00349698}}, Y: Field{[10]uint32{0x010c7863, 0x03c9339e, 0x0270f397, 0x026240d4, 0x00a07ad5, 0x008d4a60, 0x03874e71, 0x020d7f6e, 0x03e8bd04, 0x00226fca}}}, + {X: Field{[10]uint32{0x02d95d68, 0x03f90a72, 0x000b360d, 0x021a3286, 0x019bf569, 0x01997abf, 0x021f467b, 0x0096c99c, 0x029e8b71, 0x0031eca3}}, Y: Field{[10]uint32{0x0295c398, 0x030ea9e7, 0x02167b37, 0x00d1d91a, 0x009ec7bf, 0x02f291da, 0x03947ed8, 0x02d869c7, 0x0158b3a7, 0x0002b0a3}}}, + {X: Field{[10]uint32{0x0059bc24, 0x02cd375f, 0x03a97ce8, 0x01803c7d, 0x0120c291, 0x033f3a61, 0x022d7a74, 0x0230a6b6, 0x008ac61f, 0x0038a948}}, Y: Field{[10]uint32{0x01c70830, 0x0367d6cf, 0x00e4a880, 0x009dddff, 0x03a152ce, 0x03a438e0, 0x034483b4, 0x02281332, 0x02144970, 0x00037a2e}}}, + {X: Field{[10]uint32{0x02e205b1, 0x0112b7c4, 0x03ca53e8, 0x000620a1, 0x016976e0, 0x0150259f, 0x032b152a, 0x037e574e, 0x00cd02e8, 0x00387a39}}, Y: Field{[10]uint32{0x03bfc9e2, 0x03633bd0, 0x02491a77, 0x025fd51a, 0x020d34aa, 0x008cdc8f, 0x03f00918, 0x0151ef2c, 0x02f9cdc7, 0x002976f1}}}, + {X: Field{[10]uint32{0x012b6512, 0x0152fc27, 0x0375bea4, 0x02cee257, 0x023c3143, 0x03cec70a, 0x02284803, 0x013954ac, 0x02514a68, 0x002c83c2}}, Y: Field{[10]uint32{0x000d02c9, 0x0376a5ba, 0x02c31e0e, 0x02173513, 0x00f7c955, 0x0250681f, 0x000b0c31, 0x00345027, 0x0380676d, 0x002f0f6c}}}, + {X: Field{[10]uint32{0x0029d3ec, 0x029a5a83, 0x009499cf, 0x0326e5d2, 0x039582cb, 0x001eb25b, 0x00d9d8d4, 0x02fdde53, 0x0123b1ad, 0x002dc69a}}, Y: Field{[10]uint32{0x00b4f151, 0x03f38699, 0x03b1c89b, 0x03b9d9e7, 0x027b6d75, 0x00e31cb4, 0x03113c8d, 0x01563ee4, 0x03899d59, 0x001d4608}}}, + {X: Field{[10]uint32{0x03d3bb3f, 0x013571a9, 0x01a65200, 0x017c3677, 0x00a82f41, 0x01d595e2, 0x00ef76c0, 0x00e34633, 0x01ac68ba, 0x003291eb}}, Y: Field{[10]uint32{0x028701df, 0x02b41412, 0x0137842f, 0x0130e5a7, 0x02ccd845, 0x00597f56, 0x0035385e, 0x00ce0910, 0x00ab1b78, 0x0002f566}}}, + {X: Field{[10]uint32{0x0140e441, 0x03e6740b, 0x025eea45, 0x0313667d, 0x014fb989, 0x03757932, 0x034eeece, 0x03a7ba7e, 0x0148acee, 0x0017eb78}}, Y: Field{[10]uint32{0x033831f0, 0x00775335, 0x031cb5e6, 0x032ce50f, 0x0015afd1, 0x02374b00, 0x01104cac, 0x015606b1, 0x023ae82e, 0x002e9bf2}}}, + {X: Field{[10]uint32{0x025f84e9, 0x02b698ff, 0x0049e8ad, 0x014798ce, 0x02e834c8, 0x0073cc3e, 0x000ba01a, 0x033c0024, 0x01d214fc, 0x001d9f72}}, Y: Field{[10]uint32{0x00404639, 0x00c85799, 0x017d69ee, 0x03466b86, 0x0101a5bc, 0x03f5f2ff, 0x02b97a52, 0x003958b5, 0x0111aca3, 0x00231942}}}, + {X: Field{[10]uint32{0x024f06d9, 0x01c5e2df, 0x0286b91d, 0x035d1df9, 0x01523544, 0x030f01b6, 0x02a7648f, 0x00a88176, 0x0161445e, 0x0009fe3e}}, Y: Field{[10]uint32{0x02a73a60, 0x01f37f60, 0x00172042, 0x010886fa, 0x02379332, 0x02de7977, 0x0196bce6, 0x01efa5d5, 0x032782cd, 0x000e4442}}}, + {X: Field{[10]uint32{0x033de668, 0x000c594f, 0x035bc6a4, 0x02260e5c, 0x008a1b28, 0x01e77792, 0x024070bf, 0x01792eb6, 0x005b343b, 0x00237812}}, Y: Field{[10]uint32{0x02d5729d, 0x033eb883, 0x021431c2, 0x01ca0c0b, 0x0212fbba, 0x03164492, 0x011c1a44, 0x0383df5f, 0x03676f43, 0x00240c15}}}, + {X: Field{[10]uint32{0x012df0ff, 0x03973165, 0x01fe1b68, 0x0287bb25, 0x005b6af8, 0x039c030a, 0x038d3188, 0x03a2ba2a, 0x036c8770, 0x001790f6}}, Y: Field{[10]uint32{0x006c7aa6, 0x00a90e54, 0x01f90ae0, 0x00f4dc1d, 0x009aeebb, 0x0179671e, 0x02a10911, 0x02f3f8e8, 0x028dd85f, 0x001a2098}}}, + {X: Field{[10]uint32{0x01a4ed54, 0x0047d096, 0x037a0893, 0x00f3b7fa, 0x03610286, 0x00b7c508, 0x00af4e35, 0x00c0379f, 0x02ab4bf4, 0x001f6cae}}, Y: Field{[10]uint32{0x038e8a84, 0x0009bf85, 0x000cbd33, 0x01328f53, 0x01e553a8, 0x02164273, 0x03fbbcd6, 0x0112f8c0, 0x01a2fbbb, 0x000e1d58}}}, + {X: Field{[10]uint32{0x0196c6f1, 0x0134436e, 0x00bbefc0, 0x0332aee4, 0x00cdbefd, 0x00cb6cf9, 0x03df9e82, 0x01a21f47, 0x01253910, 0x0025b6a1}}, Y: Field{[10]uint32{0x03f9edcc, 0x00f4c026, 0x00509402, 0x024adff3, 0x0345948c, 0x0370cca1, 0x035d6513, 0x01cd067e, 0x02314912, 0x001949c6}}}, + {X: Field{[10]uint32{0x01d50613, 0x029e122b, 0x03b0081b, 0x003eb2e5, 0x0264cd4c, 0x00e2d217, 0x03a51fa8, 0x004a13d6, 0x01cb14eb, 0x00213bfc}}, Y: Field{[10]uint32{0x02febd9e, 0x01e314a9, 0x004fc7f5, 0x0044cbca, 0x03609f45, 0x033a0631, 0x01e602b6, 0x002a35ec, 0x01c8a654, 0x000249b2}}}, + {X: Field{[10]uint32{0x02adfbbe, 0x00665078, 0x017057fe, 0x02489756, 0x00416e6a, 0x02fe5280, 0x02e60007, 0x00a83fd7, 0x03718e2a, 0x0007ae58}}, Y: Field{[10]uint32{0x0005b855, 0x027da84c, 0x01bb009c, 0x008f3fc3, 0x02d3cf05, 0x00018e6a, 0x03d40115, 0x0377eb70, 0x02d89635, 0x00121c2a}}}, + {X: Field{[10]uint32{0x03bdc098, 0x01372e1d, 0x03fd8d45, 0x0287dda0, 0x03c75fd4, 0x02bc64f7, 0x01a8696b, 0x03cc1c6f, 0x036a6ea3, 0x000a6528}}, Y: Field{[10]uint32{0x03856766, 0x00b1312f, 0x02eb3fc8, 0x000c6dda, 0x009969bf, 0x025bf4fa, 0x006bd0be, 0x00f5335e, 0x00eea727, 0x0039197a}}}, + {X: Field{[10]uint32{0x0126c414, 0x01d63567, 0x03c00237, 0x032edfcb, 0x01d2b68f, 0x038b65f6, 0x01b115b5, 0x015e8b0a, 0x0370f3d3, 0x000979fe}}, Y: Field{[10]uint32{0x0356c4f2, 0x0099dcfc, 0x02631fed, 0x00c3beb2, 0x00206b73, 0x00ea1aae, 0x0130fa01, 0x02257afd, 0x0370a3bb, 0x00125668}}}, + {X: Field{[10]uint32{0x007c0623, 0x035624cd, 0x020ea0df, 0x01496221, 0x03c3945c, 0x0359af16, 0x030481a2, 0x01aef867, 0x039880bf, 0x003f0e1f}}, Y: Field{[10]uint32{0x009d67c4, 0x0198faed, 0x001ff16e, 0x01d03042, 0x027ba332, 0x00d1812a, 0x01d07af7, 0x03c0ca72, 0x000e83ca, 0x002275ee}}}, + {X: Field{[10]uint32{0x0201e1d4, 0x000ca53f, 0x03a99e2f, 0x02d00217, 0x00ef5c00, 0x03c5ddc8, 0x0220fa82, 0x0327f840, 0x0368c25f, 0x003142bc}}, Y: Field{[10]uint32{0x017579fb, 0x02532dae, 0x0131ba42, 0x003e5e32, 0x0327d9f1, 0x03a52bde, 0x012b80d9, 0x00c25024, 0x03264198, 0x0030ddde}}}, + {X: Field{[10]uint32{0x00041f94, 0x01d85f84, 0x01bea7c9, 0x0121553d, 0x00d7015c, 0x010697c8, 0x02003629, 0x0366ea8b, 0x0109d524, 0x00283e74}}, Y: Field{[10]uint32{0x010e9ad0, 0x00f18a9c, 0x019f1daf, 0x00e80e9a, 0x012eae92, 0x01915838, 0x0277ff2c, 0x0384200f, 0x0002daa5, 0x000a3147}}}, + {X: Field{[10]uint32{0x00316de1, 0x0218a8d2, 0x03a285da, 0x008f2f37, 0x032138bc, 0x0020012c, 0x03271389, 0x02dc2161, 0x02270058, 0x00107449}}, Y: Field{[10]uint32{0x001b9673, 0x037d3c1f, 0x02999d29, 0x029243ac, 0x00341d90, 0x03545764, 0x015f4513, 0x033b2572, 0x0029153b, 0x000189dc}}}, + {X: Field{[10]uint32{0x0299ca87, 0x003e159b, 0x0221cfb8, 0x02335875, 0x02577444, 0x00ceb6ce, 0x03afb77e, 0x03d50f64, 0x00cefe6c, 0x00251316}}, Y: Field{[10]uint32{0x004d66b5, 0x01cc5c0a, 0x03056e74, 0x022adf5e, 0x02329495, 0x01af2c88, 0x011c5576, 0x031c5f2a, 0x001c9b7f, 0x00301c7b}}}, + {X: Field{[10]uint32{0x02437145, 0x02afafef, 0x00635f2b, 0x01645ca4, 0x009a27be, 0x023baed6, 0x0029bf18, 0x01c73a70, 0x0312e06d, 0x000cc1ea}}, Y: Field{[10]uint32{0x0061d213, 0x01aa5272, 0x014c3c6b, 0x03425f61, 0x014a6966, 0x0227a602, 0x008dd9bf, 0x0242451d, 0x00b928cf, 0x0022270f}}}, + {X: Field{[10]uint32{0x01cb9ae6, 0x006dfcd1, 0x028acdee, 0x01c8b6da, 0x0272b745, 0x0090c1ed, 0x0203abd0, 0x00893932, 0x00111eb2, 0x0010aebc}}, Y: Field{[10]uint32{0x0212ee06, 0x0257ea8b, 0x00b11256, 0x0349cde7, 0x02879515, 0x02348b17, 0x0164bec3, 0x037a892d, 0x0128d608, 0x002fccb8}}}, + {X: Field{[10]uint32{0x0002c621, 0x01321531, 0x006bfe73, 0x03028af2, 0x01166c69, 0x0043445d, 0x03be8981, 0x012f4127, 0x02bbbe7b, 0x00215aea}}, Y: Field{[10]uint32{0x0112ac0c, 0x035d0612, 0x0321b943, 0x025e7b51, 0x011f8251, 0x0388a7a2, 0x0024161b, 0x007f4f35, 0x03c9b6d3, 0x000928c8}}}, + {X: Field{[10]uint32{0x024a9cd4, 0x01b60c34, 0x02c1c321, 0x03720172, 0x0195aeea, 0x03a0e0d3, 0x00c224ed, 0x0050f61d, 0x018ed998, 0x000e36f0}}, Y: Field{[10]uint32{0x027eae4a, 0x02247945, 0x00a03570, 0x03b9fe4d, 0x01271c6e, 0x0242ad71, 0x038e2eaa, 0x015de3a8, 0x0126f7e8, 0x0009cfb0}}}, + {X: Field{[10]uint32{0x0188dc59, 0x007ae052, 0x00d92c98, 0x019697d2, 0x015e24c0, 0x020dd2bc, 0x026bb20c, 0x008ca4c5, 0x005bffcd, 0x000d6772}}, Y: Field{[10]uint32{0x03bf39c6, 0x0058beaf, 0x0184ae58, 0x000fdded, 0x02c4a057, 0x010def7f, 0x0237d06e, 0x01622e40, 0x01f7deef, 0x0037977b}}}, + {X: Field{[10]uint32{0x023666ea, 0x028d6df1, 0x0283bb1c, 0x01d275fc, 0x031d872a, 0x0297cf69, 0x022f73a6, 0x007220f7, 0x0065e2e9, 0x003841a0}}, Y: Field{[10]uint32{0x03752cd9, 0x0347c05c, 0x00523c5e, 0x03eb2375, 0x01a7e155, 0x01da140d, 0x0128afaa, 0x0021461e, 0x0252b5df, 0x0020430e}}}, + {X: Field{[10]uint32{0x03b19d83, 0x02141b76, 0x033c70fd, 0x01b72f57, 0x00b56495, 0x03377f7f, 0x03171830, 0x032699b8, 0x037137e7, 0x00141d9f}}, Y: Field{[10]uint32{0x00d4fff8, 0x00e19928, 0x039fa5e3, 0x019d58f6, 0x02393b61, 0x03cb82b8, 0x03d24dd3, 0x017fb601, 0x015f5e9d, 0x003870b7}}}, + {X: Field{[10]uint32{0x02e65864, 0x02d66039, 0x00a725a0, 0x017fd4f6, 0x035e0127, 0x03f3a84d, 0x0216d0de, 0x020d57c4, 0x03f0cdf8, 0x001133b2}}, Y: Field{[10]uint32{0x011cd40e, 0x030eb5bd, 0x00d2e025, 0x008bc572, 0x02e8e3f0, 0x019ef18d, 0x0290550e, 0x03a6e7b8, 0x028e5094, 0x00011a55}}}, + {X: Field{[10]uint32{0x02aa18b3, 0x038d11e5, 0x005e886c, 0x024980b8, 0x0387ed8a, 0x02bf28ae, 0x02fe5976, 0x02c1fbe8, 0x00ea43cb, 0x00060c32}}, Y: Field{[10]uint32{0x031da49d, 0x0077610b, 0x01d658bf, 0x03ead511, 0x013c8ce2, 0x03e8c704, 0x03562037, 0x02bb9d9f, 0x0328e064, 0x0037d544}}}, + {X: Field{[10]uint32{0x019326c6, 0x0242a92f, 0x02b799bf, 0x03ab13e3, 0x00708245, 0x0107d3b9, 0x0033417a, 0x01eac947, 0x037a473a, 0x00163552}}, Y: Field{[10]uint32{0x009b2a85, 0x01168bb1, 0x027891ce, 0x024febd7, 0x02a16920, 0x02c72cb2, 0x00c331bf, 0x0381f329, 0x033815e2, 0x0028647c}}}, + {X: Field{[10]uint32{0x02c6792c, 0x024ad544, 0x01af7ba1, 0x01b913a0, 0x0170a18b, 0x00bf2618, 0x03af1044, 0x0204b980, 0x02049507, 0x003c3739}}, Y: Field{[10]uint32{0x03b966e4, 0x029ec26e, 0x015ce3ad, 0x02d31536, 0x004cc60e, 0x033c3d58, 0x0248df55, 0x01bb588f, 0x0221b5e8, 0x00308868}}}, + {X: Field{[10]uint32{0x01dd2ab5, 0x02e94156, 0x013d40d7, 0x033eb94a, 0x02e4b958, 0x0112c9ab, 0x02aaa046, 0x00c0aca1, 0x01e572c0, 0x0010bec2}}, Y: Field{[10]uint32{0x01f2299f, 0x0206f546, 0x00099437, 0x02a09d25, 0x03f46e1b, 0x020f9f45, 0x007ec769, 0x01a223ef, 0x0173a00e, 0x001e7041}}}, + {X: Field{[10]uint32{0x03502ecb, 0x034104bc, 0x005deea2, 0x02f222c0, 0x00935465, 0x0036b443, 0x028db25e, 0x00326a18, 0x0151ddae, 0x001eb7c5}}, Y: Field{[10]uint32{0x01acfd20, 0x01621bca, 0x01a9bb3c, 0x019e7651, 0x012e031e, 0x02744428, 0x01ef5c36, 0x03aa4832, 0x03a2143c, 0x00195f02}}}, + {X: Field{[10]uint32{0x002c7a5a, 0x03f6470a, 0x013454df, 0x0324a049, 0x013a7bfd, 0x03f0bd6f, 0x0271310a, 0x03da9b58, 0x00b956fd, 0x00375692}}, Y: Field{[10]uint32{0x00a52657, 0x03df305f, 0x021e385d, 0x03364685, 0x002ac6b0, 0x02564119, 0x03521072, 0x01fcdbea, 0x00372e06, 0x001ce434}}}, + {X: Field{[10]uint32{0x021466fe, 0x01b0b622, 0x0301d293, 0x00ec74d8, 0x0013ac76, 0x00134b38, 0x01c783b1, 0x011652f8, 0x00b51537, 0x0018c614}}, Y: Field{[10]uint32{0x0190882e, 0x03cc8a31, 0x03a8578b, 0x000addfb, 0x022016d2, 0x015ca6b3, 0x0241416c, 0x01f912a4, 0x021ea9b6, 0x00092433}}}, + {X: Field{[10]uint32{0x03a0bca5, 0x02c381bc, 0x028e0741, 0x01a6f71a, 0x00244668, 0x00e8f331, 0x0185cd58, 0x0088a6bb, 0x01e4d673, 0x000ccb8e}}, Y: Field{[10]uint32{0x017578e7, 0x01135217, 0x025aa602, 0x0037d351, 0x00b66ac3, 0x01d2b597, 0x018b1b40, 0x014ab829, 0x030360db, 0x00242103}}}, + {X: Field{[10]uint32{0x022f0c97, 0x0144e90d, 0x00980de7, 0x02ca479c, 0x01d72c0e, 0x00994cbc, 0x027224e8, 0x03870595, 0x0156f0c7, 0x00378065}}, Y: Field{[10]uint32{0x00411ea3, 0x002bb61a, 0x03e479af, 0x02f5925d, 0x01d75fa5, 0x018e094a, 0x022227a6, 0x02210105, 0x039d1cc9, 0x000e68f5}}}, + {X: Field{[10]uint32{0x00ed859f, 0x0128b2c9, 0x002a6809, 0x01b28fe4, 0x024f81b7, 0x006e0b91, 0x02ffbf26, 0x036a0031, 0x00c8e675, 0x00131130}}, Y: Field{[10]uint32{0x0245ac34, 0x00ad64c3, 0x0224663b, 0x025c68e8, 0x00c54978, 0x010eae2b, 0x03f28002, 0x01177b63, 0x02881ecc, 0x0016787b}}}, + {X: Field{[10]uint32{0x009286a2, 0x00d953cc, 0x03d28279, 0x02f844f9, 0x02a4e0dc, 0x017773b1, 0x01f4d1a8, 0x03867970, 0x01b80481, 0x003980ce}}, Y: Field{[10]uint32{0x009d9d59, 0x0229c1a9, 0x0372d1b0, 0x03e51cdf, 0x00bc58e3, 0x034a96a6, 0x01c7998e, 0x02507ed4, 0x02cca607, 0x002687ba}}}, + {X: Field{[10]uint32{0x00a25e66, 0x0340b0f6, 0x01be0d44, 0x015714a1, 0x010c6ad9, 0x0023ffb1, 0x00bc4727, 0x024bce7d, 0x02e30e72, 0x00043d0b}}, Y: Field{[10]uint32{0x00916a25, 0x02a5d73b, 0x01106034, 0x0037c069, 0x00183e13, 0x0259f3c5, 0x01d5f2bc, 0x038a3f6e, 0x01f053eb, 0x0001bcd9}}}, + {X: Field{[10]uint32{0x0329c445, 0x014f6199, 0x01548b6d, 0x02b964ea, 0x03703af3, 0x031635d2, 0x02fb0f31, 0x019a1df4, 0x01cad128, 0x001f824c}}, Y: Field{[10]uint32{0x036b0b0b, 0x00485d07, 0x03ffbf5a, 0x03e489dc, 0x00a9c34a, 0x0015bd32, 0x03caf7e8, 0x02d07598, 0x01fc75ea, 0x0001792e}}}, + {X: Field{[10]uint32{0x03963f22, 0x00450d55, 0x00f1c6a0, 0x03036c9e, 0x01b7f1ac, 0x020d8bdf, 0x014cd1a7, 0x00f1b3fc, 0x037ef961, 0x000d8c4f}}, Y: Field{[10]uint32{0x03d7edc2, 0x006ead10, 0x03a69864, 0x0246e998, 0x0033960a, 0x01250817, 0x006627f5, 0x0108c52b, 0x02ab02a9, 0x00079a51}}}, + {X: Field{[10]uint32{0x0069fe01, 0x03b15d0a, 0x033bb55c, 0x0164bf23, 0x0283f9ba, 0x03aa8ba7, 0x0218a63c, 0x030996cb, 0x02d88eed, 0x00088fbb}}, Y: Field{[10]uint32{0x01bbd71c, 0x00842570, 0x025ffeff, 0x02e35a1f, 0x005593f7, 0x00b5cb44, 0x0232cc89, 0x026ff3cd, 0x01734ae2, 0x001c8488}}}, + {X: Field{[10]uint32{0x00b3ec20, 0x01e9698a, 0x035fc31b, 0x02f3e6a6, 0x0160dbb2, 0x021e5684, 0x03b9b321, 0x00b1780f, 0x02c93330, 0x002daf57}}, Y: Field{[10]uint32{0x019dd495, 0x0074b672, 0x0242cd0f, 0x03ce6d0a, 0x0034f373, 0x00ed22eb, 0x01f051d6, 0x0397fac5, 0x03f298a8, 0x003ee7e1}}}, + {X: Field{[10]uint32{0x00e24668, 0x02a2c053, 0x012c98f0, 0x02fcee3e, 0x025a802d, 0x023f55eb, 0x03f69ce0, 0x0093ec55, 0x03603b1c, 0x0028d969}}, Y: Field{[10]uint32{0x000a89f9, 0x02fb0fd7, 0x037606f2, 0x02d06c34, 0x02578005, 0x02606039, 0x0238cc72, 0x02af680a, 0x022b7746, 0x001cf990}}}, + {X: Field{[10]uint32{0x03cebe6e, 0x017287b5, 0x0213aa23, 0x007b4de7, 0x03e24bac, 0x03511a81, 0x02dba309, 0x00dbdbd2, 0x03ac43e4, 0x003a1be3}}, Y: Field{[10]uint32{0x00a166af, 0x00f5b6fd, 0x01cd4a91, 0x0009df30, 0x00930b74, 0x00a8044d, 0x03a592c4, 0x02a6f5c4, 0x00efaa75, 0x00079eed}}}, + {X: Field{[10]uint32{0x039bd5ac, 0x00fa1a3a, 0x015cc993, 0x038ba162, 0x0205cab3, 0x03f78768, 0x0109304c, 0x0155c76b, 0x01fad2b2, 0x003d695f}}, Y: Field{[10]uint32{0x037c1ff6, 0x02317a61, 0x029b0c76, 0x001afb2e, 0x008eb909, 0x02265e89, 0x018dad26, 0x00390754, 0x025e8fc9, 0x00349977}}}, + {X: Field{[10]uint32{0x01f76c7b, 0x011651dd, 0x010f145c, 0x01f28afc, 0x01665660, 0x009192a7, 0x02fd8cab, 0x024dd1f9, 0x017a0725, 0x00387734}}, Y: Field{[10]uint32{0x02f9a20e, 0x03799012, 0x0278a130, 0x0339ae55, 0x00dff819, 0x008caf51, 0x009feb61, 0x021b4992, 0x0310023f, 0x003be8b0}}}, + {X: Field{[10]uint32{0x03a801ff, 0x00e1b373, 0x00c3bafd, 0x03f73290, 0x03cb3774, 0x00176a6a, 0x0274b80a, 0x025ab46f, 0x03dd0849, 0x0020fe2a}}, Y: Field{[10]uint32{0x03c3f63d, 0x01f18e92, 0x002873d3, 0x00ddaa89, 0x001c85ff, 0x019a1a36, 0x02e792d9, 0x02c4395b, 0x0164329f, 0x00099faf}}}, + {X: Field{[10]uint32{0x03259fae, 0x02e952d3, 0x02454ea9, 0x006bcd3f, 0x03ca324b, 0x01445216, 0x0087c716, 0x016a409d, 0x01796ca8, 0x00153327}}, Y: Field{[10]uint32{0x02b2da2a, 0x007682fe, 0x020f2e20, 0x030545f3, 0x023c6ce8, 0x03adba0e, 0x0016e9ed, 0x021875f4, 0x0071ef0b, 0x000630e4}}}, + {X: Field{[10]uint32{0x01402ba4, 0x0070864c, 0x02a51635, 0x02b25039, 0x001c3f65, 0x0047e1d1, 0x0075ac1b, 0x0059538a, 0x012ae009, 0x002744a9}}, Y: Field{[10]uint32{0x00e81d2e, 0x038bc04e, 0x02e52bbe, 0x00b754fd, 0x03c6d7e4, 0x03d7eb58, 0x00d17f39, 0x0066bd06, 0x03342762, 0x0017feec}}}, + {X: Field{[10]uint32{0x02496998, 0x00ed9979, 0x038244f2, 0x03c2dfbc, 0x00488007, 0x03c86ba9, 0x0030917f, 0x006a4734, 0x01b76682, 0x001966ff}}, Y: Field{[10]uint32{0x014784e0, 0x0139f289, 0x039db844, 0x023af087, 0x03d7321a, 0x022f091f, 0x01ef96b7, 0x03a168d0, 0x00bc4506, 0x000ab5c2}}}, + {X: Field{[10]uint32{0x02b4670b, 0x004a5b97, 0x02413d60, 0x013d5cc4, 0x0276ba1b, 0x0055269a, 0x026a2538, 0x020dd121, 0x0233d4a0, 0x0038b313}}, Y: Field{[10]uint32{0x00672476, 0x00502269, 0x00e18797, 0x002e8eca, 0x0080497f, 0x01930dc6, 0x039780ea, 0x01fcd1ed, 0x0325347e, 0x0014a2ca}}}, + {X: Field{[10]uint32{0x02edec68, 0x023840f9, 0x00131e24, 0x03133f2b, 0x01e8dbba, 0x02941580, 0x02164c0f, 0x030db26c, 0x039c9e21, 0x0014a702}}, Y: Field{[10]uint32{0x027125f4, 0x01c04a55, 0x037e4967, 0x017c272e, 0x026cb74f, 0x034b80e1, 0x0269e6ab, 0x032804cd, 0x002172a0, 0x001fe912}}}, + {X: Field{[10]uint32{0x003b63a1, 0x034d54da, 0x01dda654, 0x01efacbc, 0x033d89e5, 0x0203ed96, 0x00d6532a, 0x01f47055, 0x03afbe6a, 0x000a275a}}, Y: Field{[10]uint32{0x01005400, 0x024c5a1f, 0x03b53388, 0x03c30f36, 0x03db149f, 0x01499e1d, 0x022c62c5, 0x02358583, 0x0063d3ce, 0x002007d2}}}, + {X: Field{[10]uint32{0x010f14a1, 0x00bb3c1e, 0x0099e51f, 0x01616346, 0x022eab9b, 0x0096ad0c, 0x0005bb34, 0x019981f0, 0x00c9e3b3, 0x00345aa1}}, Y: Field{[10]uint32{0x0156dd07, 0x02d46614, 0x0231379b, 0x033c672c, 0x0146ec79, 0x02b5b83c, 0x03fc5ea4, 0x014ca3e7, 0x01ab1071, 0x000b1bd7}}}, + {X: Field{[10]uint32{0x036348f1, 0x01c0ec5a, 0x01affd30, 0x03cfb2f8, 0x02a7062d, 0x010436ac, 0x00a6893e, 0x02fefd10, 0x00394fda, 0x00340f2b}}, Y: Field{[10]uint32{0x009d19f9, 0x006e8d11, 0x0040ae5d, 0x01b4e390, 0x035dc4a8, 0x037a56c6, 0x0185c087, 0x02cc5dc3, 0x03cef530, 0x000548c4}}}, + {X: Field{[10]uint32{0x0063379b, 0x0081ed6a, 0x03101c89, 0x0012f125, 0x00d4c4b6, 0x03e5a616, 0x00a7d851, 0x0312a5df, 0x006ca673, 0x002d9acf}}, Y: Field{[10]uint32{0x01624da4, 0x01c2c18c, 0x005609a4, 0x03fc61fc, 0x004b00fa, 0x0055a587, 0x02c63cb7, 0x01aab120, 0x0163771c, 0x00152e89}}}, + {X: Field{[10]uint32{0x018c8c45, 0x039145aa, 0x01e86236, 0x01a01e71, 0x002a43fb, 0x039f5cc2, 0x013127f4, 0x01f35f7f, 0x024411c4, 0x002f9a11}}, Y: Field{[10]uint32{0x026733da, 0x03eba160, 0x01f19a15, 0x030bf7ba, 0x017d78dd, 0x0273143a, 0x0395aaeb, 0x00da30b8, 0x0383c61d, 0x001e4a43}}}, + {X: Field{[10]uint32{0x03cbde9b, 0x00afedeb, 0x00e0c5c6, 0x007e4748, 0x0004ca42, 0x03b8061e, 0x021de709, 0x03d18d35, 0x03a09f34, 0x0011e2b0}}, Y: Field{[10]uint32{0x030988bf, 0x00dd955e, 0x01c34f6e, 0x012fddfb, 0x02e4bc7d, 0x015d2d7d, 0x027526f5, 0x0042586b, 0x03b2ccbc, 0x003dd4bc}}}, + {X: Field{[10]uint32{0x033dcfc8, 0x01905e63, 0x00796e70, 0x028301df, 0x037271a2, 0x026f5284, 0x00d7de9c, 0x01c6a675, 0x015af2ed, 0x001d17cd}}, Y: Field{[10]uint32{0x02e288b9, 0x010818e1, 0x01f6e672, 0x00998c31, 0x02d4fe88, 0x00c78664, 0x0105816c, 0x021fc27b, 0x01f46b0c, 0x00063a98}}}, + {X: Field{[10]uint32{0x02760ce0, 0x02d483a1, 0x014b218d, 0x0238e2ae, 0x00a3157a, 0x00a1909f, 0x01aede59, 0x02a2c242, 0x016f9878, 0x001539ef}}, Y: Field{[10]uint32{0x01fb8e49, 0x03493cc3, 0x03f2ddc1, 0x0294d034, 0x00e04bdb, 0x01d7702d, 0x033c6386, 0x02d12347, 0x000dc1ea, 0x0035edf6}}}, + {X: Field{[10]uint32{0x007d510e, 0x012807e8, 0x0120827e, 0x02b8f725, 0x0399b018, 0x0331bfaf, 0x006f5c7f, 0x010c7bcf, 0x03b655eb, 0x003fd5ab}}, Y: Field{[10]uint32{0x0191e371, 0x03a6d109, 0x03509655, 0x00403a89, 0x02ec7232, 0x01268a35, 0x00388b40, 0x02c71e7d, 0x01b842d7, 0x0026feaf}}}, + {X: Field{[10]uint32{0x029cda72, 0x00e7487f, 0x02be382d, 0x01057fcf, 0x00ea511b, 0x0363a9e4, 0x01d02506, 0x023f219e, 0x0099ed29, 0x0030af30}}, Y: Field{[10]uint32{0x030f971f, 0x03b2d614, 0x03070aa1, 0x03c163be, 0x00825de4, 0x00bf4e31, 0x02c31a58, 0x03ddcd6d, 0x02c435ec, 0x001b1efc}}}, + {X: Field{[10]uint32{0x00e2ec4e, 0x020061c2, 0x000f599a, 0x00da242e, 0x02c8549e, 0x0271a07f, 0x014b9a11, 0x00cc79b1, 0x01449811, 0x0008e0fc}}, Y: Field{[10]uint32{0x0133a1f9, 0x0182838d, 0x01cb1448, 0x00fa774d, 0x00d8fff0, 0x00111c3c, 0x00a999a7, 0x02dad64e, 0x011fd846, 0x0004ead0}}}, + {X: Field{[10]uint32{0x02096048, 0x01afc31b, 0x016b817d, 0x01ca2778, 0x0209953f, 0x0293d499, 0x0244584b, 0x00762fe2, 0x01c0d4fa, 0x000bc89c}}, Y: Field{[10]uint32{0x03b42fc4, 0x0182d80b, 0x00ab57cd, 0x00f69bc5, 0x03a95717, 0x00fbd54f, 0x0332c226, 0x0143a2db, 0x005db40e, 0x00191bbc}}}, + {X: Field{[10]uint32{0x01e951c7, 0x007c9a89, 0x01d089bf, 0x03682b69, 0x03809e7a, 0x02c047ba, 0x01be55cb, 0x01e89fbb, 0x031b0f06, 0x002ded26}}, Y: Field{[10]uint32{0x037c33ed, 0x037b8b1f, 0x033315b2, 0x00811641, 0x014a9b7f, 0x01f2c0ca, 0x02ec95c0, 0x001496b5, 0x00aca816, 0x003fb1d8}}}, + {X: Field{[10]uint32{0x01409223, 0x0206a979, 0x03557941, 0x032e7c2b, 0x027765d4, 0x00b6be07, 0x01866eb1, 0x00f9725c, 0x01cad993, 0x000db238}}, Y: Field{[10]uint32{0x008b8fdf, 0x0064cab7, 0x00853e29, 0x017d4926, 0x0122f2e3, 0x0045baa5, 0x01cc7309, 0x008a0b5c, 0x02d0a025, 0x002257ad}}}, + {X: Field{[10]uint32{0x001ed523, 0x01ef78ef, 0x00d6a6ee, 0x00455a13, 0x00fa5b8a, 0x0330ac38, 0x0173e018, 0x00d6484c, 0x01276328, 0x000f2fa4}}, Y: Field{[10]uint32{0x0244dc81, 0x03cc33f3, 0x03055e4d, 0x02cf4264, 0x01c5149a, 0x01d7c785, 0x030aa9dc, 0x01b26e65, 0x01c922f9, 0x001ecb4f}}}, + {X: Field{[10]uint32{0x0247213c, 0x01fa5ed8, 0x02d164e6, 0x02640c53, 0x02fe0aec, 0x022c8e79, 0x0048d380, 0x0250648d, 0x0141c463, 0x001dba53}}, Y: Field{[10]uint32{0x01fa1278, 0x03061ac8, 0x03cb5a3b, 0x0392fca0, 0x03f9efe4, 0x01d7e8e3, 0x03460bfd, 0x001d2440, 0x02c32f01, 0x0023b929}}}, + {X: Field{[10]uint32{0x031851ec, 0x03cd0cd2, 0x00c08506, 0x009e3bb0, 0x025b265d, 0x01ffa76e, 0x01749e00, 0x039f9e85, 0x01cb12c0, 0x00124e49}}, Y: Field{[10]uint32{0x0062b193, 0x02c5af13, 0x01a9a1f5, 0x003b6067, 0x02e4a240, 0x03dcc299, 0x02b318f9, 0x029195b2, 0x006b3960, 0x001c2403}}}, + {X: Field{[10]uint32{0x003cdcbf, 0x01cebb71, 0x026b7511, 0x01aaa7d7, 0x00387330, 0x01208f4e, 0x0020eb4a, 0x00e4f5e6, 0x02bad1a1, 0x002cdff6}}, Y: Field{[10]uint32{0x0327030a, 0x03b18203, 0x0252f28f, 0x03ca78d5, 0x03dfd325, 0x00c29d69, 0x00df67be, 0x0344e788, 0x00de57fa, 0x002141bc}}}, + {X: Field{[10]uint32{0x00a5e8c1, 0x027d296c, 0x007033c2, 0x008c271b, 0x008f2b70, 0x027e41c9, 0x030c90e0, 0x017124ca, 0x020c48e9, 0x00111465}}, Y: Field{[10]uint32{0x00d7490c, 0x006da1f5, 0x024de53b, 0x013efbd4, 0x0228bc40, 0x01dd9a93, 0x01c9e1a4, 0x027d9a58, 0x0218d9ce, 0x0020d54e}}}, + {X: Field{[10]uint32{0x03ea3449, 0x018ee037, 0x00704caf, 0x006f21a7, 0x00785772, 0x00fe61c6, 0x00ab20eb, 0x01a6e603, 0x01a8697c, 0x0026c2b0}}, Y: Field{[10]uint32{0x027e60e9, 0x0159877e, 0x0045d65b, 0x008c1cba, 0x0361b617, 0x00a02614, 0x0232a582, 0x02fcfdc7, 0x0053bf1b, 0x00084393}}}, + {X: Field{[10]uint32{0x001e0851, 0x01a12d1e, 0x01cebe92, 0x03e9f6f4, 0x0132eca4, 0x03003731, 0x02d62de1, 0x013df848, 0x0355ccae, 0x00399a5c}}, Y: Field{[10]uint32{0x01bdc3cb, 0x02e88dba, 0x01da1736, 0x024509ef, 0x029d3ded, 0x02201aa0, 0x00353f71, 0x03bcf251, 0x00ffdbe5, 0x0007c48b}}}, + {X: Field{[10]uint32{0x0167201e, 0x027c983c, 0x03f2afe3, 0x01387311, 0x03ad480a, 0x00a22eb1, 0x0326f861, 0x02932807, 0x00f11a1a, 0x003fea24}}, Y: Field{[10]uint32{0x01439cb4, 0x011272a1, 0x02b5d69d, 0x03682c06, 0x00ac569c, 0x01f43ba3, 0x03c41497, 0x03f0f51c, 0x03c41716, 0x0005a237}}}, + {X: Field{[10]uint32{0x00b6bf47, 0x02c6d3d5, 0x02c14cd3, 0x015e51b1, 0x00c41fcc, 0x03012813, 0x02b09b15, 0x00e33d8f, 0x00f26ce2, 0x00242235}}, Y: Field{[10]uint32{0x00d2c2b9, 0x00997579, 0x02909bfe, 0x0204adc3, 0x032ae4ec, 0x00f4d676, 0x01c9943b, 0x000138f5, 0x0017bc61, 0x00278e01}}}, + {X: Field{[10]uint32{0x01576a91, 0x0023ff36, 0x0070767c, 0x0288b00d, 0x0299949c, 0x00ca5af0, 0x03f7e5fe, 0x018383f9, 0x01dac1e7, 0x0028ce57}}, Y: Field{[10]uint32{0x012393d3, 0x025039d1, 0x038706ee, 0x00337800, 0x02314185, 0x00f7f3ee, 0x03070162, 0x01b45c5b, 0x039a5403, 0x0013e2a1}}}, + {X: Field{[10]uint32{0x038ad651, 0x0219e2ca, 0x00ecbd20, 0x0035d4cc, 0x011a7730, 0x007da1aa, 0x00ef2345, 0x03078163, 0x016454aa, 0x00047953}}, Y: Field{[10]uint32{0x01c020f2, 0x022ce5b2, 0x026796e0, 0x01164234, 0x01aaa53f, 0x0154a893, 0x0121dfef, 0x0067e715, 0x01605a84, 0x001d26ca}}}, + {X: Field{[10]uint32{0x00327f30, 0x02023f19, 0x0174675e, 0x036a3932, 0x0198f5f0, 0x031c074a, 0x02d5a707, 0x03a08aad, 0x00df7b41, 0x00323c4f}}, Y: Field{[10]uint32{0x03199404, 0x01a251f0, 0x0194d441, 0x02b75827, 0x00445d7a, 0x007cd3d8, 0x00329d6a, 0x0270737b, 0x01df17c0, 0x0012269a}}}, + {X: Field{[10]uint32{0x02d84442, 0x00f3dba4, 0x0250cd46, 0x02522897, 0x029487f3, 0x0386a770, 0x00c628c3, 0x0120e2a5, 0x02dccf67, 0x00245d79}}, Y: Field{[10]uint32{0x03de1c22, 0x002061a3, 0x007298cb, 0x00ec6e0f, 0x03c13e19, 0x01e329e9, 0x0237e510, 0x01c49547, 0x013fed37, 0x0021c15c}}}, + {X: Field{[10]uint32{0x0220099b, 0x018efd0d, 0x0209d228, 0x03b36c5e, 0x005df8b9, 0x014eb028, 0x038f6b89, 0x03c3a7b9, 0x012fb6d5, 0x0023bb52}}, Y: Field{[10]uint32{0x020ff1bf, 0x03a22747, 0x039d99ec, 0x03f41036, 0x0082e1ac, 0x0090e7b2, 0x00f8b946, 0x00ba6367, 0x03421767, 0x0008e915}}}, + {X: Field{[10]uint32{0x015c2dd9, 0x03e8d9c3, 0x03756beb, 0x02f1946d, 0x035cde90, 0x00417d75, 0x0393f543, 0x001bbde5, 0x0223dbac, 0x0032e573}}, Y: Field{[10]uint32{0x024a9a48, 0x022f9785, 0x02a4fc61, 0x01d3dfb3, 0x0057d22d, 0x01c777ad, 0x035ed992, 0x02c301ce, 0x02bac023, 0x002584a9}}}, + {X: Field{[10]uint32{0x03a3c980, 0x02b24199, 0x007c915d, 0x024e7391, 0x01d8fdd4, 0x02d69de4, 0x02a8ebf8, 0x03fcdf50, 0x00c8bbd3, 0x00199c86}}, Y: Field{[10]uint32{0x00ec26c0, 0x02020f23, 0x00f2ace9, 0x039c19d4, 0x00452a21, 0x00156d55, 0x0344aab1, 0x02bf751a, 0x01799e19, 0x00375004}}}, + {X: Field{[10]uint32{0x02f76e5f, 0x0166be0c, 0x0385219b, 0x02d683b4, 0x000c7627, 0x0310a5a6, 0x013e855d, 0x01214739, 0x01c60ded, 0x002211e6}}, Y: Field{[10]uint32{0x021c4a6b, 0x036998b0, 0x005ac3af, 0x01dff33c, 0x0022e343, 0x014b379e, 0x00d2d371, 0x010231e7, 0x01ed84e6, 0x0008e35d}}}, + {X: Field{[10]uint32{0x0111d143, 0x03bbab5a, 0x0396a256, 0x0240e9af, 0x022cc8bb, 0x0093a9b4, 0x03a05bae, 0x0020b165, 0x036b5fc0, 0x0023663c}}, Y: Field{[10]uint32{0x00ab3cd3, 0x035ece38, 0x01516f2a, 0x00c6c770, 0x03de7df9, 0x0005a05d, 0x01b2fcf8, 0x00a9b541, 0x011afc90, 0x0009ba2b}}}, + {X: Field{[10]uint32{0x03d70ad2, 0x00fd2e0f, 0x001ae740, 0x0223219d, 0x03d1db23, 0x034bbec7, 0x032cbc28, 0x031b4c9f, 0x02cac0dd, 0x002ea418}}, Y: Field{[10]uint32{0x028b38c2, 0x012ec299, 0x019f78f2, 0x03f5edcf, 0x01674539, 0x00e05115, 0x0171ccd5, 0x039d5367, 0x035b3036, 0x0011cecc}}}, + {X: Field{[10]uint32{0x02cdca29, 0x007700c2, 0x008f01ff, 0x014c478a, 0x017453ca, 0x01588414, 0x029be675, 0x039825e9, 0x02d73bf0, 0x00128b4d}}, Y: Field{[10]uint32{0x02ca8f83, 0x0290e1ac, 0x001d8595, 0x0205236c, 0x029d694a, 0x00a63d7e, 0x0283ac6c, 0x00c73513, 0x01e7a903, 0x0003fda4}}}, + {X: Field{[10]uint32{0x0337d0c4, 0x018b8773, 0x01c4fcd3, 0x00db8015, 0x006b3651, 0x00b0c972, 0x00fb0d93, 0x012c5ad9, 0x028fd99c, 0x003a1a3c}}, Y: Field{[10]uint32{0x00d4a9eb, 0x00ab7b13, 0x00bca274, 0x0044df65, 0x0240e5fa, 0x02224426, 0x00e0440e, 0x0040d23a, 0x02c18340, 0x002b4cd1}}}, + {X: Field{[10]uint32{0x03abbf3b, 0x028d464a, 0x03eea99d, 0x025b6903, 0x03ea77e6, 0x0088e60c, 0x0177e566, 0x01b2944b, 0x0289830a, 0x001b17a1}}, Y: Field{[10]uint32{0x01779540, 0x03a5196b, 0x017c12be, 0x00351a96, 0x0356b983, 0x01d4d91f, 0x01c333dd, 0x002d81ef, 0x01f15fd0, 0x0030a781}}}, + {X: Field{[10]uint32{0x00046344, 0x0096fb07, 0x02210e1a, 0x0318942b, 0x01c317ad, 0x02e756a4, 0x0391cc86, 0x00b7feba, 0x02a56ebf, 0x002ce85c}}, Y: Field{[10]uint32{0x034ac3d5, 0x017ebe0e, 0x01d119fc, 0x030379e9, 0x02f06401, 0x026930be, 0x031fff90, 0x0035b6f4, 0x01799ae4, 0x000a3db7}}}, + {X: Field{[10]uint32{0x000d8f47, 0x02a53884, 0x02b80091, 0x03b1c68e, 0x00ac4a22, 0x0251a2a3, 0x00aed673, 0x035de694, 0x01d2e2f9, 0x000663c1}}, Y: Field{[10]uint32{0x03cd0414, 0x0226782d, 0x002b3cbf, 0x01a0d830, 0x03397089, 0x00ff2c88, 0x02e3baaf, 0x00c5cf2b, 0x003fc981, 0x00331a86}}}, + {X: Field{[10]uint32{0x0077f48e, 0x03d42aac, 0x039d89f0, 0x036de7f0, 0x0341ae77, 0x02142c1e, 0x007703ae, 0x029e452f, 0x038fa943, 0x001e2c85}}, Y: Field{[10]uint32{0x025274e7, 0x0272c558, 0x02beb11b, 0x03b30a7a, 0x01d78fce, 0x006006f8, 0x0389004e, 0x02c24a2e, 0x0234f2cb, 0x00217f4f}}}, + {X: Field{[10]uint32{0x01943f3e, 0x010fee36, 0x02dcccec, 0x03e757dc, 0x0023828e, 0x01c38a29, 0x017a7951, 0x0145d7e6, 0x03001d4c, 0x001bdc37}}, Y: Field{[10]uint32{0x028315ce, 0x007bb733, 0x03ee5f0f, 0x030aa37e, 0x02956a66, 0x01cc38a9, 0x039c34be, 0x020f9165, 0x0213b771, 0x00098c54}}}, + {X: Field{[10]uint32{0x01a9dccc, 0x030d676d, 0x03bd09cf, 0x00b47343, 0x02e3964b, 0x0116d649, 0x01509e3b, 0x01b4a741, 0x01443c94, 0x002ae04c}}, Y: Field{[10]uint32{0x00f5c5ac, 0x00db2a41, 0x01062063, 0x002cfd41, 0x0216b771, 0x031b184c, 0x005e5876, 0x01cebe83, 0x03150c12, 0x002baf7c}}}, + {X: Field{[10]uint32{0x01473ad3, 0x03a20f81, 0x021a20a3, 0x027ae8cc, 0x016b9456, 0x01f979bb, 0x0323e627, 0x00449c8d, 0x0391dd75, 0x0039cacd}}, Y: Field{[10]uint32{0x0328a3d8, 0x03d320a6, 0x0319fd4d, 0x02b220c2, 0x039c2091, 0x038e8a11, 0x03109ab5, 0x02aa83f4, 0x00742dbc, 0x0004c6cc}}}, + {X: Field{[10]uint32{0x023ded63, 0x00a10cb3, 0x00c74619, 0x01f15ad4, 0x02bb525d, 0x033141f6, 0x03df77af, 0x017940e3, 0x0296ecdd, 0x0032968c}}, Y: Field{[10]uint32{0x03c4ab9e, 0x0197f1bf, 0x0254b3f8, 0x0274af73, 0x005a1420, 0x00acd96f, 0x027258e4, 0x01deea40, 0x0394b7e1, 0x0022f6d9}}}, + {X: Field{[10]uint32{0x031a9222, 0x0069c038, 0x01819c88, 0x00569c9a, 0x02e7d2e8, 0x0300ec80, 0x01be59dc, 0x0233ff3b, 0x029f26ae, 0x003aa8ef}}, Y: Field{[10]uint32{0x0124ec1c, 0x03917065, 0x02acc735, 0x0059f35f, 0x0336ac28, 0x0077cb4e, 0x02f80265, 0x034d3183, 0x00d7a367, 0x0006d68b}}}, + {X: Field{[10]uint32{0x00e97728, 0x02c0f7ba, 0x02206582, 0x0399d21c, 0x0035a011, 0x019e4555, 0x022076d5, 0x03fdab85, 0x002d3ab4, 0x003aeea2}}, Y: Field{[10]uint32{0x01be16ac, 0x02f91d19, 0x010ed355, 0x0161ef7f, 0x018a004c, 0x027b6319, 0x02f2ac76, 0x034b3736, 0x02053d8d, 0x0025088a}}}, + {X: Field{[10]uint32{0x013aba86, 0x0248f20d, 0x01f446d8, 0x0345a3a3, 0x01ba88e0, 0x03688180, 0x03cb784e, 0x01774451, 0x03ea537a, 0x00328365}}, Y: Field{[10]uint32{0x028fba1f, 0x01f2a67d, 0x01b68016, 0x024a1d2d, 0x0196c978, 0x01124399, 0x02bb979a, 0x021bc623, 0x005889eb, 0x0021d2b2}}}, + {X: Field{[10]uint32{0x03b797e1, 0x0233ecfa, 0x01a24771, 0x002c3877, 0x0184a90a, 0x017f0671, 0x0398f98c, 0x01d151f9, 0x01653480, 0x0014778a}}, Y: Field{[10]uint32{0x03f7c54d, 0x03bfd600, 0x007bf87c, 0x012e6792, 0x03ace0ee, 0x03f37e69, 0x001952b0, 0x039ae557, 0x023aad04, 0x00204dd3}}}, + {X: Field{[10]uint32{0x01387509, 0x031bb230, 0x00df5151, 0x00d4d96e, 0x0287b521, 0x007523ed, 0x00e39bda, 0x01af8833, 0x011f0313, 0x0001a758}}, Y: Field{[10]uint32{0x0195bde0, 0x028b088c, 0x01fa7e9d, 0x02a9ac9c, 0x00fb84c0, 0x0170a5c8, 0x01127e1a, 0x01932b13, 0x0020563b, 0x001d78b6}}}, + {X: Field{[10]uint32{0x028aa135, 0x015f784e, 0x00a9cb2f, 0x03037914, 0x006fa4a4, 0x03737886, 0x02204561, 0x01983c8c, 0x00830558, 0x000c458c}}, Y: Field{[10]uint32{0x0346eae2, 0x0376fdbf, 0x03817539, 0x001f97ee, 0x0229e142, 0x038762dd, 0x008c636a, 0x005a20c0, 0x0096b134, 0x000975b5}}}, + {X: Field{[10]uint32{0x007ac334, 0x0335584b, 0x00274cc3, 0x00f61a13, 0x0111f462, 0x0342b66a, 0x002e5b44, 0x03353536, 0x02aaefa9, 0x002138d0}}, Y: Field{[10]uint32{0x0292a70e, 0x023d980a, 0x016540fb, 0x03ed42bb, 0x02f552af, 0x03f974bd, 0x00f0a324, 0x02665f21, 0x03ff260f, 0x003ee436}}}, + {X: Field{[10]uint32{0x03bf6562, 0x0199a499, 0x025bc64d, 0x02b2219e, 0x00fa812a, 0x03538ea8, 0x00468143, 0x02c45489, 0x0002969d, 0x00257bf1}}, Y: Field{[10]uint32{0x03371883, 0x0304d667, 0x034b3e82, 0x027f5dea, 0x02e4567d, 0x0114957e, 0x033f00d4, 0x0094b15b, 0x00316149, 0x000c56f3}}}, + {X: Field{[10]uint32{0x038d07fe, 0x01727a35, 0x01507e3d, 0x0126ed40, 0x0255b401, 0x0156ee6f, 0x0289993a, 0x027682f4, 0x023cf87e, 0x001488d8}}, Y: Field{[10]uint32{0x00613b56, 0x02023f2b, 0x03deffa5, 0x00876cf2, 0x000832e9, 0x0001dbe2, 0x01b1c16b, 0x03d0dc02, 0x0221dd2d, 0x001aff42}}}, + {X: Field{[10]uint32{0x00cb0a4f, 0x0132e5f0, 0x0255df5f, 0x00659ac2, 0x00ea180f, 0x0027845e, 0x0187ab31, 0x01c1f987, 0x01990a6b, 0x003c84b4}}, Y: Field{[10]uint32{0x00f7c84b, 0x01ac1a68, 0x0382412f, 0x008867b0, 0x037f5114, 0x0303a844, 0x03c31427, 0x02d93b91, 0x006c7edb, 0x000ca011}}}, + {X: Field{[10]uint32{0x01cfe8c9, 0x033d630c, 0x01b50835, 0x03888438, 0x02e1e19c, 0x000163e5, 0x014431b2, 0x01dbe085, 0x023ff25d, 0x001ad541}}, Y: Field{[10]uint32{0x0069f8bf, 0x002236a4, 0x031c6492, 0x028f75f8, 0x01558a82, 0x03d83ffb, 0x02997076, 0x001d891b, 0x01623645, 0x001509f7}}}, + {X: Field{[10]uint32{0x01b23045, 0x006755c2, 0x01e96472, 0x0106a0b8, 0x03c9388d, 0x039be2c9, 0x02e0c129, 0x0243004a, 0x01cfa096, 0x00094e79}}, Y: Field{[10]uint32{0x01021ac3, 0x0115eb76, 0x0224a77c, 0x02d28967, 0x0331d804, 0x01444cd1, 0x0393000e, 0x02937346, 0x03f61e26, 0x002532e0}}}, + {X: Field{[10]uint32{0x0247d51d, 0x03eb9502, 0x03fb6297, 0x007bc394, 0x03910642, 0x03ca30fd, 0x02ed31e8, 0x0070c1c6, 0x02d34aaf, 0x002aa6da}}, Y: Field{[10]uint32{0x03544c47, 0x02779de0, 0x03d3ed1c, 0x01fb2910, 0x0158cbd8, 0x002ad366, 0x034e7db1, 0x02b80262, 0x00e49fe4, 0x00370256}}}, + {X: Field{[10]uint32{0x013487ad, 0x014cbd80, 0x0262f780, 0x0397a728, 0x03e08964, 0x028fdac3, 0x02d6e635, 0x0093efd7, 0x0313aad2, 0x002a1428}}, Y: Field{[10]uint32{0x014ccbe7, 0x020cd8fb, 0x01a4c43b, 0x01c09bc5, 0x01d9a5e5, 0x03bbcd1e, 0x01708ca0, 0x015708ee, 0x02d54cbc, 0x001f91da}}}, + {X: Field{[10]uint32{0x03a09c1a, 0x02352b97, 0x0328c741, 0x00c991de, 0x025da441, 0x00638a74, 0x00889fab, 0x00325b41, 0x0033f4fd, 0x000c53fb}}, Y: Field{[10]uint32{0x03d25f42, 0x01ee53fa, 0x024a976b, 0x034c6a9a, 0x00d9b4b8, 0x0254d3f7, 0x01dd4f54, 0x03fede6d, 0x01130a98, 0x00028b25}}}, + {X: Field{[10]uint32{0x033d0963, 0x02be8d53, 0x01c85329, 0x02e33d4b, 0x03183998, 0x02bef73b, 0x01581ae1, 0x01f9e6b8, 0x03c89ec5, 0x001b9f70}}, Y: Field{[10]uint32{0x019f87d8, 0x01457e27, 0x00964a83, 0x00c3f32b, 0x038f0578, 0x01662ac6, 0x011e3a82, 0x023a7e59, 0x00056d5a, 0x001ad8da}}}, + {X: Field{[10]uint32{0x033337c5, 0x01f50015, 0x034ad955, 0x03016309, 0x0038b6cf, 0x03461071, 0x0097a507, 0x028b5481, 0x0293fc4b, 0x00165b7d}}, Y: Field{[10]uint32{0x037f4ff5, 0x00ff412c, 0x033c6bd0, 0x00cf5732, 0x0274b75c, 0x027b173f, 0x0171723e, 0x02c26ce8, 0x01e91c97, 0x0019827b}}}, + {X: Field{[10]uint32{0x00e8afb7, 0x03c28485, 0x034ee13c, 0x01665ef2, 0x00ee3ba2, 0x01ef50b5, 0x0150e8e7, 0x01e00161, 0x01d410de, 0x0008d7e3}}, Y: Field{[10]uint32{0x00fa6712, 0x038562db, 0x031bd189, 0x00ce092d, 0x0153b72c, 0x00429115, 0x00f8d595, 0x0384da00, 0x00cdb8e8, 0x002fdb83}}}, + {X: Field{[10]uint32{0x03db8b47, 0x027308c4, 0x0227904c, 0x01abbda4, 0x003f0390, 0x0203a07c, 0x01fbb28c, 0x03a47c49, 0x0297b259, 0x002a762e}}, Y: Field{[10]uint32{0x00048656, 0x01d52b3b, 0x0337bf14, 0x03d916e9, 0x015e6ce6, 0x0087d625, 0x0072afe2, 0x0203c99d, 0x015419b5, 0x00399a2e}}}, + {X: Field{[10]uint32{0x02288e5c, 0x02c1fa12, 0x027f4827, 0x00d6df66, 0x00c4e2cc, 0x004d26e2, 0x02bc6295, 0x0305c050, 0x01c64f74, 0x0014ed13}}, Y: Field{[10]uint32{0x017075d4, 0x01b855c2, 0x02c7e589, 0x021f6325, 0x02322161, 0x03fb9ed6, 0x03006ead, 0x018b1363, 0x03e14045, 0x0012bfc4}}}, + {X: Field{[10]uint32{0x000af1a0, 0x02d68096, 0x0362f947, 0x01e4121b, 0x02a91872, 0x0125121a, 0x00b56ca1, 0x03e7dc6b, 0x0038a6ba, 0x001db9b8}}, Y: Field{[10]uint32{0x01f0f0fa, 0x039ad378, 0x03fd4465, 0x035c899b, 0x003b57e0, 0x03811644, 0x0018348b, 0x0101d913, 0x01106688, 0x00146974}}}, + {X: Field{[10]uint32{0x03c1e6b5, 0x03d4efe6, 0x038702bc, 0x031c6fb1, 0x001c45b4, 0x037a192f, 0x02da284d, 0x0004a443, 0x03192fc7, 0x001dd87f}}, Y: Field{[10]uint32{0x016e11b2, 0x01f6b10a, 0x007c1d94, 0x032ec6ad, 0x03e0bb75, 0x030f9f4d, 0x037e1fdf, 0x01c65987, 0x0370a82f, 0x00202603}}}, + {X: Field{[10]uint32{0x009aadf9, 0x034a012a, 0x02d7f8fe, 0x02388434, 0x0095c0bd, 0x021a7618, 0x01cdc333, 0x03d47f9b, 0x01d61224, 0x00206672}}, Y: Field{[10]uint32{0x031ec89b, 0x038c15d2, 0x0292ddaa, 0x01f4aa74, 0x00a158ee, 0x000c371d, 0x01bbd73f, 0x008e12ba, 0x024f5cbd, 0x002fa25c}}}, + {X: Field{[10]uint32{0x01c55c0e, 0x009d0164, 0x033b799d, 0x032f9422, 0x0008bd4d, 0x02f5de76, 0x01626803, 0x00955aef, 0x01fc760a, 0x0005709e}}, Y: Field{[10]uint32{0x03390c39, 0x00f934d4, 0x01dee337, 0x02c19c85, 0x010ea0b9, 0x0328103f, 0x015d352b, 0x03258d24, 0x00bfed80, 0x003f540e}}}, + {X: Field{[10]uint32{0x00a39b46, 0x0045857e, 0x031a83c1, 0x03900520, 0x019724ac, 0x0330b9fb, 0x03b46a3e, 0x01011dbd, 0x0106b280, 0x003ecfe3}}, Y: Field{[10]uint32{0x03d2154e, 0x03ecf3da, 0x011854fb, 0x0142b264, 0x023177ed, 0x00f06f5c, 0x03fd70c6, 0x006d84ec, 0x00b6ff85, 0x003e4943}}}, + {X: Field{[10]uint32{0x02012edb, 0x03269bae, 0x0389b5ea, 0x00576c2c, 0x02f9faf4, 0x025f0ff7, 0x02723e30, 0x01049768, 0x01473c96, 0x000e6cad}}, Y: Field{[10]uint32{0x03fb7547, 0x0220bc86, 0x01564002, 0x02b8377e, 0x016bce7b, 0x03d97c8c, 0x028aedf1, 0x03d04ef5, 0x02a5a586, 0x0022b070}}}, + {X: Field{[10]uint32{0x03f1552b, 0x03fd1291, 0x0284820c, 0x00fab21f, 0x01bf72d7, 0x02c93a33, 0x03f6d0bb, 0x00546874, 0x03fae476, 0x0010b577}}, Y: Field{[10]uint32{0x00847ee4, 0x03eb6d2e, 0x02ee2922, 0x01185f61, 0x02663f6e, 0x0100ef3d, 0x03ebe3af, 0x03000589, 0x0245d941, 0x0018c765}}}, + {X: Field{[10]uint32{0x02e0bd8f, 0x007edeb9, 0x02158e31, 0x0349b671, 0x02630a0b, 0x03a48b66, 0x02dd0711, 0x02afc297, 0x02c624ec, 0x00213725}}, Y: Field{[10]uint32{0x038703c6, 0x023ab8fb, 0x025a82cc, 0x01c4302a, 0x01c795cc, 0x02f4bf09, 0x00ff10a8, 0x00c934ab, 0x018a16b7, 0x00102bcc}}}, + {X: Field{[10]uint32{0x03bf505e, 0x01ce60d2, 0x013bf018, 0x000b0db6, 0x034663ba, 0x01efdf2e, 0x03812af3, 0x033bb846, 0x020a797b, 0x0018db9d}}, Y: Field{[10]uint32{0x01f724d2, 0x03dc0e99, 0x012ffd74, 0x010015f6, 0x0069924f, 0x0012e516, 0x02dab981, 0x033dd90d, 0x024b6cc8, 0x003b5717}}}, + {X: Field{[10]uint32{0x00d06ae4, 0x03dd6026, 0x01090d4f, 0x003fd85d, 0x007d32bc, 0x0389e019, 0x01ca6f4a, 0x03b9e19a, 0x00254bb5, 0x0004dff4}}, Y: Field{[10]uint32{0x028d0fd4, 0x02dfc24c, 0x00bc808f, 0x00f7a739, 0x03e07ec2, 0x00dba4b9, 0x03186a30, 0x02aa83a6, 0x02a225ea, 0x000a0b5a}}}, + {X: Field{[10]uint32{0x02459e92, 0x01cd3484, 0x00b611b6, 0x01805eaf, 0x00df781f, 0x02c943f0, 0x01bc7a5c, 0x02495ad5, 0x004839e4, 0x000862ae}}, Y: Field{[10]uint32{0x010e1599, 0x012cf393, 0x02444c99, 0x03f1c072, 0x001a7212, 0x00cbce7c, 0x00c49c8d, 0x02c3710c, 0x0356b53f, 0x001fac53}}}, + {X: Field{[10]uint32{0x038eda65, 0x00552557, 0x034fb619, 0x0267aed3, 0x011b2f0a, 0x03c4dd81, 0x029e3a78, 0x008be37d, 0x03a0106f, 0x001acfde}}, Y: Field{[10]uint32{0x0330d299, 0x03ededc8, 0x013b7aaa, 0x000174db, 0x036c8310, 0x0207a21c, 0x019a4ab4, 0x01afbe1b, 0x00c44c94, 0x000315e2}}}, + {X: Field{[10]uint32{0x01e8ceca, 0x038c7f76, 0x03d08c5d, 0x032bdffb, 0x02131ad1, 0x00bad6e1, 0x02fdf196, 0x00465465, 0x02cba2de, 0x0026d053}}, Y: Field{[10]uint32{0x0325a637, 0x024897a9, 0x00797063, 0x0216579d, 0x0251e94e, 0x036a7d39, 0x01b06269, 0x037d0203, 0x031f9550, 0x000e39bc}}}, + {X: Field{[10]uint32{0x02940653, 0x03d986c9, 0x01f8ecba, 0x023bcfcb, 0x02156a4a, 0x00751135, 0x0133af0d, 0x0097861a, 0x03a18574, 0x0010dac1}}, Y: Field{[10]uint32{0x003f2d44, 0x0156cc51, 0x0053ace1, 0x0346f393, 0x03c6822d, 0x0093f318, 0x02427137, 0x03af7b29, 0x0335f124, 0x0025294b}}}, + {X: Field{[10]uint32{0x028fbc6b, 0x00cb3544, 0x034d1fff, 0x00a08266, 0x00b8d76f, 0x01ed78a4, 0x0019bd18, 0x017e08cd, 0x033809b2, 0x003302a4}}, Y: Field{[10]uint32{0x023f458e, 0x02ffa1db, 0x029ec220, 0x01e90c3b, 0x00e713ad, 0x01d54038, 0x00cb6278, 0x031ea512, 0x006dec7a, 0x000331fa}}}, + {X: Field{[10]uint32{0x03a19858, 0x007fa0f0, 0x038888f2, 0x03a9cbef, 0x037ea684, 0x02be372a, 0x03b1907e, 0x01debf31, 0x016eaaf8, 0x001686cc}}, Y: Field{[10]uint32{0x0181e7e1, 0x010933b3, 0x00450cf7, 0x02508b6f, 0x02744110, 0x029a504b, 0x02b3466d, 0x0211a9ad, 0x039ada08, 0x0012bc0c}}}, + {X: Field{[10]uint32{0x016c53ee, 0x01f5025b, 0x0327400e, 0x0094be7f, 0x01ac4a57, 0x000e62c9, 0x021e4114, 0x012ec87f, 0x01657444, 0x003ebe24}}, Y: Field{[10]uint32{0x01a43100, 0x0053db26, 0x03cb3997, 0x02b20420, 0x01d87984, 0x02c5b271, 0x00b64263, 0x0151fd77, 0x015faf75, 0x0033e9de}}}, + {X: Field{[10]uint32{0x0174f248, 0x03937ab4, 0x01e33aa9, 0x00b52586, 0x00c94cd2, 0x031b2c0a, 0x000c68c6, 0x00588c61, 0x018aca14, 0x000e797f}}, Y: Field{[10]uint32{0x003c1ff1, 0x00429be3, 0x0210561d, 0x02194a2a, 0x020a8d36, 0x023d989d, 0x0013e788, 0x036995d0, 0x03657083, 0x003e0487}}}, + {X: Field{[10]uint32{0x0325cbc1, 0x010c2600, 0x000e9257, 0x0350866f, 0x02a64b8e, 0x03ef84d5, 0x013cddf6, 0x0033cb33, 0x01ec147d, 0x0008284d}}, Y: Field{[10]uint32{0x0282c013, 0x008ab9bb, 0x006a7156, 0x002a047c, 0x01fa1d17, 0x01d74c2a, 0x0101fd26, 0x00dc9530, 0x00abea1a, 0x002c5d45}}}, + {X: Field{[10]uint32{0x0072320a, 0x0070ad0b, 0x011fab46, 0x00462a21, 0x039903ca, 0x031d6c4e, 0x03d69e2a, 0x03dcfe84, 0x01b8af48, 0x00286068}}, Y: Field{[10]uint32{0x03a6df20, 0x03212ca5, 0x02a5a219, 0x00e8310e, 0x00a66fbd, 0x035621e8, 0x032c432a, 0x01f988f5, 0x00673f48, 0x00325b21}}}, + {X: Field{[10]uint32{0x01b3ee4f, 0x0118b1df, 0x03fc2752, 0x02557ae1, 0x01eb4626, 0x0145b7a3, 0x035d76a9, 0x01768beb, 0x0031720a, 0x000e57f0}}, Y: Field{[10]uint32{0x0359ad6a, 0x022fd071, 0x00523128, 0x01a66cd0, 0x00962ac8, 0x00fb1127, 0x00e14e7c, 0x00e256ad, 0x006b5378, 0x0012baf2}}}, + {X: Field{[10]uint32{0x0364fa6f, 0x01accf46, 0x03d17424, 0x0395c6e7, 0x0103fffc, 0x02ed8cdf, 0x01632a61, 0x00ae5a1f, 0x01ecf6df, 0x0028db7a}}, Y: Field{[10]uint32{0x011999f4, 0x03721899, 0x01ea9cdb, 0x027f43c1, 0x01620fe2, 0x01f7ad03, 0x0212e147, 0x0345006c, 0x004fa133, 0x001e1393}}}, + {X: Field{[10]uint32{0x0040ba8c, 0x01d1b8a6, 0x00359d04, 0x02e0f6f7, 0x03e55a3a, 0x0114d7d5, 0x03818200, 0x0110c3dc, 0x0099ecee, 0x00232d6a}}, Y: Field{[10]uint32{0x017ff59a, 0x03697780, 0x00b2cb92, 0x02c7bc0b, 0x01731ded, 0x00f4a2d3, 0x01df0ecc, 0x028f04b0, 0x002ae9c3, 0x0004a9ca}}}, + {X: Field{[10]uint32{0x00b60985, 0x0142d998, 0x01f299c4, 0x0362c9ac, 0x004cee72, 0x00bf47ef, 0x02372012, 0x026e8643, 0x01e14d9c, 0x00037910}}, Y: Field{[10]uint32{0x0271b63e, 0x03884500, 0x02110508, 0x0319d40c, 0x022927b3, 0x009fefad, 0x03740d44, 0x0374cf53, 0x030ed12d, 0x002b7468}}}, + {X: Field{[10]uint32{0x039fbab7, 0x02081ea6, 0x01067407, 0x030e5ca5, 0x00520646, 0x004a3446, 0x02f3c1b7, 0x0151283c, 0x0356b5e5, 0x002238e2}}, Y: Field{[10]uint32{0x0000e5e3, 0x00763984, 0x034b7810, 0x00828b63, 0x00dc8ea0, 0x02f6bc61, 0x03ac529c, 0x02595b96, 0x008ed44e, 0x00220cc8}}}, + {X: Field{[10]uint32{0x034640a7, 0x03ccdd03, 0x0266c6c5, 0x032583d4, 0x013ee217, 0x0234b5ca, 0x03fa3d15, 0x019082e7, 0x0192f561, 0x00293c3e}}, Y: Field{[10]uint32{0x002e6ddb, 0x0038807e, 0x01e713d8, 0x023a04a2, 0x010b131a, 0x006bd0bf, 0x02c9188a, 0x021af103, 0x01a8437a, 0x003699d0}}}, + {X: Field{[10]uint32{0x005c945b, 0x014901c7, 0x02ad7efe, 0x02fcdfe5, 0x0286899f, 0x01147634, 0x00a40bee, 0x02aab981, 0x00cff2d1, 0x0017c02a}}, Y: Field{[10]uint32{0x019deb12, 0x02d8f4ad, 0x0262a424, 0x034eb9b1, 0x030b48ea, 0x011a4b56, 0x011549fb, 0x01b5b8e7, 0x00b69ea7, 0x0004d7f2}}}, + {X: Field{[10]uint32{0x00f99218, 0x01b38c62, 0x00da0b41, 0x019ea79b, 0x039d1689, 0x00e376e3, 0x004c7998, 0x03f28bb8, 0x020ebfd6, 0x00164d46}}, Y: Field{[10]uint32{0x010fdb34, 0x00f53a75, 0x025b64fe, 0x0275ce91, 0x000fc415, 0x00a479f2, 0x0227b6d4, 0x03d2a0a3, 0x02673184, 0x001b8068}}}, + {X: Field{[10]uint32{0x00b1aecf, 0x025be44b, 0x039f72c7, 0x01cf9dfc, 0x006705ef, 0x03c98f43, 0x007387a5, 0x00cecf7a, 0x0235f5c5, 0x00005d7b}}, Y: Field{[10]uint32{0x01d9513f, 0x0340a02e, 0x03506a80, 0x018cf35e, 0x005fca3b, 0x0317ef58, 0x00d40fc4, 0x03909878, 0x03154540, 0x0028de49}}}, + {X: Field{[10]uint32{0x0347b8fe, 0x01f7eefc, 0x033b0204, 0x0077eb40, 0x00565595, 0x01e416b5, 0x036362fa, 0x0062b26a, 0x0341597b, 0x001d4626}}, Y: Field{[10]uint32{0x01b2527e, 0x01deddc8, 0x03ed5b01, 0x010a116b, 0x01aa2468, 0x015a967b, 0x00023de2, 0x0043a95f, 0x01210ffa, 0x003d4dbf}}}, + {X: Field{[10]uint32{0x019bd4ae, 0x02690528, 0x01c72004, 0x01cdad68, 0x02438855, 0x01fbf48e, 0x03d2a315, 0x035971c2, 0x02c32522, 0x00246be7}}, Y: Field{[10]uint32{0x001a32de, 0x01aec21d, 0x02d6e643, 0x00668b29, 0x0331c9cc, 0x002d1066, 0x004898ed, 0x02e161ad, 0x03c38462, 0x000c4801}}}, + {X: Field{[10]uint32{0x00565c27, 0x02876129, 0x01b04712, 0x02906853, 0x00732273, 0x03ca0f17, 0x01094432, 0x03574174, 0x008d41fa, 0x00376cbf}}, Y: Field{[10]uint32{0x029c1d0a, 0x02e8beb5, 0x01a38d63, 0x02db5fcb, 0x028f6ac9, 0x0224f424, 0x01673a09, 0x031bd080, 0x00c502ce, 0x0013df8c}}}, + {X: Field{[10]uint32{0x023641a6, 0x037077fd, 0x00f96f7d, 0x001fcac1, 0x01ad40a9, 0x0290494e, 0x0144936e, 0x00370d40, 0x0122d724, 0x00273997}}, Y: Field{[10]uint32{0x01d97c8c, 0x009d825e, 0x02340cf9, 0x010e0150, 0x00c3037e, 0x01818bd5, 0x020b4257, 0x02f19091, 0x01877f25, 0x002be4f9}}}, + {X: Field{[10]uint32{0x036e9a2b, 0x01b5dbdd, 0x015f5493, 0x02c079fe, 0x015489f1, 0x002fd24b, 0x003932eb, 0x03b16247, 0x00d41fed, 0x001f7034}}, Y: Field{[10]uint32{0x0107c47a, 0x01a6656c, 0x0134fa52, 0x03d694d6, 0x001e9bbc, 0x00e0c685, 0x021c7a49, 0x00f04efe, 0x039e760c, 0x00355689}}}, + {X: Field{[10]uint32{0x000e5ead, 0x000ea553, 0x008c163d, 0x003cca07, 0x02f190d4, 0x00f92a9f, 0x018d351f, 0x035ca277, 0x015cb6b4, 0x00034048}}, Y: Field{[10]uint32{0x00fdc662, 0x00b2206c, 0x02a2548b, 0x0318267b, 0x01c68be6, 0x01906153, 0x03ce7fe0, 0x01fbb9c8, 0x004bccbd, 0x003be60d}}}, + {X: Field{[10]uint32{0x017cb92f, 0x0019d9e3, 0x02af3e1d, 0x0318a4cf, 0x00bb6498, 0x02f7fcf5, 0x011b0d29, 0x03be3d66, 0x0031a9fa, 0x00035347}}, Y: Field{[10]uint32{0x026a4831, 0x017e18ab, 0x0190a4df, 0x036e93d9, 0x02715fae, 0x00861791, 0x03ccd42f, 0x0247ea16, 0x0048ac6b, 0x00263cea}}}, + {X: Field{[10]uint32{0x02080839, 0x034bc931, 0x035a49fa, 0x00310686, 0x023d718f, 0x0212c78c, 0x022d83c0, 0x03c930f6, 0x02cf42ab, 0x00331967}}, Y: Field{[10]uint32{0x001f963c, 0x009d86b2, 0x00cbbf0f, 0x0250fe13, 0x00c7aef0, 0x039e55d6, 0x02df249a, 0x00ce66db, 0x01554d84, 0x001eef7f}}}, + {X: Field{[10]uint32{0x01ea4b04, 0x0345905c, 0x0104e594, 0x01d59c23, 0x00f0eb47, 0x01e2fbcd, 0x0074e944, 0x03ce1674, 0x0167d5cf, 0x00066e85}}, Y: Field{[10]uint32{0x02820f9a, 0x014d2152, 0x00ed5d4f, 0x024722e4, 0x0030555c, 0x03967044, 0x00583114, 0x02c0bb6a, 0x001bd536, 0x000d3a8a}}}, + {X: Field{[10]uint32{0x03bbc30f, 0x01e63d75, 0x006a5437, 0x039d4a56, 0x02e825d8, 0x0354b4b6, 0x01960e5f, 0x01641d8c, 0x02e31a6e, 0x000fc3c0}}, Y: Field{[10]uint32{0x03e63c3b, 0x00241878, 0x0119a035, 0x00a5ed01, 0x0162a3bf, 0x038b35a9, 0x0079ddcb, 0x03536964, 0x03c33aec, 0x002e4f89}}}, + {X: Field{[10]uint32{0x0149ab12, 0x001e4900, 0x0323e0df, 0x025b97ea, 0x008d0fb0, 0x003ce0ad, 0x01dd895b, 0x00ff656a, 0x008f35f6, 0x00262131}}, Y: Field{[10]uint32{0x0180eb44, 0x00907ed0, 0x02aa013f, 0x017a627f, 0x03e01154, 0x022dbd06, 0x01e321f5, 0x010df0f5, 0x02667070, 0x0015a230}}}, + {X: Field{[10]uint32{0x006c7b4d, 0x026edf31, 0x00b47448, 0x0380ac8f, 0x02bb4a6f, 0x00be0f96, 0x002e85ac, 0x027154c2, 0x029379bc, 0x002503ca}}, Y: Field{[10]uint32{0x0321fd9d, 0x03038b1f, 0x02284700, 0x0274b2b8, 0x002aa742, 0x02f1a9e1, 0x027c735c, 0x02763d47, 0x038077ba, 0x002d2e08}}}, + {X: Field{[10]uint32{0x00b782f0, 0x01d0bad6, 0x0001c0e0, 0x000d0be4, 0x005f4beb, 0x014d0fa9, 0x02feccbb, 0x00f67d06, 0x019ce535, 0x002a69da}}, Y: Field{[10]uint32{0x0187c994, 0x02a565e5, 0x018b4c7c, 0x02f17ed2, 0x01b0536f, 0x029806b2, 0x0341f778, 0x0233c690, 0x02aab3e1, 0x000f1d67}}}, + {X: Field{[10]uint32{0x03218913, 0x008898c2, 0x034afb15, 0x00748fc9, 0x0293f4da, 0x00b4044a, 0x0236cc28, 0x036c015b, 0x008a009c, 0x0028878d}}, Y: Field{[10]uint32{0x02be89ed, 0x0307d31f, 0x038da588, 0x01cec79d, 0x03c70b18, 0x01c07998, 0x00b8e28a, 0x025419bb, 0x03fa652f, 0x00050550}}}, + {X: Field{[10]uint32{0x025fd383, 0x0123ecd6, 0x01ca41f0, 0x0018c1a9, 0x00e81429, 0x006339ce, 0x03298d60, 0x0384614a, 0x01951121, 0x0035b553}}, Y: Field{[10]uint32{0x028a7a83, 0x014d1160, 0x02912412, 0x03cd4d68, 0x028f76c8, 0x02363bb4, 0x00fe9d03, 0x007f88c1, 0x00b8de89, 0x00225f73}}}, + {X: Field{[10]uint32{0x031e6cda, 0x0303c770, 0x03ebe21c, 0x01928e91, 0x026232b4, 0x03bec4be, 0x00c7f7b5, 0x03abed22, 0x035dc937, 0x001f8298}}, Y: Field{[10]uint32{0x01e921e2, 0x00eb18e3, 0x01e822d6, 0x021b3b58, 0x0274489c, 0x02b72fcd, 0x025b34e3, 0x017874b3, 0x014a7552, 0x00034b47}}}, + {X: Field{[10]uint32{0x0051a659, 0x02802e35, 0x000d3afe, 0x0053eb08, 0x0155bafa, 0x01acfeba, 0x00870e83, 0x0071a10a, 0x000f66a2, 0x00133882}}, Y: Field{[10]uint32{0x007da4c4, 0x03c157db, 0x01b1d891, 0x0249cf8c, 0x02f0ca1b, 0x0037e4eb, 0x00d0f3ef, 0x000bf4c6, 0x0226565b, 0x000a787e}}}, + {X: Field{[10]uint32{0x012bad2e, 0x007d509c, 0x00f7fc09, 0x02d363d6, 0x01e6d4b7, 0x02e27a05, 0x00d5caf1, 0x02fd9567, 0x0387b633, 0x0036ae1a}}, Y: Field{[10]uint32{0x03c85b5e, 0x0057acd4, 0x03bdf8fd, 0x00d1f95e, 0x004506a6, 0x0156f64c, 0x00159d7f, 0x0157ce36, 0x0109d79a, 0x0023926c}}}, + {X: Field{[10]uint32{0x0365aca9, 0x00a4006c, 0x017a56ae, 0x012854a2, 0x01ba1622, 0x01d9cb4e, 0x035386ea, 0x00cb93a2, 0x02c290fa, 0x0031a852}}, Y: Field{[10]uint32{0x035dbc67, 0x003ab1dc, 0x00164b2c, 0x00b7e896, 0x0245cd5f, 0x00bfd857, 0x021967a4, 0x0223f890, 0x00d6dcc5, 0x0010aab7}}}, + {X: Field{[10]uint32{0x02450a27, 0x0138853a, 0x0041de69, 0x02b32284, 0x0263510b, 0x03cd163d, 0x03244004, 0x00423ca3, 0x0240880b, 0x0009667e}}, Y: Field{[10]uint32{0x03a57a01, 0x0365321e, 0x013e6951, 0x01b95230, 0x02a424c4, 0x0280aff4, 0x03a973a1, 0x0337d1a9, 0x02ad4ae1, 0x000151e4}}}, + {X: Field{[10]uint32{0x02d9f9ff, 0x035d1da3, 0x0153bbf3, 0x00cdbe91, 0x01312655, 0x01e7b10f, 0x02d8fe9e, 0x02a3deab, 0x00b4a6af, 0x003daac3}}, Y: Field{[10]uint32{0x005026ef, 0x0365d1a1, 0x013f973f, 0x02f15ebc, 0x0282e913, 0x0241ff35, 0x001a4761, 0x00024123, 0x0189c4ba, 0x0013a849}}}, + {X: Field{[10]uint32{0x007f1dfc, 0x03522c9c, 0x01bebdfd, 0x03caf1c7, 0x0372738f, 0x00ffd369, 0x017ecdbd, 0x000838b6, 0x008bab8f, 0x003d46f5}}, Y: Field{[10]uint32{0x02697c40, 0x024fcfd2, 0x01e4308c, 0x0148922f, 0x01b361c7, 0x01fbe43e, 0x03fe7bce, 0x011fea29, 0x03a0947f, 0x001ac5a2}}}, + {X: Field{[10]uint32{0x022a3443, 0x0263c292, 0x013625c8, 0x02194d48, 0x020a50b2, 0x0342fdf4, 0x0398f2b1, 0x02a432bd, 0x01146c9c, 0x002d807c}}, Y: Field{[10]uint32{0x021f87dd, 0x03c8e471, 0x027edf0c, 0x0343f305, 0x006877fe, 0x027c3c44, 0x0317a115, 0x02d9d57c, 0x004136b6, 0x0029b28c}}}, + {X: Field{[10]uint32{0x005f974b, 0x0241947e, 0x01ccb37e, 0x0163ca1c, 0x015be6a1, 0x0316dc64, 0x030511f0, 0x01f011db, 0x027ae595, 0x001e4b75}}, Y: Field{[10]uint32{0x031dd44b, 0x01d60252, 0x03bcb941, 0x017212b0, 0x011a4c1c, 0x00bd18f8, 0x004774dd, 0x027da4e9, 0x00b9bec5, 0x0026dfd7}}}, + {X: Field{[10]uint32{0x03b093f9, 0x0004c0a2, 0x00377931, 0x0080cf0d, 0x004c29c4, 0x0009452b, 0x0300eb4f, 0x03d2b6cd, 0x026933b6, 0x001f6211}}, Y: Field{[10]uint32{0x01e2cb3b, 0x025187ed, 0x00885a2f, 0x03e2944d, 0x022ebeb5, 0x0391b0c1, 0x007ead35, 0x00036d4a, 0x035e6745, 0x000bf230}}}, + {X: Field{[10]uint32{0x012a5351, 0x03b6e01a, 0x00249010, 0x01077e0b, 0x01ead4bc, 0x01c2250d, 0x03820387, 0x02182c86, 0x03916d0f, 0x00271dba}}, Y: Field{[10]uint32{0x01c88b62, 0x0260a43d, 0x006b0d99, 0x03835b78, 0x030e51d1, 0x0231dda7, 0x0235a6da, 0x00055878, 0x03f33880, 0x001caeb6}}}, + {X: Field{[10]uint32{0x03d807f9, 0x02ec3cc7, 0x0024ecf5, 0x0360b6bf, 0x038fef18, 0x00791f0c, 0x0252a2aa, 0x024f8557, 0x02383d8a, 0x002926d5}}, Y: Field{[10]uint32{0x001d3ae0, 0x0163a364, 0x0176dbee, 0x03987f3a, 0x029dc392, 0x0324d191, 0x00b0760b, 0x013133b9, 0x01b39bf3, 0x0006f09c}}}, + {X: Field{[10]uint32{0x00634460, 0x01891f37, 0x029e0a4d, 0x03f9deba, 0x02a704c9, 0x023c71cb, 0x01d5cc96, 0x02c2c32a, 0x035a675b, 0x000134c4}}, Y: Field{[10]uint32{0x000cfc4e, 0x029dbb8a, 0x02d38395, 0x03bda333, 0x02cb74bc, 0x03c0ac4e, 0x031ffeac, 0x03d2f3cb, 0x00be72f5, 0x002b975f}}}, + {X: Field{[10]uint32{0x0253f588, 0x00cc2267, 0x00e3711f, 0x020ea481, 0x00eff955, 0x010bc64b, 0x00421b9b, 0x01b8e3f0, 0x03be17dd, 0x001655cb}}, Y: Field{[10]uint32{0x021c7c24, 0x01150877, 0x0382a39c, 0x00be6dc9, 0x03a01c8f, 0x03582811, 0x01ab8051, 0x00fe79a8, 0x0240a8cb, 0x0015c4d1}}}, + {X: Field{[10]uint32{0x012d9511, 0x03a8799c, 0x005a5cb5, 0x00203d58, 0x020a5fff, 0x00a34ba6, 0x02a1c612, 0x01e03b2a, 0x006d49b4, 0x001cf333}}, Y: Field{[10]uint32{0x03752cf4, 0x00b353f8, 0x0308edbb, 0x01b5aa16, 0x036a52c0, 0x026c5634, 0x012ea8b5, 0x0323c470, 0x0174f986, 0x00118ea3}}}, + {X: Field{[10]uint32{0x004c1e46, 0x00f0a8e3, 0x03d1ee50, 0x03c61da0, 0x02ae3885, 0x023f73db, 0x02f7280e, 0x002aa51d, 0x03fddb62, 0x002db23a}}, Y: Field{[10]uint32{0x03d39802, 0x02441839, 0x01ddeb40, 0x0157cc85, 0x0276a25d, 0x02065297, 0x0175c2ac, 0x000122f9, 0x02d9f021, 0x00269beb}}}, + {X: Field{[10]uint32{0x005e392e, 0x01ff2713, 0x01f7eb50, 0x02353087, 0x03b9cc4a, 0x00c19f78, 0x0196c539, 0x01524f6a, 0x020f92de, 0x002d058b}}, Y: Field{[10]uint32{0x023b385b, 0x0149585a, 0x01120a40, 0x005dee3b, 0x02eecf22, 0x00183660, 0x03978733, 0x0074d918, 0x00d0c921, 0x00333384}}}, + {X: Field{[10]uint32{0x012b33a2, 0x011a75e3, 0x019b7a2a, 0x02359513, 0x00a58100, 0x0282e350, 0x02919552, 0x00d75eaf, 0x0166ca42, 0x0011afc9}}, Y: Field{[10]uint32{0x02785040, 0x01f21ff1, 0x01ef10b7, 0x03c0085c, 0x01285b5c, 0x0342f275, 0x0182e39c, 0x0221064b, 0x016bb827, 0x001bd9bf}}}, + {X: Field{[10]uint32{0x0159ab2f, 0x02a4538f, 0x036b7419, 0x01a0aa7b, 0x01b5422a, 0x022704d7, 0x02dfcd1b, 0x02a73e2e, 0x01a4e869, 0x001e111b}}, Y: Field{[10]uint32{0x028c9ce3, 0x00ad6196, 0x0098327d, 0x02fcb50a, 0x023f5f31, 0x00cefaf7, 0x003c051f, 0x011b0678, 0x0131db7e, 0x0010856c}}}, + {X: Field{[10]uint32{0x0205f3b7, 0x02fc0055, 0x01d1f4be, 0x032972f4, 0x03fa2b01, 0x017ae3b6, 0x03dc7629, 0x0203350a, 0x02055110, 0x0021a21a}}, Y: Field{[10]uint32{0x03914466, 0x001f9dfd, 0x037d7675, 0x03b565e9, 0x00f9b753, 0x00eb7501, 0x038854a8, 0x030371c1, 0x01f35579, 0x0031c6da}}}, + {X: Field{[10]uint32{0x03713388, 0x03652f20, 0x03371e16, 0x03f2ca29, 0x0036d5fa, 0x011101b8, 0x038675a7, 0x03f10ff4, 0x035e37f8, 0x00280b99}}, Y: Field{[10]uint32{0x0041239e, 0x005cf7bf, 0x01c36de3, 0x03568626, 0x004ee66b, 0x01dfa7ab, 0x02162512, 0x020353ab, 0x0141835c, 0x0035be69}}}, + {X: Field{[10]uint32{0x0092bf26, 0x03322261, 0x03f14ea4, 0x01dfb8a1, 0x009b2997, 0x025ef013, 0x01100966, 0x01b3b734, 0x02a8432c, 0x00285ada}}, Y: Field{[10]uint32{0x020db298, 0x035c9053, 0x01aced2f, 0x028627bc, 0x021e734d, 0x03a9f853, 0x00ed6446, 0x010ab034, 0x0270ef9e, 0x00017046}}}, + {X: Field{[10]uint32{0x00f45b5a, 0x0052e638, 0x01c5c971, 0x00afe1a1, 0x0212d7fc, 0x01ee07f2, 0x03a1205f, 0x03979742, 0x02fe775f, 0x0019a8fc}}, Y: Field{[10]uint32{0x025e3eaf, 0x008c1417, 0x001c8c18, 0x038a57b4, 0x0100e626, 0x002d3ac8, 0x00daad03, 0x03527554, 0x0114a49a, 0x0014166f}}}, + {X: Field{[10]uint32{0x0314b3a1, 0x004de114, 0x01785962, 0x0183aa15, 0x02a1f094, 0x0184542e, 0x01c63210, 0x001319d5, 0x03cebf9a, 0x002691e8}}, Y: Field{[10]uint32{0x0040a80a, 0x03bf03bb, 0x02acbc6c, 0x03c8ae57, 0x03efd3a3, 0x024a5a49, 0x03c7045b, 0x01f9abcd, 0x02ce8f38, 0x0008b697}}}, + {X: Field{[10]uint32{0x036628c5, 0x03d89cd6, 0x02c6f97a, 0x014d27e6, 0x0312b25a, 0x03c63ea1, 0x00e3c288, 0x02e6878f, 0x00149027, 0x00070050}}, Y: Field{[10]uint32{0x02448a4f, 0x015b2583, 0x03d353a4, 0x00d15d4e, 0x0087b499, 0x00583e5e, 0x00bc34ff, 0x034f5ade, 0x00fcd048, 0x0019c864}}}, + {X: Field{[10]uint32{0x028d84cc, 0x03bff94b, 0x0231d057, 0x0002793a, 0x018d1374, 0x025f81d9, 0x00965cd4, 0x03a1d96b, 0x030a1de5, 0x0030b659}}, Y: Field{[10]uint32{0x013ccdf1, 0x029c9c7c, 0x02379cc7, 0x02303e14, 0x00b97a2e, 0x00a55b42, 0x0356b585, 0x03eec4ea, 0x0247a6dd, 0x003fe061}}}, + {X: Field{[10]uint32{0x0196ec1d, 0x006c7972, 0x026910e0, 0x03954e5a, 0x03d21339, 0x005075a3, 0x00e094c4, 0x01a9a5c3, 0x004716fd, 0x0006a7fb}}, Y: Field{[10]uint32{0x03f8557e, 0x001b62e4, 0x0140c240, 0x00e047d7, 0x01d29b87, 0x025778a4, 0x037639b5, 0x01cffa53, 0x02eb6c83, 0x0038e3ac}}}, + {X: Field{[10]uint32{0x01d8c464, 0x015abec0, 0x03bae778, 0x019a6358, 0x0053a514, 0x02c6ac9b, 0x029e5006, 0x0069b503, 0x02ed15e9, 0x002df7d4}}, Y: Field{[10]uint32{0x02e21254, 0x03b14c2d, 0x01ac1162, 0x0034297f, 0x01705c36, 0x03c60354, 0x010706ff, 0x03f63e67, 0x01bfd915, 0x003a983c}}}, + {X: Field{[10]uint32{0x03db6b5f, 0x03e65675, 0x039d1295, 0x03e21222, 0x00918ba7, 0x000d4cd4, 0x0086a534, 0x00b8bef7, 0x00cabd09, 0x0000be57}}, Y: Field{[10]uint32{0x01693ad2, 0x01192368, 0x02a7b523, 0x024e36c7, 0x01d5b0f8, 0x0026fce3, 0x02a9c3df, 0x03b61967, 0x0014fe6c, 0x000c515a}}}, + {X: Field{[10]uint32{0x018a7c1c, 0x029984af, 0x03fea883, 0x028df7bc, 0x023b6ae1, 0x00df9008, 0x01a432ca, 0x03936da8, 0x02c864df, 0x001d8e49}}, Y: Field{[10]uint32{0x0361bd1f, 0x00fc2970, 0x03a410bd, 0x0396e793, 0x00a3e741, 0x0203c7e6, 0x00b3e63d, 0x03443aed, 0x03724378, 0x003cd356}}}, + {X: Field{[10]uint32{0x00a31b0d, 0x0201f272, 0x00ebf72a, 0x03746371, 0x03708ce2, 0x032db262, 0x012a513f, 0x01b3dbcc, 0x027a1291, 0x000b90ef}}, Y: Field{[10]uint32{0x0024acfa, 0x03a67437, 0x019c5971, 0x0024232d, 0x00a3a9dc, 0x03545334, 0x0257b6ce, 0x01f95c5b, 0x0224ce1b, 0x0036e464}}}, + {X: Field{[10]uint32{0x014a5561, 0x02583073, 0x02df9a56, 0x03ec4e96, 0x002d1acd, 0x03f1a1cf, 0x0331984a, 0x01f4a1d9, 0x008f1a86, 0x001f5979}}, Y: Field{[10]uint32{0x0183ebfc, 0x01f32fb6, 0x029da7b9, 0x00daf9f9, 0x00bc9924, 0x02bde576, 0x00e2d4bc, 0x01eb4bfc, 0x0155f095, 0x00271cee}}}, + {X: Field{[10]uint32{0x0019d725, 0x02529c5e, 0x02b7c10b, 0x021f171d, 0x006b132c, 0x035c54e4, 0x02166f04, 0x02ddcb2b, 0x00c03131, 0x00071afb}}, Y: Field{[10]uint32{0x023280ad, 0x0313492c, 0x0106e318, 0x008b3ed2, 0x0041b84a, 0x02bf7d82, 0x03dd26cd, 0x0214cc25, 0x00ff9499, 0x000b0f19}}}, + {X: Field{[10]uint32{0x03347675, 0x02ca9904, 0x020f8198, 0x02c1fa74, 0x01aff339, 0x01fb7c1e, 0x02c83c7d, 0x020408ca, 0x025d5d11, 0x003d410a}}, Y: Field{[10]uint32{0x01a3e4c8, 0x01f7ff5e, 0x01d20b59, 0x015d6a2f, 0x02b2723f, 0x02811414, 0x02388020, 0x03f1b4bc, 0x03bce644, 0x00067043}}}, + {X: Field{[10]uint32{0x014be300, 0x00cd622f, 0x02539b48, 0x03c0b784, 0x030e0ee9, 0x01038213, 0x000c8872, 0x00d4f9b8, 0x0066c2c0, 0x001f0e1e}}, Y: Field{[10]uint32{0x032b8f79, 0x00ded0fb, 0x00ab400c, 0x0155b2bd, 0x0356f088, 0x001d2003, 0x03c49c6d, 0x0316350b, 0x0394587f, 0x0033319b}}}, + {X: Field{[10]uint32{0x02b3c140, 0x0081b93a, 0x034e0b7b, 0x03445a47, 0x02104b35, 0x022e8bb7, 0x02381945, 0x0370adb3, 0x0123d33a, 0x003b3a2b}}, Y: Field{[10]uint32{0x000c0a88, 0x029023df, 0x01e7c5c6, 0x00bd4d99, 0x031c7e67, 0x0326dca3, 0x00245a12, 0x034fd7cf, 0x02c07fa1, 0x003bb25d}}}, + {X: Field{[10]uint32{0x01d12b9d, 0x02bd63c6, 0x03c56a1b, 0x0064f8b2, 0x00b951cf, 0x034085dd, 0x02efecc7, 0x0370e327, 0x0126a274, 0x00208ac2}}, Y: Field{[10]uint32{0x00118313, 0x0030b791, 0x0263f1be, 0x0021443f, 0x023638f0, 0x03f3c144, 0x014d2c49, 0x030dd60c, 0x010af9ca, 0x00122f2c}}}, + {X: Field{[10]uint32{0x0385b8c3, 0x00b9dec3, 0x028a85cd, 0x011e0311, 0x03401dfe, 0x03398bf8, 0x0058d257, 0x03d0a3e8, 0x02036ef5, 0x00349a8e}}, Y: Field{[10]uint32{0x026a6fa7, 0x02c45d44, 0x00ba010f, 0x033e6eb9, 0x0362f1bb, 0x00c230b6, 0x01c6759a, 0x010ca5f5, 0x03623a64, 0x002630e5}}}, + {X: Field{[10]uint32{0x03019090, 0x00f0d1a4, 0x024beb5b, 0x037eec59, 0x0124c8fc, 0x02891f47, 0x0002ab6c, 0x032ef40c, 0x001d8aa0, 0x001ffaee}}, Y: Field{[10]uint32{0x02c3ec26, 0x02918129, 0x03b446cf, 0x008f62c8, 0x03966dc9, 0x02a12e6f, 0x00ca6c02, 0x01b69d51, 0x03cb12ca, 0x003b9896}}}, + {X: Field{[10]uint32{0x01d3473c, 0x03cac394, 0x0008733d, 0x00a9b78b, 0x02b7aa00, 0x030d912e, 0x0363a75c, 0x02daef9b, 0x00e72d43, 0x0020e791}}, Y: Field{[10]uint32{0x000fb9a9, 0x02478c4d, 0x03da43e5, 0x026150ac, 0x002d876d, 0x01dd6fda, 0x0163806d, 0x00508829, 0x023526f4, 0x0020da3d}}}, + {X: Field{[10]uint32{0x030d7afe, 0x0163ab36, 0x01135ea9, 0x025e1b48, 0x017e049b, 0x00fcbbb6, 0x02c84f32, 0x0381f278, 0x03da1c96, 0x0014ba51}}, Y: Field{[10]uint32{0x0073a831, 0x019c39b5, 0x0097d9fa, 0x003b7112, 0x02bdbbe5, 0x027e9cae, 0x01e19a90, 0x0034f4e7, 0x02c9e0c7, 0x001af3f7}}}, + {X: Field{[10]uint32{0x027f3603, 0x0231ad31, 0x000cedb1, 0x01d33f2c, 0x00c8b220, 0x0323a793, 0x03f6dd71, 0x029d0c75, 0x002605e4, 0x001cbb15}}, Y: Field{[10]uint32{0x006b5ee5, 0x01b53e9e, 0x01023615, 0x03e056f2, 0x0249455c, 0x007bb52e, 0x02a6d715, 0x03be53d7, 0x020b7f9d, 0x00376e4d}}}, + {X: Field{[10]uint32{0x0006c849, 0x026b74c5, 0x00f36af3, 0x03a75aa4, 0x012ac051, 0x00a18f44, 0x02bf9baf, 0x015a2405, 0x031559a5, 0x000dc28f}}, Y: Field{[10]uint32{0x03005840, 0x0283b187, 0x01ddaba3, 0x024c8d74, 0x03ee80d9, 0x002c419e, 0x01ab5d32, 0x033b9825, 0x01a68517, 0x0021532f}}}, + {X: Field{[10]uint32{0x03ef5dc2, 0x03e68e66, 0x02c6a714, 0x0033dc66, 0x0141d1cf, 0x01dfbda8, 0x03af5275, 0x03ef6f2c, 0x008860d2, 0x0004b95e}}, Y: Field{[10]uint32{0x02bd9ea2, 0x01b17061, 0x00821ab4, 0x027192b7, 0x01a09496, 0x01692d1d, 0x03b79ead, 0x0049bdf6, 0x02ca5dd8, 0x003d6bde}}}, + {X: Field{[10]uint32{0x00a2b722, 0x02b630cc, 0x025bdfe2, 0x0322b282, 0x028b7905, 0x015efe74, 0x031abad7, 0x0297785e, 0x03cd0b2f, 0x002d252a}}, Y: Field{[10]uint32{0x0294cb87, 0x02475ca4, 0x01adfbf9, 0x00431902, 0x00cbacf7, 0x0100693e, 0x038d8aee, 0x0186767f, 0x03d6dad8, 0x0030e5ff}}}, + {X: Field{[10]uint32{0x02b9d89c, 0x011817a2, 0x02a83106, 0x03912677, 0x03118ea6, 0x03dc6f72, 0x008245c0, 0x002e52c8, 0x012d900d, 0x000a55da}}, Y: Field{[10]uint32{0x00444a7b, 0x03595690, 0x02a91857, 0x00adfaee, 0x00f12934, 0x03f09354, 0x0037e940, 0x02bfa800, 0x00479284, 0x0028f155}}}, + {X: Field{[10]uint32{0x01bd20eb, 0x02fdc8e8, 0x00cda39c, 0x034cb927, 0x031969ae, 0x03052979, 0x0213642d, 0x0381caf2, 0x0079f325, 0x00184406}}, Y: Field{[10]uint32{0x00e443b3, 0x016611c0, 0x017a9c1d, 0x00fb599d, 0x03e5c248, 0x02763ac2, 0x0367269e, 0x0392ef56, 0x00824816, 0x00138667}}}, + {X: Field{[10]uint32{0x0255ab18, 0x027106ae, 0x034e429a, 0x0352642a, 0x02c65f6a, 0x009c87ef, 0x028c648c, 0x011d3e2a, 0x00b299f3, 0x0027ba92}}, Y: Field{[10]uint32{0x03234443, 0x01f62707, 0x00654c1d, 0x024befb8, 0x03b68028, 0x03cad687, 0x00570497, 0x0346f1fa, 0x029735ce, 0x0004e551}}}, + {X: Field{[10]uint32{0x018bd97a, 0x03d00ed4, 0x03c5cc9d, 0x02d8c7c6, 0x013fff42, 0x028da023, 0x00759826, 0x02dc1f29, 0x00d78ba7, 0x0036ec15}}, Y: Field{[10]uint32{0x011b923a, 0x021e5d58, 0x01d4a89d, 0x03e06ae5, 0x030a55a1, 0x009f9e07, 0x00048854, 0x00e95775, 0x02c09634, 0x000e5bbd}}}, + {X: Field{[10]uint32{0x021bbcf1, 0x03cf2aad, 0x0275cd70, 0x01056c23, 0x01b2f625, 0x01705372, 0x03cc0ea3, 0x00bbd276, 0x03d57fdd, 0x0036ea56}}, Y: Field{[10]uint32{0x00d20a3d, 0x02438c80, 0x004cc64a, 0x02b2ba4e, 0x020b8f76, 0x0054566e, 0x036dba84, 0x01f91862, 0x025eb7a1, 0x000abc25}}}, + {X: Field{[10]uint32{0x02d0e5be, 0x02fabee2, 0x02ef5297, 0x00c9c8bd, 0x030bf1a1, 0x00f1d576, 0x02d8febc, 0x02ec3f9c, 0x02c97979, 0x0001b0c4}}, Y: Field{[10]uint32{0x0202c6ea, 0x0001c620, 0x006438be, 0x0185c7de, 0x006c4359, 0x0363ead5, 0x038d5ea3, 0x01ce777d, 0x0388db74, 0x000d8d98}}}, + {X: Field{[10]uint32{0x008825cd, 0x038c6db7, 0x021e5b9f, 0x00c2a8c5, 0x03ad9870, 0x006335c5, 0x01b8638e, 0x02f23d52, 0x0057a494, 0x00197adc}}, Y: Field{[10]uint32{0x03a80312, 0x019a530b, 0x03c92765, 0x01088256, 0x02160b7b, 0x021c1a38, 0x016b4acf, 0x02178246, 0x02a167f2, 0x00116080}}}, + {X: Field{[10]uint32{0x02ffa7f6, 0x01f8ae53, 0x000d6b56, 0x009b610b, 0x02c11174, 0x00abaf47, 0x01db7cbd, 0x01a36bb5, 0x0117b0e8, 0x00281a5a}}, Y: Field{[10]uint32{0x01ecba78, 0x0159d710, 0x030f5ba5, 0x00f8dffa, 0x03c797ec, 0x03a2f6a2, 0x01cb828b, 0x013723c0, 0x020da1bb, 0x00321d34}}}, + {X: Field{[10]uint32{0x002cced2, 0x009f195e, 0x0387903b, 0x01e474ed, 0x01108744, 0x0021ad93, 0x01378301, 0x00a84cb7, 0x03821937, 0x0010646e}}, Y: Field{[10]uint32{0x03dc3f2c, 0x024bf299, 0x03b4a348, 0x01e40925, 0x00493352, 0x00b84c2f, 0x02e52bf8, 0x03486347, 0x03c98ce4, 0x0031d241}}}, + {X: Field{[10]uint32{0x01b218c3, 0x039fd71e, 0x0038f3c3, 0x03c82427, 0x030945e3, 0x02572563, 0x023b9b2b, 0x024fb964, 0x01337212, 0x001d7cdf}}, Y: Field{[10]uint32{0x01928be7, 0x037ab3a9, 0x02a339af, 0x02847d00, 0x02a7d2fd, 0x033c46a8, 0x0328e181, 0x008a9e8b, 0x038ec6b2, 0x002b0107}}}, + {X: Field{[10]uint32{0x02fb154e, 0x01c6bee5, 0x02c65785, 0x03dc0775, 0x026004d1, 0x03c62a12, 0x00b3bef6, 0x00bca408, 0x033ab58b, 0x0032f0c5}}, Y: Field{[10]uint32{0x01fd5c37, 0x0393783e, 0x0089226d, 0x0325863a, 0x01b8f36e, 0x0255dfb8, 0x03c166de, 0x011050b4, 0x00b76f26, 0x003104e8}}}, + {X: Field{[10]uint32{0x02e226cc, 0x0390dc36, 0x00dd92a5, 0x03d16fd3, 0x0164f212, 0x0067346f, 0x02888324, 0x03e965a5, 0x0309a139, 0x0019395a}}, Y: Field{[10]uint32{0x010fbbbe, 0x02f06781, 0x02fa7671, 0x02a18a80, 0x01d10915, 0x02d0a505, 0x001eb3d0, 0x0240592d, 0x02eef242, 0x002a4653}}}, + {X: Field{[10]uint32{0x015285a6, 0x033ed24d, 0x0014f73b, 0x0140273f, 0x0334e133, 0x0380be44, 0x022c2fb8, 0x01b3ca68, 0x01c5e288, 0x0038cde5}}, Y: Field{[10]uint32{0x01afb304, 0x035908c0, 0x035e15c2, 0x03431b37, 0x01f7c575, 0x02d2ec19, 0x02580cb7, 0x01231c93, 0x0121f33d, 0x001e243f}}}, + {X: Field{[10]uint32{0x02b0b6dc, 0x01739d69, 0x036998f2, 0x0250d7ad, 0x036e6a09, 0x01b1e48c, 0x0143d2c7, 0x03428345, 0x026b7a73, 0x0001e5d7}}, Y: Field{[10]uint32{0x023eb06f, 0x00738bfd, 0x03115012, 0x004289fd, 0x008f16eb, 0x0158af09, 0x0248d5f7, 0x024fb757, 0x00aec689, 0x00042c58}}}, + {X: Field{[10]uint32{0x01580f6f, 0x01c73774, 0x03ce02ad, 0x02124b38, 0x03c1ca44, 0x0007d106, 0x02093d08, 0x00e59e4b, 0x03cbf9c1, 0x001b4344}}, Y: Field{[10]uint32{0x03b45746, 0x012fcb3a, 0x016f1bae, 0x0351c769, 0x014bdb25, 0x01e910c2, 0x01dcfe33, 0x03c08aef, 0x023884ca, 0x0005eb90}}}, + {X: Field{[10]uint32{0x03df0154, 0x01d28806, 0x008560a9, 0x019cfef4, 0x0360d398, 0x0098200d, 0x03d3f904, 0x00ad6727, 0x014a23af, 0x0008657c}}, Y: Field{[10]uint32{0x00136a8d, 0x00fb853e, 0x02111da5, 0x01621bfd, 0x025ff1aa, 0x014028dc, 0x01b3a10b, 0x03bc07d3, 0x038c9a44, 0x003f016c}}}, + {X: Field{[10]uint32{0x03713628, 0x029ff7e2, 0x03c4dac2, 0x0220e113, 0x021f5582, 0x03477468, 0x0354e167, 0x03e2e746, 0x007360ac, 0x0011d9e7}}, Y: Field{[10]uint32{0x03803ea7, 0x00fdb285, 0x007510a9, 0x002bfce9, 0x037ca018, 0x013df365, 0x014bbde9, 0x03a07793, 0x0225f3b8, 0x0020a808}}}, + {X: Field{[10]uint32{0x0230831a, 0x02a9f277, 0x00655ac9, 0x00b8bdf2, 0x038cb4ff, 0x030859af, 0x03fe514c, 0x029a6c8f, 0x02f51636, 0x002c2f40}}, Y: Field{[10]uint32{0x03d5f518, 0x03743423, 0x0081448a, 0x00fee9b2, 0x00f4843b, 0x02fae8f6, 0x03ffc51f, 0x032f14a9, 0x016248ba, 0x0001cfeb}}}, + {X: Field{[10]uint32{0x03660158, 0x0226c068, 0x034520c6, 0x00548f2d, 0x000aab5f, 0x036fb16e, 0x03f81afa, 0x03e07fb4, 0x03d6bfe9, 0x0037ebbf}}, Y: Field{[10]uint32{0x01240583, 0x017cf6b2, 0x0324df3b, 0x0200435e, 0x0330c4bf, 0x032d6d53, 0x00a4bf9c, 0x0120539b, 0x0105c3ef, 0x000fd534}}}, + {X: Field{[10]uint32{0x000d42ed, 0x02b81afd, 0x00ba7046, 0x038fadf9, 0x0080dffa, 0x01bf5af9, 0x013d2e79, 0x0079263d, 0x02bbda66, 0x003ac05a}}, Y: Field{[10]uint32{0x02f895be, 0x03e0e89e, 0x011f518b, 0x03b5b4a7, 0x0110f005, 0x030b97a1, 0x014d50ad, 0x0166a5b3, 0x01bbaa76, 0x000c435b}}}, + {X: Field{[10]uint32{0x019fb2ed, 0x01ebec32, 0x01173e51, 0x01334bcd, 0x01726378, 0x00dfe398, 0x035b5eb1, 0x0202cdb4, 0x03c43c08, 0x00262786}}, Y: Field{[10]uint32{0x01faa1d8, 0x02dd1da7, 0x012feb53, 0x02d30b36, 0x00999b3b, 0x0077ddf6, 0x035963d1, 0x033314e8, 0x035f110c, 0x0013133a}}}, + {X: Field{[10]uint32{0x02033811, 0x03846630, 0x010bbfbe, 0x01be4249, 0x00dd801d, 0x01db57bf, 0x025bd407, 0x01eefc7d, 0x0170be4a, 0x0002fac0}}, Y: Field{[10]uint32{0x0086461f, 0x037304e1, 0x01644ff4, 0x0277f316, 0x000f5234, 0x01b4f39b, 0x02998202, 0x0268e15e, 0x018a1d32, 0x0004d5ae}}}, + {X: Field{[10]uint32{0x03c0b145, 0x032d0abf, 0x0112e337, 0x01756d83, 0x02ea9bc5, 0x01b10a5a, 0x035e5969, 0x026935bd, 0x03c1986f, 0x0000b642}}, Y: Field{[10]uint32{0x031a0c4c, 0x0327c1bd, 0x03b5b48d, 0x02fb4bbc, 0x02b377cc, 0x019fabed, 0x004b721e, 0x00665efe, 0x0364734d, 0x001f55f3}}}, + {X: Field{[10]uint32{0x009f51bf, 0x02729dde, 0x02481e82, 0x03cffb9c, 0x0159fd53, 0x030d9cef, 0x0196848d, 0x02018b78, 0x0254c960, 0x001ade9a}}, Y: Field{[10]uint32{0x0009af23, 0x0148939b, 0x0321a579, 0x00ad0f2f, 0x03dd4dc4, 0x0162bef8, 0x0079f30c, 0x0229a7c2, 0x0208157b, 0x001aa7b8}}}, + {X: Field{[10]uint32{0x028e8393, 0x02f2da0d, 0x03a8bf4a, 0x03a221c3, 0x0316faf0, 0x02df9fba, 0x01f8fa87, 0x037f9da3, 0x00c732cb, 0x00326491}}, Y: Field{[10]uint32{0x035620ae, 0x0303f0a1, 0x01951bc0, 0x02331a92, 0x0058cc9b, 0x00b6b8ba, 0x0163453b, 0x00ab4901, 0x035553ba, 0x00082b46}}}, + {X: Field{[10]uint32{0x00f01b6b, 0x01c7e51c, 0x013f6d28, 0x009a707e, 0x01350fef, 0x0026807f, 0x01cf4fc6, 0x0237157c, 0x007b402a, 0x00154ff0}}, Y: Field{[10]uint32{0x00e5a824, 0x02644dcd, 0x002909c1, 0x005df91c, 0x039b3102, 0x035f54ea, 0x03cd0dc7, 0x01b7bfe9, 0x00753961, 0x000ed463}}}, + {X: Field{[10]uint32{0x00fe2f69, 0x012fb030, 0x02369a4e, 0x009e524b, 0x03721fa9, 0x00d3216e, 0x00dfc80a, 0x0229f2cf, 0x037806ed, 0x003164c0}}, Y: Field{[10]uint32{0x0317c149, 0x031e94cd, 0x023001e1, 0x019e7d11, 0x02d7580e, 0x004ff5c0, 0x016dea62, 0x0244a4de, 0x00698a3e, 0x000da679}}}, + {X: Field{[10]uint32{0x011e7eb5, 0x02fb3224, 0x01c6a79d, 0x01ffc744, 0x008cda0e, 0x030d275d, 0x034613d8, 0x026592e3, 0x0118f4d5, 0x0032dbc4}}, Y: Field{[10]uint32{0x01de20ee, 0x020d723f, 0x036f4cf4, 0x00f5f799, 0x030ca0fe, 0x02095f11, 0x03cc88f4, 0x03573dc8, 0x028898b0, 0x0018ac2b}}}, + {X: Field{[10]uint32{0x01a26db9, 0x03148a8c, 0x009a946f, 0x023259a2, 0x0078b5d4, 0x037b2e67, 0x0322ae61, 0x019a3765, 0x038f8c26, 0x00368b2a}}, Y: Field{[10]uint32{0x010c7e98, 0x007869db, 0x01ad8fc2, 0x01ac4921, 0x01180849, 0x0324ec4c, 0x0214cb70, 0x03e52529, 0x037e0234, 0x001a80cd}}}, + {X: Field{[10]uint32{0x003b7d86, 0x023579ad, 0x00a82b22, 0x020e69bb, 0x03fa595b, 0x003c0fbb, 0x03374110, 0x038f1ff8, 0x01423f9b, 0x003f1a93}}, Y: Field{[10]uint32{0x0298beff, 0x01da1968, 0x016f5bb4, 0x01b89a46, 0x0027dfbd, 0x03094fea, 0x0078fdda, 0x02f868f7, 0x0144eb8f, 0x001b0225}}}, + {X: Field{[10]uint32{0x03dee882, 0x00dd5b78, 0x03e09db7, 0x0126509b, 0x003d09fb, 0x032a5183, 0x03258e83, 0x038341dc, 0x011ab9c6, 0x001cf26a}}, Y: Field{[10]uint32{0x0171d2b3, 0x0358d7f9, 0x0222478c, 0x00411741, 0x0352040a, 0x027b61da, 0x0290259c, 0x01422b56, 0x0327efc0, 0x0022cc50}}}, + {X: Field{[10]uint32{0x034516d3, 0x01d1328e, 0x02762933, 0x0122ba5d, 0x022bc028, 0x012e0265, 0x03e61271, 0x033470d0, 0x006145b8, 0x00029a7c}}, Y: Field{[10]uint32{0x030ebe3d, 0x03688275, 0x009aea86, 0x006d1fd9, 0x0396b6d9, 0x02185789, 0x016caf01, 0x00dd07b0, 0x0190b450, 0x0021d463}}}, + {X: Field{[10]uint32{0x00ed9691, 0x0148d7ca, 0x02572fc9, 0x003d11a8, 0x01376a43, 0x0056e910, 0x01dfb2ac, 0x0102dc73, 0x022570df, 0x00072f92}}, Y: Field{[10]uint32{0x0213de85, 0x01748095, 0x0380b6ef, 0x03ce6714, 0x02c8ac69, 0x02ce54fb, 0x02a2d10a, 0x0386ab3c, 0x02ccf262, 0x00049553}}}, + {X: Field{[10]uint32{0x0388e27d, 0x0320df6d, 0x0052fd13, 0x006a209e, 0x014ee2f1, 0x02822c64, 0x005ac85b, 0x0333ed0c, 0x01c7406d, 0x00237a92}}, Y: Field{[10]uint32{0x03e9d9b0, 0x00a55ef3, 0x00056d90, 0x0395a5ed, 0x002b6071, 0x01e8141b, 0x038b15ab, 0x01f0faea, 0x01a83b51, 0x0031cf58}}}, + {X: Field{[10]uint32{0x02d0ade5, 0x0310e921, 0x0094f6e4, 0x01f4156f, 0x025e4b71, 0x0074e35a, 0x00ab5af8, 0x0330ec7b, 0x0377b175, 0x0037a498}}, Y: Field{[10]uint32{0x03d0e11f, 0x00e1f545, 0x01cb973c, 0x02b39834, 0x016be387, 0x02352e2c, 0x0289115d, 0x0365d350, 0x03e79169, 0x000a757c}}}, + {X: Field{[10]uint32{0x03b41497, 0x02896c34, 0x00fa38a9, 0x03317ac6, 0x00f6e8a9, 0x03549450, 0x0055a2f3, 0x01ead2ad, 0x02a7aeb3, 0x001b9dba}}, Y: Field{[10]uint32{0x01e066fa, 0x0064f925, 0x0108a89f, 0x00f35a42, 0x0144c40a, 0x011eaaf6, 0x03fb936a, 0x027456ef, 0x005a7890, 0x0001f8f3}}}, + {X: Field{[10]uint32{0x00607574, 0x03b43e2f, 0x03f8f09e, 0x0274dfd7, 0x01467853, 0x026247e6, 0x022b03fc, 0x01fc3699, 0x02cf22d5, 0x000dc4c7}}, Y: Field{[10]uint32{0x0249f3b3, 0x01e87244, 0x026acc17, 0x02a9aaeb, 0x01281323, 0x005cf52e, 0x011d596e, 0x00a5a3d8, 0x012169d4, 0x00300ecb}}}, + {X: Field{[10]uint32{0x025d8152, 0x004fcdd2, 0x024e7667, 0x023d25e6, 0x0365155c, 0x0337c3ae, 0x0276633b, 0x02655ca3, 0x001482c8, 0x001c8222}}, Y: Field{[10]uint32{0x0174eedc, 0x01d8b972, 0x02e92d2a, 0x01d2d22b, 0x00588a79, 0x02642803, 0x00e26f81, 0x03722f6a, 0x019f8c0a, 0x0019e0f1}}}, + {X: Field{[10]uint32{0x03241864, 0x0048d974, 0x01e8adb7, 0x03345136, 0x02d4567f, 0x02fe74f3, 0x03a7a7ad, 0x0112ca9f, 0x03dfbaca, 0x0006e098}}, Y: Field{[10]uint32{0x0388606d, 0x02906fb5, 0x02785783, 0x02020065, 0x02edf366, 0x00b6b00d, 0x004b98db, 0x00450c65, 0x023e24f0, 0x00007f1f}}}, + {X: Field{[10]uint32{0x02f5fd43, 0x02309833, 0x013dff1a, 0x0381684c, 0x03ea41ba, 0x03560fb7, 0x019714db, 0x01fcae06, 0x02de27ca, 0x0001e8dc}}, Y: Field{[10]uint32{0x02281142, 0x01bc6e6d, 0x032e2091, 0x0192e83a, 0x01a5d3ab, 0x03d793b5, 0x0060f220, 0x015e16d7, 0x016bb32c, 0x002838c8}}}, + {X: Field{[10]uint32{0x00d02300, 0x03b03aa3, 0x0232a72b, 0x03f5e750, 0x00c30f22, 0x0156b07c, 0x03b94327, 0x01124722, 0x01aa5525, 0x001c6057}}, Y: Field{[10]uint32{0x036471b4, 0x03c58031, 0x03804876, 0x00613118, 0x003ade09, 0x013af8f0, 0x02fcc688, 0x0170597e, 0x03928de1, 0x0022cd04}}}, + {X: Field{[10]uint32{0x03654d2b, 0x031714ff, 0x01c785d1, 0x01304b22, 0x0205535d, 0x027c815b, 0x02d866a0, 0x033192d8, 0x037ad3cf, 0x00006952}}, Y: Field{[10]uint32{0x03a12f19, 0x020e42d1, 0x012e841d, 0x03e774a2, 0x03e9f5ae, 0x0247b0c1, 0x0077395a, 0x021ef48b, 0x02e39f4b, 0x002df1de}}}, + {X: Field{[10]uint32{0x019c44a6, 0x00adfb66, 0x01987726, 0x0081d00e, 0x0022cd28, 0x035d68bb, 0x030b6953, 0x01cf9772, 0x00571fc9, 0x002172d1}}, Y: Field{[10]uint32{0x010f6aa5, 0x034cc627, 0x02d53280, 0x01eaf41b, 0x0358037a, 0x03850824, 0x014ef028, 0x03f99b03, 0x01f3bd13, 0x003bf747}}}, + {X: Field{[10]uint32{0x00fd4e4e, 0x02f7dd7f, 0x03962c35, 0x02384e37, 0x02cd72df, 0x0101e8da, 0x00b305a2, 0x00432509, 0x009c64a0, 0x00263a19}}, Y: Field{[10]uint32{0x01a6c60b, 0x02a921b5, 0x008efcd3, 0x03dbf338, 0x01624a8c, 0x030febb4, 0x01f77704, 0x0175f152, 0x01693439, 0x002a0131}}}, + {X: Field{[10]uint32{0x00a5a72b, 0x0002e51d, 0x028817e5, 0x0191a71a, 0x035019a1, 0x01d3eb22, 0x00338958, 0x0396a23d, 0x03e6a297, 0x0007ab11}}, Y: Field{[10]uint32{0x01a11105, 0x02792b83, 0x00325f51, 0x028a570c, 0x01043a10, 0x03992e7b, 0x000bb1ff, 0x037abbce, 0x026b784d, 0x0022df6a}}}, + {X: Field{[10]uint32{0x004f42f5, 0x012b9a01, 0x026bc96c, 0x031e80a9, 0x01e29950, 0x029c8f89, 0x029e0ab6, 0x01cd8c5f, 0x006591f2, 0x003c1e6b}}, Y: Field{[10]uint32{0x0032dfc5, 0x02051a71, 0x00562249, 0x0340f649, 0x03490186, 0x005287bd, 0x00c3ca02, 0x010dd12b, 0x01bfc99f, 0x003aa1f4}}}, + {X: Field{[10]uint32{0x02539643, 0x01c72a8c, 0x0186eba4, 0x03a21a0c, 0x00fa0d94, 0x001dec76, 0x011c3ada, 0x00c383c0, 0x0179bf1f, 0x0035b427}}, Y: Field{[10]uint32{0x00aa8adf, 0x03d7325f, 0x00049876, 0x00dd19af, 0x00ef5100, 0x036b4b52, 0x030494dc, 0x03d507dc, 0x0064fac8, 0x0021dc2f}}}, + {X: Field{[10]uint32{0x00351f65, 0x03cee82e, 0x0291e3af, 0x029ac793, 0x01d6416c, 0x020c4fe2, 0x00595656, 0x00cda01c, 0x03d9f896, 0x000ddb92}}, Y: Field{[10]uint32{0x025f13f1, 0x014de379, 0x0295b78a, 0x03a91feb, 0x000497de, 0x0111f2ca, 0x019e8b96, 0x023c757a, 0x01e56724, 0x002e90db}}}, + {X: Field{[10]uint32{0x039f20d7, 0x0231d042, 0x0210c657, 0x014eee85, 0x000b17cb, 0x025be0d3, 0x0193daec, 0x031e6688, 0x02184b42, 0x0009c3ce}}, Y: Field{[10]uint32{0x03e7e5bc, 0x019cca15, 0x0300021b, 0x02a7d28e, 0x023a7054, 0x019ccddf, 0x00fb0d01, 0x022eec28, 0x012b9ab9, 0x003333ac}}}, + {X: Field{[10]uint32{0x02c1a599, 0x00169743, 0x02de20f5, 0x02dfea62, 0x00b055d2, 0x00ed25b4, 0x0247a8a9, 0x014d20a7, 0x03641a1e, 0x002b89c6}}, Y: Field{[10]uint32{0x03c2bdd3, 0x03ec911f, 0x0181e45d, 0x02294f05, 0x01584790, 0x021ebea7, 0x02a9a23f, 0x0207c948, 0x012f39b4, 0x00053a55}}}, + {X: Field{[10]uint32{0x03f28c8c, 0x021a6d69, 0x016a25ec, 0x00ea50ff, 0x02db36a9, 0x03b94e43, 0x0288ad64, 0x0229d2a4, 0x00fb177d, 0x0015a7ab}}, Y: Field{[10]uint32{0x03732f7c, 0x0271c6d7, 0x028440cb, 0x03d517d4, 0x02bfda9a, 0x01bd3c4d, 0x027508aa, 0x0190ae66, 0x00329127, 0x00073d8b}}}, + {X: Field{[10]uint32{0x0315b558, 0x01f3e057, 0x01e46f27, 0x03b5b4d9, 0x0041bfb5, 0x025e43e3, 0x026a2468, 0x039eea8c, 0x027ffdc4, 0x001df1fc}}, Y: Field{[10]uint32{0x021c3007, 0x03e4cee0, 0x01a4325a, 0x03ac1140, 0x00e0f970, 0x014b0bb0, 0x02a68288, 0x03976559, 0x00dc138b, 0x00134d10}}}, + {X: Field{[10]uint32{0x00adbb25, 0x03b5f625, 0x001ed132, 0x0079ee0c, 0x017d4676, 0x00113fbe, 0x03f67e9b, 0x000c1aa1, 0x02dbf173, 0x003598a4}}, Y: Field{[10]uint32{0x008b83c5, 0x03963d8b, 0x00209cb0, 0x0051bf14, 0x033d36db, 0x02ff2cca, 0x0145f238, 0x0293b648, 0x03558cec, 0x0033bbdd}}}, + {X: Field{[10]uint32{0x037ed0d6, 0x021597a9, 0x03a4925e, 0x02efd541, 0x038769e3, 0x01faec7c, 0x03927ef0, 0x01bd12dd, 0x032e12ea, 0x000710a0}}, Y: Field{[10]uint32{0x0029d5ee, 0x0394e2a7, 0x0211e280, 0x028cc9ef, 0x02786a62, 0x03879076, 0x017917d9, 0x013d769c, 0x03a4b31b, 0x0022e4e0}}}, + {X: Field{[10]uint32{0x021f7968, 0x02afddec, 0x014cc5d6, 0x00d4f34e, 0x00608324, 0x02e633cc, 0x0362911f, 0x018aa330, 0x02ff9422, 0x0018f95f}}, Y: Field{[10]uint32{0x01b009be, 0x00ba8d56, 0x036b0450, 0x038a897e, 0x00146062, 0x008ba94c, 0x0344e7d3, 0x020fc930, 0x022dfb90, 0x00278f07}}}, + {X: Field{[10]uint32{0x03b83c90, 0x01452265, 0x03f9b02a, 0x02a6d3a8, 0x00cf3ed3, 0x024253aa, 0x0088e591, 0x022971cb, 0x03a186f3, 0x002f88cf}}, Y: Field{[10]uint32{0x01dba564, 0x0067437b, 0x0156fefd, 0x03a98a5a, 0x0140bd48, 0x03714def, 0x0389ef9e, 0x02b6c9b8, 0x02b3362f, 0x00100bac}}}, + {X: Field{[10]uint32{0x01844b78, 0x0030fc58, 0x03579aaa, 0x01592892, 0x02f2cc69, 0x029cc3f3, 0x01f4d065, 0x01d3ea71, 0x03804e7c, 0x0018db76}}, Y: Field{[10]uint32{0x02a2496c, 0x03d1faf9, 0x022e7dee, 0x03ee4589, 0x026aa31f, 0x025fab22, 0x02feb598, 0x004b1808, 0x01695832, 0x001a928d}}}, + {X: Field{[10]uint32{0x02e1c5e7, 0x035b0b37, 0x01e605bd, 0x030adb9a, 0x02215ae7, 0x038bc959, 0x035af1ee, 0x0361ffde, 0x01d17250, 0x00349470}}, Y: Field{[10]uint32{0x03b4ae78, 0x012d461f, 0x004cbf55, 0x001b2116, 0x005de60d, 0x02e59963, 0x035c9862, 0x00bea32a, 0x00f57df5, 0x000916b3}}}, + {X: Field{[10]uint32{0x018ed407, 0x0371d106, 0x0248cc3b, 0x005ceea0, 0x029055f9, 0x012c1bd0, 0x011cbe05, 0x004cedc1, 0x00b8c62f, 0x00101753}}, Y: Field{[10]uint32{0x005deb54, 0x02aee9cc, 0x027201a9, 0x03f181d1, 0x01523553, 0x034af0fb, 0x00e8031b, 0x00f2d0a6, 0x0310a896, 0x002118f7}}}, + {X: Field{[10]uint32{0x03e983b8, 0x03b638e6, 0x03003546, 0x025073a3, 0x00ab3293, 0x03f696f9, 0x00a03144, 0x00e81f85, 0x02ee9ab3, 0x0025fc16}}, Y: Field{[10]uint32{0x03849261, 0x012b56fa, 0x01a7c3be, 0x008078f4, 0x03d321f1, 0x00cde0b2, 0x0070b155, 0x004e2f13, 0x02267fd9, 0x0016798a}}}, + {X: Field{[10]uint32{0x02b91ac8, 0x0181d243, 0x0153dea1, 0x02350c25, 0x01c99fdf, 0x02e6b5a4, 0x01060f26, 0x009701aa, 0x016118e1, 0x0000ce20}}, Y: Field{[10]uint32{0x0004384b, 0x005d9f65, 0x00c88728, 0x023f6f70, 0x02a57178, 0x0116a640, 0x013af0d2, 0x0069a301, 0x018b5b8e, 0x00160fa4}}}, + {X: Field{[10]uint32{0x0117a9f9, 0x03dff4cf, 0x03c31dc8, 0x0198cda7, 0x038cf653, 0x0370ed81, 0x0306b1ad, 0x01a8967d, 0x00466bbe, 0x00377483}}, Y: Field{[10]uint32{0x01de5a99, 0x01e3a270, 0x03daa7cf, 0x0166b2d0, 0x017833e1, 0x0188733c, 0x02adcf46, 0x0261a2ee, 0x0329b4ea, 0x002cb7de}}}, + {X: Field{[10]uint32{0x03dfc9f7, 0x00005c8e, 0x011cfdfe, 0x004ba37e, 0x00eecd07, 0x004e272f, 0x02c26bc3, 0x003b9565, 0x012f71ae, 0x00248f1b}}, Y: Field{[10]uint32{0x034be948, 0x0290dc00, 0x03082414, 0x021cc81f, 0x005ff2ed, 0x02680f50, 0x001ae969, 0x00490da9, 0x00ad27c4, 0x001bf6ca}}}, + {X: Field{[10]uint32{0x00a09e65, 0x0277c637, 0x031a7fde, 0x01b05241, 0x01a44887, 0x0229f444, 0x0212461b, 0x01fa1d9a, 0x02bd28d5, 0x001b50a9}}, Y: Field{[10]uint32{0x01fd28bf, 0x02fb5ae5, 0x02775640, 0x0099d1fc, 0x00dcdd28, 0x0008988d, 0x005554df, 0x03a5f0d6, 0x02b801db, 0x00137c1e}}}, + {X: Field{[10]uint32{0x01d761ae, 0x018c3b08, 0x023f04b9, 0x0010c726, 0x0170efe1, 0x014e7b38, 0x003610d8, 0x03c9674f, 0x016159f9, 0x001ff50a}}, Y: Field{[10]uint32{0x01d7e280, 0x03c77c49, 0x026dc787, 0x0005b574, 0x00e85b60, 0x03543990, 0x037d00c4, 0x00afd440, 0x0041b8ce, 0x003f5a55}}}, + {X: Field{[10]uint32{0x026770b5, 0x026ec97a, 0x018a75b5, 0x0377d023, 0x00944045, 0x00156664, 0x0100a017, 0x025f7f9e, 0x010b128d, 0x00123041}}, Y: Field{[10]uint32{0x00f66559, 0x0005f05b, 0x0061ef9b, 0x027e218c, 0x01d450e4, 0x00d4e282, 0x0061b315, 0x00c67073, 0x01a04b6e, 0x0023df3b}}}, + {X: Field{[10]uint32{0x02e2a686, 0x01963df7, 0x00a09689, 0x01037969, 0x00b3214c, 0x0220f19f, 0x02baa1b4, 0x018b725a, 0x019da12d, 0x0015118b}}, Y: Field{[10]uint32{0x01ccd957, 0x03fb0b96, 0x02e370bc, 0x00583546, 0x026a3f00, 0x03bba067, 0x0133bb50, 0x00475c3f, 0x016f9160, 0x001d9ceb}}}, + {X: Field{[10]uint32{0x026435e8, 0x01ce6087, 0x02261443, 0x011d535e, 0x0095c5fe, 0x012ddc7c, 0x025a46e4, 0x0076260a, 0x00c4e4e1, 0x001a614d}}, Y: Field{[10]uint32{0x01cbba18, 0x03d07538, 0x011376a8, 0x0267dc70, 0x039faba0, 0x039f5a1c, 0x0219a8a5, 0x0031c635, 0x02acb272, 0x000db580}}}, + {X: Field{[10]uint32{0x03e77ecc, 0x0120ca82, 0x0341ad8c, 0x00849bf4, 0x01d0bc2a, 0x03223b36, 0x0376b0d7, 0x02070eec, 0x035951c6, 0x001124fd}}, Y: Field{[10]uint32{0x0120351e, 0x002624b0, 0x0012a391, 0x03d3a0a7, 0x02df7143, 0x02ff552f, 0x03158574, 0x026ab65f, 0x021dd4d9, 0x003954f8}}}, + {X: Field{[10]uint32{0x00f8313b, 0x02f89233, 0x02ec8cf8, 0x0179a1f9, 0x006c0632, 0x0245f009, 0x0384cf5f, 0x02038625, 0x02a93300, 0x002c1536}}, Y: Field{[10]uint32{0x0367d866, 0x0222c76d, 0x01a83b06, 0x016877ba, 0x014ed52a, 0x01809083, 0x015f2a40, 0x03956b1d, 0x03155c9c, 0x00147c11}}}, + {X: Field{[10]uint32{0x0029583e, 0x000dc4f0, 0x03c571fe, 0x032581be, 0x02c1f8cf, 0x0194676c, 0x03e6796e, 0x01ac7e7f, 0x02a4fa99, 0x0012d09c}}, Y: Field{[10]uint32{0x030edb83, 0x032029bf, 0x0110cf5f, 0x00cd0e13, 0x03cecde8, 0x032f145e, 0x0336f8cf, 0x0314f572, 0x02d0dce7, 0x002549bc}}}, + {X: Field{[10]uint32{0x03e29604, 0x0012a8d8, 0x00bff46a, 0x020fc7c1, 0x006cf63f, 0x03468e52, 0x02d8e647, 0x03a0bb2b, 0x0281c69d, 0x003587ad}}, Y: Field{[10]uint32{0x021f08b8, 0x0218965c, 0x001dfaa3, 0x01756fd1, 0x03f62fdf, 0x002b8a3a, 0x006d9a43, 0x01ee3cdf, 0x02fb156d, 0x0026d6a4}}}, + {X: Field{[10]uint32{0x02bf507f, 0x00f93830, 0x0157d576, 0x0103bf63, 0x008349e3, 0x037057ae, 0x0173c8f3, 0x01e7027e, 0x000257f9, 0x0002fe3c}}, Y: Field{[10]uint32{0x020614fe, 0x01052820, 0x037d9f66, 0x00e7d3c5, 0x03433467, 0x01b4d8e8, 0x00265a83, 0x0399c3f7, 0x022f1041, 0x00158761}}}, + {X: Field{[10]uint32{0x034cb498, 0x00f8a25d, 0x032d5eb0, 0x011547b1, 0x03b471fd, 0x00a4ea1b, 0x01ca03f7, 0x03eb5936, 0x00e2a7a6, 0x0018ec95}}, Y: Field{[10]uint32{0x01948c8b, 0x01eef9d4, 0x01880083, 0x014dafbf, 0x01f5be7d, 0x00b79273, 0x03b3819a, 0x03a48b71, 0x01113a4c, 0x003d0514}}}, + {X: Field{[10]uint32{0x03968725, 0x00628a74, 0x0009ae04, 0x0021ae4f, 0x0350fdd9, 0x01327bf9, 0x0091f33c, 0x01bb618d, 0x02cde1da, 0x002eb9be}}, Y: Field{[10]uint32{0x02a30533, 0x0198241b, 0x0349bb4d, 0x03149498, 0x02e4ca46, 0x019539a8, 0x03df74c6, 0x00c5dbda, 0x01550e48, 0x001f1f72}}}, + {X: Field{[10]uint32{0x00eb34af, 0x021188eb, 0x0029b595, 0x005d4e01, 0x00d30a63, 0x0271982c, 0x02d81395, 0x02a823cf, 0x01f8ea15, 0x003d58a1}}, Y: Field{[10]uint32{0x015a9eb9, 0x02c73a41, 0x038ee31e, 0x0369ee66, 0x02d9a0f6, 0x028b72e6, 0x0303c9de, 0x00652901, 0x03c1a202, 0x0004400c}}}, + {X: Field{[10]uint32{0x0151d87a, 0x01c98ce0, 0x006a540d, 0x0348663b, 0x020eafba, 0x003a38da, 0x039191c6, 0x035147b6, 0x00953de3, 0x0021db1f}}, Y: Field{[10]uint32{0x032279b8, 0x013897a5, 0x03d27df5, 0x00744016, 0x01cf5501, 0x0394aa16, 0x0010d177, 0x0031b010, 0x037472ce, 0x00257bff}}}, + {X: Field{[10]uint32{0x000a6d30, 0x0360eb25, 0x030e3fbf, 0x01b6e8fc, 0x00a024d8, 0x02ac71d6, 0x00969024, 0x01ef55a0, 0x03ed077c, 0x003a55b1}}, Y: Field{[10]uint32{0x03aad9da, 0x01c5dc41, 0x0026b45c, 0x0164339a, 0x0205aa57, 0x01669592, 0x017a9da2, 0x026adde9, 0x00a6f0d1, 0x0006d77f}}}, + {X: Field{[10]uint32{0x01dd3f16, 0x00bfeaa6, 0x028bd8fe, 0x016a0691, 0x03ab743b, 0x01412335, 0x016e9c06, 0x01150c51, 0x0261abdb, 0x003d4ff7}}, Y: Field{[10]uint32{0x0390222f, 0x01ad93b5, 0x026bc1a2, 0x023b838a, 0x01a65ac7, 0x02cd586f, 0x038e86ba, 0x008ad405, 0x013947ea, 0x00074a2d}}}, + {X: Field{[10]uint32{0x00043ad9, 0x00d91272, 0x003b5f5d, 0x02d3def3, 0x025e49b0, 0x00da9f18, 0x01b91039, 0x010d751d, 0x028152eb, 0x002e46a1}}, Y: Field{[10]uint32{0x013aaa75, 0x00c018a8, 0x0288bb34, 0x00347a2f, 0x01722dc9, 0x007746f5, 0x0296f3d1, 0x026f0185, 0x01175693, 0x00031d63}}}, + {X: Field{[10]uint32{0x018f8cc7, 0x03c233e3, 0x02897b16, 0x032ec930, 0x0261f5ad, 0x02f25d4d, 0x00c55d0a, 0x00a49f6d, 0x007023e3, 0x0016a1ef}}, Y: Field{[10]uint32{0x03731e54, 0x02a9b81b, 0x01b2c3d2, 0x00b622a2, 0x009d1ac3, 0x02ffdd2d, 0x02d2120f, 0x00357011, 0x024baa6a, 0x00273aab}}}, + {X: Field{[10]uint32{0x01ceb034, 0x01e7de5c, 0x02e80de9, 0x02a19ad9, 0x01215622, 0x03f1736c, 0x00a80b9e, 0x02cd50ef, 0x0343e54e, 0x002b02c6}}, Y: Field{[10]uint32{0x00638d8d, 0x0344fcfd, 0x007f609b, 0x03ef4afc, 0x01439477, 0x025f6a6d, 0x03c2b871, 0x0385485e, 0x035e5731, 0x002a2455}}}, + {X: Field{[10]uint32{0x005ca915, 0x01cd19fa, 0x03dc1450, 0x01277cea, 0x00e84f19, 0x01ae88dc, 0x034d6f3f, 0x033609db, 0x02bc2017, 0x0034f107}}, Y: Field{[10]uint32{0x00dcf7b7, 0x02979363, 0x02ce609d, 0x01d8ee8f, 0x01bc1e95, 0x0043f3cd, 0x02b1e916, 0x0165147d, 0x01528be5, 0x0014aac7}}}, + {X: Field{[10]uint32{0x03923b02, 0x03afa551, 0x010634d1, 0x013d27ba, 0x02ab842e, 0x0386c3cd, 0x0100d00f, 0x00b31bde, 0x0057f4c8, 0x001a33ff}}, Y: Field{[10]uint32{0x02b1d8e2, 0x01a92166, 0x026b26fe, 0x0012ebb4, 0x03367ba9, 0x00628c1a, 0x03da281c, 0x001d070f, 0x01bfaac1, 0x001ca655}}}, + {X: Field{[10]uint32{0x00177d9c, 0x03c954e3, 0x0074cd30, 0x0194d0fe, 0x02579dc7, 0x014c9299, 0x00566b33, 0x0267bb82, 0x00e12462, 0x001f83d6}}, Y: Field{[10]uint32{0x0021447c, 0x010065a2, 0x0128dcd3, 0x0055a816, 0x00086b90, 0x034d99d0, 0x009af7b5, 0x024fc020, 0x01835872, 0x000e5949}}}, + {X: Field{[10]uint32{0x00c9b542, 0x0057ae39, 0x03bbb97a, 0x0219cc95, 0x025dc450, 0x02cc97f5, 0x013d4bf1, 0x019263ad, 0x03dbd181, 0x0031caae}}, Y: Field{[10]uint32{0x0325a7b9, 0x01debeca, 0x0378288e, 0x0232da06, 0x00841a06, 0x011b34c6, 0x0041ed3e, 0x03cf4a21, 0x03a55df5, 0x000f23eb}}}, + {X: Field{[10]uint32{0x02363d0d, 0x002aed74, 0x015a1b72, 0x0329cff8, 0x00943654, 0x03da40de, 0x024d76ce, 0x0245107d, 0x035d3eb0, 0x001d1d1f}}, Y: Field{[10]uint32{0x00443649, 0x03eb5f07, 0x019b9746, 0x029907e5, 0x03bf54c1, 0x032bc151, 0x01f993a5, 0x03a3dcc8, 0x03240bc7, 0x00004b19}}}, + {X: Field{[10]uint32{0x01b67067, 0x03ff23e4, 0x006e1212, 0x00b347ec, 0x0129db86, 0x02b5a26a, 0x00b5d71d, 0x039f10d3, 0x02d1ab1d, 0x003ca9c0}}, Y: Field{[10]uint32{0x03afd854, 0x01ef458d, 0x0242962c, 0x006af451, 0x031d5ec1, 0x03ed373e, 0x03452bc7, 0x02b26b2d, 0x022cc730, 0x00016e47}}}, + {X: Field{[10]uint32{0x000d9340, 0x02d58d34, 0x01e1b530, 0x00f52fa4, 0x00c2535b, 0x000711ba, 0x01a87b62, 0x01ad197f, 0x030814e7, 0x002a4b53}}, Y: Field{[10]uint32{0x01cd0277, 0x02e81941, 0x030be6f4, 0x02f08d43, 0x0038d96d, 0x01d536b6, 0x01fd9bfe, 0x03ed015a, 0x028f3c02, 0x001360a6}}}, + {X: Field{[10]uint32{0x02f205a1, 0x03e45e89, 0x017462aa, 0x010a1285, 0x02df5ea1, 0x002a03ee, 0x00ea3206, 0x030ecfe4, 0x00b1ac06, 0x001e78c3}}, Y: Field{[10]uint32{0x00d5c82f, 0x007c9db2, 0x028d5352, 0x012a7d85, 0x007f1736, 0x0032ea5d, 0x008a79ed, 0x0252556b, 0x020a8145, 0x002b4882}}}, + {X: Field{[10]uint32{0x009401d1, 0x008c6da3, 0x02ff3020, 0x028eeaf5, 0x0288c8d6, 0x00903e8c, 0x023252be, 0x015dfc11, 0x0053d412, 0x001b5577}}, Y: Field{[10]uint32{0x03006eb3, 0x00cbf4de, 0x021540d7, 0x03228297, 0x02c98e17, 0x019e7c15, 0x01553452, 0x00cb0164, 0x0096aa3b, 0x0020e907}}}, + {X: Field{[10]uint32{0x01b3f20a, 0x00ed5a92, 0x02f487c8, 0x038834f8, 0x0211ef14, 0x032e2830, 0x03ea5eb4, 0x02e426cd, 0x031f604e, 0x0033e727}}, Y: Field{[10]uint32{0x0247dff8, 0x034722e8, 0x03f93dd3, 0x03e77d5b, 0x02da24ea, 0x032d1077, 0x0260b5be, 0x026621dc, 0x01f64e64, 0x000ae42e}}}, + {X: Field{[10]uint32{0x006b35dd, 0x03649786, 0x00346a2f, 0x016eea6a, 0x00e30f43, 0x03bdbf2b, 0x03677809, 0x02652acc, 0x019f29ed, 0x0018350a}}, Y: Field{[10]uint32{0x0360331e, 0x008da551, 0x0143737b, 0x02927462, 0x03040d51, 0x03639092, 0x0386ddd2, 0x02d3163f, 0x0388b8aa, 0x00037da6}}}, + {X: Field{[10]uint32{0x01493540, 0x0314ddb6, 0x02122887, 0x01660b34, 0x037de3be, 0x004528ef, 0x02bbb854, 0x012981ad, 0x02dd1b67, 0x00364e9b}}, Y: Field{[10]uint32{0x01e5f7ff, 0x03146ffe, 0x01230423, 0x023111fb, 0x03acfdb0, 0x03e486b9, 0x01590064, 0x0065ef00, 0x03d7dc79, 0x0021f68d}}}, + {X: Field{[10]uint32{0x01652962, 0x024646af, 0x03c6025d, 0x0368681b, 0x01fd5869, 0x032ded7d, 0x02bb6b31, 0x023662dc, 0x01377e10, 0x0033e30f}}, Y: Field{[10]uint32{0x00128fbb, 0x02722c4d, 0x01c93afc, 0x006a1e7b, 0x02fc5427, 0x0086cf2b, 0x002b0343, 0x02b40b6d, 0x0102bb96, 0x0001bd73}}}, + {X: Field{[10]uint32{0x00df29eb, 0x011f9a23, 0x002a6908, 0x0123c931, 0x00715b90, 0x01ee7283, 0x03ab65ac, 0x03b3e609, 0x02474637, 0x001b2a64}}, Y: Field{[10]uint32{0x02b55439, 0x0260f93f, 0x001f6d93, 0x00374057, 0x028bb616, 0x02ad5f0f, 0x02a446ed, 0x01153b65, 0x01a5fefa, 0x00144de3}}}, + {X: Field{[10]uint32{0x00d17afd, 0x035a1b4a, 0x008c558e, 0x0135ee7c, 0x033cc306, 0x02b3cb8f, 0x0267758c, 0x004f577a, 0x00043cb8, 0x001bdf4b}}, Y: Field{[10]uint32{0x0233bc6f, 0x029b3194, 0x013c8c65, 0x03c82b0a, 0x01b590a5, 0x01f17858, 0x039106c1, 0x03b120cf, 0x027813ec, 0x0011e538}}}, + {X: Field{[10]uint32{0x0124f3e1, 0x02a2893a, 0x03475d2c, 0x0069f667, 0x01e818d0, 0x0213a466, 0x02a82b01, 0x0220fead, 0x00d00bc9, 0x003e2bb8}}, Y: Field{[10]uint32{0x039442b5, 0x01bcd2a0, 0x01b8ab52, 0x01797348, 0x0244f105, 0x01ac6cf7, 0x0026bfac, 0x0177c025, 0x032b6913, 0x002b3e72}}}, + {X: Field{[10]uint32{0x00ce781c, 0x010ad180, 0x03f9d222, 0x03aba461, 0x010a85c8, 0x03d32470, 0x03123fc7, 0x000fd12f, 0x00bfc1a2, 0x0022c03f}}, Y: Field{[10]uint32{0x01d35bc9, 0x02617322, 0x03cac478, 0x02676b7e, 0x020a8de6, 0x03b9510a, 0x00264280, 0x039a43b0, 0x018a3e81, 0x00187a79}}}, + {X: Field{[10]uint32{0x01d6dd4d, 0x02dfe84e, 0x03c1ab0e, 0x008fa612, 0x00a72785, 0x0330c84b, 0x001ebbc1, 0x028acb08, 0x03078e84, 0x003eeb2e}}, Y: Field{[10]uint32{0x003a0f52, 0x02129f93, 0x020833aa, 0x017f45b1, 0x014e557d, 0x032eea89, 0x03df675c, 0x002265e5, 0x01d6f5eb, 0x000b1b27}}}, + {X: Field{[10]uint32{0x005c0611, 0x00cf6b2b, 0x02175bfa, 0x02ecf7e2, 0x005ba601, 0x00ee8a01, 0x028f9935, 0x03c14e34, 0x035c2f32, 0x000555a1}}, Y: Field{[10]uint32{0x00e240b7, 0x02bfa129, 0x01cf8eba, 0x00e84391, 0x03d2eb78, 0x022238e1, 0x01fb5405, 0x0251923a, 0x0050c3da, 0x0014d88c}}}, + {X: Field{[10]uint32{0x02d93d77, 0x01caec00, 0x0379e2e9, 0x03416617, 0x0349a8ce, 0x01a0fe00, 0x03e690ec, 0x017a6338, 0x00957f5b, 0x002d80ac}}, Y: Field{[10]uint32{0x01435227, 0x00e6d3a1, 0x009d960d, 0x00e2bd6e, 0x01ff3588, 0x006edecc, 0x00046acb, 0x02e0878c, 0x0390ddd6, 0x001e21a0}}}, + {X: Field{[10]uint32{0x022dd17a, 0x01454076, 0x0037724f, 0x0059d7f9, 0x037a8462, 0x001bc154, 0x01d66f8a, 0x00913822, 0x016523a5, 0x000a8440}}, Y: Field{[10]uint32{0x00825159, 0x0314e86e, 0x02bff938, 0x01e1f4b0, 0x02b881d0, 0x001cdfce, 0x02de4983, 0x018ba6c0, 0x0125e1ca, 0x000934ed}}}, + {X: Field{[10]uint32{0x017efce0, 0x00d76991, 0x01d3835a, 0x02495bf2, 0x01a13edb, 0x03d0f4b6, 0x0326a8e4, 0x03e6a738, 0x03591148, 0x0001cc51}}, Y: Field{[10]uint32{0x03b2d8b3, 0x02c3fddd, 0x03790c7f, 0x03c0c182, 0x021ad5ad, 0x015d991c, 0x02c7cfa4, 0x02a8134e, 0x009480d0, 0x002c6573}}}, + {X: Field{[10]uint32{0x036206fc, 0x0117b76c, 0x02e3db2f, 0x0190df65, 0x000525d8, 0x016a7638, 0x0362979c, 0x008f5c58, 0x03e40c7e, 0x0028db93}}, Y: Field{[10]uint32{0x02844751, 0x0158d799, 0x02707c74, 0x027da5e9, 0x00034669, 0x0020ce69, 0x0270de87, 0x0236d2a2, 0x03850a42, 0x0015ab39}}}, + {X: Field{[10]uint32{0x003cac9a, 0x0135de3d, 0x00402344, 0x035fa219, 0x0085b877, 0x0289253d, 0x021b61d5, 0x01046175, 0x03e7a2c5, 0x0025e192}}, Y: Field{[10]uint32{0x01f2ff69, 0x023b68ae, 0x000ab013, 0x00a1c6e6, 0x003a6c54, 0x03a4f9c7, 0x01dcd900, 0x020e4554, 0x0278a85b, 0x0010ccca}}}, + {X: Field{[10]uint32{0x0119893e, 0x03ae65a1, 0x02458b74, 0x01057fc0, 0x03daa7ca, 0x0177351f, 0x02c92c84, 0x03ba9b68, 0x01bf2449, 0x000d294b}}, Y: Field{[10]uint32{0x0303ece4, 0x00151ff8, 0x001b9427, 0x00d5a675, 0x03b3545a, 0x007ceec8, 0x03a8d552, 0x009b27de, 0x0029900f, 0x002b7506}}}, + {X: Field{[10]uint32{0x03f3d629, 0x037a298b, 0x02fcf5af, 0x02ede67d, 0x030d8bdb, 0x018c7d6e, 0x037b2b48, 0x02985d7e, 0x03a994ee, 0x0038942a}}, Y: Field{[10]uint32{0x0143b0ea, 0x02f60da0, 0x01757409, 0x03b02ffc, 0x022e92c4, 0x02254c3e, 0x00b6fae6, 0x03ea182f, 0x00f59db0, 0x00200fcd}}}, + {X: Field{[10]uint32{0x0071ae00, 0x026b8a6e, 0x02372086, 0x00bb8eca, 0x02795304, 0x01563845, 0x009347a4, 0x011b8845, 0x026d0b59, 0x00060d5a}}, Y: Field{[10]uint32{0x015385cb, 0x03a6aee6, 0x01f08f19, 0x008eea30, 0x000ba6de, 0x032849f1, 0x0398ec8d, 0x01be0787, 0x01716b17, 0x0015bbc2}}}, + {X: Field{[10]uint32{0x00205533, 0x033caa44, 0x0288eed3, 0x035bdcf5, 0x02ca5932, 0x0030a795, 0x025ef3f3, 0x0182100d, 0x03f5e530, 0x000d6a3a}}, Y: Field{[10]uint32{0x03259958, 0x0061481f, 0x018c453a, 0x03570b41, 0x0220d30f, 0x02b69d67, 0x01410325, 0x0153788f, 0x01950429, 0x0027ab97}}}, + {X: Field{[10]uint32{0x02a4e1b9, 0x014107f9, 0x007bda70, 0x02427292, 0x037b3dbe, 0x014ea597, 0x0062b920, 0x023fa7aa, 0x02f525ea, 0x0000df81}}, Y: Field{[10]uint32{0x03ceb97c, 0x015fed87, 0x020d703f, 0x01a3f73d, 0x003f2f65, 0x00686650, 0x0313b604, 0x026fa88f, 0x03d35e48, 0x0020e467}}}, + {X: Field{[10]uint32{0x02131c27, 0x037b0657, 0x007131a4, 0x0119c636, 0x01483166, 0x03929bff, 0x00629476, 0x0000bc44, 0x0297ac6c, 0x002aeef9}}, Y: Field{[10]uint32{0x012f9dcb, 0x01c55cac, 0x00300929, 0x01126a92, 0x02fd7049, 0x0083abd3, 0x00d8a24a, 0x008bfdfe, 0x02cb9d51, 0x002cb249}}}, + {X: Field{[10]uint32{0x01b05878, 0x0161691a, 0x0204368a, 0x00dabab2, 0x015a1a36, 0x022454c5, 0x0029c8b7, 0x03730fdf, 0x02cb1484, 0x00137cda}}, Y: Field{[10]uint32{0x0241c41d, 0x0308379a, 0x02d09d4f, 0x012edff3, 0x00aa059f, 0x0255914d, 0x00417fb1, 0x03c098ff, 0x026fc08a, 0x003f85bf}}}, + {X: Field{[10]uint32{0x0399d0d7, 0x01f4a6f9, 0x0073123a, 0x018371f1, 0x03c8f49c, 0x02f6bdab, 0x01570e5e, 0x01a82a22, 0x02e31025, 0x0017fc53}}, Y: Field{[10]uint32{0x03e65d7b, 0x0074af3d, 0x010d8989, 0x01b15b3f, 0x0295382d, 0x02b66146, 0x02a923ee, 0x00beb23c, 0x013855eb, 0x0025bfc5}}}, + {X: Field{[10]uint32{0x015d119a, 0x00b7a8a1, 0x028104f6, 0x0320dabd, 0x02a24dba, 0x01eadc61, 0x01281a1b, 0x008bd1e4, 0x0052c1d4, 0x0005a84b}}, Y: Field{[10]uint32{0x00c17478, 0x0205c8c9, 0x03b2ab3a, 0x03d01838, 0x01d36a4b, 0x02eeaaea, 0x0196cb38, 0x015b791a, 0x0272f673, 0x001e9bbc}}}, + {X: Field{[10]uint32{0x01489ef5, 0x0003fea8, 0x00eda606, 0x02b2fa91, 0x0005fcdb, 0x03f559f9, 0x00b3d154, 0x02248292, 0x00338368, 0x0023d327}}, Y: Field{[10]uint32{0x03885717, 0x015932b6, 0x01b4e37d, 0x035232ee, 0x01a4b0ab, 0x018a78b9, 0x03c0082d, 0x01131eca, 0x004de064, 0x000aed6f}}}, + {X: Field{[10]uint32{0x02b83310, 0x035b4aaa, 0x017776ab, 0x00bf417d, 0x0219236d, 0x0140e672, 0x00ca399e, 0x01c04215, 0x039b0754, 0x001262fc}}, Y: Field{[10]uint32{0x02fd691c, 0x0394699a, 0x01d0c4dd, 0x0118b0d5, 0x02b5edcd, 0x0291752e, 0x007beb58, 0x0238daf3, 0x03ff0cb5, 0x00238b7a}}}, + {X: Field{[10]uint32{0x02fb5996, 0x01b84dbb, 0x01c1171e, 0x024047a2, 0x022ba51d, 0x012560cd, 0x02247d17, 0x034e5ac8, 0x020a2978, 0x001e051f}}, Y: Field{[10]uint32{0x03f85989, 0x00c349c3, 0x01fd41d8, 0x03d6e2c1, 0x004c75bf, 0x03ad1043, 0x01bf0fb2, 0x01986f9c, 0x030ca73b, 0x00299ade}}}, + {X: Field{[10]uint32{0x028d4927, 0x035df760, 0x01f663f4, 0x028b85ab, 0x0047e112, 0x00b7c012, 0x037aea1d, 0x01b1f951, 0x00d9fb23, 0x000d44a6}}, Y: Field{[10]uint32{0x00fe00f9, 0x00ab2077, 0x03f2067f, 0x035161e3, 0x01241094, 0x01862b94, 0x01c3884e, 0x008ea745, 0x01af8b6f, 0x001b2724}}}, + {X: Field{[10]uint32{0x02399d10, 0x00af2f85, 0x00a67a34, 0x01a2797e, 0x01c18146, 0x0121526b, 0x00ffc148, 0x01827093, 0x000c88fb, 0x003ed7ff}}, Y: Field{[10]uint32{0x00229ab3, 0x011b97ee, 0x00a0946f, 0x02472217, 0x0088cf57, 0x03a4ba5e, 0x03eff328, 0x02532e43, 0x013f9ced, 0x002a6578}}}, + {X: Field{[10]uint32{0x0032097b, 0x0293e812, 0x036b36c7, 0x0251df35, 0x0089565e, 0x00372aa8, 0x03bd1974, 0x027175c5, 0x03c44cc0, 0x0020d4ad}}, Y: Field{[10]uint32{0x010fe6bc, 0x02bdb1df, 0x01e236f8, 0x02ada531, 0x00f91c8f, 0x01dd2b9a, 0x018ca786, 0x0097641d, 0x019800fa, 0x002541f2}}}, + {X: Field{[10]uint32{0x01919f4a, 0x00104561, 0x0140bd82, 0x036d8ab6, 0x015d5ed1, 0x02ec7165, 0x01014d76, 0x009d1b5b, 0x000f273a, 0x0006f997}}, Y: Field{[10]uint32{0x0009a3f2, 0x0368d657, 0x03552da3, 0x00f202c8, 0x00f044e9, 0x03be0eba, 0x01470a83, 0x03e0e68f, 0x03302a38, 0x0036b263}}}, + {X: Field{[10]uint32{0x0358418e, 0x017e6302, 0x003a7ed6, 0x0227afdd, 0x008de14d, 0x03a003d9, 0x0365037a, 0x03889fba, 0x03a52f4b, 0x001c41fc}}, Y: Field{[10]uint32{0x01fca7a4, 0x01a9d29a, 0x00e6069f, 0x03caa857, 0x01927b2d, 0x023bab91, 0x00e429d1, 0x03cc9f45, 0x0009bd1a, 0x002ff3c7}}}, + {X: Field{[10]uint32{0x03312e3e, 0x00125ce5, 0x00cff9dd, 0x03300293, 0x00983389, 0x02c7e766, 0x0254a133, 0x02b96c73, 0x004be8ed, 0x000045ca}}, Y: Field{[10]uint32{0x0212b03d, 0x02d170e0, 0x01539638, 0x01de1b98, 0x0084e3af, 0x0321342e, 0x03519994, 0x03b5262f, 0x001e724f, 0x00247923}}}, + {X: Field{[10]uint32{0x000de54e, 0x02d129ec, 0x015ded31, 0x02db1f99, 0x0041c243, 0x0226d9c5, 0x01f1cd0d, 0x026ad194, 0x02deb1ff, 0x00282361}}, Y: Field{[10]uint32{0x030f0d2f, 0x0098a720, 0x0012c0ec, 0x03530b6f, 0x01a72ed8, 0x01d33252, 0x0364feef, 0x00e7455d, 0x03f6344d, 0x001343f9}}}, + {X: Field{[10]uint32{0x00e8c25f, 0x023b2d69, 0x015503f7, 0x00cf79c4, 0x0098cfc6, 0x02352282, 0x032cbf36, 0x01062bbb, 0x01cedf67, 0x00271130}}, Y: Field{[10]uint32{0x01e743fa, 0x01936f8c, 0x0335f81f, 0x01b79306, 0x03de3d3c, 0x03e61c30, 0x01a959b9, 0x03c258c7, 0x002086d3, 0x000f3688}}}, + {X: Field{[10]uint32{0x0339f149, 0x00ce2c88, 0x02319250, 0x012694ab, 0x00f85979, 0x03c935c5, 0x03118da6, 0x030196ea, 0x00755215, 0x00364cf9}}, Y: Field{[10]uint32{0x00baec45, 0x01f5bf22, 0x01dcb054, 0x00e74bc6, 0x030e277e, 0x012604a1, 0x03abfa60, 0x03c13778, 0x028e313a, 0x0017ec3c}}}, + {X: Field{[10]uint32{0x008a42cb, 0x003c74c6, 0x015ff63c, 0x014d96ab, 0x024c2f9e, 0x03c90ef1, 0x00105289, 0x014cb288, 0x0197ddd0, 0x001ff87c}}, Y: Field{[10]uint32{0x02472af7, 0x0159e3ff, 0x02c7cd3f, 0x02b1ae8a, 0x01a9ec6b, 0x015879d7, 0x03618286, 0x024863b8, 0x033fa186, 0x00204ec4}}}, + {X: Field{[10]uint32{0x0107f79c, 0x02ae54b1, 0x0151a96a, 0x02bacf5d, 0x037ba412, 0x00b71b55, 0x010789c7, 0x008409eb, 0x01218961, 0x0038d5a1}}, Y: Field{[10]uint32{0x023e3a30, 0x01919690, 0x029a8496, 0x00533579, 0x017d8201, 0x0377d351, 0x01fe225e, 0x02a2b2b9, 0x01058e2c, 0x001d9171}}}, + {X: Field{[10]uint32{0x02ebece4, 0x03b3e0ad, 0x0380d146, 0x020ee089, 0x00c667a1, 0x02daa768, 0x02bcefc3, 0x01128aaf, 0x01468a56, 0x00315abf}}, Y: Field{[10]uint32{0x00f1a8d4, 0x018d7e55, 0x01e750cc, 0x005071a4, 0x022915ba, 0x01a19526, 0x03c587cb, 0x00a11227, 0x0255a80e, 0x00279071}}}, + {X: Field{[10]uint32{0x01589345, 0x0347c9a8, 0x02d5600a, 0x023f46af, 0x01440f9f, 0x00257c38, 0x036042e1, 0x02a3c1ce, 0x033960e6, 0x002c90ba}}, Y: Field{[10]uint32{0x036dfde0, 0x00107961, 0x01ca4bb5, 0x02b7a11a, 0x00378579, 0x025bca8d, 0x002decb6, 0x03c280d8, 0x036df063, 0x00251369}}}, + {X: Field{[10]uint32{0x023bb827, 0x01ec41cc, 0x03d42af5, 0x029ad70e, 0x0378f835, 0x0339a1c0, 0x00a43f2f, 0x00b8ba22, 0x01666d2e, 0x000e94bf}}, Y: Field{[10]uint32{0x03af91c7, 0x0136a669, 0x034cc487, 0x035b4390, 0x020096c7, 0x023d3ca7, 0x015cea01, 0x01e9189d, 0x0177a7b3, 0x0004b944}}}, + {X: Field{[10]uint32{0x00d28f53, 0x01deba89, 0x026cf708, 0x03f8259e, 0x034a71c0, 0x0262a31a, 0x03072d25, 0x006b4451, 0x0215c883, 0x002ddf55}}, Y: Field{[10]uint32{0x02bf3132, 0x02318d27, 0x011760d1, 0x030cdaa3, 0x01f5cff2, 0x03de4d81, 0x02df83d5, 0x0299977a, 0x03cfa068, 0x0009756d}}}, + {X: Field{[10]uint32{0x008530dc, 0x0260da70, 0x0214d798, 0x013d3fde, 0x03f23d22, 0x0109aa89, 0x03847288, 0x00d6a14d, 0x003b61e4, 0x00391083}}, Y: Field{[10]uint32{0x00ca8572, 0x034b213b, 0x019a7f7c, 0x02a626c4, 0x029b3c67, 0x01622b65, 0x02bd74e1, 0x0212e66f, 0x00b48579, 0x00108ac1}}}, + {X: Field{[10]uint32{0x030aaaea, 0x00204158, 0x007cecae, 0x011262b4, 0x01236e3c, 0x01853ec0, 0x020fadda, 0x00a678ee, 0x01bfc6ab, 0x002222ff}}, Y: Field{[10]uint32{0x0370eb3c, 0x03d1dccd, 0x03453f06, 0x032761c4, 0x037ada97, 0x006a3d02, 0x00fb94aa, 0x0396018a, 0x013d58cf, 0x0021b9c9}}}, + {X: Field{[10]uint32{0x00ef419c, 0x01310d84, 0x02cce8ef, 0x00b52185, 0x000d850f, 0x004e6059, 0x03de398a, 0x022cc376, 0x018bf7d7, 0x003dd349}}, Y: Field{[10]uint32{0x03029204, 0x029ffc94, 0x02c9dfca, 0x02db5233, 0x0205d60e, 0x02ec4b4c, 0x0332213c, 0x02b7f250, 0x01af1e6d, 0x00344f52}}}, + {X: Field{[10]uint32{0x00da6df0, 0x00504417, 0x00ae0679, 0x0352deb0, 0x0365cea0, 0x006e4895, 0x00097861, 0x00120e9c, 0x029098d6, 0x002a2ccf}}, Y: Field{[10]uint32{0x0121c553, 0x03ced44d, 0x01ddc650, 0x030194b2, 0x021182b6, 0x01bfd1d8, 0x032598e9, 0x0255ec45, 0x038cc08d, 0x00163308}}}, + {X: Field{[10]uint32{0x023ef1ff, 0x0251c286, 0x03cb8969, 0x02d96b84, 0x027a4a6c, 0x01286857, 0x01dbbe3d, 0x03eb6639, 0x01547477, 0x0016be2c}}, Y: Field{[10]uint32{0x016f25bf, 0x012c68df, 0x03672cc8, 0x0056dbbd, 0x033c0a8c, 0x019ba05c, 0x008fac13, 0x0060c8db, 0x0201d0c6, 0x001497b4}}}, + {X: Field{[10]uint32{0x03bec21c, 0x027ca780, 0x030bc811, 0x0196adff, 0x02fa71e6, 0x037e198a, 0x01143833, 0x01712887, 0x00546d4c, 0x00005571}}, Y: Field{[10]uint32{0x00411aae, 0x0259afd4, 0x036d0378, 0x020bb7bf, 0x03638422, 0x03f5c91f, 0x00eaefe8, 0x00461737, 0x03672f64, 0x00083a67}}}, + {X: Field{[10]uint32{0x0025a56e, 0x0019831d, 0x01473101, 0x00319ce3, 0x00c8fd7f, 0x02998ddc, 0x0022aea5, 0x00b59b9f, 0x0186ee18, 0x0014e461}}, Y: Field{[10]uint32{0x0056152e, 0x01636746, 0x0052fabc, 0x01e9c848, 0x00cdbf72, 0x01c2e249, 0x02564a1e, 0x03b075f8, 0x00923052, 0x0031ffa8}}}, + {X: Field{[10]uint32{0x03ad6414, 0x0262ee8e, 0x00d4f679, 0x03ca356b, 0x01cc52d7, 0x01dd03d3, 0x0004abba, 0x02dc59d2, 0x01d9a0fa, 0x003de593}}, Y: Field{[10]uint32{0x01f62c59, 0x02b20d22, 0x03ccb31c, 0x008bc6ef, 0x02d469a1, 0x03b04779, 0x03dc5c2a, 0x03d8339e, 0x0364aba0, 0x001aa627}}}, + {X: Field{[10]uint32{0x01663183, 0x0167b6f3, 0x0258e720, 0x038ad6c5, 0x02ffd72e, 0x00c9f1bb, 0x000a909b, 0x03cb79e2, 0x008af514, 0x001d0723}}, Y: Field{[10]uint32{0x0087b2ae, 0x00915129, 0x01b49012, 0x00c7edbf, 0x02e40b6b, 0x022bf9cd, 0x013532d4, 0x00518371, 0x036de5de, 0x003cd749}}}, + {X: Field{[10]uint32{0x0347945a, 0x03e20d62, 0x037e9b2e, 0x03c4c485, 0x02606e55, 0x01bbd3c8, 0x02ea9f12, 0x028a2bf1, 0x01bf6cc2, 0x0037a31a}}, Y: Field{[10]uint32{0x00a48a02, 0x017292d0, 0x0052c8b8, 0x0108ec72, 0x0270d847, 0x013fdc19, 0x00e2fecb, 0x035851e0, 0x00536900, 0x0023798a}}}, + {X: Field{[10]uint32{0x0357c537, 0x0163a8db, 0x006afcd0, 0x03f66a11, 0x01d6a8d5, 0x00f7404d, 0x02523b2d, 0x02d07362, 0x0339619b, 0x0020785b}}, Y: Field{[10]uint32{0x03f4b31e, 0x0170996e, 0x0032f239, 0x0135f6eb, 0x00375c43, 0x01477bb1, 0x006de9b9, 0x03b32b45, 0x00737cd2, 0x0019e1bf}}}, + {X: Field{[10]uint32{0x026f988d, 0x008eab9e, 0x01a20f01, 0x00122ac8, 0x02e70f7f, 0x01c96cc2, 0x01625b8a, 0x02c8ba31, 0x0189d079, 0x001167a5}}, Y: Field{[10]uint32{0x03f38e08, 0x01fa310c, 0x0112ee76, 0x0069155d, 0x00915de2, 0x030d41b3, 0x02d26acc, 0x028a4b12, 0x02935b71, 0x00295bb7}}}, + {X: Field{[10]uint32{0x028ebddd, 0x013ce161, 0x03758228, 0x014746ae, 0x01f2e5bb, 0x01c2d3ab, 0x0018806a, 0x029ffc82, 0x03554fab, 0x002c1e75}}, Y: Field{[10]uint32{0x0274dffe, 0x016dc07f, 0x001dcfcf, 0x03115d18, 0x0120b6c0, 0x0390d3ea, 0x00f65773, 0x005d2c84, 0x002d552f, 0x00125777}}}, + {X: Field{[10]uint32{0x034f288b, 0x02af4b19, 0x00100569, 0x005cfc17, 0x00bb30af, 0x0356c42d, 0x0180de1d, 0x03ec8505, 0x03bb5983, 0x001d4e46}}, Y: Field{[10]uint32{0x02958d67, 0x0292bdf7, 0x0080db58, 0x00d347c7, 0x02b319f5, 0x004d694a, 0x026032f2, 0x012ae7ad, 0x02bac915, 0x0015f1e9}}}, + {X: Field{[10]uint32{0x01524db4, 0x02784d90, 0x03e7d5a8, 0x03dccbf2, 0x035bda94, 0x013f1a47, 0x0061069e, 0x023dd7f1, 0x0157f284, 0x001c50da}}, Y: Field{[10]uint32{0x033f0007, 0x014476f7, 0x0224fe92, 0x016973bc, 0x0195658a, 0x006e4f20, 0x022813c5, 0x02b75596, 0x0052ef4f, 0x0004a1fe}}}, + {X: Field{[10]uint32{0x01543f9c, 0x03263c50, 0x037853b7, 0x01adc9e7, 0x0094ad07, 0x00965c3b, 0x00c74c9e, 0x03425c37, 0x0333fa75, 0x002e40e2}}, Y: Field{[10]uint32{0x03cf838e, 0x01c2ac36, 0x02660734, 0x03cf5bd9, 0x02af59ce, 0x038e7235, 0x03c1bf48, 0x017b40fe, 0x01696929, 0x0028a30c}}}, + {X: Field{[10]uint32{0x01f86196, 0x022bc5e9, 0x034b083b, 0x02e759f0, 0x03f259bd, 0x01b6f832, 0x00664e63, 0x036403ef, 0x0028a9fb, 0x002cb18f}}, Y: Field{[10]uint32{0x0149ebdd, 0x0040fbb3, 0x012b0ee7, 0x008dbd70, 0x01b79207, 0x02544329, 0x03084218, 0x018f119c, 0x00fc069c, 0x002a3c14}}}, + {X: Field{[10]uint32{0x0017f39c, 0x00b31e89, 0x0128a5c9, 0x011bce3a, 0x01d06bf3, 0x03edf1e1, 0x027edfad, 0x008657d2, 0x01bea32b, 0x003374a9}}, Y: Field{[10]uint32{0x03fa621b, 0x02b775ad, 0x01f04d2d, 0x01320e0a, 0x02213386, 0x00ace02b, 0x0203ee72, 0x0070d80c, 0x0278ac42, 0x0002ad9b}}}, + {X: Field{[10]uint32{0x033db80f, 0x033e9867, 0x01c39780, 0x0031c93e, 0x01a27d74, 0x0220e3b1, 0x02f03a82, 0x029cdeb3, 0x0064b079, 0x00209742}}, Y: Field{[10]uint32{0x021071d3, 0x01c866d1, 0x02b43a87, 0x02b6f0b8, 0x01c2154f, 0x03817ae9, 0x027e427f, 0x011299fc, 0x00b7749e, 0x002fcfba}}}, + {X: Field{[10]uint32{0x035e24c7, 0x02e243ef, 0x02218608, 0x01dfc2c3, 0x01d0c364, 0x027d338f, 0x02930a87, 0x03d00b25, 0x023cbf6b, 0x000dede7}}, Y: Field{[10]uint32{0x00f66f1d, 0x016b40c4, 0x02e29204, 0x02cbdec3, 0x00c32a5b, 0x0084f0bc, 0x010ff4c9, 0x018c2e82, 0x02c7cec5, 0x00365c50}}}, + {X: Field{[10]uint32{0x012b6135, 0x008b0cd5, 0x039d8aed, 0x003beec1, 0x0389560b, 0x02d14baf, 0x01105bf5, 0x029d7502, 0x02d0678e, 0x003ee992}}, Y: Field{[10]uint32{0x011f938c, 0x00f02c83, 0x03e3bdf6, 0x0065f5b6, 0x035c628f, 0x02a01ab5, 0x01dd8441, 0x00dea2a1, 0x022de4e6, 0x0039994d}}}, + {X: Field{[10]uint32{0x00d9cf72, 0x028fe5fb, 0x027a859e, 0x0034610c, 0x03d3bd49, 0x021311db, 0x004897de, 0x034dbe76, 0x038e077e, 0x001d9e1e}}, Y: Field{[10]uint32{0x0180a9b3, 0x0336508e, 0x00158210, 0x022ccf59, 0x00e3ba22, 0x0075e37f, 0x0126011d, 0x00e30f30, 0x03141a3f, 0x00033de7}}}, + {X: Field{[10]uint32{0x00157b31, 0x00694340, 0x03e8a369, 0x02790be7, 0x01f16a12, 0x01986954, 0x026ba1c5, 0x028cd217, 0x01d0ffb3, 0x0009aeaf}}, Y: Field{[10]uint32{0x002c530d, 0x0101cb63, 0x008eee4c, 0x01c49fb7, 0x02e66a6c, 0x0080dc2c, 0x0266e33a, 0x00691bed, 0x02e2b1cf, 0x0006ce92}}}, + {X: Field{[10]uint32{0x0376307a, 0x000c75a7, 0x02008c1b, 0x03c8d811, 0x007ca4d3, 0x01dca7ca, 0x02aa8640, 0x0287a5e9, 0x03b77a2f, 0x00056bb6}}, Y: Field{[10]uint32{0x03073649, 0x033f65bf, 0x00788a6d, 0x01e14d53, 0x03f94088, 0x03017cda, 0x01746439, 0x008d81a9, 0x0142bf8b, 0x000cd0a8}}}, + {X: Field{[10]uint32{0x026fe467, 0x0003d5d1, 0x01fb3de1, 0x02837f79, 0x01c2b072, 0x01bbd330, 0x00d5767c, 0x03353f7d, 0x00a39bb7, 0x00263b38}}, Y: Field{[10]uint32{0x03227e28, 0x03d18faa, 0x02bba6f4, 0x00a5a829, 0x021e679d, 0x00e555b1, 0x0029d0f8, 0x024f9fae, 0x00a8218c, 0x00313a49}}}, + {X: Field{[10]uint32{0x03f373a9, 0x026daa0f, 0x03304198, 0x028becc8, 0x018a48cd, 0x0019eedc, 0x01ffafab, 0x00fbb533, 0x0105fc21, 0x001f619d}}, Y: Field{[10]uint32{0x0097d47c, 0x027bdd5f, 0x00c1b919, 0x03e233a8, 0x0096e167, 0x01290053, 0x03c417ef, 0x0081e065, 0x03f03c21, 0x00177d47}}}, + {X: Field{[10]uint32{0x01b3001f, 0x02dce8a5, 0x0117f410, 0x012275db, 0x02bf269a, 0x02c03578, 0x03ece8b7, 0x02387ef8, 0x01d74357, 0x003c93c6}}, Y: Field{[10]uint32{0x0223631f, 0x014d89c1, 0x0020d53e, 0x011d4520, 0x0116d2b5, 0x00d3d31e, 0x0048bbbb, 0x022d99ec, 0x03ff5544, 0x00191290}}}, + {X: Field{[10]uint32{0x000efd59, 0x0374ef20, 0x0227b923, 0x007480e6, 0x021fd106, 0x0352fa88, 0x0111281e, 0x00a5b87a, 0x03045c22, 0x0024e14c}}, Y: Field{[10]uint32{0x03eb7040, 0x03f9a662, 0x011628c2, 0x0087a7eb, 0x022607da, 0x01332417, 0x0399bbfe, 0x00b4543d, 0x00f600cd, 0x0008a623}}}, + {X: Field{[10]uint32{0x02319743, 0x014c7251, 0x01f0daf1, 0x03b2625f, 0x01b91ff4, 0x039349a1, 0x03b14ee8, 0x013c5894, 0x03053983, 0x003c2431}}, Y: Field{[10]uint32{0x000bd522, 0x0160d04a, 0x02d2abf1, 0x02326bce, 0x0228c59c, 0x014e80ad, 0x0208391f, 0x009c76a2, 0x00851d30, 0x003045c6}}}, + {X: Field{[10]uint32{0x02a78c6e, 0x01b34fbf, 0x038e67fb, 0x0022a401, 0x000df9bb, 0x00aa3abf, 0x00234aeb, 0x03cedd28, 0x00ecab5b, 0x0003a3f2}}, Y: Field{[10]uint32{0x02ddabe5, 0x001eca09, 0x035c29b0, 0x002d2439, 0x01a8397c, 0x018b829d, 0x02fcd713, 0x026edd1b, 0x016534ce, 0x00002c20}}}, + {X: Field{[10]uint32{0x03126785, 0x02835c67, 0x03aa09b0, 0x02eb200c, 0x03c7426d, 0x012bcdf8, 0x003cef69, 0x010f9cc0, 0x00d187cb, 0x00118963}}, Y: Field{[10]uint32{0x01ad4fc4, 0x02b48dd5, 0x006d4601, 0x02fdc20b, 0x0175576e, 0x030da608, 0x00dd82e2, 0x002089d9, 0x01a75f06, 0x00211850}}}, + {X: Field{[10]uint32{0x00a3e430, 0x02fb9ab3, 0x037a1e65, 0x03cd17e6, 0x0394109b, 0x010cd042, 0x01d27c3f, 0x021fbd4a, 0x033bdb38, 0x0039fce2}}, Y: Field{[10]uint32{0x02cd589f, 0x02b0d24a, 0x00f8109f, 0x02deb6f2, 0x00ab1faf, 0x02c1fa2b, 0x02dec0c0, 0x031c0a42, 0x00f15eae, 0x003d4910}}}, + {X: Field{[10]uint32{0x03537aec, 0x02c0e94b, 0x0062eda5, 0x019fdcff, 0x02fa9a01, 0x007d5a76, 0x03d5b750, 0x01e635d7, 0x00331472, 0x000b4a7a}}, Y: Field{[10]uint32{0x012d2be6, 0x025dba5e, 0x00001d18, 0x017d688c, 0x03d9e2f5, 0x00164d80, 0x03c58cfc, 0x02e7ea85, 0x011ab117, 0x0014b4f7}}}, + {X: Field{[10]uint32{0x0091ffb6, 0x025f470e, 0x03c7c8ac, 0x0291be50, 0x00f47609, 0x01d54b76, 0x03b44c9c, 0x029edddf, 0x009cabf7, 0x0028ecbb}}, Y: Field{[10]uint32{0x00fc19de, 0x0272efcf, 0x03417d55, 0x01856c06, 0x024d5280, 0x00a96b59, 0x00933852, 0x00e07d4c, 0x0070f091, 0x001b38e3}}}, + {X: Field{[10]uint32{0x0100f473, 0x03d974cc, 0x03015a21, 0x01896150, 0x026cefe7, 0x02cf46a3, 0x02504dda, 0x0295b039, 0x001e7582, 0x002bf2cf}}, Y: Field{[10]uint32{0x03171af8, 0x029db1a2, 0x004a38e5, 0x021d5ecb, 0x0367edbd, 0x03864c40, 0x02afc618, 0x02126629, 0x039dfbeb, 0x001aebc7}}}, + {X: Field{[10]uint32{0x010e2ac8, 0x00d58976, 0x006eccdd, 0x0129242e, 0x026650f7, 0x0119aa30, 0x022bbea9, 0x02559efd, 0x0212dc89, 0x00222cbc}}, Y: Field{[10]uint32{0x018c30a5, 0x01629934, 0x0208e7e4, 0x010b6652, 0x026ecd6c, 0x0285c8f8, 0x036d4f5d, 0x0054ff5f, 0x017bdef6, 0x001cff5d}}}, + {X: Field{[10]uint32{0x01adef3c, 0x02646f87, 0x000d493d, 0x01157125, 0x03395c59, 0x0369a8a9, 0x01c971d7, 0x00a45994, 0x029f4ca3, 0x0002ff7a}}, Y: Field{[10]uint32{0x01bc20d8, 0x02d93608, 0x00a17578, 0x01947db5, 0x004166bc, 0x02e01df3, 0x000adea5, 0x03da1108, 0x00447ef3, 0x00209d1c}}}, + {X: Field{[10]uint32{0x00973ae5, 0x00d91fb9, 0x0265b521, 0x0298f593, 0x00e8fdf6, 0x01247b3c, 0x012e3869, 0x0175a729, 0x0381aa76, 0x00175172}}, Y: Field{[10]uint32{0x03d019db, 0x03e0ac4b, 0x022bdb17, 0x03f8f2be, 0x00fdab36, 0x0040e9f7, 0x03517e7c, 0x01b5dddc, 0x032b51a7, 0x00292928}}}, + {X: Field{[10]uint32{0x02e7109d, 0x0019d4de, 0x033ae87d, 0x0249174b, 0x036d6fe0, 0x0310f976, 0x034fa531, 0x026652a8, 0x03cee14e, 0x003ce940}}, Y: Field{[10]uint32{0x03ec49e8, 0x0157957c, 0x01785ac5, 0x02e81cc9, 0x03568aa5, 0x006546d8, 0x0322daad, 0x0142d081, 0x00c0a24d, 0x000ac5c5}}}, + {X: Field{[10]uint32{0x00cbeeb5, 0x01ab78e2, 0x012d9b66, 0x014cdf47, 0x02042619, 0x02e39ae2, 0x00c225ea, 0x00bb4915, 0x036d6f81, 0x002530e9}}, Y: Field{[10]uint32{0x03a953e3, 0x0358e87b, 0x0104cbc8, 0x03eb59b8, 0x023d1351, 0x02fc6062, 0x00893b95, 0x019d1b75, 0x02e6aa40, 0x002ee273}}}, + {X: Field{[10]uint32{0x00f4c050, 0x0242323c, 0x02a3cc0c, 0x03446077, 0x01b9a2d3, 0x007f696f, 0x015a6625, 0x00900ce7, 0x02810523, 0x0008f6ff}}, Y: Field{[10]uint32{0x01eae6b2, 0x016e12d3, 0x036794e4, 0x0267502a, 0x00b5c168, 0x01e7b439, 0x00f8385c, 0x0043bd22, 0x0271229f, 0x0032bbce}}}, + {X: Field{[10]uint32{0x00bbf1d2, 0x00a7b1ab, 0x03b88e46, 0x03286d2e, 0x01d2dcbe, 0x015e4d7d, 0x01dc69dc, 0x02186704, 0x03d120ef, 0x000e41f8}}, Y: Field{[10]uint32{0x0015e853, 0x02611185, 0x00055ba2, 0x02f16288, 0x00e6aad1, 0x0324da11, 0x017b0a60, 0x00ae7730, 0x02b7d74e, 0x0010e3e5}}}, + {X: Field{[10]uint32{0x032b7d9c, 0x03c17859, 0x00b710e6, 0x012ccde2, 0x01651c94, 0x0101fd64, 0x02a6a373, 0x0013f602, 0x03193eeb, 0x00030502}}, Y: Field{[10]uint32{0x01e44072, 0x001dee4a, 0x02e641f7, 0x03bd0c34, 0x03899450, 0x001d8ed8, 0x01fef6b7, 0x01150e75, 0x011559e2, 0x002526ff}}}, + {X: Field{[10]uint32{0x032ea56c, 0x02951f83, 0x028d1740, 0x02dac1b8, 0x002563c3, 0x00c3dd79, 0x012fe269, 0x00e72077, 0x005bc96a, 0x0025df3c}}, Y: Field{[10]uint32{0x02a10d52, 0x03039ae6, 0x02dc0e70, 0x01e0daa7, 0x0307e158, 0x01b291a2, 0x0295e234, 0x005930db, 0x023a8508, 0x0000e00b}}}, + {X: Field{[10]uint32{0x00a034e3, 0x009ec836, 0x003761e8, 0x02ce7b8f, 0x02795a7b, 0x039395fd, 0x0151e5a9, 0x0383532b, 0x00d63995, 0x00041a70}}, Y: Field{[10]uint32{0x027fe33b, 0x03065316, 0x028041d2, 0x02b1e23f, 0x0047963a, 0x02aed792, 0x01d89c47, 0x01319560, 0x00879c0e, 0x00386a85}}}, + {X: Field{[10]uint32{0x013e3682, 0x02096cf2, 0x0245bba3, 0x03d4d49e, 0x0142419a, 0x0138a9d5, 0x03ab10c7, 0x010607fc, 0x0280c341, 0x003fde31}}, Y: Field{[10]uint32{0x00d3615e, 0x0128dd89, 0x0256e1fc, 0x01d37cbc, 0x0186c8c5, 0x002cb6fb, 0x032382e2, 0x0243cdda, 0x02dbf053, 0x003badc2}}}, + {X: Field{[10]uint32{0x02bcddc7, 0x01abf661, 0x03d05905, 0x01af570d, 0x002b0cb2, 0x020e29a8, 0x004c3ff5, 0x00f5aa70, 0x03033acd, 0x0017b27a}}, Y: Field{[10]uint32{0x032aff03, 0x0099d25c, 0x01c8b9ae, 0x02d230ea, 0x03e39d92, 0x03651170, 0x000bed1e, 0x0037c05f, 0x03f60eed, 0x0024a8a1}}}, + {X: Field{[10]uint32{0x031b37d1, 0x0363b211, 0x03ee9339, 0x01369f71, 0x00bef0a5, 0x0236f1fa, 0x0267e14d, 0x034d2dfb, 0x02ba792d, 0x003aa881}}, Y: Field{[10]uint32{0x011ee92e, 0x0041f1a3, 0x025e2695, 0x008475e3, 0x0355e00d, 0x01030585, 0x02f2530c, 0x027281ff, 0x025ebe71, 0x00155df9}}}, + {X: Field{[10]uint32{0x00eb3ed7, 0x014abf43, 0x03f54af9, 0x023b4f61, 0x02689ef0, 0x01573be8, 0x036789d4, 0x0004a8f5, 0x02f56034, 0x0009b418}}, Y: Field{[10]uint32{0x01323424, 0x02d60db4, 0x011094e7, 0x02896b3a, 0x01dbe6fa, 0x00347db7, 0x00340c5f, 0x0161de67, 0x01acef6f, 0x0017bfc7}}}, + {X: Field{[10]uint32{0x02602d48, 0x03c89c47, 0x03bd1492, 0x03e70d06, 0x021a2413, 0x0047b6a3, 0x009e449d, 0x02d8a93d, 0x015ae50d, 0x00200350}}, Y: Field{[10]uint32{0x0002eb50, 0x0255fd5f, 0x036fbdc5, 0x0039d580, 0x03d5c8cb, 0x0344b67c, 0x019ec5cf, 0x026d748a, 0x016d05d1, 0x0015a72b}}}, + {X: Field{[10]uint32{0x009a1c90, 0x00f189e7, 0x006bb985, 0x02f83e16, 0x02e1531f, 0x0068859d, 0x03aaca5f, 0x0370665c, 0x0352bc16, 0x001b0068}}, Y: Field{[10]uint32{0x00cc04e7, 0x01cec63e, 0x027654c0, 0x034b5935, 0x01a39a17, 0x0095204e, 0x027226ab, 0x01a83c9d, 0x0342c959, 0x0020cf75}}}, + {X: Field{[10]uint32{0x03742c26, 0x01390c4d, 0x038e80a5, 0x02e3423b, 0x01f0b914, 0x01ce346b, 0x00e7c4d4, 0x03fc3141, 0x0122f1b3, 0x000eb332}}, Y: Field{[10]uint32{0x03cb0ad7, 0x0026b2c0, 0x00b1786a, 0x00620b84, 0x0152a2d1, 0x014aca5e, 0x00dee26c, 0x002cd0c1, 0x008327d6, 0x002aa735}}}, + {X: Field{[10]uint32{0x00f8ec72, 0x01c3fc74, 0x03edf2ec, 0x0307b9ba, 0x02f8d978, 0x03e398d4, 0x0380f753, 0x01cfc828, 0x0072828b, 0x002837d7}}, Y: Field{[10]uint32{0x00ac6670, 0x01ea27e9, 0x0230680d, 0x02dbac3b, 0x02b1327d, 0x01e79c8c, 0x02226893, 0x02f44c79, 0x01bef1e0, 0x002c8c2b}}}, + {X: Field{[10]uint32{0x03b52c73, 0x015ee5cc, 0x005a449d, 0x01c34ffe, 0x02d4bbc9, 0x01521971, 0x03a8dbbd, 0x03b26181, 0x01949776, 0x002757c3}}, Y: Field{[10]uint32{0x00afc1a8, 0x03a83c80, 0x02cf202c, 0x0055f446, 0x01ad7faf, 0x03d834d1, 0x038a056f, 0x00eb7552, 0x03baf489, 0x003fc23b}}}, + {X: Field{[10]uint32{0x01d3d84e, 0x03c8421b, 0x00917fb7, 0x02d699ce, 0x00228f54, 0x022947b2, 0x025b2935, 0x0208bb7a, 0x012d9ea1, 0x0037bd76}}, Y: Field{[10]uint32{0x008b3129, 0x01667b80, 0x0307a479, 0x002b5f00, 0x039d5bc2, 0x000affcd, 0x00d3ad02, 0x03af0c4e, 0x000db94a, 0x0002db1d}}}, + {X: Field{[10]uint32{0x00df33de, 0x010b9961, 0x03832736, 0x03c6e9ba, 0x03643fb0, 0x03d341d7, 0x007136c0, 0x035d38fe, 0x0105cdc8, 0x003ea42c}}, Y: Field{[10]uint32{0x00bba36d, 0x01e77a94, 0x00c273c0, 0x02494989, 0x003a180d, 0x003c3891, 0x029e852f, 0x023ae927, 0x00c373f5, 0x000f9aca}}}, + {X: Field{[10]uint32{0x03d0eb52, 0x02e33468, 0x02349575, 0x02ca5c1a, 0x01ce077c, 0x0353677e, 0x01c84613, 0x01ee4300, 0x0021ff2f, 0x002084ba}}, Y: Field{[10]uint32{0x003185f0, 0x0390ffdc, 0x02b5b8f8, 0x03b4b22b, 0x01d24bb5, 0x00d5018e, 0x0256e8f3, 0x039d5bf6, 0x01db2fa3, 0x00356701}}}, + {X: Field{[10]uint32{0x0061220d, 0x0362c83b, 0x00e49f9c, 0x02dcabed, 0x0124f155, 0x00074579, 0x01a641e1, 0x01c75d2c, 0x00c81d1f, 0x003b8d03}}, Y: Field{[10]uint32{0x02286f37, 0x020ce0ab, 0x01438f00, 0x007bd604, 0x0086f814, 0x02a3a2c1, 0x02fa7964, 0x017f5fc7, 0x033f2535, 0x00245760}}}, + {X: Field{[10]uint32{0x002afee1, 0x009bd951, 0x026b50aa, 0x0025fe0d, 0x02302b50, 0x02dc88f8, 0x00b257fb, 0x00f60dd0, 0x0125dd2e, 0x000b14d5}}, Y: Field{[10]uint32{0x021cf765, 0x01c9c4ed, 0x03947672, 0x01e5fdcf, 0x0292d43a, 0x03ced500, 0x038f9662, 0x02d9a13c, 0x014ef945, 0x00073514}}}, + {X: Field{[10]uint32{0x0267d94d, 0x026b517e, 0x00f2baae, 0x0075ba05, 0x03404b9e, 0x00a97e5d, 0x00a9083a, 0x028a233d, 0x03cf8b57, 0x0037ddd8}}, Y: Field{[10]uint32{0x01580ce2, 0x030ceb2c, 0x0309cb4f, 0x01706a49, 0x01bf0529, 0x00e23ba7, 0x02276bdd, 0x02d23184, 0x033631fd, 0x0013df70}}}, + {X: Field{[10]uint32{0x00dcee60, 0x0049a83b, 0x00da18fd, 0x023d3579, 0x038ff99b, 0x0335b418, 0x0374b928, 0x03c86044, 0x0240d6d0, 0x000d4530}}, Y: Field{[10]uint32{0x0197fca2, 0x00297190, 0x035cee53, 0x02c9c825, 0x02ac17ab, 0x01ddfb46, 0x018421c7, 0x02be00f2, 0x034a1a1b, 0x000a8347}}}, + {X: Field{[10]uint32{0x02e40a27, 0x012f4f1a, 0x0360a0b5, 0x016364d7, 0x00237a1b, 0x02d50755, 0x01de551a, 0x032e0653, 0x01d9e58b, 0x0000f79d}}, Y: Field{[10]uint32{0x01d97c75, 0x02cae349, 0x03ddc455, 0x036bf756, 0x033ec422, 0x01bc940d, 0x03ad8c48, 0x02c1631a, 0x00dbbe2d, 0x0026b685}}}, + {X: Field{[10]uint32{0x01e0420f, 0x0228229b, 0x005ddae2, 0x014bd40b, 0x0290ad3d, 0x0357ac70, 0x00144f81, 0x00d56f17, 0x020b1804, 0x0029ca33}}, Y: Field{[10]uint32{0x03ddad3d, 0x00f40051, 0x004f7ac9, 0x02e7b0cd, 0x0142cce3, 0x0215247f, 0x034893fa, 0x0146833e, 0x00a8f72b, 0x0010e1f3}}}, + {X: Field{[10]uint32{0x0151c39b, 0x00761d15, 0x0032e16c, 0x02aeaa50, 0x011d8234, 0x0140ea05, 0x03b22e02, 0x01130251, 0x028a05b8, 0x003b0f26}}, Y: Field{[10]uint32{0x02bd7fa6, 0x01790423, 0x03043382, 0x033ba0da, 0x00c8ac51, 0x013b7eba, 0x00845ca4, 0x03ea4d98, 0x00ef45f0, 0x001ec22f}}}, + {X: Field{[10]uint32{0x024761db, 0x023b1568, 0x02e9326a, 0x0333a61c, 0x03e619e7, 0x005d4cb3, 0x02b7e6c6, 0x016b2cee, 0x01562494, 0x002c05cf}}, Y: Field{[10]uint32{0x01f1b381, 0x0246b8c1, 0x0310d445, 0x03cc4c83, 0x0172a81d, 0x026372c4, 0x03eff121, 0x001d8743, 0x035f3e9a, 0x001e349e}}}, + {X: Field{[10]uint32{0x00cd73f6, 0x03658010, 0x023a7970, 0x0047e565, 0x034e04bd, 0x034e92e3, 0x03c3890e, 0x03722e5d, 0x03f3cd43, 0x00367ace}}, Y: Field{[10]uint32{0x03b23044, 0x016cbf58, 0x01c41e7f, 0x039326da, 0x000510b9, 0x02314012, 0x01db7189, 0x020228fc, 0x035cc42e, 0x0026065a}}}, + {X: Field{[10]uint32{0x01a84e74, 0x01530219, 0x03f107ca, 0x02c07009, 0x0029bbf1, 0x007e4ace, 0x02026062, 0x008c2b1d, 0x01af8a40, 0x003ef694}}, Y: Field{[10]uint32{0x00d6ccf5, 0x00944eff, 0x03c71e81, 0x02e8eef9, 0x038fd427, 0x024043f2, 0x00729e4e, 0x00ef5532, 0x0194aa45, 0x001920ce}}}, + {X: Field{[10]uint32{0x02583f9d, 0x03e1cbee, 0x02cf808a, 0x0317c14c, 0x03472b14, 0x00498beb, 0x01646616, 0x0065983d, 0x01a751be, 0x0002b92e}}, Y: Field{[10]uint32{0x0295ee5e, 0x019cb925, 0x02281f4b, 0x01e3693e, 0x03e2bd40, 0x02b4ead7, 0x00c6eed9, 0x01f969bc, 0x008baa9d, 0x0022cb09}}}, + {X: Field{[10]uint32{0x00cf6ff5, 0x02db8313, 0x036dda40, 0x0380c7b7, 0x00f29764, 0x0118a117, 0x028c6a2e, 0x02009859, 0x01520608, 0x00160100}}, Y: Field{[10]uint32{0x03329485, 0x0069c076, 0x030cd5fb, 0x023ffb41, 0x00a2e5f8, 0x00e65db6, 0x032f9a4e, 0x03013681, 0x02e64a83, 0x0034be5a}}}, + {X: Field{[10]uint32{0x007e029e, 0x029cc993, 0x0203b57c, 0x0098711a, 0x03cf477e, 0x02bf3d1f, 0x01abbd9f, 0x003e058e, 0x02865738, 0x00130a35}}, Y: Field{[10]uint32{0x00ed8a70, 0x02c09383, 0x0202259f, 0x01045436, 0x023122a9, 0x02b3eb05, 0x02a67e80, 0x01785015, 0x029c4fa7, 0x001a52e2}}}, + {X: Field{[10]uint32{0x0325c9a4, 0x016a4b3f, 0x026b9046, 0x01ddc5e6, 0x016984fc, 0x03601be0, 0x03b51a73, 0x01561fc8, 0x02b39e00, 0x00378816}}, Y: Field{[10]uint32{0x01273d83, 0x0170c9f1, 0x011355af, 0x010a6bb2, 0x0048f68e, 0x03ab304b, 0x002cf1f0, 0x03070b6d, 0x025e12ef, 0x003b610c}}}, + {X: Field{[10]uint32{0x014273f4, 0x031ada56, 0x025f1b3e, 0x0225b48a, 0x01b968f5, 0x0087995c, 0x0258dd57, 0x02c29d2d, 0x00680c2c, 0x0017aa0a}}, Y: Field{[10]uint32{0x004a9499, 0x008df48e, 0x038ad6e2, 0x00e40794, 0x00e18285, 0x00dbdb16, 0x02decce6, 0x0193e04e, 0x02b08db2, 0x00223443}}}, + {X: Field{[10]uint32{0x024998ba, 0x00b40d8c, 0x03c9c37f, 0x011b5ee6, 0x03c3b0dd, 0x038f6d39, 0x00bd98a3, 0x01d05908, 0x03c86449, 0x0006273d}}, Y: Field{[10]uint32{0x02daa083, 0x00960087, 0x03da204d, 0x0235c8fd, 0x01742211, 0x01f7581b, 0x0201b1cf, 0x03fca0d9, 0x01ced46d, 0x002ecd02}}}, + {X: Field{[10]uint32{0x0082789f, 0x014dbe6f, 0x0214d3cf, 0x035e3b97, 0x013c3c41, 0x02040091, 0x00680265, 0x00350c22, 0x018738f5, 0x001c285c}}, Y: Field{[10]uint32{0x0027c1d6, 0x0118b5ef, 0x022962b9, 0x0116a7cd, 0x02101dc4, 0x023c2747, 0x03338701, 0x014df907, 0x0120e112, 0x00057254}}}, + {X: Field{[10]uint32{0x03b3a368, 0x011ae6c3, 0x03865cff, 0x02a91a0c, 0x018e4271, 0x00c04421, 0x0020eedf, 0x036db823, 0x00ff622a, 0x0015e2b0}}, Y: Field{[10]uint32{0x03d7f851, 0x007296ee, 0x0215f1f0, 0x03d4759f, 0x026b0cea, 0x03542062, 0x01b2f7d9, 0x005cb4ae, 0x01ddf5f3, 0x003dc468}}}, + {X: Field{[10]uint32{0x01840071, 0x02c178a3, 0x01aea3e3, 0x01dfe9b3, 0x035887f1, 0x0373a296, 0x00738bad, 0x029d1f59, 0x0003476a, 0x003727ef}}, Y: Field{[10]uint32{0x01eee1b4, 0x03c293a2, 0x03ab9515, 0x01d33d39, 0x008bd267, 0x00a53954, 0x0194a19d, 0x037497e3, 0x012c8087, 0x00303d9d}}}, + {X: Field{[10]uint32{0x03b0294d, 0x02548551, 0x0178fe02, 0x0371165b, 0x014bb817, 0x00f5cc54, 0x004dec0b, 0x03357cba, 0x00ffa348, 0x0025d26b}}, Y: Field{[10]uint32{0x0381a1c6, 0x03a13815, 0x0116723d, 0x03265140, 0x03d89856, 0x0039f480, 0x02ec20be, 0x0120436b, 0x01ea35e5, 0x0037d99f}}}, + {X: Field{[10]uint32{0x02657d85, 0x034d0f8c, 0x032e8e92, 0x02635ac4, 0x00ae8e7a, 0x02a0551e, 0x0359f21f, 0x01cc370c, 0x01cf2fd2, 0x0038e7ef}}, Y: Field{[10]uint32{0x01b5e01c, 0x001ac2f9, 0x0028320a, 0x01e230c7, 0x02624415, 0x01922168, 0x026ae3e3, 0x021659da, 0x008170a7, 0x002ebfa6}}}, + {X: Field{[10]uint32{0x01402c09, 0x02ae2fe4, 0x02b89e0f, 0x00a83a8c, 0x02e04b69, 0x03244d45, 0x000bda4d, 0x00dc4830, 0x014e27f1, 0x00180240}}, Y: Field{[10]uint32{0x02359f6b, 0x01826750, 0x032e5708, 0x02a1b3b0, 0x01eb4006, 0x0376e998, 0x0396f588, 0x00734b2d, 0x0094f6bd, 0x000d2442}}}, + {X: Field{[10]uint32{0x03f2f773, 0x025223a1, 0x02162d41, 0x00b50d88, 0x03b644c9, 0x01dacfbb, 0x039bec4f, 0x011b60be, 0x0247d02e, 0x002fc13c}}, Y: Field{[10]uint32{0x002172f6, 0x0073af1f, 0x0284d32b, 0x016f07b5, 0x00302e12, 0x019d38d5, 0x019ab004, 0x00b9303c, 0x00e8bb3c, 0x003591bd}}}, + {X: Field{[10]uint32{0x01e5e3c3, 0x0137ea8c, 0x01acff5b, 0x02af0c3a, 0x013e5468, 0x00571b66, 0x0071efd9, 0x02cd4e16, 0x03ecb122, 0x0025827d}}, Y: Field{[10]uint32{0x008f9a27, 0x02d43766, 0x015925d6, 0x03e7bae5, 0x01ebb4d9, 0x0138ab62, 0x0178ac77, 0x03c2e1c5, 0x012eb933, 0x00041af1}}}, + {X: Field{[10]uint32{0x03ab9abe, 0x00ab5882, 0x033668da, 0x007537b1, 0x03f5ae58, 0x032f7d5b, 0x03440fb5, 0x02f89681, 0x003a0e1e, 0x002da433}}, Y: Field{[10]uint32{0x0049dbd1, 0x019aa5f8, 0x0135fb96, 0x03d89269, 0x0335e5f9, 0x02db0595, 0x01a96032, 0x00f76cb3, 0x0023fd3a, 0x0020f340}}}, + {X: Field{[10]uint32{0x01d326d4, 0x00025de4, 0x0338d6cd, 0x0120e56f, 0x002c9479, 0x02a42636, 0x022bc114, 0x01dd106a, 0x008ced50, 0x001cb694}}, Y: Field{[10]uint32{0x03668457, 0x03ed19cf, 0x03e095ea, 0x036ee045, 0x02e5d743, 0x03fb248b, 0x01780364, 0x03a8ac3a, 0x02933433, 0x000596ea}}}, + {X: Field{[10]uint32{0x01851c37, 0x00726dea, 0x0101729b, 0x006e6174, 0x01113320, 0x004969cb, 0x014322f5, 0x00c024a5, 0x016e540a, 0x00383f44}}, Y: Field{[10]uint32{0x01b88a92, 0x024117b9, 0x017ac850, 0x01addde6, 0x01a516a0, 0x00c34c55, 0x01e899d6, 0x01c1f952, 0x027648aa, 0x0031af1c}}}, + {X: Field{[10]uint32{0x00c10af1, 0x00ada0a5, 0x01c13abe, 0x007341a5, 0x030297f0, 0x0220fe76, 0x00d6389e, 0x03904bb8, 0x03ea85d4, 0x002752e2}}, Y: Field{[10]uint32{0x03556181, 0x014962a5, 0x038d38a9, 0x02ef9a28, 0x035bb66e, 0x02a2125c, 0x02e62fd6, 0x0020cb66, 0x00d73f7c, 0x001788a0}}}, + {X: Field{[10]uint32{0x008e08ff, 0x01e8b50e, 0x02d25505, 0x01547085, 0x01069f12, 0x0357acc7, 0x0056123c, 0x01b81377, 0x0395aa4b, 0x003bbe10}}, Y: Field{[10]uint32{0x022d2376, 0x035ad875, 0x039280b1, 0x01b56658, 0x0087797e, 0x00c5e712, 0x018b26c7, 0x010d9103, 0x02a434e1, 0x00114262}}}, + {X: Field{[10]uint32{0x010d7654, 0x02845972, 0x00de739a, 0x02bdb983, 0x03b4652d, 0x01dbbd09, 0x034371e0, 0x02392184, 0x007d56e3, 0x0019bf97}}, Y: Field{[10]uint32{0x011a2fba, 0x022a1370, 0x02582a10, 0x021259b2, 0x0196d4c3, 0x032edb13, 0x000ad433, 0x0324edf9, 0x026bb6ed, 0x000b5ca4}}}, + {X: Field{[10]uint32{0x008ea2ed, 0x031b7cb0, 0x027afdc2, 0x030a4e7c, 0x0082f9e1, 0x02a60f26, 0x015a304a, 0x032bb331, 0x01cc1818, 0x00144d7e}}, Y: Field{[10]uint32{0x003f22d6, 0x028d8878, 0x0295427c, 0x03851e61, 0x002619b5, 0x0056b86d, 0x00baf4e1, 0x005d413e, 0x01d27dfe, 0x0016949b}}}, + {X: Field{[10]uint32{0x026487ca, 0x03e6d88f, 0x0229c3fd, 0x022b386b, 0x0182e331, 0x008a8f8a, 0x03fa2bcc, 0x012a700b, 0x0089af7f, 0x00068df0}}, Y: Field{[10]uint32{0x012464a5, 0x0157fc0f, 0x02c183c9, 0x0048d74b, 0x03509b03, 0x01cd9cb3, 0x02b33d23, 0x008c2ea5, 0x00338522, 0x0034e270}}}, + {X: Field{[10]uint32{0x03a248a0, 0x00461211, 0x01576e4a, 0x00888bec, 0x01ed1edb, 0x02405be5, 0x03c68dfc, 0x02bd0244, 0x01ff15da, 0x00127de9}}, Y: Field{[10]uint32{0x01abd8fd, 0x0231e9ee, 0x03f611a1, 0x02086975, 0x00d5ebec, 0x029aefbd, 0x0394246f, 0x01ef27a5, 0x03013d63, 0x003e6d56}}}, + {X: Field{[10]uint32{0x02641ed7, 0x02abe207, 0x03130253, 0x00d6b0eb, 0x003b87f8, 0x01bac11c, 0x03f0f1e2, 0x03e0e481, 0x005e5d9e, 0x002091e1}}, Y: Field{[10]uint32{0x013c5f1e, 0x01102a79, 0x011de3e2, 0x023c8fce, 0x03b4409c, 0x032d0ab5, 0x01b19474, 0x026139fc, 0x010c1a23, 0x0015df5e}}}, + {X: Field{[10]uint32{0x010e0749, 0x006164f6, 0x024fb8f1, 0x00f897ba, 0x0257b782, 0x00214fa3, 0x0292ef61, 0x000906b3, 0x004ecd16, 0x0020a566}}, Y: Field{[10]uint32{0x00ac8353, 0x0236f230, 0x003c14c3, 0x0259e032, 0x022c5dac, 0x01ec70e2, 0x02450e76, 0x0357dce6, 0x01a66798, 0x0018d4c8}}}, + {X: Field{[10]uint32{0x01d75461, 0x03a7200f, 0x015377b2, 0x004ac4d0, 0x01fb5db4, 0x01c31a2d, 0x00ba34e7, 0x03d7fef8, 0x03f6d8fc, 0x003530ca}}, Y: Field{[10]uint32{0x0085f93d, 0x014fd991, 0x03353741, 0x01459b44, 0x01a1a71e, 0x03b69c2e, 0x004272b4, 0x0116ccb1, 0x0202e238, 0x002cf1cd}}}, + {X: Field{[10]uint32{0x00c897ff, 0x00fdda5b, 0x00d849fd, 0x0329a20b, 0x023babe7, 0x02d49a8c, 0x00703af6, 0x01a39a91, 0x032d04a9, 0x00068238}}, Y: Field{[10]uint32{0x03ad4141, 0x02caa3ab, 0x00b399a6, 0x0025c0d1, 0x013fdc82, 0x00ac52a3, 0x002e19be, 0x03b52897, 0x00bdb77b, 0x0011bb66}}}, + {X: Field{[10]uint32{0x014f4af7, 0x03f70d0d, 0x01e82e7c, 0x03bb3927, 0x036b40e1, 0x02a325dd, 0x0305965d, 0x00fc1012, 0x020e9672, 0x0021566f}}, Y: Field{[10]uint32{0x01333ef6, 0x000f7524, 0x02dc05af, 0x037aae90, 0x02ba4db6, 0x0374241a, 0x03f049b2, 0x008344b0, 0x0388854e, 0x0018f892}}}, + {X: Field{[10]uint32{0x01e211e8, 0x022f7181, 0x008c55e2, 0x0237a333, 0x02edd0f0, 0x03cbbca9, 0x01c0ee30, 0x011e2a12, 0x0223fc7a, 0x0038382c}}, Y: Field{[10]uint32{0x03ca60fc, 0x03580de7, 0x00d1a511, 0x017b44a2, 0x0206609a, 0x016e211e, 0x02d38e12, 0x03eb0481, 0x032c3aaf, 0x00328e20}}}, + {X: Field{[10]uint32{0x00e40a19, 0x014e739a, 0x034e2034, 0x009159e6, 0x00265c34, 0x0245d60b, 0x0001eaa5, 0x034941d6, 0x02982d8e, 0x00288def}}, Y: Field{[10]uint32{0x02231318, 0x0260a956, 0x0087cf48, 0x00ca400f, 0x00dc1bfc, 0x0009b59a, 0x00d5de47, 0x00de0115, 0x0227976a, 0x0003d334}}}, + {X: Field{[10]uint32{0x0205ccf2, 0x03e6d804, 0x03ef2474, 0x035ad0d9, 0x005edbd0, 0x0285bcaf, 0x03fe7705, 0x02341fc0, 0x00821eb0, 0x000a2a12}}, Y: Field{[10]uint32{0x0056a17c, 0x02d7f0fe, 0x02301eec, 0x02f7c03e, 0x01162551, 0x00748f6a, 0x00526b17, 0x01d8a2e8, 0x03e9e7d7, 0x002419f4}}}, + {X: Field{[10]uint32{0x00c1d5e8, 0x01a6b726, 0x01d16f4c, 0x03b84f56, 0x03cc83e2, 0x02083796, 0x01b8fdc3, 0x01ad74c9, 0x00d542bd, 0x00050bfa}}, Y: Field{[10]uint32{0x0075b150, 0x00c42877, 0x004539c8, 0x00186fe7, 0x001b66d1, 0x0235fe98, 0x01d14213, 0x00cee556, 0x02780325, 0x000a5cfc}}}, + {X: Field{[10]uint32{0x00ad87d2, 0x01ec04a6, 0x036b99c9, 0x03edc03e, 0x008f3d5f, 0x006d2e4a, 0x01bb00a1, 0x01927406, 0x011c5d20, 0x0016ced8}}, Y: Field{[10]uint32{0x02519182, 0x032d62bc, 0x0058f8eb, 0x021d688b, 0x00192ead, 0x03b5c2ed, 0x03a76219, 0x00384b37, 0x01c80cde, 0x00212416}}}, + {X: Field{[10]uint32{0x00beb8af, 0x00b1f394, 0x00f6b019, 0x018e5153, 0x012edbdc, 0x03cd7dbd, 0x01f74c35, 0x00168fd8, 0x02495d49, 0x00092288}}, Y: Field{[10]uint32{0x03fd4c83, 0x00dab1ee, 0x035c3b11, 0x00fa6e26, 0x0161eaf7, 0x02219e87, 0x0197b243, 0x03042073, 0x03ffb707, 0x002d69bc}}}, + {X: Field{[10]uint32{0x03ff075c, 0x00e134f6, 0x025d2875, 0x024c0b4e, 0x0231ea20, 0x008a408f, 0x011fa99a, 0x0143a753, 0x022a292b, 0x002291d2}}, Y: Field{[10]uint32{0x03804dd9, 0x035ad97b, 0x01dc8721, 0x01174c35, 0x0245b5f0, 0x01b3e3f4, 0x00392891, 0x0106c797, 0x005c7d53, 0x001dd14a}}}, + {X: Field{[10]uint32{0x0015ffec, 0x023444d4, 0x03b228ca, 0x03492356, 0x03826d10, 0x0198dcc4, 0x00be4ea8, 0x010ba99f, 0x02557fc0, 0x000fe804}}, Y: Field{[10]uint32{0x02a937b3, 0x01d7c9c9, 0x00b25e3f, 0x01b28c8a, 0x00162d43, 0x02312386, 0x03dca5a5, 0x012e3bb2, 0x0325f59b, 0x00042e74}}}, + {X: Field{[10]uint32{0x03d65648, 0x03086567, 0x028c046a, 0x017f22a0, 0x036b778d, 0x02bc126c, 0x008f0071, 0x03c69376, 0x000e7b94, 0x002dded7}}, Y: Field{[10]uint32{0x02aeccc5, 0x032c55fe, 0x0021ad54, 0x00ba77db, 0x01e2b65d, 0x01bb7582, 0x01d57222, 0x02efaa32, 0x03c06722, 0x000c491a}}}, + {X: Field{[10]uint32{0x0135b44a, 0x03107fe1, 0x018e08f2, 0x01bb5747, 0x00567184, 0x026f52ed, 0x02ccad78, 0x00ae5db0, 0x008267e8, 0x00098d7d}}, Y: Field{[10]uint32{0x032b8def, 0x01b569e9, 0x0234dafb, 0x02702d4c, 0x010d2ce3, 0x01edcd4f, 0x03f9e4d4, 0x0247ed99, 0x004e9560, 0x001fb720}}}, + {X: Field{[10]uint32{0x021b474d, 0x0382198d, 0x032384a4, 0x0368635d, 0x03ed0012, 0x0347a8da, 0x036f39b6, 0x014b271a, 0x012dae09, 0x0008c1ad}}, Y: Field{[10]uint32{0x025486c0, 0x02d5b3cc, 0x01221582, 0x01caf348, 0x00bd7674, 0x00b3bf3d, 0x023688bb, 0x023dae69, 0x00b88d7b, 0x0010e094}}}, + {X: Field{[10]uint32{0x01f74b4c, 0x03625eea, 0x0016e248, 0x03baa300, 0x03aa5604, 0x03568747, 0x0186f9ee, 0x020a123d, 0x02b80dde, 0x0032aa19}}, Y: Field{[10]uint32{0x0009c341, 0x012957f7, 0x038f2995, 0x029f563e, 0x00e33746, 0x02016909, 0x02834ceb, 0x01e3115c, 0x0140349f, 0x000a063c}}}, + {X: Field{[10]uint32{0x00bb1641, 0x031c3fa2, 0x037cbb74, 0x01eec949, 0x03fb5e57, 0x027007b4, 0x01e9cc42, 0x00f5417d, 0x035aa079, 0x0020637b}}, Y: Field{[10]uint32{0x024f276d, 0x02cfb8bb, 0x0045fbdd, 0x02d24e85, 0x01f48ea2, 0x0258d9f4, 0x022d54d7, 0x0040c603, 0x0280f762, 0x0036a7bb}}}, + {X: Field{[10]uint32{0x007bf736, 0x00b7e491, 0x01bf08b1, 0x030d68a5, 0x03c36e11, 0x02f2b16e, 0x0364ed01, 0x0104bf35, 0x01fa568d, 0x000b18b3}}, Y: Field{[10]uint32{0x02c31979, 0x0301468f, 0x025a8f82, 0x02fc654c, 0x00ee73ea, 0x02ae9906, 0x01ef9859, 0x01c189c1, 0x00255811, 0x003a2e38}}}, + {X: Field{[10]uint32{0x01f04adb, 0x033a01f8, 0x0341659b, 0x006adbac, 0x014e477f, 0x0145f412, 0x022f7cd0, 0x01ba3352, 0x00d99db0, 0x000a2ad5}}, Y: Field{[10]uint32{0x0094541c, 0x028a799d, 0x03b0872a, 0x00107b2f, 0x004fb003, 0x03cf9f61, 0x0256276b, 0x02580af9, 0x0319a5cb, 0x00264ed4}}}, + {X: Field{[10]uint32{0x012b6061, 0x01205314, 0x03bb63ea, 0x03d7c57a, 0x01d6c2ab, 0x008ea090, 0x034eca42, 0x02903152, 0x00162254, 0x00124f9f}}, Y: Field{[10]uint32{0x00eed628, 0x03e02e8f, 0x02c897de, 0x01efc25f, 0x025fcf81, 0x02ba3c87, 0x0236b597, 0x027533fb, 0x037b588d, 0x00158e1f}}}, + {X: Field{[10]uint32{0x01c51d4f, 0x034818ae, 0x01bce902, 0x023888b2, 0x018922a6, 0x00b174e2, 0x02118dda, 0x0245953f, 0x01bee743, 0x0019cb84}}, Y: Field{[10]uint32{0x03dc36e1, 0x000b70c8, 0x03c5fc51, 0x03eaff39, 0x030db6bb, 0x017a758a, 0x03cfbca4, 0x00aa76d2, 0x034a0238, 0x000d5544}}}, + {X: Field{[10]uint32{0x02da550a, 0x022cb0e3, 0x02701003, 0x00b0a567, 0x0027524b, 0x0167e397, 0x0286c06b, 0x01a22637, 0x036ee3b8, 0x0023e343}}, Y: Field{[10]uint32{0x01212f34, 0x005c40d2, 0x01fd45d4, 0x01b09afc, 0x03f36429, 0x021ef2ce, 0x000fed66, 0x02af1665, 0x02819e27, 0x0039f7bc}}}, + {X: Field{[10]uint32{0x00b293e3, 0x004fed5e, 0x01495e82, 0x00084817, 0x03118f28, 0x005e7cc2, 0x03cf4c79, 0x03c295e5, 0x03834a11, 0x0036a315}}, Y: Field{[10]uint32{0x01c35f91, 0x00077ce2, 0x00d28a2c, 0x0386d8ce, 0x007c7a0c, 0x02d77146, 0x02bb1c3a, 0x00e5d421, 0x035c6f66, 0x001bb3f8}}}, + {X: Field{[10]uint32{0x01681955, 0x01fea852, 0x00ef4265, 0x02ce0f88, 0x00fbce09, 0x02a66e83, 0x03ec2d6f, 0x0197fcfb, 0x00f53b19, 0x001254f8}}, Y: Field{[10]uint32{0x035541c6, 0x026d5065, 0x00a39fc0, 0x025c6343, 0x023c28fa, 0x01e601d9, 0x00683240, 0x00d6c8f9, 0x038d9d16, 0x00308431}}}, + {X: Field{[10]uint32{0x0375f293, 0x0108108d, 0x038db6c7, 0x03205b68, 0x025cd3e0, 0x03a442f5, 0x021f7fdb, 0x038786f8, 0x01af48a0, 0x0015247f}}, Y: Field{[10]uint32{0x007ffae7, 0x013b34bf, 0x0243e3d3, 0x02580c61, 0x039c82de, 0x02d47d3c, 0x03e9b299, 0x014ce28e, 0x02885d1c, 0x001949cd}}}, + {X: Field{[10]uint32{0x03c168d1, 0x03b26d6a, 0x007f0af3, 0x00a50f24, 0x020b0a85, 0x03c5f46d, 0x01838858, 0x018ee7ed, 0x03a80423, 0x002e712b}}, Y: Field{[10]uint32{0x03550d9a, 0x03f85592, 0x0178e514, 0x006c1b50, 0x01e24d51, 0x0329f635, 0x0013aa1e, 0x03afb574, 0x006b1b75, 0x003af4c4}}}, + {X: Field{[10]uint32{0x02d2bd62, 0x00dda0e4, 0x02386242, 0x01cceaf2, 0x01d6802e, 0x02ae0275, 0x039826de, 0x011e86d7, 0x036c4448, 0x00246368}}, Y: Field{[10]uint32{0x0253e218, 0x03c77722, 0x02eca0ab, 0x01b9859b, 0x02889d5e, 0x02ce2627, 0x0214113a, 0x021f9857, 0x03afd7cc, 0x001b988d}}}, + {X: Field{[10]uint32{0x01d3392a, 0x010b8dc0, 0x02c93a2e, 0x00bd15ca, 0x00748eb4, 0x026dd0f3, 0x000240e5, 0x01452820, 0x0194da1f, 0x001ddf4a}}, Y: Field{[10]uint32{0x029680c6, 0x0374e8e2, 0x038645e6, 0x016a7487, 0x039d9250, 0x01387493, 0x02b96f41, 0x00c654b2, 0x03d7e9eb, 0x00001864}}}, + {X: Field{[10]uint32{0x0323bf3d, 0x01fc8c95, 0x0154c4d1, 0x0140d3be, 0x013988c6, 0x03c93bd5, 0x03b8b3ea, 0x03171789, 0x02a09a08, 0x0004239b}}, Y: Field{[10]uint32{0x0013b2eb, 0x03786fff, 0x01be288f, 0x01dba093, 0x02b8a0dd, 0x020464de, 0x0314ebff, 0x01aed1f0, 0x034b86db, 0x0006a2e5}}}, + {X: Field{[10]uint32{0x016bf185, 0x02b15291, 0x02839b5d, 0x03d129a0, 0x013c2dce, 0x037ab87f, 0x018a4868, 0x01352446, 0x02db65a5, 0x000db676}}, Y: Field{[10]uint32{0x0147bbf7, 0x014092c8, 0x00d8d078, 0x03e0d1f7, 0x011edd9b, 0x0196fbc6, 0x02ec3065, 0x01761897, 0x0356d93b, 0x00097a10}}}, + {X: Field{[10]uint32{0x02531fa7, 0x039c74d9, 0x02fe3ab2, 0x01508ca4, 0x02aab896, 0x0009c9b3, 0x01d8a9e3, 0x039dd9ca, 0x02b143ec, 0x000f83ae}}, Y: Field{[10]uint32{0x018d41cd, 0x00e0f665, 0x03d5c691, 0x0384f66a, 0x008e38ea, 0x03ec12cd, 0x008f32b2, 0x0188da25, 0x0208556d, 0x001b9ec9}}}, + {X: Field{[10]uint32{0x00fa3728, 0x02f6d706, 0x034832ba, 0x0108055f, 0x03ab08ab, 0x004fba6a, 0x01e9521a, 0x03cc6a87, 0x036af315, 0x00248f71}}, Y: Field{[10]uint32{0x02d3ae47, 0x03b81f03, 0x0003ef6b, 0x02158cc4, 0x017facf6, 0x03627992, 0x001bfca6, 0x0215ecc5, 0x03b67439, 0x001ea3c5}}}, + {X: Field{[10]uint32{0x016a6618, 0x0313a80f, 0x02c6de85, 0x02a4deea, 0x036bee02, 0x00738b85, 0x029cb815, 0x03ab8d33, 0x033202df, 0x003e1fff}}, Y: Field{[10]uint32{0x005a03e0, 0x01d84856, 0x00e13c71, 0x0330b879, 0x027c14a4, 0x000f36ff, 0x03ace256, 0x01b828d5, 0x0037aa72, 0x001d3924}}}, + {X: Field{[10]uint32{0x018881ed, 0x00fe7040, 0x008200e3, 0x03fc1d5a, 0x01e00b5a, 0x014e7dfa, 0x01ec106b, 0x01a68047, 0x025ddd7f, 0x0004e201}}, Y: Field{[10]uint32{0x0113408e, 0x00c8c5d3, 0x0332c92b, 0x00c88ff9, 0x0065d1a9, 0x02ad090b, 0x02f72a55, 0x01877508, 0x018f1406, 0x002b2ac7}}}, + {X: Field{[10]uint32{0x004b6941, 0x026d88eb, 0x0201e59e, 0x00d2b314, 0x003d685b, 0x028dd46e, 0x03315427, 0x01a8220d, 0x031ea99b, 0x003951da}}, Y: Field{[10]uint32{0x033b4e21, 0x022cba57, 0x0177bb41, 0x019cf321, 0x00bc86dd, 0x02a3e9d5, 0x03c794ca, 0x01e568c8, 0x02f1c4dd, 0x0015f56c}}}, + {X: Field{[10]uint32{0x01cd1f15, 0x011f2c05, 0x0109c3dd, 0x02053b5e, 0x0290c149, 0x03261063, 0x0229d894, 0x03afa930, 0x0360f1e8, 0x003e4e3f}}, Y: Field{[10]uint32{0x02bb13e1, 0x0140c63b, 0x028214da, 0x0316dbb5, 0x02037fe2, 0x01cafef5, 0x0176e293, 0x03191a81, 0x02121a0c, 0x0035c5c8}}}, + {X: Field{[10]uint32{0x00a30aa3, 0x0168ef66, 0x038ad8ad, 0x013e8221, 0x01180b49, 0x02153e6f, 0x015544d5, 0x0144205e, 0x00107c4a, 0x002cc6f5}}, Y: Field{[10]uint32{0x00519e82, 0x01bd7014, 0x031c18fb, 0x03c384ac, 0x03d33828, 0x0001faac, 0x0141affa, 0x0225897a, 0x00976bd5, 0x00250984}}}, + {X: Field{[10]uint32{0x00c1cb2f, 0x011f40fd, 0x03af7b44, 0x02495768, 0x0333abd6, 0x0269b1b4, 0x02df141b, 0x00340468, 0x03ba8321, 0x002cfb61}}, Y: Field{[10]uint32{0x01d632b3, 0x02452a93, 0x0347abe0, 0x006cd1f9, 0x02b90be7, 0x018d0799, 0x030273cb, 0x015f86a5, 0x037929c7, 0x00252774}}}, + {X: Field{[10]uint32{0x01221e17, 0x03b85b4c, 0x03f46668, 0x0038e2e1, 0x0089a57c, 0x00c6f282, 0x0395e787, 0x0243612e, 0x02401ea7, 0x001839b0}}, Y: Field{[10]uint32{0x029465c2, 0x02f451b2, 0x0198cc03, 0x00110143, 0x00367387, 0x015c7abc, 0x01c800a0, 0x00263ca9, 0x0335c722, 0x003c91ef}}}, + {X: Field{[10]uint32{0x03750a80, 0x02bebc70, 0x03b87994, 0x01abdd30, 0x01eaf3e1, 0x01c4f35c, 0x01d8d370, 0x03411f9f, 0x02b04cc8, 0x000aba01}}, Y: Field{[10]uint32{0x02e2e954, 0x03793aec, 0x0135ae38, 0x028906a8, 0x026facf6, 0x0017283b, 0x007fafe6, 0x01c6d46a, 0x00acb297, 0x002a365e}}}, + {X: Field{[10]uint32{0x01bb5c47, 0x0109308a, 0x0343958a, 0x0218dde7, 0x01d23843, 0x007dbcea, 0x020bb155, 0x00b4a79e, 0x00a4bbba, 0x0026bc5e}}, Y: Field{[10]uint32{0x0279abd3, 0x0006886b, 0x03259781, 0x02eab737, 0x014052a4, 0x00beecf4, 0x007ac857, 0x02215e92, 0x03baa023, 0x003040c7}}}, + {X: Field{[10]uint32{0x0008f523, 0x005b6658, 0x00b2c3a1, 0x00c4cc3b, 0x00fd78a5, 0x027a2894, 0x03da097c, 0x009ebcb9, 0x0321e9cb, 0x002775a9}}, Y: Field{[10]uint32{0x03f36080, 0x03274ff9, 0x0217357d, 0x0177d3a0, 0x03fc4e97, 0x02f195e1, 0x012adb14, 0x0027251c, 0x037d6473, 0x0039a0de}}}, + {X: Field{[10]uint32{0x01e91c52, 0x006876a9, 0x03f0f0e3, 0x02da68a2, 0x03fcb717, 0x0113beed, 0x03e3f1de, 0x028794ec, 0x02bed7a1, 0x0033d7c5}}, Y: Field{[10]uint32{0x00487497, 0x00a0d2b1, 0x014b1485, 0x003629a7, 0x00b0c80a, 0x0264833d, 0x03912c99, 0x0081ef18, 0x03d54d87, 0x0025527a}}}, + {X: Field{[10]uint32{0x03a64722, 0x03a417b7, 0x001afd45, 0x03ece880, 0x01de577c, 0x014a8052, 0x02466a3c, 0x015341e0, 0x00908109, 0x00319e52}}, Y: Field{[10]uint32{0x035ca468, 0x0091837d, 0x01187fcc, 0x00946f9a, 0x018621b6, 0x03209e0a, 0x00a5fbd5, 0x0100c6ff, 0x0351deb6, 0x001293f7}}}, + {X: Field{[10]uint32{0x00599713, 0x0354904c, 0x023e4442, 0x0083f869, 0x02b03b49, 0x010501aa, 0x019c1ea0, 0x0383fc59, 0x03cbbee9, 0x002897ff}}, Y: Field{[10]uint32{0x0341486a, 0x01bc912f, 0x007e2123, 0x024537a6, 0x0240fab7, 0x02dca86e, 0x03fc28af, 0x004626b0, 0x02065a82, 0x0005dae7}}}, + {X: Field{[10]uint32{0x00c5bf71, 0x0125dd38, 0x025ecdca, 0x01ab2ba7, 0x01128cab, 0x009238ca, 0x02cfafc7, 0x0248ec5a, 0x0322fd5d, 0x00181e69}}, Y: Field{[10]uint32{0x018c4bcc, 0x03debaf4, 0x00c45df0, 0x024af57b, 0x02023f52, 0x000cdfbf, 0x036f1d91, 0x01691713, 0x02de99ca, 0x0030265c}}}, + {X: Field{[10]uint32{0x0366b403, 0x02772e4a, 0x0182c813, 0x003f2add, 0x02f64b95, 0x02c59c8f, 0x03ffc428, 0x01e39c63, 0x003d9d40, 0x0006232d}}, Y: Field{[10]uint32{0x03af5404, 0x03dfc688, 0x0314c140, 0x03ccd62a, 0x01fcc8c2, 0x0155a45b, 0x01a28799, 0x02890002, 0x0237ec9e, 0x00280e3e}}}, + {X: Field{[10]uint32{0x0019bb30, 0x006c9fbe, 0x0102cd78, 0x00d1a33f, 0x00c445ca, 0x01559fb2, 0x03925066, 0x0171a3d5, 0x0040cb57, 0x0038c43f}}, Y: Field{[10]uint32{0x02be625e, 0x01ae278a, 0x0384ddf6, 0x00da83c5, 0x02e0c183, 0x01b9ee51, 0x0101def6, 0x004bb97a, 0x02655ba3, 0x000c4ca2}}}, + {X: Field{[10]uint32{0x03dea4ac, 0x015d2fdd, 0x03c8e52b, 0x037c91b0, 0x00f15693, 0x03d18b32, 0x000bdeb1, 0x01177765, 0x005d1c82, 0x00376192}}, Y: Field{[10]uint32{0x01966ce2, 0x03027182, 0x03b4833f, 0x02d1f9d0, 0x018963a8, 0x028a6282, 0x0290175b, 0x0289c131, 0x03c256c9, 0x00335aed}}}, + {X: Field{[10]uint32{0x03019aef, 0x01740a81, 0x0097bde8, 0x02666cd8, 0x03dba773, 0x02da7865, 0x03dc67ca, 0x019ee1bd, 0x020cf815, 0x0006dfb4}}, Y: Field{[10]uint32{0x00e3d1bb, 0x03f0d7bc, 0x01531be6, 0x01534c53, 0x00df428d, 0x0292f0de, 0x00d89b59, 0x010e1954, 0x012ad1cb, 0x003e053a}}}, + {X: Field{[10]uint32{0x01ded284, 0x01c669ed, 0x01897a0f, 0x00328191, 0x019b41cd, 0x01c2cfc7, 0x0146a036, 0x020ce3b4, 0x007b2d52, 0x00028556}}, Y: Field{[10]uint32{0x022e925d, 0x03a9c9c4, 0x0052bfe6, 0x008ab5ad, 0x0312fc15, 0x01008fb9, 0x00d225cc, 0x00693b8c, 0x034b5aba, 0x000abbf8}}}, + {X: Field{[10]uint32{0x036a5484, 0x01254fa4, 0x01054048, 0x018e7934, 0x0208d194, 0x02825033, 0x00fcf209, 0x029a4663, 0x01f9c99d, 0x00015eee}}, Y: Field{[10]uint32{0x031660e4, 0x0291f20c, 0x0079e9a6, 0x01ef634c, 0x03700dc5, 0x035defc3, 0x03be5e41, 0x009ba0b1, 0x03a8d902, 0x0018f43e}}}, + {X: Field{[10]uint32{0x03bd262c, 0x02497564, 0x03746bab, 0x03ee3e92, 0x01291f84, 0x00844ec8, 0x017f7a10, 0x02d2835f, 0x01b37fa1, 0x000890a5}}, Y: Field{[10]uint32{0x00195796, 0x0258ae4e, 0x03ddcea2, 0x023b1145, 0x0246ed38, 0x00889982, 0x023eb74c, 0x02c369d5, 0x0040b1e4, 0x0003582b}}}, + {X: Field{[10]uint32{0x0053b0e3, 0x00e69ad5, 0x0055e53b, 0x0283c8a0, 0x02d6101c, 0x039d0d53, 0x00031b29, 0x0314f81f, 0x02e6a34e, 0x00090d3a}}, Y: Field{[10]uint32{0x003ce23d, 0x01e8e09d, 0x010ed6ce, 0x01d591db, 0x008b04f7, 0x00e88398, 0x00f39563, 0x0012ec4e, 0x0161d57a, 0x000bfd7b}}}, + {X: Field{[10]uint32{0x01885ce9, 0x02961c62, 0x0203b700, 0x02d8db42, 0x01ef2e6a, 0x03ec8ac1, 0x0304c649, 0x00444ef6, 0x0192907c, 0x00112379}}, Y: Field{[10]uint32{0x0079eabc, 0x0108732a, 0x028803d0, 0x00435164, 0x0063af8b, 0x016c0a4c, 0x03e6dea2, 0x0141a37a, 0x03fd6ab3, 0x0035eab3}}}, + {X: Field{[10]uint32{0x0393dd76, 0x028dc618, 0x0298f7c2, 0x00730769, 0x00defc0a, 0x006a8ee8, 0x02b92e70, 0x01d9d1ff, 0x03735aef, 0x00210173}}, Y: Field{[10]uint32{0x02c407f2, 0x01549639, 0x0053fc79, 0x00beea1a, 0x0189c9ef, 0x03d2a1c4, 0x0261c783, 0x00428129, 0x000649cd, 0x0015e574}}}, + {X: Field{[10]uint32{0x0208efc9, 0x0084735b, 0x026d5581, 0x03341cb1, 0x029318ac, 0x00dc7ae1, 0x01349aa0, 0x0121f7fa, 0x00c1e5c1, 0x001a625d}}, Y: Field{[10]uint32{0x0384509c, 0x030703fb, 0x00e1590b, 0x00aaee13, 0x01bcec87, 0x02ae6bd8, 0x036536c2, 0x012fd47d, 0x038cdc8f, 0x000df088}}}, + {X: Field{[10]uint32{0x003fee05, 0x0395cc99, 0x02d8dce2, 0x01846e11, 0x03e6548c, 0x00c57de2, 0x017781df, 0x02af19c6, 0x017abe3c, 0x00228de1}}, Y: Field{[10]uint32{0x00f674ed, 0x01da62d3, 0x020b78b8, 0x026c8777, 0x005e28e9, 0x038e19b5, 0x0055e4d9, 0x013341f9, 0x03680915, 0x000a620b}}}, + {X: Field{[10]uint32{0x0397eaef, 0x02f380c8, 0x00846793, 0x037c3e98, 0x0325ec8c, 0x01ea29c5, 0x0104c968, 0x00e7f84c, 0x034f5cdd, 0x002a1c6c}}, Y: Field{[10]uint32{0x0387cb28, 0x03f5e8b0, 0x00c5df3f, 0x037a379b, 0x00642312, 0x01b2484f, 0x03e2dc68, 0x000f027d, 0x00179de1, 0x00213e59}}}, + {X: Field{[10]uint32{0x0286f44a, 0x019339a0, 0x00fb4fd9, 0x031ebaae, 0x009ec66e, 0x02679d2b, 0x0057905e, 0x029fd6a2, 0x03b89f78, 0x00126f2b}}, Y: Field{[10]uint32{0x019eff6f, 0x03901f3b, 0x0194f4ea, 0x01849c5b, 0x0271124a, 0x02f464fa, 0x011d2ca7, 0x02add29e, 0x00cb5641, 0x0039f6e3}}}, + {X: Field{[10]uint32{0x028b6df6, 0x01c4c03d, 0x03686c3f, 0x012de7fa, 0x0140d9b8, 0x03ffa126, 0x0186289d, 0x0327963d, 0x012f2f05, 0x003571f6}}, Y: Field{[10]uint32{0x0151c08e, 0x0200abc7, 0x020434f1, 0x00aff38d, 0x036fcb2b, 0x0073d0ae, 0x00b272ce, 0x028e3a81, 0x025c219e, 0x0029a2ca}}}, + {X: Field{[10]uint32{0x03286696, 0x02a36d4e, 0x0056cfe4, 0x02f8a09b, 0x006a825c, 0x02c323b4, 0x034a249c, 0x0335ee71, 0x023cfea4, 0x000ab0bf}}, Y: Field{[10]uint32{0x0360f43f, 0x039e0102, 0x03834a67, 0x01b3c028, 0x00505bb4, 0x01b2981e, 0x02f6031c, 0x02947b28, 0x0259b008, 0x001f6429}}}, + {X: Field{[10]uint32{0x00a39234, 0x00716a84, 0x011d92f6, 0x03bec0ed, 0x025b0069, 0x0283b69e, 0x023a85f5, 0x01fb3d3d, 0x00bc6282, 0x001f026b}}, Y: Field{[10]uint32{0x01624836, 0x01b1a21a, 0x030015a9, 0x03c8258a, 0x00854b56, 0x017f70c6, 0x01f86414, 0x00a315a1, 0x0139c291, 0x00381f49}}}, + {X: Field{[10]uint32{0x03fbf9f0, 0x025aefdb, 0x03a7f2c4, 0x0008d289, 0x033bb4ff, 0x00ecbeb4, 0x0141ae71, 0x010b9da6, 0x01567e1b, 0x003a21b7}}, Y: Field{[10]uint32{0x0267a877, 0x0045cb71, 0x0301081d, 0x03cf18c2, 0x025a4666, 0x037d3977, 0x01c097f0, 0x03e03cdc, 0x037babee, 0x00352c89}}}, + {X: Field{[10]uint32{0x0059c2dc, 0x02866740, 0x00464073, 0x039614d1, 0x038ca8a6, 0x03d82ec6, 0x02178f0f, 0x00e60f16, 0x00c800e8, 0x003b7d97}}, Y: Field{[10]uint32{0x01ab2d5e, 0x01d89122, 0x0123a92c, 0x036c41c3, 0x030118a4, 0x0378737e, 0x024710a2, 0x00c27e12, 0x0313f0c5, 0x00289099}}}, + {X: Field{[10]uint32{0x026d17f8, 0x01abdbb4, 0x01036a74, 0x02ee8f4b, 0x03435ad7, 0x02c548c8, 0x016dbbe5, 0x01baee4d, 0x0304b78a, 0x000a704b}}, Y: Field{[10]uint32{0x016eae4a, 0x03f3b388, 0x019358b7, 0x009fe816, 0x02b3336d, 0x027b1146, 0x02a211f3, 0x0046a9e3, 0x0275bf62, 0x00020e64}}}, + {X: Field{[10]uint32{0x0263c3e2, 0x03e29e59, 0x00789994, 0x01192986, 0x03169f20, 0x0383e7f3, 0x02034ac3, 0x026453c2, 0x038c280e, 0x003576e2}}, Y: Field{[10]uint32{0x0263412b, 0x00355df0, 0x02cbbeb6, 0x01e2a997, 0x0398f270, 0x0066507d, 0x025635a8, 0x0000e7d7, 0x003a085a, 0x0010458f}}}, + {X: Field{[10]uint32{0x01135f8d, 0x00285f36, 0x01165700, 0x016b151f, 0x0210e105, 0x02ed3dff, 0x00e57ac8, 0x02c03656, 0x03a5630e, 0x00264293}}, Y: Field{[10]uint32{0x03c9653b, 0x02c8f5d2, 0x032912ec, 0x0053e3f3, 0x03eb2524, 0x0231c485, 0x02a03646, 0x028a2511, 0x0025491f, 0x003c97b8}}}, + {X: Field{[10]uint32{0x029c0935, 0x00ded5e7, 0x031b7416, 0x03b31a35, 0x034e3049, 0x00c573d4, 0x0101c3b3, 0x012773b2, 0x00f01c78, 0x0035e13b}}, Y: Field{[10]uint32{0x034205ce, 0x03593eda, 0x03dde6b2, 0x00202159, 0x02306720, 0x03b1bf51, 0x0082a841, 0x00abb763, 0x0122cc38, 0x00177a63}}}, + {X: Field{[10]uint32{0x00e38193, 0x01334d5b, 0x01338320, 0x03946726, 0x019b4d38, 0x037cf067, 0x0353b67b, 0x0032eeab, 0x00d05885, 0x000195db}}, Y: Field{[10]uint32{0x0310eaca, 0x03dd3195, 0x03420658, 0x0038c2fc, 0x03d98496, 0x01d923f8, 0x001fbeb2, 0x0395b8c7, 0x013e92d1, 0x0028ca66}}}, + {X: Field{[10]uint32{0x0035efce, 0x012113af, 0x024d8bb9, 0x01dcf49b, 0x0320ccb1, 0x0311527f, 0x009a8081, 0x03031919, 0x00e5f675, 0x00255de2}}, Y: Field{[10]uint32{0x021d9b5b, 0x016a8394, 0x00a8c051, 0x001a6f04, 0x0301d329, 0x005785f3, 0x01c39486, 0x03b8df65, 0x031cdc4b, 0x001fa910}}}, + {X: Field{[10]uint32{0x039e4a2e, 0x014b0178, 0x0096b014, 0x03cec114, 0x00da5549, 0x02304ffc, 0x0101abd7, 0x02d4dfb1, 0x02805053, 0x0022bdf2}}, Y: Field{[10]uint32{0x017e8402, 0x0160da8b, 0x03fb8e1b, 0x001ba759, 0x036a4362, 0x03690150, 0x03235e60, 0x010b933e, 0x0225aac0, 0x00097a18}}}, + {X: Field{[10]uint32{0x0215236c, 0x024df438, 0x02ba2623, 0x01598dec, 0x01e6eb74, 0x035e705e, 0x02ff642a, 0x018d3880, 0x0393e16e, 0x00126fc0}}, Y: Field{[10]uint32{0x0031a85d, 0x00f9a5e9, 0x00722d60, 0x00305e6b, 0x0141e5f8, 0x02684d10, 0x000ce1ee, 0x03835073, 0x013f401d, 0x00216418}}}, + {X: Field{[10]uint32{0x00192063, 0x03af4675, 0x035afdc5, 0x03b68992, 0x01df3653, 0x02326db7, 0x03b68581, 0x00a18d49, 0x02250257, 0x00320b8a}}, Y: Field{[10]uint32{0x01a6de8c, 0x01d78f8e, 0x011c7b26, 0x03dcddbe, 0x01c2717f, 0x01fe7a4e, 0x030af044, 0x0306f4f5, 0x0000cd87, 0x000ee1be}}}, + {X: Field{[10]uint32{0x00eedbf3, 0x004b7f76, 0x02041a37, 0x0154562c, 0x0142ec13, 0x0393489f, 0x02fc9c3f, 0x023df0eb, 0x01202b9a, 0x0027390e}}, Y: Field{[10]uint32{0x035b52f6, 0x0288327f, 0x026e26d5, 0x02cf70bb, 0x0153a54b, 0x02a4e7fe, 0x02f15d59, 0x03b74feb, 0x0305859a, 0x0036eed6}}}, + {X: Field{[10]uint32{0x02fe6227, 0x02f6dac5, 0x0324a168, 0x02b425bb, 0x00baa707, 0x03b2ad2e, 0x01202213, 0x0017294b, 0x009e49de, 0x000381c0}}, Y: Field{[10]uint32{0x00bc33c9, 0x023e739b, 0x03b2e417, 0x00f28548, 0x03258383, 0x037a353a, 0x03865b0a, 0x02e89a06, 0x00bfe752, 0x001a8d6c}}}, + {X: Field{[10]uint32{0x021da888, 0x00056f60, 0x03fab065, 0x017fd308, 0x01d58861, 0x025849c5, 0x02948147, 0x02bd8791, 0x01b47e09, 0x003ad373}}, Y: Field{[10]uint32{0x01661b8f, 0x017454fa, 0x000834a5, 0x01710410, 0x00008630, 0x01320457, 0x006536ad, 0x000be878, 0x01685846, 0x0018f8e0}}}, + {X: Field{[10]uint32{0x00e49db6, 0x013cce44, 0x00f7bf86, 0x001c981e, 0x03a2c659, 0x034a76b3, 0x0257015d, 0x00044c74, 0x02812bf2, 0x002f97e1}}, Y: Field{[10]uint32{0x016d9da7, 0x01004765, 0x01f308f0, 0x02e3103a, 0x0143c4f1, 0x01cfe944, 0x015a92da, 0x012bfd66, 0x00e45617, 0x00343d08}}}, + {X: Field{[10]uint32{0x015b99a8, 0x007e204d, 0x01ed74a6, 0x0172cc75, 0x03db214a, 0x0375fa3b, 0x03a1318e, 0x017e7663, 0x003910e7, 0x000eccb7}}, Y: Field{[10]uint32{0x03a18bc5, 0x02bc68a8, 0x03c4218b, 0x02b15cbe, 0x036e4e0a, 0x01d4b952, 0x01df756e, 0x03a7967f, 0x028619c2, 0x000684b7}}}, + {X: Field{[10]uint32{0x02e04db1, 0x00f9e921, 0x029d0a3c, 0x00d45a5c, 0x03dde107, 0x00fce1ad, 0x012922ea, 0x03a21597, 0x01ce5c06, 0x00256b17}}, Y: Field{[10]uint32{0x02f39838, 0x02d6c9cf, 0x029fde77, 0x01dc9465, 0x01680edb, 0x005aded2, 0x0049e856, 0x0060878f, 0x0187ab1b, 0x000688b3}}}, + {X: Field{[10]uint32{0x00e708eb, 0x0060db5f, 0x005ccd30, 0x00782a37, 0x027dad59, 0x017b4a57, 0x01d1b74a, 0x03c4f8cd, 0x00fba4b0, 0x001b93b4}}, Y: Field{[10]uint32{0x0234b931, 0x01fc5482, 0x01a54ac3, 0x0267a670, 0x0016a2ef, 0x027366ac, 0x0188e6e5, 0x013827b6, 0x026ac61c, 0x00241585}}}, + {X: Field{[10]uint32{0x03a42e10, 0x03ae8b08, 0x01859898, 0x01e6474b, 0x01ea8d9a, 0x0209f612, 0x00925e17, 0x003b84dd, 0x0394208e, 0x0022df0c}}, Y: Field{[10]uint32{0x0043d193, 0x02afac9c, 0x02d0d003, 0x03d8bc86, 0x032c8beb, 0x01d7bcff, 0x00e64400, 0x002f3244, 0x02379672, 0x002daae4}}}, + {X: Field{[10]uint32{0x00f871c6, 0x001612ec, 0x02dcc8e2, 0x01363e5b, 0x02dd48ab, 0x02dbd772, 0x00965b98, 0x0035ce21, 0x0347f669, 0x0003f69e}}, Y: Field{[10]uint32{0x02926c5d, 0x02e39af2, 0x03560e18, 0x00895791, 0x00309292, 0x0152d1cf, 0x03487e8b, 0x0331b4a2, 0x0035a272, 0x0026d009}}}, + {X: Field{[10]uint32{0x01bcb217, 0x0041a8cf, 0x0255dad6, 0x022f3246, 0x036e6301, 0x0303a6a8, 0x00beb534, 0x01686bbe, 0x00f5395a, 0x003c5768}}, Y: Field{[10]uint32{0x038a8f1c, 0x03afdd95, 0x00f6ddb6, 0x00bef3e6, 0x0380be25, 0x021825c8, 0x03571ac4, 0x00054645, 0x01eabb3b, 0x000a33da}}}, + {X: Field{[10]uint32{0x00af9253, 0x036206ef, 0x032f4abf, 0x02e1fea0, 0x03d9a208, 0x021c26a5, 0x02378e63, 0x005f8324, 0x02dd2c78, 0x0031b899}}, Y: Field{[10]uint32{0x03769626, 0x0247b9f2, 0x02082842, 0x03724c8c, 0x005ffa7a, 0x0342fbd6, 0x00e95e35, 0x02ce8c32, 0x00c1fa9b, 0x000abc40}}}, + {X: Field{[10]uint32{0x02e28753, 0x00cf422d, 0x0313f0d1, 0x01e93f6a, 0x037f5a72, 0x00e495a1, 0x00c21a83, 0x00807922, 0x02020fdd, 0x0012fe2a}}, Y: Field{[10]uint32{0x015fc8b8, 0x02fa74f3, 0x01d88f39, 0x0016572f, 0x02d8fe5f, 0x0279b188, 0x01c6bd70, 0x01356685, 0x0258ad9c, 0x00162049}}}, + {X: Field{[10]uint32{0x00d0a6d3, 0x03f04a5f, 0x0248b972, 0x01cf6d87, 0x0105cda6, 0x029dfee5, 0x009fc39d, 0x01216956, 0x032806dd, 0x002aa617}}, Y: Field{[10]uint32{0x024b75b2, 0x017d8347, 0x00a04e1e, 0x00404389, 0x007c2777, 0x007fc0b8, 0x025a92da, 0x018ecca6, 0x00972f11, 0x002aec3e}}}, + {X: Field{[10]uint32{0x01c41c9d, 0x01ccbb18, 0x0197c8e1, 0x012c33b4, 0x016c2fa0, 0x02305048, 0x039f88d8, 0x02873d3a, 0x0101ec13, 0x00205d34}}, Y: Field{[10]uint32{0x03d79aa7, 0x01a9d623, 0x01bbb46f, 0x012c69e4, 0x00c6e5d9, 0x0298e6c0, 0x037a6625, 0x00b9ffab, 0x01c231b0, 0x00319d97}}}, + {X: Field{[10]uint32{0x01f3d876, 0x00bc13db, 0x02cbb870, 0x02b3f6f9, 0x0292573a, 0x016a68e8, 0x028fe098, 0x024a5edc, 0x02a9d603, 0x003e7d93}}, Y: Field{[10]uint32{0x024ca01a, 0x01f4b266, 0x02f9b1a6, 0x03ef61fb, 0x01188069, 0x005cba1e, 0x00950f21, 0x019f4058, 0x03c14060, 0x001051b1}}}, + {X: Field{[10]uint32{0x00f1b3b4, 0x0197b32a, 0x02951d88, 0x02f072a4, 0x01f8067c, 0x02977a49, 0x034454a2, 0x0217acf4, 0x02705a68, 0x000f990e}}, Y: Field{[10]uint32{0x02fb0355, 0x03822df8, 0x02f11b0f, 0x0209c58b, 0x028b5e58, 0x01ddea65, 0x01d54d1d, 0x014d3b7a, 0x03045525, 0x000b7b29}}}, + {X: Field{[10]uint32{0x036c63c5, 0x0259bccd, 0x0082e4c0, 0x034ae1ea, 0x03caae45, 0x01bddb40, 0x015d200d, 0x02b01dfa, 0x0011fcc3, 0x0011137d}}, Y: Field{[10]uint32{0x0016cc23, 0x0142a955, 0x032bc643, 0x024eb1b8, 0x01ec520c, 0x00b7b3cf, 0x00d1a4df, 0x02592a9f, 0x0198643d, 0x002d1599}}}, + {X: Field{[10]uint32{0x006946a0, 0x01ea1e99, 0x01465bbb, 0x01aa1093, 0x0019cdaa, 0x029a0429, 0x00a7beb1, 0x00d7f8c5, 0x021f58be, 0x0004a8bd}}, Y: Field{[10]uint32{0x010ba47d, 0x0354d74a, 0x010698df, 0x00c6575e, 0x0248410b, 0x029a7ef2, 0x01539461, 0x03323fc6, 0x034494c2, 0x00269ef7}}}, + {X: Field{[10]uint32{0x0264cb9f, 0x00acadf8, 0x007933d5, 0x01ea4fd2, 0x02511b2b, 0x01a1ef48, 0x008af94b, 0x01cf1cf5, 0x02924625, 0x002f75c9}}, Y: Field{[10]uint32{0x02123874, 0x03037de8, 0x034ed955, 0x03df7103, 0x02858e6d, 0x03dd1a6a, 0x01ac9923, 0x03eac2f5, 0x004eb794, 0x00015b9b}}}, + {X: Field{[10]uint32{0x00066bdd, 0x01ff95a9, 0x003d60ec, 0x00a75f41, 0x03c974bd, 0x02936a7b, 0x034f156e, 0x03d5744a, 0x015877c3, 0x00386f55}}, Y: Field{[10]uint32{0x03233170, 0x02541d70, 0x0033ff5a, 0x006c7111, 0x03789cbf, 0x03168cbd, 0x002bea56, 0x010da88e, 0x0399fbe7, 0x00237366}}}, + {X: Field{[10]uint32{0x00132ad9, 0x00d47498, 0x0185d804, 0x02e2c1c6, 0x00fc064e, 0x01287d54, 0x0246609f, 0x020a52fa, 0x01e4781c, 0x0029f1a3}}, Y: Field{[10]uint32{0x01b42c32, 0x02218aeb, 0x00766842, 0x026fafe8, 0x026f6bbf, 0x0116626e, 0x022b240d, 0x03fad441, 0x00b63d9e, 0x0028209e}}}, + {X: Field{[10]uint32{0x029aa855, 0x00f1c34a, 0x0279a56b, 0x0198f632, 0x0205fa0d, 0x004df41e, 0x01eb90f5, 0x038da72f, 0x0369b4c6, 0x0013cea1}}, Y: Field{[10]uint32{0x026ea169, 0x01921bba, 0x0393e35b, 0x00b2d8af, 0x00b9d6db, 0x011c1d61, 0x00ed9f2c, 0x007854d2, 0x011c5f70, 0x0003db01}}}, + {X: Field{[10]uint32{0x0044f232, 0x018f77bd, 0x01a8d744, 0x01ff2d0d, 0x0036fd04, 0x0229aed6, 0x01cac66d, 0x03aff610, 0x001c8089, 0x0037aaaf}}, Y: Field{[10]uint32{0x0228e8a1, 0x0030a4f0, 0x014f90f5, 0x01258a9b, 0x00ccd14a, 0x03229b59, 0x026e6547, 0x01b9eaa0, 0x00ba49c2, 0x003edf31}}}, + {X: Field{[10]uint32{0x019c0695, 0x02e3e4cc, 0x023788b5, 0x02adf3f3, 0x02fd7f33, 0x03bcaccb, 0x0151e1f4, 0x006ce049, 0x0361547b, 0x0031046b}}, Y: Field{[10]uint32{0x018cb66b, 0x02efe215, 0x02ab4797, 0x013bd888, 0x02294ace, 0x03f3eedd, 0x0266d212, 0x03e0aba4, 0x03d73d50, 0x0034afb9}}}, + {X: Field{[10]uint32{0x009ec5e7, 0x002f7aa4, 0x01637821, 0x000742a2, 0x004a35f1, 0x02e77771, 0x00284945, 0x0376a343, 0x0294485b, 0x00343fda}}, Y: Field{[10]uint32{0x024f620f, 0x0087c88d, 0x02a65e21, 0x03fe0ea4, 0x00cb1910, 0x023e54f1, 0x02b7e83d, 0x02a3cb40, 0x00fd2923, 0x002acfd8}}}, + {X: Field{[10]uint32{0x0308c0f1, 0x00d6a9c7, 0x02424982, 0x01102cff, 0x01006f27, 0x016b5b2c, 0x011baea3, 0x03b648a1, 0x01cc9555, 0x00028341}}, Y: Field{[10]uint32{0x02339948, 0x0131f275, 0x037dc471, 0x02b4c601, 0x0150afe2, 0x0082c9c1, 0x017e67ca, 0x01629c2f, 0x01052371, 0x00210ec4}}}, + {X: Field{[10]uint32{0x023f5d32, 0x03964807, 0x039d0568, 0x010a24fe, 0x007d5996, 0x0364265e, 0x0083ef67, 0x017ee817, 0x0045eb29, 0x002fa821}}, Y: Field{[10]uint32{0x00ce10e3, 0x03cc8a9b, 0x01cc7908, 0x035af53d, 0x01e26594, 0x00744bb4, 0x00bb2bb4, 0x03d14f5e, 0x03ffb3f7, 0x000aa069}}}, + {X: Field{[10]uint32{0x02f0d5f0, 0x00b1f7b9, 0x02ce3e82, 0x026316b3, 0x00551c30, 0x01aae5c0, 0x035aea6f, 0x039a267a, 0x004c431b, 0x003a3af3}}, Y: Field{[10]uint32{0x01fa902e, 0x03428ecc, 0x0161e097, 0x0193aa83, 0x016d65db, 0x0268ab9e, 0x03d511f5, 0x0393d63e, 0x0061760a, 0x003be669}}}, + {X: Field{[10]uint32{0x026e8fd2, 0x00c2f3a5, 0x03cd1d96, 0x02d6161d, 0x020806ba, 0x01e5b62d, 0x031db77c, 0x037113b3, 0x006cdd73, 0x00125218}}, Y: Field{[10]uint32{0x02b95f80, 0x012e496f, 0x01123bc6, 0x03b7cf6e, 0x00cb8c13, 0x00e511aa, 0x01630aa6, 0x02319e10, 0x033f786c, 0x000f19cc}}}, + {X: Field{[10]uint32{0x02a778c2, 0x021e4ba7, 0x00a165c1, 0x02996d72, 0x00fb5a19, 0x019b3525, 0x03e40cca, 0x03bee938, 0x033240d9, 0x0013c966}}, Y: Field{[10]uint32{0x0117446d, 0x023aab93, 0x00efb1b6, 0x01fd1d23, 0x00b1590f, 0x027d3a8b, 0x02006054, 0x01a66712, 0x008778c2, 0x003f7620}}}, + {X: Field{[10]uint32{0x02dfcc29, 0x0143e91e, 0x03f337e3, 0x02379ea9, 0x031e7e91, 0x038463ba, 0x036e2b43, 0x01fd4bc9, 0x0093e14d, 0x003cc0e9}}, Y: Field{[10]uint32{0x01141b57, 0x006f52da, 0x00163cfa, 0x01df17f9, 0x01453f79, 0x029ab499, 0x01bc49da, 0x0394fd7d, 0x006d0bef, 0x003127e9}}}, + {X: Field{[10]uint32{0x01df595d, 0x02cbd4f0, 0x01a41ea4, 0x03f0a77d, 0x0158b9fd, 0x01029583, 0x0311859c, 0x02003b06, 0x0317f4c0, 0x00380312}}, Y: Field{[10]uint32{0x0363b99d, 0x007edd65, 0x032fb8c8, 0x000f4d20, 0x00a72a10, 0x02d33346, 0x00d0d957, 0x0134a746, 0x0266c3ec, 0x00189106}}}, + {X: Field{[10]uint32{0x0372ce70, 0x02c8c076, 0x011714cf, 0x03c88560, 0x03ca16be, 0x02dd52f9, 0x03603bd2, 0x02bd4a91, 0x00861af6, 0x001212e1}}, Y: Field{[10]uint32{0x0132fbc7, 0x01f9cb13, 0x02359d47, 0x0314231d, 0x01cf72e5, 0x028299d6, 0x02968652, 0x01e68ff9, 0x03f5a0ac, 0x000dbe13}}}, + {X: Field{[10]uint32{0x00d93f14, 0x0119ee13, 0x02dab210, 0x0338469e, 0x03ca07fe, 0x032f0526, 0x03e6a8a7, 0x007d1286, 0x00ead8b5, 0x00222f96}}, Y: Field{[10]uint32{0x02687fdc, 0x01baf2a4, 0x0067d4d4, 0x03d27c03, 0x018ebbeb, 0x001a5ec6, 0x00d6cd6a, 0x03ef05c7, 0x00af7037, 0x00253043}}}, + {X: Field{[10]uint32{0x03da781b, 0x037a5111, 0x03b77384, 0x0351f058, 0x037372a3, 0x0040466d, 0x0275e11b, 0x035fbd12, 0x02af9fdd, 0x002afdb3}}, Y: Field{[10]uint32{0x0395d290, 0x003b3319, 0x0259a796, 0x024a0712, 0x01417183, 0x026ed3bd, 0x01fe2f3b, 0x0319eba7, 0x030c6320, 0x00172b6c}}}, + {X: Field{[10]uint32{0x009d173a, 0x020e13ae, 0x03deb74f, 0x00365598, 0x014e221e, 0x01f1b0f3, 0x03cf10a1, 0x0196c99f, 0x01229ef6, 0x003a3099}}, Y: Field{[10]uint32{0x022aeeb3, 0x02b847f2, 0x00934035, 0x009a7f34, 0x02bec7ba, 0x00364591, 0x031965b3, 0x0143bf48, 0x03adf9b0, 0x00269a7e}}}, + {X: Field{[10]uint32{0x01c6c23e, 0x03e93ff6, 0x0358df60, 0x03aa47ff, 0x01e031f3, 0x021a0c55, 0x0270a24e, 0x03b2e579, 0x03d8bf72, 0x0019994a}}, Y: Field{[10]uint32{0x00be994e, 0x0168ea4c, 0x03b3b4b6, 0x00054b73, 0x0205fa69, 0x03d98c29, 0x002fbb66, 0x00adcc8b, 0x00083f18, 0x0012113b}}}, + {X: Field{[10]uint32{0x002c0964, 0x0094b753, 0x02f0badf, 0x01054caa, 0x0075cac8, 0x016fdb56, 0x00202c44, 0x00410372, 0x00c2d842, 0x00081e20}}, Y: Field{[10]uint32{0x01860cfd, 0x01b47c30, 0x01c54e91, 0x024c203f, 0x010a562d, 0x0324a9ec, 0x00ef3167, 0x013786b9, 0x01d73eb2, 0x000ac606}}}, + {X: Field{[10]uint32{0x0013f581, 0x03f65648, 0x030cc763, 0x00b1f649, 0x007e8f26, 0x03437fda, 0x0133485e, 0x01a4bbb2, 0x01e453d0, 0x0011ae6f}}, Y: Field{[10]uint32{0x014f9bf7, 0x02af4b28, 0x022256ec, 0x021a7cbf, 0x01394cc7, 0x00216df5, 0x019b0d63, 0x026703d2, 0x03e63ae5, 0x00162be6}}}, + {X: Field{[10]uint32{0x01ea3e11, 0x00759e5d, 0x0278b82b, 0x015758a6, 0x02a2fa25, 0x00a6bcea, 0x0356e2f0, 0x03974025, 0x0174dbeb, 0x001766c9}}, Y: Field{[10]uint32{0x02e59263, 0x01ed9143, 0x030f02b8, 0x02405963, 0x03f3a641, 0x018a5d63, 0x023dd507, 0x031a3f3b, 0x00acaa6a, 0x003b67d0}}}, + {X: Field{[10]uint32{0x02590e4f, 0x01b05c9b, 0x02c52d08, 0x035ddf3f, 0x03dc598f, 0x01dd0ce2, 0x036a6491, 0x01909669, 0x01828b98, 0x003b2d6b}}, Y: Field{[10]uint32{0x01887886, 0x02637cb2, 0x034e301d, 0x029f3312, 0x0365d33e, 0x00be084b, 0x014b5bf5, 0x0361faa5, 0x013673c6, 0x0000ade2}}}, + {X: Field{[10]uint32{0x0124ea67, 0x03294c8e, 0x0296e8f3, 0x0267f243, 0x00ddd62e, 0x00037957, 0x01747250, 0x006e2874, 0x00c15e71, 0x002ccad9}}, Y: Field{[10]uint32{0x02ac2083, 0x02c30929, 0x016a5403, 0x013783f8, 0x024d81b8, 0x01f92f86, 0x027a94de, 0x02b7c8d2, 0x01d36dce, 0x002bd758}}}, + {X: Field{[10]uint32{0x020cd364, 0x0023f160, 0x034ab1c3, 0x010aa002, 0x008b7f68, 0x033daacf, 0x0157aa15, 0x008cd29b, 0x031b7158, 0x00144dfd}}, Y: Field{[10]uint32{0x01f1eab4, 0x0194a913, 0x00381efa, 0x00e25596, 0x010e4a3b, 0x025d5dc4, 0x02a248d4, 0x01f6ac31, 0x03ecc9b1, 0x003dfa97}}}, + {X: Field{[10]uint32{0x029ea866, 0x0158a5f3, 0x01539e7c, 0x01958c58, 0x0025f94e, 0x00070fd7, 0x0113a898, 0x016224f8, 0x021a390b, 0x002e6ec3}}, Y: Field{[10]uint32{0x00324a11, 0x01a547c2, 0x0080e6b6, 0x02a094e6, 0x01247f60, 0x0207938c, 0x00e14ece, 0x00d7eeb9, 0x00903c3d, 0x003636cf}}}, + {X: Field{[10]uint32{0x024fe9af, 0x03ad1a24, 0x027d317b, 0x024bb060, 0x0388cc11, 0x0310bd1e, 0x0291c211, 0x003b0811, 0x01676da4, 0x000fc246}}, Y: Field{[10]uint32{0x02bb8de9, 0x0177d705, 0x01395877, 0x02f74ff3, 0x00ba4c04, 0x00e341c9, 0x02e6a812, 0x00b07c62, 0x00263e88, 0x003c6d12}}}, + {X: Field{[10]uint32{0x0093b4fe, 0x016b2236, 0x00ed80d5, 0x011f5897, 0x003767da, 0x01c286cb, 0x015e7afc, 0x01803a35, 0x01f1dad4, 0x002d7e89}}, Y: Field{[10]uint32{0x02d22347, 0x024e6ca2, 0x0270e1d6, 0x000ee85e, 0x0183e495, 0x02927426, 0x013a1908, 0x00a5b1fb, 0x0261f2ba, 0x001d5d7d}}}, + {X: Field{[10]uint32{0x000d17b0, 0x031bdf5a, 0x000183d4, 0x03a9ac73, 0x01e4ca06, 0x000dcc1a, 0x01b797e9, 0x00096de3, 0x00e2dc6a, 0x00280dc7}}, Y: Field{[10]uint32{0x0059919d, 0x01f10cba, 0x036bc693, 0x01d1712b, 0x0024f0ff, 0x01666ddd, 0x011c5214, 0x00173ba1, 0x00a89a50, 0x0024ad6a}}}, + {X: Field{[10]uint32{0x02e2f210, 0x02650a87, 0x02c8c7b1, 0x00a36896, 0x00cd0a98, 0x01f50808, 0x0063967d, 0x02441de2, 0x029000a4, 0x0016ab9b}}, Y: Field{[10]uint32{0x03ee8fd7, 0x00393ded, 0x03957576, 0x031335e0, 0x017e82fd, 0x01e7b0e6, 0x03218f7b, 0x013cfff5, 0x002082a5, 0x0003b673}}}, + {X: Field{[10]uint32{0x020841a0, 0x034a8a06, 0x03b053fe, 0x02cb9b39, 0x0164efdd, 0x01437ad9, 0x000f9648, 0x02dbd2c4, 0x02ecf4a9, 0x001539f6}}, Y: Field{[10]uint32{0x03c9c63d, 0x00f7b2a5, 0x03daecc8, 0x0215c250, 0x0270d467, 0x022cd365, 0x02857ad0, 0x00ea0756, 0x032a5477, 0x00366b68}}}, + {X: Field{[10]uint32{0x03bf44e8, 0x01153223, 0x00d7abdb, 0x0148e47b, 0x00383ed7, 0x01d926e1, 0x00d8be0c, 0x03bd1ad2, 0x0110d8bc, 0x003a6ca6}}, Y: Field{[10]uint32{0x021d6b69, 0x031c0f09, 0x033deb84, 0x024a6a37, 0x03d7a267, 0x00393102, 0x01739655, 0x03a47e94, 0x0094f669, 0x003ac9a0}}}, + {X: Field{[10]uint32{0x02546a97, 0x0385de76, 0x00ef6384, 0x00727f85, 0x013f537a, 0x01df4767, 0x037c5895, 0x02944c65, 0x0222f254, 0x0010fe54}}, Y: Field{[10]uint32{0x01cb18cc, 0x03b3ad5c, 0x035e14b0, 0x02ce5ecf, 0x030eef80, 0x0198a8b7, 0x005b305b, 0x01711fc9, 0x02534334, 0x0035f4f1}}}, + {X: Field{[10]uint32{0x02c3b103, 0x004a52e9, 0x00b1dcc9, 0x01701c89, 0x01672338, 0x005ab921, 0x00bc0902, 0x03ee4a0c, 0x03d53999, 0x0027ed17}}, Y: Field{[10]uint32{0x02bdf451, 0x03deb27f, 0x0213a277, 0x001ae09c, 0x036731b5, 0x0269252e, 0x017bf7f3, 0x020b4e43, 0x001bdbfd, 0x0016d1c2}}}, + {X: Field{[10]uint32{0x031dcce9, 0x032092ed, 0x007f23cb, 0x003882b6, 0x0109ca84, 0x03ad19bd, 0x015919b2, 0x00a734ca, 0x002b8355, 0x0037648a}}, Y: Field{[10]uint32{0x03726371, 0x02a78717, 0x03b7ad58, 0x01a0ed63, 0x01f37962, 0x00788ef3, 0x02f4a29d, 0x0359a2c7, 0x02e7bc59, 0x003b117d}}}, + {X: Field{[10]uint32{0x0016348d, 0x030176b7, 0x01c38686, 0x01bf06b5, 0x01fe2903, 0x00f788f1, 0x019def4f, 0x02f75efe, 0x0012009f, 0x001d20bc}}, Y: Field{[10]uint32{0x0040abd1, 0x0198e9ae, 0x025f8db1, 0x02eb0939, 0x0173fc0d, 0x0196eb44, 0x02b2a20b, 0x03dbc2fc, 0x020d5497, 0x00290f12}}}, + {X: Field{[10]uint32{0x00ebd9a5, 0x029a1a5c, 0x02377a69, 0x00c3dea6, 0x01537fca, 0x016c0c65, 0x012f587a, 0x0189e077, 0x019597fd, 0x003e933f}}, Y: Field{[10]uint32{0x03ae823a, 0x03af8771, 0x0105c1b8, 0x00c428c1, 0x01e2a350, 0x03862a3f, 0x031d269b, 0x03dde2f4, 0x02c99ddb, 0x00115a2d}}}, + {X: Field{[10]uint32{0x03a60b9e, 0x01f4440f, 0x00c53d9b, 0x034c9e51, 0x022f1078, 0x03c7ffaf, 0x0105e1b4, 0x00fa3a06, 0x03dae776, 0x00147834}}, Y: Field{[10]uint32{0x02da6740, 0x00bfca8d, 0x033f7bfa, 0x02948e57, 0x001da673, 0x008423b4, 0x01f20b90, 0x00beb33e, 0x00c4ab57, 0x00046368}}}, + {X: Field{[10]uint32{0x01bc9530, 0x00a99a03, 0x03f86c48, 0x01d3d03a, 0x00502fc6, 0x0227a5bd, 0x003b8572, 0x008cd4e3, 0x027cc055, 0x001f6395}}, Y: Field{[10]uint32{0x02b37571, 0x030ba9a3, 0x00ad7600, 0x00716172, 0x00748458, 0x02a2c985, 0x01fe552b, 0x0111a92e, 0x004600c6, 0x001db0ff}}}, + {X: Field{[10]uint32{0x011dfb1f, 0x00ae52b3, 0x000ed8d1, 0x019e7bd3, 0x011c316d, 0x03e8631e, 0x01f216fd, 0x0065bf74, 0x02d3b400, 0x00364931}}, Y: Field{[10]uint32{0x03ebcea8, 0x00aaa013, 0x012e59d8, 0x00649b1a, 0x0290b9d1, 0x023766e4, 0x01eb3f28, 0x0012e2c4, 0x00ee881c, 0x0003b0cf}}}, + {X: Field{[10]uint32{0x0293c0db, 0x01d115d7, 0x03b8f330, 0x006afe54, 0x033965cb, 0x02a6760a, 0x00d28b97, 0x00a72346, 0x030b06f6, 0x002372cc}}, Y: Field{[10]uint32{0x006857a3, 0x01d3cde9, 0x0097ab6d, 0x0103dbdf, 0x00b58b73, 0x004fe06a, 0x0129b573, 0x0240b46c, 0x01198323, 0x000f628b}}}, + {X: Field{[10]uint32{0x02a5d2b5, 0x01d27daf, 0x02e80d3f, 0x0074d68c, 0x0157910f, 0x036bad9c, 0x0386797d, 0x018de233, 0x023b94b0, 0x00374712}}, Y: Field{[10]uint32{0x03230777, 0x026fb7ac, 0x0064c086, 0x02f1cf5f, 0x003d2afe, 0x02de32de, 0x03e5be9a, 0x0160f590, 0x00c75a69, 0x003befb0}}}, + {X: Field{[10]uint32{0x03f5e772, 0x022a214d, 0x02dab765, 0x03caf1d8, 0x01ec0275, 0x0134a4b0, 0x01f6ec48, 0x035fdce5, 0x02341dfa, 0x000ac0f7}}, Y: Field{[10]uint32{0x03c0d0e3, 0x019a9db0, 0x03bdf971, 0x0346b926, 0x020803d7, 0x027de397, 0x03d48bb4, 0x0160b156, 0x00fb3818, 0x000c8d7a}}}, + {X: Field{[10]uint32{0x0028dde2, 0x01e320c5, 0x03f39479, 0x02f530f9, 0x02677f06, 0x01addc4c, 0x03a80efa, 0x016f25f9, 0x030fba14, 0x000e9e56}}, Y: Field{[10]uint32{0x00914691, 0x037d5e51, 0x0352b526, 0x013a8fc4, 0x0081af64, 0x03b502bb, 0x00bc9e1e, 0x022898df, 0x039ddf03, 0x003d0496}}}, + {X: Field{[10]uint32{0x004fcbbf, 0x0301621a, 0x01e59ef8, 0x0085e234, 0x03121f5c, 0x002a1476, 0x006c081b, 0x035b2e71, 0x013ba133, 0x0003b3e0}}, Y: Field{[10]uint32{0x03e53560, 0x035dce04, 0x020930ec, 0x0057af84, 0x02597e39, 0x02254a70, 0x02becd07, 0x02d1cdfc, 0x02f2a7b7, 0x001a7836}}}, + {X: Field{[10]uint32{0x02217d5a, 0x01a461b5, 0x00c33576, 0x01154da3, 0x03743832, 0x0138274f, 0x037191dd, 0x018f9040, 0x0182c141, 0x0018df12}}, Y: Field{[10]uint32{0x02ecb410, 0x03695cf7, 0x00b77a74, 0x011d6b19, 0x00f6fb37, 0x028de0c6, 0x03aaa5c0, 0x034b8c96, 0x02b8fd83, 0x0036968a}}}, + {X: Field{[10]uint32{0x01b90e87, 0x022cf8dc, 0x037c6b19, 0x01604947, 0x00542556, 0x0014c368, 0x03f5fac2, 0x016d5f73, 0x03a2d887, 0x00067f9c}}, Y: Field{[10]uint32{0x00151ca0, 0x027de836, 0x01ad35a3, 0x0204a3f0, 0x01a32646, 0x03f97a2e, 0x027a77a1, 0x0094630d, 0x00182ccc, 0x000ec0eb}}}, + {X: Field{[10]uint32{0x03b7ebb2, 0x0156dfce, 0x0023471d, 0x02f7c513, 0x00c68b4c, 0x02d9a02c, 0x01151b30, 0x03700027, 0x022a0d4c, 0x00005ba9}}, Y: Field{[10]uint32{0x013fa629, 0x03f3a779, 0x01f6a8ff, 0x0180b8ee, 0x0135f020, 0x02566030, 0x00612a89, 0x00b964ce, 0x021c5367, 0x00232b12}}}, + {X: Field{[10]uint32{0x02a40970, 0x00d4e508, 0x012e849f, 0x0217efd4, 0x00e1eed4, 0x01e7e68a, 0x00e54132, 0x01b4859e, 0x00b5454c, 0x001ae75a}}, Y: Field{[10]uint32{0x02365482, 0x02c6c9eb, 0x01472fa4, 0x01952c17, 0x03907f85, 0x02a223ad, 0x01e6969d, 0x038df6be, 0x004498eb, 0x002d8fd4}}}, + {X: Field{[10]uint32{0x035ed3e6, 0x037449c2, 0x01d05868, 0x01f48c59, 0x0232c3c2, 0x03edfb24, 0x03dc948a, 0x0204b0b9, 0x008c08f0, 0x0007e883}}, Y: Field{[10]uint32{0x01838076, 0x0137ad8a, 0x020cfed8, 0x015ca029, 0x026cd168, 0x0308a7fa, 0x03686062, 0x00d909f7, 0x034d8213, 0x0031495f}}}, + {X: Field{[10]uint32{0x036acc86, 0x0229a86f, 0x02263e8e, 0x00e2f941, 0x02af15bb, 0x00763d4d, 0x031df6b3, 0x02d37873, 0x00927dae, 0x001cea0f}}, Y: Field{[10]uint32{0x02eb8adc, 0x01eb5aa0, 0x000ab2fb, 0x02af937d, 0x0126a21d, 0x02326e24, 0x034e24de, 0x030c2e0a, 0x03e40cd6, 0x002822b2}}}, + {X: Field{[10]uint32{0x0188bdbe, 0x01d87b9d, 0x015a48e1, 0x033bf4a9, 0x0285ba90, 0x03389978, 0x0278cf93, 0x00b7bb28, 0x0264924e, 0x000ea655}}, Y: Field{[10]uint32{0x00cbbb0e, 0x02351711, 0x00f39dd4, 0x02f40edf, 0x02d011a1, 0x0072bc63, 0x0065d939, 0x00cf4d49, 0x02dc99eb, 0x003cc886}}}, + {X: Field{[10]uint32{0x01429c26, 0x01fc9a4f, 0x005965e0, 0x03ead3e2, 0x025ca516, 0x030583a1, 0x005cd9b9, 0x03d73075, 0x0219b032, 0x001f197b}}, Y: Field{[10]uint32{0x023704c5, 0x015ca900, 0x02287ff9, 0x0178dd0f, 0x018cc54a, 0x02f88893, 0x01076ae4, 0x03c9df4c, 0x02f90e3d, 0x0011f1fe}}}, + {X: Field{[10]uint32{0x00d397dc, 0x0002c8b9, 0x00fb03dc, 0x0365976e, 0x032f05e6, 0x0332e340, 0x0153118d, 0x036ef6f6, 0x014c6750, 0x0030041a}}, Y: Field{[10]uint32{0x008e730c, 0x020ee01b, 0x01be2395, 0x00054b50, 0x025a5e61, 0x0065bc4c, 0x01fde10a, 0x01510567, 0x00c6dd6c, 0x000ed245}}}, + {X: Field{[10]uint32{0x02519d57, 0x005f3d98, 0x03ae75e3, 0x00b29c8f, 0x01a33dcb, 0x0084d84c, 0x015a12b9, 0x022db5be, 0x008ed28d, 0x00389561}}, Y: Field{[10]uint32{0x03cfb7b6, 0x0364990f, 0x02fe4d36, 0x03007841, 0x00377c9a, 0x02060ec9, 0x0207dcd1, 0x036b5e60, 0x01aa1757, 0x0018bdf5}}}, + {X: Field{[10]uint32{0x00236ed9, 0x0295b40b, 0x03c45bd1, 0x029ddbbf, 0x01a9669d, 0x00778c34, 0x0078dfbf, 0x00a648ea, 0x00e57323, 0x003cc506}}, Y: Field{[10]uint32{0x0256b84c, 0x008d2e2b, 0x01552af7, 0x03d87e22, 0x0316a1ef, 0x00c2d6bb, 0x0234c8a6, 0x03651957, 0x0084dce0, 0x00398aae}}}, + {X: Field{[10]uint32{0x01703181, 0x004b0aef, 0x03770615, 0x026ba319, 0x021f3f3c, 0x01f079aa, 0x01c290d4, 0x00c4eeb2, 0x0145b876, 0x00026b6e}}, Y: Field{[10]uint32{0x030908fd, 0x01d347a7, 0x00f8650f, 0x003b7c3c, 0x0251531d, 0x03777cac, 0x020b82be, 0x00985920, 0x0142b463, 0x002c87f0}}}, + {X: Field{[10]uint32{0x008da322, 0x01b0f160, 0x03f36172, 0x01182e0e, 0x03ca04b8, 0x00d6ce42, 0x01132e9b, 0x018e8615, 0x032b9d4a, 0x00311a0a}}, Y: Field{[10]uint32{0x035f6972, 0x02d740f4, 0x025a26ee, 0x016a0d73, 0x0014e907, 0x00f8dbc1, 0x02597622, 0x02e8c86d, 0x006a7100, 0x003c96a4}}}, + {X: Field{[10]uint32{0x0280d63a, 0x028419ba, 0x0003da99, 0x03ceb810, 0x02559159, 0x025f1d97, 0x027c4055, 0x02711e05, 0x016d60f4, 0x003aec3f}}, Y: Field{[10]uint32{0x02a0b0f7, 0x0321a39a, 0x00350afd, 0x019dc1bd, 0x00c4202f, 0x022d0c72, 0x022ffcf2, 0x03218876, 0x0160667a, 0x003acdf4}}}, + {X: Field{[10]uint32{0x01a5597a, 0x006f2f02, 0x0334e355, 0x026257d5, 0x0165ffb0, 0x03fd8dfc, 0x0267cbbb, 0x02f2d000, 0x012070d8, 0x001e3c4b}}, Y: Field{[10]uint32{0x03bb78f8, 0x005c240a, 0x037407de, 0x038ce65c, 0x037419a3, 0x021f6672, 0x03574d2c, 0x005d586e, 0x02b33662, 0x0010a5da}}}, + {X: Field{[10]uint32{0x01919f69, 0x022befa1, 0x01eee579, 0x02ef9d9e, 0x0235ae41, 0x02525886, 0x039fbc2b, 0x012d8e60, 0x004af621, 0x0000f7ff}}, Y: Field{[10]uint32{0x03f2c456, 0x03fab615, 0x020e9036, 0x03fa40a1, 0x02a13480, 0x02765d40, 0x01d15a42, 0x0086b88b, 0x036b1b40, 0x001605d2}}}, + {X: Field{[10]uint32{0x015a15cc, 0x0175d16d, 0x028bf55d, 0x0034c914, 0x00bd16bf, 0x036ddbae, 0x015198f4, 0x010b2884, 0x0393a4ed, 0x00104324}}, Y: Field{[10]uint32{0x02d58306, 0x03ea8297, 0x003d7059, 0x0069cc7f, 0x0283c298, 0x0328945d, 0x00c2cf9b, 0x02e26f05, 0x00b1df71, 0x001013fd}}}, + {X: Field{[10]uint32{0x024e3649, 0x01b1256f, 0x031966c1, 0x01a599e5, 0x00b93e65, 0x03f9a5df, 0x03366326, 0x02c1e4f7, 0x015687d6, 0x001ad354}}, Y: Field{[10]uint32{0x0169f4e3, 0x0304697a, 0x01c815d6, 0x002a5544, 0x001a2556, 0x036c5d83, 0x02a03152, 0x0081fd74, 0x0094bbac, 0x00191e92}}}, + {X: Field{[10]uint32{0x01f34247, 0x01c716e9, 0x01fd94a7, 0x0091af93, 0x016f0d87, 0x00017670, 0x03ccfd85, 0x01661bc2, 0x017ae87d, 0x00163feb}}, Y: Field{[10]uint32{0x00069817, 0x0173c03c, 0x02ce5e50, 0x01afb8da, 0x03b33fba, 0x03218a70, 0x00d6f93e, 0x0057ebd4, 0x02d8f9ab, 0x002b62de}}}, + {X: Field{[10]uint32{0x02a757fd, 0x003ab3e9, 0x02c72b31, 0x01a5ca24, 0x00adb956, 0x00fa20ed, 0x03277382, 0x03eb782b, 0x001d1835, 0x0039b4f9}}, Y: Field{[10]uint32{0x01359c15, 0x0283bc08, 0x02e61045, 0x02aed09e, 0x03d6395c, 0x036f6e3b, 0x0303e425, 0x03b39f3b, 0x008cb580, 0x00284db2}}}, + {X: Field{[10]uint32{0x01953b35, 0x02ba51c3, 0x032a5573, 0x010828b4, 0x023b561b, 0x006f0409, 0x01044792, 0x0280c2b0, 0x022b43aa, 0x003f11f1}}, Y: Field{[10]uint32{0x006224f0, 0x00c18009, 0x03b29502, 0x00982ce4, 0x01627236, 0x00287d44, 0x02b58104, 0x01e019cc, 0x011d65fc, 0x00174c63}}}, + {X: Field{[10]uint32{0x03db251b, 0x02b2df1b, 0x031ca36b, 0x028a4cf2, 0x02d0a1b8, 0x00d54e19, 0x0278da90, 0x00deec23, 0x0067cbcb, 0x0033ab8a}}, Y: Field{[10]uint32{0x02bb3dfd, 0x00b47742, 0x00c16d4c, 0x00a4e862, 0x03956cc6, 0x010dc9ed, 0x0017b373, 0x02aa55e5, 0x007ec163, 0x00122fcb}}}, + {X: Field{[10]uint32{0x03efeab0, 0x02090f86, 0x02d78daa, 0x01d3225c, 0x039195fb, 0x0145b621, 0x03408d82, 0x00d6d708, 0x0378c847, 0x002aec48}}, Y: Field{[10]uint32{0x0366698e, 0x01646ccf, 0x01a02abb, 0x00d99c10, 0x01ce901c, 0x032295b6, 0x010be913, 0x02919767, 0x024b0da5, 0x001682fd}}}, + {X: Field{[10]uint32{0x0159eeaf, 0x03a9c00c, 0x0024f274, 0x03a50e92, 0x021a576c, 0x038458c5, 0x005302b0, 0x031f2486, 0x02398330, 0x0035de07}}, Y: Field{[10]uint32{0x0106651a, 0x01192bc3, 0x03310fbb, 0x02665bdb, 0x01261aed, 0x006f8f5f, 0x027398dd, 0x03171cfb, 0x00324e07, 0x0018d069}}}, + {X: Field{[10]uint32{0x024c760c, 0x02dda11f, 0x01a6dbe5, 0x00cf7f50, 0x016f3ad1, 0x00a8877c, 0x0171646d, 0x008115cb, 0x01cd46ec, 0x0029a463}}, Y: Field{[10]uint32{0x0132fa9c, 0x015b9f42, 0x034e51f0, 0x03ecbd98, 0x001d6c7c, 0x01484e5f, 0x030e4b53, 0x01263669, 0x02ba378d, 0x00303946}}}, + {X: Field{[10]uint32{0x03d1a204, 0x001132a0, 0x027706ef, 0x03809234, 0x027785e2, 0x017f65c1, 0x02b340a6, 0x037980e4, 0x02e4fbb5, 0x00104e93}}, Y: Field{[10]uint32{0x023dd197, 0x03c5cbe2, 0x027c343a, 0x01d1476c, 0x016595a6, 0x006c23f4, 0x02bc668d, 0x023cd0ef, 0x0106c18a, 0x00280d89}}}, + {X: Field{[10]uint32{0x0204001c, 0x00560717, 0x011a8968, 0x01988dcc, 0x0287fd87, 0x03ef4449, 0x004aa082, 0x002483db, 0x0024de8b, 0x003869ef}}, Y: Field{[10]uint32{0x026bed16, 0x02ac4006, 0x0249b29b, 0x02c7bea3, 0x013a3d90, 0x00695719, 0x01aeea26, 0x021cf452, 0x01fdd0a2, 0x000f8eea}}}, + {X: Field{[10]uint32{0x01333a75, 0x0283f0f7, 0x0142d8a9, 0x026c5e56, 0x01ab1dde, 0x028cdf81, 0x02e077f8, 0x033312d6, 0x02a0a147, 0x003fe4a4}}, Y: Field{[10]uint32{0x0223a166, 0x03d6de1e, 0x007a43b6, 0x00ae0c17, 0x02b555ea, 0x016b577f, 0x014b4122, 0x00d18dd9, 0x027c5f7a, 0x003943c0}}}, + {X: Field{[10]uint32{0x00cb9c0c, 0x000e7513, 0x0140d900, 0x03186600, 0x03afe849, 0x001170b4, 0x007a36b0, 0x02774e77, 0x0223437c, 0x003ab959}}, Y: Field{[10]uint32{0x0132e043, 0x01a25d37, 0x037be39f, 0x0100dcb5, 0x0055e62e, 0x00bf9f9e, 0x02b5a9b2, 0x01d0db72, 0x01e99284, 0x003c6e32}}}, + {X: Field{[10]uint32{0x00bd5282, 0x000b2d55, 0x012273d0, 0x0012f322, 0x017f9c60, 0x01230e79, 0x02da0f30, 0x028f7f87, 0x00be3467, 0x001f7483}}, Y: Field{[10]uint32{0x001485d0, 0x01a9a25f, 0x014c64eb, 0x020a377f, 0x02ee9225, 0x005dca91, 0x034c3f83, 0x034b5533, 0x0323f035, 0x003b134b}}}, + {X: Field{[10]uint32{0x02a877eb, 0x00b68fc4, 0x03fc73a0, 0x03af6c36, 0x03e4e245, 0x00ef68f0, 0x03b88703, 0x004a4551, 0x01cc5acf, 0x000d6604}}, Y: Field{[10]uint32{0x0108a792, 0x02b3663a, 0x03a59bb6, 0x02f8ada0, 0x037702d1, 0x00470e89, 0x03f916f5, 0x028f781b, 0x00878b97, 0x003b4bd4}}}, + {X: Field{[10]uint32{0x01a71c24, 0x00440b92, 0x005a2c03, 0x03282f18, 0x035a6c76, 0x00689346, 0x02d57ea0, 0x0329393a, 0x009cf2bc, 0x003eccfa}}, Y: Field{[10]uint32{0x031c9f45, 0x00a1874b, 0x0180e019, 0x010309ba, 0x03d7fca9, 0x00aa49cb, 0x035b9584, 0x009c15ea, 0x02f5ca60, 0x0031d780}}}, + {X: Field{[10]uint32{0x01f687aa, 0x03aed5b9, 0x036069d1, 0x003bca4e, 0x01b7b297, 0x0016944a, 0x034f836b, 0x01d28054, 0x033e5eed, 0x00028734}}, Y: Field{[10]uint32{0x02c4a6b0, 0x01e34207, 0x01abcc99, 0x01ea25a8, 0x01bdefc3, 0x0390e03a, 0x02b60cc1, 0x030d14ec, 0x02b90ccf, 0x003e4346}}}, + {X: Field{[10]uint32{0x00213614, 0x014d4131, 0x00999b85, 0x027876cc, 0x025d9f16, 0x03b62b24, 0x03383cfc, 0x00edeafe, 0x02b90364, 0x001185a5}}, Y: Field{[10]uint32{0x0033bc72, 0x0035668c, 0x018d60de, 0x0339a566, 0x03ee91c4, 0x02bafff4, 0x0340a859, 0x003e8323, 0x00775f30, 0x0019d3d7}}}, + {X: Field{[10]uint32{0x014ab025, 0x00356f78, 0x01727f39, 0x03c89d1c, 0x021fd5cd, 0x00fdfa2a, 0x00885ae9, 0x027daf33, 0x02221b58, 0x001b1aaa}}, Y: Field{[10]uint32{0x02077538, 0x034b2eea, 0x0015c9f8, 0x005e2329, 0x02aeb844, 0x02d43e9d, 0x0164483f, 0x02e4346b, 0x020340e1, 0x0029df17}}}, + {X: Field{[10]uint32{0x0261c38b, 0x013f35d3, 0x00268387, 0x0069cab3, 0x01792eff, 0x039ca79b, 0x032c7ee6, 0x00cc4340, 0x0391927f, 0x00324634}}, Y: Field{[10]uint32{0x000dfb5b, 0x010f201e, 0x03965742, 0x01c9b89f, 0x00fce24a, 0x016db2d6, 0x021bed0e, 0x0123e3b6, 0x006c3460, 0x00163f5d}}}, + {X: Field{[10]uint32{0x01ea5918, 0x03b1625b, 0x022c2142, 0x03c0cfef, 0x019240c3, 0x004f1253, 0x02c26542, 0x028fd792, 0x02161ca0, 0x001219e7}}, Y: Field{[10]uint32{0x021d1a41, 0x0347c78f, 0x004a9a30, 0x039e73c8, 0x03b2a19f, 0x019e1038, 0x03a29667, 0x02bf8fa4, 0x03fe300c, 0x00155be4}}}, + {X: Field{[10]uint32{0x02e7b858, 0x01a28c31, 0x02584699, 0x0166b11a, 0x025e9456, 0x02ab0216, 0x02d6eede, 0x0191029c, 0x01a9e46b, 0x0031a301}}, Y: Field{[10]uint32{0x01de450d, 0x00991805, 0x032b61b1, 0x01a934af, 0x03c76874, 0x000da845, 0x03d64a1d, 0x03fe02f8, 0x01dc35d4, 0x002e2d2d}}}, + {X: Field{[10]uint32{0x01444e6a, 0x00e1d5e7, 0x02dc9f05, 0x038dbcc9, 0x0121e3df, 0x01b151a6, 0x0176dc4b, 0x01227e3e, 0x03106358, 0x00344cfb}}, Y: Field{[10]uint32{0x02f968cb, 0x00f140ae, 0x005becbf, 0x03af8cad, 0x02327ec3, 0x03f59a9b, 0x02b0f57a, 0x0034b09c, 0x03c4db69, 0x000b19aa}}}, + {X: Field{[10]uint32{0x01f976ae, 0x02b416cf, 0x0119392d, 0x01828807, 0x0261ca0a, 0x0229f8b6, 0x00766dc4, 0x0277aac4, 0x03598d75, 0x0014d513}}, Y: Field{[10]uint32{0x0069cd47, 0x010aff8a, 0x017e879a, 0x00454df8, 0x030993d7, 0x028666b5, 0x004e3f03, 0x01ebbc08, 0x005e61cb, 0x00112688}}}, + {X: Field{[10]uint32{0x03b8b331, 0x00d2b2e0, 0x00a622fe, 0x0177b8dd, 0x009254c6, 0x012dadf0, 0x02263851, 0x0144cce7, 0x00740fda, 0x000c4228}}, Y: Field{[10]uint32{0x028b6243, 0x00c04c89, 0x0115b5d9, 0x0347d678, 0x00d6fc05, 0x030bc891, 0x01a473da, 0x00ffaa2c, 0x010d5426, 0x0010bb72}}}, + {X: Field{[10]uint32{0x00b4b23c, 0x0336329f, 0x03962154, 0x0301ac8b, 0x012ee58a, 0x03ad5618, 0x0295099a, 0x00701367, 0x000d052c, 0x000599b1}}, Y: Field{[10]uint32{0x03a82fb9, 0x01112c64, 0x0284fb6c, 0x011f4807, 0x00abafc2, 0x001d4a55, 0x0355923e, 0x0198e2aa, 0x0341ae04, 0x0014196e}}}, + {X: Field{[10]uint32{0x0247722e, 0x01c915fb, 0x02ad53a5, 0x0242ef57, 0x02ed80fa, 0x01dacb60, 0x001290df, 0x039aa3c0, 0x03ebd3ee, 0x00325b41}}, Y: Field{[10]uint32{0x0220baf3, 0x0370b31f, 0x032c8d00, 0x0391e290, 0x0113ba06, 0x0262dd27, 0x0016af17, 0x02dfa68d, 0x0004447f, 0x0034f5a7}}}, + {X: Field{[10]uint32{0x0181b49d, 0x02136447, 0x03479fce, 0x02f5ecb0, 0x00647fa7, 0x0339d50b, 0x0369a9e8, 0x016c15e1, 0x0039b11b, 0x0002a7ff}}, Y: Field{[10]uint32{0x00bcbee7, 0x0348489a, 0x03747375, 0x0124e394, 0x0280a644, 0x016101c4, 0x00894dc2, 0x00a3dfa6, 0x024882e9, 0x002fb084}}}, + {X: Field{[10]uint32{0x03af0632, 0x0317eefd, 0x00f2737f, 0x01fc6980, 0x03e82578, 0x024c83f4, 0x015d3f52, 0x024e0239, 0x028ccd4c, 0x0014b284}}, Y: Field{[10]uint32{0x0135f7c4, 0x010b378c, 0x02ec370f, 0x024e0d9d, 0x0137ffa4, 0x03676fee, 0x02bab014, 0x0232ded3, 0x028095a9, 0x00211ba2}}}, + {X: Field{[10]uint32{0x01407c20, 0x03e8d3aa, 0x039ae8e0, 0x00948ca6, 0x00006985, 0x0127df25, 0x00abc41e, 0x02649dee, 0x02c177fd, 0x003fe4aa}}, Y: Field{[10]uint32{0x03fdcfb5, 0x01e7d163, 0x03331a33, 0x024d0a91, 0x03dafd9a, 0x01c8c0dc, 0x03bf2a9b, 0x0149cfae, 0x00dd5aaf, 0x002bc363}}}, + {X: Field{[10]uint32{0x03991e0c, 0x007406c9, 0x03f09a54, 0x02c75ca7, 0x025fb653, 0x005340be, 0x0163c973, 0x0028f0e0, 0x033ed3c1, 0x0029a4a9}}, Y: Field{[10]uint32{0x0068b905, 0x026f9a79, 0x03809cff, 0x0126694d, 0x02aa05c9, 0x02e09056, 0x0063d006, 0x034fa036, 0x015a3e5b, 0x0001c8bd}}}, + {X: Field{[10]uint32{0x0120aefd, 0x031ffb50, 0x024e2e2f, 0x0298c573, 0x006b813b, 0x03263520, 0x02fc4cd2, 0x026a4f8c, 0x003f7a62, 0x00367967}}, Y: Field{[10]uint32{0x030214bb, 0x023853eb, 0x00d30eb0, 0x00e44eaa, 0x013234be, 0x002691ff, 0x01bf6589, 0x00c4653d, 0x01942307, 0x00093389}}}, + {X: Field{[10]uint32{0x00a0f6ff, 0x02394d01, 0x0358714b, 0x0169816a, 0x034dde8d, 0x02af3c16, 0x0191ef79, 0x02c42592, 0x030f7771, 0x001d3949}}, Y: Field{[10]uint32{0x03b1670f, 0x02c1186c, 0x0088714b, 0x0199a455, 0x0371ced0, 0x00d5ac78, 0x03a285f1, 0x00fc25a1, 0x01a3a4a8, 0x000ab618}}}, + {X: Field{[10]uint32{0x01d4420c, 0x0007d64c, 0x03f587a2, 0x0292161f, 0x02744668, 0x0255f0e8, 0x02856157, 0x03df9d86, 0x02301c43, 0x002e45a4}}, Y: Field{[10]uint32{0x0019536f, 0x007dd396, 0x03e5bebe, 0x008fd6c8, 0x03659ea4, 0x01945696, 0x01818e0c, 0x020a0133, 0x025bc126, 0x002f4d81}}}, + {X: Field{[10]uint32{0x024d51ee, 0x00e7640d, 0x03cd8792, 0x0325654e, 0x02cd01fd, 0x0016dfec, 0x02d72115, 0x01a36a5c, 0x02538645, 0x000dfebc}}, Y: Field{[10]uint32{0x03c15f85, 0x0127ab4e, 0x02823657, 0x008dbdef, 0x01d8c125, 0x028ef258, 0x02ea7360, 0x02cf9f9a, 0x02ce749d, 0x002da6b8}}}, + {X: Field{[10]uint32{0x020cf8d2, 0x0021eee8, 0x0214b43b, 0x02630661, 0x011c379f, 0x00373419, 0x0082477f, 0x004e2cd2, 0x014c4a1c, 0x00386504}}, Y: Field{[10]uint32{0x0098a93b, 0x00dd62ba, 0x00d6789e, 0x034f5c75, 0x00889f2a, 0x01452a66, 0x0182cf06, 0x0388b8ec, 0x034bb90a, 0x001e8ebe}}}, + {X: Field{[10]uint32{0x0217ddaa, 0x0150de7e, 0x0333cca0, 0x03bc245c, 0x011c8b13, 0x02056234, 0x008e4b3c, 0x02d145ce, 0x03010d3f, 0x000b38b6}}, Y: Field{[10]uint32{0x027bbbc0, 0x00c35dcd, 0x00922e2c, 0x02ce0043, 0x0074285c, 0x0346955a, 0x021529ae, 0x01daa617, 0x029daf0e, 0x00248cb6}}}, + {X: Field{[10]uint32{0x016f051f, 0x0063e7cf, 0x01f49986, 0x01b9658d, 0x000bd66c, 0x03fa9da2, 0x00e2e821, 0x01c114f7, 0x00484bdb, 0x0030a4bb}}, Y: Field{[10]uint32{0x03b57d6d, 0x0067b225, 0x008872b1, 0x00d849bd, 0x0312b777, 0x03454c91, 0x00af49bf, 0x039a7134, 0x00f06b81, 0x0008429d}}}, + {X: Field{[10]uint32{0x01acfeee, 0x00c80da9, 0x002ad3e1, 0x020f5ded, 0x020933db, 0x0360eb4f, 0x03b423cc, 0x022bbda5, 0x01c09761, 0x00056f32}}, Y: Field{[10]uint32{0x008a7a33, 0x00ea01ae, 0x0211c1a8, 0x02a403a5, 0x01a1bb98, 0x01244b28, 0x033c4901, 0x025bf6fe, 0x02f11bb9, 0x003a7f1f}}}, + {X: Field{[10]uint32{0x021e7785, 0x0132c91b, 0x03113fd2, 0x031a6756, 0x00848639, 0x017cb4a6, 0x03e45fe5, 0x00ef5e5e, 0x00af50f1, 0x00118467}}, Y: Field{[10]uint32{0x0042ea3b, 0x009ea4c2, 0x01215b13, 0x00056bac, 0x00ba3015, 0x03be4cad, 0x022cf8f9, 0x01bae5dd, 0x0391f4c5, 0x001a880f}}}, + {X: Field{[10]uint32{0x02f9ecf4, 0x037e216d, 0x03a649d9, 0x025179ac, 0x01cf1410, 0x03687e7f, 0x0149a3d2, 0x03c60aa5, 0x03943e4d, 0x003ce85d}}, Y: Field{[10]uint32{0x02cf7e8f, 0x033b041b, 0x02115c80, 0x03ff20bb, 0x00444a1d, 0x0167e0ca, 0x02b66198, 0x02b4e7f0, 0x03cc5e82, 0x002cd3ad}}}, + {X: Field{[10]uint32{0x03913fe4, 0x001d71ad, 0x03d67536, 0x03e940a5, 0x01fa98bd, 0x016e6831, 0x01cbd45f, 0x03d1a36e, 0x027484a7, 0x0033be42}}, Y: Field{[10]uint32{0x02301815, 0x0290289a, 0x0173730f, 0x01579715, 0x01fb79a5, 0x00941e1d, 0x03029465, 0x03ef0a19, 0x02ad2a43, 0x0034243b}}}, + {X: Field{[10]uint32{0x035702ce, 0x031bb4a8, 0x00b06833, 0x02dae418, 0x0126c528, 0x02fe9598, 0x00b88b24, 0x02a4e3b1, 0x0214987a, 0x00087628}}, Y: Field{[10]uint32{0x004579e4, 0x019bc9b6, 0x03c8e94b, 0x03a69407, 0x00f736df, 0x00228a0c, 0x028167c0, 0x0288ef18, 0x000d5b65, 0x0030d50d}}}, + {X: Field{[10]uint32{0x021ca53e, 0x00e5460e, 0x0361d5d1, 0x03e91b81, 0x00e19196, 0x020b6f49, 0x0204f6cf, 0x02f9298a, 0x03279049, 0x001ac63f}}, Y: Field{[10]uint32{0x01ffa3b7, 0x033f6cb1, 0x038d86ca, 0x035c948b, 0x026343f0, 0x01a63e8c, 0x001e9b26, 0x004d9e3e, 0x030c52c0, 0x003be01b}}}, + {X: Field{[10]uint32{0x03466e6f, 0x02b8c772, 0x020ee850, 0x00db0206, 0x00bab07c, 0x028f99cf, 0x0332afbe, 0x03301354, 0x00f20452, 0x001f63bd}}, Y: Field{[10]uint32{0x00fa0c0d, 0x0298910b, 0x017bc137, 0x011fc644, 0x01d224da, 0x03c43db2, 0x03367d0d, 0x033bbc9c, 0x026755a2, 0x000c9185}}}, + {X: Field{[10]uint32{0x00d12cab, 0x012d2208, 0x01afd699, 0x0182c74c, 0x02034135, 0x016b1d28, 0x03b63276, 0x015927d6, 0x002155d1, 0x0031f786}}, Y: Field{[10]uint32{0x02eaa23a, 0x014b39e5, 0x02844482, 0x00d8475f, 0x007fbe01, 0x030c9036, 0x03b86595, 0x00b03f24, 0x0056c5fb, 0x00366596}}}, + {X: Field{[10]uint32{0x0381b294, 0x0224ef50, 0x005c600f, 0x0025ca65, 0x03eddeff, 0x017e93ac, 0x01eb6ee4, 0x00b0ec62, 0x033a915e, 0x00133b2c}}, Y: Field{[10]uint32{0x02a3aeb1, 0x02ef6387, 0x036ffd1b, 0x0384cc42, 0x033534d6, 0x02dc0335, 0x02250357, 0x0072e111, 0x0112b5e6, 0x0033c5fc}}}, + {X: Field{[10]uint32{0x02255749, 0x02a99619, 0x00c10204, 0x00aca172, 0x001c9bc7, 0x033c03f9, 0x003ab5d4, 0x0181aed3, 0x0064bfce, 0x00209b3d}}, Y: Field{[10]uint32{0x036849c4, 0x02388d5e, 0x011cbb87, 0x0192c600, 0x036d7ca5, 0x00542a8b, 0x016fabfb, 0x00a16d45, 0x0031527d, 0x001ae8ed}}}, + {X: Field{[10]uint32{0x008f8f62, 0x0061f9d9, 0x0028e0b2, 0x002360ba, 0x01de51d6, 0x035bf043, 0x012ba922, 0x03491546, 0x02c6f497, 0x003204b6}}, Y: Field{[10]uint32{0x008b317e, 0x01ad2aec, 0x028f61ba, 0x0361ddcf, 0x002be94d, 0x03ebd4ff, 0x026ee1ae, 0x001a0204, 0x00c77363, 0x000340ba}}}, + {X: Field{[10]uint32{0x00ff8851, 0x03574ff8, 0x00d1e3c6, 0x01adb8e3, 0x03aa4592, 0x027c53ae, 0x01eaa8bc, 0x01fd1f91, 0x010ebd96, 0x00149a55}}, Y: Field{[10]uint32{0x01a7455b, 0x021987e6, 0x0295a38b, 0x0340c21a, 0x01b45963, 0x0346cff4, 0x03422ffc, 0x03b3b510, 0x012026e3, 0x0028565f}}}, + {X: Field{[10]uint32{0x004d7676, 0x02bfb9fa, 0x01e9baf1, 0x01b55294, 0x00c7c2ae, 0x037102ea, 0x002721fc, 0x014b3ef1, 0x032980e6, 0x001ff3f2}}, Y: Field{[10]uint32{0x002cfcdd, 0x037afe22, 0x00ce9f95, 0x03d59aa7, 0x02a4d044, 0x0323c675, 0x02bcbaaa, 0x0238d3b1, 0x01904a40, 0x002afdcb}}}, + {X: Field{[10]uint32{0x00a9f451, 0x03712d99, 0x0057c079, 0x03ae2eaa, 0x033d5f25, 0x00ca9a81, 0x00e18a21, 0x03841212, 0x02a04597, 0x00217c06}}, Y: Field{[10]uint32{0x01f081af, 0x013b11f9, 0x0013204b, 0x03072d38, 0x025398ce, 0x016f3d15, 0x03b71ab3, 0x02061dee, 0x00eb8a05, 0x003dd18f}}}, + {X: Field{[10]uint32{0x02885628, 0x03e37fe4, 0x035fda01, 0x02f08900, 0x00dc1a5f, 0x003fafbb, 0x03fee1d1, 0x02183eb0, 0x021a7dcd, 0x000256d2}}, Y: Field{[10]uint32{0x02f7f772, 0x0101bb2f, 0x00d97f70, 0x03b48dce, 0x021f80bc, 0x0131bb8f, 0x029dfa69, 0x01119fbe, 0x039c5bd9, 0x000a8337}}}, + {X: Field{[10]uint32{0x036c51c5, 0x0243b35f, 0x009f049b, 0x02b3b11c, 0x008cd95c, 0x00ddd4f6, 0x014b38ce, 0x03742ec9, 0x00a624dd, 0x00013d89}}, Y: Field{[10]uint32{0x037a4fa5, 0x039612f1, 0x02bd070c, 0x03ac6e5d, 0x00668de4, 0x0333f515, 0x0220dcd8, 0x03b3640a, 0x028302ef, 0x0021d2a6}}}, + {X: Field{[10]uint32{0x0106b48d, 0x03759b5d, 0x00043437, 0x0215a635, 0x02a2914d, 0x0117a71b, 0x0040f585, 0x014def39, 0x0112e18b, 0x000e781a}}, Y: Field{[10]uint32{0x02f352e0, 0x01e859c1, 0x03ef18db, 0x01b51a56, 0x0200f06c, 0x004a2a84, 0x0080153c, 0x00c25aaf, 0x020a16e9, 0x003bfc83}}}, + {X: Field{[10]uint32{0x00f1ace9, 0x005ed19e, 0x013107a7, 0x02d97bee, 0x014c1d41, 0x032b6e5e, 0x03f4f590, 0x01e0c5d3, 0x013266d6, 0x0014bb70}}, Y: Field{[10]uint32{0x00d402d1, 0x01aef071, 0x0127c3af, 0x01563d1a, 0x03cb07cf, 0x01a135f4, 0x02c0bf49, 0x0078ff8c, 0x0202c678, 0x00395a78}}}, + {X: Field{[10]uint32{0x0328465f, 0x0290fcd0, 0x00d3a1df, 0x0235bcaa, 0x01e4e945, 0x02457f23, 0x0287f07c, 0x02041cf8, 0x0348964b, 0x0038dd92}}, Y: Field{[10]uint32{0x00fdb023, 0x01723cd3, 0x01b6c3ad, 0x02a94e9e, 0x005b7261, 0x03435d5d, 0x01b460f6, 0x0382e8d4, 0x024bfb13, 0x002f78a9}}}, + {X: Field{[10]uint32{0x00f513e6, 0x009fbfef, 0x00ebe756, 0x02b6710b, 0x03e1c81a, 0x03e05cca, 0x0038768e, 0x01a638fb, 0x01077c77, 0x00203bf9}}, Y: Field{[10]uint32{0x0388b709, 0x03c41280, 0x00bc3483, 0x005d6bb5, 0x02a9df2e, 0x014f4f67, 0x01e60599, 0x0247a5a5, 0x031bc543, 0x001a4319}}}, + {X: Field{[10]uint32{0x0108b641, 0x00fdc3f2, 0x02728517, 0x01fa4fe3, 0x0319b0bf, 0x01f348fb, 0x032bcac8, 0x03125e8b, 0x03d50ebc, 0x001212b1}}, Y: Field{[10]uint32{0x00ef371e, 0x013a97a4, 0x02eb61b4, 0x0254530a, 0x015bc8c9, 0x014fcc9c, 0x02b85516, 0x01c8da7c, 0x00e6f3b1, 0x0007655c}}}, + {X: Field{[10]uint32{0x03e3d124, 0x023ed7dd, 0x03f6536b, 0x0098e007, 0x02adf26c, 0x0105737e, 0x03ca53e4, 0x02f76137, 0x023fbf1f, 0x00272627}}, Y: Field{[10]uint32{0x00212a38, 0x02aac322, 0x02dd4c79, 0x010b5fc5, 0x002993c4, 0x023fb8eb, 0x00b3b802, 0x0058ee59, 0x021f5755, 0x0028d2b9}}}, + {X: Field{[10]uint32{0x01a5066b, 0x02315f5d, 0x018e0930, 0x034a5ec3, 0x0032846d, 0x0278dfe0, 0x016570f1, 0x03f9fd91, 0x030f601a, 0x00022e3e}}, Y: Field{[10]uint32{0x0048c9e7, 0x02ca783a, 0x03b3c240, 0x01c89bc0, 0x01d6166c, 0x003f59e8, 0x0232f100, 0x039b26cb, 0x02feffc4, 0x0001e162}}}, + {X: Field{[10]uint32{0x02e78177, 0x0367581f, 0x000ef451, 0x00e88470, 0x03bce095, 0x00297601, 0x01baa79e, 0x035e6a60, 0x02740ee1, 0x0038df43}}, Y: Field{[10]uint32{0x009f8f9c, 0x008fafec, 0x02e6f4bd, 0x024eaad3, 0x01a07d05, 0x03f9661d, 0x01b5625b, 0x0097d37c, 0x028502ad, 0x0034a284}}}, + {X: Field{[10]uint32{0x0325c147, 0x02a79c04, 0x00e194b2, 0x03555334, 0x03281052, 0x01d95ec7, 0x0258e754, 0x00da0eb5, 0x037e9a00, 0x00203215}}, Y: Field{[10]uint32{0x024d945c, 0x018d1bd5, 0x03fe432a, 0x0266f3ee, 0x03fe2baf, 0x01ca5cd1, 0x03ba8a0d, 0x028babb1, 0x00cd7ca3, 0x0002cff4}}}, + {X: Field{[10]uint32{0x02a8c6a1, 0x02ce0ccf, 0x0349adde, 0x0234b414, 0x0150f6ba, 0x01eb806a, 0x02f79026, 0x0087954d, 0x016d0341, 0x0039c117}}, Y: Field{[10]uint32{0x02181fba, 0x0222ae22, 0x019e4e7d, 0x00bfa5d5, 0x0060b37c, 0x00a97749, 0x01571d9c, 0x02537f85, 0x00db3269, 0x001cc1aa}}}, + {X: Field{[10]uint32{0x012e0d71, 0x025e3219, 0x029804f2, 0x03df2cd1, 0x02d87554, 0x0300e226, 0x03af0b13, 0x011fedac, 0x024b850a, 0x001574b6}}, Y: Field{[10]uint32{0x03e16e7c, 0x01879e77, 0x02780723, 0x01b57311, 0x010189a5, 0x008bbb97, 0x020b7b4f, 0x0343db34, 0x0182c861, 0x001ab03e}}}, + {X: Field{[10]uint32{0x01a38d2f, 0x00736c2c, 0x019f55bd, 0x00710100, 0x03a1e86d, 0x00540300, 0x03a5ff21, 0x00bdff20, 0x020955a2, 0x0033958b}}, Y: Field{[10]uint32{0x021bb865, 0x01b65ad4, 0x02d314bd, 0x00c9bc73, 0x02474070, 0x03717e0b, 0x030a165e, 0x0311ef1a, 0x004db4aa, 0x00247780}}}, + {X: Field{[10]uint32{0x0054773b, 0x0164b8de, 0x036fecc7, 0x02e1ae4e, 0x0100cd0e, 0x00c41fc7, 0x011bd645, 0x02bc15fe, 0x021f0596, 0x001d3803}}, Y: Field{[10]uint32{0x00e1d217, 0x03edd276, 0x01374e13, 0x005445e4, 0x016fa9f0, 0x0042851b, 0x0311867b, 0x00a94fac, 0x00a338e5, 0x000472a2}}}, + {X: Field{[10]uint32{0x0104eb48, 0x0267e788, 0x00530a2e, 0x00e6561a, 0x0368214d, 0x0324bb65, 0x003e400a, 0x03db2476, 0x036bc194, 0x002ba3c2}}, Y: Field{[10]uint32{0x03ce4cf2, 0x0173bb35, 0x02362c85, 0x01cc5191, 0x00d4aa8f, 0x02d5f2fe, 0x0127de9e, 0x02a4c0d8, 0x00420dc0, 0x003a5cff}}}, + {X: Field{[10]uint32{0x03891ae7, 0x00bf737b, 0x03674158, 0x0089bdda, 0x037854e7, 0x0197ccf4, 0x008e0c05, 0x00d9d784, 0x006c8df8, 0x00102a30}}, Y: Field{[10]uint32{0x007bf7ed, 0x00155762, 0x0224ea10, 0x00260ebd, 0x01b8ff9c, 0x003eaafb, 0x029e0b04, 0x01abf4f4, 0x0050b511, 0x0005ae9e}}}, + {X: Field{[10]uint32{0x01f83b33, 0x037c6f1b, 0x00e487f6, 0x02c13490, 0x03926795, 0x0187c7ff, 0x02b410f8, 0x03dbea8a, 0x02545c57, 0x00187aa7}}, Y: Field{[10]uint32{0x0279ed15, 0x01c56076, 0x0003c490, 0x019ce2a3, 0x02b9063e, 0x03514a7c, 0x021791f7, 0x005f0dcb, 0x012ae0b2, 0x0031a7b0}}}, + {X: Field{[10]uint32{0x01d37632, 0x0032d7b0, 0x031cc30a, 0x03b09920, 0x03d73e25, 0x00517f05, 0x01f55f72, 0x02aa93f3, 0x00d4440c, 0x00072227}}, Y: Field{[10]uint32{0x02d72fdf, 0x016f2508, 0x00166ee5, 0x02184558, 0x00574f5b, 0x036d792c, 0x014a2237, 0x0299f1cc, 0x0246131f, 0x000106d4}}}, + {X: Field{[10]uint32{0x0249525d, 0x0059a863, 0x02abb4ab, 0x001894e4, 0x01c58e0d, 0x02d42fe9, 0x02a99d3a, 0x021f9e60, 0x0090791d, 0x003fca56}}, Y: Field{[10]uint32{0x01454570, 0x02680686, 0x00a58e61, 0x027fbef9, 0x02c37087, 0x02201bef, 0x0249baf8, 0x004d9065, 0x00de1995, 0x00282599}}}, + {X: Field{[10]uint32{0x00e95f99, 0x02a1d9e1, 0x037857bc, 0x02bb66f7, 0x0174e399, 0x023e2433, 0x00939e5b, 0x007f401f, 0x02bfcfca, 0x0017acba}}, Y: Field{[10]uint32{0x032c9871, 0x03ee3efd, 0x00f63031, 0x0097f844, 0x0001f46f, 0x00589976, 0x01aff120, 0x01e0f080, 0x01701c9a, 0x001310ba}}}, + {X: Field{[10]uint32{0x02cbaf91, 0x01edad3d, 0x0361fcfc, 0x0136054f, 0x033b17bf, 0x0281c706, 0x03f8ce17, 0x0324ed6c, 0x008cdbcc, 0x0010f954}}, Y: Field{[10]uint32{0x03dfdcfc, 0x001cd0e6, 0x0063815a, 0x01cf6c90, 0x03c853bb, 0x002694c1, 0x01ec388d, 0x029c7942, 0x0378438b, 0x002d7b63}}}, + {X: Field{[10]uint32{0x01b56f53, 0x0303dd7f, 0x02c995b0, 0x021dfdb8, 0x00eb513f, 0x02bf94cf, 0x0207261c, 0x00837f21, 0x013023cb, 0x003d745a}}, Y: Field{[10]uint32{0x026ece68, 0x03837084, 0x008f492c, 0x0101bacb, 0x002557dd, 0x00f8a597, 0x03c4bf87, 0x020ccbdf, 0x01680152, 0x00394e6c}}}, + {X: Field{[10]uint32{0x00aba2a1, 0x038303de, 0x01eb6c7f, 0x01bee944, 0x0372313c, 0x0198a8ba, 0x0180a62d, 0x02a46118, 0x02d15dc5, 0x0036e759}}, Y: Field{[10]uint32{0x01517227, 0x02883ca8, 0x030b1f89, 0x02d6070f, 0x003cfb46, 0x0095e15f, 0x02762d92, 0x03716a78, 0x00a361f0, 0x00325b7a}}}, + {X: Field{[10]uint32{0x028ecdf2, 0x02992e21, 0x01ab6833, 0x00209ee6, 0x0356ffce, 0x02fd44ce, 0x0165bfe7, 0x018ef13d, 0x03d846fd, 0x0039d834}}, Y: Field{[10]uint32{0x02f102ce, 0x00397504, 0x003810e6, 0x0048a172, 0x012c1c1e, 0x01018b80, 0x021cc825, 0x00bad060, 0x028508be, 0x00183b99}}}, + {X: Field{[10]uint32{0x0033e026, 0x0075e417, 0x00d99135, 0x02c0c769, 0x00e3a956, 0x00b8dc01, 0x02533e71, 0x029eaf48, 0x02990cac, 0x000af6c8}}, Y: Field{[10]uint32{0x02e44731, 0x011c4fed, 0x03f82a78, 0x0218932e, 0x03801932, 0x009f4039, 0x003e877e, 0x0204176b, 0x00dfc273, 0x001919d7}}}, + {X: Field{[10]uint32{0x0166bee4, 0x021ee6a0, 0x03bbfc3c, 0x00838006, 0x007be48d, 0x03f5b211, 0x00137739, 0x0084d2de, 0x03fd0599, 0x00073382}}, Y: Field{[10]uint32{0x02d37057, 0x0222ef72, 0x034cc427, 0x00fb059b, 0x02b5eeb7, 0x03367a0f, 0x021253c4, 0x03f8c30e, 0x02e51ed7, 0x000b52a3}}}, + {X: Field{[10]uint32{0x03641075, 0x03e2695d, 0x035bd6eb, 0x0316ed95, 0x01ec8405, 0x031ae319, 0x01b5bd8e, 0x02b9effd, 0x03c37f5d, 0x001b5af8}}, Y: Field{[10]uint32{0x009c2c7f, 0x011b33eb, 0x01b80392, 0x0234d456, 0x0324d193, 0x0313abd2, 0x011507f7, 0x034ef180, 0x001f5c6f, 0x0013f4f3}}}, + {X: Field{[10]uint32{0x01b22351, 0x001f62ef, 0x0036cc60, 0x00bc50fa, 0x01b3c67f, 0x01d63e87, 0x03fb1ca8, 0x01e075e0, 0x0180d96e, 0x000360b0}}, Y: Field{[10]uint32{0x02d0c7d9, 0x01ee389e, 0x031e151a, 0x03d9e592, 0x0037415a, 0x01290c86, 0x033e9a97, 0x02b6a24e, 0x0269952a, 0x000e00bd}}}, + {X: Field{[10]uint32{0x01b3cd71, 0x0233860f, 0x02343b22, 0x03ba31cf, 0x00fbf9fc, 0x0151bc6e, 0x01dfed1b, 0x03f4d3e4, 0x02dd7e03, 0x0013b187}}, Y: Field{[10]uint32{0x003ba9a9, 0x021215ac, 0x01cffb19, 0x023eaa50, 0x02db7d94, 0x03a7b0f1, 0x0390340d, 0x038bb22b, 0x0309b5b2, 0x00384665}}}, + {X: Field{[10]uint32{0x017a034b, 0x01e07a78, 0x01643add, 0x023e39cd, 0x02a8df7a, 0x03ab44fb, 0x00744d7b, 0x02846e95, 0x006973ae, 0x000c6ab5}}, Y: Field{[10]uint32{0x00b37adb, 0x02d9d3e1, 0x02913f13, 0x03e39838, 0x02a94680, 0x033b5d21, 0x028bdf57, 0x03d818fd, 0x03413e49, 0x001919db}}}, + {X: Field{[10]uint32{0x01173e02, 0x00739353, 0x0131a5eb, 0x02f65f8a, 0x0201f946, 0x01627a98, 0x0115903b, 0x036e3bd9, 0x01892fcc, 0x002a6108}}, Y: Field{[10]uint32{0x01a3908b, 0x01222922, 0x02049abe, 0x01b42959, 0x0307ea26, 0x0335becd, 0x0370e133, 0x035e8e8c, 0x02ac3b2d, 0x00142f9d}}}, + {X: Field{[10]uint32{0x03bef099, 0x0383b3ad, 0x015e3f8f, 0x0022941a, 0x02fee79b, 0x01dd5033, 0x02cfa092, 0x0010cde9, 0x00f33ec0, 0x00208ad5}}, Y: Field{[10]uint32{0x036bf7f6, 0x01121448, 0x007128d0, 0x00dbf6a3, 0x007405d3, 0x022016fc, 0x003ddced, 0x03d811cd, 0x03c620d3, 0x000e4d88}}}, + {X: Field{[10]uint32{0x01065e0b, 0x037c9705, 0x02a3d33a, 0x0043a677, 0x0215793d, 0x02ff175f, 0x038de14e, 0x01c00317, 0x0355fe3d, 0x000403da}}, Y: Field{[10]uint32{0x02ecb4c2, 0x0335d293, 0x00e519b2, 0x034373b2, 0x00a352ff, 0x035b0445, 0x01282676, 0x037789f2, 0x00f758c4, 0x00346ed1}}}, + {X: Field{[10]uint32{0x02142f7f, 0x03a20db5, 0x031bb2d4, 0x01f16b6d, 0x006a5425, 0x00657425, 0x01aa6ecd, 0x03089d20, 0x03186a09, 0x00329760}}, Y: Field{[10]uint32{0x0277b42d, 0x013d3649, 0x0133de01, 0x00c7f1ce, 0x03878d8d, 0x012b815f, 0x03a0c388, 0x01e82bce, 0x007fb974, 0x00362421}}}, + {X: Field{[10]uint32{0x00bfbf14, 0x03684b89, 0x016cafa5, 0x00fc406d, 0x00e8ffe5, 0x0263fd84, 0x031a352f, 0x034838a4, 0x01f42234, 0x003a4709}}, Y: Field{[10]uint32{0x024dbb86, 0x02d288a5, 0x02b41872, 0x03d450f3, 0x037a26bc, 0x0183a669, 0x01740f6d, 0x0314af1c, 0x01e5441e, 0x002c7b05}}}, + {X: Field{[10]uint32{0x02e34445, 0x02750b06, 0x0306509e, 0x011cb33d, 0x03acb545, 0x00ba66b9, 0x029b2902, 0x000b6215, 0x00dc3109, 0x0015ea32}}, Y: Field{[10]uint32{0x00ab1fb7, 0x0185878c, 0x00accb9c, 0x00fee308, 0x0250e7cc, 0x01219abb, 0x0292db56, 0x038277d3, 0x01410442, 0x00214891}}}, + {X: Field{[10]uint32{0x0104500f, 0x00116c1c, 0x007d9581, 0x00769bfa, 0x0355a853, 0x02300adb, 0x01d0d412, 0x0345b6eb, 0x00672502, 0x0008cae3}}, Y: Field{[10]uint32{0x01f93fb9, 0x02903d61, 0x00f399a7, 0x03679863, 0x034f5255, 0x0152524b, 0x03c476f6, 0x02161c89, 0x020e9e7d, 0x000e0442}}}, + {X: Field{[10]uint32{0x03004fec, 0x0189ff9d, 0x00876187, 0x031c38f7, 0x020750d5, 0x0067df9e, 0x01d48763, 0x01a6cd3d, 0x028ad71f, 0x001f42f9}}, Y: Field{[10]uint32{0x01124633, 0x027bf351, 0x01e67ca0, 0x0060b291, 0x02a12b1d, 0x0296e5c7, 0x02f54028, 0x03cf9875, 0x00507d0a, 0x000f9ca8}}}, + {X: Field{[10]uint32{0x02f93292, 0x01e8b49e, 0x00d836ba, 0x0312691b, 0x01b70b02, 0x00310d21, 0x01fa4369, 0x0289c725, 0x030b77c2, 0x00137617}}, Y: Field{[10]uint32{0x0011d597, 0x038efd47, 0x0178e8c9, 0x01348206, 0x00f139e6, 0x036b69e8, 0x02b6ff85, 0x01366122, 0x02e5c955, 0x00210d90}}}, + {X: Field{[10]uint32{0x012e52f8, 0x01938bdc, 0x032149e2, 0x0307add9, 0x023eb2e5, 0x012ea69e, 0x03531a17, 0x008011c2, 0x03f588f0, 0x0014dea4}}, Y: Field{[10]uint32{0x000e161f, 0x00e6d84d, 0x03ebb3f8, 0x03e5e095, 0x0394efa1, 0x006256bc, 0x0225f067, 0x02499823, 0x03a0dc00, 0x002c366c}}}, + {X: Field{[10]uint32{0x02e48684, 0x00accc67, 0x00ae8b97, 0x02420962, 0x01ab3465, 0x03e0aff4, 0x00e60a46, 0x00795e63, 0x0071325b, 0x0004febd}}, Y: Field{[10]uint32{0x0234f743, 0x0086b79d, 0x00bfa49a, 0x0062116e, 0x02dce7ba, 0x026c8806, 0x02f25857, 0x02d4a788, 0x0384e84e, 0x00299c80}}}, + {X: Field{[10]uint32{0x03e8acb8, 0x03910173, 0x0206be1b, 0x02088b67, 0x03ca17c4, 0x00277b79, 0x015dbea8, 0x02cd1380, 0x00ed5861, 0x001a4789}}, Y: Field{[10]uint32{0x01c529ab, 0x026ddae4, 0x03f966f4, 0x0250f43c, 0x035ad002, 0x036718d1, 0x0120d909, 0x01ec3f31, 0x02dc0c19, 0x0038d592}}}, + {X: Field{[10]uint32{0x013d7ea2, 0x0305771f, 0x0373f423, 0x03e2411f, 0x03b754b3, 0x02ccd248, 0x02a394ff, 0x02a14056, 0x0391aaae, 0x000d950e}}, Y: Field{[10]uint32{0x03be5799, 0x0228bc6e, 0x02fd52d6, 0x03f9687e, 0x039dff44, 0x00860252, 0x008c8389, 0x02003a39, 0x0293b79b, 0x0001ced1}}}, + {X: Field{[10]uint32{0x0033f05b, 0x0082c1e1, 0x008a224f, 0x02c3f8ef, 0x000e007b, 0x00c83aa0, 0x00450455, 0x02032c78, 0x03e03941, 0x003fc96a}}, Y: Field{[10]uint32{0x030b7e51, 0x00d8c794, 0x026c2f90, 0x038022bb, 0x02938f69, 0x03676d04, 0x01bd678a, 0x0399439b, 0x010926df, 0x002944ac}}}, + {X: Field{[10]uint32{0x0187e443, 0x00e2685f, 0x0322272d, 0x0305c314, 0x00cc607b, 0x034091eb, 0x0051f57c, 0x03f6bd44, 0x007b5faa, 0x000077b0}}, Y: Field{[10]uint32{0x03a9a325, 0x014252e7, 0x038d3bb3, 0x019f4384, 0x00d870ce, 0x016636b5, 0x02207a92, 0x00af0168, 0x0137382b, 0x001f9dfa}}}, + {X: Field{[10]uint32{0x03413c32, 0x030a6527, 0x02236029, 0x0237f18d, 0x01485ab7, 0x00538246, 0x020147ed, 0x0218cba8, 0x0376f62f, 0x000bc43d}}, Y: Field{[10]uint32{0x00d2184a, 0x009a7b1a, 0x02f5ad25, 0x01a0cf9f, 0x0235c236, 0x02a9ac7d, 0x01d8c8b5, 0x0118b82e, 0x03c6e760, 0x000ecb17}}}, + {X: Field{[10]uint32{0x02bd73ca, 0x018008b6, 0x00188311, 0x010f3060, 0x02ade319, 0x02f2bed2, 0x03096814, 0x00b36eb3, 0x0394e61c, 0x001e5d3c}}, Y: Field{[10]uint32{0x01e98309, 0x020d8022, 0x0005673c, 0x03a0c439, 0x012be4cd, 0x004ee914, 0x01f854e8, 0x02a99a1f, 0x01a03bc1, 0x00386cd3}}}, + {X: Field{[10]uint32{0x0301c332, 0x01d233c5, 0x01b14436, 0x03780e94, 0x0132af1e, 0x012a8da5, 0x01774698, 0x03105959, 0x03393c5c, 0x00015317}}, Y: Field{[10]uint32{0x01043e4e, 0x0306da81, 0x020cd800, 0x02b3bde2, 0x02ddbde8, 0x03baadae, 0x030626a0, 0x0273148a, 0x03494976, 0x000f719e}}}, + {X: Field{[10]uint32{0x025f3783, 0x03068ed0, 0x0115d081, 0x00179556, 0x028092e9, 0x0061616b, 0x00a972a3, 0x031fac76, 0x0296f047, 0x000666a8}}, Y: Field{[10]uint32{0x0346c262, 0x03a3f1fa, 0x002e2b87, 0x038433b8, 0x02585154, 0x03f4e899, 0x00a7946d, 0x01ea5ad3, 0x027964d1, 0x003d608d}}}, + {X: Field{[10]uint32{0x03b7f299, 0x03c222a6, 0x03e879a7, 0x02f9e5da, 0x03cbcdf0, 0x007f1639, 0x0292a3ba, 0x01b7e9b0, 0x01d6fb61, 0x0034574e}}, Y: Field{[10]uint32{0x03d7a900, 0x016e980a, 0x01061f70, 0x00602d5f, 0x01679dd4, 0x010eff1e, 0x03d4912f, 0x03e0def6, 0x017c4e37, 0x001322ba}}}, + {X: Field{[10]uint32{0x024ef58b, 0x019a0fcd, 0x02df5a6f, 0x032a696b, 0x01bff26e, 0x0012e0af, 0x02332c6a, 0x01f7f206, 0x0134880e, 0x001db594}}, Y: Field{[10]uint32{0x001507e7, 0x01101ad0, 0x0246a646, 0x02f16fc4, 0x027b4aa5, 0x025d6e68, 0x02c90486, 0x00b60e87, 0x0308bbd2, 0x002dc6b9}}}, + {X: Field{[10]uint32{0x00ae51b7, 0x002050f7, 0x02a02a03, 0x03865301, 0x03452ef0, 0x024bfea6, 0x02e9ead7, 0x03f8d8c2, 0x02a5d4df, 0x0007ad34}}, Y: Field{[10]uint32{0x03f47b0b, 0x01736f5b, 0x0144c9a5, 0x019d626c, 0x027cc94b, 0x0232cfb6, 0x0286af45, 0x0239e668, 0x00c1e6ab, 0x0022365e}}}, + {X: Field{[10]uint32{0x01df571d, 0x004bc337, 0x0162f955, 0x0349144d, 0x01e474bd, 0x01c4188f, 0x01c34516, 0x021e40d8, 0x02513570, 0x0037b80c}}, Y: Field{[10]uint32{0x0290f565, 0x03121e85, 0x027c307f, 0x008ec819, 0x00496d96, 0x00463ffb, 0x028a28dc, 0x036024b1, 0x00fdcbf6, 0x00348b6f}}}, + {X: Field{[10]uint32{0x02d4760a, 0x008d5b95, 0x005aeef0, 0x0277cd8e, 0x01bf1dbd, 0x03c4fd42, 0x028f0d55, 0x031af7fd, 0x032dc98a, 0x000bac09}}, Y: Field{[10]uint32{0x02a04277, 0x03280ac9, 0x03746111, 0x0111c847, 0x035c69ad, 0x0015cda1, 0x02a18329, 0x013ae89e, 0x03554aaf, 0x003e0350}}}, + {X: Field{[10]uint32{0x030eabf3, 0x02c0c86a, 0x036b5c39, 0x03a809d8, 0x02b75853, 0x01de2208, 0x036ff7fc, 0x019cb63f, 0x02697509, 0x003abd8b}}, Y: Field{[10]uint32{0x020a3b7c, 0x03f7b6cb, 0x000956ef, 0x0180d41c, 0x008614e1, 0x001ccfc7, 0x0388b969, 0x0388b5c6, 0x02aa1c8f, 0x00110b95}}}, + {X: Field{[10]uint32{0x00592858, 0x03dcab81, 0x01d3b15e, 0x0216e1e6, 0x03cbc701, 0x00dbbd18, 0x01c442c2, 0x01bf65af, 0x030a13d9, 0x00081641}}, Y: Field{[10]uint32{0x00961ec8, 0x028d2f45, 0x014a280d, 0x03fa406e, 0x00f426fb, 0x01ab95b6, 0x0221d7f4, 0x026ba3d8, 0x02e83f25, 0x002f2410}}}, + {X: Field{[10]uint32{0x012f52fe, 0x009749eb, 0x0062a0f9, 0x01108231, 0x014b8b4a, 0x0113b0a0, 0x03b4ceea, 0x00f9f9bd, 0x03fd9e7f, 0x003fcbbd}}, Y: Field{[10]uint32{0x030a5e24, 0x03393cf7, 0x03e3b233, 0x011dada7, 0x030956a4, 0x019fd44d, 0x016cb52a, 0x01cad205, 0x00fbfa6f, 0x001ab39d}}}, + {X: Field{[10]uint32{0x01d14d83, 0x01fe7602, 0x03bf620f, 0x039937c5, 0x01d8fd0d, 0x00d5ffc7, 0x037a7b04, 0x014fef4c, 0x02f6fc45, 0x0038f973}}, Y: Field{[10]uint32{0x038f0460, 0x013d1348, 0x033651b8, 0x03fa2811, 0x03e667b6, 0x01a691d7, 0x011863f7, 0x02d83f43, 0x01a1baa7, 0x002b377f}}}, + {X: Field{[10]uint32{0x0357a6c3, 0x0046736f, 0x0054ec11, 0x01def78f, 0x01a0c645, 0x019ae708, 0x0142341a, 0x00a203a6, 0x026a41c0, 0x0025ea1c}}, Y: Field{[10]uint32{0x0367b4e8, 0x0330e362, 0x01164681, 0x03fcd167, 0x01fe160a, 0x01b61178, 0x00cc5c72, 0x00f41c1e, 0x00ae2702, 0x002d7cdf}}}, + {X: Field{[10]uint32{0x01cc81e6, 0x00811427, 0x001c41b0, 0x000875de, 0x0012fd90, 0x0067ab6d, 0x039484a1, 0x03e50e18, 0x02e94862, 0x002ac079}}, Y: Field{[10]uint32{0x0083b14b, 0x007b815d, 0x000436b1, 0x03d0568c, 0x0148853c, 0x00bb5e79, 0x01fab050, 0x0170e814, 0x0032101b, 0x001ab943}}}, + {X: Field{[10]uint32{0x0273668f, 0x03a857dd, 0x02b0d5a2, 0x01302a30, 0x0258ed9a, 0x023611e7, 0x026ba5ac, 0x033dac0b, 0x0010da2d, 0x00031191}}, Y: Field{[10]uint32{0x03499945, 0x02f0e182, 0x01361adb, 0x01114827, 0x03eadee9, 0x034f3916, 0x017f333c, 0x00b1f796, 0x01906239, 0x000da631}}}, + {X: Field{[10]uint32{0x03867534, 0x00263d05, 0x03d8648f, 0x00909bb6, 0x01ee49d5, 0x01b041e5, 0x013b0e67, 0x007cf880, 0x00685f72, 0x0005fab3}}, Y: Field{[10]uint32{0x009ef300, 0x018fb386, 0x0201bd6b, 0x015ba652, 0x03fec0f8, 0x00eaddbe, 0x037214bb, 0x027d26ef, 0x02e90cb1, 0x00330c45}}}, + {X: Field{[10]uint32{0x00c00d73, 0x00537ab5, 0x0208f2b1, 0x02f35f4d, 0x013ed2e8, 0x02fbf54f, 0x01b77bd5, 0x03bc5d4e, 0x01402908, 0x00301037}}, Y: Field{[10]uint32{0x01279c00, 0x020d6d05, 0x013d7427, 0x032db383, 0x02b2053e, 0x01444f73, 0x01403d84, 0x00960134, 0x00ae55ec, 0x001e98e1}}}, + {X: Field{[10]uint32{0x02bddb42, 0x000f8e4b, 0x01b9341b, 0x028aea4b, 0x0041bf2b, 0x019668a4, 0x0025fed6, 0x03dc30bb, 0x00983658, 0x0029658d}}, Y: Field{[10]uint32{0x039f4872, 0x002b7935, 0x01600a95, 0x034a08d6, 0x011ce7c2, 0x01a55e17, 0x00e8bf41, 0x03129c2a, 0x00af260e, 0x00370453}}}, + {X: Field{[10]uint32{0x0329aa0d, 0x01f3a846, 0x02279989, 0x01c8ce77, 0x03663823, 0x00ce0db1, 0x0233d095, 0x03d8ff1f, 0x02d451dc, 0x00113f88}}, Y: Field{[10]uint32{0x004279b3, 0x015df313, 0x01a9e53b, 0x003eba01, 0x014f3bf8, 0x00925bde, 0x01e9ffae, 0x0350d24a, 0x00e73d4b, 0x0005c631}}}, + {X: Field{[10]uint32{0x0071647b, 0x019a844b, 0x0091cff4, 0x03cfb57b, 0x004fc6b5, 0x00912ff6, 0x03b246de, 0x03057be8, 0x00aa1358, 0x0022f5c6}}, Y: Field{[10]uint32{0x03d737fa, 0x01b7fa12, 0x02fa5f40, 0x032110ec, 0x0365a0a3, 0x010009e4, 0x03deb8de, 0x0047c06d, 0x0288ba6c, 0x0005cbc6}}}, + {X: Field{[10]uint32{0x038680d1, 0x03e3385c, 0x03cfcd9f, 0x0355773c, 0x01d7ad4c, 0x03fce9e9, 0x01aa53c3, 0x02a88e02, 0x0025bbe6, 0x0023af73}}, Y: Field{[10]uint32{0x01e5641a, 0x02621d51, 0x01872cd7, 0x0199e2b1, 0x005be647, 0x0221b60f, 0x003728cf, 0x02b7e803, 0x0326af86, 0x0017158e}}}, + {X: Field{[10]uint32{0x011713d2, 0x0319f83a, 0x02f4e9db, 0x034bfadc, 0x02b469e5, 0x03a25b3e, 0x0342fb8b, 0x02aaf265, 0x021f688f, 0x00173d53}}, Y: Field{[10]uint32{0x00fd09c5, 0x011e1af9, 0x00b18569, 0x02a218c9, 0x034920e8, 0x0240556c, 0x006393e1, 0x00c360be, 0x0190d063, 0x00360b59}}}, + {X: Field{[10]uint32{0x01845f1a, 0x03061ea1, 0x02f8cdb4, 0x03053228, 0x01387185, 0x00115c7b, 0x0016ff4e, 0x02869cbb, 0x02e43f01, 0x001b0365}}, Y: Field{[10]uint32{0x00798c08, 0x02a5a9ac, 0x01dd6e55, 0x00e8c45f, 0x00abcf01, 0x026edbdc, 0x0015c1bb, 0x030bb3cd, 0x014b763e, 0x003ce668}}}, + {X: Field{[10]uint32{0x02b74046, 0x00cb70e4, 0x02ad690d, 0x002fa9c5, 0x039a15ef, 0x01c9a84c, 0x01f15155, 0x00bf7341, 0x00fefb6a, 0x003aba4a}}, Y: Field{[10]uint32{0x014c76bc, 0x03315dc0, 0x01b0984e, 0x0099835b, 0x02f6fd46, 0x035bb503, 0x03da7978, 0x00ce772f, 0x02d9f086, 0x002f7e1e}}}, + {X: Field{[10]uint32{0x007b3a21, 0x00802391, 0x008f0d57, 0x02cc6a9a, 0x02b61d5c, 0x00382376, 0x030dbbd0, 0x00bf7b67, 0x030cbbe7, 0x00397978}}, Y: Field{[10]uint32{0x01b248ae, 0x000196a1, 0x0035c561, 0x020a8415, 0x005de656, 0x0145c73a, 0x006ec03d, 0x01b99d1f, 0x01b8f80b, 0x0027ed2b}}}, + {X: Field{[10]uint32{0x038223ee, 0x036f3284, 0x00b79007, 0x00329e68, 0x0078df6b, 0x01acc02f, 0x02ce1762, 0x01aedf16, 0x02acc9e2, 0x001c4484}}, Y: Field{[10]uint32{0x03027757, 0x02a9cabb, 0x01cbbdc3, 0x00e46384, 0x036b8732, 0x0131cff8, 0x02b343bc, 0x01377679, 0x00584ef4, 0x000371a2}}}, + {X: Field{[10]uint32{0x01c5e22c, 0x00d03c08, 0x03d506b6, 0x02ca9319, 0x00c4cf11, 0x02d795e1, 0x03b9ea3f, 0x0293db76, 0x03b3531a, 0x000ed4ba}}, Y: Field{[10]uint32{0x0190938a, 0x02665aec, 0x039de55a, 0x0298f17e, 0x00b698c8, 0x01a06190, 0x02cf02e4, 0x011a84fe, 0x02bddc00, 0x000f68fb}}}, + {X: Field{[10]uint32{0x0356b78b, 0x01daf733, 0x02df91eb, 0x005fa5b2, 0x0245294a, 0x03871e95, 0x02e7292f, 0x011789f7, 0x00811103, 0x000c3ca1}}, Y: Field{[10]uint32{0x03abb049, 0x035c0add, 0x02b088e6, 0x01902877, 0x003c1491, 0x01445beb, 0x007864d2, 0x038d2fc1, 0x00fc26ec, 0x001c3184}}}, + {X: Field{[10]uint32{0x0130ff58, 0x0055937a, 0x01ab5edf, 0x009da675, 0x015cfef5, 0x0329287c, 0x00d37b61, 0x0156d939, 0x00a8012c, 0x00012a11}}, Y: Field{[10]uint32{0x003dfa3c, 0x0227565a, 0x00cd3f31, 0x03018c9d, 0x025826f9, 0x0342a7fd, 0x03e6bd38, 0x039b936e, 0x0148508d, 0x001261d1}}}, + {X: Field{[10]uint32{0x0068b06f, 0x0279b19e, 0x01026451, 0x0177b714, 0x0005ce2b, 0x02667853, 0x02e0fd9a, 0x01212990, 0x021ea7c8, 0x00297295}}, Y: Field{[10]uint32{0x01afa7ed, 0x0310e8e1, 0x025a47a7, 0x01a89077, 0x037abe38, 0x03fe9fda, 0x009b00ea, 0x03bbaab0, 0x0142a5e2, 0x0033245e}}}, + {X: Field{[10]uint32{0x03d6e72c, 0x03e3b937, 0x017ef3c1, 0x031915b9, 0x021fa547, 0x0043d852, 0x0051a68e, 0x03115b0e, 0x02d31e16, 0x003d86df}}, Y: Field{[10]uint32{0x03622f2b, 0x028ca017, 0x01a54734, 0x00453426, 0x02a0c5a8, 0x0345efe9, 0x035fbdb4, 0x00619647, 0x00b7fc40, 0x0032c9b4}}}, + {X: Field{[10]uint32{0x01f678b2, 0x01586145, 0x007fcaee, 0x019a8888, 0x02559768, 0x01d9bef9, 0x02859f9e, 0x000312d4, 0x00628897, 0x003e3935}}, Y: Field{[10]uint32{0x02c77554, 0x006a93ae, 0x011ae6f0, 0x02542775, 0x0106791e, 0x03eeddac, 0x009c271b, 0x01bec2a8, 0x039fc1b1, 0x000c2ec0}}}, + {X: Field{[10]uint32{0x032ab653, 0x00a4274c, 0x0291ca39, 0x001a9c5e, 0x03d5d97a, 0x0060528b, 0x02f6f717, 0x0164542c, 0x001a05d2, 0x002272bf}}, Y: Field{[10]uint32{0x017ab76e, 0x00bc5109, 0x03ce16fe, 0x036983a1, 0x015eac02, 0x0053cd38, 0x01c00557, 0x0121634a, 0x00ab0b4e, 0x00068928}}}, + {X: Field{[10]uint32{0x037c4f20, 0x02365f51, 0x020bb4a4, 0x0155aba9, 0x0033c5b5, 0x028ab544, 0x0201dca7, 0x01773f2a, 0x030bd04f, 0x0034a14d}}, Y: Field{[10]uint32{0x0293b9d4, 0x01348091, 0x01b416c4, 0x02cb1a60, 0x01c61386, 0x031c1451, 0x022adf8e, 0x0217404e, 0x03b732e8, 0x00352d09}}}, + {X: Field{[10]uint32{0x01f217c0, 0x01bd9a93, 0x00974902, 0x019b87f5, 0x01fd3350, 0x01eae89a, 0x01dc90d1, 0x02fecc86, 0x02f2d9bd, 0x0000f14c}}, Y: Field{[10]uint32{0x02ac5d59, 0x00f8c199, 0x0057675b, 0x03e7e320, 0x032791a6, 0x02104e5d, 0x033c7b42, 0x01ff40b0, 0x027ca6c9, 0x0021bf57}}}, + {X: Field{[10]uint32{0x008ac1ee, 0x000c5333, 0x02924b73, 0x00f8df89, 0x02298445, 0x00c0dc89, 0x0317a165, 0x01c1a886, 0x010bfc35, 0x00093465}}, Y: Field{[10]uint32{0x01f918ac, 0x0307aa72, 0x01ed84b9, 0x03822d5f, 0x01b05bb9, 0x026ba69d, 0x0247c685, 0x006a42ec, 0x005d06a3, 0x001348a9}}}, + {X: Field{[10]uint32{0x027615a9, 0x020acd93, 0x03d44595, 0x01042ad9, 0x02d85053, 0x0280dbf0, 0x01f8acee, 0x02c6ac52, 0x00f36227, 0x00331aac}}, Y: Field{[10]uint32{0x03761cb8, 0x01a028e0, 0x037d7107, 0x02bd5283, 0x01bac918, 0x003e9bc8, 0x00806b12, 0x0049619f, 0x03cc040b, 0x003e6b64}}}, + {X: Field{[10]uint32{0x025318cf, 0x03fdc6c0, 0x01cdef08, 0x00366c50, 0x016320f2, 0x01cc2e67, 0x0016bcff, 0x0252db2a, 0x0154f36e, 0x0037892a}}, Y: Field{[10]uint32{0x03899933, 0x00129076, 0x014d9679, 0x017a920e, 0x038475c3, 0x012bf58b, 0x002d2354, 0x012926e6, 0x01d91ac2, 0x000f8d2c}}}, + {X: Field{[10]uint32{0x021ffec7, 0x03fc9496, 0x03618f83, 0x036d23ea, 0x015f8243, 0x0254f3ef, 0x003a12c7, 0x02aea436, 0x00c34900, 0x001deac1}}, Y: Field{[10]uint32{0x00ac2f00, 0x01cfbfaf, 0x032bdae8, 0x00680c28, 0x01231c87, 0x016a36cc, 0x02265af7, 0x01dffd25, 0x00273bcd, 0x0018996b}}}, + {X: Field{[10]uint32{0x02e78209, 0x012b5445, 0x0341ece8, 0x03b876ad, 0x0251ff8d, 0x00656028, 0x0079885d, 0x02679780, 0x03065f46, 0x00291ebd}}, Y: Field{[10]uint32{0x02257440, 0x03cd2e5e, 0x03abfbb8, 0x0220f6bf, 0x035b7860, 0x01196ae5, 0x023f7cb3, 0x03de2e95, 0x03fdf1b1, 0x000e4f2e}}}, + {X: Field{[10]uint32{0x00d7016d, 0x0117a7a7, 0x037ea8a5, 0x038754a8, 0x0293d709, 0x000c8809, 0x01170fbd, 0x031edd37, 0x01fd0c55, 0x002a7d7e}}, Y: Field{[10]uint32{0x01d5e0e1, 0x012c417c, 0x0162b873, 0x009fdad8, 0x0254f0d3, 0x027a02ac, 0x01847b2e, 0x03c8ba3f, 0x01254bad, 0x00261c5e}}}, + {X: Field{[10]uint32{0x0218ec38, 0x01f358d3, 0x03b716cc, 0x01902a51, 0x01ba8668, 0x0161b9f8, 0x02200c4e, 0x00e28a3e, 0x02bc96b9, 0x00355fa7}}, Y: Field{[10]uint32{0x01b6bd36, 0x029aab34, 0x016a3062, 0x03abca16, 0x0325de16, 0x0104b7e1, 0x00c8b7cb, 0x0244416d, 0x02ef6823, 0x0026a834}}}, + {X: Field{[10]uint32{0x03aa58e9, 0x001a0a43, 0x006119f5, 0x0072ae08, 0x02e27ccc, 0x02a175ce, 0x018e66ca, 0x03053558, 0x00d8fb4d, 0x001d18ea}}, Y: Field{[10]uint32{0x00d4829f, 0x026ab41a, 0x0389f056, 0x03102d30, 0x02ae7990, 0x010e36e1, 0x00645a28, 0x03d412a8, 0x02b2275a, 0x0020bf5a}}}, + {X: Field{[10]uint32{0x013bf412, 0x01b9f3f5, 0x032fca3c, 0x01914d36, 0x013927ae, 0x03accc6c, 0x002d03e4, 0x0120c668, 0x008a29c4, 0x000b9e9c}}, Y: Field{[10]uint32{0x031e11d1, 0x038ecf52, 0x00160fd2, 0x0093b006, 0x03ebdf68, 0x00e6ceca, 0x02e0073f, 0x003372ba, 0x01997350, 0x00213cfc}}}, + {X: Field{[10]uint32{0x01dd5e03, 0x034c3136, 0x00dda414, 0x012edfea, 0x02180d09, 0x022e8c13, 0x032f3c2e, 0x030163eb, 0x00bf540b, 0x0021c1ec}}, Y: Field{[10]uint32{0x0100b915, 0x0127083c, 0x0025dfbb, 0x03a6599f, 0x0318db5e, 0x02816535, 0x006bd25a, 0x0040cd43, 0x0175fb79, 0x001c2d84}}}, + {X: Field{[10]uint32{0x03ca842d, 0x02a8b594, 0x008b9613, 0x03386db0, 0x0122f67d, 0x023999d2, 0x02070a72, 0x03340a21, 0x030c3ce6, 0x000ff6cd}}, Y: Field{[10]uint32{0x00e0dafc, 0x0121ac32, 0x0006317a, 0x03e65004, 0x035d3a5e, 0x002c7bfb, 0x004c5ec1, 0x000d1297, 0x00f2474a, 0x00058d46}}}, + {X: Field{[10]uint32{0x00472f62, 0x020f6252, 0x031af2a2, 0x0180252c, 0x03330779, 0x01bd6352, 0x01411e70, 0x03552680, 0x0302412c, 0x0030df68}}, Y: Field{[10]uint32{0x0221f92a, 0x031bf84e, 0x01d26801, 0x0002e2b4, 0x01ca8490, 0x0282a0af, 0x002d1daa, 0x010bd21c, 0x028716c6, 0x002a823c}}}, + {X: Field{[10]uint32{0x01e08a1c, 0x009bf1e9, 0x007cf257, 0x03b0ac2d, 0x0160ade9, 0x0171e8ce, 0x01f923b0, 0x02c3e494, 0x0150381a, 0x000fae81}}, Y: Field{[10]uint32{0x030fa7d9, 0x010697f3, 0x02396557, 0x03668316, 0x00492a1a, 0x02bf1380, 0x02396525, 0x0374ea21, 0x00ebb681, 0x000509ec}}}, + {X: Field{[10]uint32{0x0350cee8, 0x02be39ae, 0x02e0194e, 0x029e14d5, 0x02e43f20, 0x01d53e83, 0x024628f7, 0x035752fd, 0x02a18ce5, 0x00259c8f}}, Y: Field{[10]uint32{0x01f49bdd, 0x0019a960, 0x00e8a713, 0x016eca32, 0x016cf51b, 0x035122bb, 0x02eef512, 0x02fc43a1, 0x03bbb9bb, 0x0016b427}}}, + {X: Field{[10]uint32{0x03663748, 0x02358128, 0x00f1329f, 0x02499e44, 0x00ab8228, 0x01575716, 0x009d3460, 0x02db34e8, 0x02117ecf, 0x0035d914}}, Y: Field{[10]uint32{0x028540f7, 0x02e00c70, 0x01a46eeb, 0x00430897, 0x03bf2c9b, 0x02eaaa73, 0x0089dbe2, 0x037820b2, 0x0104d20f, 0x002adf30}}}, + {X: Field{[10]uint32{0x00ada5e6, 0x02a241b4, 0x03e434dc, 0x0196d2b1, 0x008c8660, 0x0352f251, 0x01907afa, 0x02c4d883, 0x03dc7e0a, 0x0007dac8}}, Y: Field{[10]uint32{0x023e247c, 0x03b0959d, 0x02602398, 0x0103923d, 0x01560414, 0x036aa7ac, 0x00920405, 0x00e76ab4, 0x025d6bc6, 0x00230dec}}}, + {X: Field{[10]uint32{0x01459945, 0x0203541d, 0x01f9d9bd, 0x004a2bf4, 0x036abb5a, 0x0303a3b5, 0x0079e64b, 0x0285a1e5, 0x00bbaa06, 0x0011bfc1}}, Y: Field{[10]uint32{0x011bcd4a, 0x03e7693d, 0x0176491e, 0x00a5075c, 0x03e7e9d2, 0x011e986a, 0x0133bb9e, 0x02e838e4, 0x02c26af2, 0x002c4413}}}, + {X: Field{[10]uint32{0x02597ce2, 0x012a20ca, 0x02f86f3f, 0x02cf6092, 0x013bcdff, 0x022ec114, 0x0076e545, 0x0201a4ec, 0x00253888, 0x003286cf}}, Y: Field{[10]uint32{0x01e0285a, 0x006ff8a8, 0x03622005, 0x03d5e611, 0x01dfc9d6, 0x0367a07b, 0x0109d11b, 0x01b711d8, 0x02fbdd1b, 0x003c0a45}}}, + {X: Field{[10]uint32{0x01ece6b4, 0x011e8426, 0x01763ee7, 0x01dcae00, 0x005fad12, 0x0336f7ec, 0x03ec7fed, 0x027b123b, 0x029aadb6, 0x00032587}}, Y: Field{[10]uint32{0x018fb6e4, 0x00bc9a67, 0x022a984e, 0x00f0d7c2, 0x0056bb9b, 0x005b12dc, 0x00bb70ad, 0x014f949c, 0x0033e0b2, 0x0011a69b}}}, + {X: Field{[10]uint32{0x039d99dc, 0x03ca2fe4, 0x03393ea4, 0x03d6e6d9, 0x037b3132, 0x035139dd, 0x03817089, 0x0332534f, 0x02791418, 0x000e8ba8}}, Y: Field{[10]uint32{0x03f164be, 0x025b195a, 0x01f8831a, 0x02381949, 0x02b981bf, 0x02344f8b, 0x0217dc71, 0x036486f8, 0x0143c035, 0x00056014}}}, + {X: Field{[10]uint32{0x025a7a4a, 0x03b7a9ad, 0x01189e7d, 0x02333cd3, 0x034e24d4, 0x00bec700, 0x03fd6ad5, 0x03c2f868, 0x00dfb3a1, 0x000105b7}}, Y: Field{[10]uint32{0x00c204c3, 0x037444d8, 0x0235beba, 0x0028f1b2, 0x0147e90a, 0x004cb6cc, 0x01777812, 0x00cd66b0, 0x02c2bbc9, 0x001da427}}}, + {X: Field{[10]uint32{0x03c63eb3, 0x021516e4, 0x022b1731, 0x0312174a, 0x032ed9d1, 0x0352cfb4, 0x03a51772, 0x0305d422, 0x02459aef, 0x002ce5f0}}, Y: Field{[10]uint32{0x01e71748, 0x00732dbd, 0x03a7e447, 0x01d38c45, 0x02228135, 0x024810fb, 0x0018ffc6, 0x00d9daad, 0x03603076, 0x002841a8}}}, + {X: Field{[10]uint32{0x000637df, 0x03ce4275, 0x0306532e, 0x03034a68, 0x02c1bdb8, 0x03a026ca, 0x01dbb755, 0x005918ca, 0x009befd6, 0x001d7156}}, Y: Field{[10]uint32{0x03e6f631, 0x009eb7e8, 0x0347dcba, 0x025687f8, 0x0395e602, 0x007f39ae, 0x02a19dd8, 0x00417243, 0x01e51492, 0x0009bcf8}}}, + {X: Field{[10]uint32{0x029135a5, 0x039bc225, 0x018b6620, 0x02004679, 0x02e4b0dc, 0x00e6a411, 0x015158c4, 0x01d0c85f, 0x0112a351, 0x000bbbb3}}, Y: Field{[10]uint32{0x01aaba4c, 0x03d2474b, 0x03707806, 0x019c5051, 0x01136064, 0x031315e4, 0x013d7539, 0x023b4c6d, 0x03d048c5, 0x003877ba}}}, + {X: Field{[10]uint32{0x00be65d1, 0x000164e7, 0x00124aa1, 0x002b1d6b, 0x038cab86, 0x02b77699, 0x031d52e5, 0x0359419a, 0x00915d39, 0x002a607c}}, Y: Field{[10]uint32{0x013ed069, 0x0180101f, 0x00e7b66c, 0x01253ccd, 0x0188d4f1, 0x025b9442, 0x018b23c0, 0x000a4cb6, 0x03cb7ab6, 0x00132c27}}}, + {X: Field{[10]uint32{0x03d4ef62, 0x01302826, 0x0331a9aa, 0x01a4999a, 0x02545cd8, 0x01d679e7, 0x01260c9a, 0x00740828, 0x02e3a7e8, 0x0006867e}}, Y: Field{[10]uint32{0x00937902, 0x016dcaac, 0x0070789c, 0x03c1a2b8, 0x0379714d, 0x021df71e, 0x01bf7bfd, 0x0171a78a, 0x02578af2, 0x000a01f5}}}, + {X: Field{[10]uint32{0x0020c61a, 0x00a04f49, 0x00567195, 0x0052674c, 0x029b0f43, 0x0198b9dd, 0x036f1392, 0x03465835, 0x016c1ee7, 0x0033fe1a}}, Y: Field{[10]uint32{0x02d16df8, 0x0314b179, 0x030c147f, 0x008ad8ad, 0x023581f1, 0x00daee05, 0x0004b1a1, 0x025a4097, 0x00138a39, 0x002125f8}}}, + {X: Field{[10]uint32{0x0227ce8c, 0x02417887, 0x01cd66cc, 0x016a7969, 0x00966911, 0x03523ac1, 0x02a95824, 0x00d1e72a, 0x00204a8b, 0x001a05e9}}, Y: Field{[10]uint32{0x033052ad, 0x01ca4dde, 0x026fd95e, 0x0309d8c8, 0x028182a0, 0x01720e17, 0x03254653, 0x01e97261, 0x028bc337, 0x00256151}}}, + {X: Field{[10]uint32{0x01d9d58e, 0x00cf5b23, 0x03233bcd, 0x00656494, 0x037d114b, 0x01e51e3c, 0x013eb995, 0x03309abc, 0x00846e0e, 0x00273bff}}, Y: Field{[10]uint32{0x025d2582, 0x0342aa3e, 0x00426856, 0x00d0fa99, 0x00510602, 0x03bc71fb, 0x03c4d4af, 0x03e86c19, 0x021a5cf8, 0x003806b2}}}, + {X: Field{[10]uint32{0x03456c49, 0x03c3b734, 0x00543835, 0x00c63104, 0x03995a37, 0x00c0797e, 0x03965892, 0x03dff765, 0x01c6f203, 0x001a9b87}}, Y: Field{[10]uint32{0x0384496b, 0x02eb284d, 0x03482f93, 0x02fdbbf4, 0x0183b579, 0x02a5d51b, 0x01f9ad86, 0x00fa7ac1, 0x039898b9, 0x000a81ca}}}, + {X: Field{[10]uint32{0x02a9129b, 0x00c75f34, 0x036d24dd, 0x008626b0, 0x008ba3a5, 0x02e461ba, 0x018b4f0f, 0x01d86d45, 0x021a588d, 0x001f9eeb}}, Y: Field{[10]uint32{0x033dbdd6, 0x0215beaa, 0x0129dcc4, 0x02f03503, 0x0017e6bb, 0x0343e1ce, 0x01e60e57, 0x01731ca2, 0x023b3799, 0x0014663d}}}, + {X: Field{[10]uint32{0x006bd253, 0x0316cd40, 0x039f805d, 0x018fb84b, 0x03ffa158, 0x02a17954, 0x014966ff, 0x02acafb5, 0x03a863de, 0x00004ff0}}, Y: Field{[10]uint32{0x03821459, 0x016d5ddc, 0x01d58b3b, 0x0209c0b9, 0x03a8b77c, 0x039daa55, 0x00a59e76, 0x01415bff, 0x02459127, 0x0038c70c}}}, + {X: Field{[10]uint32{0x02e9c167, 0x02f1b445, 0x00ccbbec, 0x00983452, 0x03e56503, 0x03a27a92, 0x036dbeda, 0x03645fda, 0x01eb3f39, 0x003ff8a3}}, Y: Field{[10]uint32{0x01bb988a, 0x02abb5a7, 0x01b2c262, 0x03844a31, 0x01383c4b, 0x0380acff, 0x03857604, 0x01113794, 0x02b3b878, 0x00236294}}}, + {X: Field{[10]uint32{0x01cc57be, 0x020ec3c1, 0x003cd444, 0x0150772f, 0x00481c43, 0x003e83b3, 0x0379a883, 0x01b79f40, 0x00239bf2, 0x0000a3b5}}, Y: Field{[10]uint32{0x00ce126e, 0x001016c4, 0x00ac37bc, 0x01c866f4, 0x012d5608, 0x012e3616, 0x020d860b, 0x02399d14, 0x02e2ea01, 0x00064848}}}, + {X: Field{[10]uint32{0x03f8a708, 0x01cb22c2, 0x02d7276c, 0x00e0be01, 0x025aa4ca, 0x03b9da76, 0x02acc00e, 0x03121014, 0x027c7be8, 0x001efce0}}, Y: Field{[10]uint32{0x0159eebe, 0x0090fa29, 0x011726bb, 0x001c6b4a, 0x0224a75d, 0x035c75c1, 0x00601fa1, 0x014a6d17, 0x02eee505, 0x002497cf}}}, + {X: Field{[10]uint32{0x03ce7000, 0x0384e01b, 0x017a4a7b, 0x02accc28, 0x012acb5a, 0x007dedaf, 0x02de8627, 0x00070fe3, 0x0299021a, 0x0033c69f}}, Y: Field{[10]uint32{0x01d3d673, 0x02855756, 0x0078a7c3, 0x028fce2a, 0x035f1e70, 0x00ce8d18, 0x023e7400, 0x0298445a, 0x02837b3b, 0x00084d96}}}, + {X: Field{[10]uint32{0x01bb29c7, 0x02f2ba44, 0x02944afc, 0x019d4989, 0x02af3bdd, 0x02f42a61, 0x036c8121, 0x01f31038, 0x0237d151, 0x0039de7a}}, Y: Field{[10]uint32{0x038a8a2f, 0x03200575, 0x03f81e8a, 0x01b51706, 0x026472bb, 0x00a71bd0, 0x00e2c6c0, 0x01dd6a81, 0x01ac4b19, 0x000cb18d}}}, + {X: Field{[10]uint32{0x026c2a92, 0x02dfda3c, 0x002a1638, 0x00a23806, 0x02f96977, 0x030e0754, 0x019785d6, 0x01084056, 0x012b76b5, 0x00040c27}}, Y: Field{[10]uint32{0x018265a9, 0x02340819, 0x02a1a043, 0x02b3066d, 0x02f3abce, 0x03e4c4c5, 0x03b9b377, 0x0261c03b, 0x03834c85, 0x000087b7}}}, + {X: Field{[10]uint32{0x033a27f9, 0x039c8694, 0x00701813, 0x00469c50, 0x02f2b6b3, 0x0244c80d, 0x032240de, 0x011b50ba, 0x0309701e, 0x001e649e}}, Y: Field{[10]uint32{0x0358920f, 0x03613b4e, 0x039053b3, 0x03bae34a, 0x008a0f47, 0x0184d841, 0x00756403, 0x021b0693, 0x0113a818, 0x003edf19}}}, + {X: Field{[10]uint32{0x0128849e, 0x03631cc5, 0x0137e0fd, 0x038128f7, 0x03085b1d, 0x0338938f, 0x0193e683, 0x00d0a67d, 0x023377da, 0x001d0ed3}}, Y: Field{[10]uint32{0x002f3216, 0x0135ad9d, 0x014f1816, 0x039a1278, 0x01fbba7d, 0x02b9cca0, 0x03f178ca, 0x018fb1ec, 0x0069b5ee, 0x000de400}}}, + {X: Field{[10]uint32{0x004f04da, 0x01a18143, 0x02cbf498, 0x03ec29ce, 0x02e46064, 0x02547f9a, 0x02cd9b49, 0x02edfc6a, 0x02e10ce1, 0x0035cf34}}, Y: Field{[10]uint32{0x0253dde8, 0x01fd2b6c, 0x0209614b, 0x0138bc8a, 0x00cae7f8, 0x028cffc7, 0x0087fcd6, 0x039c7fd6, 0x02e44cc6, 0x0039a9d8}}}, + {X: Field{[10]uint32{0x01f6fa68, 0x00b5a5e5, 0x033e8ed3, 0x02051f01, 0x01ba6324, 0x01ecfafc, 0x03318a17, 0x0091acff, 0x00d3f563, 0x000f8700}}, Y: Field{[10]uint32{0x010776d3, 0x01cbc34b, 0x00ef6b4a, 0x000308ff, 0x0118ce2e, 0x02038e07, 0x036aecb0, 0x0304a440, 0x00cf87d5, 0x0037cad8}}}, + {X: Field{[10]uint32{0x0168053c, 0x03f71b36, 0x03221a32, 0x039318a6, 0x00ed90c2, 0x01d49b6d, 0x00f10e68, 0x00594f97, 0x039092da, 0x0025b81f}}, Y: Field{[10]uint32{0x01c2bd66, 0x0081e1d3, 0x036164ab, 0x03f8b978, 0x021f8517, 0x03eb4ee6, 0x0220ea5b, 0x03a9ae7b, 0x003bb8a2, 0x00359707}}}, + {X: Field{[10]uint32{0x03e1debb, 0x005deaab, 0x02854d8e, 0x0148ce18, 0x02d27a76, 0x00b81e5a, 0x01cc124b, 0x03b8094c, 0x004026b1, 0x001b48c1}}, Y: Field{[10]uint32{0x0179bbd3, 0x00ef027b, 0x012c2598, 0x00a2a33f, 0x00e3dc62, 0x0393b002, 0x03bde471, 0x011a2543, 0x0195faa1, 0x003cea3e}}}, + {X: Field{[10]uint32{0x01707781, 0x03f3bc79, 0x02d9dc76, 0x004692c1, 0x00ad7d45, 0x039c584e, 0x00e43c49, 0x027700c5, 0x035c1f94, 0x002376a7}}, Y: Field{[10]uint32{0x0001310d, 0x0229609a, 0x03a775c7, 0x03bc2b96, 0x01ad9d9b, 0x02dcdd0d, 0x03674f5d, 0x02c2944a, 0x03aa7585, 0x0034158f}}}, + {X: Field{[10]uint32{0x03de97cd, 0x028d5eee, 0x036c4e5a, 0x03ead309, 0x03b4bf17, 0x03ff6905, 0x02da369f, 0x01cd8fd7, 0x013f9866, 0x00141c18}}, Y: Field{[10]uint32{0x0034ebc2, 0x033c26f7, 0x008178a0, 0x01f921a9, 0x02eb40e4, 0x02c5b6e1, 0x005751f9, 0x01fa8d06, 0x02ff4fe7, 0x00002c83}}}, + {X: Field{[10]uint32{0x0316bce7, 0x024bac2b, 0x03a8efc7, 0x01d1aa6c, 0x0004986d, 0x0306a862, 0x038838ea, 0x00515ae6, 0x00f0bfab, 0x000e929c}}, Y: Field{[10]uint32{0x01c4f3e5, 0x03d68f2b, 0x01e248bd, 0x022608e0, 0x03843b3e, 0x0013a108, 0x0032980c, 0x023b6a86, 0x02931916, 0x00391492}}}, + {X: Field{[10]uint32{0x02b33532, 0x02448c2a, 0x01a38b52, 0x0264ef37, 0x02db5fba, 0x018c1dcf, 0x01a82f54, 0x0166a76a, 0x00921831, 0x000b373e}}, Y: Field{[10]uint32{0x017677b9, 0x00d61c1d, 0x02044e0a, 0x0248c8a4, 0x010fd956, 0x00aaf3a3, 0x02299e74, 0x00fcca17, 0x02eac911, 0x003223a9}}}, + {X: Field{[10]uint32{0x00955c99, 0x028b778a, 0x0203d781, 0x00082630, 0x022b7fed, 0x00cc667a, 0x02e0cd6f, 0x017d8404, 0x028df8f1, 0x0006a164}}, Y: Field{[10]uint32{0x00db4299, 0x00b38e5d, 0x02945568, 0x009147af, 0x010534a1, 0x001c970a, 0x013a6b03, 0x01da8ff8, 0x02b2821c, 0x0006ce61}}}, + {X: Field{[10]uint32{0x01a1d388, 0x01ae13c7, 0x02c1a6b6, 0x0198f988, 0x00dde019, 0x006e7c04, 0x01206634, 0x00c19685, 0x01a1d6b0, 0x0021b453}}, Y: Field{[10]uint32{0x0399b2de, 0x00e030a0, 0x01055fd1, 0x00f87db9, 0x01cfe568, 0x00e010b3, 0x004a6f9f, 0x017327a2, 0x00ec764f, 0x0019e545}}}, + {X: Field{[10]uint32{0x02201cc2, 0x0340d5c5, 0x01441565, 0x0265f091, 0x03300459, 0x02941e38, 0x03343415, 0x0321e50c, 0x014f0bdf, 0x003907dd}}, Y: Field{[10]uint32{0x010e8e8e, 0x02c3f75e, 0x02e47dcb, 0x0382ecf3, 0x000743f5, 0x024bba6d, 0x02f119f4, 0x00647b7f, 0x0241c21d, 0x00374165}}}, + {X: Field{[10]uint32{0x0075cae4, 0x0265b4d1, 0x022fc756, 0x01ea0ce3, 0x032946e1, 0x03911190, 0x0268d8f4, 0x02fb11e5, 0x026845b5, 0x002dfb24}}, Y: Field{[10]uint32{0x03dda53b, 0x018b9c53, 0x002cb7cc, 0x01425e3b, 0x00d945e3, 0x01e51dad, 0x02210f57, 0x027a4043, 0x018bb753, 0x0002ad28}}}, + {X: Field{[10]uint32{0x03518912, 0x01da752d, 0x009d456b, 0x02f020c9, 0x03bf3ecf, 0x02896142, 0x022554a0, 0x03786459, 0x01dcf1ea, 0x000903f6}}, Y: Field{[10]uint32{0x0104515b, 0x001ac234, 0x0220776a, 0x025cc4d4, 0x005318a8, 0x02a9aa01, 0x03a3a62e, 0x00e42214, 0x025ee0ba, 0x002bc0fe}}}, + {X: Field{[10]uint32{0x035bb769, 0x015c8de1, 0x00129a5c, 0x037e3c73, 0x022b88aa, 0x02330fea, 0x01e39d28, 0x00c4525e, 0x00ecee7d, 0x0000d4f1}}, Y: Field{[10]uint32{0x012d147e, 0x03693f34, 0x03cf02a0, 0x02e16b8c, 0x0228e607, 0x035c2ae3, 0x000118ba, 0x01384ba5, 0x004090af, 0x0027e9fb}}}, + {X: Field{[10]uint32{0x03d933de, 0x0200dd8a, 0x0082d39e, 0x02232f81, 0x03893409, 0x018a3f46, 0x0206ae11, 0x019a2045, 0x018aa855, 0x003d3bb5}}, Y: Field{[10]uint32{0x033b3d44, 0x01bc3e37, 0x03eb9160, 0x03e94b5f, 0x0118b40b, 0x0233ad03, 0x031969ca, 0x0381c341, 0x0364fe74, 0x00109e33}}}, + {X: Field{[10]uint32{0x026ef1ce, 0x004a4389, 0x000fa01a, 0x0029cdaf, 0x000b284f, 0x02d554b5, 0x00c17d50, 0x0099810d, 0x02e2e2d0, 0x001a63fe}}, Y: Field{[10]uint32{0x01ffc970, 0x00206638, 0x0143fab6, 0x03fec2f4, 0x038bd50c, 0x025bf04b, 0x027e53a4, 0x016dd076, 0x008d0784, 0x000659b3}}}, + {X: Field{[10]uint32{0x01314098, 0x01c48699, 0x0196b595, 0x028013ed, 0x0122d884, 0x005f2251, 0x020587d4, 0x0305035b, 0x016d5c88, 0x002d4ed6}}, Y: Field{[10]uint32{0x032c745a, 0x025eba23, 0x01a56771, 0x01c13306, 0x0025deeb, 0x01b0cbbb, 0x03de4857, 0x03f9db21, 0x00b909be, 0x00377fd8}}}, + {X: Field{[10]uint32{0x0213066a, 0x004bedc6, 0x02d65527, 0x01967d89, 0x00791518, 0x03a7c9da, 0x024cba67, 0x00efe75b, 0x0321d439, 0x0025d812}}, Y: Field{[10]uint32{0x028d17f8, 0x018988d2, 0x03616360, 0x0153e809, 0x027d871c, 0x00d5fc99, 0x005b0d17, 0x01fdf197, 0x0384e1cf, 0x0039ebbc}}}, + {X: Field{[10]uint32{0x01bb8623, 0x01213a54, 0x007edb63, 0x003b6875, 0x013b3876, 0x0018bdef, 0x02b234c1, 0x03b980c4, 0x01ba6eda, 0x001e8d72}}, Y: Field{[10]uint32{0x0184a5b1, 0x035a9093, 0x002457eb, 0x015e1bbe, 0x00769f3a, 0x03bdc128, 0x0292b586, 0x019d85ab, 0x027ba454, 0x000ce25e}}}, + {X: Field{[10]uint32{0x011e2804, 0x00836543, 0x03e01b6a, 0x005e19c1, 0x02c9638b, 0x0098c043, 0x026e0cc9, 0x00457728, 0x0075f989, 0x0021b503}}, Y: Field{[10]uint32{0x00315ca3, 0x00e1d0bb, 0x00410c0f, 0x010b105c, 0x01dddf28, 0x0211ad72, 0x031dcc8a, 0x02307839, 0x03624ffd, 0x001d66f5}}}, + {X: Field{[10]uint32{0x009badb7, 0x037acc58, 0x001ce3e8, 0x03a6ca90, 0x01fc77f6, 0x00ee4397, 0x03ddea49, 0x02de7d98, 0x03479a4b, 0x00180eff}}, Y: Field{[10]uint32{0x01a4f4b4, 0x008e6627, 0x0320ee1e, 0x0377700d, 0x03358c86, 0x034ce80b, 0x02eefffc, 0x006aa9ab, 0x01fc6528, 0x00018a1e}}}, + {X: Field{[10]uint32{0x032203ed, 0x039a2c40, 0x03d7b5de, 0x03705261, 0x00fa13eb, 0x029d68db, 0x01e0bbf8, 0x01e9f5c8, 0x00f3c7dc, 0x0001722e}}, Y: Field{[10]uint32{0x0208e7d3, 0x0124d033, 0x0190ce77, 0x0328506f, 0x013faa43, 0x023f35b9, 0x01d304d8, 0x031af5f6, 0x03382bc4, 0x001ad807}}}, + {X: Field{[10]uint32{0x0144fb05, 0x018f3a1d, 0x00505a79, 0x01fa4024, 0x0025a6f2, 0x020edcde, 0x027a55ff, 0x02530907, 0x02c5a916, 0x000c4f07}}, Y: Field{[10]uint32{0x003c6384, 0x01980dc4, 0x02e59825, 0x023891d4, 0x0101ed85, 0x031118b1, 0x0244699b, 0x0197ebed, 0x03ff9a43, 0x00270c54}}}, + {X: Field{[10]uint32{0x01d923bd, 0x000550ea, 0x006bf98b, 0x03569e5d, 0x00150b4b, 0x01a383e8, 0x0268cb29, 0x02bbecc0, 0x02514616, 0x000146b2}}, Y: Field{[10]uint32{0x02e028b4, 0x0115e9d3, 0x001cc203, 0x0310c77d, 0x01a0a66e, 0x0138acd8, 0x0163ca4f, 0x01dd1eff, 0x01b4073a, 0x001f147e}}}, + {X: Field{[10]uint32{0x0219677d, 0x01edb0c9, 0x00a122ab, 0x0359dd0f, 0x01353071, 0x02efa5ea, 0x036d3f92, 0x00192124, 0x039927ea, 0x0012ba34}}, Y: Field{[10]uint32{0x008a47a3, 0x019df50f, 0x027c919e, 0x01790d4b, 0x000f350f, 0x0244414e, 0x02a332b0, 0x02f3a0e3, 0x019bc251, 0x003e7714}}}, + {X: Field{[10]uint32{0x0256dcca, 0x01e137a8, 0x0257baa0, 0x022712bc, 0x03b100c2, 0x021352ef, 0x01a054a8, 0x02d68230, 0x015d3f9c, 0x001af472}}, Y: Field{[10]uint32{0x03803b5b, 0x0153be1a, 0x03e71396, 0x015ea221, 0x00801923, 0x02c1f79e, 0x031fc401, 0x02c4bdbd, 0x003bde39, 0x001e4d8a}}}, + {X: Field{[10]uint32{0x0249480e, 0x0374a0ea, 0x028ce19b, 0x00027be7, 0x035737f7, 0x001feef2, 0x0370a62e, 0x032ab6b8, 0x02294642, 0x003889e2}}, Y: Field{[10]uint32{0x0037dd01, 0x03c50ed2, 0x00f77b36, 0x02d60f59, 0x01087bc8, 0x0360bd87, 0x03570b7e, 0x00f39cd6, 0x03cdf394, 0x0010c48b}}}, + {X: Field{[10]uint32{0x0296c644, 0x03d2b13f, 0x0071ffee, 0x00b02c89, 0x008d24fb, 0x00ccd60c, 0x004bb019, 0x01a7f744, 0x00d59f94, 0x001a14df}}, Y: Field{[10]uint32{0x0000050e, 0x018f2061, 0x024a7320, 0x01165e77, 0x004003ab, 0x01b8ec67, 0x0399ff32, 0x01e9476f, 0x00ef4110, 0x001d94d8}}}, + {X: Field{[10]uint32{0x025af330, 0x024281dd, 0x03b54b12, 0x03bcfe06, 0x0070be08, 0x03022209, 0x00a0735f, 0x027e7e3e, 0x03c669c9, 0x0017b27f}}, Y: Field{[10]uint32{0x0163b222, 0x0084e5c4, 0x03b381a4, 0x03737472, 0x001f4f1c, 0x015ad1f0, 0x00c32290, 0x021c581e, 0x0008e76f, 0x002aed50}}}, + {X: Field{[10]uint32{0x004dfae9, 0x02661d1c, 0x0231db23, 0x03d8572b, 0x0101a330, 0x01945528, 0x0071aba4, 0x00c3eea5, 0x008e5d49, 0x00138006}}, Y: Field{[10]uint32{0x01317868, 0x02ee0753, 0x02bba57f, 0x00a74821, 0x015ed3fe, 0x016d0082, 0x03656dd3, 0x00daa9cf, 0x03302824, 0x0001f9db}}}, + {X: Field{[10]uint32{0x015ed984, 0x0377f57c, 0x02e3c8aa, 0x0392f4ed, 0x03a2659c, 0x0130bcfe, 0x0139edeb, 0x0054bbff, 0x03a4d480, 0x0012b8d1}}, Y: Field{[10]uint32{0x02d4e523, 0x00b170d8, 0x033070ca, 0x0307cd71, 0x0165bb6a, 0x029cb18d, 0x02b8ba7b, 0x033f7d3e, 0x03460d44, 0x000e0f8b}}}, + {X: Field{[10]uint32{0x006665ef, 0x03386e27, 0x0319c603, 0x031363dd, 0x0235fd09, 0x01942697, 0x02d90fc8, 0x02b03be5, 0x0224a8d3, 0x000cb2b7}}, Y: Field{[10]uint32{0x038bea36, 0x004342be, 0x036af55c, 0x03cb8324, 0x02266939, 0x032a27e6, 0x023c5aa6, 0x02c4dd6d, 0x00735c63, 0x0021c9ce}}}, + {X: Field{[10]uint32{0x01cfcbee, 0x00891114, 0x0204f5f4, 0x030f53dc, 0x0320c703, 0x03e1f08b, 0x00e68910, 0x01d5d9ab, 0x01956014, 0x002393bc}}, Y: Field{[10]uint32{0x02ed47af, 0x025c1b81, 0x00666045, 0x00332527, 0x02cd5b9d, 0x0003ef3f, 0x02da0afc, 0x01f06de7, 0x02e389d9, 0x0000be9c}}}, + {X: Field{[10]uint32{0x00a2c30a, 0x01f9ffe9, 0x02509aae, 0x005a7bf0, 0x01559d73, 0x02181e80, 0x01549911, 0x000fdb13, 0x035c4adc, 0x000d7f55}}, Y: Field{[10]uint32{0x0248e000, 0x012b7472, 0x00aa1347, 0x03367252, 0x03dbf3ee, 0x033442b1, 0x0300926d, 0x02079f2d, 0x039d2748, 0x003e695d}}}, + {X: Field{[10]uint32{0x010a9cf6, 0x00d7fb72, 0x032873c6, 0x017d7d76, 0x03efc12f, 0x031049b1, 0x00929a52, 0x00965452, 0x00507fd0, 0x0024cb93}}, Y: Field{[10]uint32{0x028ba783, 0x0187be6e, 0x01f2875f, 0x03ef36fc, 0x009e84ef, 0x034660b0, 0x036b1b24, 0x028670a7, 0x0221bbac, 0x00339af2}}}, + {X: Field{[10]uint32{0x01fbea11, 0x01175cd2, 0x03fb211a, 0x02b4d77a, 0x0355d3e2, 0x03d165c1, 0x036a37f2, 0x014706f8, 0x024422a0, 0x0032b637}}, Y: Field{[10]uint32{0x001c347a, 0x008e99bc, 0x013e0533, 0x035e2a7f, 0x01308eeb, 0x013e1bc4, 0x0241c903, 0x01a7ca02, 0x031d4f66, 0x00122c37}}}, + {X: Field{[10]uint32{0x009594d6, 0x03efa41b, 0x0357b462, 0x0323f3ad, 0x031919ff, 0x032cd8e0, 0x016aa646, 0x03eb9f40, 0x0304c847, 0x0027f1f4}}, Y: Field{[10]uint32{0x019860ff, 0x038e9143, 0x03c9e516, 0x01b39352, 0x00196367, 0x01ebf729, 0x029dd38a, 0x02861f36, 0x00e13bc6, 0x003745f0}}}, + {X: Field{[10]uint32{0x008b5849, 0x00d5d866, 0x000b4c89, 0x03dd305f, 0x008300e4, 0x02537aee, 0x00654538, 0x0281771a, 0x00df10d4, 0x00106e9b}}, Y: Field{[10]uint32{0x007ad4c5, 0x026107f9, 0x03ac5930, 0x02133c54, 0x01ece57e, 0x00a0ccc8, 0x031e278b, 0x00259795, 0x03158c3f, 0x001fad8a}}}, + {X: Field{[10]uint32{0x01c7377b, 0x01ee9104, 0x02884b22, 0x0037c15f, 0x03d5bbf3, 0x03bee1a4, 0x0174248c, 0x01ab9a8b, 0x025aaef3, 0x0007fe7f}}, Y: Field{[10]uint32{0x01e74278, 0x00815d7c, 0x00692165, 0x01416f99, 0x01506908, 0x032d57c2, 0x009cf41f, 0x0000e127, 0x036c585c, 0x001ae892}}}, + {X: Field{[10]uint32{0x03f5d660, 0x03ce31b2, 0x03ebd893, 0x00507e3d, 0x026d1348, 0x0215b09c, 0x019d0704, 0x01b4a79b, 0x00440d70, 0x000a675f}}, Y: Field{[10]uint32{0x0103ff32, 0x0217ba8b, 0x000400fc, 0x03fe6d25, 0x0062f7d1, 0x01b7a6b3, 0x01b48877, 0x01d3832a, 0x00f34d03, 0x0003929d}}}, + {X: Field{[10]uint32{0x02e3a67d, 0x02caff5c, 0x012d69f7, 0x00b73a94, 0x020b607c, 0x00f5ba4e, 0x0318ceb8, 0x03261db8, 0x02d90ec1, 0x00280ccf}}, Y: Field{[10]uint32{0x03a0539e, 0x0216467e, 0x0141e0d6, 0x00eedae2, 0x0019f83e, 0x007f9ed4, 0x03373932, 0x01da74d6, 0x03655f51, 0x00369f74}}}, + {X: Field{[10]uint32{0x004251e0, 0x02e13e90, 0x020d2e75, 0x0005593a, 0x032821cf, 0x02a5a197, 0x00093d0b, 0x028cc14d, 0x02a22e52, 0x00169104}}, Y: Field{[10]uint32{0x030e4313, 0x0101e363, 0x0300c7cd, 0x009d53ad, 0x033675ab, 0x001b4a4e, 0x010bc0ab, 0x015c3a0e, 0x00e07e6c, 0x001a91e2}}}, + {X: Field{[10]uint32{0x02b7b0b5, 0x008f3d8c, 0x03cdc3e8, 0x00770bf9, 0x01078335, 0x01a7e6d9, 0x0134ea6a, 0x00771839, 0x004c3b14, 0x0035dcbb}}, Y: Field{[10]uint32{0x009ac0df, 0x00a6f99a, 0x03cfdda9, 0x00bf6e26, 0x01c9ccd9, 0x036ace08, 0x010979dd, 0x0121f9c2, 0x000d1036, 0x002f64d0}}}, + {X: Field{[10]uint32{0x01f89336, 0x0288d9db, 0x0321cd04, 0x0293b284, 0x03d4452f, 0x03903e01, 0x033e1cd6, 0x0130effe, 0x02d2c769, 0x002525e0}}, Y: Field{[10]uint32{0x02d436dc, 0x0351672e, 0x00930b68, 0x005325ef, 0x019f4e2c, 0x03358f15, 0x032e5dbb, 0x008ad50d, 0x027fb8ba, 0x0039f179}}}, + {X: Field{[10]uint32{0x0057e6de, 0x013d85a9, 0x0070e233, 0x032185dd, 0x036d9ca0, 0x031271c7, 0x00a9e4d4, 0x03d67cf8, 0x01f575e6, 0x001fb9f5}}, Y: Field{[10]uint32{0x03d9f3ee, 0x01ccbbb5, 0x03d0197e, 0x000b5a81, 0x029cbbbe, 0x01be8c42, 0x0074add7, 0x00f99b24, 0x029c7612, 0x001118b6}}}, + {X: Field{[10]uint32{0x013f843e, 0x02baedec, 0x0320b50f, 0x011c2ee0, 0x018a5548, 0x01505e54, 0x005ba7c1, 0x011ed6de, 0x030ae08d, 0x001e92d8}}, Y: Field{[10]uint32{0x01937c00, 0x035c1da7, 0x025dc6b5, 0x00641fe7, 0x0269a3b2, 0x02d26037, 0x023a524d, 0x0007a5c5, 0x004fb868, 0x00328939}}}, + {X: Field{[10]uint32{0x02a82b96, 0x0071b2c6, 0x037939c3, 0x03cca653, 0x013a18ee, 0x02ed88f0, 0x02a55032, 0x03102902, 0x0242428a, 0x0034b642}}, Y: Field{[10]uint32{0x0234972a, 0x013568fc, 0x03b66746, 0x01b960b7, 0x01394a3b, 0x002c7838, 0x0039e064, 0x03567cc0, 0x02332367, 0x001d614b}}}, + {X: Field{[10]uint32{0x015d13e0, 0x0382c5ba, 0x01b91340, 0x017120d2, 0x03a4809b, 0x00bb53cb, 0x01b56066, 0x037ecf68, 0x01ab6206, 0x00364926}}, Y: Field{[10]uint32{0x0271be38, 0x00a6caac, 0x0294111f, 0x0192f800, 0x00fa4dfc, 0x024eae98, 0x01400749, 0x03f86a3e, 0x00ed26a4, 0x00108d51}}}, + {X: Field{[10]uint32{0x01d09a23, 0x020c3d71, 0x034dc8d5, 0x02f9b1af, 0x02bba6f2, 0x02dffe1e, 0x00e2d315, 0x01799b49, 0x02c25887, 0x003b0307}}, Y: Field{[10]uint32{0x00591421, 0x02e9058a, 0x00d7aee8, 0x0261d601, 0x018b798c, 0x01822fde, 0x009a237e, 0x02f46071, 0x03f1648a, 0x003949a9}}}, + {X: Field{[10]uint32{0x03ba8863, 0x0384025a, 0x00c2ef30, 0x00205de6, 0x003a6ae5, 0x0243a814, 0x01b48052, 0x01662621, 0x0168835b, 0x001a4e02}}, Y: Field{[10]uint32{0x0311e5f4, 0x01c3d78b, 0x03345a61, 0x01d6064b, 0x037522df, 0x005341f1, 0x0297137a, 0x02e98d14, 0x039d80f0, 0x001c6fa8}}}, + {X: Field{[10]uint32{0x00a9ab23, 0x02b7237f, 0x0062bebb, 0x0177d65b, 0x0115a40a, 0x007fcbfb, 0x00fe8d2e, 0x018df913, 0x01a19fd1, 0x00359ac7}}, Y: Field{[10]uint32{0x006b9946, 0x01a51d96, 0x03b6878a, 0x00749960, 0x015cc5d9, 0x001eccc5, 0x0217c4e6, 0x012edc72, 0x00ebbd2b, 0x001a33d9}}}, + {X: Field{[10]uint32{0x0298c95f, 0x0037220c, 0x01695a51, 0x01729ad6, 0x01503647, 0x0264c590, 0x0350d70c, 0x018b2e49, 0x00a2c6fa, 0x00277663}}, Y: Field{[10]uint32{0x00fbe821, 0x00381f6b, 0x03c8187a, 0x0017663f, 0x03407509, 0x018ecc76, 0x01278b7e, 0x02735be3, 0x03b853b9, 0x00156a22}}}, + {X: Field{[10]uint32{0x0141bfa2, 0x02a6b7b4, 0x01b925b9, 0x02336dea, 0x014efd84, 0x03078b5c, 0x00ecccd0, 0x03c6efa9, 0x002c842c, 0x0006d9af}}, Y: Field{[10]uint32{0x03673bea, 0x02e69c20, 0x00a890dd, 0x000620c7, 0x02402b35, 0x02108f2d, 0x003d88b6, 0x020ae2bd, 0x030155fe, 0x003f82d1}}}, + {X: Field{[10]uint32{0x00eb688a, 0x001d72b2, 0x00312c1c, 0x03243c3a, 0x03c7d2d5, 0x0248b800, 0x016a61c2, 0x00c77b4e, 0x01c48a92, 0x0002ca03}}, Y: Field{[10]uint32{0x02738a74, 0x0338c1b4, 0x03ff7da9, 0x01854c73, 0x00498c82, 0x00aeaebc, 0x02cb3ad6, 0x02f99acc, 0x01a6a2f8, 0x00206dd1}}}, + {X: Field{[10]uint32{0x018a6b5d, 0x0073717c, 0x0280f8cf, 0x01b3c055, 0x02413e90, 0x00438ba4, 0x00125ad5, 0x02e8720a, 0x011c9eb3, 0x001ef165}}, Y: Field{[10]uint32{0x00352a07, 0x02bd69a6, 0x01a1cd43, 0x03c3b88a, 0x000fbda2, 0x026b71b5, 0x026fc7f4, 0x02a2f6e2, 0x01d8480b, 0x00106e41}}}, + {X: Field{[10]uint32{0x02eabfc1, 0x00b14efd, 0x02ea34ed, 0x0023713c, 0x01116479, 0x0172a1a5, 0x02530952, 0x015235da, 0x00d12318, 0x001a7fdd}}, Y: Field{[10]uint32{0x03de2419, 0x02f9dd6b, 0x01bde0d4, 0x025f7325, 0x011d6173, 0x00eb7d7f, 0x02aca1eb, 0x027de04b, 0x02288eb9, 0x003ce8f9}}}, + {X: Field{[10]uint32{0x004af209, 0x014b86b2, 0x003b92c5, 0x0262a83c, 0x02ffa460, 0x039fda26, 0x028f8cdd, 0x034e967e, 0x013f01f6, 0x0017f9b7}}, Y: Field{[10]uint32{0x00dbfb55, 0x02f1d3d8, 0x01aacd6d, 0x00589d28, 0x03f356cc, 0x015443ab, 0x01197a91, 0x0340893b, 0x0101acb8, 0x0027baba}}}, + {X: Field{[10]uint32{0x0105f5f0, 0x008b9671, 0x023b121d, 0x031e3338, 0x01d3b52b, 0x0314fe44, 0x029fafe9, 0x01d76dd1, 0x0122cb04, 0x0011a7a4}}, Y: Field{[10]uint32{0x0058d812, 0x0138bf04, 0x0237ecb8, 0x0200276d, 0x0280d8a5, 0x01348b09, 0x025825fa, 0x02e9afd6, 0x03a838b2, 0x003f9d21}}}, + {X: Field{[10]uint32{0x0160e6ab, 0x018ed364, 0x00c1c06d, 0x0061c307, 0x0072a5e7, 0x02cc3e39, 0x01f816e8, 0x00a48ecb, 0x02bf06b6, 0x0007d28f}}, Y: Field{[10]uint32{0x01c89e2f, 0x031a9853, 0x02d39b77, 0x037a21c1, 0x011ebeeb, 0x00a6299f, 0x0138bd40, 0x02b86626, 0x02957602, 0x00263684}}}, + {X: Field{[10]uint32{0x03b86b0f, 0x01e3af54, 0x00773c2f, 0x00b743e9, 0x00411722, 0x01bd4428, 0x00226ac2, 0x03fc333b, 0x01fe1c12, 0x00363aa5}}, Y: Field{[10]uint32{0x006288d9, 0x03bd1ca3, 0x03f5b25f, 0x026e8075, 0x01f154b5, 0x03a4b092, 0x00bebb3c, 0x03ca4ee2, 0x039edde6, 0x000556fb}}}, + {X: Field{[10]uint32{0x0227cac6, 0x01ef53c4, 0x02527179, 0x017771fc, 0x002bb36f, 0x01c114c0, 0x014b2cf8, 0x0201c488, 0x03c797b3, 0x0006b628}}, Y: Field{[10]uint32{0x0057814c, 0x00f017d2, 0x02a1ccfa, 0x01741355, 0x0158398c, 0x03f3d47b, 0x00189576, 0x008dfc55, 0x03aa3755, 0x001a029d}}}, + {X: Field{[10]uint32{0x00fa7d66, 0x03b0c609, 0x0292a3fd, 0x02cb0caa, 0x00355540, 0x03c2c3e2, 0x01426469, 0x0349b836, 0x010405d1, 0x003ffa9c}}, Y: Field{[10]uint32{0x0034eac8, 0x03413089, 0x00ed4cb5, 0x02bcb299, 0x00081f67, 0x01c0bb75, 0x02c8db75, 0x0281b113, 0x00e22d8d, 0x003b2891}}}, + {X: Field{[10]uint32{0x0159d8ab, 0x0192b22e, 0x00f3fc17, 0x02e95764, 0x01d3abe9, 0x03f5bd9d, 0x02141c8c, 0x02226152, 0x03a3f7fc, 0x0012b156}}, Y: Field{[10]uint32{0x00be2bd2, 0x02f24efe, 0x039ce15b, 0x02d06f61, 0x03714821, 0x0062c412, 0x0252d141, 0x03edeff4, 0x0391f135, 0x00271eca}}}, + {X: Field{[10]uint32{0x03718ac4, 0x01ebd42e, 0x01536fe2, 0x02a72949, 0x02bc7061, 0x0196e280, 0x01de0eb8, 0x02933bca, 0x00677aa9, 0x0017e051}}, Y: Field{[10]uint32{0x00d9c042, 0x033c4064, 0x01b3669a, 0x0251cf8e, 0x022b8cb8, 0x00c07ec0, 0x00340716, 0x02c9bf99, 0x01dc4062, 0x002f6a59}}}, + {X: Field{[10]uint32{0x01dd88bb, 0x03ac551d, 0x0390388b, 0x029346b2, 0x02da5f96, 0x016607cc, 0x029f2130, 0x01d2612c, 0x03043791, 0x003cdcb2}}, Y: Field{[10]uint32{0x02367d89, 0x002ad186, 0x00efcb2a, 0x03b38cb1, 0x007ceda2, 0x01a50653, 0x00a0ea07, 0x03540068, 0x035c1e62, 0x0020b5a3}}}, + {X: Field{[10]uint32{0x0359b128, 0x0314c82e, 0x026927a3, 0x03c890f8, 0x02878ec6, 0x03efe92c, 0x03133753, 0x0011e0d8, 0x03c54576, 0x0003ec4a}}, Y: Field{[10]uint32{0x0153aef5, 0x01af9712, 0x03e17a92, 0x01dff5ef, 0x01961930, 0x009329a0, 0x01ac0cba, 0x0386d6ed, 0x011867da, 0x000fe080}}}, + {X: Field{[10]uint32{0x00c0ea07, 0x03fe0658, 0x02447316, 0x0286c2a4, 0x034adafe, 0x01ea5d1f, 0x03075601, 0x0128d3d0, 0x01ac918a, 0x000f65d6}}, Y: Field{[10]uint32{0x02018aaa, 0x02956695, 0x03ecc6fc, 0x0299defa, 0x00caa317, 0x02a5925f, 0x031d5dda, 0x00cc2ad9, 0x03cf6d6a, 0x00033676}}}, + {X: Field{[10]uint32{0x023e00ce, 0x015720bf, 0x02909844, 0x037d6390, 0x019f476f, 0x01a6f1f7, 0x0349be46, 0x014870fe, 0x02b3699c, 0x003ab82a}}, Y: Field{[10]uint32{0x0317259e, 0x01feb853, 0x00bdd977, 0x0078478c, 0x0362c7ef, 0x017a0228, 0x0377b562, 0x039f0a66, 0x00dd450e, 0x002eb73a}}}, + {X: Field{[10]uint32{0x011eb851, 0x002afb51, 0x0338455e, 0x01f49328, 0x0343718a, 0x0097b974, 0x0225d0e9, 0x033aa95d, 0x02eec2c0, 0x003fb494}}, Y: Field{[10]uint32{0x002c648f, 0x0296a2ba, 0x03b4c457, 0x007173c2, 0x00dd0721, 0x001d5bd9, 0x0166b277, 0x03bf3087, 0x02ae56ce, 0x0019aeed}}}, + {X: Field{[10]uint32{0x017f9dbd, 0x021e4e8b, 0x013c9bc0, 0x00be74c0, 0x022362af, 0x02eac2c8, 0x03fb04d3, 0x030f0505, 0x02bd022a, 0x003698e7}}, Y: Field{[10]uint32{0x022466d5, 0x029ed3a0, 0x0031c10a, 0x03a8f9e8, 0x003627aa, 0x00daef95, 0x034ed0d5, 0x03a7cbe9, 0x022055f1, 0x0020fc9d}}}, + {X: Field{[10]uint32{0x02ab90dd, 0x01f3f09f, 0x0282ce09, 0x029ab2b9, 0x0132ced2, 0x031c77e4, 0x00d3ac67, 0x0116bd35, 0x00ded773, 0x00149349}}, Y: Field{[10]uint32{0x02b7f5c2, 0x01e81d3e, 0x03b01b2f, 0x000221ec, 0x032d010a, 0x003f9f3f, 0x036f55c9, 0x01f170c6, 0x00f7c692, 0x003933d7}}}, + {X: Field{[10]uint32{0x00ae4f94, 0x03149a15, 0x021c4b24, 0x02917ef0, 0x0028672d, 0x00a185ed, 0x007cde0c, 0x02d830d7, 0x02d5fb52, 0x001f6b0b}}, Y: Field{[10]uint32{0x03794038, 0x023b83f9, 0x0309ea57, 0x02db4a0a, 0x02f6cc11, 0x034919b0, 0x035c4a2b, 0x022199c2, 0x007ae916, 0x00331ab3}}}, + {X: Field{[10]uint32{0x016083ae, 0x01472fb9, 0x03ea6f7c, 0x02728e24, 0x02887e5d, 0x003a4a46, 0x019d10d0, 0x03d67dae, 0x024dda61, 0x0017d1ad}}, Y: Field{[10]uint32{0x0283a8ae, 0x007cf678, 0x0182e5ee, 0x02e9f86d, 0x0109bfa6, 0x0155ca4a, 0x02dcfb9c, 0x00995541, 0x0055da25, 0x001810f4}}}, + {X: Field{[10]uint32{0x01e14aa3, 0x0258685f, 0x03635175, 0x0308e29f, 0x0348ef0f, 0x023177c3, 0x0241ec2b, 0x017c85b9, 0x0033b6a2, 0x002218fb}}, Y: Field{[10]uint32{0x02b42541, 0x032c4ac3, 0x037a117d, 0x020f683f, 0x0345b2a5, 0x01241956, 0x00292777, 0x016070be, 0x00f31e52, 0x00275986}}}, + {X: Field{[10]uint32{0x03a2f9f4, 0x035a9a0c, 0x02a03a1b, 0x03dcfa4b, 0x03b377f3, 0x03c9be47, 0x00184c7e, 0x016739b6, 0x00463ac4, 0x0021500d}}, Y: Field{[10]uint32{0x01b399cb, 0x03dc9e31, 0x01430438, 0x03c8ec32, 0x018f7719, 0x00c4ff8d, 0x012a5b18, 0x019266c9, 0x02968ac5, 0x000b47c4}}}, + {X: Field{[10]uint32{0x02223c7f, 0x032b7597, 0x03201379, 0x009d7adf, 0x006a325d, 0x018899ad, 0x0251dbc3, 0x0104aff9, 0x03f6217e, 0x0002fdac}}, Y: Field{[10]uint32{0x03ba748b, 0x02c6bbe5, 0x03eaf0a9, 0x0035abc6, 0x01ebfad9, 0x03bb8f7b, 0x0041e7dc, 0x029157ec, 0x0154c14a, 0x00284582}}}, + {X: Field{[10]uint32{0x02d9e59d, 0x009396af, 0x03ffc771, 0x00662e86, 0x03860ca2, 0x0026a933, 0x02079ea4, 0x0184d52a, 0x002d3c18, 0x0012c808}}, Y: Field{[10]uint32{0x035b8873, 0x017a2a43, 0x002bab55, 0x01154418, 0x007703eb, 0x03c47641, 0x01d858f2, 0x0302c2e9, 0x0103c107, 0x0027da11}}}, + {X: Field{[10]uint32{0x02421dd2, 0x01a96a81, 0x03e28268, 0x03c989f2, 0x0199c050, 0x009ed64c, 0x024f5331, 0x02692ce8, 0x00806d67, 0x001021fe}}, Y: Field{[10]uint32{0x0188e8b9, 0x01c1f4af, 0x0121b5a5, 0x0105627e, 0x01698800, 0x0263d696, 0x008c8836, 0x035220cf, 0x0184b3d9, 0x00120e2b}}}, + {X: Field{[10]uint32{0x0297b79c, 0x0244c6bf, 0x02ac766d, 0x00131e43, 0x00538775, 0x01693f0d, 0x01b91e00, 0x01d01a8b, 0x0287cb2e, 0x000569e4}}, Y: Field{[10]uint32{0x014a238a, 0x029069ae, 0x003fadf2, 0x033ee5aa, 0x031bd597, 0x00b18583, 0x03ce497c, 0x01cb8f4f, 0x03220765, 0x0027d3bc}}}, + {X: Field{[10]uint32{0x03bcecbe, 0x026cd0f8, 0x02812273, 0x0029f888, 0x02404fb1, 0x032cf502, 0x0233d61b, 0x012f13fc, 0x0063c052, 0x000713e8}}, Y: Field{[10]uint32{0x02d48bd6, 0x0231cf58, 0x003533aa, 0x02cafd34, 0x03d39c90, 0x035cc2ca, 0x0209e9eb, 0x00bbae5c, 0x01eca2d8, 0x000aa158}}}, + {X: Field{[10]uint32{0x01f2a636, 0x0058ed6b, 0x02c2656d, 0x029b5221, 0x02bb50b8, 0x014c4bca, 0x03936c18, 0x02cb1499, 0x03a743c1, 0x00281c22}}, Y: Field{[10]uint32{0x031a20ea, 0x017a534d, 0x00324584, 0x0188d669, 0x007dc66a, 0x004b874b, 0x01b81550, 0x022331b2, 0x01f19169, 0x002563d1}}}, + {X: Field{[10]uint32{0x00acad7d, 0x00de4f3a, 0x02858c21, 0x0152c4a6, 0x0109b797, 0x00b8cfff, 0x009d71f0, 0x010b9b84, 0x034df01a, 0x0035e582}}, Y: Field{[10]uint32{0x03deb920, 0x03078676, 0x00707d81, 0x024d8c46, 0x02335661, 0x03195cc2, 0x003d0e1d, 0x0074ad87, 0x01aa5a84, 0x00232bc6}}}, + {X: Field{[10]uint32{0x038ba611, 0x030c902f, 0x03789daa, 0x01b9ba28, 0x02a7c450, 0x03f286cc, 0x0225ba38, 0x01c3565b, 0x006bf8ba, 0x001e80f7}}, Y: Field{[10]uint32{0x037d9028, 0x021293df, 0x03881fcb, 0x0207425a, 0x00048a36, 0x01dcf85c, 0x023e378b, 0x01a15969, 0x0222292d, 0x001c3c67}}}, + {X: Field{[10]uint32{0x03443b97, 0x00e3c971, 0x01dbac2f, 0x0281c9bf, 0x01da516c, 0x01b20ea9, 0x0189850c, 0x00d0470e, 0x0262a8fa, 0x0014ea69}}, Y: Field{[10]uint32{0x03945e25, 0x03fd6780, 0x0036e140, 0x0316e00c, 0x022adcfd, 0x01134797, 0x013279e8, 0x030c6fcc, 0x02506179, 0x00177ab0}}}, + {X: Field{[10]uint32{0x02b2cdf7, 0x0143673f, 0x036f20a4, 0x02ca1da0, 0x01b7ee99, 0x0306eeaa, 0x0269af63, 0x00361bff, 0x02b63dbb, 0x0021ae51}}, Y: Field{[10]uint32{0x0374b1fa, 0x012d6603, 0x03a62ed7, 0x03006665, 0x037cbc39, 0x00793c4c, 0x018ea1ba, 0x038a9b2c, 0x0383d3d0, 0x0011101d}}}, + {X: Field{[10]uint32{0x03752d8e, 0x0054b9bb, 0x019babef, 0x03fee9c7, 0x036b28c8, 0x0034908f, 0x01567262, 0x012d1bda, 0x00f5cb88, 0x00033a07}}, Y: Field{[10]uint32{0x02a9248c, 0x02d50117, 0x009262d0, 0x03fca243, 0x02979177, 0x001306aa, 0x01bf924c, 0x019130d2, 0x01738120, 0x001d6bf6}}}, + {X: Field{[10]uint32{0x01172ed9, 0x033a4b78, 0x02b8fbc6, 0x010c4ce8, 0x037b791d, 0x01f55f51, 0x006cb9e4, 0x0134b67e, 0x02413a46, 0x0010441b}}, Y: Field{[10]uint32{0x036741c6, 0x031be87d, 0x03374d2e, 0x00a9cde6, 0x002ce4e4, 0x01ce83e2, 0x01601a27, 0x0082e001, 0x00c230e9, 0x0038b291}}}, + {X: Field{[10]uint32{0x00b49777, 0x0106d288, 0x001524e1, 0x0328814b, 0x03bca3f1, 0x01eb1bda, 0x006541ec, 0x00284b95, 0x02a04e83, 0x003a707c}}, Y: Field{[10]uint32{0x02a58124, 0x0247e6cc, 0x0030886b, 0x0087d754, 0x005ca737, 0x0059c4b2, 0x0173fcd5, 0x004b08a6, 0x004308dd, 0x001477ce}}}, + {X: Field{[10]uint32{0x033bbf2c, 0x0173c579, 0x01511fce, 0x009d0943, 0x039be21f, 0x00554b8e, 0x0225775f, 0x03fcf92e, 0x012dc5e8, 0x0022ee78}}, Y: Field{[10]uint32{0x000d1152, 0x03c46a34, 0x0162f91e, 0x022af08e, 0x02b4d096, 0x03067137, 0x024fcf50, 0x00dcc070, 0x037a273c, 0x0022a08a}}}, + {X: Field{[10]uint32{0x00b6bd0f, 0x0165e9eb, 0x011399ad, 0x00f80a5f, 0x01697f3f, 0x03d9b80c, 0x0294c3ee, 0x01de4791, 0x02f1da22, 0x002c0163}}, Y: Field{[10]uint32{0x02205a2a, 0x016cbc2f, 0x02978c80, 0x0111f4ae, 0x01e5deb6, 0x03ffa009, 0x000bee68, 0x00e05363, 0x034a0579, 0x001fd6ea}}}, + {X: Field{[10]uint32{0x002522a5, 0x014da32b, 0x025c8db9, 0x015d2e1c, 0x006dfc35, 0x0137f2ac, 0x0202b780, 0x03f7594b, 0x002d8df5, 0x00077b75}}, Y: Field{[10]uint32{0x02bca540, 0x019567ad, 0x0254f5b4, 0x037bcd5d, 0x0024b918, 0x020ed86e, 0x03f4a8f9, 0x00349463, 0x00492373, 0x000c1569}}}, + {X: Field{[10]uint32{0x000ea544, 0x03cbbd0e, 0x01f7da46, 0x00f67571, 0x03e47181, 0x00af0e76, 0x005b0b51, 0x012ea4fd, 0x0248c679, 0x001d8694}}, Y: Field{[10]uint32{0x032c1292, 0x03442c20, 0x01fc5c60, 0x00217eb4, 0x029f7034, 0x016ea3b5, 0x018d0a39, 0x033ab178, 0x0130c4f5, 0x0006177b}}}, + {X: Field{[10]uint32{0x03aa5caf, 0x02ae2638, 0x00f2ffef, 0x021d4069, 0x03a17496, 0x004f06d6, 0x0020982a, 0x03433237, 0x0360e515, 0x0003c756}}, Y: Field{[10]uint32{0x00a0d91d, 0x03b673de, 0x00708e42, 0x02dd5265, 0x03ee6f9a, 0x03ad8fc1, 0x033a9e48, 0x03630805, 0x026c395f, 0x00157f5d}}}, + {X: Field{[10]uint32{0x0337425f, 0x0264ff6e, 0x002d7fba, 0x012f0c09, 0x02fb09ff, 0x00711156, 0x02ba0bf6, 0x0002a95d, 0x004c9b79, 0x0015a72d}}, Y: Field{[10]uint32{0x00c350b1, 0x01009c83, 0x026d0d33, 0x03a03895, 0x01c1131d, 0x031f768f, 0x038f646a, 0x038f5079, 0x00d2ff1a, 0x0037f7ae}}}, + {X: Field{[10]uint32{0x021851eb, 0x031e1f2e, 0x00776d22, 0x0045f734, 0x039c2dda, 0x0363e142, 0x0147a787, 0x00e7a146, 0x029ad998, 0x000f966d}}, Y: Field{[10]uint32{0x012e20b3, 0x03620d16, 0x036d434c, 0x017acb27, 0x03705074, 0x01fb13c9, 0x01d93583, 0x02c0c1af, 0x02a48bfe, 0x001ccb34}}}, + {X: Field{[10]uint32{0x01296967, 0x03a93125, 0x0087b0e6, 0x015ccb0c, 0x0181acec, 0x03f0221b, 0x02502403, 0x015a0a60, 0x022107b4, 0x00291b59}}, Y: Field{[10]uint32{0x01763d33, 0x006b3bee, 0x03464005, 0x02139849, 0x01461478, 0x026a0823, 0x0097a73f, 0x02c18890, 0x00f429a5, 0x00050333}}}, + {X: Field{[10]uint32{0x0079ab1c, 0x005b1194, 0x0392774d, 0x03fb6bad, 0x004ad70e, 0x0055d727, 0x000c427d, 0x014ee9f0, 0x019cf25c, 0x002e4839}}, Y: Field{[10]uint32{0x0045b67f, 0x0065f07c, 0x005c9d43, 0x017cdfd6, 0x039201ec, 0x0195ae4d, 0x01435a61, 0x02223475, 0x00f1d4ba, 0x00181858}}}, + {X: Field{[10]uint32{0x00bfa8c5, 0x0381adfe, 0x00713896, 0x03663417, 0x023b88b6, 0x02c9c36d, 0x03da1efd, 0x00dee7ab, 0x02e1e7d8, 0x0004b3c6}}, Y: Field{[10]uint32{0x01c99c0f, 0x03329a4e, 0x035d91e8, 0x01b52141, 0x03c4c1d6, 0x0273f62c, 0x0323d7be, 0x024d2c27, 0x0213181b, 0x00383599}}}, + {X: Field{[10]uint32{0x01c0ec1f, 0x03ce74e3, 0x0230287f, 0x0002f84e, 0x02eb93a9, 0x00ca0553, 0x00620e5a, 0x02b28b98, 0x03ae0a4e, 0x001aab49}}, Y: Field{[10]uint32{0x00a1f46a, 0x0189aee5, 0x008112fe, 0x01d0d0b0, 0x02d46814, 0x0315ff5e, 0x03e8cd2d, 0x0054e789, 0x01c5caa2, 0x0024c855}}}, + {X: Field{[10]uint32{0x00f870a0, 0x00d0fb2b, 0x01c36ce9, 0x03e487dd, 0x008d168b, 0x0301b06e, 0x03489166, 0x019afa0a, 0x014e7cb1, 0x0004d336}}, Y: Field{[10]uint32{0x01453236, 0x02230ec2, 0x014c0fab, 0x039f9cf4, 0x012f7c8f, 0x03c268e6, 0x02a51cff, 0x03f517a0, 0x03c5e956, 0x0010a99c}}}, + {X: Field{[10]uint32{0x023989ee, 0x027d6d56, 0x00e2c56d, 0x0063729a, 0x02429b1d, 0x0072173b, 0x002971fa, 0x031e1a31, 0x018c7b7c, 0x00357735}}, Y: Field{[10]uint32{0x01208100, 0x01989388, 0x035c5e31, 0x002bc2ed, 0x0345bedd, 0x028ce2f1, 0x01a05297, 0x032b93b3, 0x0130ef1b, 0x00383290}}}, + {X: Field{[10]uint32{0x020d8c8e, 0x02b27403, 0x02861f66, 0x02f454e2, 0x033e3567, 0x01a47cce, 0x01fa4cdb, 0x02422e41, 0x0134c344, 0x00254759}}, Y: Field{[10]uint32{0x017046f1, 0x017cc1bb, 0x039f9d57, 0x024669f5, 0x0295a5f6, 0x0114957d, 0x001a9903, 0x01e4a19a, 0x0122eb84, 0x003bbcd6}}}, + {X: Field{[10]uint32{0x01cdd0fc, 0x019973f0, 0x01e27b33, 0x02ea59bb, 0x02690af0, 0x02d48455, 0x0184c9c9, 0x025935db, 0x004b25f7, 0x0033b6e9}}, Y: Field{[10]uint32{0x03c79e7e, 0x006de6a1, 0x037d94c2, 0x009246a3, 0x02187e71, 0x024cc5ad, 0x007b6b64, 0x026bc746, 0x0049cb8e, 0x00201aa4}}}, + {X: Field{[10]uint32{0x00a10b54, 0x01bd2ab6, 0x02a2049c, 0x03445124, 0x01d1c7d2, 0x00afb285, 0x02bd39d3, 0x01afb8a6, 0x0260d130, 0x0013fc0d}}, Y: Field{[10]uint32{0x02d1e574, 0x0389dcc1, 0x01893d99, 0x01774bfc, 0x014990f2, 0x039c7da2, 0x02e8bc8b, 0x0265478d, 0x02698fd8, 0x0030b1d7}}}, + {X: Field{[10]uint32{0x022e0ca7, 0x0010b3b3, 0x01824389, 0x0289a0ee, 0x00c78061, 0x037edc80, 0x03b77020, 0x019197a1, 0x01088dbd, 0x003022f5}}, Y: Field{[10]uint32{0x008d7307, 0x024c957e, 0x03e78417, 0x02d82318, 0x011db329, 0x00ea7c5c, 0x02408842, 0x0125eac5, 0x01d61343, 0x00158806}}}, + {X: Field{[10]uint32{0x03f9857d, 0x03f576d2, 0x01e3a07a, 0x02a09d28, 0x00955bdd, 0x022eb0c6, 0x005cdd22, 0x033ac8ee, 0x00aa6fd2, 0x001237f7}}, Y: Field{[10]uint32{0x020287ce, 0x017fe8ba, 0x011710d5, 0x02d450c7, 0x00af60f4, 0x0390a555, 0x014e76fc, 0x019ee945, 0x022e8961, 0x000a9198}}}, + {X: Field{[10]uint32{0x02a1f236, 0x02b3fcc5, 0x03ceebbf, 0x01e68ce8, 0x02802c14, 0x01c094e0, 0x0376b471, 0x03e20f2f, 0x0100d81a, 0x00101082}}, Y: Field{[10]uint32{0x0385e3f7, 0x01a346de, 0x01b4be41, 0x01bbc678, 0x007831e9, 0x02d50957, 0x00f50fa2, 0x02d4ecc2, 0x00e0dbbc, 0x00219811}}}, + {X: Field{[10]uint32{0x022bdc42, 0x00bcdf8c, 0x0156f8b1, 0x01080ec4, 0x02ec1e31, 0x03a64823, 0x02c20184, 0x019f1dc3, 0x007b23b6, 0x0025a8dd}}, Y: Field{[10]uint32{0x00f22ab2, 0x01f3618f, 0x03af798c, 0x03d29281, 0x03dc7545, 0x034c975b, 0x010b04ba, 0x01191ccc, 0x03c8df8c, 0x0019ec2c}}}, + {X: Field{[10]uint32{0x00460182, 0x0244caf2, 0x02784503, 0x0246a345, 0x03f1db3e, 0x00545212, 0x0361f0cb, 0x01e5a490, 0x017de403, 0x0033c1c0}}, Y: Field{[10]uint32{0x0397939d, 0x006ece4d, 0x0106799b, 0x0327996b, 0x00e2eb60, 0x01a5018e, 0x036e762f, 0x0278c343, 0x010762f2, 0x002de86c}}}, + {X: Field{[10]uint32{0x018beb15, 0x0173d688, 0x036dc080, 0x028f75c9, 0x0393507a, 0x01d7f756, 0x01b90ded, 0x02dbdeb4, 0x00b25b0b, 0x0004ad6e}}, Y: Field{[10]uint32{0x038933da, 0x02d5bb6d, 0x009aee89, 0x01942cd8, 0x015a5bc1, 0x01032866, 0x02d6368d, 0x02866e03, 0x03678cef, 0x00174f51}}}, + {X: Field{[10]uint32{0x03a46765, 0x0270de84, 0x0327dcd9, 0x0266f66d, 0x0177ecd2, 0x0062dbc6, 0x018b9ace, 0x039b64e6, 0x009ce866, 0x0021e6d1}}, Y: Field{[10]uint32{0x03781c63, 0x004ea0d8, 0x02baec6c, 0x0057c0f9, 0x01f0c452, 0x006a3679, 0x0350c4e9, 0x03ec4ab3, 0x00eb758c, 0x002c3120}}}, + {X: Field{[10]uint32{0x00c7dead, 0x01ee4283, 0x0121dd2b, 0x00332cdb, 0x01e50228, 0x00ffbc92, 0x03a401dd, 0x02807747, 0x0383e9d3, 0x000bb121}}, Y: Field{[10]uint32{0x01a67fce, 0x03c31fa1, 0x00703ca2, 0x020419e6, 0x0283fd8f, 0x03ad1a68, 0x01e61505, 0x038b2869, 0x012478f9, 0x003ec0a4}}}, + {X: Field{[10]uint32{0x037c3ce7, 0x008824d0, 0x03a83aee, 0x03eef61c, 0x025b7878, 0x0051655a, 0x03e8fcd2, 0x036c1ce7, 0x025827be, 0x001e7328}}, Y: Field{[10]uint32{0x00ac467e, 0x02073aa7, 0x015a8d33, 0x02c8b064, 0x00bee990, 0x03add2cc, 0x00b7c483, 0x021d4053, 0x0293d82e, 0x003fd222}}}, + {X: Field{[10]uint32{0x02dbd207, 0x00f37556, 0x01cd93e9, 0x0203526a, 0x028e146a, 0x00185aa9, 0x02b9eed4, 0x022dea09, 0x00ca3d2b, 0x00311129}}, Y: Field{[10]uint32{0x012d0f18, 0x03f09cc2, 0x032319d1, 0x003ee3f0, 0x00ac00ad, 0x037b41a1, 0x01ae3381, 0x00130950, 0x00a963d5, 0x001344da}}}, + {X: Field{[10]uint32{0x03f3e7a8, 0x0154a6f3, 0x03c267ee, 0x02298124, 0x02dbed32, 0x020d7a35, 0x024e2050, 0x0112c961, 0x0050cc0e, 0x000fb91f}}, Y: Field{[10]uint32{0x00a5f095, 0x0072a7a4, 0x0391f84e, 0x00c00f46, 0x00b6229a, 0x0117890f, 0x02496401, 0x02a1ef0c, 0x0339056e, 0x003e9554}}}, + {X: Field{[10]uint32{0x0009980c, 0x004b5f72, 0x020a81c0, 0x0364b464, 0x038e69e2, 0x03e6c3d1, 0x02251a29, 0x02edfd08, 0x01873036, 0x003a58f2}}, Y: Field{[10]uint32{0x01c52fd6, 0x009e8f15, 0x025e6180, 0x035b1fe3, 0x02140f92, 0x0202c5cf, 0x002bfa48, 0x02fcbc49, 0x03b0779b, 0x0003fe56}}}, + {X: Field{[10]uint32{0x008fc07d, 0x00473195, 0x008bd3f7, 0x01439a1b, 0x0023738e, 0x011be8e5, 0x024b747a, 0x02e2e6bf, 0x035bb6a1, 0x002abd81}}, Y: Field{[10]uint32{0x02f2b0cb, 0x0354866a, 0x0098b1bb, 0x01baef7e, 0x0253ab32, 0x03ad047a, 0x005bd162, 0x0328707a, 0x02ec6d11, 0x001336c2}}}, + {X: Field{[10]uint32{0x0157ac0f, 0x031d6150, 0x012986e4, 0x0357aa48, 0x02842b44, 0x0175c22a, 0x0174a18d, 0x01d5b638, 0x0017d8e9, 0x001a4792}}, Y: Field{[10]uint32{0x00c0c222, 0x03d01da8, 0x008c2d1f, 0x037ca7d4, 0x034bb9a8, 0x00be4a1c, 0x010eb157, 0x01eb5e03, 0x020b3bfa, 0x0027abae}}}, + {X: Field{[10]uint32{0x0344996a, 0x03821ff9, 0x03fd81d9, 0x02cc72bc, 0x00c77dbf, 0x020f6b63, 0x01c9d4c5, 0x01292250, 0x01bb45af, 0x0030f9bf}}, Y: Field{[10]uint32{0x008366f2, 0x010af258, 0x00a730e6, 0x01d2d526, 0x010b8694, 0x02b13a5e, 0x0207bfd1, 0x00a6e3fb, 0x011e65ab, 0x0032a663}}}, + {X: Field{[10]uint32{0x0140701f, 0x03002cc2, 0x013868ce, 0x03e00ccf, 0x02923ead, 0x01f17265, 0x032630be, 0x00973c87, 0x0320a55d, 0x003b6f58}}, Y: Field{[10]uint32{0x01e4889e, 0x005090d3, 0x003e3f7a, 0x0143dacb, 0x025e3d3d, 0x038a3e52, 0x00cd12bf, 0x03d79322, 0x02e7afce, 0x00359464}}}, + {X: Field{[10]uint32{0x0295d336, 0x02d30d3a, 0x005dad7c, 0x03b67536, 0x02b29684, 0x00f0dd04, 0x02fd2494, 0x0382e2b0, 0x0183a80a, 0x0032567b}}, Y: Field{[10]uint32{0x032b168b, 0x0268b869, 0x03e5f8b5, 0x023804bd, 0x014de5f5, 0x00965c30, 0x00b0e970, 0x03c94ab6, 0x02bb8dcc, 0x00203076}}}, + {X: Field{[10]uint32{0x02ed9237, 0x00f7e0cf, 0x0231274e, 0x03b76992, 0x022c5bc6, 0x034b573e, 0x00c90224, 0x0013a762, 0x01744710, 0x001de331}}, Y: Field{[10]uint32{0x02916c17, 0x00b724e4, 0x0360946b, 0x03f94730, 0x01675720, 0x02e48767, 0x012e502d, 0x007009ee, 0x01316b2a, 0x003ba88f}}}, + {X: Field{[10]uint32{0x03b42055, 0x02bf2598, 0x02d9a5c2, 0x011b4fef, 0x00173e7e, 0x036634b0, 0x03299f81, 0x015abd0f, 0x00388c36, 0x00287e1d}}, Y: Field{[10]uint32{0x016f4afc, 0x0261e9f5, 0x0284eabb, 0x03fb71ca, 0x015d874a, 0x0264d9e1, 0x0150e79b, 0x035b16cc, 0x00430820, 0x00042f21}}}, + {X: Field{[10]uint32{0x00224a5d, 0x008247da, 0x036a3d00, 0x020dd503, 0x028f7fa5, 0x00f410fb, 0x01a1839c, 0x022e2b36, 0x030b2d5f, 0x00322b5f}}, Y: Field{[10]uint32{0x03aebf8b, 0x017c6471, 0x01ec38e6, 0x02d4455f, 0x022a1cd4, 0x0229ff92, 0x01507cf1, 0x016e68b4, 0x0180eebe, 0x000c062d}}}, + {X: Field{[10]uint32{0x0020055f, 0x020436d2, 0x02d20bea, 0x01028a9e, 0x031ecf38, 0x02b9d9fd, 0x024e4261, 0x03f5eedf, 0x02640b93, 0x00309754}}, Y: Field{[10]uint32{0x025ad684, 0x027a3891, 0x03524c34, 0x03b0e851, 0x02bf331a, 0x02d23b4c, 0x01fffbce, 0x00ac3e8a, 0x00c76e3f, 0x003e8572}}}, + {X: Field{[10]uint32{0x0178f92b, 0x018afd7a, 0x032f2ccc, 0x01de22d7, 0x03283168, 0x02cb61ce, 0x03224dcc, 0x02feb6eb, 0x02eb7e4c, 0x00342e5c}}, Y: Field{[10]uint32{0x03ab8e3b, 0x0390837d, 0x03f56e94, 0x00c61082, 0x0275610b, 0x008f9e1e, 0x03bcb4cf, 0x01614aab, 0x00a1606a, 0x003bd74f}}}, + {X: Field{[10]uint32{0x030a2d07, 0x02010ac6, 0x014ab56c, 0x0146ef0a, 0x02d393e8, 0x02604cad, 0x008791ab, 0x0111e591, 0x00835856, 0x003e2d13}}, Y: Field{[10]uint32{0x0070a27c, 0x007b7fba, 0x00ed0b8e, 0x000756ec, 0x022dbe0c, 0x03239d93, 0x0051362f, 0x0102fba6, 0x02bf0420, 0x0030a090}}}, + {X: Field{[10]uint32{0x025666b7, 0x02df20f6, 0x02d368ac, 0x00641469, 0x005d9424, 0x00bf448d, 0x0010adc1, 0x02ab78e5, 0x01016f72, 0x0039f2e2}}, Y: Field{[10]uint32{0x02b21697, 0x01070d75, 0x00f63953, 0x02032c3e, 0x03f0c87e, 0x00e8595b, 0x014ee6c5, 0x03675fbf, 0x012246b6, 0x00378d9d}}}, + {X: Field{[10]uint32{0x0279d87f, 0x031d0930, 0x02167fb2, 0x03925733, 0x01f40f93, 0x01317abd, 0x02894786, 0x03d2aa4b, 0x028f14e3, 0x00022c84}}, Y: Field{[10]uint32{0x00f5d246, 0x02c39243, 0x00c11cbe, 0x0356e0c1, 0x02699926, 0x020c0c0f, 0x0012068a, 0x02d2c406, 0x004af469, 0x0039fb4e}}}, + {X: Field{[10]uint32{0x013b4afb, 0x01023d42, 0x00317658, 0x0075e17a, 0x001f3f63, 0x02d6cc7d, 0x036a5f3a, 0x035618e2, 0x01db3cbc, 0x003cd36d}}, Y: Field{[10]uint32{0x003dd3d9, 0x00c3f543, 0x02f2d56e, 0x018d3263, 0x005bf112, 0x03ff06b1, 0x031a1c74, 0x02119be8, 0x0372bb2c, 0x0037f39c}}}, + {X: Field{[10]uint32{0x00aabdb8, 0x017570bb, 0x01c86a96, 0x03937494, 0x0110b4fe, 0x03294cee, 0x00a48eab, 0x035a176b, 0x0209a445, 0x0030da27}}, Y: Field{[10]uint32{0x0279e3f4, 0x007c8bc5, 0x017a155c, 0x01f8e964, 0x03d62e18, 0x0101d747, 0x03efbe4f, 0x00feef0c, 0x005a6a26, 0x001e0134}}}, + {X: Field{[10]uint32{0x03005cbc, 0x022832cf, 0x00a78d70, 0x0128ad1f, 0x03f1e47d, 0x0025624b, 0x0266d626, 0x0284341e, 0x01ecf776, 0x001ffe65}}, Y: Field{[10]uint32{0x026ea90d, 0x0317ab32, 0x019f5cd5, 0x0343a4a6, 0x000e3911, 0x01b420a2, 0x00a4d115, 0x0390c337, 0x03745f17, 0x003b7371}}}, + {X: Field{[10]uint32{0x027d4d27, 0x0094fb10, 0x028e41c0, 0x035873f2, 0x010db78b, 0x0108faed, 0x03183512, 0x012fe5a6, 0x02626223, 0x000d98a8}}, Y: Field{[10]uint32{0x002e1b09, 0x032aeb07, 0x0199fc41, 0x026de6d2, 0x03d550ef, 0x032b28da, 0x000f671c, 0x039a703d, 0x00420f07, 0x00222988}}}, + {X: Field{[10]uint32{0x0354e8d1, 0x00ed050f, 0x03951176, 0x03a45852, 0x00b6b4eb, 0x01281ce2, 0x00e66ee2, 0x0310ba5c, 0x002e06d9, 0x000b049f}}, Y: Field{[10]uint32{0x03dd6629, 0x01672743, 0x0193aaae, 0x008d808b, 0x00856be0, 0x012b6b8c, 0x0226c8ff, 0x02b7eabe, 0x02b8dacb, 0x00291dcf}}}, + {X: Field{[10]uint32{0x02c17802, 0x03594552, 0x02cb37f6, 0x002e33e6, 0x02b7dfcb, 0x03f8c2df, 0x014863a9, 0x00587ff6, 0x03a6116f, 0x0031083f}}, Y: Field{[10]uint32{0x010a028c, 0x02c50ef9, 0x03bc0079, 0x025cbba3, 0x017fd76d, 0x017b6a30, 0x019e9cf9, 0x023db212, 0x029c25c6, 0x0039b311}}}, + {X: Field{[10]uint32{0x02e3de0d, 0x01de11fa, 0x0169b50c, 0x029f9ff2, 0x0034d386, 0x00c85d1a, 0x002f06fd, 0x010f7563, 0x03432203, 0x001de259}}, Y: Field{[10]uint32{0x01fd9369, 0x01529348, 0x021f8570, 0x016589e4, 0x00cd9067, 0x00a7a4aa, 0x00bcd7d6, 0x037365c4, 0x019e4408, 0x0010d435}}}, + {X: Field{[10]uint32{0x009f5827, 0x009c4e4d, 0x03c83dc1, 0x023c644c, 0x03714768, 0x00dbfc3d, 0x0334f9b6, 0x0372d00c, 0x002c1a14, 0x0033dfa9}}, Y: Field{[10]uint32{0x019e6d9d, 0x02547776, 0x00a29f8e, 0x02259918, 0x020ad1a6, 0x025792a9, 0x01c28468, 0x03e7744e, 0x0080166b, 0x002e700b}}}, + {X: Field{[10]uint32{0x0273a91f, 0x0057e969, 0x036309d8, 0x0211fdd4, 0x02417b1c, 0x00f27e5b, 0x028ab1b3, 0x02af76b6, 0x0039ab1f, 0x00345e4d}}, Y: Field{[10]uint32{0x02d3b3e0, 0x003473f3, 0x0105f9bc, 0x03496903, 0x03b429ad, 0x02699f43, 0x019f6f7f, 0x0106c8ec, 0x02593b59, 0x002b04f5}}}, + {X: Field{[10]uint32{0x0292b420, 0x0193c0a7, 0x0026be98, 0x01dd29d0, 0x02547225, 0x004cf727, 0x02f58630, 0x0379c314, 0x00d6727d, 0x002ec55a}}, Y: Field{[10]uint32{0x02af3992, 0x01c32548, 0x02fe70b1, 0x00af856a, 0x009e137d, 0x03bb8a70, 0x02adf80c, 0x01d31b31, 0x0356268d, 0x002d5951}}}, + {X: Field{[10]uint32{0x03877dcc, 0x037a9eb6, 0x0020535c, 0x00b5de37, 0x03ce07c4, 0x00c6ea4f, 0x00681772, 0x02968e9d, 0x02d783e8, 0x001cca44}}, Y: Field{[10]uint32{0x03df80a2, 0x01e3239d, 0x01bab06f, 0x034ffb4f, 0x011664f5, 0x0271ea51, 0x00ffd7c2, 0x02348f9a, 0x03881b12, 0x0034d2e0}}}, + {X: Field{[10]uint32{0x0297074c, 0x011a231c, 0x00afa908, 0x03748941, 0x034927b6, 0x01a134ed, 0x03e18651, 0x00cba0b0, 0x0371fb85, 0x0031d3c3}}, Y: Field{[10]uint32{0x01006ac1, 0x027c69ef, 0x0006a53a, 0x0350440a, 0x0235984b, 0x0341031b, 0x03e5a92d, 0x005e3a2f, 0x0261c0bd, 0x0027697a}}}, + {X: Field{[10]uint32{0x023283b0, 0x032f1a27, 0x00aac91f, 0x004cf25c, 0x031785a6, 0x00c18366, 0x00e9e494, 0x01683169, 0x01398bda, 0x002f53ea}}, Y: Field{[10]uint32{0x030e433a, 0x02973680, 0x0295c5d2, 0x02efc537, 0x02e79cfd, 0x032eb035, 0x01be1cac, 0x012d2516, 0x03edb661, 0x0018c753}}}, + {X: Field{[10]uint32{0x0341cc8f, 0x01971928, 0x03a72f24, 0x01e5ee26, 0x03e9bc2d, 0x0172daf4, 0x003e0c81, 0x004f4c92, 0x0062733f, 0x0027e995}}, Y: Field{[10]uint32{0x0212db04, 0x0280b89a, 0x0313010f, 0x03f0bc53, 0x01443505, 0x01289c54, 0x00ada32c, 0x02c635d2, 0x005bafc5, 0x001c147f}}}, + {X: Field{[10]uint32{0x035e31aa, 0x0101d130, 0x03d4a6cd, 0x03f8b07a, 0x03715168, 0x036f94ef, 0x02434a9d, 0x02fc7a05, 0x037dab3d, 0x003aba9b}}, Y: Field{[10]uint32{0x0384d61d, 0x0069eae5, 0x01e6a76a, 0x02c07dc2, 0x01a594b9, 0x03d2ea41, 0x0080619f, 0x00ae5b08, 0x02c24f20, 0x002e5a58}}}, + {X: Field{[10]uint32{0x0317a2fc, 0x01eff14e, 0x007516b9, 0x022925fe, 0x039a117c, 0x02e38954, 0x03e6d5b7, 0x01d413cc, 0x02b63b94, 0x002cf7de}}, Y: Field{[10]uint32{0x01758b9b, 0x006ef127, 0x025b5ec5, 0x03aa454a, 0x01f11f00, 0x0069d677, 0x03a62650, 0x039b3b5b, 0x0100a35a, 0x001cb7dd}}}, + {X: Field{[10]uint32{0x03281bbf, 0x0346b1b0, 0x017fa3a8, 0x0025c990, 0x034341df, 0x01438a53, 0x0219be99, 0x0122b915, 0x02cc46da, 0x003be1d7}}, Y: Field{[10]uint32{0x031c72f5, 0x010aecdf, 0x01bc28a6, 0x030ae7a3, 0x0351ced2, 0x00c1b261, 0x010eb6e8, 0x0016db5b, 0x0204af4c, 0x001eae78}}}, + {X: Field{[10]uint32{0x00024fdc, 0x01bcdb1c, 0x014e7fc2, 0x015d32fc, 0x033d7487, 0x03f29422, 0x002f234a, 0x0228e942, 0x0046576a, 0x001d30f1}}, Y: Field{[10]uint32{0x00136506, 0x03fa3877, 0x02ae88c4, 0x02725293, 0x03b6ccac, 0x027628c1, 0x01d2afbf, 0x01bea1cb, 0x01164ddb, 0x001cf55e}}}, + {X: Field{[10]uint32{0x00f39274, 0x00e11b43, 0x00e1acf3, 0x02096999, 0x00c06b71, 0x00ee8bc6, 0x00204933, 0x00b8f9b0, 0x032c409f, 0x00256712}}, Y: Field{[10]uint32{0x009aad47, 0x010bda0b, 0x015d945f, 0x027c68e6, 0x01d31991, 0x03716fb7, 0x03cd3980, 0x018a7edc, 0x035c7401, 0x0005f2ac}}}, + {X: Field{[10]uint32{0x009175fb, 0x01e6a6db, 0x00d69a94, 0x02f24bed, 0x03f67c24, 0x01ff7ead, 0x013b53c6, 0x014c4c65, 0x01d69419, 0x001013c3}}, Y: Field{[10]uint32{0x024d87b3, 0x0245ef7c, 0x01570147, 0x01e61bbf, 0x037e7d3e, 0x0350ac0d, 0x01560851, 0x01234eac, 0x01e7f40a, 0x00215f1d}}}, + {X: Field{[10]uint32{0x00e82075, 0x031248db, 0x03566807, 0x03bc05c2, 0x032db4ec, 0x0021504d, 0x01f4d5ab, 0x003d694f, 0x0111233b, 0x000f8101}}, Y: Field{[10]uint32{0x000df3d3, 0x000e09d8, 0x00e02b96, 0x03806de4, 0x021fda08, 0x019d4ec8, 0x0235ebf5, 0x00e10dde, 0x0271dd44, 0x003e4cdc}}}, + {X: Field{[10]uint32{0x00d77e6e, 0x01337c8b, 0x03bd3e04, 0x00ae5211, 0x00ecc869, 0x01ef6b01, 0x03993e74, 0x0370f87d, 0x005310df, 0x00250baa}}, Y: Field{[10]uint32{0x02a155e5, 0x039892e7, 0x00e51e02, 0x03e950a3, 0x01f33e9a, 0x023106c7, 0x0110bbe5, 0x02dba6d1, 0x03c8e688, 0x002efcbd}}}, + {X: Field{[10]uint32{0x0103b532, 0x01b3a873, 0x02c0a3fe, 0x0247842c, 0x01dce217, 0x03406028, 0x01938097, 0x0297ee15, 0x02749883, 0x000795de}}, Y: Field{[10]uint32{0x0041c003, 0x005fb0eb, 0x01790194, 0x004b5773, 0x007b5756, 0x009e3a1e, 0x02530007, 0x0178576e, 0x022f856f, 0x002851d9}}}, + {X: Field{[10]uint32{0x03feaa5a, 0x01cb13db, 0x014c8ae4, 0x03f9f156, 0x037a05fb, 0x001ff928, 0x02e9dfa6, 0x01ed9084, 0x015a8a23, 0x003af276}}, Y: Field{[10]uint32{0x03f1162a, 0x011e55f9, 0x03c05b17, 0x0361ad2b, 0x038fec2f, 0x03e2d234, 0x015fb458, 0x0291f33c, 0x01c0e311, 0x000e501b}}}, + {X: Field{[10]uint32{0x03cac063, 0x00febc18, 0x00475277, 0x00dc7ecb, 0x01b90816, 0x02125862, 0x023d2280, 0x03f08084, 0x03601afd, 0x0031e3ab}}, Y: Field{[10]uint32{0x02b42de7, 0x020ecfcf, 0x029c76df, 0x033db07f, 0x01bacb42, 0x01b4e5be, 0x02e84c51, 0x00b7177d, 0x01b1e0c2, 0x000254c9}}}, + {X: Field{[10]uint32{0x036d34a0, 0x01a173f7, 0x01db8752, 0x01a80d5c, 0x004f2e53, 0x005f09e6, 0x00a3d0e1, 0x00134ad1, 0x0319a1d5, 0x002d6461}}, Y: Field{[10]uint32{0x00184abe, 0x013a6986, 0x02a356d5, 0x02c9798b, 0x0016beac, 0x03226414, 0x029828aa, 0x02df23e8, 0x00cb585c, 0x0026c07a}}}, + {X: Field{[10]uint32{0x020042cd, 0x0325e3a3, 0x01584bda, 0x0115297a, 0x02454f10, 0x031bdd6d, 0x0107dfdc, 0x0327464a, 0x033eb59f, 0x0021c1a9}}, Y: Field{[10]uint32{0x03dc3a49, 0x024a1b56, 0x001ce710, 0x037478d3, 0x004265e2, 0x02daa1fa, 0x028405a2, 0x01e35bd4, 0x03566f1f, 0x0022c6d7}}}, + {X: Field{[10]uint32{0x0312d6ca, 0x0154a741, 0x0230ae64, 0x0108e888, 0x00793e56, 0x01b8ab41, 0x00a92890, 0x012fedbd, 0x016e4ddb, 0x0024fa49}}, Y: Field{[10]uint32{0x02afdcea, 0x01aa3b5b, 0x01cd6975, 0x011e429d, 0x03d874f2, 0x0038e626, 0x000ea62f, 0x037fb0d9, 0x02dbd9b3, 0x0020ec90}}}, + {X: Field{[10]uint32{0x022ac295, 0x031bfe7a, 0x0127fe9a, 0x02fd62ad, 0x03a24fff, 0x00755806, 0x0353956a, 0x03ce6f2c, 0x01af8702, 0x000b6b52}}, Y: Field{[10]uint32{0x03e4675b, 0x00e98949, 0x002fe277, 0x00450370, 0x00ed4036, 0x032b3a30, 0x000704e2, 0x001d8957, 0x00b8e604, 0x002d6bda}}}, + {X: Field{[10]uint32{0x036950a0, 0x00431513, 0x014f7597, 0x0193d0ec, 0x0086a2c3, 0x03af8ccb, 0x01627195, 0x00be9152, 0x00994da4, 0x0017ff06}}, Y: Field{[10]uint32{0x02c9bb88, 0x00c6b570, 0x0363f043, 0x00be6ea7, 0x014542ad, 0x036c14f3, 0x00e61419, 0x017ea888, 0x00a87981, 0x0008bab0}}}, + {X: Field{[10]uint32{0x001c51ba, 0x02982ff5, 0x02b6e69f, 0x02739b98, 0x00324c63, 0x00aed6b4, 0x0221bb8a, 0x029e6713, 0x01bb1832, 0x001c6f82}}, Y: Field{[10]uint32{0x00dda472, 0x03c8e355, 0x01656e4f, 0x03730578, 0x01950588, 0x0153ac92, 0x0040767b, 0x016e3ca3, 0x03c5719a, 0x0031489f}}}, + {X: Field{[10]uint32{0x02587212, 0x0303b59a, 0x002770ba, 0x0359115a, 0x0056d661, 0x037caeb1, 0x00a3cb37, 0x0267c299, 0x0305f927, 0x00013e50}}, Y: Field{[10]uint32{0x03c054ab, 0x007f04c4, 0x03344051, 0x01b5b403, 0x026baf79, 0x0363475f, 0x00ddc7ca, 0x020f5ae5, 0x011fbd86, 0x0013121a}}}, + {X: Field{[10]uint32{0x00f0ab81, 0x021ace98, 0x033bc54b, 0x02338b1a, 0x02b3aeb3, 0x017d8614, 0x024fc096, 0x0248fb98, 0x028b6fc2, 0x00157be1}}, Y: Field{[10]uint32{0x0222efab, 0x039b9e45, 0x01a0e72c, 0x037c8b70, 0x0376cff6, 0x0198147e, 0x014d0adc, 0x02d3314d, 0x02eaab16, 0x003b0662}}}, + {X: Field{[10]uint32{0x00fdab68, 0x0330d55d, 0x022790cb, 0x02f08d90, 0x00a357f6, 0x01028e56, 0x020953ed, 0x0276fc39, 0x019046e1, 0x0009ab55}}, Y: Field{[10]uint32{0x02795508, 0x03ecfc3e, 0x025e2184, 0x039d36f0, 0x00e5bb77, 0x002f1a25, 0x03c6a746, 0x00870154, 0x01ef9067, 0x002bdbf1}}}, + {X: Field{[10]uint32{0x0037312a, 0x03307c3b, 0x0150384f, 0x01a63ba3, 0x02bc051a, 0x00e406fc, 0x000b0ae4, 0x01c554e7, 0x003ab1b0, 0x001ce7ed}}, Y: Field{[10]uint32{0x006b7e28, 0x00f9d8db, 0x019e7a19, 0x02e1302d, 0x01ff90d6, 0x0379aad3, 0x00abe331, 0x008898b5, 0x03043c88, 0x0030488d}}}, + {X: Field{[10]uint32{0x0216771d, 0x026eb519, 0x02c6cc29, 0x0196a74c, 0x03d5a109, 0x00ba4497, 0x03422f82, 0x03d76a9e, 0x009d508c, 0x00085119}}, Y: Field{[10]uint32{0x001ca76e, 0x03348a74, 0x03a1a74a, 0x032b6776, 0x0376ddea, 0x01419f3a, 0x03ef96b3, 0x031117c0, 0x038c0e33, 0x000454c5}}}, + {X: Field{[10]uint32{0x03b97072, 0x036438ee, 0x03580ec8, 0x038d55b4, 0x014d5577, 0x014209e3, 0x02a85175, 0x023a3c5b, 0x023c16ee, 0x0018b311}}, Y: Field{[10]uint32{0x026a891e, 0x0218ffa2, 0x033fcb81, 0x03e8be6a, 0x0356b48e, 0x0244ce56, 0x02a6c91c, 0x03140211, 0x0043e299, 0x00334a52}}}, + {X: Field{[10]uint32{0x03ef9c21, 0x03ab0cd4, 0x031c9707, 0x0376e77f, 0x004317e1, 0x0103dd33, 0x00fdb006, 0x03c64345, 0x030133ed, 0x00004658}}, Y: Field{[10]uint32{0x0020494c, 0x00db4855, 0x020c8031, 0x0065841a, 0x00caa4f5, 0x03681c0d, 0x03851876, 0x03b9b5d0, 0x00e5e3a3, 0x003c5aad}}}, + {X: Field{[10]uint32{0x0289adcd, 0x0298c648, 0x03c162b4, 0x00d0099c, 0x03777d4e, 0x025554a1, 0x0315baed, 0x03e4fca3, 0x03863fda, 0x002c942f}}, Y: Field{[10]uint32{0x01b3d2c1, 0x0356b04e, 0x016f828a, 0x03bce7eb, 0x01da1e06, 0x02d0357e, 0x013543f6, 0x00f4a21f, 0x01bede34, 0x000a5701}}}, + {X: Field{[10]uint32{0x003e7c6c, 0x03d1bd92, 0x03e696f4, 0x002053a1, 0x01027ef0, 0x00b0666c, 0x010945a7, 0x011ce67c, 0x03bcae58, 0x0024e902}}, Y: Field{[10]uint32{0x02858a09, 0x03a32f2a, 0x0217389f, 0x03802bd9, 0x03f088e2, 0x0249a192, 0x03289a45, 0x0259d3d7, 0x00c02980, 0x00207b5c}}}, + {X: Field{[10]uint32{0x020978cc, 0x0230303d, 0x01f90eff, 0x03753eaa, 0x0019ff7d, 0x03a60978, 0x03e76b34, 0x0275d6c5, 0x021b4e90, 0x002e799d}}, Y: Field{[10]uint32{0x035aa117, 0x01e4241e, 0x0211b762, 0x00ef2634, 0x0165c75e, 0x03cb215d, 0x001b70fb, 0x0049c222, 0x01035fb9, 0x00190305}}}, + {X: Field{[10]uint32{0x00cfec24, 0x010d8344, 0x039beebf, 0x0146c08a, 0x00ae4547, 0x016cb702, 0x03e260cf, 0x026e91a1, 0x0012fe3d, 0x0013708a}}, Y: Field{[10]uint32{0x039a90d1, 0x00b7d7df, 0x01c4305b, 0x00b90c0c, 0x0227f082, 0x0135a015, 0x02e986da, 0x0204d554, 0x034a5685, 0x00270d7b}}}, + {X: Field{[10]uint32{0x009deadf, 0x020a1b13, 0x03540934, 0x00948d98, 0x03e198e2, 0x020f4b4e, 0x02b94ba6, 0x03e70901, 0x02b31127, 0x0010c49d}}, Y: Field{[10]uint32{0x001efb3e, 0x00e312b8, 0x03743139, 0x03237756, 0x02c26d39, 0x037232fb, 0x006280dd, 0x037e192d, 0x0184c7f1, 0x0008997b}}}, + {X: Field{[10]uint32{0x0283632a, 0x0042b2cd, 0x00360aa8, 0x00dae1e2, 0x03328f17, 0x033eaa45, 0x00b81d76, 0x0163d0ad, 0x02c3c990, 0x001d716d}}, Y: Field{[10]uint32{0x028f719d, 0x036d7142, 0x00464aff, 0x006ea03c, 0x014a5aaa, 0x026a243c, 0x02309ef4, 0x01edfdc2, 0x009fdef1, 0x001527c0}}}, + {X: Field{[10]uint32{0x02a827d7, 0x03be6773, 0x0357c815, 0x03a44ba9, 0x0326d4d4, 0x02920077, 0x02b1a377, 0x03dd0a5d, 0x0027205a, 0x000f2400}}, Y: Field{[10]uint32{0x00649cc0, 0x015e2c42, 0x0184c83c, 0x01183f9c, 0x02007a24, 0x00ce76ac, 0x007fa7c0, 0x029f788e, 0x03f337ec, 0x00038a33}}}, + {X: Field{[10]uint32{0x0310d9ff, 0x01ebaacc, 0x0297f3a8, 0x02f4ea3a, 0x00c89637, 0x01708fcc, 0x03a8ab0d, 0x02e57c27, 0x031a3676, 0x0015983c}}, Y: Field{[10]uint32{0x011c568b, 0x035e1b2c, 0x03839efb, 0x01b0ae8f, 0x03955bb7, 0x01366bfc, 0x0092ff3e, 0x032829f6, 0x00d66bc4, 0x003581a7}}}, + {X: Field{[10]uint32{0x033babe9, 0x01e1bfd7, 0x02f618cd, 0x0351e6bd, 0x00e6733c, 0x02dc75de, 0x03979ce5, 0x037219fd, 0x00a41b45, 0x000ae2da}}, Y: Field{[10]uint32{0x01e4097a, 0x0314b163, 0x021ab40a, 0x0311b050, 0x03840f89, 0x02b66824, 0x00923f63, 0x006ccf08, 0x0244d544, 0x001f20c4}}}, + {X: Field{[10]uint32{0x01c18610, 0x00a73aa2, 0x01290442, 0x012cc0fa, 0x001d369d, 0x01acff28, 0x03578869, 0x02f3712c, 0x004db817, 0x00218d40}}, Y: Field{[10]uint32{0x02b909e2, 0x03b0ca5b, 0x0300c4c3, 0x00487f12, 0x007e9f35, 0x00563687, 0x0384cc05, 0x01b9af8b, 0x02402bd4, 0x00091cb6}}}, + {X: Field{[10]uint32{0x00cb28d0, 0x01a88d22, 0x03b693a5, 0x000f7193, 0x01b0d39d, 0x01b87b33, 0x03afbde4, 0x013e5e6d, 0x026b6eeb, 0x001b2646}}, Y: Field{[10]uint32{0x01c95620, 0x00467bd9, 0x013722bc, 0x00f93350, 0x030e0b75, 0x00fad11c, 0x0277188d, 0x018d4140, 0x034fc2cd, 0x0007977d}}}, + {X: Field{[10]uint32{0x0341570c, 0x02865fa7, 0x03a0ca52, 0x029258bf, 0x00554569, 0x0248a22e, 0x0298ed7e, 0x033246e5, 0x019d4283, 0x002b36b0}}, Y: Field{[10]uint32{0x02d7b66e, 0x00e94831, 0x01afeea0, 0x029be5f6, 0x02451d41, 0x01c5d0ae, 0x030c6bfe, 0x021507d4, 0x0187523c, 0x003e94db}}}, + {X: Field{[10]uint32{0x025fc6c0, 0x00a96591, 0x00abba3e, 0x03c2bad4, 0x0385bba7, 0x034a29f2, 0x00b107c3, 0x032ee552, 0x03a3f696, 0x002c525a}}, Y: Field{[10]uint32{0x006318ad, 0x00bbcf72, 0x0057a857, 0x02effd73, 0x03487740, 0x03a01e09, 0x03c8f8ea, 0x0129bb83, 0x00d5727a, 0x001dfedb}}}, + {X: Field{[10]uint32{0x01b09126, 0x01500d36, 0x03ec94d8, 0x01e2b6c1, 0x02c2c9f8, 0x01b44a39, 0x00cab31d, 0x03a7283f, 0x01b56098, 0x000ff65f}}, Y: Field{[10]uint32{0x022b4578, 0x01007cc8, 0x014a22c0, 0x012c09f8, 0x0324e37d, 0x022c91bd, 0x00451273, 0x038dd03f, 0x00361494, 0x0006f5df}}}, + {X: Field{[10]uint32{0x02aefce9, 0x00ab8bb0, 0x03338898, 0x03feb5e4, 0x02eb174c, 0x00271f3e, 0x036d5c44, 0x01a3b551, 0x0055f2a4, 0x0017a37e}}, Y: Field{[10]uint32{0x02a6845f, 0x02e32c4d, 0x0357a17e, 0x03b311bc, 0x01d50da8, 0x021c0610, 0x01771843, 0x032a2282, 0x02823bb8, 0x0014b9ce}}}, + {X: Field{[10]uint32{0x024672bd, 0x005021b1, 0x006613f8, 0x0076e503, 0x0062021a, 0x003ee4cb, 0x01e6fb0a, 0x032da7a5, 0x02eb1417, 0x00267c41}}, Y: Field{[10]uint32{0x03a6501d, 0x02097ffd, 0x015337e9, 0x010f4613, 0x01e484d8, 0x00709ff9, 0x02926e6a, 0x0000441a, 0x0038e1e7, 0x00279fec}}}, + {X: Field{[10]uint32{0x0251ef8c, 0x00c18e9f, 0x031f7ac4, 0x03f52971, 0x0068bb14, 0x03fc3882, 0x011d6864, 0x0361fff4, 0x00985526, 0x001a1bf1}}, Y: Field{[10]uint32{0x00588e5b, 0x01824651, 0x0224422f, 0x017d6cf5, 0x024137dc, 0x0383c8ff, 0x016dd6b2, 0x02be16f2, 0x0132d793, 0x00074a3d}}}, + {X: Field{[10]uint32{0x03f6b83d, 0x03e5af2f, 0x03b2093d, 0x0001582f, 0x00e4c836, 0x00dc3e19, 0x00f3a85b, 0x002f2a45, 0x0356cc45, 0x0033e977}}, Y: Field{[10]uint32{0x0137604b, 0x0017cee3, 0x0203f78b, 0x03c09938, 0x0261cf56, 0x023e05c1, 0x01d96c74, 0x03ff246c, 0x0246bab7, 0x0033bee6}}}, + {X: Field{[10]uint32{0x013e404e, 0x0022791c, 0x003e8b39, 0x01aa58aa, 0x02893760, 0x00d39f2f, 0x0241eed5, 0x025a4fdd, 0x034c3fbb, 0x002646da}}, Y: Field{[10]uint32{0x023f8d3e, 0x02d83baf, 0x03c7113b, 0x01e75611, 0x02098dab, 0x012e4ae2, 0x038a0a2f, 0x019a234e, 0x026bbe55, 0x000fffae}}}, + {X: Field{[10]uint32{0x03c8c0d7, 0x006ee484, 0x00bcd689, 0x038d5a4e, 0x032955c4, 0x0089b144, 0x021fa14f, 0x00487162, 0x01d3b9b0, 0x00344131}}, Y: Field{[10]uint32{0x00caa6e9, 0x003415ac, 0x0196a3d9, 0x00028244, 0x00091ddb, 0x0171ddce, 0x02cea218, 0x01f3f40c, 0x019a814d, 0x0002320e}}}, + {X: Field{[10]uint32{0x0355dfce, 0x00c652f8, 0x031bcad9, 0x03df1d2c, 0x03415a06, 0x0065093a, 0x01c9a407, 0x00d921d2, 0x0053a45c, 0x001d864a}}, Y: Field{[10]uint32{0x024ad2fc, 0x03cdd14c, 0x01ecf84e, 0x00de451d, 0x02b5517b, 0x00984f18, 0x02bc9345, 0x01404b5f, 0x02873cbb, 0x000c44e4}}}, + {X: Field{[10]uint32{0x01070725, 0x027ec6b9, 0x016c8805, 0x02e6069f, 0x0210c7f9, 0x014424ec, 0x01b1de5c, 0x0307d301, 0x00a80509, 0x0005ccc1}}, Y: Field{[10]uint32{0x001d353e, 0x0087e24d, 0x013d5f9e, 0x022ce630, 0x02800cdc, 0x01a48a5e, 0x03db2e9c, 0x020e5150, 0x0198c8e0, 0x0010efef}}}, + {X: Field{[10]uint32{0x03da104a, 0x02b94542, 0x014c46b7, 0x02a02c53, 0x019eacca, 0x0391bf25, 0x03f5b6a9, 0x01545041, 0x03e1d28c, 0x002b2815}}, Y: Field{[10]uint32{0x02bf6ce8, 0x02e90cf9, 0x017024dc, 0x03348fdb, 0x00cb00e6, 0x012dcae3, 0x0095be9a, 0x01dbfc60, 0x031770bd, 0x00385fc5}}}, + {X: Field{[10]uint32{0x0076dbaa, 0x0212274d, 0x02b04b7e, 0x017d839b, 0x0385b294, 0x00029f70, 0x00a73859, 0x023ec70c, 0x0150e009, 0x003ec809}}, Y: Field{[10]uint32{0x039a0f28, 0x013d597b, 0x0099645e, 0x008b7f0f, 0x03cedda9, 0x01fd1cf3, 0x03bc98c7, 0x031a36f4, 0x00203f72, 0x0006abe1}}}, + {X: Field{[10]uint32{0x011ae7ac, 0x021e6f38, 0x0101c08f, 0x026108b1, 0x03af1aa2, 0x00a562f8, 0x0366c66c, 0x01eae396, 0x010ca022, 0x003a56dc}}, Y: Field{[10]uint32{0x0397cf19, 0x00975427, 0x030a2c55, 0x01a36728, 0x00c745a9, 0x03b7407e, 0x0109022c, 0x03d2df6a, 0x00e1ab5c, 0x0039917d}}}, + {X: Field{[10]uint32{0x0044770a, 0x019bcf7a, 0x02a15147, 0x01b339df, 0x03ab136c, 0x033b517f, 0x01cf203c, 0x02ffe581, 0x025c3589, 0x001b6d14}}, Y: Field{[10]uint32{0x02658c81, 0x035a121c, 0x00903eb5, 0x02ecf167, 0x03799cd7, 0x00b01a62, 0x031d2958, 0x01612c8c, 0x0003f5f7, 0x0039adfd}}}, + {X: Field{[10]uint32{0x01085eb3, 0x01cc4ccd, 0x022c8fbe, 0x0229a592, 0x01169043, 0x0136e711, 0x03c2959e, 0x03ab9c57, 0x029e49da, 0x002224ea}}, Y: Field{[10]uint32{0x01987cdd, 0x031c2539, 0x00c10d01, 0x0316ebb2, 0x01bd15ce, 0x0197d8b2, 0x037a4b02, 0x00fced8d, 0x003eae80, 0x001c3ef6}}}, + {X: Field{[10]uint32{0x020207a0, 0x02505363, 0x01fd56e3, 0x03123ceb, 0x012cd9e2, 0x02a9e2f2, 0x01e3ece8, 0x02336a1c, 0x02cfac6e, 0x002f95fd}}, Y: Field{[10]uint32{0x0293d5f2, 0x0083cafb, 0x03aa1581, 0x0374daec, 0x028893ee, 0x0266a9ee, 0x00d141d8, 0x03e273f7, 0x007299ab, 0x001e05c2}}}, + {X: Field{[10]uint32{0x00b34925, 0x0232d508, 0x03562671, 0x03d16a79, 0x00a2f69b, 0x0340ad75, 0x0205ddd8, 0x0044a717, 0x02d285a0, 0x0001dfe9}}, Y: Field{[10]uint32{0x026455cc, 0x0136d14c, 0x03b97ce0, 0x02643805, 0x0337a2da, 0x0303b7fa, 0x0086288e, 0x0348633a, 0x023c13a3, 0x000c56ec}}}, + {X: Field{[10]uint32{0x01f4dc03, 0x02826e34, 0x01d00b2e, 0x02b65e37, 0x02061094, 0x019ffec3, 0x00834ca7, 0x0370cd8b, 0x03fe8414, 0x000bfb5e}}, Y: Field{[10]uint32{0x00117e01, 0x0378b166, 0x00ff20a6, 0x0182db13, 0x0363332a, 0x00047186, 0x01e434f0, 0x00f4c559, 0x00f7aa0b, 0x0005397a}}}, + {X: Field{[10]uint32{0x034d66c6, 0x03ab2242, 0x026a101a, 0x010b3a3b, 0x037f8af2, 0x03c0fb8f, 0x0343df2b, 0x006e87f2, 0x00d05a87, 0x0027d30b}}, Y: Field{[10]uint32{0x02922920, 0x0316502f, 0x01acf83b, 0x03d7f0d0, 0x03d0fd7d, 0x030e1388, 0x038a2abd, 0x01e21e3f, 0x0352f242, 0x003ad087}}}, + {X: Field{[10]uint32{0x01bea647, 0x03e9f297, 0x013ce7c8, 0x022eef07, 0x0015f0a4, 0x00dce0fc, 0x0203ef6e, 0x001332dc, 0x00b6824a, 0x0014f038}}, Y: Field{[10]uint32{0x01618cf9, 0x03f4e853, 0x00e91836, 0x0178416a, 0x0313c59d, 0x03a024e5, 0x01729f9b, 0x0328694e, 0x018d9246, 0x001aa6d6}}}, + {X: Field{[10]uint32{0x0117d714, 0x00eb62ab, 0x02fd5c0a, 0x02fded3b, 0x03bb20fd, 0x00cf5a3a, 0x037bba54, 0x01ae12da, 0x0082d790, 0x0036f033}}, Y: Field{[10]uint32{0x01cd7211, 0x031d9d8b, 0x02e37a4f, 0x038a14c1, 0x008aee42, 0x039798ce, 0x001b0904, 0x00b0e9be, 0x038623ff, 0x0017af07}}}, + {X: Field{[10]uint32{0x008f5f0b, 0x002a9b49, 0x02165af2, 0x01e10314, 0x02ca93a4, 0x004c7557, 0x01a8cbb8, 0x023811ec, 0x0332a3c0, 0x001e18ab}}, Y: Field{[10]uint32{0x03fc15d8, 0x03f70ce2, 0x02684f1e, 0x00ba36a4, 0x017e8c27, 0x021ecefe, 0x0367a645, 0x00d4f228, 0x02076b10, 0x002ed7d9}}}, + {X: Field{[10]uint32{0x031049ee, 0x013032a4, 0x037524e4, 0x0326e1d4, 0x01f8238f, 0x005724ec, 0x012bad80, 0x0162ddbb, 0x01fc8001, 0x00034d5c}}, Y: Field{[10]uint32{0x02a44bc3, 0x01af1d20, 0x0315f4d2, 0x03e549af, 0x0170a9e6, 0x0056bd12, 0x00872fa9, 0x00c2aa74, 0x01e83e66, 0x00058b72}}}, + {X: Field{[10]uint32{0x00589d9b, 0x022c2de2, 0x02a26e90, 0x036a23eb, 0x03b9f531, 0x037cd613, 0x02b98e55, 0x031d6190, 0x0094cebb, 0x002a1472}}, Y: Field{[10]uint32{0x0375b422, 0x009638ec, 0x020e1151, 0x03e6d7eb, 0x011e1af1, 0x02b90ceb, 0x01f38983, 0x0307bdc7, 0x015cadfa, 0x001d1c0b}}}, + {X: Field{[10]uint32{0x0258012d, 0x0005b3b6, 0x0131e972, 0x03e407c2, 0x012d9af1, 0x036cba21, 0x0178a08c, 0x03feab82, 0x03f4012e, 0x002a4b90}}, Y: Field{[10]uint32{0x002fb668, 0x000ee574, 0x013c6bb9, 0x01ec8ef0, 0x02535c68, 0x02094825, 0x01d7bd12, 0x005c3acd, 0x009d5560, 0x00363d68}}}, + {X: Field{[10]uint32{0x03cff6bb, 0x001fed7c, 0x0024c090, 0x00a74a0f, 0x02bb29e1, 0x01d83b36, 0x02658c64, 0x01a7210b, 0x02448b43, 0x001d72bf}}, Y: Field{[10]uint32{0x0355dc39, 0x011dec42, 0x015f53c9, 0x028bee88, 0x02db1ea5, 0x00751ce2, 0x02affab5, 0x00d54c78, 0x02e243c7, 0x00328384}}}, + {X: Field{[10]uint32{0x0041d006, 0x012114e3, 0x02b56a21, 0x01ddedb9, 0x02c48c41, 0x02008ed6, 0x017a2337, 0x0167b0bc, 0x00664db9, 0x00002ac0}}, Y: Field{[10]uint32{0x035d8b31, 0x00dc5d67, 0x029b7b5d, 0x01f7adcb, 0x01e3d338, 0x0101d62b, 0x02762fb9, 0x0145a7d1, 0x02fc3554, 0x00233e78}}}, + {X: Field{[10]uint32{0x01b7ecb7, 0x02fa9427, 0x027814a1, 0x03f55cfc, 0x00f89b9a, 0x011a747c, 0x00855bf0, 0x0084d060, 0x02f82e4b, 0x0009d443}}, Y: Field{[10]uint32{0x00fb87e1, 0x01570d2b, 0x00aeb900, 0x00337b1a, 0x03b0a1b2, 0x02fa67f4, 0x02073555, 0x0130187f, 0x00e886b5, 0x00083f80}}}, + {X: Field{[10]uint32{0x01b16d3a, 0x00b23293, 0x02c1d745, 0x03b8ed66, 0x03f4a6c2, 0x02727081, 0x021405c9, 0x009dede4, 0x01a8d388, 0x001dcffd}}, Y: Field{[10]uint32{0x00a52f8e, 0x010d6fbe, 0x002848d7, 0x02bcf9cd, 0x0200f75c, 0x01cc638e, 0x00806bd8, 0x03196ebf, 0x0231f51c, 0x0033d179}}}, + {X: Field{[10]uint32{0x02f45746, 0x03311547, 0x0386fe14, 0x00dcb890, 0x034293fc, 0x03686a3b, 0x0277e359, 0x02ff0edc, 0x0098e69e, 0x000be3cb}}, Y: Field{[10]uint32{0x0168ec06, 0x032b5026, 0x02c3642c, 0x0323fba8, 0x008150a6, 0x0012aaba, 0x003e4066, 0x02ae808f, 0x03ecc4dc, 0x003e1748}}}, + {X: Field{[10]uint32{0x0277f67f, 0x020f7a58, 0x001c061a, 0x01e19369, 0x01745756, 0x018d5b39, 0x00849522, 0x03438a82, 0x00daab8d, 0x00061e2b}}, Y: Field{[10]uint32{0x01477020, 0x011596b5, 0x009bb968, 0x00a039b4, 0x03ecbcc1, 0x03e922bc, 0x0296f05b, 0x0024b2b7, 0x028d064e, 0x00104b21}}}, + {X: Field{[10]uint32{0x035618c1, 0x02312f13, 0x029c4cad, 0x003d273d, 0x02c5a17b, 0x004dcfd8, 0x004f3cdd, 0x039389fb, 0x001aeac4, 0x000233ca}}, Y: Field{[10]uint32{0x01ed5973, 0x03f61bca, 0x02625cd9, 0x036d93fe, 0x027dbf09, 0x038cc0a6, 0x023911ed, 0x03a89f36, 0x019529c9, 0x000bc5fe}}}, + {X: Field{[10]uint32{0x008939f9, 0x0081a634, 0x01ec39ea, 0x00d9c5fc, 0x02a09579, 0x0370abbf, 0x010d1913, 0x00da7976, 0x009ff165, 0x000e965f}}, Y: Field{[10]uint32{0x000a14d4, 0x018ad3ac, 0x01926da4, 0x021bd624, 0x03a7b48c, 0x00262381, 0x03464b00, 0x028b7816, 0x03b290c9, 0x00230880}}}, + {X: Field{[10]uint32{0x010ca15e, 0x013eb2e5, 0x028ac505, 0x0242eeb1, 0x03b9ceec, 0x014a40e4, 0x029c8615, 0x0043fd77, 0x0205096f, 0x00032f8c}}, Y: Field{[10]uint32{0x03ee27f4, 0x00ae51d3, 0x02bd0547, 0x00b2b785, 0x039bf7c7, 0x00580072, 0x02b48557, 0x02e84b0c, 0x006ab76a, 0x00111b2c}}}, + {X: Field{[10]uint32{0x02fed594, 0x036c1055, 0x00bd53a8, 0x00017b98, 0x011cde71, 0x019511cc, 0x0013b09e, 0x0139c061, 0x01cf0822, 0x0010c4f2}}, Y: Field{[10]uint32{0x03329a96, 0x0275cd46, 0x023317ab, 0x0352af12, 0x000e80bb, 0x02809482, 0x001021f9, 0x016a32c6, 0x019dd304, 0x0037ebcd}}}, + {X: Field{[10]uint32{0x0373c60e, 0x03c3eaaf, 0x036882bd, 0x02ac67ed, 0x011f5cbf, 0x03697fe9, 0x009651b2, 0x02b7b0b6, 0x0351f8d8, 0x0033ab4a}}, Y: Field{[10]uint32{0x02a25897, 0x01472915, 0x0221bf84, 0x029fb4b4, 0x026dd3bd, 0x02fc512b, 0x03e79322, 0x03c3a31c, 0x00806992, 0x002aca89}}}, + {X: Field{[10]uint32{0x027b79a0, 0x03c9eb92, 0x020e52d8, 0x02b67e2f, 0x0298e34d, 0x017b9bbb, 0x01164b84, 0x01d8bd91, 0x008d0848, 0x002739d7}}, Y: Field{[10]uint32{0x02a30a05, 0x00a76f26, 0x03571d0a, 0x0166e458, 0x029f6275, 0x02dd0a89, 0x017c04c8, 0x02a419ae, 0x014fe11b, 0x0038155b}}}, + {X: Field{[10]uint32{0x026741d7, 0x0002224c, 0x013a96ba, 0x020c0759, 0x0310214b, 0x0308e11e, 0x02106bf8, 0x038957e4, 0x009c621d, 0x00180912}}, Y: Field{[10]uint32{0x004ea858, 0x03638b84, 0x03aa9b1f, 0x0021989b, 0x02abf63e, 0x01ae0b97, 0x01326210, 0x000803b2, 0x032480a9, 0x0002543a}}}, + {X: Field{[10]uint32{0x0308e51d, 0x0348bb57, 0x01e11546, 0x028f1a11, 0x011f55e1, 0x001c957f, 0x02c2638c, 0x01af3501, 0x02f0108f, 0x0034f1d1}}, Y: Field{[10]uint32{0x038dfab6, 0x002f3390, 0x0165e25d, 0x0069bff0, 0x0335ed4e, 0x015fbcf6, 0x001a776c, 0x031ce799, 0x03e5d349, 0x00344936}}}, + {X: Field{[10]uint32{0x036514b8, 0x03c9c5c4, 0x00c6352c, 0x03e6f3e9, 0x01a69c69, 0x00216537, 0x03b9e11e, 0x03088be5, 0x035cd85d, 0x00287ad7}}, Y: Field{[10]uint32{0x00a15fff, 0x01429f3e, 0x03b68007, 0x01d8c094, 0x00ff5e3f, 0x03768ee8, 0x0247ddd7, 0x03805dd8, 0x0135a393, 0x0011bb4f}}}, + {X: Field{[10]uint32{0x005a8736, 0x03dd5852, 0x03639721, 0x015ae0b1, 0x00e44065, 0x0305051f, 0x025f1c61, 0x030b2fea, 0x0357fa3a, 0x000ac928}}, Y: Field{[10]uint32{0x03d73ade, 0x00cc3346, 0x0243c018, 0x017d742d, 0x01ad192a, 0x015c8751, 0x00fd7aed, 0x02b5546a, 0x01bd707a, 0x00359c86}}}, + {X: Field{[10]uint32{0x0187b2ec, 0x0293db3f, 0x03306126, 0x00f98ba7, 0x02ab6a62, 0x00bb2d06, 0x00c9cfb4, 0x0005658f, 0x01ab9dc6, 0x00264068}}, Y: Field{[10]uint32{0x00339317, 0x033363fc, 0x01730633, 0x0307b899, 0x03eb5950, 0x032d0539, 0x037a3df6, 0x035fcbff, 0x0194017c, 0x0023dd99}}}, + {X: Field{[10]uint32{0x0077e8da, 0x02e65961, 0x037634ae, 0x0386c870, 0x0328a2a4, 0x01f56320, 0x018e6003, 0x038bc787, 0x00455890, 0x000c47a1}}, Y: Field{[10]uint32{0x00ce030c, 0x016415bb, 0x00829a04, 0x009c7987, 0x01e017e9, 0x019c0ef0, 0x030dd00f, 0x015d8a86, 0x03676cc7, 0x0033d64f}}}, + {X: Field{[10]uint32{0x0283bb77, 0x023b31e7, 0x008b367a, 0x0391bfba, 0x03122d27, 0x023ebd9b, 0x00ad8b8c, 0x003db8a6, 0x02e39714, 0x002417dc}}, Y: Field{[10]uint32{0x01b65257, 0x01c529bc, 0x019b4698, 0x022a84b8, 0x022d9852, 0x02d6c94e, 0x00b94fc1, 0x03099764, 0x015dbde9, 0x00300fc5}}}, + {X: Field{[10]uint32{0x0339350c, 0x00fd56e8, 0x0085e04a, 0x00cc09f7, 0x0039eafd, 0x02672ed3, 0x00c2f021, 0x000004bf, 0x03a5d594, 0x001877dd}}, Y: Field{[10]uint32{0x01049161, 0x0189a8b6, 0x0005f684, 0x008235b7, 0x01f36640, 0x035b903d, 0x030603f2, 0x026cfdce, 0x037d00de, 0x0009f222}}}, + {X: Field{[10]uint32{0x01f18c28, 0x010aeb17, 0x021295bc, 0x0353bc09, 0x030de36d, 0x03bb01b1, 0x016af906, 0x012c7577, 0x0199886d, 0x00387e38}}, Y: Field{[10]uint32{0x01ca45a8, 0x03e2add4, 0x025e29ec, 0x02d53196, 0x0056a98d, 0x039f98d2, 0x025bc4ba, 0x03abc4a1, 0x02e9b956, 0x00140b04}}}, + {X: Field{[10]uint32{0x03b8565a, 0x02181dbe, 0x02ac19b6, 0x0151e692, 0x029180e1, 0x001133e5, 0x01fe6a77, 0x0288701f, 0x01b83804, 0x002b78bd}}, Y: Field{[10]uint32{0x03066aca, 0x006f09bb, 0x01eee375, 0x03d915c5, 0x0198a9e6, 0x017499f9, 0x00985d6f, 0x005a30c2, 0x021d07c8, 0x00343597}}}, + {X: Field{[10]uint32{0x03268187, 0x0208779b, 0x01b88ea5, 0x021685d5, 0x009f7f6b, 0x018a202e, 0x0345dd5c, 0x03e5cab0, 0x00bb0154, 0x00315608}}, Y: Field{[10]uint32{0x00613086, 0x00795af3, 0x027a2124, 0x016b605f, 0x014dc35f, 0x0285d223, 0x03b698c8, 0x02996498, 0x03ea1e6c, 0x002446c3}}}, + {X: Field{[10]uint32{0x007778b5, 0x000e719b, 0x01d089f7, 0x023054b7, 0x02128588, 0x023330b4, 0x0164352b, 0x0083d14e, 0x026e3210, 0x003a8825}}, Y: Field{[10]uint32{0x034fc18c, 0x00a7c9a7, 0x00d3959e, 0x01b37786, 0x0166f547, 0x010d0a70, 0x03dc9bd6, 0x007949aa, 0x0191cdc8, 0x003250bd}}}, + {X: Field{[10]uint32{0x007e2bf5, 0x03d37d18, 0x007079f9, 0x022a3a03, 0x02220c90, 0x0387be12, 0x0301bbd3, 0x03f9699c, 0x012d9c2d, 0x000f15d5}}, Y: Field{[10]uint32{0x031f39e3, 0x000802f9, 0x00522b9f, 0x0153b542, 0x016fd347, 0x00997fd9, 0x031a0a17, 0x018e5cf9, 0x00ffbc4a, 0x003527e8}}}, + {X: Field{[10]uint32{0x03d4e1c3, 0x02825466, 0x0071feb5, 0x002f3dfc, 0x01a3fd5c, 0x012b6859, 0x028e1339, 0x00fb0167, 0x00c6e104, 0x003c6233}}, Y: Field{[10]uint32{0x03bfdbe4, 0x021814c1, 0x021cf944, 0x010428bf, 0x03db045c, 0x0081d926, 0x02fb1908, 0x01e740b5, 0x031fe53e, 0x0017c7cd}}}, + {X: Field{[10]uint32{0x011c8c6a, 0x00d790b0, 0x013cad48, 0x028b4729, 0x01447112, 0x029efed2, 0x015a146a, 0x008cba01, 0x03d27e72, 0x00280517}}, Y: Field{[10]uint32{0x01e679cc, 0x00f9270f, 0x02cc5024, 0x02fc8b1f, 0x00ceb874, 0x001c272c, 0x00bb675f, 0x00333031, 0x00a0e5e7, 0x001ef006}}}, + {X: Field{[10]uint32{0x016ff48e, 0x00f7e03c, 0x016bd9c9, 0x0362c5d0, 0x01c17b7b, 0x02d56061, 0x03857060, 0x00454c7e, 0x01e80c22, 0x0014d003}}, Y: Field{[10]uint32{0x01a6cc6f, 0x034cf690, 0x0244c89c, 0x0082299a, 0x002df873, 0x00dbaa5c, 0x00840b6a, 0x0197c794, 0x02473ba5, 0x003848a3}}}, + {X: Field{[10]uint32{0x0264b1ac, 0x03199d33, 0x019048c6, 0x02d14ae6, 0x01cc8960, 0x03566be1, 0x00e34821, 0x00df8d43, 0x012d009d, 0x00208457}}, Y: Field{[10]uint32{0x021eb048, 0x03ee7bed, 0x02f05e75, 0x00f7a489, 0x01bffc1b, 0x02e74620, 0x02adab03, 0x00309012, 0x0209659a, 0x002637aa}}}, + {X: Field{[10]uint32{0x01fe7c3c, 0x005e2516, 0x039681fc, 0x01f00c20, 0x028669cb, 0x01437389, 0x01e6e9d4, 0x01bc7312, 0x001853d8, 0x0009cf63}}, Y: Field{[10]uint32{0x00c2ea00, 0x01b44040, 0x008af2e1, 0x007dfdfe, 0x0314974e, 0x007beeb6, 0x00c25a25, 0x009b205d, 0x01aa8ad0, 0x001b154c}}}, + {X: Field{[10]uint32{0x025ee319, 0x019d46ee, 0x01bfe403, 0x032d6c16, 0x0041e68c, 0x03d0a3f3, 0x0233f4fb, 0x020645c3, 0x0216a7e3, 0x0000185b}}, Y: Field{[10]uint32{0x0106748a, 0x012c393d, 0x032eaba8, 0x031cfa2b, 0x007c7dc3, 0x032a64dd, 0x01173f5c, 0x00fbf6e6, 0x0121182a, 0x001f6f2b}}}, + {X: Field{[10]uint32{0x00b82812, 0x00df0058, 0x0277452c, 0x00409d7d, 0x00dc5666, 0x000cfc84, 0x0373402d, 0x0260487d, 0x016a76a3, 0x0019d862}}, Y: Field{[10]uint32{0x03302c9b, 0x001e0b99, 0x007ebe76, 0x03c688d8, 0x0111848d, 0x038b2339, 0x011184c8, 0x024e7e02, 0x01cf1b40, 0x001ff740}}}, + {X: Field{[10]uint32{0x01e508b9, 0x029b53e2, 0x01fe6dd4, 0x008248d1, 0x00bd6eb0, 0x005dedac, 0x0135bd9e, 0x00176849, 0x03aae976, 0x001dfdea}}, Y: Field{[10]uint32{0x007f0b9e, 0x0392d973, 0x01231889, 0x03e84358, 0x020dbf20, 0x02df24cc, 0x035fd19b, 0x020c37f3, 0x016ccc7b, 0x003ec126}}}, + {X: Field{[10]uint32{0x00bce311, 0x0232a8e6, 0x005a4a0d, 0x02299ec3, 0x01bc4b4a, 0x0007e73c, 0x02973785, 0x00aee8f6, 0x03173a2e, 0x00304bd9}}, Y: Field{[10]uint32{0x039a47a8, 0x000c67dd, 0x03853a33, 0x00cdb960, 0x01097cd1, 0x02db2d50, 0x00012aa3, 0x00500544, 0x018644d3, 0x0037a4c2}}}, + {X: Field{[10]uint32{0x018e66aa, 0x01fbe570, 0x03304ee7, 0x03ea9dae, 0x004afe8f, 0x037ce80d, 0x039d268d, 0x0154b236, 0x02de19c7, 0x001954e8}}, Y: Field{[10]uint32{0x00edb93c, 0x01dc181c, 0x037f5373, 0x033b26ee, 0x0169f95b, 0x014b4dd3, 0x034dbb77, 0x002edcab, 0x00107c18, 0x002469c8}}}, + {X: Field{[10]uint32{0x03b834e3, 0x031411ad, 0x013eec1f, 0x008f9a8f, 0x01bba980, 0x010032aa, 0x022e9363, 0x0106148b, 0x00be353f, 0x0003d52d}}, Y: Field{[10]uint32{0x0296f17e, 0x0190df23, 0x013a5124, 0x02d015df, 0x03ab6f78, 0x0065d16a, 0x035afde2, 0x03c7c2a0, 0x006cbdd5, 0x0025af9e}}}, + {X: Field{[10]uint32{0x02adbb2a, 0x016d2d03, 0x03c64c0d, 0x01f12d9d, 0x03f86be3, 0x016d3722, 0x03c806e4, 0x0194882e, 0x03c2a0fa, 0x0030b4c5}}, Y: Field{[10]uint32{0x0313ab6a, 0x03acd7b4, 0x02af58e8, 0x023528eb, 0x03100f07, 0x03266529, 0x00cb16df, 0x032aedc6, 0x0169bd68, 0x00315c42}}}, + {X: Field{[10]uint32{0x0389f384, 0x03fcc4c6, 0x03ccefe1, 0x010d04db, 0x02cc43e1, 0x01fd751c, 0x034b9c95, 0x02993f71, 0x03c6a5b8, 0x0014a959}}, Y: Field{[10]uint32{0x009e8f53, 0x01bde8a7, 0x01d485c1, 0x03a5f60d, 0x02d7de27, 0x02064a55, 0x005f7d6b, 0x00a62b75, 0x01bfa314, 0x000cc98c}}}, + {X: Field{[10]uint32{0x01ba4e20, 0x012881c7, 0x005e98d2, 0x03c666d3, 0x013530f0, 0x00c491ef, 0x01435278, 0x01104a21, 0x006c891a, 0x003df702}}, Y: Field{[10]uint32{0x034444aa, 0x0378d16d, 0x027e7b82, 0x000ffc41, 0x00da0550, 0x00121618, 0x02f5f751, 0x0166bac3, 0x0312452e, 0x001cd3b5}}}, + {X: Field{[10]uint32{0x02ec06c6, 0x008362c8, 0x00d3e905, 0x0147944b, 0x01b3f2ae, 0x039be3dd, 0x02d8d8cd, 0x036f032f, 0x03a97bb6, 0x002553e7}}, Y: Field{[10]uint32{0x005dd9bb, 0x030e76c6, 0x0378bf65, 0x00523c10, 0x005426f6, 0x02d3e085, 0x01b3017b, 0x01983d2f, 0x03bb8bd9, 0x002d96d0}}}, + {X: Field{[10]uint32{0x0204e87e, 0x0236c509, 0x0145e818, 0x02f905ad, 0x026def2d, 0x01dd7365, 0x0366947f, 0x01962082, 0x03984141, 0x000839a6}}, Y: Field{[10]uint32{0x00632539, 0x019fe24a, 0x01f51caa, 0x01361f7c, 0x030dcce0, 0x010fd808, 0x02e45a3d, 0x00ae6cd6, 0x02590bd1, 0x00399451}}}, + {X: Field{[10]uint32{0x0072ed1c, 0x039f15c3, 0x01dc3709, 0x0210aace, 0x0371bed4, 0x00c0a55d, 0x0187fb53, 0x00bc1110, 0x03822dc4, 0x00173796}}, Y: Field{[10]uint32{0x01a0ea9f, 0x00a4a66a, 0x03e41b49, 0x02f9d897, 0x03cea3dc, 0x00ff584d, 0x00416e75, 0x0016d425, 0x02d864e4, 0x00283dee}}}, + {X: Field{[10]uint32{0x0326421f, 0x00ec4c7e, 0x01c346e7, 0x0181779c, 0x0045b204, 0x027535ba, 0x02fd03f4, 0x02c370aa, 0x034c6ba6, 0x002d61b2}}, Y: Field{[10]uint32{0x00948744, 0x02b26ad6, 0x0116d2b4, 0x01a662ec, 0x026767b4, 0x001abee1, 0x01de6235, 0x028eca8c, 0x03e7c26e, 0x0033b584}}}, + {X: Field{[10]uint32{0x00ba6ede, 0x029779a4, 0x00a8b2a2, 0x0150ddf9, 0x014e192a, 0x02358071, 0x0213dbfa, 0x00ea0b23, 0x01703580, 0x001f4fd8}}, Y: Field{[10]uint32{0x02c6cb15, 0x027d354b, 0x0100f196, 0x012f9e3a, 0x0177eaf8, 0x00302f2f, 0x03564778, 0x004f083e, 0x010e62f4, 0x0004e3a0}}}, + {X: Field{[10]uint32{0x037eb925, 0x01dfb0a3, 0x01b41d85, 0x037603ea, 0x01c9fa32, 0x00c12ae0, 0x03e67135, 0x03e18f9f, 0x00befc4a, 0x0039e8c5}}, Y: Field{[10]uint32{0x00f3eb1f, 0x02913d20, 0x008fb091, 0x033b1420, 0x0113ec94, 0x036a5c30, 0x019b6d07, 0x012b3fea, 0x0200f0e0, 0x003365e1}}}, + {X: Field{[10]uint32{0x03c6a577, 0x024098f4, 0x00231ec0, 0x02b67915, 0x00ba5fc0, 0x003c37f2, 0x01cd8e81, 0x0240bb88, 0x03e49f41, 0x0005e70e}}, Y: Field{[10]uint32{0x009cf184, 0x03fc32d3, 0x009dc5b9, 0x022693a2, 0x02640216, 0x0142df93, 0x02b03f5a, 0x026a80a7, 0x020efb9b, 0x001d7e7d}}}, + {X: Field{[10]uint32{0x01e6401f, 0x01842c24, 0x00c6fe50, 0x01a4173e, 0x0108d762, 0x015d53e9, 0x017808e2, 0x03060ae5, 0x0071464b, 0x00042956}}, Y: Field{[10]uint32{0x01b56ff4, 0x0145a8d0, 0x038b3029, 0x03caaa32, 0x0299a787, 0x0241aea7, 0x005c679f, 0x0368b38c, 0x03b96d2b, 0x0034d924}}}, + {X: Field{[10]uint32{0x008e555e, 0x03cfa6ba, 0x0099f96a, 0x028bcea7, 0x02585827, 0x00c7b1fd, 0x0108d45b, 0x02321055, 0x03225e85, 0x0012a40d}}, Y: Field{[10]uint32{0x0247d145, 0x01f44c8c, 0x0064c70c, 0x01df40b1, 0x0031c9a4, 0x003f3785, 0x012463f2, 0x01134331, 0x01a7fb9e, 0x00369351}}}, + {X: Field{[10]uint32{0x016acb3e, 0x00a5dcea, 0x02b621cd, 0x02ef80bc, 0x00c68373, 0x005c3b20, 0x00052d6b, 0x02023ded, 0x018c2505, 0x001b4427}}, Y: Field{[10]uint32{0x02dc9a57, 0x00e2ca3a, 0x012adc50, 0x002e72e5, 0x03200c87, 0x02c08eff, 0x001088ec, 0x01b90145, 0x00de511f, 0x003237a8}}}, + {X: Field{[10]uint32{0x02e1af88, 0x03c30e59, 0x01bf28f7, 0x00f8a1d3, 0x0106105b, 0x00d55d41, 0x015c7347, 0x00919f01, 0x00986d20, 0x00270866}}, Y: Field{[10]uint32{0x01d0914a, 0x027ecb63, 0x004550ec, 0x03354b52, 0x03efddf5, 0x01959783, 0x01d41463, 0x03fc4be7, 0x016c8edd, 0x00218dd2}}}, + {X: Field{[10]uint32{0x0292b03a, 0x023b71b0, 0x032e74de, 0x02d772e3, 0x03dcd104, 0x00aee5ce, 0x036dd750, 0x003d8040, 0x00390e66, 0x0008b294}}, Y: Field{[10]uint32{0x006b11e8, 0x03a457d9, 0x0258eda5, 0x02eb100f, 0x01cb6731, 0x0023e832, 0x016449a7, 0x02e07910, 0x00711ef6, 0x0021bf51}}}, + {X: Field{[10]uint32{0x02b6f938, 0x037a10b9, 0x0227c80b, 0x00977dd7, 0x022e39be, 0x03db2880, 0x0116fdd1, 0x011903c8, 0x0302cc00, 0x0033f063}}, Y: Field{[10]uint32{0x0290df7d, 0x0075a118, 0x01398645, 0x02936740, 0x01c09236, 0x01c232f9, 0x03a2923f, 0x0343965e, 0x00df4f79, 0x00358ad6}}}, + {X: Field{[10]uint32{0x0280a087, 0x03053e66, 0x02f259d3, 0x015afb2e, 0x02574905, 0x008d7142, 0x01f46ca6, 0x01163a64, 0x00c23425, 0x000ce22f}}, Y: Field{[10]uint32{0x0245c016, 0x00b84fa9, 0x0013b310, 0x029752b1, 0x0306c3dc, 0x02563efc, 0x00223166, 0x015e0c07, 0x02f806f6, 0x001f52a8}}}, + {X: Field{[10]uint32{0x00b46a19, 0x02a507bc, 0x03aa802b, 0x00f532f2, 0x0144ac96, 0x00db67e5, 0x018fefc1, 0x004b78f7, 0x00131b8c, 0x00349af4}}, Y: Field{[10]uint32{0x028d3a99, 0x002b096d, 0x00653cb1, 0x01f699e0, 0x020d045a, 0x032ad24a, 0x02948724, 0x01e571ad, 0x02a331b6, 0x0019be27}}}, + {X: Field{[10]uint32{0x03d1fdb9, 0x0274a795, 0x035ca1d9, 0x0353511f, 0x03465a03, 0x03bd7d9a, 0x03960edf, 0x03a3c858, 0x030cdb67, 0x003734cd}}, Y: Field{[10]uint32{0x007084ef, 0x0185a9cd, 0x01ed9922, 0x02f66d93, 0x028a9eb4, 0x024efdcc, 0x038d4483, 0x02fe1cb3, 0x007a320a, 0x0022e4dd}}}, + {X: Field{[10]uint32{0x038d8e7a, 0x0227cfd3, 0x0006f805, 0x02ecff82, 0x0121d449, 0x02718e06, 0x03105af5, 0x02b558cd, 0x0105e602, 0x001d01d3}}, Y: Field{[10]uint32{0x003d574d, 0x02e1052c, 0x002cfe19, 0x03db111e, 0x02bf0dd8, 0x0077548d, 0x00fd515a, 0x0202b411, 0x03d4adee, 0x00069352}}}, + {X: Field{[10]uint32{0x0305c174, 0x00dcea0b, 0x034dd732, 0x025035ae, 0x01971203, 0x01e024aa, 0x00df438a, 0x00faedaa, 0x0081f3a2, 0x0002a273}}, Y: Field{[10]uint32{0x03c4fda4, 0x02a59128, 0x03d77873, 0x039d5c1f, 0x00326a9c, 0x02e5e77b, 0x01ddc9fd, 0x03c18d39, 0x03dd676d, 0x0012dbe0}}}, + {X: Field{[10]uint32{0x0216424c, 0x028e03d9, 0x00e037dd, 0x0102d82b, 0x026443c5, 0x001fe592, 0x002ae36b, 0x00fc3864, 0x00bafa91, 0x0023c684}}, Y: Field{[10]uint32{0x01e5525f, 0x02615557, 0x0326e869, 0x018b5680, 0x0114e3a4, 0x01d03cc7, 0x0016ad4e, 0x01df0c91, 0x024445c1, 0x00040a35}}}, + {X: Field{[10]uint32{0x01e27b51, 0x01d01222, 0x026d6f4c, 0x03e11e3e, 0x019154a2, 0x0369266b, 0x0157268a, 0x0288da9e, 0x027914f9, 0x002b63f6}}, Y: Field{[10]uint32{0x020e82ae, 0x01392f8c, 0x03834617, 0x03c09818, 0x03703b74, 0x0170f24c, 0x02deffc0, 0x029b1bdd, 0x02ab1f7d, 0x00272874}}}, + {X: Field{[10]uint32{0x0167fbe7, 0x0178cb3f, 0x03c874d1, 0x003f93ec, 0x03219270, 0x03c8e38b, 0x008cc246, 0x00a5c110, 0x010a797b, 0x001b1ba6}}, Y: Field{[10]uint32{0x0391dac1, 0x00c1868f, 0x019e1be8, 0x021e4f53, 0x0139811b, 0x0010368c, 0x025b32cc, 0x0159667e, 0x03980f35, 0x0007ff05}}}, + {X: Field{[10]uint32{0x01118969, 0x007e68c9, 0x0247cedc, 0x01728d02, 0x039f86f7, 0x0027c8de, 0x035351de, 0x00aaf658, 0x03ea31ad, 0x00080ac4}}, Y: Field{[10]uint32{0x001bcba0, 0x03314d46, 0x004c0fe3, 0x0085c000, 0x03868a45, 0x02f2061c, 0x0111184e, 0x00dfd354, 0x0105a14e, 0x00314bed}}}, + {X: Field{[10]uint32{0x03b748a5, 0x0210a475, 0x02f5fd22, 0x031848c9, 0x03034053, 0x02615654, 0x01c7c7cf, 0x010beac3, 0x00a10251, 0x0014d57c}}, Y: Field{[10]uint32{0x02281949, 0x0333c5df, 0x0118f4b1, 0x01a9e071, 0x039cddd3, 0x0183b8fb, 0x008ff9de, 0x0007db07, 0x036a5535, 0x001d6ef8}}}, + {X: Field{[10]uint32{0x029829d7, 0x00ebab30, 0x02235f91, 0x02c4d1c1, 0x0279a39a, 0x02a0ebb0, 0x00f16644, 0x037b2747, 0x0178eacb, 0x002e214b}}, Y: Field{[10]uint32{0x03183156, 0x00c584f7, 0x020faeb4, 0x0343dca7, 0x038d51ee, 0x03a27b0e, 0x002735d2, 0x03187eb9, 0x035052b3, 0x001d8eea}}}, + {X: Field{[10]uint32{0x03057ae2, 0x033b56c1, 0x0188beec, 0x03a02c3c, 0x01696d18, 0x0027b343, 0x017d4d6a, 0x03de3870, 0x004b294d, 0x0032acb9}}, Y: Field{[10]uint32{0x01ff2f43, 0x02681a06, 0x00ed5405, 0x02b416c8, 0x02de28bf, 0x0156d41b, 0x0149607c, 0x01266b3b, 0x009a501a, 0x003cd46c}}}, + {X: Field{[10]uint32{0x03056b31, 0x01a14f15, 0x026589d4, 0x00dae6e1, 0x03b16f9f, 0x0152dd5a, 0x012355eb, 0x015568af, 0x01c99c6d, 0x0005002e}}, Y: Field{[10]uint32{0x03a077a8, 0x0270cab7, 0x00436e56, 0x007e5bc9, 0x035709b9, 0x03508477, 0x026993b3, 0x00459e82, 0x001662f4, 0x0022ca42}}}, + {X: Field{[10]uint32{0x03d9141e, 0x03b1b9af, 0x018a50fb, 0x00655623, 0x03b3d31b, 0x0044511a, 0x03ae7a9a, 0x027071a1, 0x032e973e, 0x0014ab8d}}, Y: Field{[10]uint32{0x02351ccb, 0x02ff8360, 0x0256b71e, 0x033363b3, 0x001f87cf, 0x0116436d, 0x0238721a, 0x0390b6e5, 0x000de6d0, 0x003e60ad}}}, + {X: Field{[10]uint32{0x01899c24, 0x03d976d8, 0x032e0fe5, 0x0022e4df, 0x001139b7, 0x0143700c, 0x0241e148, 0x011896f8, 0x03bd4082, 0x000f453f}}, Y: Field{[10]uint32{0x00a1dfb7, 0x03f1d862, 0x02872981, 0x03bf4dd9, 0x02799882, 0x034884e8, 0x01cf16b8, 0x03811d36, 0x00fa477e, 0x002c4299}}}, + {X: Field{[10]uint32{0x02a48930, 0x0057b36e, 0x0246e824, 0x0346a57f, 0x03e7ab3f, 0x0353261e, 0x03bc2700, 0x03065ea2, 0x02df54e0, 0x0031bd4a}}, Y: Field{[10]uint32{0x0056811d, 0x016bf64e, 0x03a8f77e, 0x024cab7a, 0x03b9ef91, 0x0267e912, 0x010281c0, 0x01ced241, 0x006fb538, 0x001d4930}}}, + {X: Field{[10]uint32{0x0144c1aa, 0x01828fb2, 0x00f559fe, 0x03601b46, 0x005f2d1d, 0x031e7070, 0x03c838a4, 0x01f2d9e8, 0x0264bdc4, 0x00240224}}, Y: Field{[10]uint32{0x02ee04de, 0x003ece74, 0x03064eea, 0x032e4779, 0x02ca140b, 0x010c392d, 0x01d582cc, 0x00c899aa, 0x0046d70b, 0x0006258e}}}, + {X: Field{[10]uint32{0x03da0662, 0x03dc247b, 0x006ebc1b, 0x019a5bcf, 0x012db741, 0x03a084a9, 0x035b2d4c, 0x00df0589, 0x00ea478b, 0x00389f09}}, Y: Field{[10]uint32{0x02783de3, 0x01f3c244, 0x03b7d853, 0x036bf0ed, 0x03bb99f4, 0x000c5e46, 0x01532bb5, 0x019f2feb, 0x0279c3a2, 0x0009fb14}}}, + {X: Field{[10]uint32{0x000a3eb2, 0x03bfe131, 0x0092b917, 0x03b98190, 0x032549b8, 0x025574ef, 0x0025d857, 0x035badc0, 0x02129cf1, 0x0032976a}}, Y: Field{[10]uint32{0x027a9811, 0x02109677, 0x01e9ef6a, 0x03c9dee2, 0x037c4aa5, 0x035082d2, 0x027c7c27, 0x01bdf4cf, 0x0105500f, 0x001a0b52}}}, + {X: Field{[10]uint32{0x00877f55, 0x005a67bf, 0x00170487, 0x016d0943, 0x006c98ac, 0x02274509, 0x0223fb5c, 0x031a2119, 0x000f2b2a, 0x00241a7b}}, Y: Field{[10]uint32{0x031fb05e, 0x034e95b9, 0x00266975, 0x02a322e0, 0x02a6c3c3, 0x00901f7f, 0x000617ee, 0x00dc485b, 0x02c4eff8, 0x00331403}}}, + {X: Field{[10]uint32{0x03bda16c, 0x02c4e470, 0x0250fb8c, 0x00f01649, 0x00053639, 0x017a2ae8, 0x02742d3c, 0x03b86dae, 0x02eb0bd5, 0x0017f87f}}, Y: Field{[10]uint32{0x0065a34b, 0x0250ade6, 0x01af53bf, 0x01a90dd7, 0x03ea02ae, 0x001cbddb, 0x025ba068, 0x0193b4d0, 0x032701ac, 0x0036c46c}}}, + {X: Field{[10]uint32{0x001b2c34, 0x019b12ab, 0x00cb8318, 0x00aa1783, 0x026bf260, 0x02439382, 0x0035b6cf, 0x03e20d24, 0x01a5f168, 0x000292a4}}, Y: Field{[10]uint32{0x03837596, 0x02080c1f, 0x00857ce0, 0x02a7023d, 0x02ff7265, 0x00ae262a, 0x02f2ff8e, 0x03b47462, 0x02a8fe36, 0x00016ffb}}}, + {X: Field{[10]uint32{0x02884849, 0x01bdd1be, 0x019e35f0, 0x01bb4f1f, 0x0143f536, 0x03aaaf93, 0x00705054, 0x016d492a, 0x0336f0c3, 0x003d04d7}}, Y: Field{[10]uint32{0x010c526b, 0x03f12c99, 0x0052dd55, 0x00c30ea7, 0x01ba1a5d, 0x00c1d75d, 0x019d0ea4, 0x0301e2d3, 0x03f1b8b6, 0x000719c1}}}, + {X: Field{[10]uint32{0x00380203, 0x00ea7ce5, 0x01e0fdcc, 0x01364ad0, 0x00014a50, 0x020fa12e, 0x03449928, 0x03eebb4a, 0x018a9363, 0x00356a26}}, Y: Field{[10]uint32{0x0260e9fb, 0x026cf6ba, 0x03d4b0bf, 0x02be98aa, 0x032f20c5, 0x0351b35f, 0x038ae7c6, 0x0320162e, 0x03036fdd, 0x0025805a}}}, + {X: Field{[10]uint32{0x03f3d176, 0x022e6f92, 0x01fa8cc3, 0x039e6443, 0x00d50297, 0x0043064e, 0x007fb622, 0x0036f428, 0x023404b3, 0x00220132}}, Y: Field{[10]uint32{0x03d37b0d, 0x02bb79d5, 0x02c9124c, 0x0142c472, 0x01eb65db, 0x00e1c58c, 0x008c55ff, 0x01f18dde, 0x02e57992, 0x0016d92f}}}, + {X: Field{[10]uint32{0x03811021, 0x0176fd8a, 0x00e740ac, 0x01d1f426, 0x010c947c, 0x022f6969, 0x008e78e7, 0x0086daf1, 0x01fc440c, 0x0021a470}}, Y: Field{[10]uint32{0x03b1787e, 0x0122f2b5, 0x01c0903d, 0x00e7d9b0, 0x00682f45, 0x000a9c44, 0x02c330af, 0x00460555, 0x01c535f5, 0x003f63b0}}}, + {X: Field{[10]uint32{0x03093229, 0x01018dfb, 0x001eb58a, 0x02aec3b4, 0x03c3ee5f, 0x0253a4a4, 0x02bfe3f8, 0x038b87f7, 0x01f6343b, 0x001117f0}}, Y: Field{[10]uint32{0x0185b605, 0x001ef6df, 0x010af329, 0x03cd236a, 0x03c3c087, 0x03b7b44e, 0x00aa1b73, 0x03e14f41, 0x03fe6737, 0x00215fc5}}}, + {X: Field{[10]uint32{0x036493b4, 0x03140069, 0x039667d1, 0x01568773, 0x02af1a55, 0x02e23135, 0x023aaf95, 0x0346c2cb, 0x03dea657, 0x00170e5f}}, Y: Field{[10]uint32{0x030aff0a, 0x02681bf7, 0x03d32de7, 0x00b3d21f, 0x03ce5cb5, 0x02a7f153, 0x0336aee6, 0x00f1d4b5, 0x00207b6f, 0x002739d2}}}, + {X: Field{[10]uint32{0x03fc1b7e, 0x00dbe931, 0x030c1d7e, 0x0210dcb4, 0x02d9f535, 0x037f8644, 0x01d2bc5b, 0x0380a0d8, 0x01cb28d7, 0x0026d559}}, Y: Field{[10]uint32{0x03879eea, 0x0266c458, 0x0062d827, 0x01d7662c, 0x01a23af0, 0x038fdb1b, 0x0257f054, 0x02a0c962, 0x028d2de2, 0x001f573e}}}, + {X: Field{[10]uint32{0x01194f1d, 0x015368f2, 0x03b4b896, 0x027c404a, 0x02a5229a, 0x006ec656, 0x031b1657, 0x021c34e5, 0x00631bbf, 0x002bef7b}}, Y: Field{[10]uint32{0x0327e296, 0x030914e3, 0x0316a773, 0x00507d50, 0x0383fe57, 0x02ec2899, 0x0074ad1b, 0x009497e6, 0x0349b949, 0x0033f2e9}}}, + {X: Field{[10]uint32{0x00ad916b, 0x0075a22b, 0x03f4d0e0, 0x0318b12c, 0x03a7cc11, 0x03a7a7b1, 0x03c61605, 0x014d1d72, 0x03cbca3a, 0x001dc4aa}}, Y: Field{[10]uint32{0x024b82fb, 0x023c289a, 0x03ead0c6, 0x03f47ffb, 0x02b57cbb, 0x030ef4cc, 0x02b43af8, 0x009556b4, 0x01bc0eb1, 0x001ee472}}}, + {X: Field{[10]uint32{0x00a2b7e2, 0x00b4e2c7, 0x01c9f07a, 0x00459b9d, 0x0311b43a, 0x037d419a, 0x01fe506f, 0x017904b9, 0x0346f293, 0x000f1148}}, Y: Field{[10]uint32{0x019cd800, 0x00231ffd, 0x026962c6, 0x0228d4ad, 0x010e0203, 0x012047f6, 0x03532f8d, 0x01a0a4eb, 0x01e127f9, 0x003f4fdb}}}, + {X: Field{[10]uint32{0x0248b7be, 0x020b6c2a, 0x030547d1, 0x011377c2, 0x00e04eda, 0x0032652e, 0x01a53d67, 0x0368ff1f, 0x002fb4db, 0x0002f616}}, Y: Field{[10]uint32{0x01285c68, 0x03a318d1, 0x0033ad6d, 0x02de5d9c, 0x00ef0dc4, 0x039f420a, 0x016b282e, 0x01a2ee30, 0x0369c182, 0x001e6789}}}, + {X: Field{[10]uint32{0x02c84112, 0x0339b3ec, 0x0371974d, 0x03ab667a, 0x03befe03, 0x01a44ce3, 0x03fb71c1, 0x0375018a, 0x00a78dd9, 0x00310404}}, Y: Field{[10]uint32{0x02a2ff83, 0x0058b690, 0x0208d29b, 0x001cc50f, 0x00f270f8, 0x0209298f, 0x01c5dbcf, 0x02f088ec, 0x039de71e, 0x00140230}}}, + {X: Field{[10]uint32{0x0121d311, 0x0094f309, 0x01f4a1b6, 0x01777b6d, 0x03f786bc, 0x01426f23, 0x02586a6a, 0x02e89c01, 0x007e6cf4, 0x003a27a0}}, Y: Field{[10]uint32{0x02fea2cc, 0x0366527c, 0x0117aad6, 0x03070264, 0x012228f9, 0x0301000a, 0x039fcfc4, 0x01237a4d, 0x03797c49, 0x002ab7b2}}}, + {X: Field{[10]uint32{0x00b08577, 0x006e43f7, 0x03fdbdca, 0x01ce19bc, 0x0084091f, 0x0048630d, 0x01379195, 0x02fe4190, 0x01b3be2d, 0x000d8f7c}}, Y: Field{[10]uint32{0x01848bae, 0x02f7c3dd, 0x026057e3, 0x01918c26, 0x00f9ea5b, 0x01f9dbc8, 0x0221493f, 0x038db125, 0x004e5634, 0x0002bbf4}}}, + {X: Field{[10]uint32{0x038ea16e, 0x028f22f1, 0x003becd4, 0x00e8d357, 0x03ca8fe3, 0x0173112e, 0x01213228, 0x02093920, 0x023883d2, 0x00172345}}, Y: Field{[10]uint32{0x02c0456f, 0x02baeb86, 0x02685872, 0x037e3cc6, 0x02355347, 0x027dd496, 0x01005914, 0x019b0225, 0x01d9c7ce, 0x003d9be4}}}, + {X: Field{[10]uint32{0x02cbe126, 0x0217a1fa, 0x01ff4080, 0x0162f9d7, 0x024181dd, 0x03649536, 0x037789ee, 0x020fb760, 0x02760835, 0x00042b19}}, Y: Field{[10]uint32{0x0317d22d, 0x015fafae, 0x02a1a01f, 0x02806057, 0x0372e0db, 0x031ac96b, 0x0065acb0, 0x039eec1d, 0x02de23f3, 0x001b4faa}}}, + {X: Field{[10]uint32{0x00153048, 0x029a5ea3, 0x037da8db, 0x003e6d87, 0x02974c4c, 0x00823a8f, 0x01677962, 0x01550111, 0x01ea7bb6, 0x00079e68}}, Y: Field{[10]uint32{0x00787fc4, 0x03bca97c, 0x015dd394, 0x02f8ce81, 0x03e07d35, 0x02a0023a, 0x01874064, 0x012221a2, 0x017920a3, 0x002d8f8f}}}, + {X: Field{[10]uint32{0x03fa9a5b, 0x02f34254, 0x0076a7be, 0x00604759, 0x02116991, 0x0003fc4f, 0x00df2abb, 0x0288fd42, 0x007397b0, 0x0036c347}}, Y: Field{[10]uint32{0x0100dfe8, 0x0278ca12, 0x00dc9d0b, 0x010598a7, 0x032f85fd, 0x02d723bb, 0x01724312, 0x013c7b46, 0x00773ca7, 0x00072742}}}, + {X: Field{[10]uint32{0x03385f27, 0x0280fb72, 0x03622003, 0x008f9883, 0x03969042, 0x00b9dd6f, 0x02bdc229, 0x033a3499, 0x03b3481e, 0x00387f75}}, Y: Field{[10]uint32{0x030a4c77, 0x01019aa5, 0x03e6d09e, 0x024f8840, 0x03d9b31f, 0x00ff71a9, 0x02dee658, 0x00ffdc35, 0x039f2895, 0x000f3eac}}}, + {X: Field{[10]uint32{0x0223ffd3, 0x037c46a8, 0x018803b2, 0x0396fc62, 0x039ed85f, 0x0084c323, 0x02701c92, 0x02ee3cf5, 0x01342b69, 0x00259e5c}}, Y: Field{[10]uint32{0x02631d31, 0x025f91c3, 0x0394e059, 0x031b0255, 0x02632c0d, 0x034a68f9, 0x00b6d93c, 0x01be7df1, 0x003f630b, 0x000b50cd}}}, + {X: Field{[10]uint32{0x01c33efc, 0x020505f6, 0x03ba8cba, 0x01b66a67, 0x00ec0a77, 0x02677520, 0x01d2a0f3, 0x0352531a, 0x02186e27, 0x0037ed00}}, Y: Field{[10]uint32{0x0137796e, 0x01ec4ad7, 0x00f4861f, 0x00705e08, 0x009bd850, 0x02580c14, 0x0245bcb7, 0x00c9cc57, 0x01dce9f9, 0x000ccb64}}}, + {X: Field{[10]uint32{0x027681ec, 0x02e11a30, 0x035e5189, 0x0011fef8, 0x01171de0, 0x017068cc, 0x0208da7b, 0x03729145, 0x01ebed13, 0x001ad971}}, Y: Field{[10]uint32{0x01a34f62, 0x01e723a2, 0x01f43e26, 0x0137d6ee, 0x013e71fc, 0x01bf53e1, 0x0246b51f, 0x02f02cbc, 0x02e8e0ae, 0x0002bf43}}}, + {X: Field{[10]uint32{0x00c4b619, 0x00e43d4a, 0x0100480a, 0x008bf7f3, 0x03021e5c, 0x03509b7c, 0x02396aa5, 0x00e59789, 0x01a160b0, 0x002f070f}}, Y: Field{[10]uint32{0x00a31640, 0x03b5192b, 0x03bc8076, 0x0334d6b2, 0x0386ad94, 0x0108b046, 0x017862c0, 0x03faa42b, 0x017465e4, 0x003f595c}}}, + {X: Field{[10]uint32{0x0005913a, 0x004f7ea3, 0x038e2de6, 0x001b0b1b, 0x01090264, 0x02f161f8, 0x038a6a8c, 0x0328d54f, 0x011796d6, 0x001626c7}}, Y: Field{[10]uint32{0x003fb3e0, 0x00b2eb94, 0x02c87974, 0x01a76917, 0x003c7b64, 0x00eee8a9, 0x039365de, 0x013d1b89, 0x01ecac25, 0x00399575}}}, + {X: Field{[10]uint32{0x00ae4ed5, 0x016fe61e, 0x01677612, 0x033f3a9d, 0x016ada63, 0x024b652f, 0x01c2ef5c, 0x01b0aa53, 0x03856d1e, 0x00279c98}}, Y: Field{[10]uint32{0x00e304dd, 0x03d4d058, 0x01896069, 0x01010f24, 0x030a83bc, 0x0371ea8a, 0x028a48e0, 0x00e3e2d8, 0x01f51e5b, 0x002308e3}}}, + {X: Field{[10]uint32{0x02764263, 0x02d76f71, 0x018d57ea, 0x02bc9548, 0x004f9bd3, 0x00820380, 0x000c551b, 0x03dd3ee9, 0x017814e0, 0x000489a7}}, Y: Field{[10]uint32{0x0385b3d6, 0x017e1938, 0x01a704a9, 0x031f08b7, 0x00daee58, 0x02f45a48, 0x02febcdb, 0x025d7041, 0x00bd6584, 0x0003c3dc}}}, + {X: Field{[10]uint32{0x033088a6, 0x0245ced5, 0x03aa315e, 0x02fc59db, 0x005c73fd, 0x009cfbff, 0x0048cdd6, 0x02405383, 0x032fcc50, 0x0034c84b}}, Y: Field{[10]uint32{0x0032df82, 0x01902112, 0x02fc09db, 0x03aa14fe, 0x00ff59b6, 0x0271a4d3, 0x02618c84, 0x03d47cd8, 0x01f10673, 0x000e6bce}}}, + {X: Field{[10]uint32{0x00250052, 0x01168821, 0x02dccdae, 0x03f67d0a, 0x034ef288, 0x03d92588, 0x0014e724, 0x002eb510, 0x032b9bcc, 0x00314d7d}}, Y: Field{[10]uint32{0x02271022, 0x0171fb92, 0x000a7465, 0x0008a4c0, 0x02884473, 0x01f3a0a6, 0x0014a17f, 0x018c6d8a, 0x005b6fb7, 0x000fde66}}}, + {X: Field{[10]uint32{0x03399605, 0x003eb4e4, 0x03c121c8, 0x004bb035, 0x03271e39, 0x003b437d, 0x002bb186, 0x027e9618, 0x01269b16, 0x0013d6dc}}, Y: Field{[10]uint32{0x01cfd0a7, 0x0104d8f3, 0x00fb5dbe, 0x03c81881, 0x02576f63, 0x025f24ca, 0x002c6cdb, 0x0163aa44, 0x01047f2a, 0x002d83f0}}}, + {X: Field{[10]uint32{0x03d5d065, 0x0323c6ed, 0x03851de9, 0x01f5cde9, 0x000ec70e, 0x0000a705, 0x02c2863e, 0x00e2c6bc, 0x033b244c, 0x0032d166}}, Y: Field{[10]uint32{0x0157fbd0, 0x01d293c6, 0x010ea53a, 0x0055a4b2, 0x02a888bd, 0x03a242ce, 0x02462411, 0x01db20bd, 0x015d3c03, 0x001ed9ec}}}, + {X: Field{[10]uint32{0x0219054e, 0x00a87e93, 0x02597ea7, 0x018f4691, 0x02d389f5, 0x03d0d065, 0x03121bb7, 0x03831463, 0x01c70ebd, 0x001e1f58}}, Y: Field{[10]uint32{0x0272a658, 0x00ef2fab, 0x014ba4b9, 0x02ef5cad, 0x03f42e9e, 0x02cf4542, 0x031cf396, 0x0232e309, 0x02f25fcf, 0x0016ebd5}}}, + {X: Field{[10]uint32{0x01f6115c, 0x00edbaf1, 0x012bacc9, 0x0229808d, 0x02337353, 0x0358e420, 0x037d97cb, 0x02c3252d, 0x002a31d0, 0x0030e2bf}}, Y: Field{[10]uint32{0x03ee529f, 0x0109a210, 0x004690d8, 0x022f4b96, 0x01875e09, 0x01917e35, 0x01a26a4c, 0x03f3092e, 0x03cab138, 0x002e4977}}}, + {X: Field{[10]uint32{0x03406d0a, 0x0321e6bf, 0x0282ad6e, 0x002e2ade, 0x0339a5dd, 0x016e6c97, 0x01c6ad5e, 0x01ba56e7, 0x023b8e60, 0x000dd987}}, Y: Field{[10]uint32{0x03e9b977, 0x02c58e29, 0x002a4df1, 0x00e44c8e, 0x0160d8bc, 0x01b3e510, 0x017e07bd, 0x023f384c, 0x025d430d, 0x002adcd7}}}, + {X: Field{[10]uint32{0x01e256ba, 0x01a28594, 0x02062abd, 0x0367d939, 0x0388ea5a, 0x0370319d, 0x018e9348, 0x00ad1f0f, 0x0051b8c2, 0x0039449e}}, Y: Field{[10]uint32{0x030405c6, 0x01fce1c9, 0x004b3f94, 0x0136e1c1, 0x025b1e7d, 0x0154dffe, 0x034b7dc0, 0x027ade42, 0x037e0034, 0x001611fd}}}, + {X: Field{[10]uint32{0x017382e9, 0x0191ee6b, 0x03b41955, 0x02601482, 0x02127a36, 0x00e03f81, 0x013e7cb7, 0x02a284dc, 0x005da6b8, 0x003cf1fd}}, Y: Field{[10]uint32{0x023e7c87, 0x0397ef7d, 0x00a51ddf, 0x0005c675, 0x034b4693, 0x00024d9d, 0x01decd09, 0x0274c7dc, 0x0211eb1b, 0x000ab3e6}}}, + {X: Field{[10]uint32{0x00d745ba, 0x012cbc21, 0x024de0ff, 0x0254eec3, 0x0279125f, 0x0122a642, 0x03733a18, 0x02c94948, 0x0047e8d5, 0x0021b790}}, Y: Field{[10]uint32{0x01bc969a, 0x0269d19c, 0x02007427, 0x00146a7b, 0x03569211, 0x0177a4b4, 0x0284cf7d, 0x000174ac, 0x00720dac, 0x001c79a9}}}, + {X: Field{[10]uint32{0x03f57504, 0x021d70bc, 0x02c635e2, 0x032b0317, 0x023029d9, 0x03cea85a, 0x020cd963, 0x02759b65, 0x00307225, 0x00318457}}, Y: Field{[10]uint32{0x037a712f, 0x004a1427, 0x0077050d, 0x0004d10f, 0x01ced024, 0x00f20868, 0x017f56c2, 0x0375e35e, 0x00d0b33f, 0x000635a4}}}, + {X: Field{[10]uint32{0x02f53c5b, 0x034d9d10, 0x03c6ac61, 0x03c78afe, 0x018bfae0, 0x01a4a6c1, 0x0038cbd7, 0x011cee46, 0x00998b43, 0x0032d514}}, Y: Field{[10]uint32{0x01572bbf, 0x0236de24, 0x00ddfde3, 0x02e9efed, 0x01c00ba8, 0x026e77d5, 0x03684b4f, 0x013c2335, 0x034d79e3, 0x00104675}}}, + {X: Field{[10]uint32{0x02922d2a, 0x014bca14, 0x013725a7, 0x01cf1b42, 0x020a333b, 0x0182a628, 0x01771e26, 0x00aed3ec, 0x0304b936, 0x00343739}}, Y: Field{[10]uint32{0x02e37e47, 0x028e4565, 0x018ffde5, 0x01529314, 0x02124d3f, 0x016730bb, 0x033891a2, 0x033837c7, 0x03707947, 0x003e4b0e}}}, + {X: Field{[10]uint32{0x016b20a4, 0x02866fc8, 0x03a96249, 0x01679f5c, 0x03d42702, 0x01957314, 0x02ab8570, 0x016618e3, 0x0238e5aa, 0x0036e4f8}}, Y: Field{[10]uint32{0x03bcc7c5, 0x035fad7e, 0x0094c815, 0x025718bf, 0x033ab178, 0x009bbd95, 0x034f60cd, 0x023ad942, 0x008b670e, 0x00234677}}}, + {X: Field{[10]uint32{0x00c3f486, 0x01753bda, 0x01835ba8, 0x03f2efc4, 0x014d6c6c, 0x001e584a, 0x0207e54b, 0x02fbe0a7, 0x037fd8ce, 0x0030e1f0}}, Y: Field{[10]uint32{0x01ddeda9, 0x03f9e384, 0x00897994, 0x0036d896, 0x03c8e3ae, 0x004b5ff9, 0x020f7d7f, 0x02cc01b2, 0x00d9ae7e, 0x00214960}}}, + {X: Field{[10]uint32{0x0206c232, 0x00dd271d, 0x01092f94, 0x03748eb6, 0x024d3b22, 0x024aed2d, 0x0001b5b1, 0x039544df, 0x0134f04d, 0x003aed63}}, Y: Field{[10]uint32{0x01d1ae16, 0x01223f37, 0x0112bc59, 0x00b14272, 0x03d92ae7, 0x0016af26, 0x01d3e829, 0x03e7536c, 0x01059c99, 0x0006e5e7}}}, + {X: Field{[10]uint32{0x02e38e6b, 0x017390a5, 0x038d8252, 0x022befc8, 0x032f1317, 0x00c32b44, 0x01810b17, 0x028a6dd9, 0x0066acfd, 0x001e2473}}, Y: Field{[10]uint32{0x027caaf1, 0x02b3d94d, 0x02db972f, 0x039f6c02, 0x03a21ff6, 0x01fb2bb0, 0x02987ad0, 0x0231b118, 0x03292018, 0x0008864d}}}, + {X: Field{[10]uint32{0x0014d081, 0x014378d6, 0x011f472c, 0x0003028c, 0x000acec8, 0x01e4ff63, 0x02578a53, 0x007a34b0, 0x0142e4bc, 0x00302c09}}, Y: Field{[10]uint32{0x017f8371, 0x0262f06d, 0x01673136, 0x0213afff, 0x0376b1a8, 0x00702465, 0x02e6bb57, 0x005f0006, 0x00710f59, 0x000092f7}}}, + {X: Field{[10]uint32{0x0026d2dd, 0x028dad71, 0x014b2f07, 0x03d13acf, 0x03c2000c, 0x0103a980, 0x02fd9a3e, 0x01141fc4, 0x0174b870, 0x003a8575}}, Y: Field{[10]uint32{0x0230944e, 0x00969462, 0x0124b6ca, 0x01b16269, 0x00c5cdc1, 0x02df8e25, 0x00faf58a, 0x028e7d38, 0x014f4d8c, 0x002d965b}}}, + {X: Field{[10]uint32{0x039604de, 0x006dde73, 0x006726e5, 0x02604d63, 0x02708776, 0x009274d3, 0x00d5726a, 0x01abdee2, 0x03dfc35a, 0x001df4e1}}, Y: Field{[10]uint32{0x008b4a87, 0x0336693c, 0x0324993f, 0x001b7805, 0x01459165, 0x013e8ac7, 0x013c2351, 0x02a58b4b, 0x02cd2d70, 0x003976bb}}}, + {X: Field{[10]uint32{0x01ccd7ec, 0x01aa7727, 0x02db8329, 0x03530c54, 0x031064f9, 0x035bfbee, 0x024dc2f9, 0x0093ef06, 0x02cb7d1a, 0x002a49d0}}, Y: Field{[10]uint32{0x01679f76, 0x0063908c, 0x0225ad9d, 0x018ecf9c, 0x0266d4f1, 0x0208fcf1, 0x0346df60, 0x03c293b0, 0x00f98cda, 0x001996a7}}}, + {X: Field{[10]uint32{0x02316a46, 0x02c417e9, 0x02b6f36c, 0x0368a783, 0x00f62de9, 0x01ed54c1, 0x034053d3, 0x00e4f574, 0x00f79f0c, 0x00094f95}}, Y: Field{[10]uint32{0x027155e0, 0x038cfaf3, 0x03fd7b2a, 0x01fe3f82, 0x0067c857, 0x016c9fbc, 0x029417ac, 0x03b030ca, 0x00cded78, 0x0015385a}}}, + {X: Field{[10]uint32{0x0003fbf2, 0x01173000, 0x004434ee, 0x031eccf6, 0x0255fc01, 0x038e00a6, 0x039586f9, 0x021c8185, 0x00e0e9c3, 0x00344c12}}, Y: Field{[10]uint32{0x00743f37, 0x01d42021, 0x021e3640, 0x0102e6f1, 0x01af2578, 0x02c9470e, 0x00906897, 0x0091de15, 0x02db9450, 0x001f1119}}}, + {X: Field{[10]uint32{0x00a284a2, 0x001194dc, 0x032c88e6, 0x00dca958, 0x02a632b2, 0x02f6f26a, 0x007d0797, 0x008488a2, 0x0110387c, 0x003a48d0}}, Y: Field{[10]uint32{0x036523c4, 0x02c33edb, 0x0363ae80, 0x0147dd03, 0x01839a26, 0x01be63b6, 0x03b3afe6, 0x01486d3f, 0x008c4ca3, 0x000ae62c}}}, + {X: Field{[10]uint32{0x03a29be5, 0x02a76b60, 0x0271332b, 0x007253e2, 0x00742834, 0x02ec95d9, 0x0091a5a7, 0x01e3bdce, 0x03a7ab69, 0x000c0b80}}, Y: Field{[10]uint32{0x0310120b, 0x028be0d5, 0x002eea98, 0x036d9102, 0x030e8430, 0x0395aecf, 0x02e850d2, 0x00d6facb, 0x02db210c, 0x0012af82}}}, + {X: Field{[10]uint32{0x01665368, 0x03345584, 0x008598d7, 0x0370c75a, 0x024fea8b, 0x02c3e31e, 0x020571ee, 0x003cc372, 0x03894440, 0x0014dc04}}, Y: Field{[10]uint32{0x02a97cbe, 0x0069d3fa, 0x02d1971b, 0x036fc5a9, 0x01a712e2, 0x02a68db8, 0x0331bbe5, 0x03c88695, 0x026439c1, 0x00328d15}}}, + {X: Field{[10]uint32{0x028383cd, 0x0254a6bc, 0x00ff4957, 0x0375508f, 0x01656aaa, 0x0168b4e6, 0x012b6f7a, 0x01f2e3eb, 0x0186645d, 0x002303a0}}, Y: Field{[10]uint32{0x0048d27f, 0x035dd5d3, 0x018ffcdc, 0x013b2538, 0x0263c6d2, 0x023eed20, 0x007319d1, 0x0126064c, 0x01ea14c4, 0x000bbc9d}}}, + {X: Field{[10]uint32{0x03ad8af5, 0x010f5e97, 0x0101dafc, 0x004b1a5e, 0x01adddc5, 0x03fe32a6, 0x01615c45, 0x028f2684, 0x003126ba, 0x001929c2}}, Y: Field{[10]uint32{0x02fe29d5, 0x014f9c2a, 0x0342c432, 0x0128a23d, 0x00148efe, 0x02ec5e5a, 0x0245c354, 0x017dab0e, 0x008b59a6, 0x002e90f1}}}, + {X: Field{[10]uint32{0x01438e06, 0x02d1ea97, 0x0268051d, 0x033ed3d5, 0x0363559a, 0x00598917, 0x03785e2e, 0x023892cb, 0x026e82ff, 0x003f6f41}}, Y: Field{[10]uint32{0x02973d63, 0x038aa104, 0x03def144, 0x0356c905, 0x02875731, 0x022e5267, 0x02a5d382, 0x036308dd, 0x01cfa19e, 0x0001836b}}}, + {X: Field{[10]uint32{0x02ad174f, 0x009bd07b, 0x03e0af1b, 0x033cb72c, 0x0282cf15, 0x02518544, 0x01dba01d, 0x001cc467, 0x00b81ff9, 0x002ca1f3}}, Y: Field{[10]uint32{0x0374e090, 0x02f7027e, 0x01bd1acf, 0x02af000e, 0x0236d1be, 0x036d9bb4, 0x038a4635, 0x002fb92c, 0x03397a9a, 0x001bfc54}}}, + {X: Field{[10]uint32{0x01068116, 0x035735ff, 0x02c3c962, 0x015c06f7, 0x033b3f84, 0x02cc0cbe, 0x01f21888, 0x00d293e9, 0x0248b652, 0x0006011e}}, Y: Field{[10]uint32{0x0224574b, 0x01385681, 0x0117b1f3, 0x00244068, 0x01801342, 0x033a95a0, 0x02c54446, 0x0220c8c1, 0x02691819, 0x0004d89d}}}, + {X: Field{[10]uint32{0x0235f914, 0x01f9ea00, 0x02aae0ce, 0x03a56f52, 0x026b74ff, 0x0290784d, 0x022dd328, 0x00b39622, 0x014fbe4e, 0x003c74ed}}, Y: Field{[10]uint32{0x00a3981a, 0x03589dea, 0x0233be86, 0x01965fbf, 0x02c0c211, 0x0212188c, 0x02e1471e, 0x0205fad2, 0x0141300e, 0x000df097}}}, + {X: Field{[10]uint32{0x013bec4a, 0x00e8db61, 0x02a839ce, 0x00db1788, 0x019770da, 0x0042b55b, 0x03509a60, 0x037eadff, 0x01e95046, 0x0026c36a}}, Y: Field{[10]uint32{0x00135faa, 0x01dd40ce, 0x024d96da, 0x006468a4, 0x03df757c, 0x010e0a73, 0x00bbc3ff, 0x0168dba0, 0x034530c2, 0x0009f580}}}, + {X: Field{[10]uint32{0x0099c5cc, 0x03635976, 0x025f9f13, 0x0093cbad, 0x022d3e4d, 0x01c5d5a3, 0x0255d403, 0x03462c2f, 0x03d95155, 0x003420ce}}, Y: Field{[10]uint32{0x024741e8, 0x01cef265, 0x01de13c4, 0x020bb13a, 0x02ffeefb, 0x01b6dc51, 0x03b1e4c5, 0x012ad447, 0x02c3b504, 0x0039426b}}}, + {X: Field{[10]uint32{0x03c37117, 0x00ca788b, 0x038a626c, 0x01885f27, 0x03ed62ad, 0x01e6039a, 0x0201b402, 0x005f90a2, 0x027c185f, 0x00231058}}, Y: Field{[10]uint32{0x023662f7, 0x016dee4e, 0x01ca77d9, 0x01071ccb, 0x02a36da4, 0x020fdcfb, 0x028a1e74, 0x029548df, 0x026c3316, 0x001d7288}}}, + {X: Field{[10]uint32{0x03728d27, 0x018a0ec9, 0x0311e7cc, 0x01b96d42, 0x002d75c2, 0x0284ee5f, 0x007099e9, 0x02a8c173, 0x0105e43a, 0x000dc7c0}}, Y: Field{[10]uint32{0x02b3ce99, 0x00ee031a, 0x0149b029, 0x009b3b7c, 0x01b11944, 0x0114e3ab, 0x00643120, 0x01b5a233, 0x03e7d097, 0x00325a76}}}, + {X: Field{[10]uint32{0x00cb1710, 0x03fef70b, 0x03e03541, 0x020dea3c, 0x02d94aeb, 0x01761930, 0x034d3a18, 0x028d63e2, 0x019a4238, 0x001440bd}}, Y: Field{[10]uint32{0x01ef1445, 0x008824e1, 0x016ce915, 0x030e27a6, 0x010bbffd, 0x035072af, 0x0130606c, 0x00f0fd33, 0x00f9adb6, 0x00278531}}}, + {X: Field{[10]uint32{0x03f08beb, 0x00aea9c7, 0x00cc26df, 0x02bef52a, 0x00a7f57e, 0x00d858bc, 0x00353c78, 0x0100f01e, 0x036cfd40, 0x00032886}}, Y: Field{[10]uint32{0x037f12f9, 0x038f9607, 0x03ffee6a, 0x02085092, 0x03d6b684, 0x0147b6c3, 0x019f2ef7, 0x02956cff, 0x004647eb, 0x0004228f}}}, + {X: Field{[10]uint32{0x01d775d9, 0x0139a28c, 0x007697c9, 0x00b2b310, 0x017ec364, 0x00038f72, 0x0368bc82, 0x034673a0, 0x00b3ff40, 0x00367351}}, Y: Field{[10]uint32{0x005f0901, 0x03257ad2, 0x033cb085, 0x006d6eaf, 0x03fd7c4a, 0x01e7792b, 0x00f71010, 0x03dc0753, 0x036c683e, 0x002dadbe}}}, + {X: Field{[10]uint32{0x01a10360, 0x02f7d105, 0x021e104f, 0x0020ff31, 0x00510da5, 0x006f5241, 0x01644267, 0x01a222ed, 0x00b2cbcb, 0x002684d5}}, Y: Field{[10]uint32{0x034f953a, 0x03a2e0a1, 0x01b9b710, 0x03ce0776, 0x03bc4927, 0x00f8900d, 0x023a2a89, 0x0122d136, 0x0291707c, 0x000fd7d4}}}, + {X: Field{[10]uint32{0x010fdf79, 0x002ae76b, 0x02941bd5, 0x0314e1a4, 0x0220fc60, 0x03ac3f6f, 0x03deb0bc, 0x020712b9, 0x020f271a, 0x00317957}}, Y: Field{[10]uint32{0x01c83a63, 0x001ddbff, 0x000aecb1, 0x01f5c228, 0x0285ed9e, 0x018aba4e, 0x0253e7cc, 0x024c041e, 0x0335eab4, 0x0004e283}}}, + {X: Field{[10]uint32{0x0060f919, 0x0012bb64, 0x012c69a0, 0x01c81667, 0x027c67ea, 0x03317d98, 0x010e4dc6, 0x02f4f48a, 0x03647f66, 0x0017af0b}}, Y: Field{[10]uint32{0x0054659c, 0x0265b582, 0x00f1e56e, 0x0182c432, 0x033ec1e8, 0x014da58d, 0x00f79206, 0x0217889f, 0x03cedf20, 0x001a3df6}}}, + {X: Field{[10]uint32{0x03966e03, 0x0041d733, 0x00b2da42, 0x02074e96, 0x00161d70, 0x029e7258, 0x011a5a79, 0x00374141, 0x039c7d06, 0x0013ca3a}}, Y: Field{[10]uint32{0x0267fafc, 0x03cf8174, 0x02a6c2ef, 0x00f4b3c4, 0x0044849f, 0x028abf9e, 0x02aeb8e4, 0x011d06ec, 0x00610543, 0x003b0de2}}}, + {X: Field{[10]uint32{0x0283fe8f, 0x0056d286, 0x005c0efe, 0x03b95fb2, 0x019fa039, 0x002cd1f2, 0x00c7a9a1, 0x00f82614, 0x00d1ce11, 0x003d4388}}, Y: Field{[10]uint32{0x02e975be, 0x026ff0fe, 0x00aa94db, 0x01e09f55, 0x00cee464, 0x00501fc8, 0x018595f6, 0x01068a08, 0x023190df, 0x00136df0}}}, + {X: Field{[10]uint32{0x03eff5ef, 0x021068ea, 0x01e76ab2, 0x01735092, 0x0079de94, 0x015620af, 0x038cdf2b, 0x02ae5775, 0x02d01ade, 0x003339ac}}, Y: Field{[10]uint32{0x00626e52, 0x0109f94d, 0x02bd5604, 0x02be7e89, 0x01bab1db, 0x0182c6f5, 0x03764bb5, 0x00502bf7, 0x02741312, 0x00075a41}}}, + {X: Field{[10]uint32{0x032d8475, 0x003b5ba7, 0x03bbfbc8, 0x0394b4d2, 0x01e4830b, 0x016bf3b0, 0x00c73121, 0x0155f4bb, 0x0174fb10, 0x00156994}}, Y: Field{[10]uint32{0x038012c0, 0x032245c9, 0x03eec611, 0x03539cd4, 0x023f0623, 0x01524e01, 0x00dd4126, 0x014dea5c, 0x01f1de1e, 0x0031a5e5}}}, + {X: Field{[10]uint32{0x0127f290, 0x03b4a298, 0x00ab0267, 0x0065d965, 0x02d0c1d8, 0x01eb2351, 0x022779e9, 0x02cf71f8, 0x00fa7b4d, 0x001e0887}}, Y: Field{[10]uint32{0x03c46a54, 0x014fa432, 0x00b663ad, 0x0030b8d6, 0x02ace066, 0x03aad594, 0x003a1582, 0x02318922, 0x01edfd8e, 0x00237735}}}, + {X: Field{[10]uint32{0x006ed178, 0x00b5bea6, 0x03f9602b, 0x038a3e4b, 0x009006cc, 0x00041e0b, 0x00da39d6, 0x0390d3b5, 0x0039441e, 0x0026e614}}, Y: Field{[10]uint32{0x02c6cfa4, 0x0397e704, 0x003bb85f, 0x0385cfc0, 0x028a50da, 0x0364e230, 0x03f67d22, 0x01ecade2, 0x01c87b53, 0x003873e1}}}, + {X: Field{[10]uint32{0x037edf20, 0x027c8103, 0x004f38ae, 0x02c0a477, 0x026c27e7, 0x026d9d5e, 0x01b9d78d, 0x0123795f, 0x03b14a9e, 0x0026a8bf}}, Y: Field{[10]uint32{0x037d1040, 0x022dfd8d, 0x00a115ff, 0x03549dcb, 0x018f80d7, 0x0164a54b, 0x00066ef8, 0x03de53f8, 0x03e378e0, 0x001dc71e}}}, + {X: Field{[10]uint32{0x02937e1f, 0x0166a271, 0x02c021e3, 0x0145b603, 0x00949de2, 0x00248a83, 0x00510cb4, 0x02d18c5f, 0x008366a0, 0x00344164}}, Y: Field{[10]uint32{0x02c8630e, 0x0105517e, 0x000ac99c, 0x00bebb1e, 0x020e5e6f, 0x03117836, 0x017155c0, 0x011052a2, 0x0225c9ea, 0x0021014e}}}, + {X: Field{[10]uint32{0x01c5d066, 0x028bfc7e, 0x027c23e7, 0x03671c2e, 0x031ac58a, 0x00aa07df, 0x01c2d810, 0x02612bfb, 0x02cf7456, 0x0007cfb2}}, Y: Field{[10]uint32{0x01a23e54, 0x00d7601c, 0x00d94cd4, 0x018b83e6, 0x0015f1f3, 0x0085a07e, 0x034539ef, 0x0093c5cf, 0x00fa2bfd, 0x0031ab76}}}, + {X: Field{[10]uint32{0x022c4371, 0x03372836, 0x024fe569, 0x001bacd4, 0x035e504d, 0x01b23e51, 0x0151ece8, 0x0032b495, 0x0309a16d, 0x0028c4b1}}, Y: Field{[10]uint32{0x03ae7b03, 0x01e00e6c, 0x039690c7, 0x00a6b1ef, 0x0008c1fc, 0x01ad6ee1, 0x009ea2c6, 0x03176882, 0x002aea04, 0x002197b3}}}, + {X: Field{[10]uint32{0x004197af, 0x03ccbd9d, 0x0169d953, 0x036c405f, 0x008c3493, 0x030bbb4e, 0x00f64109, 0x02e9e3ef, 0x0275e829, 0x003c8711}}, Y: Field{[10]uint32{0x018b2f57, 0x03dd2b42, 0x03ef2b37, 0x01cd20b4, 0x01043d93, 0x028dec0f, 0x030ee061, 0x01f2bd76, 0x033e4337, 0x003f4b19}}}, + {X: Field{[10]uint32{0x00865692, 0x03b5f006, 0x014268fe, 0x00ce9cef, 0x01f48369, 0x02146acc, 0x00b2eb61, 0x02680bef, 0x00ea2a02, 0x0004585d}}, Y: Field{[10]uint32{0x030aaefd, 0x01cb5375, 0x00352ee7, 0x015512d9, 0x0125cf38, 0x01bd7475, 0x03ca2a2d, 0x02b676d7, 0x0027e1ce, 0x000848f4}}}, + {X: Field{[10]uint32{0x03f9d663, 0x00cd7e9c, 0x0260a962, 0x0343d79f, 0x022334fc, 0x015f9cb5, 0x00a21173, 0x0131b3d9, 0x03d0919e, 0x000d639d}}, Y: Field{[10]uint32{0x0037bc08, 0x02dbad9e, 0x020cb8b5, 0x02be821a, 0x03dcf5cd, 0x0222b1f3, 0x03819859, 0x03d00c41, 0x02206f99, 0x001fbe35}}}, + {X: Field{[10]uint32{0x02a33fa9, 0x031b6aae, 0x0060db86, 0x02cea04d, 0x008056de, 0x00597eab, 0x0157e203, 0x03c518e4, 0x020d9e81, 0x001427df}}, Y: Field{[10]uint32{0x00db6ea9, 0x016e34a8, 0x03090a09, 0x017f0eff, 0x03fd1216, 0x00fc6b4e, 0x028645f9, 0x02db139a, 0x021a340e, 0x00154523}}}, + {X: Field{[10]uint32{0x02a4ed09, 0x031f9ab4, 0x020b9ad9, 0x02f50e00, 0x00a15c95, 0x00d1bc87, 0x01e30c49, 0x0038987a, 0x025c185f, 0x000d638c}}, Y: Field{[10]uint32{0x0118c4b8, 0x026d97cb, 0x01b3d97f, 0x02f4d1e2, 0x0154aa11, 0x02cf5861, 0x02ef6903, 0x0056ca04, 0x0074c977, 0x00017f30}}}, + {X: Field{[10]uint32{0x01a2fc4c, 0x00daf8f7, 0x00d2608d, 0x00411e24, 0x02e314c3, 0x00962780, 0x0337e4ea, 0x02bcb4df, 0x012dbc00, 0x0007871c}}, Y: Field{[10]uint32{0x010655dc, 0x02c7da92, 0x00c145bf, 0x01d410b5, 0x03974e7e, 0x034c2ce2, 0x0398cf5a, 0x01aef8d9, 0x039ae313, 0x00012263}}}, + {X: Field{[10]uint32{0x03ffcd1d, 0x025ed5c8, 0x03918bd7, 0x0081cd86, 0x0064e317, 0x0202a564, 0x03b794dc, 0x01e6c3fc, 0x039aaa3f, 0x0029945b}}, Y: Field{[10]uint32{0x0254f5d4, 0x0140c00e, 0x00f9bed5, 0x0373af6f, 0x02812373, 0x01f1f0c4, 0x0377b074, 0x02e0c14f, 0x006b59f3, 0x003164d3}}}, + {X: Field{[10]uint32{0x01098155, 0x00046e2c, 0x01b79295, 0x00cf6966, 0x0150cb56, 0x00c1111a, 0x03ab8240, 0x006e12e7, 0x00d88b1e, 0x00391ad2}}, Y: Field{[10]uint32{0x00c94f51, 0x01e4d96c, 0x00a80a5d, 0x02033654, 0x003e7c8a, 0x0165d0d4, 0x002e5512, 0x0265db8d, 0x02244a33, 0x0010fa6e}}}, + {X: Field{[10]uint32{0x0365aa0b, 0x00cdc34f, 0x03400e58, 0x01000489, 0x00e1cc2d, 0x037e79c5, 0x025105b1, 0x030b8018, 0x009997a9, 0x00329e94}}, Y: Field{[10]uint32{0x02e1f071, 0x007abf99, 0x02039b7a, 0x011334b3, 0x0319c618, 0x03df2c3b, 0x01994fce, 0x03346883, 0x00e4d2ee, 0x00376329}}}, + {X: Field{[10]uint32{0x02313f08, 0x003561a5, 0x02d0da39, 0x027bb007, 0x00848659, 0x01de1b10, 0x01352d4b, 0x015dbc44, 0x02c0d29b, 0x000c9ad7}}, Y: Field{[10]uint32{0x0011d384, 0x020a2a04, 0x0126495e, 0x0280f693, 0x01c2d5d3, 0x0356ca83, 0x02a60633, 0x01952f9e, 0x0171a4ac, 0x003d28fc}}}, + {X: Field{[10]uint32{0x030d306d, 0x024c8a39, 0x03e2b392, 0x03bb944b, 0x017c5bf8, 0x03fa6eb6, 0x017038db, 0x031d6a95, 0x018254f5, 0x0002dd8a}}, Y: Field{[10]uint32{0x003606c5, 0x036cf6c5, 0x016fbf92, 0x01d4e612, 0x020cc85c, 0x035f7a2f, 0x035bb2d0, 0x00fa18b1, 0x039fb36e, 0x0022e023}}}, + {X: Field{[10]uint32{0x032286ca, 0x026886e1, 0x014f5ef7, 0x0295e419, 0x03ae66f1, 0x03c6a046, 0x0250a096, 0x00dbff77, 0x00e12b1d, 0x0022f589}}, Y: Field{[10]uint32{0x011f02df, 0x02e015eb, 0x004d0fe9, 0x02885c15, 0x038bf6a2, 0x01108d2b, 0x0331c747, 0x022586d9, 0x022ef453, 0x0019a1fa}}}, + {X: Field{[10]uint32{0x01de48a9, 0x02349741, 0x03da42d7, 0x00cf555c, 0x01509d1c, 0x03e11b19, 0x01414ccc, 0x024a402f, 0x02c72a9f, 0x003b497a}}, Y: Field{[10]uint32{0x00d89eaa, 0x0287ad40, 0x028b98f3, 0x03407dce, 0x018705a9, 0x020b35ef, 0x011583c6, 0x03f40edb, 0x01ed2710, 0x00155bea}}}, + {X: Field{[10]uint32{0x00bc02bf, 0x012e79c2, 0x000600df, 0x030778a0, 0x000e8fac, 0x01d57ecc, 0x027bc94c, 0x01aa1271, 0x036c9ed7, 0x003c650e}}, Y: Field{[10]uint32{0x002a40a7, 0x023295a2, 0x004b0481, 0x00cb7c7e, 0x03a31562, 0x00b2e1db, 0x00bb6464, 0x01383dab, 0x020885dc, 0x002631ee}}}, + {X: Field{[10]uint32{0x01e9e5d3, 0x01460ca9, 0x02f391d3, 0x0085ab23, 0x03834228, 0x033b6b9e, 0x0024276d, 0x02ae3ec3, 0x03142de3, 0x00316d82}}, Y: Field{[10]uint32{0x02b5cd69, 0x00ab37e7, 0x01260e91, 0x01e381f0, 0x02332595, 0x00535297, 0x01e10d90, 0x039827d5, 0x00da1174, 0x0033a1b9}}}, + {X: Field{[10]uint32{0x013755ab, 0x00b10252, 0x014f592e, 0x000305a3, 0x01c77782, 0x014fe678, 0x019647b2, 0x03f98ccd, 0x038e706c, 0x0002c198}}, Y: Field{[10]uint32{0x0344bbd5, 0x0228e0f2, 0x0369d3e8, 0x01ee1f9f, 0x03e16dd3, 0x027e54d5, 0x02e24933, 0x0148a44d, 0x03ab1b4d, 0x00399007}}}, + {X: Field{[10]uint32{0x024b14cf, 0x00e6df49, 0x03cd89f5, 0x0391a052, 0x03f0ec5f, 0x00cbe958, 0x0250ea54, 0x02b3f4a5, 0x01b5486d, 0x0033be30}}, Y: Field{[10]uint32{0x025a2fcf, 0x01aab046, 0x0166c931, 0x00aac94b, 0x015ed4fd, 0x01875ca0, 0x00939ea7, 0x002f8c00, 0x02c18d0b, 0x00020330}}}, + {X: Field{[10]uint32{0x0385d7ce, 0x011b6892, 0x014f38e5, 0x01009a5d, 0x0162defb, 0x00662c70, 0x00dccac4, 0x03ca857f, 0x004df868, 0x003d85a4}}, Y: Field{[10]uint32{0x038255b3, 0x0098ce9e, 0x023e47f6, 0x00deabab, 0x03de8b4d, 0x01cecc73, 0x03b93e0b, 0x009327c2, 0x00123440, 0x003ee5c4}}}, + {X: Field{[10]uint32{0x018632e3, 0x03d8b0fe, 0x02599a59, 0x0397b602, 0x011613d8, 0x000bfbd3, 0x02516979, 0x0129ecce, 0x0144bc7e, 0x0025ce18}}, Y: Field{[10]uint32{0x00fc16b4, 0x001b4d83, 0x03b6a5a8, 0x0196e9e6, 0x0308e560, 0x010c6bc9, 0x01834a95, 0x0264e4b7, 0x01845842, 0x002f44b5}}}, + {X: Field{[10]uint32{0x030200c8, 0x03390dee, 0x0311b551, 0x03701584, 0x011eb08d, 0x0195ac9e, 0x003a56f6, 0x03e803d0, 0x030c7a70, 0x00251bc4}}, Y: Field{[10]uint32{0x01945b8d, 0x019a5278, 0x0310507a, 0x02529efd, 0x00186d97, 0x02bc15e1, 0x01a923f3, 0x01f981fd, 0x00f6a503, 0x002b35a6}}}, + {X: Field{[10]uint32{0x03929230, 0x0102f730, 0x0287d917, 0x030cd08d, 0x01d5f1af, 0x03034962, 0x038c064f, 0x014ec030, 0x018472c4, 0x003b833c}}, Y: Field{[10]uint32{0x03ff8dc8, 0x01e09927, 0x0191f79c, 0x00a2cdba, 0x008c773c, 0x03289264, 0x014db12f, 0x034e5fa5, 0x035a7fec, 0x003605dd}}}, + {X: Field{[10]uint32{0x01535d7b, 0x018e9ddf, 0x03c21234, 0x0225364e, 0x03ef0072, 0x02ac4a1f, 0x0148b4f4, 0x02961c27, 0x03fe9542, 0x003ccd7d}}, Y: Field{[10]uint32{0x03350283, 0x006140b8, 0x01bf7455, 0x03a69ac6, 0x017639da, 0x023abed3, 0x0389c06d, 0x0174a4d4, 0x01a30246, 0x000cdb92}}}, + {X: Field{[10]uint32{0x017e7739, 0x02c383f2, 0x03f06f0e, 0x01b15675, 0x00b1326d, 0x01daa410, 0x00200d7b, 0x01fe3773, 0x01794fb3, 0x00156fe0}}, Y: Field{[10]uint32{0x03e69bfc, 0x024c28ab, 0x0086632e, 0x0293d274, 0x013053f6, 0x01f5c0fb, 0x002ade6f, 0x017307a4, 0x03007915, 0x00328cf3}}}, + {X: Field{[10]uint32{0x01de29b0, 0x01f5bd8a, 0x0062349b, 0x0004bf83, 0x031033b9, 0x02edb650, 0x022195fa, 0x0369197b, 0x03816143, 0x0037ff33}}, Y: Field{[10]uint32{0x00f0aff7, 0x01d6e71d, 0x0190bbfe, 0x02757f7b, 0x00c04bc3, 0x02178562, 0x029fc06f, 0x012b9f70, 0x03f6e1dc, 0x0026ff7c}}}, + {X: Field{[10]uint32{0x0139dec3, 0x039f608d, 0x0177f3c5, 0x0044ba3d, 0x02c435bc, 0x0155aec4, 0x01c1395b, 0x01be8bf9, 0x009425fc, 0x002e5d23}}, Y: Field{[10]uint32{0x014007a2, 0x032a2a32, 0x016e3dfa, 0x02f18eaa, 0x00f76d31, 0x0354507b, 0x016b2336, 0x0348ed7a, 0x03b2b995, 0x003d48e2}}}, + {X: Field{[10]uint32{0x0297f7ca, 0x00561e2b, 0x039a3fb6, 0x0397e9a8, 0x022c5349, 0x03d4ab66, 0x0329e335, 0x02c55ce3, 0x0054e951, 0x0024b10f}}, Y: Field{[10]uint32{0x012b4a17, 0x02c06558, 0x022bf71b, 0x01e75a29, 0x02bdc4ae, 0x00d92d8a, 0x00924fc6, 0x006f28c2, 0x0373dedd, 0x001f1e9a}}}, + {X: Field{[10]uint32{0x021eb272, 0x02d9ac34, 0x02d96040, 0x03a7d1c9, 0x035677af, 0x01e96248, 0x01ef139d, 0x017957b8, 0x03ea2599, 0x0002c64d}}, Y: Field{[10]uint32{0x03043dd6, 0x024c6033, 0x019195a9, 0x000ea3aa, 0x005585c5, 0x03911253, 0x003e0ca5, 0x031f3f9b, 0x0257544a, 0x00343e56}}}, + {X: Field{[10]uint32{0x0133f457, 0x01b601f0, 0x01fc94a4, 0x01ea3443, 0x00e2a504, 0x00026de2, 0x005a6b72, 0x03892caf, 0x024dbd7e, 0x000b0735}}, Y: Field{[10]uint32{0x020aabe3, 0x01a12dd9, 0x0230cfd8, 0x03ea7a73, 0x027a9449, 0x0179a209, 0x0031a1f0, 0x01e92f9f, 0x03dfce7d, 0x003fa298}}}, + {X: Field{[10]uint32{0x01004834, 0x03d4ff11, 0x014ed447, 0x01a1b321, 0x026d5443, 0x002900f5, 0x0030649b, 0x02a28ada, 0x0278be6e, 0x0013fc42}}, Y: Field{[10]uint32{0x018765d8, 0x00b4a1f9, 0x018bdb36, 0x035ca3d7, 0x01e43384, 0x0138b6c3, 0x001cf5bf, 0x001658ba, 0x00c356d5, 0x002cf2cc}}}, + {X: Field{[10]uint32{0x003d28de, 0x000d563d, 0x0344d9da, 0x0320145c, 0x01f877e8, 0x031c5164, 0x00a7c2a0, 0x01996ad8, 0x03666c90, 0x000cfd56}}, Y: Field{[10]uint32{0x015163f6, 0x0293d90b, 0x01ce08c2, 0x0150e17b, 0x02af1467, 0x024e4c68, 0x020ea80c, 0x017b562b, 0x00ab6aa9, 0x000e6612}}}, + {X: Field{[10]uint32{0x000d3e04, 0x0221eacd, 0x02636020, 0x01b56216, 0x02408da6, 0x03fcb5af, 0x037cc150, 0x00dfac62, 0x03595a72, 0x002e5c48}}, Y: Field{[10]uint32{0x0272363a, 0x01e22cef, 0x00ead817, 0x0223ea1f, 0x02dd125f, 0x031a4c51, 0x03f0ab8f, 0x0316906c, 0x03bd643a, 0x0028a0e8}}}, + {X: Field{[10]uint32{0x00a1035b, 0x0297f058, 0x00dccf0b, 0x02953661, 0x035a4204, 0x03fdcce3, 0x002c1e9f, 0x0250d7d8, 0x00676efa, 0x003483e4}}, Y: Field{[10]uint32{0x03404139, 0x02b9dee3, 0x0086f3fa, 0x01bd9915, 0x01ca1af2, 0x028c545d, 0x004406ce, 0x000fe1c9, 0x007a4520, 0x002b0e8f}}}, + {X: Field{[10]uint32{0x02f41f2d, 0x0252d4ff, 0x02ef54e2, 0x03800fb8, 0x0281d8b3, 0x001cb864, 0x00b2d0bd, 0x027c3511, 0x02a3157c, 0x000c8b5b}}, Y: Field{[10]uint32{0x012936b3, 0x0166d37e, 0x03a97ec3, 0x03dba98a, 0x026e096d, 0x0298e310, 0x02a9e676, 0x00b7799d, 0x03f19dc1, 0x0020e051}}}, + {X: Field{[10]uint32{0x020c26d5, 0x027b67be, 0x024cf8f2, 0x032e52ab, 0x011d2bfa, 0x02b802c3, 0x0164ea7b, 0x0106dadd, 0x00080683, 0x00256497}}, Y: Field{[10]uint32{0x02b92130, 0x01bdfe1d, 0x006d02b4, 0x03f2f749, 0x00edf14c, 0x0081f0bb, 0x015557b2, 0x0088cb09, 0x01b91315, 0x000318fb}}}, + {X: Field{[10]uint32{0x011f70af, 0x03b86f4f, 0x01664c06, 0x00b4f692, 0x03517a71, 0x00e64f35, 0x03fba71e, 0x00637684, 0x02b5d436, 0x001d64aa}}, Y: Field{[10]uint32{0x02eaa410, 0x0274e185, 0x01b457d7, 0x02ba5de8, 0x027a9222, 0x033ea2ac, 0x000aef1c, 0x00a1356b, 0x0077af74, 0x001553ba}}}, + {X: Field{[10]uint32{0x0209e0eb, 0x03669644, 0x03503671, 0x0129814f, 0x00806257, 0x02ce45a0, 0x031ad311, 0x02dc7e18, 0x018be13e, 0x003b674a}}, Y: Field{[10]uint32{0x0185c3cb, 0x02e86e27, 0x02b6fe54, 0x03f35403, 0x017b479e, 0x03d0361f, 0x007caa30, 0x0221b668, 0x03c0dab8, 0x0025ea6a}}}, + {X: Field{[10]uint32{0x02355fad, 0x039250be, 0x01fcb9f8, 0x028bff0e, 0x0378ae69, 0x002351a6, 0x028daf33, 0x002f0ef4, 0x0236a590, 0x00337fbd}}, Y: Field{[10]uint32{0x020db6d7, 0x02039194, 0x02d5179f, 0x0314de3c, 0x02f4f6c7, 0x024581ea, 0x02a1c255, 0x03bd3a91, 0x03cc54c0, 0x003e0ce3}}}, + {X: Field{[10]uint32{0x0149db49, 0x014b9a9e, 0x035848ca, 0x00f5a961, 0x03dbc094, 0x01b67d76, 0x03a8fc42, 0x02f5ab29, 0x03220ca3, 0x003d8e33}}, Y: Field{[10]uint32{0x01675295, 0x02478290, 0x03732f36, 0x009a7f47, 0x01653a79, 0x03565450, 0x03490039, 0x03aade42, 0x03dd8309, 0x0015a899}}}, + {X: Field{[10]uint32{0x0314bd1c, 0x01e8ac63, 0x02e1e638, 0x00eaf250, 0x037a6616, 0x018e482c, 0x0076cab1, 0x010fd40f, 0x02f29b1e, 0x0010d03f}}, Y: Field{[10]uint32{0x032210a0, 0x00af0ae0, 0x01eb6ad6, 0x00562eee, 0x0159ff2f, 0x01bdea77, 0x00908f0b, 0x034d4f1b, 0x002d6889, 0x000b569e}}}, + {X: Field{[10]uint32{0x01b80991, 0x0208bc6a, 0x01a30bf2, 0x025b1bb4, 0x001aa832, 0x03bae09b, 0x012c01fb, 0x036c4c33, 0x028005e3, 0x001e2be1}}, Y: Field{[10]uint32{0x008c3725, 0x0106bd89, 0x02a2a49d, 0x03761881, 0x01ec458c, 0x02e53e0d, 0x000d95b6, 0x033a449a, 0x023637a6, 0x000671f2}}}, + {X: Field{[10]uint32{0x01c41ef4, 0x00ab8472, 0x02d4958a, 0x01e4e2e5, 0x01720642, 0x00ecf558, 0x02831c01, 0x02fbdd52, 0x010fe6a4, 0x00361f96}}, Y: Field{[10]uint32{0x021d1dc6, 0x02d02e6f, 0x016b3e30, 0x0286d422, 0x0353b97a, 0x023b53af, 0x03ff97ff, 0x00d227c7, 0x013ac9b4, 0x000e4a2a}}}, + {X: Field{[10]uint32{0x01c54c32, 0x02a111b7, 0x00a7f630, 0x01a4656e, 0x0285ea85, 0x002e41db, 0x015cfd0a, 0x011fa505, 0x01f369c5, 0x002d6746}}, Y: Field{[10]uint32{0x02661865, 0x03fc2176, 0x00357f81, 0x01fb1129, 0x032d5082, 0x02058b17, 0x0383d552, 0x02af838a, 0x008affe7, 0x002e3d56}}}, + {X: Field{[10]uint32{0x00f3ee78, 0x00f4c318, 0x0143a6d8, 0x02f57abd, 0x03662726, 0x007050ea, 0x02a64cd8, 0x026c000e, 0x03da7cd5, 0x000d3d90}}, Y: Field{[10]uint32{0x00501ee8, 0x001111bd, 0x03b22d52, 0x0078fe91, 0x0291906c, 0x00fb968d, 0x00bd29b0, 0x03d5cd68, 0x00f291a7, 0x001055d3}}}, + {X: Field{[10]uint32{0x033dbbf3, 0x00e57588, 0x01b4ecac, 0x03d5ac17, 0x00fd007b, 0x030c725a, 0x0378757d, 0x027790cf, 0x03d0583e, 0x0015bbcd}}, Y: Field{[10]uint32{0x035c9286, 0x0052e6b7, 0x0229a92c, 0x037ee7a5, 0x02ba8cb5, 0x00ee853a, 0x02e28075, 0x0263e442, 0x001ab5c8, 0x00285038}}}, + {X: Field{[10]uint32{0x01c957d7, 0x037402bb, 0x00fc87e3, 0x01d9e115, 0x02fc54dd, 0x00e97750, 0x039ca5cb, 0x015a2c44, 0x0334815b, 0x0000790f}}, Y: Field{[10]uint32{0x02334cc8, 0x01c93ddf, 0x0302c85d, 0x03eb410c, 0x008e947a, 0x01370af7, 0x0282d9e6, 0x03b881e2, 0x0274ac96, 0x001730e0}}}, + {X: Field{[10]uint32{0x0339a952, 0x00c18bf0, 0x00eabad9, 0x020a63de, 0x01f8b06c, 0x03606df7, 0x029046d3, 0x036df366, 0x024935d2, 0x000339e7}}, Y: Field{[10]uint32{0x004f9686, 0x0282286e, 0x01dc7fff, 0x03d7f701, 0x038765c8, 0x02f0f3d6, 0x018c4943, 0x0189a96b, 0x02ee1b90, 0x003f0bdb}}}, + {X: Field{[10]uint32{0x02fe4fd9, 0x01030c61, 0x00e2c76c, 0x030d2cf7, 0x00f6766c, 0x0068033e, 0x00c3365e, 0x00b099c3, 0x0004ca86, 0x002d0512}}, Y: Field{[10]uint32{0x01b2219c, 0x016e6b54, 0x004b8717, 0x02ad78a8, 0x0029cbda, 0x00e803f5, 0x03752f00, 0x01b8028f, 0x021fca9b, 0x00390da2}}}, + {X: Field{[10]uint32{0x034fd39f, 0x00750887, 0x006a70b7, 0x007b06f1, 0x01541634, 0x03b5274e, 0x039cf65c, 0x03e09239, 0x03247406, 0x003aa8a5}}, Y: Field{[10]uint32{0x017c14a6, 0x0374a2ea, 0x01d46248, 0x033c0e28, 0x02d0d4b6, 0x01788610, 0x00d99328, 0x01730f79, 0x001be3b7, 0x001a39fe}}}, + {X: Field{[10]uint32{0x00f5b6a5, 0x00bb140c, 0x02999e7a, 0x0327d0b1, 0x02eb7371, 0x0372ff1c, 0x00c6caa3, 0x0222f0ee, 0x00ff1f72, 0x00138b44}}, Y: Field{[10]uint32{0x025a8774, 0x020803c2, 0x00f82be8, 0x03d7ad9e, 0x006ba793, 0x03905f40, 0x03515ca3, 0x013ec2a4, 0x005cdf2a, 0x001a368f}}}, + {X: Field{[10]uint32{0x030659f1, 0x02776888, 0x01adce00, 0x025115f0, 0x007d073b, 0x019f0a25, 0x00a4b45c, 0x03b258aa, 0x01e1114d, 0x0020d3c8}}, Y: Field{[10]uint32{0x01adc89c, 0x02b1fec9, 0x00a6ef78, 0x036d8c83, 0x0339263a, 0x001299f0, 0x03acb27d, 0x028280bd, 0x01b6edb5, 0x003a7e98}}}, + {X: Field{[10]uint32{0x00c7d0c7, 0x01c4e78c, 0x00381ece, 0x0367e6f7, 0x01c43cae, 0x034f5a3f, 0x03268d7c, 0x011156a5, 0x00aca0a6, 0x002a12d1}}, Y: Field{[10]uint32{0x03bf6b74, 0x02bc9642, 0x00d6da05, 0x01e4e20b, 0x03d12678, 0x02466bde, 0x03bde43f, 0x000aef4b, 0x033b74e7, 0x000be40f}}}, + {X: Field{[10]uint32{0x001d6789, 0x00d207c9, 0x02cbdd41, 0x01f2ed0c, 0x02600cbe, 0x02783e9b, 0x031df66f, 0x02e5dd1e, 0x020698bc, 0x00084867}}, Y: Field{[10]uint32{0x00954055, 0x0346249c, 0x03736aef, 0x02f8c92e, 0x022e6970, 0x02d74c99, 0x017d9688, 0x0061d2a2, 0x00d3c896, 0x001e90e2}}}, + {X: Field{[10]uint32{0x03aeafd4, 0x01ec8be6, 0x03562686, 0x01260a89, 0x017b9465, 0x013d261e, 0x034bbdbe, 0x0333da22, 0x021f93bf, 0x003e9453}}, Y: Field{[10]uint32{0x00f91b74, 0x03c95f69, 0x0330a478, 0x015b09a9, 0x012c2f61, 0x0324c382, 0x0087b518, 0x00ad2a78, 0x02155257, 0x00333520}}}, + {X: Field{[10]uint32{0x01451ffb, 0x03e80b1e, 0x01ffa4ca, 0x03d4fcbf, 0x012204d4, 0x026f630b, 0x0133a4a9, 0x0267c301, 0x03f16430, 0x002d82be}}, Y: Field{[10]uint32{0x0321294b, 0x03bbe2d2, 0x03f43886, 0x0018fbbc, 0x01d321e0, 0x01af69ba, 0x00b3bd27, 0x02649b35, 0x03901a02, 0x0003fb63}}}, + {X: Field{[10]uint32{0x03ed76cd, 0x02143a29, 0x00defc74, 0x0194e71b, 0x0017c2b7, 0x0151a53a, 0x02fcca65, 0x038d2a1b, 0x01a3196c, 0x003ca73e}}, Y: Field{[10]uint32{0x00c9c5f7, 0x0044a7e2, 0x028f6247, 0x01de6547, 0x00994b29, 0x036d6eb3, 0x03f1bf62, 0x00cf3ecd, 0x023af7c3, 0x00144c21}}}, + {X: Field{[10]uint32{0x01084e4d, 0x02e49d71, 0x014ed563, 0x0128c889, 0x01d8fe31, 0x00f88fc7, 0x03af34b0, 0x02ff1468, 0x023acb00, 0x00273678}}, Y: Field{[10]uint32{0x0298e1d5, 0x01bf1384, 0x0277d4d3, 0x0133e34a, 0x014f31bd, 0x01ecc5c1, 0x01d6c1a1, 0x029c4054, 0x035cc66e, 0x003b3c08}}}, + {X: Field{[10]uint32{0x02e5d65c, 0x00edbd7d, 0x025bff3d, 0x0246acac, 0x0218ed66, 0x0395a8a0, 0x02d99a6b, 0x00122be5, 0x01b02cfa, 0x0015be22}}, Y: Field{[10]uint32{0x001fe4bc, 0x03a81ec9, 0x00d921b7, 0x00a7a832, 0x01bb8ecc, 0x03723f28, 0x034f8248, 0x01cabfd9, 0x00ea4a23, 0x000d4ac8}}}, + {X: Field{[10]uint32{0x01ff2a08, 0x024daad7, 0x03dea16c, 0x039491af, 0x028e2366, 0x00f7bd55, 0x0169a7dd, 0x0363f05b, 0x02b7f8fa, 0x00378caf}}, Y: Field{[10]uint32{0x009e145f, 0x00013509, 0x01acba7c, 0x0332c378, 0x03eaa216, 0x038997ea, 0x002bd06f, 0x0070891b, 0x011c93a7, 0x0035cc7c}}}, + {X: Field{[10]uint32{0x026ba256, 0x0222578a, 0x02693096, 0x00ebe612, 0x037d12dc, 0x03beab36, 0x03dfa58f, 0x00a76300, 0x01c1dc17, 0x00217b1f}}, Y: Field{[10]uint32{0x024a747c, 0x02c2d166, 0x0041b194, 0x03cae86a, 0x0189e4b9, 0x03ee8c77, 0x00c73b5a, 0x02af2fe6, 0x00af8e9a, 0x00148c0e}}}, + {X: Field{[10]uint32{0x01e2e141, 0x02972bd0, 0x014abe23, 0x0038ac9b, 0x02e22328, 0x00b6e2fd, 0x03f5efe4, 0x023b07b5, 0x01956052, 0x003de522}}, Y: Field{[10]uint32{0x00c6ff98, 0x03f2dee0, 0x012fcdd6, 0x01585b37, 0x0258871e, 0x02a35b67, 0x0037e9fd, 0x007e621a, 0x00e296ed, 0x0027dd65}}}, + {X: Field{[10]uint32{0x03454f10, 0x0267383c, 0x00137621, 0x00eb88a3, 0x02866bd5, 0x0006a4ef, 0x036e8eef, 0x022094f5, 0x03d3b420, 0x0016235b}}, Y: Field{[10]uint32{0x002af573, 0x008a92ed, 0x02d2c6d9, 0x0206b437, 0x0206320b, 0x00c6df8c, 0x03f29ade, 0x00822ee8, 0x02533e41, 0x00297f25}}}, + {X: Field{[10]uint32{0x00cc7443, 0x0108f787, 0x0259c0bf, 0x0253a0d1, 0x03b01db2, 0x025d9dde, 0x0387d4e8, 0x03229d5b, 0x008dbbe5, 0x00061bf8}}, Y: Field{[10]uint32{0x03dfbdc0, 0x01be67a6, 0x01bdca25, 0x009a9912, 0x0229f12e, 0x00d7f432, 0x037a93a4, 0x01e080d0, 0x0139a46f, 0x0036677b}}}, + {X: Field{[10]uint32{0x01bd3d25, 0x01b57796, 0x036bb5a0, 0x02600bd5, 0x022af22e, 0x03b84ccd, 0x03eac38c, 0x02afcced, 0x03083055, 0x00395272}}, Y: Field{[10]uint32{0x01332381, 0x000c971f, 0x005fd4fe, 0x0390d2a5, 0x015ababd, 0x03f0d6b9, 0x001c7f7a, 0x00520d99, 0x0320e7b5, 0x00337cdf}}}, + {X: Field{[10]uint32{0x0224422b, 0x024ce240, 0x006e18ac, 0x01e7d4ea, 0x00b930df, 0x03fa12d6, 0x006108fc, 0x01456172, 0x02fbfd7f, 0x0029390a}}, Y: Field{[10]uint32{0x00ce1e30, 0x011e5800, 0x03e2f1ea, 0x0072efa8, 0x00541e55, 0x024575eb, 0x00d6177f, 0x00c40ad6, 0x021b0396, 0x0003a7e3}}}, + {X: Field{[10]uint32{0x0003dadb, 0x03bf72b6, 0x03d4ed09, 0x02a5c667, 0x004755fb, 0x01dd43e9, 0x009e9cfb, 0x00bd09ac, 0x00444202, 0x0017dfb6}}, Y: Field{[10]uint32{0x0376ffad, 0x0386f74a, 0x01addccb, 0x030e6ff3, 0x00e852d9, 0x02425bc7, 0x01592fcc, 0x023ac272, 0x01edd06a, 0x00024757}}}, + {X: Field{[10]uint32{0x02938d66, 0x038603b0, 0x038f1868, 0x03e42be8, 0x0191dcf7, 0x03d9ef45, 0x033fa223, 0x0193842c, 0x034332f0, 0x000feb11}}, Y: Field{[10]uint32{0x02aabe5c, 0x00f69878, 0x019206f9, 0x003e7a99, 0x03eebf27, 0x0045cc2e, 0x006d10ab, 0x00de64ce, 0x02676b20, 0x00115d13}}}, + {X: Field{[10]uint32{0x037a7aa9, 0x0192f7fe, 0x006b190e, 0x003da863, 0x00d4b10e, 0x01f639e1, 0x00d13df9, 0x034850b9, 0x03fff058, 0x0017ee60}}, Y: Field{[10]uint32{0x01dabd6f, 0x003c69a3, 0x018e8346, 0x020629b5, 0x00ec5811, 0x025ccf5d, 0x0373f73a, 0x0103343a, 0x02018dc5, 0x000cce51}}}, + {X: Field{[10]uint32{0x0341f88a, 0x003d79b7, 0x020e043e, 0x0078674f, 0x009c6e94, 0x02c20d99, 0x015eec1a, 0x00e68b6c, 0x01c30fa9, 0x0002ebcd}}, Y: Field{[10]uint32{0x028e9201, 0x004234bd, 0x01966214, 0x011553fb, 0x019de414, 0x00ee2c1a, 0x02bdc3fe, 0x0286f13b, 0x00d3e53f, 0x0010960f}}}, + {X: Field{[10]uint32{0x009a8602, 0x00128160, 0x01f9a0c7, 0x0366b36e, 0x004266c4, 0x00fecf58, 0x0186183a, 0x01ffc3c7, 0x035aa51e, 0x0025d907}}, Y: Field{[10]uint32{0x019517dd, 0x034ca1eb, 0x0239b5b0, 0x03f51676, 0x031ab169, 0x0073e9e3, 0x0182fc90, 0x02f6fb63, 0x0232aa9f, 0x0004d3fe}}}, + {X: Field{[10]uint32{0x0327292e, 0x031ad549, 0x02a5ee23, 0x03286a1d, 0x03f59feb, 0x02f8170d, 0x01aa8fb4, 0x03db716b, 0x011eacda, 0x0025a8dc}}, Y: Field{[10]uint32{0x01da4392, 0x03b34fe9, 0x00e96b82, 0x008d5840, 0x0134be91, 0x01eb5760, 0x01fce0e6, 0x02eded78, 0x03b9681e, 0x0023ec33}}}, + {X: Field{[10]uint32{0x03154b0a, 0x02ab7bd3, 0x01e2a14f, 0x02c0fa75, 0x029f9f16, 0x004d8c82, 0x01388926, 0x0031b4a3, 0x028b8e54, 0x002b9910}}, Y: Field{[10]uint32{0x00118aeb, 0x01e524ff, 0x002e4d5b, 0x03b5bf9b, 0x03cc68ad, 0x003fd679, 0x02d5193b, 0x01cf36e7, 0x025eb9bf, 0x0036c80b}}}, + {X: Field{[10]uint32{0x00c984fb, 0x00a41d5b, 0x0038d422, 0x03feea1d, 0x03e16424, 0x016d210c, 0x03532cf1, 0x030b0452, 0x02df65c0, 0x000b164c}}, Y: Field{[10]uint32{0x03d29130, 0x028b0931, 0x01e47f59, 0x00a0b3ac, 0x011c6436, 0x022e7fd3, 0x015deec3, 0x02815b4e, 0x00c4b908, 0x000587be}}}, + {X: Field{[10]uint32{0x02ecca3e, 0x0123d55e, 0x02071f9c, 0x0276f1a4, 0x02241538, 0x03aff2ff, 0x0252d563, 0x02e9a460, 0x00786937, 0x001db887}}, Y: Field{[10]uint32{0x0133c8e6, 0x0293bf51, 0x02a77a3f, 0x00a235c6, 0x01ca634d, 0x024c27fa, 0x0361d0d4, 0x01f5878e, 0x02fe9db4, 0x00379de1}}}, + {X: Field{[10]uint32{0x0267900f, 0x01c2016c, 0x00a36eaa, 0x018ff259, 0x02099df3, 0x02bf1a91, 0x020b3466, 0x004e3474, 0x00efca8a, 0x001c5c37}}, Y: Field{[10]uint32{0x00c0bb8d, 0x00db5776, 0x0320303b, 0x039188fe, 0x00440562, 0x021c3e3e, 0x0389f7bf, 0x00515663, 0x0139476f, 0x00065aff}}}, + {X: Field{[10]uint32{0x011b6ccd, 0x001f16da, 0x036f2e69, 0x018b8d60, 0x0361a956, 0x0347a27d, 0x01fb466e, 0x034916a8, 0x02b075bd, 0x00263b77}}, Y: Field{[10]uint32{0x030c91be, 0x02a107d5, 0x02814731, 0x0266aca5, 0x00bdbcdc, 0x00228e8b, 0x002ddc21, 0x0092e327, 0x01f6b591, 0x002bcfed}}}, + {X: Field{[10]uint32{0x028e8849, 0x03db6a2e, 0x00e6768b, 0x01383ea6, 0x018dd1c3, 0x0160de70, 0x0236fc5c, 0x0181be97, 0x000659ae, 0x002fd0be}}, Y: Field{[10]uint32{0x0155b8af, 0x039a3e1d, 0x0298f26b, 0x0344873b, 0x00ca74a0, 0x01aeba31, 0x03495782, 0x036e511b, 0x03706e4a, 0x0034d0fe}}}, + {X: Field{[10]uint32{0x0262e1cd, 0x037e5551, 0x038a0d82, 0x0170230c, 0x02c42fd6, 0x018927f0, 0x0075c365, 0x023718a4, 0x00a5891e, 0x00103071}}, Y: Field{[10]uint32{0x00689ec3, 0x02843a73, 0x0303ae5a, 0x009ce815, 0x03f20253, 0x02f304ac, 0x015d8192, 0x03db0dc6, 0x03d0e68e, 0x00199c88}}}, + {X: Field{[10]uint32{0x03883dc1, 0x0044cfa3, 0x03c92b92, 0x00f1524b, 0x03bfd3ef, 0x02828b5b, 0x004cf1b1, 0x00ff920e, 0x03100c8e, 0x00058b74}}, Y: Field{[10]uint32{0x01b5cff0, 0x00f23803, 0x00e21a65, 0x013a1ba8, 0x003d0ebf, 0x03d24387, 0x0197685c, 0x000ae7dc, 0x01d5c82f, 0x0007c8c4}}}, + {X: Field{[10]uint32{0x006331cb, 0x031f9033, 0x03b3dbdf, 0x03f5455e, 0x005d63c4, 0x00227b16, 0x03302e51, 0x02b8f3cf, 0x014689ea, 0x003fc3e0}}, Y: Field{[10]uint32{0x0151bf2e, 0x02d591c1, 0x00c2dac2, 0x037d68ec, 0x02f8814c, 0x01e3476a, 0x02549737, 0x00a78eeb, 0x01b94eb5, 0x0013707f}}}, + {X: Field{[10]uint32{0x0207b78e, 0x028e45d1, 0x02033c3e, 0x010553d2, 0x0314b3e6, 0x0131b66a, 0x0072b224, 0x02d55cbd, 0x0274b011, 0x00050eb9}}, Y: Field{[10]uint32{0x0201c35c, 0x032d084d, 0x0099fdb9, 0x022b8667, 0x03ca2029, 0x0280f7f5, 0x018820c0, 0x03ee8980, 0x01820fae, 0x00054a35}}}, + {X: Field{[10]uint32{0x019009a3, 0x01ec05e3, 0x006f35e1, 0x003b35ae, 0x004115a8, 0x00a5d366, 0x03a0efd3, 0x03517e5b, 0x02288fff, 0x003ceb73}}, Y: Field{[10]uint32{0x0116a20e, 0x001996d2, 0x00ba72d2, 0x0293aaf5, 0x03805580, 0x0252961a, 0x020915e4, 0x026ec1a6, 0x03009632, 0x0008080b}}}, + {X: Field{[10]uint32{0x00d8cccf, 0x001d5631, 0x032f85ad, 0x008bd13e, 0x034904ad, 0x02930891, 0x00e6bc6f, 0x003438b2, 0x0029e273, 0x003489c2}}, Y: Field{[10]uint32{0x0079a3bc, 0x000bd7a2, 0x03a93c63, 0x01eab819, 0x0227c66c, 0x0098b904, 0x009741df, 0x03d9a566, 0x00ac9d5b, 0x003569ad}}}, + {X: Field{[10]uint32{0x012964a6, 0x032b7d0d, 0x0356756e, 0x02299727, 0x01834753, 0x00aecbcf, 0x0057a948, 0x03caa117, 0x02b67d9b, 0x0009b45f}}, Y: Field{[10]uint32{0x02068fb2, 0x01c67078, 0x01c6b7f7, 0x006bf348, 0x00b8703d, 0x02926a9c, 0x03c4a520, 0x030d16f3, 0x03d47d67, 0x002552bc}}}, + {X: Field{[10]uint32{0x03fac74b, 0x01a3c879, 0x024760bf, 0x0264c4d1, 0x0036a52d, 0x017b9f44, 0x011618ce, 0x03226573, 0x038be104, 0x003910df}}, Y: Field{[10]uint32{0x0195cb81, 0x01c36e36, 0x0356e27b, 0x02f6e071, 0x00f9b015, 0x02d5bf23, 0x0020dbe3, 0x01b9b06a, 0x02d5b825, 0x0035b055}}}, + {X: Field{[10]uint32{0x02d3c1d4, 0x011d3be8, 0x02c70851, 0x00700347, 0x01ac5bb5, 0x026d68e7, 0x02b63ed2, 0x0181e598, 0x004e96db, 0x00224cb8}}, Y: Field{[10]uint32{0x03e58541, 0x021d511d, 0x0336ec05, 0x00368ef4, 0x01fc912a, 0x030d5472, 0x03f51668, 0x00897414, 0x037fe030, 0x00150df9}}}, + {X: Field{[10]uint32{0x02617b26, 0x020945c5, 0x01fd0c7c, 0x0390171b, 0x00933ed0, 0x01b20507, 0x02003c73, 0x021b016c, 0x0176465b, 0x003f9dda}}, Y: Field{[10]uint32{0x012aac39, 0x039b6731, 0x002aa472, 0x00f89544, 0x0094364d, 0x01677754, 0x002b0af3, 0x03541b4c, 0x005fd576, 0x002c9e77}}}, + {X: Field{[10]uint32{0x035b45f1, 0x03f24714, 0x0372cb86, 0x00f29ae7, 0x01f69eb7, 0x018ce05f, 0x004ecbe1, 0x02489172, 0x00ffb2a2, 0x001b1829}}, Y: Field{[10]uint32{0x022a0a2c, 0x01734a4a, 0x022231b5, 0x00af48f5, 0x036489af, 0x03e71e14, 0x0301a510, 0x033071c0, 0x026f814b, 0x0009e37b}}}, + {X: Field{[10]uint32{0x009af04d, 0x00791ce7, 0x02a81e12, 0x02d1ba70, 0x03a955be, 0x0327a185, 0x01556c5e, 0x0240aa63, 0x018f625f, 0x000c4cb9}}, Y: Field{[10]uint32{0x01a9e461, 0x02361a51, 0x01006943, 0x01f25171, 0x01cf0a95, 0x011a4131, 0x01b92204, 0x00f17853, 0x0164a244, 0x00296202}}}, + {X: Field{[10]uint32{0x00903f6f, 0x01404b8d, 0x022dc57e, 0x002a77a0, 0x03640e18, 0x0234e161, 0x01003fdc, 0x026fdbae, 0x0236361a, 0x002c173b}}, Y: Field{[10]uint32{0x005c9a5a, 0x0363a095, 0x018c5305, 0x0288c35e, 0x0126fe21, 0x01897617, 0x005ce16d, 0x0268a2dd, 0x00862951, 0x003ed1ce}}}, + {X: Field{[10]uint32{0x02005e83, 0x0017c584, 0x0273903a, 0x01b2af61, 0x0023cd2f, 0x00eab5f3, 0x014e68de, 0x039601e8, 0x020f5659, 0x00388084}}, Y: Field{[10]uint32{0x03ada136, 0x02755783, 0x01544084, 0x02b1f020, 0x02a70e8f, 0x0017eebc, 0x037cb4dc, 0x03e64b64, 0x0305b66a, 0x001264a2}}}, + {X: Field{[10]uint32{0x007a796b, 0x02618cc3, 0x034592f1, 0x0336316c, 0x039a9bf0, 0x01418532, 0x03e68f04, 0x002782c1, 0x01892e54, 0x0015ea47}}, Y: Field{[10]uint32{0x0098e7fc, 0x0307a7e1, 0x0116bbd5, 0x001b1763, 0x021dbf77, 0x0092c464, 0x02612c31, 0x023ea2ea, 0x00ce5901, 0x0011e417}}}, + {X: Field{[10]uint32{0x01a7e8da, 0x014ed929, 0x00ee1dd1, 0x02359d0a, 0x0291c046, 0x00997777, 0x019e7c58, 0x01970835, 0x000a3ba4, 0x003824b1}}, Y: Field{[10]uint32{0x03ffd39b, 0x009bdc56, 0x03042feb, 0x00444d3a, 0x03baa514, 0x00ec25fd, 0x00ab1d31, 0x010920b5, 0x02b4bdfc, 0x0020fd38}}}, + {X: Field{[10]uint32{0x01e0ab38, 0x02980247, 0x02554f78, 0x013fd691, 0x037c1ee8, 0x00cd74f7, 0x001a9c2c, 0x013f1282, 0x006e7baa, 0x001ce8cc}}, Y: Field{[10]uint32{0x01a1f938, 0x03a24f7b, 0x022350bc, 0x0210ebc2, 0x023d93f6, 0x01548646, 0x03a70439, 0x030c9b8d, 0x00f92022, 0x0007da32}}}, + {X: Field{[10]uint32{0x033a4434, 0x03aaef97, 0x0093a6a6, 0x03168e79, 0x03e99883, 0x02850076, 0x0152caf4, 0x012585cd, 0x01f86e90, 0x001f1e9e}}, Y: Field{[10]uint32{0x02e869bb, 0x005fe389, 0x0355415e, 0x0204b0a4, 0x00a26709, 0x002d65b3, 0x008ce8ac, 0x00e4c65b, 0x0252e488, 0x002173ac}}}, + {X: Field{[10]uint32{0x00a37788, 0x028711e1, 0x03918623, 0x021bb6a4, 0x0319f030, 0x0144d95f, 0x03054fae, 0x03ddcacd, 0x0161ce4f, 0x001aa77d}}, Y: Field{[10]uint32{0x01b65280, 0x016d88ff, 0x02db42b2, 0x019c41ba, 0x01fe7198, 0x019847fb, 0x01ba398a, 0x02fd60cc, 0x034ad9b3, 0x002f3c09}}}, + {X: Field{[10]uint32{0x0391c950, 0x02314eff, 0x019eef3f, 0x02d6fc8a, 0x0381934c, 0x034b1abf, 0x0145d2da, 0x02b7fc71, 0x024d47b3, 0x003f9eec}}, Y: Field{[10]uint32{0x02574e7f, 0x03971022, 0x00c5befd, 0x022c12bc, 0x03a88173, 0x0028a4b3, 0x00c27d6f, 0x0188f24c, 0x038609d2, 0x001ff997}}}, + {X: Field{[10]uint32{0x00407d3d, 0x010a41cc, 0x014531da, 0x0192ba05, 0x0382ce2b, 0x01f414d1, 0x00ba60e1, 0x02ddf0a4, 0x02f27944, 0x0009b474}}, Y: Field{[10]uint32{0x00f0f495, 0x00156d2d, 0x0206f4d1, 0x034756a8, 0x0051b768, 0x00d604e1, 0x00b23725, 0x00002c34, 0x00243106, 0x003b0f14}}}, + {X: Field{[10]uint32{0x0273e2b8, 0x03025b63, 0x008060e6, 0x01363c0d, 0x03fb85cf, 0x03a91378, 0x00563ff8, 0x0055cd2b, 0x01f938f9, 0x003c0394}}, Y: Field{[10]uint32{0x022c727b, 0x0259dc68, 0x00c703c5, 0x007484e0, 0x02585408, 0x03f62382, 0x02b6a136, 0x0292474e, 0x03ed3a39, 0x001edeff}}}, + {X: Field{[10]uint32{0x03cfc4d8, 0x004789cd, 0x03b309e0, 0x034538f8, 0x008bd179, 0x01352f2a, 0x02be811a, 0x021d424e, 0x0072f42f, 0x001cf855}}, Y: Field{[10]uint32{0x005b9231, 0x0341827e, 0x01a340b5, 0x01ae12f3, 0x01c53c82, 0x02c02d2a, 0x006426c9, 0x005da044, 0x00ae5832, 0x000e4bbd}}}, + {X: Field{[10]uint32{0x01568092, 0x02bd582a, 0x00333a7f, 0x0123b6be, 0x00d29d23, 0x01e77e39, 0x011d86e4, 0x00119321, 0x03a9aff3, 0x003b5199}}, Y: Field{[10]uint32{0x0149bb0c, 0x0371f98f, 0x002e43da, 0x03699e62, 0x006d9f4f, 0x03fd5df8, 0x01a9ab50, 0x0350b51a, 0x00756892, 0x001dcd9e}}}, + {X: Field{[10]uint32{0x001dde26, 0x02c3bc95, 0x00d74af5, 0x00b1e40d, 0x0351066f, 0x0136ff83, 0x00346a26, 0x0072f773, 0x02ab1081, 0x0035bb05}}, Y: Field{[10]uint32{0x02d0527e, 0x015fa792, 0x0315ef48, 0x0079286d, 0x034763b0, 0x0302e26f, 0x011b7336, 0x02f88a6a, 0x00ab7ac7, 0x002607c7}}}, + {X: Field{[10]uint32{0x034c593f, 0x0292d4ea, 0x008e68dc, 0x03caf47d, 0x033f762e, 0x03b96dc5, 0x001d92d2, 0x00c6b209, 0x007e6919, 0x000a13bd}}, Y: Field{[10]uint32{0x03cf5e82, 0x03150546, 0x013e1c7a, 0x00b8efeb, 0x03b53a4d, 0x03ff86da, 0x03e12887, 0x02f91c20, 0x02e1e6a7, 0x002adce7}}}, + {X: Field{[10]uint32{0x00d505c3, 0x030fe1c2, 0x034f6c6c, 0x02f20d5d, 0x0344b490, 0x0124063b, 0x03ba53ac, 0x01f42bf0, 0x01e75a26, 0x00014c3e}}, Y: Field{[10]uint32{0x0285e3f1, 0x02cef0d3, 0x028d36e2, 0x01c12e22, 0x00bee9fa, 0x03dff7b5, 0x02d7fba8, 0x03a72f3d, 0x001e44e5, 0x0018c312}}}, + {X: Field{[10]uint32{0x02a905f8, 0x0135673a, 0x022bc1ba, 0x0080f126, 0x02ef9c4d, 0x000974b6, 0x037a4b38, 0x00596d9c, 0x00fd81d0, 0x0019aa6d}}, Y: Field{[10]uint32{0x02525e8c, 0x01ec7353, 0x015f121b, 0x032895e5, 0x0112c86b, 0x02574c14, 0x017311c1, 0x03ab65f7, 0x004e6a4d, 0x0009dc31}}}, + {X: Field{[10]uint32{0x03a289be, 0x02484d48, 0x0394f601, 0x02625b76, 0x0139bb78, 0x011d3789, 0x018d7397, 0x01ed926c, 0x027edca4, 0x0009604b}}, Y: Field{[10]uint32{0x0317e2da, 0x031884db, 0x00e5c795, 0x02e2d634, 0x00788d3a, 0x0232e191, 0x0276f7f1, 0x029db9ae, 0x0183072a, 0x0012ee8f}}}, + {X: Field{[10]uint32{0x03b29608, 0x032e9df7, 0x00fd724a, 0x0228d5db, 0x02df1a0e, 0x03efd61f, 0x00f88b58, 0x0091205c, 0x0270af16, 0x000f206f}}, Y: Field{[10]uint32{0x02ee13d4, 0x0357fd0a, 0x0070027b, 0x03eb837a, 0x02ed9dc9, 0x0040ba6e, 0x00b52507, 0x03d201e8, 0x008eda59, 0x002ac5b9}}}, + {X: Field{[10]uint32{0x00d6e39d, 0x0093ddb8, 0x035252fb, 0x02421715, 0x0039626e, 0x0096ab6a, 0x0282c8d1, 0x00a4cfb3, 0x01cda514, 0x002ad89b}}, Y: Field{[10]uint32{0x024abff6, 0x03b7005d, 0x033cfe7e, 0x00f436ad, 0x02bb7be7, 0x0363aff0, 0x031f2a34, 0x012c6f55, 0x034b34fa, 0x0022b75d}}}, + {X: Field{[10]uint32{0x036bd85d, 0x033f82fc, 0x0133de1c, 0x015e638e, 0x03aaaaed, 0x028f8a1c, 0x02d65321, 0x0083fe32, 0x01061207, 0x0011fc94}}, Y: Field{[10]uint32{0x00585b60, 0x02c5be48, 0x03c60c38, 0x004fb342, 0x00cb44e0, 0x025960eb, 0x0374ea3f, 0x004b93b2, 0x032e7295, 0x0003db51}}}, + {X: Field{[10]uint32{0x03c26b1b, 0x0122e7c8, 0x00842361, 0x0099d4b4, 0x00e16409, 0x01c6e2ec, 0x0138d590, 0x023c6cf1, 0x0299f739, 0x001bf4c0}}, Y: Field{[10]uint32{0x026799da, 0x03816eee, 0x03d33372, 0x03c09dfc, 0x017810be, 0x017227fd, 0x02e9c4dc, 0x0388d468, 0x0166a79c, 0x000ee358}}}, + {X: Field{[10]uint32{0x0202e040, 0x026f5992, 0x031e3f44, 0x021f75e1, 0x0149db12, 0x01712827, 0x0051ab74, 0x00735963, 0x007c784e, 0x0003756c}}, Y: Field{[10]uint32{0x028d8659, 0x00c41e35, 0x03857a47, 0x01f36283, 0x036a0459, 0x003fbb66, 0x00ed2a7c, 0x0246e373, 0x018a62a4, 0x002c9b6b}}}, + {X: Field{[10]uint32{0x027fcdad, 0x00ab7c85, 0x016b7dff, 0x0229c02d, 0x0215b61a, 0x01ae12f2, 0x0275e5f1, 0x01089ea8, 0x0036104b, 0x0000f3d6}}, Y: Field{[10]uint32{0x0200c9fb, 0x012792b3, 0x03b5ce9e, 0x0098b6d0, 0x01445af7, 0x02006372, 0x00123408, 0x01e7f7da, 0x025a2cb5, 0x000731bd}}}, + {X: Field{[10]uint32{0x0119bb58, 0x0074a352, 0x03f413e0, 0x01348e15, 0x01d4cd80, 0x01d3010f, 0x02ea163d, 0x0108730e, 0x005508b9, 0x001a0ed5}}, Y: Field{[10]uint32{0x01a11f0a, 0x03f76f9e, 0x022da17c, 0x01a41540, 0x01691e23, 0x004473fb, 0x01d69438, 0x03015a2b, 0x01762cd5, 0x0006ef91}}}, + {X: Field{[10]uint32{0x003b724c, 0x000c9e79, 0x027d2195, 0x03835cf3, 0x03e83ff0, 0x0080ab94, 0x002f7ec4, 0x0103717d, 0x01b7897a, 0x0035e198}}, Y: Field{[10]uint32{0x02d20b21, 0x00aca772, 0x00a02665, 0x03fb43b1, 0x00aeead2, 0x00757ca4, 0x03db82a6, 0x01e3b3f0, 0x01b0e3f4, 0x001194a6}}}, + {X: Field{[10]uint32{0x01e15a21, 0x02954186, 0x0114a1af, 0x01f543b0, 0x0332e89e, 0x013bafc6, 0x00dbb87b, 0x039e5399, 0x0264fc15, 0x00049631}}, Y: Field{[10]uint32{0x001be0b1, 0x00148685, 0x0157194b, 0x025eef08, 0x03028c59, 0x00a83971, 0x011a7dec, 0x00e201c3, 0x029281a7, 0x000c9f12}}}, + {X: Field{[10]uint32{0x02e8be00, 0x033589e1, 0x03bb1a6c, 0x03492fdf, 0x01387f4d, 0x039cc531, 0x0243cdfa, 0x038af71b, 0x03b51cff, 0x003cb413}}, Y: Field{[10]uint32{0x03061c9e, 0x0142a309, 0x02b37932, 0x036b09f3, 0x0178d3a7, 0x021a8ab8, 0x032ee47a, 0x00854a34, 0x038d435f, 0x00226bcf}}}, + {X: Field{[10]uint32{0x030dfb08, 0x0152078f, 0x01f6bb33, 0x02864aa7, 0x03d21551, 0x03bc020e, 0x02cc402d, 0x00eb6394, 0x02c14ab2, 0x002d9eef}}, Y: Field{[10]uint32{0x00a64a23, 0x02cc3e04, 0x01fe6698, 0x004ffb80, 0x003757cc, 0x01961d55, 0x02845285, 0x02264c14, 0x03d19383, 0x0035b29a}}}, + {X: Field{[10]uint32{0x0379235e, 0x0120c48a, 0x0089d90d, 0x02120ea1, 0x008a4665, 0x00b5986e, 0x013ce90f, 0x007f5a81, 0x01b9fa40, 0x0006ebbc}}, Y: Field{[10]uint32{0x031699d7, 0x01492528, 0x01ee8033, 0x031b02d9, 0x01bc1a69, 0x02e9562b, 0x02b3872c, 0x0205f648, 0x0214a2f7, 0x000a2866}}}, + {X: Field{[10]uint32{0x0051aa8e, 0x0043fc6e, 0x03c79c3c, 0x01b394a1, 0x01f58de5, 0x0006eaa1, 0x036a7468, 0x00e922ca, 0x026b2362, 0x001b03c1}}, Y: Field{[10]uint32{0x01ff0868, 0x036ee4c5, 0x033574cc, 0x01e48167, 0x032347a4, 0x007218c9, 0x028bd94e, 0x02c3e394, 0x0256084c, 0x003b20dc}}}, + {X: Field{[10]uint32{0x023619d7, 0x004f767d, 0x01c0d949, 0x035862de, 0x00a0c815, 0x02baf3ca, 0x026d6cb7, 0x02748afa, 0x030965bb, 0x003ef56e}}, Y: Field{[10]uint32{0x0300b924, 0x00b7f28f, 0x01c7e661, 0x018cde8a, 0x0060ccc0, 0x0083cfdb, 0x0298f77e, 0x01796ff8, 0x034d5e60, 0x000cc0d5}}}, + {X: Field{[10]uint32{0x035b1739, 0x01a3e82c, 0x008fe7e5, 0x03ca36b6, 0x020f8bd5, 0x0041af46, 0x02c81ac8, 0x008cd2bd, 0x002ac4b2, 0x00089181}}, Y: Field{[10]uint32{0x02ff6e7c, 0x02af1c16, 0x00f797cd, 0x0208d169, 0x029e5382, 0x007e4b8d, 0x0229bd96, 0x0045bc33, 0x00eb9c10, 0x00076836}}}, + {X: Field{[10]uint32{0x0182bc4a, 0x00b67cd0, 0x00c51563, 0x01b7f4a5, 0x039606cf, 0x010b3d42, 0x01b3caf5, 0x00b4de0d, 0x014f2fff, 0x0011c2a4}}, Y: Field{[10]uint32{0x001d426e, 0x01619800, 0x012dbb3a, 0x001a0738, 0x034398c6, 0x0271aa3a, 0x03e3cc9e, 0x01215a96, 0x01a8d2c7, 0x001ace01}}}, + {X: Field{[10]uint32{0x021b4be0, 0x0009ec0c, 0x00c1ecc8, 0x004540c0, 0x0044bb7a, 0x00fe4274, 0x002153ba, 0x0364cd0a, 0x010bffb6, 0x001380fd}}, Y: Field{[10]uint32{0x008c504c, 0x03db96ac, 0x003e0095, 0x00940c7a, 0x009149b1, 0x0137a32f, 0x03e8f9cb, 0x01c7b3c7, 0x00ae963e, 0x00165b16}}}, + {X: Field{[10]uint32{0x0057455e, 0x02649e3f, 0x003b70d9, 0x02d02860, 0x00188a26, 0x00e7778a, 0x01567e91, 0x02edd864, 0x03eab806, 0x00169b13}}, Y: Field{[10]uint32{0x02e6ce49, 0x0269f5e0, 0x014590d5, 0x0310bd54, 0x03353d73, 0x01c6397d, 0x00ea476a, 0x00d9af0a, 0x007c6505, 0x001ba074}}}, + {X: Field{[10]uint32{0x0329bd5f, 0x01b70de6, 0x016c3a24, 0x027406f9, 0x0174f4e0, 0x03d8f753, 0x000bb1be, 0x014b884a, 0x01b29adf, 0x003b5cf2}}, Y: Field{[10]uint32{0x0113828b, 0x0321ecfe, 0x0216159d, 0x027cb7d8, 0x02e272ad, 0x0312df14, 0x011fa5b7, 0x0382b31f, 0x03b619eb, 0x0003a645}}}, + {X: Field{[10]uint32{0x001c04bd, 0x024eda70, 0x03a99bdf, 0x01308e1b, 0x03710dd3, 0x000f284f, 0x03106085, 0x03e7b52b, 0x005b38cb, 0x001a3185}}, Y: Field{[10]uint32{0x03edc73a, 0x0235f28f, 0x01e9de92, 0x0348b830, 0x02e7cb74, 0x03d4d6a7, 0x016f884d, 0x027ab140, 0x005e607d, 0x003258d6}}}, + {X: Field{[10]uint32{0x00454126, 0x00e69dec, 0x039b6a84, 0x00481661, 0x0092269a, 0x03d72473, 0x006094c3, 0x005ef077, 0x00639273, 0x0006d946}}, Y: Field{[10]uint32{0x00f5009f, 0x0077007a, 0x03cf9137, 0x00579c51, 0x03c42b19, 0x030c6fc4, 0x001fe920, 0x03426f63, 0x025f8ac3, 0x000c7184}}}, + {X: Field{[10]uint32{0x0209c52c, 0x019b539a, 0x01f0d381, 0x00824283, 0x027229ff, 0x00edc177, 0x02b74f7a, 0x0378f515, 0x00ccdadb, 0x0011564f}}, Y: Field{[10]uint32{0x000bd737, 0x0293aa6f, 0x01866a43, 0x03748361, 0x01e14634, 0x03ba5933, 0x02b9a311, 0x000814f0, 0x017d89fd, 0x0004f599}}}, + {X: Field{[10]uint32{0x03927da5, 0x034fad0d, 0x03960566, 0x0069339d, 0x01e4dd7c, 0x00a30842, 0x0132983d, 0x03e8bf35, 0x006ed6f2, 0x00050270}}, Y: Field{[10]uint32{0x020984e4, 0x0372b451, 0x0062390e, 0x00114def, 0x02fbeda3, 0x01a52dc7, 0x0369836e, 0x03f6eb8e, 0x018d4206, 0x0037017e}}}, + {X: Field{[10]uint32{0x005f4580, 0x03c0373a, 0x037074e2, 0x03213adc, 0x025d6e5c, 0x0109bfaf, 0x03239215, 0x02c15b50, 0x006bc307, 0x00367823}}, Y: Field{[10]uint32{0x012c632d, 0x01692d8a, 0x034f915d, 0x03908060, 0x01172f4d, 0x028c9817, 0x02b52add, 0x01e90e8e, 0x0247c6b4, 0x00288f05}}}, + {X: Field{[10]uint32{0x0162fb32, 0x00576eaf, 0x028ee1aa, 0x022eef57, 0x025ac0f1, 0x01357e89, 0x033a9166, 0x02dadcd4, 0x01f3d3c2, 0x001f7cc6}}, Y: Field{[10]uint32{0x03c9f8c0, 0x036d634a, 0x030b79c3, 0x026ea46b, 0x00a9bd16, 0x00778205, 0x02d8d963, 0x02ee6075, 0x02afe023, 0x0024483d}}}, + {X: Field{[10]uint32{0x0186d7a5, 0x01cd115a, 0x037110a3, 0x01126eb4, 0x0011d742, 0x008595e6, 0x0146232e, 0x03f47e4c, 0x018738b9, 0x0006a539}}, Y: Field{[10]uint32{0x03e4352e, 0x00810a2a, 0x0365a748, 0x0126b619, 0x020fc325, 0x025fcb6c, 0x034604b1, 0x039eb83e, 0x03b317ee, 0x000cca89}}}, + {X: Field{[10]uint32{0x03619a47, 0x01e07e46, 0x03691fa0, 0x0106257f, 0x014aefff, 0x03033e1c, 0x002ef8df, 0x019b6caa, 0x034d6db2, 0x0037e8b2}}, Y: Field{[10]uint32{0x01ad8b19, 0x033f9312, 0x0056e45a, 0x03ddba9c, 0x01d2a1a0, 0x032e98be, 0x0320fef4, 0x029b0633, 0x03ab3a28, 0x00317976}}}, + {X: Field{[10]uint32{0x02876730, 0x03931e4e, 0x0017bf35, 0x03af0429, 0x03acf4e2, 0x029b814e, 0x002c1352, 0x03ddad7a, 0x0007be6b, 0x00308804}}, Y: Field{[10]uint32{0x03efa581, 0x0345377e, 0x02be70c8, 0x03a24346, 0x039a735d, 0x030e1cd0, 0x0397c159, 0x0135d0eb, 0x02ecb9ae, 0x00249022}}}, + {X: Field{[10]uint32{0x03d7edc3, 0x020a1686, 0x0015e33e, 0x0253be8e, 0x022f25c7, 0x019cc1d0, 0x00d4d852, 0x01fc3e74, 0x02d2ab08, 0x0035158c}}, Y: Field{[10]uint32{0x015ff44f, 0x00f5bbe3, 0x02569554, 0x016369ee, 0x01814e72, 0x032792c7, 0x039e99f9, 0x013ea091, 0x0297c499, 0x002df38d}}}, + {X: Field{[10]uint32{0x035df93f, 0x000edc73, 0x00dedc90, 0x02e3dadf, 0x02df6c25, 0x008e85c6, 0x01f34ca9, 0x024ad221, 0x022bcdc2, 0x00233bcd}}, Y: Field{[10]uint32{0x009aaf5e, 0x02061b74, 0x02bdf260, 0x00ed76ad, 0x02d702e1, 0x03507666, 0x024f1c19, 0x01fe8afe, 0x0334ed8b, 0x002ce443}}}, + {X: Field{[10]uint32{0x00bf9838, 0x01d60ecf, 0x01bfc7f1, 0x03956565, 0x013a415a, 0x006121e3, 0x01604318, 0x00a0c45f, 0x03e1874c, 0x00091fde}}, Y: Field{[10]uint32{0x01f30eb8, 0x029f323c, 0x004642f8, 0x03a37cce, 0x01efd513, 0x017d9424, 0x01521da6, 0x02d3f03e, 0x01e6a779, 0x0024388d}}}, + {X: Field{[10]uint32{0x001cf568, 0x0122b626, 0x02c56b01, 0x01238daa, 0x02f26093, 0x032a8ae0, 0x01dd0b0a, 0x00eb7d04, 0x02f1c870, 0x002e3033}}, Y: Field{[10]uint32{0x01275f14, 0x011cab80, 0x03916a33, 0x02915303, 0x0345e7aa, 0x03526a5e, 0x00e74a81, 0x026a852e, 0x00114701, 0x00281065}}}, + {X: Field{[10]uint32{0x0208cf09, 0x006f61a0, 0x012c0ab5, 0x0036ab5e, 0x030a35ab, 0x03746f45, 0x026b43a4, 0x031e44aa, 0x036e06e1, 0x0023955d}}, Y: Field{[10]uint32{0x00822d56, 0x029eb61c, 0x01c012c8, 0x01fdb6aa, 0x02cec730, 0x03518b9a, 0x02d12bc6, 0x02aefc30, 0x00c3a025, 0x0037f933}}}, + {X: Field{[10]uint32{0x003ad1ad, 0x01611a83, 0x0267c5f0, 0x01c3122d, 0x01db813b, 0x038e4090, 0x0122790d, 0x02609138, 0x02d3fc9d, 0x0003c73d}}, Y: Field{[10]uint32{0x03984799, 0x025a6bf0, 0x026f6c8b, 0x024ec5ce, 0x01750069, 0x02b9ea13, 0x02f1ec77, 0x0346c8d7, 0x02ab3952, 0x00124971}}}, + {X: Field{[10]uint32{0x01b9ea31, 0x0199c2bb, 0x0000a9e5, 0x011f2b2f, 0x03811641, 0x036dd8b0, 0x00495ab9, 0x03b924ad, 0x0388dce5, 0x002d276f}}, Y: Field{[10]uint32{0x03a9ef2a, 0x01eb3ebf, 0x023feb8b, 0x030b7a24, 0x028971f7, 0x034a2291, 0x00d703ef, 0x025f1dd6, 0x0317ab57, 0x00303e4b}}}, + {X: Field{[10]uint32{0x018ca362, 0x0327dd43, 0x02cab9a8, 0x010e7992, 0x00399e26, 0x0097df73, 0x0173c50a, 0x015fb455, 0x02ad257b, 0x0035abf8}}, Y: Field{[10]uint32{0x0135749d, 0x02b1bce3, 0x01b42b47, 0x028d5871, 0x0138d355, 0x018a0ac4, 0x01402491, 0x02d5ac5c, 0x02b86919, 0x00177c8d}}}, + {X: Field{[10]uint32{0x02e8e89f, 0x00480106, 0x0244b53e, 0x0279a112, 0x0345b48a, 0x033b92d2, 0x032a439f, 0x0197e965, 0x00c5f233, 0x002ec0a1}}, Y: Field{[10]uint32{0x02265300, 0x01d8266e, 0x034936ae, 0x0329bc53, 0x0153221d, 0x03b554ca, 0x0018fb2a, 0x0164c9e4, 0x000de09e, 0x001a12f3}}}, + {X: Field{[10]uint32{0x024467ec, 0x00b611f9, 0x037e46e8, 0x009ead69, 0x03c47796, 0x0228105d, 0x00be6219, 0x025a5c6e, 0x03148a40, 0x0015fa55}}, Y: Field{[10]uint32{0x01443f13, 0x01467cb3, 0x00c126bb, 0x03497a15, 0x01fd8e7c, 0x004a94dd, 0x006d3a8f, 0x0096001f, 0x01b114ce, 0x001c52f4}}}, + {X: Field{[10]uint32{0x02713094, 0x0149b647, 0x03757d17, 0x01e3ad8d, 0x01a1e144, 0x03a01148, 0x03ef2a3d, 0x00ed1d48, 0x0360b33c, 0x002c320b}}, Y: Field{[10]uint32{0x02cea63c, 0x02be6528, 0x032eeac1, 0x03596a0a, 0x0123d163, 0x024fdff6, 0x022f70ac, 0x03d4b994, 0x01b9d763, 0x0033f234}}}, + {X: Field{[10]uint32{0x013e1ee3, 0x01292f55, 0x005a35c2, 0x0093fdfe, 0x00667d83, 0x01b663b4, 0x032c185c, 0x0216f564, 0x01704047, 0x000ae9d8}}, Y: Field{[10]uint32{0x02ea35b9, 0x035580fb, 0x03307205, 0x0067cf8b, 0x01e56aef, 0x01545934, 0x03167d6b, 0x00abd581, 0x03907426, 0x00006041}}}, + {X: Field{[10]uint32{0x02d3e88c, 0x0248d71b, 0x00895b5c, 0x02169c8a, 0x0103eb1c, 0x01f83296, 0x01d15c82, 0x02e483ec, 0x0213d508, 0x0016f553}}, Y: Field{[10]uint32{0x020cf0c9, 0x024cebd9, 0x016fc2b1, 0x02b3bcef, 0x02878017, 0x02b1f608, 0x030ab1e4, 0x03864fa9, 0x01fd5607, 0x0035974d}}}, + {X: Field{[10]uint32{0x02a8d09a, 0x037e5dcf, 0x026947cc, 0x017d5993, 0x00a590d6, 0x01b3c84b, 0x03f1664e, 0x03626aca, 0x02d2753b, 0x002c2ef0}}, Y: Field{[10]uint32{0x03993c23, 0x0026f723, 0x0147e47f, 0x01047cd3, 0x02072257, 0x03319c14, 0x00190654, 0x022eae85, 0x02c1a107, 0x002415ed}}}, + {X: Field{[10]uint32{0x013133a8, 0x03a771b3, 0x00459224, 0x00c083a3, 0x01b38b46, 0x0151484a, 0x000fe419, 0x00e2b377, 0x02033cca, 0x00305c04}}, Y: Field{[10]uint32{0x01557e9a, 0x02d8dabd, 0x03b14fb6, 0x02d7afd3, 0x02624f78, 0x01b02185, 0x00071888, 0x01bd9d1b, 0x007b1cfb, 0x00312576}}}, + {X: Field{[10]uint32{0x03a21bda, 0x00c28917, 0x032ea749, 0x037764d4, 0x007c9fa4, 0x03ef0a31, 0x02879617, 0x0127fcc8, 0x020e5f1e, 0x000782f4}}, Y: Field{[10]uint32{0x03dd6177, 0x02385810, 0x01cd5703, 0x02719af8, 0x01b2a586, 0x011cbe84, 0x01a681b2, 0x03c57797, 0x00000e98, 0x000b501d}}}, + {X: Field{[10]uint32{0x017ec15f, 0x006c560c, 0x0388b03a, 0x028ef017, 0x00f39def, 0x0214ce9c, 0x012a9740, 0x019863fc, 0x023fec4c, 0x00173f08}}, Y: Field{[10]uint32{0x03f21411, 0x00cd512b, 0x00cf93da, 0x03ded9c6, 0x01eb4468, 0x031ce2c2, 0x006ec226, 0x01c6798e, 0x03d489e3, 0x001f64a2}}}, + {X: Field{[10]uint32{0x01efa67d, 0x03330b20, 0x00e8801c, 0x033942b0, 0x005da345, 0x02b51ea1, 0x03e514eb, 0x019a3815, 0x020abebd, 0x003d4195}}, Y: Field{[10]uint32{0x020fc7e9, 0x029f4eb2, 0x00d639d9, 0x036056f7, 0x0263111f, 0x01fd9289, 0x03580ad1, 0x02a66af0, 0x03f7c9c2, 0x0038bfc2}}}, + {X: Field{[10]uint32{0x02c54f45, 0x039ef609, 0x02ef8306, 0x02b96fe5, 0x001d00dc, 0x0127405a, 0x0246e4c4, 0x01d21516, 0x0298ec88, 0x0021123f}}, Y: Field{[10]uint32{0x026f0407, 0x03bb6afa, 0x0256a66a, 0x0117da75, 0x0285b200, 0x00d204dd, 0x01a82713, 0x000c88b7, 0x02291750, 0x00343c1c}}}, + {X: Field{[10]uint32{0x03cffc55, 0x01156ea5, 0x004f56bc, 0x00a2a619, 0x002480cf, 0x00a50bcd, 0x015ca713, 0x01f0b8db, 0x017fdb03, 0x003269a1}}, Y: Field{[10]uint32{0x03aa149f, 0x0238d9e3, 0x011c6b79, 0x01d2da33, 0x01f742d9, 0x03b5be5f, 0x00b8326c, 0x023985b0, 0x00b98f67, 0x0029a782}}}, + {X: Field{[10]uint32{0x02c4011d, 0x0319936e, 0x019d503d, 0x01b6391a, 0x03b8fc28, 0x0226ac67, 0x02f7db2d, 0x03acef20, 0x03f5c611, 0x0002d744}}, Y: Field{[10]uint32{0x024b7adc, 0x02022c4c, 0x02bb6259, 0x036271c0, 0x02ef2692, 0x00921f42, 0x012493ff, 0x003f7d6e, 0x02507cdc, 0x0009fac5}}}, + {X: Field{[10]uint32{0x0235ce44, 0x02ecd3b6, 0x02fad75a, 0x01c75fc6, 0x02902184, 0x0230a71b, 0x001b8871, 0x0352b300, 0x01f32e0e, 0x002fe7b1}}, Y: Field{[10]uint32{0x027ef2d1, 0x00dea011, 0x0146bdd8, 0x01a1ce19, 0x00a1734f, 0x01a311e9, 0x01224ed3, 0x010196de, 0x0088892b, 0x0004e119}}}, + {X: Field{[10]uint32{0x02526e19, 0x024ab04e, 0x00f2ed6d, 0x021eb5aa, 0x00893c5a, 0x0329bd6e, 0x011f6bd1, 0x00704ebb, 0x02be4d3b, 0x000b0e04}}, Y: Field{[10]uint32{0x0033aece, 0x02533bcd, 0x03af324a, 0x02b4519a, 0x031b11ed, 0x02cd02f2, 0x03cf877d, 0x014782de, 0x02f145d5, 0x000d9ae0}}}, + {X: Field{[10]uint32{0x0233f572, 0x031721b2, 0x013a6f21, 0x014e362f, 0x019fd172, 0x002289b9, 0x00d0a13c, 0x03db21ff, 0x0328dc8e, 0x001def7b}}, Y: Field{[10]uint32{0x023c3a1b, 0x019fda7a, 0x017ef081, 0x022a0fe5, 0x016977ba, 0x02960294, 0x02c1feca, 0x03526c03, 0x00c7bf3b, 0x003699ac}}}, + {X: Field{[10]uint32{0x0371afe5, 0x03f445a2, 0x02b154ef, 0x0301953b, 0x028693ba, 0x03cd3181, 0x006503e3, 0x021def36, 0x019d3185, 0x002f129e}}, Y: Field{[10]uint32{0x0255569e, 0x03ddd5dc, 0x03e664f7, 0x01af4cc6, 0x03f59abf, 0x00985496, 0x0159c99e, 0x00643a9c, 0x03f899a8, 0x0014ff35}}}, + {X: Field{[10]uint32{0x02fcd040, 0x0170620b, 0x039dce27, 0x01bcb84f, 0x006fccdb, 0x000dd41e, 0x010e4c7d, 0x03381586, 0x0084733d, 0x000c07f6}}, Y: Field{[10]uint32{0x01e25cb6, 0x00b22294, 0x00b735de, 0x00303897, 0x00312c91, 0x012f981f, 0x0035cef6, 0x027d47f6, 0x01d5185b, 0x001e793e}}}, + {X: Field{[10]uint32{0x014adb70, 0x018062a0, 0x032f387b, 0x01df9436, 0x02133f83, 0x00dc6710, 0x00d0bda1, 0x01f95085, 0x029bbe5e, 0x000906d2}}, Y: Field{[10]uint32{0x0010bdb0, 0x019211ed, 0x039593c1, 0x0000922c, 0x03a8ce21, 0x03f30032, 0x036bca27, 0x0348b87d, 0x0008fa4f, 0x00319bb7}}}, + {X: Field{[10]uint32{0x00c79585, 0x028580b6, 0x0098156e, 0x005bcca5, 0x01dcd28c, 0x018cf547, 0x01c1351d, 0x004a24f1, 0x02396819, 0x002f9bc5}}, Y: Field{[10]uint32{0x03afff21, 0x029c797e, 0x0335a5f7, 0x0282950c, 0x021ade5d, 0x03d7f979, 0x038a9668, 0x014e7a9f, 0x027e1a65, 0x001bd9d2}}}, + {X: Field{[10]uint32{0x01d3a283, 0x01f2cc4f, 0x03285e23, 0x02eadff2, 0x01b3f7bf, 0x028b452e, 0x0209ef60, 0x0278a9f8, 0x008f79c6, 0x00322d40}}, Y: Field{[10]uint32{0x03b54bb9, 0x00fb029a, 0x008f52d8, 0x032a98c0, 0x023cea15, 0x01bbf2cd, 0x0036dd74, 0x03df802f, 0x03486c3c, 0x000771e4}}}, + {X: Field{[10]uint32{0x006c0998, 0x029ffd30, 0x027d4eed, 0x02b1df3c, 0x02b038ed, 0x01e5ab47, 0x0197ec3a, 0x03b5893a, 0x039eaad5, 0x0014052b}}, Y: Field{[10]uint32{0x0189dd7d, 0x0221808c, 0x031511a4, 0x014cd25d, 0x01911439, 0x021ed2db, 0x004a77a9, 0x028714b5, 0x006fb8fa, 0x0038075e}}}, + {X: Field{[10]uint32{0x03bb989a, 0x02b76329, 0x02d2b45d, 0x03023620, 0x01b0845e, 0x03ca3f37, 0x02d4f284, 0x0190fb68, 0x01e62c40, 0x001bffbf}}, Y: Field{[10]uint32{0x0011cc0e, 0x01bf9721, 0x004717fb, 0x0201a9bd, 0x01ff0a54, 0x028afb2f, 0x029e4bd9, 0x00ea7888, 0x003c782d, 0x00238ac6}}}, + {X: Field{[10]uint32{0x007d463f, 0x03fc7c52, 0x022904aa, 0x003f07a4, 0x020ad014, 0x02d3030d, 0x02a7e5d0, 0x004dd34c, 0x03bf190e, 0x002b1d8a}}, Y: Field{[10]uint32{0x033adefe, 0x02944f97, 0x02a7e435, 0x0143b606, 0x03bc34d8, 0x036dac4b, 0x001bfec5, 0x01ad028e, 0x03183101, 0x003335e7}}}, + {X: Field{[10]uint32{0x0011cb24, 0x023ab83a, 0x03342796, 0x0337a0a3, 0x03d791a5, 0x01cdec76, 0x03244e7b, 0x0171d424, 0x02d63ec0, 0x0025cd25}}, Y: Field{[10]uint32{0x01647533, 0x01cf99c9, 0x03b7abf5, 0x0194bd5e, 0x03d7420b, 0x030fcd3c, 0x037ff525, 0x00cd47d8, 0x03c0044e, 0x0012cb26}}}, + {X: Field{[10]uint32{0x00a15d32, 0x0266cd21, 0x034291a7, 0x0001be80, 0x02c39ce3, 0x03a8e78d, 0x03577539, 0x02f0c1d0, 0x01665f77, 0x002a7624}}, Y: Field{[10]uint32{0x0380e213, 0x0204ee12, 0x0296b8d0, 0x013f33ea, 0x0056dd88, 0x0018d694, 0x039ce982, 0x02e3f3d3, 0x0217fded, 0x0034270e}}}, + {X: Field{[10]uint32{0x00c5710b, 0x02a68828, 0x02f769ec, 0x01bd835b, 0x02cbab63, 0x009086eb, 0x00a7419f, 0x0151362e, 0x03fdaa2b, 0x000422a3}}, Y: Field{[10]uint32{0x00e0249d, 0x01599735, 0x028d7b12, 0x01ce77cc, 0x01cebbb2, 0x017c38e2, 0x025776a7, 0x02b56289, 0x01fcab04, 0x0002b4fa}}}, + {X: Field{[10]uint32{0x027c5fb5, 0x0316fb5c, 0x00a36de8, 0x02365448, 0x03954387, 0x01791257, 0x000ac6df, 0x00f15eff, 0x017bc884, 0x003be5a7}}, Y: Field{[10]uint32{0x021f16fb, 0x033e170d, 0x0302afc1, 0x014dee02, 0x01d1d4d6, 0x037aab69, 0x005d81a1, 0x0200dac5, 0x03b22673, 0x0016ae06}}}, + {X: Field{[10]uint32{0x03c39b62, 0x028c2590, 0x01162b0b, 0x03c9043d, 0x01d74200, 0x03dc2c91, 0x02dafb28, 0x01514fc4, 0x03c24d50, 0x002ae096}}, Y: Field{[10]uint32{0x01281a1d, 0x032c196c, 0x0194c6f9, 0x02e35155, 0x01708098, 0x01dea072, 0x03e31da2, 0x01105769, 0x01f22377, 0x001e279f}}}, + {X: Field{[10]uint32{0x00bf2622, 0x015aec12, 0x03ac0598, 0x00e664ce, 0x02eeed4e, 0x02125a5c, 0x039198cf, 0x00f00bb1, 0x00e52c17, 0x00126129}}, Y: Field{[10]uint32{0x00c5df3f, 0x033e25eb, 0x034348e7, 0x0090e647, 0x02f199e9, 0x0330f33d, 0x0087a9c2, 0x00b98682, 0x027b79be, 0x001165ad}}}, + {X: Field{[10]uint32{0x025f7272, 0x01284c98, 0x02fbccfa, 0x01a88fcf, 0x004bf0f7, 0x02a9f2c9, 0x0360d0d8, 0x02f84fd3, 0x03f493c1, 0x000a171b}}, Y: Field{[10]uint32{0x03ed49d3, 0x01ecf674, 0x03c1212d, 0x0397a289, 0x03c4caac, 0x0276e6c8, 0x00fd9984, 0x03bca357, 0x01a5cf9c, 0x000e77fa}}}, + {X: Field{[10]uint32{0x003db340, 0x02dc23e1, 0x02c7b348, 0x001b09e2, 0x019bc6e5, 0x00c402aa, 0x02667171, 0x0065c7a4, 0x01d17e72, 0x0007852c}}, Y: Field{[10]uint32{0x00e41cee, 0x0017c113, 0x02a1164d, 0x03f17de7, 0x00394d7d, 0x0135050f, 0x03fe464c, 0x03d89cd1, 0x039dd705, 0x00018e88}}}, + {X: Field{[10]uint32{0x0217c8aa, 0x0102ed6f, 0x018fc101, 0x030133cc, 0x033b1394, 0x03352161, 0x01dcf309, 0x03347bd8, 0x03b9ed71, 0x0002e3dc}}, Y: Field{[10]uint32{0x036f665c, 0x0041f99d, 0x02ec5827, 0x01a96b10, 0x01074567, 0x006f997b, 0x034823aa, 0x03b214bf, 0x02e0bd66, 0x0022bd76}}}, + {X: Field{[10]uint32{0x0314540a, 0x012fdba1, 0x01d15e62, 0x034c7352, 0x0049c995, 0x03456bf4, 0x02367760, 0x03f3db2d, 0x0297e878, 0x001f831c}}, Y: Field{[10]uint32{0x02ddd658, 0x02bc3f6b, 0x000e58aa, 0x00c0280a, 0x00ffd595, 0x02c9c680, 0x00b7568b, 0x00810fd2, 0x01f74c51, 0x0037d5e5}}}, + {X: Field{[10]uint32{0x03798545, 0x03f409da, 0x02cbade5, 0x0046dd52, 0x00109990, 0x03377f92, 0x0351133f, 0x03b67e8a, 0x011d465b, 0x00027c3b}}, Y: Field{[10]uint32{0x00a8459f, 0x02666405, 0x016e9217, 0x00e398c9, 0x01d85b6c, 0x00aaa676, 0x03adde01, 0x00380192, 0x009c73bb, 0x001c017b}}}, + {X: Field{[10]uint32{0x008e12bf, 0x02946aa7, 0x01b125a0, 0x0002c78d, 0x03cc8e40, 0x00388f3b, 0x020608d8, 0x016bc005, 0x035e0b5c, 0x000b555b}}, Y: Field{[10]uint32{0x01f12000, 0x0108b285, 0x038a94e4, 0x0223e02a, 0x01d24d44, 0x03f61bd0, 0x007f6fc1, 0x00eebc77, 0x014425bc, 0x0001d800}}}, + {X: Field{[10]uint32{0x035ed3f2, 0x0206f320, 0x0128ee8d, 0x03950526, 0x012cc14c, 0x0271f730, 0x0079524d, 0x0380b02d, 0x027d7637, 0x000985d9}}, Y: Field{[10]uint32{0x0380884b, 0x02b90651, 0x019babc6, 0x005806ca, 0x017a2c4e, 0x01e3298e, 0x01496be4, 0x0027ae3d, 0x03ba2cd8, 0x0014855c}}}, + {X: Field{[10]uint32{0x019aac10, 0x02c187c3, 0x02492ba1, 0x033fb416, 0x034cae40, 0x020428fc, 0x036e10f8, 0x026991ed, 0x016c5b51, 0x001891e4}}, Y: Field{[10]uint32{0x02e7f098, 0x00cc09bb, 0x034caf2d, 0x01a70fa7, 0x00602b09, 0x00036875, 0x02a193c5, 0x02a5e241, 0x0170535b, 0x003ff409}}}, + {X: Field{[10]uint32{0x023c52af, 0x017533e6, 0x03db4fa5, 0x012a544d, 0x01ea14c6, 0x03b3b3ee, 0x0017e780, 0x002a2180, 0x03e08ed5, 0x003102c9}}, Y: Field{[10]uint32{0x007b6493, 0x03c6b378, 0x0001ba86, 0x02e0c3aa, 0x00c4149f, 0x00416a95, 0x01d1e977, 0x016e13f6, 0x038c7d02, 0x00090572}}}, + {X: Field{[10]uint32{0x03e0de12, 0x0195e340, 0x029748b6, 0x02afc199, 0x03ad7103, 0x03aea713, 0x01bf17bc, 0x0295bf34, 0x008a54a3, 0x002e96bb}}, Y: Field{[10]uint32{0x0157ffbd, 0x03562c1b, 0x0370dc49, 0x0180e7e6, 0x00a705de, 0x03a96e98, 0x03474d28, 0x0312fcf1, 0x0311abec, 0x000d236a}}}, + {X: Field{[10]uint32{0x00076268, 0x00089225, 0x03f675c0, 0x00139571, 0x02c1e9e5, 0x03ecfcc6, 0x031262cf, 0x00a5384c, 0x0258f8dd, 0x002e8539}}, Y: Field{[10]uint32{0x001aa1dd, 0x01b792b2, 0x023659b9, 0x038e8c9b, 0x00c221b0, 0x01b76684, 0x00cb36c6, 0x03957b1c, 0x0105fc43, 0x0033b5d2}}}, + {X: Field{[10]uint32{0x03f4aff4, 0x037e85a9, 0x022d4cfb, 0x00382870, 0x00f9c1d0, 0x004e6acc, 0x02718cb4, 0x031fe8a7, 0x03698880, 0x000cdd6b}}, Y: Field{[10]uint32{0x02295a27, 0x0399fbb3, 0x01726ddd, 0x01e73957, 0x028d27db, 0x0389b1a3, 0x02fa0b85, 0x0396c6d9, 0x0091a83b, 0x0033ea2d}}}, + {X: Field{[10]uint32{0x019f01fe, 0x0252a92f, 0x002d5efc, 0x038bdf54, 0x035b9a8e, 0x0312c9db, 0x03a109a2, 0x03f7eba7, 0x014b306c, 0x001a3498}}, Y: Field{[10]uint32{0x0348550e, 0x00e1b217, 0x008f3661, 0x01221023, 0x01ef9e1d, 0x03503ed6, 0x01f54e84, 0x0197b5f7, 0x02bcf043, 0x0005230d}}}, + {X: Field{[10]uint32{0x00533edd, 0x011edfc7, 0x0277b7fc, 0x01ac1b0d, 0x03900ece, 0x0358ce1e, 0x02990d71, 0x000ec2b4, 0x02a55977, 0x0024feb3}}, Y: Field{[10]uint32{0x002ad5f4, 0x011e5f25, 0x03179745, 0x011363b9, 0x01c20bbe, 0x02687db0, 0x00199853, 0x0053a2d7, 0x03fa8fa1, 0x000f2006}}}, + {X: Field{[10]uint32{0x01054277, 0x01b09d5d, 0x005d6eef, 0x03c5b288, 0x025a0a61, 0x01b242ca, 0x0375ae17, 0x00c46255, 0x00a672f7, 0x003c4775}}, Y: Field{[10]uint32{0x01556ef6, 0x026d5a2e, 0x020e83f5, 0x01154782, 0x006c307d, 0x03063434, 0x022083ca, 0x02b03dfa, 0x016d2ef2, 0x002f01a8}}}, + {X: Field{[10]uint32{0x024204f7, 0x0328e721, 0x00010f10, 0x02165c97, 0x000b71fe, 0x020f2001, 0x029a94ef, 0x029153f4, 0x005d710b, 0x0010baf3}}, Y: Field{[10]uint32{0x025f223b, 0x001934b5, 0x00e40279, 0x01f371a6, 0x00e633c1, 0x01c7419f, 0x03d5cdb2, 0x0007b531, 0x00eb6431, 0x003e2aa1}}}, + {X: Field{[10]uint32{0x01c80e52, 0x0278f861, 0x03b2e67e, 0x03684fc7, 0x00549e96, 0x02274668, 0x03b6fbce, 0x016a5021, 0x03dcd96d, 0x0035021d}}, Y: Field{[10]uint32{0x02789444, 0x0388d317, 0x0087c837, 0x001bd764, 0x02c0be83, 0x03f00510, 0x017b59af, 0x003f2e39, 0x01b385f2, 0x002fa6ee}}}, + {X: Field{[10]uint32{0x0162931f, 0x01d0d609, 0x03e398fa, 0x02eeae35, 0x03aa40c1, 0x00e49029, 0x00ec9342, 0x0042ae22, 0x0098cd21, 0x003062cb}}, Y: Field{[10]uint32{0x015773f8, 0x00b3a5c5, 0x001cb24c, 0x02724df0, 0x03b83f18, 0x0019b102, 0x01f18cd1, 0x035d31d7, 0x00349147, 0x00365884}}}, + {X: Field{[10]uint32{0x005c0bd1, 0x03e238f8, 0x039e4d14, 0x01631923, 0x036fe946, 0x02ed37af, 0x034fa0c4, 0x03e10473, 0x03221a44, 0x0005535a}}, Y: Field{[10]uint32{0x0075559a, 0x014a9656, 0x01976de5, 0x03cfaf15, 0x037c1074, 0x0365398f, 0x00bbb6ad, 0x00ccbcca, 0x0307c705, 0x0037c2f0}}}, + {X: Field{[10]uint32{0x01a26f15, 0x009a8d78, 0x006e0a93, 0x01670eae, 0x0024485d, 0x02610b6f, 0x017d2285, 0x024ec68e, 0x01e5629f, 0x0028e096}}, Y: Field{[10]uint32{0x01f783fb, 0x02ee7aa4, 0x01892367, 0x013fd0d7, 0x00171327, 0x0229e6e3, 0x0074932e, 0x00a98ece, 0x00cc2fe5, 0x001a6d6b}}}, + {X: Field{[10]uint32{0x023fcd19, 0x02ca8f1d, 0x02013d4d, 0x00a5be08, 0x00148270, 0x03bb7b46, 0x025a7d52, 0x00d24e64, 0x02eee91e, 0x00275ca7}}, Y: Field{[10]uint32{0x03e89a1f, 0x02a8bc38, 0x00339657, 0x027938cc, 0x009cadc0, 0x0361d3ec, 0x02f731f2, 0x02188459, 0x015403cc, 0x001b60c8}}}, + {X: Field{[10]uint32{0x03751e3a, 0x01c06cd9, 0x00b39b25, 0x024e283e, 0x0346398c, 0x0112a7e6, 0x02cede79, 0x01f1f95d, 0x00088630, 0x00099d3c}}, Y: Field{[10]uint32{0x013f83cf, 0x0199ae06, 0x02fa212a, 0x031ea748, 0x02e31bde, 0x02c3c7d3, 0x03638d07, 0x0347be0d, 0x03426ac9, 0x0000fa7a}}}, + {X: Field{[10]uint32{0x02237f41, 0x03cd1453, 0x002c2743, 0x00b1bdc3, 0x03b7c164, 0x02d89b03, 0x028e9fdb, 0x02e15b74, 0x015eadb1, 0x002ca81b}}, Y: Field{[10]uint32{0x03f664d3, 0x033ab58e, 0x01f5ff3b, 0x02613401, 0x03de579a, 0x0206b582, 0x03baed44, 0x02c9a089, 0x038b8673, 0x0017532b}}}, + {X: Field{[10]uint32{0x022d713d, 0x03c8f848, 0x03a60f0b, 0x003c5056, 0x012b278c, 0x00103c17, 0x03e4ec92, 0x03af73b0, 0x0164d61d, 0x00082c9f}}, Y: Field{[10]uint32{0x00e516a3, 0x0111ede9, 0x03ffb41e, 0x0026eceb, 0x02c8c5c8, 0x00159d43, 0x01264886, 0x00b7cd73, 0x01e7ff5c, 0x00120761}}}, + {X: Field{[10]uint32{0x00e3f2e5, 0x0335714f, 0x0051bfc7, 0x003d169f, 0x03527093, 0x0031547d, 0x00d7c152, 0x02a897d8, 0x010c450e, 0x0013d298}}, Y: Field{[10]uint32{0x0247f328, 0x00bf640e, 0x0239c2b3, 0x013bf5f7, 0x01e82423, 0x03e75a3b, 0x02d8d8e0, 0x0188a19c, 0x0211db41, 0x0037c7a3}}}, + {X: Field{[10]uint32{0x00aceaa9, 0x03ee8daa, 0x01e9e776, 0x02245196, 0x03bc06c9, 0x00d66f01, 0x0170b4be, 0x010d6095, 0x02d80050, 0x0026cdd7}}, Y: Field{[10]uint32{0x01e90927, 0x01ab888d, 0x01f26d1e, 0x01021b73, 0x03226834, 0x01670d20, 0x01de5b1f, 0x0001a645, 0x0193385c, 0x000f4159}}}, + {X: Field{[10]uint32{0x02c9d1be, 0x0300648b, 0x03ba4060, 0x021cdff3, 0x03c13aff, 0x00e42dff, 0x03865e72, 0x00b21cc7, 0x00045d43, 0x0010d902}}, Y: Field{[10]uint32{0x0070cbeb, 0x01ac8818, 0x016eb234, 0x02496e2c, 0x025aff2a, 0x012ed3ef, 0x01f2aac5, 0x00ff878f, 0x02af6fc7, 0x00388ce3}}}, + {X: Field{[10]uint32{0x001e0b66, 0x01d849fd, 0x02a394c4, 0x00bbcae7, 0x0259287f, 0x02fa2353, 0x021f35cf, 0x0045c905, 0x004f2446, 0x0029b967}}, Y: Field{[10]uint32{0x019f334d, 0x03b17f9f, 0x032775f5, 0x00acb9ea, 0x0257a8ae, 0x0133dc62, 0x00fa470c, 0x01d7e507, 0x0347f5dd, 0x001d71c1}}}, + {X: Field{[10]uint32{0x01322d51, 0x02801ec9, 0x016ed7c9, 0x0165d2ca, 0x025293a9, 0x01a9b4ce, 0x03bf1e84, 0x0147f65d, 0x0217ae73, 0x003fd8e5}}, Y: Field{[10]uint32{0x03dac457, 0x01cc4594, 0x0239f79d, 0x01c7bd01, 0x03e21dca, 0x039e60d4, 0x03f81ffe, 0x0157dd94, 0x01abfa23, 0x0039848f}}}, + {X: Field{[10]uint32{0x02f4faf3, 0x0376fa53, 0x030435f8, 0x03b80722, 0x00c254df, 0x02b578a1, 0x0237cbc5, 0x03639822, 0x00401710, 0x001de452}}, Y: Field{[10]uint32{0x00611414, 0x02e3b638, 0x00ecaa54, 0x0118cb26, 0x02623be4, 0x02534a9a, 0x0075dc38, 0x03531c10, 0x00e99ef3, 0x00365fd1}}}, + {X: Field{[10]uint32{0x01484aad, 0x015e7ede, 0x00ee5d42, 0x03f01b76, 0x00947cf1, 0x03704d71, 0x0151c00a, 0x0152a841, 0x00aa0292, 0x003da244}}, Y: Field{[10]uint32{0x0052c1fc, 0x02d67930, 0x03c941b9, 0x0310fd71, 0x0269f9f5, 0x0325e137, 0x01587eaf, 0x01b58c2b, 0x03db33a5, 0x00102f7e}}}, + {X: Field{[10]uint32{0x036e0fd3, 0x01891906, 0x0169629f, 0x034b7bc7, 0x00f2d4d8, 0x03558361, 0x01c75011, 0x0133bdc6, 0x0381473d, 0x00056fa3}}, Y: Field{[10]uint32{0x00fd9a2a, 0x023bbb9c, 0x007bb1d2, 0x02a21241, 0x0364b85e, 0x01b64c99, 0x011ead00, 0x006d0711, 0x0126fc99, 0x001f99be}}}, + {X: Field{[10]uint32{0x0284e9ca, 0x006af762, 0x019db909, 0x01be682f, 0x03d0c5c2, 0x01f10722, 0x03272970, 0x00c0bbd0, 0x015a2e22, 0x0003844f}}, Y: Field{[10]uint32{0x01574dc0, 0x0095f2bd, 0x0353026a, 0x03472e00, 0x03b54941, 0x03c6cb16, 0x026b70b2, 0x0371145e, 0x02d834c6, 0x000b9218}}}, + {X: Field{[10]uint32{0x03bea688, 0x0237f9d1, 0x01595aa7, 0x02c15f5b, 0x022c94da, 0x030346f8, 0x0220d9de, 0x02e99dfd, 0x0370485b, 0x0025ac41}}, Y: Field{[10]uint32{0x03dbf30b, 0x027a7c6e, 0x016a5225, 0x03092926, 0x02ff854a, 0x031de766, 0x021bd58f, 0x01c9ab06, 0x02ae0222, 0x0038182a}}}, + {X: Field{[10]uint32{0x0005545d, 0x01e24d09, 0x02183de8, 0x031d68e3, 0x0057f6f7, 0x034b3f63, 0x025e8990, 0x0255385f, 0x03005555, 0x00205d0b}}, Y: Field{[10]uint32{0x02d2fc0e, 0x03b80f4b, 0x0236edf1, 0x031a3e48, 0x00a8d742, 0x00d5e3ec, 0x032fbb07, 0x0017cb9b, 0x03c2e5f7, 0x00285d8f}}}, + {X: Field{[10]uint32{0x0378a480, 0x01207fee, 0x01c17fcc, 0x002f85b0, 0x0386bc7a, 0x02434dee, 0x00b72eaf, 0x023d89df, 0x03139698, 0x0005f067}}, Y: Field{[10]uint32{0x03c78833, 0x030eed94, 0x01fd9c5e, 0x0181c63e, 0x013f430e, 0x038f946e, 0x01c2642a, 0x0193ad88, 0x00d52101, 0x0032c4a4}}}, + {X: Field{[10]uint32{0x02497a3c, 0x0066fae8, 0x01c3f403, 0x001d8f00, 0x00bfeee5, 0x02e18552, 0x0248b2bb, 0x01bb2719, 0x0306e874, 0x00001ec3}}, Y: Field{[10]uint32{0x02a70020, 0x02dde3b5, 0x00c6a2fd, 0x016275ba, 0x031634b7, 0x032a831e, 0x00b318f1, 0x01f638c2, 0x03788429, 0x0031a524}}}, + {X: Field{[10]uint32{0x02c5e8b3, 0x015ba444, 0x0013405f, 0x005f2c6e, 0x0055a805, 0x02a26dd5, 0x027d8c28, 0x0060fe69, 0x03062414, 0x001c570a}}, Y: Field{[10]uint32{0x0120370b, 0x015dcfc9, 0x03b33920, 0x000e5de1, 0x0123167f, 0x03e12d35, 0x02d4cca7, 0x01771c78, 0x01c89a79, 0x003e26e2}}}, + {X: Field{[10]uint32{0x0374d3b6, 0x03d03723, 0x024c78f1, 0x00277626, 0x01057aed, 0x03f976fd, 0x0377662e, 0x03f1e1d9, 0x0200f974, 0x00383433}}, Y: Field{[10]uint32{0x03e3eb56, 0x01c138b8, 0x000d3e85, 0x03f9f2cf, 0x03c253be, 0x01315447, 0x03c7f05c, 0x01211e52, 0x0265ed70, 0x002b316f}}}, + {X: Field{[10]uint32{0x026432a2, 0x002ac7f4, 0x02222e77, 0x021d6eb5, 0x01bdba9a, 0x033674a8, 0x01aaf75e, 0x02e2de69, 0x028976fb, 0x000dd54c}}, Y: Field{[10]uint32{0x02ced92d, 0x00584230, 0x01d77eb0, 0x01f0b170, 0x0001087e, 0x00aca822, 0x00bc7d01, 0x00192f60, 0x02331b7e, 0x001b6ef8}}}, + {X: Field{[10]uint32{0x03e3d3ff, 0x02ace81b, 0x00699446, 0x0144aaf7, 0x00f46ca6, 0x02cabec1, 0x003f6b08, 0x0240da1a, 0x03ef51ea, 0x000ba570}}, Y: Field{[10]uint32{0x019b554a, 0x02d030ca, 0x0349839c, 0x019802ca, 0x0201556c, 0x01876f18, 0x0063b94c, 0x037f8121, 0x0287b1d8, 0x0002417a}}}, + {X: Field{[10]uint32{0x00ff8eb5, 0x01f5d6b1, 0x02cf40fe, 0x0036d645, 0x02646758, 0x01cd54fd, 0x035c67fb, 0x00c915fc, 0x021e721f, 0x00094c43}}, Y: Field{[10]uint32{0x006b4ace, 0x02d50c1e, 0x03041016, 0x018b05fa, 0x0146ecd6, 0x01f72ac7, 0x01a359b8, 0x03bad509, 0x02f9be42, 0x00271794}}}, + {X: Field{[10]uint32{0x03830b7b, 0x001fd46d, 0x013b0cf7, 0x01f5febd, 0x0227a23b, 0x035f2d41, 0x00779117, 0x03f0b75e, 0x031b2b24, 0x000964ca}}, Y: Field{[10]uint32{0x03536765, 0x00cb6477, 0x00f3e04e, 0x00180427, 0x022215e2, 0x037ce8ab, 0x03969a6d, 0x009ac075, 0x03b4acdb, 0x001fa388}}}, + {X: Field{[10]uint32{0x03c5ed3e, 0x005a911c, 0x0284e22b, 0x017ac26d, 0x02892e13, 0x025fd6e2, 0x029ba443, 0x01d99ee9, 0x02f6251f, 0x001f48ca}}, Y: Field{[10]uint32{0x02d8356e, 0x00995c69, 0x0392c1cd, 0x01165426, 0x00131b90, 0x026093c7, 0x03dea61d, 0x0226d633, 0x0238c8a5, 0x0028fa3d}}}, + {X: Field{[10]uint32{0x00c720f9, 0x03a5d572, 0x03633cb9, 0x01141211, 0x026afc86, 0x01125581, 0x03e05b0a, 0x03aa1ee8, 0x02a01b65, 0x001355b2}}, Y: Field{[10]uint32{0x03537330, 0x0105dc5d, 0x0208f50f, 0x03865deb, 0x007c1eae, 0x00dbc0d2, 0x03f1ada9, 0x01465f28, 0x027836e6, 0x000530d1}}}, + {X: Field{[10]uint32{0x0100a88b, 0x03bef671, 0x01c2c122, 0x000cdc9f, 0x032615b5, 0x031c8bb5, 0x01c81f42, 0x03e2eddd, 0x0165ca6f, 0x001c6af4}}, Y: Field{[10]uint32{0x012620f1, 0x02ae2112, 0x00eb9c39, 0x01499089, 0x01a59693, 0x0046b12e, 0x031c46ae, 0x013e18be, 0x00670728, 0x001e6e89}}}, + {X: Field{[10]uint32{0x02a48965, 0x00ba4195, 0x039f4200, 0x01d31045, 0x0230215e, 0x03176795, 0x00496345, 0x00146731, 0x00ccc381, 0x002118bf}}, Y: Field{[10]uint32{0x03787d4b, 0x00241229, 0x005cb64d, 0x029d70f0, 0x00f0eb75, 0x027f1190, 0x0148a7e2, 0x02e662f1, 0x0166cd7f, 0x00014d6a}}}, + {X: Field{[10]uint32{0x02c09826, 0x03a4d44d, 0x01ae3286, 0x0011bf91, 0x00b9c2b1, 0x0195a12a, 0x0178b5c6, 0x0147402d, 0x0093fed7, 0x003da3ab}}, Y: Field{[10]uint32{0x0148bff5, 0x013f117f, 0x01831733, 0x0355cca8, 0x0366f7d8, 0x02943952, 0x0119ff2f, 0x02a28a3c, 0x032b98b0, 0x00263830}}}, + {X: Field{[10]uint32{0x01f72041, 0x0110acb6, 0x00b1615f, 0x031f9250, 0x0243467d, 0x01bfd5a6, 0x00e4014f, 0x0364d670, 0x025009a8, 0x0018511c}}, Y: Field{[10]uint32{0x02c8f807, 0x00cc505e, 0x02d2eb2f, 0x0024abac, 0x00fa58f2, 0x03efaa22, 0x02a7108d, 0x01fb9f7b, 0x037fc7f5, 0x0003edc5}}}, + {X: Field{[10]uint32{0x0315614f, 0x023b3152, 0x01497fc2, 0x0324de68, 0x01c9846a, 0x00b6233c, 0x0259a26e, 0x006f4b88, 0x02114ffa, 0x003a9a7b}}, Y: Field{[10]uint32{0x00e4e2de, 0x02dda317, 0x022c9b17, 0x006e026d, 0x0163183d, 0x0375b3cf, 0x00141083, 0x035d4244, 0x01b51dd6, 0x001626e0}}}, + {X: Field{[10]uint32{0x025d5263, 0x01319813, 0x02b78146, 0x0057147e, 0x0338e6aa, 0x01ffc542, 0x01a1ce0d, 0x037a5990, 0x03243404, 0x000d1c9e}}, Y: Field{[10]uint32{0x0027d4f2, 0x00a27536, 0x03804435, 0x03cb56ef, 0x031920bf, 0x03001a74, 0x039baadd, 0x0329dcd6, 0x026bcf56, 0x0024660c}}}, + {X: Field{[10]uint32{0x02217461, 0x02343667, 0x02ad952f, 0x036549b3, 0x00eeebf4, 0x03a62d3c, 0x022d2756, 0x01e370a7, 0x02ae6137, 0x00254914}}, Y: Field{[10]uint32{0x02d486a8, 0x01c5d6ca, 0x035ff079, 0x020b7052, 0x03c17f65, 0x006c5046, 0x0250eb10, 0x03ed6be6, 0x0228c195, 0x003022ce}}}, + {X: Field{[10]uint32{0x038e49ff, 0x02855ab9, 0x01bfd2d4, 0x010af78b, 0x02401b83, 0x019840c1, 0x01afeba6, 0x022f1dfa, 0x0318dc4a, 0x003ef28f}}, Y: Field{[10]uint32{0x014129c9, 0x01f910fe, 0x029b6c7b, 0x01ceee4c, 0x034cf755, 0x01dae493, 0x020db7bc, 0x02cb7bb6, 0x016d6027, 0x000ae0a7}}}, + {X: Field{[10]uint32{0x03d8c141, 0x03130556, 0x0082b57b, 0x03fee502, 0x005302bf, 0x0022929c, 0x03dff64a, 0x0190ea55, 0x011d7ddc, 0x0031f77c}}, Y: Field{[10]uint32{0x02708e20, 0x01559a5b, 0x02a8889d, 0x038628f6, 0x03b3711e, 0x00e6f9e6, 0x03e81468, 0x02c0600f, 0x01f1ac93, 0x003a7284}}}, + {X: Field{[10]uint32{0x00ce31b8, 0x03b9299c, 0x02fa2cd0, 0x014e72db, 0x011b3f23, 0x039a0860, 0x031f7e44, 0x0018fae0, 0x023086e3, 0x001c410e}}, Y: Field{[10]uint32{0x01322c9d, 0x02df2d22, 0x03411ebc, 0x01914c82, 0x019334c1, 0x0178a613, 0x029cc925, 0x0349cd2a, 0x0338ef9f, 0x00136cfc}}}, + {X: Field{[10]uint32{0x00602585, 0x01a9dd92, 0x034c3dbb, 0x0111e644, 0x005d70f0, 0x003e8dd7, 0x0349d368, 0x01f2ef64, 0x02401534, 0x001b793a}}, Y: Field{[10]uint32{0x03960418, 0x01df7c9f, 0x03d70f1d, 0x010ce31c, 0x02458a32, 0x01c0973c, 0x028d8394, 0x014b6fba, 0x018865ab, 0x0000edd9}}}, + {X: Field{[10]uint32{0x024fecbe, 0x0095a5ae, 0x02215bc4, 0x030387e9, 0x01db9a0c, 0x03dee80f, 0x017e23b6, 0x03b2dfa8, 0x039f467c, 0x000a7ea9}}, Y: Field{[10]uint32{0x00f34838, 0x03fe86d2, 0x01154e50, 0x017b4bfc, 0x0264a224, 0x01af7c41, 0x03027d04, 0x02f0a707, 0x011fc42f, 0x00396a9a}}}, + {X: Field{[10]uint32{0x02aafc99, 0x010be4c5, 0x00f79c8c, 0x02e1d244, 0x03d750f8, 0x00afe3d6, 0x025f15a0, 0x016c89e3, 0x03fc25ae, 0x003fe202}}, Y: Field{[10]uint32{0x025747df, 0x03bba08e, 0x00b105ee, 0x019af228, 0x0360e7a1, 0x02ed40b6, 0x0025bd81, 0x023de4de, 0x030a0072, 0x00254d7d}}}, + {X: Field{[10]uint32{0x00a2a378, 0x01af4be9, 0x00eeef6a, 0x02c90949, 0x0160eff0, 0x014ba302, 0x020c5663, 0x03dbd614, 0x02a03837, 0x002de06d}}, Y: Field{[10]uint32{0x00dbbb62, 0x03ffefd3, 0x01e4fc44, 0x027989d5, 0x01cbf838, 0x0304ada7, 0x0322ee73, 0x00f7650d, 0x03d46c68, 0x002b35ed}}}, + {X: Field{[10]uint32{0x027406db, 0x01028ed1, 0x01990ee5, 0x01896411, 0x03b3f190, 0x00b92b0a, 0x0332c648, 0x03174369, 0x0193e8ba, 0x001b65d9}}, Y: Field{[10]uint32{0x032a8b6b, 0x01fa704b, 0x016583bd, 0x00966a2e, 0x016cbc18, 0x00a92abb, 0x00bb9c0f, 0x020585b0, 0x03e4af6d, 0x000c30d4}}}, + {X: Field{[10]uint32{0x00dc3032, 0x0219af5b, 0x014015d0, 0x0208a9b6, 0x03683ec7, 0x03eb4784, 0x02121129, 0x03836d18, 0x036a4dd3, 0x00063b59}}, Y: Field{[10]uint32{0x00a51bd5, 0x009ac580, 0x019bb8ef, 0x039dfb8c, 0x0006f9a6, 0x01780d9c, 0x03b97626, 0x02a0a97d, 0x02e15dbf, 0x00321ac1}}}, + {X: Field{[10]uint32{0x035ce2a1, 0x015032b6, 0x0118ceb3, 0x034ee547, 0x01d1e859, 0x03bf52e3, 0x00bce4da, 0x003ff30b, 0x0238e944, 0x0000c4e3}}, Y: Field{[10]uint32{0x0095c241, 0x038a325a, 0x029a3430, 0x010253be, 0x03fef4bc, 0x02431b9b, 0x0260a134, 0x02199f75, 0x01b2a11a, 0x0037e2ac}}}, + {X: Field{[10]uint32{0x00b00c95, 0x015c73fa, 0x03c3a091, 0x0023d240, 0x02163ce6, 0x0126a5d8, 0x02b1e761, 0x0326aae2, 0x00ac2025, 0x001d5f7d}}, Y: Field{[10]uint32{0x03a03430, 0x0353b337, 0x018c4a37, 0x032d343f, 0x01c56bd7, 0x014001d9, 0x0115ab76, 0x0317611f, 0x01feab36, 0x003fc2bd}}}, + {X: Field{[10]uint32{0x004c27e1, 0x01c10262, 0x015cc9aa, 0x03a1142e, 0x020ce09d, 0x0078ecbc, 0x03319a08, 0x01626f44, 0x02527156, 0x00229a5e}}, Y: Field{[10]uint32{0x0151f39d, 0x0027e1ab, 0x03ca13df, 0x039aefc0, 0x015a5edd, 0x00ccb576, 0x032815ad, 0x027a78df, 0x013cb602, 0x00027bae}}}, + {X: Field{[10]uint32{0x018c721b, 0x035838f9, 0x000b1650, 0x026f53d3, 0x01d35eb8, 0x00dea135, 0x03c2198e, 0x0382c5b3, 0x018736f9, 0x002c2eda}}, Y: Field{[10]uint32{0x016e00dc, 0x018d8efb, 0x001ebb3b, 0x0054bd23, 0x010b8556, 0x02ce3a0b, 0x009808f0, 0x02d405bc, 0x0200ce25, 0x000cf56c}}}, + {X: Field{[10]uint32{0x0037efed, 0x006d5172, 0x022d8d9f, 0x017a41ab, 0x03ef6d6f, 0x034be3fd, 0x037882a0, 0x0118d098, 0x01de5dde, 0x0007283b}}, Y: Field{[10]uint32{0x002863bc, 0x027af6aa, 0x02e41acb, 0x013eb163, 0x024c4d3a, 0x017ae7cf, 0x015d4c0f, 0x01a0f69f, 0x01ae4cff, 0x00067bed}}}, + {X: Field{[10]uint32{0x01474aa7, 0x03f10893, 0x0121ed90, 0x006b793a, 0x01d59ad1, 0x00786dd9, 0x02849310, 0x0395f59a, 0x030eb9a4, 0x001e0396}}, Y: Field{[10]uint32{0x033ab811, 0x024c8304, 0x016a3d33, 0x03fd0614, 0x001d8f34, 0x01e6a8e9, 0x02579f4c, 0x017c84b6, 0x00cc58cc, 0x0017af67}}}, + {X: Field{[10]uint32{0x00eb4c9d, 0x01a1b68d, 0x01468edf, 0x026952fc, 0x0330ec07, 0x037c8429, 0x02af620c, 0x021414b4, 0x00e93980, 0x003dfa4b}}, Y: Field{[10]uint32{0x00f93666, 0x03deae5e, 0x035857b1, 0x0259ea22, 0x0257c234, 0x00bc52b6, 0x03d54c03, 0x02a58563, 0x01cfe113, 0x000b1567}}}, + {X: Field{[10]uint32{0x0289f938, 0x01f69712, 0x036f54bc, 0x02909a4c, 0x013a5688, 0x00360358, 0x01ff8092, 0x00829e3e, 0x022075bb, 0x000f0ebe}}, Y: Field{[10]uint32{0x03888c8d, 0x03cfe71e, 0x0132b978, 0x0364fc74, 0x023bd836, 0x0190d7c8, 0x023a9f54, 0x00d75b95, 0x03081dd2, 0x001fbce0}}}, + {X: Field{[10]uint32{0x022097ee, 0x03ec557c, 0x01115af4, 0x03700c06, 0x0389fb9e, 0x01f95848, 0x01ec59e0, 0x03e6d5d7, 0x001dee60, 0x001c75bc}}, Y: Field{[10]uint32{0x0080bfee, 0x0011c387, 0x016802ef, 0x03483abc, 0x0138da4f, 0x02d050c8, 0x0054091f, 0x028d714a, 0x02454a31, 0x00387330}}}, + {X: Field{[10]uint32{0x00c4fa2d, 0x03dd6e4e, 0x036ea1f5, 0x00c7162a, 0x02b107fc, 0x039895f7, 0x00a77b28, 0x03b20242, 0x020f5705, 0x0025c999}}, Y: Field{[10]uint32{0x008cd4c1, 0x021a526d, 0x000c690c, 0x039c23a9, 0x01d3636f, 0x01b6c319, 0x018c213b, 0x0347a584, 0x03ae3102, 0x00253301}}}, + {X: Field{[10]uint32{0x02802719, 0x000ab0ac, 0x004b87fd, 0x004bb07f, 0x02297fad, 0x01fa2d8c, 0x011a1a29, 0x0286bc1a, 0x00c754b2, 0x002b3974}}, Y: Field{[10]uint32{0x039f85eb, 0x03252162, 0x008581f4, 0x032b4934, 0x027fc843, 0x03c6235a, 0x02491f05, 0x01c973ae, 0x03248d3e, 0x002493e7}}}, + {X: Field{[10]uint32{0x01943f64, 0x0159ace1, 0x018b88fa, 0x03f588ba, 0x028200ea, 0x00e2928a, 0x01778f28, 0x003fc333, 0x006b3480, 0x003e944c}}, Y: Field{[10]uint32{0x0296e293, 0x01721c50, 0x015c85f0, 0x015eb4d3, 0x0104b677, 0x0324ad43, 0x00ee030f, 0x0121ce87, 0x02166b14, 0x002d83b9}}}, + {X: Field{[10]uint32{0x01bea60a, 0x0275610b, 0x030f17c1, 0x0165845c, 0x000b716a, 0x0163abf3, 0x00097ee4, 0x009699e7, 0x0018329d, 0x002177e4}}, Y: Field{[10]uint32{0x017ab0fa, 0x03a24462, 0x0180ae62, 0x031bcbda, 0x00b7bc64, 0x039e1ddd, 0x01ad7c09, 0x008473a6, 0x01b6046d, 0x00315575}}}, + {X: Field{[10]uint32{0x00af5e3a, 0x02627389, 0x037f3efb, 0x03d1e018, 0x01337ff5, 0x0398d2a6, 0x0061b52a, 0x01119ead, 0x000dc202, 0x000bddf0}}, Y: Field{[10]uint32{0x005e3e39, 0x0039fea4, 0x0325303f, 0x039ebbca, 0x020c5d28, 0x039fbee9, 0x00c52b0b, 0x03eaf61c, 0x0278ebcb, 0x0031fd29}}}, + {X: Field{[10]uint32{0x028bb34e, 0x03123088, 0x0200158f, 0x03d6c3bd, 0x011f238d, 0x02e00afd, 0x036a4997, 0x0143583f, 0x023a7200, 0x0014b628}}, Y: Field{[10]uint32{0x003d9136, 0x00c0b6e0, 0x000f2ccd, 0x004b245e, 0x02cebb18, 0x030c31e1, 0x02d29b51, 0x02386858, 0x01a7861b, 0x00262ba0}}}, + {X: Field{[10]uint32{0x0212b211, 0x003b6c5c, 0x022fd37b, 0x008901d1, 0x00701daf, 0x01d556d7, 0x03b83204, 0x0001248b, 0x0079eaca, 0x0029fcf9}}, Y: Field{[10]uint32{0x03bdaada, 0x019402e7, 0x03ae8e92, 0x01f311db, 0x013e3376, 0x006eb00e, 0x0268498d, 0x029f05ee, 0x010c8c4c, 0x00203d86}}}, + {X: Field{[10]uint32{0x02356103, 0x01181f28, 0x00880ea0, 0x0264023d, 0x0373db57, 0x0108e0ab, 0x03bf4d79, 0x034c9986, 0x0150e67b, 0x000c7bcc}}, Y: Field{[10]uint32{0x00a9a8ee, 0x020d2c6a, 0x00954631, 0x01ab8f4b, 0x01bc03c4, 0x012c5bb5, 0x0350bb51, 0x00a3464e, 0x01d6655d, 0x001f6e3d}}}, + {X: Field{[10]uint32{0x038b058d, 0x03b8914e, 0x031fceab, 0x034e1a04, 0x00599b0c, 0x00bb7a8c, 0x02d1ee35, 0x000a64e6, 0x0155469c, 0x003ba0bc}}, Y: Field{[10]uint32{0x0092b10c, 0x00bfcc14, 0x00400eed, 0x0263c0e5, 0x0032de93, 0x02b6e263, 0x01d9ed6c, 0x030b10ab, 0x014e2d77, 0x003f4303}}}, + {X: Field{[10]uint32{0x016b4586, 0x0347df95, 0x0073e206, 0x0242d15a, 0x01273549, 0x0281c55d, 0x01f7d458, 0x0375bc2a, 0x007abfce, 0x00037b1f}}, Y: Field{[10]uint32{0x007200c4, 0x0060041d, 0x0327673c, 0x031ee172, 0x002c7626, 0x01e7f8c8, 0x02f0912b, 0x025fd061, 0x02b4cad5, 0x002be106}}}, + {X: Field{[10]uint32{0x00d2369d, 0x02cd347d, 0x0362e526, 0x004bb921, 0x002bf34f, 0x01466f60, 0x011ba405, 0x01bfa5d6, 0x037048cd, 0x0030a38c}}, Y: Field{[10]uint32{0x00636e8b, 0x003ac5fc, 0x01a647d5, 0x0148e4c9, 0x03b8640f, 0x025dae84, 0x0086dba6, 0x019cc5fd, 0x03ddda45, 0x0003802a}}}, + {X: Field{[10]uint32{0x03222195, 0x011448f7, 0x01a93071, 0x00c473c1, 0x01370277, 0x003c8d4c, 0x0029e9db, 0x017d9403, 0x00a92c27, 0x0011c55f}}, Y: Field{[10]uint32{0x01cbef6e, 0x003833a2, 0x00dc4f43, 0x01cacd3e, 0x009fefeb, 0x0107321d, 0x007e9ed4, 0x03f496be, 0x03fac911, 0x001922c5}}}, + {X: Field{[10]uint32{0x00a73241, 0x01c6991b, 0x03868f54, 0x014e9eac, 0x039a0a92, 0x027fc651, 0x01b55037, 0x014f3b60, 0x0302745c, 0x00213445}}, Y: Field{[10]uint32{0x01f858c5, 0x0382f089, 0x016b62c0, 0x03076359, 0x01fc593e, 0x01139933, 0x03b13536, 0x0021e93b, 0x02a20c3c, 0x0013c5ad}}}, + {X: Field{[10]uint32{0x03d63fc9, 0x02f8b5e5, 0x02dccb7f, 0x00a23a46, 0x03c74e81, 0x02a20471, 0x02b2f28e, 0x0182e1ac, 0x00221960, 0x000eee8c}}, Y: Field{[10]uint32{0x0334e286, 0x00f4a8a9, 0x02f3a9d7, 0x0262db9f, 0x00879d3f, 0x03a93d53, 0x03c5aa12, 0x014dce9d, 0x014af094, 0x001fcd01}}}, + {X: Field{[10]uint32{0x00651c6b, 0x03a281a6, 0x038f4425, 0x001aaa14, 0x00b9f746, 0x00f5039c, 0x037485ab, 0x01850c90, 0x03f47a2c, 0x0002158d}}, Y: Field{[10]uint32{0x03396054, 0x0002b664, 0x00096c35, 0x00c68c34, 0x02f76e85, 0x020e940d, 0x03075760, 0x00ac799e, 0x01d56fb4, 0x002f1aa5}}}, + {X: Field{[10]uint32{0x01bbd123, 0x01bb4c53, 0x0167d8ea, 0x010a902a, 0x02e8021a, 0x034f150f, 0x02d1605d, 0x00066887, 0x02985e75, 0x00094c0b}}, Y: Field{[10]uint32{0x02797a83, 0x02936399, 0x010f3267, 0x00e447f7, 0x01c02206, 0x004dc4fe, 0x02f9b4ba, 0x01d64751, 0x03e02309, 0x00212732}}}, + {X: Field{[10]uint32{0x003bea40, 0x01fd793d, 0x01f8e411, 0x003edae1, 0x03485fde, 0x029c82b8, 0x00d73dab, 0x024f8f02, 0x00bf88e3, 0x0039668c}}, Y: Field{[10]uint32{0x0197dfd5, 0x02112618, 0x02fb4422, 0x01921e1c, 0x0383ebbb, 0x00f92fe0, 0x00fa6bd3, 0x032cdc68, 0x024fe222, 0x001bf5e0}}}, + {X: Field{[10]uint32{0x02247e4e, 0x03e060fd, 0x025bda83, 0x0074b04d, 0x02de0533, 0x024d778b, 0x01e9bc3b, 0x00698162, 0x01f69798, 0x0031640b}}, Y: Field{[10]uint32{0x0175fe3c, 0x016b1f4b, 0x02c91f86, 0x01bae4f6, 0x0121d073, 0x03fadf38, 0x035ecb58, 0x0147bc6a, 0x014f5af5, 0x00319fac}}}, + {X: Field{[10]uint32{0x015e66ad, 0x02ad3983, 0x00c1b277, 0x0270b9b1, 0x01b8b640, 0x0138f202, 0x039a9b47, 0x0049fb19, 0x02c7fe27, 0x0037e2f6}}, Y: Field{[10]uint32{0x017d43e1, 0x02c409dc, 0x02dc7645, 0x01bf0099, 0x00273825, 0x00bad1c2, 0x01802ed7, 0x00e25953, 0x03e49f0b, 0x000ffc9b}}}, + {X: Field{[10]uint32{0x0065a82c, 0x0233dd8b, 0x02cf3f1e, 0x00942459, 0x009eff91, 0x0204357c, 0x01c7c02b, 0x02e32b0e, 0x004e9c7c, 0x00075550}}, Y: Field{[10]uint32{0x02a7632f, 0x02ee6f6c, 0x00707c24, 0x03a82681, 0x03e5a760, 0x00bf1348, 0x0099f64a, 0x03228d71, 0x0023f6a1, 0x00305e1c}}}, + {X: Field{[10]uint32{0x01f43b44, 0x03b82203, 0x034ef804, 0x02599e86, 0x002d040e, 0x01617914, 0x0106073d, 0x03f7eda1, 0x00c9b035, 0x000d7ce4}}, Y: Field{[10]uint32{0x03f512a2, 0x01768e2f, 0x010383c5, 0x00ab690f, 0x004c3cad, 0x003ae5d5, 0x0036fec5, 0x0362ddf7, 0x018886aa, 0x001aa173}}}, + {X: Field{[10]uint32{0x01e059b0, 0x01d13131, 0x006d588f, 0x01bb50f4, 0x011d2278, 0x0091273f, 0x02d7005b, 0x023e9bc9, 0x000dee88, 0x003eec21}}, Y: Field{[10]uint32{0x01b8d3bf, 0x034ac973, 0x005a6508, 0x03d2f4f5, 0x02203b05, 0x03d946eb, 0x00ffa219, 0x01c3c8e9, 0x014fd89a, 0x00191814}}}, + {X: Field{[10]uint32{0x034d78d7, 0x02049c68, 0x00ac9ce4, 0x0384cd4f, 0x0161fa0a, 0x01a4c7a4, 0x0208ac46, 0x01d77111, 0x00f01c22, 0x0009015b}}, Y: Field{[10]uint32{0x03c7751f, 0x0286d8f2, 0x011bf7dd, 0x028361a9, 0x01965a3f, 0x00d2949d, 0x003088f4, 0x020746fc, 0x03c67e73, 0x0010faf4}}}, + {X: Field{[10]uint32{0x00f9cd78, 0x02465c9c, 0x01297e77, 0x01175f9c, 0x0354f9f7, 0x035cbdac, 0x007c938c, 0x01f1e238, 0x03dfe844, 0x000ec410}}, Y: Field{[10]uint32{0x0240d6fc, 0x03c4a697, 0x0050c34a, 0x0184385b, 0x03b67ba3, 0x00ac6171, 0x02c29d4b, 0x03544449, 0x00c4abf0, 0x000a380a}}}, + {X: Field{[10]uint32{0x01a040e6, 0x03b7481a, 0x03a81a5b, 0x023d715d, 0x008088b0, 0x018d6017, 0x0175b236, 0x00d8e203, 0x01d14179, 0x002bbe42}}, Y: Field{[10]uint32{0x0200dc51, 0x006edf21, 0x03382d8a, 0x03007125, 0x0293350c, 0x03d028fe, 0x00c2b43d, 0x01adb174, 0x006f0de2, 0x00032ed3}}}, + {X: Field{[10]uint32{0x02833f28, 0x027e74f2, 0x007ac02c, 0x02e043d0, 0x03913367, 0x03c8a6f1, 0x0359aef5, 0x00c72dbf, 0x00f73863, 0x00323525}}, Y: Field{[10]uint32{0x010de4d2, 0x02a9d2ec, 0x01a67e70, 0x009e358b, 0x00c7b850, 0x034fbc45, 0x01afdacb, 0x0217534e, 0x02f94b62, 0x0032cb1d}}}, + {X: Field{[10]uint32{0x00f75b28, 0x00e44e4d, 0x033f5f4f, 0x005dbf97, 0x03c1b52e, 0x00779ed7, 0x00744437, 0x0328c8f7, 0x03f7af14, 0x00096bf3}}, Y: Field{[10]uint32{0x0142b789, 0x01c5c89a, 0x03781752, 0x03ed2bd2, 0x025010cd, 0x03541699, 0x031f57f8, 0x01fa5db2, 0x00a47f9d, 0x003619e9}}}, + {X: Field{[10]uint32{0x0132e2c7, 0x03658c8f, 0x022f819a, 0x00b5dc23, 0x01d40768, 0x022f5cb9, 0x02c220dc, 0x024c361c, 0x0086f773, 0x000090db}}, Y: Field{[10]uint32{0x00ab67a5, 0x02737aa2, 0x01662bc8, 0x021cdfc0, 0x0320a958, 0x0138501f, 0x00de6902, 0x0198f311, 0x01ea92af, 0x001b8e5b}}}, + {X: Field{[10]uint32{0x007f349d, 0x03d34945, 0x0056b0d0, 0x02e1fcf3, 0x0257638b, 0x0064567b, 0x00bcb86e, 0x00cf1e44, 0x03d59e57, 0x001873ba}}, Y: Field{[10]uint32{0x02fadb9e, 0x012c573c, 0x02aef3e7, 0x023e18a0, 0x027d8521, 0x01068c3a, 0x023082e7, 0x03b423ed, 0x0145e9b0, 0x000aa141}}}, + {X: Field{[10]uint32{0x00b6c187, 0x03a05fad, 0x0116dd77, 0x039b840b, 0x030dcbfe, 0x0278a91b, 0x0391a737, 0x0001c50a, 0x03b5d45d, 0x0016844c}}, Y: Field{[10]uint32{0x00d492e1, 0x03c0c14a, 0x0381f0f6, 0x03a3ce63, 0x0134c1c2, 0x00ce92df, 0x01c05171, 0x036710f2, 0x02aeafd6, 0x000bff65}}}, + {X: Field{[10]uint32{0x0163c8ac, 0x00e343d1, 0x0129309c, 0x0244c537, 0x01fff0f1, 0x0372c4ee, 0x02b5abe8, 0x006d04a7, 0x00498b70, 0x002dd28e}}, Y: Field{[10]uint32{0x00b9014f, 0x02599e67, 0x01186ffa, 0x00a3e10c, 0x01689be5, 0x0299de15, 0x00d6f7c5, 0x0083f619, 0x0257e50a, 0x00276113}}}, + {X: Field{[10]uint32{0x0389d26c, 0x032c8117, 0x024b752f, 0x01b2992a, 0x008e9a80, 0x02a54ab5, 0x011c3375, 0x0082d0ff, 0x00d04afb, 0x0030d727}}, Y: Field{[10]uint32{0x01a9c65a, 0x021de49e, 0x015a4b7e, 0x030fc1a7, 0x0248c765, 0x0278656c, 0x0279d841, 0x03bf2f7b, 0x02aa4a83, 0x002c1071}}}, + {X: Field{[10]uint32{0x00b82b96, 0x022b4df4, 0x025e8fea, 0x037b96db, 0x0311703d, 0x01e45075, 0x00b2af44, 0x01a2cfc1, 0x02587538, 0x0026a16a}}, Y: Field{[10]uint32{0x03d75d27, 0x0366549e, 0x005f2551, 0x0104efd2, 0x024e0620, 0x00cfb189, 0x00b80752, 0x03c0ef49, 0x00abaa16, 0x0011971c}}}, + {X: Field{[10]uint32{0x0086fe14, 0x03ac15d7, 0x0061bd12, 0x028f3e93, 0x01b3e825, 0x02f48fd2, 0x0183c14c, 0x03cf944b, 0x03cce051, 0x000fb1c6}}, Y: Field{[10]uint32{0x01915bdc, 0x017c17ba, 0x00007db3, 0x00ea6a54, 0x0245caba, 0x000cfc6a, 0x0294c5ab, 0x0295a954, 0x021de2da, 0x003c6630}}}, + {X: Field{[10]uint32{0x0359ae63, 0x0123c02c, 0x01b45aea, 0x01e4dcdf, 0x036b09e5, 0x00d6fccf, 0x0010e235, 0x007b7824, 0x0222939e, 0x003b872f}}, Y: Field{[10]uint32{0x021b90a5, 0x01e005e4, 0x0228d471, 0x0367794c, 0x01acecb6, 0x036adaa4, 0x037d2971, 0x0137d89f, 0x0026d444, 0x002fd810}}}, + {X: Field{[10]uint32{0x0346073e, 0x03c32659, 0x01ee78dc, 0x00aef222, 0x035a8cd9, 0x03fd3409, 0x007677d1, 0x00e98bbd, 0x03e171de, 0x003af2fc}}, Y: Field{[10]uint32{0x02f6ebe8, 0x00fd5d27, 0x03f9805c, 0x02428e08, 0x0195c6d8, 0x00b6b7ae, 0x014a3f30, 0x01c89024, 0x03c7bc9c, 0x0021e358}}}, + {X: Field{[10]uint32{0x039db797, 0x006cbf6a, 0x01ae56e8, 0x00c30243, 0x01b60664, 0x01654836, 0x03c57d52, 0x03bc56e1, 0x02e4ce72, 0x00393a4b}}, Y: Field{[10]uint32{0x015f944c, 0x03da5959, 0x00217ebe, 0x0232707e, 0x026d2183, 0x0161dd14, 0x01f47dbf, 0x029d4d56, 0x00654a03, 0x000feab1}}}, + {X: Field{[10]uint32{0x02ac1cc1, 0x010b7437, 0x03d635bc, 0x0319f078, 0x03cf275f, 0x00bac7d9, 0x00ef7431, 0x00ac0ded, 0x03588e29, 0x003f0739}}, Y: Field{[10]uint32{0x025186d7, 0x01e58f79, 0x019b42fe, 0x024b08e2, 0x02495bc3, 0x032bf2de, 0x03c791e8, 0x0366bdfd, 0x01bf44f7, 0x0005dade}}}, + {X: Field{[10]uint32{0x0294fc56, 0x031c15ae, 0x0091f9e9, 0x00eae5e9, 0x0149482b, 0x03257be1, 0x02a86b21, 0x01a9b1a4, 0x03ff179e, 0x003c7d6f}}, Y: Field{[10]uint32{0x0239e143, 0x009613e2, 0x0209313a, 0x00484318, 0x00670415, 0x030aab9c, 0x00f06205, 0x00ef0fed, 0x03a8a2cd, 0x000e2495}}}, + {X: Field{[10]uint32{0x03793eb9, 0x0113f5aa, 0x03323ac7, 0x00b9d230, 0x012c7aaa, 0x005d6850, 0x02bfef8d, 0x038006e9, 0x001461c3, 0x0026039d}}, Y: Field{[10]uint32{0x0331826c, 0x029d8946, 0x00259c7f, 0x00e98db1, 0x0134cbb3, 0x010a1801, 0x00dde28d, 0x017a0ecf, 0x01ae29e0, 0x001b8df7}}}, + {X: Field{[10]uint32{0x01b1c179, 0x0095fb68, 0x0207f66a, 0x029a9bde, 0x01adb7fa, 0x039b0655, 0x01986dc7, 0x01495c1c, 0x03f7686a, 0x003d4673}}, Y: Field{[10]uint32{0x0255a807, 0x03ae3c82, 0x0297f09e, 0x03b470c7, 0x03174ed4, 0x024ee140, 0x001d008a, 0x017261e5, 0x02b08c76, 0x000fa00f}}}, + {X: Field{[10]uint32{0x028f8061, 0x0389d56e, 0x00eee144, 0x00e443b7, 0x009011d9, 0x02f31730, 0x029bafd0, 0x03faa46e, 0x01ea3851, 0x000b7636}}, Y: Field{[10]uint32{0x01a52ae3, 0x03f81347, 0x00dc1365, 0x02a73a5c, 0x007adfde, 0x03bd4986, 0x00d058b4, 0x011a24df, 0x01afd422, 0x001851fc}}}, + {X: Field{[10]uint32{0x0054a4ae, 0x03f5e005, 0x01b35ede, 0x02335f42, 0x032854f8, 0x02a803d8, 0x02c0c415, 0x00d4dd1e, 0x02620948, 0x00218310}}, Y: Field{[10]uint32{0x033392f4, 0x039b8bb5, 0x01cef95c, 0x028a014d, 0x01d15378, 0x03bbc361, 0x03dfc561, 0x01b49639, 0x022a7d82, 0x0028a9e8}}}, + {X: Field{[10]uint32{0x02d732a6, 0x01eb42eb, 0x00b28ae9, 0x0240b259, 0x01e0697f, 0x0014d482, 0x007d4ea2, 0x00b0f426, 0x00ec17d8, 0x0039dac8}}, Y: Field{[10]uint32{0x03f54bf0, 0x02092499, 0x038f4ad1, 0x00df665f, 0x0132bc11, 0x0311fdc0, 0x037cec9c, 0x0184eff6, 0x00b685f6, 0x00325e11}}}, + {X: Field{[10]uint32{0x0110ab88, 0x0157bf42, 0x007a6504, 0x03378f41, 0x03718ec9, 0x00a905ed, 0x02862b16, 0x0296098d, 0x010d12fb, 0x00099cc7}}, Y: Field{[10]uint32{0x03542192, 0x029c7f26, 0x017143b1, 0x00251ee9, 0x028d2986, 0x001cdb5b, 0x022023bb, 0x0129841b, 0x03b30b46, 0x000f043b}}}, + {X: Field{[10]uint32{0x0224dcde, 0x0177e768, 0x00ea8986, 0x003a2cb6, 0x003fc457, 0x0340536c, 0x03e46f5e, 0x02046a1f, 0x007852db, 0x001432d2}}, Y: Field{[10]uint32{0x0339621d, 0x012f60e2, 0x006f95d5, 0x0234c0f4, 0x00c69db4, 0x00403914, 0x03572a0c, 0x02ba2623, 0x00a87937, 0x002ee122}}}, + {X: Field{[10]uint32{0x03b02a60, 0x03bac87f, 0x03a0e7eb, 0x01372ca2, 0x03064b0c, 0x02cfeb97, 0x00f9fb92, 0x03ff6d9c, 0x013b1d67, 0x003eda51}}, Y: Field{[10]uint32{0x00fd2c39, 0x00c0fba9, 0x024ca41e, 0x02bd1dcd, 0x00d1ba17, 0x0210483e, 0x03b13879, 0x0206d8fa, 0x033692d8, 0x002c3f7b}}}, + {X: Field{[10]uint32{0x03b249b4, 0x01dc1b62, 0x03b9938c, 0x00695b6e, 0x0103f406, 0x028fde13, 0x03aec4fe, 0x00089867, 0x000b4b72, 0x002a3c4a}}, Y: Field{[10]uint32{0x0239b8cc, 0x01c0fd1b, 0x019d4484, 0x02e6f07f, 0x03a97e12, 0x02f9ef8c, 0x032e5014, 0x01644d15, 0x0171ac50, 0x003aeced}}}, + {X: Field{[10]uint32{0x02acaa98, 0x012409db, 0x02bb878b, 0x0306f066, 0x02420f83, 0x00265805, 0x03cb3be3, 0x015e43c5, 0x0209df30, 0x0010a4b3}}, Y: Field{[10]uint32{0x00745d36, 0x02a89207, 0x022f9aa2, 0x016d9d1b, 0x00f32c8d, 0x01186ddb, 0x00f18733, 0x0074760b, 0x014cbf2b, 0x0006c536}}}, + {X: Field{[10]uint32{0x00c9464f, 0x029561e9, 0x0305b8c5, 0x00b25e5a, 0x038e1a06, 0x02720fe3, 0x03967504, 0x01d1fc2d, 0x0177f16f, 0x002b0904}}, Y: Field{[10]uint32{0x0176cf58, 0x028ed764, 0x0341d1cb, 0x0173bd72, 0x03266b69, 0x00c195a1, 0x004eb037, 0x034113b2, 0x01038261, 0x0037415d}}}, + {X: Field{[10]uint32{0x011823d3, 0x0349515d, 0x00e7dd7f, 0x026e1ac6, 0x0278e75c, 0x033dfe11, 0x019d640a, 0x00b695ff, 0x027326bf, 0x001a4bb2}}, Y: Field{[10]uint32{0x01c8e97f, 0x01ff74dc, 0x033478f1, 0x01413fc0, 0x02014c38, 0x02275876, 0x01573202, 0x029e2861, 0x0062548e, 0x0005f5b5}}}, + {X: Field{[10]uint32{0x0310e216, 0x00f316db, 0x01889e82, 0x03534bd6, 0x01d0e129, 0x0300b9bd, 0x02cf946e, 0x01404793, 0x024455ef, 0x003406c6}}, Y: Field{[10]uint32{0x03f91a0f, 0x015ab995, 0x03988345, 0x038ce237, 0x01807879, 0x01927d7f, 0x00f38f21, 0x00fb7755, 0x009e55e3, 0x00212936}}}, + {X: Field{[10]uint32{0x03fc1e9b, 0x0242f1e6, 0x030f12f8, 0x0308e4cc, 0x03fb0798, 0x023ca833, 0x0273a671, 0x02236024, 0x01f296a7, 0x0007ae98}}, Y: Field{[10]uint32{0x01dc9661, 0x01f3574b, 0x03266bc4, 0x03027b84, 0x03505da2, 0x01b12dab, 0x030a6a6b, 0x004118b7, 0x00cbe847, 0x00227ca6}}}, + {X: Field{[10]uint32{0x015980ea, 0x02da35d0, 0x015489c9, 0x032ac69b, 0x010a2300, 0x0087b730, 0x009fe1f7, 0x00c48519, 0x00da9460, 0x0009b7fe}}, Y: Field{[10]uint32{0x00004e60, 0x03685724, 0x037139d3, 0x017e5fd6, 0x033c4a0a, 0x03ee5523, 0x0365862e, 0x02ef7f0e, 0x022155e1, 0x00360992}}}, + {X: Field{[10]uint32{0x023fe676, 0x00ef03cc, 0x01047cee, 0x03729b89, 0x01a3116a, 0x020fa7ac, 0x035f64f2, 0x00608849, 0x0351425e, 0x0013990a}}, Y: Field{[10]uint32{0x01eafbb2, 0x01a288e2, 0x0174247a, 0x0283b49f, 0x0165b9c5, 0x030d7537, 0x011db0ab, 0x011a3125, 0x01659125, 0x003ca2df}}}, + {X: Field{[10]uint32{0x00f448a2, 0x034b869e, 0x02b21e94, 0x0033a709, 0x03b4f370, 0x033a91da, 0x027c97b4, 0x009f6cdf, 0x035cee9a, 0x000d52bf}}, Y: Field{[10]uint32{0x0130fcdb, 0x0027218a, 0x00dd5977, 0x0345b29e, 0x0299b4c4, 0x03da9e53, 0x012d0082, 0x01e7958e, 0x03d1624b, 0x00235a41}}}, + {X: Field{[10]uint32{0x03fbdc3d, 0x002e55a3, 0x039dcd57, 0x03b97d26, 0x01e76995, 0x002d97dd, 0x029f020c, 0x01a7fa3d, 0x00749493, 0x0014a1b4}}, Y: Field{[10]uint32{0x039703ab, 0x020779a1, 0x005e2027, 0x00fac5ac, 0x00e0a23d, 0x01f9bb80, 0x0062a452, 0x03103079, 0x02e53dd2, 0x000957bc}}}, + {X: Field{[10]uint32{0x0268add7, 0x0357d80c, 0x0121c266, 0x02e1bf78, 0x026bddee, 0x02a24d64, 0x00c8ff91, 0x008a666b, 0x0346c86e, 0x002e12a0}}, Y: Field{[10]uint32{0x0320789f, 0x02d00efb, 0x020a3f65, 0x034f62fa, 0x0329f5c8, 0x00791965, 0x0380c878, 0x0008e386, 0x028c79f4, 0x000c45e6}}}, + {X: Field{[10]uint32{0x0112bb94, 0x039e1cb7, 0x0067e0fd, 0x009e408b, 0x031b9dfc, 0x013f1470, 0x018b9f11, 0x02694089, 0x01e663fc, 0x00079ef5}}, Y: Field{[10]uint32{0x002c1b84, 0x01847c83, 0x00b6b927, 0x03f9b647, 0x0107acce, 0x01dfba2d, 0x0250f11e, 0x02c519f4, 0x01b40555, 0x0018a1ea}}}, + {X: Field{[10]uint32{0x03d2bc81, 0x01acab4d, 0x038da9c9, 0x0311535a, 0x029d28ac, 0x0399cb29, 0x01cfde6b, 0x027af9e9, 0x02213728, 0x001fb9a2}}, Y: Field{[10]uint32{0x0170c83e, 0x00f6e131, 0x01dcc8a5, 0x02fadeb3, 0x0303d7dc, 0x02c93808, 0x028aeee9, 0x030f2bca, 0x006400a6, 0x000fb0d0}}}, + {X: Field{[10]uint32{0x00ce570e, 0x0364533e, 0x0033f8d4, 0x01d59f0f, 0x02f3adef, 0x029ae9eb, 0x0107fddd, 0x00efeaa7, 0x010cf4be, 0x000a752c}}, Y: Field{[10]uint32{0x0058bf4c, 0x00e4b384, 0x031f2422, 0x00236fbd, 0x022ec79e, 0x031c1c36, 0x0103c252, 0x03d02903, 0x038596a4, 0x002da9d0}}}, + {X: Field{[10]uint32{0x028c359e, 0x0145b5cc, 0x039c9895, 0x00436989, 0x0350218f, 0x00b0fc14, 0x012a43b4, 0x03591f8c, 0x01d95c5c, 0x001e41f1}}, Y: Field{[10]uint32{0x00d6a625, 0x007261d9, 0x005d4c8f, 0x01e163e6, 0x00268883, 0x037bab06, 0x02bca52f, 0x00a86fca, 0x01e1ec06, 0x001b196a}}}, + {X: Field{[10]uint32{0x019d31b1, 0x0252e365, 0x030adfc9, 0x015714d0, 0x02e5bc2c, 0x031a3f3e, 0x0014fe7b, 0x02ef0cd8, 0x02aece11, 0x003310db}}, Y: Field{[10]uint32{0x029706a2, 0x032492fe, 0x02db3a50, 0x00e59b5f, 0x016b2bd5, 0x01814a61, 0x004e6089, 0x02fd9359, 0x01e7d6ff, 0x00058583}}}, + {X: Field{[10]uint32{0x010ec1f0, 0x006d8805, 0x01bea735, 0x002c052b, 0x021b5fb3, 0x008e77e8, 0x0259d556, 0x010806b9, 0x015d278d, 0x0033c08f}}, Y: Field{[10]uint32{0x00990741, 0x00553935, 0x005749e5, 0x02dc15f5, 0x0034c473, 0x015d736d, 0x031c26e7, 0x0301e9b9, 0x0395ffce, 0x0035801c}}}, + {X: Field{[10]uint32{0x03746a21, 0x00104979, 0x0238d71b, 0x015fa01e, 0x0112b6a2, 0x03151ed8, 0x0135b732, 0x03166f53, 0x0093f718, 0x000068a8}}, Y: Field{[10]uint32{0x00fd4c95, 0x024d51e6, 0x03919f8b, 0x02c1760f, 0x0216c0f8, 0x02491e5b, 0x02cadcc3, 0x028e6868, 0x0142652f, 0x00099d2d}}}, + {X: Field{[10]uint32{0x02b799d7, 0x02496dfb, 0x00215fac, 0x031c1aa1, 0x02f712e4, 0x00893feb, 0x018fdff0, 0x02b145d4, 0x002004b8, 0x0014d3b5}}, Y: Field{[10]uint32{0x03d82155, 0x00204636, 0x01439c07, 0x00bf4933, 0x00fa3078, 0x01db7eba, 0x03e497f5, 0x00667ee7, 0x00523ea6, 0x0000d796}}}, + {X: Field{[10]uint32{0x0200d08e, 0x03613052, 0x0138cf11, 0x01ace898, 0x03e9ba64, 0x03d2c115, 0x038ff188, 0x00c2b9b1, 0x00ad9e6f, 0x00234c79}}, Y: Field{[10]uint32{0x01d5feb2, 0x00e6f353, 0x02996478, 0x03352cc3, 0x03e4b0b1, 0x0112caa1, 0x01e36a48, 0x025b04e8, 0x03c19093, 0x003c36fb}}}, + {X: Field{[10]uint32{0x012b3412, 0x0057f48b, 0x0315954c, 0x027e1adc, 0x03c41843, 0x01bfdfdc, 0x02643791, 0x01016afd, 0x00520267, 0x00205d21}}, Y: Field{[10]uint32{0x00f19bbc, 0x03cfd768, 0x02ba7cb3, 0x03f4a02f, 0x029f6f95, 0x02587d6b, 0x00093899, 0x02d42c05, 0x009b0435, 0x0004f448}}}, + {X: Field{[10]uint32{0x0258aaa3, 0x008e11c1, 0x0212a6cc, 0x01c15fbf, 0x02458422, 0x037ce032, 0x024552be, 0x03a21401, 0x0372e604, 0x002f2a1f}}, Y: Field{[10]uint32{0x039e3d0e, 0x03a0aeb7, 0x0184b54e, 0x02355d4b, 0x03af2653, 0x01dae88f, 0x00123c62, 0x01c495cb, 0x02f528b7, 0x003b9422}}}, + {X: Field{[10]uint32{0x03cd3fb2, 0x016460df, 0x03c52e8c, 0x01184903, 0x01d527e5, 0x01b9e32e, 0x000365cd, 0x014bdb03, 0x02a9a196, 0x000378ae}}, Y: Field{[10]uint32{0x02d38905, 0x01deb287, 0x039bd733, 0x01042a73, 0x01865739, 0x01c59cb7, 0x035f2be5, 0x00cbf532, 0x00ef466c, 0x002bad06}}}, + {X: Field{[10]uint32{0x02acca9e, 0x0010e408, 0x01e5ac00, 0x02af1d99, 0x02556f6c, 0x001dc4d7, 0x00a0591c, 0x01e466d5, 0x01e914df, 0x001ee338}}, Y: Field{[10]uint32{0x00b40628, 0x02b96630, 0x007c2fb8, 0x02a7cff7, 0x00d06a96, 0x010ce295, 0x0100b720, 0x02b52430, 0x03f39cd8, 0x0029828f}}}, + {X: Field{[10]uint32{0x00a50e75, 0x0089e6fb, 0x03d1b040, 0x03f69ab0, 0x034d6d44, 0x00175d85, 0x03c80f82, 0x01d10c66, 0x017913fe, 0x00335c70}}, Y: Field{[10]uint32{0x01419064, 0x02fce31c, 0x01211967, 0x00494a2b, 0x01ae3858, 0x03d8ce4a, 0x001d1a93, 0x00e3407c, 0x03bfcf34, 0x0027c79c}}}, + {X: Field{[10]uint32{0x03ca8fe4, 0x0079151c, 0x02444f4f, 0x003845f6, 0x010619b7, 0x00205abc, 0x0236161d, 0x02370d2e, 0x002e32dc, 0x0010b2b4}}, Y: Field{[10]uint32{0x02e75568, 0x00a2a30d, 0x013c6651, 0x01fb7496, 0x0279e59d, 0x038440c6, 0x030823df, 0x0273fe21, 0x01345a25, 0x0025f2c8}}}, + {X: Field{[10]uint32{0x018ff8c7, 0x00f00f2e, 0x021f6d47, 0x015b22e7, 0x03483317, 0x00a877ea, 0x006644a6, 0x014b18a6, 0x01304f06, 0x00262a24}}, Y: Field{[10]uint32{0x01a824e8, 0x0190003a, 0x00733988, 0x02b5ecaa, 0x00b277e0, 0x00d2b521, 0x0249b3e5, 0x01a40e72, 0x02cecc50, 0x00304c3c}}}, + {X: Field{[10]uint32{0x038a4328, 0x00274bb7, 0x0345522c, 0x00a1af5e, 0x00d7a4a1, 0x021100ec, 0x03d39ff2, 0x018aa9ef, 0x00760847, 0x0008f117}}, Y: Field{[10]uint32{0x03303cde, 0x01e5522e, 0x0350af0d, 0x01d3fc30, 0x02d57cb2, 0x02c350f7, 0x0146dc7c, 0x01bd1f0f, 0x031795c4, 0x003d2adc}}}, + {X: Field{[10]uint32{0x0221d856, 0x0313431a, 0x02d343a6, 0x020c4236, 0x019e6a7b, 0x02f4df0d, 0x01416f2d, 0x0313cbd9, 0x0037d584, 0x0022dc00}}, Y: Field{[10]uint32{0x0365ca35, 0x03f1dab0, 0x00c2becd, 0x03d830c9, 0x025a172c, 0x0245a7e6, 0x00e7d866, 0x0019b53a, 0x00039ed0, 0x0020dc7b}}}, + {X: Field{[10]uint32{0x030f8a7b, 0x025f66a8, 0x00596cdb, 0x03a142ba, 0x00004f4a, 0x020fa060, 0x01d78f20, 0x01044728, 0x00a8d0fb, 0x00369859}}, Y: Field{[10]uint32{0x029a342d, 0x02e9208a, 0x0307fc7a, 0x02871e20, 0x011cc0b5, 0x00304440, 0x03caf4e1, 0x013c5e9d, 0x0063717e, 0x0003e6a1}}}, + {X: Field{[10]uint32{0x035fd6b7, 0x00b51f7a, 0x010fa220, 0x038a7980, 0x02c45924, 0x01b6df5f, 0x029b9c20, 0x02953464, 0x0165a9d1, 0x00127cdf}}, Y: Field{[10]uint32{0x006aa51e, 0x01df79da, 0x03a94ca6, 0x0256c6fb, 0x0201e648, 0x00d03050, 0x010dbba9, 0x0098a5ef, 0x038528f6, 0x003e6e6d}}}, + {X: Field{[10]uint32{0x036efa10, 0x03a714f8, 0x037ccb38, 0x00dcc219, 0x0312d808, 0x0286262a, 0x0256b78b, 0x01668006, 0x0088e268, 0x0021d57c}}, Y: Field{[10]uint32{0x02f7e478, 0x037dd7db, 0x029a9de5, 0x02a7cbda, 0x02434906, 0x0157e0fd, 0x01b4768f, 0x01ea2085, 0x013d1eec, 0x001759c0}}}, + {X: Field{[10]uint32{0x0209045c, 0x03fdddf1, 0x00534069, 0x00d2849f, 0x01a4e6d1, 0x028d7820, 0x03550fc5, 0x029b761c, 0x0396b7ab, 0x000d4c85}}, Y: Field{[10]uint32{0x00a1e832, 0x004059fc, 0x028ba6fe, 0x0072d277, 0x03c5c830, 0x03c7844c, 0x017a6804, 0x00fd3bc6, 0x0343efa9, 0x0011ffc3}}}, + {X: Field{[10]uint32{0x012559b3, 0x03a6b398, 0x0342156f, 0x03b37cac, 0x0283479f, 0x00a08ed0, 0x03ab5ea0, 0x034aef9d, 0x012b644b, 0x000eafb7}}, Y: Field{[10]uint32{0x01e32b06, 0x0216c879, 0x0008f179, 0x03e8cc39, 0x0287bbcc, 0x0078cda6, 0x01824ba1, 0x02e0604c, 0x008e6c13, 0x00109a6c}}}, + {X: Field{[10]uint32{0x00956de8, 0x0263ff1f, 0x03f775be, 0x033249e1, 0x03c14b62, 0x038c9df5, 0x003dc530, 0x0118aaa0, 0x02a22c23, 0x0038c044}}, Y: Field{[10]uint32{0x0098da40, 0x02b4da52, 0x0368a8d2, 0x01b761a4, 0x0199d90f, 0x024f9d60, 0x01f4e0ff, 0x003a2dea, 0x03d0dbb1, 0x003431f8}}}, + {X: Field{[10]uint32{0x033cd06b, 0x01cfd6e5, 0x03762f10, 0x01efc274, 0x03bcdf49, 0x02496440, 0x0147f6cb, 0x012d3cc3, 0x0058439c, 0x00018942}}, Y: Field{[10]uint32{0x0075328e, 0x01adc854, 0x0102ecd2, 0x00c0bf32, 0x0387e4c9, 0x02c390e0, 0x004407af, 0x01096156, 0x01e484ce, 0x000d0dfd}}}, + {X: Field{[10]uint32{0x00f826ea, 0x00e6b5a2, 0x0209bdcb, 0x0143ec5b, 0x0366838d, 0x003a4f8f, 0x0104bc39, 0x0133e93a, 0x0085b8c9, 0x001deb51}}, Y: Field{[10]uint32{0x006001d4, 0x02e6efe0, 0x02b736b0, 0x02d5216e, 0x0334c2ec, 0x0143b0f0, 0x03c84447, 0x021e784d, 0x005a9798, 0x00136f14}}}, + {X: Field{[10]uint32{0x02c0b7db, 0x01e4664e, 0x0066cad5, 0x033eb104, 0x003852b8, 0x02a399f9, 0x01ce3377, 0x018076e7, 0x0292e413, 0x0017734f}}, Y: Field{[10]uint32{0x00e997c9, 0x01d532e9, 0x03f85417, 0x034358d9, 0x0336996e, 0x0309e3df, 0x02760ede, 0x02d0e8c1, 0x008135ef, 0x002b3334}}}, + {X: Field{[10]uint32{0x02ff788d, 0x0309fd72, 0x01737fc8, 0x021457d6, 0x01e65ca3, 0x02e4c614, 0x01d2e6b9, 0x00147f10, 0x023badce, 0x000e8999}}, Y: Field{[10]uint32{0x00abc2bb, 0x017e26e4, 0x00113bab, 0x02e0222a, 0x009b9db0, 0x01c9cb2d, 0x030110e0, 0x03611801, 0x02abaf01, 0x000b591f}}}, + {X: Field{[10]uint32{0x00b1aec0, 0x02c025b9, 0x03ac4b8b, 0x00081419, 0x034e3b0f, 0x000900c7, 0x02fe9c2c, 0x0263f1c4, 0x02b951dc, 0x003d5f33}}, Y: Field{[10]uint32{0x03a1ea25, 0x037cc06d, 0x03bca9c4, 0x01b50e29, 0x03ddb2c6, 0x020be67e, 0x03514557, 0x03afb429, 0x03eb7a8a, 0x001a5824}}}, + {X: Field{[10]uint32{0x029b4a0c, 0x022501af, 0x029b0935, 0x00e8b6ee, 0x02df47c8, 0x0123334d, 0x01bd46c9, 0x01b8502f, 0x0378bca0, 0x002a2691}}, Y: Field{[10]uint32{0x02f366cf, 0x03e7a85b, 0x030d1d23, 0x03b7567c, 0x02939d69, 0x039e079b, 0x0398e2e4, 0x0098b48a, 0x01d69d08, 0x003d0893}}}, + {X: Field{[10]uint32{0x00b962a9, 0x00196e04, 0x01d72adf, 0x00bee8a5, 0x036a3be9, 0x03fc129b, 0x0063f4c7, 0x02091cad, 0x038184fe, 0x00191ce0}}, Y: Field{[10]uint32{0x02ce32de, 0x00dc2680, 0x010bbc97, 0x03e8c900, 0x009ba164, 0x01600134, 0x029d58dd, 0x01ba4d3f, 0x00c0d09f, 0x002f3440}}}, + {X: Field{[10]uint32{0x02dc7774, 0x033fea8e, 0x026866c7, 0x0132bf57, 0x02f7bcaa, 0x027e1c9e, 0x00196bad, 0x0078a0b8, 0x02382126, 0x00129a0e}}, Y: Field{[10]uint32{0x014ff3b0, 0x024cde25, 0x00f202cc, 0x01c6c6e5, 0x01913af3, 0x017d03fb, 0x0337f0b1, 0x026a90e6, 0x00d0ec3d, 0x002d6ae9}}}, + {X: Field{[10]uint32{0x035cb3c7, 0x030b96ae, 0x0296f53c, 0x011b9080, 0x0053fee0, 0x023b8585, 0x02cfd9eb, 0x0333510d, 0x016efdae, 0x00040978}}, Y: Field{[10]uint32{0x00c48f3b, 0x0051003c, 0x011c2253, 0x0360ef58, 0x030704e4, 0x023ce3dc, 0x019b8075, 0x024a8f85, 0x016b67ce, 0x003e01ae}}}, + {X: Field{[10]uint32{0x036650d2, 0x038ab1b6, 0x000e4552, 0x02cd6821, 0x0360039c, 0x03d9ddf1, 0x022217b7, 0x014d4dbf, 0x0009675a, 0x00185276}}, Y: Field{[10]uint32{0x01a96ca9, 0x0151416c, 0x03a11681, 0x03ca78e5, 0x02c72f07, 0x0344bde1, 0x009b03fb, 0x0022a93d, 0x036c9a98, 0x00392b98}}}, + {X: Field{[10]uint32{0x03fec47f, 0x00507530, 0x03047d8c, 0x036d3581, 0x032fff3e, 0x02ec0f74, 0x02e83274, 0x020d0953, 0x01124388, 0x0002e890}}, Y: Field{[10]uint32{0x02d5c35e, 0x0190376e, 0x0366d0aa, 0x025e7430, 0x013717e9, 0x034a3228, 0x026a18de, 0x03f374e3, 0x012329c3, 0x00229afc}}}, + {X: Field{[10]uint32{0x0056a961, 0x001a239e, 0x00993219, 0x014252b5, 0x0035c005, 0x00e2bd54, 0x03aa2595, 0x02b1fa76, 0x00963c7c, 0x0030837c}}, Y: Field{[10]uint32{0x0245d40a, 0x0120d7ec, 0x0033bad8, 0x010aba9f, 0x00fb4f2c, 0x0296242e, 0x038dd8d6, 0x01eba616, 0x015d16cf, 0x001247a6}}}, + {X: Field{[10]uint32{0x03af0c50, 0x01912753, 0x032a50c7, 0x022c6d32, 0x01aac9f3, 0x00f74bb0, 0x02f3dcb9, 0x0135cb67, 0x00ca4dbb, 0x001bd4f6}}, Y: Field{[10]uint32{0x027ae24a, 0x0221a1d3, 0x02e12f78, 0x030c9f2b, 0x0077bbec, 0x0219d4f0, 0x0156de24, 0x02fadc90, 0x002df449, 0x0019e128}}}, + {X: Field{[10]uint32{0x037bdda3, 0x005dc49c, 0x006b3513, 0x003e3b2a, 0x036364ae, 0x0211d5fa, 0x008a0461, 0x023d8147, 0x00bd71a0, 0x00395f9e}}, Y: Field{[10]uint32{0x00385342, 0x025db43d, 0x00e8f116, 0x018ca3b0, 0x0231a1d2, 0x029dd553, 0x0116c82d, 0x017d995c, 0x007e8a53, 0x0028188f}}}, + {X: Field{[10]uint32{0x03ab099a, 0x03a5f13d, 0x03fff285, 0x03869b97, 0x037853e8, 0x01f2d4e9, 0x00abd0ea, 0x025aae78, 0x0329aad4, 0x003d4bdb}}, Y: Field{[10]uint32{0x019d55a3, 0x02588115, 0x028e0b71, 0x00706629, 0x01c36151, 0x01bca657, 0x01de4b76, 0x017a062d, 0x01fc6d5c, 0x000f7df0}}}, + {X: Field{[10]uint32{0x02fb0dc3, 0x020da9cf, 0x01fe259f, 0x02362f59, 0x02ec5cf0, 0x00cf6721, 0x0326268b, 0x01b425be, 0x01fb5c0a, 0x00369d3d}}, Y: Field{[10]uint32{0x00a62c47, 0x0281ea52, 0x03f3effe, 0x00c4d508, 0x018d0ea0, 0x00a947b7, 0x031c8164, 0x00a11df8, 0x0189de5e, 0x001f943a}}}, + {X: Field{[10]uint32{0x0051f4ff, 0x00de9938, 0x02ed8a23, 0x00533f4f, 0x0035d144, 0x02a74b7a, 0x0341d359, 0x01485c3c, 0x02a87bd4, 0x000a8b26}}, Y: Field{[10]uint32{0x0248a1ce, 0x01b1bbe5, 0x00bf8a46, 0x00856746, 0x01496882, 0x022bb27e, 0x01fd7e5d, 0x017da280, 0x01eb9933, 0x002fe7bf}}}, + {X: Field{[10]uint32{0x02022266, 0x02b58ca4, 0x0123b492, 0x03bc7aff, 0x037d13bc, 0x001f8b3c, 0x010da7db, 0x014c531b, 0x00b191dc, 0x000a8d10}}, Y: Field{[10]uint32{0x02ae2b40, 0x0398b4f8, 0x02fc6dd1, 0x03c8b0d3, 0x03e4c1e9, 0x021c1e51, 0x02fda24e, 0x028080bc, 0x00f5c993, 0x002f7b09}}}, + {X: Field{[10]uint32{0x010942a2, 0x01004278, 0x0081c287, 0x03ab54f4, 0x000e0acc, 0x01551140, 0x0136e8bd, 0x00dab7eb, 0x01743d1d, 0x0028ea6f}}, Y: Field{[10]uint32{0x00794ca0, 0x02ccd3fb, 0x0016b66d, 0x0013fdd7, 0x022cb711, 0x0286d305, 0x01ab1fce, 0x039f637b, 0x02cff8ca, 0x00330cf7}}}, + {X: Field{[10]uint32{0x00804950, 0x0254f462, 0x0170d308, 0x02b0ac23, 0x0380db7e, 0x01fd361f, 0x03dc7247, 0x03c84824, 0x008f70a2, 0x0016e0f5}}, Y: Field{[10]uint32{0x0248b545, 0x0352c510, 0x039c3030, 0x02d1fb54, 0x01982ecd, 0x0243f313, 0x01368d76, 0x019b0b84, 0x0088a10c, 0x003de301}}}, + {X: Field{[10]uint32{0x03e9736a, 0x0035dec2, 0x02c29414, 0x0258f1bf, 0x02d901ab, 0x021c76e3, 0x039e210a, 0x01288800, 0x02a56e3e, 0x003756d1}}, Y: Field{[10]uint32{0x0021d46b, 0x011f04f5, 0x008ceae6, 0x03be1e61, 0x009e7136, 0x0334d77e, 0x0052268c, 0x0116b0d7, 0x02baebdd, 0x00366ddb}}}, + {X: Field{[10]uint32{0x0361a6d3, 0x031b72cf, 0x00f6462c, 0x007c0de6, 0x03d1ff78, 0x00885025, 0x036bc5b2, 0x01849d88, 0x035a2548, 0x000bdd36}}, Y: Field{[10]uint32{0x03149c1c, 0x020f0254, 0x0248eca9, 0x011eb224, 0x03646471, 0x00c0536c, 0x01b868ea, 0x01b4bea4, 0x01ed256f, 0x002db58d}}}, + {X: Field{[10]uint32{0x03ab2e09, 0x016377c8, 0x030bec50, 0x009b7f92, 0x02119bff, 0x0378722e, 0x0240b8bf, 0x024e6961, 0x00c41f7c, 0x000cab70}}, Y: Field{[10]uint32{0x0146ae3f, 0x02ec374e, 0x0229366b, 0x020ce8d6, 0x0340beed, 0x02807645, 0x017772d2, 0x02ca5f5f, 0x02487f0b, 0x0033cc5c}}}, + {X: Field{[10]uint32{0x03c6cdce, 0x027cc061, 0x02ae936f, 0x02d6172c, 0x014e336c, 0x01d301fb, 0x02a152ed, 0x00b6a09c, 0x00a70017, 0x0013f94f}}, Y: Field{[10]uint32{0x01e3a8ce, 0x011ba620, 0x0084327e, 0x01c162e1, 0x02baf428, 0x00595e31, 0x00c29869, 0x00705887, 0x01c4bd71, 0x00207db4}}}, + {X: Field{[10]uint32{0x03b2569f, 0x02152367, 0x018ae63f, 0x001974f9, 0x023b08dc, 0x0137fb66, 0x02f316eb, 0x028a99c0, 0x00f5577f, 0x0018064d}}, Y: Field{[10]uint32{0x00f714cc, 0x001d340c, 0x03954362, 0x0243dab3, 0x0255e196, 0x00ec7c77, 0x0396f689, 0x03f5fed7, 0x00824360, 0x001b7df6}}}, + {X: Field{[10]uint32{0x0279d321, 0x00f03dea, 0x03129817, 0x0319e7e8, 0x03e1bec3, 0x03a7768b, 0x0092ee52, 0x0201b191, 0x03088ff4, 0x0001e769}}, Y: Field{[10]uint32{0x017f9a47, 0x02afa2c0, 0x0047ff90, 0x012ec382, 0x0344be73, 0x0348156b, 0x0167e8ab, 0x022128d4, 0x022976f2, 0x000ac7b2}}}, + {X: Field{[10]uint32{0x01262974, 0x0227739e, 0x011867e5, 0x032360e6, 0x015b8d4f, 0x02a2fda4, 0x0208b51c, 0x00a672f0, 0x0209c39f, 0x00180ae0}}, Y: Field{[10]uint32{0x027f5555, 0x03367695, 0x035f2267, 0x0016be43, 0x00a5ed1f, 0x01e46976, 0x02c43f94, 0x032a0daa, 0x00da05d7, 0x0003e2db}}}, + {X: Field{[10]uint32{0x020e53d1, 0x0144547f, 0x00232752, 0x001703e8, 0x010ff14c, 0x01399920, 0x02991e48, 0x0229b55c, 0x0368868a, 0x0015e93c}}, Y: Field{[10]uint32{0x023a0c6d, 0x03e95e04, 0x01a9efa1, 0x028ea8f9, 0x0353d52e, 0x03a593cb, 0x00e17869, 0x026e0cda, 0x007c5bc2, 0x00035b32}}}, + {X: Field{[10]uint32{0x0206db2a, 0x0122de1a, 0x02b54435, 0x00f96f4c, 0x02459906, 0x02c04b35, 0x004c5ae2, 0x03c441c3, 0x00f0ae9d, 0x0013e6d2}}, Y: Field{[10]uint32{0x015ea016, 0x03b7b5f7, 0x02a157bd, 0x0086fc62, 0x02980cd6, 0x01bf90ab, 0x03563ebf, 0x031e3d9b, 0x00fe3caf, 0x003569e8}}}, + {X: Field{[10]uint32{0x005e7375, 0x014ed7db, 0x007085a0, 0x02b4d778, 0x01e1910a, 0x022ed98f, 0x02615893, 0x00d27d11, 0x03084b11, 0x00391a94}}, Y: Field{[10]uint32{0x01183ce9, 0x029f4cb8, 0x03c479e1, 0x00afe9af, 0x02cb8c3d, 0x03c1eb38, 0x03923be9, 0x018cb7ef, 0x02889583, 0x003691b6}}}, + {X: Field{[10]uint32{0x01c071ea, 0x022e5880, 0x0267415c, 0x0358ad82, 0x00d62f2a, 0x03249410, 0x03e64de3, 0x005878c8, 0x0366b94b, 0x000d90f5}}, Y: Field{[10]uint32{0x0316fa98, 0x03c6d6e7, 0x01a967af, 0x013e0f4d, 0x0080835d, 0x00083db5, 0x029dcffa, 0x0278176c, 0x02f11f2b, 0x003ebda6}}}, + {X: Field{[10]uint32{0x03497dca, 0x03c6c6ef, 0x01478f6f, 0x01edfe8c, 0x00e6bea5, 0x01138177, 0x03e1b485, 0x0185486e, 0x02940c02, 0x00259da5}}, Y: Field{[10]uint32{0x03e30b03, 0x0209c0ac, 0x0293c407, 0x004b1d64, 0x038210fd, 0x0365f023, 0x033b033b, 0x02b85259, 0x02fd7d0d, 0x0013ad69}}}, + {X: Field{[10]uint32{0x01a24d07, 0x019f9996, 0x00ef65c8, 0x029bd04d, 0x007f80fd, 0x0104438a, 0x03e0ff4b, 0x0264c626, 0x01ef2c47, 0x0000b907}}, Y: Field{[10]uint32{0x0074c313, 0x0214c772, 0x01f52015, 0x03045d10, 0x0269bde3, 0x015bfece, 0x03a1f50e, 0x022c4a8e, 0x017bb838, 0x0009a853}}}, + {X: Field{[10]uint32{0x0003c29b, 0x00a1316b, 0x0037db7f, 0x03c2152a, 0x00db94cb, 0x007ad8f9, 0x004fbf77, 0x03f83a69, 0x001af6ea, 0x003ce765}}, Y: Field{[10]uint32{0x00bd7b73, 0x018b9ce3, 0x00183d8b, 0x00d300ec, 0x0072cd59, 0x001f812c, 0x001f8b55, 0x01344889, 0x03700dac, 0x0007ffb5}}}, + {X: Field{[10]uint32{0x00136419, 0x01d91254, 0x03d1c595, 0x0114a005, 0x011cdac0, 0x00b64189, 0x011f8dcc, 0x02fba824, 0x01344576, 0x00242403}}, Y: Field{[10]uint32{0x00161ad6, 0x00255a92, 0x01666b0c, 0x039bacd3, 0x001457ce, 0x028acb17, 0x00444980, 0x02040b68, 0x03bb2a33, 0x001834e2}}}, + {X: Field{[10]uint32{0x00ac2e06, 0x006944f6, 0x0109ee3e, 0x038e5ed9, 0x0244a523, 0x0074ade0, 0x0344226f, 0x03d298b9, 0x02271007, 0x000e9791}}, Y: Field{[10]uint32{0x00202449, 0x0089aeba, 0x01d90f75, 0x03f95ede, 0x010bcdfc, 0x029057cd, 0x016dee2f, 0x03f0fc09, 0x03c1074c, 0x00143c07}}}, + {X: Field{[10]uint32{0x03e24355, 0x02db0fc4, 0x02b87a06, 0x0162a3c3, 0x02b13ac2, 0x01bdb91a, 0x025492ef, 0x0047907a, 0x0256f6d7, 0x003d9ba8}}, Y: Field{[10]uint32{0x02243841, 0x0000c1c9, 0x010b57fa, 0x0281bcff, 0x028f32a2, 0x0303db4a, 0x02c24014, 0x03a9b21f, 0x00470980, 0x003ee287}}}, + {X: Field{[10]uint32{0x03038fa0, 0x009602f4, 0x022a85c6, 0x0216accd, 0x00c946a4, 0x031d0db4, 0x036d4ed6, 0x01b333ee, 0x012019a1, 0x0032b681}}, Y: Field{[10]uint32{0x03d32ae6, 0x03cb4841, 0x032032b5, 0x01c42bc3, 0x03421de9, 0x006b9ce4, 0x03069639, 0x010c92b1, 0x000a3480, 0x00389265}}}, + {X: Field{[10]uint32{0x03759cf1, 0x039d7eb2, 0x037122c4, 0x004d70b6, 0x02ce2084, 0x03760c2c, 0x03d51929, 0x01ca565a, 0x035e820b, 0x00345bd6}}, Y: Field{[10]uint32{0x02448ed8, 0x038de11a, 0x0349ce61, 0x021788a1, 0x036ecdd5, 0x01781451, 0x01363807, 0x02f35f77, 0x0084cfbe, 0x001c3b6c}}}, + {X: Field{[10]uint32{0x01f71535, 0x01444d35, 0x009a4847, 0x03275365, 0x013dc31a, 0x03199bcc, 0x02e51498, 0x02b8372d, 0x028ddc6b, 0x002ef333}}, Y: Field{[10]uint32{0x03f91eed, 0x03396b48, 0x03a6ea23, 0x01a02627, 0x01c8941f, 0x0239eefd, 0x031b4796, 0x024af949, 0x02fc63ff, 0x001369dc}}}, + {X: Field{[10]uint32{0x014243fe, 0x001854bb, 0x032915f6, 0x03e3a0da, 0x02e7d5d2, 0x01a087ae, 0x01e940d0, 0x01d710c9, 0x00f5cd8b, 0x001457ca}}, Y: Field{[10]uint32{0x03668b47, 0x00bc7118, 0x032a24ba, 0x0209bdf6, 0x00e1855a, 0x0208a496, 0x0209f466, 0x02e3f852, 0x03ccf5d2, 0x00284c50}}}, + {X: Field{[10]uint32{0x01233837, 0x03b61148, 0x03f79df6, 0x02d6e3f5, 0x0068d356, 0x034e049e, 0x011ed6f9, 0x0118b61a, 0x02aea78c, 0x002f4bd1}}, Y: Field{[10]uint32{0x01c4af11, 0x02f5f21e, 0x00324b92, 0x02b98aae, 0x0284ddd9, 0x035f5bf8, 0x0332f70e, 0x0200fdfa, 0x02d3f3cc, 0x0023d917}}}, + {X: Field{[10]uint32{0x01e37dfa, 0x01f5977e, 0x0313347d, 0x034e4b83, 0x0004f8d7, 0x00046914, 0x0210b512, 0x008489a7, 0x013cc3d3, 0x00215dbc}}, Y: Field{[10]uint32{0x028b1a4f, 0x027640fd, 0x021958d1, 0x00a116d9, 0x0386ff90, 0x027bb7a2, 0x009eb8c1, 0x0384c48c, 0x00483fa0, 0x003eefc8}}}, + {X: Field{[10]uint32{0x0309db4a, 0x02327ce0, 0x0341a23b, 0x03cb4c73, 0x01763a83, 0x03c8d87f, 0x03f262ab, 0x01391f5c, 0x02918fdf, 0x001c2f87}}, Y: Field{[10]uint32{0x028bc573, 0x00fdc210, 0x0318829f, 0x032770fb, 0x03a1897a, 0x0224a50e, 0x013fa488, 0x01bbd030, 0x0175e424, 0x0020be01}}}, + {X: Field{[10]uint32{0x0341180f, 0x0193a452, 0x02361c80, 0x026848c4, 0x01017352, 0x028d4ebe, 0x0354a461, 0x01ad4e6f, 0x013d1d58, 0x002ee282}}, Y: Field{[10]uint32{0x03478269, 0x00d3616b, 0x0165e723, 0x01034887, 0x02287075, 0x033d779f, 0x028d66bc, 0x02894735, 0x02d78456, 0x00118383}}}, + {X: Field{[10]uint32{0x005c2e69, 0x0128492f, 0x018606dc, 0x0211d530, 0x027b976a, 0x001c7e87, 0x03306287, 0x006533d2, 0x024f34d9, 0x001e05eb}}, Y: Field{[10]uint32{0x00d55cbc, 0x02f9774b, 0x02d7b481, 0x00303e12, 0x006afe1c, 0x013e2cd0, 0x02ed346e, 0x02c6d6f1, 0x0056c4e3, 0x00097d3b}}}, + {X: Field{[10]uint32{0x0366abcc, 0x03fb446f, 0x009a5bcc, 0x03c49cd3, 0x03e72af5, 0x00396ed7, 0x02ed8e2a, 0x0167e9bf, 0x00dc411f, 0x002171d8}}, Y: Field{[10]uint32{0x03cb8cc4, 0x019ac9b2, 0x028ad106, 0x00399403, 0x0389a891, 0x00e99f96, 0x00f12482, 0x0271c6fc, 0x01b0b57c, 0x0024960f}}}, + {X: Field{[10]uint32{0x015086c3, 0x0206af17, 0x0179ad4c, 0x008d1faa, 0x03d9ee71, 0x0079cdde, 0x00739e3b, 0x01d8bfcb, 0x01354d9d, 0x00083603}}, Y: Field{[10]uint32{0x02f0efe5, 0x01077dd8, 0x01cf7489, 0x01ac6c89, 0x010ef6ed, 0x03c4d46d, 0x0123b7f1, 0x0299d7a0, 0x017b8017, 0x001b8647}}}, + {X: Field{[10]uint32{0x01ba5657, 0x0370f83f, 0x00fde086, 0x03f25c24, 0x00ec26ce, 0x004a2601, 0x036d9c8d, 0x0312c197, 0x022d43f2, 0x000cc1a4}}, Y: Field{[10]uint32{0x03c7efc4, 0x01970c04, 0x00d881b8, 0x01067e1f, 0x0186f0e9, 0x02871019, 0x039f76ef, 0x035eb1c1, 0x009fc93d, 0x00262a33}}}, + {X: Field{[10]uint32{0x032fb001, 0x0379b1ce, 0x01fc18ac, 0x02b02c21, 0x018a1b9a, 0x02488da0, 0x00f77033, 0x01fc4910, 0x019754d3, 0x002cd71d}}, Y: Field{[10]uint32{0x03cd649d, 0x03dadd44, 0x01660a7a, 0x02d1be4f, 0x022ea789, 0x037d65a3, 0x0058ffb0, 0x02121657, 0x039069b0, 0x00001212}}}, + {X: Field{[10]uint32{0x034e1f33, 0x03c25d51, 0x0158786e, 0x03e3a43f, 0x0205c647, 0x01648ac6, 0x009d0104, 0x030c0db3, 0x03537f8b, 0x0026f506}}, Y: Field{[10]uint32{0x030274ac, 0x0340ef2f, 0x013aec25, 0x01da3480, 0x018b8667, 0x03fce269, 0x0086bfe1, 0x03849769, 0x03f655ec, 0x001642be}}}, + {X: Field{[10]uint32{0x001ded42, 0x023c5815, 0x0020e527, 0x00e9cd65, 0x036950d9, 0x00e38372, 0x0289703a, 0x02bbc2f3, 0x032ca9b3, 0x000a8e99}}, Y: Field{[10]uint32{0x02693d8e, 0x03cee270, 0x02a5fc6a, 0x0033e22b, 0x02c95f85, 0x02d8aeac, 0x008ebef6, 0x00e0f6e4, 0x00b613f3, 0x00130ea5}}}, + {X: Field{[10]uint32{0x00f74d3d, 0x0250e096, 0x01bf6937, 0x017c5b71, 0x00c8db94, 0x014e01b7, 0x01f38003, 0x0253e353, 0x02f20a2d, 0x000c6e9a}}, Y: Field{[10]uint32{0x0329df5a, 0x008e3308, 0x03f4a236, 0x020b1509, 0x01fc1e6a, 0x0180d131, 0x01d915ef, 0x03ac72e9, 0x0102b290, 0x002b4677}}}, + {X: Field{[10]uint32{0x00869720, 0x004a54af, 0x01bb05bb, 0x0147a712, 0x00587c02, 0x02fd12a6, 0x030f9b8e, 0x0053c177, 0x01bd74b0, 0x003e8866}}, Y: Field{[10]uint32{0x0163f45e, 0x00b484ec, 0x0231a66d, 0x03bac7d5, 0x03041ab6, 0x018387a6, 0x035c4838, 0x03d7d2c3, 0x017d6efd, 0x0010ca24}}}, + {X: Field{[10]uint32{0x03e22d52, 0x011a6a62, 0x0199f30a, 0x000b8eff, 0x0108aaac, 0x024aad8f, 0x00f28476, 0x00f03d73, 0x0046c7f5, 0x00105ee4}}, Y: Field{[10]uint32{0x023b82c0, 0x0175a921, 0x008e0d49, 0x02a0ef6c, 0x007aede9, 0x005c1b80, 0x036eae69, 0x025e237f, 0x02655f30, 0x001e3057}}}, + {X: Field{[10]uint32{0x0318bc2a, 0x0390f55b, 0x00964f33, 0x026005c5, 0x026158f4, 0x01e9a7fe, 0x00e6eca6, 0x007f6228, 0x01f247d5, 0x0015ab24}}, Y: Field{[10]uint32{0x010680c7, 0x02c699b7, 0x02740c54, 0x02b89b9e, 0x00429bee, 0x01ee0719, 0x03c518b3, 0x00692dc5, 0x015c9e1b, 0x000d46df}}}, + {X: Field{[10]uint32{0x03215f8a, 0x001f594d, 0x00250685, 0x01c04324, 0x01e164ae, 0x002eafb2, 0x02d835aa, 0x01fbcc54, 0x02f88330, 0x002bae8c}}, Y: Field{[10]uint32{0x002c4e21, 0x038aba16, 0x0040fdcd, 0x031a9073, 0x037ce7e3, 0x0333be10, 0x03165577, 0x017cb9bf, 0x013935cf, 0x00235d1f}}}, + {X: Field{[10]uint32{0x01db5813, 0x035a0748, 0x03e63d47, 0x03ac3936, 0x0379ee10, 0x015bb411, 0x03d6bcc2, 0x00325da4, 0x02199af0, 0x0010b1ec}}, Y: Field{[10]uint32{0x0219378f, 0x012196ec, 0x03c75c3c, 0x01747f3d, 0x02a5fd87, 0x0225610c, 0x0244a4df, 0x031f2cb3, 0x03081fb1, 0x002857ed}}}, + {X: Field{[10]uint32{0x024e5d98, 0x02845b68, 0x01e2c36c, 0x0288270e, 0x0225e0db, 0x006f357f, 0x03fe19d0, 0x0196a222, 0x0297ecf3, 0x0010cdec}}, Y: Field{[10]uint32{0x0242b7ad, 0x01056ec8, 0x01722915, 0x022f2736, 0x0328d1ef, 0x0381b6dc, 0x00833485, 0x007b6f2f, 0x03abc654, 0x001271c8}}}, + {X: Field{[10]uint32{0x03f857bf, 0x0066876d, 0x02f84a25, 0x00949f93, 0x00aeefbf, 0x02e12c94, 0x028af0ce, 0x024cb3a5, 0x00761481, 0x00062663}}, Y: Field{[10]uint32{0x02c97fa2, 0x03204a09, 0x01ba39b7, 0x015342fe, 0x00911330, 0x03cca274, 0x02c9ae77, 0x02110d72, 0x00856451, 0x001157af}}}, + {X: Field{[10]uint32{0x02a49b2b, 0x02e256c1, 0x0188e69c, 0x01907995, 0x0387767b, 0x02ff62d3, 0x010516f1, 0x015ca816, 0x0320fa24, 0x001931d8}}, Y: Field{[10]uint32{0x00b9603f, 0x03fa33dd, 0x01395d39, 0x022a1e67, 0x0178366c, 0x01a097b0, 0x03ae76f8, 0x01425680, 0x02a5c479, 0x00028e68}}}, + {X: Field{[10]uint32{0x012b0ad7, 0x034efd20, 0x004e1ebb, 0x028ceced, 0x02dea917, 0x031bc4a9, 0x03a5f2d3, 0x02e1f296, 0x0005e35e, 0x0010595d}}, Y: Field{[10]uint32{0x01ff815d, 0x02375be5, 0x034916b6, 0x0170825a, 0x034d0ed7, 0x02b732d4, 0x037fe787, 0x0114ad15, 0x01ae36f1, 0x0023885a}}}, + {X: Field{[10]uint32{0x00391f6e, 0x01b8c370, 0x00cb68b7, 0x00440b04, 0x017bfd4a, 0x03d298c5, 0x02110c80, 0x012e245b, 0x03a3768a, 0x002a8803}}, Y: Field{[10]uint32{0x0184695b, 0x00d4d3a9, 0x02fde7fb, 0x0351a416, 0x00c49b79, 0x01f4662a, 0x02c898bd, 0x0055577f, 0x015928b2, 0x00159ef6}}}, + {X: Field{[10]uint32{0x03131599, 0x03e6ee9d, 0x00966555, 0x035a7961, 0x03eb529b, 0x02327188, 0x003ba48c, 0x00bd52e1, 0x0328841d, 0x001ea9e0}}, Y: Field{[10]uint32{0x01f698ed, 0x0112bcda, 0x003ba1bb, 0x0118a696, 0x01327112, 0x0138bdbc, 0x01a7e7a6, 0x011e2c93, 0x0315e4b8, 0x001ad289}}}, + {X: Field{[10]uint32{0x016969a1, 0x00d11d4e, 0x01fdfdae, 0x013d92ef, 0x0248446b, 0x01e3eeef, 0x019234fc, 0x019ffc11, 0x03bd6a27, 0x00252c69}}, Y: Field{[10]uint32{0x011cc33d, 0x03a233e6, 0x0054fdf1, 0x01e3a2e2, 0x02e77e21, 0x02e6a907, 0x029320a8, 0x02a1c774, 0x01ef2273, 0x0023cc19}}}, + {X: Field{[10]uint32{0x0126573a, 0x036633b5, 0x0071035f, 0x01c4de8d, 0x005407df, 0x01a07830, 0x00c8cb27, 0x03afd4a5, 0x03a71bfe, 0x001ae55e}}, Y: Field{[10]uint32{0x022724a0, 0x03f6e21e, 0x037f4583, 0x003b0297, 0x0235c6df, 0x03bed424, 0x01cd4ff6, 0x0214f179, 0x008d3fc1, 0x0019f920}}}, + {X: Field{[10]uint32{0x03717f7f, 0x029a4590, 0x01cb2b8a, 0x02da02f6, 0x03f9a6df, 0x02c7f2ca, 0x0293892a, 0x010400ef, 0x03300ea3, 0x0022c9d0}}, Y: Field{[10]uint32{0x0198db90, 0x02bebc5e, 0x00da3c99, 0x02a82727, 0x014ed141, 0x0271c4e2, 0x027f8284, 0x01620f98, 0x02bb7785, 0x00153e8a}}}, + {X: Field{[10]uint32{0x0358db05, 0x0117899e, 0x012e75d1, 0x01c92668, 0x033b6863, 0x01eb1997, 0x01274de7, 0x008ce524, 0x039b6736, 0x0034fd93}}, Y: Field{[10]uint32{0x01a52449, 0x00a81432, 0x0310e5c8, 0x01410060, 0x009bea58, 0x02267eaa, 0x01284f43, 0x0057d051, 0x02c852bd, 0x00301845}}}, + {X: Field{[10]uint32{0x0237ba79, 0x03ad557c, 0x00d4bc4a, 0x007a006d, 0x02870d07, 0x0243de57, 0x03b92803, 0x010ca406, 0x02f8ce0e, 0x00066249}}, Y: Field{[10]uint32{0x02b3d34e, 0x00fc81b4, 0x01d76a83, 0x03411523, 0x035d6c10, 0x00373c43, 0x027658fa, 0x001f9d78, 0x03d95b8d, 0x001d8496}}}, + {X: Field{[10]uint32{0x0301a13f, 0x032962f3, 0x003099ad, 0x03f1be1e, 0x00ee4358, 0x03770961, 0x0346cfb6, 0x014be0e5, 0x014d5951, 0x000006ef}}, Y: Field{[10]uint32{0x038d7733, 0x01fa7f37, 0x016e0b58, 0x03f13c21, 0x03ebdc70, 0x03797af7, 0x003cdfe3, 0x0317a9c2, 0x00deccea, 0x00063d4d}}}, + {X: Field{[10]uint32{0x01a3132a, 0x00b89d7d, 0x0398c131, 0x01fc876c, 0x03005245, 0x008089a4, 0x00b551f5, 0x0249c8df, 0x0345b263, 0x00221cdf}}, Y: Field{[10]uint32{0x00c496ed, 0x0285e778, 0x020290b2, 0x03fb256a, 0x02e3e61c, 0x006e8317, 0x01a7b222, 0x0387a12c, 0x032c2895, 0x001e6959}}}, + {X: Field{[10]uint32{0x00cb1e83, 0x03852ff3, 0x02252004, 0x01f91b9e, 0x012d6849, 0x03f873ea, 0x00ca35e8, 0x01ddccd3, 0x018b1f27, 0x0032fcf8}}, Y: Field{[10]uint32{0x02bc3f99, 0x03d72521, 0x029a401f, 0x01c249ae, 0x007b91f7, 0x03c91d23, 0x01d242a5, 0x0115b0f2, 0x039565bd, 0x0036c030}}}, + {X: Field{[10]uint32{0x03022f70, 0x00699071, 0x0093c40b, 0x00809c82, 0x008ab65b, 0x00aa4ea6, 0x01c88467, 0x03beb97e, 0x030cf186, 0x00201c3b}}, Y: Field{[10]uint32{0x027bd9e5, 0x02762044, 0x018caa24, 0x014e9d17, 0x00cc85c8, 0x021ff60e, 0x0024cf5a, 0x01a8151a, 0x01b04694, 0x0036a601}}}, + {X: Field{[10]uint32{0x03f71eab, 0x021a6030, 0x03e21902, 0x02d88490, 0x035c57dc, 0x022dbf88, 0x00c50640, 0x0176efa1, 0x004b8fa4, 0x002b2be6}}, Y: Field{[10]uint32{0x00eb278e, 0x02cef44b, 0x010b5d1d, 0x0077c5f7, 0x03801b8c, 0x02eb8a41, 0x004dfb0b, 0x03e8bbc5, 0x00168259, 0x0011bd3b}}}, + {X: Field{[10]uint32{0x03fdc965, 0x036a5c7e, 0x000994ee, 0x01494a91, 0x01e89162, 0x015f8f49, 0x01e8a32a, 0x03b3a9cd, 0x020591f9, 0x0000a24e}}, Y: Field{[10]uint32{0x03cfbb6a, 0x02c5681e, 0x012a18c3, 0x03082abc, 0x01372aa6, 0x03edf495, 0x02b5186e, 0x02c48c04, 0x014191e4, 0x001ba8a6}}}, + {X: Field{[10]uint32{0x02be951d, 0x016d9130, 0x01b39dc0, 0x002963c4, 0x00cfccab, 0x03b44b7c, 0x0126e285, 0x032d8272, 0x023168f0, 0x001925d1}}, Y: Field{[10]uint32{0x01eafb7c, 0x0012268c, 0x03406016, 0x02a705e2, 0x03d432b5, 0x03c94271, 0x004bb219, 0x0217890d, 0x001b2fa8, 0x003a9d06}}}, + {X: Field{[10]uint32{0x021faeef, 0x03c3a22e, 0x006e2d1b, 0x007174ea, 0x01091862, 0x0260440e, 0x014f7c20, 0x025322cb, 0x003e5133, 0x002e4e11}}, Y: Field{[10]uint32{0x0353fc85, 0x021f6bf0, 0x01be0963, 0x03226d9a, 0x00c52473, 0x017fe505, 0x0384f384, 0x02190941, 0x02a8c7d9, 0x002bd1fc}}}, + {X: Field{[10]uint32{0x012a5320, 0x01b6b167, 0x03b8d42f, 0x02333da6, 0x0124f475, 0x01d8d1ae, 0x00fd4a78, 0x03d43a7e, 0x0245ad10, 0x002f47b8}}, Y: Field{[10]uint32{0x00039605, 0x021cd238, 0x01518af7, 0x010d92ce, 0x00134ce4, 0x013ffa4b, 0x02477ac7, 0x02235709, 0x023e069d, 0x001ddb8b}}}, + {X: Field{[10]uint32{0x0260650f, 0x0277d0f1, 0x006a97d4, 0x00819e92, 0x036d8e13, 0x009e763e, 0x027dc054, 0x02157c5f, 0x0068805e, 0x00032dfb}}, Y: Field{[10]uint32{0x029e903c, 0x0393f608, 0x01b5a91c, 0x00e5b496, 0x01b12d73, 0x01c5497f, 0x03302eb0, 0x01040c47, 0x00b284c0, 0x003d41e4}}}, + {X: Field{[10]uint32{0x0330cf83, 0x004846ea, 0x02a15e1c, 0x0057ef78, 0x031968c6, 0x03213369, 0x0222a1c7, 0x02ed68a7, 0x037e0aff, 0x003bc1f3}}, Y: Field{[10]uint32{0x00ef574f, 0x0310971c, 0x01979815, 0x01789616, 0x002ca556, 0x013203cb, 0x03fc2fee, 0x00c35040, 0x02c94226, 0x00263d29}}}, + {X: Field{[10]uint32{0x027b8fc6, 0x0309ab4f, 0x027814ee, 0x01902189, 0x0113dc50, 0x0045003c, 0x00e4ca0d, 0x03316733, 0x01484d7f, 0x0013ff06}}, Y: Field{[10]uint32{0x03b75aa9, 0x013961df, 0x0266961b, 0x038e4dfb, 0x02d94b65, 0x03721fc4, 0x01ac1075, 0x00f60f2d, 0x020798ff, 0x002fa7af}}}, + {X: Field{[10]uint32{0x01d18396, 0x035a2f18, 0x01b63b4e, 0x01acb693, 0x00fad1ad, 0x0318dc6c, 0x00df0efa, 0x03524ee3, 0x0373339e, 0x0032f754}}, Y: Field{[10]uint32{0x02bdb13f, 0x02fe86b5, 0x025fac77, 0x035f200f, 0x003784a7, 0x01c2704c, 0x0138b6ff, 0x00b51c7d, 0x0087c321, 0x00149f79}}}, + {X: Field{[10]uint32{0x027cb5d2, 0x01efd6f1, 0x01fed65e, 0x02838c0d, 0x014e650a, 0x03800fe6, 0x03f6b065, 0x035fa76d, 0x032bd8a1, 0x003a80d6}}, Y: Field{[10]uint32{0x003761c4, 0x01918223, 0x00edddbc, 0x0258a8ec, 0x032cd57e, 0x03fa071a, 0x0372e91a, 0x03d22219, 0x03702219, 0x002bb2d0}}}, + {X: Field{[10]uint32{0x01f8db89, 0x02a3bd66, 0x010cd99b, 0x03da407b, 0x02911648, 0x00b50ff6, 0x029dda6b, 0x00902b5b, 0x03d6c1d6, 0x00378693}}, Y: Field{[10]uint32{0x004da03e, 0x0088faa2, 0x012cd3a4, 0x02c4150b, 0x02f85f90, 0x01c78b98, 0x00a60853, 0x03fd0747, 0x00d161c0, 0x003bff25}}}, + {X: Field{[10]uint32{0x02a076ed, 0x033d6df9, 0x037f0e58, 0x022bc03e, 0x00d75e11, 0x02f3ffaf, 0x02157878, 0x01fb5b84, 0x0141e8d8, 0x000b9910}}, Y: Field{[10]uint32{0x0334b8d2, 0x03a03ff2, 0x005b7320, 0x0037d97e, 0x02b45c24, 0x009b48b0, 0x00a70110, 0x018b61ae, 0x00ddf2ba, 0x0012aa16}}}, + {X: Field{[10]uint32{0x01b73a33, 0x0220ecdc, 0x01c3e956, 0x01e4b49d, 0x0247ff88, 0x023cb4a3, 0x03b78ad0, 0x02e1e243, 0x006a90d6, 0x000e110e}}, Y: Field{[10]uint32{0x0365cd18, 0x03f51d2c, 0x0157c714, 0x015fc5f3, 0x01ff2845, 0x032a3ba2, 0x036bde12, 0x012701d7, 0x03121a81, 0x003dfd77}}}, + {X: Field{[10]uint32{0x00358e42, 0x03a5bc1d, 0x03ae8ff7, 0x0382eacb, 0x01bde185, 0x02ba080f, 0x0218cd89, 0x034d88ad, 0x03321b91, 0x00387fa6}}, Y: Field{[10]uint32{0x01f3e1c4, 0x00ded2b7, 0x021d5f85, 0x0192b2ae, 0x02cef4f0, 0x00afca9d, 0x01eff10f, 0x004cba89, 0x02901797, 0x0031643f}}}, + {X: Field{[10]uint32{0x027a3c0b, 0x01c9f12c, 0x00a499cc, 0x03b68782, 0x00aefbbd, 0x016262bc, 0x020144d4, 0x036086da, 0x00da2f57, 0x00158280}}, Y: Field{[10]uint32{0x0395e208, 0x00044ab9, 0x02eaaa8b, 0x018d36ef, 0x025db86d, 0x020ec54b, 0x00b79ff9, 0x004ddcef, 0x024e39db, 0x001921d3}}}, + {X: Field{[10]uint32{0x0379094d, 0x02ecbcbc, 0x011dce5c, 0x0076f433, 0x001afe9b, 0x015b8a05, 0x03164248, 0x0378ab06, 0x03a77ec8, 0x0027ccfe}}, Y: Field{[10]uint32{0x02fe94b0, 0x02c2a709, 0x0384892f, 0x0366fff8, 0x01d972ab, 0x0177b358, 0x0034f19b, 0x038a9c98, 0x00d81838, 0x0025f2e3}}}, + {X: Field{[10]uint32{0x02d7a1b9, 0x01411f9c, 0x01226da7, 0x014f81a8, 0x01e46ee2, 0x02833ec5, 0x039da042, 0x01d44923, 0x03a82405, 0x0026208b}}, Y: Field{[10]uint32{0x02b19285, 0x00f7c53f, 0x00cc2a55, 0x013339f1, 0x03db975d, 0x03e5643c, 0x01475611, 0x0152b369, 0x023507bc, 0x000fa7ba}}}, + {X: Field{[10]uint32{0x001dbd88, 0x021a81ab, 0x0307cc40, 0x0179f885, 0x03bc7287, 0x00bc3e12, 0x01883273, 0x01c9a1ab, 0x01ac4b75, 0x002e0534}}, Y: Field{[10]uint32{0x00f18a98, 0x0114a640, 0x01c36cf1, 0x03fc635a, 0x00c03462, 0x0129ee2a, 0x01b8ab3c, 0x02848900, 0x00883749, 0x002d8d91}}}, + {X: Field{[10]uint32{0x01043e97, 0x00f068af, 0x00cd8623, 0x010a170a, 0x03b39cf8, 0x03b677f3, 0x039f7b7e, 0x0044f334, 0x00c41e42, 0x00091921}}, Y: Field{[10]uint32{0x039552d3, 0x01fd743a, 0x00502387, 0x03ad1294, 0x0280f431, 0x0342dd79, 0x01d36f79, 0x02f76010, 0x01b02e31, 0x003cd409}}}, + {X: Field{[10]uint32{0x0351db91, 0x02bee63f, 0x0358e847, 0x00902474, 0x03bbe8c5, 0x00a13930, 0x03fff0e4, 0x02cbb361, 0x03657b41, 0x0027ccc0}}, Y: Field{[10]uint32{0x02d5e70d, 0x03d0cddc, 0x03dad317, 0x0305d584, 0x01adf519, 0x013df339, 0x0176a43d, 0x0221c378, 0x03cb221c, 0x0012e69e}}}, + {X: Field{[10]uint32{0x01529d25, 0x02e6f2a7, 0x0161c225, 0x01452c58, 0x02b0e719, 0x03d69370, 0x035623a8, 0x010cf017, 0x029b3c75, 0x0030b9e3}}, Y: Field{[10]uint32{0x039079bb, 0x02228f2a, 0x001b9505, 0x00ab5891, 0x03e79436, 0x02c928b8, 0x0387b209, 0x01db2b18, 0x00f19383, 0x00079d72}}}, + {X: Field{[10]uint32{0x03695391, 0x0179aea9, 0x03f867ce, 0x00340a41, 0x022125c4, 0x01522bab, 0x01c9636b, 0x006df215, 0x02c4b6e8, 0x00224d03}}, Y: Field{[10]uint32{0x012c72c6, 0x030fa8de, 0x00671575, 0x02755492, 0x002b2a9c, 0x00f8af04, 0x01cc2c10, 0x01e5b77c, 0x014e263e, 0x003dce6a}}}, + {X: Field{[10]uint32{0x02629d22, 0x00aef8b5, 0x022daa7e, 0x00f63f63, 0x035d66a9, 0x034e29b0, 0x00facd48, 0x00f3081e, 0x0315f144, 0x0024813f}}, Y: Field{[10]uint32{0x0159c019, 0x00098e9d, 0x03253be1, 0x015609c9, 0x00131205, 0x00a4ffcf, 0x005020ec, 0x0143a588, 0x0075456b, 0x000ae77a}}}, + {X: Field{[10]uint32{0x03ff04d6, 0x031257ba, 0x0284d7ab, 0x03929ef5, 0x0261fad9, 0x00c97d77, 0x02b518dc, 0x00bf5f39, 0x02104112, 0x003c55b6}}, Y: Field{[10]uint32{0x01b631d4, 0x011a8380, 0x0170376e, 0x0135ce7d, 0x017f2c40, 0x000c6976, 0x03aa78d2, 0x02b7fb72, 0x00abf4f2, 0x0031cca5}}}, + {X: Field{[10]uint32{0x0280fa75, 0x01f6808c, 0x022659fa, 0x01549941, 0x022c379a, 0x001430d8, 0x00998616, 0x0104e84c, 0x017837d6, 0x001dc68b}}, Y: Field{[10]uint32{0x014c9aca, 0x0002c997, 0x030f66b6, 0x001356f1, 0x03e42703, 0x01b23746, 0x03ef0b0f, 0x007d6e0a, 0x039f5cfe, 0x0022daf0}}}, + {X: Field{[10]uint32{0x01a18f69, 0x0048d9a1, 0x004018e5, 0x003ac730, 0x01aec29f, 0x01039473, 0x03b52b1f, 0x00b167d8, 0x00e036bb, 0x00053356}}, Y: Field{[10]uint32{0x005e2006, 0x00323667, 0x0372ef27, 0x0279d1ac, 0x03ea15b1, 0x027a93a3, 0x00c72623, 0x011905d1, 0x00fded35, 0x001e7095}}}, + {X: Field{[10]uint32{0x028633f1, 0x03fc9ec6, 0x0343c22b, 0x03254ada, 0x02cd539c, 0x024299f7, 0x000bff13, 0x0001c960, 0x00770106, 0x00397d50}}, Y: Field{[10]uint32{0x01666367, 0x02c80a23, 0x00b5f4c3, 0x02a6c3d5, 0x0280274d, 0x026be281, 0x038e691f, 0x021b1d60, 0x02c39baa, 0x0035b871}}}, + {X: Field{[10]uint32{0x03429197, 0x03abe2b9, 0x003d75b8, 0x012cf4df, 0x03679134, 0x025a4f64, 0x03d14ba7, 0x0080dfef, 0x03429c07, 0x002c3aab}}, Y: Field{[10]uint32{0x037af26d, 0x0145c5a6, 0x00341510, 0x0209a8bc, 0x00bc2373, 0x000805c4, 0x0124d9bd, 0x006d953c, 0x021e4a17, 0x00035c99}}}, + {X: Field{[10]uint32{0x004d67c2, 0x03847998, 0x00e883c2, 0x00bb3d8b, 0x005380f9, 0x021393a8, 0x01573832, 0x036bb4d6, 0x030b044e, 0x003808b5}}, Y: Field{[10]uint32{0x01ab4143, 0x00ac4724, 0x01c7152d, 0x026cb0f7, 0x0207aed8, 0x0054fa70, 0x015228a3, 0x03b43451, 0x01d43ba0, 0x00108f15}}}, + {X: Field{[10]uint32{0x03c5ab5f, 0x02999692, 0x00651349, 0x036a7976, 0x03af1a3e, 0x02525446, 0x0270f07b, 0x02abc996, 0x033eb2ea, 0x0024a8b5}}, Y: Field{[10]uint32{0x000fa973, 0x01a04878, 0x0004992d, 0x00f16b0d, 0x0105f170, 0x00e8c98c, 0x0089fff5, 0x03495268, 0x00194794, 0x001124b5}}}, + {X: Field{[10]uint32{0x01b9cb30, 0x008d6a63, 0x0003ec96, 0x00b8fb98, 0x03b12f10, 0x01ea73ba, 0x035ac444, 0x002a733c, 0x02860de5, 0x0010d025}}, Y: Field{[10]uint32{0x0210bba9, 0x00b37713, 0x02cb037d, 0x0261fcc5, 0x03c8e1e8, 0x03671b22, 0x00e38adb, 0x00405e39, 0x0040952e, 0x000bde04}}}, + {X: Field{[10]uint32{0x0394cd12, 0x0282b788, 0x024e1aaa, 0x010ce222, 0x02945426, 0x01cd7713, 0x003aa5ad, 0x03e3506e, 0x011b0643, 0x0034d277}}, Y: Field{[10]uint32{0x033249a5, 0x02b7b390, 0x01bc6072, 0x015fb38d, 0x01cf0822, 0x02803bfa, 0x01c71c9e, 0x02dab0a5, 0x00571da2, 0x0019fcbc}}}, + {X: Field{[10]uint32{0x02dd10e6, 0x004de059, 0x023d9c68, 0x02763e0c, 0x03babad3, 0x01cb6339, 0x036834d2, 0x01faecd7, 0x02957fb8, 0x0026a426}}, Y: Field{[10]uint32{0x02ddbca1, 0x02195ca8, 0x03cec863, 0x0367dc24, 0x01c12f16, 0x028bd800, 0x02248352, 0x0068a1fd, 0x011a3277, 0x00338fab}}}, + {X: Field{[10]uint32{0x0007fa0b, 0x02f33c2b, 0x01452a67, 0x01c44853, 0x031d77f9, 0x01a1ad7e, 0x03be25d3, 0x00a99268, 0x0218df2a, 0x003ce2c7}}, Y: Field{[10]uint32{0x01e65ea6, 0x019c7bdc, 0x039d4591, 0x03631223, 0x03419a20, 0x03029188, 0x011ced59, 0x02c806e8, 0x029a7f71, 0x00001727}}}, + {X: Field{[10]uint32{0x01535a67, 0x0381b20c, 0x039a6a86, 0x021304ad, 0x027b9097, 0x009d8bb4, 0x012738bc, 0x0342577d, 0x03ca26b8, 0x00108d83}}, Y: Field{[10]uint32{0x028345e4, 0x03064491, 0x02f665de, 0x030595fd, 0x03db93ae, 0x02f77114, 0x008bc432, 0x03000efa, 0x00e5e43e, 0x001adbd3}}}, + {X: Field{[10]uint32{0x003f4a1e, 0x00130d8c, 0x02a94534, 0x03016800, 0x01b87325, 0x00c8ddec, 0x03993eaa, 0x038ee665, 0x018da7c5, 0x0038f5c6}}, Y: Field{[10]uint32{0x0053ef4d, 0x004de048, 0x0265f5c8, 0x033cc817, 0x00a05f19, 0x017eaff9, 0x0342be83, 0x0052337d, 0x0218ece6, 0x001c90dc}}}, + {X: Field{[10]uint32{0x007cb59b, 0x02f1b65a, 0x01b480d6, 0x02d6f5a3, 0x0202f93d, 0x006454a7, 0x014f6258, 0x004441ad, 0x0145a830, 0x000e504a}}, Y: Field{[10]uint32{0x0250f08d, 0x009941bc, 0x01d9fd28, 0x02028405, 0x00e08b0a, 0x002a562d, 0x03057844, 0x030c6462, 0x022c60f5, 0x002e36e0}}}, + {X: Field{[10]uint32{0x01241fc2, 0x00b025f3, 0x014f421d, 0x0053552b, 0x02d93dc9, 0x0364da33, 0x03857c7e, 0x03a639da, 0x01f77e0e, 0x0001349d}}, Y: Field{[10]uint32{0x039d7473, 0x03922ae8, 0x02f05277, 0x03a24330, 0x03935448, 0x0254aac4, 0x019d361f, 0x00a447d8, 0x03d49b50, 0x003b2e00}}}, + {X: Field{[10]uint32{0x029556ce, 0x00fe01e1, 0x01e03c01, 0x0114f22a, 0x010160b1, 0x01667b56, 0x02fcd5b6, 0x0272f68f, 0x0076c1db, 0x000a4d92}}, Y: Field{[10]uint32{0x023f6ede, 0x00c6443c, 0x0186c2dc, 0x01a9df7c, 0x0243ffb5, 0x016507df, 0x03562379, 0x02543213, 0x02f4cc44, 0x000af6d2}}}, + {X: Field{[10]uint32{0x00878034, 0x003b9b79, 0x01e55d38, 0x0107d2c8, 0x036febcf, 0x00ee84cc, 0x003ef10d, 0x0337deae, 0x00a963dc, 0x001d4c7d}}, Y: Field{[10]uint32{0x03a36ae8, 0x0100d286, 0x0055e9c4, 0x02ec021f, 0x01e1dcb1, 0x03589a6c, 0x01628ca2, 0x01af087a, 0x029f91d5, 0x0011d4f6}}}, + {X: Field{[10]uint32{0x00286e08, 0x02514317, 0x02777a3d, 0x00a16f05, 0x016050ca, 0x02f7e2b0, 0x00dce7a4, 0x03fb2910, 0x02263d12, 0x002099b5}}, Y: Field{[10]uint32{0x03e2328b, 0x0177cb2b, 0x00877545, 0x03897369, 0x0096d908, 0x0267d8cf, 0x01e7e363, 0x013ad9a9, 0x02bffb8a, 0x0009403c}}}, + {X: Field{[10]uint32{0x03c589e9, 0x02a1b452, 0x023d69ea, 0x02a9672d, 0x036d5e62, 0x010e27e1, 0x039b26e8, 0x027c5630, 0x00014f33, 0x00199200}}, Y: Field{[10]uint32{0x02d92e2a, 0x01c05b12, 0x002f596c, 0x03076a29, 0x01f145ff, 0x01d6b0c6, 0x00785263, 0x0168de7c, 0x033fe3eb, 0x00281a66}}}, + {X: Field{[10]uint32{0x00c70d49, 0x01dead93, 0x0113486b, 0x02e387d1, 0x03f641e2, 0x01b224d0, 0x01921b5e, 0x003ee981, 0x00858b9c, 0x003e3bf3}}, Y: Field{[10]uint32{0x00a9d607, 0x00761d54, 0x00834f8b, 0x0389e49e, 0x005f4de2, 0x00d7668f, 0x01a0ae30, 0x03c366bd, 0x002f7086, 0x002ea5c8}}}, + {X: Field{[10]uint32{0x00992540, 0x010b8267, 0x02e736c5, 0x02c07638, 0x016f2485, 0x00eafecf, 0x02c627c9, 0x00928ec7, 0x027d2543, 0x00297048}}, Y: Field{[10]uint32{0x02ecc7cc, 0x005b6f21, 0x03da5a1d, 0x01173e5d, 0x0264cfef, 0x00e29fde, 0x019bed7f, 0x00eed5b6, 0x01b48a16, 0x00324627}}}, + {X: Field{[10]uint32{0x038bbaf3, 0x01418182, 0x018938e0, 0x00024983, 0x016c85bb, 0x01c0b7b1, 0x03b655d7, 0x014f7c3e, 0x0219a5b2, 0x0009c6c9}}, Y: Field{[10]uint32{0x02cd2ce5, 0x0326924f, 0x03bd8d86, 0x039756bc, 0x0172bca7, 0x02af9564, 0x01bd1746, 0x023c9f73, 0x03fc22cb, 0x0016333c}}}, + {X: Field{[10]uint32{0x0170ae16, 0x03077f41, 0x0036ad90, 0x00c24b2b, 0x021202ba, 0x01c8753c, 0x001800ce, 0x025d0436, 0x002b20c7, 0x0032784e}}, Y: Field{[10]uint32{0x0231e5b2, 0x0084ee04, 0x003f690d, 0x03ec3e69, 0x016f7a0d, 0x035e65d2, 0x012f7070, 0x033a80ea, 0x00ab2a47, 0x001fac7f}}}, + {X: Field{[10]uint32{0x000309f2, 0x00250780, 0x03decb1e, 0x01aa2f51, 0x0145897e, 0x00ad2251, 0x018cb751, 0x00a81075, 0x03256523, 0x000015d2}}, Y: Field{[10]uint32{0x024615a9, 0x02cebe3f, 0x03b72038, 0x03eb0ad7, 0x03474db8, 0x02a72774, 0x03bf2cc6, 0x01d2fe4f, 0x02a9567d, 0x002efee1}}}, + {X: Field{[10]uint32{0x03046c38, 0x02354218, 0x012b4a98, 0x03b1a54f, 0x021135e7, 0x037fdb15, 0x0120e004, 0x017b692d, 0x02aca630, 0x0027bfa1}}, Y: Field{[10]uint32{0x02e9af70, 0x02b60c6a, 0x02e42551, 0x01e646a6, 0x027afa4f, 0x030ed362, 0x03cbe67e, 0x002062bd, 0x029132cb, 0x0013e4a8}}}, + {X: Field{[10]uint32{0x0013f254, 0x028b72f6, 0x0328413a, 0x03e8cf61, 0x02df26ca, 0x0024639a, 0x00bf4c3d, 0x03e85cdd, 0x00a0ff76, 0x0020ba92}}, Y: Field{[10]uint32{0x032ac9f2, 0x021ac76f, 0x038e4a70, 0x03589b77, 0x0049b4c2, 0x005ea254, 0x01e1ca14, 0x0156a8e7, 0x01399bb5, 0x001a80a5}}}, + {X: Field{[10]uint32{0x01d2baaa, 0x0379d56f, 0x01f4f5fb, 0x03af78ca, 0x03e3af2f, 0x02982b7e, 0x0352a24b, 0x02c1b0c4, 0x003e817b, 0x0030a252}}, Y: Field{[10]uint32{0x00780a53, 0x00e87387, 0x005c04b1, 0x017b065a, 0x039c4994, 0x03fad657, 0x036854a1, 0x03b3bd8a, 0x010d8b4a, 0x000edfba}}}, + {X: Field{[10]uint32{0x02e12cc4, 0x01d02d25, 0x0030001c, 0x01835e2a, 0x02016986, 0x02c161ed, 0x028deb31, 0x003563a9, 0x02cbb558, 0x001af791}}, Y: Field{[10]uint32{0x01293292, 0x01baccba, 0x02d91e09, 0x0173450b, 0x020a41cc, 0x031e741d, 0x014ce750, 0x0059a922, 0x02a7c1cd, 0x000c6229}}}, + {X: Field{[10]uint32{0x01827cf4, 0x026b07d9, 0x00bdf451, 0x023e819b, 0x01017673, 0x01bf5d5c, 0x030a11d6, 0x0185795f, 0x03ae2844, 0x003474a8}}, Y: Field{[10]uint32{0x03f603db, 0x018c4899, 0x02ee70f9, 0x00d971f6, 0x038271f9, 0x014558ba, 0x03697d7c, 0x03065a2d, 0x03f70c01, 0x001f033f}}}, + {X: Field{[10]uint32{0x0227370a, 0x0057b5ee, 0x00be8f65, 0x02233ea8, 0x00e276b0, 0x02afe697, 0x0151c852, 0x01555ced, 0x00874d19, 0x002dd303}}, Y: Field{[10]uint32{0x01a662ab, 0x003c7dd1, 0x031b551e, 0x01784535, 0x026f0c32, 0x0313b630, 0x01e307be, 0x015c7bf9, 0x030e380c, 0x00003c32}}}, + {X: Field{[10]uint32{0x01015874, 0x0109827e, 0x0298f47d, 0x01deebb8, 0x00849500, 0x00c5f846, 0x03c30412, 0x01b0fe85, 0x039a9f12, 0x002a69c6}}, Y: Field{[10]uint32{0x002e0586, 0x0130a9a9, 0x020f08f3, 0x01fd5448, 0x03f1b113, 0x018d33b3, 0x024be1df, 0x03c32dfe, 0x03fdb31b, 0x003017cf}}}, + {X: Field{[10]uint32{0x00dbc68c, 0x0089d2a0, 0x01c259b0, 0x03e8fe88, 0x032b1b99, 0x02cfe08e, 0x03514162, 0x007c9f76, 0x01530a16, 0x0035b784}}, Y: Field{[10]uint32{0x0059764a, 0x03202f6f, 0x02215348, 0x018539d9, 0x00714fab, 0x02b2f7bf, 0x0015d259, 0x021697bb, 0x00636597, 0x001b1882}}}, + {X: Field{[10]uint32{0x036b73f1, 0x024a9d1d, 0x016df112, 0x00d80a9e, 0x0273a7dc, 0x016521fe, 0x038c22f3, 0x03297147, 0x01bc3acd, 0x00372a87}}, Y: Field{[10]uint32{0x00c85159, 0x0312a3c3, 0x035147c8, 0x026a5631, 0x01b4b4d4, 0x005c545e, 0x033719b0, 0x0181ed20, 0x01fcc22c, 0x0037104c}}}, + {X: Field{[10]uint32{0x0005ab6c, 0x01a89100, 0x01d21220, 0x00025526, 0x015f3a13, 0x01dc2535, 0x03aa93c6, 0x02f84c70, 0x03a000c4, 0x0004d54d}}, Y: Field{[10]uint32{0x00fb0f69, 0x00bc1159, 0x0333048c, 0x033f8d20, 0x0308f3eb, 0x03548dc2, 0x01f0d1dd, 0x037d9ccd, 0x031fd2d3, 0x001fbda7}}}, + {X: Field{[10]uint32{0x01de93ac, 0x03fa760e, 0x0004afb3, 0x03957a7a, 0x02751dd6, 0x00ff666b, 0x01572bbe, 0x018b9933, 0x0017c232, 0x000a3c76}}, Y: Field{[10]uint32{0x01e2cb7e, 0x00a6d20e, 0x01cb0970, 0x022f5079, 0x008f5dfe, 0x01f20d6b, 0x02e0e896, 0x00f690b6, 0x0061987e, 0x000093d6}}}, + {X: Field{[10]uint32{0x00294289, 0x03384d51, 0x001e25f8, 0x021e6b59, 0x03e0779b, 0x002040b7, 0x0331155c, 0x02dfee3a, 0x03836e8f, 0x003df13b}}, Y: Field{[10]uint32{0x036bce2c, 0x026593c7, 0x020d1362, 0x008da55e, 0x0216470d, 0x01bae5a0, 0x0150f091, 0x02588758, 0x0381db33, 0x0001fe69}}}, + {X: Field{[10]uint32{0x0228b3e6, 0x02a3d986, 0x03aeda8d, 0x0061444b, 0x00ddc8d0, 0x0169cd75, 0x0366f7e2, 0x026cd462, 0x025e1ddc, 0x003c7d6b}}, Y: Field{[10]uint32{0x01ad4288, 0x036777ee, 0x03cb41c6, 0x0218fb6d, 0x035c5c34, 0x013f9ea3, 0x024a8df2, 0x01360142, 0x012c9792, 0x00276ffc}}}, + {X: Field{[10]uint32{0x008b654f, 0x03ef5cc0, 0x0027dc2a, 0x0287ad96, 0x01257c10, 0x015e2d8e, 0x020dbc74, 0x033a7072, 0x0173d170, 0x00257e0c}}, Y: Field{[10]uint32{0x03412487, 0x03472f00, 0x035b8b75, 0x00edefb8, 0x017d5ab8, 0x01a4628c, 0x03c3c91c, 0x012a2104, 0x02bc0829, 0x0018ea0f}}}, + {X: Field{[10]uint32{0x023ff750, 0x020f025a, 0x03a7df8c, 0x00d646f8, 0x03964749, 0x01f58154, 0x008c8e37, 0x017847ae, 0x025c9f09, 0x003d2b69}}, Y: Field{[10]uint32{0x01861ed3, 0x0146972b, 0x0178d3ac, 0x01d86c37, 0x012ede16, 0x036f3129, 0x00bc87c3, 0x0116cb9b, 0x0328a385, 0x0039da0f}}}, + {X: Field{[10]uint32{0x019e5fd2, 0x039eb90a, 0x00fd03af, 0x015b64e5, 0x0040b827, 0x0371ef09, 0x03bcd591, 0x036cec6d, 0x0096f714, 0x00106beb}}, Y: Field{[10]uint32{0x0099fedc, 0x03a691c1, 0x02f20474, 0x0001769e, 0x0061c52d, 0x03195291, 0x02e98aea, 0x03fc4909, 0x006a3292, 0x00270ba7}}}, + {X: Field{[10]uint32{0x00487405, 0x02a85bba, 0x03ffd0cc, 0x03f710bc, 0x01e1b8df, 0x0328d7c3, 0x0141fe9c, 0x00726d86, 0x031b2cb8, 0x000dfcc2}}, Y: Field{[10]uint32{0x00b88a0f, 0x00755363, 0x022bb61b, 0x00f29326, 0x018086bb, 0x0021ad92, 0x03dd08e1, 0x00754767, 0x0285e340, 0x0024afde}}}, + {X: Field{[10]uint32{0x004fb3ce, 0x0181c596, 0x0205b9d7, 0x02651530, 0x03605a21, 0x0338323a, 0x01312022, 0x01faa885, 0x0166646e, 0x000bd5dc}}, Y: Field{[10]uint32{0x03d5f446, 0x019f7fc0, 0x00ee0985, 0x036bb589, 0x01af32e8, 0x03412e5a, 0x020dc684, 0x033ab56b, 0x026fe43d, 0x003c35cc}}}, + {X: Field{[10]uint32{0x00b5150a, 0x01f96e99, 0x03e7dfd5, 0x03fc2fe7, 0x003c2e24, 0x02bff6fe, 0x03a0af94, 0x0144ad7a, 0x038092c5, 0x0022aef1}}, Y: Field{[10]uint32{0x02896b75, 0x0059f5fd, 0x0232791a, 0x03b12454, 0x010bb87d, 0x03fb33db, 0x015b974f, 0x03066a92, 0x018f0c2e, 0x00163d66}}}, + {X: Field{[10]uint32{0x0147571c, 0x03741970, 0x00aed219, 0x03d70a04, 0x00f6da7c, 0x01f95f3f, 0x0073fe40, 0x01dacc9f, 0x028fa013, 0x003906b3}}, Y: Field{[10]uint32{0x036844a2, 0x02a52fdd, 0x027a37d8, 0x01146584, 0x01715d45, 0x01cbe639, 0x02d04592, 0x01c530c8, 0x02da3c2a, 0x002d642a}}}, + {X: Field{[10]uint32{0x010f1d88, 0x00533662, 0x03b5abe7, 0x03f2767a, 0x017c0c84, 0x00491e27, 0x0180f7f4, 0x0157bb77, 0x00778b63, 0x000c0326}}, Y: Field{[10]uint32{0x039c9002, 0x017a4ef8, 0x0138520f, 0x01b20d37, 0x0068c507, 0x03869ee0, 0x00f5c7a4, 0x021cc432, 0x0262c571, 0x0036b0ae}}}, + {X: Field{[10]uint32{0x02e24c61, 0x0205c1c4, 0x01b5c876, 0x008c9b28, 0x03dcdb66, 0x01e1db0f, 0x02072c1f, 0x003e1096, 0x01d219d4, 0x001a78ce}}, Y: Field{[10]uint32{0x00babc50, 0x002e1b4e, 0x005a1bad, 0x02024dd0, 0x014cd472, 0x02d4d648, 0x017e8499, 0x011c0085, 0x015059a4, 0x002350e4}}}, + {X: Field{[10]uint32{0x03bdb909, 0x03752132, 0x0346da2f, 0x027d47f1, 0x00cddd77, 0x007eaded, 0x033ccf64, 0x02a67e2a, 0x03df8e47, 0x00395924}}, Y: Field{[10]uint32{0x03f5ee59, 0x012728f8, 0x01145b6e, 0x0275d630, 0x01974531, 0x0107062d, 0x0006036d, 0x0053fb42, 0x020a559e, 0x001a36e8}}}, + {X: Field{[10]uint32{0x03f50587, 0x0134e379, 0x01c611a3, 0x03795d36, 0x00f76532, 0x01b803ac, 0x01c11e58, 0x0144734e, 0x00578998, 0x000dea47}}, Y: Field{[10]uint32{0x03145f18, 0x007710ec, 0x0381ee5d, 0x0042ae74, 0x01feac27, 0x00276a25, 0x01975dc0, 0x022891cd, 0x00af0d2d, 0x0038e862}}}, + {X: Field{[10]uint32{0x02e88c1f, 0x0149d0b7, 0x0124a86c, 0x01bd9793, 0x02622401, 0x02535e0e, 0x00629c71, 0x018b844b, 0x01fb5cc2, 0x00317c16}}, Y: Field{[10]uint32{0x038c890a, 0x0155e3ec, 0x00623ab1, 0x00147be8, 0x018c0907, 0x0242d1b5, 0x037792d5, 0x02a56945, 0x03521a96, 0x0007216f}}}, + {X: Field{[10]uint32{0x038716a1, 0x01e24926, 0x01827626, 0x018fca11, 0x03c6323c, 0x021006b3, 0x018c59d7, 0x033ac68a, 0x02ccd605, 0x00159bb7}}, Y: Field{[10]uint32{0x0244cc90, 0x0018b516, 0x010a15ad, 0x02bf0080, 0x038c40b3, 0x00b4ccbf, 0x01f85b93, 0x01bc81e2, 0x03735adf, 0x003b8344}}}, + {X: Field{[10]uint32{0x032c7c7b, 0x027337b6, 0x034c8db6, 0x038b0fae, 0x023e6cf4, 0x0332d190, 0x012e33db, 0x013e1c01, 0x0033c6ef, 0x000c9f9c}}, Y: Field{[10]uint32{0x03e8db36, 0x0385ba54, 0x012634aa, 0x00e7def6, 0x00122662, 0x0026bac7, 0x023e2667, 0x03ca6d2a, 0x012b2be0, 0x003f1242}}}, + {X: Field{[10]uint32{0x03778024, 0x039c0265, 0x01e1a1ea, 0x038a317d, 0x0284ef5a, 0x029b2bfd, 0x0329704e, 0x02b21957, 0x03693ac0, 0x0026269f}}, Y: Field{[10]uint32{0x00dadfd0, 0x01ed90a0, 0x0292bd1b, 0x035cec2c, 0x00e8eb1f, 0x02b3fa99, 0x03b5bd44, 0x011639d2, 0x027b3396, 0x0015cf44}}}, + {X: Field{[10]uint32{0x0330fc94, 0x00b31842, 0x019769c2, 0x03e92999, 0x037ce313, 0x013d2695, 0x01cec4b7, 0x01fd53b4, 0x032f14f2, 0x002729d9}}, Y: Field{[10]uint32{0x0104e4a1, 0x01b283ce, 0x011dcd2d, 0x0013bbb0, 0x006ab141, 0x00b7e34c, 0x0003f818, 0x00a928c2, 0x00d731d5, 0x003e4831}}}, + {X: Field{[10]uint32{0x0047f5f5, 0x0155579e, 0x030cde1d, 0x0143b4bb, 0x02060978, 0x01f89c86, 0x00316871, 0x03a38656, 0x0245654f, 0x0036c401}}, Y: Field{[10]uint32{0x01056567, 0x02064a0c, 0x0014c962, 0x033b9d14, 0x02619287, 0x03ddb22d, 0x03cdf895, 0x003b3cd3, 0x02cea9c9, 0x000acb0f}}}, + {X: Field{[10]uint32{0x013295a9, 0x01340335, 0x01c07bb9, 0x03e9949a, 0x02418a34, 0x00effc53, 0x02110a8f, 0x00ed0979, 0x009e8274, 0x00138a83}}, Y: Field{[10]uint32{0x00ccca7a, 0x02cb138f, 0x014b3d98, 0x03b237e8, 0x008a34e5, 0x028eb1a7, 0x00b90590, 0x02c12dad, 0x02e3e00b, 0x00144ab0}}}, + {X: Field{[10]uint32{0x02ac77f6, 0x010d4bd9, 0x0368d733, 0x01dca50e, 0x0060c71a, 0x0217ec73, 0x0136f981, 0x022b2c14, 0x037024ea, 0x00304acf}}, Y: Field{[10]uint32{0x02544803, 0x01ef77c0, 0x033239c0, 0x02560cc9, 0x020d67a1, 0x03ef8949, 0x009f5a7b, 0x01dbc07c, 0x019b6f4b, 0x002de67e}}}, + {X: Field{[10]uint32{0x03fd7e58, 0x01551923, 0x003feaa7, 0x020afe9e, 0x03d6c09b, 0x005904ff, 0x017c0cf6, 0x013877af, 0x022edaf3, 0x00019396}}, Y: Field{[10]uint32{0x002f4a50, 0x0147cd0f, 0x004ff726, 0x0292d461, 0x027509a2, 0x037c249b, 0x005d611a, 0x00cb8ba4, 0x020966f0, 0x00038083}}}, + {X: Field{[10]uint32{0x030a838a, 0x0102254f, 0x03b9fef0, 0x015cb3ec, 0x013d66ec, 0x000fc0b7, 0x02d1857e, 0x010e03da, 0x0355fa73, 0x000ac2e2}}, Y: Field{[10]uint32{0x0273a61a, 0x02404f67, 0x024765bd, 0x0070d023, 0x00147ce0, 0x00722029, 0x00b45bae, 0x01965e38, 0x0251a914, 0x002b225c}}}, + {X: Field{[10]uint32{0x0288525e, 0x01e24c0a, 0x00c5bd67, 0x02d07bf5, 0x016523e8, 0x0196a59e, 0x02545299, 0x0184cf4e, 0x0130a202, 0x002b838f}}, Y: Field{[10]uint32{0x00f80552, 0x0177ed4e, 0x03ee97ec, 0x01f7687b, 0x00c80c08, 0x00e6ac98, 0x00be67b3, 0x00b49094, 0x00ff8563, 0x003eda46}}}, + {X: Field{[10]uint32{0x03e00dd9, 0x037a18a3, 0x03454a83, 0x00c3b7c8, 0x033bfa15, 0x0007d130, 0x02e46cb0, 0x02859bfe, 0x03114dfe, 0x000bfe71}}, Y: Field{[10]uint32{0x03318783, 0x03a0b11b, 0x027599b5, 0x001ef483, 0x01acb0d7, 0x02065717, 0x02383517, 0x00605e8f, 0x027a0444, 0x00014fd9}}}, + {X: Field{[10]uint32{0x027bf695, 0x02c45a93, 0x017263ed, 0x0393067d, 0x019e2614, 0x010ac512, 0x003f60cc, 0x01671b01, 0x001488b9, 0x0033009c}}, Y: Field{[10]uint32{0x03b6007a, 0x00b99296, 0x01fe2e57, 0x017080db, 0x0307b532, 0x012697c1, 0x02ce6551, 0x03d9dd99, 0x01909b22, 0x003aacfd}}}, + {X: Field{[10]uint32{0x00a945d5, 0x01a2fa0a, 0x0145584d, 0x016bc067, 0x03f9dbf4, 0x02125749, 0x03e3b476, 0x00d6997b, 0x03d13c80, 0x0006007b}}, Y: Field{[10]uint32{0x0259c4fe, 0x02f686fe, 0x005681ac, 0x02f382da, 0x03f44a5a, 0x026a0be2, 0x02f49d50, 0x025a3bd3, 0x019efcb5, 0x0037fcb4}}}, + {X: Field{[10]uint32{0x00dd7cbf, 0x02de3f0f, 0x03f8be6a, 0x038db9d1, 0x015b698f, 0x031eaeaf, 0x03c09de4, 0x002588d5, 0x01d507b6, 0x001b68aa}}, Y: Field{[10]uint32{0x0275060c, 0x016f7338, 0x00378d50, 0x020a66b3, 0x0171310b, 0x00df02bc, 0x01ac9f9b, 0x022b88a5, 0x02704aeb, 0x000789d3}}}, + {X: Field{[10]uint32{0x02fc82e4, 0x02846b6e, 0x0344c832, 0x00e86a67, 0x00c7dfe2, 0x02a513fc, 0x039e8a6e, 0x005774ef, 0x016f6a92, 0x001fa3f2}}, Y: Field{[10]uint32{0x01342bff, 0x021cb8ec, 0x02d51ddc, 0x000ea023, 0x0257d095, 0x018fce21, 0x039ed00c, 0x01b29fdc, 0x03e1e0c2, 0x003a693e}}}, + {X: Field{[10]uint32{0x020caf64, 0x02ed121f, 0x00f27559, 0x00cdc633, 0x019f53e1, 0x021c1d90, 0x0266ab37, 0x035bdff8, 0x033a77d6, 0x00298d8b}}, Y: Field{[10]uint32{0x02cc787e, 0x02135874, 0x00d70087, 0x00e7d1cf, 0x03e29d85, 0x019bdd46, 0x025cd860, 0x00e17182, 0x02da3fc2, 0x00300588}}}, + {X: Field{[10]uint32{0x0337d2b3, 0x01c01d66, 0x01557449, 0x0154df09, 0x018582bd, 0x001db06a, 0x01a19b47, 0x01d24e8f, 0x022228b4, 0x00146194}}, Y: Field{[10]uint32{0x00287be1, 0x02bef411, 0x01ad17d0, 0x02e14914, 0x02826558, 0x01032e33, 0x03ca65bf, 0x0236764f, 0x01796863, 0x003c3c2e}}}, + {X: Field{[10]uint32{0x01d472ce, 0x02f0f460, 0x028e67e8, 0x004a7a3b, 0x0304d802, 0x01c6656a, 0x0314ff4f, 0x02e70e31, 0x009ba9f1, 0x0028a824}}, Y: Field{[10]uint32{0x0040068d, 0x03d717bb, 0x01a6a1e8, 0x007b3649, 0x028b364d, 0x03114ce4, 0x03fdf98e, 0x031efdc6, 0x000bd45e, 0x001048e4}}}, + {X: Field{[10]uint32{0x003aef2d, 0x00c7e1ee, 0x009212b0, 0x03abe7c3, 0x02f1357b, 0x006fe5e7, 0x03f5ac2a, 0x01fcda98, 0x0122454e, 0x00369460}}, Y: Field{[10]uint32{0x006da722, 0x0363cdda, 0x00b32b6b, 0x03e2e683, 0x016cb7f3, 0x02e7762e, 0x0028c5e1, 0x017a0032, 0x02fd0d41, 0x002fe1df}}}, + {X: Field{[10]uint32{0x0147a87d, 0x035d418e, 0x0382e6cb, 0x001b520f, 0x008a6983, 0x004316a9, 0x01aa5729, 0x00c49796, 0x00541a98, 0x00107103}}, Y: Field{[10]uint32{0x03bfc57f, 0x01bc4068, 0x00c814e8, 0x00cf0c3d, 0x03ef8400, 0x03ef7d79, 0x029f129f, 0x02442aee, 0x03656b89, 0x001db6ae}}}, + {X: Field{[10]uint32{0x02addbfd, 0x00267326, 0x01318709, 0x01322290, 0x0028745e, 0x03314362, 0x007c980a, 0x039191a1, 0x028387f2, 0x003127f7}}, Y: Field{[10]uint32{0x027227e1, 0x01231fab, 0x03a94bbb, 0x03b99847, 0x00c7ddb4, 0x00a2f9fe, 0x00baf9e6, 0x01ef4de7, 0x0112dfd0, 0x002996f1}}}, + {X: Field{[10]uint32{0x020fceae, 0x03c060c3, 0x010717a1, 0x0223a314, 0x023a6c6b, 0x035edd09, 0x03219406, 0x01d0f537, 0x0161b6ee, 0x00216c5f}}, Y: Field{[10]uint32{0x01868fef, 0x00c24b95, 0x02be892d, 0x00f9c13d, 0x03ebddc5, 0x03d2ffee, 0x006ce022, 0x007fad41, 0x00a274c7, 0x0008ae7a}}}, + {X: Field{[10]uint32{0x0117964f, 0x03d7153c, 0x0243e883, 0x030b2353, 0x023914af, 0x00158e7b, 0x03521895, 0x01dfc4f9, 0x037fe6d6, 0x00323874}}, Y: Field{[10]uint32{0x01bfc21e, 0x02b56ace, 0x008e4f88, 0x02d0daad, 0x03ee4a7a, 0x007e6525, 0x006ba559, 0x016a46bd, 0x0118d08f, 0x002c32b3}}}, + {X: Field{[10]uint32{0x0083836b, 0x001e29f9, 0x02dd9866, 0x02802e5e, 0x011a30ba, 0x00c44a65, 0x03d6f833, 0x02223169, 0x00307d25, 0x0037fb00}}, Y: Field{[10]uint32{0x02faa00d, 0x004ea42e, 0x0380956e, 0x002dbee5, 0x00f407ca, 0x00abe391, 0x00664168, 0x02511fbd, 0x0206bf2e, 0x001396a2}}}, + {X: Field{[10]uint32{0x030be9d6, 0x02535fdf, 0x00b20925, 0x01b97d35, 0x02c842ff, 0x0274c1db, 0x017618dc, 0x03631bbb, 0x00387c18, 0x003ab1b1}}, Y: Field{[10]uint32{0x0265b8d1, 0x008e9ac8, 0x021634e8, 0x019f5cd2, 0x0177a86a, 0x003fbaef, 0x031802ac, 0x006e0ae9, 0x03bffc0c, 0x000675a6}}}, + {X: Field{[10]uint32{0x03424cde, 0x0108046c, 0x019b74d6, 0x005672f2, 0x0069432c, 0x01fdab20, 0x0024db79, 0x0377b292, 0x004e04dc, 0x0027fce3}}, Y: Field{[10]uint32{0x01619ebc, 0x018886d4, 0x014f91d2, 0x0106e53d, 0x01266bd0, 0x033212e0, 0x005b0c93, 0x02effb7d, 0x0260b7c1, 0x003dcbe9}}}, + {X: Field{[10]uint32{0x01313f36, 0x03f19129, 0x02c1c146, 0x0277512c, 0x019153f6, 0x03f8a155, 0x01e4f8c4, 0x00ca4d7e, 0x013f3a5a, 0x00179e16}}, Y: Field{[10]uint32{0x02fd9c47, 0x02a6e6a2, 0x0114b89d, 0x02986cb4, 0x0358cbc5, 0x01758f25, 0x0195b700, 0x02f746cb, 0x0044dc63, 0x00276756}}}, + {X: Field{[10]uint32{0x01009ae4, 0x0321511c, 0x01b32d22, 0x0121debe, 0x020ad31a, 0x00f88870, 0x01ba38b0, 0x012dbec0, 0x03a48928, 0x002841f1}}, Y: Field{[10]uint32{0x03d9f6b5, 0x030da689, 0x014c4a0f, 0x002f1457, 0x03653b58, 0x0303e7ca, 0x0386cd5b, 0x019647b8, 0x02d46be4, 0x0001981c}}}, + {X: Field{[10]uint32{0x01b02af1, 0x03397e90, 0x028f4190, 0x023b308e, 0x02ff98e8, 0x01e4a65d, 0x02445ba6, 0x026117f8, 0x01d0308d, 0x0000907c}}, Y: Field{[10]uint32{0x03e194a9, 0x02dfaa29, 0x01c74366, 0x03bb16b2, 0x0209c881, 0x02be474c, 0x015723ad, 0x02a237e8, 0x03ecd413, 0x002219a5}}}, + {X: Field{[10]uint32{0x008a72fa, 0x02431af9, 0x01283c87, 0x005a2e6a, 0x02341860, 0x03ab0ed0, 0x015c6d26, 0x0241ba0f, 0x00d2627f, 0x000c67ba}}, Y: Field{[10]uint32{0x029eaa57, 0x033109cf, 0x032819d0, 0x014c197e, 0x01760344, 0x032d1631, 0x009f8491, 0x005b80d0, 0x02eda678, 0x00167925}}}, + {X: Field{[10]uint32{0x03ca4822, 0x0051896f, 0x038e1a26, 0x019864a1, 0x01e01008, 0x01a615d6, 0x03f4f7e9, 0x03e6f64d, 0x011a00fd, 0x000619a0}}, Y: Field{[10]uint32{0x01b7ae19, 0x01449a75, 0x0250172e, 0x00646990, 0x00585f03, 0x02d97e9f, 0x003a1316, 0x0272209e, 0x0065e85f, 0x00085781}}}, + {X: Field{[10]uint32{0x03992f26, 0x00bdda54, 0x00ce69ff, 0x016bdce5, 0x01398967, 0x033d9026, 0x03429fb8, 0x02400176, 0x02d70b94, 0x001fbfef}}, Y: Field{[10]uint32{0x00c7c749, 0x0026b210, 0x02aa7a1d, 0x01ab1b34, 0x03616d8b, 0x02fcb702, 0x016affac, 0x01b52d49, 0x01ba28f2, 0x001bbeed}}}, + {X: Field{[10]uint32{0x03168867, 0x0293494a, 0x00bf0957, 0x0199c3c5, 0x02665c8d, 0x00de54ac, 0x02e45c19, 0x0057c87f, 0x03d0e593, 0x003631ca}}, Y: Field{[10]uint32{0x0256fbcd, 0x011b186f, 0x02e6e5a9, 0x006cb266, 0x028a2da3, 0x01cff182, 0x01e2cc3a, 0x0029bf44, 0x0162fdd4, 0x0019300b}}}, + {X: Field{[10]uint32{0x00d0db4b, 0x0060c206, 0x0147abcf, 0x0147ead3, 0x0187bbfd, 0x002c35a4, 0x0396bbcb, 0x03ce050e, 0x0222ce64, 0x001c43b1}}, Y: Field{[10]uint32{0x0134d994, 0x00cc5391, 0x030c5496, 0x00dafaae, 0x013d275c, 0x0243d4c7, 0x029b9618, 0x00ebc30b, 0x0086526c, 0x003b7f44}}}, + {X: Field{[10]uint32{0x00d51ca6, 0x0131654c, 0x0334868e, 0x009e7930, 0x0370574f, 0x02021b76, 0x0168e763, 0x03b75270, 0x024b9aea, 0x002509e5}}, Y: Field{[10]uint32{0x004e2dd8, 0x00298457, 0x017af730, 0x03a9a131, 0x01e0026b, 0x00a160f6, 0x03b312e9, 0x00019fac, 0x01cf2a6b, 0x000442d0}}}, + {X: Field{[10]uint32{0x0355565f, 0x0166ce63, 0x00a5c46a, 0x00597aa9, 0x01c5a2e8, 0x036d8859, 0x03515c06, 0x03b6727a, 0x0035a8b3, 0x002bbde5}}, Y: Field{[10]uint32{0x0184b91d, 0x02c5e915, 0x012a0118, 0x0044f0d5, 0x03036535, 0x0250aaac, 0x00cb93d8, 0x03109714, 0x00f21274, 0x001985ba}}}, + {X: Field{[10]uint32{0x0074b5a3, 0x0319fccc, 0x03994a4a, 0x0339296b, 0x020f49f0, 0x0275cbc9, 0x03401935, 0x0018e9a3, 0x00323546, 0x000faf76}}, Y: Field{[10]uint32{0x00460238, 0x0254019e, 0x019beed8, 0x03cb238b, 0x02db7962, 0x00e575c4, 0x02ba318f, 0x0127bb43, 0x03d4b295, 0x000048d9}}}, + {X: Field{[10]uint32{0x026aeff2, 0x02d01790, 0x020dd729, 0x03894d35, 0x0019af86, 0x019cf212, 0x03c6bc3b, 0x0021c742, 0x025ec52b, 0x0028e367}}, Y: Field{[10]uint32{0x032cad02, 0x031d7a7c, 0x02a1cb01, 0x00a22b0d, 0x01f6d134, 0x03237935, 0x00955383, 0x01b1744e, 0x0371d9ae, 0x003af919}}}, + {X: Field{[10]uint32{0x00a7d624, 0x03b0d092, 0x01b0f9f4, 0x02845a40, 0x02334369, 0x0114b2e3, 0x00407f7b, 0x02ec6643, 0x0382619c, 0x0039f4a7}}, Y: Field{[10]uint32{0x03c4e614, 0x03b16d67, 0x02e0742b, 0x0052aa3b, 0x0315b6ce, 0x0175d85b, 0x00ce2304, 0x014581ae, 0x02d4618b, 0x001d6573}}}, + {X: Field{[10]uint32{0x0043ceae, 0x033bf3d0, 0x004edf81, 0x01738fa3, 0x007523de, 0x00063c03, 0x02333e26, 0x009ee52b, 0x02b02792, 0x003b21a7}}, Y: Field{[10]uint32{0x011ac92b, 0x02e9f71c, 0x01556ec6, 0x01dd9040, 0x03ca3fe5, 0x0399f60a, 0x00bdd264, 0x03210692, 0x02552c89, 0x0029086a}}}, + {X: Field{[10]uint32{0x02ec5e71, 0x003fcd71, 0x03ae7c07, 0x00f3809b, 0x026f0752, 0x01128d4a, 0x005c0571, 0x02322dbf, 0x0108e44a, 0x00115276}}, Y: Field{[10]uint32{0x02b5dd7a, 0x0044e2de, 0x0240f44c, 0x000069b5, 0x0164b486, 0x00b2371e, 0x0208c19e, 0x01f81040, 0x03200770, 0x001c7638}}}, + {X: Field{[10]uint32{0x01b070b2, 0x00512c29, 0x0385ff98, 0x00f4596c, 0x032cc7a5, 0x038501ac, 0x024f3813, 0x02e326c2, 0x029efef7, 0x00146edb}}, Y: Field{[10]uint32{0x0067044e, 0x0255ad69, 0x03befde5, 0x0372ab7c, 0x015268ee, 0x011b7df3, 0x031de11d, 0x013f4228, 0x03e9dd79, 0x00194a0a}}}, + {X: Field{[10]uint32{0x016d001f, 0x00fae81a, 0x013e45a8, 0x03536458, 0x02aa2027, 0x01239897, 0x0203afcd, 0x02aa0910, 0x02974c7c, 0x001f370c}}, Y: Field{[10]uint32{0x03519565, 0x014d2420, 0x00a36192, 0x0045b0b3, 0x026060a4, 0x00a27968, 0x00027a7a, 0x0156cede, 0x01433b1a, 0x002e4ae6}}}, + {X: Field{[10]uint32{0x009c9314, 0x02655d58, 0x02fc9030, 0x02e84051, 0x02aa478f, 0x0205e9af, 0x03722f6d, 0x0226da99, 0x02beb8e9, 0x000f2a71}}, Y: Field{[10]uint32{0x02ca2c0f, 0x01fc25b3, 0x00e4d6bb, 0x036af452, 0x0074c6e0, 0x0049328c, 0x006bba34, 0x006f0e0e, 0x017ff4b8, 0x001540bb}}}, + {X: Field{[10]uint32{0x01354d0c, 0x00447a2b, 0x00436864, 0x00a73248, 0x0390e1a2, 0x023b5798, 0x01bc1c83, 0x032b6bc0, 0x026c45ed, 0x002a8aaf}}, Y: Field{[10]uint32{0x0024f6cd, 0x03727cbe, 0x00d47c44, 0x02a21c55, 0x0295bb3d, 0x006e8ac9, 0x0061251f, 0x00c12893, 0x01c66f91, 0x0006e08a}}}, + {X: Field{[10]uint32{0x023bc7ee, 0x01a4db63, 0x0375a2ab, 0x02b7ef9b, 0x0375466a, 0x03dced83, 0x01f226de, 0x027564c6, 0x023df28c, 0x002d4b2b}}, Y: Field{[10]uint32{0x03cfe220, 0x00b6e222, 0x03a3a446, 0x0164b85f, 0x02421e07, 0x029f2562, 0x00738488, 0x00247732, 0x035e022c, 0x003afb9c}}}, + {X: Field{[10]uint32{0x0021ef54, 0x036414ce, 0x01661838, 0x030d1ed9, 0x01635469, 0x00d2585a, 0x01a62832, 0x0372d84f, 0x030362a6, 0x00304215}}, Y: Field{[10]uint32{0x00eaf517, 0x033e6cd3, 0x01cdec38, 0x03760ade, 0x0044511c, 0x002b531f, 0x002cac14, 0x02a3acb7, 0x02c8c1e6, 0x003f9910}}}, + {X: Field{[10]uint32{0x0308c11d, 0x00e5976b, 0x00768d5a, 0x0334be9b, 0x0383477f, 0x01908a41, 0x01454765, 0x0049fd67, 0x011cfcaf, 0x003c27a7}}, Y: Field{[10]uint32{0x03c15d10, 0x03e593a2, 0x009a27e8, 0x018f3fb3, 0x01a5b2e6, 0x0175fbf6, 0x0028fc9c, 0x03ec56fd, 0x03221f44, 0x0003c069}}}, + {X: Field{[10]uint32{0x015c4527, 0x0309dfd2, 0x0341a036, 0x017f80f4, 0x03fd3e80, 0x035c6d65, 0x00b3b179, 0x00fafb62, 0x02ef1e47, 0x00180918}}, Y: Field{[10]uint32{0x03a079c3, 0x0387db58, 0x02ce2844, 0x02c7ae74, 0x02fed2a9, 0x00fc8567, 0x02d9f235, 0x00773aaa, 0x00617141, 0x003e476d}}}, + {X: Field{[10]uint32{0x01bb582d, 0x0065ff82, 0x03c70720, 0x004c25ae, 0x016b828d, 0x0049a883, 0x00ae3558, 0x0267e841, 0x001e8e0d, 0x0009cea2}}, Y: Field{[10]uint32{0x004b0d5d, 0x00d2869a, 0x003da295, 0x01d5e68b, 0x00d1b407, 0x03ddadb0, 0x03b2f727, 0x02e45334, 0x005814a7, 0x0016ec9b}}}, + {X: Field{[10]uint32{0x000cd54d, 0x03237cba, 0x03d9f566, 0x00107691, 0x01e8cd05, 0x01bf263e, 0x02f41723, 0x032dcad0, 0x03460616, 0x001f077c}}, Y: Field{[10]uint32{0x03c41dd7, 0x02b58c13, 0x033b9390, 0x00bb059d, 0x0073153c, 0x02f04956, 0x03a8d456, 0x02e6f916, 0x020dd602, 0x002b4f9f}}}, + {X: Field{[10]uint32{0x01942f94, 0x0319544f, 0x006d3c62, 0x02c14e5e, 0x039ad644, 0x033a002d, 0x014551f3, 0x03c451ce, 0x0234657f, 0x001e5b89}}, Y: Field{[10]uint32{0x014f1c60, 0x0331f0a8, 0x01b11bb1, 0x01aa1003, 0x001e8ec6, 0x00c02069, 0x0080eb9c, 0x01c44431, 0x0238ed58, 0x002d96ef}}}, + {X: Field{[10]uint32{0x02302bd1, 0x02f7b586, 0x00206193, 0x016d80bf, 0x0062b056, 0x029990b2, 0x029953a2, 0x03da2a91, 0x01fa9985, 0x001789d8}}, Y: Field{[10]uint32{0x0253e274, 0x036eb15c, 0x030b4713, 0x036adf50, 0x003715c9, 0x0144d9f4, 0x0347c070, 0x013d740b, 0x03709db2, 0x0016e826}}}, + {X: Field{[10]uint32{0x03abe794, 0x0049b153, 0x010e6164, 0x008a636e, 0x005c004c, 0x02891ad0, 0x01ab0385, 0x00683fac, 0x0092fd34, 0x00119163}}, Y: Field{[10]uint32{0x03446725, 0x028f7635, 0x033eaf02, 0x02bbbb3c, 0x029d018f, 0x018fc729, 0x02fc3242, 0x0106e162, 0x028b3453, 0x00021675}}}, + {X: Field{[10]uint32{0x01153265, 0x00de6960, 0x0152c5c7, 0x00d32fee, 0x00a410e1, 0x01bd3989, 0x009ddc3d, 0x01f073ff, 0x0030bf81, 0x003f1206}}, Y: Field{[10]uint32{0x01322551, 0x0289e1d6, 0x02169a43, 0x017eb3a3, 0x038dfe38, 0x03676d2a, 0x0248e89f, 0x01f68512, 0x0228bd3d, 0x0028622c}}}, + {X: Field{[10]uint32{0x02ed03e6, 0x00984357, 0x01901779, 0x019a012b, 0x033a7804, 0x038abb6f, 0x0302742c, 0x029540f1, 0x027d9771, 0x0010b65d}}, Y: Field{[10]uint32{0x02d50417, 0x03a87096, 0x003ece89, 0x01a34376, 0x03d2e0f5, 0x000b490c, 0x02c782be, 0x03ccdce8, 0x032e9764, 0x0037da50}}}, + {X: Field{[10]uint32{0x01477148, 0x00bd386e, 0x004dcdc7, 0x03f74a38, 0x02462dee, 0x0057b644, 0x02602226, 0x02ca5dcb, 0x0049993a, 0x000dc48b}}, Y: Field{[10]uint32{0x0196e39d, 0x00e08316, 0x0008ef1d, 0x037a9549, 0x02410b3e, 0x01900ae3, 0x00422cc3, 0x03ef0ea8, 0x00f0924c, 0x00189ffd}}}, + {X: Field{[10]uint32{0x006896c3, 0x003a8697, 0x00bb7314, 0x015e972e, 0x013619a5, 0x01db87ab, 0x03e52cca, 0x03f2f9d0, 0x018294ba, 0x00271520}}, Y: Field{[10]uint32{0x038f7fcc, 0x00efc16c, 0x014c50b5, 0x02cc8252, 0x02ec0478, 0x01c14130, 0x031dafbf, 0x0214a3b1, 0x032eb88e, 0x0017f311}}}, + {X: Field{[10]uint32{0x025a2db9, 0x01a6e03d, 0x02a077ae, 0x01ff58fc, 0x000a5927, 0x01c48d82, 0x004e0251, 0x007da5d7, 0x02d7aa5b, 0x001ee75e}}, Y: Field{[10]uint32{0x017d1bf8, 0x03587f43, 0x0012fabf, 0x01729d5a, 0x02c4a7f1, 0x01453b2b, 0x01c14d6f, 0x0288a740, 0x02e8714a, 0x001b3787}}}, + {X: Field{[10]uint32{0x00a9a102, 0x00737a96, 0x0153e017, 0x0141b1df, 0x026990e9, 0x0107820b, 0x016d948e, 0x01582b59, 0x02f2c985, 0x002bd776}}, Y: Field{[10]uint32{0x00a5b505, 0x01607e7b, 0x003f5fd4, 0x0123bfe5, 0x011f6853, 0x03385ad6, 0x0039ff76, 0x01bfcf12, 0x011b7289, 0x0038d211}}}, + {X: Field{[10]uint32{0x0111293d, 0x03b2da48, 0x029a395b, 0x02d0538a, 0x01d26394, 0x03834559, 0x03ab3662, 0x02f46417, 0x0318e957, 0x0010999f}}, Y: Field{[10]uint32{0x02bbc7a5, 0x00083559, 0x022a2e57, 0x02c6bb2a, 0x033c0076, 0x03f895e5, 0x03fb16c1, 0x02ed8d39, 0x02b269e9, 0x000a2374}}}, + {X: Field{[10]uint32{0x00b276d7, 0x01506dd0, 0x03618587, 0x01857966, 0x029be971, 0x00c99973, 0x002a5a6f, 0x020c99d3, 0x021d50ab, 0x0017a71e}}, Y: Field{[10]uint32{0x03a11f17, 0x02115b57, 0x035b1a29, 0x0063b822, 0x02ec4664, 0x031c1d12, 0x0292c612, 0x02bd08d0, 0x00611f39, 0x00248a0d}}}, + {X: Field{[10]uint32{0x03ed8b2a, 0x0293ca37, 0x03c489a2, 0x001a2d1a, 0x038b52b5, 0x02cc82e5, 0x00d9ac97, 0x02d608ad, 0x03faf486, 0x00263183}}, Y: Field{[10]uint32{0x005280f9, 0x01eca6dd, 0x0132b580, 0x0212bb70, 0x0170416d, 0x001bb6f9, 0x02f42fa3, 0x01255604, 0x0113c253, 0x00287098}}}, + {X: Field{[10]uint32{0x0385babc, 0x01d66770, 0x0116cf0a, 0x007f6199, 0x03f30948, 0x00d43969, 0x0286e71f, 0x00b364f0, 0x01821ed5, 0x0024afea}}, Y: Field{[10]uint32{0x02c1ddb4, 0x02ba7b6c, 0x03cb802f, 0x024a545a, 0x036f5276, 0x037f893d, 0x0254e738, 0x02d2c6de, 0x0396c71a, 0x0028ff25}}}, + {X: Field{[10]uint32{0x025b865f, 0x025ce0be, 0x018c4ec1, 0x02e40eec, 0x037b7798, 0x000ac30d, 0x02413e84, 0x02d67eb3, 0x0008bd8e, 0x0026f89d}}, Y: Field{[10]uint32{0x027a2f61, 0x03a2ff69, 0x00027f54, 0x00a54093, 0x02def3ec, 0x02ee4b77, 0x02ed2c81, 0x01a8e5a3, 0x01801964, 0x00044215}}}, + {X: Field{[10]uint32{0x036350bc, 0x02e711a5, 0x018275b1, 0x01676e79, 0x037751bc, 0x0302462f, 0x0391ce38, 0x02c165ad, 0x026cb7ba, 0x0009f35a}}, Y: Field{[10]uint32{0x03faeda8, 0x03e03ba0, 0x00011a16, 0x01353fad, 0x032f41d0, 0x01a19479, 0x03761df0, 0x00ab17c4, 0x01678fce, 0x00224354}}}, + {X: Field{[10]uint32{0x0068f2eb, 0x022073bd, 0x00e1f5d8, 0x00f25bcc, 0x035f22be, 0x00319918, 0x00f6597a, 0x0184e532, 0x014daaf9, 0x003a25b8}}, Y: Field{[10]uint32{0x0196030b, 0x027cacec, 0x027260bb, 0x02136b74, 0x02efea7e, 0x03622eb2, 0x00d971af, 0x006ac771, 0x00b0512c, 0x002fac01}}}, + {X: Field{[10]uint32{0x013f8ec0, 0x030359f9, 0x033da54e, 0x0226142e, 0x03a9dd23, 0x03eacb03, 0x00b3779e, 0x0150058d, 0x0269ac48, 0x000938b4}}, Y: Field{[10]uint32{0x0219e525, 0x026a9600, 0x02460892, 0x016f907e, 0x03f5beda, 0x018e8168, 0x03ca2ca6, 0x0353080e, 0x02c2642b, 0x00379c0b}}}, + {X: Field{[10]uint32{0x001d1676, 0x0367025a, 0x03db95a9, 0x00077829, 0x009b5c4d, 0x02c48694, 0x010159b4, 0x03279175, 0x03c948c1, 0x0025e989}}, Y: Field{[10]uint32{0x033203d9, 0x01fba49b, 0x00b9ffef, 0x03e69f24, 0x018d5f3c, 0x03d75708, 0x02d43037, 0x0270a7f2, 0x015b5539, 0x00066f42}}}, + {X: Field{[10]uint32{0x0195b08f, 0x0354dc1c, 0x0014b40b, 0x01807e82, 0x0033ed67, 0x0274f214, 0x03234c7f, 0x03b17ddd, 0x0251e604, 0x0029c360}}, Y: Field{[10]uint32{0x00bccc4f, 0x009b542b, 0x01f4e0e1, 0x0225aa16, 0x0385325a, 0x031c4350, 0x012c016a, 0x00f78fc5, 0x010774e2, 0x0037ca36}}}, + {X: Field{[10]uint32{0x0242f42b, 0x023056be, 0x0012ea7c, 0x025cdbcd, 0x0327743a, 0x00f5e2c5, 0x001a0071, 0x0191cb38, 0x00434b27, 0x000b59db}}, Y: Field{[10]uint32{0x01fa7312, 0x03023ff2, 0x018ea024, 0x00f0ce52, 0x0052fa70, 0x0020ada1, 0x03b8f941, 0x0174c900, 0x01e406ef, 0x002f8a33}}}, + {X: Field{[10]uint32{0x00b29cf5, 0x0350ad00, 0x0172928f, 0x00a6d283, 0x0246c89d, 0x03c9f00d, 0x03857cfc, 0x01c9d576, 0x01e17516, 0x003d9b09}}, Y: Field{[10]uint32{0x03193201, 0x009b7a71, 0x01b6e059, 0x00c6eb5a, 0x028d2a02, 0x03670632, 0x0049150c, 0x02a21130, 0x02d422c4, 0x000fb88e}}}, + {X: Field{[10]uint32{0x02427060, 0x024f5f40, 0x01c6c293, 0x02b6393f, 0x01ce6e77, 0x013a3801, 0x004f81d2, 0x0361fbbd, 0x004b9d39, 0x0036e91f}}, Y: Field{[10]uint32{0x018d7622, 0x03b6eecf, 0x03597338, 0x022e7f3e, 0x015240f2, 0x0370ed71, 0x037eedd4, 0x00003c25, 0x0092e53d, 0x000b5719}}}, + {X: Field{[10]uint32{0x03e10f0f, 0x03e20549, 0x0301bbfd, 0x0197c20e, 0x0294788f, 0x024768ed, 0x015aedae, 0x01f71562, 0x01d94f62, 0x00285d80}}, Y: Field{[10]uint32{0x020a1183, 0x036100cd, 0x00890fa3, 0x016d178c, 0x020baded, 0x026416ce, 0x03025bd9, 0x006c56be, 0x03c8cfea, 0x001d0227}}}, + {X: Field{[10]uint32{0x0180e141, 0x03ce84d3, 0x003d5188, 0x030d53ae, 0x011c24c6, 0x03edeb23, 0x0261a125, 0x03fa41f8, 0x009fb84a, 0x00375c0c}}, Y: Field{[10]uint32{0x00bed563, 0x00d94d51, 0x018682a8, 0x019bd955, 0x024bdfd5, 0x03223777, 0x035b7862, 0x029dfe74, 0x02c0ac93, 0x000c8052}}}, + {X: Field{[10]uint32{0x03037afd, 0x015dda21, 0x003f783b, 0x024e4832, 0x03cadefb, 0x0131a8bc, 0x01253f00, 0x02ebe5c0, 0x003de746, 0x001e7f54}}, Y: Field{[10]uint32{0x00a61b93, 0x035a437b, 0x0317f1e0, 0x000023a2, 0x0286a4e6, 0x011e948f, 0x0220c266, 0x0024c4fe, 0x02586318, 0x000f172d}}}, + {X: Field{[10]uint32{0x020ff6a0, 0x00b048ae, 0x009566b9, 0x022a4d58, 0x021e7265, 0x01a8a692, 0x00eb8961, 0x0358ec7d, 0x037d77c7, 0x00346abc}}, Y: Field{[10]uint32{0x00a93bec, 0x004e514f, 0x0232ecfd, 0x0276766b, 0x00c7cac3, 0x03d0d6f7, 0x01f0e0bb, 0x02e81caf, 0x03ae5cfb, 0x00394d6d}}}, + {X: Field{[10]uint32{0x02d93c4f, 0x0149d5ea, 0x016445c7, 0x01635966, 0x01fe525d, 0x033690d1, 0x02b74fc2, 0x03652e6d, 0x0382b351, 0x001a3fc6}}, Y: Field{[10]uint32{0x0065a13c, 0x0063cead, 0x0192b798, 0x01d21460, 0x019186e3, 0x01764ef7, 0x02194aac, 0x02b02341, 0x02f1c422, 0x002aeec3}}}, + {X: Field{[10]uint32{0x0210552d, 0x00701665, 0x0224a5c4, 0x02898bb3, 0x0314393e, 0x01329921, 0x01b73bcf, 0x00f97417, 0x00971806, 0x00089e17}}, Y: Field{[10]uint32{0x021d8774, 0x00606aab, 0x018c4157, 0x0128972e, 0x021933e6, 0x029d735b, 0x005e75c8, 0x02a03093, 0x026ad7a7, 0x00270200}}}, + {X: Field{[10]uint32{0x035ffebf, 0x007c9113, 0x00580889, 0x018e9df6, 0x02e26780, 0x03f085d8, 0x00662583, 0x02dd5d7c, 0x01e7563f, 0x00189b2d}}, Y: Field{[10]uint32{0x028498b4, 0x01c32f19, 0x0211cce1, 0x0289598b, 0x01953a6d, 0x02a61470, 0x01161845, 0x030fc90d, 0x03f672c3, 0x00020da7}}}, + {X: Field{[10]uint32{0x00d12d2a, 0x01a3d6a0, 0x01ac55e6, 0x0392dbeb, 0x0061c8c4, 0x022293ca, 0x03fa430b, 0x01841603, 0x02f4d6f4, 0x002a67c3}}, Y: Field{[10]uint32{0x01053d06, 0x03fccfac, 0x00d3e28f, 0x012be0c1, 0x024e2f06, 0x02b8abbd, 0x0002c406, 0x00020dde, 0x032939db, 0x0025cab7}}}, + {X: Field{[10]uint32{0x03f02645, 0x00c77a71, 0x03e61019, 0x00f32acf, 0x03784afe, 0x03efa52a, 0x000a3fbd, 0x02cb6f2e, 0x02272ff0, 0x002c90f3}}, Y: Field{[10]uint32{0x020b7559, 0x0011238d, 0x03e9f41a, 0x0161188a, 0x023e85b8, 0x03a9460d, 0x0233df8f, 0x0320831c, 0x0119fbb8, 0x0036cbab}}}, + {X: Field{[10]uint32{0x0363deb3, 0x037d5c10, 0x022f3f8b, 0x019150c8, 0x0143efb2, 0x002877fd, 0x031b21a0, 0x02d8b1a9, 0x009d685c, 0x0031d38f}}, Y: Field{[10]uint32{0x01c4b2ec, 0x00d121bb, 0x03ed4387, 0x02d87a0c, 0x025cd550, 0x013bed86, 0x00358efc, 0x00f4168e, 0x0261fbf2, 0x00261f60}}}, + {X: Field{[10]uint32{0x01f71c47, 0x01bbc377, 0x03047888, 0x03090f70, 0x01d34710, 0x03025ba7, 0x00885f34, 0x01352f47, 0x00a7fc98, 0x003fcbd9}}, Y: Field{[10]uint32{0x006e906d, 0x006a16a8, 0x0249765e, 0x0035e17c, 0x0309eac6, 0x01a43035, 0x02c91257, 0x00bf7c7b, 0x0258fd5e, 0x00053018}}}, + {X: Field{[10]uint32{0x03712085, 0x0188506e, 0x01badec1, 0x0053da86, 0x026819b5, 0x0103dd0e, 0x02e8a8b1, 0x02ac934d, 0x00e13f4c, 0x001f64b1}}, Y: Field{[10]uint32{0x01b698c8, 0x01bd05a0, 0x033d1b72, 0x00839af8, 0x003e0dc9, 0x0369a1ae, 0x03193309, 0x035f4aa6, 0x03622ec7, 0x00181ad5}}}, + {X: Field{[10]uint32{0x03e13b6c, 0x03495183, 0x01518a0b, 0x0083fef3, 0x024ce0cc, 0x01e54580, 0x009487c7, 0x014a2627, 0x014d9ef4, 0x0000e90f}}, Y: Field{[10]uint32{0x01deb36e, 0x028ff036, 0x01912dfb, 0x02854d26, 0x00eedad2, 0x01ac49aa, 0x0228d61e, 0x024179ae, 0x03255768, 0x0017c934}}}, + {X: Field{[10]uint32{0x02a25f8f, 0x010a9b3b, 0x02308673, 0x0016cf19, 0x026e59fd, 0x01c74317, 0x00c67e73, 0x01793457, 0x03028010, 0x000239cb}}, Y: Field{[10]uint32{0x016b368e, 0x00767782, 0x015099ea, 0x02b66ef7, 0x031eada5, 0x01ede6c0, 0x01870da4, 0x02e1b7c2, 0x005158fd, 0x00025377}}}, + {X: Field{[10]uint32{0x00ef54dd, 0x03404f33, 0x02d6bfd9, 0x02c3961c, 0x02ab8789, 0x00d0fc4b, 0x037f9d18, 0x009d8b29, 0x00236dc0, 0x002e273f}}, Y: Field{[10]uint32{0x011141cd, 0x01ee4110, 0x0037d2ba, 0x0173c7dd, 0x01c3ad13, 0x03e18344, 0x02ce6f9d, 0x0265ad29, 0x028545a5, 0x0027269c}}}, + {X: Field{[10]uint32{0x01ccb59b, 0x03924410, 0x03ebbc64, 0x00f8b11c, 0x016744a4, 0x01892ced, 0x0190b535, 0x01a2d2ec, 0x00089798, 0x003a17b8}}, Y: Field{[10]uint32{0x02cbd6a2, 0x01d69484, 0x01723a80, 0x022fe10b, 0x010e1c9a, 0x01fb7747, 0x03e3b3d0, 0x03143089, 0x030f9ede, 0x0034ebf9}}}, + {X: Field{[10]uint32{0x02cb97b5, 0x035764ed, 0x01b3bfb0, 0x0144e645, 0x02f7f906, 0x0144d019, 0x00c8e16d, 0x01b4564f, 0x03f2774d, 0x0036375a}}, Y: Field{[10]uint32{0x035e26f4, 0x015bd294, 0x02b2c6d2, 0x03464544, 0x0325f7e6, 0x0217a7e2, 0x0031862b, 0x013cfc45, 0x00945f73, 0x0016880c}}}, + {X: Field{[10]uint32{0x02aa94e8, 0x00e1689d, 0x02aec3e6, 0x03be634d, 0x00033968, 0x0344cf61, 0x03bd5545, 0x02f7ad17, 0x01c5328f, 0x001df820}}, Y: Field{[10]uint32{0x00c2959a, 0x02daf845, 0x01669c0c, 0x02de4688, 0x00ba597f, 0x03820141, 0x026291a3, 0x03cbe116, 0x03f7ca25, 0x000b3a14}}}, + {X: Field{[10]uint32{0x03c904ab, 0x0311e7d9, 0x018c4fb9, 0x00f6c6b4, 0x02b5b920, 0x0127c1e8, 0x020b82f5, 0x025a09a0, 0x02eae8a4, 0x001441e1}}, Y: Field{[10]uint32{0x039cd96b, 0x025a19eb, 0x018a8fbd, 0x0307aac7, 0x00b39382, 0x0077219d, 0x03e21ae7, 0x031a7fd8, 0x03854e4d, 0x003704c0}}}, + {X: Field{[10]uint32{0x0242639d, 0x0109e268, 0x00ddabb6, 0x00cceaf0, 0x021169e4, 0x00203430, 0x0121056e, 0x0356d930, 0x02b3fbda, 0x000beebf}}, Y: Field{[10]uint32{0x00405cd3, 0x03e29f05, 0x031c92f3, 0x03257a97, 0x015ff199, 0x0074face, 0x019ef0a1, 0x02853796, 0x002fd9e6, 0x0002a176}}}, + {X: Field{[10]uint32{0x0312ae0a, 0x00ad791e, 0x02ae673b, 0x002478a3, 0x02aec808, 0x02d7c031, 0x03fbbc26, 0x0118f07c, 0x03eb6e6e, 0x0008036f}}, Y: Field{[10]uint32{0x03a95ecf, 0x0370072e, 0x0344ac59, 0x01dbf346, 0x03832127, 0x01524609, 0x021f0711, 0x00f65e0f, 0x0219bdaa, 0x001214a8}}}, + {X: Field{[10]uint32{0x00b8a3d9, 0x03fcaf89, 0x00ab41ac, 0x01c95086, 0x013ec225, 0x014b36e1, 0x03d46b6e, 0x03df7024, 0x00f60259, 0x0009ec50}}, Y: Field{[10]uint32{0x00583387, 0x02a9fff0, 0x00f7bc85, 0x018dc69d, 0x0228bb5d, 0x004c38c4, 0x00054c4f, 0x02b6eb50, 0x009f70cb, 0x000f3bb4}}}, + {X: Field{[10]uint32{0x015b7e71, 0x03592afa, 0x00a0fcd1, 0x032b5ca3, 0x000e175c, 0x0130ac0b, 0x022ec351, 0x014c4608, 0x01ee535c, 0x003f9250}}, Y: Field{[10]uint32{0x011f56f6, 0x01c013b9, 0x0370ed35, 0x03796172, 0x03748e0a, 0x02992b68, 0x01cb4422, 0x01946f62, 0x01ae286d, 0x003a7372}}}, + {X: Field{[10]uint32{0x01ff1cdf, 0x00e4979d, 0x01d885a0, 0x03b5664d, 0x030ce47c, 0x016f8bc5, 0x03443d76, 0x0252f4db, 0x009b4cae, 0x000c5f48}}, Y: Field{[10]uint32{0x02262d72, 0x01297ae2, 0x02864543, 0x037de298, 0x02c942a5, 0x02daa007, 0x03945af4, 0x015c703f, 0x009568fe, 0x00030645}}}, + {X: Field{[10]uint32{0x0093f9ea, 0x026850f3, 0x02cead9f, 0x002d64f3, 0x03df32e8, 0x00543a6a, 0x005f8ab0, 0x00c391dc, 0x0377764e, 0x003e5469}}, Y: Field{[10]uint32{0x03afd925, 0x01c3c548, 0x03052655, 0x00ec46b8, 0x026ac261, 0x004b3777, 0x00cc6b8b, 0x0088fb9b, 0x01d625f2, 0x003bee54}}}, + {X: Field{[10]uint32{0x0389c8ef, 0x007cd10c, 0x0284d309, 0x03d9b968, 0x024f251a, 0x03f925aa, 0x03229a9f, 0x023a2fc3, 0x00ebf5fd, 0x001c6b7c}}, Y: Field{[10]uint32{0x036969f4, 0x039957da, 0x0242539c, 0x01cb9d9d, 0x0198ed56, 0x0371ceb7, 0x00dfdf72, 0x0154d99d, 0x0063293a, 0x0004fd1d}}}, + {X: Field{[10]uint32{0x0236be75, 0x00471140, 0x02ea5009, 0x007a07db, 0x02c3fbab, 0x03518d04, 0x01cff39a, 0x03a03526, 0x000658c0, 0x0000ba81}}, Y: Field{[10]uint32{0x014f923f, 0x018ef225, 0x02234291, 0x03b7fbb8, 0x03d82c08, 0x02682938, 0x01743d20, 0x00dc87c2, 0x00740607, 0x0002f94b}}}, + {X: Field{[10]uint32{0x02182aea, 0x02df946d, 0x009350d9, 0x00b6589e, 0x03a37344, 0x00fc2c7c, 0x00c42223, 0x020309d4, 0x03904b3e, 0x00108d48}}, Y: Field{[10]uint32{0x01221d91, 0x03fb59f6, 0x02966395, 0x023e053e, 0x000fe09e, 0x02580c89, 0x008e48ba, 0x014598c3, 0x0349b27b, 0x001fd608}}}, + {X: Field{[10]uint32{0x027dda91, 0x03eae7be, 0x00e53771, 0x027b7023, 0x017702a2, 0x026af82d, 0x0064bf8e, 0x00a16e58, 0x0082a92b, 0x0014934f}}, Y: Field{[10]uint32{0x00f29c3a, 0x011c903c, 0x01894ec7, 0x01dc34fb, 0x00366a84, 0x00c6ff57, 0x0368e053, 0x02cb7352, 0x0217fdc6, 0x00291e80}}}, + {X: Field{[10]uint32{0x0056f7e8, 0x02eb85b0, 0x00c48776, 0x02bf45af, 0x000fc83c, 0x008c8ca7, 0x02eb5f5f, 0x013799aa, 0x02085ce0, 0x003dbb87}}, Y: Field{[10]uint32{0x00cea4d9, 0x01ab1b6f, 0x03c75c2f, 0x017462c9, 0x00ccbc95, 0x0251f5ed, 0x01939774, 0x03526aa8, 0x026a7e2b, 0x000cca2c}}}, + {X: Field{[10]uint32{0x03273978, 0x01345ac5, 0x03dae313, 0x01be6f64, 0x002ea84e, 0x0141df48, 0x02b5d119, 0x00505dc8, 0x012bb88f, 0x00270bdf}}, Y: Field{[10]uint32{0x01ab2a3a, 0x006f8f0b, 0x007daa57, 0x032bb94c, 0x01d338a4, 0x031795af, 0x033c5927, 0x02d0d739, 0x000366c8, 0x0004227c}}}, + {X: Field{[10]uint32{0x0299cc3c, 0x0204f1b2, 0x0228f9b9, 0x01ed23bf, 0x0305897b, 0x014eb879, 0x0124f152, 0x02db947f, 0x02b6730f, 0x00164e87}}, Y: Field{[10]uint32{0x0344f079, 0x00cc005d, 0x00ace404, 0x006a8ec7, 0x0109e35c, 0x03dd3946, 0x003a6300, 0x00b646f0, 0x0020fbd2, 0x003f3ede}}}, + {X: Field{[10]uint32{0x01f957e3, 0x00d4ac54, 0x039f40ef, 0x03ff7968, 0x028ec0ea, 0x01fe1e97, 0x004bc603, 0x02eb32f3, 0x00c383a7, 0x0018ae84}}, Y: Field{[10]uint32{0x007bdd45, 0x01fa7f33, 0x020bec2a, 0x003b5e99, 0x019fd01e, 0x02828940, 0x025fa19a, 0x02858695, 0x01b0dc84, 0x003099e8}}}, + {X: Field{[10]uint32{0x03731f64, 0x00f18657, 0x03c6a6d7, 0x0240529d, 0x0239e123, 0x00e92a76, 0x03641fe0, 0x018a858f, 0x0010deae, 0x000778ab}}, Y: Field{[10]uint32{0x03c8d2b2, 0x0106a276, 0x00006d71, 0x017e9bd4, 0x00a512b7, 0x0208853f, 0x027b5ad7, 0x025a7410, 0x0095b6d7, 0x00183d0f}}}, + {X: Field{[10]uint32{0x03d4e1d3, 0x0105b083, 0x02a6da43, 0x01c5ab2e, 0x00c48e92, 0x005dcbc6, 0x01086123, 0x020f220f, 0x01527090, 0x003c4695}}, Y: Field{[10]uint32{0x02d742f4, 0x024d4528, 0x03f4cdf5, 0x015368bc, 0x002be515, 0x02356cec, 0x00e397b3, 0x023106db, 0x01647cf4, 0x0029b42b}}}, + {X: Field{[10]uint32{0x00dc33fc, 0x02ba5b5f, 0x0243d2ae, 0x00fc45b0, 0x013dbad4, 0x032971fd, 0x015cc01f, 0x025f9487, 0x0240d756, 0x003d1151}}, Y: Field{[10]uint32{0x02549102, 0x0213de59, 0x026cfb37, 0x01af133d, 0x036b2599, 0x029d3b21, 0x02d70531, 0x01dc1175, 0x00ef46fe, 0x0010a5cb}}}, + {X: Field{[10]uint32{0x01b8780a, 0x00bb2368, 0x01ad4cad, 0x023423b3, 0x0110905b, 0x02cc67eb, 0x03c20fa3, 0x0019f06d, 0x007397be, 0x000afebc}}, Y: Field{[10]uint32{0x02590285, 0x03314993, 0x03cd5775, 0x02c57e08, 0x039077de, 0x025c3d3e, 0x028bdee9, 0x03259cf4, 0x0099ea97, 0x003b5499}}}, + {X: Field{[10]uint32{0x00f5f73b, 0x03153dd3, 0x01222cfe, 0x01623b5a, 0x026df6e0, 0x0108bdce, 0x023ca163, 0x03b642f7, 0x00812b5f, 0x003f06af}}, Y: Field{[10]uint32{0x032b975f, 0x03444da5, 0x01d8faf0, 0x01bd3fa7, 0x007ac68f, 0x02c73471, 0x00481dc4, 0x03f2f91a, 0x02db471c, 0x0036c71b}}}, + {X: Field{[10]uint32{0x00506a8d, 0x01db9bd3, 0x00c76124, 0x017ef8c7, 0x01b717d6, 0x024f00ab, 0x036f92d2, 0x00be6e8d, 0x02ac82e0, 0x00360e30}}, Y: Field{[10]uint32{0x01189377, 0x01ecc68d, 0x02ae251d, 0x032cf83d, 0x03532dd1, 0x01faac48, 0x0176f6ca, 0x03e380f0, 0x00670388, 0x00361e8c}}}, + {X: Field{[10]uint32{0x013ee38c, 0x025f81ac, 0x004b92f6, 0x03c4ce87, 0x0132c53f, 0x0269794e, 0x019d54ca, 0x015d2689, 0x02ff0729, 0x0012cea0}}, Y: Field{[10]uint32{0x028d6265, 0x02cc1d6e, 0x0229032d, 0x012f95c2, 0x00bf6073, 0x03205484, 0x026a0c46, 0x0115b4fd, 0x0341a788, 0x00110dca}}}, + {X: Field{[10]uint32{0x00e411aa, 0x035ab4ff, 0x002f20b8, 0x02438de7, 0x008e79d2, 0x02f54bdc, 0x01eaf6a9, 0x02b538c9, 0x03f36731, 0x0035df2e}}, Y: Field{[10]uint32{0x038372f0, 0x026fe13f, 0x01b50525, 0x019928e1, 0x02051f42, 0x0122f6a6, 0x02812377, 0x004f1e46, 0x0125f078, 0x003b919b}}}, + {X: Field{[10]uint32{0x02ea1483, 0x03f1b4bb, 0x006ec84e, 0x00b303c7, 0x03bed187, 0x014eb0c1, 0x00a75dc9, 0x002e09bb, 0x02b25892, 0x000e19fd}}, Y: Field{[10]uint32{0x0388aee3, 0x019c4d6b, 0x01cf4b82, 0x03d1a2b0, 0x01254d70, 0x032a7172, 0x013ff18d, 0x02025e80, 0x02dce607, 0x00331a9a}}}, + {X: Field{[10]uint32{0x001b0a9a, 0x02d4bbf3, 0x01279930, 0x026301ed, 0x032123fe, 0x0083dfc5, 0x00ea7dff, 0x03213d86, 0x0075e85f, 0x001ec022}}, Y: Field{[10]uint32{0x03075f90, 0x0159802f, 0x03904a8c, 0x00d2d42e, 0x02331f78, 0x00541dcb, 0x0055a1c4, 0x0245a697, 0x00bb8dbc, 0x000fcecc}}}, + {X: Field{[10]uint32{0x0234ef3a, 0x02875de3, 0x009a5ba7, 0x01e81369, 0x02907e9b, 0x01352de5, 0x01795600, 0x0129261d, 0x00d91630, 0x002e96d1}}, Y: Field{[10]uint32{0x03333661, 0x0131d6f3, 0x01e13f87, 0x01d8fb4e, 0x024d47ea, 0x00373537, 0x02e124f0, 0x0278ee6e, 0x03aa4821, 0x0005ad26}}}, + {X: Field{[10]uint32{0x02b8d9df, 0x0358a738, 0x03594342, 0x0084d568, 0x02910fe5, 0x016fe991, 0x02b3a23b, 0x00483614, 0x03e27fe4, 0x001a47ab}}, Y: Field{[10]uint32{0x02c71d85, 0x01fe7e2d, 0x02878188, 0x007712f2, 0x01bd71ea, 0x01489f6f, 0x0294fd6a, 0x013729f0, 0x00974218, 0x0010e818}}}, + {X: Field{[10]uint32{0x00a54123, 0x001b9215, 0x002d8440, 0x035f0dd5, 0x01551377, 0x01177299, 0x0173e38a, 0x02a1bcd4, 0x00bbc9f5, 0x00004e9b}}, Y: Field{[10]uint32{0x00488620, 0x00625202, 0x004b884d, 0x023cc08f, 0x028a43d3, 0x03a3ebe7, 0x01cc2e62, 0x01367bff, 0x009c9a96, 0x003b3ce0}}}, + {X: Field{[10]uint32{0x02f10e45, 0x00ba3579, 0x036ceb71, 0x0080b730, 0x02da6654, 0x02d3c396, 0x01731e91, 0x01734a4f, 0x02f3fb59, 0x000cff4a}}, Y: Field{[10]uint32{0x018ed2cf, 0x00c79802, 0x00c31f63, 0x00c6cea5, 0x0280ca53, 0x00233e8e, 0x0181bf98, 0x0376912e, 0x007a0a8b, 0x00389a8c}}}, + {X: Field{[10]uint32{0x00b774f6, 0x02f962cd, 0x0244c15c, 0x02608bd3, 0x03b00332, 0x029d6124, 0x033ba575, 0x01fde1da, 0x003359e4, 0x001d6550}}, Y: Field{[10]uint32{0x020458a9, 0x01c0f797, 0x01253f8e, 0x00729eb4, 0x00b6e665, 0x0110b000, 0x02998553, 0x015a36c2, 0x004070b8, 0x001fba68}}}, + {X: Field{[10]uint32{0x035b9480, 0x0176965b, 0x032f3650, 0x01944340, 0x00b3dd36, 0x01052fbd, 0x0015e7e8, 0x01f9a13a, 0x03b0c3b1, 0x001e4667}}, Y: Field{[10]uint32{0x03d9a0ab, 0x02b0fb94, 0x021b5054, 0x020d0646, 0x00abaab3, 0x0128156e, 0x03aacba5, 0x03273fbc, 0x0173f358, 0x00256f2a}}}, + {X: Field{[10]uint32{0x011aa352, 0x01c00029, 0x017b5d6d, 0x0306b226, 0x006edd0b, 0x028cff50, 0x03ed64e0, 0x03382cb9, 0x00e7962e, 0x0025c17d}}, Y: Field{[10]uint32{0x019ff347, 0x0375ca12, 0x0399db2b, 0x0157dc6a, 0x0058f408, 0x024875b6, 0x026193d8, 0x011ea284, 0x0357ad45, 0x00135339}}}, + {X: Field{[10]uint32{0x012fd777, 0x0368f38c, 0x02e12df7, 0x01d6e2c5, 0x01cadeeb, 0x00dd99d3, 0x0160b983, 0x02ad7cc1, 0x0067b841, 0x002206bc}}, Y: Field{[10]uint32{0x0083b84f, 0x0337b24d, 0x037019ac, 0x00f468e8, 0x017588be, 0x02c512c7, 0x010f62d8, 0x03c175f0, 0x03d4512e, 0x0033304f}}}, + {X: Field{[10]uint32{0x00e99621, 0x0357d704, 0x012fb1f6, 0x02dcbf50, 0x0041bfc3, 0x01eb41e5, 0x02e14cd9, 0x032763d0, 0x024433c2, 0x003fa3de}}, Y: Field{[10]uint32{0x02b3b2a9, 0x00ff752d, 0x026572a9, 0x03cf311a, 0x034c8bab, 0x0211b1e6, 0x01c4ee3a, 0x010dd25b, 0x02ee0cf3, 0x00396d5d}}}, + {X: Field{[10]uint32{0x004d798f, 0x024eaf17, 0x006cb918, 0x01927814, 0x0384f400, 0x00f0d3a0, 0x012f8320, 0x022ce0fe, 0x00da18e0, 0x003fd0f2}}, Y: Field{[10]uint32{0x01df2e7f, 0x01f6c05f, 0x02fd5242, 0x00ce92ec, 0x02f5a754, 0x02076f61, 0x009dde19, 0x03680b03, 0x005923a9, 0x00295d68}}}, + {X: Field{[10]uint32{0x00db276b, 0x031bf54a, 0x00a42ed3, 0x0105cd9e, 0x03d8f9d8, 0x012ec6cc, 0x00852427, 0x0138844d, 0x0056b97f, 0x00011c54}}, Y: Field{[10]uint32{0x014302b2, 0x03e88061, 0x0212fcab, 0x03b99beb, 0x0073a18b, 0x02e62a8a, 0x00cd71ef, 0x03c767fa, 0x01463521, 0x002d3034}}}, + {X: Field{[10]uint32{0x031fff51, 0x0121c709, 0x00814974, 0x03acc6a2, 0x02acd85e, 0x02e0f9fb, 0x0251394c, 0x00756b0a, 0x0008c5f5, 0x00217276}}, Y: Field{[10]uint32{0x03666a7d, 0x024aef96, 0x01eb8b49, 0x0034660b, 0x02018505, 0x01bb1fd7, 0x0191454d, 0x026e219a, 0x03bf2382, 0x0000a9f0}}}, + {X: Field{[10]uint32{0x0170dac9, 0x0265fe5f, 0x02f24529, 0x031db5b4, 0x03f46b60, 0x000d1173, 0x00b4b259, 0x00da380f, 0x00ef8b1e, 0x00300ae5}}, Y: Field{[10]uint32{0x0325f3a0, 0x00d0f079, 0x021d680a, 0x028ab3e5, 0x0310fadb, 0x037874a2, 0x0017825a, 0x02079235, 0x0129bcff, 0x002eee5f}}}, + {X: Field{[10]uint32{0x00241df6, 0x011caa0e, 0x02db3e29, 0x018ffb9e, 0x020fcb8b, 0x034d4e87, 0x01ac4393, 0x01bdf90c, 0x03bd28e2, 0x0012c564}}, Y: Field{[10]uint32{0x02fdcc56, 0x0138d3bc, 0x00ef0d6e, 0x022cf332, 0x003f184f, 0x02b27616, 0x0225b113, 0x01a15498, 0x0328f496, 0x002299e9}}}, + {X: Field{[10]uint32{0x02a64dd4, 0x007353c9, 0x00dd231d, 0x01b92e77, 0x037a8e7f, 0x0354a1a6, 0x02505559, 0x037b8eb5, 0x015bba51, 0x003d901d}}, Y: Field{[10]uint32{0x0287e1c8, 0x03414e5b, 0x00882a48, 0x03215745, 0x0391e0e3, 0x03092b01, 0x0029f6ee, 0x00a42f53, 0x0000a53e, 0x001ce1fe}}}, + {X: Field{[10]uint32{0x0389515b, 0x01da5e5d, 0x0206e022, 0x008a4529, 0x0016d0a5, 0x01c233be, 0x036f42cd, 0x00db18f7, 0x02a94368, 0x002524d1}}, Y: Field{[10]uint32{0x00e2b356, 0x00e0ee6a, 0x00073031, 0x034fb797, 0x0031dd41, 0x021d505d, 0x025c847b, 0x000807bd, 0x032d952a, 0x002a40e4}}}, + {X: Field{[10]uint32{0x03f91a60, 0x01802299, 0x0245cde4, 0x020f172f, 0x02cdcc97, 0x026308bc, 0x010b1f66, 0x03b7f08e, 0x019ec769, 0x00060902}}, Y: Field{[10]uint32{0x011bd1e2, 0x0109d9cc, 0x02ae0adf, 0x0200de24, 0x02804a87, 0x03e82238, 0x02051f3b, 0x013755b3, 0x01fa81e0, 0x0003e101}}}, + {X: Field{[10]uint32{0x0201d341, 0x022b3475, 0x022f92ec, 0x02484e71, 0x00683aa7, 0x03a57cf7, 0x005f34cc, 0x00f64a20, 0x03d8e463, 0x0039ad1b}}, Y: Field{[10]uint32{0x001d824a, 0x0074c033, 0x011d1639, 0x02930a0e, 0x00d6c0be, 0x032fd636, 0x00faf4a7, 0x0298e94a, 0x0013f3fe, 0x0014cf6e}}}, + {X: Field{[10]uint32{0x03992b93, 0x010db3ff, 0x0015d60a, 0x014bc5d8, 0x03a04c62, 0x03504e74, 0x00d150d3, 0x02c63752, 0x0330dc19, 0x0018de66}}, Y: Field{[10]uint32{0x02dcc41b, 0x0336c345, 0x015073c3, 0x032cae8d, 0x0007f485, 0x03c1905e, 0x00e72f5f, 0x0137bb40, 0x01125ebf, 0x00098814}}}, + {X: Field{[10]uint32{0x02ad7338, 0x028a7c4b, 0x01676670, 0x00927c7f, 0x037fac53, 0x038dc2c3, 0x01b88d3a, 0x0280b7a1, 0x035ab1d5, 0x0023340b}}, Y: Field{[10]uint32{0x00c0d8e4, 0x03c2586f, 0x006278e2, 0x03bb10e4, 0x03511d56, 0x02f26ee9, 0x02cb70f0, 0x02275984, 0x02acceb6, 0x000d62d0}}}, + {X: Field{[10]uint32{0x01f82fab, 0x0286a7b7, 0x00991d3e, 0x0199282a, 0x01f76127, 0x03ccec19, 0x01aba41b, 0x034777a5, 0x03e6d48b, 0x00357859}}, Y: Field{[10]uint32{0x0271d1f7, 0x0309a1ab, 0x03d70849, 0x0188e095, 0x02aaf45f, 0x03361ab8, 0x00ec9cb3, 0x0337d3f1, 0x0182d653, 0x001b308e}}}, + {X: Field{[10]uint32{0x009bfdba, 0x006773df, 0x030cf4ff, 0x01096192, 0x01d72b19, 0x01fc0306, 0x034f09d9, 0x03cb7c4c, 0x01006987, 0x003101cd}}, Y: Field{[10]uint32{0x037ff262, 0x003274ff, 0x00ca82bf, 0x002b295a, 0x02b760ff, 0x000de3e0, 0x03366bf3, 0x004c9aa6, 0x00466b46, 0x003d959a}}}, + {X: Field{[10]uint32{0x00c4fde2, 0x0031eabc, 0x02b91184, 0x0303ecb7, 0x0229a7c2, 0x020e0c63, 0x0221db2a, 0x006fec22, 0x02719c50, 0x000277c7}}, Y: Field{[10]uint32{0x02d00fc0, 0x014c973e, 0x03ea580a, 0x016d0f7b, 0x03e977c7, 0x024079c0, 0x0315ae54, 0x00300ac0, 0x00ae6d0e, 0x003358a3}}}, + {X: Field{[10]uint32{0x024c696c, 0x022e134a, 0x0165b7d0, 0x01242b5c, 0x031c91c2, 0x0248b165, 0x03108ee6, 0x030c2408, 0x0029df73, 0x002545d9}}, Y: Field{[10]uint32{0x01c0fbe4, 0x0021b2fa, 0x000cbdd8, 0x02dc901d, 0x011994fb, 0x00dd724a, 0x02084700, 0x036f3208, 0x00493b62, 0x000fb3ff}}}, + {X: Field{[10]uint32{0x01628c6e, 0x023d8031, 0x0156da31, 0x021cd3d5, 0x02f57fe1, 0x012fa3ed, 0x03a7e0e9, 0x0034d784, 0x00e8692b, 0x001c2312}}, Y: Field{[10]uint32{0x0105a664, 0x0378c828, 0x029bfe1c, 0x0004fdf6, 0x005af7e6, 0x03da8bc0, 0x020432e9, 0x00747c9f, 0x0302deee, 0x00254d38}}}, + {X: Field{[10]uint32{0x025b4c09, 0x00732853, 0x0222b299, 0x030274c9, 0x0146275e, 0x02c9af85, 0x01620794, 0x031ce6d7, 0x017ab82d, 0x0009dd78}}, Y: Field{[10]uint32{0x031ccddc, 0x02de4206, 0x0152e8a9, 0x00a21d13, 0x03338ab2, 0x03684ca3, 0x02b52c28, 0x00d67f7b, 0x027c80e8, 0x000ea9bb}}}, + {X: Field{[10]uint32{0x030192da, 0x0248a700, 0x03270be1, 0x00d0f0e0, 0x0044da6b, 0x023ed228, 0x0334959b, 0x013cc73c, 0x02c2039c, 0x0011f06a}}, Y: Field{[10]uint32{0x000d7cc0, 0x038562d8, 0x003551fd, 0x0168848a, 0x00e5813f, 0x02681471, 0x01cd4025, 0x03087611, 0x011c5ba6, 0x00176b59}}}, + {X: Field{[10]uint32{0x00bad15e, 0x036a86ee, 0x02c70d77, 0x0353e8a2, 0x01eef459, 0x033e897c, 0x03b2bf59, 0x01325806, 0x005a4b86, 0x003e03d1}}, Y: Field{[10]uint32{0x0374ff16, 0x01ffdc2c, 0x02c8863f, 0x03d297c4, 0x0183cd57, 0x03a7e239, 0x00b9da6c, 0x01a659b4, 0x02046b8c, 0x0028e0f7}}}, + {X: Field{[10]uint32{0x014d2f66, 0x02e40faf, 0x01bf6f9c, 0x00967cb5, 0x02b22081, 0x01e2dc5c, 0x01f436d5, 0x00d866a3, 0x03b91ad3, 0x000a4939}}, Y: Field{[10]uint32{0x00841875, 0x022f6e12, 0x00effa76, 0x0156b58b, 0x02afa412, 0x005747c1, 0x00e4f3fe, 0x027d50d2, 0x0169e231, 0x002e1908}}}, + {X: Field{[10]uint32{0x02dc4d83, 0x01017cdd, 0x02e2af13, 0x0179df8c, 0x00431078, 0x028ae6b1, 0x001854e3, 0x013b4a0d, 0x007b91a6, 0x000df582}}, Y: Field{[10]uint32{0x01f25003, 0x02e65c4f, 0x01b1f9bd, 0x0024b094, 0x01a3ac9f, 0x00b9bf37, 0x023092f3, 0x02f32ea0, 0x0117e068, 0x000d688e}}}, + {X: Field{[10]uint32{0x00f4fab2, 0x0372e484, 0x00fd8391, 0x033a0a53, 0x03e000d2, 0x033e12d3, 0x003691cb, 0x006f81ad, 0x016dc79f, 0x0035d22a}}, Y: Field{[10]uint32{0x005bf51c, 0x031369bc, 0x036c8223, 0x009eabed, 0x00975c09, 0x02e05c8a, 0x017e5c04, 0x0240bb39, 0x01e065da, 0x001d6d2b}}}, + {X: Field{[10]uint32{0x002cc30c, 0x00cf41b9, 0x03a8fa02, 0x013b0957, 0x03949241, 0x00edbee5, 0x02361ea3, 0x0213fc98, 0x0225eb50, 0x0034174a}}, Y: Field{[10]uint32{0x01a6f2d2, 0x03ead81a, 0x00f4e75e, 0x02616ea6, 0x01ba57a1, 0x022a80f6, 0x03514290, 0x0323ce16, 0x02eececd, 0x00052eef}}}, + {X: Field{[10]uint32{0x003ff793, 0x022765d2, 0x0030278c, 0x03d7a2a3, 0x00b4684b, 0x0193b2a7, 0x03f39067, 0x03b6f96b, 0x015bd137, 0x001a6ea6}}, Y: Field{[10]uint32{0x03b63e32, 0x03864d96, 0x000b246d, 0x01b1c056, 0x01a79ad9, 0x007176e5, 0x033e8649, 0x01965a60, 0x0051b622, 0x000ac73d}}}, + {X: Field{[10]uint32{0x00419461, 0x00bfdc55, 0x0197d9a8, 0x03cbc7b2, 0x033a50af, 0x01418412, 0x020342ff, 0x033ca3f7, 0x01a15d0e, 0x001fc07a}}, Y: Field{[10]uint32{0x0112dc68, 0x037310eb, 0x030e5e03, 0x0196a0d1, 0x03d27040, 0x03b72ad8, 0x01e25d1f, 0x034dd4d8, 0x0194a6b8, 0x00070f25}}}, + {X: Field{[10]uint32{0x02e48cc6, 0x02902795, 0x0219d813, 0x000fc3e1, 0x00f2413d, 0x00613933, 0x0201bc47, 0x024107f4, 0x02fd193b, 0x001c648c}}, Y: Field{[10]uint32{0x0229a953, 0x00674f2b, 0x02d1e68b, 0x028197e0, 0x0312fb55, 0x03ab816a, 0x037ff609, 0x02c14d4c, 0x03187dcc, 0x000587f1}}}, + {X: Field{[10]uint32{0x02e78c27, 0x00f7219d, 0x03d082f5, 0x03e91b22, 0x039a63bc, 0x01ef4a2f, 0x006009a5, 0x01cc40ce, 0x0120155f, 0x00056e10}}, Y: Field{[10]uint32{0x01737816, 0x00b140cc, 0x03605140, 0x0283aa7e, 0x03188171, 0x0102b293, 0x0004e0c8, 0x01f8bfa6, 0x037ec901, 0x0011f758}}}, + {X: Field{[10]uint32{0x03fec567, 0x01301d2e, 0x01a2c007, 0x0389d053, 0x0004a95c, 0x02e9a645, 0x0352ed4e, 0x00011df6, 0x0197bd38, 0x003fd0a7}}, Y: Field{[10]uint32{0x017b3048, 0x016a8075, 0x00f2569a, 0x002b2f2e, 0x036708c0, 0x037ddf00, 0x0173f624, 0x016eacd2, 0x03bd6e63, 0x001ece9b}}}, + {X: Field{[10]uint32{0x010a6ee3, 0x02c79575, 0x01ed8858, 0x0012c984, 0x01379174, 0x00b1dfa0, 0x01f476d1, 0x039d333c, 0x005b016b, 0x0003335c}}, Y: Field{[10]uint32{0x00e87c01, 0x02bff0d0, 0x01f1f737, 0x0130c6b6, 0x020946cb, 0x025fde35, 0x0155e178, 0x02c94937, 0x01e75cc7, 0x0021d06b}}}, + {X: Field{[10]uint32{0x03b65b27, 0x030df542, 0x01534d54, 0x001a3526, 0x0294e4b4, 0x00c03b2a, 0x0278e818, 0x0315fe45, 0x025e24b3, 0x00196d86}}, Y: Field{[10]uint32{0x01ed0c40, 0x005a9d9d, 0x024fd79c, 0x031e9719, 0x02f65ac4, 0x02b82147, 0x0386fda2, 0x01ee0bc6, 0x0228aab9, 0x002435d7}}}, + {X: Field{[10]uint32{0x03a06ef0, 0x005067de, 0x00cf173c, 0x021f068e, 0x014ffe04, 0x0163ee39, 0x0382bdd7, 0x01cf650f, 0x01df8f40, 0x0019c54a}}, Y: Field{[10]uint32{0x00fede59, 0x01533f45, 0x029504d8, 0x01071c1d, 0x00454fd1, 0x03547af9, 0x01121e10, 0x00d26b74, 0x032d1f23, 0x00311b67}}}, + {X: Field{[10]uint32{0x001b0440, 0x008f3fe4, 0x035b68e8, 0x0375319c, 0x0073da3f, 0x002ef4b0, 0x02f8e703, 0x005a5c1e, 0x02760e7a, 0x0000abe2}}, Y: Field{[10]uint32{0x02c3c1cb, 0x03f40989, 0x0143f72f, 0x02b7597d, 0x017c34f5, 0x007b8cf3, 0x01659769, 0x01c54f1c, 0x03e79ada, 0x00155596}}}, + {X: Field{[10]uint32{0x03575707, 0x0251ca9b, 0x01fc42fb, 0x03543bd6, 0x024def3f, 0x01f31cc2, 0x00b3b1fb, 0x02ee1d3f, 0x016fc5ff, 0x002b3607}}, Y: Field{[10]uint32{0x01d181a3, 0x00a59180, 0x011cce09, 0x03258fa1, 0x02b87c0e, 0x001c6da5, 0x02f47eb5, 0x03aa7847, 0x028ec8b8, 0x00238c66}}}, + {X: Field{[10]uint32{0x00ffb912, 0x033a36e0, 0x0041bd60, 0x02a66e45, 0x02ae062c, 0x0182a9fc, 0x012d0bb3, 0x03a2f081, 0x03d53ab9, 0x002addf9}}, Y: Field{[10]uint32{0x01f96b5a, 0x0131d48b, 0x02d8fdfa, 0x0262d75b, 0x02aca909, 0x0075c104, 0x03992e5e, 0x02e56e7a, 0x02d9cb0a, 0x0017e4ad}}}, + {X: Field{[10]uint32{0x00124046, 0x0222acde, 0x03265e01, 0x03cded98, 0x031d7efa, 0x001a88c0, 0x03eda09b, 0x0231fbe2, 0x01951a6a, 0x001e62e0}}, Y: Field{[10]uint32{0x002b1bf6, 0x03e75138, 0x01de7a1b, 0x02d7c460, 0x03d91382, 0x0399d1db, 0x004a7e54, 0x0290c0d9, 0x021b0bae, 0x002564b6}}}, + {X: Field{[10]uint32{0x0377b096, 0x0354a2e5, 0x02f29ed6, 0x00e893fd, 0x009dbff9, 0x0222bad3, 0x01dea224, 0x039df637, 0x02ae0c3b, 0x003c921a}}, Y: Field{[10]uint32{0x0029126b, 0x0096aa12, 0x028cc413, 0x018a360e, 0x03d8409b, 0x00dabec2, 0x010327fe, 0x03211df1, 0x0150fe75, 0x00238acb}}}, + {X: Field{[10]uint32{0x006d2d54, 0x025d2205, 0x00333f93, 0x0220993d, 0x02d16ca0, 0x02bbbb9c, 0x0364ee33, 0x03aa2f83, 0x01093b8a, 0x00088b8f}}, Y: Field{[10]uint32{0x02cdcaa9, 0x02d4e772, 0x018a4351, 0x01e332c2, 0x0137ba1f, 0x0283af5e, 0x02dd16e8, 0x02ef1070, 0x000fbfe6, 0x0003bfd4}}}, + {X: Field{[10]uint32{0x0121c1c9, 0x02df4130, 0x01bd0165, 0x007670c8, 0x024f9924, 0x02d4f800, 0x01a18eea, 0x00d1d891, 0x03fe7ca9, 0x0019da34}}, Y: Field{[10]uint32{0x00272877, 0x02bba2e4, 0x00a43823, 0x0094340c, 0x000c4dc8, 0x027871de, 0x019ff1d0, 0x025c888c, 0x0173c9b9, 0x00100b27}}}, + {X: Field{[10]uint32{0x022dda79, 0x01fc263c, 0x00ef2513, 0x02133e32, 0x01b0b628, 0x03f5e057, 0x0325697b, 0x022033bf, 0x000fb2f0, 0x001bad9d}}, Y: Field{[10]uint32{0x0085c86f, 0x027c0fc5, 0x01b68520, 0x02579163, 0x0079c4b6, 0x03d0b9ab, 0x002061c1, 0x015c4f0c, 0x0131c12f, 0x0033dfa1}}}, + {X: Field{[10]uint32{0x025fe51b, 0x0001aaa5, 0x01ac2950, 0x0165c5ca, 0x025ede89, 0x019eda9f, 0x00f385f3, 0x0169faa8, 0x03484eb0, 0x001c407c}}, Y: Field{[10]uint32{0x00d5c3f3, 0x013e24c4, 0x0144be26, 0x01687912, 0x00260559, 0x01c6bf0b, 0x00fff9fc, 0x03edd5de, 0x0113a040, 0x002347ee}}}, + {X: Field{[10]uint32{0x02886579, 0x0239b4c3, 0x0287a11c, 0x03ab3bee, 0x02a0de03, 0x0080c0d8, 0x024b25f1, 0x028978ff, 0x005cacc6, 0x001d6a79}}, Y: Field{[10]uint32{0x03f69c6e, 0x01f00af3, 0x03f7adbe, 0x03e555a0, 0x02854c49, 0x00007f60, 0x0202cf31, 0x021b649a, 0x0195e919, 0x0014aa16}}}, + {X: Field{[10]uint32{0x0337dcbc, 0x0359cc0d, 0x001b2954, 0x03de0c2b, 0x02ceac14, 0x01fe66b7, 0x03ffc542, 0x0195ca62, 0x0192bad7, 0x000c4653}}, Y: Field{[10]uint32{0x03dd2832, 0x007fcfd7, 0x02f19a2d, 0x02f36b0b, 0x028c556e, 0x00f316f1, 0x02449fa3, 0x023bba74, 0x0045f531, 0x00267a07}}}, + {X: Field{[10]uint32{0x03d505af, 0x02562b02, 0x0123c522, 0x030e115f, 0x03c1d743, 0x002d3338, 0x02c61387, 0x01bd0e1a, 0x03fe76fd, 0x002413e8}}, Y: Field{[10]uint32{0x03c1763b, 0x02ab9069, 0x023045c8, 0x03ece55e, 0x018dae9b, 0x0131c165, 0x02929e45, 0x0118cde7, 0x02621adf, 0x002509cc}}}, + {X: Field{[10]uint32{0x00a8e0fd, 0x02a4ffe9, 0x01f26b5f, 0x0109e29f, 0x03040de1, 0x00fe8996, 0x019aedef, 0x022cc8da, 0x01f31a82, 0x00074618}}, Y: Field{[10]uint32{0x0099f7dc, 0x017d1376, 0x01f61199, 0x03098e99, 0x013ffc30, 0x0212ee59, 0x01306e3b, 0x03faca38, 0x0381f13f, 0x002e595d}}}, + {X: Field{[10]uint32{0x0019ad64, 0x0395179a, 0x0009b73c, 0x008a110f, 0x02aac959, 0x02159773, 0x02f0289e, 0x02975797, 0x01ef6de1, 0x000ef4cf}}, Y: Field{[10]uint32{0x00f9c810, 0x00d7b575, 0x001c2975, 0x0077d491, 0x038bc985, 0x029c3a6f, 0x00366279, 0x002f525d, 0x0109eb56, 0x00264fc0}}}, + {X: Field{[10]uint32{0x00958634, 0x031fdb16, 0x0261c7be, 0x03adc543, 0x03e4c257, 0x039681f1, 0x0327b248, 0x02bb4a9f, 0x01452a39, 0x003286df}}, Y: Field{[10]uint32{0x004afcff, 0x03eb368f, 0x032c7298, 0x03dd10ab, 0x010179c0, 0x027ed520, 0x01a98043, 0x01f0dedf, 0x021bc035, 0x002ac47f}}}, + {X: Field{[10]uint32{0x0271aa58, 0x0355f461, 0x00f61da6, 0x01f57e4a, 0x00df145f, 0x0339f66b, 0x03f29a36, 0x00e1ad4f, 0x01cadee8, 0x0009cea5}}, Y: Field{[10]uint32{0x025bbe2b, 0x0053e546, 0x03ac2adb, 0x0071cf14, 0x00315a03, 0x010194a1, 0x02c6d832, 0x014df469, 0x019dbb06, 0x0022298d}}}, + {X: Field{[10]uint32{0x005561e6, 0x02443e6b, 0x02279d0f, 0x03d4a511, 0x01c06923, 0x00e48700, 0x03ad79cd, 0x02eeb154, 0x00fca139, 0x001fa930}}, Y: Field{[10]uint32{0x016dec96, 0x03e82eca, 0x0193a54d, 0x00ddc6bb, 0x002eb71c, 0x018e7c66, 0x01e79822, 0x00c38bcc, 0x01470458, 0x002f4127}}}, + {X: Field{[10]uint32{0x0207d336, 0x012581e5, 0x02ce80bc, 0x01a3f344, 0x00d3823f, 0x017331a1, 0x03932401, 0x02af9751, 0x001c0a2b, 0x001c7c60}}, Y: Field{[10]uint32{0x03f1b4b1, 0x039b76c7, 0x00a6cf5a, 0x00390e77, 0x0214430c, 0x03a3f9e9, 0x01b7de37, 0x01395082, 0x03d00838, 0x00107b41}}}, + {X: Field{[10]uint32{0x01cd8828, 0x00160b48, 0x00f2a1c9, 0x036589e7, 0x017000ff, 0x0155068f, 0x00aec515, 0x0287baba, 0x0073652b, 0x002ca0e2}}, Y: Field{[10]uint32{0x027dce5e, 0x02d20474, 0x0079d2a0, 0x03ca87bf, 0x01ee4d19, 0x01abf30c, 0x01faf658, 0x038e9491, 0x015573f5, 0x00011ffc}}}, + {X: Field{[10]uint32{0x015a3e21, 0x036263ad, 0x02cb5b68, 0x0129afc2, 0x03d9f816, 0x00224892, 0x033fbdcc, 0x012f05a1, 0x01a72263, 0x000d32a3}}, Y: Field{[10]uint32{0x01c5d986, 0x02440339, 0x01f4b73f, 0x0241464b, 0x031f041a, 0x02168ffd, 0x0369055d, 0x0324701d, 0x036036a9, 0x00362bed}}}, + {X: Field{[10]uint32{0x0319cc8f, 0x01c8cdd2, 0x0115aa0e, 0x021e270e, 0x034b76eb, 0x03db5e5a, 0x00cf5b2e, 0x0106bf28, 0x0397d973, 0x00084b2c}}, Y: Field{[10]uint32{0x02f170a1, 0x030d7590, 0x01e64875, 0x01ccbde3, 0x01ff17e2, 0x0049b143, 0x0285f501, 0x03c1be5d, 0x00ec5f29, 0x003c1b8b}}}, + {X: Field{[10]uint32{0x00a6228a, 0x0202471b, 0x002e9ffa, 0x00bf392d, 0x01d5f29d, 0x01e24fda, 0x0182dfde, 0x004f70c9, 0x03f643bd, 0x002f00d9}}, Y: Field{[10]uint32{0x00556e78, 0x03fd0a5d, 0x0373f527, 0x01e5ee5b, 0x02c17641, 0x02d66b0c, 0x03f3e44a, 0x007c192b, 0x0089d125, 0x0026fb1b}}}, + {X: Field{[10]uint32{0x01bd5672, 0x00403c6a, 0x029d8dec, 0x00cf37ad, 0x025e489e, 0x03466392, 0x03169bb4, 0x0222516a, 0x00235d8e, 0x0023f2c5}}, Y: Field{[10]uint32{0x03fc057c, 0x036de439, 0x01f5fe52, 0x00816c74, 0x03c45ae3, 0x01102109, 0x0302a46b, 0x0242c980, 0x0396bab3, 0x003e872c}}}, + {X: Field{[10]uint32{0x011e64ae, 0x0170beb9, 0x010440e1, 0x02133289, 0x00d4917e, 0x0077d83d, 0x0043e801, 0x03b0832f, 0x01056675, 0x001c2b61}}, Y: Field{[10]uint32{0x015a800d, 0x013e9847, 0x004e8c00, 0x03832fbd, 0x02b63d68, 0x03d6dc4e, 0x0262475d, 0x029f2697, 0x0356af9f, 0x003d2944}}}, + {X: Field{[10]uint32{0x01695842, 0x0387db2e, 0x028803ed, 0x036611be, 0x02bcf6e6, 0x025c6301, 0x026df81f, 0x0105a21b, 0x03474807, 0x002b69eb}}, Y: Field{[10]uint32{0x008a582f, 0x02ddb6e6, 0x001dd575, 0x02440031, 0x0298369c, 0x01dc7654, 0x0348bbe0, 0x009f5371, 0x011f50f4, 0x0003d9b5}}}, + {X: Field{[10]uint32{0x0102eeee, 0x011762c4, 0x0052c7f0, 0x01ee949f, 0x01bf1e97, 0x034d3e3a, 0x038108f9, 0x03aec46e, 0x018d7323, 0x003c6e1f}}, Y: Field{[10]uint32{0x00346556, 0x037dda2d, 0x000b79bd, 0x039c1f8e, 0x037e2aa0, 0x01edd56c, 0x01e58424, 0x039e827b, 0x030351eb, 0x0002f655}}}, + {X: Field{[10]uint32{0x012a0553, 0x0244d592, 0x00833cc5, 0x0145d9b3, 0x031fbf7c, 0x03fb5ee0, 0x000c301c, 0x0193ab24, 0x015ad552, 0x0024d967}}, Y: Field{[10]uint32{0x00154beb, 0x01b78170, 0x0089ccf4, 0x0176215b, 0x03519ff6, 0x030740a8, 0x02137df1, 0x000596be, 0x01e9646d, 0x002da4e2}}}, + {X: Field{[10]uint32{0x02d4ffe2, 0x00e3df63, 0x01f48b17, 0x039745e0, 0x00409a62, 0x0056fbbb, 0x002f54a4, 0x013ff712, 0x00492a9b, 0x003a74af}}, Y: Field{[10]uint32{0x00305df5, 0x00c10211, 0x00631608, 0x0020d854, 0x038d6392, 0x013c94e0, 0x01de313f, 0x02fe0037, 0x02522dcc, 0x00224f91}}}, + {X: Field{[10]uint32{0x006cb210, 0x038abde4, 0x00744229, 0x0306a1d8, 0x01825e0b, 0x01cb69a9, 0x0103eea3, 0x02b64460, 0x020a7bf1, 0x00050905}}, Y: Field{[10]uint32{0x0196af23, 0x03be284e, 0x0343f209, 0x03a47d8d, 0x024f1519, 0x002c8fa5, 0x02f1d0e1, 0x0175c479, 0x022696a7, 0x00325368}}}, + {X: Field{[10]uint32{0x009efd87, 0x0233ba27, 0x02300c45, 0x01639bc9, 0x018686d0, 0x02d7e9fa, 0x03e434ae, 0x012f52aa, 0x0312402e, 0x001fe409}}, Y: Field{[10]uint32{0x02f95fb5, 0x00622b18, 0x01602669, 0x02305498, 0x031b8b01, 0x022111a9, 0x02cdcddc, 0x02d062c5, 0x020b2aef, 0x002f0011}}}, + {X: Field{[10]uint32{0x0372745c, 0x03187d5b, 0x03c01255, 0x01a8e051, 0x022a133f, 0x02370a4d, 0x02e5f16c, 0x003d4fa1, 0x027c66cb, 0x0034c9f3}}, Y: Field{[10]uint32{0x02bea436, 0x01d628e1, 0x015f8353, 0x035071be, 0x02618cc6, 0x02314b72, 0x0108b85b, 0x00e7041a, 0x018ac3cb, 0x00137052}}}, + {X: Field{[10]uint32{0x032db3b3, 0x00e5ab78, 0x03d1a0d5, 0x033951ef, 0x01137dff, 0x022eff0c, 0x013803be, 0x00441800, 0x0319c9d8, 0x003c113a}}, Y: Field{[10]uint32{0x02526f2a, 0x00ae77df, 0x03af7c10, 0x037bff33, 0x028128a8, 0x02ca0b3f, 0x00551cea, 0x00f999fe, 0x028d9c4c, 0x0016b510}}}, + {X: Field{[10]uint32{0x0218daf4, 0x03172f03, 0x03d55f67, 0x02dfcf00, 0x03d135bb, 0x03755100, 0x006a81eb, 0x0066fabd, 0x0237b95d, 0x001e9b14}}, Y: Field{[10]uint32{0x0204385b, 0x038a48a8, 0x001d70cc, 0x019a29c3, 0x01bd492c, 0x03fda3fb, 0x00fc6e74, 0x03ad7121, 0x00b847fc, 0x0018a8ba}}}, + {X: Field{[10]uint32{0x019f82f0, 0x0256f06d, 0x01bb5804, 0x026d1d62, 0x02ffae94, 0x01708211, 0x0372afaf, 0x0302deed, 0x00dcb069, 0x001671ff}}, Y: Field{[10]uint32{0x026c38ad, 0x023bae84, 0x006ec335, 0x014bc935, 0x02c09b36, 0x03238b1e, 0x03a4d79a, 0x0159adc6, 0x008c6657, 0x0020bb16}}}, + {X: Field{[10]uint32{0x036543d7, 0x0006f51a, 0x03ae00ea, 0x036f37c9, 0x0081d99f, 0x02ee1795, 0x00d3dc6d, 0x01563310, 0x00211ed4, 0x003e33cf}}, Y: Field{[10]uint32{0x03a9778b, 0x037a7721, 0x03b20054, 0x030f82a2, 0x035506a5, 0x03338c10, 0x011f5dbd, 0x03d8c225, 0x01d01c3d, 0x002f6012}}}, + {X: Field{[10]uint32{0x024504bc, 0x00b39c54, 0x03764278, 0x00ff3f44, 0x024d2dd2, 0x00eb2a0a, 0x03471893, 0x02753c7f, 0x0364b238, 0x000e1575}}, Y: Field{[10]uint32{0x019ef72d, 0x01b02f1d, 0x01f95944, 0x03bb7c4f, 0x03b14a71, 0x02ab8ea8, 0x024ec346, 0x02af409c, 0x02254af2, 0x0020b13a}}}, + {X: Field{[10]uint32{0x02de5431, 0x03774694, 0x02ffa48c, 0x01b6bdf9, 0x036d3e0e, 0x01554f6a, 0x00b1d733, 0x03c3634c, 0x03311de4, 0x001dd912}}, Y: Field{[10]uint32{0x005916b4, 0x03d4853d, 0x029b4cdb, 0x00c1a560, 0x017581c9, 0x00aedd0c, 0x03730f99, 0x001cd5cd, 0x03ce0c0a, 0x00191785}}}, + {X: Field{[10]uint32{0x01ca138d, 0x00c198f6, 0x01d34565, 0x033dd996, 0x0156bfc0, 0x0194deaf, 0x02511daa, 0x02bef2ca, 0x0343afd6, 0x0029352b}}, Y: Field{[10]uint32{0x03bb09dd, 0x028afadc, 0x03747a25, 0x017cf57f, 0x0088b5db, 0x0358f7cd, 0x007f0737, 0x03cc6ee4, 0x03d0dd2d, 0x002f9b27}}}, + {X: Field{[10]uint32{0x00a75be5, 0x03f0181d, 0x011aaaa8, 0x032bed9b, 0x012da352, 0x03992f18, 0x02c3d645, 0x028207dc, 0x023fe673, 0x00105ffe}}, Y: Field{[10]uint32{0x00c50151, 0x0024f81a, 0x00be10de, 0x0129fdce, 0x02cfd9ca, 0x0169d243, 0x01472afd, 0x0251d202, 0x022f9084, 0x0026ae2f}}}, + {X: Field{[10]uint32{0x02ef73cd, 0x03ba0e32, 0x00622f75, 0x001257a2, 0x004f19eb, 0x01d084b1, 0x03d772cc, 0x014105b2, 0x01549311, 0x001e05d4}}, Y: Field{[10]uint32{0x00d0d3e6, 0x02fdff4d, 0x00ac2dd7, 0x02c29765, 0x02fdaf2c, 0x01f2c637, 0x0381b91d, 0x00d94098, 0x01c8ffec, 0x000df535}}}, + {X: Field{[10]uint32{0x031b5121, 0x0094fe82, 0x02f0f736, 0x02923d8b, 0x023c2ee7, 0x039d9896, 0x020c66c7, 0x00a3abd5, 0x020c3acc, 0x000d9715}}, Y: Field{[10]uint32{0x0374868f, 0x01f4df16, 0x018d6451, 0x005773b1, 0x016990aa, 0x00e3e374, 0x0303f883, 0x03c578e2, 0x02fa96c0, 0x000972f1}}}, + {X: Field{[10]uint32{0x035bac7c, 0x03e860a3, 0x03808a94, 0x03f76233, 0x016c6757, 0x02866a49, 0x026b6cb3, 0x0008fa44, 0x01251010, 0x0032516b}}, Y: Field{[10]uint32{0x0254e2bb, 0x037e4ab5, 0x01e5b174, 0x02ec99e7, 0x0399df4a, 0x0319bdb6, 0x008ae3df, 0x010ef3bc, 0x010cb4ac, 0x00326a3a}}}, + {X: Field{[10]uint32{0x002e0213, 0x0303878b, 0x03eec629, 0x02dedf4e, 0x02ac8c3f, 0x00ca18f7, 0x00223876, 0x0355f5ce, 0x01ac45e6, 0x0012ab61}}, Y: Field{[10]uint32{0x016a2708, 0x002d8f3f, 0x02595213, 0x0224ddbd, 0x0129c036, 0x0394e81c, 0x001c192d, 0x02fd9259, 0x00e19e81, 0x000e3bba}}}, + {X: Field{[10]uint32{0x02a291df, 0x027da689, 0x0367f24b, 0x03a9f4d4, 0x01907e37, 0x03d89118, 0x00f9f663, 0x01965ab7, 0x02480b0f, 0x000af040}}, Y: Field{[10]uint32{0x00311c79, 0x01509bc1, 0x02b2f4f3, 0x00c14204, 0x0324ad0c, 0x0242ddd0, 0x02780f6b, 0x02cdea46, 0x02d33016, 0x00382b0f}}}, + {X: Field{[10]uint32{0x03ddfde2, 0x007234e4, 0x03cffeb9, 0x000207f3, 0x02eca894, 0x0281387e, 0x001a2c09, 0x023e4c3a, 0x0191abd2, 0x00337016}}, Y: Field{[10]uint32{0x000193a5, 0x02686dd6, 0x02b32afc, 0x013af1e6, 0x038bf90a, 0x006a208b, 0x02b9852d, 0x038ac0ff, 0x02c44458, 0x0037f692}}}, + {X: Field{[10]uint32{0x0346a047, 0x00efe776, 0x02b7d079, 0x02ba722f, 0x0031d285, 0x03e2aac4, 0x00ea8570, 0x0310a7fd, 0x03f0af2d, 0x0016893b}}, Y: Field{[10]uint32{0x004c8f9a, 0x02d80167, 0x03327b53, 0x0185abbd, 0x00a98b6f, 0x02debc2e, 0x03f40dd0, 0x02458225, 0x01145973, 0x0005e76e}}}, + {X: Field{[10]uint32{0x0038183a, 0x03f8ab1e, 0x01467636, 0x02c2c151, 0x03e7c1d2, 0x01f457f6, 0x00aae6b5, 0x00f2a4dd, 0x013f5160, 0x0005b079}}, Y: Field{[10]uint32{0x03a183e3, 0x01a25d98, 0x0194ba53, 0x006815c1, 0x008d1f6c, 0x0383f724, 0x00af50c7, 0x026efd76, 0x02f056e0, 0x002fe163}}}, + {X: Field{[10]uint32{0x0301ccf4, 0x0299567a, 0x006eb0c3, 0x016c71a1, 0x01a2f240, 0x0305de00, 0x013a116a, 0x00be6b62, 0x02ea71b9, 0x001e4bc7}}, Y: Field{[10]uint32{0x0032a79d, 0x0342de8a, 0x001293cc, 0x002ef878, 0x0052c0df, 0x01e19ae7, 0x01ecf87a, 0x03bce4c4, 0x030cc610, 0x002f018b}}}, + {X: Field{[10]uint32{0x017378e1, 0x02e99769, 0x00dd7335, 0x02b3c201, 0x03917dab, 0x0044dff8, 0x004dc515, 0x01c673d5, 0x0040f057, 0x0006ce67}}, Y: Field{[10]uint32{0x000b425f, 0x029dd718, 0x02f6d380, 0x004aaa11, 0x02bfdd07, 0x0374cce8, 0x01e872c1, 0x02821507, 0x00d3b6e8, 0x001359e5}}}, + {X: Field{[10]uint32{0x02238e4f, 0x002ffeae, 0x02edec21, 0x01e2af85, 0x039f8cd2, 0x02223147, 0x00d8219b, 0x0173b783, 0x013eb9c4, 0x0004e2cc}}, Y: Field{[10]uint32{0x02ac56d6, 0x021c8f39, 0x03f7fd9e, 0x01b735b6, 0x0213f0f7, 0x03c2b349, 0x02d49512, 0x0010bd2d, 0x0357cbc8, 0x00286668}}}, + {X: Field{[10]uint32{0x03542338, 0x03f0937a, 0x0312284f, 0x00445f24, 0x008f4018, 0x03d2b869, 0x0068b24c, 0x01599340, 0x03119c76, 0x000f81b0}}, Y: Field{[10]uint32{0x0273624f, 0x039d55c1, 0x03696498, 0x02cca01e, 0x0293b08a, 0x026a4341, 0x01c45963, 0x01fc6daa, 0x0196e560, 0x0018e995}}}, + {X: Field{[10]uint32{0x03f8bd2e, 0x037a2d2e, 0x0125f8a3, 0x037bb47b, 0x0280f0f6, 0x005e7a77, 0x00e5455c, 0x0224c95d, 0x039b49c8, 0x0000fccb}}, Y: Field{[10]uint32{0x02589f17, 0x007e9ada, 0x02472855, 0x033b8ae1, 0x00091f49, 0x03d0aa77, 0x0090257b, 0x01be27bd, 0x031a5fc9, 0x0028b4ae}}}, + {X: Field{[10]uint32{0x02414ec5, 0x01dca651, 0x02b041fe, 0x03ef8ce0, 0x022c4f5e, 0x016c6e0a, 0x029602bf, 0x03143e84, 0x0017ffcc, 0x00226b71}}, Y: Field{[10]uint32{0x00253215, 0x01fbd523, 0x00bc8e2c, 0x00a0976a, 0x036c3daa, 0x02a9867b, 0x015c2915, 0x01d47405, 0x035c291b, 0x001339f9}}}, + {X: Field{[10]uint32{0x00e4e9b5, 0x03faab97, 0x01619a13, 0x03e81f07, 0x01e9f208, 0x00bd53d9, 0x017d4860, 0x02327d96, 0x01626bec, 0x003ccfef}}, Y: Field{[10]uint32{0x01593774, 0x00ad0914, 0x0025edf0, 0x022ddc9a, 0x02a6f43c, 0x00142c0c, 0x03e2eda3, 0x03c54a1f, 0x002bebb9, 0x00323c18}}}, + {X: Field{[10]uint32{0x00a7d6b8, 0x038f9929, 0x0071d568, 0x013d1448, 0x02117fa0, 0x003a5d01, 0x01f7703a, 0x038bdf91, 0x00ab7b90, 0x0003b332}}, Y: Field{[10]uint32{0x00a1b6f4, 0x005a6696, 0x0056048e, 0x01143c7f, 0x03fcc8a6, 0x0322ecd9, 0x033c2333, 0x028363cb, 0x0305a9c4, 0x002115bd}}}, + {X: Field{[10]uint32{0x017de915, 0x00fa5685, 0x03dfca4e, 0x035537c7, 0x000e6e31, 0x009d0fb4, 0x0181c754, 0x0218b960, 0x0333a7ad, 0x003da58a}}, Y: Field{[10]uint32{0x029e6605, 0x038c80ba, 0x01cf209e, 0x016a0cd6, 0x02055c15, 0x0280566a, 0x037e8ad2, 0x0173afe7, 0x03fb4851, 0x002bcf51}}}, + {X: Field{[10]uint32{0x02ace24d, 0x02748d36, 0x019e842b, 0x03c8e3fd, 0x025c45d2, 0x0025649a, 0x02d5df02, 0x03ec4197, 0x03c67996, 0x0000fc7c}}, Y: Field{[10]uint32{0x010ea28e, 0x012f529b, 0x0011f110, 0x00195a42, 0x03737507, 0x0088a36a, 0x023c30b2, 0x027c28a3, 0x01e4f0a2, 0x00356172}}}, + {X: Field{[10]uint32{0x026e589c, 0x0375145b, 0x030e34ae, 0x00b50206, 0x02dc3359, 0x02b4b357, 0x03f93c16, 0x00390f62, 0x00193629, 0x0003f2b8}}, Y: Field{[10]uint32{0x031165cc, 0x001ee851, 0x02c243a2, 0x0162e5c0, 0x02c8acb9, 0x03342665, 0x00710d88, 0x029110b7, 0x039ecc42, 0x0023a615}}}, + {X: Field{[10]uint32{0x011f522c, 0x015c2ac5, 0x012c6d89, 0x01f6ea8c, 0x01abc424, 0x03f23beb, 0x037922b5, 0x008a748e, 0x03ba0355, 0x001523c9}}, Y: Field{[10]uint32{0x02ab6fa9, 0x01fc6e21, 0x0200acb7, 0x018ce6e5, 0x02b7b63c, 0x03cdf207, 0x00ba774f, 0x01f35f23, 0x03d8bbb4, 0x00039565}}}, + {X: Field{[10]uint32{0x00146fa0, 0x00e6ef57, 0x003ab6e4, 0x02e18460, 0x0249797d, 0x0021adef, 0x025cf1ef, 0x00d1fb51, 0x0114e8bf, 0x0038bd92}}, Y: Field{[10]uint32{0x006ae76e, 0x035d18ff, 0x025d1d2e, 0x0251cb55, 0x0388b27a, 0x01debbe6, 0x02482570, 0x00793c54, 0x036f7c64, 0x00239a79}}}, + {X: Field{[10]uint32{0x0013db1d, 0x02faae8b, 0x011222cd, 0x0323ce33, 0x01c7d362, 0x00a62d03, 0x00f97622, 0x00303c76, 0x02a02d97, 0x0002314c}}, Y: Field{[10]uint32{0x0062bd0e, 0x01bfea1c, 0x0276801b, 0x02d8b7b0, 0x03568251, 0x032dd81b, 0x00ffc9fb, 0x0359b67a, 0x02e90428, 0x00243e28}}}, + {X: Field{[10]uint32{0x02291a23, 0x008c8618, 0x02f6d3c3, 0x025ebd59, 0x006fc0ed, 0x0014abb1, 0x02f7e0c8, 0x0065cbda, 0x02fee3c5, 0x0019191b}}, Y: Field{[10]uint32{0x007a69fe, 0x023d3dca, 0x03c50d6c, 0x022a61bf, 0x03a10eb8, 0x01c7cb76, 0x0276ee71, 0x00dc2cda, 0x0150f6ca, 0x00278a78}}}, + {X: Field{[10]uint32{0x033be659, 0x00787cd1, 0x011b51eb, 0x02fe699f, 0x01329199, 0x01bbd972, 0x03ff69a0, 0x037fdc32, 0x00da1df8, 0x001ba2e9}}, Y: Field{[10]uint32{0x015d852a, 0x01d19e60, 0x00a060f6, 0x0289f851, 0x03eb5a34, 0x0394def5, 0x03f21883, 0x01069cd7, 0x02c89594, 0x002b9d58}}}, + {X: Field{[10]uint32{0x036bcaef, 0x0307ccca, 0x029cae76, 0x007356e3, 0x02c94c87, 0x02b6fc7d, 0x020d7e1c, 0x00b03db7, 0x03c8f781, 0x0023086a}}, Y: Field{[10]uint32{0x007ed53e, 0x02832a5d, 0x006b2663, 0x03f9a3fd, 0x015a36d6, 0x03833bfa, 0x010ed037, 0x000f8950, 0x00c313be, 0x00169f27}}}, + {X: Field{[10]uint32{0x039f6353, 0x01ac9a4b, 0x01fea342, 0x00087ae2, 0x0010ce51, 0x015e8a3c, 0x0236ff76, 0x01f85099, 0x003a7c48, 0x0033838e}}, Y: Field{[10]uint32{0x0232e03a, 0x03030358, 0x02280532, 0x03dbf6b3, 0x0097fcb9, 0x031cf23b, 0x004e9da4, 0x01e010a0, 0x0065d43f, 0x000fe569}}}, + {X: Field{[10]uint32{0x01698eb8, 0x028dfb87, 0x03700080, 0x031f0072, 0x028078b6, 0x0119cff0, 0x00598483, 0x01f13fd1, 0x017f5147, 0x001f8cc2}}, Y: Field{[10]uint32{0x022d75a7, 0x03072972, 0x025ad141, 0x039a5c01, 0x02e282b7, 0x01241968, 0x001d274e, 0x0319e762, 0x03c07317, 0x003049d6}}}, + {X: Field{[10]uint32{0x016837a6, 0x01ec3904, 0x03867931, 0x019b3ecf, 0x01d686eb, 0x03bfc9cc, 0x031cf429, 0x01f987ec, 0x00d6b148, 0x003bd367}}, Y: Field{[10]uint32{0x0163be1f, 0x022dda8f, 0x012ecd11, 0x0161ffd8, 0x023bd2ff, 0x03a87ae8, 0x036461a6, 0x03756893, 0x02b4280d, 0x00313daf}}}, + {X: Field{[10]uint32{0x03716290, 0x015cecbc, 0x014b992c, 0x028b7c32, 0x03ce53f4, 0x0297e2e8, 0x0090bcb9, 0x024c93de, 0x01452ee4, 0x003cfb70}}, Y: Field{[10]uint32{0x03fb2f2d, 0x02a60834, 0x00dbf552, 0x01952470, 0x035c3905, 0x01f0aba4, 0x03301f08, 0x02c9ea36, 0x02abfbc9, 0x00265511}}}, + {X: Field{[10]uint32{0x03caa975, 0x01c32a0a, 0x02c92bd1, 0x009caf18, 0x0287d174, 0x00634831, 0x01341603, 0x03a45358, 0x02517398, 0x00307d88}}, Y: Field{[10]uint32{0x03769e99, 0x0019c821, 0x01cabfcb, 0x0148071d, 0x00f6d6da, 0x00a4bdc6, 0x0328d593, 0x016ddb54, 0x02273673, 0x0007216b}}}, + {X: Field{[10]uint32{0x023dea8e, 0x004c8791, 0x03889714, 0x00066956, 0x01b206c6, 0x038c41c5, 0x00561533, 0x00220752, 0x01f9605f, 0x0029fa07}}, Y: Field{[10]uint32{0x00ae8a4f, 0x01bfbe5f, 0x000adaa1, 0x03ad7151, 0x020eb23d, 0x01f7de5a, 0x0370dbba, 0x006f83c2, 0x00fd1f36, 0x000eb888}}}, + {X: Field{[10]uint32{0x006a536b, 0x01ca0af9, 0x033262fe, 0x02b16a33, 0x02f46af5, 0x01f52b97, 0x03ac0288, 0x03ca59e8, 0x03298f5d, 0x0006da6f}}, Y: Field{[10]uint32{0x0046a91f, 0x0093cbaa, 0x01c6028c, 0x03f62203, 0x02d7e9d7, 0x0066ce28, 0x0375c684, 0x0269c7a8, 0x00aa02d9, 0x00327189}}}, + {X: Field{[10]uint32{0x03bb44bb, 0x0048bb76, 0x0251db56, 0x021ff45c, 0x03b31c99, 0x02cecc49, 0x0315cb96, 0x018ee637, 0x03740317, 0x003377fb}}, Y: Field{[10]uint32{0x024869f5, 0x011679fc, 0x00b65854, 0x019e3de0, 0x00225f08, 0x028ca8e3, 0x0279ce26, 0x016a8d31, 0x02f42e93, 0x00025cbf}}}, + {X: Field{[10]uint32{0x00e957ff, 0x01c3ffd8, 0x0129cfcb, 0x00d79f00, 0x00ee07f2, 0x03bc0788, 0x0347d309, 0x01458d9a, 0x00ef2c8a, 0x000cbf87}}, Y: Field{[10]uint32{0x03b4588e, 0x013b7c93, 0x0036fe75, 0x031f116d, 0x023d13b2, 0x0030d53a, 0x033babe0, 0x0184922c, 0x0331bd37, 0x0027a185}}}, + {X: Field{[10]uint32{0x01c24b0d, 0x00896e1e, 0x02908505, 0x015c9955, 0x024a7596, 0x02bed87f, 0x01d0ccf6, 0x0104674c, 0x03e9f491, 0x0028e0be}}, Y: Field{[10]uint32{0x02111857, 0x01b36a34, 0x00a55513, 0x0063260e, 0x02cdde63, 0x01f088bf, 0x03e0287c, 0x02ff709c, 0x036039a1, 0x002a8c00}}}, + {X: Field{[10]uint32{0x0280ef88, 0x02453b06, 0x028bc6d6, 0x029e5a88, 0x0159e305, 0x01f00d13, 0x03e24670, 0x00c3ab84, 0x00399ae3, 0x002d4ed5}}, Y: Field{[10]uint32{0x01fadc7a, 0x003b8c35, 0x01a368f3, 0x00711d54, 0x02969d8d, 0x02ea2a38, 0x00f43cc8, 0x01b175d2, 0x00538dfc, 0x00266024}}}, + {X: Field{[10]uint32{0x0364169a, 0x007436be, 0x01b8df52, 0x02bc1abb, 0x00710fe2, 0x022c2b67, 0x00bbfed9, 0x03fb0fed, 0x0253f11c, 0x001886d4}}, Y: Field{[10]uint32{0x020378aa, 0x0036fa49, 0x00bb3abe, 0x01704d85, 0x033b9300, 0x00f81717, 0x01d025b6, 0x01abd88b, 0x01c48b71, 0x000a88d3}}}, + {X: Field{[10]uint32{0x01435b04, 0x00c5783e, 0x000bed5b, 0x03eae694, 0x001e5979, 0x003d5d63, 0x023f4428, 0x00f1fcc5, 0x036ccc9c, 0x0020ccca}}, Y: Field{[10]uint32{0x00d30ea0, 0x0285abf7, 0x012d416a, 0x03da1d8b, 0x0060c77d, 0x0100b761, 0x0241025c, 0x007c72f6, 0x0212258c, 0x00214d81}}}, + {X: Field{[10]uint32{0x03f6538a, 0x02a1a3f6, 0x006b668a, 0x0069e91d, 0x02fd54e2, 0x02806c43, 0x032d926d, 0x009888bd, 0x00e39120, 0x0009f236}}, Y: Field{[10]uint32{0x02d6eb91, 0x034ad088, 0x00090e90, 0x020484eb, 0x034d0c0a, 0x03783ffd, 0x009fe83f, 0x0121355b, 0x023fb8f2, 0x00221da3}}}, + {X: Field{[10]uint32{0x020067e5, 0x007aff81, 0x03a9155d, 0x0353c22d, 0x036ee768, 0x010955bb, 0x012e05ac, 0x008014bf, 0x030bbcd8, 0x003cd271}}, Y: Field{[10]uint32{0x010c6604, 0x0086939d, 0x009fb9f6, 0x02c1c75b, 0x0293fdc5, 0x01ebaa42, 0x003c4e9e, 0x0341431f, 0x00194011, 0x001b5657}}}, + {X: Field{[10]uint32{0x03b24f90, 0x0209e9c4, 0x03156edb, 0x00805ce9, 0x01a0183b, 0x030fe278, 0x031368ba, 0x0265998a, 0x027ab202, 0x00125995}}, Y: Field{[10]uint32{0x037e21ab, 0x01670cc0, 0x0094701f, 0x01645996, 0x01a097b8, 0x03020f8d, 0x0110ee76, 0x00eec252, 0x0036c2bb, 0x001bbe25}}}, + {X: Field{[10]uint32{0x013e0886, 0x01052fe4, 0x02eb69a7, 0x01d817fd, 0x0275611b, 0x02f18ffa, 0x0245b849, 0x0284fde1, 0x001b491d, 0x00124254}}, Y: Field{[10]uint32{0x01014df8, 0x02d96aa0, 0x03f17c54, 0x03dd7824, 0x0038b1ac, 0x0208ab17, 0x01d4c956, 0x001c3707, 0x02b6f2ee, 0x000b0831}}}, + {X: Field{[10]uint32{0x00cddb76, 0x0138d584, 0x01a72bf8, 0x023bb8f7, 0x03bd5f89, 0x03d058fd, 0x00d3ee40, 0x03450063, 0x0267f5a2, 0x0007b4b9}}, Y: Field{[10]uint32{0x02db8e7d, 0x024678c9, 0x027940f9, 0x03bda288, 0x02934810, 0x021a78db, 0x004babdd, 0x0133ab88, 0x00c564fa, 0x002ed25c}}}, + {X: Field{[10]uint32{0x0212f17b, 0x00758351, 0x03d5702a, 0x00361495, 0x00c15d1a, 0x037a1b5a, 0x01f9c8c7, 0x030dfeb7, 0x03410a0b, 0x00311eea}}, Y: Field{[10]uint32{0x02db09e3, 0x03baa068, 0x015cbb09, 0x019f3e0e, 0x00e84ce7, 0x028f30f8, 0x028091a1, 0x01f78444, 0x00b136f4, 0x000394ab}}}, + {X: Field{[10]uint32{0x027a7394, 0x03b1a831, 0x038c18f5, 0x03cf7484, 0x03f70825, 0x03b39d95, 0x0090b525, 0x033f10d5, 0x00c14993, 0x0038841a}}, Y: Field{[10]uint32{0x00c732da, 0x009c20c0, 0x00a12430, 0x03f276c1, 0x03065360, 0x017eadbe, 0x03997553, 0x02366caf, 0x0137d48f, 0x00335840}}}, + {X: Field{[10]uint32{0x03faf917, 0x01f93d0f, 0x03b87da0, 0x01bc47bb, 0x0200bd6a, 0x01942291, 0x029e1440, 0x00bd7ac1, 0x007d47a7, 0x0018d7d5}}, Y: Field{[10]uint32{0x03e64128, 0x00da48ca, 0x02642217, 0x015d53aa, 0x0021fecb, 0x0072c2fc, 0x024c8ed8, 0x01ced3cc, 0x01f23da2, 0x0023a82a}}}, + {X: Field{[10]uint32{0x01bdb47b, 0x0197c091, 0x02aa8485, 0x02ba4ca7, 0x013837b6, 0x00fe3993, 0x032f79ab, 0x02d2c7ff, 0x000a8648, 0x000918cb}}, Y: Field{[10]uint32{0x026e0426, 0x01b910bd, 0x03179814, 0x01d68e08, 0x02177ff8, 0x018aac8d, 0x02603608, 0x01574cf0, 0x0388c9e1, 0x00271b41}}}, + {X: Field{[10]uint32{0x037bf503, 0x03efde9a, 0x03b5ed59, 0x038574b0, 0x03146541, 0x032f2c06, 0x009cc56e, 0x00a75215, 0x01c3cfb2, 0x0010dd23}}, Y: Field{[10]uint32{0x01fb9c5c, 0x03cd3051, 0x019a9265, 0x01f86b7b, 0x000b2060, 0x0333623f, 0x007ea7f2, 0x026418ee, 0x01ed23a0, 0x00265d68}}}, + {X: Field{[10]uint32{0x03ae3ac0, 0x03ff72b0, 0x03a5804b, 0x03404549, 0x02bb8750, 0x026f8776, 0x0203b406, 0x0075a0c5, 0x0323b8c4, 0x0023e120}}, Y: Field{[10]uint32{0x02d1b37f, 0x020a22b0, 0x01c6e2c8, 0x00e8a95d, 0x01be81f8, 0x005f9691, 0x035805ab, 0x01830a1b, 0x00871282, 0x001dea2b}}}, + {X: Field{[10]uint32{0x0148422c, 0x0254ae8a, 0x012cc6e2, 0x036f1510, 0x002d8907, 0x00706720, 0x01e8be48, 0x0211b6ed, 0x0368b54d, 0x000a7af0}}, Y: Field{[10]uint32{0x03c7e845, 0x00bf898d, 0x0310aec7, 0x0285a180, 0x02426f79, 0x01e72f46, 0x02eb2d6f, 0x0276414e, 0x03a281d5, 0x0039ade4}}}, + {X: Field{[10]uint32{0x023ed345, 0x01e659c0, 0x008105ba, 0x000a7e39, 0x03d84bc6, 0x02dc5254, 0x00cbe21e, 0x0004b230, 0x03c4ccf4, 0x00250532}}, Y: Field{[10]uint32{0x017fdeee, 0x027ae035, 0x0272b39b, 0x0192edab, 0x01da45bb, 0x0338d72f, 0x0132790e, 0x028424b4, 0x039289e4, 0x002b47ba}}}, + {X: Field{[10]uint32{0x008f756e, 0x030f71ca, 0x035d411e, 0x02976c79, 0x000bea90, 0x003c8532, 0x03ab8149, 0x00009184, 0x025b769d, 0x0006f615}}, Y: Field{[10]uint32{0x01d375d8, 0x0085d770, 0x02b131df, 0x035f7315, 0x00b69c2c, 0x02af6b94, 0x01cfcb02, 0x007a46de, 0x006cfc78, 0x00301429}}}, + {X: Field{[10]uint32{0x0229cb01, 0x03b242c1, 0x013f276c, 0x038ca216, 0x0314ed0a, 0x02e37b59, 0x0009154e, 0x019af8f5, 0x004c35ad, 0x00013dd6}}, Y: Field{[10]uint32{0x03712bb0, 0x007acf05, 0x02048fb0, 0x03863c76, 0x021520fe, 0x0271685f, 0x00cf1b3e, 0x00483847, 0x0248232a, 0x003d2fa4}}}, + {X: Field{[10]uint32{0x01d9f13b, 0x031e0f87, 0x02b352b9, 0x021311dc, 0x01cffd16, 0x034bcf3b, 0x0127401f, 0x02cc5eac, 0x01de7e85, 0x0016c002}}, Y: Field{[10]uint32{0x0173ba64, 0x0048ca2e, 0x0048dbb4, 0x02fbb3f8, 0x01cb8839, 0x019cb1e3, 0x037cb7ce, 0x030d38cd, 0x0304f531, 0x003d1615}}}, + {X: Field{[10]uint32{0x03b32815, 0x00ef2b18, 0x019c3ad1, 0x014cfcfb, 0x0037f853, 0x0088b7ce, 0x025fdbc4, 0x01bc04ba, 0x01c37939, 0x00319bcc}}, Y: Field{[10]uint32{0x02b22668, 0x0334f69b, 0x01ca3ea1, 0x0212eeb1, 0x024113ee, 0x02d41490, 0x023ca861, 0x03a72f04, 0x00084ae5, 0x0001f5ee}}}, + {X: Field{[10]uint32{0x0263abd6, 0x03217997, 0x03af1a57, 0x0157a469, 0x023d7ba4, 0x03a679a5, 0x03a51b3e, 0x0264d09a, 0x035dc8b0, 0x000cc25f}}, Y: Field{[10]uint32{0x0270d7c4, 0x00d648b0, 0x02d80638, 0x03b59b93, 0x02987401, 0x0061a5d9, 0x039e1206, 0x00627722, 0x033b200c, 0x003ef49a}}}, + {X: Field{[10]uint32{0x005ffff4, 0x0374aa72, 0x015f8c37, 0x002e138e, 0x01aa71cf, 0x03eef90f, 0x02922d5f, 0x03b182e6, 0x0245a3b7, 0x0006b394}}, Y: Field{[10]uint32{0x0325084f, 0x0113686e, 0x029871c4, 0x01344358, 0x0006ad3f, 0x01b2eda7, 0x01c51cbb, 0x023e6fca, 0x01679470, 0x001cb03b}}}, + {X: Field{[10]uint32{0x030c4471, 0x0296bcda, 0x03512692, 0x00cb354b, 0x006ed54e, 0x00fe480b, 0x03225249, 0x0130b2fe, 0x039e4cce, 0x002f065e}}, Y: Field{[10]uint32{0x01673f70, 0x00213ef7, 0x017dfadb, 0x02553574, 0x013cad9b, 0x03b14222, 0x016be56c, 0x00197693, 0x02635182, 0x003544dd}}}, + {X: Field{[10]uint32{0x00c7df70, 0x0342f237, 0x03fab76a, 0x0002de69, 0x0213c6f5, 0x03b2b625, 0x00cfa733, 0x036fb45d, 0x0131334b, 0x0019a65e}}, Y: Field{[10]uint32{0x0199435a, 0x026f4b19, 0x003310d4, 0x037c9a50, 0x00ab00af, 0x0012b158, 0x03e7d3a5, 0x00663bb8, 0x0301948e, 0x003f6f4c}}}, + {X: Field{[10]uint32{0x026eb4bf, 0x020f30c6, 0x008b3890, 0x00bcdc2c, 0x02563742, 0x0040fde6, 0x020b9620, 0x020be5f0, 0x00dfb38d, 0x000eea1b}}, Y: Field{[10]uint32{0x0258dfc8, 0x035ab48c, 0x02fee33d, 0x00aaf7b2, 0x035377e3, 0x02d1db86, 0x017f9819, 0x02ec4e6f, 0x001176de, 0x002b3b26}}}, + {X: Field{[10]uint32{0x031603cd, 0x024c36fb, 0x01243fed, 0x027ddba0, 0x02639519, 0x00b64575, 0x03acdbdc, 0x01c76130, 0x032f9db9, 0x0003d890}}, Y: Field{[10]uint32{0x027b5f28, 0x0031e5d2, 0x02444c2e, 0x013bac46, 0x0282269f, 0x037a1d5f, 0x0056acd5, 0x01331b96, 0x033d177b, 0x003ba273}}}, + {X: Field{[10]uint32{0x0067bbaf, 0x02bbaa70, 0x00b1d688, 0x0141e538, 0x01b6d812, 0x016ca028, 0x016e6500, 0x03a9182b, 0x03dc6a6d, 0x00212d06}}, Y: Field{[10]uint32{0x03c00e7c, 0x03090e67, 0x032b2ab8, 0x01b97343, 0x03e452fe, 0x017c3c32, 0x008cdf7b, 0x02d2ecae, 0x003cb535, 0x0027de1c}}}, + {X: Field{[10]uint32{0x009d4c67, 0x010b06b2, 0x01f8828a, 0x02b294e6, 0x01048c52, 0x022e3515, 0x00f48839, 0x0128538a, 0x02a93ea6, 0x00238b7f}}, Y: Field{[10]uint32{0x02781271, 0x0169267c, 0x02ff7593, 0x01d3da77, 0x03e09d74, 0x023b413a, 0x01df10dd, 0x00d814cd, 0x0149cda5, 0x003fb005}}}, + {X: Field{[10]uint32{0x03105e0b, 0x009dd666, 0x012f118b, 0x028903a4, 0x01dbd2f6, 0x032f0be8, 0x0175e364, 0x02b074ff, 0x01ae5401, 0x0030ef1b}}, Y: Field{[10]uint32{0x0363d6b4, 0x01430fce, 0x00c340a6, 0x0122dbc3, 0x019c5dba, 0x000dc02c, 0x02345063, 0x024c9bf4, 0x00f55b73, 0x0005c3f7}}}, + {X: Field{[10]uint32{0x03c14691, 0x03b32268, 0x0395da10, 0x03b7a4d5, 0x00c2defc, 0x009ffe04, 0x01a289e0, 0x014b9eb1, 0x02931b1e, 0x000cc24f}}, Y: Field{[10]uint32{0x00deec38, 0x021e9fdc, 0x0047a7ee, 0x002f5a2f, 0x0102114f, 0x02b843ee, 0x03dc8421, 0x017af699, 0x01845bd5, 0x001feee9}}}, + {X: Field{[10]uint32{0x00141ef9, 0x03f9cd36, 0x00208a36, 0x00cbb2f3, 0x013f1211, 0x031e3762, 0x02c765ed, 0x028f3801, 0x0038b6d1, 0x00086cd5}}, Y: Field{[10]uint32{0x02e300d0, 0x01afc1ba, 0x02a7f256, 0x02f8ec59, 0x01e2d516, 0x01bed423, 0x01a82b36, 0x01f723d8, 0x01a5ed23, 0x0003d845}}}, + {X: Field{[10]uint32{0x03892df3, 0x020bf1b4, 0x008de037, 0x008470b9, 0x03ade708, 0x023a793e, 0x0248edf2, 0x03b45cc0, 0x0183aa1b, 0x0033b599}}, Y: Field{[10]uint32{0x00fdec96, 0x0239ce06, 0x031b6cb3, 0x00d4901f, 0x02c3a818, 0x03110710, 0x03e634e3, 0x0280efc3, 0x0136f29d, 0x0013d0eb}}}, + {X: Field{[10]uint32{0x026f71f8, 0x0215cefb, 0x03ec023a, 0x01f333ca, 0x0337f6eb, 0x027ef32b, 0x02731222, 0x02a2bac1, 0x0020f541, 0x003169d1}}, Y: Field{[10]uint32{0x00adb259, 0x01921958, 0x017096c8, 0x00d524d3, 0x021612a5, 0x0097e964, 0x00a6e25d, 0x00f4db00, 0x00024426, 0x002b98d3}}}, + {X: Field{[10]uint32{0x00b9de9e, 0x012eb052, 0x0212ef0a, 0x007f1334, 0x008311c5, 0x016c57a9, 0x03255211, 0x01ad2ca9, 0x008bf30f, 0x000c1281}}, Y: Field{[10]uint32{0x023bb3cd, 0x02c19781, 0x03fec154, 0x0216c848, 0x0311ceeb, 0x02a54fea, 0x01cb5dc8, 0x02fc344a, 0x01003d6e, 0x0023e4d6}}}, + {X: Field{[10]uint32{0x039c2048, 0x02fef356, 0x0251972e, 0x03c4eec1, 0x016ecb66, 0x01e047a4, 0x009875e9, 0x002bd42b, 0x01ae7eba, 0x003fe5ad}}, Y: Field{[10]uint32{0x0352a887, 0x00678bd8, 0x00e3c319, 0x0321c3f5, 0x033de89c, 0x015abb46, 0x00a0b1db, 0x0073ab96, 0x0186bca7, 0x00092bc8}}}, + {X: Field{[10]uint32{0x01b701a3, 0x037389ec, 0x035d050b, 0x02e5282c, 0x028b6d38, 0x01bf6cf3, 0x01472437, 0x00bbb410, 0x021cdf73, 0x00164273}}, Y: Field{[10]uint32{0x0224dfdf, 0x0301782c, 0x012b037f, 0x02eefdde, 0x037d3731, 0x000e0e8f, 0x01cf2239, 0x039d8609, 0x01440665, 0x0000b912}}}, + {X: Field{[10]uint32{0x03d1d527, 0x01acc3aa, 0x01ad7cfb, 0x01d32bc1, 0x0008ef99, 0x00a11152, 0x02032b79, 0x019841be, 0x031f86d6, 0x003fdadd}}, Y: Field{[10]uint32{0x008ba4b3, 0x03c109e4, 0x03f50b25, 0x02b8d512, 0x029fcd0b, 0x03a7daa1, 0x037e0557, 0x03a473fd, 0x029c9393, 0x001aaf4a}}}, + {X: Field{[10]uint32{0x021aa8d9, 0x035f48ce, 0x005f4bef, 0x0215f9ff, 0x03be9196, 0x00b66b39, 0x03da48a1, 0x007eb47b, 0x030494dd, 0x00250f33}}, Y: Field{[10]uint32{0x020a7bd6, 0x0044d306, 0x01c523d0, 0x007161e4, 0x006014e0, 0x029f93c4, 0x011a23fc, 0x00fe2cdd, 0x00cc2dd9, 0x0013c22d}}}, + {X: Field{[10]uint32{0x005f172c, 0x03127dd0, 0x035b3ee6, 0x022c7672, 0x0147a463, 0x03c9b0d0, 0x00e0968b, 0x00737242, 0x03a7a89e, 0x00029e69}}, Y: Field{[10]uint32{0x03bb8ceb, 0x03ba43fc, 0x00cd1b3c, 0x01dae60e, 0x03ebadcb, 0x0300c96c, 0x0097f34e, 0x02f8eb95, 0x016714b5, 0x0032d4f6}}}, + {X: Field{[10]uint32{0x007b89dd, 0x03014547, 0x01b2fa50, 0x00daa8cf, 0x024f548b, 0x005cfde2, 0x021667cd, 0x01bbeaa1, 0x02fc7117, 0x000a3fcb}}, Y: Field{[10]uint32{0x02fe4941, 0x03889275, 0x01988dc6, 0x02ccdf5e, 0x038e67cd, 0x0235f6f7, 0x005e1656, 0x02857c52, 0x0307db4b, 0x0011d6cd}}}, + {X: Field{[10]uint32{0x01012968, 0x021facec, 0x03557f86, 0x01ebc2b9, 0x00223e89, 0x016d3280, 0x0304fa25, 0x01a21701, 0x033216a8, 0x00216cb0}}, Y: Field{[10]uint32{0x0257ea11, 0x0175cd75, 0x015c5704, 0x039e6341, 0x021f2bcb, 0x003bd1e7, 0x03cbe7af, 0x01015bbe, 0x0145ba66, 0x00287d63}}}, + {X: Field{[10]uint32{0x00bb8778, 0x01c32697, 0x01d47c2a, 0x03834d53, 0x027a02b3, 0x01ef4da4, 0x028e2add, 0x00cb7901, 0x0109eefb, 0x003a7f0b}}, Y: Field{[10]uint32{0x0365c312, 0x003b1696, 0x01cdf80d, 0x03b2f632, 0x00f249d7, 0x03d4f33d, 0x02e219bb, 0x0341a00f, 0x02a51216, 0x003b8026}}}, + {X: Field{[10]uint32{0x00005d9e, 0x0010be68, 0x02d65763, 0x0341883f, 0x02a1cc88, 0x0288a142, 0x0238af95, 0x00434c9b, 0x0350afd5, 0x00368b72}}, Y: Field{[10]uint32{0x033eaeab, 0x0007af84, 0x014436d5, 0x026ac5b2, 0x01ae0eab, 0x004c237a, 0x016af23f, 0x00258d78, 0x03b1c370, 0x0007bbd1}}}, + {X: Field{[10]uint32{0x02b352e0, 0x01f68f07, 0x02f08b9b, 0x034ffded, 0x02327891, 0x0021cd59, 0x03174027, 0x019baf39, 0x029cc6b1, 0x000836a8}}, Y: Field{[10]uint32{0x02e8a3fb, 0x0374fdde, 0x027a4299, 0x00981370, 0x02a30cb5, 0x00b0e8c9, 0x01d66929, 0x03e937b0, 0x002cecd6, 0x000bfda6}}}, + {X: Field{[10]uint32{0x03674d9b, 0x00bafdd4, 0x00bdd71b, 0x0101b30d, 0x023aab84, 0x025be7d3, 0x0147a534, 0x02f84d9d, 0x00dd2ae5, 0x00385ac2}}, Y: Field{[10]uint32{0x03a06846, 0x01e87646, 0x02c1d931, 0x0322dc4d, 0x0248a1af, 0x00d5ed6e, 0x003d60d6, 0x00ac7239, 0x024bd952, 0x002dc3dc}}}, + {X: Field{[10]uint32{0x016b93d3, 0x014d59f9, 0x00475807, 0x03b00f1a, 0x00c59670, 0x002c1b51, 0x039485e0, 0x036cd03f, 0x01af2d69, 0x0022228b}}, Y: Field{[10]uint32{0x01d4e3f5, 0x01e7ed8c, 0x01a9e9ba, 0x0212de52, 0x028e8043, 0x02c9c6ae, 0x00753f05, 0x002e0ab1, 0x03a7792e, 0x00376f93}}}, + {X: Field{[10]uint32{0x016abd12, 0x035831d8, 0x01704d50, 0x0032fd0f, 0x02ee6d8e, 0x00c7e5ec, 0x022e3081, 0x03f754b0, 0x00e29090, 0x001d1dda}}, Y: Field{[10]uint32{0x00b61058, 0x02eb1827, 0x0384099d, 0x01172338, 0x0227b266, 0x03b9ffcd, 0x012879e5, 0x0382d2ed, 0x03408d1c, 0x003aa9d7}}}, + {X: Field{[10]uint32{0x018d6eda, 0x01f5e73f, 0x011435a1, 0x0163e44c, 0x0380897a, 0x01f00307, 0x0337cc88, 0x004c6a34, 0x02ac1c7d, 0x00215a7c}}, Y: Field{[10]uint32{0x03eacf71, 0x01fb5b60, 0x01a8edda, 0x02aa9397, 0x0385e43b, 0x011a8ce4, 0x00e700a7, 0x001ba0be, 0x0344252d, 0x001413c2}}}, + {X: Field{[10]uint32{0x011860c9, 0x035a1078, 0x00591e57, 0x03e2f920, 0x00c4418d, 0x010a6e1d, 0x00a1d680, 0x0087713f, 0x03f9a672, 0x0013c57c}}, Y: Field{[10]uint32{0x0096b7ed, 0x02571529, 0x02a820b7, 0x02f13318, 0x013f1154, 0x01f4a418, 0x02bda108, 0x02a70685, 0x01561783, 0x00260b03}}}, + {X: Field{[10]uint32{0x004a92ce, 0x02fdf005, 0x019439e1, 0x036ea909, 0x0204e4f9, 0x03dc9635, 0x03d56ce6, 0x01b878fa, 0x02201f22, 0x00087946}}, Y: Field{[10]uint32{0x01aac869, 0x011c1e5d, 0x0235918d, 0x019d144d, 0x02428f31, 0x0326f42a, 0x001486fe, 0x0292b497, 0x0001b6a5, 0x001311ea}}}, + {X: Field{[10]uint32{0x000211a0, 0x00a84627, 0x01f2ed5e, 0x00d8e56f, 0x03e0f283, 0x03fdafe2, 0x034c4f9d, 0x03b03342, 0x002e8865, 0x003eb1f9}}, Y: Field{[10]uint32{0x00dd695e, 0x01aee8b1, 0x025c641e, 0x02dceeb5, 0x02ce656f, 0x0265cc1e, 0x01fece11, 0x00667bec, 0x019c8337, 0x000da04b}}}, + {X: Field{[10]uint32{0x0226d225, 0x01915246, 0x03469910, 0x00b5ee72, 0x0257f0f4, 0x010b4a7b, 0x01686714, 0x031dfb31, 0x039ec91b, 0x002851e0}}, Y: Field{[10]uint32{0x005bc5a4, 0x001dc2b2, 0x02edab73, 0x0138bc53, 0x02fc0d06, 0x028a7f06, 0x0120257f, 0x019fc618, 0x010ebf72, 0x003d010d}}}, + {X: Field{[10]uint32{0x00636b8c, 0x02790706, 0x01e2bdf1, 0x003dc5ab, 0x0344a790, 0x00563cf8, 0x0083c1f4, 0x01a01112, 0x00f9e508, 0x0034484b}}, Y: Field{[10]uint32{0x03fc0964, 0x00eb2c09, 0x02ec0555, 0x03203a31, 0x022f9c21, 0x00c8d71a, 0x00183a0f, 0x0059944a, 0x005107b9, 0x0001c82e}}}, + {X: Field{[10]uint32{0x03948975, 0x027fa422, 0x03ce72dd, 0x03282249, 0x022e4852, 0x00681f5e, 0x037c1250, 0x0095e025, 0x0334a7ab, 0x0004f57c}}, Y: Field{[10]uint32{0x018773ca, 0x01edbade, 0x0282a7d8, 0x014d1e7f, 0x02ff9987, 0x03a30e05, 0x0231db1a, 0x02aed473, 0x01e2d1d0, 0x0025ce1a}}}, + {X: Field{[10]uint32{0x0063507d, 0x02f7ec39, 0x007e6b9a, 0x0294d31e, 0x025ec754, 0x01af084d, 0x029bec32, 0x027a39da, 0x01616dae, 0x0007c19a}}, Y: Field{[10]uint32{0x035b262d, 0x03473471, 0x013ceb5b, 0x01d02ccd, 0x03c6f999, 0x0264ea6f, 0x01f9fc12, 0x00447e20, 0x030eb4ea, 0x00369201}}}, + {X: Field{[10]uint32{0x01150269, 0x02ab57da, 0x020298d4, 0x03400453, 0x01907b15, 0x027e5d7d, 0x02d9a495, 0x00770f12, 0x01873868, 0x0001ca78}}, Y: Field{[10]uint32{0x01455442, 0x001967e3, 0x003f2456, 0x020a7a36, 0x02c1901c, 0x02c0d69f, 0x020022c8, 0x02806db7, 0x018ec60e, 0x0036fcbb}}}, + {X: Field{[10]uint32{0x01fda12a, 0x0085a1c7, 0x02fa02ee, 0x03bb0810, 0x028e3692, 0x03864309, 0x002435fd, 0x00d1dd35, 0x03e96135, 0x003a4bf2}}, Y: Field{[10]uint32{0x0164f2ff, 0x014b320b, 0x01a84fb8, 0x01447c07, 0x03585b14, 0x039bb173, 0x02369575, 0x02035907, 0x000e3f52, 0x0029d6d7}}}, + {X: Field{[10]uint32{0x00da36df, 0x0204b532, 0x01c1c789, 0x0335fcad, 0x001ad35b, 0x00fdae41, 0x004dfbf9, 0x0234e7a7, 0x021ac69f, 0x002170b9}}, Y: Field{[10]uint32{0x00b53f45, 0x03eaecf0, 0x03752f38, 0x036efca5, 0x02575264, 0x00caac46, 0x00a50b33, 0x00a78697, 0x01876944, 0x00329b64}}}, + {X: Field{[10]uint32{0x011bc05c, 0x0051f86f, 0x0024f10f, 0x016021e7, 0x003adf99, 0x016b93c0, 0x01c2791b, 0x031ad03d, 0x0232c33c, 0x0004345d}}, Y: Field{[10]uint32{0x039a687d, 0x00b24a64, 0x01718a8b, 0x013cc481, 0x000be846, 0x02393170, 0x01bae008, 0x03b1bd17, 0x0334f1dd, 0x003857b9}}}, + {X: Field{[10]uint32{0x025d609a, 0x03b21af8, 0x036f028f, 0x035a09d1, 0x0092511d, 0x01fa82ef, 0x01820bd2, 0x0225cbce, 0x03452593, 0x0029a508}}, Y: Field{[10]uint32{0x0311d6e9, 0x01cc20d3, 0x016bd0ea, 0x01b02d4a, 0x00af49ee, 0x0095b2d2, 0x036d1b66, 0x01cfd24f, 0x0216870f, 0x00381acd}}}, + {X: Field{[10]uint32{0x0394d8ac, 0x019b6237, 0x0190604f, 0x01d5aec3, 0x03c401a6, 0x016db131, 0x02ba0524, 0x02b8fd0f, 0x00ed2b3d, 0x002d29f6}}, Y: Field{[10]uint32{0x00963456, 0x00291b64, 0x01ecfd2b, 0x00138429, 0x01074dcb, 0x0341ebcd, 0x03def119, 0x036d6bf5, 0x00631a2c, 0x003ff207}}}, + {X: Field{[10]uint32{0x01a6fd17, 0x0078aaf7, 0x01266303, 0x03fd613c, 0x03f84fb2, 0x026a9574, 0x01cb660d, 0x00f15ca1, 0x021daebd, 0x0016baf8}}, Y: Field{[10]uint32{0x02f1abe8, 0x03366676, 0x00ff6d9d, 0x03bdecd7, 0x038f5994, 0x03572114, 0x0178c40c, 0x02d4c834, 0x01136a51, 0x00008ba9}}}, + {X: Field{[10]uint32{0x008c7f87, 0x00c5b9cb, 0x01c51278, 0x00360e18, 0x0269388d, 0x01158ea9, 0x016d64cb, 0x022356de, 0x02641943, 0x002b1a11}}, Y: Field{[10]uint32{0x02f41ac1, 0x004eace7, 0x02e5ff89, 0x02209961, 0x034d7109, 0x03da4fa4, 0x03bf1143, 0x002c0425, 0x02d82dc9, 0x0032e509}}}, + {X: Field{[10]uint32{0x00955250, 0x00855f09, 0x028356b8, 0x0190589f, 0x0176ad27, 0x009f3a2a, 0x00c58c2f, 0x0398861d, 0x01490f89, 0x001be52f}}, Y: Field{[10]uint32{0x007c5614, 0x037cfe6f, 0x012ec0d8, 0x02163b03, 0x01e3633a, 0x03e188bd, 0x03d9cf68, 0x0371f171, 0x00ce4a54, 0x003490cc}}}, + {X: Field{[10]uint32{0x0008f137, 0x01024168, 0x02fa9d09, 0x0229e168, 0x00775e06, 0x02b17fd1, 0x019ec5c9, 0x0251e81b, 0x008ce149, 0x0000fe5b}}, Y: Field{[10]uint32{0x005f3f40, 0x003ab320, 0x00ce2b12, 0x0100c380, 0x009b7d9e, 0x00d8327f, 0x03613d4e, 0x029418f3, 0x03af7111, 0x002a4773}}}, + {X: Field{[10]uint32{0x039c707d, 0x01c2565d, 0x033c8f34, 0x01866ca9, 0x00405a5b, 0x0124265d, 0x022a4c17, 0x01d74ee1, 0x005cdfd6, 0x0036016c}}, Y: Field{[10]uint32{0x003b6865, 0x0233b20f, 0x03a66b6d, 0x03c40f30, 0x0184366e, 0x02edff2c, 0x022abdbf, 0x027cb78e, 0x004cc727, 0x0029a2d5}}}, + {X: Field{[10]uint32{0x039df0e4, 0x02f8d381, 0x031d4808, 0x00cdbcbd, 0x03591422, 0x01d2afa6, 0x020efa78, 0x0272d9af, 0x000bd418, 0x00348a4f}}, Y: Field{[10]uint32{0x012682b1, 0x0301a3c8, 0x0131318c, 0x0268ff83, 0x017f24f7, 0x033a8e1c, 0x03fe70a5, 0x012582e6, 0x024887c5, 0x0017ef0c}}}, + {X: Field{[10]uint32{0x03209d5f, 0x032b6716, 0x016570fa, 0x03ed55be, 0x01e3f107, 0x01dacf17, 0x0149d26e, 0x008ff9eb, 0x010be226, 0x0024c7c2}}, Y: Field{[10]uint32{0x031cc087, 0x034685d2, 0x00144d5a, 0x03006143, 0x01848f57, 0x006ba8e5, 0x01daf748, 0x02626619, 0x0279d2a8, 0x00330957}}}, + {X: Field{[10]uint32{0x01e5ddc9, 0x0165cc8e, 0x00987a03, 0x002b6cd0, 0x006e4e69, 0x021500e9, 0x02a72f62, 0x03fdaf23, 0x02836707, 0x00046298}}, Y: Field{[10]uint32{0x03ff818b, 0x0086603d, 0x027ad722, 0x02361704, 0x00b6f5a1, 0x0365abe1, 0x039d4470, 0x024160db, 0x03e5e65a, 0x00247c03}}}, + {X: Field{[10]uint32{0x036a985a, 0x0071a907, 0x014be189, 0x00b4b998, 0x01b811ca, 0x03475278, 0x014ba420, 0x02d26b40, 0x00eb5b6c, 0x0020425b}}, Y: Field{[10]uint32{0x03607e5d, 0x03fa5c2d, 0x038f5b4d, 0x0181ac12, 0x003f4948, 0x00d52d9d, 0x0050a3c1, 0x03cf95e0, 0x01c5f8f9, 0x00036814}}}, + {X: Field{[10]uint32{0x000cae06, 0x0042624c, 0x0068b9f4, 0x010db771, 0x00351b7e, 0x020fad1f, 0x013559e7, 0x017b58b7, 0x00385ff4, 0x0026a029}}, Y: Field{[10]uint32{0x0004b6d0, 0x015efe2e, 0x01cad30e, 0x01678f90, 0x00bee656, 0x003154e6, 0x028aee8b, 0x02716d18, 0x039921b6, 0x00211747}}}, + {X: Field{[10]uint32{0x02747906, 0x009023d1, 0x0209081c, 0x0137eeed, 0x02214395, 0x007a57fa, 0x02c1d596, 0x0156e5fe, 0x00f3b899, 0x001a8c5a}}, Y: Field{[10]uint32{0x00ccc005, 0x00f15ca3, 0x01403c48, 0x007a0475, 0x02012c74, 0x00b2406d, 0x0244a3f8, 0x03c420eb, 0x03886778, 0x0016d7c7}}}, + {X: Field{[10]uint32{0x01214af8, 0x002a43f8, 0x018a73db, 0x03fbd3e3, 0x03797710, 0x022f23b5, 0x03d42985, 0x0196e88e, 0x031178d1, 0x002680ea}}, Y: Field{[10]uint32{0x01e85665, 0x00ad6f22, 0x0265ca65, 0x00287542, 0x0159a555, 0x02955bd4, 0x0112f2bf, 0x012fd245, 0x00e7e61e, 0x001c2223}}}, + {X: Field{[10]uint32{0x00ea2f5d, 0x01e3bdbd, 0x00e25e78, 0x01066477, 0x01296c8c, 0x0230525c, 0x02615754, 0x03678566, 0x018d78b8, 0x00232430}}, Y: Field{[10]uint32{0x031ca074, 0x005220b2, 0x01a68028, 0x03e6da42, 0x032b97c0, 0x036edc89, 0x0244a5e5, 0x02394685, 0x00cfde62, 0x000a950a}}}, + {X: Field{[10]uint32{0x008a8957, 0x035b74d4, 0x01d43b68, 0x008cce7f, 0x00933279, 0x000b27b4, 0x037a5daa, 0x00093613, 0x037f3062, 0x000ba6ea}}, Y: Field{[10]uint32{0x02a43345, 0x011d4c34, 0x02aca4a1, 0x023268dd, 0x03ea7e4f, 0x0148ecb7, 0x01e21f19, 0x000f27c8, 0x00b73f38, 0x00326be0}}}, + {X: Field{[10]uint32{0x02466322, 0x005d9c66, 0x0384db5c, 0x0260d0eb, 0x03e21298, 0x03ef9a8d, 0x0295e7c1, 0x033fbd92, 0x032e718e, 0x0009cd2f}}, Y: Field{[10]uint32{0x0284216e, 0x018d8c79, 0x03ca8f0a, 0x012f7e28, 0x007d0a1e, 0x01a5cc4b, 0x02a0ce34, 0x017c338d, 0x018a9f11, 0x003d4c02}}}, + {X: Field{[10]uint32{0x016aab58, 0x030a9475, 0x000d5e21, 0x01ee323d, 0x004af325, 0x01e6d485, 0x001b9975, 0x012939ba, 0x02f9500e, 0x002ae7b2}}, Y: Field{[10]uint32{0x01e0f047, 0x0035470f, 0x01bc3ff3, 0x039d5d0f, 0x01d0aaed, 0x00e2a216, 0x015e9d19, 0x0061126f, 0x03468e08, 0x003df4e1}}}, + {X: Field{[10]uint32{0x031af368, 0x0190d6b2, 0x000c0169, 0x01353a11, 0x00292b4d, 0x016eaa20, 0x029cd3e8, 0x027bcb96, 0x0146a4c0, 0x002b897d}}, Y: Field{[10]uint32{0x03f3da84, 0x004157bd, 0x03d59e05, 0x03c84404, 0x0080bd59, 0x0254f1b1, 0x039a9f22, 0x02103edc, 0x03b37373, 0x0011a8ac}}}, + {X: Field{[10]uint32{0x012e6142, 0x020f7070, 0x00ace54a, 0x02cafb01, 0x034e35ab, 0x0213f003, 0x017efaa8, 0x00736bd6, 0x01a64ef2, 0x00150a17}}, Y: Field{[10]uint32{0x00cdbc3d, 0x002db0c8, 0x03f6e522, 0x0124351b, 0x00b962a8, 0x00897757, 0x03c2dc29, 0x01ed6e91, 0x02b2144d, 0x000120ef}}}, + {X: Field{[10]uint32{0x03dca65e, 0x03ad984d, 0x00874c8d, 0x03ba8a45, 0x0035a627, 0x01a9e15f, 0x02d542ed, 0x008c7d82, 0x003404bc, 0x002fb3a1}}, Y: Field{[10]uint32{0x022f6a95, 0x00bd3acf, 0x034f8e9c, 0x02b6934e, 0x00fe1c93, 0x03820495, 0x0077fb8d, 0x039cbe39, 0x038002f9, 0x00288a7e}}}, + {X: Field{[10]uint32{0x035e81d1, 0x03672d3e, 0x0326b26f, 0x00b6b9b0, 0x0389994a, 0x03a082ef, 0x02fe5af1, 0x02e15d1c, 0x0347b148, 0x0000f555}}, Y: Field{[10]uint32{0x01e465df, 0x000073ef, 0x0052db90, 0x03efbf56, 0x03c9ea7d, 0x02cac58b, 0x035bc4f1, 0x00a293d8, 0x025ae867, 0x0037b7b2}}}, + {X: Field{[10]uint32{0x01cde5d4, 0x025f73dd, 0x01715fbc, 0x0080cd1d, 0x021846b5, 0x022fda9c, 0x036361a8, 0x00f1cd67, 0x0219d163, 0x0004f1a0}}, Y: Field{[10]uint32{0x03f83af4, 0x0104fe4d, 0x02e55935, 0x038aacad, 0x03bddf0c, 0x00b5e7a7, 0x02bfe7c5, 0x01fc825a, 0x00c239fc, 0x0033a28f}}}, + {X: Field{[10]uint32{0x01b0a6ac, 0x014049b5, 0x03433436, 0x00a6fa0d, 0x0036690a, 0x02ad4bc6, 0x00c481ad, 0x00691c9d, 0x02e1a804, 0x003a7902}}, Y: Field{[10]uint32{0x00c6bb7f, 0x0191bc8e, 0x029a9577, 0x008a9576, 0x019a22fa, 0x012451f3, 0x031f3147, 0x00e6e04d, 0x00b79c98, 0x00306656}}}, + {X: Field{[10]uint32{0x01493068, 0x006d3228, 0x00eea632, 0x01c6689a, 0x0113af43, 0x0236d872, 0x0353a537, 0x028697dc, 0x01537460, 0x000b8ed1}}, Y: Field{[10]uint32{0x03a54dcf, 0x014b1772, 0x01bb6e04, 0x03cadbed, 0x015ccf5c, 0x02439540, 0x019d3e22, 0x019b2125, 0x02561049, 0x003dee97}}}, + {X: Field{[10]uint32{0x034c62b8, 0x03c3d202, 0x0091edb1, 0x03713329, 0x026a59f3, 0x03d9c373, 0x02aa40eb, 0x012c019f, 0x0082b921, 0x0026156f}}, Y: Field{[10]uint32{0x00fcf435, 0x03072033, 0x000098d4, 0x0084e11e, 0x0387184e, 0x02c1c580, 0x0237d6b5, 0x031cf3a7, 0x036e3be6, 0x0029f64f}}}, + {X: Field{[10]uint32{0x01253979, 0x03e11d85, 0x00866982, 0x03148cee, 0x0367486b, 0x0273c9f7, 0x004bee26, 0x00a44db5, 0x00a9b934, 0x000dfe08}}, Y: Field{[10]uint32{0x0070ca15, 0x01a28a1e, 0x0288b2a5, 0x00ee75ee, 0x0150dd89, 0x01f159a9, 0x0345a5a3, 0x0274ddfc, 0x029daa62, 0x003f72ba}}}, + {X: Field{[10]uint32{0x02d41a98, 0x02a747f7, 0x013b03cb, 0x028a8e13, 0x023e0cd0, 0x001c3167, 0x00f6ba28, 0x00ec31a4, 0x0098a92a, 0x003a0b4b}}, Y: Field{[10]uint32{0x00501460, 0x021af832, 0x0306095c, 0x03341852, 0x01d09d7e, 0x031f540b, 0x0033d344, 0x016cd852, 0x023232d8, 0x000c79ce}}}, + {X: Field{[10]uint32{0x02923419, 0x024de666, 0x03f3a24b, 0x007ad002, 0x03ad4690, 0x03abb38e, 0x00711827, 0x032419a8, 0x03c36dd4, 0x002f524b}}, Y: Field{[10]uint32{0x01dd7798, 0x01a83240, 0x01af5fdc, 0x024ef349, 0x018b93da, 0x01ff5012, 0x036dbd0a, 0x03569199, 0x03c51e1f, 0x0032ab68}}}, + {X: Field{[10]uint32{0x0229577a, 0x03b4cae1, 0x039641cd, 0x0265ef7c, 0x00cd8f0d, 0x0169a720, 0x022c4dc1, 0x03b13cf2, 0x02da42d1, 0x001b22d1}}, Y: Field{[10]uint32{0x0318c956, 0x00900131, 0x030a97f1, 0x023b98ac, 0x01cbeb98, 0x02f2f08e, 0x02ef5965, 0x010b83dc, 0x0362729e, 0x0034eb53}}}, + {X: Field{[10]uint32{0x00f5dd62, 0x03af303e, 0x00f05ea9, 0x006ab432, 0x03effee7, 0x034d5ad3, 0x00a25d34, 0x034f7615, 0x01e6799b, 0x001e2c7a}}, Y: Field{[10]uint32{0x0131145d, 0x017e248e, 0x025c1dd2, 0x00adc0b9, 0x01d726ce, 0x028c0199, 0x03d70057, 0x02237301, 0x02d6a267, 0x000c540f}}}, + {X: Field{[10]uint32{0x02ebdccf, 0x01d3ba96, 0x00375c89, 0x0170057c, 0x03cb53fa, 0x03e92ada, 0x028cda6b, 0x0148f8f1, 0x02a663c5, 0x003cbb40}}, Y: Field{[10]uint32{0x00f36382, 0x039c968f, 0x03b67773, 0x02a3451d, 0x02937720, 0x00882b4c, 0x03922413, 0x000c838e, 0x01c3afdc, 0x0000ef79}}}, + {X: Field{[10]uint32{0x02caffd3, 0x00259f50, 0x02a60cde, 0x0005746a, 0x00f67ab1, 0x03fdae88, 0x0254d835, 0x0002fc1f, 0x0243a458, 0x001f90fd}}, Y: Field{[10]uint32{0x0398d68a, 0x00851655, 0x0079a76e, 0x004ad55a, 0x0158600d, 0x001ed49a, 0x03fbb378, 0x00ce66d5, 0x02da0f47, 0x0007d15b}}}, + {X: Field{[10]uint32{0x01319be8, 0x002d9598, 0x01d07643, 0x03299955, 0x017ccde2, 0x02d34b3a, 0x00c0a624, 0x00da5ea9, 0x01775eb7, 0x0037c578}}, Y: Field{[10]uint32{0x027311ad, 0x001e73ec, 0x00e53b35, 0x032ac5b9, 0x0108397c, 0x02983b8b, 0x0173dfb8, 0x00e06308, 0x00dcf154, 0x0000125b}}}, + {X: Field{[10]uint32{0x0382e2ae, 0x01fd9a71, 0x00fceef3, 0x03ee4685, 0x036707a3, 0x02503a12, 0x01c16487, 0x02ec804b, 0x03060295, 0x003b7c75}}, Y: Field{[10]uint32{0x02019a2e, 0x02a2593f, 0x00d7d239, 0x0263c239, 0x039ed8f5, 0x03a223ab, 0x00b2dd68, 0x01b25ec8, 0x02f6fcd7, 0x0038e83c}}}, + {X: Field{[10]uint32{0x02f8f6c0, 0x023ed705, 0x03c2d9b1, 0x0335aea1, 0x01fd92ce, 0x00f41193, 0x023c3137, 0x02087cef, 0x02b26b15, 0x00305408}}, Y: Field{[10]uint32{0x02136c2e, 0x01606f73, 0x02da9327, 0x0096a03f, 0x0065d57f, 0x00ba7e81, 0x03961e69, 0x00a10b81, 0x0370d94e, 0x001e3348}}}, + {X: Field{[10]uint32{0x036001d9, 0x01f69fb1, 0x01105e27, 0x032ed4b7, 0x00c6cc2b, 0x02a3e324, 0x01886a28, 0x00578042, 0x036bb6ae, 0x0002f537}}, Y: Field{[10]uint32{0x02f1446f, 0x021c9f63, 0x0387572f, 0x03736806, 0x03a6f6fa, 0x01b3b4b8, 0x00e50299, 0x032e596e, 0x01b2b0b4, 0x00126596}}}, + {X: Field{[10]uint32{0x03bc0b76, 0x0025c023, 0x03ed4b21, 0x02d3211a, 0x021e2d6e, 0x018bc603, 0x01f9b4f1, 0x02533949, 0x02328738, 0x0037f3b0}}, Y: Field{[10]uint32{0x01b4f92e, 0x03bc019a, 0x03b953f8, 0x0314cc90, 0x005a477e, 0x02842acf, 0x0318f059, 0x0239c670, 0x021bf4c8, 0x002bef1d}}}, + {X: Field{[10]uint32{0x01c94e54, 0x02c7fbfd, 0x008e1a9e, 0x00d5d939, 0x00b84739, 0x02e2d07f, 0x0259b005, 0x013eb88d, 0x004de3c9, 0x002c01db}}, Y: Field{[10]uint32{0x039c7d4f, 0x0288c203, 0x00551f3e, 0x0286e13a, 0x01fe17fd, 0x0120c282, 0x002ee5e4, 0x029a1dbd, 0x02553c55, 0x00387acc}}}, + {X: Field{[10]uint32{0x022d0c11, 0x0130fc36, 0x008be94b, 0x02c266fa, 0x020fe9eb, 0x03599e1e, 0x01e9fe33, 0x00957304, 0x029c17c4, 0x0002687f}}, Y: Field{[10]uint32{0x008e8379, 0x03d5a37a, 0x002b096a, 0x01b98b7c, 0x0325f6fd, 0x01eb472a, 0x023e1aac, 0x039ce5b8, 0x030999a8, 0x0039abbd}}}, + {X: Field{[10]uint32{0x01212899, 0x01ba7905, 0x030f2257, 0x01b9e658, 0x02e1d8b1, 0x01b19441, 0x0399b88b, 0x02f05766, 0x0134126b, 0x0007626a}}, Y: Field{[10]uint32{0x02f8f4eb, 0x02035669, 0x00fd7567, 0x0113b4db, 0x0137d646, 0x03657142, 0x01a79ef7, 0x001c883a, 0x025692db, 0x002df8c8}}}, + {X: Field{[10]uint32{0x000c7fa4, 0x02f90cdc, 0x000a6ac2, 0x015886f2, 0x02345469, 0x014c3b7e, 0x0062d4f7, 0x00de58f1, 0x0068b67b, 0x003183d7}}, Y: Field{[10]uint32{0x038a7e08, 0x01d6982f, 0x002c653f, 0x014d73b0, 0x03b5507b, 0x003724b4, 0x01b5a676, 0x03c38e86, 0x007197ff, 0x00223e2c}}}, + {X: Field{[10]uint32{0x02d9d949, 0x01f5b094, 0x02ec9e6b, 0x0073dda3, 0x03620576, 0x00c06f90, 0x036499ad, 0x009a646d, 0x036f0d9b, 0x0014b34a}}, Y: Field{[10]uint32{0x030ec835, 0x00084e00, 0x024aa138, 0x020bd51f, 0x02263563, 0x031e0ac9, 0x0111a3ea, 0x00d42283, 0x00661fa3, 0x003449f3}}}, + {X: Field{[10]uint32{0x0105dda9, 0x00d0091b, 0x03be920a, 0x02973d38, 0x01c21fbe, 0x0345aec6, 0x004f107f, 0x020d7fce, 0x019ea639, 0x00079112}}, Y: Field{[10]uint32{0x032d1f53, 0x0104b083, 0x0088d027, 0x008fa585, 0x018f8adf, 0x013f43c8, 0x00d12db7, 0x010be654, 0x00e90a90, 0x001071aa}}}, + {X: Field{[10]uint32{0x006861de, 0x009d50ff, 0x01cb1c67, 0x01595a81, 0x03984ecc, 0x01804dba, 0x0253bae3, 0x0252eb47, 0x00f0a563, 0x0004e451}}, Y: Field{[10]uint32{0x02d0742a, 0x03b4ed0b, 0x02dc1025, 0x0005ba87, 0x00964f3d, 0x03010aee, 0x03174ab6, 0x03a6c86f, 0x0337ff37, 0x001c0e51}}}, + {X: Field{[10]uint32{0x014a2280, 0x029d3e19, 0x02eb75a2, 0x0322db6d, 0x0134fe75, 0x018d39a1, 0x03cb9546, 0x037c6187, 0x002a2454, 0x0024d328}}, Y: Field{[10]uint32{0x03195761, 0x03e85736, 0x00be4375, 0x00e9af9e, 0x016865ce, 0x013f493c, 0x003caee7, 0x03f2802e, 0x0384266c, 0x001de7a5}}}, + {X: Field{[10]uint32{0x006a3be6, 0x034c9b62, 0x0279a7ac, 0x02a8b52d, 0x00af913b, 0x034d7b35, 0x01a8c329, 0x009165df, 0x007d9e1c, 0x002993c1}}, Y: Field{[10]uint32{0x01112b2b, 0x0052061e, 0x03581e60, 0x00263b15, 0x023210f3, 0x0091d677, 0x02145e3b, 0x03b5b440, 0x030ff3b4, 0x003847a0}}}, + {X: Field{[10]uint32{0x018757e1, 0x0150a3a0, 0x0034e2a1, 0x0312e2f5, 0x03cfcf45, 0x03c57fa3, 0x00820ccd, 0x02422236, 0x00bdcd62, 0x003871a2}}, Y: Field{[10]uint32{0x00c77f7d, 0x003dbc86, 0x03600d13, 0x00685499, 0x01a34e7d, 0x01deedd1, 0x03b8e00e, 0x03238004, 0x02e171e7, 0x002f0431}}}, + {X: Field{[10]uint32{0x00137358, 0x03baab1a, 0x01354c6d, 0x03b43655, 0x010ba2bd, 0x009ebf32, 0x0056de68, 0x01c3cb65, 0x00951231, 0x002c68c3}}, Y: Field{[10]uint32{0x004071f5, 0x01f5042c, 0x032985a1, 0x01fb7e86, 0x02a67879, 0x00100dcf, 0x00443469, 0x0072bf4e, 0x00abc16c, 0x00271da8}}}, + {X: Field{[10]uint32{0x02166e85, 0x024afab9, 0x034d0d68, 0x027da66b, 0x034c7cf9, 0x023d7894, 0x028ba235, 0x00a470d1, 0x03b5fbb0, 0x00093309}}, Y: Field{[10]uint32{0x039f71d5, 0x0287b633, 0x038ddd7a, 0x03388c4a, 0x02d51aab, 0x03c1da3f, 0x03c52e3f, 0x02e9099c, 0x01af2516, 0x003abcda}}}, + {X: Field{[10]uint32{0x008f6a57, 0x02aacb65, 0x00a92217, 0x01de136a, 0x02bacab5, 0x02f4c73b, 0x03e8921c, 0x03478bdf, 0x017a6166, 0x0022ed00}}, Y: Field{[10]uint32{0x008dc331, 0x00355ac2, 0x00c8a5c3, 0x01ca4f5e, 0x01a09cad, 0x0060a65b, 0x02e34fc7, 0x01a618d5, 0x000e6c47, 0x0032265d}}}, + {X: Field{[10]uint32{0x00497f6f, 0x02668cd8, 0x0368b0ec, 0x03d6949c, 0x01e6dafe, 0x002cc0ff, 0x02c17dc2, 0x03765b83, 0x03ddd82f, 0x0015762d}}, Y: Field{[10]uint32{0x03b8beca, 0x0211d8ad, 0x03657bbf, 0x00c347ff, 0x03f4f292, 0x0139cba7, 0x021709e4, 0x0359bd0d, 0x0111078b, 0x003f5891}}}, + {X: Field{[10]uint32{0x00c94df3, 0x038a148d, 0x028455db, 0x009bb11e, 0x03109d46, 0x00176f78, 0x01cbfe61, 0x00c6bd46, 0x01ef5a55, 0x0020aa8b}}, Y: Field{[10]uint32{0x01811511, 0x003b8e33, 0x007c4ebc, 0x03e81a85, 0x018d1e60, 0x0097eec9, 0x002df919, 0x028b9423, 0x03ea9f83, 0x00184582}}}, + {X: Field{[10]uint32{0x00f6f7f4, 0x010e33cb, 0x01636ad3, 0x02c30a38, 0x00804b03, 0x033ea466, 0x002cfbf3, 0x01ffe11f, 0x037cc6df, 0x000db049}}, Y: Field{[10]uint32{0x02fe4833, 0x0168a945, 0x03020aee, 0x018038cb, 0x03a7bb3b, 0x02963811, 0x015d821e, 0x0071d151, 0x03a274f8, 0x0008c13e}}}, + {X: Field{[10]uint32{0x00cd9119, 0x02215ab8, 0x0318c0eb, 0x0097e926, 0x02d57b89, 0x03002cd9, 0x02c9e860, 0x032b5f85, 0x01cc5b44, 0x003cddbf}}, Y: Field{[10]uint32{0x00a028cb, 0x039ea814, 0x006ac74f, 0x02b2f7d7, 0x01c3d0e7, 0x006b3f23, 0x009e3ef1, 0x03a07c12, 0x0132e4de, 0x000b5ab3}}}, + {X: Field{[10]uint32{0x01c5030b, 0x02ab3297, 0x03d1cc7a, 0x01b0e7b3, 0x0197150b, 0x001f4ea2, 0x02e8ecb9, 0x03a7d765, 0x00dc5372, 0x003a9384}}, Y: Field{[10]uint32{0x02d96ff5, 0x01999b0d, 0x003f9520, 0x0180513f, 0x0336d6be, 0x03f7ae25, 0x03486d29, 0x009aff0b, 0x02a393b6, 0x002c225b}}}, + {X: Field{[10]uint32{0x02fdeb08, 0x020728e9, 0x0191a0d1, 0x0067c6a7, 0x00a376ea, 0x006c512e, 0x03f0a2c7, 0x01285e74, 0x02b4b266, 0x001d3ce4}}, Y: Field{[10]uint32{0x009e1fc0, 0x03b820f8, 0x02636c6e, 0x00d901b4, 0x01c95230, 0x026d19cd, 0x02cef679, 0x01623d93, 0x0321428d, 0x0026f536}}}, + {X: Field{[10]uint32{0x014855eb, 0x0258bbf3, 0x02774ca6, 0x01ad62e0, 0x0111c13a, 0x00393208, 0x01a17daf, 0x01ddd290, 0x004259ba, 0x000e8db2}}, Y: Field{[10]uint32{0x00fa5e3c, 0x02574af8, 0x03f482f0, 0x02e91763, 0x01f35e46, 0x017bce79, 0x01720c71, 0x024a3359, 0x01ad9ede, 0x001b76b4}}}, + {X: Field{[10]uint32{0x0098c019, 0x01434a97, 0x0364deae, 0x00623cc9, 0x017635ef, 0x01ac5faa, 0x02739814, 0x02913c5b, 0x02ad5636, 0x00275dec}}, Y: Field{[10]uint32{0x02ee3eef, 0x030dc688, 0x03234f30, 0x033674bd, 0x03eb5936, 0x02cb6c25, 0x0392b8ac, 0x02186ae4, 0x0027a775, 0x0014cb74}}}, + {X: Field{[10]uint32{0x02a3c4ab, 0x02b9f9ef, 0x02c1b39a, 0x005fb91a, 0x000deb61, 0x00317c6f, 0x01168a0f, 0x00be0381, 0x02e9450e, 0x000b9d00}}, Y: Field{[10]uint32{0x0182fc3b, 0x020abeb3, 0x02b6034b, 0x0073c90b, 0x03cf8572, 0x02208404, 0x016b3fef, 0x03f8ae3b, 0x036b5606, 0x00107a3c}}}, + {X: Field{[10]uint32{0x033ebe6f, 0x030ddb94, 0x03320de0, 0x03c54c52, 0x006a6806, 0x023c0297, 0x0333d35e, 0x02d6f606, 0x03254ed0, 0x002bacb2}}, Y: Field{[10]uint32{0x01b9d59c, 0x03135a8a, 0x03d0b142, 0x003dda0c, 0x035d761c, 0x0320fcc5, 0x0028249f, 0x03e8b2cc, 0x02f52d7b, 0x001ae045}}}, + {X: Field{[10]uint32{0x00ca7895, 0x0330fd17, 0x03655fbb, 0x00eae8e8, 0x014cca66, 0x029e5e4a, 0x00adabe3, 0x00b25e80, 0x00bd55d6, 0x00321889}}, Y: Field{[10]uint32{0x011cc214, 0x00c8eef3, 0x00c21844, 0x014fea54, 0x001d8573, 0x0180276d, 0x0293adfa, 0x01e4d4d9, 0x03b7104f, 0x0028c668}}}, + {X: Field{[10]uint32{0x02efe561, 0x033eee8f, 0x03a66aac, 0x03814d2c, 0x00d53ddd, 0x03f739bd, 0x035a28bc, 0x01a8375e, 0x00cc2c57, 0x00074459}}, Y: Field{[10]uint32{0x004995a7, 0x0119c2ad, 0x0291c000, 0x022490fa, 0x01ec6009, 0x0311c391, 0x00ba6947, 0x03625ff3, 0x00deaa25, 0x002e1624}}}, + {X: Field{[10]uint32{0x0040e3c8, 0x00984629, 0x0393b92f, 0x01062f35, 0x035e7f0f, 0x03124f33, 0x036620a5, 0x0056d739, 0x02b413b9, 0x000ad53e}}, Y: Field{[10]uint32{0x039bf5d1, 0x03400593, 0x03cdb30a, 0x012c0bbf, 0x037a61ce, 0x037777cd, 0x01bdfefb, 0x02b635fa, 0x012556fe, 0x0022bfe3}}}, + {X: Field{[10]uint32{0x0329b340, 0x00ea9815, 0x0188709a, 0x0097cb7e, 0x03a9718c, 0x014f91b5, 0x01428ac8, 0x00a87d82, 0x0224a4e7, 0x0007c7ca}}, Y: Field{[10]uint32{0x00421cbd, 0x037c858b, 0x03170991, 0x00812c85, 0x020b6311, 0x01a1c40c, 0x0394f392, 0x002eeaf3, 0x00a4f492, 0x00011437}}}, + {X: Field{[10]uint32{0x00ebd4e5, 0x017b94b2, 0x03200f18, 0x0167c8bc, 0x0383fbc5, 0x0001f815, 0x025682c5, 0x01f93493, 0x018ee677, 0x00104bd9}}, Y: Field{[10]uint32{0x0171c8f4, 0x02de26d9, 0x00e32887, 0x038c9da4, 0x010c8399, 0x03e9932c, 0x030b3d7a, 0x0253fae4, 0x024a9d93, 0x0030b82d}}}, + {X: Field{[10]uint32{0x00f4912b, 0x007e1513, 0x011fbf56, 0x03e7e4b0, 0x0195102e, 0x019f8943, 0x02fec9a3, 0x02477a5d, 0x00b55677, 0x00212577}}, Y: Field{[10]uint32{0x02152443, 0x0270ca8a, 0x011c5e2a, 0x007d1938, 0x03542e51, 0x014ef693, 0x0263f191, 0x02093bd7, 0x01c57d3d, 0x00197e02}}}, + {X: Field{[10]uint32{0x0156cfde, 0x013fc216, 0x006ee1bb, 0x02a5e959, 0x030b4a18, 0x02172931, 0x0145b8bc, 0x032578ea, 0x01c0d841, 0x003e39ef}}, Y: Field{[10]uint32{0x00ed6d42, 0x03b7577c, 0x010111b4, 0x0358577d, 0x006d6660, 0x012e7f02, 0x009d28c2, 0x00d9e4df, 0x0083f93a, 0x0003342b}}}, + {X: Field{[10]uint32{0x02854c94, 0x00bdcc18, 0x0213164f, 0x0121db92, 0x008c8c56, 0x037ca2b5, 0x00767517, 0x0041c492, 0x025a4e4c, 0x0020c918}}, Y: Field{[10]uint32{0x039bfaeb, 0x03308c07, 0x003561f5, 0x032c902e, 0x01de65e2, 0x00189809, 0x01c7ec37, 0x00a09582, 0x01604992, 0x001d86c6}}}, + {X: Field{[10]uint32{0x03ca04d4, 0x03b61644, 0x032cf213, 0x0180c08f, 0x0216a8e1, 0x00d4f7c7, 0x00b6befd, 0x01f88abd, 0x01ff99f8, 0x0022c712}}, Y: Field{[10]uint32{0x03ad6c23, 0x006f78c8, 0x034c02ca, 0x01d5f89d, 0x006abbf9, 0x008b7894, 0x01cff728, 0x022194b4, 0x03d10e17, 0x00335144}}}, + {X: Field{[10]uint32{0x02f4f138, 0x02b2e0a5, 0x03790bca, 0x03ca1eba, 0x0259deac, 0x018c2d19, 0x0030e89d, 0x01360232, 0x01a120d2, 0x0038ab58}}, Y: Field{[10]uint32{0x02186291, 0x036f1bec, 0x0321abf5, 0x01a5800c, 0x02918497, 0x02b371f2, 0x02d29405, 0x01219f6a, 0x01dcfc1c, 0x00147346}}}, + {X: Field{[10]uint32{0x00c197a4, 0x038eb40d, 0x013ba9ea, 0x0339fd1e, 0x01e10356, 0x00c41580, 0x026aa915, 0x029bcc5a, 0x017ea9a9, 0x0003a373}}, Y: Field{[10]uint32{0x00ea6b5e, 0x0072a14e, 0x0295c2e6, 0x0249a9a1, 0x0195f698, 0x01c712b7, 0x02e2a99e, 0x02abd74c, 0x02d791f3, 0x00320d6e}}}, + {X: Field{[10]uint32{0x00f81233, 0x02423a6f, 0x03556e46, 0x02566c81, 0x00d8643f, 0x033ec171, 0x01bba690, 0x02e3bcd8, 0x00e35875, 0x003c2dd2}}, Y: Field{[10]uint32{0x01d6e908, 0x025006cb, 0x0023e91e, 0x02aea7fd, 0x01c1c0ae, 0x030a7298, 0x00765f60, 0x00e9ed9e, 0x02515d16, 0x001a8993}}}, + {X: Field{[10]uint32{0x01af3a87, 0x025f54ce, 0x017962ce, 0x02ba4faf, 0x03e6eef8, 0x03ff8908, 0x02dd305b, 0x016859d9, 0x016f0997, 0x0024037a}}, Y: Field{[10]uint32{0x01164478, 0x02a9c013, 0x01439650, 0x026c4848, 0x01f33f8e, 0x02f9a692, 0x031bf65d, 0x01628e8c, 0x02ecd9c0, 0x002252ac}}}, + {X: Field{[10]uint32{0x0188aa53, 0x0085283b, 0x00645a6e, 0x02879b4d, 0x01ce7fbd, 0x03a7b3e5, 0x030e3067, 0x008d081c, 0x0130d2ea, 0x00232f9e}}, Y: Field{[10]uint32{0x00186b83, 0x0377615c, 0x01ac9919, 0x01c3b01c, 0x0085092c, 0x008cb24d, 0x027f2c8e, 0x0299f6b8, 0x016bf875, 0x00219ec5}}}, + {X: Field{[10]uint32{0x0225e68d, 0x024bfb26, 0x003e69a2, 0x037f04d6, 0x00e79237, 0x0315c1b5, 0x01a65c0f, 0x03490e51, 0x01c95b35, 0x002832ec}}, Y: Field{[10]uint32{0x02047e4f, 0x0293ac60, 0x00a4055b, 0x00917a14, 0x013c6d70, 0x003701b8, 0x01c8a554, 0x006917e0, 0x01d13cd6, 0x002db5fa}}}, + {X: Field{[10]uint32{0x022463cf, 0x02912209, 0x03f4c832, 0x00f58ed1, 0x00d8050c, 0x017a61ff, 0x02d3bbe0, 0x0232d6a9, 0x0072a3fa, 0x000522ab}}, Y: Field{[10]uint32{0x037e4a61, 0x00ccc899, 0x000b292a, 0x02460963, 0x0372749f, 0x01bcb8ae, 0x0245f6d3, 0x0112156a, 0x0249a6e2, 0x001fca77}}}, + {X: Field{[10]uint32{0x02f3977f, 0x01f3ccd9, 0x018cefb0, 0x03e89688, 0x02c28616, 0x028838b9, 0x02caf7ef, 0x03f5b79b, 0x01073a1a, 0x000ee7fb}}, Y: Field{[10]uint32{0x02c65fc9, 0x01c00f04, 0x010fe0ac, 0x0284d23b, 0x034fa9e7, 0x025ab4f8, 0x030c936e, 0x03259287, 0x033c5084, 0x003c2a16}}}, + {X: Field{[10]uint32{0x023537aa, 0x0196b1f3, 0x020fecc5, 0x03ab7eff, 0x027c9cbc, 0x003e90c6, 0x03b443c3, 0x02ff6555, 0x00ed5228, 0x001f7917}}, Y: Field{[10]uint32{0x022686f0, 0x027377be, 0x00fc1199, 0x02298326, 0x0178e011, 0x0315418b, 0x03794f3a, 0x01c0cef2, 0x01376910, 0x00145777}}}, + {X: Field{[10]uint32{0x01913dd2, 0x03986c95, 0x015aa251, 0x0273ae87, 0x03c17cf9, 0x013cea15, 0x00102747, 0x03d58a60, 0x035a0534, 0x00273068}}, Y: Field{[10]uint32{0x02433ae5, 0x005a130f, 0x007ccc69, 0x010ebcaf, 0x03c653e2, 0x02fe384b, 0x0115da37, 0x0293e658, 0x01a8f30f, 0x003024b3}}}, + {X: Field{[10]uint32{0x02b52ec6, 0x002da41e, 0x00562092, 0x03ec8896, 0x0310fc71, 0x00a29ca0, 0x02ad7298, 0x00ee731d, 0x0168759b, 0x00360bc6}}, Y: Field{[10]uint32{0x0018c607, 0x002bd422, 0x03306c47, 0x020b72b0, 0x011b3720, 0x03872760, 0x0008f8ca, 0x00ec31ce, 0x02052698, 0x00153342}}}, + {X: Field{[10]uint32{0x007b7586, 0x0257ab6e, 0x02498241, 0x01221796, 0x0101f9c5, 0x00a46d83, 0x031bffcc, 0x016a5430, 0x014703d9, 0x0005b9aa}}, Y: Field{[10]uint32{0x03d8aafd, 0x00b15636, 0x03276f88, 0x02393b5c, 0x0080ff4c, 0x02a55f01, 0x010d3655, 0x01ae30b9, 0x0138581b, 0x000678a6}}}, + {X: Field{[10]uint32{0x035cd237, 0x0263948e, 0x03197ff0, 0x01395e85, 0x03ad57a7, 0x01df0d18, 0x02b46704, 0x013c9391, 0x02f300ee, 0x00341f9e}}, Y: Field{[10]uint32{0x035d0e20, 0x01bc9304, 0x00b1bc69, 0x037adbc8, 0x00d4d175, 0x03d86222, 0x031019be, 0x005959a6, 0x020f43c9, 0x003ffcd3}}}, + {X: Field{[10]uint32{0x01665380, 0x007d3679, 0x0301450a, 0x02e43260, 0x018ffe42, 0x00fea93a, 0x02118a34, 0x009ff18e, 0x00e56dc0, 0x000afd91}}, Y: Field{[10]uint32{0x02262ec5, 0x013e4956, 0x00477c92, 0x017d9ba9, 0x03eb84ca, 0x001ad57d, 0x0366fb7a, 0x007f17e3, 0x017577be, 0x002fbd70}}}, + {X: Field{[10]uint32{0x005cb045, 0x03b5493f, 0x03a3ab97, 0x01f97897, 0x027a8810, 0x010965f1, 0x00801014, 0x036e4d23, 0x01370db1, 0x001463c3}}, Y: Field{[10]uint32{0x014d7294, 0x0280e5da, 0x037418db, 0x03d37e2a, 0x006eb9f3, 0x0125d094, 0x03113a14, 0x03b4059b, 0x010ea4e9, 0x00372a1d}}}, + {X: Field{[10]uint32{0x030554c7, 0x031c975b, 0x0128e9a9, 0x02ea1e66, 0x0057bf54, 0x03087d89, 0x029893f8, 0x01d284af, 0x02b6c507, 0x0002f523}}, Y: Field{[10]uint32{0x0170f6e1, 0x03e9e1fd, 0x002d2e2c, 0x01418c9d, 0x00dd58f3, 0x01da7dce, 0x034bad90, 0x000c019d, 0x01a8cd8f, 0x0008029b}}}, + {X: Field{[10]uint32{0x031517e2, 0x02678d36, 0x031302aa, 0x01178f02, 0x00800c5b, 0x0193e870, 0x0336622b, 0x01a78da4, 0x013a8711, 0x00333236}}, Y: Field{[10]uint32{0x0101d845, 0x03f5b0db, 0x0305611e, 0x00252027, 0x00888373, 0x0115219a, 0x0211f1bc, 0x0191e3be, 0x03e4d45e, 0x000103b9}}}, + {X: Field{[10]uint32{0x03f6bd1a, 0x0149fc76, 0x03dab8f4, 0x00703f09, 0x0327e8d0, 0x01efa7a9, 0x01d2e9a2, 0x01e648c4, 0x012c7587, 0x0021bd8e}}, Y: Field{[10]uint32{0x010f7922, 0x02bcd340, 0x02dd3e7c, 0x0063f51a, 0x00571505, 0x0127b9a4, 0x02b1304c, 0x02a8a8f4, 0x0211b647, 0x001fb8a5}}}, + {X: Field{[10]uint32{0x03d7fdfd, 0x010760ed, 0x01c1bbfc, 0x0205b687, 0x019bb5a3, 0x00e1d47e, 0x03941053, 0x003e9b0d, 0x00e5927b, 0x00380d3d}}, Y: Field{[10]uint32{0x01a5f89d, 0x01239d50, 0x03b6ff22, 0x01eec9e7, 0x01e90256, 0x02fb72ae, 0x0282b05c, 0x010b904c, 0x02cb8382, 0x003727c0}}}, + {X: Field{[10]uint32{0x02b51045, 0x02d2731a, 0x01062837, 0x03bee1b8, 0x0075eadf, 0x02e09544, 0x023a66a0, 0x02fc017b, 0x02160a9d, 0x0023f0da}}, Y: Field{[10]uint32{0x03d200a6, 0x02526648, 0x0374a705, 0x009e7b27, 0x0266a885, 0x0001292f, 0x03d9957a, 0x02607485, 0x00409605, 0x0031fb8b}}}, + {X: Field{[10]uint32{0x033278e0, 0x002b7239, 0x0112d9c1, 0x037ad45f, 0x03997130, 0x019773f8, 0x0089b71e, 0x01f65b59, 0x00bc5407, 0x0035eed0}}, Y: Field{[10]uint32{0x028b0a4b, 0x0241d2a9, 0x01b468ce, 0x02f8ea2a, 0x025897c0, 0x025ad72d, 0x020706bd, 0x02eb916a, 0x03662f64, 0x00388258}}}, + {X: Field{[10]uint32{0x03bd2ac5, 0x0382a218, 0x007e0b8b, 0x020455ec, 0x003c8826, 0x00997390, 0x007d2d6c, 0x031c5045, 0x02858054, 0x0035cd5d}}, Y: Field{[10]uint32{0x01a9932b, 0x00baf961, 0x019c24f4, 0x0294e031, 0x01d2ce03, 0x03356013, 0x014099e9, 0x0108e709, 0x014b2fc9, 0x00253e1d}}}, + {X: Field{[10]uint32{0x018f8392, 0x02b836a1, 0x002b6669, 0x03f595f7, 0x013e720f, 0x034ff859, 0x01a7e99b, 0x00ffe9c7, 0x02aed935, 0x0016dbe2}}, Y: Field{[10]uint32{0x018f9089, 0x013d1cd0, 0x03c106e7, 0x0100c094, 0x03e49668, 0x0138917c, 0x02f85ec3, 0x01bbb7e9, 0x0105369c, 0x0013babf}}}, + {X: Field{[10]uint32{0x02222000, 0x01cb1390, 0x03b39f7b, 0x02806683, 0x02ab4076, 0x0313d221, 0x004b4f49, 0x00a7900e, 0x011267cc, 0x000e5113}}, Y: Field{[10]uint32{0x0283d771, 0x02806872, 0x010ba50e, 0x015c6ddf, 0x01329f30, 0x014e23ae, 0x0248adf3, 0x03b8b637, 0x002aaf90, 0x00197094}}}, + {X: Field{[10]uint32{0x030752c7, 0x021222c6, 0x010030a1, 0x02573b0b, 0x0216ebad, 0x02f26223, 0x019c4a7d, 0x02c28f05, 0x00dbf1ef, 0x0014f780}}, Y: Field{[10]uint32{0x01e2fbda, 0x0158c881, 0x026d33a5, 0x01993452, 0x0287dc61, 0x039ef146, 0x02d62285, 0x0177e9d4, 0x03d99947, 0x000ca3b2}}}, + {X: Field{[10]uint32{0x015ead39, 0x0052932f, 0x019e3d48, 0x033bad23, 0x03194d1b, 0x017ed80c, 0x000eef0d, 0x01c84f8a, 0x03af9b4f, 0x0001228e}}, Y: Field{[10]uint32{0x00334186, 0x026a2eca, 0x029ce709, 0x03b512a6, 0x037e749e, 0x03252c83, 0x006f7fbc, 0x00e14aef, 0x01c9e04a, 0x000ed2b2}}}, + {X: Field{[10]uint32{0x033ac541, 0x011c1f96, 0x02b6eb52, 0x001be85b, 0x03acccf4, 0x009f88b5, 0x00182370, 0x0073b4f1, 0x0230503c, 0x003c035d}}, Y: Field{[10]uint32{0x01ca95b5, 0x015c6dcc, 0x00404f47, 0x03ff6df4, 0x03c9e2bc, 0x03e3b564, 0x0254605d, 0x01d89ac4, 0x013fec17, 0x00268777}}}, + {X: Field{[10]uint32{0x0141eaac, 0x02099622, 0x01ee89a4, 0x03210205, 0x00c4f8ee, 0x03a30868, 0x01708582, 0x03ad6439, 0x01943ce7, 0x00387fc6}}, Y: Field{[10]uint32{0x03353b7e, 0x02d25cb5, 0x003dd003, 0x00faf0db, 0x01dbf27e, 0x022a95fa, 0x021b53d7, 0x01cb9b39, 0x0172746e, 0x0014a395}}}, + {X: Field{[10]uint32{0x0059bd49, 0x00afbc1d, 0x02c55256, 0x00116456, 0x0223b3aa, 0x01d709ef, 0x015a6652, 0x01d43838, 0x0020c48e, 0x00393c4f}}, Y: Field{[10]uint32{0x0287ca30, 0x008731db, 0x01ebca2d, 0x014cd8aa, 0x03639010, 0x01ec6eec, 0x026b9d6a, 0x007e668b, 0x02cec6e5, 0x002faf1f}}}, + {X: Field{[10]uint32{0x006f5f20, 0x035720e2, 0x03ea4d2d, 0x0012b1a4, 0x01598c6c, 0x0033c9c6, 0x003d3716, 0x019ba1c2, 0x00f3824b, 0x0038dba3}}, Y: Field{[10]uint32{0x0086c60b, 0x03432f68, 0x009f6c88, 0x03a193c9, 0x00f5be9f, 0x02069537, 0x03749104, 0x015f7cf6, 0x01938afe, 0x0013a838}}}, + {X: Field{[10]uint32{0x0246365f, 0x03478349, 0x0172a63d, 0x0373f7a5, 0x03797ff5, 0x0135f151, 0x00b4a068, 0x034beca7, 0x03193286, 0x0014787c}}, Y: Field{[10]uint32{0x02370e3a, 0x00b321d4, 0x01cb2ace, 0x03b6e519, 0x03b8640c, 0x03130f50, 0x0290d7e6, 0x03b318c6, 0x023c6f30, 0x002b11c3}}}, + {X: Field{[10]uint32{0x01a5fae0, 0x033de735, 0x0224829b, 0x01055b4a, 0x0022277f, 0x016f09b7, 0x01dadd64, 0x0139c981, 0x02a9c40d, 0x0023a0b6}}, Y: Field{[10]uint32{0x027c53ee, 0x03666e05, 0x024d733a, 0x0078ca84, 0x03b01b96, 0x00cf8a46, 0x0191dd72, 0x015ec8ac, 0x01fdbe90, 0x001fe055}}}, + {X: Field{[10]uint32{0x022c41e3, 0x006cd64f, 0x02595988, 0x01d1938a, 0x0038bea6, 0x0097e9e2, 0x03fd5e95, 0x01ea90d3, 0x0344273c, 0x001e7959}}, Y: Field{[10]uint32{0x0385ecab, 0x01b9f2fc, 0x03c33e80, 0x0083c9e2, 0x03eb786a, 0x011c48b5, 0x00ec764b, 0x03bee7c0, 0x01a3c50d, 0x00189422}}}, + {X: Field{[10]uint32{0x02743f79, 0x03b4fd98, 0x0206879d, 0x015bcbc7, 0x02af7fe1, 0x01389288, 0x01eb8918, 0x00655d47, 0x00e2d19c, 0x002a5f80}}, Y: Field{[10]uint32{0x018284a0, 0x029425f3, 0x03282944, 0x0177a9ce, 0x02f3f583, 0x0113fe47, 0x00726bbc, 0x00b124d5, 0x02bd8bcb, 0x0022075f}}}, + {X: Field{[10]uint32{0x03338542, 0x01c1c9c2, 0x00aa8f4a, 0x02fa3ece, 0x009bc52f, 0x001508de, 0x021c3fb4, 0x03d70c53, 0x014607bb, 0x000efc41}}, Y: Field{[10]uint32{0x024f6367, 0x010b1900, 0x022b6390, 0x01479611, 0x019a87ba, 0x03e10381, 0x0068e5fe, 0x02dffdb7, 0x006cfad5, 0x0039e256}}}, + {X: Field{[10]uint32{0x01d9cc5d, 0x012202d5, 0x03b2e01f, 0x033e10df, 0x0249cce0, 0x033cd01a, 0x034ee87e, 0x0077fce6, 0x00775879, 0x00200a5b}}, Y: Field{[10]uint32{0x00152dcb, 0x031376e4, 0x01284846, 0x00d2f6c2, 0x00902e48, 0x0022f145, 0x028753b7, 0x01e07f38, 0x02113c7f, 0x000ec1af}}}, + {X: Field{[10]uint32{0x00ba52fe, 0x02594188, 0x03023598, 0x013a1f95, 0x01b7b0fe, 0x016713fc, 0x029cc123, 0x036ff7da, 0x037aa3ee, 0x001238b2}}, Y: Field{[10]uint32{0x02e8ed1b, 0x01592c27, 0x00aac7ad, 0x00c4f3fd, 0x00a0a456, 0x01fdcbb8, 0x00411ba8, 0x026ef165, 0x017afa90, 0x00371e10}}}, + {X: Field{[10]uint32{0x03403d46, 0x02016a5c, 0x00b6b7b4, 0x00ba65cc, 0x0031a3db, 0x0061f5e7, 0x02b482aa, 0x015220a1, 0x011fcb77, 0x0037244d}}, Y: Field{[10]uint32{0x03adb1a3, 0x00ffe5bd, 0x01b2ffa9, 0x01713942, 0x03fc52e3, 0x03827e97, 0x0180ecd5, 0x0064ba30, 0x020d2d13, 0x003b5c83}}}, + {X: Field{[10]uint32{0x0190a670, 0x025cc67a, 0x02b9f017, 0x014d6c14, 0x013a2b26, 0x03ecd13a, 0x0105b151, 0x02d3ea73, 0x013948ce, 0x00174df0}}, Y: Field{[10]uint32{0x0174cb01, 0x01b54e86, 0x0348a185, 0x0349f279, 0x00b62e16, 0x02e5018d, 0x02832ad6, 0x02e9201e, 0x033c2590, 0x003de424}}}, + {X: Field{[10]uint32{0x03070aa2, 0x03b285dd, 0x00157708, 0x0096b67a, 0x0015c8e3, 0x02a123fd, 0x017eece0, 0x026c89bf, 0x02b0f8d6, 0x00262f2e}}, Y: Field{[10]uint32{0x02150212, 0x0379637a, 0x002060e2, 0x01266ec4, 0x03a08aa9, 0x008629fb, 0x02ffd615, 0x01521f9a, 0x03b3db71, 0x001d9c78}}}, + {X: Field{[10]uint32{0x0335b1c5, 0x0170448f, 0x03a188fa, 0x02340891, 0x0012ce30, 0x01640cd0, 0x0194384d, 0x0121bbe9, 0x01cb3de9, 0x001838b0}}, Y: Field{[10]uint32{0x0369d1bb, 0x010bcbe4, 0x008fa639, 0x021ada38, 0x024d58d0, 0x014efdc8, 0x03c11a38, 0x0319bd70, 0x031b9767, 0x001b79c0}}}, + {X: Field{[10]uint32{0x004885c7, 0x00fa9c8c, 0x03467d87, 0x02ecca7a, 0x01aaf513, 0x038be6f3, 0x03f2f702, 0x015add42, 0x02c5aa82, 0x002051c5}}, Y: Field{[10]uint32{0x03d297ee, 0x00290b71, 0x00b58630, 0x0324283f, 0x01eb7efa, 0x00d4cf7a, 0x03ba31e2, 0x0186244f, 0x00ee8fa9, 0x003b2991}}}, + {X: Field{[10]uint32{0x02f8de77, 0x024d3edc, 0x00e3be6d, 0x0218803a, 0x019fb715, 0x00d9a1b5, 0x0360f7b6, 0x004bbc2b, 0x033f1db4, 0x00095e27}}, Y: Field{[10]uint32{0x007de0ac, 0x0320c08b, 0x00ce9633, 0x00ee3163, 0x02863bc0, 0x022069a1, 0x034a6f77, 0x03886d5c, 0x039899d1, 0x00394889}}}, + {X: Field{[10]uint32{0x00f1bdcd, 0x02337ca8, 0x01527ef1, 0x0079e028, 0x0227f2a9, 0x00ff2da9, 0x02a87fdf, 0x03e39591, 0x000c98bf, 0x0014e0bd}}, Y: Field{[10]uint32{0x0232b502, 0x03a17192, 0x0079d9a1, 0x0360e31e, 0x0239c027, 0x02765e85, 0x0068ce13, 0x028e8768, 0x01dee41c, 0x0008c740}}}, + {X: Field{[10]uint32{0x011d1f2b, 0x00c8e2e8, 0x01dc6e57, 0x02cfc63a, 0x0167d9ec, 0x03d5f740, 0x02ab14d8, 0x03eb7ff2, 0x01209db2, 0x0011233f}}, Y: Field{[10]uint32{0x0166fea6, 0x0070c564, 0x005875a1, 0x019c2548, 0x032ba1bb, 0x0134a092, 0x01e8d181, 0x015b090d, 0x02e55a4f, 0x002eb638}}}, + {X: Field{[10]uint32{0x02e5653d, 0x02befa00, 0x02ab5667, 0x00f7ad84, 0x01f6c489, 0x01112efe, 0x012b69d5, 0x00cd7d40, 0x024b0fe6, 0x003645f2}}, Y: Field{[10]uint32{0x032bad17, 0x0216ebbc, 0x0033a4bb, 0x0154c40b, 0x00aeabc0, 0x005f397c, 0x0150f1ff, 0x025d589e, 0x024be6a4, 0x000ff7a6}}}, + {X: Field{[10]uint32{0x01ba8f72, 0x017c93a4, 0x00570db3, 0x0398293a, 0x031dd974, 0x038fbd60, 0x03de053b, 0x020eb5cc, 0x01f517a8, 0x00031fba}}, Y: Field{[10]uint32{0x039bba44, 0x03f41881, 0x01f3a2bf, 0x0134b7ce, 0x02e06a7e, 0x01a82338, 0x03d2a31c, 0x019efd95, 0x038d26d3, 0x00236ddc}}}, + {X: Field{[10]uint32{0x00d9a30b, 0x00217825, 0x00aed0b7, 0x02e28cab, 0x00819a77, 0x01f210ef, 0x022b1737, 0x035b781e, 0x019d983e, 0x0020fc28}}, Y: Field{[10]uint32{0x00afe6a7, 0x03d21d4b, 0x00e00c37, 0x011db55d, 0x00880acd, 0x0044ef98, 0x0348b636, 0x0111cf61, 0x029667be, 0x0034aacf}}}, + {X: Field{[10]uint32{0x0313989d, 0x02649dc8, 0x02f2e2b2, 0x01e41f14, 0x01596740, 0x01d360f7, 0x03b56bde, 0x01f10263, 0x026a6168, 0x003cfe2a}}, Y: Field{[10]uint32{0x01a109fb, 0x00e653d0, 0x03a21ad6, 0x0130da15, 0x00caa1b5, 0x02258d97, 0x0201ff9a, 0x000e8cb4, 0x009d0985, 0x000e9a43}}}, + {X: Field{[10]uint32{0x0032249e, 0x03b87fd4, 0x0316a283, 0x01010e11, 0x03914fdd, 0x03af2d39, 0x01d6e8b3, 0x035b1f65, 0x01caa30b, 0x00130684}}, Y: Field{[10]uint32{0x01424da0, 0x0394856e, 0x028809b7, 0x01f0dfe0, 0x006598f1, 0x0194ce74, 0x014c604e, 0x03bd0348, 0x00c94653, 0x0039f9c6}}}, + {X: Field{[10]uint32{0x02e5477d, 0x008b064f, 0x00f6c1d9, 0x03216872, 0x02529ebb, 0x0083cc60, 0x033bdb04, 0x0280614f, 0x01523419, 0x000a506e}}, Y: Field{[10]uint32{0x02628413, 0x00e4b74f, 0x02763864, 0x01442260, 0x0280482b, 0x03db07b7, 0x0205baa7, 0x019a82aa, 0x026c29ca, 0x000ddfc8}}}, + {X: Field{[10]uint32{0x0191a6a1, 0x00858761, 0x032c3384, 0x03bf8615, 0x004b5f25, 0x031c1e2b, 0x03b3eb18, 0x026be196, 0x0107aad4, 0x00027413}}, Y: Field{[10]uint32{0x0083cd34, 0x004ae88b, 0x03724f85, 0x03287523, 0x02779eb0, 0x0065912d, 0x01ae02d1, 0x02a27ed1, 0x028dec2c, 0x003d5ca5}}}, + {X: Field{[10]uint32{0x03d26e20, 0x011ac190, 0x03ef4a26, 0x01405def, 0x000d660c, 0x02988a09, 0x01a983c9, 0x028406e6, 0x0367c3c3, 0x0011007d}}, Y: Field{[10]uint32{0x02d4e342, 0x019a77a1, 0x00c0bb7d, 0x037bba60, 0x02999f8b, 0x03419a79, 0x00293091, 0x00453859, 0x02f78e1b, 0x001e54be}}}, + {X: Field{[10]uint32{0x03bba31f, 0x02dfc306, 0x03fa68d7, 0x0311eca0, 0x000ab8a1, 0x033218ea, 0x028665ba, 0x005f4ecc, 0x0027fc40, 0x00252dbd}}, Y: Field{[10]uint32{0x0340d85a, 0x028085f7, 0x01868e09, 0x0096a660, 0x019cbe77, 0x027741ea, 0x008199e9, 0x034b51bb, 0x027d35f0, 0x0004cd81}}}, + {X: Field{[10]uint32{0x01e7288f, 0x026d2893, 0x01445738, 0x027e4809, 0x03f2fba5, 0x039d55d2, 0x03b87cdd, 0x026ef518, 0x03a292c7, 0x00105886}}, Y: Field{[10]uint32{0x02cd3188, 0x0328b868, 0x0111b717, 0x001eca53, 0x033bc70a, 0x0399ee50, 0x0389951f, 0x002de204, 0x03d5b6f3, 0x000d54cd}}}, + {X: Field{[10]uint32{0x01a3594e, 0x030e67bf, 0x0173fc33, 0x02eaac53, 0x038a9b27, 0x0049a062, 0x0100dde6, 0x03074d56, 0x00156256, 0x002c20e1}}, Y: Field{[10]uint32{0x01a954a5, 0x01a11d71, 0x02c7dc5d, 0x034541a7, 0x03843ef8, 0x01a90a17, 0x00c5371b, 0x018b8a47, 0x019055b1, 0x000aabe4}}}, + {X: Field{[10]uint32{0x000dc9bd, 0x0249d19b, 0x008fb8ba, 0x004c3a11, 0x027d910f, 0x03330509, 0x029f4377, 0x023fa977, 0x014fef41, 0x00332668}}, Y: Field{[10]uint32{0x00536f28, 0x02baedc6, 0x017f5c77, 0x0364b3ff, 0x0222f7b3, 0x030326fc, 0x02f164ba, 0x0304b750, 0x03647c01, 0x0000b8c2}}}, + {X: Field{[10]uint32{0x01764e37, 0x01083741, 0x01d50a2f, 0x02d6e59f, 0x027b21d6, 0x03601763, 0x025d59c1, 0x00616355, 0x024adbec, 0x00234aec}}, Y: Field{[10]uint32{0x019f712f, 0x0052fe26, 0x005efe70, 0x0035a959, 0x02fc371d, 0x022824c8, 0x02537c70, 0x02bae9c4, 0x0330e78d, 0x003371b5}}}, + {X: Field{[10]uint32{0x010f7c9b, 0x008ce8f9, 0x0219203b, 0x01bc9d08, 0x00dbb94c, 0x01d438ca, 0x00a18717, 0x033d2b9b, 0x02de0f18, 0x0018f3b9}}, Y: Field{[10]uint32{0x02fdfeb8, 0x00d05cc7, 0x014367ca, 0x00c784d9, 0x00ce0050, 0x02a2160a, 0x0231b8f7, 0x008ce86d, 0x01adad2d, 0x002048c3}}}, + {X: Field{[10]uint32{0x02755a0c, 0x029679a4, 0x02114926, 0x01fee3d1, 0x02b2e4d0, 0x02e86776, 0x028d5cbf, 0x03740e69, 0x029c1dc6, 0x00188213}}, Y: Field{[10]uint32{0x01061a26, 0x03662dc1, 0x0302cc4b, 0x006bef37, 0x02cc9c7f, 0x02a09f82, 0x01c273aa, 0x006bc003, 0x00f462fb, 0x001b6fad}}}, + {X: Field{[10]uint32{0x018dd827, 0x01cd8957, 0x01238c27, 0x00ddf7de, 0x003f34a9, 0x01c1cab3, 0x02368ec1, 0x018a0053, 0x02baf65b, 0x00044303}}, Y: Field{[10]uint32{0x02e75c6d, 0x03fe16ca, 0x02ba9649, 0x01d0b6be, 0x030c3c3e, 0x00082e0e, 0x01d5865b, 0x01896258, 0x03166f23, 0x000692e9}}}, + {X: Field{[10]uint32{0x01c87e00, 0x01f279bc, 0x012b6892, 0x01748f34, 0x01baa50a, 0x02ae5d01, 0x007306cf, 0x008d2ea0, 0x011e50fb, 0x00361229}}, Y: Field{[10]uint32{0x016a4fd8, 0x01cadbea, 0x02adc16a, 0x027cf2de, 0x0151fdb4, 0x0265127b, 0x02e4b1cc, 0x00032132, 0x026288fb, 0x00276e6f}}}, + {X: Field{[10]uint32{0x014c2b5a, 0x03269f38, 0x0002396b, 0x0181606c, 0x02a8cf26, 0x02406e7b, 0x0147f3b3, 0x01aad149, 0x0093a270, 0x00108c46}}, Y: Field{[10]uint32{0x024165bc, 0x034f4b2b, 0x00d70daa, 0x0073a7bd, 0x03d6129a, 0x01d82691, 0x01c2a9f7, 0x0088b066, 0x02db9ba6, 0x001d43e1}}}, + {X: Field{[10]uint32{0x0034d37f, 0x02bb038e, 0x037419fd, 0x00797c5f, 0x026b252f, 0x01f2878c, 0x03454967, 0x037104cb, 0x00ee471a, 0x00110e71}}, Y: Field{[10]uint32{0x01897e87, 0x0003b95d, 0x0119581a, 0x0196ce16, 0x03617c95, 0x03e1be4e, 0x0316ab66, 0x030f798b, 0x032c22c5, 0x002f5d70}}}, + {X: Field{[10]uint32{0x0113b053, 0x02b2bfb0, 0x03bbf36b, 0x01e6601b, 0x02e02e9e, 0x0314bf6d, 0x00b0bbd8, 0x00c76992, 0x03dab192, 0x00137f38}}, Y: Field{[10]uint32{0x03042c3a, 0x01168a84, 0x0342f69d, 0x01650bfa, 0x029d647c, 0x011f3068, 0x00a1c3e1, 0x01fee910, 0x031f4b72, 0x0037a317}}}, + {X: Field{[10]uint32{0x0117dc9d, 0x03bfe6e0, 0x009efcdd, 0x03cfb1b6, 0x009d0ba6, 0x0207db05, 0x00f91582, 0x009cdbd5, 0x032ee8e7, 0x000eee8a}}, Y: Field{[10]uint32{0x0216ab24, 0x02428c36, 0x00d2baf6, 0x021a9a98, 0x036f9a21, 0x02bdb283, 0x0293f947, 0x01f95b97, 0x02747789, 0x003fc21c}}}, + {X: Field{[10]uint32{0x0317deae, 0x01f59f60, 0x0059527f, 0x003d3eec, 0x00e239a0, 0x03d56ac3, 0x02d92ff0, 0x031ac920, 0x0243037b, 0x0028bfb7}}, Y: Field{[10]uint32{0x01869ed4, 0x00d8e351, 0x012da98c, 0x0058bc61, 0x000f7801, 0x0033808b, 0x008e195d, 0x03ff5fbc, 0x010843be, 0x000a9e45}}}, + {X: Field{[10]uint32{0x004bc0a3, 0x00730f8c, 0x021852cb, 0x002610c2, 0x01b3d64d, 0x01cdc021, 0x01aa8e67, 0x03ad3128, 0x022ff503, 0x00088713}}, Y: Field{[10]uint32{0x01b7ae41, 0x00477465, 0x02de199e, 0x00a52898, 0x01a70a79, 0x034fe1d9, 0x024fd70a, 0x0139e704, 0x031b0f95, 0x0030f0de}}}, + {X: Field{[10]uint32{0x00740ed0, 0x03bcf145, 0x00bfca58, 0x02f55679, 0x02f909c8, 0x026e44c1, 0x02f945b4, 0x02e81432, 0x0380f7e4, 0x002830cb}}, Y: Field{[10]uint32{0x02f9562a, 0x0286244d, 0x02c9041b, 0x0318e290, 0x01966aa1, 0x033b5172, 0x01e4cfbd, 0x011c0107, 0x030146ab, 0x0034fae3}}}, + {X: Field{[10]uint32{0x00da85c6, 0x01e6f906, 0x02aa1dff, 0x02573258, 0x010bf333, 0x01dd0204, 0x01e1ca75, 0x0189fc00, 0x0218b4fe, 0x001d8b9e}}, Y: Field{[10]uint32{0x00f51ec5, 0x024c8d31, 0x02b93dce, 0x02552bd5, 0x025875f7, 0x01156e10, 0x00a743c3, 0x00703d3e, 0x03465046, 0x002837c3}}}, + {X: Field{[10]uint32{0x013a29f0, 0x018cb12e, 0x03561b8d, 0x00d0451b, 0x0378389f, 0x010cdec7, 0x02cfbe40, 0x032bcf55, 0x0135cd95, 0x000bc0b6}}, Y: Field{[10]uint32{0x00f44569, 0x013a49c6, 0x0287b0e7, 0x010704bf, 0x0209c454, 0x008fc68c, 0x0008872b, 0x0242d3e0, 0x00d823f1, 0x0005cd1c}}}, + {X: Field{[10]uint32{0x03eab212, 0x0398e4b9, 0x01612314, 0x01b893bc, 0x01c5877d, 0x03f2628e, 0x01adbd59, 0x005b7c71, 0x03d72eb8, 0x00327e1d}}, Y: Field{[10]uint32{0x02067c4c, 0x0216391a, 0x03ad10b0, 0x0149d52c, 0x0188bb00, 0x03f2aa7d, 0x01a52b58, 0x01fbb169, 0x011788cf, 0x000533a6}}}, + {X: Field{[10]uint32{0x00baa172, 0x03485e68, 0x005df239, 0x008eb9db, 0x02d6dd1c, 0x032fd743, 0x03296df6, 0x0172de9b, 0x036918a0, 0x0033137f}}, Y: Field{[10]uint32{0x014a4dc6, 0x01a51219, 0x00cd5b78, 0x02ead4e4, 0x02e4dda0, 0x018ed295, 0x01b06506, 0x005d4098, 0x00b1b847, 0x0007350e}}}, + {X: Field{[10]uint32{0x03cbfaa1, 0x03b20a3b, 0x02a5bccc, 0x02299591, 0x01ca015a, 0x01e2b354, 0x0010219a, 0x01c4e8a7, 0x034b3ed2, 0x003eaab1}}, Y: Field{[10]uint32{0x0130d934, 0x03d9869f, 0x00ecbf8b, 0x03244fef, 0x01b2e74c, 0x03f9e552, 0x025c46b7, 0x03b036f5, 0x003bdcc2, 0x002b72b5}}}, + {X: Field{[10]uint32{0x00fdbf46, 0x02bbf111, 0x02480dd0, 0x03c8f468, 0x028a0025, 0x016f9b03, 0x01444b73, 0x026f4368, 0x02c930fa, 0x0005c4d5}}, Y: Field{[10]uint32{0x009bce3f, 0x00526ee7, 0x0214eb2e, 0x0134bb8a, 0x0062e246, 0x008e6395, 0x004361ed, 0x03ee76ad, 0x02dc991e, 0x001dc3a7}}}, + {X: Field{[10]uint32{0x01680214, 0x00401ef9, 0x01b43b64, 0x01e81ea0, 0x01c05501, 0x017e7ec6, 0x01491af5, 0x00dd8f4b, 0x016ae047, 0x00024cfd}}, Y: Field{[10]uint32{0x00ea76ad, 0x02a72ae8, 0x02ba9f85, 0x03fe4ec7, 0x01ad1d70, 0x01253950, 0x01ea647f, 0x036d8d20, 0x0047481c, 0x00198167}}}, + {X: Field{[10]uint32{0x03bb6b34, 0x0307f816, 0x02cf664a, 0x01d87b06, 0x018a397f, 0x02f27272, 0x02446910, 0x02b4df5f, 0x0322b182, 0x00028c03}}, Y: Field{[10]uint32{0x0033593d, 0x00aead15, 0x035007b4, 0x011188a2, 0x01684abe, 0x01c8bc85, 0x00de2694, 0x01d2e518, 0x03fca909, 0x002f5bcb}}}, + {X: Field{[10]uint32{0x038fe1ea, 0x01b8fb2b, 0x03fd685d, 0x02d54a38, 0x00878b79, 0x03b9358c, 0x03c1d62d, 0x004d57e5, 0x03ed6e90, 0x003f1795}}, Y: Field{[10]uint32{0x035bab01, 0x02a6cacb, 0x01d498c4, 0x0124d172, 0x02bc7c85, 0x02141efb, 0x018b1b56, 0x032ee796, 0x027a6c21, 0x00044884}}}, + {X: Field{[10]uint32{0x0231ef3d, 0x0114bed4, 0x00bfff3f, 0x015ba8d0, 0x030899e9, 0x02406548, 0x00721c19, 0x02047ef5, 0x00e27a64, 0x00168bd0}}, Y: Field{[10]uint32{0x0093d547, 0x0048b4c8, 0x0086c20a, 0x00e989e6, 0x01d8c4a5, 0x0275c70c, 0x0206d263, 0x0231e5d2, 0x015d1257, 0x001acafe}}}, + {X: Field{[10]uint32{0x00f2084f, 0x005e6d59, 0x033106f9, 0x01f63747, 0x02fb1575, 0x01f5fbd8, 0x036610d6, 0x026716f9, 0x0333df0b, 0x00165e0c}}, Y: Field{[10]uint32{0x025b7f5a, 0x01d9a51f, 0x00c4fa76, 0x025f0d3d, 0x037d309d, 0x029d60fa, 0x03f4623b, 0x005c3204, 0x0280dd3d, 0x003caa7a}}}, + {X: Field{[10]uint32{0x03672d95, 0x01b6c7cd, 0x00a08154, 0x035d329f, 0x01a1c8be, 0x01e8a70b, 0x0372bb38, 0x00ff21cf, 0x01246b51, 0x00033d84}}, Y: Field{[10]uint32{0x038c70ee, 0x03deaf0b, 0x007873ef, 0x03d0b81f, 0x021e182c, 0x0187ec3f, 0x011d1a56, 0x00110e7b, 0x0076697f, 0x00348f0f}}}, + {X: Field{[10]uint32{0x03fe7d52, 0x012c5ccb, 0x017baac1, 0x032581a5, 0x031cb871, 0x0018fe3a, 0x02eb7eb8, 0x00520389, 0x0305133a, 0x003b7453}}, Y: Field{[10]uint32{0x00b1b70a, 0x017e358d, 0x0392a61b, 0x00203291, 0x02ee6033, 0x011709d3, 0x01b3aa84, 0x0354a130, 0x0280d295, 0x0035a0bc}}}, + {X: Field{[10]uint32{0x001a1713, 0x036571ff, 0x000d175f, 0x00c2977a, 0x0033cb8d, 0x0325649b, 0x026e7902, 0x022bce2c, 0x00e90cdc, 0x003e6c3f}}, Y: Field{[10]uint32{0x02a3e6ac, 0x0148903c, 0x022b5d47, 0x022f5bf3, 0x01df958b, 0x0233d2a2, 0x01083cdc, 0x018f5c60, 0x01f6f3d1, 0x003b1fa3}}}, + {X: Field{[10]uint32{0x0346a3b7, 0x02ff4905, 0x014e4e46, 0x0057c1c2, 0x02d9ea43, 0x0105f159, 0x03069817, 0x01fd5e24, 0x01995418, 0x002ba419}}, Y: Field{[10]uint32{0x031a129b, 0x01515fc8, 0x01b10677, 0x01cc16f9, 0x01173355, 0x02811c27, 0x01006ff2, 0x00cc4fa7, 0x01adc09d, 0x0008906f}}}, + {X: Field{[10]uint32{0x03d956e9, 0x02cd4391, 0x03540c54, 0x03cd1041, 0x03f68fe9, 0x01606b8e, 0x02134cde, 0x00bdefd7, 0x00007649, 0x00157c3e}}, Y: Field{[10]uint32{0x033956ff, 0x029232f0, 0x00b982c8, 0x02d71c33, 0x01e258dc, 0x017fa60d, 0x03b4b8a3, 0x0222877e, 0x011de684, 0x0008a822}}}, + {X: Field{[10]uint32{0x01663bbb, 0x00665306, 0x010c1b87, 0x03131147, 0x006cb7e3, 0x03e1991f, 0x0123bb1d, 0x010388c6, 0x030686fb, 0x0024322a}}, Y: Field{[10]uint32{0x00c80ab4, 0x01ef8fff, 0x02463e3b, 0x00625323, 0x01cb30d7, 0x03105e5e, 0x03bb2c50, 0x03acb71b, 0x00d9570e, 0x00371d23}}}, + {X: Field{[10]uint32{0x00a4c694, 0x00b89f21, 0x02b604bb, 0x01aeb027, 0x013e476d, 0x01baa127, 0x0268e735, 0x03aee7ec, 0x002d6b21, 0x0032fd1f}}, Y: Field{[10]uint32{0x02bb2873, 0x021bee9e, 0x001cf16e, 0x037f6ac2, 0x01416ed9, 0x01658908, 0x02bf8bbe, 0x022528e6, 0x03e68042, 0x003c0a23}}}, + {X: Field{[10]uint32{0x0111fe80, 0x027f3a5f, 0x03b1637e, 0x02c91950, 0x00d8f1bf, 0x005235ce, 0x03ff7582, 0x01a2c823, 0x005fc18b, 0x001f0c22}}, Y: Field{[10]uint32{0x00013f2f, 0x01471d8f, 0x0221c7ea, 0x006298f9, 0x0052c067, 0x03221b84, 0x02c6d378, 0x007056c9, 0x00b931a1, 0x000f8b47}}}, + {X: Field{[10]uint32{0x026d7753, 0x0050cefd, 0x033e64f1, 0x01c8dfcc, 0x03e137c7, 0x03a481f6, 0x02a9da9d, 0x032e8374, 0x01190d1b, 0x002b5852}}, Y: Field{[10]uint32{0x0239753d, 0x027807b4, 0x03d0baad, 0x035c3b14, 0x00190b72, 0x02e9d66d, 0x02046192, 0x02862275, 0x018b3512, 0x003f2ba8}}}, + {X: Field{[10]uint32{0x025e29a2, 0x01729f13, 0x01715a29, 0x01c68e4e, 0x00a7bc41, 0x03b4cd6d, 0x02b50a81, 0x027055c2, 0x001baf8c, 0x00237dc1}}, Y: Field{[10]uint32{0x01ce02e7, 0x0192e92f, 0x01a1399b, 0x030e1286, 0x00e12eab, 0x01f771b7, 0x0166b24c, 0x01ef77cd, 0x02438267, 0x0003a24b}}}, + {X: Field{[10]uint32{0x00fdadd6, 0x009e010b, 0x00fbf2a1, 0x01ddf762, 0x02217f4e, 0x0306ed7d, 0x0351891a, 0x01483a69, 0x025761c8, 0x0027d307}}, Y: Field{[10]uint32{0x027d0f50, 0x02e583d3, 0x008609d9, 0x018e7cf5, 0x02ed4b69, 0x00f84b1e, 0x035831eb, 0x03a22430, 0x00adc6ce, 0x003f6884}}}, + {X: Field{[10]uint32{0x0115acbf, 0x02332ae9, 0x0147c2ee, 0x0061d496, 0x03174de6, 0x00778c24, 0x013bacf9, 0x01c28b02, 0x00dd23ac, 0x00290dbd}}, Y: Field{[10]uint32{0x0219afb9, 0x015fbfdf, 0x020ec9fe, 0x02cc1f51, 0x005879e8, 0x009ef04a, 0x039a4509, 0x016e6a50, 0x01d92a61, 0x00303a76}}}, + {X: Field{[10]uint32{0x006f1930, 0x037e882e, 0x007d567b, 0x019f1655, 0x0037497c, 0x000e5a57, 0x018627c5, 0x010f645b, 0x01166997, 0x0028e3bb}}, Y: Field{[10]uint32{0x01d9d7fd, 0x03951512, 0x00c18bb0, 0x02c52105, 0x013be89b, 0x03c9b247, 0x035b5fe3, 0x00ed6b26, 0x02d6effc, 0x001b8f8f}}}, + {X: Field{[10]uint32{0x02fbf3d6, 0x0187aeb8, 0x02586833, 0x039623a4, 0x000b6f1d, 0x01ac3c93, 0x03659e33, 0x010e87eb, 0x00d20d40, 0x0017d164}}, Y: Field{[10]uint32{0x015197db, 0x0242f801, 0x00466158, 0x02dc0090, 0x02ccc833, 0x01939ffd, 0x001af117, 0x03bb00fb, 0x0273042c, 0x00094302}}}, + {X: Field{[10]uint32{0x00cf56c0, 0x0147d10d, 0x03c551be, 0x031dcf3a, 0x03d52bea, 0x03dca0a8, 0x02d16ff8, 0x02e401a3, 0x020dc6eb, 0x001d5961}}, Y: Field{[10]uint32{0x02e24c26, 0x01187c2e, 0x01346c32, 0x01ff8078, 0x039b8468, 0x0275fcfa, 0x028ad7de, 0x03516150, 0x00be526e, 0x0012d5bb}}}, + {X: Field{[10]uint32{0x01a9320c, 0x01ed43e5, 0x035dec53, 0x010afa02, 0x02772927, 0x00800e96, 0x03ad50f0, 0x03bc072a, 0x03ce3a56, 0x000f9f1f}}, Y: Field{[10]uint32{0x03dbfaf1, 0x0349c8a4, 0x03914a32, 0x00b31256, 0x01d5dc34, 0x0267ea76, 0x03789045, 0x01c447cd, 0x00b7926e, 0x00263365}}}, + {X: Field{[10]uint32{0x03cda208, 0x001c9d2d, 0x035522eb, 0x003dabd5, 0x032ac91a, 0x031318aa, 0x031aaf5e, 0x033e12af, 0x005714ce, 0x0004c7ad}}, Y: Field{[10]uint32{0x0320839e, 0x03f625f8, 0x0303127b, 0x004d8344, 0x029b017a, 0x02bb156a, 0x0061393f, 0x0098111b, 0x014ff051, 0x002a4ebb}}}, + {X: Field{[10]uint32{0x02a11ec8, 0x037493a8, 0x026f1637, 0x0380b6cf, 0x02a98e68, 0x0312d7d0, 0x008bff69, 0x018f5c0e, 0x0201e469, 0x000dc6f1}}, Y: Field{[10]uint32{0x01f84622, 0x02765292, 0x03dd37b3, 0x03c4ea9a, 0x0121bbc7, 0x006e249a, 0x0385238c, 0x028906a5, 0x02f1932f, 0x0038befb}}}, + {X: Field{[10]uint32{0x02e47d6d, 0x03d41172, 0x002371bc, 0x00d3910c, 0x01b4d459, 0x00b11461, 0x0136bc20, 0x01cfa280, 0x030492ca, 0x0011dc36}}, Y: Field{[10]uint32{0x0141ec22, 0x03bbcd8b, 0x0390af1a, 0x01ed2c75, 0x0399a92f, 0x00877d2f, 0x037e080d, 0x03641aad, 0x008c25b1, 0x00386bdd}}}, + {X: Field{[10]uint32{0x0194bfff, 0x00a04b25, 0x02fe0da8, 0x00d081e1, 0x01e8e2ae, 0x01f38ebd, 0x01dbae16, 0x036d5dd6, 0x02435af5, 0x002cc6a1}}, Y: Field{[10]uint32{0x009aa4a2, 0x010ef8f0, 0x020cf3c7, 0x0341547f, 0x00f5aaab, 0x0216c1a9, 0x02a85a25, 0x03266aa5, 0x025e860d, 0x000de4d0}}}, + {X: Field{[10]uint32{0x013631f4, 0x00b9996f, 0x019bf09b, 0x02f5f472, 0x00a94121, 0x018670dd, 0x01fe6dd1, 0x009407f7, 0x0052084a, 0x003817bb}}, Y: Field{[10]uint32{0x03b8e622, 0x031589bf, 0x01ed4f6c, 0x01ddb49a, 0x014d883d, 0x035d0909, 0x0224ea4b, 0x03e01a66, 0x03172122, 0x00300457}}}, + {X: Field{[10]uint32{0x0173d5c8, 0x0228c94a, 0x0335ce4d, 0x03beffce, 0x03e57810, 0x025f4fd5, 0x0384305d, 0x001f4d16, 0x00840ee4, 0x00395777}}, Y: Field{[10]uint32{0x027ee677, 0x03a24d90, 0x011a1026, 0x01abe833, 0x00abb87a, 0x023aec4f, 0x003e4257, 0x018505f9, 0x03b5b0fa, 0x001c7dde}}}, + {X: Field{[10]uint32{0x02cd788f, 0x03748fb7, 0x01f0ed46, 0x01dbc9aa, 0x021aabbe, 0x014074cf, 0x00bf3ea5, 0x02a6a8a1, 0x02b1a5c8, 0x003b5eda}}, Y: Field{[10]uint32{0x010db63e, 0x00cf8047, 0x030d3772, 0x0363145d, 0x03824027, 0x037f60be, 0x0054a4bc, 0x02988061, 0x035419d1, 0x0008a02e}}}, + {X: Field{[10]uint32{0x0090e79a, 0x0019c520, 0x02001f96, 0x0078893c, 0x01ce5cb7, 0x03353b9a, 0x03a3329a, 0x0362bb84, 0x01fc3da4, 0x003538cc}}, Y: Field{[10]uint32{0x015e10d6, 0x02385619, 0x00c521ae, 0x01441b42, 0x0277821e, 0x01aa2044, 0x00a6b42d, 0x0334c27d, 0x01aa2f63, 0x00225450}}}, + {X: Field{[10]uint32{0x016d4417, 0x022d21e2, 0x03d54d64, 0x02384834, 0x03265471, 0x036054b1, 0x002545ab, 0x007ff99a, 0x020ea8ec, 0x0013c2b6}}, Y: Field{[10]uint32{0x035aa591, 0x03b1fd64, 0x00cd4dc5, 0x01515b22, 0x0320aaff, 0x02a7eebd, 0x035acf55, 0x02ad191f, 0x01ac6026, 0x002980ee}}}, + {X: Field{[10]uint32{0x00fdca84, 0x03ab8f80, 0x031b7543, 0x0015041a, 0x00a884cc, 0x0037dd4a, 0x0086a9d2, 0x03bb893c, 0x0141b08e, 0x0028b44d}}, Y: Field{[10]uint32{0x00803a45, 0x000edfd7, 0x002d1745, 0x00d61780, 0x024bb67c, 0x03f58172, 0x03a52497, 0x01ae4549, 0x0166294d, 0x0016b02c}}}, + {X: Field{[10]uint32{0x01b6c8a4, 0x03a048ed, 0x0008f64f, 0x00880b38, 0x03cbfc47, 0x03ea517f, 0x00887fda, 0x001164ae, 0x0120014a, 0x00013075}}, Y: Field{[10]uint32{0x00ed738d, 0x00f8cd14, 0x026083bb, 0x03d0e542, 0x00ebcebf, 0x00d23bf5, 0x0106597f, 0x0246395f, 0x028017b7, 0x00090f10}}}, + {X: Field{[10]uint32{0x03c54390, 0x025c2a4a, 0x02c551a5, 0x01f7fcca, 0x00fc2f5b, 0x008c172c, 0x035b8e6b, 0x03a6d330, 0x01a67d13, 0x00017e79}}, Y: Field{[10]uint32{0x0395ff6f, 0x02550edc, 0x0276b30d, 0x02dc9bcc, 0x0085eb0c, 0x022fb7c0, 0x005833ce, 0x017df6f1, 0x02379696, 0x001d2021}}}, + {X: Field{[10]uint32{0x00954575, 0x00d2f282, 0x01286985, 0x025cd293, 0x004447c2, 0x0038a6ad, 0x02d28a88, 0x006c5e02, 0x03809538, 0x0035db1b}}, Y: Field{[10]uint32{0x0161b27b, 0x021cc029, 0x0049859c, 0x03c49def, 0x02aa8273, 0x00390a77, 0x02051789, 0x03806984, 0x03f86b30, 0x00112db0}}}, + {X: Field{[10]uint32{0x01df3344, 0x022816f6, 0x00658e7a, 0x0074036b, 0x006ad19f, 0x01619286, 0x03a9eaeb, 0x01d6bdc0, 0x029ff787, 0x001d5ddc}}, Y: Field{[10]uint32{0x030afec9, 0x030fe64b, 0x0134532e, 0x02c4b9c1, 0x033fa7c5, 0x0239fb3c, 0x012f8229, 0x02a94e4b, 0x0116ccea, 0x001ad466}}}, + {X: Field{[10]uint32{0x02dc17db, 0x0245b163, 0x03a67fca, 0x022c0dae, 0x0278700c, 0x01ab6a64, 0x03194258, 0x0012eb42, 0x032b457f, 0x00140de3}}, Y: Field{[10]uint32{0x02273fc1, 0x028f0bdd, 0x00ad05fe, 0x0193e0bf, 0x03269573, 0x0314ce33, 0x01bf40ba, 0x0335246b, 0x011c26bd, 0x0032f451}}}, + {X: Field{[10]uint32{0x009ba86c, 0x00e2fa33, 0x02b50b91, 0x01138f58, 0x027606eb, 0x0301e3fc, 0x0384ba0e, 0x01458098, 0x00686436, 0x000dd237}}, Y: Field{[10]uint32{0x0211d709, 0x020f2659, 0x01271965, 0x02074d43, 0x016e7bfb, 0x038060a3, 0x01005a04, 0x02ba7377, 0x0014f624, 0x001b0139}}}, + {X: Field{[10]uint32{0x03eea53b, 0x03174715, 0x014047f9, 0x010b417f, 0x013402f3, 0x027ab1ca, 0x01eaea44, 0x035587ef, 0x01be8ea8, 0x002c8e96}}, Y: Field{[10]uint32{0x006dfb9b, 0x03c3a110, 0x019c42fe, 0x03fdc0bb, 0x0295d40e, 0x00fd7e86, 0x03c359c8, 0x016e0b38, 0x0068f2d3, 0x002fa91f}}}, + {X: Field{[10]uint32{0x02a64770, 0x035c7045, 0x00b49ebf, 0x001a4973, 0x039538fc, 0x01c074ae, 0x005f4435, 0x0296f817, 0x01e87b42, 0x00392d14}}, Y: Field{[10]uint32{0x03156da4, 0x019eddcb, 0x001e9e14, 0x029a2a42, 0x014cb261, 0x02de6e61, 0x02fa86b2, 0x001d2523, 0x02699a79, 0x000abe11}}}, + {X: Field{[10]uint32{0x02dff165, 0x03dd5225, 0x01a1242f, 0x005593cf, 0x01de74a2, 0x0194777e, 0x02e671e8, 0x02c218d1, 0x02ec65b8, 0x002192b1}}, Y: Field{[10]uint32{0x031a8730, 0x03ad8009, 0x03188d68, 0x000b7ea4, 0x01b2cbf9, 0x0234afaf, 0x00a5103c, 0x02155647, 0x00a77ab4, 0x003cd5ce}}}, + {X: Field{[10]uint32{0x002ecab0, 0x009c95fc, 0x02ac4ecb, 0x035e6815, 0x00fd36c5, 0x01990e19, 0x00090225, 0x018f66de, 0x023da6a8, 0x002df412}}, Y: Field{[10]uint32{0x0383b0c1, 0x01fbdc1b, 0x031a15ec, 0x02f9d4c3, 0x001519ab, 0x039a81f0, 0x01e4e3bf, 0x03708f96, 0x034c6ba5, 0x00331018}}}, + {X: Field{[10]uint32{0x014c1a0e, 0x023f289c, 0x0044c7ca, 0x00c43af2, 0x03bd6e25, 0x02a0ddf3, 0x020de0c4, 0x03776080, 0x02f9b51e, 0x00377f06}}, Y: Field{[10]uint32{0x03fe3951, 0x0259838f, 0x01ad957b, 0x03d368f8, 0x01c30f23, 0x00976aae, 0x02d9f54a, 0x0313a2c8, 0x008c1742, 0x00033ddf}}}, + {X: Field{[10]uint32{0x011fcbe3, 0x016d1f35, 0x03c30ea7, 0x023e21a3, 0x01e00c82, 0x0053611e, 0x03de26a6, 0x02478e84, 0x0269d5bb, 0x001e3f3f}}, Y: Field{[10]uint32{0x03f2d47d, 0x029b9c91, 0x0306066d, 0x01210d03, 0x0298021b, 0x030a050e, 0x00b231aa, 0x014eeac3, 0x01636b70, 0x0027b19e}}}, + {X: Field{[10]uint32{0x0115863f, 0x00137684, 0x028fcd42, 0x0211e0ce, 0x03138c98, 0x0279dbb2, 0x022b4f81, 0x0075c608, 0x00de1696, 0x00373646}}, Y: Field{[10]uint32{0x0323bb04, 0x014aaeb2, 0x01ed2f5e, 0x003604e9, 0x023ff7fb, 0x004f0a4c, 0x012318dd, 0x00233f28, 0x00bac8d8, 0x002af0f6}}}, + {X: Field{[10]uint32{0x02c3177e, 0x00201b31, 0x012b294a, 0x028a5b33, 0x02e6f64f, 0x00def084, 0x0294eef5, 0x02041a4c, 0x02f05de0, 0x000e738b}}, Y: Field{[10]uint32{0x00730556, 0x034a76de, 0x0349239f, 0x0369e250, 0x020bbb5d, 0x03ce899a, 0x020ca926, 0x025e8e5e, 0x00cb0b76, 0x00097abd}}}, + {X: Field{[10]uint32{0x03157a04, 0x01a94f40, 0x02b5abae, 0x013f4e91, 0x02146451, 0x025eb12e, 0x010e937e, 0x03a27b7d, 0x01b643d4, 0x00125793}}, Y: Field{[10]uint32{0x02ec1701, 0x02c715f9, 0x026d46e6, 0x006e8833, 0x00f84bb8, 0x023105ad, 0x024251cf, 0x0035a7af, 0x0218b296, 0x001f4c9f}}}, + {X: Field{[10]uint32{0x037c33c1, 0x03d6e598, 0x03dbefca, 0x025fd6d9, 0x03a6cb6e, 0x027e79bd, 0x036dde52, 0x01f03070, 0x028cb635, 0x0024705f}}, Y: Field{[10]uint32{0x014c39ba, 0x017b06e9, 0x00e85c96, 0x0383da17, 0x03f07b76, 0x003d61ab, 0x01e26922, 0x022b0bbf, 0x0097fedb, 0x000bf948}}}, + {X: Field{[10]uint32{0x01ecfdbc, 0x01c48875, 0x018d4c03, 0x026f5ab8, 0x001c2874, 0x03172564, 0x011f11ec, 0x03b5118a, 0x00803dff, 0x0038f13d}}, Y: Field{[10]uint32{0x03dc62d8, 0x00afa4b2, 0x0240c65b, 0x009d514f, 0x004e7fb8, 0x033be2ca, 0x00ad71da, 0x009f3a5d, 0x0102571e, 0x00168b9c}}}, + {X: Field{[10]uint32{0x01c25073, 0x01763b5d, 0x0333acc1, 0x03a95a03, 0x0059ae7b, 0x03e772ee, 0x0014377a, 0x0079ed22, 0x03f5a0e8, 0x002cfb85}}, Y: Field{[10]uint32{0x00bfe86d, 0x024b9f5b, 0x01ecb6d0, 0x035415ce, 0x03b46332, 0x00e7b788, 0x0035afe1, 0x00a09698, 0x000c9a6d, 0x0004d68f}}}, + {X: Field{[10]uint32{0x02e76b75, 0x019819ba, 0x01732298, 0x0365796d, 0x017ca6e8, 0x019248cd, 0x02628e1f, 0x006fb4d0, 0x00442bc9, 0x0039332a}}, Y: Field{[10]uint32{0x016f76b9, 0x02364394, 0x01cececc, 0x03880c76, 0x02409f74, 0x00c66b1c, 0x00b42b0f, 0x019c3fdc, 0x015539b5, 0x00375569}}}, + {X: Field{[10]uint32{0x02223b2c, 0x02fefdf6, 0x02359b5e, 0x03aa58ad, 0x02e517e4, 0x013ab9eb, 0x00c02a46, 0x01822666, 0x03c181c9, 0x002ace73}}, Y: Field{[10]uint32{0x037d2fc4, 0x0393aa41, 0x02096a22, 0x01403e65, 0x0172ba3b, 0x00a06862, 0x01cfec18, 0x02ef8b9b, 0x0057b4dc, 0x0037bdb7}}}, + {X: Field{[10]uint32{0x03ab402a, 0x01172137, 0x02e01f8e, 0x034652ce, 0x02677572, 0x0193c206, 0x00cad409, 0x0011a7f9, 0x02639e6e, 0x0008a8c9}}, Y: Field{[10]uint32{0x00d2b437, 0x0157e610, 0x02f261b8, 0x0141750a, 0x00db44cf, 0x013263f3, 0x00f61484, 0x003bc16b, 0x0195bd4e, 0x00072727}}}, + {X: Field{[10]uint32{0x01f9cae9, 0x03f30908, 0x029037c2, 0x0285de42, 0x02db269d, 0x03ef137a, 0x03c5ead4, 0x012fc0c1, 0x00cceff9, 0x000af1e2}}, Y: Field{[10]uint32{0x00bc4b41, 0x000f9389, 0x01384aa7, 0x01227583, 0x00ccecb2, 0x0231e30f, 0x0081c43a, 0x01548110, 0x0061648c, 0x0005cbcd}}}, + {X: Field{[10]uint32{0x02052729, 0x00a8c000, 0x00fe4c62, 0x00d827ef, 0x003872c6, 0x02ef9a7a, 0x0275bb88, 0x001804d6, 0x03d2a672, 0x002e4c36}}, Y: Field{[10]uint32{0x0206f366, 0x0103fd6b, 0x01ebd839, 0x00d8ccd3, 0x01ff3f68, 0x01d0e2ce, 0x030e7f9a, 0x03a2e0a0, 0x0303a872, 0x0002660f}}}, + {X: Field{[10]uint32{0x0114e3d3, 0x02cb8e5d, 0x03466f33, 0x00fa1ca8, 0x0329bcd0, 0x029bc61b, 0x02db448d, 0x03a901c0, 0x038a2aa9, 0x002d0d5c}}, Y: Field{[10]uint32{0x0098636b, 0x01511ce4, 0x0074e92c, 0x02383d87, 0x011678cb, 0x0330d241, 0x0217e55b, 0x019c7e15, 0x02462d3c, 0x00160a34}}}, + {X: Field{[10]uint32{0x0072bd25, 0x037fee4c, 0x0223b532, 0x01fe76d8, 0x02ee1fe6, 0x01060375, 0x012df27d, 0x026ebcb1, 0x02813acc, 0x003247cb}}, Y: Field{[10]uint32{0x01b73c0c, 0x0057c1e1, 0x0345569c, 0x003ef493, 0x02b02735, 0x00ddf878, 0x02fa0c2b, 0x00bc4c4e, 0x03d696c1, 0x00072715}}}, + {X: Field{[10]uint32{0x008d36c8, 0x0257c017, 0x0131d2b9, 0x001be31f, 0x030bad0d, 0x005b6400, 0x028068f4, 0x02ea4e3c, 0x02c28099, 0x002ec251}}, Y: Field{[10]uint32{0x0176da4a, 0x00e41afb, 0x00164867, 0x007dde0b, 0x00156042, 0x03a5e3ca, 0x03e1a621, 0x017fa5e3, 0x00d93b57, 0x00238e1e}}}, + {X: Field{[10]uint32{0x03085c8d, 0x0281a923, 0x03398c31, 0x03df2d13, 0x035298db, 0x01c1fcd9, 0x0106521a, 0x00cdd335, 0x02a12e82, 0x0012178e}}, Y: Field{[10]uint32{0x02ca9a61, 0x018005e1, 0x03878a4b, 0x03837ed3, 0x02af0153, 0x000bf098, 0x0339d4c3, 0x02cac568, 0x02f57079, 0x00284b22}}}, + {X: Field{[10]uint32{0x013e844d, 0x027ee69c, 0x03db3e8a, 0x00a9e219, 0x020f21d0, 0x022a5baa, 0x00da03fe, 0x00895a50, 0x0048d328, 0x002143e5}}, Y: Field{[10]uint32{0x03fccb7b, 0x02c9108e, 0x00d8259a, 0x00d8296a, 0x0103a678, 0x0162a083, 0x034df3af, 0x02e8b029, 0x00fe3201, 0x00115479}}}, + {X: Field{[10]uint32{0x03e39884, 0x03214ec2, 0x01c43682, 0x030152db, 0x01449cd4, 0x03abd476, 0x00e51b18, 0x007f927e, 0x02b3f66c, 0x0029d205}}, Y: Field{[10]uint32{0x0372f7fc, 0x033bdfac, 0x0004f15e, 0x039203b2, 0x01396626, 0x01330416, 0x02f0cfdc, 0x01fa8516, 0x03b247ed, 0x00139f57}}}, + {X: Field{[10]uint32{0x0320136d, 0x02b5adde, 0x02f7785e, 0x00b5ae62, 0x02e1eb70, 0x00d04805, 0x01abcc17, 0x02885c1e, 0x016fc71d, 0x000abd71}}, Y: Field{[10]uint32{0x02b706bd, 0x01455061, 0x029321b6, 0x03642d4c, 0x02783911, 0x00c69ae3, 0x0049e95a, 0x00988ecb, 0x00a2c6a8, 0x001fcc44}}}, + {X: Field{[10]uint32{0x039b5834, 0x013fb90c, 0x00903968, 0x00525c98, 0x031a3137, 0x02b983b6, 0x0163135f, 0x037c7a43, 0x0091a61a, 0x0024a47b}}, Y: Field{[10]uint32{0x01d03884, 0x007745ef, 0x01e09bac, 0x02f2b78b, 0x03feef42, 0x020cb7a4, 0x009649f1, 0x036ecff0, 0x006be8b0, 0x00354c14}}}, + {X: Field{[10]uint32{0x00605b54, 0x0110a4b3, 0x028e1144, 0x034608f3, 0x03a8581f, 0x03863fda, 0x029cb474, 0x01e05813, 0x03c3659a, 0x000582b4}}, Y: Field{[10]uint32{0x00d141fe, 0x007d09a9, 0x03b58b6e, 0x03060636, 0x010a59f2, 0x007ae476, 0x01f939eb, 0x035c6698, 0x024d5f28, 0x00058611}}}, + {X: Field{[10]uint32{0x00ba9d58, 0x01c64d18, 0x02572b40, 0x03e18d62, 0x01ea4280, 0x01cf6b63, 0x005a5d76, 0x024830b6, 0x01bb8640, 0x000d4966}}, Y: Field{[10]uint32{0x03538d0c, 0x01f470a2, 0x0164a50f, 0x03618e35, 0x00aa2ac3, 0x00f2572b, 0x017707ad, 0x013cac8b, 0x011be806, 0x0029e296}}}, + {X: Field{[10]uint32{0x036ba527, 0x00b13ede, 0x03f334d1, 0x038488da, 0x01adb37c, 0x03a78575, 0x037a7281, 0x018d364b, 0x03bd9a8c, 0x003b083b}}, Y: Field{[10]uint32{0x0151b70d, 0x015ecec3, 0x021e2a9a, 0x024bf550, 0x02e8c547, 0x01ebe762, 0x019315e2, 0x00c454e4, 0x01bc2a5a, 0x002b36ca}}}, + {X: Field{[10]uint32{0x02dbebc3, 0x02b51838, 0x0064c5cf, 0x0214618f, 0x01bbd387, 0x0165e07a, 0x02e847dc, 0x031bb157, 0x00da8bda, 0x00103479}}, Y: Field{[10]uint32{0x016e9ab0, 0x0099568c, 0x013acd3a, 0x03fc9fed, 0x004e3755, 0x02e8fb06, 0x03c7d5bd, 0x00b9a299, 0x001cb7c9, 0x00318c16}}}, + {X: Field{[10]uint32{0x027d08c7, 0x02e91103, 0x035127db, 0x00b7c3fe, 0x0081674c, 0x022d9b7d, 0x01ac1c39, 0x037cb8ac, 0x03402faa, 0x003ef849}}, Y: Field{[10]uint32{0x03f412d6, 0x00bdee2d, 0x0187c52f, 0x00d39ba1, 0x00f3dfee, 0x011245a6, 0x00871821, 0x005340eb, 0x00d7f979, 0x003403b7}}}, + {X: Field{[10]uint32{0x0191eb03, 0x0364c370, 0x0008bb0c, 0x0358990c, 0x034070d9, 0x03ec7848, 0x010fbd80, 0x0247ee21, 0x01a747d1, 0x0035e06d}}, Y: Field{[10]uint32{0x006afa11, 0x01ac63cd, 0x03792d90, 0x00c09236, 0x019762ef, 0x0066ca44, 0x01f29245, 0x02ad57e5, 0x01a25c74, 0x00292aa5}}}, + {X: Field{[10]uint32{0x00cf02cd, 0x0111bc27, 0x0052944a, 0x00e7b948, 0x0122790c, 0x00e56d7a, 0x01045d00, 0x02f1f045, 0x0042d926, 0x00191cbf}}, Y: Field{[10]uint32{0x0205a99d, 0x02de2511, 0x0106863d, 0x02d438ab, 0x03045d1a, 0x00cf210a, 0x0264e376, 0x024f7b88, 0x0014a925, 0x00001448}}}, + {X: Field{[10]uint32{0x015e0c21, 0x0057b58e, 0x03fd2c57, 0x00993203, 0x005fa6cf, 0x01181e8b, 0x0117a935, 0x0007a1a9, 0x00c2e096, 0x003bb860}}, Y: Field{[10]uint32{0x0083e7ea, 0x01259a5d, 0x01711e06, 0x03c6b995, 0x0349490a, 0x03de1728, 0x03daff70, 0x01bf16d3, 0x0398221d, 0x003232e9}}}, + {X: Field{[10]uint32{0x01ada2d6, 0x012dd411, 0x00ab4fad, 0x03536d40, 0x039103be, 0x015d8c1d, 0x03ec071c, 0x02b50456, 0x022da172, 0x002402c9}}, Y: Field{[10]uint32{0x01e2cbaf, 0x0108f814, 0x015aa371, 0x0361459d, 0x0082c4c1, 0x00fe8d35, 0x0018e7fb, 0x03fa44fd, 0x03f2bbad, 0x000c5915}}}, + {X: Field{[10]uint32{0x03a34c9e, 0x02006884, 0x00e20420, 0x02c799af, 0x015d5e03, 0x027bca74, 0x02d3371b, 0x0141c1dc, 0x03874e1e, 0x001fa4f6}}, Y: Field{[10]uint32{0x038465a8, 0x0308ce78, 0x0356abc2, 0x011ed6fe, 0x0063f3ec, 0x00033704, 0x03aa0fee, 0x00ca9bd7, 0x02247500, 0x00337aa9}}}, + {X: Field{[10]uint32{0x01a379ca, 0x02320be2, 0x031f5da9, 0x01e80fb6, 0x02d17287, 0x012aff8e, 0x02761b84, 0x02957799, 0x002465f3, 0x001187ed}}, Y: Field{[10]uint32{0x00e815d9, 0x014a16c6, 0x0332b7f1, 0x0299ae39, 0x011f584a, 0x00179070, 0x0101dadc, 0x009c63d5, 0x01fdba03, 0x001da098}}}, + {X: Field{[10]uint32{0x0019e09f, 0x0379de25, 0x0059e997, 0x02997cd4, 0x036de28a, 0x006e93e4, 0x010f0cc9, 0x00683f97, 0x001af0f6, 0x000767d6}}, Y: Field{[10]uint32{0x011bf6cd, 0x00da6d22, 0x011f8adf, 0x00758889, 0x003f02db, 0x0259dbd5, 0x00302e18, 0x03715858, 0x018c7d59, 0x001ffa72}}}, + {X: Field{[10]uint32{0x027542c6, 0x010e085d, 0x0362be23, 0x03fcf337, 0x0166386d, 0x013bf8de, 0x00f7a70e, 0x00aa9c90, 0x0352904b, 0x002335c2}}, Y: Field{[10]uint32{0x01ddc2f2, 0x01afb26d, 0x001f1ff8, 0x00f62195, 0x020e9e29, 0x01caf1ae, 0x0308bb2f, 0x002c7c03, 0x003f4c7e, 0x002cf0f4}}}, + {X: Field{[10]uint32{0x034a5261, 0x02a98a3a, 0x02a2e819, 0x008d3910, 0x0199097b, 0x00036bbf, 0x025b8b38, 0x02196e66, 0x03ea9c08, 0x00282d51}}, Y: Field{[10]uint32{0x02ca2952, 0x0377627c, 0x03a2280c, 0x0063cb48, 0x00fd9d1e, 0x0289fad8, 0x003cb4e1, 0x00403700, 0x0115e585, 0x00181fbc}}}, + {X: Field{[10]uint32{0x0344d289, 0x0358d810, 0x0177578d, 0x03d57f6f, 0x00192406, 0x01fa06ad, 0x03a649c2, 0x00e38da0, 0x00f65470, 0x003aa298}}, Y: Field{[10]uint32{0x01822fb0, 0x003dd19e, 0x00691ac1, 0x033d4183, 0x02881b5f, 0x02f08bc5, 0x00b9f3e3, 0x0357aa3f, 0x02c0b05a, 0x00262bf2}}}, + {X: Field{[10]uint32{0x00b0a711, 0x02335285, 0x0075501a, 0x001a44d4, 0x0148bce5, 0x016ede0a, 0x01488fe5, 0x03e7bddf, 0x029d0882, 0x00398146}}, Y: Field{[10]uint32{0x02920fce, 0x02853d8b, 0x03498ffa, 0x0209364c, 0x00c1ec0c, 0x0182bdd7, 0x01257b8a, 0x02d5572e, 0x02be9d9e, 0x00072736}}}, + {X: Field{[10]uint32{0x00765674, 0x01497a62, 0x02a4b39a, 0x03153e3a, 0x03165338, 0x001f8396, 0x00e5efbc, 0x034cdc1b, 0x02c9c50f, 0x0018021d}}, Y: Field{[10]uint32{0x03ea4189, 0x01e5b936, 0x0346a213, 0x00b981a9, 0x03b04420, 0x0282c856, 0x01f5da0a, 0x0087ce0f, 0x031ef52b, 0x00100699}}}, + {X: Field{[10]uint32{0x02b2ff40, 0x03c7a5fd, 0x00185274, 0x01596df8, 0x003c0eca, 0x01a78105, 0x03efe121, 0x03f7426c, 0x039c5ef6, 0x000ec116}}, Y: Field{[10]uint32{0x02780a28, 0x039a04d8, 0x02dfad20, 0x01ef2c4d, 0x03a135a4, 0x035a4530, 0x00085d05, 0x001f10aa, 0x03acb211, 0x002a95dc}}}, + {X: Field{[10]uint32{0x01f0f1b6, 0x03b9fd2c, 0x022dc643, 0x0077954a, 0x01f9504b, 0x03b673bd, 0x027807fd, 0x01578135, 0x0132ee0b, 0x00373a63}}, Y: Field{[10]uint32{0x033fb086, 0x01687787, 0x031b8d43, 0x038a0077, 0x03aba058, 0x02b3d509, 0x03746d67, 0x00925f2e, 0x027c9e99, 0x00340eb0}}}, + {X: Field{[10]uint32{0x0378fd76, 0x03a61338, 0x0144958b, 0x01fc8be8, 0x03dd5aea, 0x00da19e1, 0x011c07a9, 0x0183fa2a, 0x01486e8a, 0x000d96c4}}, Y: Field{[10]uint32{0x0301c9c0, 0x00add87b, 0x005c3f85, 0x019d53d0, 0x01b36e27, 0x036ee3b0, 0x01ecbbcb, 0x01754131, 0x0217319e, 0x000b1fd4}}}, + {X: Field{[10]uint32{0x036b5806, 0x01cecbaa, 0x006cbb9c, 0x03a15f26, 0x023c3720, 0x013b78d5, 0x00dc3cad, 0x0197b7ba, 0x035a4dc4, 0x000b8de4}}, Y: Field{[10]uint32{0x03ce346b, 0x00e51752, 0x01522c0e, 0x0240431b, 0x02839cb6, 0x01fe0692, 0x02dc7f9d, 0x03d1b600, 0x03f15278, 0x002f421c}}}, + {X: Field{[10]uint32{0x01647568, 0x02eba53c, 0x030bb00f, 0x0215b91e, 0x0081cd85, 0x0035c656, 0x00ddf927, 0x016b5ed8, 0x00e19374, 0x000126da}}, Y: Field{[10]uint32{0x02819dc1, 0x01a4f01c, 0x03795755, 0x00c43d29, 0x021dc82d, 0x03d2e16f, 0x03cb2d05, 0x010fbd4e, 0x03f0013e, 0x00328752}}}, + {X: Field{[10]uint32{0x02744564, 0x00c3f33e, 0x0220cb81, 0x02e8f981, 0x016c8cc6, 0x027b781d, 0x02b6f66e, 0x016a20b0, 0x016cc79c, 0x001b7d4f}}, Y: Field{[10]uint32{0x02431344, 0x02013449, 0x036e1729, 0x01f2bed5, 0x014597f7, 0x00698525, 0x032f2914, 0x01f16491, 0x02ed3b2b, 0x001230f5}}}, + {X: Field{[10]uint32{0x034865a1, 0x0385c36f, 0x02b8bd28, 0x0307238c, 0x022f9467, 0x019c5168, 0x01636727, 0x038ee498, 0x03069104, 0x003667e3}}, Y: Field{[10]uint32{0x02543d7f, 0x02ff9414, 0x01479fd1, 0x00cf9044, 0x00c2b433, 0x0301b2c6, 0x0267c4e2, 0x01764d93, 0x02b055aa, 0x00333f11}}}, + {X: Field{[10]uint32{0x019930d1, 0x03ab64f9, 0x0342a538, 0x03f71a30, 0x01e23af7, 0x01562816, 0x00075728, 0x020ce2ea, 0x0017ebbf, 0x001ddc9f}}, Y: Field{[10]uint32{0x00c629ea, 0x0380ce10, 0x0308366d, 0x02504cf9, 0x00ede751, 0x017d4329, 0x023bc657, 0x0060083f, 0x007e2cde, 0x00280df7}}}, + {X: Field{[10]uint32{0x03e22604, 0x00328bda, 0x0266377e, 0x022667b0, 0x0036ae37, 0x0344ce6b, 0x00c84cfa, 0x013fdf05, 0x02d8563a, 0x0007503a}}, Y: Field{[10]uint32{0x00d1face, 0x007b0488, 0x01713a71, 0x00b6a5a3, 0x033a6b0c, 0x03137ee1, 0x025a5ac1, 0x0245ffb9, 0x0043b093, 0x002125ed}}}, + {X: Field{[10]uint32{0x006bfae0, 0x0241c410, 0x010ef405, 0x02645e8f, 0x03e32269, 0x0061034d, 0x0227c205, 0x02accdc6, 0x0341adf5, 0x0000a8e7}}, Y: Field{[10]uint32{0x005c27c5, 0x03cab1a4, 0x008ed155, 0x027b1c12, 0x008dd1a4, 0x03a11306, 0x0236b048, 0x027ee08e, 0x03a858e9, 0x000336bd}}}, + {X: Field{[10]uint32{0x01c684e0, 0x00dc2206, 0x0215e281, 0x024adb38, 0x0166f5ea, 0x0365d288, 0x031cc92f, 0x02331225, 0x00b1d8b0, 0x0002aab9}}, Y: Field{[10]uint32{0x03cd8f0c, 0x035e3a78, 0x01bdea34, 0x0344e909, 0x03c63739, 0x0145478c, 0x03d5cd50, 0x00d22a13, 0x0195c10a, 0x000248de}}}, + {X: Field{[10]uint32{0x02477d40, 0x03f6bf39, 0x03440965, 0x01520c7b, 0x0211315a, 0x02b0b278, 0x00939d29, 0x014ed8cd, 0x0042591a, 0x00296c30}}, Y: Field{[10]uint32{0x00a62ca6, 0x01e97301, 0x016d7e11, 0x03234a90, 0x00bc9904, 0x00f1f758, 0x022b206b, 0x000922cd, 0x00fd5d1f, 0x002b0f9f}}}, + {X: Field{[10]uint32{0x03c63f0b, 0x00b907c9, 0x035a1278, 0x02d40faf, 0x003c16e3, 0x03c252f9, 0x03643b47, 0x01aa5aa3, 0x0164e616, 0x000306dc}}, Y: Field{[10]uint32{0x01663a98, 0x003c079d, 0x01207fcc, 0x02fdcfb4, 0x01e34810, 0x0378eb1e, 0x010ba811, 0x03c7fd6d, 0x021a4ffa, 0x00211a45}}}, + {X: Field{[10]uint32{0x01ca63bc, 0x0263852b, 0x028b457b, 0x01763f7c, 0x00342e60, 0x03ac9b74, 0x00e0f2c8, 0x018fc136, 0x00254b79, 0x000263f6}}, Y: Field{[10]uint32{0x01a192d6, 0x0184456c, 0x0098f220, 0x0096f848, 0x012dc143, 0x032f2e67, 0x039dba65, 0x019991df, 0x000d213f, 0x0038a5ea}}}, + {X: Field{[10]uint32{0x014c3281, 0x02ceab56, 0x00dc163e, 0x033605ab, 0x0148c464, 0x030b9bc6, 0x034127d8, 0x03b524b4, 0x024971b6, 0x003c7c21}}, Y: Field{[10]uint32{0x00f31f5c, 0x00ce2ac0, 0x0031a346, 0x0394bf7b, 0x03506a0d, 0x01580b9b, 0x038954d8, 0x013ea44e, 0x02a0f9e0, 0x00009ab8}}}, + {X: Field{[10]uint32{0x030dd197, 0x010388e4, 0x03a91172, 0x00e98688, 0x01b63af8, 0x00141bed, 0x03441eac, 0x034ab298, 0x00cdc324, 0x0003fd1c}}, Y: Field{[10]uint32{0x0227788f, 0x00983495, 0x01eba5a5, 0x012e3f4c, 0x0330734b, 0x007be9ce, 0x007a772a, 0x01dfa118, 0x026bb18e, 0x0039807d}}}, + {X: Field{[10]uint32{0x006c63a6, 0x0110b7ef, 0x016dcd04, 0x02e4ccbb, 0x00ad0f82, 0x02aaeeaa, 0x0008127b, 0x02865ad6, 0x006d968a, 0x00243aaf}}, Y: Field{[10]uint32{0x035038f1, 0x03e93bae, 0x030f94c1, 0x038f7370, 0x032faed3, 0x0111daca, 0x03fc4be4, 0x00f35cb7, 0x0367ffb2, 0x0035b7c3}}}, + {X: Field{[10]uint32{0x007e11af, 0x012e2ef3, 0x03866ecd, 0x02dbfabc, 0x02bc0a43, 0x00c00d8f, 0x01e0826b, 0x001e86d0, 0x0126acc5, 0x003885ec}}, Y: Field{[10]uint32{0x01e98f30, 0x007f1b92, 0x01ecda8d, 0x017ec0c8, 0x02921e3a, 0x02c9e8e1, 0x00eb7332, 0x00cf562e, 0x01ef83db, 0x001faca3}}}, + {X: Field{[10]uint32{0x00e1d184, 0x039a2a7f, 0x0228d20d, 0x03bb1e55, 0x02b5d008, 0x01362ab4, 0x032bc218, 0x0175785d, 0x03d582b8, 0x000a865b}}, Y: Field{[10]uint32{0x02201303, 0x00e67d98, 0x022300c3, 0x019e2760, 0x0368526c, 0x02b4bfc7, 0x038dc8cc, 0x038f53f7, 0x0257ee9e, 0x002652d1}}}, + {X: Field{[10]uint32{0x02de4342, 0x0074099e, 0x002e6132, 0x02f5f99b, 0x02ca770c, 0x00463def, 0x01897c81, 0x0329fa2a, 0x03c83a6e, 0x002f278e}}, Y: Field{[10]uint32{0x014f3f4b, 0x01950b5c, 0x030a3f34, 0x0184be12, 0x00e2b076, 0x017cd749, 0x00992917, 0x029586ae, 0x03e2d544, 0x00275fbd}}}, + {X: Field{[10]uint32{0x02f198b3, 0x0144aaac, 0x00cdf6f6, 0x03b79a47, 0x017e76b8, 0x03c4bc82, 0x029e3676, 0x027e13fa, 0x03f3842a, 0x003fca04}}, Y: Field{[10]uint32{0x03fe1949, 0x012128b0, 0x03f7618a, 0x00abd00a, 0x01b8b668, 0x02027d21, 0x02de4380, 0x030586b1, 0x03d666d0, 0x00081b8e}}}, + {X: Field{[10]uint32{0x01af05f7, 0x011e6e34, 0x01baf6c7, 0x02f9382b, 0x0234a50b, 0x01da75f2, 0x01423210, 0x0358faf8, 0x01df2d38, 0x001b9d66}}, Y: Field{[10]uint32{0x03654c8d, 0x01bea978, 0x002cd555, 0x0117b346, 0x03256143, 0x01ad251a, 0x01ed56eb, 0x0136212a, 0x031d4b0e, 0x0008cf73}}}, + {X: Field{[10]uint32{0x03666146, 0x0141c64c, 0x039f9ba2, 0x00bad5db, 0x03839766, 0x02797059, 0x01844d1a, 0x03aca053, 0x00d56c82, 0x0007b767}}, Y: Field{[10]uint32{0x01f43f4c, 0x00946f8f, 0x0165fe24, 0x03725776, 0x0239d48d, 0x0345a083, 0x01b5cb04, 0x03a0fa52, 0x02850b2e, 0x002803d2}}}, + {X: Field{[10]uint32{0x007324af, 0x01e7ed90, 0x02b0718d, 0x01ce4b5e, 0x02818a2f, 0x00e2a07a, 0x024a0907, 0x01335dda, 0x02061f79, 0x0009c8f7}}, Y: Field{[10]uint32{0x02bbf41f, 0x00707fb1, 0x00e783db, 0x01c9df34, 0x0038daad, 0x0112ae22, 0x013429e3, 0x003140f1, 0x01bef981, 0x000d71ea}}}, + {X: Field{[10]uint32{0x039a213d, 0x027289aa, 0x0353af46, 0x00ae9f1a, 0x023874ec, 0x010f04f0, 0x01659eeb, 0x0137bdb6, 0x02444cb5, 0x001313ec}}, Y: Field{[10]uint32{0x038efa3d, 0x01d47956, 0x02472082, 0x036168d5, 0x03d4a1ae, 0x0126cce3, 0x039ad153, 0x01ea7ffa, 0x02fe5644, 0x002ef4ba}}}, + {X: Field{[10]uint32{0x027593e3, 0x0255c819, 0x0212f250, 0x034a3939, 0x0112847e, 0x03ecfef3, 0x03069771, 0x0256a238, 0x01f73479, 0x001cd8d6}}, Y: Field{[10]uint32{0x02bd3741, 0x0256fe44, 0x015f972c, 0x02920359, 0x00e303fd, 0x02e3e61a, 0x02215ca6, 0x001448d6, 0x03ed4bce, 0x0008eecd}}}, + {X: Field{[10]uint32{0x01f595be, 0x01e53661, 0x03293825, 0x03df0332, 0x026f33b0, 0x0021e6fb, 0x01813946, 0x01af452e, 0x0194ee93, 0x000572e5}}, Y: Field{[10]uint32{0x031bb152, 0x00950a7e, 0x0149ac7f, 0x03997962, 0x03e2e133, 0x036c9d3b, 0x03775e9e, 0x006ad804, 0x032a2ec8, 0x002aab5d}}}, + {X: Field{[10]uint32{0x03e78fa4, 0x01b159da, 0x00a9b41e, 0x01de987c, 0x02df5747, 0x002e1dca, 0x0290eb82, 0x033c7a12, 0x01ab97e5, 0x000ed522}}, Y: Field{[10]uint32{0x022219be, 0x00d33d95, 0x00cf9e71, 0x03aeeec4, 0x020d59a1, 0x0044f592, 0x02cad63f, 0x01285f33, 0x03c8e967, 0x00051744}}}, + {X: Field{[10]uint32{0x029dd2f5, 0x005d65e8, 0x01c56684, 0x0130e896, 0x0323323e, 0x0167389a, 0x01bec7bb, 0x034e16c2, 0x019aa6f9, 0x001e346e}}, Y: Field{[10]uint32{0x0216a122, 0x0220dedf, 0x020ef3cd, 0x033856d2, 0x00a6b890, 0x027da8a0, 0x014369ce, 0x02c8433d, 0x01f8e883, 0x00072344}}}, + {X: Field{[10]uint32{0x01661e85, 0x03457ece, 0x0121070c, 0x0060afa0, 0x02d2fd2d, 0x024e244b, 0x0013e3f0, 0x03eef4ea, 0x028c5cef, 0x000e1793}}, Y: Field{[10]uint32{0x0368069c, 0x00b6b2ea, 0x02c7036e, 0x03896337, 0x02c9b168, 0x00730232, 0x03ceb21c, 0x03ef1484, 0x00149f5c, 0x003d2871}}}, + {X: Field{[10]uint32{0x011aec6a, 0x0365c465, 0x02b1fc28, 0x00c0a4b5, 0x02a7c872, 0x014fa4a4, 0x0130df3c, 0x01b1b922, 0x0070d8e4, 0x000c43e3}}, Y: Field{[10]uint32{0x0017146f, 0x021bd70d, 0x01efdb03, 0x017db73b, 0x0359d92d, 0x0175c11b, 0x0315154d, 0x001ec959, 0x01d3c92c, 0x001bf8c6}}}, + {X: Field{[10]uint32{0x03c70bbb, 0x01996175, 0x00912940, 0x02590884, 0x03c1f91a, 0x02356248, 0x030b80d4, 0x03542b85, 0x003023d1, 0x001d93cf}}, Y: Field{[10]uint32{0x03dca724, 0x01f2d038, 0x038e4b54, 0x02e323ca, 0x03c3ee9e, 0x01e32673, 0x01411468, 0x02d283b6, 0x031abecd, 0x002f64be}}}, + {X: Field{[10]uint32{0x03e68126, 0x01fbdca8, 0x031ab36f, 0x01d4f11e, 0x02b37a80, 0x010042e2, 0x013c86f8, 0x028dfc6f, 0x03bab357, 0x000f5748}}, Y: Field{[10]uint32{0x0334255b, 0x0056575a, 0x028e0821, 0x018424c1, 0x017ccbb4, 0x017e7037, 0x00893c5f, 0x0009960e, 0x0041bdcf, 0x000aef46}}}, + {X: Field{[10]uint32{0x027f8a1e, 0x0095ae0a, 0x00dc087e, 0x01f543d4, 0x006d4ddd, 0x019d67a5, 0x03d2affd, 0x01ee2ffa, 0x01adcdfc, 0x0029c10c}}, Y: Field{[10]uint32{0x0147f593, 0x0091fd64, 0x01f20384, 0x00861bfd, 0x00231639, 0x03bfb32e, 0x03d77e8b, 0x02cbab0c, 0x022b9362, 0x000f290d}}}, + {X: Field{[10]uint32{0x000e8a7d, 0x0358f98c, 0x00697bf7, 0x03689177, 0x032263e9, 0x03177500, 0x00004327, 0x00bb3cf2, 0x02122c1b, 0x000a8e20}}, Y: Field{[10]uint32{0x02f6ff78, 0x00b20884, 0x01175fd7, 0x03669c91, 0x01a339c0, 0x02a6dcea, 0x005f2faf, 0x01efc0f7, 0x018853b8, 0x002b25b4}}}, + {X: Field{[10]uint32{0x024b5451, 0x005f0290, 0x01a9ab4d, 0x03fccc1a, 0x0356b49b, 0x015f8c04, 0x00bc545f, 0x0008bad4, 0x01a40ae3, 0x003a6716}}, Y: Field{[10]uint32{0x029bada0, 0x0111758b, 0x03349baf, 0x0260820d, 0x02b4fe1a, 0x00541645, 0x03737b56, 0x03eaddb0, 0x0379fe55, 0x000a6c92}}}, + {X: Field{[10]uint32{0x003306d4, 0x0300d382, 0x0384bf19, 0x035ac368, 0x03c0be26, 0x030ff8b4, 0x03f1a3c3, 0x0317b7d8, 0x02d1bd5a, 0x0028290b}}, Y: Field{[10]uint32{0x00a0bbc3, 0x033d8457, 0x039e4e5b, 0x01e59c99, 0x008aad08, 0x030c83ba, 0x0293e288, 0x008dd1e8, 0x03d2d444, 0x0030e7fc}}}, + {X: Field{[10]uint32{0x009e0053, 0x021baef0, 0x00b01c0b, 0x021c2dbc, 0x035cc17e, 0x01065cc3, 0x011670e1, 0x03c18fc7, 0x01d69ba9, 0x002e54b9}}, Y: Field{[10]uint32{0x01c46ae0, 0x023c31cb, 0x010ca0fe, 0x026bd4f3, 0x02273a4f, 0x02fc942b, 0x031c9b5b, 0x02e369b9, 0x019fa230, 0x00307a02}}}, + {X: Field{[10]uint32{0x01a4e904, 0x03e0ffa5, 0x01a2e620, 0x02319575, 0x01be83c1, 0x00498872, 0x03892b45, 0x017d3918, 0x033a130f, 0x000ebb89}}, Y: Field{[10]uint32{0x030af7e7, 0x03bac3ef, 0x01131eb7, 0x00d67a32, 0x009237b0, 0x024fe51c, 0x003c6a0b, 0x02db73cb, 0x01c6921f, 0x003b7d1d}}}, + {X: Field{[10]uint32{0x0266ceac, 0x0389576e, 0x0044965c, 0x01974a34, 0x00aa2f9e, 0x021e09ff, 0x0310d91b, 0x02bc1ab2, 0x00dcdc65, 0x00025b77}}, Y: Field{[10]uint32{0x0100ab39, 0x03e14bb4, 0x03584215, 0x01f98080, 0x039e2bf3, 0x0042ef08, 0x030d4fe3, 0x01009320, 0x036817fd, 0x000b9b40}}}, + {X: Field{[10]uint32{0x030334a3, 0x017eb934, 0x004d5af4, 0x039e78d6, 0x01e0d07a, 0x00a507e8, 0x00e111c3, 0x03b276c4, 0x0006c757, 0x003f543d}}, Y: Field{[10]uint32{0x013fde6f, 0x03d2f3f5, 0x03348324, 0x003b184d, 0x00ed9ccb, 0x03e36ca2, 0x01b1d364, 0x001a3f1f, 0x0094d49c, 0x001c6ddd}}}, + {X: Field{[10]uint32{0x03a097d1, 0x0193e45a, 0x03a77d3c, 0x004af28e, 0x03bd0611, 0x015a2ae6, 0x014915c9, 0x01148c18, 0x02681195, 0x001bcb60}}, Y: Field{[10]uint32{0x00787a87, 0x003bde0d, 0x035afe88, 0x01a34097, 0x0297261d, 0x029591e8, 0x017fe722, 0x029f134c, 0x0199849c, 0x002af904}}}, + {X: Field{[10]uint32{0x01cc1400, 0x019091c8, 0x03c9d3f0, 0x036f8988, 0x029c5099, 0x020ca8c4, 0x0283d2ce, 0x02d8a89d, 0x01b76dff, 0x00362303}}, Y: Field{[10]uint32{0x01cec51f, 0x0398d4a3, 0x034ea542, 0x02250c6e, 0x02ba5aa2, 0x0021ccad, 0x001726df, 0x01fa4976, 0x015adf6d, 0x00144d3c}}}, + {X: Field{[10]uint32{0x007105fe, 0x03d55f9d, 0x01562d95, 0x012a9c75, 0x00b6c0fd, 0x0080bf93, 0x01013632, 0x00fca3ab, 0x02e4ddde, 0x002a37a6}}, Y: Field{[10]uint32{0x03be8803, 0x00f8f6a8, 0x0107e038, 0x010dbbea, 0x02536820, 0x01f71d4a, 0x03c39a51, 0x02d85242, 0x006b5a71, 0x0005e7a5}}}, + {X: Field{[10]uint32{0x03cd45ac, 0x00942aa3, 0x037ae6eb, 0x03bf9201, 0x01799c94, 0x003996c3, 0x02a48118, 0x00f50276, 0x0027f7dc, 0x00189b1a}}, Y: Field{[10]uint32{0x01bf2f32, 0x031758cc, 0x01c00fce, 0x02841e06, 0x02b30b7e, 0x036e2397, 0x024a2db8, 0x01eca0cb, 0x01db87cf, 0x0000f596}}}, + {X: Field{[10]uint32{0x00a77d02, 0x01213d0b, 0x004955b5, 0x03bed488, 0x021666eb, 0x03d5b3c0, 0x00b2ef69, 0x03e91f6d, 0x022cf00e, 0x0000a28e}}, Y: Field{[10]uint32{0x0393c82b, 0x0266c5a0, 0x01b01f77, 0x00de5e53, 0x030fc168, 0x009c21b1, 0x00e90fb9, 0x01c3b667, 0x00edfc98, 0x00023740}}}, + {X: Field{[10]uint32{0x01545786, 0x00a4dc30, 0x02bd5dbb, 0x01d5fee4, 0x02c3b672, 0x005e2923, 0x01d0dc2f, 0x01901491, 0x029f27c4, 0x0037c2c0}}, Y: Field{[10]uint32{0x02a1099a, 0x03462900, 0x0279c6cc, 0x012ffa85, 0x01757b47, 0x004067c5, 0x00a5ad4e, 0x0166a204, 0x0105c7e1, 0x003c4cfb}}}, + {X: Field{[10]uint32{0x001a49ef, 0x02ef17f7, 0x02c8b421, 0x020d31f0, 0x020c5497, 0x0229ad8e, 0x02162a4e, 0x002f94b4, 0x03af9c1e, 0x00371bd5}}, Y: Field{[10]uint32{0x00f1a0c4, 0x01f84104, 0x0379e9e9, 0x01287064, 0x0366fca4, 0x02ce26ea, 0x02ee20d9, 0x03f97258, 0x02afe610, 0x001bd61a}}}, + {X: Field{[10]uint32{0x0255cd15, 0x00ece62c, 0x02ac4bf1, 0x00ba838f, 0x03816247, 0x02070764, 0x02dcc0fa, 0x031a4066, 0x02a2e0d2, 0x0036de5b}}, Y: Field{[10]uint32{0x0105ac88, 0x010c4f1f, 0x033e2947, 0x00810ef6, 0x02793754, 0x006478a3, 0x01e07662, 0x03ed1190, 0x02a732e1, 0x000b9831}}}, + {X: Field{[10]uint32{0x01633a2d, 0x03f8da4d, 0x023ca059, 0x01a4c2c1, 0x02881fe2, 0x01d3e233, 0x03a3efce, 0x0263f696, 0x029e72ea, 0x0015a6d9}}, Y: Field{[10]uint32{0x00ca0c8c, 0x02ddd57e, 0x00ca2f76, 0x01bffd3e, 0x02220b6a, 0x03ad78dd, 0x033f7406, 0x03e1c976, 0x02af2551, 0x002eb763}}}, + {X: Field{[10]uint32{0x00468ae4, 0x02b0ccde, 0x02451421, 0x004617f4, 0x02ec7951, 0x00b45d71, 0x036b6f0e, 0x00ceef52, 0x00201f9a, 0x000d84c9}}, Y: Field{[10]uint32{0x033c4314, 0x005863fe, 0x01dee282, 0x005c3655, 0x0262a58e, 0x011d5921, 0x02ba1351, 0x01cd99bb, 0x02cef7bc, 0x003d1ed5}}}, + {X: Field{[10]uint32{0x014a469c, 0x013b4cd2, 0x015b1b60, 0x020f24bf, 0x03855a07, 0x020b6c3f, 0x00fa2431, 0x00805246, 0x00371e4d, 0x00337ac8}}, Y: Field{[10]uint32{0x00dfa7d8, 0x031bde76, 0x03393a83, 0x03555462, 0x02970a7e, 0x0213b941, 0x010098bc, 0x00e074bf, 0x03186829, 0x001f4f1d}}}, + {X: Field{[10]uint32{0x031598ef, 0x005f3f05, 0x03755c87, 0x01d3e36d, 0x03ff6c4d, 0x037a23ff, 0x013b721a, 0x0317b003, 0x03a9d750, 0x00180d73}}, Y: Field{[10]uint32{0x03dd675a, 0x027f6d81, 0x01cb749f, 0x035f5632, 0x029bb129, 0x0120b480, 0x02dcde65, 0x0090d904, 0x00da160b, 0x003f85e6}}}, + {X: Field{[10]uint32{0x0379c0f7, 0x0279068e, 0x02ac18dc, 0x01765f64, 0x00bb250b, 0x011c5e3d, 0x0275b0c0, 0x02639383, 0x0297e499, 0x002c7d4b}}, Y: Field{[10]uint32{0x03df795f, 0x01e942b4, 0x0333d808, 0x03e04093, 0x03de484c, 0x00994717, 0x024370ca, 0x03f6317c, 0x01654e4c, 0x00360fcf}}}, + {X: Field{[10]uint32{0x01f1b641, 0x018ac85b, 0x02477d78, 0x0159094d, 0x03f1a5e0, 0x0357dc26, 0x0011395d, 0x00f6827c, 0x035304c7, 0x002a9e66}}, Y: Field{[10]uint32{0x03248646, 0x00f4b4cc, 0x03338a00, 0x001f2ef9, 0x02dd5920, 0x03ce2aa1, 0x03f68879, 0x016d9164, 0x0047b5e9, 0x000e8c9c}}}, + {X: Field{[10]uint32{0x0045aa03, 0x017a6ee9, 0x023c18d3, 0x026f7631, 0x01262d62, 0x034ce691, 0x01e56b66, 0x03d3f11e, 0x016445bd, 0x00369286}}, Y: Field{[10]uint32{0x029cb70d, 0x00fe4b2d, 0x006d563f, 0x039c9b0b, 0x02353376, 0x00d357b2, 0x02cff296, 0x018e9019, 0x02da25cc, 0x001ece97}}}, + {X: Field{[10]uint32{0x01b8d656, 0x039ccfe8, 0x0384c231, 0x011a81ec, 0x017e620d, 0x003bbc1c, 0x03eba80f, 0x01b4350c, 0x00adc234, 0x0030c02d}}, Y: Field{[10]uint32{0x03cdba42, 0x02a1dc78, 0x023566f4, 0x03691537, 0x02f73448, 0x00402e56, 0x02aa439a, 0x01eb1fcd, 0x03b948d2, 0x000c820e}}}, + {X: Field{[10]uint32{0x00359f04, 0x0162cae5, 0x02be76a3, 0x001f8833, 0x02ed64a9, 0x02437cac, 0x039bf7b0, 0x01c91358, 0x01286793, 0x00315669}}, Y: Field{[10]uint32{0x01bf5977, 0x011c3352, 0x004740d2, 0x03685659, 0x02806d78, 0x00fd10d2, 0x01671b56, 0x03260c83, 0x01aa5c08, 0x0027f2b0}}}, + {X: Field{[10]uint32{0x03e83540, 0x018ccef7, 0x015fa9b9, 0x03af4f9e, 0x01b0911c, 0x020f042c, 0x034bca9a, 0x036fd3c1, 0x01470a46, 0x000e6c40}}, Y: Field{[10]uint32{0x01308278, 0x0250658b, 0x0055e642, 0x005f458a, 0x00168da4, 0x0358cd38, 0x02aa313c, 0x009d0d36, 0x00c8c3b2, 0x002b4d77}}}, + {X: Field{[10]uint32{0x037d6d42, 0x01d2810b, 0x01d6b347, 0x00ba89de, 0x014129ab, 0x00666532, 0x00405970, 0x031805fe, 0x02b7d2de, 0x000e7272}}, Y: Field{[10]uint32{0x03781845, 0x0373a790, 0x013623af, 0x02d32012, 0x0272ca72, 0x01f77ecf, 0x00cdd453, 0x02284cd5, 0x016b835a, 0x0031cfaf}}}, + {X: Field{[10]uint32{0x02c679ed, 0x02d7bbbb, 0x01466fc7, 0x0135104c, 0x03f8f81c, 0x038863b0, 0x02c60972, 0x02d18ab7, 0x01988a30, 0x00069896}}, Y: Field{[10]uint32{0x034114ab, 0x03e3374c, 0x02037bf5, 0x0276e810, 0x033651a3, 0x03884ef5, 0x02776e62, 0x01f26efd, 0x02bb01a9, 0x001ce6fa}}}, + {X: Field{[10]uint32{0x024c4308, 0x008b7eba, 0x003bf3f4, 0x0330fbd9, 0x0085f33e, 0x03ca0ea6, 0x012761eb, 0x030c2350, 0x0110cd35, 0x000e5bb6}}, Y: Field{[10]uint32{0x004dfe57, 0x03467845, 0x01b7f556, 0x01620d9c, 0x013945e1, 0x010a91ac, 0x0048cf84, 0x01852937, 0x01a6a08a, 0x001c8737}}}, + {X: Field{[10]uint32{0x03299a47, 0x02debce6, 0x02becaf7, 0x0100978e, 0x0083e153, 0x002f60c7, 0x02ee96ab, 0x0333f652, 0x02e8a2e8, 0x00294381}}, Y: Field{[10]uint32{0x03beba52, 0x03593f8a, 0x0214f3fc, 0x0068ead7, 0x014521fc, 0x02382178, 0x01a4575e, 0x02018ff9, 0x01b259a1, 0x00164c81}}}, + {X: Field{[10]uint32{0x01c3e1de, 0x03c9adc4, 0x034a3dc3, 0x03591ba3, 0x00dbe15c, 0x00e4fe8d, 0x02c8bcf7, 0x03470398, 0x002317b0, 0x0012a7e0}}, Y: Field{[10]uint32{0x03c6bb71, 0x012faa7d, 0x015ac289, 0x030e5899, 0x00239867, 0x00d3a24a, 0x0330c244, 0x017fff36, 0x036d0091, 0x000103bf}}}, + {X: Field{[10]uint32{0x01608b73, 0x0368bf23, 0x01f055d2, 0x018957b6, 0x007f3232, 0x00bfeee2, 0x0318562e, 0x02df9842, 0x020d9dec, 0x00233978}}, Y: Field{[10]uint32{0x02c720de, 0x03da6386, 0x011b54f1, 0x02caa9c0, 0x0263f024, 0x01649c9e, 0x0292371b, 0x03859003, 0x036cf363, 0x0003ada6}}}, + {X: Field{[10]uint32{0x0083f24b, 0x009be6ed, 0x03e0a367, 0x0358dc02, 0x0184143e, 0x0295503b, 0x02525e28, 0x03a7947c, 0x01d79b53, 0x003cc9a5}}, Y: Field{[10]uint32{0x008471c8, 0x038641f0, 0x0123ef1e, 0x00587185, 0x031d81bd, 0x03f88d24, 0x012ca1f6, 0x00157d96, 0x0088eea2, 0x003a34d9}}}, + {X: Field{[10]uint32{0x02c34d07, 0x01b78775, 0x01959485, 0x02049749, 0x01d92748, 0x01b80822, 0x011ad140, 0x0164b96d, 0x01863bf6, 0x000e09bf}}, Y: Field{[10]uint32{0x03e4cc83, 0x020ec73f, 0x01e97265, 0x0006a240, 0x02020da0, 0x01ffe7e0, 0x0282058a, 0x00d71d0f, 0x01e6a290, 0x003aa1bc}}}, + {X: Field{[10]uint32{0x00ccd551, 0x01904290, 0x03ddd0dc, 0x02a263a1, 0x02ae8611, 0x03b1c9d8, 0x02098684, 0x02c3d46e, 0x00d32e32, 0x001ec6bf}}, Y: Field{[10]uint32{0x02e37884, 0x020a34f4, 0x020efc70, 0x02c2f158, 0x00a3ce0e, 0x02edb42a, 0x0036ee39, 0x0024c420, 0x02f779e1, 0x0037ae9b}}}, + {X: Field{[10]uint32{0x01a91bd4, 0x0118304d, 0x03b63348, 0x0331fdfd, 0x018deddd, 0x019a8db4, 0x00d39b1b, 0x01d61d50, 0x01fed2c2, 0x000fac7f}}, Y: Field{[10]uint32{0x026b36cb, 0x0263e5b4, 0x037b9eb8, 0x011633f3, 0x02642c53, 0x0204a99e, 0x01506cca, 0x039e5186, 0x02ca536a, 0x002e2baa}}}, + {X: Field{[10]uint32{0x0356da8f, 0x012fad66, 0x03c45c21, 0x027a406d, 0x02b71b4d, 0x020fba8b, 0x02290cb6, 0x03f17d4c, 0x02c8aae9, 0x00275876}}, Y: Field{[10]uint32{0x02446036, 0x021d8ace, 0x02271793, 0x0079e28a, 0x01280a8f, 0x0099f3a6, 0x024fc3ee, 0x02c8b9c0, 0x00a42ea1, 0x000b9f2b}}}, + {X: Field{[10]uint32{0x0211c7d8, 0x0343ab8f, 0x0239be38, 0x03bff76e, 0x02e91a43, 0x017b5551, 0x021e37a8, 0x03eaa3a3, 0x02dc3167, 0x000b6cdc}}, Y: Field{[10]uint32{0x01707ffe, 0x01b842d6, 0x023809b0, 0x00d2dc65, 0x0084f005, 0x02d67c3a, 0x0279697f, 0x02f5a85b, 0x0361bc1a, 0x0005aadb}}}, + {X: Field{[10]uint32{0x0005dc80, 0x0008f4a2, 0x000302ff, 0x019fdff1, 0x025b03dd, 0x02b4c4ca, 0x00e83cc9, 0x02d4e14e, 0x02f9f7a2, 0x00263df3}}, Y: Field{[10]uint32{0x02b98943, 0x020417eb, 0x00dd8d65, 0x034fe546, 0x01468bed, 0x03a5a85d, 0x016df891, 0x039b1af5, 0x00232813, 0x000ed03e}}}, + {X: Field{[10]uint32{0x01b62548, 0x0334657b, 0x00c7a363, 0x01853522, 0x02c48f08, 0x02a276d0, 0x01f58528, 0x00349357, 0x026cc8ab, 0x003baacb}}, Y: Field{[10]uint32{0x002649da, 0x002649f2, 0x022cc017, 0x01d100a0, 0x00523a7f, 0x03d7b7c5, 0x03e25030, 0x00ca35ca, 0x01ed65d3, 0x00181f10}}}, + {X: Field{[10]uint32{0x03db942a, 0x00d5c16c, 0x035376d9, 0x0346b69a, 0x03b7cb5e, 0x017ecc6d, 0x029a9d6c, 0x0071c0d1, 0x02ffb216, 0x002557fb}}, Y: Field{[10]uint32{0x01c0864b, 0x0123b905, 0x035a3fdf, 0x0029a0b2, 0x01283fcd, 0x029c4016, 0x039c9846, 0x030d081d, 0x0248a561, 0x002a4656}}}, + {X: Field{[10]uint32{0x00cd85a7, 0x03396b37, 0x025c9d44, 0x0376a606, 0x034db23b, 0x0336b0db, 0x008f5411, 0x03ba7b4f, 0x012d70d2, 0x00086693}}, Y: Field{[10]uint32{0x00ef53b4, 0x01593d71, 0x008e470a, 0x02a4171b, 0x013dbfdd, 0x03193df7, 0x0284aef2, 0x023b05c4, 0x01684300, 0x0019d106}}}, + {X: Field{[10]uint32{0x011ddb23, 0x010a5cbe, 0x028a5ed5, 0x01c5c8b8, 0x020d5945, 0x020b040d, 0x02f5cbd2, 0x02c584b8, 0x010d7794, 0x00125d8a}}, Y: Field{[10]uint32{0x0217ebc4, 0x001185b3, 0x03aec790, 0x00915bd5, 0x0023571c, 0x011b7144, 0x008354b4, 0x015954bf, 0x01f160fc, 0x00133f65}}}, + {X: Field{[10]uint32{0x0072b1c1, 0x0135c8ac, 0x00a4b5c4, 0x02cf0535, 0x021866e0, 0x0267d59d, 0x03b99ed5, 0x02b476ee, 0x03e0268e, 0x0011cb54}}, Y: Field{[10]uint32{0x02831232, 0x01a4fb30, 0x02db8e31, 0x00afb190, 0x01e4dfe8, 0x03659ee2, 0x02d42e31, 0x035352a3, 0x00096115, 0x003a6e70}}}, + {X: Field{[10]uint32{0x00ab18ef, 0x00c9ed1c, 0x01d50da3, 0x03ef0375, 0x003f3462, 0x0169b86c, 0x0075d617, 0x02e572be, 0x037e7a4d, 0x000a9bd6}}, Y: Field{[10]uint32{0x0259d506, 0x039f80e1, 0x033479ad, 0x013a8bcd, 0x02c9f372, 0x002c04f3, 0x01f5b78f, 0x037065f6, 0x03a392aa, 0x00246c91}}}, + {X: Field{[10]uint32{0x03146c19, 0x03e71148, 0x025ba17d, 0x00ae7441, 0x007431a6, 0x0383230f, 0x025e654f, 0x03606ed7, 0x01a3bf48, 0x00370605}}, Y: Field{[10]uint32{0x0194be8f, 0x02f7cbf5, 0x00f36d0f, 0x03dec232, 0x02d837c5, 0x01d1fbfe, 0x03e2af74, 0x0143c391, 0x029a3115, 0x003f881c}}}, + {X: Field{[10]uint32{0x00397776, 0x002db9a6, 0x03c4f1df, 0x033cf9a2, 0x00a8b47e, 0x000ffee6, 0x0295db4f, 0x03bae25e, 0x03ecad8f, 0x00239e54}}, Y: Field{[10]uint32{0x0141ac5d, 0x02c58df0, 0x01157893, 0x03f36aed, 0x0212f7c6, 0x007cc518, 0x0040a395, 0x0073109b, 0x02ef81b2, 0x00176b7c}}}, + {X: Field{[10]uint32{0x019b41a5, 0x03913304, 0x02a7472e, 0x0015b999, 0x01faf96a, 0x019a1b22, 0x0099fe1c, 0x01c92e7a, 0x026b49d5, 0x00293647}}, Y: Field{[10]uint32{0x020a4893, 0x03a77865, 0x0247414a, 0x00aae9cb, 0x02fef10b, 0x02f73f09, 0x02bb820c, 0x019263d6, 0x02150e29, 0x002af5a1}}}, + {X: Field{[10]uint32{0x0300eee9, 0x025210da, 0x0141dd02, 0x008ab2b8, 0x02754c49, 0x02383910, 0x0266dd60, 0x009ae74e, 0x01a4f3e4, 0x002e5c20}}, Y: Field{[10]uint32{0x00f153da, 0x007b5b2e, 0x024f1ea6, 0x01de38a2, 0x022c8c2f, 0x005542c4, 0x029cb641, 0x012ed2ea, 0x00839921, 0x001563db}}}, + {X: Field{[10]uint32{0x03825848, 0x00d0843e, 0x0225ea8c, 0x029ad8d2, 0x00b873a5, 0x01904b15, 0x0273c6ef, 0x026f39c2, 0x02ed8227, 0x001a20ad}}, Y: Field{[10]uint32{0x03f21b3b, 0x027852e7, 0x035aed6b, 0x002487ca, 0x031e3a3b, 0x01a27a28, 0x0279c616, 0x00f8e4ba, 0x02e9c823, 0x0031bf7b}}}, + {X: Field{[10]uint32{0x00717fe8, 0x01fb8691, 0x011a462c, 0x0202b543, 0x011a0dba, 0x013f7acf, 0x03bf11fa, 0x015c272a, 0x03311c71, 0x00271509}}, Y: Field{[10]uint32{0x01f2b045, 0x010a5d74, 0x0058d7ea, 0x01c713c8, 0x00ef4b64, 0x029dfdd8, 0x006bd40c, 0x00d16311, 0x03107816, 0x002a8106}}}, + {X: Field{[10]uint32{0x000cd32c, 0x01ccc31e, 0x015d9357, 0x005c0ec6, 0x024a5ed9, 0x00ef9637, 0x038779de, 0x01704ba0, 0x01a6776b, 0x001ce853}}, Y: Field{[10]uint32{0x02d2c49c, 0x03929c1e, 0x03a78b0c, 0x01d3332c, 0x01ceb585, 0x022fcb22, 0x0067bb7e, 0x0313569d, 0x03fde98e, 0x003101a3}}}, + {X: Field{[10]uint32{0x02af91b5, 0x01b15dad, 0x038ebfdc, 0x00d7677b, 0x028748d8, 0x039b76df, 0x01e9d261, 0x01b136eb, 0x028627d2, 0x00192228}}, Y: Field{[10]uint32{0x016d8ff3, 0x01806f4f, 0x02697b5c, 0x025416b6, 0x033c7f06, 0x0116ec1f, 0x030916a9, 0x0046462b, 0x01f0b050, 0x0009fe2c}}}, + {X: Field{[10]uint32{0x0151046c, 0x02753414, 0x0371bd8c, 0x023865e3, 0x02cca1d3, 0x01f73ef3, 0x01ee2ef4, 0x0132636e, 0x027a5b54, 0x0025951b}}, Y: Field{[10]uint32{0x01f4309d, 0x018329c1, 0x0189e841, 0x01cac984, 0x023b10f7, 0x00257260, 0x00f07d22, 0x03b3fc88, 0x032f8fe9, 0x003413f8}}}, + {X: Field{[10]uint32{0x00fecdf8, 0x0118fb63, 0x00066761, 0x01b20b4a, 0x01e76998, 0x01c808bb, 0x02cdb909, 0x02c50e80, 0x03564598, 0x002e811b}}, Y: Field{[10]uint32{0x0227250f, 0x000c8c8f, 0x01d68536, 0x00341de3, 0x023e57bc, 0x034f676a, 0x007d37c0, 0x015f0550, 0x03abd424, 0x003f1b88}}}, + {X: Field{[10]uint32{0x02d0e4ec, 0x02e02bd6, 0x027df310, 0x01fec4f2, 0x005e7655, 0x021aa081, 0x02d82ed0, 0x0329f77d, 0x0351e633, 0x000e5551}}, Y: Field{[10]uint32{0x006d3b1c, 0x021ac0a8, 0x03b4f894, 0x00f0bee6, 0x03cdb2ba, 0x03ea8fd9, 0x03df5e95, 0x03c83a5d, 0x0284f040, 0x002915ae}}}, + {X: Field{[10]uint32{0x009c22aa, 0x029a2926, 0x0317cd46, 0x035c0386, 0x01ba56b8, 0x00411b0f, 0x016c9241, 0x027f5c36, 0x00e75fef, 0x00317d54}}, Y: Field{[10]uint32{0x03ac3fa9, 0x030d8d89, 0x02cc2173, 0x010b723c, 0x038d65ea, 0x03b9f43e, 0x02a987ac, 0x02d85d55, 0x02e03aea, 0x00152160}}}, + {X: Field{[10]uint32{0x025fa050, 0x026ab35b, 0x0327eb99, 0x01d5e6c9, 0x0326d4ba, 0x03818e90, 0x000b2a0e, 0x0236ce6a, 0x0210a48d, 0x000b3305}}, Y: Field{[10]uint32{0x00348c84, 0x00fe5ffe, 0x02b70a07, 0x01a524a3, 0x03fa205d, 0x01e79610, 0x01cb17b1, 0x0000b023, 0x03db2114, 0x00379b75}}}, + {X: Field{[10]uint32{0x03084b3f, 0x0227843d, 0x012c5add, 0x03e3f9ba, 0x003ae59c, 0x03639919, 0x00089ff2, 0x00721079, 0x00e73e94, 0x0024ec1f}}, Y: Field{[10]uint32{0x0018fa63, 0x02a03910, 0x03634cb5, 0x03fb8634, 0x02533efc, 0x018a686b, 0x02c362d3, 0x0099f953, 0x0076c5a7, 0x00029b01}}}, + {X: Field{[10]uint32{0x0291e7e9, 0x03015996, 0x03a3e438, 0x001d872e, 0x02b0ec27, 0x01a166c5, 0x03aeec82, 0x0119e578, 0x01f055c1, 0x00114f00}}, Y: Field{[10]uint32{0x016766b2, 0x016f1269, 0x033d9874, 0x026794b9, 0x030e14ac, 0x00221096, 0x03738436, 0x032288bb, 0x02c9b9d3, 0x003ca3ab}}}, + {X: Field{[10]uint32{0x000f12f1, 0x0359197a, 0x027946f8, 0x013012a5, 0x00c1d09a, 0x0055656e, 0x02148fad, 0x0230a282, 0x01fdac07, 0x000f1b7c}}, Y: Field{[10]uint32{0x02a5b58d, 0x033c99e0, 0x0354f6df, 0x01700542, 0x02d443db, 0x039fb4a4, 0x02a68212, 0x004d2e81, 0x004d4eaa, 0x0011866a}}}, + {X: Field{[10]uint32{0x01b98630, 0x033160c4, 0x02fd600d, 0x03e49c17, 0x03f12054, 0x0240836f, 0x01429895, 0x025e14c1, 0x01683995, 0x0006dfda}}, Y: Field{[10]uint32{0x00645c25, 0x03670803, 0x00a37372, 0x00574305, 0x0067ee9e, 0x0223b1bc, 0x01731c9b, 0x03ea33ef, 0x023ee3e8, 0x0009e771}}}, + {X: Field{[10]uint32{0x03fccc19, 0x03610bef, 0x0300697a, 0x03da7340, 0x006256f2, 0x013489db, 0x010a6427, 0x0342e66e, 0x01539d49, 0x00386dee}}, Y: Field{[10]uint32{0x01f9500f, 0x03763435, 0x03316fd0, 0x036c9fe4, 0x00f2acfe, 0x027a054d, 0x004628b1, 0x0195a614, 0x016f51dc, 0x000ac8ee}}}, + {X: Field{[10]uint32{0x0354f911, 0x0205f22b, 0x012bf4bc, 0x017e9588, 0x039ce552, 0x02a5d193, 0x015f79bb, 0x0108cd2f, 0x00c56fbf, 0x0010133c}}, Y: Field{[10]uint32{0x031ef662, 0x00b29907, 0x03c0f2e2, 0x02d5e625, 0x02023c04, 0x0178d95e, 0x021a6e07, 0x00162171, 0x02098830, 0x002d6481}}}, + {X: Field{[10]uint32{0x00aae0c1, 0x038bb243, 0x0171f43f, 0x03b05faa, 0x00e7819a, 0x00268d10, 0x02e817fa, 0x01af63bf, 0x0186da62, 0x0010fc76}}, Y: Field{[10]uint32{0x0274f9ad, 0x028802ca, 0x03583e51, 0x00e0acea, 0x033e93f4, 0x005d45e7, 0x0011f518, 0x0246ab4a, 0x02ce0ce8, 0x00317e96}}}, + {X: Field{[10]uint32{0x005b9c1f, 0x03b2bd83, 0x028fcd23, 0x03a2d9fb, 0x027bbcaa, 0x02dd8844, 0x02183b81, 0x0265445a, 0x01c6b320, 0x00286211}}, Y: Field{[10]uint32{0x03ef1f44, 0x030a546e, 0x03b02dfc, 0x03c573ae, 0x038f54e7, 0x020619c6, 0x03c5350e, 0x01f9acb3, 0x01d9d7e0, 0x002603b5}}}, + {X: Field{[10]uint32{0x03ac01ed, 0x00124839, 0x015aa2a3, 0x02b7009b, 0x00254c38, 0x000f24a7, 0x01cc17be, 0x02609181, 0x03eb0af9, 0x00013671}}, Y: Field{[10]uint32{0x03e781d3, 0x01070654, 0x031c970d, 0x02e67ea6, 0x0097065b, 0x00cd83dd, 0x033cf00f, 0x03394c89, 0x0335bb0d, 0x00319316}}}, + {X: Field{[10]uint32{0x03e7c25d, 0x03ab7225, 0x00814eda, 0x03dc1319, 0x0155953e, 0x03a2a981, 0x01317833, 0x036c26f3, 0x02f2fbc3, 0x00386348}}, Y: Field{[10]uint32{0x03c7e07e, 0x03ca88bb, 0x00b5953e, 0x02ca15c0, 0x000f15b8, 0x032aa1c0, 0x037989df, 0x0081c893, 0x02817115, 0x00330962}}}, + {X: Field{[10]uint32{0x0247879d, 0x02f6f94a, 0x03d5a3c8, 0x029e6f0d, 0x0035083a, 0x030505fa, 0x02ec9a60, 0x02413e34, 0x01f9f220, 0x0005815d}}, Y: Field{[10]uint32{0x0279a5e5, 0x0157e4d4, 0x034ce0d6, 0x012cc274, 0x012c3870, 0x0350e7fb, 0x0191c60a, 0x025e3504, 0x00a6127e, 0x000795ad}}}, + {X: Field{[10]uint32{0x0192d514, 0x0280dc94, 0x03e53f9a, 0x01aa850d, 0x034c3c9f, 0x00f14d56, 0x02b7ebdd, 0x03589935, 0x03c757b1, 0x000ed946}}, Y: Field{[10]uint32{0x00231c3f, 0x015861a0, 0x022e419e, 0x01682287, 0x025feb28, 0x03722927, 0x031d8ec5, 0x000c483f, 0x03749599, 0x0025dea1}}}, + {X: Field{[10]uint32{0x02ba532a, 0x01e6a3c5, 0x03b0cd95, 0x02587f5a, 0x02a9660e, 0x0262aca1, 0x00250154, 0x033009d8, 0x01ef56fa, 0x0024216f}}, Y: Field{[10]uint32{0x02e9fe89, 0x01443c5e, 0x013b8c55, 0x005a3dae, 0x0368364c, 0x003a039e, 0x03f791d9, 0x01567179, 0x0108a557, 0x003f4174}}}, + {X: Field{[10]uint32{0x000569ec, 0x01151239, 0x00c21fef, 0x0095db87, 0x0067cf1b, 0x007c2b3a, 0x033aab8c, 0x00e18bf4, 0x006df64a, 0x0010890c}}, Y: Field{[10]uint32{0x020661bc, 0x004f563d, 0x032498bd, 0x0257fe59, 0x0063e723, 0x016790b9, 0x0087c2dc, 0x02f0773a, 0x02675279, 0x0021d02d}}}, + {X: Field{[10]uint32{0x0022935c, 0x00f28d77, 0x009182f8, 0x0303fd68, 0x02e0e2b2, 0x02f157b9, 0x03806b35, 0x00b8c69b, 0x02974a51, 0x002dcdd9}}, Y: Field{[10]uint32{0x01420103, 0x00a820a1, 0x0046251c, 0x000e75a2, 0x01890b3e, 0x023f572f, 0x00152a24, 0x03eb7bb9, 0x00202676, 0x0034d432}}}, + {X: Field{[10]uint32{0x010eb97a, 0x01093693, 0x01574557, 0x01a32ea0, 0x02bb82e0, 0x03069d21, 0x00505ab1, 0x0353429f, 0x038ed3b5, 0x001cee93}}, Y: Field{[10]uint32{0x02188271, 0x0292ff89, 0x01215adc, 0x026dc950, 0x013a58ba, 0x0218f4fe, 0x01b4a2d0, 0x030d8152, 0x0114552d, 0x0024ebce}}}, + {X: Field{[10]uint32{0x03d3d8ea, 0x012f80db, 0x01bef052, 0x0101af38, 0x020ae935, 0x01a52c14, 0x00576c45, 0x0093663c, 0x014e1747, 0x000a1680}}, Y: Field{[10]uint32{0x029af7dc, 0x00f9f21a, 0x028cab39, 0x01965a33, 0x039d4067, 0x0247536d, 0x03f5213f, 0x01dd5f9b, 0x01d8d2ce, 0x001bf6b4}}}, + {X: Field{[10]uint32{0x028e768f, 0x021a77b0, 0x01180963, 0x01e3b283, 0x0384c2fd, 0x01be302a, 0x025cea7c, 0x02d52e8a, 0x01d727bf, 0x002c24d3}}, Y: Field{[10]uint32{0x00b982c6, 0x01c2763c, 0x031bf2bc, 0x03df4535, 0x03484c94, 0x036c2644, 0x02bbb26e, 0x027cc52f, 0x01115602, 0x00372bc3}}}, + {X: Field{[10]uint32{0x03681561, 0x032303d6, 0x0365ec45, 0x033cd5ee, 0x02ffcb49, 0x03bc5742, 0x011c8bcc, 0x02a772dd, 0x02dd8b69, 0x000ed89e}}, Y: Field{[10]uint32{0x0046d19d, 0x00a5bf37, 0x015e1536, 0x02ee9dc8, 0x03693cd2, 0x0349f3fd, 0x02133649, 0x0202dcb6, 0x018009e3, 0x0002f686}}}, + {X: Field{[10]uint32{0x02cb5ac2, 0x00a8da54, 0x027c90a6, 0x01d9722a, 0x02e45938, 0x011d9b6a, 0x012e3f9a, 0x02277e81, 0x01ec1f22, 0x001f923f}}, Y: Field{[10]uint32{0x018cb5f2, 0x00e12e6f, 0x039ac61e, 0x023984a4, 0x0168449b, 0x02fb6d27, 0x021e10c5, 0x01a2159b, 0x007aac11, 0x003a1ebe}}}, + {X: Field{[10]uint32{0x023ffd9d, 0x03390f89, 0x0008b181, 0x02432a84, 0x00d094d8, 0x03bb0b90, 0x022c267f, 0x00eeeada, 0x008a5de3, 0x00100c7c}}, Y: Field{[10]uint32{0x01b0be07, 0x026dfc14, 0x006b58a7, 0x038c46e5, 0x01a8f23b, 0x0077fbd1, 0x0389beb9, 0x0297c269, 0x03d99737, 0x0033f713}}}, + {X: Field{[10]uint32{0x031ed764, 0x001fafe4, 0x00b1dd54, 0x00b1ee40, 0x00ec00a2, 0x03510730, 0x02e656f4, 0x036ed6fd, 0x037c61dd, 0x002e994a}}, Y: Field{[10]uint32{0x00029556, 0x011341c0, 0x00088a3b, 0x02566964, 0x001d2070, 0x00f19f80, 0x030b5d8d, 0x02055a8c, 0x0392d122, 0x0021ff2c}}}, + {X: Field{[10]uint32{0x0190e72d, 0x0307b419, 0x03b1bffd, 0x02e6e834, 0x0362c967, 0x03630c3c, 0x03dd95d2, 0x01d94eb1, 0x0172d101, 0x003ee4d9}}, Y: Field{[10]uint32{0x0036d8ed, 0x01e62092, 0x00587b08, 0x0119ad29, 0x02940382, 0x02562f8b, 0x03799659, 0x01a8c429, 0x03afdb6b, 0x002b7e8d}}}, + {X: Field{[10]uint32{0x003bae7b, 0x02621c2c, 0x01148991, 0x00a065a1, 0x01b97ff3, 0x021844a7, 0x006fdb78, 0x00214bdf, 0x03cb5e7c, 0x000a511c}}, Y: Field{[10]uint32{0x0190c86a, 0x03bb0e1f, 0x03617246, 0x0169b1d9, 0x0078463e, 0x02f56d28, 0x0209f951, 0x0219e9e2, 0x0136f991, 0x002f6415}}}, + {X: Field{[10]uint32{0x01bc574e, 0x01b21cf1, 0x00c0944a, 0x0231b4e9, 0x007687dc, 0x01a0edd3, 0x0337ced1, 0x00cff645, 0x004f73a6, 0x000bf03d}}, Y: Field{[10]uint32{0x0122ad1f, 0x001cd507, 0x0118415e, 0x01426914, 0x03ac572f, 0x02b8dcfa, 0x01499912, 0x018fe53a, 0x00eeffa0, 0x000a645f}}}, + {X: Field{[10]uint32{0x016d569e, 0x03009444, 0x00c40b9a, 0x03720eee, 0x018da210, 0x023b628c, 0x01d34f2c, 0x0169fbd6, 0x0251882c, 0x002047ec}}, Y: Field{[10]uint32{0x00a0c55d, 0x02464636, 0x00c00ad2, 0x001c170f, 0x02d480e4, 0x0250379a, 0x0204ad3f, 0x016be93b, 0x01472cb5, 0x001d37d9}}}, + {X: Field{[10]uint32{0x03fc5d07, 0x01f9852d, 0x0057ba9e, 0x03160bf7, 0x03c47996, 0x03539f94, 0x0051894a, 0x033c247d, 0x017cc1d6, 0x00116a78}}, Y: Field{[10]uint32{0x03069be1, 0x0072ab5e, 0x01bbb16d, 0x01b70dff, 0x034e1919, 0x02260cad, 0x02d19200, 0x0187d7ec, 0x004f0026, 0x00145a77}}}, + {X: Field{[10]uint32{0x01588e67, 0x03426bad, 0x00102645, 0x00e2de30, 0x00abd065, 0x02d71ef5, 0x003d96aa, 0x029eb51d, 0x03fc45cd, 0x00355dfd}}, Y: Field{[10]uint32{0x003be07a, 0x001c4a0c, 0x0125e521, 0x00b0c2ff, 0x02765e2c, 0x0231e33a, 0x011db618, 0x015f7f3b, 0x03717ea2, 0x001545ca}}}, + {X: Field{[10]uint32{0x0306e44f, 0x03846c66, 0x019c0650, 0x022ddde9, 0x024fb22d, 0x012c33bf, 0x0371e08d, 0x02a9b8e6, 0x02958098, 0x002990a6}}, Y: Field{[10]uint32{0x007dd2ed, 0x02992c65, 0x027dcf6a, 0x0097cb0e, 0x0336ab18, 0x0218902a, 0x00440f57, 0x0015772b, 0x02625587, 0x002bd253}}}, + {X: Field{[10]uint32{0x039a743d, 0x025a59e8, 0x00679073, 0x01e98f88, 0x0050bca3, 0x03d1e3ba, 0x00b1c80c, 0x0052d096, 0x0304b893, 0x0003ddf0}}, Y: Field{[10]uint32{0x01c1c7ee, 0x0218dfe3, 0x02c727e7, 0x00515638, 0x011c32f4, 0x003d03c6, 0x00452136, 0x0052f982, 0x017629d9, 0x003121e8}}}, + {X: Field{[10]uint32{0x02d1c988, 0x01985965, 0x01f5def7, 0x00bfecbe, 0x02cd76ea, 0x007b7b7a, 0x03f0a82e, 0x00491dc7, 0x02f61598, 0x001071bc}}, Y: Field{[10]uint32{0x01accb68, 0x02d4aa41, 0x031d3407, 0x0039176f, 0x02364277, 0x026da1f1, 0x039ed4ff, 0x00681d7f, 0x0144146c, 0x0016283d}}}, + {X: Field{[10]uint32{0x02b968d0, 0x019bb4cb, 0x01916cdf, 0x035c7f6d, 0x037ac2d2, 0x015d978f, 0x02aaacb3, 0x00debc27, 0x02c8c13d, 0x00321c93}}, Y: Field{[10]uint32{0x00d81221, 0x03495791, 0x029895ec, 0x03b69e18, 0x026ade66, 0x00af669b, 0x014bbf24, 0x00f9b79f, 0x03214210, 0x001c3b3d}}}, + {X: Field{[10]uint32{0x031fbbf2, 0x02ea7cff, 0x00650653, 0x012b81c3, 0x023b139e, 0x01d7ead9, 0x02204a2b, 0x0238daf8, 0x00460dd5, 0x0038a223}}, Y: Field{[10]uint32{0x0342509e, 0x00acd4c8, 0x0108c331, 0x02625488, 0x01bc1584, 0x0082f580, 0x01888797, 0x00ee2adf, 0x00dae139, 0x001c5644}}}, + {X: Field{[10]uint32{0x02d834dd, 0x02b0dbd9, 0x01ec1c14, 0x00d847aa, 0x01f56cf7, 0x02a99be6, 0x01999c9a, 0x0202e1ad, 0x0384d72d, 0x003c7d30}}, Y: Field{[10]uint32{0x00cc7e3f, 0x039cdd49, 0x03c44835, 0x0229a5ac, 0x02219838, 0x0326a9e1, 0x038527a3, 0x010b23ae, 0x03c24801, 0x002d550e}}}, + {X: Field{[10]uint32{0x01940a5b, 0x0204ad0c, 0x01e73f61, 0x0298d067, 0x0217aec3, 0x03b75fd6, 0x028d4126, 0x02df6c1d, 0x03f5832f, 0x00121d1d}}, Y: Field{[10]uint32{0x032608a7, 0x01e35786, 0x03c54c5f, 0x0158db6d, 0x020284f5, 0x00a9b55a, 0x004e3dc3, 0x03ea62f1, 0x01de4203, 0x00240c8b}}}, + {X: Field{[10]uint32{0x00ca75af, 0x02bc0dc5, 0x0229bff8, 0x000a7f84, 0x010c55df, 0x02cfba7d, 0x00f957e0, 0x019f892e, 0x023a5831, 0x0029c9a5}}, Y: Field{[10]uint32{0x008f7449, 0x01945b70, 0x0232d99f, 0x00954e96, 0x034a6369, 0x02d9507f, 0x0154d156, 0x00a70204, 0x0184d689, 0x0023f5ea}}}, + {X: Field{[10]uint32{0x0399e97c, 0x00ab16e2, 0x03033876, 0x030b8804, 0x00baa763, 0x01a669a3, 0x013a231e, 0x03ac7276, 0x01b4cf80, 0x00353083}}, Y: Field{[10]uint32{0x00eca01f, 0x031be7db, 0x0287a426, 0x00381624, 0x01f5abc5, 0x0246428d, 0x02a20713, 0x02943212, 0x03ba2555, 0x002e871d}}}, + {X: Field{[10]uint32{0x02748168, 0x027bf88e, 0x03afafa5, 0x0076b15b, 0x025159ba, 0x036343cd, 0x01b5a55a, 0x01c0aefb, 0x005389ae, 0x0001f3e7}}, Y: Field{[10]uint32{0x032336b8, 0x00e140ad, 0x0296f6ec, 0x0029ba90, 0x03489bee, 0x00c4d23b, 0x00ec347c, 0x01eef28b, 0x0324338c, 0x003b38ec}}}, + {X: Field{[10]uint32{0x00b73e55, 0x009506d1, 0x02f49699, 0x00ced36e, 0x03eec928, 0x00c9a01b, 0x039f9c30, 0x0352bce5, 0x00e3c1eb, 0x00248042}}, Y: Field{[10]uint32{0x01f466fc, 0x00b88025, 0x01395ba9, 0x01e1493d, 0x016cf8f4, 0x02e92399, 0x003f348e, 0x03120d3c, 0x0133d8ad, 0x000f88ac}}}, + {X: Field{[10]uint32{0x02479e90, 0x02da7109, 0x02a8a4fe, 0x00e12559, 0x03fc7605, 0x02b4ca94, 0x03613372, 0x021d8a6c, 0x038a98c4, 0x000559ab}}, Y: Field{[10]uint32{0x02997796, 0x02a145b6, 0x03926dab, 0x02ebacfd, 0x030da5d3, 0x00bf871e, 0x017db986, 0x00af931e, 0x01664bd7, 0x000a1231}}}, + {X: Field{[10]uint32{0x0361723c, 0x01daaf2b, 0x03044c0f, 0x02f89c7b, 0x01d2f6d9, 0x00ac2a2c, 0x017a7041, 0x0233af1f, 0x027102eb, 0x002936d7}}, Y: Field{[10]uint32{0x002e8ca4, 0x023232b1, 0x036a5695, 0x00abcae7, 0x03272f5f, 0x01ea501e, 0x004bc0a2, 0x00f777d8, 0x02e075a7, 0x00198f85}}}, + {X: Field{[10]uint32{0x0153e5fb, 0x00ef29e3, 0x00c13849, 0x01dd81de, 0x0333d90e, 0x031e73c6, 0x025d1106, 0x02e3e418, 0x03538bbd, 0x00343273}}, Y: Field{[10]uint32{0x021d9a60, 0x01e418e2, 0x01bd9683, 0x02201f70, 0x009975ad, 0x02e2f4c3, 0x00a21250, 0x03501f30, 0x020e8b9f, 0x002dbb33}}}, + {X: Field{[10]uint32{0x03d8391f, 0x01f39e3f, 0x0204ce65, 0x0051538e, 0x014a58d5, 0x033ce8e2, 0x0196d67b, 0x015ef5c1, 0x0292480f, 0x001d97ee}}, Y: Field{[10]uint32{0x0218302f, 0x03b24087, 0x023dbaf6, 0x02f57ceb, 0x0050879b, 0x03d06ad3, 0x03b552e3, 0x00d43968, 0x03ba1035, 0x00172c76}}}, + {X: Field{[10]uint32{0x03fb4a5e, 0x007b9be2, 0x025032c5, 0x02396bd2, 0x009bd3f8, 0x022d94be, 0x02a7b9b6, 0x01c0ad2a, 0x01e8e846, 0x0027e76a}}, Y: Field{[10]uint32{0x0296a0f6, 0x028b5fd5, 0x0284dedf, 0x02374b01, 0x021d8da0, 0x001a22b2, 0x017320ca, 0x005ec3ac, 0x019d7ecf, 0x00176f52}}}, + {X: Field{[10]uint32{0x03fdd3f4, 0x02480884, 0x025bfb11, 0x0272d196, 0x00ad949c, 0x006bbd7c, 0x03b1a166, 0x02252dcb, 0x003bdb95, 0x002be1b2}}, Y: Field{[10]uint32{0x0399e117, 0x03cf04b5, 0x00e55123, 0x02e6c6e2, 0x03004a7b, 0x0310709b, 0x03d2b25c, 0x00046580, 0x027d5541, 0x003b01a0}}}, + {X: Field{[10]uint32{0x01587e77, 0x03e8d43f, 0x0309cd94, 0x02c8b32e, 0x0364c8e3, 0x0202f8ce, 0x032b3fcc, 0x02f2341d, 0x01932fcc, 0x003eed22}}, Y: Field{[10]uint32{0x00c0b858, 0x0046db36, 0x03e04811, 0x035095ee, 0x0258598a, 0x00d01d69, 0x0051abd6, 0x00cf6acd, 0x01242793, 0x0003e737}}}, + {X: Field{[10]uint32{0x02d60684, 0x03b7079f, 0x0269bae6, 0x03e242a4, 0x00621f36, 0x00ab7270, 0x0315ecae, 0x030abd8a, 0x01a3ad97, 0x00103b2c}}, Y: Field{[10]uint32{0x0158b32e, 0x02a8014d, 0x005f288d, 0x02cfb661, 0x019a41f4, 0x008c07ee, 0x00e3e2b3, 0x0185f648, 0x0194fa3a, 0x003fe7b0}}}, + {X: Field{[10]uint32{0x00878f52, 0x01802706, 0x03691973, 0x00c31f4e, 0x0339873c, 0x03f808e3, 0x03d9014b, 0x00ad0bf2, 0x02f10c76, 0x000c7e24}}, Y: Field{[10]uint32{0x01718c95, 0x00d9cd25, 0x03ff7be5, 0x02e3df53, 0x015cd610, 0x03dae4b0, 0x0131066e, 0x01cd154c, 0x0005f31f, 0x00366f54}}}, + {X: Field{[10]uint32{0x00886c5c, 0x025bf209, 0x028f31c6, 0x024e32ad, 0x03921f81, 0x0175dce7, 0x014d150c, 0x001478b6, 0x0129e9f6, 0x002e8489}}, Y: Field{[10]uint32{0x016b1ed1, 0x01c926a1, 0x03c20d9c, 0x02730e5a, 0x007c0285, 0x01eb2708, 0x00577d33, 0x0354e46c, 0x031f7e9b, 0x0030cf01}}}, + {X: Field{[10]uint32{0x0124cf03, 0x030857ca, 0x018c5030, 0x024f5605, 0x03ef45d9, 0x02e68098, 0x013ecbc5, 0x034c4726, 0x00129a26, 0x000d4c59}}, Y: Field{[10]uint32{0x023a9742, 0x031b4d5e, 0x00e3f6a9, 0x01be460d, 0x03f92ef0, 0x016d8e16, 0x023e2d9c, 0x008eee73, 0x00d95216, 0x0021a988}}}, + {X: Field{[10]uint32{0x02c8e462, 0x00628854, 0x033ebf97, 0x02b1e146, 0x004a4aa7, 0x013b1fe7, 0x02ce92ca, 0x012a98d7, 0x030be413, 0x000c091d}}, Y: Field{[10]uint32{0x03c8c8ee, 0x03ac143f, 0x01225bbc, 0x02abe063, 0x00ab3f8f, 0x039ce139, 0x01c1579c, 0x01ebf85b, 0x03bd7214, 0x0007f3eb}}}, + {X: Field{[10]uint32{0x03da6564, 0x0340721a, 0x0071a672, 0x02993742, 0x02533c1b, 0x02507638, 0x02dbf169, 0x03a1b16d, 0x013da40e, 0x003d6e8c}}, Y: Field{[10]uint32{0x0000647d, 0x012eeb6e, 0x018c7294, 0x02090dfd, 0x018f9652, 0x01555d92, 0x02e95ec1, 0x01e41f25, 0x010db969, 0x000042a4}}}, + {X: Field{[10]uint32{0x0264e2f1, 0x02d6715c, 0x018ebb33, 0x00f84cb0, 0x00e485a2, 0x00632546, 0x037f426b, 0x033414d3, 0x03e2972c, 0x001a1785}}, Y: Field{[10]uint32{0x01f291c6, 0x000513ae, 0x03a0cb93, 0x00b77a83, 0x03470fd4, 0x00455b6b, 0x03a3f475, 0x02ab069d, 0x0338be84, 0x00259516}}}, + {X: Field{[10]uint32{0x03f119eb, 0x03d97466, 0x028e0504, 0x03718749, 0x01fdd481, 0x03a4701f, 0x01e1bca7, 0x02608a96, 0x01fdfacc, 0x003804a1}}, Y: Field{[10]uint32{0x01c39909, 0x01f5b967, 0x010630f7, 0x01790719, 0x0140bf5b, 0x01c80ae6, 0x003615ba, 0x036aebbe, 0x013a2479, 0x002ba085}}}, + {X: Field{[10]uint32{0x01839601, 0x00872c15, 0x03220b54, 0x024dd8d7, 0x0093798a, 0x024c8079, 0x00d67200, 0x0043b1e1, 0x01863277, 0x00318791}}, Y: Field{[10]uint32{0x006c04ea, 0x02e32c9d, 0x0026dcde, 0x03c5d0cf, 0x025d42fc, 0x02e95572, 0x023e0163, 0x01939e87, 0x03f5aa5b, 0x0039187e}}}, + {X: Field{[10]uint32{0x03d192d4, 0x01f597c7, 0x01af3be8, 0x00d2400a, 0x013106fc, 0x004ed876, 0x00d8ca25, 0x0242db89, 0x02cb4e58, 0x0007109e}}, Y: Field{[10]uint32{0x02cf29d0, 0x03b0310d, 0x023e9c9c, 0x0357ba2b, 0x0184935a, 0x030d0c28, 0x0304fa6e, 0x014a2e6e, 0x00251518, 0x000765b8}}}, + {X: Field{[10]uint32{0x012fd8e7, 0x037dbc7c, 0x02f54431, 0x0066d660, 0x005a9326, 0x01f51c2e, 0x02ddb3ba, 0x0225ed2d, 0x03fd6d51, 0x001795de}}, Y: Field{[10]uint32{0x011c6eb4, 0x03535e48, 0x01ff9203, 0x01131eb4, 0x00123cb0, 0x02969ff4, 0x0036e908, 0x030674ea, 0x02929734, 0x0030685c}}}, + {X: Field{[10]uint32{0x00237b30, 0x00ed028a, 0x028a6817, 0x01d9b4fa, 0x02adc6ae, 0x03ef2b7c, 0x03aefc8d, 0x022902eb, 0x03331f96, 0x00331e2c}}, Y: Field{[10]uint32{0x01857d42, 0x02c29011, 0x038aa14e, 0x01f250db, 0x00dfc2ce, 0x0048e32d, 0x01ef04b4, 0x0301a3fc, 0x01b20a5b, 0x0016dda4}}}, + {X: Field{[10]uint32{0x00919fb6, 0x020c293b, 0x0016a0b1, 0x00aa56b7, 0x02c44537, 0x02bcfb3a, 0x01dc288f, 0x0113ca79, 0x0037487b, 0x000e1571}}, Y: Field{[10]uint32{0x009359d2, 0x00a1f20a, 0x0151911c, 0x03d7868e, 0x01ed1949, 0x0022f6f5, 0x03bcd5b3, 0x03e8a153, 0x029a48cb, 0x0037cb87}}}, + {X: Field{[10]uint32{0x01d16b19, 0x016119ae, 0x03c928f1, 0x0086df79, 0x00dc62cb, 0x01f6cf5b, 0x03fcf6b9, 0x00d5bf17, 0x03b40a83, 0x0030148c}}, Y: Field{[10]uint32{0x0254f500, 0x038efde7, 0x0327525e, 0x03d4588c, 0x00956616, 0x007a3795, 0x020eac65, 0x02211cfe, 0x02390ce7, 0x0002c6f6}}}, + {X: Field{[10]uint32{0x019dfffb, 0x039f7b02, 0x0010b455, 0x00799586, 0x010b736c, 0x02407cd5, 0x02000245, 0x009a9f66, 0x013cf342, 0x001b0193}}, Y: Field{[10]uint32{0x009eb9a7, 0x02093358, 0x002e9925, 0x01dca349, 0x02aa5444, 0x0071710b, 0x00f8fd2a, 0x030687e0, 0x0042d25e, 0x00058365}}}, + {X: Field{[10]uint32{0x03714cf2, 0x01eea762, 0x01009bf3, 0x01c91e27, 0x01b3e207, 0x00379a9f, 0x021a93a0, 0x006a946d, 0x038970bb, 0x0025963a}}, Y: Field{[10]uint32{0x02c51cc2, 0x00c07aa4, 0x01ff7a58, 0x012665f5, 0x0096be89, 0x01036278, 0x021a903f, 0x023e2de0, 0x00aff7da, 0x003352e9}}}, + {X: Field{[10]uint32{0x03b4f0c8, 0x039fa992, 0x031b87a3, 0x01a69c70, 0x035cf1f9, 0x00fe65bd, 0x032b0c4c, 0x01bdc247, 0x0110a554, 0x001b808e}}, Y: Field{[10]uint32{0x00c459c5, 0x026b76cd, 0x0358999b, 0x00d99470, 0x007faa9b, 0x0362486e, 0x02d8cfc7, 0x01cd3767, 0x01d790ec, 0x003dbb59}}}, + {X: Field{[10]uint32{0x00c7ff6e, 0x023e2655, 0x03a141e6, 0x006f5831, 0x03926290, 0x00cc14df, 0x003528e0, 0x001267e4, 0x0098e970, 0x000e8d6b}}, Y: Field{[10]uint32{0x032069ed, 0x00e36865, 0x00eb6c4d, 0x03e29d91, 0x001f247f, 0x03b68e09, 0x014ac0c9, 0x0070c14e, 0x0116da63, 0x00244f65}}}, + {X: Field{[10]uint32{0x036af212, 0x014395c1, 0x023db073, 0x01bc925d, 0x022317c6, 0x02c6522f, 0x036def30, 0x02a916a2, 0x025115df, 0x0034227e}}, Y: Field{[10]uint32{0x00a6da9c, 0x03f720c6, 0x00f6ab12, 0x02b12864, 0x03a18e5d, 0x00ffe844, 0x025120cf, 0x03eb11de, 0x0173f326, 0x00139aba}}}, + {X: Field{[10]uint32{0x018cf2ef, 0x02ecb083, 0x036ab045, 0x0357de42, 0x005b9cd9, 0x00f654c7, 0x00ea0f23, 0x00aad1d2, 0x012f2aa6, 0x0039ccf1}}, Y: Field{[10]uint32{0x0182a291, 0x00377c75, 0x02d89fb8, 0x0215c314, 0x0336ac48, 0x035ffdd4, 0x0323ab28, 0x01ca4eb2, 0x01c93c67, 0x001c0455}}}, + {X: Field{[10]uint32{0x03f14c7a, 0x02bdd8f9, 0x01b9be8c, 0x002ee065, 0x021eb477, 0x00aeafe1, 0x00aa6f24, 0x01a13f99, 0x037dc006, 0x0012dbde}}, Y: Field{[10]uint32{0x0194e00d, 0x01917ac8, 0x01d5a2b0, 0x001763c8, 0x017bfaea, 0x014e8132, 0x01805d8a, 0x01eccc30, 0x0380ac75, 0x001b162d}}}, + {X: Field{[10]uint32{0x0267f79d, 0x009b97f8, 0x038b4811, 0x0308ed1d, 0x0344ff51, 0x03154b9c, 0x00d7aeb8, 0x02b02831, 0x0002cd1f, 0x0006d481}}, Y: Field{[10]uint32{0x03db1a39, 0x03b0dd4d, 0x013c19e8, 0x03c424f6, 0x0030b252, 0x026b7536, 0x004ee943, 0x024c1283, 0x01005664, 0x00023b83}}}, + {X: Field{[10]uint32{0x017139b1, 0x02bcafae, 0x024f5bf9, 0x00fd0f61, 0x023400cc, 0x022a2179, 0x02da4c63, 0x03b617f0, 0x02d5d7f1, 0x00224db9}}, Y: Field{[10]uint32{0x029b402b, 0x00ac1060, 0x03c4778d, 0x005e96f5, 0x018879f2, 0x03f4c989, 0x00cdc8a6, 0x00ca8ddc, 0x0220b4b9, 0x000a604a}}}, + {X: Field{[10]uint32{0x016b518f, 0x00441172, 0x021eec4f, 0x01bd6e86, 0x01aebd39, 0x0157645c, 0x036c043a, 0x015536a8, 0x027f4813, 0x001a022b}}, Y: Field{[10]uint32{0x00425810, 0x0264e967, 0x01c2231b, 0x020df1d2, 0x00f581b9, 0x03d055d7, 0x00e85fd5, 0x0237715e, 0x026e8872, 0x001abf2b}}}, + {X: Field{[10]uint32{0x01a2cd1c, 0x01e4928d, 0x0310f236, 0x024d56a6, 0x0193e232, 0x00076002, 0x011bba76, 0x00fd9848, 0x029444c7, 0x00161b19}}, Y: Field{[10]uint32{0x025416c7, 0x0004ab3f, 0x031c8862, 0x0377bc19, 0x03873537, 0x00df2df1, 0x00f5507d, 0x028f2d02, 0x001ff6eb, 0x001d2c24}}}, + {X: Field{[10]uint32{0x03f89e11, 0x025efa07, 0x0066b078, 0x02966733, 0x020b183a, 0x02461507, 0x0388453e, 0x03c78131, 0x025ddead, 0x001e2720}}, Y: Field{[10]uint32{0x006cb5ab, 0x01e24e39, 0x0103cb8f, 0x015fffa6, 0x03e40cc3, 0x027e62a6, 0x027480b8, 0x02c4f1af, 0x026f641b, 0x002041aa}}}, + {X: Field{[10]uint32{0x01419797, 0x01f3efaa, 0x02076acd, 0x01bb8763, 0x02e52042, 0x01fd92f2, 0x00d0ddf9, 0x03ea9988, 0x00bbfd26, 0x0035eae0}}, Y: Field{[10]uint32{0x00c5a823, 0x02114de4, 0x02efbc71, 0x022e7ccb, 0x026e50a5, 0x004e7453, 0x034a85f5, 0x02c40ebb, 0x0372a6d1, 0x0009abe7}}}, + {X: Field{[10]uint32{0x02f67f7f, 0x015b4bcd, 0x033154c2, 0x00cf280a, 0x00bddf0f, 0x007af106, 0x012b311b, 0x006ae118, 0x02d44daf, 0x00063dc4}}, Y: Field{[10]uint32{0x037d25bc, 0x026f6981, 0x03ee9f2d, 0x034c8574, 0x006b06d8, 0x013fdefe, 0x033c3f43, 0x03533bb6, 0x0150f92f, 0x003102c6}}}, + {X: Field{[10]uint32{0x03e5a06e, 0x039ba9b1, 0x005b3eb9, 0x00c8877a, 0x02fc399d, 0x02662f31, 0x022a7cbf, 0x00623de3, 0x036d9f6d, 0x00221cc9}}, Y: Field{[10]uint32{0x03c9e1a6, 0x029c2079, 0x02b4e054, 0x010f012d, 0x00dac977, 0x0395985e, 0x0020a3a7, 0x02e7a3ba, 0x01378ee9, 0x000a5fa0}}}, + {X: Field{[10]uint32{0x0288e0ad, 0x00b299b1, 0x01157145, 0x019937de, 0x0030fadd, 0x037d0c73, 0x00f57cdf, 0x005faf02, 0x01015bd2, 0x000406e0}}, Y: Field{[10]uint32{0x01179e6a, 0x01cdc617, 0x01ab339b, 0x02d1b253, 0x014c7542, 0x02a3e372, 0x01816d40, 0x00e0c461, 0x032fad20, 0x003e9b06}}}, + {X: Field{[10]uint32{0x0342dd57, 0x035314df, 0x03b6cd81, 0x0328a612, 0x03abe3b3, 0x02c81c7e, 0x02520a8c, 0x00518047, 0x015776c3, 0x001decf0}}, Y: Field{[10]uint32{0x004a645a, 0x0226417f, 0x00244925, 0x017453c3, 0x00040cce, 0x010fbd6b, 0x0084c9b4, 0x0006dc70, 0x02b1dab6, 0x002342f3}}}, + {X: Field{[10]uint32{0x01daec7a, 0x01a9a83f, 0x005d3ecf, 0x0224cf20, 0x02fbe2c1, 0x02e99bc4, 0x03aca338, 0x0182dbfd, 0x015256ac, 0x000547cb}}, Y: Field{[10]uint32{0x024f62d6, 0x033a7c1d, 0x03ea674e, 0x02227355, 0x01c4833c, 0x027a508d, 0x03038d64, 0x012fe645, 0x017710cd, 0x0034aab3}}}, + {X: Field{[10]uint32{0x031d32c7, 0x028e0245, 0x011a2029, 0x0070446f, 0x00950881, 0x012d1b7e, 0x0338dbe2, 0x0105ed18, 0x0327f41e, 0x00375d73}}, Y: Field{[10]uint32{0x01b67be5, 0x00c88906, 0x013dd46c, 0x003363ed, 0x00ee2217, 0x0324761b, 0x0303c33c, 0x026e012a, 0x0055a338, 0x0038ca2e}}}, + {X: Field{[10]uint32{0x011d7a83, 0x035fbb9e, 0x0028a494, 0x01d8cd6d, 0x026a3f6b, 0x03d986c7, 0x02366ab3, 0x03671277, 0x03ebbdd1, 0x0003ea87}}, Y: Field{[10]uint32{0x0025d572, 0x015c4f6e, 0x029c413b, 0x02760695, 0x01948bb2, 0x00791955, 0x0248ee56, 0x000aae30, 0x014f8fce, 0x0037cd87}}}, + {X: Field{[10]uint32{0x018f8be5, 0x036bfb53, 0x03545671, 0x037e31a9, 0x00a4cada, 0x019e2565, 0x01ee65b6, 0x02ecc7f7, 0x01be5bc2, 0x000f3043}}, Y: Field{[10]uint32{0x0039c2df, 0x023995dc, 0x0110dbc0, 0x002ba909, 0x00710112, 0x0350b25d, 0x0292a3a9, 0x02b5bc39, 0x01ef8c66, 0x00200b51}}}, + {X: Field{[10]uint32{0x03b93ba2, 0x01dafb29, 0x03a1eaf5, 0x02140d78, 0x01856cc4, 0x014a00b8, 0x00dee7f7, 0x03b07245, 0x0325325d, 0x00255139}}, Y: Field{[10]uint32{0x02eeeb49, 0x020c4577, 0x03686aad, 0x03779421, 0x00aaf137, 0x005cce33, 0x0339b037, 0x00f013af, 0x03a68151, 0x0033b1f6}}}, + {X: Field{[10]uint32{0x0383a964, 0x02f8df27, 0x01eac038, 0x01b89de7, 0x0154eec6, 0x03737db0, 0x017ff8b4, 0x0188d9ec, 0x03dcd5d0, 0x0025283e}}, Y: Field{[10]uint32{0x03efe82a, 0x00a7bd33, 0x030e576f, 0x004d68a8, 0x03fea742, 0x0290b8b8, 0x0223e169, 0x01b206dc, 0x00fd5ef0, 0x003c97cd}}}, + {X: Field{[10]uint32{0x02b579c7, 0x03a12cf1, 0x03633100, 0x00ec27dd, 0x0314f67c, 0x0085ee90, 0x01fbd4bf, 0x01f8bda5, 0x01b2c3fc, 0x0026278a}}, Y: Field{[10]uint32{0x0221c888, 0x0143bf6d, 0x02771172, 0x010c0708, 0x01ed003a, 0x005f6abe, 0x034f3e99, 0x000a5c0a, 0x01280cd0, 0x0018229b}}}, + {X: Field{[10]uint32{0x033494a5, 0x00192fc1, 0x017f1c81, 0x0173a502, 0x0249b4bd, 0x0164d2b0, 0x00e979b0, 0x029674ec, 0x03c44295, 0x0030e317}}, Y: Field{[10]uint32{0x01d1e2fb, 0x00118b58, 0x02ecb760, 0x01c5f2fb, 0x031d1dbc, 0x003af059, 0x00e471ae, 0x02cda992, 0x03f6d354, 0x00058902}}}, + {X: Field{[10]uint32{0x03a7a63b, 0x0304e3c3, 0x037e1546, 0x01adeb61, 0x0207dc65, 0x031963be, 0x0341d8c5, 0x0011b162, 0x026735c4, 0x0037a73d}}, Y: Field{[10]uint32{0x006639ac, 0x021b78d4, 0x00cb7575, 0x039f66e5, 0x03ecc19d, 0x01120042, 0x03729275, 0x018b8f88, 0x024fba91, 0x000bf0a0}}}, + {X: Field{[10]uint32{0x02c06522, 0x0110303d, 0x023c4c8c, 0x002119d6, 0x03f1dd9e, 0x0230cf27, 0x01d84b38, 0x0022d41e, 0x0137e567, 0x0000933f}}, Y: Field{[10]uint32{0x002af897, 0x00eb1e71, 0x01f00738, 0x01ab36df, 0x021aee67, 0x016b219c, 0x034d2895, 0x00055ed2, 0x00ea0982, 0x00072f32}}}, + {X: Field{[10]uint32{0x007cc121, 0x00858e7a, 0x01ed7264, 0x023d8990, 0x012b275d, 0x038247a7, 0x00414a95, 0x02e6d8bd, 0x01086ad8, 0x00275b8c}}, Y: Field{[10]uint32{0x02d3abe0, 0x025e6dba, 0x01bca757, 0x02d379d4, 0x0043c46a, 0x029d0f3c, 0x02b59ad5, 0x0299f536, 0x000a6792, 0x002e491c}}}, + {X: Field{[10]uint32{0x0209354d, 0x02f82021, 0x01d38673, 0x00b749d9, 0x0374aea2, 0x023b4e37, 0x01c21e53, 0x020e55ce, 0x01ae28b2, 0x00014aa2}}, Y: Field{[10]uint32{0x00334e51, 0x0316c7b6, 0x01708089, 0x035661ed, 0x01469b06, 0x01dacbd8, 0x03cccd20, 0x020c2f4d, 0x01579b65, 0x003060fb}}}, + {X: Field{[10]uint32{0x0227571d, 0x034d0836, 0x0255046b, 0x0230b05c, 0x01cda3bf, 0x01c9f2bd, 0x03f5d31d, 0x00601c90, 0x0272491d, 0x000bff4c}}, Y: Field{[10]uint32{0x035b6ad5, 0x03326994, 0x01d52131, 0x02d74d06, 0x00599934, 0x037abbd6, 0x01e48be6, 0x02ccd28c, 0x03bd6f38, 0x00204ba3}}}, + {X: Field{[10]uint32{0x00973fca, 0x02567167, 0x022f2eba, 0x02709c19, 0x0265df68, 0x02c64ec5, 0x0251b66d, 0x0290e8d7, 0x02094269, 0x00175831}}, Y: Field{[10]uint32{0x010efadc, 0x03c7d221, 0x0048a3af, 0x02165a71, 0x006d3b92, 0x03d03350, 0x031bb7e3, 0x035864ac, 0x024fd1af, 0x003d644c}}}, + {X: Field{[10]uint32{0x0112ff75, 0x029ad2cf, 0x00d0ae6d, 0x03e615e1, 0x004c86da, 0x00706d58, 0x0026340e, 0x00cd4fd1, 0x000abfe5, 0x0008f831}}, Y: Field{[10]uint32{0x00191d9d, 0x0085444a, 0x03827f99, 0x01e66eb3, 0x00f19d5a, 0x02032851, 0x01baf682, 0x0024a824, 0x00b5fc86, 0x003a4211}}}, + {X: Field{[10]uint32{0x006094f6, 0x0221739f, 0x02bb1155, 0x01e4c2f4, 0x0050e67d, 0x03cdf6a0, 0x02f20d77, 0x00704b29, 0x00ab5d4a, 0x00251606}}, Y: Field{[10]uint32{0x02695e03, 0x00735592, 0x03b6f9a1, 0x018febf2, 0x0032ca81, 0x03b7b6d8, 0x0269c969, 0x02b9b6a9, 0x01d0e2f9, 0x002d7cb0}}}, + {X: Field{[10]uint32{0x00724c8c, 0x03b363f6, 0x0124bc41, 0x0175881b, 0x015043be, 0x00335ef3, 0x03a469ca, 0x02fda861, 0x037d2586, 0x00347d36}}, Y: Field{[10]uint32{0x02206839, 0x0296b384, 0x03365a1c, 0x02ac071b, 0x02b1525e, 0x00a4a719, 0x0080ce9b, 0x01dd2ef5, 0x038277c4, 0x00190153}}}, + {X: Field{[10]uint32{0x0014a18d, 0x01fd3b3b, 0x01e1860f, 0x00a973dd, 0x01158b4f, 0x010a8f44, 0x005f2d5b, 0x01ba706a, 0x014f2458, 0x0013d713}}, Y: Field{[10]uint32{0x00efdbe5, 0x02d28c6c, 0x03350986, 0x027a5c3e, 0x021e48bb, 0x01ffefb0, 0x013be2be, 0x01e581a5, 0x02716d54, 0x0015d5db}}}, + {X: Field{[10]uint32{0x0198150a, 0x01032e52, 0x02118c38, 0x031407a6, 0x013f8edf, 0x0393e40f, 0x023cf5c5, 0x00510f62, 0x005bdcb3, 0x00304ed8}}, Y: Field{[10]uint32{0x02cb8435, 0x000f2c85, 0x022b52f6, 0x0127d064, 0x006c368e, 0x0122c070, 0x022a8ea9, 0x03efd4b9, 0x02af99f1, 0x0023738b}}}, + {X: Field{[10]uint32{0x0029cbb6, 0x01d33409, 0x01753391, 0x019b899a, 0x03a3df24, 0x0073bad6, 0x024a5b5a, 0x00953925, 0x032ab66f, 0x00064dec}}, Y: Field{[10]uint32{0x02f2e385, 0x0005ce03, 0x0022bb57, 0x01e604f8, 0x030181e0, 0x00fffec6, 0x00eabb05, 0x001d72ef, 0x00a06f1b, 0x0025c4ac}}}, + {X: Field{[10]uint32{0x019ba2e4, 0x0186c1d0, 0x004d747e, 0x036deb4b, 0x00d757bb, 0x00ef87d6, 0x00ef386c, 0x01cbcc21, 0x033f2f17, 0x0039294c}}, Y: Field{[10]uint32{0x036b6f56, 0x00529eb2, 0x00c7c5af, 0x03326f05, 0x02132571, 0x02f05590, 0x009b7178, 0x0392e40e, 0x01a72ec2, 0x003a13df}}}, + {X: Field{[10]uint32{0x0206cca6, 0x03f6d2d5, 0x00dcffc7, 0x0106b855, 0x01d57a83, 0x03304217, 0x000a0cf5, 0x00aa3142, 0x00b0a3f4, 0x000be28e}}, Y: Field{[10]uint32{0x024681c1, 0x03ce31a3, 0x024f1134, 0x00b86c49, 0x002fa2a7, 0x03bb58a5, 0x0008d9c4, 0x0076d959, 0x02a52c30, 0x0021d931}}}, + {X: Field{[10]uint32{0x01a55ff7, 0x015c4aa0, 0x0070b873, 0x0266e106, 0x02acd145, 0x033aad7f, 0x00585b63, 0x00b5dedb, 0x01c2c51c, 0x0000f4af}}, Y: Field{[10]uint32{0x02d3e9e0, 0x02e3736d, 0x035e9496, 0x00da8fa2, 0x00922460, 0x0011db91, 0x01a808ff, 0x018f7ea6, 0x01adbbe2, 0x000cfdd2}}}, + {X: Field{[10]uint32{0x03ab7d3a, 0x03cf307b, 0x01b3e6e5, 0x00548b6f, 0x021ecec2, 0x00afe8f8, 0x02b9acf6, 0x01338cdd, 0x0008d676, 0x003f21fe}}, Y: Field{[10]uint32{0x0035176a, 0x032e5c4a, 0x00581717, 0x0093386f, 0x01c03430, 0x014292b0, 0x0015dd87, 0x03e4ddc2, 0x0303c1f4, 0x00339d7a}}}, + {X: Field{[10]uint32{0x031e68d5, 0x009c2fd6, 0x02cb4374, 0x014871f9, 0x01323549, 0x03326121, 0x00885dc0, 0x03847afa, 0x005c62de, 0x001fe06e}}, Y: Field{[10]uint32{0x029c4558, 0x0034a9da, 0x017f3ad7, 0x012bb572, 0x011750aa, 0x025b3dce, 0x01ba062d, 0x036d8705, 0x037d6a84, 0x002deb7b}}}, + {X: Field{[10]uint32{0x01fd5557, 0x022e40f8, 0x0288c826, 0x0224f085, 0x0233cc8f, 0x018bbe47, 0x01d8f47f, 0x00eb97a3, 0x003f7afd, 0x00358635}}, Y: Field{[10]uint32{0x00cd34b8, 0x02f2a9b8, 0x03fb4fc5, 0x0237f230, 0x0042ce9e, 0x024031f9, 0x03212679, 0x02e6c20a, 0x017b0c8a, 0x00186020}}}, + {X: Field{[10]uint32{0x016e4940, 0x03e532e2, 0x009310cc, 0x02f37ddb, 0x03694430, 0x020e0ee6, 0x03f540fc, 0x026c1b6b, 0x004ff237, 0x002e9693}}, Y: Field{[10]uint32{0x0107b1f2, 0x001d6a3f, 0x0128db91, 0x03954d29, 0x0325299d, 0x03cba4cc, 0x01309b24, 0x0239bd3b, 0x011a0b13, 0x000e8887}}}, + {X: Field{[10]uint32{0x00cfdf56, 0x00a7e8c6, 0x018abcec, 0x025720c2, 0x03801363, 0x02cd6eb0, 0x03591415, 0x00dd1a20, 0x01b60bee, 0x0031a462}}, Y: Field{[10]uint32{0x0339268c, 0x022f5275, 0x0279c582, 0x0078a6de, 0x019795e6, 0x038d01ec, 0x00232fa7, 0x0368eb37, 0x03c2b862, 0x00286176}}}, + {X: Field{[10]uint32{0x00efae12, 0x00dccb07, 0x02d71bcd, 0x021a1f96, 0x0270dffd, 0x0267500e, 0x0063423b, 0x02d006ae, 0x0144032f, 0x00147d9f}}, Y: Field{[10]uint32{0x01e10e59, 0x02cb6518, 0x01f5ca8e, 0x00fe2993, 0x020403e2, 0x032fc859, 0x00ae68a3, 0x00128caf, 0x0085a2c4, 0x00222c5d}}}, + {X: Field{[10]uint32{0x037c4bd5, 0x02fb9b7a, 0x00a36fa8, 0x005fb4f3, 0x016001e1, 0x0252e2d9, 0x006fb69a, 0x017e350d, 0x0209e558, 0x00336b3f}}, Y: Field{[10]uint32{0x02028542, 0x0211249b, 0x01ecefdb, 0x000d6515, 0x03af5fc4, 0x0019a675, 0x00121762, 0x00c74056, 0x005a9931, 0x00377c6f}}}, + {X: Field{[10]uint32{0x03f0e769, 0x00cf24e2, 0x01be319f, 0x02874598, 0x00481eaa, 0x033a4222, 0x0301d70c, 0x0391da71, 0x0371e1fc, 0x00204a79}}, Y: Field{[10]uint32{0x0045c6e2, 0x002a05bc, 0x02d700d4, 0x0226d511, 0x038a4db1, 0x01d259ab, 0x02d8b6f9, 0x02f158e7, 0x013da864, 0x000fad5c}}}, + {X: Field{[10]uint32{0x02bce3ab, 0x004cafd6, 0x009ada68, 0x02abe0a2, 0x00f39c14, 0x02a9cc35, 0x002fc0f8, 0x016f03cc, 0x02ef6d41, 0x002e5c18}}, Y: Field{[10]uint32{0x013db3a6, 0x003cc4f5, 0x02829049, 0x03954445, 0x006644c9, 0x0148891f, 0x00dfdd38, 0x0324f3f6, 0x0288cd76, 0x0022b5c1}}}, + {X: Field{[10]uint32{0x030bd913, 0x01a853d3, 0x03ca422a, 0x03b14552, 0x0250de67, 0x013a1af9, 0x01d6af8c, 0x006d7fa9, 0x018b4e81, 0x000670f2}}, Y: Field{[10]uint32{0x0190a109, 0x01d1bea8, 0x027bdd5d, 0x017a491d, 0x03c18b9d, 0x021425f2, 0x021b5c73, 0x03264cc3, 0x039648bd, 0x002f148f}}}, + {X: Field{[10]uint32{0x01b42b9c, 0x026cf0ad, 0x0355967a, 0x01efbf98, 0x020ad769, 0x02244638, 0x02be43f8, 0x03b9d2c7, 0x00c73616, 0x002e7bcd}}, Y: Field{[10]uint32{0x03661bea, 0x003a9a16, 0x022543b7, 0x02a8d5c3, 0x02e8dc05, 0x03988e54, 0x01be2715, 0x006b06e2, 0x01ddd55b, 0x0004bc73}}}, + {X: Field{[10]uint32{0x0103c34a, 0x03b6e5fd, 0x02ca86e8, 0x00faf7ae, 0x0359dd2a, 0x01b61371, 0x039c39a9, 0x0336d603, 0x034f58e2, 0x001dc638}}, Y: Field{[10]uint32{0x03e96df7, 0x019ec400, 0x03093135, 0x00a23838, 0x01cf5e37, 0x0312f45f, 0x01cd8f96, 0x0106e04b, 0x01fbdc08, 0x0029b441}}}, + {X: Field{[10]uint32{0x037e8dba, 0x03321c71, 0x02ed621f, 0x02c62bed, 0x01e259c1, 0x034d68da, 0x03ba89b8, 0x039cdd8e, 0x004b8e6d, 0x0036ace2}}, Y: Field{[10]uint32{0x00a11577, 0x00e89e05, 0x0153ee50, 0x0024abbe, 0x01c9316e, 0x036d2802, 0x02bd4b5e, 0x00b508ae, 0x0329c59a, 0x003d12db}}}, + {X: Field{[10]uint32{0x027f4366, 0x03b6ac79, 0x00a1876a, 0x0147a11f, 0x03a67367, 0x02d6f9b7, 0x026a8978, 0x01e0b797, 0x02101139, 0x0032cf43}}, Y: Field{[10]uint32{0x0157d3ea, 0x03e5c26f, 0x010cf189, 0x019da705, 0x01572aff, 0x03923c76, 0x0169b33b, 0x0250f99e, 0x008dd227, 0x0009ffa2}}}, + {X: Field{[10]uint32{0x00c3c6a0, 0x01fecefa, 0x0279fcca, 0x0191ba8b, 0x03656ea5, 0x03d8ad2d, 0x01193dbb, 0x02750423, 0x03f85561, 0x003ac6c7}}, Y: Field{[10]uint32{0x02282ea4, 0x0340f258, 0x027a5ced, 0x00e926cc, 0x01d36ae9, 0x000e1159, 0x01137414, 0x0357075c, 0x00c75b73, 0x00309fe8}}}, + {X: Field{[10]uint32{0x0039c5dd, 0x0025e187, 0x03aeb587, 0x03cf4b95, 0x00bee8f9, 0x00eadaf7, 0x01a11170, 0x003c47dd, 0x01e60bc4, 0x0017541e}}, Y: Field{[10]uint32{0x006e46d0, 0x02048851, 0x02bab805, 0x0378061c, 0x014d8435, 0x02f9ef7e, 0x025829b4, 0x02e75775, 0x012ba40d, 0x00052b84}}}, + {X: Field{[10]uint32{0x01a7b38e, 0x03f302a8, 0x00502384, 0x023780c0, 0x01b70809, 0x02c852ec, 0x028acd26, 0x01abc1b4, 0x02f76beb, 0x00004183}}, Y: Field{[10]uint32{0x03bdf9a3, 0x003b1230, 0x022e275d, 0x0015481f, 0x0334252c, 0x028860f5, 0x005464da, 0x03190a56, 0x039ff6c6, 0x0033903c}}}, + {X: Field{[10]uint32{0x02170695, 0x008e1cea, 0x03e1afd7, 0x0251c358, 0x01e7bcc8, 0x0309d14a, 0x007c271a, 0x03dcc625, 0x0063c001, 0x00259471}}, Y: Field{[10]uint32{0x0254eaf7, 0x00dfec39, 0x0154d218, 0x01e96a6c, 0x013b16ba, 0x022d8f26, 0x016d17fe, 0x001b69cf, 0x027fe8ff, 0x00138d8b}}}, + {X: Field{[10]uint32{0x03363dcc, 0x00a3c9c7, 0x0000ee09, 0x01334891, 0x01895cda, 0x02d0a2c6, 0x02822cdc, 0x0086d0bd, 0x03765928, 0x0017108a}}, Y: Field{[10]uint32{0x012b9400, 0x017f3d92, 0x0148444e, 0x036054a0, 0x014cb6b4, 0x03db01fd, 0x008258f0, 0x01df28d1, 0x034f9e4c, 0x000bf6d3}}}, + {X: Field{[10]uint32{0x01faba2c, 0x009364ea, 0x003d2b72, 0x029b353d, 0x02ab3868, 0x0114b312, 0x023ce519, 0x009435ce, 0x012b5d98, 0x0036c51f}}, Y: Field{[10]uint32{0x010ed0de, 0x02469e81, 0x009258a3, 0x03f81931, 0x009fdebf, 0x01ca65a1, 0x0343227a, 0x01ab37e8, 0x0380ad3c, 0x001cc950}}}, + {X: Field{[10]uint32{0x01454b4c, 0x0345b2f9, 0x01384a41, 0x009bb613, 0x01e1beca, 0x02207a26, 0x02237678, 0x02ff4594, 0x03a0f97a, 0x002699d8}}, Y: Field{[10]uint32{0x0090306a, 0x028074ce, 0x03cb2737, 0x01d64b22, 0x00e7952f, 0x00420a42, 0x031a3d55, 0x01605ccb, 0x007db6aa, 0x002ed450}}}, + {X: Field{[10]uint32{0x025daea8, 0x02da8003, 0x0400007d, 0x027a3147, 0x0007b45a, 0x03e53d61, 0x025c889e, 0x022bd3d3, 0x0133e910, 0x000dbf9e}}, Y: Field{[10]uint32{0x01227ee5, 0x0216ed09, 0x019e27fc, 0x02ed9ad1, 0x031943c7, 0x01c78570, 0x003a0f4a, 0x01688723, 0x01baecdd, 0x00340929}}}, + {X: Field{[10]uint32{0x03c784e7, 0x0155a28e, 0x006afc44, 0x03a96dce, 0x0144c749, 0x01d4a5a0, 0x02782fb8, 0x01f9a033, 0x0263f04f, 0x001036b9}}, Y: Field{[10]uint32{0x0355050b, 0x00445d95, 0x02bb9478, 0x011d12c5, 0x02cea2ab, 0x008f3c94, 0x0058c854, 0x03374009, 0x03fdac6b, 0x00126918}}}, + {X: Field{[10]uint32{0x01c5b8d1, 0x017272eb, 0x00a7542c, 0x02e9e7ea, 0x01da55fa, 0x0056bf67, 0x00c6d10b, 0x03cec23a, 0x016dc8ff, 0x0002e858}}, Y: Field{[10]uint32{0x00a786ff, 0x006ac96c, 0x01019764, 0x01797c38, 0x02771045, 0x0328256c, 0x025a3ace, 0x00f19865, 0x0042a623, 0x003bc25b}}}, + {X: Field{[10]uint32{0x019c4a66, 0x00b409d8, 0x01e7da70, 0x001417ee, 0x03d69b4a, 0x02f1c49c, 0x028c948d, 0x01254935, 0x036723a5, 0x000c121b}}, Y: Field{[10]uint32{0x02444c76, 0x00fb2eb0, 0x01ab6574, 0x01b66812, 0x01fd6acc, 0x011c292e, 0x02a63695, 0x03270217, 0x014d279e, 0x000e3293}}}, + {X: Field{[10]uint32{0x01e6932a, 0x0096f236, 0x0197090f, 0x024e6a27, 0x02d6accd, 0x03b0a809, 0x0367174d, 0x03475603, 0x029495ea, 0x0006e0fb}}, Y: Field{[10]uint32{0x02e20196, 0x0212f075, 0x03e0e345, 0x00d270ac, 0x033d2630, 0x00b9f43a, 0x0373d6da, 0x01214786, 0x0048fb5e, 0x000065b5}}}, + {X: Field{[10]uint32{0x03517396, 0x003c432d, 0x0264f2e3, 0x00c8053b, 0x01328b61, 0x03055e76, 0x02766715, 0x016844be, 0x002eedfa, 0x0013aa77}}, Y: Field{[10]uint32{0x006e50c2, 0x023c3d6c, 0x02c9c21e, 0x036741b2, 0x00d4a192, 0x00066d07, 0x003f0b14, 0x00f8a562, 0x03c96ef8, 0x001d053b}}}, + {X: Field{[10]uint32{0x02b033da, 0x025ff34b, 0x01b311a0, 0x024b572e, 0x02876777, 0x02d95d0d, 0x03217aa3, 0x02b4220e, 0x019dbee9, 0x001059b0}}, Y: Field{[10]uint32{0x02ed541c, 0x008dbadf, 0x001f8abc, 0x00ff4e36, 0x02b80e11, 0x02cdd6b1, 0x02b4d29a, 0x01aa9a4c, 0x025c5fae, 0x0018b141}}}, + {X: Field{[10]uint32{0x01a74899, 0x02ef82a1, 0x03f310a2, 0x021abe38, 0x02bbbc66, 0x034f4be5, 0x00511a87, 0x03d529a7, 0x03ebb112, 0x002c5d59}}, Y: Field{[10]uint32{0x009f52c2, 0x03f5cb53, 0x00bb1bdb, 0x008719c7, 0x03a69367, 0x02e24db7, 0x03fc6934, 0x02f952b8, 0x03413788, 0x003d99d8}}}, + {X: Field{[10]uint32{0x028095a5, 0x00ae2a6f, 0x0210212c, 0x02141408, 0x01a6df06, 0x00d44c4c, 0x01d81fdf, 0x01fcd022, 0x01152ab9, 0x00334ad9}}, Y: Field{[10]uint32{0x038f6a53, 0x024b8c79, 0x00bb45f4, 0x0212e1c0, 0x0322afff, 0x03513408, 0x02e40c72, 0x0064d457, 0x012f9ca4, 0x0033f9e5}}}, + {X: Field{[10]uint32{0x0218229f, 0x00c825cd, 0x0374a447, 0x01e4ebab, 0x032086c9, 0x001eb031, 0x0241a729, 0x0050280c, 0x03c49f33, 0x000dd580}}, Y: Field{[10]uint32{0x0385e837, 0x0058defa, 0x00699668, 0x004e1120, 0x03de08ba, 0x00025d76, 0x01ddb463, 0x029dcf84, 0x00f66322, 0x001eedd0}}}, + {X: Field{[10]uint32{0x03bb7432, 0x03c80bbb, 0x01632978, 0x0174b800, 0x017e1095, 0x00d0777a, 0x003c176f, 0x00f765b6, 0x03d4390a, 0x00040819}}, Y: Field{[10]uint32{0x039ba83e, 0x02068be0, 0x0322dafa, 0x03bdf9c1, 0x021d8b7e, 0x01aea77d, 0x0019f11b, 0x03330e9c, 0x03d54d28, 0x001f3db3}}}, + {X: Field{[10]uint32{0x0263081d, 0x01d89737, 0x01d544fb, 0x00bfa30b, 0x01374ef4, 0x022d23eb, 0x003042cf, 0x0314ee9c, 0x0273e3fb, 0x0011d85f}}, Y: Field{[10]uint32{0x01d439e8, 0x020bce70, 0x022a0e47, 0x019e1f0f, 0x0350cbae, 0x010f2abf, 0x0040f07f, 0x02a56ecb, 0x00230c92, 0x0007e93d}}}, + {X: Field{[10]uint32{0x03880f84, 0x0045d383, 0x034ca82e, 0x02f4c635, 0x0046b814, 0x038a2818, 0x017aac08, 0x01418a7d, 0x03af57f7, 0x000b10c6}}, Y: Field{[10]uint32{0x0209de50, 0x039631bc, 0x03adbb8e, 0x014ab162, 0x0262755a, 0x0214fd07, 0x00041089, 0x012ccb04, 0x03bc6857, 0x00376e79}}}, + {X: Field{[10]uint32{0x0343d599, 0x015c3760, 0x00b41338, 0x012c35dd, 0x033f4df4, 0x026dc22a, 0x0386b1f7, 0x02db9066, 0x02438143, 0x0024658d}}, Y: Field{[10]uint32{0x02312f0d, 0x008aa2dd, 0x00049696, 0x00d243d1, 0x00021be3, 0x01ae1eef, 0x0391d682, 0x02834a7e, 0x02177171, 0x00240d3b}}}, + {X: Field{[10]uint32{0x00b7754e, 0x013dfdf1, 0x02ddda4a, 0x0164ac05, 0x02028718, 0x015a0ec1, 0x00d42db9, 0x01b1ee0e, 0x0201af65, 0x002fca30}}, Y: Field{[10]uint32{0x0345d109, 0x02db7ce8, 0x00e20c50, 0x016ab0c8, 0x01ce6ffb, 0x01aac1a0, 0x0266c2f4, 0x00434aa2, 0x0304dda5, 0x0002ef53}}}, + {X: Field{[10]uint32{0x0118b137, 0x02d3cd65, 0x035a1bab, 0x00b296ba, 0x031aa426, 0x01663902, 0x01d531bf, 0x0097d138, 0x03860218, 0x003f2b1c}}, Y: Field{[10]uint32{0x02e67b64, 0x03fda154, 0x005936ff, 0x03fa1f9f, 0x037dcca7, 0x02e8dfbb, 0x032d1e41, 0x02fa87cf, 0x037a957b, 0x000ec65a}}}, + {X: Field{[10]uint32{0x026e9331, 0x0270775c, 0x01982302, 0x0326d1fb, 0x018ad89c, 0x0119fe02, 0x01f0278e, 0x03864850, 0x01dfcaae, 0x00273fa8}}, Y: Field{[10]uint32{0x00db211d, 0x00051ac6, 0x01f470b1, 0x03056dd7, 0x0096a071, 0x01421b8c, 0x010b6469, 0x03b8163f, 0x024e7f30, 0x001cb607}}}, + {X: Field{[10]uint32{0x021334da, 0x019bcd1a, 0x00e201e9, 0x014666e6, 0x00455c51, 0x00a00b0c, 0x01c7f21f, 0x014f1e59, 0x03421235, 0x0015234f}}, Y: Field{[10]uint32{0x016418ae, 0x025283a5, 0x0278a426, 0x02c40c44, 0x0208c0af, 0x016e51a1, 0x0138eeb1, 0x000f4a25, 0x0225cebb, 0x000184ba}}}, + {X: Field{[10]uint32{0x00295bc0, 0x022f759d, 0x01e22a6c, 0x015b18a3, 0x02ebd467, 0x02312643, 0x035c545e, 0x01309826, 0x019accf8, 0x00396f98}}, Y: Field{[10]uint32{0x01b08bf3, 0x00b8a81c, 0x01837a74, 0x033e6cd8, 0x0189e246, 0x02a162e4, 0x003aa74f, 0x006bdeb6, 0x00a57d84, 0x00190219}}}, + {X: Field{[10]uint32{0x01ac668f, 0x013a6ba8, 0x02209e19, 0x0037dcd3, 0x03a26046, 0x008da323, 0x028f733d, 0x03b52bba, 0x033e3400, 0x002d5824}}, Y: Field{[10]uint32{0x005f9da3, 0x0303008b, 0x028861b1, 0x03d378a6, 0x00ac0975, 0x033c5eef, 0x02ab1826, 0x01e14e7f, 0x013d3133, 0x00150e3e}}}, + {X: Field{[10]uint32{0x00cf60b1, 0x014aa887, 0x013c02c6, 0x025a30c5, 0x01dedf2d, 0x01d10cff, 0x03ecf7dd, 0x00f9e41d, 0x0297baca, 0x00087766}}, Y: Field{[10]uint32{0x0284797e, 0x001f3409, 0x038d917c, 0x0334d3d2, 0x01b851c4, 0x03683032, 0x019bbd7c, 0x02c2deda, 0x00e0e048, 0x00379b98}}}, + {X: Field{[10]uint32{0x01934bbd, 0x03ca403f, 0x03f37bca, 0x01d12327, 0x012f1478, 0x026f68c0, 0x01b0a52f, 0x010e6d32, 0x020c6d39, 0x00173e95}}, Y: Field{[10]uint32{0x01b11b06, 0x03feae69, 0x01a3235a, 0x034cfc37, 0x0129d5a5, 0x03a4dbca, 0x0156998c, 0x02566fcd, 0x02630cc1, 0x0031e49e}}}, + {X: Field{[10]uint32{0x026d4fc6, 0x00712da1, 0x02f49046, 0x039ed240, 0x016377af, 0x0253f325, 0x036204b3, 0x03350540, 0x01bb05ad, 0x00128ee5}}, Y: Field{[10]uint32{0x00e84f2f, 0x03402bea, 0x000232a0, 0x01ef7dc2, 0x018d6be4, 0x036e4e1f, 0x009179a4, 0x00793302, 0x02e2f1bd, 0x0035678f}}}, + {X: Field{[10]uint32{0x01f4671f, 0x012dd94d, 0x03d4a81c, 0x002b736c, 0x03404edb, 0x03741bc5, 0x0006b7ba, 0x01a7244f, 0x03130b4c, 0x00331268}}, Y: Field{[10]uint32{0x007bc278, 0x015ea25a, 0x011b24dd, 0x0054b1ea, 0x02ba4837, 0x034dd564, 0x036c1943, 0x01497abc, 0x02ecc35e, 0x0012f5c8}}}, + {X: Field{[10]uint32{0x00146d98, 0x00993335, 0x03d3740b, 0x0300637c, 0x00e07fda, 0x0362d3b8, 0x00f4f900, 0x029a7673, 0x005a7426, 0x00275d42}}, Y: Field{[10]uint32{0x00c4b0a9, 0x01b8f08b, 0x01ae6a4f, 0x03a4fe50, 0x01ce174a, 0x0392519f, 0x0372f44d, 0x02ccb411, 0x0253de04, 0x00016644}}}, + {X: Field{[10]uint32{0x03210fb8, 0x02c341a0, 0x00d18b95, 0x003beb48, 0x02caa87c, 0x027c7864, 0x0312cf5d, 0x036b74ba, 0x00df737b, 0x0037f419}}, Y: Field{[10]uint32{0x0103805a, 0x0206e4a4, 0x0122613d, 0x0264fab8, 0x019f3172, 0x02404bf5, 0x00b1d2b8, 0x0234cc14, 0x003da5bf, 0x001467e2}}}, + {X: Field{[10]uint32{0x007eaf9a, 0x006040a0, 0x012e3bf6, 0x0209a170, 0x001cf205, 0x0198c62f, 0x009013ea, 0x01b0d758, 0x035cd235, 0x000ad428}}, Y: Field{[10]uint32{0x01c76335, 0x012aeac7, 0x000f6ce7, 0x00790d4e, 0x02fdf424, 0x026d60a7, 0x01f5a77d, 0x03bbfae0, 0x011d303a, 0x0001f42d}}}, + {X: Field{[10]uint32{0x005abbc7, 0x0207ea1a, 0x030c3704, 0x03ccc09f, 0x020f3202, 0x01673517, 0x02e2a594, 0x01d79f1d, 0x034b2cf1, 0x00389ba3}}, Y: Field{[10]uint32{0x02c2013a, 0x03dcbf0e, 0x02c0f194, 0x0389183a, 0x01716e5f, 0x025f0d37, 0x00767029, 0x0145854c, 0x03baaa0d, 0x001320b9}}}, + {X: Field{[10]uint32{0x010f87fb, 0x034d20d7, 0x00959b46, 0x0147e097, 0x031fd90e, 0x039e3701, 0x0184057c, 0x03615da9, 0x037d54f4, 0x001640f6}}, Y: Field{[10]uint32{0x029e99c8, 0x00200447, 0x020f3816, 0x01028637, 0x03febf94, 0x034635bd, 0x00003329, 0x0046791f, 0x03d3e9ce, 0x0031578b}}}, + {X: Field{[10]uint32{0x0125e9c1, 0x0254f513, 0x00204fde, 0x03b8a2e6, 0x021040e6, 0x00d4906d, 0x03881e96, 0x02a0b722, 0x02cd0342, 0x0012eec3}}, Y: Field{[10]uint32{0x00b0ef04, 0x006a320b, 0x02335821, 0x03a6d134, 0x00082e97, 0x0013a1e1, 0x02bee8d6, 0x0116dd4a, 0x00900f34, 0x00004bac}}}, + {X: Field{[10]uint32{0x03c4e8d2, 0x01543e52, 0x0175b647, 0x01f506e5, 0x02702996, 0x034c9e78, 0x026eb38f, 0x02fe5f1b, 0x015aae87, 0x00012891}}, Y: Field{[10]uint32{0x03936074, 0x0255541c, 0x01c474a5, 0x008be718, 0x0309af34, 0x009d85e3, 0x012bea1e, 0x02fb98b5, 0x02c4ffe3, 0x00168d02}}}, + {X: Field{[10]uint32{0x03477623, 0x032be1d4, 0x004ad1de, 0x02f77389, 0x0394470a, 0x001ed4c3, 0x00329c4c, 0x0066a953, 0x028dc8ca, 0x003c21b5}}, Y: Field{[10]uint32{0x00bdbd08, 0x00c25c6d, 0x03d8020d, 0x028a022b, 0x034d9e8b, 0x03121a6a, 0x03e4161c, 0x01abc596, 0x01d384a1, 0x00244712}}}, + {X: Field{[10]uint32{0x03ba856c, 0x027e486d, 0x00cb4c98, 0x03dca5e2, 0x01d4b7cd, 0x00257c6d, 0x0253f912, 0x01b13892, 0x037e83b7, 0x0013c6c5}}, Y: Field{[10]uint32{0x0180eaf2, 0x0111c15f, 0x03811e10, 0x01a43702, 0x0399debb, 0x02ee54d2, 0x03dc2ff5, 0x02426bf0, 0x004eb060, 0x002955a3}}}, + {X: Field{[10]uint32{0x03db5823, 0x00d0c0e5, 0x0154c765, 0x039fe99e, 0x01c4fb5a, 0x02211de3, 0x012fcbc0, 0x0391688f, 0x009929a7, 0x003aea1e}}, Y: Field{[10]uint32{0x01cbf68f, 0x00085e8b, 0x02afee73, 0x02985c92, 0x02801b26, 0x03c0ebe7, 0x03c46b47, 0x00245c27, 0x0329b357, 0x0039be31}}}, + {X: Field{[10]uint32{0x002282c2, 0x008ed8ea, 0x02e7d877, 0x00e62731, 0x03130ee5, 0x01111567, 0x01580844, 0x02969e4b, 0x031334c9, 0x0037c45e}}, Y: Field{[10]uint32{0x016f7120, 0x03959054, 0x035a8c9b, 0x0175388c, 0x001a2fc5, 0x02954447, 0x02c5492e, 0x00f144ab, 0x02578eea, 0x003761f2}}}, + {X: Field{[10]uint32{0x02ee82c5, 0x00c871b9, 0x01a68621, 0x0392ea80, 0x021f5768, 0x03d7da81, 0x02eaa1bd, 0x02ae200d, 0x003b3e68, 0x0035dd55}}, Y: Field{[10]uint32{0x0081436e, 0x00ea7b86, 0x02e18049, 0x01184141, 0x0027a2bf, 0x01065fe7, 0x02e7a26c, 0x01ce60f3, 0x030547c9, 0x001c0886}}}, + {X: Field{[10]uint32{0x0178515d, 0x00bfafd1, 0x024c7148, 0x01fff7c1, 0x025e006f, 0x02335632, 0x005c6116, 0x006b96af, 0x01d55a23, 0x0029fc43}}, Y: Field{[10]uint32{0x003c13b0, 0x025ea79c, 0x0031eb47, 0x03c835a7, 0x01b2c24a, 0x007664e6, 0x025eb38d, 0x025a5388, 0x03a7b66b, 0x00124a8c}}}, + {X: Field{[10]uint32{0x020120ec, 0x00dba718, 0x0205b05d, 0x02ce04b6, 0x020801c6, 0x01add211, 0x0336c86c, 0x02af6444, 0x01ef3119, 0x0031e551}}, Y: Field{[10]uint32{0x03c28718, 0x00813774, 0x00382bd7, 0x0313c485, 0x00738a33, 0x01f7a81b, 0x0073f8ef, 0x03ab9145, 0x00db95b6, 0x0009323f}}}, + {X: Field{[10]uint32{0x02c2cb11, 0x020f8314, 0x006ec8e7, 0x0359a888, 0x03afa14d, 0x03884128, 0x0043ba29, 0x02223d7e, 0x035e744f, 0x000262ea}}, Y: Field{[10]uint32{0x00b94df6, 0x030c34af, 0x03cbe0b2, 0x03518dab, 0x02a7abae, 0x0051af35, 0x01d929b8, 0x01fb6314, 0x019fe5e8, 0x0020ed5a}}}, + {X: Field{[10]uint32{0x00ac586e, 0x01d4bbf7, 0x00110547, 0x0212b099, 0x0160d84a, 0x00e77ffd, 0x0213053d, 0x02912b20, 0x00287b6f, 0x001b738a}}, Y: Field{[10]uint32{0x0237ed66, 0x03f18a78, 0x00a5cadc, 0x02654d5e, 0x00c79be3, 0x00197469, 0x032fa8dd, 0x0033116a, 0x022ab9d6, 0x000787ad}}}, + {X: Field{[10]uint32{0x023dfa83, 0x02c2b398, 0x030c1b7f, 0x037423db, 0x03db06a9, 0x02c92b63, 0x02b091b5, 0x01cf24c1, 0x0259287a, 0x00038e1a}}, Y: Field{[10]uint32{0x005b34e6, 0x02582a74, 0x00ed6852, 0x008508a1, 0x01c0d3b2, 0x0385bf35, 0x024ce899, 0x01929798, 0x03da663b, 0x00129f9c}}}, + {X: Field{[10]uint32{0x024fe4d5, 0x03aa89fa, 0x0118004b, 0x0060989b, 0x00cea0a3, 0x02e550eb, 0x00283fc9, 0x02f8c663, 0x0382e62f, 0x0023f7fd}}, Y: Field{[10]uint32{0x00086675, 0x008b4aab, 0x00708c52, 0x007d0c5f, 0x03a4f530, 0x0041fa21, 0x03ed6508, 0x03656d9c, 0x00719fe0, 0x003fbe3d}}}, + {X: Field{[10]uint32{0x012eaa37, 0x0381108a, 0x01089a10, 0x0310d722, 0x0136ed1c, 0x03a9593a, 0x03bb8b84, 0x02c52006, 0x03ae7842, 0x00132424}}, Y: Field{[10]uint32{0x025298dd, 0x02542829, 0x03426ea2, 0x00afe169, 0x03864236, 0x03a4d5bd, 0x02c0903f, 0x0117eb96, 0x033493d2, 0x000b5a0c}}}, + {X: Field{[10]uint32{0x03103a1b, 0x01b56e8c, 0x00f2fe86, 0x031bf5db, 0x01056318, 0x0381ca8d, 0x02b80f9b, 0x014aa764, 0x00c55c5c, 0x0033018d}}, Y: Field{[10]uint32{0x007f0b32, 0x03c2c234, 0x01e887e8, 0x01dc6da6, 0x004004aa, 0x01ff2180, 0x0236eb08, 0x02da79b4, 0x0141b13c, 0x001d42df}}}, + {X: Field{[10]uint32{0x03918255, 0x01bdc78e, 0x026569a5, 0x03b33fdd, 0x011d53c7, 0x033292b6, 0x0133f5f9, 0x01eb162f, 0x027341fa, 0x0025d269}}, Y: Field{[10]uint32{0x00916068, 0x01b3b61a, 0x00d870ec, 0x01a73e96, 0x025e68fd, 0x038df676, 0x012a2aaf, 0x031f59da, 0x01c1009d, 0x002da17c}}}, + {X: Field{[10]uint32{0x017d8e75, 0x00dded1a, 0x011bc9e0, 0x014dcaf6, 0x03a25bd2, 0x01f682c6, 0x0257fdcb, 0x018bc816, 0x00efb578, 0x002c12af}}, Y: Field{[10]uint32{0x01e168f6, 0x01405286, 0x03d4278b, 0x02bf6a39, 0x0262dcb8, 0x0362e6ef, 0x01b58690, 0x012f8d22, 0x026466ad, 0x001411e6}}}, + {X: Field{[10]uint32{0x01c78902, 0x0093a151, 0x01768226, 0x02df2012, 0x02295059, 0x0217c035, 0x023b3957, 0x03efb7c6, 0x01e85481, 0x003447df}}, Y: Field{[10]uint32{0x035c3416, 0x00cd961b, 0x039c3173, 0x032d1200, 0x02b48928, 0x00499a60, 0x03369d81, 0x004a4069, 0x0368be0c, 0x0007458c}}}, + {X: Field{[10]uint32{0x0356fd4b, 0x02e202d5, 0x02b90970, 0x0182ca6c, 0x02fd6151, 0x00ed8f2c, 0x03225af7, 0x031e9024, 0x01f465c4, 0x00288719}}, Y: Field{[10]uint32{0x0345ecfe, 0x01aa8c24, 0x0186c766, 0x03897de9, 0x0157f1e3, 0x001228a5, 0x01e34767, 0x039839f7, 0x0389394d, 0x001a689a}}}, + {X: Field{[10]uint32{0x02497a1f, 0x03bfb85a, 0x036a4fde, 0x022c61b1, 0x0036ccda, 0x029633b4, 0x003d3999, 0x00d83a49, 0x02fbb080, 0x0014f189}}, Y: Field{[10]uint32{0x002ac9b7, 0x01f86ddd, 0x036bbeda, 0x01eb1011, 0x0008264d, 0x00cd85aa, 0x01106fb9, 0x03fc7946, 0x000862a7, 0x002b6498}}}, + {X: Field{[10]uint32{0x00e6ff0e, 0x005b139d, 0x02870601, 0x00cc46dc, 0x0211d969, 0x01d07c42, 0x0364fcc8, 0x00eb6340, 0x01871b2a, 0x0033d9ed}}, Y: Field{[10]uint32{0x02b68422, 0x01b4a748, 0x03cae6d3, 0x01fc966a, 0x027be653, 0x033878c2, 0x00ac068c, 0x035d3bda, 0x037c10cc, 0x000b258e}}}, + {X: Field{[10]uint32{0x010b4bc7, 0x0335a9b2, 0x018d731e, 0x00a77a7d, 0x01364288, 0x00d33783, 0x01a89a4b, 0x021c00a7, 0x02d808cc, 0x00014085}}, Y: Field{[10]uint32{0x01e38b21, 0x0367e9d2, 0x01e0c123, 0x01f99549, 0x0236f65d, 0x02944b56, 0x02fce322, 0x01224637, 0x01f096bc, 0x00248307}}}, + {X: Field{[10]uint32{0x03d1aef3, 0x019b0f64, 0x001a2677, 0x02f789bb, 0x033d6000, 0x03de42bf, 0x00cc62da, 0x01beedec, 0x0194f468, 0x00076115}}, Y: Field{[10]uint32{0x0134d260, 0x0027e7cc, 0x0173425c, 0x00db35aa, 0x0092450b, 0x0211f71b, 0x01340351, 0x03680bbc, 0x03a6bd9d, 0x003ab846}}}, + {X: Field{[10]uint32{0x024785e1, 0x014aede7, 0x030c3d5c, 0x0295bdf9, 0x012e7750, 0x01678aad, 0x027d5908, 0x02e5f41d, 0x0350b6c5, 0x00046b53}}, Y: Field{[10]uint32{0x00023b94, 0x018f6d6a, 0x027ac4e2, 0x011befdf, 0x011826e8, 0x00533e9c, 0x0152496f, 0x03671408, 0x02368725, 0x000b0aee}}}, + {X: Field{[10]uint32{0x0149388c, 0x0090ac2f, 0x02e3d12b, 0x00965a75, 0x03f76ee4, 0x01820a87, 0x024a5198, 0x01cf84a6, 0x027cd723, 0x000d5a34}}, Y: Field{[10]uint32{0x0354fdb3, 0x031db561, 0x033daf04, 0x02360e73, 0x038eff10, 0x0042a395, 0x02356680, 0x01011c5b, 0x03a96d09, 0x00038db7}}}, + {X: Field{[10]uint32{0x017801d7, 0x028b05fc, 0x038abafa, 0x01caf702, 0x0246310f, 0x01c01dd0, 0x02abb919, 0x02743174, 0x033545e0, 0x000ddcaa}}, Y: Field{[10]uint32{0x0278884e, 0x01001082, 0x03260053, 0x02be3b6d, 0x00775693, 0x022c04b8, 0x03a50cda, 0x031d18b5, 0x028ceae0, 0x000948a6}}}, + {X: Field{[10]uint32{0x029274f2, 0x00153970, 0x0131fa13, 0x026747b8, 0x0244f3b2, 0x022e4eb4, 0x0224779c, 0x01c06b91, 0x024f72c4, 0x0020546c}}, Y: Field{[10]uint32{0x00bb6429, 0x035544ae, 0x00c9986e, 0x009134b9, 0x03734207, 0x0030a35d, 0x033fca05, 0x03586779, 0x030725ff, 0x001624e0}}}, + {X: Field{[10]uint32{0x01539c9a, 0x00d25197, 0x034c8692, 0x0076489f, 0x001b57a8, 0x0394dc20, 0x00597050, 0x007e3183, 0x015ad410, 0x0011a921}}, Y: Field{[10]uint32{0x01e36b59, 0x034f9a22, 0x00864bee, 0x00917faa, 0x039517ad, 0x038bc82e, 0x00117ae0, 0x01c6578b, 0x01cf2111, 0x0023e99b}}}, + {X: Field{[10]uint32{0x01803d16, 0x0224f185, 0x02d4f0fd, 0x017d3b38, 0x00efa7c4, 0x00e2f4a9, 0x0015001c, 0x013cf7bb, 0x01543e65, 0x0002e06f}}, Y: Field{[10]uint32{0x029d3e75, 0x00ae8053, 0x00c4a75d, 0x03f96a25, 0x032b3947, 0x03e4eda8, 0x00316228, 0x0269d8d1, 0x03aa3129, 0x000570fd}}}, + {X: Field{[10]uint32{0x012e7706, 0x03572b40, 0x01faba5c, 0x03c933f2, 0x01423f10, 0x01356200, 0x038c0549, 0x00c93491, 0x021cf2a0, 0x000f85a6}}, Y: Field{[10]uint32{0x01389135, 0x008d5886, 0x020f9869, 0x012ff2a4, 0x03004d45, 0x01c02d2f, 0x0069075a, 0x02b1f14d, 0x03ddd814, 0x00081016}}}, + {X: Field{[10]uint32{0x01a65956, 0x02f74b53, 0x02fdf534, 0x02e1510f, 0x03557f39, 0x0379866f, 0x027a1b8c, 0x02ccfc3d, 0x024ab161, 0x001d0a0f}}, Y: Field{[10]uint32{0x00b3df3a, 0x038da274, 0x03159bfe, 0x005c71de, 0x01380c17, 0x02205d13, 0x033ad2bc, 0x0170119d, 0x03e28978, 0x00088a5a}}}, + {X: Field{[10]uint32{0x026b756e, 0x00f68e7a, 0x00092bde, 0x02d37a0a, 0x021a617f, 0x02de5539, 0x01da0a23, 0x02f27ed9, 0x0386cb76, 0x00189c55}}, Y: Field{[10]uint32{0x02c2db32, 0x017f6414, 0x0317d34a, 0x01608787, 0x00eec54d, 0x03e65444, 0x0163337b, 0x028540ed, 0x03e38829, 0x000f09ee}}}, + {X: Field{[10]uint32{0x037c8aae, 0x0168001b, 0x01f739c5, 0x038b28d7, 0x002c93ae, 0x015659d0, 0x0336bc9d, 0x02e24e10, 0x0105db23, 0x00258800}}, Y: Field{[10]uint32{0x00a6ba26, 0x037e85e1, 0x03b19a2b, 0x03638ff4, 0x01ea41cd, 0x026197d2, 0x00307c5d, 0x00981320, 0x028d400a, 0x000c64a5}}}, + {X: Field{[10]uint32{0x031d13fb, 0x0365a5ad, 0x01c313aa, 0x00d5506d, 0x01317875, 0x02fe2cb1, 0x0052fb5c, 0x0246c233, 0x0398bd26, 0x002f51dd}}, Y: Field{[10]uint32{0x03ddfc3b, 0x01f8502a, 0x0150b6be, 0x00e5299b, 0x0351978b, 0x03139eca, 0x01dae500, 0x0000cf08, 0x01c9a4ab, 0x002f8ad4}}}, + {X: Field{[10]uint32{0x035289e7, 0x0270c151, 0x02b05903, 0x006bd4b6, 0x0070da10, 0x02ab19e2, 0x01490e83, 0x03e126ed, 0x0388e46f, 0x003e8524}}, Y: Field{[10]uint32{0x0067b2a7, 0x0080c2e2, 0x015e37f2, 0x03470613, 0x02c75af3, 0x03349a87, 0x032080ad, 0x0159d0ec, 0x037fa8d8, 0x00211555}}}, + {X: Field{[10]uint32{0x0391ba90, 0x00dab80c, 0x00e86ff4, 0x00f11c80, 0x028ab50d, 0x01e069c2, 0x03bfae73, 0x03fec752, 0x03830af1, 0x00108a36}}, Y: Field{[10]uint32{0x03a270a7, 0x01c7632d, 0x01637d40, 0x03252d2b, 0x032413dd, 0x0066f4b8, 0x01560b64, 0x03c28600, 0x010ab0e6, 0x001176c7}}}, + {X: Field{[10]uint32{0x0017c85c, 0x0187fcc2, 0x03d49f41, 0x026bf28a, 0x021dc3a3, 0x02da71a1, 0x0094c02e, 0x03d680f5, 0x0279fe0d, 0x002a5eac}}, Y: Field{[10]uint32{0x019bec7d, 0x00d72371, 0x022900e5, 0x0105ac72, 0x005d4b74, 0x0335b7bb, 0x032f99f7, 0x03785cf5, 0x00bff128, 0x001401b2}}}, + {X: Field{[10]uint32{0x004c668f, 0x011199a4, 0x02b63f8d, 0x011544d7, 0x039f27dc, 0x0067ee8d, 0x01a3a1cc, 0x03198538, 0x00576bdc, 0x0030351b}}, Y: Field{[10]uint32{0x03215f58, 0x0024db72, 0x03a71f19, 0x00bd1fff, 0x013d1917, 0x024f1d82, 0x017d7ccf, 0x02c940b2, 0x00a30b28, 0x000e5ad8}}}, + {X: Field{[10]uint32{0x01a8dbbd, 0x00cd8fec, 0x00e636de, 0x031b86e2, 0x020b7ae4, 0x01716f28, 0x01b8c2c2, 0x03e9f782, 0x03e04599, 0x001cf175}}, Y: Field{[10]uint32{0x007bc617, 0x005f689d, 0x01ea3faf, 0x037dbea3, 0x0309229a, 0x0310c759, 0x02986b00, 0x03590827, 0x008d558b, 0x000767b4}}}, + {X: Field{[10]uint32{0x024827a7, 0x00f227b8, 0x03ab7bbf, 0x01958ab4, 0x00b4788c, 0x006805d4, 0x0097c6ef, 0x01210e36, 0x001da2ef, 0x0000dc12}}, Y: Field{[10]uint32{0x020fa7b1, 0x0390d71d, 0x02aaa190, 0x02d14e16, 0x01ccf794, 0x00003c3c, 0x004acc33, 0x00640476, 0x0076c205, 0x002a22ce}}}, + {X: Field{[10]uint32{0x037807ec, 0x02206758, 0x01d54eda, 0x02fd926e, 0x02f2b68c, 0x00d1e42f, 0x01bb7d8d, 0x03c29267, 0x03033006, 0x000b72f8}}, Y: Field{[10]uint32{0x0290c1e1, 0x03d63dc6, 0x01bda5d6, 0x00f5613e, 0x02092cf4, 0x00fe8a35, 0x015de2df, 0x00ca7ae4, 0x02e3c7ab, 0x002e0ad1}}}, + {X: Field{[10]uint32{0x017bb4b7, 0x0110bd80, 0x023c908a, 0x0193e3d0, 0x0144052b, 0x0093de96, 0x035d957c, 0x01171778, 0x00a916db, 0x003d17cf}}, Y: Field{[10]uint32{0x029b5a96, 0x01a39808, 0x03fc1dad, 0x03de042e, 0x015b4a0f, 0x03193798, 0x01d6a795, 0x0135b368, 0x002fb315, 0x001e777c}}}, + {X: Field{[10]uint32{0x0387605e, 0x01fa5779, 0x02e934fe, 0x01af8ea6, 0x03ee1734, 0x01200954, 0x01c99bcc, 0x0159e919, 0x028bcad0, 0x0014032a}}, Y: Field{[10]uint32{0x0238370a, 0x01c318bc, 0x02a58f05, 0x0291fe08, 0x024e1bee, 0x00f77495, 0x019dccf7, 0x03235ab8, 0x02d075df, 0x0010211f}}}, + {X: Field{[10]uint32{0x024c3aff, 0x017bb135, 0x01557c52, 0x021dbea1, 0x037bcd8b, 0x008ee24e, 0x0346191e, 0x018b156d, 0x0186a239, 0x000c158a}}, Y: Field{[10]uint32{0x00577a53, 0x00dd41e0, 0x01fe9373, 0x02622975, 0x00e19d8d, 0x02ed5519, 0x020c0347, 0x014e0c6d, 0x02be41c4, 0x00000b56}}}, + {X: Field{[10]uint32{0x008e422e, 0x006383ad, 0x0078f63a, 0x00ada8c1, 0x01ec7238, 0x03879881, 0x013f690b, 0x01adca7b, 0x011a3252, 0x003da1f5}}, Y: Field{[10]uint32{0x01515704, 0x0384aadf, 0x01680211, 0x033a830b, 0x00f197e2, 0x00dac56f, 0x014da2ed, 0x013debf1, 0x033519c9, 0x003bf386}}}, + {X: Field{[10]uint32{0x01ca505d, 0x022133e8, 0x01018472, 0x029f7a99, 0x0322199e, 0x0002b9fa, 0x00e207e5, 0x00d47327, 0x03f0d385, 0x00041298}}, Y: Field{[10]uint32{0x00239cc5, 0x02b12a0c, 0x0267ce05, 0x03a4cf4b, 0x00a6de0b, 0x028a8bb7, 0x031600a0, 0x002cf16b, 0x008750b2, 0x001a7086}}}, + {X: Field{[10]uint32{0x0280fc6e, 0x02b268fa, 0x01c035e6, 0x02f50c0a, 0x02eb3d59, 0x03d34a56, 0x03963e2f, 0x023286af, 0x00994b7b, 0x00142598}}, Y: Field{[10]uint32{0x027287b1, 0x018eb7cc, 0x02519729, 0x029ef22b, 0x0256be56, 0x0152ba8f, 0x02116748, 0x0066c604, 0x01cd40d0, 0x00352162}}}, + {X: Field{[10]uint32{0x00513c95, 0x033e23d5, 0x02a0dd22, 0x027f4721, 0x007ac22e, 0x02c3cb1f, 0x0388e85e, 0x0384d475, 0x02e794e5, 0x000c41b5}}, Y: Field{[10]uint32{0x03a2bca0, 0x02612f4b, 0x00dfadbf, 0x02320b3a, 0x004ad288, 0x0001ab86, 0x02849d84, 0x02330a64, 0x013c0456, 0x00301796}}}, + {X: Field{[10]uint32{0x0059fdce, 0x0053db88, 0x01235e79, 0x010f79a0, 0x03d1081b, 0x00ee7973, 0x0376ac71, 0x02f73a13, 0x011c9977, 0x0013259f}}, Y: Field{[10]uint32{0x008968cd, 0x02f9457a, 0x010ee206, 0x000a8a3a, 0x00fcc10d, 0x00e971f7, 0x002cb098, 0x026dd057, 0x00b2a3e9, 0x0021991c}}}, + {X: Field{[10]uint32{0x02781a52, 0x03fe440e, 0x032b2e4a, 0x000bfd78, 0x01b4027b, 0x03d63d8b, 0x00bbb7fb, 0x01dd0476, 0x0099ae8d, 0x00258c64}}, Y: Field{[10]uint32{0x03947389, 0x03717d59, 0x00ed422e, 0x0136de1f, 0x03d776eb, 0x02ee8bc2, 0x03148f8d, 0x00a1268e, 0x00740daf, 0x001b0440}}}, + {X: Field{[10]uint32{0x00247ee7, 0x00c3e8d6, 0x028b3bdf, 0x00add65c, 0x02b97224, 0x016bd5bc, 0x017406d9, 0x01b3aa77, 0x032387a3, 0x001f24ee}}, Y: Field{[10]uint32{0x02989942, 0x03136667, 0x00e018f7, 0x03db8f59, 0x0017cb34, 0x02568389, 0x0201e168, 0x01f219b6, 0x02983348, 0x00087937}}}, + {X: Field{[10]uint32{0x03f1e074, 0x02a46541, 0x01cddc3b, 0x02edf1b7, 0x01c764da, 0x021e8c8a, 0x01db1433, 0x005861b6, 0x020388de, 0x00319792}}, Y: Field{[10]uint32{0x03ca658b, 0x01266ef3, 0x0017bdaa, 0x030bf5e1, 0x0202137b, 0x0311707e, 0x0225a457, 0x016ca33a, 0x01430800, 0x003561b4}}}, + {X: Field{[10]uint32{0x00d674d5, 0x0285f619, 0x00f354d9, 0x02c6a042, 0x00381b1f, 0x0076346e, 0x01a380c7, 0x021a4af3, 0x012490c2, 0x0036256a}}, Y: Field{[10]uint32{0x03de17f5, 0x013dd61f, 0x0373d980, 0x028ac02b, 0x01c7cf2b, 0x02ef3496, 0x02f5728d, 0x0004fde7, 0x02250a63, 0x0034c2f6}}}, + {X: Field{[10]uint32{0x03def988, 0x03fc7857, 0x0113227b, 0x00e8f1fc, 0x00c892e2, 0x018f47dc, 0x03fa1640, 0x02e6efeb, 0x003a5b36, 0x0024119f}}, Y: Field{[10]uint32{0x029b15a7, 0x0320207a, 0x01568946, 0x01dc78cf, 0x02205225, 0x0288ab5d, 0x03ccb41b, 0x01f66cf3, 0x01914024, 0x0013b1c0}}}, + {X: Field{[10]uint32{0x02294c7e, 0x032b5d0f, 0x019810ab, 0x01756369, 0x03b4d38e, 0x03d4fbf1, 0x03268f78, 0x000969eb, 0x01630d0e, 0x0017340f}}, Y: Field{[10]uint32{0x002dfb3e, 0x002dc3ed, 0x007811a1, 0x010cd376, 0x00f168e0, 0x03938392, 0x01510cfe, 0x035072ac, 0x036e5517, 0x0030dca7}}}, + {X: Field{[10]uint32{0x007e964b, 0x00028943, 0x02988fc7, 0x000be601, 0x008bf69c, 0x03cd88a5, 0x01d7629b, 0x03173a8f, 0x009c652b, 0x00144c31}}, Y: Field{[10]uint32{0x032cf563, 0x0070855b, 0x0336b738, 0x008c6af8, 0x03a027ef, 0x01e910c4, 0x01f98c7b, 0x036f4c26, 0x02194bc9, 0x001f91b8}}}, + {X: Field{[10]uint32{0x02dd34da, 0x011de5a3, 0x01dbcc54, 0x0157969f, 0x02261a31, 0x02e49204, 0x01473066, 0x0353a44e, 0x002a33b8, 0x00256267}}, Y: Field{[10]uint32{0x026b7cb3, 0x03166476, 0x00a41d4d, 0x02d24e82, 0x01bac79f, 0x02f83411, 0x027277b5, 0x000a4a7a, 0x02998424, 0x002259ef}}}, + {X: Field{[10]uint32{0x0089745f, 0x01b903bd, 0x026049dd, 0x00e0b9d7, 0x036e55d2, 0x006137f3, 0x00650c88, 0x03a4fdf1, 0x00138cb3, 0x0000e4a0}}, Y: Field{[10]uint32{0x00006a52, 0x00251c7e, 0x03799587, 0x0011bed0, 0x02056bdf, 0x00bc9556, 0x01bd6d47, 0x03ce8722, 0x0298b897, 0x001c2c97}}}, + {X: Field{[10]uint32{0x0380b451, 0x0223f0cb, 0x03997fa3, 0x0034f3f1, 0x01ba7207, 0x03fc4223, 0x010497cb, 0x02fb7392, 0x0331b5fd, 0x00291f84}}, Y: Field{[10]uint32{0x01576b19, 0x00999baa, 0x024ecec2, 0x01194884, 0x00062447, 0x028f32e7, 0x006c75bd, 0x00119502, 0x00befff0, 0x0032952e}}}, + {X: Field{[10]uint32{0x00cfb96a, 0x002fb478, 0x036c82d5, 0x032ed237, 0x03f1b325, 0x0020f3f4, 0x03bb1344, 0x01d4a0f2, 0x008e16c5, 0x00330698}}, Y: Field{[10]uint32{0x00cc6734, 0x0082a0ce, 0x03ab5551, 0x021ec092, 0x03591b8f, 0x02382484, 0x03b0c987, 0x02c89104, 0x024467d9, 0x0016e2b2}}}, + {X: Field{[10]uint32{0x03fc3cea, 0x003db0b0, 0x0191a5d7, 0x0075a6d6, 0x03b7438d, 0x036cef78, 0x024d1df2, 0x02ebadeb, 0x03c7591e, 0x00360d52}}, Y: Field{[10]uint32{0x02ab5ad3, 0x019bc227, 0x03a31fe2, 0x031ca601, 0x017d95af, 0x01d646fb, 0x00227039, 0x03c0fca5, 0x02936765, 0x003bf225}}}, + {X: Field{[10]uint32{0x01def8aa, 0x038f68a3, 0x01d6ff2a, 0x007138ff, 0x03481ee2, 0x03681d91, 0x02ef42e6, 0x01d02c84, 0x0163ceb2, 0x001ab072}}, Y: Field{[10]uint32{0x01164281, 0x02fcfa39, 0x00d9fb1b, 0x035c2844, 0x00c52140, 0x017c80c7, 0x0053c94f, 0x016b8915, 0x00171b6d, 0x00013f22}}}, + {X: Field{[10]uint32{0x0318b42d, 0x034b91db, 0x035c4ddd, 0x00f42803, 0x0274d4da, 0x01e3ecdb, 0x00474697, 0x010523e7, 0x0359b52e, 0x002f84c3}}, Y: Field{[10]uint32{0x03c47069, 0x0263707e, 0x01516093, 0x02e51912, 0x01c5b9f8, 0x030737d8, 0x02a7d761, 0x02962808, 0x01e2f739, 0x0005b736}}}, + {X: Field{[10]uint32{0x0063bd2f, 0x031e79b0, 0x00f3ffc3, 0x03e47e7d, 0x0124ee71, 0x018996ec, 0x0356e599, 0x012955a2, 0x00cc3986, 0x001a176e}}, Y: Field{[10]uint32{0x02b50f29, 0x02eb9721, 0x03493037, 0x02fe69d7, 0x0122b396, 0x016f8c08, 0x0333b8e0, 0x00bdf0b4, 0x01418e5b, 0x001cc29c}}}, + {X: Field{[10]uint32{0x01d743ae, 0x019bb995, 0x024eaaad, 0x02bf3c3b, 0x030f31f9, 0x026f0626, 0x025e564b, 0x01306838, 0x03f389f7, 0x000e7d07}}, Y: Field{[10]uint32{0x026c8622, 0x03948375, 0x018d88e1, 0x02cbb7e7, 0x0126fdae, 0x00ce3dce, 0x030aad09, 0x013fb94f, 0x036de25d, 0x003efa83}}}, + {X: Field{[10]uint32{0x0020ed1f, 0x02c82313, 0x01f28b12, 0x018b2fd6, 0x03c29b1b, 0x0120ef03, 0x00737b3d, 0x0258e665, 0x017441bc, 0x0035e9a5}}, Y: Field{[10]uint32{0x025ba8cb, 0x0358c6c1, 0x024ceef2, 0x027d07e0, 0x0291eea2, 0x02e68f41, 0x007ca251, 0x00563a70, 0x02dacdf8, 0x00339138}}}, + {X: Field{[10]uint32{0x01eaec9a, 0x010e57b0, 0x030ba491, 0x00717f7c, 0x0022f598, 0x00acde21, 0x02867934, 0x032edcaf, 0x01609139, 0x00216eb4}}, Y: Field{[10]uint32{0x0314dfec, 0x01a92173, 0x038db419, 0x031e10e0, 0x02362055, 0x038ff8fa, 0x01c57e88, 0x01dacac9, 0x006129e5, 0x00267f35}}}, + {X: Field{[10]uint32{0x03ea49e5, 0x007ae008, 0x0372d51a, 0x03f90842, 0x0174d986, 0x03c5f682, 0x002ffbe8, 0x0285648f, 0x02c4d428, 0x0008e02e}}, Y: Field{[10]uint32{0x02d6f54b, 0x02ac1d17, 0x0065e5a6, 0x016f4824, 0x033ca101, 0x013512ee, 0x01e38bfc, 0x031fd791, 0x0313fde4, 0x003d2bdc}}}, + {X: Field{[10]uint32{0x024f9cf2, 0x030a7f4d, 0x00e9e46f, 0x03ee253d, 0x0397c1ac, 0x0088480a, 0x019108df, 0x0077438d, 0x0359b7d6, 0x00301584}}, Y: Field{[10]uint32{0x027d83dd, 0x0004c9f4, 0x0092e029, 0x000f3b3d, 0x0275b161, 0x01433acc, 0x03ea5ff3, 0x02a7d8b3, 0x01801c72, 0x000f0ddf}}}, + {X: Field{[10]uint32{0x020c2a06, 0x010e3124, 0x00fc64ed, 0x00102962, 0x0276481c, 0x026ee96c, 0x01181d30, 0x013cabae, 0x01c10b8f, 0x001cb126}}, Y: Field{[10]uint32{0x02b1ce53, 0x000490ec, 0x01e7a72d, 0x03fecc11, 0x02f05ff8, 0x03e0af06, 0x034867b1, 0x014c50a8, 0x008e6082, 0x001b2653}}}, + {X: Field{[10]uint32{0x03cf477d, 0x0081153f, 0x026f884e, 0x0272d77c, 0x0166e02c, 0x001bfad1, 0x038e2f3f, 0x018827e3, 0x00be02b6, 0x00237a13}}, Y: Field{[10]uint32{0x002a34a6, 0x002e64dd, 0x03379641, 0x010a8067, 0x02ac9e85, 0x028edeb0, 0x0348e986, 0x01f621a4, 0x0280c4d0, 0x0031fcbd}}}, + {X: Field{[10]uint32{0x001710f2, 0x00b44b90, 0x034427d0, 0x03b98f17, 0x029a2d02, 0x021ae74b, 0x02c80488, 0x035d8b96, 0x01d86581, 0x0036ffb2}}, Y: Field{[10]uint32{0x00daafea, 0x0221a370, 0x03c90004, 0x02a26284, 0x01b46496, 0x00199236, 0x005acb59, 0x02c6b2a2, 0x03f9827b, 0x001b9847}}}, + {X: Field{[10]uint32{0x01d0453d, 0x015bc8f4, 0x037f9f24, 0x00a8a455, 0x039588dc, 0x00aab9ac, 0x010ade78, 0x03b746cf, 0x01f86099, 0x00277594}}, Y: Field{[10]uint32{0x02715ebd, 0x0282c17b, 0x018455f5, 0x017e6184, 0x03cd3f90, 0x03edb5dc, 0x00be81ad, 0x02183806, 0x0217f0d7, 0x0013db6d}}}, + {X: Field{[10]uint32{0x03d66a15, 0x00982fe6, 0x033d1926, 0x03cbe8bc, 0x02356445, 0x039823e5, 0x037a885e, 0x0378d79d, 0x021ac869, 0x000bf605}}, Y: Field{[10]uint32{0x01307f25, 0x02d3203f, 0x03daa7c6, 0x028825e1, 0x0398c6e7, 0x00b798d1, 0x00163eb1, 0x00b64ad9, 0x01e9674c, 0x00074b08}}}, + {X: Field{[10]uint32{0x029dc391, 0x03a2a128, 0x038a8495, 0x0197e21d, 0x008b6d87, 0x02503b7d, 0x01538ce4, 0x0016c8fc, 0x038924f5, 0x000fc96f}}, Y: Field{[10]uint32{0x008164f2, 0x011ca5cb, 0x03c30afd, 0x01527715, 0x00344382, 0x00b184ee, 0x02b02525, 0x001e0862, 0x01830e7e, 0x001c094d}}}, + {X: Field{[10]uint32{0x00773f0b, 0x0387b89b, 0x02b47ff2, 0x01c2d57a, 0x00467dc7, 0x021163cc, 0x033d2fe2, 0x008d13e3, 0x0359d5f7, 0x000f03c0}}, Y: Field{[10]uint32{0x02db33c7, 0x00a72a07, 0x02c7b127, 0x00c3917c, 0x00b9c250, 0x01189949, 0x0050d787, 0x0067116b, 0x0239459f, 0x0012560e}}}, + {X: Field{[10]uint32{0x02b73a15, 0x0170c20d, 0x00dd73be, 0x01c3ec5c, 0x0087e38d, 0x0283764f, 0x0045855f, 0x0177c8d8, 0x0266ec1b, 0x00158e01}}, Y: Field{[10]uint32{0x019921a7, 0x0387c29d, 0x03b117bc, 0x024e0a47, 0x00b5cbbf, 0x022be3d8, 0x0291252c, 0x02b1aa6a, 0x00f0b210, 0x001c01a4}}}, + {X: Field{[10]uint32{0x009298bd, 0x01b4bea7, 0x006738bc, 0x0007ef8f, 0x0225f902, 0x03cff11f, 0x02b228aa, 0x017dffb1, 0x010b0b9a, 0x001c729c}}, Y: Field{[10]uint32{0x039abc89, 0x027bf8cb, 0x003f8fcc, 0x028d4789, 0x02c759bc, 0x01c0566b, 0x00912871, 0x002266c6, 0x028dc075, 0x001f7494}}}, + {X: Field{[10]uint32{0x01264575, 0x00b42cd7, 0x01102511, 0x02ba09f2, 0x006ed87f, 0x02386f8f, 0x02ec20f9, 0x021439f0, 0x003cc938, 0x001e377b}}, Y: Field{[10]uint32{0x01680321, 0x01b7b6cf, 0x01ddfd48, 0x018fc5e6, 0x0022b9c1, 0x01bc6798, 0x0185048d, 0x01014321, 0x0151766a, 0x000641ca}}}, + {X: Field{[10]uint32{0x034ed70b, 0x01aacf1e, 0x0267f322, 0x0127b40f, 0x02058132, 0x00f6b0a6, 0x02709509, 0x0215fa31, 0x02fd8852, 0x0026abae}}, Y: Field{[10]uint32{0x0305fffb, 0x033b34d1, 0x0271c7b9, 0x033101ae, 0x032457bd, 0x00f134bc, 0x01e13bca, 0x02f54419, 0x02ccb541, 0x00231a8a}}}, + {X: Field{[10]uint32{0x032f79e2, 0x00af96f6, 0x01bcc6d1, 0x01a882ae, 0x01a3096a, 0x02e6fc4e, 0x016c7b28, 0x0203f768, 0x02749411, 0x00161bb2}}, Y: Field{[10]uint32{0x03488d71, 0x039be4e8, 0x02ad5bfd, 0x03795805, 0x020ac4bf, 0x009a887a, 0x005a7f80, 0x002796bf, 0x01123616, 0x0002cec7}}}, + {X: Field{[10]uint32{0x0150ddf8, 0x00e060e3, 0x0397ee36, 0x02c4dab3, 0x03c0e0b6, 0x0330fb98, 0x03ed7d40, 0x0378b21b, 0x003edbe4, 0x000615ef}}, Y: Field{[10]uint32{0x00275363, 0x0293d923, 0x01835119, 0x02df3168, 0x028a7fbd, 0x016119d6, 0x0359c673, 0x022337b1, 0x007be7a5, 0x003a97a0}}}, + {X: Field{[10]uint32{0x00e5b01a, 0x0361599e, 0x037ba863, 0x02589fd7, 0x03642067, 0x032e204e, 0x022a6cdb, 0x00b18800, 0x03440757, 0x002a9331}}, Y: Field{[10]uint32{0x03a2f836, 0x03c267e3, 0x008bff39, 0x0236bdf8, 0x01a4a97b, 0x00e08698, 0x03b7f9bb, 0x00912a68, 0x02c9d259, 0x002ea5a6}}}, + {X: Field{[10]uint32{0x004f36aa, 0x01368d48, 0x02179e79, 0x01af2c9d, 0x030d6f73, 0x010f6173, 0x005fad0a, 0x010d9da2, 0x00095917, 0x0011623b}}, Y: Field{[10]uint32{0x00c7c62e, 0x021bd2c3, 0x01c3702f, 0x024a9532, 0x03a95116, 0x0372eb8e, 0x01c89d10, 0x02071bb8, 0x027ecdc6, 0x003ee0d7}}}, + {X: Field{[10]uint32{0x0080653c, 0x02cc447a, 0x00a4eca3, 0x00881408, 0x0025ce66, 0x00bdec7f, 0x0233f227, 0x017e1a67, 0x01037a3e, 0x00219eb3}}, Y: Field{[10]uint32{0x01764646, 0x01fceb49, 0x03946d8d, 0x013975b3, 0x02639cd9, 0x03d91903, 0x009ba3cf, 0x03e414c9, 0x02c757d3, 0x003a444a}}}, + {X: Field{[10]uint32{0x02df370b, 0x03f576c9, 0x03c13318, 0x013d185b, 0x00b52781, 0x026b8ef5, 0x02e46630, 0x007708a2, 0x0169e4f8, 0x00178290}}, Y: Field{[10]uint32{0x0140d001, 0x03e2b74c, 0x00ca9e58, 0x009232cd, 0x00c38cd6, 0x02eb2b53, 0x022e32c3, 0x024d3afb, 0x01a8fc23, 0x0016f4cd}}}, + {X: Field{[10]uint32{0x0101c0f6, 0x02d3ffec, 0x00263663, 0x028eb7fa, 0x01542a55, 0x00aa0bc5, 0x01b2e578, 0x0090606d, 0x006939df, 0x0024014d}}, Y: Field{[10]uint32{0x03e3d991, 0x007a944d, 0x01476e3f, 0x01e0e86c, 0x01744607, 0x0270e978, 0x00f38378, 0x0217da16, 0x01899739, 0x0013fc35}}}, + {X: Field{[10]uint32{0x03cec63f, 0x030ec358, 0x035618f4, 0x01dc8a9c, 0x004e2db0, 0x0242c540, 0x0232f33d, 0x00cee81a, 0x01a553df, 0x002a650e}}, Y: Field{[10]uint32{0x01656cd4, 0x0108f6ce, 0x00e7e7e6, 0x0317dc0f, 0x026f9c1f, 0x0139a61f, 0x01cd8a2e, 0x031ddfaa, 0x0129f11f, 0x00066382}}}, + {X: Field{[10]uint32{0x03085282, 0x00bf7c57, 0x00355a0e, 0x02c42de3, 0x031c7789, 0x020aa8b9, 0x03ab71df, 0x02e85323, 0x01361381, 0x00147ca8}}, Y: Field{[10]uint32{0x032d16a2, 0x0065f3fa, 0x00ea5a97, 0x009a124d, 0x026e2b7b, 0x00c65e8f, 0x0323bbe4, 0x03fa935b, 0x029fca15, 0x003f57c4}}}, + {X: Field{[10]uint32{0x02a91d3a, 0x014c560b, 0x0368e820, 0x02e3d507, 0x03bed208, 0x019316d3, 0x01097778, 0x012cb265, 0x001c8b06, 0x000ea47e}}, Y: Field{[10]uint32{0x03a513c9, 0x01ce8048, 0x00404085, 0x0252d804, 0x00a542b5, 0x01616a3a, 0x0077329e, 0x00e78654, 0x003ad4ae, 0x00275640}}}, + {X: Field{[10]uint32{0x0336c5c8, 0x01abc665, 0x03462105, 0x02138502, 0x005e491e, 0x01ca3045, 0x0026deee, 0x03e85cfc, 0x0150aa22, 0x001c7a67}}, Y: Field{[10]uint32{0x036a4995, 0x019fb105, 0x03b2653f, 0x038e6ec2, 0x03699806, 0x03651f9d, 0x02627291, 0x022119f1, 0x03776858, 0x003fcf93}}}, + {X: Field{[10]uint32{0x008aaa39, 0x0248005f, 0x0180e6d3, 0x003ba166, 0x0046f745, 0x0338bcf3, 0x0353286a, 0x0113dcfe, 0x02933a03, 0x002b4527}}, Y: Field{[10]uint32{0x009e81bd, 0x03dbeba4, 0x03e3f2a4, 0x00ffc455, 0x0165a5ab, 0x026a0de2, 0x03140603, 0x03cd52d3, 0x039885a4, 0x001f6fd1}}}, + {X: Field{[10]uint32{0x011ccb01, 0x011fe45d, 0x00c321a2, 0x035dfaef, 0x0286e79e, 0x025a4417, 0x000ca207, 0x023db129, 0x037f5ad7, 0x00113c28}}, Y: Field{[10]uint32{0x0353044a, 0x01255570, 0x01905af6, 0x02684a24, 0x0070836d, 0x019ad44a, 0x031e5590, 0x02cfefbe, 0x0067911e, 0x003d0136}}}, + {X: Field{[10]uint32{0x0330ad5d, 0x00e29842, 0x02c1dc0d, 0x038ec9c7, 0x0050f5c0, 0x025c5e1a, 0x00a4a8b2, 0x03823130, 0x00c3de8d, 0x0013ddf7}}, Y: Field{[10]uint32{0x01f57c69, 0x00da8e53, 0x032fa558, 0x000201bb, 0x0358dc73, 0x002a996c, 0x018aa5ab, 0x003ba484, 0x024f8ae8, 0x001cf1d0}}}, + {X: Field{[10]uint32{0x02005555, 0x01c4dc79, 0x01c0d38d, 0x0093978b, 0x016d6d5c, 0x03bd9630, 0x026efd38, 0x00248d8d, 0x008b102a, 0x001e5284}}, Y: Field{[10]uint32{0x0246ba2c, 0x03d9cdf3, 0x03f751a6, 0x012d7f72, 0x007c9e30, 0x007e11e6, 0x02cf0fdc, 0x024141a6, 0x01efefd7, 0x0021c659}}}, + {X: Field{[10]uint32{0x00e8e594, 0x029235c5, 0x003a822d, 0x01f3a8c2, 0x02a72e29, 0x0282c494, 0x01bd49f5, 0x0218eb7d, 0x0161234b, 0x003c6621}}, Y: Field{[10]uint32{0x003fc418, 0x03acd86a, 0x0203fca6, 0x01cf4c6a, 0x03abd2f5, 0x03f68fe3, 0x0036612d, 0x01468630, 0x0107d0ab, 0x001eb6e9}}}, + {X: Field{[10]uint32{0x003f4a80, 0x02862f73, 0x01c75491, 0x036fe0b4, 0x02f3fd27, 0x01e42abb, 0x0249b8f7, 0x026781c4, 0x0156c07c, 0x00122fb5}}, Y: Field{[10]uint32{0x02316e94, 0x00795559, 0x03543856, 0x008b5250, 0x0046cf01, 0x03976f2a, 0x00dd08cb, 0x0106346d, 0x028021be, 0x00276b94}}}, + {X: Field{[10]uint32{0x003ab9c1, 0x032ccfe5, 0x00a1f3bf, 0x02ff0b72, 0x00ec8449, 0x01d2eb1d, 0x0376fef9, 0x01e74e3c, 0x03fbe537, 0x002effbc}}, Y: Field{[10]uint32{0x0312551b, 0x01b1b378, 0x030b0800, 0x018e1200, 0x00ed4625, 0x02f83aa3, 0x010e8495, 0x022bff18, 0x0372ee79, 0x002fa96d}}}, + {X: Field{[10]uint32{0x015b7f06, 0x01d2f582, 0x0212e00b, 0x02bfbaf0, 0x00156839, 0x03305d71, 0x006b04be, 0x033548e0, 0x001527b3, 0x0010abcd}}, Y: Field{[10]uint32{0x01dcef4f, 0x02d1b7d6, 0x021370e7, 0x006096fe, 0x00f91a55, 0x02237a60, 0x036d0961, 0x01bfd88d, 0x03e5ebf1, 0x001a1b97}}}, + {X: Field{[10]uint32{0x01ce10e6, 0x037849dc, 0x00d6938a, 0x00990309, 0x02307497, 0x0162df57, 0x03ea376d, 0x021f11bb, 0x038b74ae, 0x000f15b5}}, Y: Field{[10]uint32{0x00d54a41, 0x00c9d492, 0x03883507, 0x002d446f, 0x0039fed0, 0x0328af1b, 0x023b36b6, 0x0388574d, 0x02ccf9d1, 0x0033a5f7}}}, + {X: Field{[10]uint32{0x0389b61a, 0x03f6c26d, 0x0291d33a, 0x0073693c, 0x0267b52a, 0x0123da73, 0x02404a9e, 0x03bc2ab9, 0x01991944, 0x0012c489}}, Y: Field{[10]uint32{0x02089571, 0x02ef99ad, 0x0211bf3e, 0x0201e391, 0x0062b1bc, 0x01b64af0, 0x037932cb, 0x03e6494d, 0x035027a3, 0x001722f8}}}, + {X: Field{[10]uint32{0x00d49db5, 0x01cd4346, 0x03e9acd3, 0x0154ac02, 0x01716749, 0x01363167, 0x0258f181, 0x024c528d, 0x0067c02c, 0x0002790a}}, Y: Field{[10]uint32{0x03a8c761, 0x025df1c5, 0x01d0d831, 0x0079b635, 0x0039f65b, 0x03f8833c, 0x003155da, 0x0035cf5e, 0x00351ff9, 0x001749b4}}}, + {X: Field{[10]uint32{0x035359ae, 0x036e5cc9, 0x00b94402, 0x007976f6, 0x00306ab3, 0x01efdbea, 0x0027d0d4, 0x014d14a8, 0x010c05a9, 0x002590ce}}, Y: Field{[10]uint32{0x027a3933, 0x025c86ac, 0x000cea69, 0x00b7d657, 0x03abbf49, 0x003ef52e, 0x03560d05, 0x03a70748, 0x03f71019, 0x002cd535}}}, + {X: Field{[10]uint32{0x02126b69, 0x03d5881f, 0x01f77bac, 0x0213faba, 0x021b6f78, 0x007c55e0, 0x01374f90, 0x01f7ad41, 0x02fb86f7, 0x0022d245}}, Y: Field{[10]uint32{0x00be1fd4, 0x032cc98a, 0x00213816, 0x03cd93e7, 0x02ce6d2a, 0x02f21feb, 0x01c3d59c, 0x036c4c15, 0x03c06d86, 0x000026a0}}}, + {X: Field{[10]uint32{0x00054b9f, 0x00f3c334, 0x02ff37ba, 0x03fa554b, 0x0011de8e, 0x021223df, 0x01ee9abb, 0x020b107d, 0x034b1097, 0x00034a77}}, Y: Field{[10]uint32{0x00ca07a8, 0x01826050, 0x03d1c98a, 0x01106627, 0x00d1a5a4, 0x01e6da02, 0x03e08f6a, 0x00b13c2e, 0x0237ea24, 0x0006fc18}}}, + {X: Field{[10]uint32{0x01dbd41d, 0x02e3a9c8, 0x01ede203, 0x019481b7, 0x03d4a202, 0x01444eb2, 0x01167d05, 0x0141114e, 0x017ba540, 0x000aabce}}, Y: Field{[10]uint32{0x02f73081, 0x022087a7, 0x03c6663d, 0x03093dec, 0x00013a81, 0x028cbcc2, 0x024b4a8a, 0x02eeb247, 0x02c71132, 0x000dd38c}}}, + {X: Field{[10]uint32{0x0357ef48, 0x004cfe73, 0x03b817b1, 0x0251762d, 0x001ca58a, 0x02da8e63, 0x03d287c8, 0x0339ae3a, 0x03d223ea, 0x00088e6c}}, Y: Field{[10]uint32{0x02b4cd46, 0x032f50f8, 0x03bda94c, 0x03ecf93a, 0x00f01d70, 0x02380fca, 0x02f4b267, 0x02a2c822, 0x00b74b54, 0x003f6a20}}}, + {X: Field{[10]uint32{0x03c7e365, 0x03b18929, 0x00f62e86, 0x00ce7c95, 0x01b88ee2, 0x007b6c51, 0x01c91785, 0x01cb7dfb, 0x03bcf47e, 0x0022cca1}}, Y: Field{[10]uint32{0x01fecabb, 0x03c3c802, 0x005be321, 0x01a47ad8, 0x00db6d99, 0x0030f4df, 0x0100868c, 0x0355397e, 0x03c09f60, 0x0015281a}}}, + {X: Field{[10]uint32{0x004f7993, 0x026072a6, 0x0136dd8d, 0x031c935b, 0x01ace742, 0x03a1d4e7, 0x017e1ff3, 0x03fba443, 0x02a33e3c, 0x00366b33}}, Y: Field{[10]uint32{0x027dc88b, 0x018e2a10, 0x02690565, 0x02055097, 0x0162947f, 0x0082f40b, 0x00f5a05a, 0x03974b63, 0x034aa901, 0x001ab725}}}, + {X: Field{[10]uint32{0x00b3206d, 0x03cab96a, 0x036b308d, 0x036902e3, 0x004af245, 0x01d3b80e, 0x0292b504, 0x0122f799, 0x03f834c3, 0x0035ff15}}, Y: Field{[10]uint32{0x004e2d19, 0x034acc09, 0x03406e38, 0x02c47e6b, 0x000231ed, 0x01b6c0c9, 0x028e04ba, 0x027faa6c, 0x024b41fd, 0x0002c94f}}}, + {X: Field{[10]uint32{0x00d9588a, 0x016d70c5, 0x015059ad, 0x0181e88f, 0x02b815f6, 0x02540878, 0x0334e165, 0x005024da, 0x03e0ec4a, 0x00096023}}, Y: Field{[10]uint32{0x018e7b96, 0x01e63df1, 0x00ec66f4, 0x01b3a2ef, 0x03a75bc1, 0x02e77c7f, 0x00a1eefb, 0x01bbe232, 0x02d5b1d4, 0x00341992}}}, + {X: Field{[10]uint32{0x01927914, 0x01ba84e6, 0x01ecc322, 0x01d8a68e, 0x0359e67a, 0x00368d69, 0x0152fa57, 0x015759c8, 0x03801139, 0x003911d1}}, Y: Field{[10]uint32{0x03793bee, 0x037cfe50, 0x035eac1a, 0x034a0dfb, 0x02ad4eb3, 0x0159b1e3, 0x02834d33, 0x00121b69, 0x0170aa2f, 0x00124f30}}}, + {X: Field{[10]uint32{0x026311ad, 0x000ae444, 0x02f11476, 0x02160b51, 0x0244e2b9, 0x0003c411, 0x01dd900d, 0x035c19db, 0x01be2af9, 0x00314103}}, Y: Field{[10]uint32{0x024ddb15, 0x0234a00c, 0x0186b91a, 0x006c41dd, 0x01a7cabc, 0x01e2a739, 0x01b64667, 0x0185c732, 0x0311a231, 0x002102aa}}}, + {X: Field{[10]uint32{0x037d9f14, 0x008a3ad0, 0x023a812a, 0x013e4ef6, 0x008116cd, 0x0311f539, 0x03ca1236, 0x00cface9, 0x03aa316d, 0x0008ce46}}, Y: Field{[10]uint32{0x037efd4d, 0x02d53d72, 0x00b7f1eb, 0x01e71f2e, 0x010bc97c, 0x01b63446, 0x00a69aff, 0x01dbf007, 0x001d9e6d, 0x0007604d}}}, + {X: Field{[10]uint32{0x0039ac38, 0x02acd3ef, 0x01eb945e, 0x036302e5, 0x008aeb8f, 0x03ace525, 0x006682cb, 0x02e9c8bf, 0x03563de3, 0x0004c845}}, Y: Field{[10]uint32{0x0174f006, 0x02e6b623, 0x013df89e, 0x001506dd, 0x01aa5279, 0x009b2fee, 0x0161431e, 0x00208df2, 0x03218a4b, 0x0026ddc9}}}, + {X: Field{[10]uint32{0x02789708, 0x01dea56e, 0x0096d2ff, 0x00eebfba, 0x01708b94, 0x02d735f8, 0x00f896bb, 0x00bf1e87, 0x0098b27a, 0x000ee2ee}}, Y: Field{[10]uint32{0x0136c1cb, 0x00403227, 0x028c9248, 0x01e70d01, 0x027fdcbf, 0x02858d77, 0x01e13e96, 0x000f9568, 0x001c6680, 0x00360795}}}, + {X: Field{[10]uint32{0x00217b4d, 0x03a267f8, 0x02e21c7c, 0x00b20568, 0x03d94f16, 0x0300103f, 0x005e4f55, 0x0312eb14, 0x022c9af5, 0x003875c2}}, Y: Field{[10]uint32{0x03a4532e, 0x00f3fb25, 0x0212c2fd, 0x02679e70, 0x01eb063b, 0x00ac794f, 0x006d66de, 0x00392cda, 0x00d6d20e, 0x002c958c}}}, + {X: Field{[10]uint32{0x0112de1c, 0x02aa9ef6, 0x001b5ff1, 0x0320c3ed, 0x03a7e681, 0x00acdb7f, 0x00f0c56e, 0x01e3eb4e, 0x0023a517, 0x0006c78e}}, Y: Field{[10]uint32{0x0184d4c1, 0x00ffcc89, 0x0116cd59, 0x009a0ca0, 0x03bebe16, 0x02fdff49, 0x03258556, 0x00807739, 0x0290a951, 0x003cba66}}}, + {X: Field{[10]uint32{0x01bda7a1, 0x03dca088, 0x03102e48, 0x00703640, 0x018745a9, 0x017919f8, 0x01348175, 0x018644b0, 0x003894f5, 0x00078c76}}, Y: Field{[10]uint32{0x00d610ce, 0x0232531f, 0x03aee504, 0x009d0480, 0x02477a7b, 0x03e0225b, 0x002c6d97, 0x03863cf0, 0x038835da, 0x0004773b}}}, + {X: Field{[10]uint32{0x02b7100e, 0x02c0c062, 0x0028c422, 0x01e946d4, 0x03311f68, 0x02f0ed25, 0x027a7ff2, 0x02f266fd, 0x0034795c, 0x00032e6b}}, Y: Field{[10]uint32{0x00d0db1d, 0x01120d8f, 0x0332074e, 0x03762913, 0x03e5ff32, 0x023704fd, 0x01e95e9a, 0x02cd7380, 0x0221c804, 0x001797c1}}}, + {X: Field{[10]uint32{0x00e11c1b, 0x01ce0d6d, 0x020ce56c, 0x0213c028, 0x0024dcb8, 0x02995b12, 0x02326fa1, 0x02b4e283, 0x02c4067d, 0x002bf0d2}}, Y: Field{[10]uint32{0x00bdcb96, 0x00204d8a, 0x01de1d75, 0x02baff1b, 0x0377a033, 0x000b0432, 0x02ef031a, 0x0191e8e0, 0x00043f6d, 0x00322c71}}}, + {X: Field{[10]uint32{0x0270aa81, 0x03e17ef8, 0x0273e603, 0x00d9e9e0, 0x023330f6, 0x02e85384, 0x01430bc0, 0x02ae8586, 0x0160ca85, 0x000e9bf0}}, Y: Field{[10]uint32{0x0222bc0a, 0x01d36e80, 0x001bb617, 0x03246709, 0x02cb72cf, 0x01c1ef0c, 0x01a7a483, 0x02ce4251, 0x037286db, 0x0016528a}}}, + {X: Field{[10]uint32{0x033ce7d4, 0x00658050, 0x02e4346b, 0x02a38fab, 0x01bdc1e4, 0x03c637af, 0x024f56ea, 0x0270e8fd, 0x0295657c, 0x002a103d}}, Y: Field{[10]uint32{0x02126fbc, 0x007d27fa, 0x0269d7a4, 0x0091c9cc, 0x031a77b8, 0x030004c6, 0x01eae96b, 0x038b7d18, 0x02c0ca41, 0x0022a29e}}}, + {X: Field{[10]uint32{0x000a39d6, 0x027602ba, 0x033e55f6, 0x018b5b83, 0x0065cd77, 0x028a4c9a, 0x01d08c34, 0x01a4530e, 0x020170ec, 0x00030113}}, Y: Field{[10]uint32{0x020b4657, 0x02fe488e, 0x0052a92d, 0x01ee4816, 0x036dd5fd, 0x00be5ecd, 0x02e0b5ec, 0x00545897, 0x00827ae5, 0x001ef58c}}}, + {X: Field{[10]uint32{0x02a00b3a, 0x0377a53a, 0x00b2aa89, 0x00690769, 0x002bf927, 0x033f74a2, 0x01eb5c67, 0x025a6c11, 0x035b352b, 0x0032e404}}, Y: Field{[10]uint32{0x0179be93, 0x012d858b, 0x00b492a8, 0x00b1498d, 0x03b4dac8, 0x009dea3d, 0x00b6d267, 0x026c47f9, 0x00a0762d, 0x000532fb}}}, + {X: Field{[10]uint32{0x03182a0e, 0x03213402, 0x02963c58, 0x01d9d7a9, 0x03c82166, 0x02a92a3f, 0x007c0633, 0x02ac3c87, 0x0037a24d, 0x003e9ef1}}, Y: Field{[10]uint32{0x01a5aa35, 0x03bb9534, 0x0244b383, 0x0051007c, 0x00fdf721, 0x0124d678, 0x0109326c, 0x0031adb7, 0x03c6d730, 0x00389099}}}, + {X: Field{[10]uint32{0x03b3299a, 0x00701795, 0x02fcdd0c, 0x015cef22, 0x0035e956, 0x0054ceb6, 0x032bef99, 0x00f494de, 0x00dd3f50, 0x00398d53}}, Y: Field{[10]uint32{0x019ead7f, 0x0342e1a1, 0x01a0a3c4, 0x03cfd72b, 0x03cdc2b6, 0x03a7be71, 0x01955b9a, 0x03228662, 0x03706291, 0x0035b05e}}}, + {X: Field{[10]uint32{0x0345cce8, 0x00ebc7ee, 0x0053b048, 0x00f4afc1, 0x02132ec2, 0x0035f604, 0x00dce9d5, 0x00578f7c, 0x013007e8, 0x002768d9}}, Y: Field{[10]uint32{0x0067a8dc, 0x02639474, 0x0109ebd2, 0x008c8bd3, 0x013bbc4b, 0x02426ba4, 0x02a1b102, 0x022b3aa1, 0x016698a2, 0x002ecdd1}}}, + {X: Field{[10]uint32{0x00c9d4db, 0x0066e28e, 0x011ba763, 0x02208b5a, 0x0213b257, 0x0105aa21, 0x02d1c3ba, 0x03371c1b, 0x021e1a19, 0x0037115e}}, Y: Field{[10]uint32{0x03dc3b58, 0x03a04fee, 0x01776dfc, 0x0363e0a1, 0x0385e25b, 0x02518e29, 0x01919fa2, 0x01943752, 0x0366de5a, 0x000e7e4f}}}, + {X: Field{[10]uint32{0x00f0374d, 0x02760ab3, 0x009a962b, 0x01badece, 0x03ec216c, 0x0132915b, 0x0357bc66, 0x003a617f, 0x031f1b1a, 0x002c8dde}}, Y: Field{[10]uint32{0x03578c1a, 0x00666b1d, 0x02db5dac, 0x030188ca, 0x027a040f, 0x00fae5d1, 0x0114e74b, 0x014272fc, 0x0180d723, 0x000e0e95}}}, + {X: Field{[10]uint32{0x00fc7e50, 0x0144492b, 0x01f65780, 0x03381797, 0x002a5a86, 0x02570936, 0x011fabeb, 0x00ea14e1, 0x0046755d, 0x0022c699}}, Y: Field{[10]uint32{0x0255cf75, 0x03ccd1a5, 0x036231ca, 0x01850e32, 0x01ed1cd4, 0x024a96ff, 0x0288aef1, 0x00a99d46, 0x01d4cb63, 0x0010ae21}}}, + {X: Field{[10]uint32{0x0103f5b1, 0x029bfc94, 0x01b3e7d5, 0x0288c285, 0x03c3a7ef, 0x00ea41e9, 0x01f14162, 0x00683279, 0x019cbacf, 0x00250220}}, Y: Field{[10]uint32{0x00506f98, 0x031a32c3, 0x0056b0d6, 0x00c32ec9, 0x021df08c, 0x002ade68, 0x0107451f, 0x013dcff4, 0x02c9d6f8, 0x002a5d63}}}, + {X: Field{[10]uint32{0x006ce25c, 0x00661c2c, 0x013ee9c3, 0x01cf090f, 0x029ce6d4, 0x02213693, 0x017c933a, 0x03e32e67, 0x004707b3, 0x0022ffbc}}, Y: Field{[10]uint32{0x03e5c498, 0x00f04b3d, 0x03e37ca7, 0x0213a281, 0x00627f1d, 0x00c05f16, 0x00d17ee8, 0x02bc5d54, 0x01870d06, 0x0022ef2f}}}, + {X: Field{[10]uint32{0x014bdb61, 0x034a52d0, 0x03cc0dc1, 0x01ff0e00, 0x018eff64, 0x037d60be, 0x00b84b8a, 0x000b8477, 0x03f0c122, 0x0000aa15}}, Y: Field{[10]uint32{0x02db6548, 0x003bfb11, 0x029afe43, 0x0076bdfe, 0x0262c8ae, 0x023a88ea, 0x00af8c64, 0x024c6091, 0x016da7fd, 0x0026eb11}}}, + {X: Field{[10]uint32{0x015cb5ec, 0x00eb2d97, 0x0083525e, 0x039a924f, 0x03b94b1e, 0x03fd4f9a, 0x006b2242, 0x017b4c34, 0x005a9048, 0x0024dee3}}, Y: Field{[10]uint32{0x03ccd808, 0x02c9d9a9, 0x02788da3, 0x019fa6df, 0x02c9c3d8, 0x038d9b29, 0x035a311a, 0x00dd2943, 0x036ff9fb, 0x0034dec4}}}, + {X: Field{[10]uint32{0x0243c77a, 0x0038280e, 0x001a065a, 0x00cd2248, 0x0122b249, 0x01a87971, 0x0150ff30, 0x035afb64, 0x0153e2bf, 0x0017d513}}, Y: Field{[10]uint32{0x02990f51, 0x00df82c4, 0x01562c31, 0x01f88059, 0x028f4c84, 0x01c33b4c, 0x012c4130, 0x0336605d, 0x00e28c47, 0x002ea708}}}, + {X: Field{[10]uint32{0x03c807b9, 0x025f9ea9, 0x01cbd9c2, 0x03ea0695, 0x01e3249c, 0x02e7e932, 0x0364fa7e, 0x022ebe96, 0x038890bf, 0x0019ed8c}}, Y: Field{[10]uint32{0x027625e6, 0x01876fab, 0x02567620, 0x0305b22e, 0x010d871e, 0x037e0229, 0x0354577e, 0x02e0450a, 0x02752d94, 0x00370615}}}, + {X: Field{[10]uint32{0x00439442, 0x00918a26, 0x02e2fbd3, 0x0360e1a8, 0x02b76604, 0x018ca00c, 0x012ffa3d, 0x01123e7e, 0x01d599cb, 0x00161ea7}}, Y: Field{[10]uint32{0x03ae9870, 0x035b7376, 0x03dee6b6, 0x021d47fe, 0x03488aa6, 0x036efd4c, 0x01e73ca2, 0x03ea9e92, 0x00e9a893, 0x00125a66}}}, + {X: Field{[10]uint32{0x03c29b38, 0x000a5298, 0x02a568f8, 0x00696190, 0x0218dfe5, 0x01746184, 0x00773123, 0x03fe7e04, 0x031ec576, 0x000dbede}}, Y: Field{[10]uint32{0x0166c4aa, 0x00055c85, 0x038e8a2f, 0x022586eb, 0x035c1a15, 0x01f7a298, 0x016fc1a6, 0x02c6fcb2, 0x02c9b82c, 0x000d2916}}}, + {X: Field{[10]uint32{0x01f4ba95, 0x0158931c, 0x03caef77, 0x00f5393b, 0x00ab8a27, 0x0027fd0d, 0x00f49c51, 0x03b34b76, 0x008ca0af, 0x0021edc7}}, Y: Field{[10]uint32{0x025676f9, 0x00e0b314, 0x010b81bc, 0x0286f5ab, 0x005b3626, 0x0079b672, 0x0127c56e, 0x009621d9, 0x011f5112, 0x00214645}}}, + {X: Field{[10]uint32{0x0063e040, 0x00e839e9, 0x0296cf43, 0x0262e069, 0x0000056c, 0x00ee8ec3, 0x03ed962c, 0x00dc2e8e, 0x00f2805c, 0x002b3d97}}, Y: Field{[10]uint32{0x01692d5b, 0x00ed0085, 0x023d663b, 0x008f35a3, 0x02dc7b0e, 0x00bd5fbc, 0x022762b5, 0x0385abe5, 0x029bf45b, 0x003c24e4}}}, + {X: Field{[10]uint32{0x0147acf1, 0x0011d7c8, 0x03f44899, 0x02ea04a5, 0x01e3e045, 0x00737ec7, 0x01f16740, 0x003216e4, 0x03ed8b01, 0x003824af}}, Y: Field{[10]uint32{0x03902c37, 0x01c2a61d, 0x0291b657, 0x02be2f76, 0x018c4d18, 0x0181c36a, 0x00160728, 0x01a0f790, 0x0042ecc8, 0x00382ee6}}}, + {X: Field{[10]uint32{0x010a52ae, 0x021c7298, 0x0269197c, 0x01fca3b3, 0x03ba386b, 0x01c14076, 0x0012735c, 0x02f2fc5e, 0x03b98260, 0x0026f7f5}}, Y: Field{[10]uint32{0x02371eeb, 0x033f7ad7, 0x00d9affb, 0x01e10188, 0x00887d9a, 0x017d427d, 0x01e01baa, 0x013339cc, 0x03983f8c, 0x0026f194}}}, + {X: Field{[10]uint32{0x0243545f, 0x028be0a1, 0x0240e9a4, 0x00361a90, 0x00afc8a8, 0x00255087, 0x005587a9, 0x00562572, 0x0321d931, 0x000f6c88}}, Y: Field{[10]uint32{0x03b78eae, 0x03dcd263, 0x028bfddb, 0x01153bf1, 0x02fdd6bb, 0x02c6651f, 0x0323c9af, 0x021a3783, 0x00b82c57, 0x0010abcc}}}, + {X: Field{[10]uint32{0x022b3e5f, 0x009e5858, 0x03da6256, 0x01908b4d, 0x03c3757a, 0x01790fe8, 0x02decbdc, 0x01fff3e1, 0x0314a6a7, 0x0003a74f}}, Y: Field{[10]uint32{0x00e67de7, 0x003e060c, 0x027f02f9, 0x0210db59, 0x03fd18ee, 0x02a4b305, 0x02d0764d, 0x01c5331b, 0x03ed1e2a, 0x0020eb02}}}, + {X: Field{[10]uint32{0x0042f2a4, 0x007547a6, 0x0180f089, 0x02161a09, 0x01b31b90, 0x02b56566, 0x01448af0, 0x01221c38, 0x02e4f29b, 0x00104921}}, Y: Field{[10]uint32{0x01e7ee3d, 0x034e5fc3, 0x01a8f080, 0x01ed4c58, 0x000bc557, 0x030b9d87, 0x03bbb039, 0x019e430b, 0x01318c0d, 0x0030c716}}}, + {X: Field{[10]uint32{0x02b4ddaa, 0x00a7648d, 0x01a267c5, 0x008a92cb, 0x01609f84, 0x026add7e, 0x01afbe0c, 0x0141bf8b, 0x007141ed, 0x003a77bb}}, Y: Field{[10]uint32{0x0194a21d, 0x0251e3db, 0x039eb220, 0x01fe6b6d, 0x008dfb76, 0x034a8290, 0x006029e5, 0x00ef0b61, 0x0144d846, 0x00021ca1}}}, + {X: Field{[10]uint32{0x0264218a, 0x03f5bfec, 0x031735f0, 0x00b16f2d, 0x01bbf01c, 0x02e24978, 0x03a17612, 0x011a8208, 0x0292553c, 0x00168288}}, Y: Field{[10]uint32{0x015dbae2, 0x03455d79, 0x0009ce90, 0x025a3c14, 0x00012de6, 0x0111ffe7, 0x021f8976, 0x003c4289, 0x01f0adda, 0x000c25f3}}}, + {X: Field{[10]uint32{0x00928d1f, 0x03784681, 0x03d005ba, 0x03e7383f, 0x02563a40, 0x0344bc61, 0x01dc23d8, 0x006b46e8, 0x02378b68, 0x001272ca}}, Y: Field{[10]uint32{0x016732d6, 0x001a564f, 0x03bd632a, 0x02db89da, 0x00fbecc5, 0x0360128f, 0x015a938a, 0x017e83fc, 0x02afc0f6, 0x003c8d78}}}, + {X: Field{[10]uint32{0x0215feb3, 0x02af6e45, 0x037ccf99, 0x03521345, 0x003dd1af, 0x01887351, 0x01ad510a, 0x0045dec1, 0x00b63688, 0x003535c7}}, Y: Field{[10]uint32{0x0162645b, 0x03c4bc1d, 0x02c02ac7, 0x018fec1d, 0x035316c3, 0x0254354c, 0x02f385fa, 0x02e6c581, 0x0378de3e, 0x000eb594}}}, + {X: Field{[10]uint32{0x01bfab2f, 0x00f9908d, 0x01148b7e, 0x02e0fd1f, 0x01529c99, 0x013a1b31, 0x03798c31, 0x01b80193, 0x02e14bdd, 0x0001646c}}, Y: Field{[10]uint32{0x00fa59b0, 0x01a95a2a, 0x03aeca98, 0x022575e0, 0x0112a517, 0x028da356, 0x02bbaf12, 0x01319935, 0x0266fd2a, 0x0013da18}}}, + {X: Field{[10]uint32{0x03356876, 0x02f88d91, 0x00086970, 0x0003d262, 0x02be2534, 0x00bab277, 0x03b63c29, 0x02f124f5, 0x0085c984, 0x003b940f}}, Y: Field{[10]uint32{0x03daa47e, 0x0315cf12, 0x01ccb976, 0x02ce9faf, 0x0139449b, 0x005359c4, 0x01704e96, 0x022731d0, 0x02bb6f9e, 0x002f60a2}}}, + {X: Field{[10]uint32{0x00b3f89e, 0x03256cc5, 0x01697758, 0x0325dff5, 0x03756e78, 0x0261f0eb, 0x036a3f98, 0x0287f328, 0x03a702e5, 0x000be6d3}}, Y: Field{[10]uint32{0x00a4a15d, 0x03a85407, 0x03cf33f0, 0x03c86997, 0x03956657, 0x02427670, 0x022e1cee, 0x00f1d13a, 0x015b3d5b, 0x00259a18}}}, + {X: Field{[10]uint32{0x02fd46c3, 0x02c7249e, 0x03a6234e, 0x02f01b84, 0x02a1f4ae, 0x00a8042a, 0x012b204e, 0x0093e17e, 0x006aa341, 0x00062db4}}, Y: Field{[10]uint32{0x034bef4e, 0x00120747, 0x0264fb46, 0x029550dc, 0x03258b0b, 0x00f81e7c, 0x02624bfa, 0x0002c01f, 0x01b9bdf6, 0x0019b30c}}}, + {X: Field{[10]uint32{0x01b44ba0, 0x00c0d037, 0x016881cc, 0x013594e5, 0x0367662a, 0x00c36dba, 0x0337d0f0, 0x023763ff, 0x0163bf75, 0x000ef01e}}, Y: Field{[10]uint32{0x01057e5d, 0x01dc306b, 0x008a357d, 0x03b2dd15, 0x008e6dc1, 0x01db6dbe, 0x039a3c22, 0x026870b7, 0x02f26820, 0x00183847}}}, + {X: Field{[10]uint32{0x013a46a8, 0x026ca201, 0x01e3dd08, 0x016bc3ba, 0x0291498b, 0x0327e9a2, 0x0149af30, 0x01508ebf, 0x01d65b32, 0x0002fd61}}, Y: Field{[10]uint32{0x038e66a6, 0x033dab78, 0x00c0594b, 0x0304d147, 0x0204c000, 0x02a794e5, 0x0256e2cf, 0x012e6944, 0x00e9ea48, 0x000be251}}}, + {X: Field{[10]uint32{0x03b69294, 0x02704cf3, 0x01a7f64e, 0x00e35fc1, 0x00f0cf14, 0x007d03be, 0x01b59a91, 0x00095d75, 0x022ebe7a, 0x00221f02}}, Y: Field{[10]uint32{0x00aec5c9, 0x01c79c58, 0x02a58402, 0x0037483d, 0x019c37c3, 0x0105d524, 0x03de5949, 0x0319bd43, 0x00c84f9b, 0x00117ccd}}}, + {X: Field{[10]uint32{0x022f7d4f, 0x03e68d98, 0x0211601b, 0x027e0128, 0x003718e7, 0x030f71af, 0x0217700f, 0x00c97166, 0x02f90a73, 0x00276b5e}}, Y: Field{[10]uint32{0x02159525, 0x00a616b9, 0x03136644, 0x02b40624, 0x0140644b, 0x0227ae37, 0x02326ecb, 0x01aa531f, 0x025e099c, 0x000adf08}}}, + {X: Field{[10]uint32{0x03dd551b, 0x02116529, 0x006947cb, 0x007272be, 0x0363bcb6, 0x01cf37f3, 0x03e9a2ed, 0x00a7dd3c, 0x039572bd, 0x00211f93}}, Y: Field{[10]uint32{0x0393ee16, 0x0226856c, 0x004b81ea, 0x020a8407, 0x000f6f11, 0x01c32cd1, 0x006286d3, 0x00b18bea, 0x0282e0a9, 0x002e9bb4}}}, + {X: Field{[10]uint32{0x0047a593, 0x012bd1fc, 0x01580268, 0x00b3374f, 0x00b5d8c6, 0x02495b1c, 0x033c4b44, 0x00d80119, 0x0205df1c, 0x0009484c}}, Y: Field{[10]uint32{0x03096837, 0x018f59fb, 0x01f3c547, 0x03b10a9e, 0x0395aabf, 0x02881591, 0x022a47a8, 0x011c27eb, 0x01de05af, 0x000db720}}}, + {X: Field{[10]uint32{0x0058e87a, 0x0032f384, 0x0229ab17, 0x01c175cc, 0x0095ebfd, 0x00beca7f, 0x013a25ef, 0x037de91c, 0x00d84866, 0x001d48a3}}, Y: Field{[10]uint32{0x0012fe6d, 0x02ecc2f0, 0x03812a7d, 0x01564a6e, 0x0168a473, 0x00215105, 0x025f056c, 0x034fd3f4, 0x039bcc02, 0x003ee921}}}, + {X: Field{[10]uint32{0x01b68568, 0x036b6ed6, 0x03fe4b6a, 0x00dd0b18, 0x00981a13, 0x00109224, 0x002fb07c, 0x01f021b4, 0x01392286, 0x001d2515}}, Y: Field{[10]uint32{0x011af3e2, 0x03aed507, 0x01180341, 0x00111919, 0x013e3b8d, 0x0091f9d4, 0x030bf0b5, 0x02c6722b, 0x01178df8, 0x001f5dd2}}}, + {X: Field{[10]uint32{0x03c9b04f, 0x0383f2ff, 0x03f7a609, 0x038d5fd1, 0x0271d28c, 0x00a651bc, 0x00cbadfc, 0x038e73e8, 0x03532899, 0x001a76df}}, Y: Field{[10]uint32{0x019feabc, 0x0252d8c6, 0x011f0a66, 0x0375d928, 0x0326da7c, 0x007543e7, 0x0023ffee, 0x01576ab5, 0x03bb1032, 0x0032c090}}}, + {X: Field{[10]uint32{0x0129f8c7, 0x01cf0a4a, 0x022251d1, 0x03d54f6b, 0x02ec4aed, 0x0240be48, 0x012fc378, 0x0036f83f, 0x01c1fb4a, 0x001c9fb3}}, Y: Field{[10]uint32{0x011f453b, 0x03525799, 0x0035c224, 0x030592f0, 0x02bfc4f7, 0x015d536c, 0x0046ee5e, 0x02358199, 0x02ed1377, 0x002b96ec}}}, + {X: Field{[10]uint32{0x02f25b72, 0x0278cd1f, 0x00382b12, 0x01cd7baf, 0x01912138, 0x00b1fcaf, 0x007f5c9e, 0x01512f88, 0x018f0ec2, 0x00240f3b}}, Y: Field{[10]uint32{0x003190a6, 0x01073565, 0x00c8bb2e, 0x0255af90, 0x03ff75c7, 0x03ea2df6, 0x009bf33a, 0x00f4c57a, 0x02290ee1, 0x000845f2}}}, + {X: Field{[10]uint32{0x0203f33b, 0x02eee646, 0x02ca33a6, 0x03c200cd, 0x031c8906, 0x03f4d8dc, 0x038a5ad6, 0x03845cd8, 0x03ef5149, 0x00313519}}, Y: Field{[10]uint32{0x0229b5c7, 0x026058c1, 0x01b63bf3, 0x0033fe5d, 0x00431ad8, 0x02fcbf3b, 0x03d437ea, 0x01af3f38, 0x03244c53, 0x003a96d6}}}, + {X: Field{[10]uint32{0x0237326f, 0x0178df3a, 0x03cf9d32, 0x029b0daf, 0x01cff7a8, 0x036028bc, 0x03b2b7ad, 0x0027dec8, 0x03a65f6d, 0x0005ad5d}}, Y: Field{[10]uint32{0x009f15c1, 0x01ce4d34, 0x02dcbe90, 0x03876c68, 0x0184d98b, 0x0294a9e4, 0x00a65760, 0x0139788a, 0x00e21467, 0x00019aea}}}, + {X: Field{[10]uint32{0x0363412f, 0x0214c766, 0x01f5a676, 0x036f4afc, 0x0367fcee, 0x02f5f77d, 0x02453846, 0x02b7f387, 0x02f2e480, 0x002b52f2}}, Y: Field{[10]uint32{0x01e741ac, 0x0068e03a, 0x03f4a0a6, 0x02dd59cd, 0x00c4c891, 0x0097b9cb, 0x031b3a45, 0x003d6446, 0x03604781, 0x00147e80}}}, + {X: Field{[10]uint32{0x033b571a, 0x01ccd8b0, 0x01dd587d, 0x037b767a, 0x0151ca65, 0x006f2ce6, 0x012d776d, 0x039e1d29, 0x033852d2, 0x002c927a}}, Y: Field{[10]uint32{0x03a66258, 0x000c8c94, 0x031d9b11, 0x001a9e70, 0x0062dd77, 0x005dc25b, 0x03cd84eb, 0x03b3a020, 0x002414e4, 0x000f8982}}}, + {X: Field{[10]uint32{0x01e14a65, 0x0347b12f, 0x029dbccf, 0x0181f8ef, 0x0374dd05, 0x0274b14e, 0x0310d3a5, 0x0006ba04, 0x02c7696a, 0x0018d064}}, Y: Field{[10]uint32{0x03b0e00f, 0x03948895, 0x0154adcb, 0x03912e4a, 0x004fd4cc, 0x031e1ec6, 0x02dcd709, 0x0381df61, 0x0050e366, 0x001156d2}}}, + {X: Field{[10]uint32{0x022f5099, 0x02577312, 0x02ce6fd2, 0x03b7eec6, 0x02acc3c5, 0x0052c662, 0x02159ccc, 0x00fe0127, 0x03f50d43, 0x003fefb2}}, Y: Field{[10]uint32{0x000be3c0, 0x00779491, 0x0285caaa, 0x01a22921, 0x03dd68d3, 0x0300ee8c, 0x0089acf9, 0x01b3d0d9, 0x02ba1ec6, 0x00108b9e}}}, + {X: Field{[10]uint32{0x001868af, 0x00cf7457, 0x035ad8c1, 0x00ed4269, 0x02b6a8c8, 0x03418cb6, 0x034f1a90, 0x03a08e73, 0x00dc1067, 0x00196d31}}, Y: Field{[10]uint32{0x014d260e, 0x02b0797e, 0x026d840d, 0x005e7548, 0x0320c678, 0x01fd0a80, 0x003f8ae0, 0x01186146, 0x019dd765, 0x003df3d7}}}, + {X: Field{[10]uint32{0x03f9c67e, 0x00695826, 0x0355924c, 0x02ecd756, 0x008de48d, 0x0016e343, 0x018dbed4, 0x00d40b54, 0x00ce9d60, 0x0034e03b}}, Y: Field{[10]uint32{0x0364c128, 0x00d7e3f6, 0x013ae50c, 0x0136a02c, 0x038b241b, 0x01971827, 0x030ac152, 0x02ac427a, 0x0080fd18, 0x0006ba11}}}, + {X: Field{[10]uint32{0x0244511c, 0x0213fd33, 0x002df634, 0x03dc6741, 0x003fce43, 0x01774694, 0x00a1d961, 0x006efb5e, 0x0128b5ce, 0x0005c627}}, Y: Field{[10]uint32{0x0382350d, 0x01a91ce9, 0x03bb5759, 0x026236cb, 0x0185c532, 0x029584a2, 0x021b948b, 0x00f8e504, 0x00f47c7b, 0x003ef28a}}}, + {X: Field{[10]uint32{0x00c2e84d, 0x0160e0a0, 0x01ee73f5, 0x0393ebf3, 0x010be685, 0x02496fcf, 0x01ae4e61, 0x02c1f6a1, 0x02c2e2a8, 0x003ef8cc}}, Y: Field{[10]uint32{0x024e29ca, 0x0295e5fa, 0x00eb30e1, 0x0381ad65, 0x02b11c43, 0x026d0b2f, 0x038c6d77, 0x01f6838f, 0x03425e18, 0x002aa45c}}}, + {X: Field{[10]uint32{0x00bc834f, 0x01e58ee8, 0x0321002d, 0x03d736ab, 0x012100d1, 0x00ba7348, 0x00bd5182, 0x01c97e2d, 0x02878b5e, 0x0022e7a2}}, Y: Field{[10]uint32{0x003ed659, 0x01de8233, 0x00563bed, 0x0371154b, 0x02b2e873, 0x002d95c0, 0x031d6ad8, 0x015af57f, 0x031cc28f, 0x000cc7ec}}}, + {X: Field{[10]uint32{0x01e111ca, 0x003323a3, 0x02a3bd73, 0x022ad9a2, 0x0234e1a6, 0x032986b0, 0x02798ace, 0x02f2b45e, 0x0011a3c0, 0x0025fa49}}, Y: Field{[10]uint32{0x0147f48f, 0x0312fc5a, 0x007eb7cd, 0x01d82ebf, 0x01047949, 0x00f08690, 0x035fb759, 0x01785cb9, 0x00a4bac1, 0x002c3c5c}}}, + {X: Field{[10]uint32{0x0044eea8, 0x008ec974, 0x016919cd, 0x007f5354, 0x0349aa3c, 0x0309e55d, 0x00c76f82, 0x00f1bb32, 0x001333a1, 0x00080d62}}, Y: Field{[10]uint32{0x000c7f29, 0x00f2245e, 0x025c0ee7, 0x03c41366, 0x00259fc4, 0x037c3cd1, 0x022f9517, 0x02bc2bb3, 0x02a48c86, 0x001202be}}}, + {X: Field{[10]uint32{0x027dbcff, 0x016fade9, 0x00343a66, 0x03988adf, 0x02617579, 0x02126fbf, 0x01551039, 0x01d02a40, 0x00cb1575, 0x0032a87b}}, Y: Field{[10]uint32{0x00e0a20b, 0x0354b829, 0x02577e0b, 0x004e707a, 0x011aee51, 0x02fc10b6, 0x03d34511, 0x01cbfedb, 0x03f9f1c9, 0x002a9a56}}}, + {X: Field{[10]uint32{0x02620719, 0x028eb6f0, 0x02bbd138, 0x0279ba3c, 0x03f33104, 0x03f5ae20, 0x02a212a7, 0x01ea3bf6, 0x03a2036f, 0x00239f0a}}, Y: Field{[10]uint32{0x02ec105c, 0x01863e0b, 0x02d0220a, 0x00c47fb3, 0x00d9b6e0, 0x01de7e30, 0x006c4e2e, 0x03ecfd61, 0x002f1434, 0x002f40dc}}}, + {X: Field{[10]uint32{0x02ace975, 0x018df1ee, 0x033b24dd, 0x0046393a, 0x0388fbad, 0x00301de0, 0x03ebf094, 0x001307f3, 0x00336dcd, 0x00381f70}}, Y: Field{[10]uint32{0x032a2c2c, 0x01985aac, 0x0019510d, 0x01a14011, 0x02ef6f92, 0x02f54c55, 0x02ccf311, 0x03b2c1d8, 0x00a00e5e, 0x002c4ef4}}}, + {X: Field{[10]uint32{0x038ce0cb, 0x03e8b7ee, 0x0307297a, 0x0247470c, 0x0095aba7, 0x036c2ca3, 0x018a9044, 0x02bc0427, 0x00252679, 0x001981b2}}, Y: Field{[10]uint32{0x00e1d3cc, 0x01f2b202, 0x02054647, 0x015cdae8, 0x0310fe6c, 0x011e1a3e, 0x010de777, 0x01e64d5c, 0x019ca980, 0x001d4179}}}, + {X: Field{[10]uint32{0x01e6f061, 0x02e64d47, 0x020b522a, 0x00d4ae67, 0x022b31f9, 0x0037976b, 0x005450fb, 0x0089b02d, 0x00dcec48, 0x0027efd3}}, Y: Field{[10]uint32{0x02f850dd, 0x03e98047, 0x02c91a7d, 0x0119c0d3, 0x00e9c5b6, 0x00d8adf7, 0x020d58a2, 0x0083a182, 0x00a23da0, 0x003cb934}}}, + {X: Field{[10]uint32{0x006916bc, 0x03d8618a, 0x01b1b976, 0x019fa003, 0x00b7cc81, 0x025df4cb, 0x00b0403e, 0x03ff0a62, 0x02975195, 0x000381b5}}, Y: Field{[10]uint32{0x030bb8bb, 0x011302f0, 0x01c83632, 0x02ec3069, 0x02068302, 0x012400fa, 0x0380e04a, 0x034885eb, 0x030a27d3, 0x0020054d}}}, + {X: Field{[10]uint32{0x0293a6e2, 0x028fc2a4, 0x01a6bcf4, 0x01dfa5e1, 0x03ff7925, 0x01b85b35, 0x0112fd4e, 0x00aab194, 0x03ab021d, 0x002b7359}}, Y: Field{[10]uint32{0x03fd7fb8, 0x02970ad5, 0x0293d0fa, 0x03526d6f, 0x018e4f40, 0x01730eeb, 0x0058608f, 0x00aaa814, 0x02202906, 0x001949ed}}}, + {X: Field{[10]uint32{0x01f2bd38, 0x02fde8b8, 0x00e133e0, 0x005da244, 0x035a4473, 0x025a026c, 0x007e963d, 0x01932c46, 0x01eab43a, 0x0007641a}}, Y: Field{[10]uint32{0x01e29108, 0x037cc6a4, 0x033bbf15, 0x023e93b0, 0x00fc78c2, 0x03bd5057, 0x012f9a68, 0x023fa52b, 0x02de854b, 0x002ac0f7}}}, + {X: Field{[10]uint32{0x0220a768, 0x008b99c2, 0x0140e3a4, 0x03dca8e0, 0x03603206, 0x033a0fd2, 0x00168ae8, 0x0224bc52, 0x0376b8ec, 0x003c7dad}}, Y: Field{[10]uint32{0x01bff25a, 0x02ff2cae, 0x0345d14a, 0x01f60a9f, 0x01e7136a, 0x02ec9736, 0x019b11a7, 0x0368845f, 0x00363413, 0x00224ae8}}}, + {X: Field{[10]uint32{0x02fab379, 0x007177c7, 0x03fb0040, 0x008d0ce9, 0x03c21d1c, 0x0228b70e, 0x03a8d1bf, 0x03d3343c, 0x014ace79, 0x002a213e}}, Y: Field{[10]uint32{0x02a05c96, 0x00c3e037, 0x03082dd6, 0x03e97434, 0x03c611af, 0x03c0f77d, 0x0282fbee, 0x009233b0, 0x016c6e45, 0x0017d4cd}}}, + {X: Field{[10]uint32{0x021da9ff, 0x0203c439, 0x02fe981a, 0x0020d7a7, 0x031fb2be, 0x02d2353d, 0x00165640, 0x02200384, 0x0030197a, 0x002c6621}}, Y: Field{[10]uint32{0x01d849b9, 0x01a36393, 0x00bdf44a, 0x01057b1c, 0x000e515a, 0x01b85068, 0x027ace58, 0x004b496f, 0x024dea7d, 0x003571e1}}}, + {X: Field{[10]uint32{0x0127fedb, 0x0110d383, 0x02d4d109, 0x02ba50bd, 0x0246985a, 0x02db24ea, 0x01c1db82, 0x016e12f5, 0x02a7529d, 0x00056dce}}, Y: Field{[10]uint32{0x02721f89, 0x036af23b, 0x02262075, 0x037bcbf2, 0x00632ac6, 0x00728f50, 0x0011259b, 0x0344f108, 0x02a2bc8a, 0x000a5f8c}}}, + {X: Field{[10]uint32{0x0197d40f, 0x01de0b1f, 0x00f3f57f, 0x01e85b34, 0x038e35cc, 0x005b948f, 0x01926301, 0x007ec596, 0x02e0443c, 0x000ce69d}}, Y: Field{[10]uint32{0x01fe9659, 0x02f5dcf3, 0x02a229e5, 0x01af104e, 0x03914f0f, 0x00ed4b9b, 0x02756201, 0x01e130cf, 0x012efecd, 0x00226419}}}, + {X: Field{[10]uint32{0x027adfef, 0x02d460ed, 0x0251bf64, 0x038613d3, 0x03b1c535, 0x02c24112, 0x018312e9, 0x0376ae51, 0x00fffb80, 0x002fbc9b}}, Y: Field{[10]uint32{0x0137490b, 0x02f79167, 0x03bb5ba1, 0x03c859d6, 0x012c6943, 0x016cc43d, 0x0320518c, 0x01aa0d63, 0x029aef07, 0x000e0624}}}, + {X: Field{[10]uint32{0x00b2427e, 0x036490c2, 0x01894c71, 0x02188c49, 0x003dd40d, 0x013e46c2, 0x00dae108, 0x0309cd3d, 0x00818daf, 0x0033715b}}, Y: Field{[10]uint32{0x03503cca, 0x0041fc07, 0x02c71f07, 0x00d4fd61, 0x01b43769, 0x0155e7e4, 0x01425694, 0x00a2d511, 0x009de9c8, 0x0003d2cc}}}, + {X: Field{[10]uint32{0x0175bc6d, 0x0148039f, 0x01911cd6, 0x0298a9dd, 0x03a09312, 0x0258717e, 0x01be80a1, 0x0211e7b2, 0x0281b1f3, 0x000f77bf}}, Y: Field{[10]uint32{0x02df055d, 0x0160d615, 0x015d3a1e, 0x01442a7a, 0x027c7e2d, 0x02a001f4, 0x03fae4eb, 0x02d1e53b, 0x02dd1eb9, 0x001d760f}}}, + {X: Field{[10]uint32{0x00576826, 0x00e41044, 0x0399e763, 0x03498eab, 0x02a18879, 0x02484b3c, 0x02bae125, 0x00b2f130, 0x03769903, 0x00369f19}}, Y: Field{[10]uint32{0x00553f08, 0x02ba7cce, 0x031d0c07, 0x00f0fc72, 0x024314cc, 0x03a01a63, 0x031f7799, 0x03116e61, 0x0188360a, 0x000b9e9b}}}, + {X: Field{[10]uint32{0x0280d927, 0x02aa446a, 0x003859df, 0x0312b870, 0x02b8aba4, 0x01fd1556, 0x00faa801, 0x00831623, 0x0035e0bc, 0x0009846d}}, Y: Field{[10]uint32{0x014508d4, 0x0032b4df, 0x01b417ce, 0x03490a79, 0x00e47549, 0x0014a7eb, 0x01ff8c1c, 0x03141119, 0x001ae51d, 0x003ad63e}}}, + {X: Field{[10]uint32{0x03962961, 0x03fb1ed9, 0x027bc3de, 0x0025a516, 0x020b8f4c, 0x001adc75, 0x015aa088, 0x01f12a9c, 0x014836f0, 0x002c3ef9}}, Y: Field{[10]uint32{0x03e5abe0, 0x020694e0, 0x010de2a8, 0x02c117b9, 0x021c1749, 0x0378c328, 0x018668fe, 0x01d13431, 0x022466e7, 0x00331828}}}, + {X: Field{[10]uint32{0x01020581, 0x02ed27b2, 0x01a9eb50, 0x03ad7b7b, 0x0277d371, 0x01180f21, 0x00b7688b, 0x03b9d7eb, 0x036fdc51, 0x000680cc}}, Y: Field{[10]uint32{0x00daa7d7, 0x01c57926, 0x0218ce9f, 0x01166f9f, 0x03bd5071, 0x02b3f6f1, 0x0055fc36, 0x03b7e266, 0x030309c0, 0x000ff3c6}}}, + {X: Field{[10]uint32{0x00c159ed, 0x03b9cbde, 0x013c3810, 0x02492793, 0x020cf728, 0x00bda28d, 0x0049b20f, 0x024556aa, 0x0215c834, 0x001d8e84}}, Y: Field{[10]uint32{0x00482684, 0x03797996, 0x0390bd7d, 0x031a7ff4, 0x037b68d5, 0x007cbc89, 0x0395fbad, 0x0387b685, 0x021ccf30, 0x000de09a}}}, + {X: Field{[10]uint32{0x02da4edd, 0x00b09f72, 0x01eff63f, 0x03617e81, 0x00f7e664, 0x01bc0623, 0x020a586a, 0x00f8df73, 0x00c23018, 0x001ff1ed}}, Y: Field{[10]uint32{0x03ed6a8f, 0x0057244a, 0x03f50ac4, 0x03ebf915, 0x036338d2, 0x02af9ef3, 0x02493430, 0x02681bc1, 0x000e6ea8, 0x003f5e9e}}}, + {X: Field{[10]uint32{0x0065ddd8, 0x00984d77, 0x008d7747, 0x03f3c05b, 0x03dc543b, 0x01049623, 0x01eb7d70, 0x01bd5436, 0x03c9b068, 0x00088a01}}, Y: Field{[10]uint32{0x016cc2ab, 0x0255ec29, 0x0098b43d, 0x02d0c072, 0x029a34b2, 0x0064e4f6, 0x036d1553, 0x008bbf2c, 0x0102456c, 0x002e59c2}}}, + {X: Field{[10]uint32{0x005fda77, 0x00627c3f, 0x01603ed0, 0x01182aff, 0x02db6363, 0x028134f1, 0x0233f69c, 0x0341b9b2, 0x033698d8, 0x001e763a}}, Y: Field{[10]uint32{0x03d955f1, 0x009945c8, 0x02b28f13, 0x02789b5e, 0x02931fd4, 0x00676d48, 0x011d460e, 0x00d2a637, 0x03e11b02, 0x002fff25}}}, + {X: Field{[10]uint32{0x03add34b, 0x013449fa, 0x01dc5d46, 0x01aab223, 0x031f801a, 0x037b3db8, 0x02b77130, 0x0386db56, 0x02188e72, 0x00288d99}}, Y: Field{[10]uint32{0x03d60ed1, 0x00daaf9d, 0x03aebb17, 0x0321464f, 0x0070e99a, 0x00543fec, 0x034cd1cd, 0x00644c9d, 0x0236f3e7, 0x003bc8f6}}}, + {X: Field{[10]uint32{0x01dd9612, 0x03f06ed2, 0x013be480, 0x02cfe87c, 0x01b1fcbd, 0x00fe91a9, 0x023e8e74, 0x0205b644, 0x004ddde6, 0x002daeb4}}, Y: Field{[10]uint32{0x02a4e511, 0x02c0402d, 0x035467f1, 0x001f6566, 0x01850c65, 0x0116e02c, 0x00b7f346, 0x02c9ce9a, 0x0209a290, 0x001617eb}}}, + {X: Field{[10]uint32{0x00c3dfbd, 0x007874bd, 0x03aceb49, 0x0163cf5b, 0x0133fcbd, 0x02ed4063, 0x03113db8, 0x039c54a0, 0x00253353, 0x000afc87}}, Y: Field{[10]uint32{0x038d896e, 0x03113273, 0x033ef569, 0x03628356, 0x03b9fec4, 0x00e91ec1, 0x00491214, 0x01356f23, 0x03a74e8a, 0x0038e80c}}}, + {X: Field{[10]uint32{0x01842744, 0x03777497, 0x02dda358, 0x0099a817, 0x0041e9ad, 0x01c4247d, 0x03f3a90e, 0x038d7418, 0x0241e978, 0x0019309e}}, Y: Field{[10]uint32{0x01ae32d1, 0x0304ce4f, 0x03d27521, 0x0008ed49, 0x02bed768, 0x03f99f05, 0x00aac9ec, 0x029a5662, 0x025e08fd, 0x003f2ed8}}}, + {X: Field{[10]uint32{0x0081a58d, 0x010b4ad9, 0x03399b75, 0x02b680be, 0x00af62ac, 0x018f35f2, 0x00ef4350, 0x016d7a69, 0x02f6fdfe, 0x00188287}}, Y: Field{[10]uint32{0x01b8054f, 0x030c16b7, 0x01ae57be, 0x0317b209, 0x03a45fa7, 0x0151f880, 0x007f105c, 0x024e9be8, 0x023c5503, 0x002c2de7}}}, + {X: Field{[10]uint32{0x007b95cd, 0x01d19d4c, 0x038a1ecd, 0x014681af, 0x0215e712, 0x0093b831, 0x03ef68b4, 0x01c550d1, 0x01317cef, 0x000548fc}}, Y: Field{[10]uint32{0x00743b1d, 0x0145bffc, 0x02612bf5, 0x03154f70, 0x00a55806, 0x03c4796d, 0x01fe67a3, 0x03599370, 0x00cc1d8a, 0x0031c955}}}, + {X: Field{[10]uint32{0x02ea0cfd, 0x035ca513, 0x03700f66, 0x00f02dd4, 0x01b43f76, 0x0335cff3, 0x00d4d8c2, 0x021e5300, 0x003c0a9c, 0x0035d94c}}, Y: Field{[10]uint32{0x03bc267b, 0x0180f495, 0x02623781, 0x008ab806, 0x0035b4cd, 0x028c1937, 0x0217b73d, 0x035dea8e, 0x00a5204d, 0x002ebf2b}}}, + {X: Field{[10]uint32{0x00c468b6, 0x03c12b59, 0x01a8ea17, 0x01ed860e, 0x01ffbbf8, 0x00972f10, 0x0198759c, 0x03a59594, 0x021afafc, 0x0029d7ad}}, Y: Field{[10]uint32{0x01869873, 0x0125f659, 0x007b8041, 0x00859356, 0x03a8eba3, 0x029b5439, 0x0049b181, 0x0122a94f, 0x0093240f, 0x0026600a}}}, + {X: Field{[10]uint32{0x00e59f2a, 0x01381aef, 0x03cfa408, 0x01f6fac2, 0x01e7053f, 0x009079a4, 0x01813c71, 0x0246db09, 0x034cd0bb, 0x001fe906}}, Y: Field{[10]uint32{0x0184aec7, 0x020ec738, 0x0209f7e5, 0x00b0012a, 0x039431e2, 0x03da8b15, 0x017e7e20, 0x01a57e0c, 0x0379755a, 0x00282505}}}, + {X: Field{[10]uint32{0x02e4dbf5, 0x0333fd85, 0x03d6fcc5, 0x03ef6082, 0x033bfa1b, 0x02b889db, 0x01eb4408, 0x03c4ab63, 0x01b72240, 0x00205b03}}, Y: Field{[10]uint32{0x037e52d0, 0x0059810f, 0x02c9f67c, 0x0342a606, 0x02e57acb, 0x03dc0957, 0x009dd4bb, 0x03996251, 0x013dd91e, 0x000a94b2}}}, + {X: Field{[10]uint32{0x023414f8, 0x03725430, 0x0380fbb7, 0x021ec305, 0x00ddbb3d, 0x011a4178, 0x0390ac73, 0x00509544, 0x01f1317f, 0x000cfd8d}}, Y: Field{[10]uint32{0x014bfbcb, 0x01a950f9, 0x013bdb62, 0x02000afe, 0x01151235, 0x02f0acb0, 0x034d570b, 0x006622e5, 0x015584eb, 0x001d0d68}}}, + {X: Field{[10]uint32{0x0251999c, 0x02fb11a8, 0x00eb3e94, 0x0079ed78, 0x030bdfe1, 0x02f10e29, 0x0307185f, 0x02ec0cd4, 0x02d704b0, 0x0034a50e}}, Y: Field{[10]uint32{0x036d577e, 0x02925059, 0x0006f19a, 0x01aceffb, 0x00b6097d, 0x03fdba7f, 0x01e41def, 0x028c53af, 0x03cf19aa, 0x000b72a3}}}, + {X: Field{[10]uint32{0x01fb1da6, 0x00494967, 0x01516b01, 0x01970434, 0x00fb524b, 0x01791283, 0x0054390b, 0x01d69bfb, 0x03bfc543, 0x0009aa87}}, Y: Field{[10]uint32{0x01a91b02, 0x009380e6, 0x03a2fd4b, 0x01bc02af, 0x0083973c, 0x039fa066, 0x037d0b6e, 0x01d7380c, 0x02a604c5, 0x00127b3a}}}, + {X: Field{[10]uint32{0x03d28d20, 0x02d633e9, 0x000cd65e, 0x01f7a08c, 0x02ab1871, 0x02523cbd, 0x026d7da1, 0x0280c172, 0x001af866, 0x001e02bb}}, Y: Field{[10]uint32{0x0008b91a, 0x03ca5e2f, 0x0392992c, 0x000862ab, 0x02414b3a, 0x001edbde, 0x0075b6d1, 0x00387aa4, 0x0041e45a, 0x00369940}}}, + {X: Field{[10]uint32{0x00b88b67, 0x035b540b, 0x03b3d5ee, 0x00fca7fd, 0x01ef9811, 0x00f31079, 0x0115853b, 0x037528f9, 0x02598e59, 0x000773fc}}, Y: Field{[10]uint32{0x02b77271, 0x02005c86, 0x012f28c6, 0x02faa6ae, 0x03aed86c, 0x00e0db81, 0x014307ae, 0x01c79159, 0x02307c68, 0x0035e5e1}}}, + {X: Field{[10]uint32{0x033ff70d, 0x0223b90d, 0x00b01e24, 0x00ea736d, 0x038f336f, 0x03b38718, 0x02367eb5, 0x0064de4f, 0x00a27732, 0x002c66bd}}, Y: Field{[10]uint32{0x00821dec, 0x01357de7, 0x0241dc21, 0x0337553d, 0x03b9e73f, 0x01aa3b9c, 0x037f27a2, 0x0168b509, 0x0039a510, 0x0028faa2}}}, + {X: Field{[10]uint32{0x00f6755e, 0x01e0bdad, 0x02066acf, 0x00b69223, 0x0235f24e, 0x024c925c, 0x00b6126b, 0x0277dbca, 0x0329548a, 0x00072307}}, Y: Field{[10]uint32{0x01ff432d, 0x017be584, 0x030c9179, 0x008ea198, 0x0278108b, 0x0065a81f, 0x00c7e2a3, 0x006bb173, 0x03526a1e, 0x00069e6a}}}, + {X: Field{[10]uint32{0x015716ce, 0x00454faf, 0x021d4f0b, 0x01d44b10, 0x00e4d700, 0x010c4e5a, 0x00a10b7b, 0x030f08f2, 0x01da1ad6, 0x002dbfe3}}, Y: Field{[10]uint32{0x01ce61b8, 0x00c1be69, 0x0232d7c9, 0x030aaa1e, 0x00af8dbe, 0x036cf807, 0x00d21e4e, 0x01059f28, 0x01c6b7b7, 0x00134e1a}}}, + {X: Field{[10]uint32{0x00f47b5c, 0x012233b4, 0x02ccb375, 0x02760c39, 0x00ec08cf, 0x03e82b58, 0x00219329, 0x02a12a06, 0x00acf61b, 0x00373bfd}}, Y: Field{[10]uint32{0x0137d6f9, 0x029bad70, 0x013b1736, 0x02c0e158, 0x00fb1b8d, 0x029292aa, 0x03d5508a, 0x0186d220, 0x00e192bc, 0x002526bb}}}, + {X: Field{[10]uint32{0x00a5ebef, 0x03bacdf7, 0x01c8b131, 0x0262fa14, 0x01843ccf, 0x028f3a10, 0x004aa189, 0x01a2725f, 0x03a7b709, 0x00155879}}, Y: Field{[10]uint32{0x019a14da, 0x007c56ea, 0x015a709a, 0x029b9977, 0x0233b924, 0x01ad0528, 0x00e6b7f2, 0x02f8d90c, 0x0017f298, 0x0012c423}}}, + {X: Field{[10]uint32{0x0395a257, 0x003265e8, 0x008027ca, 0x01516cf2, 0x019c56a2, 0x038193a7, 0x025d5bb2, 0x00565423, 0x017789b0, 0x00136625}}, Y: Field{[10]uint32{0x00b6e0d0, 0x007c8850, 0x02675795, 0x03396dc1, 0x00506964, 0x016c0271, 0x03200c9f, 0x001d5b16, 0x0333ac95, 0x002abaeb}}}, + {X: Field{[10]uint32{0x033bfc8e, 0x01a84bf8, 0x03668124, 0x00befd2b, 0x00e9da51, 0x019b3201, 0x02d55a9d, 0x00f12cc2, 0x026e0637, 0x0020ad63}}, Y: Field{[10]uint32{0x025ffb38, 0x03011e06, 0x013d387c, 0x01f4bfcd, 0x01d6d757, 0x03fd310a, 0x033b5c21, 0x0078dcb0, 0x022d98dc, 0x0020de04}}}, + {X: Field{[10]uint32{0x02c6cdf3, 0x0266fa00, 0x0063ad11, 0x01d4d9a5, 0x03714c3d, 0x03beb113, 0x017d8809, 0x01e12ff9, 0x008aa773, 0x003d27ea}}, Y: Field{[10]uint32{0x0218b3f4, 0x02a8e7e6, 0x00772b96, 0x02c12608, 0x02aa9855, 0x024d20ef, 0x03e72814, 0x02904722, 0x02c02164, 0x00106bfd}}}, + {X: Field{[10]uint32{0x00efd78c, 0x031633b0, 0x03073969, 0x03c035e2, 0x010ce910, 0x030614a9, 0x01b97a78, 0x01168630, 0x01dbac84, 0x0019f521}}, Y: Field{[10]uint32{0x00981e97, 0x01bcc821, 0x034be44e, 0x02e73c67, 0x01596f49, 0x022fc1f6, 0x00aa5a82, 0x00acc57f, 0x012a24ff, 0x001c776a}}}, + {X: Field{[10]uint32{0x0304d4cd, 0x02a58411, 0x0350adb2, 0x01fa2d74, 0x0030a46f, 0x0169c5d8, 0x0399883b, 0x00e30f3f, 0x02f2c190, 0x0024517d}}, Y: Field{[10]uint32{0x0222b0bc, 0x00036f9a, 0x00add567, 0x00aedb9e, 0x036c8e42, 0x035de2ce, 0x00664d54, 0x0317f875, 0x01e7852a, 0x0027645e}}}, + {X: Field{[10]uint32{0x02b2631b, 0x00f88fd1, 0x024b3550, 0x02260237, 0x01536740, 0x001c66af, 0x033848ce, 0x03d7c473, 0x0247efc2, 0x00124b54}}, Y: Field{[10]uint32{0x008fd750, 0x02e31020, 0x00863d50, 0x002ca49c, 0x009f021d, 0x02656935, 0x0168877c, 0x032261fb, 0x03627812, 0x000dd2c1}}}, + {X: Field{[10]uint32{0x03dd1dec, 0x02072985, 0x035490a3, 0x002d1861, 0x0125c661, 0x00af6e71, 0x018d2317, 0x0059e24a, 0x03b8bb81, 0x0016e377}}, Y: Field{[10]uint32{0x031f7568, 0x028d4c5e, 0x031cea92, 0x0030fa20, 0x03c7ae17, 0x00cf53ce, 0x010dee01, 0x0086345f, 0x0364fce3, 0x002d1f4d}}}, + {X: Field{[10]uint32{0x02406c65, 0x0174c3c3, 0x02c5c6a3, 0x03af6847, 0x00063c6f, 0x035531b5, 0x01e603cc, 0x005906bd, 0x03ba25a6, 0x002236dc}}, Y: Field{[10]uint32{0x0000a753, 0x01efc6d2, 0x0056b402, 0x03843051, 0x009b8b5b, 0x00a57e30, 0x004c67ae, 0x035edc22, 0x037b1c1d, 0x000e6c1b}}}, + {X: Field{[10]uint32{0x00382451, 0x020246a7, 0x03721fb3, 0x02f78cc3, 0x032a7037, 0x02c25558, 0x0185070b, 0x007ad0b3, 0x009aa23c, 0x000d2573}}, Y: Field{[10]uint32{0x029799ef, 0x00f843ed, 0x0064dd9b, 0x013d18bf, 0x030b82ff, 0x031d55ef, 0x00299573, 0x020b7dd1, 0x03216f39, 0x001ffaae}}}, + {X: Field{[10]uint32{0x0045d7a2, 0x026994b1, 0x034f1cd6, 0x014b0676, 0x010a4f7b, 0x0348c26c, 0x03756669, 0x00431e4f, 0x02a6970e, 0x003a2973}}, Y: Field{[10]uint32{0x02402b96, 0x007c3a8c, 0x01982b96, 0x0090a536, 0x02fab476, 0x01a3a305, 0x012dbf36, 0x0166ee5b, 0x02bfbd52, 0x0036ab36}}}, + {X: Field{[10]uint32{0x03931f9a, 0x0002d0d9, 0x02e32b57, 0x03cacacb, 0x0051af33, 0x0367bf94, 0x009c4837, 0x01eb78e6, 0x038ae81a, 0x0001ba31}}, Y: Field{[10]uint32{0x00291d35, 0x038a5d4b, 0x029ca47b, 0x024cc375, 0x027d1d51, 0x038429e0, 0x035412cb, 0x01068516, 0x0104751b, 0x00395991}}}, + {X: Field{[10]uint32{0x010a539e, 0x0345c24c, 0x01208ab4, 0x02ddd137, 0x00b9551d, 0x038ea4bb, 0x011722b1, 0x016cbe0a, 0x00a3010c, 0x002e3d48}}, Y: Field{[10]uint32{0x030f3d75, 0x02474025, 0x007909e2, 0x007b641d, 0x03a96d3d, 0x0245444f, 0x026451e1, 0x00b7b63d, 0x003ab671, 0x00196407}}}, + {X: Field{[10]uint32{0x02d8005a, 0x037b02ec, 0x00adfe49, 0x029f2e01, 0x00ae0dea, 0x028b05bf, 0x00bd9173, 0x02605622, 0x00586445, 0x002814e1}}, Y: Field{[10]uint32{0x020d7a67, 0x02329b77, 0x029c8ca5, 0x022cf581, 0x03e71260, 0x02624974, 0x00dab73f, 0x0327ee24, 0x030023dc, 0x0009e20b}}}, + {X: Field{[10]uint32{0x01222144, 0x03e28145, 0x036001fa, 0x000e704b, 0x022117cf, 0x030a566f, 0x018b631f, 0x0024907b, 0x0016aa7f, 0x00104a01}}, Y: Field{[10]uint32{0x037f58e4, 0x0205ec6b, 0x038e1808, 0x0138cabb, 0x02613f35, 0x010fdf81, 0x015c363c, 0x0210cfb9, 0x000dfd8e, 0x0030bfbe}}}, + {X: Field{[10]uint32{0x00c7a1ee, 0x023e2a86, 0x0241a7dd, 0x003ac142, 0x028b536f, 0x00f584ec, 0x01130b7e, 0x00f44147, 0x0336cbf8, 0x00312e3f}}, Y: Field{[10]uint32{0x027b4d47, 0x0359fb17, 0x037fc276, 0x0052b525, 0x01f6cf6c, 0x01d448e6, 0x02ba76b4, 0x00cded19, 0x004c8867, 0x0021f4f1}}}, + {X: Field{[10]uint32{0x00a51ac1, 0x029fd6a8, 0x002a93b7, 0x02e61b68, 0x031de630, 0x02df3495, 0x03850106, 0x00e38e9a, 0x013a7cb9, 0x00103ada}}, Y: Field{[10]uint32{0x036d8d18, 0x038db0eb, 0x0389fa51, 0x0293bea7, 0x01c7ede7, 0x0132e201, 0x003b770c, 0x0105f72f, 0x01e014d3, 0x0009ee1d}}}, + {X: Field{[10]uint32{0x0381dad4, 0x012a6f5f, 0x01fb86e9, 0x02137cdc, 0x00ac0c9d, 0x03cb77c9, 0x0365d675, 0x000601d4, 0x010254e3, 0x003dd246}}, Y: Field{[10]uint32{0x005a6e46, 0x03093357, 0x00c7c17a, 0x031cbb1a, 0x0268af0c, 0x0349d758, 0x01bf1b5a, 0x00203f72, 0x0336c549, 0x001a89c6}}}, + {X: Field{[10]uint32{0x009f287e, 0x014c9521, 0x032e36a0, 0x02b30d93, 0x02f16388, 0x01e88fe3, 0x026996c9, 0x00676853, 0x021de4ce, 0x0033c4c9}}, Y: Field{[10]uint32{0x03adac10, 0x002a5a1c, 0x02b7c04a, 0x020f1dc6, 0x008218c4, 0x02e1ca9e, 0x024ab51b, 0x01d11fdf, 0x018dbe1a, 0x00155a21}}}, + {X: Field{[10]uint32{0x013e8cb3, 0x00f1d86b, 0x02a81726, 0x005dcb1c, 0x0394cfd5, 0x00889a11, 0x01166066, 0x021f7f55, 0x02629dd0, 0x00271af6}}, Y: Field{[10]uint32{0x010c0eb3, 0x006d9e80, 0x030be05b, 0x0317896e, 0x019e5fbc, 0x018bff1e, 0x035628ed, 0x0329faec, 0x007b9c7f, 0x000b1df7}}}, + {X: Field{[10]uint32{0x01d26bf3, 0x02adf96e, 0x01922bb7, 0x01ef456c, 0x01c1526d, 0x02cc5256, 0x02cc9a55, 0x0277b083, 0x035f6443, 0x00363440}}, Y: Field{[10]uint32{0x00dbbe30, 0x006e5233, 0x003143eb, 0x00dae72d, 0x03b922a4, 0x02506efd, 0x007f697b, 0x03fa8fd8, 0x00d6ccfd, 0x002adf8d}}}, + {X: Field{[10]uint32{0x01c1d424, 0x02f08a34, 0x022a939c, 0x0296c028, 0x037d53ae, 0x00203c21, 0x032e1047, 0x01e98378, 0x0223b822, 0x0031bd02}}, Y: Field{[10]uint32{0x01d80345, 0x01af42f0, 0x0064d7fe, 0x01af96a3, 0x0263a313, 0x022c8dd2, 0x006f1f4b, 0x02317244, 0x018fcf4b, 0x00385af1}}}, + {X: Field{[10]uint32{0x03a43536, 0x0002e3d8, 0x02509494, 0x03358748, 0x01d1e007, 0x03388b78, 0x007c2dec, 0x034e95c5, 0x02229477, 0x000e9a76}}, Y: Field{[10]uint32{0x01a0e284, 0x030bef92, 0x03c3925c, 0x035ce272, 0x0246b98c, 0x026de73e, 0x00c95e1c, 0x01818b1f, 0x03d5c4ba, 0x0031e713}}}, + {X: Field{[10]uint32{0x0325fc9d, 0x01ede500, 0x0339b7bc, 0x020a42a8, 0x00814c3d, 0x01963c86, 0x037f6fca, 0x0312291a, 0x00e5492f, 0x0006d7ee}}, Y: Field{[10]uint32{0x007fff39, 0x01bef9f7, 0x02982164, 0x00d63bfa, 0x01d2ca42, 0x0124d6c0, 0x02f49f4c, 0x002064ad, 0x03124c9e, 0x00298a42}}}, + {X: Field{[10]uint32{0x009a3845, 0x02fa3b0d, 0x014c747b, 0x0088c7c1, 0x028a7559, 0x0069fe9f, 0x01e1c37d, 0x02d3ab72, 0x0302b004, 0x003f6e83}}, Y: Field{[10]uint32{0x011646fe, 0x0208088e, 0x0262ae2b, 0x02775cb5, 0x0106c3c0, 0x00c310f2, 0x02defd7e, 0x01c709bf, 0x01c9e964, 0x0010b698}}}, + {X: Field{[10]uint32{0x035140df, 0x03c32ce8, 0x01760f38, 0x010cbebc, 0x007c1663, 0x018ce262, 0x03279f70, 0x02598af9, 0x01bfcb7b, 0x0030e4e4}}, Y: Field{[10]uint32{0x02f556e1, 0x02d58f26, 0x02d664c5, 0x02075e94, 0x03449f9f, 0x03de7606, 0x00b8b3ff, 0x020b3121, 0x003453dc, 0x003a8538}}}, + {X: Field{[10]uint32{0x0059cbcb, 0x0385d102, 0x01321675, 0x00280886, 0x0019aedd, 0x01b2c831, 0x000e36cc, 0x032ca86b, 0x013dc716, 0x000953fc}}, Y: Field{[10]uint32{0x02e35921, 0x002b4ae4, 0x03701c40, 0x033e0fac, 0x00896e02, 0x011fd6fa, 0x036bfe32, 0x009abe78, 0x00f3916d, 0x00009913}}}, + {X: Field{[10]uint32{0x00930474, 0x0327d5ca, 0x00c5b071, 0x0176a9f2, 0x021769d3, 0x0215a009, 0x008974e9, 0x0192b68b, 0x0260e9b4, 0x0009392a}}, Y: Field{[10]uint32{0x00479f8e, 0x01cd4e3a, 0x02af78d9, 0x00e3672e, 0x036ed37c, 0x0332501b, 0x022244bc, 0x013f8202, 0x02d182a9, 0x00277df0}}}, + {X: Field{[10]uint32{0x017543a6, 0x00b13db4, 0x01ef8070, 0x03062ffc, 0x02fb19a4, 0x01667f00, 0x03d81b38, 0x01a170fb, 0x03adf906, 0x001eb66e}}, Y: Field{[10]uint32{0x01246f95, 0x02ab5931, 0x02df0133, 0x010d1249, 0x00da45e2, 0x02294cf7, 0x013ac8fd, 0x006293dc, 0x01709c40, 0x00261e2e}}}, + {X: Field{[10]uint32{0x02d8ae53, 0x00495958, 0x022b501d, 0x00e6f97e, 0x00c6e083, 0x01f7eeaa, 0x009eb2df, 0x021c5f83, 0x00d9383a, 0x0025f63f}}, Y: Field{[10]uint32{0x03c6a777, 0x0300a3c1, 0x0074c4a2, 0x0329fe3d, 0x03b1f114, 0x03616be9, 0x00363e15, 0x013e19fe, 0x024cf578, 0x00061e72}}}, + {X: Field{[10]uint32{0x02fe7572, 0x01c77762, 0x0172cb87, 0x03bd417b, 0x002af1ac, 0x0315bfeb, 0x014d1a92, 0x030cb878, 0x03855a08, 0x000f83f1}}, Y: Field{[10]uint32{0x02149390, 0x0396c25b, 0x020b5884, 0x03cf7c56, 0x01bb1768, 0x028c2d55, 0x0044fc9d, 0x022253c2, 0x03fcfd1e, 0x001b5e6d}}}, + {X: Field{[10]uint32{0x01602562, 0x01fb3ed9, 0x037ec55b, 0x039ff1d5, 0x02fda483, 0x02275bd7, 0x023a9b53, 0x03619076, 0x03dbb132, 0x00367685}}, Y: Field{[10]uint32{0x0223b70b, 0x03e318f1, 0x001a7b67, 0x017a2821, 0x0033a4f3, 0x03e3c8ec, 0x027f9e63, 0x0035c0bb, 0x01e45feb, 0x0020391c}}}, + {X: Field{[10]uint32{0x03ca18f3, 0x026026db, 0x039eca3d, 0x014e75be, 0x03f38e28, 0x02dc484a, 0x0135daa7, 0x0078d20a, 0x0366afcd, 0x0006123d}}, Y: Field{[10]uint32{0x036f5884, 0x003d1342, 0x00b7dee7, 0x03d2a4f5, 0x005f9196, 0x01d23b65, 0x0135df63, 0x0153c927, 0x0082645d, 0x0032a69e}}}, + {X: Field{[10]uint32{0x017a9f2f, 0x02728112, 0x02be0a84, 0x011fdcb1, 0x031a9d00, 0x03f0b457, 0x0165b2d4, 0x02b1d96b, 0x00ae9a7d, 0x003b4dd1}}, Y: Field{[10]uint32{0x02b5fb5b, 0x00d113da, 0x02f36b76, 0x0121c19b, 0x032fdc52, 0x00f11dfb, 0x0323d032, 0x031bdf92, 0x012ed4e5, 0x000f3ddb}}}, + {X: Field{[10]uint32{0x033676d7, 0x033fbf97, 0x026b7b1c, 0x0332a188, 0x0391212a, 0x000c49c1, 0x00a3a65e, 0x01516ac4, 0x0373edf3, 0x0031181e}}, Y: Field{[10]uint32{0x017eb3ec, 0x010824cf, 0x02d7728c, 0x02711771, 0x012628ac, 0x008c38f7, 0x000cd036, 0x03de0f57, 0x025b8595, 0x000c6b51}}}, + {X: Field{[10]uint32{0x000e96f0, 0x0392c2af, 0x00699641, 0x006d93ac, 0x00bfb9ad, 0x00e8fe94, 0x020af049, 0x01a75e2c, 0x02ed2aaf, 0x00070258}}, Y: Field{[10]uint32{0x01aede44, 0x015a92ab, 0x0012302d, 0x01828e5f, 0x02591b5a, 0x021e9fda, 0x029c5b0a, 0x038e8a90, 0x02f6e088, 0x00127c46}}}, + {X: Field{[10]uint32{0x01c19454, 0x02682637, 0x0045b1f0, 0x006ab989, 0x0182250e, 0x02ded0e0, 0x00dc6caf, 0x02567826, 0x036c9a41, 0x0001a811}}, Y: Field{[10]uint32{0x0111c7e1, 0x014bb1bd, 0x0233fbe5, 0x02e7331f, 0x00ab4288, 0x03238d45, 0x0266cd37, 0x031324b0, 0x00978ae3, 0x0015a10b}}}, + {X: Field{[10]uint32{0x00191f1c, 0x019e0c28, 0x028f6b93, 0x0203a729, 0x02cdb59a, 0x00a7c0f1, 0x03149993, 0x002a829a, 0x00f653a3, 0x00009368}}, Y: Field{[10]uint32{0x00138235, 0x00b1d5cb, 0x00b53d1a, 0x01a67880, 0x00cdbd3b, 0x00187185, 0x010683af, 0x02f3d6e0, 0x0080aa78, 0x0020f9e4}}}, + {X: Field{[10]uint32{0x021a7764, 0x00dd0fe6, 0x0075f6f3, 0x023c089f, 0x02a07872, 0x00c99100, 0x00719010, 0x02741fd6, 0x00832247, 0x00001b0d}}, Y: Field{[10]uint32{0x00dcc4c6, 0x024b02e8, 0x01bffeb1, 0x0043c361, 0x00be7792, 0x016f6916, 0x03128d84, 0x015021af, 0x03744a12, 0x0028ddeb}}}, + {X: Field{[10]uint32{0x01c43baf, 0x01e3e675, 0x00905154, 0x03d28525, 0x011cdc26, 0x020acdb8, 0x02cf2498, 0x032c9ac9, 0x03bb4d14, 0x00084aaa}}, Y: Field{[10]uint32{0x0047e281, 0x0358140e, 0x01148ca1, 0x028ff099, 0x0011c22e, 0x02ea3961, 0x02ed57d7, 0x0160ae63, 0x020a81d1, 0x003a4502}}}, + {X: Field{[10]uint32{0x0343b10e, 0x005096ac, 0x011edf37, 0x031092a5, 0x02f26ee0, 0x02c2e89c, 0x006824e5, 0x02882a35, 0x00f12afc, 0x00289d1e}}, Y: Field{[10]uint32{0x004036a3, 0x020292ef, 0x017598ec, 0x028df1f3, 0x0270ad0b, 0x01e0635e, 0x03bdecb6, 0x025ea968, 0x0386a7fc, 0x001479d2}}}, + {X: Field{[10]uint32{0x0172e293, 0x03dc4681, 0x03fe5716, 0x001fa336, 0x02b9b8a5, 0x03d57838, 0x022fa7e8, 0x03e7ae8b, 0x029a7171, 0x00387049}}, Y: Field{[10]uint32{0x02afba46, 0x024cd70c, 0x00848e63, 0x029db40d, 0x005562c4, 0x03a09da1, 0x00d8e242, 0x00c90be6, 0x01700895, 0x001073e8}}}, + {X: Field{[10]uint32{0x01e09efb, 0x0209f03d, 0x007804d5, 0x022c9082, 0x0062f0f7, 0x03303ef6, 0x03328e1e, 0x0238642e, 0x004c1941, 0x00081355}}, Y: Field{[10]uint32{0x03d52fb7, 0x015c1664, 0x009f06d0, 0x03514d39, 0x0018cf4e, 0x013e6030, 0x023799cb, 0x00561c42, 0x00e31f5d, 0x00319826}}}, + {X: Field{[10]uint32{0x025172ad, 0x0121b15e, 0x016ee361, 0x02c8eac6, 0x00980138, 0x01e2d33c, 0x0230de2f, 0x03cbcb7c, 0x030a11a6, 0x0005bb77}}, Y: Field{[10]uint32{0x01992684, 0x028338ad, 0x0318bb39, 0x02d3ee05, 0x001327bd, 0x0040b108, 0x004a7926, 0x02cf0648, 0x018fed8a, 0x0038f6cd}}}, + {X: Field{[10]uint32{0x038995f1, 0x020a74ca, 0x0080eaf6, 0x0069e72c, 0x013df700, 0x008c54de, 0x026b7c10, 0x0365ad97, 0x00312298, 0x001f27de}}, Y: Field{[10]uint32{0x01f51e5c, 0x006551bb, 0x000e4a60, 0x0346eedc, 0x02b2481d, 0x014f2ccb, 0x002018fc, 0x0283c6c9, 0x003c90e3, 0x00080df3}}}, + {X: Field{[10]uint32{0x0198fb1c, 0x01a2c598, 0x02dee211, 0x03a54c31, 0x0263aee7, 0x00b5a580, 0x03913a5b, 0x02e3db06, 0x01461dbe, 0x0004a70b}}, Y: Field{[10]uint32{0x01137964, 0x02b097d5, 0x00dc1747, 0x02fdf3a8, 0x027bbd80, 0x00a1f559, 0x0214b72a, 0x009fe68a, 0x02b961c0, 0x000a7ffb}}}, + {X: Field{[10]uint32{0x036175aa, 0x02812707, 0x03b12570, 0x009f818c, 0x02de2049, 0x00c896d4, 0x011f9daa, 0x024cbbdb, 0x016530d4, 0x0022f8b9}}, Y: Field{[10]uint32{0x005510c8, 0x03060014, 0x0340423c, 0x02f5a9a1, 0x03fabfe4, 0x00f02547, 0x0007056e, 0x00334500, 0x02871a13, 0x000d92d3}}}, + {X: Field{[10]uint32{0x0252fa6c, 0x024265d8, 0x00c5e27c, 0x00b97e20, 0x0142a6e1, 0x014ed310, 0x00ceb624, 0x02719eac, 0x030842ae, 0x00102d0f}}, Y: Field{[10]uint32{0x02a2068f, 0x00a812f3, 0x02cca443, 0x03fb448f, 0x00248f11, 0x03168b4b, 0x025e46f2, 0x00b96ec8, 0x02c5de1b, 0x001b46b1}}}, + {X: Field{[10]uint32{0x02c669df, 0x011ce816, 0x00f17087, 0x026f8dc9, 0x014c2cba, 0x00f1276d, 0x01caa559, 0x0137cf3c, 0x038a02f3, 0x0011f888}}, Y: Field{[10]uint32{0x00f31f3a, 0x026fa0a7, 0x01908939, 0x009d8237, 0x00acfc61, 0x00294bdf, 0x02104a36, 0x00957fb2, 0x03a203ee, 0x00134133}}}, + {X: Field{[10]uint32{0x01cfc35a, 0x029727b8, 0x02d607c7, 0x012d77e3, 0x03b3de47, 0x01315975, 0x00433238, 0x031b6ad2, 0x00553a45, 0x0005ca1b}}, Y: Field{[10]uint32{0x0320007f, 0x01c8f258, 0x000cf6d8, 0x0091e4cd, 0x035b194d, 0x02550c41, 0x03104b27, 0x01454582, 0x034775a4, 0x00185cb4}}}, + {X: Field{[10]uint32{0x01d7bb31, 0x02c810a3, 0x01258b7f, 0x0325367b, 0x010a3e96, 0x0158cab1, 0x010bd344, 0x024b2b42, 0x039d3c14, 0x000d146b}}, Y: Field{[10]uint32{0x014974d6, 0x03e2d06c, 0x0079acc5, 0x004e49f3, 0x007687c5, 0x013068ec, 0x0284fd78, 0x01b81b9c, 0x03832123, 0x0037524c}}}, + {X: Field{[10]uint32{0x014e5ce2, 0x03409480, 0x01619d23, 0x00e96caa, 0x00ed9afa, 0x01b82b11, 0x01bee2da, 0x0179ff2d, 0x0081eccc, 0x002c02a9}}, Y: Field{[10]uint32{0x008866a1, 0x032a3efa, 0x022424a2, 0x02a79f9d, 0x0210d732, 0x0107e07e, 0x002ceb74, 0x00cb383d, 0x00861f00, 0x0001a1ed}}}, + {X: Field{[10]uint32{0x00b23311, 0x01571fa8, 0x01e2fa8a, 0x035301d8, 0x020ef706, 0x0135cd6c, 0x008a2393, 0x03247fc9, 0x029cc75b, 0x0014fb23}}, Y: Field{[10]uint32{0x01d45919, 0x00413d91, 0x027688b5, 0x012e7f60, 0x00c352f5, 0x0175716a, 0x01104e01, 0x02c7b46d, 0x03c063c4, 0x0006c477}}}, + {X: Field{[10]uint32{0x01efab66, 0x02461b29, 0x030a4cdc, 0x01e1eaed, 0x032fc80d, 0x01c78ce0, 0x03eddd8d, 0x00b268ec, 0x01b39c07, 0x0007b378}}, Y: Field{[10]uint32{0x026dd626, 0x02b82f2b, 0x025f30da, 0x00c25228, 0x00239f0c, 0x00812734, 0x00cecb18, 0x025d8adc, 0x02c75a79, 0x00013d6b}}}, + {X: Field{[10]uint32{0x03b1394e, 0x0321d526, 0x012e65af, 0x02759dc1, 0x011e9023, 0x02823be9, 0x039b479f, 0x015631ea, 0x03c3702b, 0x00007f8b}}, Y: Field{[10]uint32{0x02845c2c, 0x02f5c831, 0x0326d30f, 0x003229f6, 0x0211a64c, 0x01b523f9, 0x016df2b6, 0x0174eb08, 0x02ae3a39, 0x003dad61}}}, + {X: Field{[10]uint32{0x006d5dec, 0x01c62c78, 0x039ba872, 0x0314a296, 0x0376e64c, 0x03c0c71e, 0x02ba0c20, 0x00ab5560, 0x032fb8ac, 0x002d4f42}}, Y: Field{[10]uint32{0x02e3a289, 0x03c0d3a4, 0x0087b351, 0x01de51da, 0x02041015, 0x01f48c94, 0x03b034c1, 0x021ea992, 0x018951ab, 0x00226139}}}, + {X: Field{[10]uint32{0x0337cf95, 0x02b784a3, 0x02ea7bc0, 0x00428845, 0x01a06ca3, 0x03ccd760, 0x03fe5d81, 0x008d999c, 0x011603bc, 0x00001539}}, Y: Field{[10]uint32{0x0312bd4a, 0x00e9e05c, 0x030b4c5b, 0x01e92e64, 0x01923660, 0x03a05cd5, 0x037206d6, 0x00b0afc6, 0x00269deb, 0x003d1c72}}}, + {X: Field{[10]uint32{0x03b29a7b, 0x036ca0d9, 0x01f598c4, 0x02b19754, 0x013b8087, 0x0322eae4, 0x01e22244, 0x008e8b4e, 0x0372a1d4, 0x0039fbed}}, Y: Field{[10]uint32{0x03a9b6e7, 0x039171e4, 0x023bd587, 0x0282854b, 0x03704a39, 0x01fda863, 0x02b47f41, 0x0022c2fc, 0x0186031d, 0x003cb7ed}}}, + {X: Field{[10]uint32{0x00b519fe, 0x011ae634, 0x03e67034, 0x00ab7020, 0x010b163f, 0x027bc0c8, 0x03b43097, 0x018ea0ab, 0x01aae8a2, 0x0017b167}}, Y: Field{[10]uint32{0x01ef82b9, 0x0057aa1e, 0x0304e842, 0x01bd7016, 0x03a8a531, 0x01395613, 0x01c6aab9, 0x03ab94c3, 0x00c36a3d, 0x000baad3}}}, + {X: Field{[10]uint32{0x00bb62f5, 0x032e40f5, 0x0121658c, 0x01a71034, 0x0001119f, 0x03f07c26, 0x02975c8e, 0x0277ef6b, 0x00d92058, 0x00109ed7}}, Y: Field{[10]uint32{0x02d1213d, 0x011a1995, 0x01b18d98, 0x028c1a1c, 0x006500b5, 0x017f2a1e, 0x022803c3, 0x01210905, 0x02e3b879, 0x00341579}}}, + {X: Field{[10]uint32{0x0105bcad, 0x02113be7, 0x00736554, 0x03630344, 0x002cc30d, 0x03750b2e, 0x03422c79, 0x013cf423, 0x0315fc59, 0x00152552}}, Y: Field{[10]uint32{0x0335373a, 0x011cd33d, 0x0397564b, 0x03d7af30, 0x029c6b88, 0x00680392, 0x03f8e042, 0x027080ab, 0x00657356, 0x0021a9f3}}}, + {X: Field{[10]uint32{0x01f32559, 0x016879ac, 0x021f01b5, 0x02019e8a, 0x03573eb4, 0x0255a194, 0x01aa7b33, 0x003efca8, 0x038d2367, 0x003fdbe3}}, Y: Field{[10]uint32{0x02c7e218, 0x02b07706, 0x017cd2d4, 0x03d0fe3d, 0x0336cd33, 0x027f6511, 0x031552f0, 0x02f15f5c, 0x01a6c7ca, 0x001e94fc}}}, + {X: Field{[10]uint32{0x018a2381, 0x00309965, 0x0152b842, 0x03ee2805, 0x023bba8e, 0x007832e2, 0x02d852f4, 0x030843a0, 0x01e99021, 0x001d35c9}}, Y: Field{[10]uint32{0x01bb2bb0, 0x02d6153d, 0x0227c0ae, 0x039809b2, 0x0192f18d, 0x00405b76, 0x03d6ca4e, 0x01c2ee20, 0x0246aa9f, 0x0013b9a5}}}, + {X: Field{[10]uint32{0x009c845b, 0x030c9479, 0x008d76d3, 0x01c35dd1, 0x01feca05, 0x01636176, 0x0168fbbc, 0x010b270b, 0x037efc03, 0x003a50e7}}, Y: Field{[10]uint32{0x02233916, 0x006f808f, 0x03592203, 0x039ea4a1, 0x01566667, 0x03435c19, 0x0290b459, 0x0095ebbb, 0x01981b7e, 0x0009f683}}}, + {X: Field{[10]uint32{0x01c0b911, 0x01572c29, 0x00f1e2c0, 0x00ca7cb1, 0x0305facb, 0x00fff44c, 0x0126622b, 0x002159b7, 0x008d81a6, 0x0025a129}}, Y: Field{[10]uint32{0x024e68b2, 0x00d4cafc, 0x018161be, 0x00979ebc, 0x03294bbd, 0x0179ed39, 0x0187c31f, 0x03eea975, 0x02d250ad, 0x002480e2}}}, + {X: Field{[10]uint32{0x020e7609, 0x01df25c6, 0x019b4162, 0x00dd7e74, 0x009e4cf8, 0x037161ca, 0x030f1214, 0x0389bb1f, 0x02f90469, 0x0007400e}}, Y: Field{[10]uint32{0x031e5123, 0x02bfa7bd, 0x02139c84, 0x0069f0df, 0x00ed795f, 0x011b4981, 0x031dad81, 0x00b1c82c, 0x03a53082, 0x002671f0}}}, + {X: Field{[10]uint32{0x0197a149, 0x019272b8, 0x0242d01c, 0x02ff1805, 0x010d680a, 0x027dcb02, 0x0032fa58, 0x02aadddb, 0x00f873cf, 0x003e591a}}, Y: Field{[10]uint32{0x02083b1d, 0x00f9353e, 0x036e9979, 0x021b0624, 0x03b67081, 0x014e15f8, 0x00a7ff33, 0x0174c6c9, 0x03c40849, 0x0007fed2}}}, + {X: Field{[10]uint32{0x03f89d32, 0x001104ac, 0x025f5329, 0x03d947b1, 0x03d93c14, 0x00c4542f, 0x02c86a21, 0x02534af2, 0x0106e302, 0x002dab50}}, Y: Field{[10]uint32{0x00d228ce, 0x00a9398e, 0x003ee5db, 0x024a4307, 0x034fa407, 0x01310ad0, 0x015201cc, 0x02590741, 0x02a67427, 0x000668d9}}}, + {X: Field{[10]uint32{0x005b9b9a, 0x01f9f3f9, 0x00108a97, 0x00a1b2c7, 0x0202d478, 0x02eda7ec, 0x020fec3e, 0x03cc1644, 0x02f7190b, 0x0021d51c}}, Y: Field{[10]uint32{0x01a97c21, 0x029e2615, 0x00562050, 0x0238c151, 0x030a172d, 0x017e0127, 0x01d163a9, 0x0166b785, 0x03c5f5dc, 0x0006b7bf}}}, + {X: Field{[10]uint32{0x0227a670, 0x03bac166, 0x034074d9, 0x0356bd29, 0x0354bb6f, 0x0072c6c7, 0x00f7ae2a, 0x01505399, 0x01faf424, 0x0015116a}}, Y: Field{[10]uint32{0x01418018, 0x01d0713a, 0x0294ce87, 0x03a987f7, 0x013bdf07, 0x00fede87, 0x008978ca, 0x038208f9, 0x02077da2, 0x00125b14}}}, + {X: Field{[10]uint32{0x0014d138, 0x01330f5e, 0x0262bf4c, 0x03e5f07d, 0x0374d3a8, 0x0215a0c3, 0x03350267, 0x02b22147, 0x0225704b, 0x0036b861}}, Y: Field{[10]uint32{0x03be6f87, 0x02f6a440, 0x02bff373, 0x03ef1a38, 0x03c20f62, 0x017b20d7, 0x0188ee63, 0x0018660e, 0x01fd7ba9, 0x002af016}}}, + {X: Field{[10]uint32{0x019845c9, 0x032a24e7, 0x00d02dee, 0x02047fa5, 0x013d009b, 0x001f864a, 0x00e659c1, 0x00f7971f, 0x0312e852, 0x00228223}}, Y: Field{[10]uint32{0x0229114a, 0x02c3dd9f, 0x004baef7, 0x011ff179, 0x0041f8df, 0x03062c82, 0x02d703cb, 0x02edd974, 0x012afb8e, 0x00109448}}}, + {X: Field{[10]uint32{0x03af6d01, 0x02d4b935, 0x02f6ec25, 0x033caf3a, 0x00716755, 0x023d5e44, 0x00ed25c7, 0x002344cd, 0x02a88f3b, 0x0035e3d1}}, Y: Field{[10]uint32{0x0306f44d, 0x0149bbd6, 0x006ee5c9, 0x034c9091, 0x01929046, 0x032fc6cb, 0x00b3f019, 0x008043c8, 0x01f229cb, 0x003ac615}}}, + {X: Field{[10]uint32{0x019b034b, 0x0035717e, 0x02fa83ec, 0x0271beab, 0x02f58980, 0x03fbf375, 0x015c4cac, 0x00389d79, 0x031278ae, 0x000782d0}}, Y: Field{[10]uint32{0x004918a7, 0x028a2064, 0x036578bb, 0x02b8275c, 0x03fb523f, 0x020d2140, 0x03d74edb, 0x00ead0ba, 0x03c5544d, 0x003ce314}}}, + {X: Field{[10]uint32{0x017cbbd1, 0x00d1197b, 0x01638cd5, 0x03dc3105, 0x00ab02d7, 0x029623cd, 0x0011f144, 0x0046703d, 0x01b29edb, 0x003c0c55}}, Y: Field{[10]uint32{0x00e85813, 0x034fc1ae, 0x02495599, 0x0125fe71, 0x01317367, 0x00658159, 0x01d07cd3, 0x03fc52d0, 0x03e3ff4f, 0x001cb454}}}, + {X: Field{[10]uint32{0x01de4c8e, 0x025b8e79, 0x02b4153a, 0x01e1b42e, 0x038df665, 0x01059952, 0x00c84fe3, 0x01fed345, 0x01683edc, 0x0003d87f}}, Y: Field{[10]uint32{0x002e5f92, 0x011cb8f5, 0x0212fd38, 0x00e7d636, 0x02e11fc1, 0x00983f93, 0x01d6884d, 0x004ec621, 0x0167cf09, 0x00254b6d}}}, + {X: Field{[10]uint32{0x0017dd77, 0x0271fdf8, 0x0344d7ee, 0x03612c7c, 0x0201ede6, 0x00e9361b, 0x0300e3b1, 0x00dec972, 0x027a29e4, 0x001e0c43}}, Y: Field{[10]uint32{0x0182f2d2, 0x00406db8, 0x00a51a7d, 0x00fd0c4d, 0x007030bd, 0x01f080b5, 0x020f7009, 0x00a78130, 0x018a4d56, 0x0009bfcd}}}, + {X: Field{[10]uint32{0x03781a3a, 0x0009f847, 0x016b97a4, 0x012f2282, 0x034e6ac9, 0x002d87af, 0x01509c2d, 0x00a72e98, 0x004d6b73, 0x0018eba3}}, Y: Field{[10]uint32{0x00d14f88, 0x020fa577, 0x016ce2e4, 0x00a7be2e, 0x01af16c9, 0x00e2a4e8, 0x01629cb3, 0x01e15f46, 0x00cfbf40, 0x002a3a55}}}, + {X: Field{[10]uint32{0x03cca739, 0x01e5c941, 0x02fa9165, 0x009bfde6, 0x00ae662f, 0x00ce15d3, 0x01039616, 0x00d53b8b, 0x012a594b, 0x00252356}}, Y: Field{[10]uint32{0x02f1876c, 0x03219ec0, 0x015570ed, 0x02293b89, 0x01ce0275, 0x01cef5b5, 0x013992f7, 0x00e5ba27, 0x00e25ea0, 0x000dffe6}}}, + {X: Field{[10]uint32{0x02100f45, 0x038b4d11, 0x03a55398, 0x01853719, 0x00660a41, 0x02ffba20, 0x0304de18, 0x000da142, 0x016fa314, 0x00194f3c}}, Y: Field{[10]uint32{0x025a9202, 0x0076cd44, 0x01c3649c, 0x0064f985, 0x03ea4d34, 0x0390c416, 0x026741ae, 0x0395499d, 0x02de5ff1, 0x002b2aab}}}, + {X: Field{[10]uint32{0x028cc782, 0x01447fe3, 0x00d2af3c, 0x02219142, 0x01141e18, 0x039a9de2, 0x00fd1ee0, 0x03722fc9, 0x00828a5e, 0x0011beda}}, Y: Field{[10]uint32{0x03fd8887, 0x020f804d, 0x010cfef3, 0x02611fb2, 0x02f4d266, 0x020b0b8d, 0x009ff4ae, 0x03a6f5ab, 0x013fd52c, 0x002752b9}}}, + {X: Field{[10]uint32{0x0138c0ed, 0x0308015c, 0x020eae24, 0x0021e8ab, 0x024ca442, 0x012c3ca2, 0x01face2b, 0x00a9c5f0, 0x00c723ea, 0x0017c468}}, Y: Field{[10]uint32{0x000c8452, 0x01ccc5ae, 0x011d5bb2, 0x033c1be6, 0x023906ea, 0x0049b939, 0x03925ddf, 0x0184bee9, 0x0084ad97, 0x0017b2bb}}}, + {X: Field{[10]uint32{0x02a9039f, 0x02f72130, 0x022c0320, 0x00ecfae9, 0x00dbf2ba, 0x03ac4224, 0x02b6b3bd, 0x03bde9b5, 0x021c929b, 0x002e7d27}}, Y: Field{[10]uint32{0x0101e558, 0x01a0832d, 0x0115c2bf, 0x0131bd0b, 0x006e1b68, 0x00d2a80c, 0x00ecc1c5, 0x022deef4, 0x02767e4f, 0x00261ca7}}}, + {X: Field{[10]uint32{0x01ade2c3, 0x00e39c85, 0x012dc63c, 0x02c0d8c7, 0x00965dc2, 0x03269182, 0x033eea76, 0x02417fc9, 0x0102e7d2, 0x0003b228}}, Y: Field{[10]uint32{0x034371c0, 0x028fb73d, 0x00b6dbe5, 0x0170da33, 0x02706ffe, 0x03d9c584, 0x03836868, 0x025b2d24, 0x01e7242d, 0x00363226}}}, + {X: Field{[10]uint32{0x03e236c6, 0x0339810a, 0x02dafcda, 0x02c0e73d, 0x010582c5, 0x010a9496, 0x012a3c77, 0x020169b2, 0x02b3c351, 0x00041fc0}}, Y: Field{[10]uint32{0x019bfb9f, 0x03ce272a, 0x00a3e685, 0x017820b1, 0x03c5c2d5, 0x0371c929, 0x01746858, 0x01d8055f, 0x02bf1ab4, 0x00145c8d}}}, + {X: Field{[10]uint32{0x02298971, 0x018194d5, 0x036cfb98, 0x01eb6bdb, 0x02b10d63, 0x020c5e1c, 0x038c1fea, 0x03005b5e, 0x00a1a5c1, 0x003c3ec5}}, Y: Field{[10]uint32{0x024540d1, 0x02f151e5, 0x0033792f, 0x03fecc59, 0x00c40b89, 0x00a00007, 0x018e87c7, 0x03997509, 0x01140d33, 0x0038767b}}}, + {X: Field{[10]uint32{0x00489459, 0x03e6cd51, 0x0347a333, 0x002bfe0e, 0x0078a1c8, 0x03af781a, 0x00ce83c0, 0x013b7bdb, 0x02dbea78, 0x00294dc6}}, Y: Field{[10]uint32{0x00129224, 0x0338fcb2, 0x03edd48e, 0x02f33344, 0x007e3d09, 0x00a88b2f, 0x03acbe7b, 0x0175d1dc, 0x0172127f, 0x003d5e01}}}, + {X: Field{[10]uint32{0x0217300d, 0x013eb7ef, 0x013b999e, 0x005e580f, 0x022bbbb8, 0x03e9f64b, 0x00109715, 0x0295d84f, 0x025e1b0b, 0x000f00c7}}, Y: Field{[10]uint32{0x029c83f3, 0x0309cbab, 0x03e6bbf9, 0x035c70d8, 0x0079cb40, 0x035edb31, 0x00e65a2c, 0x00db751d, 0x03fb3920, 0x00349d68}}}, + {X: Field{[10]uint32{0x01a5318f, 0x0071a701, 0x0218b217, 0x02b948f3, 0x01f8a1b9, 0x00e48203, 0x0169a689, 0x02d4c282, 0x019e685d, 0x0021ed62}}, Y: Field{[10]uint32{0x01a775d4, 0x02bd23ff, 0x02c081f5, 0x03ebe673, 0x011b1166, 0x010ba134, 0x0140b01a, 0x02be968b, 0x0204e3f0, 0x0001ab8c}}}, + {X: Field{[10]uint32{0x01b8bf74, 0x01014042, 0x038dd2ae, 0x0138ffa0, 0x01ea00d0, 0x01adf9ec, 0x018eedb5, 0x0305b7e7, 0x03ddc002, 0x00367c1d}}, Y: Field{[10]uint32{0x033ffeaf, 0x0084996b, 0x012f278f, 0x000bb954, 0x0211c273, 0x01c32e7b, 0x00fc486f, 0x0063894f, 0x011e5031, 0x00194635}}}, + {X: Field{[10]uint32{0x00921af7, 0x031c873e, 0x0398ec9b, 0x02482bbe, 0x037558a4, 0x0089dfd8, 0x01ce3053, 0x02b32582, 0x03638d15, 0x0027026a}}, Y: Field{[10]uint32{0x00e0f6fc, 0x0292de40, 0x033d91ca, 0x012a7ef7, 0x010bf2f8, 0x0194897c, 0x02d6ab31, 0x02f0422f, 0x018d535a, 0x002cb2b1}}}, + {X: Field{[10]uint32{0x028a7fc0, 0x01b71ce6, 0x008ae167, 0x0037b439, 0x0052ab25, 0x030da689, 0x038948a5, 0x0248c973, 0x038b4c2d, 0x001bb47b}}, Y: Field{[10]uint32{0x02742008, 0x02b21fbd, 0x00585f54, 0x02f07241, 0x025c6423, 0x018f69d6, 0x02741368, 0x014553f2, 0x008c2cfe, 0x00306de8}}}, + {X: Field{[10]uint32{0x006928d1, 0x034ef894, 0x018f13fb, 0x02a4c1e7, 0x03cfc458, 0x00ae9821, 0x01f71c1e, 0x01fdb09e, 0x0170154b, 0x00220ba3}}, Y: Field{[10]uint32{0x03e64131, 0x00e9ce9b, 0x03d1d9b2, 0x0197b6ec, 0x0208b315, 0x019eb07c, 0x014ac62e, 0x0061ca42, 0x022e97c4, 0x0022526c}}}, + {X: Field{[10]uint32{0x037aba52, 0x0284e7ec, 0x0246aa6d, 0x03a7f08c, 0x00516840, 0x00942605, 0x019d0afb, 0x01ba81c4, 0x02a024c8, 0x001c211c}}, Y: Field{[10]uint32{0x028fe5ac, 0x014feec4, 0x0130db7a, 0x01ee0335, 0x013a8b05, 0x02528d99, 0x03378d65, 0x0054ca96, 0x03a51d55, 0x0026026d}}}, + {X: Field{[10]uint32{0x039fac3e, 0x02a330eb, 0x025ebd87, 0x00f5c688, 0x03769d57, 0x023420d4, 0x01a1250d, 0x02dc212b, 0x02d509a8, 0x000e913e}}, Y: Field{[10]uint32{0x037f20cd, 0x031a7ed2, 0x01c85cb0, 0x0114b4f1, 0x03f9186e, 0x01849204, 0x0174bf84, 0x03434286, 0x01511250, 0x003ca7d1}}}, + {X: Field{[10]uint32{0x01fb9f30, 0x00dc2cf3, 0x0390afcc, 0x02116267, 0x0236ba4c, 0x00708cd8, 0x00564c04, 0x006f5058, 0x01d8e09e, 0x0028d467}}, Y: Field{[10]uint32{0x03881d7e, 0x034fb186, 0x0267472d, 0x0238d3f3, 0x02715008, 0x031d3423, 0x0199faa6, 0x001c4740, 0x01597c91, 0x001933fc}}}, + {X: Field{[10]uint32{0x00fcf1dc, 0x03c1d9d7, 0x038291c4, 0x03e835a3, 0x02bea1af, 0x027667fc, 0x033513f1, 0x0172593a, 0x00e3765f, 0x0016bc5b}}, Y: Field{[10]uint32{0x03815daa, 0x0100bae8, 0x023dc1f2, 0x02e2a1ea, 0x00511ff7, 0x0005929e, 0x0042db6b, 0x0047b52a, 0x02b53bd7, 0x00002193}}}, + {X: Field{[10]uint32{0x023d54a8, 0x0070b415, 0x0149b402, 0x0344de96, 0x0018848b, 0x00990410, 0x021ec080, 0x03970977, 0x012219ca, 0x0007fe69}}, Y: Field{[10]uint32{0x0318e031, 0x0320ec05, 0x014d4791, 0x0370526c, 0x018f85d7, 0x014dd0c2, 0x00fb919a, 0x01db86d7, 0x034c1222, 0x00151b58}}}, + {X: Field{[10]uint32{0x03d3e938, 0x01b75bd0, 0x0082ac6b, 0x0372a999, 0x007f02fc, 0x03eacda3, 0x00926ebc, 0x007b63e1, 0x00ad72a5, 0x0035e9b7}}, Y: Field{[10]uint32{0x00e41c96, 0x018ec885, 0x03278bde, 0x01601b25, 0x018598a0, 0x01119aba, 0x028f378e, 0x02b21969, 0x00d63ea6, 0x002689cf}}}, + {X: Field{[10]uint32{0x0332d797, 0x02a34647, 0x012823f4, 0x024c7c88, 0x023c874b, 0x02db3531, 0x016dfb52, 0x0331f69a, 0x03e55bdc, 0x000553d8}}, Y: Field{[10]uint32{0x03f76fae, 0x01644d5d, 0x0067a2df, 0x01f6cd03, 0x02f0f29d, 0x00aa9af1, 0x03269b0d, 0x028723a9, 0x032217bc, 0x003a63e5}}}, + {X: Field{[10]uint32{0x00399bf1, 0x03b1d613, 0x01991c27, 0x036a1f3a, 0x02dbdbb7, 0x0086ef7a, 0x0129095c, 0x01857333, 0x008b8513, 0x003dab78}}, Y: Field{[10]uint32{0x03234ad1, 0x01eb4ce3, 0x0296af03, 0x03284c63, 0x013fc1c5, 0x00a298c4, 0x01af074b, 0x032ae84c, 0x03e019fc, 0x00263206}}}, + {X: Field{[10]uint32{0x0347637e, 0x0072cb31, 0x0083a3e5, 0x03da50ea, 0x00b786b3, 0x017fb0af, 0x01290486, 0x0057db1b, 0x02c03b27, 0x00259873}}, Y: Field{[10]uint32{0x035358bf, 0x01d58813, 0x032547fe, 0x00d657c2, 0x03cb9c37, 0x027b1ce7, 0x028056a0, 0x00412dd2, 0x03d99b34, 0x003aa87d}}}, + {X: Field{[10]uint32{0x015d19a1, 0x01262d19, 0x0377f53d, 0x0333d6b1, 0x03480520, 0x000dc170, 0x0003465f, 0x00231cd3, 0x023a27d6, 0x0038294c}}, Y: Field{[10]uint32{0x020cc606, 0x02f58a49, 0x03aee836, 0x02d639f2, 0x0363d88e, 0x0118a5d7, 0x00606798, 0x03158baf, 0x0178a8b8, 0x0007dc9f}}}, + {X: Field{[10]uint32{0x002f6409, 0x0338c74a, 0x00118c24, 0x02577b39, 0x0308206e, 0x009431ab, 0x001980d5, 0x011bcbca, 0x02fd0046, 0x002eae0b}}, Y: Field{[10]uint32{0x011fb82a, 0x03356123, 0x0177d137, 0x02ed1ade, 0x03cafbdb, 0x0195b157, 0x038375a5, 0x00049a37, 0x01dc26a2, 0x000a982c}}}, + {X: Field{[10]uint32{0x01eb2631, 0x02052b78, 0x022c221e, 0x0081e79a, 0x032d7edd, 0x03946ebb, 0x006e9b3e, 0x02562c60, 0x0399ebbe, 0x000e2784}}, Y: Field{[10]uint32{0x029ae2be, 0x01167db3, 0x02fd52c9, 0x02f50d79, 0x00e48ada, 0x004a9893, 0x031fb4d1, 0x03f91679, 0x02331f3c, 0x001b0561}}}, + {X: Field{[10]uint32{0x029d4515, 0x001dc9dc, 0x000458c3, 0x01846e91, 0x01087d89, 0x03e91447, 0x03081747, 0x0154f467, 0x01cac0dc, 0x002de05e}}, Y: Field{[10]uint32{0x003e0de2, 0x0248d47a, 0x00c97a68, 0x0326ee5d, 0x01ce0a80, 0x0115df5c, 0x00caa5a9, 0x01a941b9, 0x02980c49, 0x001c082f}}}, + {X: Field{[10]uint32{0x03104306, 0x0053557f, 0x02dc9f1e, 0x03d04bb2, 0x02baa6a6, 0x03640163, 0x03d13fcf, 0x03e69c48, 0x013dd170, 0x00219fb3}}, Y: Field{[10]uint32{0x006759bb, 0x00d792a5, 0x00dc9e25, 0x038bf792, 0x03d698c5, 0x027cad50, 0x03276897, 0x03b88e3e, 0x03e1bb91, 0x000f036c}}}, + {X: Field{[10]uint32{0x00eecd38, 0x02f8bdb5, 0x004e5697, 0x00af055c, 0x03db25bb, 0x0212cb32, 0x03d4d083, 0x00097507, 0x014c26a1, 0x002f9c59}}, Y: Field{[10]uint32{0x01406afa, 0x02bdabd2, 0x001dfcdf, 0x039112cb, 0x012dcdae, 0x013683bf, 0x02f8d18e, 0x00b71e82, 0x020fc37a, 0x000c5bb4}}}, + {X: Field{[10]uint32{0x02e9079c, 0x037aea5d, 0x01fda6b6, 0x0111e58f, 0x01416905, 0x03478059, 0x015b9a2a, 0x009a179d, 0x00b024d6, 0x0016a387}}, Y: Field{[10]uint32{0x011ebba7, 0x022888bc, 0x00a27d08, 0x00aa4778, 0x023889db, 0x02377a57, 0x00f43516, 0x00c379ea, 0x01737433, 0x00131e4c}}}, + {X: Field{[10]uint32{0x002e6131, 0x005904ae, 0x031f8572, 0x003eb8f4, 0x03bb884d, 0x0018c114, 0x03a761ad, 0x02f433c4, 0x000b2347, 0x000efeb4}}, Y: Field{[10]uint32{0x02545f61, 0x02f6d0aa, 0x0051896e, 0x02adbd6c, 0x0371e3cb, 0x01b52060, 0x03fe8e63, 0x01ffb0fd, 0x01609415, 0x003bccf1}}}, + {X: Field{[10]uint32{0x012c1961, 0x00647bd7, 0x02dc7428, 0x00d4ed3c, 0x0360e026, 0x0171a32d, 0x016c2d2b, 0x03382722, 0x02de684d, 0x0000911f}}, Y: Field{[10]uint32{0x02f7bfcb, 0x009fcc07, 0x03377624, 0x01535b9f, 0x025ad6cb, 0x0110e090, 0x0339e554, 0x02182d8a, 0x002fe80f, 0x002b4e2a}}}, + {X: Field{[10]uint32{0x03cf985d, 0x0215f522, 0x0123909d, 0x001d05f1, 0x00e7685f, 0x02a379d9, 0x0007e49b, 0x02e7e3a2, 0x0321eeb4, 0x00297ab8}}, Y: Field{[10]uint32{0x034def1d, 0x02c408ea, 0x0296eed3, 0x0075229d, 0x01001788, 0x02799565, 0x015f5233, 0x02df4cab, 0x02a9f5c1, 0x000ab3e2}}}, + {X: Field{[10]uint32{0x0090b13c, 0x0395d6ba, 0x01251007, 0x0045710d, 0x03dc035e, 0x02ac17a3, 0x00a5b973, 0x0364e0f3, 0x015c5337, 0x0025f7a6}}, Y: Field{[10]uint32{0x0069e6dd, 0x02448438, 0x01f79e8f, 0x016f3624, 0x00920250, 0x01373bd4, 0x003fb4dc, 0x0228a4d3, 0x01692e30, 0x0013ecb6}}}, + {X: Field{[10]uint32{0x0038f479, 0x005c9b11, 0x01f3cc6b, 0x011151ac, 0x0125b70f, 0x002af7e5, 0x003dad8d, 0x02462be0, 0x025fa864, 0x002e32bc}}, Y: Field{[10]uint32{0x009c05c9, 0x0198f683, 0x02d79023, 0x00dac1a7, 0x02c30e2f, 0x01db01d2, 0x03a8c5a0, 0x01bacdbf, 0x01fac0f5, 0x001f146d}}}, + {X: Field{[10]uint32{0x0107b2e6, 0x0085d92b, 0x03443445, 0x02296c7c, 0x03b2cade, 0x03c50041, 0x00f3001a, 0x038a86c9, 0x028c1b96, 0x002d6f21}}, Y: Field{[10]uint32{0x0138d639, 0x02e8d9d2, 0x026f238b, 0x001ec852, 0x03672a8c, 0x015170ce, 0x02aa456f, 0x027ccf56, 0x02294e92, 0x00235b3f}}}, + {X: Field{[10]uint32{0x033ff602, 0x012a284d, 0x036e9078, 0x01887c4f, 0x0032ea26, 0x0090530a, 0x01b666bf, 0x00ec8843, 0x007c242a, 0x0017d456}}, Y: Field{[10]uint32{0x0346c858, 0x021a5122, 0x03427f58, 0x02299ab6, 0x031b3941, 0x02732ee7, 0x013950f9, 0x00293ae1, 0x020febf2, 0x000b0ec9}}}, + {X: Field{[10]uint32{0x022bcfde, 0x02d19d1e, 0x01feb822, 0x02558343, 0x034f08e6, 0x00113cfd, 0x0252e17e, 0x028ad44a, 0x00f95009, 0x000742f8}}, Y: Field{[10]uint32{0x033a159b, 0x01739363, 0x02538933, 0x02c93e19, 0x03a742c3, 0x01ee0776, 0x003181cf, 0x0061dcde, 0x03c3dbd8, 0x0030ea0a}}}, + {X: Field{[10]uint32{0x0122fb8a, 0x02bd2f23, 0x0192ccec, 0x0356d249, 0x029e0e62, 0x0338c3b4, 0x0221bcd6, 0x00ccc699, 0x0028b800, 0x000fbc3b}}, Y: Field{[10]uint32{0x0144b16d, 0x00a6e9e8, 0x001337d9, 0x018e636c, 0x03512fd3, 0x010f31fd, 0x02a03dae, 0x003a1b24, 0x00ad77d4, 0x003f8b21}}}, + {X: Field{[10]uint32{0x03555fc5, 0x03e5926d, 0x02ad302e, 0x02c39fc3, 0x00f62f12, 0x00ca8d92, 0x02bef427, 0x00136b1d, 0x0224a4ec, 0x002130a6}}, Y: Field{[10]uint32{0x014f970e, 0x029fc29e, 0x017ecb18, 0x014ce391, 0x03929ec4, 0x008b927e, 0x02b454cf, 0x01529c43, 0x02bb283a, 0x0039d883}}}, + {X: Field{[10]uint32{0x02cf43a8, 0x00c55cfa, 0x031e9283, 0x01cc041f, 0x03a309cd, 0x03c705de, 0x0340f4e5, 0x017fa487, 0x0234e75d, 0x001aee99}}, Y: Field{[10]uint32{0x03421582, 0x01af8dbe, 0x01a979d8, 0x03a9519c, 0x025b47fd, 0x00882715, 0x0086b441, 0x02090c7c, 0x008c4216, 0x000cfff8}}}, + {X: Field{[10]uint32{0x01ef0150, 0x03c59d1b, 0x01bfa47c, 0x02625567, 0x02488f62, 0x02796dba, 0x01a6046d, 0x03006f12, 0x02f051b0, 0x0004ed9e}}, Y: Field{[10]uint32{0x00237608, 0x03c764e8, 0x0109ee29, 0x01648c85, 0x03a54add, 0x0212b2b2, 0x037cc35d, 0x02fc2d4c, 0x014b01c1, 0x00343a24}}}, + {X: Field{[10]uint32{0x03af9300, 0x033c4fa4, 0x007202c5, 0x032d8d90, 0x02fdf779, 0x03331289, 0x02abc946, 0x02d8abaf, 0x01bfb5dc, 0x00058488}}, Y: Field{[10]uint32{0x00f83b2c, 0x026dfa4b, 0x007b72a4, 0x036d86bb, 0x00d1a212, 0x00ad484f, 0x0266bd30, 0x01b7e1c2, 0x02c5dd9d, 0x0034ff78}}}, + {X: Field{[10]uint32{0x02eb508b, 0x0242fe38, 0x003d39a5, 0x02fe19b7, 0x017eda1f, 0x00ad4880, 0x03602770, 0x016118eb, 0x020cc62f, 0x000c314d}}, Y: Field{[10]uint32{0x02c44efe, 0x02d2a072, 0x039f01aa, 0x03006dd9, 0x016c30e8, 0x037ab185, 0x037dbe8e, 0x0268ae20, 0x02f5009b, 0x00323a46}}}, + {X: Field{[10]uint32{0x00ec3576, 0x02e002c0, 0x01007a38, 0x03c21cdc, 0x02640364, 0x00925c9f, 0x027f38b7, 0x0147d7a9, 0x027fdd91, 0x00301966}}, Y: Field{[10]uint32{0x01cf47e3, 0x03c58069, 0x03ded648, 0x02b8728c, 0x018c57fa, 0x01d100d8, 0x018b5a77, 0x00c70d51, 0x00cb6fa1, 0x0029bd92}}}, + {X: Field{[10]uint32{0x02679386, 0x009e1fc0, 0x004be43e, 0x025429a1, 0x037d50fe, 0x0386ac72, 0x006472a8, 0x02a24811, 0x024db795, 0x000c8548}}, Y: Field{[10]uint32{0x018a9bf0, 0x01407e4d, 0x0238cc5e, 0x006fbf0f, 0x03faba83, 0x00b3ff17, 0x00c7eb59, 0x023619a4, 0x026297f2, 0x00095d41}}}, + {X: Field{[10]uint32{0x01871145, 0x029a2868, 0x035b3b19, 0x01926625, 0x03fe7762, 0x02971553, 0x0115445d, 0x01c120ef, 0x00e2a87a, 0x00095d95}}, Y: Field{[10]uint32{0x02636ec5, 0x0232234c, 0x010439c2, 0x00c259a4, 0x009efe24, 0x032816c6, 0x03fc4eef, 0x03c53e75, 0x019d0c67, 0x003f2e4c}}}, + {X: Field{[10]uint32{0x002f1b49, 0x0262c5c2, 0x03e800ce, 0x01b5b6cc, 0x0017c8a6, 0x039a422a, 0x017926e6, 0x03c553cf, 0x0201e504, 0x00291e1a}}, Y: Field{[10]uint32{0x0323a2fc, 0x00a184b4, 0x03bfd0b0, 0x038998ab, 0x027f86e8, 0x02df3e9e, 0x01a29678, 0x013e7fa0, 0x0142fc2e, 0x0015db93}}}, + {X: Field{[10]uint32{0x02db1e71, 0x02966998, 0x01e383c5, 0x03dfa0b8, 0x0090b484, 0x022bcda7, 0x013ae62a, 0x02615912, 0x03a9260c, 0x0014503d}}, Y: Field{[10]uint32{0x010bae86, 0x011c534d, 0x021fe2f6, 0x03026149, 0x0394ddcd, 0x03afe454, 0x026aa92c, 0x0277ed8e, 0x02c2b087, 0x0013945c}}}, + {X: Field{[10]uint32{0x00a66dfc, 0x01b3cc93, 0x0134231e, 0x004d4843, 0x03b781fe, 0x02295e75, 0x03d6d901, 0x0142de71, 0x020c0f0f, 0x003d5675}}, Y: Field{[10]uint32{0x014eed15, 0x00aeac23, 0x0208e205, 0x037328a7, 0x025f1f05, 0x02f6a390, 0x015fb56a, 0x014a972a, 0x02ae8e58, 0x0004b673}}}, + {X: Field{[10]uint32{0x00547e7c, 0x021a686c, 0x038570cc, 0x037e68cd, 0x00a4fb73, 0x00e814d5, 0x030e0be5, 0x03406f25, 0x03f50fa2, 0x0022241f}}, Y: Field{[10]uint32{0x03a3d2f5, 0x0055ee5f, 0x0373dab9, 0x006f0036, 0x025b2640, 0x03f29aaa, 0x03145f26, 0x0046d909, 0x0356cc12, 0x003d614e}}}, + {X: Field{[10]uint32{0x018c45ca, 0x02cfa9b9, 0x027ecfe4, 0x03c937bc, 0x03c8ac82, 0x038763fe, 0x011fba31, 0x0141b63a, 0x03f64541, 0x00330792}}, Y: Field{[10]uint32{0x00d27592, 0x00a98fce, 0x03b77590, 0x036c9d4f, 0x011efcf1, 0x00c1a55b, 0x00585a60, 0x0060f1a1, 0x017da875, 0x001d85d2}}}, + {X: Field{[10]uint32{0x03ca99d5, 0x00436ab2, 0x00dd4eca, 0x01f24d15, 0x016c3955, 0x007b7780, 0x02a6f9ef, 0x0108416d, 0x0037ef74, 0x001fb8b1}}, Y: Field{[10]uint32{0x033772d6, 0x0125a3db, 0x025b1827, 0x01c36f7b, 0x033e6d7b, 0x01457695, 0x00503f69, 0x03d767cc, 0x03345eef, 0x00085d51}}}, + {X: Field{[10]uint32{0x03e2465c, 0x0278178c, 0x0290f653, 0x012ed0b6, 0x003605ba, 0x01afd083, 0x033af3ef, 0x02d2a68f, 0x02a239f9, 0x0001cbfb}}, Y: Field{[10]uint32{0x01f553cc, 0x00abb67a, 0x0120a36d, 0x0345ac33, 0x0085482c, 0x000a50a3, 0x002ad9ad, 0x037b7723, 0x02ffdf7a, 0x0000280d}}}, + {X: Field{[10]uint32{0x0099914a, 0x0323d780, 0x0307c938, 0x02b89905, 0x03c8a0cb, 0x035e8e9b, 0x01b627c4, 0x0374019a, 0x033e94a0, 0x000d8f68}}, Y: Field{[10]uint32{0x02f58bd9, 0x03a6301e, 0x0359c3d0, 0x037351e2, 0x03a2f936, 0x00541bd1, 0x0236099c, 0x001e9038, 0x0277ef13, 0x0026f6a6}}}, + {X: Field{[10]uint32{0x02c133fe, 0x0246183c, 0x036e1a7e, 0x02347b26, 0x0393af0f, 0x02f817f7, 0x034a48bb, 0x010a426b, 0x0064c839, 0x001d9502}}, Y: Field{[10]uint32{0x00a3ecc2, 0x03970f95, 0x0084583c, 0x03d697b5, 0x01b3cc98, 0x02bcf5bc, 0x013a236d, 0x03ac0888, 0x03d7738c, 0x003c1a48}}}, + {X: Field{[10]uint32{0x02b239c4, 0x032d007c, 0x01606c94, 0x0224d1c2, 0x0251e381, 0x00ba6928, 0x01945c16, 0x022a7e2f, 0x00217a31, 0x0015cfc2}}, Y: Field{[10]uint32{0x0346bef5, 0x00754ead, 0x03fbe7ca, 0x00a35f1c, 0x00496cc1, 0x030faf45, 0x00b105fe, 0x02792e52, 0x00f27de6, 0x001f9e39}}}, + {X: Field{[10]uint32{0x02b01f5f, 0x02a4d388, 0x01467213, 0x02120669, 0x02f90d21, 0x015f97b5, 0x0009656f, 0x012e4ed4, 0x01818923, 0x000214de}}, Y: Field{[10]uint32{0x02e475f8, 0x01bc07d8, 0x02820ed2, 0x003b267e, 0x029281fc, 0x02733be8, 0x0069bbe8, 0x00266387, 0x01e8cc99, 0x0032529e}}}, + {X: Field{[10]uint32{0x01eb6041, 0x0184cb3b, 0x0051257f, 0x0031e001, 0x016f00a3, 0x033c3b61, 0x01ccd4c1, 0x000cd8ec, 0x01122989, 0x0014ce21}}, Y: Field{[10]uint32{0x0183334e, 0x022d12da, 0x03722fd7, 0x01551a6f, 0x000dd22f, 0x02f26a11, 0x038feacd, 0x0346e693, 0x0252f856, 0x00355b8a}}}, + {X: Field{[10]uint32{0x00e4796d, 0x00eaabac, 0x00c852f3, 0x02300e71, 0x01c5cb47, 0x03ee6258, 0x009f913a, 0x03ded971, 0x008a750e, 0x00107b79}}, Y: Field{[10]uint32{0x02559de4, 0x0090270c, 0x0065b8de, 0x02734693, 0x0104bdfe, 0x0012d4f2, 0x0092ea7f, 0x011a0062, 0x03f94b6c, 0x0035d31e}}}, + {X: Field{[10]uint32{0x01f08148, 0x034ed4f9, 0x03eefb6d, 0x00e4eb3f, 0x03fe7621, 0x03b5aa77, 0x02eece4e, 0x03dcda64, 0x01f36596, 0x0025fa4c}}, Y: Field{[10]uint32{0x00dd5f1b, 0x01838a85, 0x002c09b6, 0x0052d8b5, 0x0039a246, 0x01013ee9, 0x0276ce77, 0x0314a827, 0x013353b9, 0x000f6a26}}}, + {X: Field{[10]uint32{0x0222579d, 0x00024dec, 0x039a54db, 0x01933125, 0x035c55b6, 0x0094acde, 0x00476335, 0x02c410e6, 0x02ea3ca8, 0x00132bd3}}, Y: Field{[10]uint32{0x011607bb, 0x01c7358a, 0x01464621, 0x00013034, 0x0345a191, 0x01c75628, 0x03885807, 0x02f701f3, 0x03320a93, 0x00030999}}}, + {X: Field{[10]uint32{0x027b1ca4, 0x029f2127, 0x0306bb7e, 0x03e086a1, 0x01b52960, 0x01478e0e, 0x0324ee4e, 0x020f0cea, 0x02905b34, 0x00215f07}}, Y: Field{[10]uint32{0x0269dd80, 0x02456ebf, 0x00c01be5, 0x03f7a6d0, 0x011c6b09, 0x028b9af1, 0x018380c4, 0x021dc6cd, 0x010c7a57, 0x00235ba7}}}, + {X: Field{[10]uint32{0x00b5a182, 0x03b4b06f, 0x0322c1e7, 0x02925a1a, 0x0310ec39, 0x0372e8f2, 0x00fc1248, 0x03deb69a, 0x030be0db, 0x001043bd}}, Y: Field{[10]uint32{0x007f9e94, 0x02e508c9, 0x03db3b7c, 0x01e6023f, 0x00e6925d, 0x002d2970, 0x03074aee, 0x015bd73b, 0x02a3331a, 0x00349ba7}}}, + {X: Field{[10]uint32{0x0351029f, 0x00410655, 0x03f7a307, 0x03e69f98, 0x0289dff6, 0x01ea90c6, 0x03e5ec30, 0x03ac4205, 0x03a8c831, 0x00232be1}}, Y: Field{[10]uint32{0x03c8890a, 0x02421c99, 0x02058bfe, 0x001cf176, 0x0113aad2, 0x030e9192, 0x0265ba07, 0x029b0f23, 0x02e1c8dd, 0x000fc2f5}}}, + {X: Field{[10]uint32{0x02f10e8e, 0x01b57ebf, 0x037798c1, 0x022ffee6, 0x01b35ca1, 0x034c53ec, 0x026a8a39, 0x00920d52, 0x02cfe92d, 0x003bb7b8}}, Y: Field{[10]uint32{0x0114c4c3, 0x02cd6ab9, 0x01624c1e, 0x03259e4f, 0x009fcd12, 0x03e73877, 0x031181f3, 0x02fbf92c, 0x02b021f0, 0x0032d456}}}, + {X: Field{[10]uint32{0x02ebcee1, 0x03bb2bca, 0x00312f02, 0x01d5d135, 0x0248bb2a, 0x0045b6d4, 0x02d6a4e9, 0x02dfddee, 0x02c71e77, 0x00232fde}}, Y: Field{[10]uint32{0x039b7320, 0x028b015d, 0x03799169, 0x01fc36da, 0x02b6f669, 0x0034258d, 0x017f97c3, 0x009ad4f4, 0x0331f67b, 0x001d9712}}}, + {X: Field{[10]uint32{0x00995db2, 0x03f19c95, 0x02dfcc19, 0x032e6190, 0x02715dc6, 0x00380448, 0x03f0627f, 0x026abcd3, 0x01b4cd44, 0x001c3351}}, Y: Field{[10]uint32{0x03535c8e, 0x00314e0b, 0x00c4120f, 0x036442d8, 0x02ee184a, 0x02b685b1, 0x0320eac3, 0x025ec610, 0x00567614, 0x0020b965}}}, + {X: Field{[10]uint32{0x007c45d5, 0x00bf7edb, 0x002ea070, 0x011b83d1, 0x03050e51, 0x00defb0f, 0x039d558e, 0x033f6479, 0x03f9783f, 0x0033f885}}, Y: Field{[10]uint32{0x01c419d5, 0x03dc1e65, 0x00dfc7b6, 0x02185eed, 0x00da2251, 0x0231f0eb, 0x03d70d87, 0x00feff15, 0x010e8645, 0x0014df2f}}}, + {X: Field{[10]uint32{0x00579d52, 0x005e43d2, 0x0317e065, 0x032c4afc, 0x01ccabd2, 0x033ebe9c, 0x033d4f74, 0x02ee38af, 0x00df6486, 0x002609b0}}, Y: Field{[10]uint32{0x01c57342, 0x005cb76e, 0x02da734f, 0x015e353b, 0x02ae3bb4, 0x03f0db45, 0x0349c052, 0x01894f4d, 0x0186f86d, 0x000f6fcd}}}, + {X: Field{[10]uint32{0x028a02c4, 0x013d65b8, 0x00e74d0f, 0x037d5db2, 0x00a13e13, 0x01d13a71, 0x033fa3e3, 0x012f0b1a, 0x00ef381b, 0x003a863f}}, Y: Field{[10]uint32{0x0209f397, 0x03f9a7fb, 0x01874d7f, 0x02931074, 0x02041c9a, 0x016568c2, 0x0103c7fe, 0x01175e1c, 0x039d2bc4, 0x0030f9af}}}, + {X: Field{[10]uint32{0x026d8f4a, 0x033e433f, 0x033a0e88, 0x01759cc0, 0x0221b82e, 0x02705bfe, 0x00618bec, 0x01695187, 0x0065c09d, 0x001b78b1}}, Y: Field{[10]uint32{0x004ee2ba, 0x01973caf, 0x03f5d28b, 0x02c0ca02, 0x03e1c4cc, 0x00ec87d6, 0x00a8199d, 0x0220ad0a, 0x03d28950, 0x000d9eb2}}}, + {X: Field{[10]uint32{0x02183f4e, 0x03e9cfc6, 0x0284706f, 0x01a27bf4, 0x03cecc9c, 0x03469505, 0x0250f803, 0x031f516b, 0x0213ee10, 0x00358a1b}}, Y: Field{[10]uint32{0x02a56f56, 0x004fa4da, 0x008ad37f, 0x024d5f6e, 0x01e965ab, 0x0320a790, 0x023ca411, 0x013a271f, 0x03b75520, 0x001eae4a}}}, + {X: Field{[10]uint32{0x03c3bf58, 0x020f7dc8, 0x0364dfce, 0x0187bcf0, 0x0173f0c8, 0x036dbc82, 0x0125962f, 0x01182895, 0x02faea67, 0x001d49b9}}, Y: Field{[10]uint32{0x00e3a674, 0x023d2306, 0x01ae8f00, 0x02b04b8d, 0x0125a21f, 0x02cc8dd4, 0x0274411c, 0x01846f4c, 0x00e0d5a8, 0x000b1daa}}}, + {X: Field{[10]uint32{0x0079308d, 0x0141c3e2, 0x00b2ab78, 0x000e24fa, 0x02e737c8, 0x0067d47d, 0x01d5d897, 0x0128f5b4, 0x02da56d6, 0x003f32aa}}, Y: Field{[10]uint32{0x039362d1, 0x0171aa11, 0x03d7d868, 0x034ff9b9, 0x01a2ee95, 0x025a7eae, 0x01750efa, 0x03de4bbf, 0x01663fac, 0x002098b1}}}, + {X: Field{[10]uint32{0x01b57fe3, 0x012c4556, 0x0088afef, 0x02a2ce9a, 0x03bd6d91, 0x028e5e11, 0x00483797, 0x017d0f31, 0x03b8eb8a, 0x002d8344}}, Y: Field{[10]uint32{0x00ebaa54, 0x033e0e18, 0x038ae94e, 0x014cdd56, 0x038405b0, 0x032217c7, 0x0104acbe, 0x021615d8, 0x02be5d2b, 0x002afdcf}}}, + {X: Field{[10]uint32{0x0377f8be, 0x039b3a30, 0x02d90127, 0x019b7ea8, 0x014250fd, 0x00de7e49, 0x016d2c14, 0x0361cbff, 0x030f4a0d, 0x000ccb52}}, Y: Field{[10]uint32{0x03c6232b, 0x021f3cc6, 0x02354b78, 0x033761f3, 0x03110dfa, 0x0382c5fa, 0x0333d7d9, 0x00d42fd0, 0x014347c2, 0x0000dfcc}}}, + {X: Field{[10]uint32{0x00c5788f, 0x03be1ed3, 0x0394e52d, 0x0082d556, 0x025d0216, 0x01ef44e3, 0x020e8803, 0x0358cc07, 0x02e62ce6, 0x003a66cb}}, Y: Field{[10]uint32{0x025546bc, 0x01210593, 0x03c6d2c0, 0x030ae469, 0x00e2858d, 0x02ecf954, 0x031df268, 0x032a7db7, 0x02fedabc, 0x00327a81}}}, + {X: Field{[10]uint32{0x01c54353, 0x0015b712, 0x033b1dfb, 0x0247a015, 0x005af241, 0x01c666f7, 0x02692a1d, 0x01ebb9ff, 0x00382a97, 0x00227ab5}}, Y: Field{[10]uint32{0x01994ece, 0x003e6bf6, 0x0319c2de, 0x00efaf97, 0x0107fec4, 0x02dc042b, 0x0167f706, 0x01ddb0aa, 0x01cedb2d, 0x002d5cb7}}}, + {X: Field{[10]uint32{0x0198268f, 0x021ed3b5, 0x01488595, 0x03fec243, 0x004777ba, 0x0231d016, 0x006f6fa9, 0x0104fc2d, 0x018e529b, 0x000336b6}}, Y: Field{[10]uint32{0x03ed034e, 0x03ba0c2f, 0x00cac3ef, 0x0205e22c, 0x02ceabc2, 0x0087e1e1, 0x00f10db8, 0x0398e51c, 0x015e0543, 0x0035016a}}}, + {X: Field{[10]uint32{0x02ee2cc3, 0x00a43921, 0x00f5be41, 0x0275783d, 0x02c26984, 0x0330c502, 0x03f69ad3, 0x00ccaf99, 0x03411cc1, 0x001425bb}}, Y: Field{[10]uint32{0x03f8268a, 0x0114d0dc, 0x02bb418c, 0x029bcb51, 0x0149ef34, 0x0029ecfc, 0x021f3123, 0x02c1afb5, 0x029fccd4, 0x001fcce1}}}, + {X: Field{[10]uint32{0x00a5be61, 0x03d838a9, 0x00dbb8b9, 0x03b58e3b, 0x038c4d59, 0x0322fa61, 0x007253a2, 0x019cd218, 0x0270a096, 0x002f02fa}}, Y: Field{[10]uint32{0x02873b78, 0x03883345, 0x03320873, 0x03c0a777, 0x01054d1f, 0x01b1309d, 0x0286129e, 0x01382c12, 0x01ac3c2b, 0x00386444}}}, + {X: Field{[10]uint32{0x03223ec1, 0x014500e1, 0x007a7dc4, 0x02297210, 0x03b024bb, 0x02a9f5d1, 0x00674d38, 0x01682038, 0x0169ac8f, 0x000b4599}}, Y: Field{[10]uint32{0x019a597a, 0x006f5df8, 0x038f73dd, 0x021f8888, 0x01445c15, 0x03bb1396, 0x027d92d4, 0x01a97c4a, 0x03386221, 0x00122bc6}}}, + {X: Field{[10]uint32{0x0145ba30, 0x03a2dfe0, 0x01d40f27, 0x037f8f3c, 0x012947cd, 0x01bb1ded, 0x00e37b32, 0x00454377, 0x03aebb8b, 0x002e32f3}}, Y: Field{[10]uint32{0x00823ca4, 0x01bf76cd, 0x01a0562b, 0x03ef357d, 0x00ffc2c3, 0x021a287a, 0x030ec022, 0x034b7218, 0x00ab8b2a, 0x003548d3}}}, + {X: Field{[10]uint32{0x00960ee7, 0x02abb1b7, 0x02a227a9, 0x02f9823b, 0x01fb2e3e, 0x006b0676, 0x01db9c0f, 0x004bd377, 0x0092563f, 0x003ece58}}, Y: Field{[10]uint32{0x01823c45, 0x02798bb2, 0x0395358c, 0x02ec1a50, 0x01646e88, 0x00bac07a, 0x027f661c, 0x028e50f4, 0x01dffda1, 0x00197959}}}, + {X: Field{[10]uint32{0x0014b297, 0x03fe9529, 0x0022580a, 0x03b88400, 0x02f8da06, 0x02c89d2c, 0x0225150d, 0x0337ea41, 0x01760b8d, 0x00071ba7}}, Y: Field{[10]uint32{0x01666255, 0x02f0bbe9, 0x00057607, 0x02e5e35d, 0x0085679f, 0x02fb62c4, 0x026edcbb, 0x02c2c151, 0x010d009a, 0x001c1ad1}}}, + {X: Field{[10]uint32{0x01fca1c3, 0x0180d46e, 0x00277dc6, 0x00355578, 0x0377f55a, 0x026173b2, 0x0166b13d, 0x03fc39b9, 0x01c146ec, 0x000b810f}}, Y: Field{[10]uint32{0x026d8398, 0x01c7915c, 0x00e1428a, 0x0000aab1, 0x03665da5, 0x02429eaf, 0x011103b0, 0x03abc281, 0x01caf75c, 0x0000713c}}}, + {X: Field{[10]uint32{0x005f482f, 0x002f2696, 0x0192cb4b, 0x03b8b625, 0x019549f9, 0x025f5e15, 0x023ee12d, 0x023a4399, 0x030ca1bf, 0x0016b85e}}, Y: Field{[10]uint32{0x00fc8111, 0x008daf2d, 0x031c716f, 0x02b6235c, 0x03a71806, 0x03a3969d, 0x006966c1, 0x0002f1cf, 0x03349317, 0x002ec37d}}}, + {X: Field{[10]uint32{0x03caafc4, 0x023d1a29, 0x0271c1b0, 0x037f241a, 0x00fca910, 0x01d7b6a5, 0x0011c46e, 0x030f974f, 0x03426a24, 0x003ea2fc}}, Y: Field{[10]uint32{0x035954e2, 0x02b6930b, 0x000435dc, 0x03e795f0, 0x014e2884, 0x016cf3c1, 0x01e6c846, 0x03ef678d, 0x017cdb07, 0x00329a60}}}, + {X: Field{[10]uint32{0x011a88a4, 0x0016bee6, 0x003cb0f9, 0x02d779c2, 0x011e1031, 0x00fd0e53, 0x01f67aea, 0x035fdee7, 0x01c1846d, 0x000b37fc}}, Y: Field{[10]uint32{0x0376f39e, 0x03fcf8bb, 0x00d3b507, 0x023e3959, 0x016ea0d8, 0x038c11c4, 0x00530fed, 0x0390adf4, 0x024f3827, 0x0012ef5c}}}, + {X: Field{[10]uint32{0x013b6905, 0x02ccc8a7, 0x02df95f5, 0x02472a50, 0x01c5bb82, 0x019413e2, 0x01f82b29, 0x0127b2bf, 0x000055ca, 0x001beb6f}}, Y: Field{[10]uint32{0x00b7df62, 0x03d5fbd5, 0x02868c06, 0x014fd64f, 0x03911a30, 0x03104645, 0x02f94728, 0x020c9a95, 0x0184033a, 0x003dd9c4}}}, + {X: Field{[10]uint32{0x00dd0841, 0x0280392e, 0x01fca2f5, 0x00184964, 0x026f4a1e, 0x0357aa34, 0x02b15f55, 0x02a90373, 0x015a2f26, 0x0031451a}}, Y: Field{[10]uint32{0x0113266c, 0x014a0eac, 0x03a6e800, 0x02c45b63, 0x01652905, 0x00ff13bc, 0x01375677, 0x02c1aa42, 0x02082e78, 0x001415ae}}}, + {X: Field{[10]uint32{0x037ff933, 0x004785b2, 0x0306466c, 0x03bbf747, 0x01aad758, 0x03862304, 0x00368dd3, 0x013e1553, 0x00d49347, 0x0020f72e}}, Y: Field{[10]uint32{0x030a53c7, 0x022f6118, 0x02288e9f, 0x03ec3987, 0x030d6ed6, 0x004679e7, 0x027a029e, 0x01c649f1, 0x033d04e5, 0x00041396}}}, + {X: Field{[10]uint32{0x00c8a93f, 0x032aec7f, 0x01127a8b, 0x0208b8ac, 0x015f9ae8, 0x01597e6a, 0x03690890, 0x002c990e, 0x038acf9a, 0x002f1973}}, Y: Field{[10]uint32{0x00fb2143, 0x030a4a85, 0x039c3ae9, 0x03045569, 0x0023ff28, 0x019a66de, 0x000ac90f, 0x03741a82, 0x016ba31d, 0x003f7e5c}}}, + {X: Field{[10]uint32{0x009f140b, 0x0272f493, 0x0153c1e0, 0x035901c3, 0x02695e37, 0x016b4de8, 0x0174b476, 0x004a904b, 0x03a9520b, 0x00121de3}}, Y: Field{[10]uint32{0x029c373e, 0x0328875d, 0x01b39fbe, 0x0316cb8d, 0x01446dd3, 0x03146d1a, 0x03b4c02b, 0x016500e1, 0x0005bec1, 0x00337192}}}, + {X: Field{[10]uint32{0x0301dc25, 0x019f77e8, 0x006e841f, 0x02d4cb46, 0x0328077b, 0x03b5a1cf, 0x01c88312, 0x01621a3b, 0x002c6a73, 0x00276cb1}}, Y: Field{[10]uint32{0x03b3a0dc, 0x024098af, 0x00ac8569, 0x0351e1b4, 0x00aa0ac5, 0x01a8c96c, 0x0193e064, 0x02d17b84, 0x0235ec9d, 0x0038072c}}}, + {X: Field{[10]uint32{0x00f8da6b, 0x0201cd27, 0x012aefb2, 0x023c925b, 0x03037c6c, 0x015ac9ff, 0x021ef442, 0x0009690e, 0x018f62bf, 0x0032f3fd}}, Y: Field{[10]uint32{0x03b1896d, 0x0379b94e, 0x01da2818, 0x006f0440, 0x0128f533, 0x00784daf, 0x029251fe, 0x009d4c0e, 0x02d52da3, 0x0013f667}}}, + {X: Field{[10]uint32{0x034f3639, 0x019c94db, 0x00270933, 0x03ce45e2, 0x02070cbc, 0x00ec77e5, 0x03a12a29, 0x02311605, 0x039787e6, 0x00275482}}, Y: Field{[10]uint32{0x02bc0f14, 0x027b3bed, 0x036bb22d, 0x001e763e, 0x01041fec, 0x028c9589, 0x01885ca0, 0x02625764, 0x015d2b53, 0x00185784}}}, + {X: Field{[10]uint32{0x0225dbbd, 0x01a8d064, 0x02e7b3ef, 0x00f7e0ec, 0x024b0bfd, 0x02331b5b, 0x023d1820, 0x030af2f0, 0x01c40057, 0x00319237}}, Y: Field{[10]uint32{0x018ab3d8, 0x029fef14, 0x02caf209, 0x0187705f, 0x01ec16fe, 0x019e8f67, 0x0347e99e, 0x00659a6e, 0x006338dd, 0x0002b26a}}}, + {X: Field{[10]uint32{0x002137dc, 0x0259187a, 0x0229a7e5, 0x00a5ed17, 0x02b80ead, 0x0248877b, 0x01e3f1e7, 0x03dd9ebf, 0x0035ea96, 0x002b847e}}, Y: Field{[10]uint32{0x00452596, 0x0085e393, 0x01a15c2a, 0x0395397e, 0x034c5dfe, 0x00654eb2, 0x016e1b5f, 0x018bca26, 0x03ecb65a, 0x0008114e}}}, + {X: Field{[10]uint32{0x0364d46f, 0x00a03428, 0x00fec029, 0x03f8d970, 0x000699f6, 0x023bd44a, 0x03b9293d, 0x02993748, 0x01ad56f8, 0x0028d552}}, Y: Field{[10]uint32{0x03fbbe75, 0x0335b842, 0x00868f11, 0x02480f19, 0x008f55a2, 0x01fffb38, 0x015ffce1, 0x026604c0, 0x01cba38c, 0x00321010}}}, + {X: Field{[10]uint32{0x035f8077, 0x011c25f8, 0x03a649c3, 0x0020351c, 0x022aad83, 0x01f6b226, 0x01bfaef3, 0x01d78423, 0x0029af55, 0x001d61dc}}, Y: Field{[10]uint32{0x03c2b8b6, 0x02a173d7, 0x0165b2e5, 0x01d085b3, 0x01603cd6, 0x005df31a, 0x02437620, 0x0146efb4, 0x0097d198, 0x00210ec1}}}, + {X: Field{[10]uint32{0x02d4ea99, 0x0181fecc, 0x031ca917, 0x03a43cba, 0x01ae00b9, 0x00f94cb0, 0x027b1f68, 0x03f54311, 0x0168ca7f, 0x00113b8c}}, Y: Field{[10]uint32{0x012c3270, 0x00fadff2, 0x001411e7, 0x038e6e5b, 0x03022564, 0x024443bb, 0x01a9f9a0, 0x01684efb, 0x02a8120b, 0x00042883}}}, + {X: Field{[10]uint32{0x025337d4, 0x02dbd99e, 0x007d6477, 0x02550b2c, 0x01461e45, 0x00eee632, 0x0278f92f, 0x02bc2e41, 0x00898daf, 0x0026804f}}, Y: Field{[10]uint32{0x023c2a73, 0x012e87f6, 0x0205e877, 0x03c7fd4c, 0x03fec396, 0x017367f2, 0x009b773f, 0x008e939b, 0x005ac966, 0x00047e12}}}, + {X: Field{[10]uint32{0x02b47d5c, 0x01cf5a6d, 0x01bea83e, 0x005cae2d, 0x013fa12d, 0x03d42cd2, 0x0019a615, 0x01060882, 0x00a144d5, 0x002d178a}}, Y: Field{[10]uint32{0x02c29f4b, 0x01b0c1a4, 0x00ae45b7, 0x0248256f, 0x03fb1c20, 0x00e65c94, 0x03f1dec4, 0x0334877f, 0x0383ccda, 0x003661f6}}}, + {X: Field{[10]uint32{0x0241a0c9, 0x000f4d69, 0x02603cdc, 0x0014074a, 0x009a6592, 0x004064be, 0x0065d073, 0x016222a2, 0x02534984, 0x00279f5a}}, Y: Field{[10]uint32{0x00f462d9, 0x00052615, 0x033233c0, 0x02f2c87e, 0x02ce5f1f, 0x0134702c, 0x03e5690b, 0x027e9fd5, 0x00edace2, 0x003285dd}}}, + {X: Field{[10]uint32{0x00991f47, 0x03fa90d5, 0x00b01b9a, 0x01023bc5, 0x03e433a9, 0x02017058, 0x03b306d5, 0x0184f159, 0x0029be1b, 0x00044e85}}, Y: Field{[10]uint32{0x03928697, 0x005159de, 0x023c7500, 0x0006454a, 0x000321e8, 0x01478e17, 0x0191ec1a, 0x032ee124, 0x01fa6d26, 0x000897b9}}}, + {X: Field{[10]uint32{0x018d9181, 0x01575c50, 0x03964776, 0x029b4375, 0x016d6eb0, 0x01ac017a, 0x01e2597f, 0x02177e4c, 0x01d102cf, 0x000cbb23}}, Y: Field{[10]uint32{0x03f9d8b9, 0x035eeeeb, 0x022ab00d, 0x001786a8, 0x003423bc, 0x0310c1d9, 0x02f7f4d9, 0x0392966f, 0x01d078b3, 0x003f5c63}}}, + {X: Field{[10]uint32{0x02e9246e, 0x0063a45c, 0x03865b12, 0x01c3bd1d, 0x01b145db, 0x018547e2, 0x021a5f14, 0x036b9017, 0x0267f2ce, 0x002b690c}}, Y: Field{[10]uint32{0x007cf82c, 0x038352c9, 0x00a541f3, 0x021b0acb, 0x0116e396, 0x02c11d1a, 0x0315c578, 0x0134a7e7, 0x02e04d1f, 0x0034522f}}}, + {X: Field{[10]uint32{0x01bf0cbe, 0x02e611e5, 0x006bbbf7, 0x001c805f, 0x0265f5ca, 0x036e8694, 0x03e662be, 0x01d29a47, 0x02bedebd, 0x00206282}}, Y: Field{[10]uint32{0x009c0a53, 0x006738c2, 0x03bc8da7, 0x00ee4240, 0x030ac0f0, 0x0389cede, 0x008da9bc, 0x00b1cda6, 0x006a0187, 0x0039ecb4}}}, + {X: Field{[10]uint32{0x010b3c94, 0x02fa041f, 0x02f14d80, 0x01b7cb44, 0x02ae7602, 0x0165bc27, 0x00c1a1bf, 0x03684201, 0x0355ef77, 0x000bd27a}}, Y: Field{[10]uint32{0x02038b83, 0x0138e0cf, 0x02ffa569, 0x01ae00b2, 0x011a7903, 0x01b533b4, 0x0289aa1e, 0x004463ad, 0x0010002f, 0x001a8896}}}, + {X: Field{[10]uint32{0x02faf74a, 0x0314d4de, 0x0278ba5c, 0x031e61b1, 0x02bf66d5, 0x03b6f457, 0x02f8029b, 0x00097daf, 0x017054cb, 0x001ff953}}, Y: Field{[10]uint32{0x00ad89b0, 0x025b042d, 0x03695022, 0x03f76dd5, 0x00a47a82, 0x02462155, 0x016afb66, 0x0198c9b4, 0x03ec72ac, 0x003f7185}}}, + {X: Field{[10]uint32{0x02ed2689, 0x028fdd63, 0x0131956a, 0x02eb7bb0, 0x03411ec9, 0x02e71575, 0x01b8675d, 0x02128327, 0x03662b82, 0x00213d64}}, Y: Field{[10]uint32{0x02cd0d88, 0x0263a0c2, 0x01dfe4de, 0x024bd07b, 0x01480425, 0x01144722, 0x01119c4c, 0x01bb5e09, 0x01d96bef, 0x0020db99}}}, + {X: Field{[10]uint32{0x0185ee1b, 0x029bed50, 0x01f52da0, 0x004978ad, 0x00a46b16, 0x033326ff, 0x02eb6b71, 0x02083781, 0x00301a84, 0x003242aa}}, Y: Field{[10]uint32{0x010dc8df, 0x00d48dfe, 0x02efb161, 0x01276489, 0x01cc2134, 0x02671628, 0x031e05cd, 0x01760a4c, 0x03c00b28, 0x003aa1b5}}}, + {X: Field{[10]uint32{0x012ef100, 0x01f65b86, 0x00addc05, 0x02b673f7, 0x018669b2, 0x00d850aa, 0x03047ef6, 0x0126f9a7, 0x0176abae, 0x003fed35}}, Y: Field{[10]uint32{0x03ec6c7a, 0x024406ed, 0x0012080a, 0x01b6948e, 0x013d9596, 0x0203daa3, 0x02700e4c, 0x038060ce, 0x0114b2d5, 0x000dd033}}}, + {X: Field{[10]uint32{0x01403de0, 0x01e3f2b3, 0x00a3c08b, 0x0174b0cf, 0x0312c24b, 0x026bfbff, 0x03ebb618, 0x01af33ad, 0x018967ad, 0x001022a3}}, Y: Field{[10]uint32{0x01caecf3, 0x02f391f8, 0x013a2cdc, 0x015ff58c, 0x014acd35, 0x007605c7, 0x00fb66ff, 0x0310ba8a, 0x03a6378c, 0x000edd87}}}, + {X: Field{[10]uint32{0x0053b787, 0x0120ba1f, 0x027123e3, 0x013c60c9, 0x006c80c0, 0x006c2ac1, 0x01e27e3f, 0x00276ff7, 0x03f61531, 0x0016028c}}, Y: Field{[10]uint32{0x0028431a, 0x00d4f039, 0x02dd801d, 0x028d58e6, 0x02f70a33, 0x025c0bfd, 0x01ac5ae6, 0x020783a6, 0x03c3fddc, 0x002ee01c}}}, + {X: Field{[10]uint32{0x0344130f, 0x039e27e0, 0x018c2505, 0x036ce31a, 0x014c7860, 0x020d26b4, 0x02b11008, 0x03332b11, 0x02947054, 0x000b4c42}}, Y: Field{[10]uint32{0x023db697, 0x0237204f, 0x02a9a5d2, 0x0168b89a, 0x022df187, 0x0244f643, 0x011be0a0, 0x03243a70, 0x029c3c6e, 0x0007a881}}}, + {X: Field{[10]uint32{0x027aa450, 0x008c7e1a, 0x03b32985, 0x009091a5, 0x015d82b4, 0x02e0d6bb, 0x022f2e3a, 0x0072b4fc, 0x002be7b1, 0x000a1d0a}}, Y: Field{[10]uint32{0x00415c42, 0x008c5c7c, 0x02b74cfa, 0x000c87c9, 0x02cf39ce, 0x0107642e, 0x02e3860e, 0x02e48888, 0x032db2e1, 0x0000a18c}}}, + {X: Field{[10]uint32{0x036231cf, 0x01b9007a, 0x02ea48b3, 0x016e54c3, 0x016940f8, 0x00adde60, 0x02f5e418, 0x03ce8042, 0x039ff77b, 0x002be79d}}, Y: Field{[10]uint32{0x00e84c67, 0x03dd5066, 0x03389c13, 0x020eac7f, 0x034deb70, 0x01b5ae23, 0x01d958b8, 0x0057249a, 0x0350dbaf, 0x00274f50}}}, + {X: Field{[10]uint32{0x008c1ef3, 0x00740d5a, 0x01b35447, 0x02302998, 0x00bc93ad, 0x00ec9de3, 0x03d27577, 0x029cd49b, 0x038d515c, 0x001117b6}}, Y: Field{[10]uint32{0x0090dc49, 0x0193c95c, 0x002f555d, 0x0269154e, 0x02e94b75, 0x03cda84f, 0x03743611, 0x018be0ed, 0x023cfde7, 0x0025245e}}}, + {X: Field{[10]uint32{0x001811b4, 0x01d4049c, 0x012aa0dc, 0x02e8ad98, 0x013e76fe, 0x01fb0d34, 0x009993cf, 0x014c183e, 0x020a370d, 0x00380430}}, Y: Field{[10]uint32{0x006fd8af, 0x03d93fc4, 0x023cee3a, 0x009bc857, 0x03798a64, 0x032cf311, 0x0157a214, 0x026f814b, 0x032d280d, 0x0032d145}}}, + {X: Field{[10]uint32{0x025af8f9, 0x0108d4ab, 0x033f9eed, 0x00ed9eed, 0x02ef548b, 0x03ed1334, 0x0134080c, 0x031f96c4, 0x03ca4625, 0x0034d09d}}, Y: Field{[10]uint32{0x03e4a4df, 0x03963235, 0x02b441ec, 0x026b389e, 0x02c39190, 0x038fd13b, 0x037bd609, 0x023dfaec, 0x03797a62, 0x0028d7d5}}}, + {X: Field{[10]uint32{0x031d628d, 0x017bb2b2, 0x01c5dd66, 0x030f27ec, 0x03d96182, 0x0291ccf8, 0x004977fe, 0x010906da, 0x03993bd5, 0x002f82e4}}, Y: Field{[10]uint32{0x03b7fdb8, 0x016fa103, 0x009dadbf, 0x003c17ec, 0x0013218b, 0x03b10626, 0x03762728, 0x0349a837, 0x0353744e, 0x000de410}}}, + {X: Field{[10]uint32{0x018f3980, 0x00b0c67f, 0x0309dc3b, 0x00d3a04b, 0x01edd9bd, 0x01ad0a0a, 0x019f48fd, 0x0087a47b, 0x01f1ed4a, 0x000c20a5}}, Y: Field{[10]uint32{0x02ac0230, 0x02975fab, 0x00181a8b, 0x00d225f1, 0x030797d4, 0x03b93328, 0x0214c314, 0x00386926, 0x034d5c36, 0x001a0d70}}}, + {X: Field{[10]uint32{0x00495b1a, 0x0236ccb7, 0x03b412b8, 0x01799a8d, 0x01c2e07a, 0x0043d7e9, 0x0391604e, 0x021e77f5, 0x035161aa, 0x0019b3fa}}, Y: Field{[10]uint32{0x0252a1e1, 0x03e726cc, 0x03fe3f9f, 0x0317edba, 0x025ffba9, 0x0120ef09, 0x0229602b, 0x03f004f8, 0x029bf8a2, 0x0028381e}}}, + {X: Field{[10]uint32{0x03e39ba4, 0x02168b5b, 0x03648ec8, 0x03be6d57, 0x01bf7b3a, 0x00d29284, 0x03b3d9d3, 0x03a9c133, 0x00fb849c, 0x0003d0ae}}, Y: Field{[10]uint32{0x01e8b22f, 0x03458298, 0x019a7036, 0x012af27c, 0x01f5b0fb, 0x034e06b8, 0x035db65d, 0x012bfe7d, 0x01e2a36d, 0x002d8188}}}, + {X: Field{[10]uint32{0x03ab034f, 0x00c4952f, 0x008e385a, 0x03698233, 0x00c57b7f, 0x0199be3d, 0x00fdc462, 0x018c8cbb, 0x03852290, 0x0010a705}}, Y: Field{[10]uint32{0x0162af35, 0x02605aca, 0x001f18e6, 0x027aaf25, 0x0250b396, 0x0206a813, 0x03bfcb04, 0x023d5d02, 0x02591a86, 0x0038642e}}}, + {X: Field{[10]uint32{0x01ebf611, 0x037dee03, 0x03d7dfaf, 0x0215bf19, 0x009895b9, 0x02cde3b9, 0x01e4237f, 0x026832e5, 0x017c9478, 0x003224e7}}, Y: Field{[10]uint32{0x00ad3682, 0x003e07c7, 0x022b0437, 0x01fa6c57, 0x0047feb7, 0x0018b4b5, 0x02d05e23, 0x01185f0d, 0x036206e9, 0x00050ebf}}}, + {X: Field{[10]uint32{0x0398ef94, 0x01bcf310, 0x00cfb1d3, 0x02de370f, 0x022b82ae, 0x010ab607, 0x0215ae41, 0x00c90c93, 0x01bf5630, 0x00179055}}, Y: Field{[10]uint32{0x035da55a, 0x03d3fd7a, 0x03b75ed6, 0x019080fc, 0x01b90833, 0x005b5d09, 0x033807f2, 0x028ee6a7, 0x01272325, 0x001a007d}}}, + {X: Field{[10]uint32{0x00d1b573, 0x036f4fc2, 0x0165b5e9, 0x00c181e2, 0x03eb01c5, 0x01c45388, 0x03fa851a, 0x024ef9ee, 0x019853f0, 0x000465ac}}, Y: Field{[10]uint32{0x00628795, 0x015ff4af, 0x0297e5c5, 0x03b7fbc2, 0x00fe79dc, 0x0060f6d1, 0x00dea44d, 0x03b88360, 0x00f054bf, 0x00001e53}}}, + {X: Field{[10]uint32{0x033a6094, 0x00dbb4b1, 0x03a1dea8, 0x017dadda, 0x0339803e, 0x01a00c38, 0x038fcd01, 0x01cdedf6, 0x012074bb, 0x00360636}}, Y: Field{[10]uint32{0x0176e504, 0x01bc5e40, 0x00afe9d9, 0x006fed33, 0x02ff15d5, 0x02d7c21b, 0x00d2aacf, 0x00462a03, 0x03b51f63, 0x001ab1f6}}}, + {X: Field{[10]uint32{0x006c6204, 0x02d193ec, 0x02d8851d, 0x00b6c9cf, 0x01703904, 0x02b97262, 0x01a433ee, 0x02afa7b6, 0x034bf5cc, 0x003009da}}, Y: Field{[10]uint32{0x00f4756b, 0x00bbf289, 0x02cc5fd5, 0x03526cfe, 0x00972593, 0x02160548, 0x001a582a, 0x02b20752, 0x00ae6349, 0x0012249c}}}, + {X: Field{[10]uint32{0x01d83307, 0x00d0f5f3, 0x00a7a0d3, 0x00187136, 0x020b8989, 0x00f42c92, 0x01b300b4, 0x0334c3ae, 0x021cca23, 0x000252ca}}, Y: Field{[10]uint32{0x02481df1, 0x014c0be7, 0x00640607, 0x020e6694, 0x02e6e746, 0x020ce2e7, 0x01608015, 0x02f7296e, 0x0156b709, 0x0011f17b}}}, + {X: Field{[10]uint32{0x027d5108, 0x01a21dab, 0x0195a668, 0x00af4d16, 0x009f157d, 0x030a3ed9, 0x021c3850, 0x03d53b92, 0x0379df2b, 0x003cabb8}}, Y: Field{[10]uint32{0x01c8ef08, 0x00b7558d, 0x0231113f, 0x023ef55a, 0x0319a7bf, 0x019dbbbe, 0x0079d351, 0x0287e724, 0x03ae9c90, 0x002b9d9a}}}, + {X: Field{[10]uint32{0x029833ad, 0x01aee16e, 0x02222830, 0x028115b3, 0x01e81e4d, 0x018071aa, 0x029cd043, 0x0312cabe, 0x004f3dbd, 0x003f23f9}}, Y: Field{[10]uint32{0x0156fe15, 0x001d4e1b, 0x01094ce3, 0x017b3a31, 0x012b0765, 0x029420ae, 0x0330a52e, 0x014b5d90, 0x0378a98f, 0x001a8c86}}}, + {X: Field{[10]uint32{0x00255c14, 0x02d19393, 0x02b7c5b8, 0x012d60c3, 0x017444d0, 0x00b77043, 0x01aa3ebe, 0x03cf2fef, 0x017919a4, 0x0034e337}}, Y: Field{[10]uint32{0x008c15fa, 0x0195544b, 0x02e6f1a5, 0x0254776a, 0x03e19040, 0x0336baf9, 0x02311fe0, 0x00bf6e52, 0x02f1823a, 0x001a83c7}}}, + {X: Field{[10]uint32{0x01a4b41f, 0x011d4e02, 0x03f4c142, 0x00675ddc, 0x03916ea1, 0x009ad7a7, 0x0071943a, 0x021a4343, 0x02f6013d, 0x002b00b9}}, Y: Field{[10]uint32{0x005ea2b1, 0x00c6e9b0, 0x008f3995, 0x00650ddc, 0x03726598, 0x023f4bd9, 0x019c5e76, 0x013aaefb, 0x019e436b, 0x003ab712}}}, + {X: Field{[10]uint32{0x006419c8, 0x026dc074, 0x01177d7d, 0x01d47fd9, 0x02dc6d1a, 0x001dbe73, 0x03b5cd07, 0x03518ab1, 0x031ac36b, 0x0000e522}}, Y: Field{[10]uint32{0x011765ba, 0x02ee5746, 0x00bd2732, 0x0239de59, 0x0372d5d1, 0x0333ad87, 0x0141ea71, 0x000f1eac, 0x00eba01c, 0x0032a47f}}}, + {X: Field{[10]uint32{0x02706e9a, 0x00c65c5f, 0x0355435e, 0x034176f2, 0x02ea9e73, 0x03ff6210, 0x014c0c2c, 0x000369b7, 0x008d21d6, 0x00131f6f}}, Y: Field{[10]uint32{0x038230fe, 0x0305fd49, 0x0042d35d, 0x02f6336d, 0x016db46e, 0x01fdfa16, 0x002f4129, 0x01eaf4a7, 0x0344b87b, 0x0021a9df}}}, + {X: Field{[10]uint32{0x0244f623, 0x03847920, 0x01e0698e, 0x00c7677d, 0x01b7dec7, 0x001d0ec3, 0x038c2f7a, 0x0178b427, 0x01aab382, 0x001d48a3}}, Y: Field{[10]uint32{0x000a1676, 0x0086a21e, 0x01aa4510, 0x01949829, 0x0075e336, 0x034a0ba9, 0x0237bdfe, 0x03c41f6e, 0x0187e122, 0x00258f0a}}}, + {X: Field{[10]uint32{0x0280a579, 0x034b0ac3, 0x00147632, 0x00fc40b0, 0x02b584a7, 0x006de91e, 0x02ea92c7, 0x00587e3d, 0x02b32ed2, 0x002a8ea1}}, Y: Field{[10]uint32{0x024e6cb7, 0x01806b6b, 0x002abbc4, 0x03fddc8b, 0x03f7e517, 0x00409135, 0x01345d32, 0x03193c37, 0x009d2b4e, 0x002e3f89}}}, + {X: Field{[10]uint32{0x013f22f7, 0x034c5906, 0x0368abcf, 0x01f4f4f0, 0x014c0322, 0x035bcebe, 0x00b992f7, 0x000e7696, 0x012d9828, 0x001c0ae4}}, Y: Field{[10]uint32{0x02bac387, 0x039710b1, 0x0136f71d, 0x02e8e5ab, 0x02b576cc, 0x01c5331f, 0x00a4e14c, 0x0335e04c, 0x00493a32, 0x0009624b}}}, + {X: Field{[10]uint32{0x0090ba75, 0x034ed727, 0x03567829, 0x00ee3dbc, 0x01269f70, 0x00315c04, 0x0221dfc1, 0x02fe98a8, 0x00886d44, 0x00132843}}, Y: Field{[10]uint32{0x03fde3e7, 0x00fb3ed3, 0x034b9dac, 0x0089fc0d, 0x0395b04a, 0x00b5df6c, 0x01e6f277, 0x038d6353, 0x02b29282, 0x000cc8fa}}}, + {X: Field{[10]uint32{0x02b9c325, 0x0159ce24, 0x02d342da, 0x00d4ba51, 0x00f3601c, 0x0305d3bf, 0x00aa4362, 0x01a5c80b, 0x023630da, 0x0005867a}}, Y: Field{[10]uint32{0x030e881e, 0x029cbe43, 0x02de4b98, 0x025e471f, 0x03a1c126, 0x01237b5e, 0x0188dd61, 0x019e7a9b, 0x000e13b8, 0x0008ab45}}}, + {X: Field{[10]uint32{0x034d3032, 0x02f4e634, 0x034c6365, 0x02ead941, 0x0064d589, 0x00c0be2b, 0x01409a8a, 0x02fed273, 0x003818de, 0x000877f7}}, Y: Field{[10]uint32{0x004099a9, 0x02c5f39e, 0x01c4579e, 0x00f885c9, 0x02106d19, 0x02d809b9, 0x006ddcdb, 0x0148129e, 0x02c20e83, 0x002eef9f}}}, + {X: Field{[10]uint32{0x01069fe1, 0x036f5021, 0x01bd1c0d, 0x00b82eec, 0x03036a47, 0x00b3383b, 0x02e99aa1, 0x006acb2e, 0x01dd802f, 0x00183ef9}}, Y: Field{[10]uint32{0x03349dc3, 0x02f94929, 0x013167f9, 0x02cade2c, 0x0399feb1, 0x015023c2, 0x03d07a68, 0x00135a0b, 0x03592dd3, 0x0003aa0e}}}, + {X: Field{[10]uint32{0x02147f96, 0x019db307, 0x0066ae29, 0x01e53712, 0x03dd7c24, 0x01650174, 0x008ee975, 0x0316eea1, 0x0065fdcd, 0x0032012d}}, Y: Field{[10]uint32{0x03adc5a2, 0x03bbbc96, 0x035223a7, 0x028b3e6e, 0x03fb10cc, 0x02e0a393, 0x02bf43a9, 0x00adc3af, 0x02b71fd8, 0x002a928b}}}, + {X: Field{[10]uint32{0x010336d9, 0x03674f75, 0x03b7bd96, 0x02ecc64b, 0x005c74cf, 0x030cbdb0, 0x011b3383, 0x00ed5771, 0x03e55137, 0x001de9b8}}, Y: Field{[10]uint32{0x006f047f, 0x0162dac3, 0x032b67d3, 0x01b8e15b, 0x035de35d, 0x03ff355c, 0x02075c10, 0x02b1c523, 0x026e86ef, 0x0008748c}}}, + {X: Field{[10]uint32{0x015f7a5a, 0x00758b43, 0x018c9473, 0x033d938f, 0x01a89d82, 0x01a93b19, 0x02706ff2, 0x03bb4999, 0x01874a72, 0x0021b770}}, Y: Field{[10]uint32{0x030cc29c, 0x03396ad3, 0x0295c443, 0x01781337, 0x0340507b, 0x028f9b72, 0x0217816b, 0x02848ea4, 0x0040ce45, 0x00147df3}}}, + {X: Field{[10]uint32{0x03d3beca, 0x025bcff1, 0x028ce4a5, 0x03be13a8, 0x038c80d5, 0x005578c9, 0x0108675a, 0x03ab11b0, 0x00f8db8e, 0x0033d274}}, Y: Field{[10]uint32{0x020086fc, 0x02e5b7d0, 0x02d41235, 0x02970c51, 0x007cdd64, 0x0186475a, 0x002dcd6a, 0x01d70fb6, 0x0341ebae, 0x001bff71}}}, + {X: Field{[10]uint32{0x035875f4, 0x0232d52d, 0x00381051, 0x01457f86, 0x00c9f5c8, 0x03849b3b, 0x020e8721, 0x019c88b5, 0x038957eb, 0x00075d7b}}, Y: Field{[10]uint32{0x038dbdb4, 0x027719ad, 0x033e37b9, 0x0095dd96, 0x01c20766, 0x03e8750a, 0x024ae2f5, 0x0158776f, 0x03dd9288, 0x0020b177}}}, + {X: Field{[10]uint32{0x03ad0689, 0x00b2a279, 0x036dca29, 0x038f1b76, 0x005bb5b7, 0x02540cd2, 0x00d94666, 0x01848a76, 0x0335f62e, 0x002fa92d}}, Y: Field{[10]uint32{0x03a08901, 0x0082b4c1, 0x0011cd8e, 0x00dbd4a8, 0x027cda58, 0x02df007c, 0x019a4517, 0x0278439f, 0x038a08ea, 0x002438c9}}}, + {X: Field{[10]uint32{0x0169f2bb, 0x00e5aa58, 0x037281af, 0x03c2ceb2, 0x02577f5c, 0x01756627, 0x010aaa27, 0x0145c063, 0x02dea90e, 0x003a16c2}}, Y: Field{[10]uint32{0x0250aaa8, 0x01fd6679, 0x03358066, 0x01a75020, 0x0230ef12, 0x015edfd6, 0x016fec57, 0x01d718e4, 0x00cd3ca1, 0x00350a5c}}}, + {X: Field{[10]uint32{0x03928934, 0x0390b628, 0x00f5e3ff, 0x0213008a, 0x0082ca55, 0x033df30b, 0x01ed550f, 0x00149b90, 0x02dd2405, 0x00365d64}}, Y: Field{[10]uint32{0x022d102e, 0x013713bf, 0x0126a217, 0x01149bcb, 0x024de0db, 0x0008dbd3, 0x01a3852a, 0x0070edd6, 0x01696bf0, 0x003ab1b0}}}, + {X: Field{[10]uint32{0x026e00e7, 0x00d7b859, 0x013ebedd, 0x01d56bad, 0x00fd7725, 0x023195de, 0x00e60a9a, 0x008388de, 0x02a450b6, 0x0003808f}}, Y: Field{[10]uint32{0x0094797e, 0x0198d4da, 0x01e306a9, 0x01338df8, 0x026bdd54, 0x02457d41, 0x020f0e78, 0x033e26c1, 0x00506dbd, 0x001393b6}}}, + {X: Field{[10]uint32{0x01935e5a, 0x0013b083, 0x01c9cc83, 0x00b70c0b, 0x02a7c0ec, 0x01aa15ef, 0x001b9f7e, 0x03f5ba96, 0x00955cd4, 0x001856d7}}, Y: Field{[10]uint32{0x015f4d46, 0x0086c53f, 0x038d36e4, 0x01d3cda9, 0x0146fc80, 0x0175d536, 0x01845bff, 0x00c96ef3, 0x03662602, 0x00308871}}}, + {X: Field{[10]uint32{0x02ec13a7, 0x031cd625, 0x0185bc2c, 0x02168012, 0x03fa2a0d, 0x004e46f6, 0x00e34d60, 0x008086e7, 0x003402e1, 0x002c77e9}}, Y: Field{[10]uint32{0x0348438e, 0x00fbd665, 0x03eadd10, 0x03316264, 0x0013c2a5, 0x01be062d, 0x03b7e9b0, 0x03e0a076, 0x015a8162, 0x003e8f44}}}, + {X: Field{[10]uint32{0x03eada7c, 0x028f272e, 0x0097436b, 0x02acc966, 0x0068c7e1, 0x0393b372, 0x0275b835, 0x011ff6b1, 0x001fafbe, 0x002d92d8}}, Y: Field{[10]uint32{0x01dbe68d, 0x0148dd3a, 0x007d85ea, 0x00355cd2, 0x02652ae9, 0x018b6f26, 0x03606624, 0x015d1bfa, 0x0039d231, 0x002bde30}}}, + {X: Field{[10]uint32{0x03b579cf, 0x03cc991a, 0x013364a0, 0x008d49c5, 0x01b0981f, 0x02535d59, 0x01027d4e, 0x036721b1, 0x0346fda1, 0x00150a74}}, Y: Field{[10]uint32{0x015b1880, 0x025a8ca6, 0x00f37ac6, 0x01654519, 0x02162d66, 0x035d18db, 0x00754dd2, 0x0364b8e4, 0x0197dfec, 0x0016e338}}}, + {X: Field{[10]uint32{0x026f005b, 0x0152c58a, 0x03f94ff9, 0x01a7cde1, 0x0020e216, 0x00105d27, 0x000bb781, 0x019c62c1, 0x00f2056d, 0x002241a5}}, Y: Field{[10]uint32{0x01753341, 0x0070504b, 0x00df35df, 0x02dcc6e5, 0x007bf505, 0x01abf43e, 0x010d7b22, 0x02eff2ee, 0x034a890d, 0x003659a4}}}, + {X: Field{[10]uint32{0x003cc117, 0x00b0ad9d, 0x0067ccb9, 0x0079128a, 0x00269b5d, 0x03f81832, 0x02987a05, 0x009adfe9, 0x0292cd05, 0x000eb9d4}}, Y: Field{[10]uint32{0x02416a94, 0x028b757c, 0x02871d22, 0x03a61ee0, 0x00f004ee, 0x00cc95af, 0x03d5416a, 0x02a0b63d, 0x00c15a74, 0x00042567}}}, + {X: Field{[10]uint32{0x019b0707, 0x01771fca, 0x03ce93bb, 0x037a292a, 0x01347bba, 0x006e7e87, 0x0353fd5f, 0x01f55568, 0x029bff71, 0x00275d16}}, Y: Field{[10]uint32{0x02de8134, 0x030a399f, 0x0369b0ba, 0x03feb783, 0x0210461c, 0x039cd379, 0x004f615a, 0x031831cc, 0x00aed513, 0x0033bcce}}}, + {X: Field{[10]uint32{0x0144f166, 0x02e54674, 0x009f0aaa, 0x02599214, 0x00abf1b8, 0x0248b018, 0x01ce7f4f, 0x0324e441, 0x002c8130, 0x001a67a7}}, Y: Field{[10]uint32{0x003a19cd, 0x028e7b5f, 0x004a438d, 0x00a65f49, 0x01bfb7da, 0x00e0275a, 0x01145838, 0x03e51257, 0x010e1fb9, 0x00220ad2}}}, + {X: Field{[10]uint32{0x01591f87, 0x012869e1, 0x03550388, 0x02953d0c, 0x00ae79b4, 0x032ff8a6, 0x01ea704b, 0x001426a4, 0x00c1dc52, 0x0038e807}}, Y: Field{[10]uint32{0x02dcc64e, 0x005ff507, 0x00b96066, 0x0244dd24, 0x012480a8, 0x0376bd25, 0x0287e546, 0x02755ff2, 0x01f368d1, 0x003cf190}}}, + {X: Field{[10]uint32{0x02c433d1, 0x03b8e35a, 0x035f1ee5, 0x039bf63f, 0x00cc7cce, 0x01126145, 0x01d23623, 0x00dd751b, 0x01c3d9df, 0x00174543}}, Y: Field{[10]uint32{0x02ab0316, 0x00c5bad4, 0x00061a32, 0x03fafeb7, 0x02399a83, 0x02100424, 0x000263f1, 0x03a839f6, 0x0250d2e2, 0x000b0244}}}, + {X: Field{[10]uint32{0x00996a66, 0x003170b8, 0x02b16c10, 0x0201629b, 0x00ec4778, 0x038047e0, 0x00aea5b5, 0x02e8fd91, 0x0361bb12, 0x00127ee5}}, Y: Field{[10]uint32{0x0255e23c, 0x033f41b5, 0x00370089, 0x006e4a5e, 0x00d9086b, 0x00595317, 0x0099caf2, 0x02245161, 0x020fb720, 0x001c4d08}}}, + {X: Field{[10]uint32{0x0244738e, 0x0032514a, 0x03b13d53, 0x01687d3d, 0x00bdea05, 0x02b73770, 0x03990211, 0x00b7ef79, 0x02b3a451, 0x000d3157}}, Y: Field{[10]uint32{0x0398fd16, 0x02693153, 0x021f2ba3, 0x0254c8cc, 0x010fdbb6, 0x00325e79, 0x0110e26d, 0x01007e6a, 0x0288beff, 0x00096331}}}, + {X: Field{[10]uint32{0x00a3a98c, 0x0023508c, 0x0202ab25, 0x03c8c371, 0x039b1c39, 0x02bc3272, 0x037b82c2, 0x03f8013f, 0x00f07c3e, 0x001c1a3f}}, Y: Field{[10]uint32{0x037ef1fc, 0x02c65eb8, 0x01d77aaa, 0x01e5f8b8, 0x012fe506, 0x000ad77d, 0x03657bf2, 0x01e314b9, 0x00d88445, 0x003921cc}}}, + {X: Field{[10]uint32{0x03355a1e, 0x02e1d3da, 0x01909f73, 0x01528ac0, 0x02f49e52, 0x03a38d1b, 0x03a1f95a, 0x02aa844a, 0x0110a987, 0x00038762}}, Y: Field{[10]uint32{0x03e3cdb8, 0x02ae41c3, 0x00235d7b, 0x008282e4, 0x01d4a56a, 0x03f57167, 0x01c2c149, 0x011f6266, 0x011bcc49, 0x0022b40c}}}, + {X: Field{[10]uint32{0x02d2caf2, 0x02b0f2dc, 0x03d57c10, 0x0363b536, 0x006bdf06, 0x01837d17, 0x02c6b2dc, 0x018c6c05, 0x03880ba8, 0x00249426}}, Y: Field{[10]uint32{0x006a3ccf, 0x022bd61d, 0x038c3397, 0x00ccd776, 0x01ee6f0f, 0x0257c504, 0x0395651b, 0x018a66a7, 0x0231633b, 0x000fa91e}}}, + {X: Field{[10]uint32{0x0266a519, 0x00d5ab06, 0x0351206a, 0x0078d371, 0x01644647, 0x02df4a69, 0x02ec994d, 0x0017a65a, 0x002ae8d5, 0x00243f50}}, Y: Field{[10]uint32{0x02da3b6b, 0x0162e96e, 0x02a62e19, 0x01611aaa, 0x039a6dc6, 0x0313c399, 0x0231816e, 0x00db82b6, 0x03f7bcdc, 0x0001a303}}}, + {X: Field{[10]uint32{0x01400704, 0x024367ea, 0x005f5eb3, 0x01fc319b, 0x0004cbc7, 0x0104ac4a, 0x035b0ddd, 0x032a3878, 0x02cb7d9b, 0x0002ce03}}, Y: Field{[10]uint32{0x006a01a4, 0x03d14321, 0x038a7d78, 0x036f87d7, 0x0118fa71, 0x00a75573, 0x01f69a72, 0x02de0c27, 0x009277d9, 0x003f4a88}}}, + {X: Field{[10]uint32{0x02b83f0c, 0x03bdec0c, 0x027520d3, 0x03bf33ca, 0x03f3d029, 0x01852495, 0x0066140b, 0x02db3dbe, 0x0041aecb, 0x001038b8}}, Y: Field{[10]uint32{0x002291f0, 0x01d131af, 0x01326704, 0x01063949, 0x01e1eda6, 0x005fc8ca, 0x02266794, 0x02223d53, 0x00a53c83, 0x000489c4}}}, + {X: Field{[10]uint32{0x02a03583, 0x03082a2a, 0x009c8c99, 0x02e7dded, 0x037d254e, 0x02bab33a, 0x013a38e9, 0x00c324e2, 0x03c43f4e, 0x00239827}}, Y: Field{[10]uint32{0x02c1a3e8, 0x028f70de, 0x0296d066, 0x01ec3835, 0x00837fb5, 0x0075c0de, 0x0259a86b, 0x005411fc, 0x006e9a82, 0x00251f13}}}, + {X: Field{[10]uint32{0x0035f5ce, 0x03020d7d, 0x020bb2ec, 0x00914bf3, 0x038d9c93, 0x02be26a3, 0x0098d001, 0x027f441a, 0x01b22bfe, 0x002e1c71}}, Y: Field{[10]uint32{0x031d3078, 0x015bc9a3, 0x00b64cd6, 0x03b80018, 0x03507fe8, 0x03c0e000, 0x007226b6, 0x003ba67e, 0x01a3ecbd, 0x0038c0b9}}}, + {X: Field{[10]uint32{0x00841682, 0x001f3554, 0x03f832ac, 0x015f33a1, 0x01c6f80f, 0x01bffd35, 0x01241709, 0x02246aed, 0x027e039e, 0x00149b6a}}, Y: Field{[10]uint32{0x03d210df, 0x0169552c, 0x01f43c5f, 0x02733171, 0x00c477bc, 0x02b503da, 0x00fd3975, 0x004c39d6, 0x00994fb7, 0x001a7c11}}}, + {X: Field{[10]uint32{0x021ad25a, 0x004be521, 0x01ba2edc, 0x01462b76, 0x015c031f, 0x03ed9be8, 0x027cc073, 0x00c15f39, 0x004a514e, 0x00305709}}, Y: Field{[10]uint32{0x02846c50, 0x00e5661c, 0x01b901ba, 0x037d72c1, 0x0016449d, 0x02f26a3f, 0x0234780b, 0x03225e37, 0x01acecc3, 0x0036c408}}}, + {X: Field{[10]uint32{0x02c1d388, 0x00d05cfa, 0x033443e2, 0x01db36df, 0x01d34948, 0x00374f71, 0x03638735, 0x000e36ce, 0x0319466a, 0x000df882}}, Y: Field{[10]uint32{0x003b89f0, 0x023bd8ff, 0x00f252d6, 0x01e7da7b, 0x025ea5bb, 0x036d5eae, 0x02bcfa27, 0x01078bb2, 0x02245465, 0x00002e02}}}, + {X: Field{[10]uint32{0x024ea528, 0x02393ed5, 0x01eabc59, 0x03241ffd, 0x016a0da5, 0x015e5629, 0x011cd81f, 0x00050acc, 0x0328feae, 0x001b4247}}, Y: Field{[10]uint32{0x01d07906, 0x00a418ff, 0x0274c27c, 0x01f16a2e, 0x026e9d9f, 0x03217748, 0x01897196, 0x029b04e0, 0x03f04d7e, 0x00122f25}}}, + {X: Field{[10]uint32{0x0354fd71, 0x018d782e, 0x008d35ca, 0x0334fb75, 0x02d3e545, 0x020676ff, 0x001664fb, 0x03ed5bb4, 0x0016a76e, 0x000ef6f5}}, Y: Field{[10]uint32{0x00eb0639, 0x03cdbd4b, 0x00d26a6b, 0x024e0ae6, 0x039a63a8, 0x007eeb63, 0x03016219, 0x0094ffbc, 0x01723ed7, 0x0029a553}}}, + {X: Field{[10]uint32{0x029d61ce, 0x022cb91f, 0x01237401, 0x0103661c, 0x00c41095, 0x02f0cfbc, 0x005d41a4, 0x02d57e30, 0x02a9f111, 0x0033538d}}, Y: Field{[10]uint32{0x014e3e57, 0x03188551, 0x02ddadf0, 0x02f09939, 0x03abded9, 0x014b7e01, 0x02f95ec4, 0x00b9a41b, 0x02165263, 0x0011e37e}}}, + {X: Field{[10]uint32{0x01f24efd, 0x02a7c44b, 0x031c6272, 0x01c4b9df, 0x02248457, 0x01c2b19f, 0x03214131, 0x027038ef, 0x004a09c5, 0x0003c8f3}}, Y: Field{[10]uint32{0x037fa4b2, 0x0179f715, 0x013da9ed, 0x0339d28f, 0x02dc71cd, 0x00bde919, 0x0358fc07, 0x03bff573, 0x007299b6, 0x003a4cef}}}, + {X: Field{[10]uint32{0x013c33e0, 0x01a56b7b, 0x0098931a, 0x01250d75, 0x0300d7a3, 0x02db6d88, 0x0046840c, 0x03acd6da, 0x01858c97, 0x00366319}}, Y: Field{[10]uint32{0x03114990, 0x02e18b78, 0x02eb2a85, 0x0068593c, 0x01ba1378, 0x00189ce5, 0x02c953c7, 0x020977ad, 0x0224ffe8, 0x00110ffa}}}, + {X: Field{[10]uint32{0x00744225, 0x01b99adb, 0x0085fa94, 0x03728924, 0x0165325d, 0x031d2a6f, 0x012b9d16, 0x036b86db, 0x02a6c055, 0x00089a76}}, Y: Field{[10]uint32{0x01bfb3dd, 0x00b726fd, 0x03dee235, 0x03ceed1f, 0x0130e14f, 0x010bbf73, 0x00f0fe6a, 0x00115ac2, 0x01f9a61f, 0x00056740}}}, + {X: Field{[10]uint32{0x027c48d5, 0x010300c5, 0x03ba4877, 0x02d08eb9, 0x01eb4d75, 0x011ac06b, 0x023880a5, 0x021e4a37, 0x00fd8eea, 0x000cd411}}, Y: Field{[10]uint32{0x02da1cc1, 0x01e8c273, 0x00226818, 0x027398f6, 0x000cfe1d, 0x015ecefa, 0x030f2bb7, 0x01aef18e, 0x03f52626, 0x001a7940}}}, + {X: Field{[10]uint32{0x03f6c512, 0x0317e68f, 0x03a5046b, 0x026d8dea, 0x01a601da, 0x01ef2b9d, 0x00ee87b0, 0x02a0f953, 0x023d86f9, 0x003b9e89}}, Y: Field{[10]uint32{0x01373d56, 0x020a4250, 0x00f6042d, 0x020c587e, 0x01222714, 0x01039d8d, 0x008ac1c8, 0x01a3a48e, 0x01922032, 0x0027f74c}}}, + {X: Field{[10]uint32{0x03f44245, 0x03975694, 0x02d976c5, 0x0111d9a8, 0x00bf95f3, 0x03d12a22, 0x03b6111e, 0x018c6db1, 0x03b336f1, 0x0014a6cc}}, Y: Field{[10]uint32{0x02061099, 0x002a15fa, 0x030004cf, 0x03ba7335, 0x036f29f9, 0x00a00927, 0x02bc1a03, 0x01bd28be, 0x010693da, 0x0004a158}}}, + {X: Field{[10]uint32{0x03df1849, 0x00f3596a, 0x0243dd3e, 0x014e3af4, 0x006a2513, 0x035956a2, 0x01337182, 0x03a7d46a, 0x006da6ce, 0x003caccd}}, Y: Field{[10]uint32{0x03b77da3, 0x00ec3ddd, 0x032e1f48, 0x032cc937, 0x0355aaef, 0x03d89e34, 0x00665262, 0x000ffa7a, 0x0228be77, 0x0035077d}}}, + {X: Field{[10]uint32{0x0182befa, 0x0166dc11, 0x0037b3f5, 0x00a88bce, 0x011db7a1, 0x0358e31f, 0x0103d045, 0x026319c3, 0x01bcf03d, 0x0014d7a7}}, Y: Field{[10]uint32{0x02358392, 0x0307d967, 0x024e740b, 0x01853d93, 0x0262ea47, 0x01fe0e12, 0x00fa98d6, 0x025f16f5, 0x0228bad8, 0x000b08cc}}}, + {X: Field{[10]uint32{0x0299a7f1, 0x00ed282c, 0x03970825, 0x01e2140c, 0x00b019bf, 0x03fcd189, 0x023172dd, 0x01ab197b, 0x008b70da, 0x00304c5a}}, Y: Field{[10]uint32{0x00e5f3cc, 0x01e14677, 0x00d207dd, 0x03fc22e1, 0x000d6e1a, 0x027e65be, 0x0211d82e, 0x012365a6, 0x03b6e0e7, 0x003fbc61}}}, + {X: Field{[10]uint32{0x014d3ba9, 0x01c6c85d, 0x02a645dc, 0x003261c9, 0x02a984d0, 0x029afe0c, 0x00eddf3d, 0x01e61443, 0x00d3f7ab, 0x001d7721}}, Y: Field{[10]uint32{0x03841c50, 0x02c8cab8, 0x02183af5, 0x03ac770a, 0x0384f62d, 0x00bbaa94, 0x005e4d28, 0x001244b3, 0x01f35e11, 0x003d767b}}}, + {X: Field{[10]uint32{0x032a36c5, 0x011fb53c, 0x00648788, 0x035dbe63, 0x0282c6da, 0x01717f54, 0x03273102, 0x030e3ab9, 0x03bc9136, 0x00164771}}, Y: Field{[10]uint32{0x03a421a0, 0x025c9a35, 0x00233953, 0x02dc8751, 0x008d4875, 0x032db17a, 0x003aabb4, 0x034e0b80, 0x00c4f81c, 0x003f33e9}}}, + {X: Field{[10]uint32{0x02712596, 0x01d4f384, 0x00f0fb14, 0x02d93162, 0x02d2c78d, 0x021eb3de, 0x0148fadb, 0x024aeb9d, 0x00892a83, 0x0020e967}}, Y: Field{[10]uint32{0x03c5873b, 0x0140c339, 0x0119be3e, 0x038c573e, 0x0046f090, 0x0208bfcf, 0x027c5988, 0x00819435, 0x001a33b1, 0x001f402b}}}, + {X: Field{[10]uint32{0x026f6f83, 0x024f8b2e, 0x03fc76ca, 0x01a3b116, 0x036608f9, 0x018e47bf, 0x001b8c37, 0x02cbd2a7, 0x03a58c52, 0x003a6c37}}, Y: Field{[10]uint32{0x020a7c8d, 0x02d77bcb, 0x01be2e5c, 0x00e69e02, 0x035c1f08, 0x03acfcfe, 0x0089124f, 0x0378349d, 0x028d5846, 0x0019126c}}}, + {X: Field{[10]uint32{0x032bc03b, 0x0269942d, 0x02f81b1b, 0x01435569, 0x00c76adf, 0x00e8f497, 0x011c002d, 0x02430f45, 0x02f967b0, 0x00005b34}}, Y: Field{[10]uint32{0x02d63a7b, 0x03f931a2, 0x0206f50f, 0x013e123b, 0x03a23db7, 0x035e1162, 0x00cc091b, 0x01c240e7, 0x001e2fe7, 0x00316498}}}, + {X: Field{[10]uint32{0x02ff1cbe, 0x0128e28e, 0x026b6f58, 0x02e9ec61, 0x01d80b8d, 0x0135b97d, 0x023d9e24, 0x038d8da7, 0x03fd1bcd, 0x003cd1f4}}, Y: Field{[10]uint32{0x0287977a, 0x0313491f, 0x03a9766d, 0x02045613, 0x00c7349f, 0x0190497a, 0x01cfc6d0, 0x02284e63, 0x02b90ae3, 0x000710d6}}}, + {X: Field{[10]uint32{0x02428b1b, 0x00dd33f6, 0x0126d534, 0x034ad3a6, 0x01f349ed, 0x01248551, 0x0049f113, 0x02153243, 0x0187d644, 0x0016c643}}, Y: Field{[10]uint32{0x025401f3, 0x0325efbe, 0x03ea856b, 0x01dac9c4, 0x039c1d31, 0x0174b055, 0x013ab256, 0x035aed72, 0x00c363ef, 0x002293ab}}}, + {X: Field{[10]uint32{0x0030834f, 0x03d9f587, 0x003ab105, 0x03cdddcb, 0x01c49e78, 0x02f32b2b, 0x01e96650, 0x0133a3c8, 0x00b2d731, 0x0029de1b}}, Y: Field{[10]uint32{0x01441953, 0x025af52a, 0x0237146e, 0x006e817d, 0x006c4ea7, 0x02dc2ff0, 0x031f911c, 0x00b8fcbe, 0x00d41898, 0x0013f1eb}}}, + {X: Field{[10]uint32{0x03bf33cb, 0x02807ecb, 0x01dcf545, 0x009bc1cf, 0x02abf74d, 0x003bcd85, 0x01faeddc, 0x00686231, 0x0353e907, 0x0034d953}}, Y: Field{[10]uint32{0x032f4383, 0x03c40ed0, 0x00de1880, 0x03649b0f, 0x0377c7a3, 0x0129c5bc, 0x038502fc, 0x000e5165, 0x00c7213c, 0x00295bc8}}}, + {X: Field{[10]uint32{0x0022399c, 0x00e6a4de, 0x00994020, 0x01d83ba2, 0x0127d031, 0x02db6d33, 0x01d8ac3b, 0x032f681a, 0x0287400a, 0x003844e2}}, Y: Field{[10]uint32{0x03a162c1, 0x0259f544, 0x0012c9ce, 0x02543d78, 0x001803cd, 0x01a14f90, 0x0240de6b, 0x01b51971, 0x03bfdd3f, 0x003ca6a3}}}, + {X: Field{[10]uint32{0x02317708, 0x02b26561, 0x007e7374, 0x0039daee, 0x02571473, 0x03272a54, 0x03c49c69, 0x03d3942c, 0x023c91c0, 0x0034a7ad}}, Y: Field{[10]uint32{0x02a5f1a1, 0x02bfd87f, 0x03dd9d73, 0x027c72cf, 0x02d9d38c, 0x0215b79a, 0x022ab4ac, 0x02029674, 0x03024e91, 0x0012b64d}}}, + {X: Field{[10]uint32{0x02ee49f8, 0x022d2089, 0x03147ca4, 0x00c34637, 0x03d2124b, 0x022e3b2c, 0x0177da1d, 0x01ff5c19, 0x03baa671, 0x002a7500}}, Y: Field{[10]uint32{0x02d5323b, 0x005dadc9, 0x0133ff45, 0x027b6dd0, 0x0056f1e4, 0x02564451, 0x0137bcad, 0x0387b942, 0x027a8c5e, 0x0007bb7f}}}, + {X: Field{[10]uint32{0x02f57528, 0x01daf427, 0x01e39ca0, 0x018e6390, 0x018d8f37, 0x004b6272, 0x02c6bfd1, 0x00156bba, 0x00e8dbb6, 0x003fded6}}, Y: Field{[10]uint32{0x00381121, 0x034942bf, 0x02ee6cf5, 0x03d6f506, 0x018e39f1, 0x00db01a1, 0x02cb57c8, 0x01479c35, 0x01d1ad7a, 0x0013938e}}}, + {X: Field{[10]uint32{0x01362979, 0x02ebf46f, 0x016131e7, 0x007559bd, 0x021672ea, 0x038bc51b, 0x036db234, 0x027d8786, 0x029df783, 0x0010f142}}, Y: Field{[10]uint32{0x03f449ae, 0x029d3aa0, 0x03bd61ad, 0x0217d833, 0x001e2158, 0x02781486, 0x03e908f6, 0x006a2ea0, 0x02988154, 0x003c83f6}}}, + {X: Field{[10]uint32{0x034ac30c, 0x00fc89c5, 0x03e53984, 0x0354a74e, 0x035803a9, 0x02f9b410, 0x0262ae16, 0x004a61d5, 0x01b701c9, 0x003d822a}}, Y: Field{[10]uint32{0x027ad5bf, 0x03121a8c, 0x008f2083, 0x019b5ed4, 0x01d788d2, 0x004eed59, 0x02d32434, 0x0375086e, 0x00fae919, 0x0017bcd9}}}, + {X: Field{[10]uint32{0x005a117e, 0x004cc9d1, 0x02d568d0, 0x00881736, 0x033cc117, 0x03099d95, 0x03c48d00, 0x03c10fe6, 0x0029dd1e, 0x003244f8}}, Y: Field{[10]uint32{0x01a83049, 0x02169406, 0x02d8bace, 0x00610f89, 0x0032a38f, 0x00d49a81, 0x01cf07c1, 0x032ecdef, 0x030b9c31, 0x0025d5cf}}}, + {X: Field{[10]uint32{0x02a7d728, 0x03715720, 0x0363cce7, 0x02c4d20b, 0x0361318b, 0x0332a11f, 0x000c58a0, 0x01ef059b, 0x009db17e, 0x002ab831}}, Y: Field{[10]uint32{0x006be0b8, 0x0398ddd7, 0x012516a7, 0x03fe7576, 0x02810396, 0x01633703, 0x0051aae6, 0x00f6b088, 0x03f3f68c, 0x001045c2}}}, + {X: Field{[10]uint32{0x03c846c8, 0x02a8e23a, 0x02c96d35, 0x02d7af16, 0x01e306c8, 0x03792817, 0x039b15e3, 0x02d88966, 0x031f45a0, 0x003ca017}}, Y: Field{[10]uint32{0x038d1267, 0x027421da, 0x01dc9978, 0x00709902, 0x00b36e20, 0x0244be8e, 0x0325cdd0, 0x01c9115d, 0x03396ba3, 0x003d75c9}}}, + {X: Field{[10]uint32{0x00fa4f39, 0x029ea400, 0x030d87b0, 0x00e9e049, 0x00f7d232, 0x01f61968, 0x0230e593, 0x0344b928, 0x00e6e150, 0x001a5a79}}, Y: Field{[10]uint32{0x0214de3a, 0x02dc61d7, 0x02f888da, 0x036eab85, 0x03e030a0, 0x01657727, 0x037ebe08, 0x03b430f9, 0x03d6d323, 0x0031c70c}}}, + {X: Field{[10]uint32{0x01988f3e, 0x03bc0e63, 0x003e3e4c, 0x00e90465, 0x022aa064, 0x021cb7ef, 0x00fbdb8e, 0x0095eaf9, 0x03f07a0e, 0x0002bb0a}}, Y: Field{[10]uint32{0x00c931d0, 0x00755172, 0x01df6ef2, 0x0289c936, 0x00bcc3b6, 0x03fc2a0c, 0x00bc528f, 0x030e0321, 0x0157e686, 0x00363a7d}}}, + {X: Field{[10]uint32{0x0126f710, 0x0090ef52, 0x033226bb, 0x0071e42f, 0x01198f56, 0x02764775, 0x002890b6, 0x030d7294, 0x019a13df, 0x00271bfe}}, Y: Field{[10]uint32{0x03ef849d, 0x020d00fd, 0x0311e9b6, 0x018cd08a, 0x012f7f4e, 0x03fd1a0e, 0x008f5411, 0x03d6b676, 0x020c84a4, 0x000abbe4}}}, + {X: Field{[10]uint32{0x02d7f1c2, 0x0239b825, 0x00aefafb, 0x03b2d776, 0x02ade75a, 0x03bb7994, 0x00246d67, 0x0388e37c, 0x005b37a5, 0x003e90dd}}, Y: Field{[10]uint32{0x018689b1, 0x013a0b6a, 0x01eaddc4, 0x03e167fa, 0x0248aba7, 0x03be4e7b, 0x013c8f3f, 0x019500de, 0x02a42a3c, 0x0037e756}}}, + {X: Field{[10]uint32{0x038d46b9, 0x010f76a9, 0x00741276, 0x01396196, 0x020ce3b7, 0x039ddfe5, 0x03b84d09, 0x009b1fac, 0x02886c4e, 0x001a528c}}, Y: Field{[10]uint32{0x03dfe67a, 0x01aa7862, 0x018b0144, 0x00cb2c4c, 0x02a700d9, 0x0248b316, 0x00909be0, 0x011795ba, 0x006d0076, 0x0029535b}}}, + {X: Field{[10]uint32{0x008f38a0, 0x02b45eb0, 0x02be43d4, 0x0081f31c, 0x01930fe9, 0x00498843, 0x00339a2b, 0x01aca2d3, 0x01975be0, 0x00195265}}, Y: Field{[10]uint32{0x02f7900c, 0x01110fdc, 0x02be1c68, 0x02c22cd6, 0x03d29fe8, 0x02078fd6, 0x02cd92ce, 0x03738cb4, 0x03bb467f, 0x002f7b88}}}, + {X: Field{[10]uint32{0x0399f0bd, 0x00266c01, 0x00137400, 0x02ca6c42, 0x000ea38e, 0x020ebb11, 0x014f0844, 0x005392df, 0x00f675bb, 0x000de472}}, Y: Field{[10]uint32{0x02f7bc76, 0x013a463b, 0x0316d15a, 0x01170c72, 0x018b2a3f, 0x02fb97b9, 0x0396ddbc, 0x017adbce, 0x034ada5e, 0x000b723d}}}, + {X: Field{[10]uint32{0x02f31364, 0x0106a31b, 0x018ed429, 0x01e864e7, 0x0359795c, 0x02b3da90, 0x00469360, 0x0243a7a4, 0x0065eaf8, 0x00357904}}, Y: Field{[10]uint32{0x025bbcad, 0x0055b2fd, 0x03f6d21f, 0x032c341b, 0x00bd2f30, 0x00b930cb, 0x03bb6b8f, 0x03f539ea, 0x00c8a559, 0x000647b1}}}, + {X: Field{[10]uint32{0x00970dec, 0x02b5940b, 0x03ae8b77, 0x03cbaaa8, 0x01e504e6, 0x008162e6, 0x0229acb6, 0x010134a2, 0x0280fa0b, 0x0005b388}}, Y: Field{[10]uint32{0x02efb09b, 0x012e0755, 0x029b8817, 0x0179fe5b, 0x00b6eaec, 0x01d39643, 0x00bc2520, 0x0376e795, 0x03f4486a, 0x000f51a0}}}, + {X: Field{[10]uint32{0x02107d07, 0x00ed4071, 0x030160bf, 0x01fb5f51, 0x03e08f99, 0x005a106d, 0x025b4478, 0x02c7ce43, 0x03306cdf, 0x0029ac2a}}, Y: Field{[10]uint32{0x000abf7a, 0x02692daa, 0x0258d9cb, 0x0392843d, 0x03094e96, 0x01caaf26, 0x02d337fd, 0x009e524b, 0x002fb67e, 0x000a98a1}}}, + {X: Field{[10]uint32{0x02033583, 0x00018a15, 0x02d9021e, 0x022a3fda, 0x0252b9d0, 0x01c27cdd, 0x00b779cd, 0x00c82c87, 0x0138760b, 0x0035f29b}}, Y: Field{[10]uint32{0x009e7bb5, 0x01cbffe1, 0x01b046d6, 0x03ea660b, 0x015e2d1c, 0x00500586, 0x011b6cbb, 0x0166e5ae, 0x0372866d, 0x0035b017}}}, + {X: Field{[10]uint32{0x01609d33, 0x01b2d17d, 0x03ef375f, 0x01758682, 0x03e16240, 0x004871cf, 0x00cb1347, 0x01c1f9ce, 0x01632d3f, 0x001e2ac1}}, Y: Field{[10]uint32{0x0275a6b0, 0x013b17fb, 0x034f2109, 0x012557ed, 0x00350eba, 0x02ea9714, 0x03a4b424, 0x032d3ca5, 0x010c10c7, 0x003f868e}}}, + {X: Field{[10]uint32{0x000d6f04, 0x001cb146, 0x01879bd1, 0x00a0a24d, 0x01218e21, 0x003923f6, 0x01fc5a96, 0x03a00c19, 0x013a5b9f, 0x003014d5}}, Y: Field{[10]uint32{0x02719192, 0x0221a68f, 0x008a4752, 0x03714730, 0x027d0d28, 0x01ef8a00, 0x01c45cf5, 0x02ac1384, 0x0374214d, 0x00380b69}}}, + {X: Field{[10]uint32{0x03f02d03, 0x0357af48, 0x01b4eb65, 0x025604e1, 0x035faf8e, 0x003f07ec, 0x018d4033, 0x02570fbe, 0x0313e2a9, 0x002fe175}}, Y: Field{[10]uint32{0x03e59b18, 0x0101d22c, 0x00bbd6b9, 0x025a20a1, 0x03dcb68e, 0x00777481, 0x0142a6f2, 0x02c386a1, 0x014758d7, 0x00297516}}}, + {X: Field{[10]uint32{0x01bd280a, 0x01343c40, 0x0031d69a, 0x00167954, 0x00138169, 0x02c2bbb0, 0x022ee0de, 0x01e2e03f, 0x02c92be5, 0x003edced}}, Y: Field{[10]uint32{0x0214cd16, 0x0348b165, 0x01cf3e31, 0x0260df8f, 0x00e15bbc, 0x016f7a06, 0x0030bd25, 0x02957f51, 0x00939bf5, 0x001cb39e}}}, + {X: Field{[10]uint32{0x0228aa79, 0x03cdc305, 0x00dfc1e2, 0x00d60cd8, 0x00d99281, 0x03d2db0b, 0x01b04f78, 0x02372480, 0x025aed33, 0x0015925b}}, Y: Field{[10]uint32{0x028c2db1, 0x02291daf, 0x0072586c, 0x015344c0, 0x00092ffa, 0x015b5454, 0x0315d3fa, 0x0329c048, 0x008a824f, 0x002076fd}}}, + {X: Field{[10]uint32{0x03a2130c, 0x01724c6d, 0x036df790, 0x01e56327, 0x02aecc0a, 0x03ca9086, 0x01edcc62, 0x03c26121, 0x03959e81, 0x0035a638}}, Y: Field{[10]uint32{0x01563d27, 0x01e3271e, 0x03ba45ce, 0x02f8743f, 0x0179408b, 0x03a5c28e, 0x0001a8e3, 0x02a8e76b, 0x02bce61e, 0x001640f7}}}, + {X: Field{[10]uint32{0x0166ff80, 0x01d93931, 0x01931780, 0x01ee4e1f, 0x007fad8d, 0x00d012cd, 0x02ade00d, 0x025142cc, 0x02408670, 0x00212ccb}}, Y: Field{[10]uint32{0x031cfdc8, 0x00e9606e, 0x01c244aa, 0x039000c9, 0x009bb5b0, 0x025714d4, 0x03941e31, 0x010a58ad, 0x007856cc, 0x00132034}}}, + {X: Field{[10]uint32{0x00db2ed6, 0x00e29842, 0x00cf05ac, 0x010ca3cc, 0x036528e2, 0x007b4cc9, 0x0073a45f, 0x0226d306, 0x03992a36, 0x001c4a71}}, Y: Field{[10]uint32{0x020810e4, 0x02265699, 0x00a68ce3, 0x00673cff, 0x0044f866, 0x024026aa, 0x01154567, 0x00969753, 0x03e84821, 0x000d8ad3}}}, + {X: Field{[10]uint32{0x0180d824, 0x00e74a34, 0x01b98781, 0x01fbda31, 0x005f8cad, 0x0326470d, 0x02cac088, 0x02dba9ad, 0x0087fa48, 0x0024c593}}, Y: Field{[10]uint32{0x01d9e26b, 0x017a11ed, 0x02a87278, 0x0087234d, 0x03bd1832, 0x0058e5aa, 0x0397771d, 0x03c3e432, 0x015cc91c, 0x0028eb03}}}, + {X: Field{[10]uint32{0x03305a68, 0x03b66c27, 0x02d94808, 0x017a2e26, 0x0194744d, 0x024a7cca, 0x004c7b1f, 0x024df28e, 0x00e237c4, 0x0013e43a}}, Y: Field{[10]uint32{0x012430b8, 0x0123c226, 0x00e70147, 0x0000d0f1, 0x02ce725e, 0x033bb41e, 0x03f417cf, 0x01212c20, 0x02e02b6b, 0x003379dd}}}, + {X: Field{[10]uint32{0x01f716a1, 0x03e46d9d, 0x00ed6a10, 0x0284f016, 0x034442f6, 0x014fb334, 0x0113fae2, 0x01c5ab9a, 0x03bc9f40, 0x00136580}}, Y: Field{[10]uint32{0x0124add6, 0x0153b90e, 0x02493c66, 0x0048a12a, 0x009c52a4, 0x029bed14, 0x0165827a, 0x038d565c, 0x01fc278c, 0x0024ad9e}}}, + {X: Field{[10]uint32{0x02b17203, 0x004f1312, 0x006a5aed, 0x00619fe4, 0x03f90cd7, 0x0058cb84, 0x0094f3bc, 0x01050c4b, 0x011f91c5, 0x0022dbd9}}, Y: Field{[10]uint32{0x010c7066, 0x020d9548, 0x02c130bf, 0x0256eb1a, 0x0109ded9, 0x0049b103, 0x00e2b78c, 0x00955aed, 0x01a4b80f, 0x00223056}}}, + {X: Field{[10]uint32{0x025ec256, 0x03082f6c, 0x02ee98cd, 0x03ad8155, 0x021909e1, 0x02352645, 0x02448f07, 0x020d1fa1, 0x0052cab9, 0x001bd62e}}, Y: Field{[10]uint32{0x00239885, 0x01c08f26, 0x01cd32fa, 0x02cab601, 0x021681da, 0x02833afa, 0x02bd30dd, 0x024c179a, 0x005f233d, 0x0000e930}}}, + {X: Field{[10]uint32{0x000c44bd, 0x02601c44, 0x010086cb, 0x024566a4, 0x028bb6ca, 0x03febe8c, 0x03710da3, 0x010472b2, 0x02a84021, 0x001af9fd}}, Y: Field{[10]uint32{0x0036bee9, 0x00405152, 0x0168bb58, 0x03fcc83a, 0x0186f339, 0x017f0464, 0x01c8d59b, 0x037ed160, 0x02f9d461, 0x002fd929}}}, + {X: Field{[10]uint32{0x02102d39, 0x020f4b2b, 0x0044ab39, 0x003cab06, 0x0299661f, 0x03b3fe6a, 0x00fdbe13, 0x02799bcb, 0x010bb8ea, 0x0002cbf3}}, Y: Field{[10]uint32{0x0182bb86, 0x013a339c, 0x02c74144, 0x02c3a8cf, 0x0027c38c, 0x00e9fa04, 0x032cbbad, 0x023e8c3a, 0x0189bb3b, 0x0002811a}}}, + {X: Field{[10]uint32{0x01a6fd96, 0x03dd129e, 0x02f1291b, 0x01adb667, 0x03391682, 0x00331644, 0x037770b5, 0x026ca7b7, 0x010eab55, 0x002875bb}}, Y: Field{[10]uint32{0x004ab69b, 0x008ded30, 0x03391df2, 0x00c02b1a, 0x002f17df, 0x00612025, 0x03bf93b5, 0x0156b85c, 0x017e0c92, 0x002ee459}}}, + {X: Field{[10]uint32{0x012a9575, 0x02a047a4, 0x0301bd08, 0x039f8725, 0x01440da5, 0x026ad8e7, 0x0366201e, 0x00c35cd4, 0x030ded71, 0x000a3d95}}, Y: Field{[10]uint32{0x02d2884a, 0x039ab73c, 0x0362edec, 0x017a5576, 0x00e2216e, 0x03efd30b, 0x011a7c70, 0x0166c8fa, 0x0360119c, 0x000e4647}}}, + {X: Field{[10]uint32{0x00271fa3, 0x032013e4, 0x038530b9, 0x0089258d, 0x0031cfce, 0x00075edb, 0x00b089d1, 0x00f79086, 0x00eddbb8, 0x00005323}}, Y: Field{[10]uint32{0x029a41fc, 0x03fb393a, 0x0384d7a8, 0x00f5128b, 0x030de129, 0x0131e252, 0x01cba3d2, 0x00b9c44d, 0x02d2a5d0, 0x00012014}}}, + {X: Field{[10]uint32{0x012d489b, 0x00be3eb8, 0x03ca9eda, 0x00ee4886, 0x03a75f56, 0x03211429, 0x0228fa1b, 0x00df4f4a, 0x0305fec7, 0x003abfe7}}, Y: Field{[10]uint32{0x03b8c139, 0x02dc2a48, 0x01c3dd3f, 0x01206844, 0x022ad9f3, 0x0083d18e, 0x03349fa5, 0x021cf5f4, 0x019b05c9, 0x0035b510}}}, + {X: Field{[10]uint32{0x00b35e95, 0x02fb4545, 0x02a43d92, 0x03825a4c, 0x00ce0757, 0x00b9ff0f, 0x03524575, 0x00dc4a16, 0x006eb42a, 0x003a3b93}}, Y: Field{[10]uint32{0x023b748a, 0x00c28ada, 0x01e2d5f2, 0x03f32f17, 0x00ee55ab, 0x0091b2df, 0x007ff4e6, 0x0060c7c4, 0x014c27ef, 0x000361af}}}, + {X: Field{[10]uint32{0x0241e7e4, 0x01db9abb, 0x00386a07, 0x008819de, 0x02d5e909, 0x03222946, 0x03707591, 0x00ec181a, 0x01090821, 0x00263186}}, Y: Field{[10]uint32{0x025d4c8c, 0x0106bbfd, 0x03efbfc2, 0x02a068df, 0x030fd72d, 0x02339314, 0x0290e2d3, 0x02e4110b, 0x022cf98b, 0x003acf4b}}}, + {X: Field{[10]uint32{0x0146dd29, 0x033dfcfe, 0x0217d946, 0x001938a3, 0x01893198, 0x00e2f2d7, 0x03a0dbbc, 0x00a61b15, 0x0381f5d6, 0x00353d9a}}, Y: Field{[10]uint32{0x037a5fc2, 0x02087ede, 0x03b32867, 0x023814c2, 0x002a1229, 0x02052d6e, 0x03c5579d, 0x0068032d, 0x038deedf, 0x003064c3}}}, + {X: Field{[10]uint32{0x0011087f, 0x01e41805, 0x03c4eb98, 0x030ab511, 0x01a13dd4, 0x02619bc3, 0x01543696, 0x02466d57, 0x00e705f8, 0x000535cf}}, Y: Field{[10]uint32{0x03ededf8, 0x0381b1a4, 0x0067d16e, 0x03c98a75, 0x03b71c48, 0x02bd0822, 0x0106df2c, 0x0034f174, 0x0222b9cb, 0x001a6e51}}}, + {X: Field{[10]uint32{0x03da3aec, 0x00d30808, 0x017115bc, 0x010229c4, 0x015646ab, 0x02942a35, 0x00511058, 0x01e831ab, 0x0135059c, 0x0015fbf2}}, Y: Field{[10]uint32{0x01c5dfd1, 0x01cb00ad, 0x00c4b262, 0x03c14ccb, 0x0127f959, 0x00ab954a, 0x03fba0d9, 0x015705d2, 0x029a60b8, 0x003f2a4c}}}, + {X: Field{[10]uint32{0x01b3677f, 0x00dcbf65, 0x0073dcb6, 0x03d4da0e, 0x00171213, 0x016a7cf9, 0x00b94585, 0x02a036a4, 0x0286063d, 0x00247c4e}}, Y: Field{[10]uint32{0x019a90ea, 0x02d3bed0, 0x016d03ca, 0x03384d05, 0x01e0332e, 0x0081558e, 0x029a7ae9, 0x03c4430c, 0x00d86734, 0x001d0178}}}, + {X: Field{[10]uint32{0x01607592, 0x035abfe8, 0x037675f9, 0x005b44cd, 0x02c33227, 0x01037170, 0x03dfd64b, 0x017896a0, 0x010b4614, 0x00373213}}, Y: Field{[10]uint32{0x012d6c66, 0x02a2ea07, 0x00adc8bb, 0x01869c0c, 0x0251b951, 0x03d4c91a, 0x01f15260, 0x03fab023, 0x00f48e4d, 0x00391a93}}}, + {X: Field{[10]uint32{0x0348676c, 0x01405d0c, 0x02db0542, 0x007f7c5a, 0x00df0bfa, 0x02fcf1a8, 0x016011e6, 0x03d0c804, 0x02acd5a6, 0x000a2ac1}}, Y: Field{[10]uint32{0x03b0cb9a, 0x015ad8e5, 0x012d427e, 0x00af8369, 0x03cc31f4, 0x013ff3fb, 0x011d6b7a, 0x01276ba7, 0x021c967f, 0x001449ca}}}, + {X: Field{[10]uint32{0x01d8b240, 0x03c3d148, 0x02d00bef, 0x0248c830, 0x020d9c2a, 0x0245718d, 0x032adb45, 0x037f7f4f, 0x0321f8d1, 0x0001f006}}, Y: Field{[10]uint32{0x002c8b48, 0x03e89715, 0x01aedf76, 0x018b4db4, 0x016e7ffd, 0x02aa5acf, 0x02f78fda, 0x01b607f1, 0x03cc9990, 0x002d2923}}}, + {X: Field{[10]uint32{0x014d98f1, 0x02a66b34, 0x01f5b428, 0x026f832d, 0x03a0d327, 0x02703a3e, 0x03624230, 0x03a57ca8, 0x037830f8, 0x003e53ba}}, Y: Field{[10]uint32{0x03649527, 0x03f8f290, 0x00d2305c, 0x0076544f, 0x03715722, 0x02ed2a4f, 0x01c91be8, 0x01ae7297, 0x03646967, 0x00325b56}}}, + {X: Field{[10]uint32{0x01ec35ca, 0x01bd7e04, 0x0045bd40, 0x01dcc3a4, 0x039a6d64, 0x03d78cb4, 0x01e0dd85, 0x0336902f, 0x00e47788, 0x003a919d}}, Y: Field{[10]uint32{0x035a235a, 0x01188c29, 0x01a0fe1a, 0x0185093a, 0x01fb622a, 0x0062f5da, 0x030032ba, 0x024488c1, 0x03790a9b, 0x0001da6f}}}, + {X: Field{[10]uint32{0x03b40112, 0x00f09407, 0x005d1728, 0x0234dd9d, 0x0019b7b3, 0x020aff8a, 0x03172606, 0x021a1404, 0x00197f8f, 0x0036969d}}, Y: Field{[10]uint32{0x01c37a39, 0x018f8ee5, 0x0290ceb6, 0x0104841c, 0x00b5a19f, 0x0358dcef, 0x025ef5f5, 0x0078604c, 0x02ec0587, 0x002982d7}}}, + {X: Field{[10]uint32{0x02e9d41d, 0x03dcbc89, 0x03b6c22f, 0x03b08ee3, 0x01a75ebc, 0x03b5eddb, 0x00c6820d, 0x003f6806, 0x03a55256, 0x0030405f}}, Y: Field{[10]uint32{0x009fed39, 0x01e0450d, 0x0129b1b0, 0x03699e0a, 0x039b5dc1, 0x03fc1625, 0x03da3b8d, 0x011fe459, 0x019daf26, 0x003a51ec}}}, + {X: Field{[10]uint32{0x01216a7f, 0x03a452ca, 0x00b164b3, 0x016066fc, 0x011b9646, 0x0160269d, 0x0215238b, 0x0111d9e2, 0x00e14e81, 0x0002f9f0}}, Y: Field{[10]uint32{0x03eb392e, 0x0189e803, 0x0204e4f1, 0x002e28d8, 0x01088084, 0x035923a0, 0x03072b15, 0x00669bc2, 0x0297f642, 0x0028c3af}}}, + {X: Field{[10]uint32{0x03007cea, 0x00ec4e65, 0x0014fcb5, 0x03cb3e01, 0x0059e0ff, 0x00bffe0b, 0x01184056, 0x0303f730, 0x02c1a4d6, 0x0019d63b}}, Y: Field{[10]uint32{0x00b316b3, 0x038fabdf, 0x00edcb4f, 0x02eb42e7, 0x00a0149b, 0x01898c7a, 0x02c88988, 0x03614908, 0x006620fc, 0x001194ef}}}, + {X: Field{[10]uint32{0x005b6116, 0x02143710, 0x01dae70d, 0x0379a6b3, 0x03011014, 0x03a1cd6c, 0x000cf059, 0x01366676, 0x01d3f88f, 0x00272ed4}}, Y: Field{[10]uint32{0x01902360, 0x01442ec9, 0x023d60e2, 0x02064642, 0x02047c63, 0x01fbf134, 0x00e0ed51, 0x016d4a00, 0x0348cad7, 0x0037e8b9}}}, + {X: Field{[10]uint32{0x00bf0bc3, 0x03854436, 0x00dea3d6, 0x0354d087, 0x0065328b, 0x02a96b46, 0x0350229e, 0x01e4bc5c, 0x02e7b170, 0x0018e96a}}, Y: Field{[10]uint32{0x02da1010, 0x03ee20d4, 0x00ea195a, 0x035e3396, 0x0212a261, 0x034d8d30, 0x026250ae, 0x017d27df, 0x03d0f25d, 0x0004496b}}}, + {X: Field{[10]uint32{0x02f10657, 0x038b226c, 0x02430b0f, 0x00907698, 0x014e036d, 0x0090f688, 0x02e11fb0, 0x000ca3ae, 0x02493e5f, 0x002b7e58}}, Y: Field{[10]uint32{0x01b1ea1e, 0x00d2d5c2, 0x037f784f, 0x037a280f, 0x03219a29, 0x005f52d7, 0x0018b16d, 0x0376ccb4, 0x00bafcd8, 0x0014260d}}}, + {X: Field{[10]uint32{0x034d472f, 0x01d97678, 0x01f32f00, 0x01270ac9, 0x01bfdfa5, 0x00135c89, 0x0183364e, 0x0128564d, 0x035b7fb4, 0x00028363}}, Y: Field{[10]uint32{0x03998ab2, 0x026c48bb, 0x0048dd53, 0x008be7df, 0x01630b6c, 0x0365ff8f, 0x01da99f3, 0x009a1e52, 0x0366f84c, 0x000187aa}}}, + {X: Field{[10]uint32{0x02e61fc1, 0x019a42c2, 0x0033ef68, 0x03496c9f, 0x027a3ee0, 0x01b60097, 0x00dbf815, 0x028b6eb7, 0x00ea9596, 0x002e60c2}}, Y: Field{[10]uint32{0x03ddbd37, 0x00334149, 0x006f5125, 0x01b9619e, 0x01445bae, 0x00f3f496, 0x00c582a0, 0x02933ad3, 0x03177566, 0x00336d38}}}, + {X: Field{[10]uint32{0x00b98134, 0x008cabdc, 0x03f637f0, 0x03236d2a, 0x03cf3969, 0x024ee8c0, 0x01eefe37, 0x035b3046, 0x031d37e3, 0x00386993}}, Y: Field{[10]uint32{0x003231da, 0x0173b507, 0x00fc2f95, 0x019e3d3b, 0x01ddbd35, 0x00fd606d, 0x00d2084b, 0x034bd7b1, 0x02d8885d, 0x0016235e}}}, + {X: Field{[10]uint32{0x01fdaaed, 0x0089da99, 0x00eca49c, 0x03b9ebc5, 0x01318929, 0x035c4644, 0x02253a1b, 0x00ea9b9c, 0x03ede854, 0x003ef577}}, Y: Field{[10]uint32{0x013b78bc, 0x033efc06, 0x016f2f76, 0x006b6f43, 0x00f23489, 0x016e30c4, 0x0005d516, 0x00d458f1, 0x030a432c, 0x000c5f3b}}}, + {X: Field{[10]uint32{0x00da6bc2, 0x01df39a1, 0x00a2ae30, 0x0137005e, 0x0030b87c, 0x03dedbc8, 0x031a8822, 0x02544213, 0x03f3b0a3, 0x003eb12d}}, Y: Field{[10]uint32{0x00867d75, 0x02ca656f, 0x01fae390, 0x034557c6, 0x00386ce0, 0x018a3f75, 0x00a5c54a, 0x008bf058, 0x01209e95, 0x001c0a6e}}}, + {X: Field{[10]uint32{0x03ef7c2b, 0x02a06150, 0x0053ee64, 0x014571d7, 0x013c29fc, 0x006d7f1f, 0x02c02964, 0x033d4200, 0x03de834f, 0x0032a190}}, Y: Field{[10]uint32{0x03cf17f9, 0x03ea592b, 0x014c3b26, 0x00c73b9c, 0x02f8ecea, 0x02b6767e, 0x036fd4d0, 0x00a5b890, 0x0027111e, 0x00241e9b}}}, + {X: Field{[10]uint32{0x03315f1f, 0x00b25b3c, 0x0066b120, 0x008af150, 0x03a4a73b, 0x03f92d22, 0x0226b19e, 0x003a85fa, 0x02490d70, 0x001c61cd}}, Y: Field{[10]uint32{0x03ded2fd, 0x00b04761, 0x0215abd8, 0x01208108, 0x01515127, 0x03973d0a, 0x03fc614d, 0x01d2ddd4, 0x00474bb3, 0x003db361}}}, + {X: Field{[10]uint32{0x00c5e3d7, 0x030f14d2, 0x03e6f15a, 0x023dddb2, 0x00175b76, 0x01df18fc, 0x02574826, 0x031cc89b, 0x00ff21c3, 0x0019f9ce}}, Y: Field{[10]uint32{0x02f2bdb2, 0x024d43ba, 0x026bfac7, 0x0151744c, 0x030ebd28, 0x01f3d824, 0x03a50644, 0x0375c95d, 0x000f2343, 0x00053945}}}, + {X: Field{[10]uint32{0x02198893, 0x03d57c66, 0x02934280, 0x010998b3, 0x036c5a5c, 0x00d3b85f, 0x01339f64, 0x0094fc81, 0x0331f875, 0x001452cf}}, Y: Field{[10]uint32{0x02e9a090, 0x02601f92, 0x0269fe46, 0x030b72a5, 0x01a61c0f, 0x039f3793, 0x011c538c, 0x03b1c133, 0x0193a2fb, 0x0013acce}}}, + {X: Field{[10]uint32{0x03c2dab3, 0x01614062, 0x03586f98, 0x005be12c, 0x02ca53c2, 0x006280e4, 0x0330a414, 0x00f9d5aa, 0x03a6eab0, 0x00109ab3}}, Y: Field{[10]uint32{0x01083926, 0x0166ab7c, 0x01a74acb, 0x03441d27, 0x02d34944, 0x0015ceed, 0x0206682d, 0x00431702, 0x02ab21cc, 0x0030f58f}}}, + {X: Field{[10]uint32{0x02d7a09c, 0x003a3de8, 0x005cad42, 0x01cb1608, 0x01b8ad4a, 0x01165f21, 0x03dcbee9, 0x015cdc3f, 0x034668c0, 0x002e51ae}}, Y: Field{[10]uint32{0x023401b9, 0x008eeb47, 0x02b2cdc7, 0x00e927fb, 0x03969ea1, 0x0196f180, 0x03e63a5e, 0x00e09959, 0x02d41263, 0x00331c03}}}, + {X: Field{[10]uint32{0x018e33ac, 0x00d6e576, 0x02dcd803, 0x03e3eca2, 0x001d1e38, 0x0335d77d, 0x01d7d3cc, 0x02d17d44, 0x00b3f6c8, 0x0039aa11}}, Y: Field{[10]uint32{0x0058cce2, 0x005db0bb, 0x017e2c0b, 0x00273249, 0x036c4aa1, 0x007dc5ea, 0x023268ee, 0x022431d2, 0x03893939, 0x0001fc91}}}, + {X: Field{[10]uint32{0x02458001, 0x034503e5, 0x03dcd117, 0x00fc08c4, 0x00493e90, 0x01492e63, 0x0236b415, 0x014ba305, 0x03bfd9e0, 0x0010f98a}}, Y: Field{[10]uint32{0x023b352d, 0x011de669, 0x03cec8e1, 0x02ed27b2, 0x01ebee23, 0x0373fcc7, 0x01993000, 0x0354a0c2, 0x013d0a90, 0x003d2061}}}, + {X: Field{[10]uint32{0x0047f817, 0x03d12e20, 0x02ad9e94, 0x01124496, 0x01e555a8, 0x00776e6f, 0x0223e1c4, 0x011db50b, 0x000e3427, 0x003113bd}}, Y: Field{[10]uint32{0x02236fac, 0x02e7a8e3, 0x009d2498, 0x02cb6e13, 0x0238f664, 0x01dbd2b8, 0x0018e147, 0x03964fca, 0x0313e43e, 0x002fb750}}}, + {X: Field{[10]uint32{0x03212385, 0x022f7814, 0x037e8d40, 0x03eabf66, 0x037f58f2, 0x03e39265, 0x016f93f5, 0x00625702, 0x0313dcc1, 0x00286cd4}}, Y: Field{[10]uint32{0x023079f5, 0x023a29c2, 0x02c55bdc, 0x03008098, 0x03135a9e, 0x0024f605, 0x009f9cf5, 0x01430dcc, 0x025abf0d, 0x002f5fac}}}, + {X: Field{[10]uint32{0x035e964e, 0x0122a486, 0x01c91b67, 0x026b4562, 0x02138222, 0x00d6f663, 0x03f2f0c7, 0x0007268d, 0x03f9fd62, 0x001229bc}}, Y: Field{[10]uint32{0x034481b4, 0x00b14316, 0x01c91971, 0x00e54e97, 0x022c73e0, 0x02a75659, 0x0062c81f, 0x02a28192, 0x01553d41, 0x0006d514}}}, + {X: Field{[10]uint32{0x00061e9f, 0x00a17669, 0x0354db06, 0x033716c8, 0x0375f050, 0x023bb3c6, 0x019181dc, 0x02c1ba28, 0x0174651d, 0x0023807d}}, Y: Field{[10]uint32{0x035e108b, 0x03efec89, 0x00cae256, 0x0192e87c, 0x027d7ba9, 0x00bbb2b6, 0x006e90a0, 0x039f56db, 0x02a09800, 0x0027455b}}}, + {X: Field{[10]uint32{0x0205345d, 0x029372be, 0x0258f43d, 0x03cc5a52, 0x0228e375, 0x029e7e39, 0x0368b195, 0x02d5d8fa, 0x00db9e6d, 0x0012f03e}}, Y: Field{[10]uint32{0x03a5b555, 0x03c85710, 0x019d98d0, 0x00eda8cb, 0x01633805, 0x009a929a, 0x02380e81, 0x02c592ee, 0x0389a1e6, 0x0031a9c1}}}, + {X: Field{[10]uint32{0x0297a768, 0x015288ee, 0x0255f32d, 0x0236c033, 0x00f4c7ee, 0x002df6ae, 0x0230a665, 0x037ab758, 0x00cb5f5e, 0x00259bf4}}, Y: Field{[10]uint32{0x011a994b, 0x01b3de60, 0x004e1654, 0x0272a795, 0x0001e892, 0x038285ae, 0x0019a1de, 0x026d97d6, 0x0243bb4f, 0x00275913}}}, + {X: Field{[10]uint32{0x017b0d8a, 0x00b14421, 0x027f8296, 0x02e21891, 0x0320d50e, 0x010e38cd, 0x02dc7c74, 0x00ba9964, 0x01ad4952, 0x001aad46}}, Y: Field{[10]uint32{0x023ae44d, 0x00245442, 0x020da8a8, 0x0280de3b, 0x02e82653, 0x0153087b, 0x0367ec35, 0x0142898a, 0x02342b72, 0x00316e8e}}}, + {X: Field{[10]uint32{0x0276c62f, 0x01b5bbea, 0x03856d52, 0x029094c9, 0x03e55f18, 0x001db858, 0x03d0a0cd, 0x0183d4e6, 0x00e43e50, 0x003e2c2e}}, Y: Field{[10]uint32{0x00d48ba4, 0x03b3dbf5, 0x03ad1fe1, 0x02e90d9c, 0x017d5c95, 0x00a0e6a8, 0x00f29c86, 0x014fe963, 0x0052a658, 0x001d0f78}}}, + {X: Field{[10]uint32{0x02d18bad, 0x01e8494f, 0x030e1658, 0x018e7456, 0x02967e97, 0x0088f57e, 0x0185c0e5, 0x023fc2ad, 0x02f8579d, 0x00311427}}, Y: Field{[10]uint32{0x01b08362, 0x016393c7, 0x01cf97fe, 0x03021bc4, 0x0381199d, 0x01d2e2b9, 0x036d8d35, 0x02696168, 0x03e8ee97, 0x001ee47d}}}, + {X: Field{[10]uint32{0x0342379f, 0x02c03f6a, 0x003c3aac, 0x00cb3ead, 0x0004cef7, 0x02530393, 0x0207c538, 0x0143e388, 0x035a6ff4, 0x00268004}}, Y: Field{[10]uint32{0x03a9975d, 0x02e3fe07, 0x03d594df, 0x01ba2e11, 0x00b48159, 0x0232aee4, 0x020902a2, 0x0316c51d, 0x03483684, 0x000e4fb1}}}, + {X: Field{[10]uint32{0x03488601, 0x029016db, 0x01e3eaa4, 0x00c53949, 0x02a484d3, 0x0174f7b8, 0x010c17c2, 0x0235f37a, 0x03df173f, 0x000f5dd6}}, Y: Field{[10]uint32{0x030e51d4, 0x03a631ec, 0x02046b3d, 0x016e265c, 0x0138a402, 0x0275d389, 0x03287f55, 0x003da96f, 0x00bc0a56, 0x001f9ac2}}}, + {X: Field{[10]uint32{0x0303b529, 0x003a60de, 0x017b8f5d, 0x000b5c0f, 0x02a95e50, 0x034428a6, 0x03380a80, 0x0062d144, 0x013ea601, 0x0033aebf}}, Y: Field{[10]uint32{0x03b74b4e, 0x0054d2a1, 0x010c0fd6, 0x006fd54a, 0x025f6d8b, 0x00cee811, 0x0203594e, 0x027d87fd, 0x02b646f5, 0x000651de}}}, + {X: Field{[10]uint32{0x03a731b2, 0x02c661f3, 0x01de158c, 0x018fd62b, 0x037ecbc9, 0x03926c8d, 0x001ac162, 0x038f87bc, 0x00ac1ff3, 0x002ba28f}}, Y: Field{[10]uint32{0x01531efe, 0x0287a794, 0x03ac2bac, 0x00ac4529, 0x02ee26fd, 0x02371dce, 0x03f6af9e, 0x02dd25cc, 0x02752052, 0x001692c1}}}, + {X: Field{[10]uint32{0x01e3b38e, 0x010dd4eb, 0x02b28308, 0x00d743ef, 0x01fd39b6, 0x011deb13, 0x0118edee, 0x01c48d70, 0x00bb8bd4, 0x0035d34e}}, Y: Field{[10]uint32{0x00b54451, 0x01aecddf, 0x01c325d6, 0x03f4e4db, 0x021ec0a0, 0x006e9b78, 0x01850843, 0x00a0e5ea, 0x01b6f17a, 0x003cf941}}}, + {X: Field{[10]uint32{0x02beb2a8, 0x0256c53d, 0x01db2495, 0x00cec33a, 0x014d4f0b, 0x0381d747, 0x00dc1bef, 0x01e17345, 0x02757780, 0x003d0a1d}}, Y: Field{[10]uint32{0x00514b38, 0x00787618, 0x015364eb, 0x0354ffc9, 0x03950f34, 0x00d86b5b, 0x018bf6da, 0x018b7719, 0x0231eefc, 0x0028f7c8}}}, + {X: Field{[10]uint32{0x02378e94, 0x03250051, 0x0145450d, 0x0220f287, 0x01e62776, 0x0272c826, 0x03caaa86, 0x02b589da, 0x036bda19, 0x003a4755}}, Y: Field{[10]uint32{0x0040779c, 0x032a5c4e, 0x01db87ac, 0x0060df9d, 0x00020e79, 0x00c99763, 0x00313db8, 0x00b2e66b, 0x0038c8da, 0x002d5f88}}}, + {X: Field{[10]uint32{0x00c66ea2, 0x00c33f8e, 0x01aec7e8, 0x0377cf1f, 0x03e035e1, 0x03caaa90, 0x011b53da, 0x0385d8de, 0x00e87d77, 0x0009a651}}, Y: Field{[10]uint32{0x013707f6, 0x0339db06, 0x02ea739a, 0x0115edfb, 0x01567641, 0x026cc8f2, 0x028ca430, 0x031fec14, 0x036434bd, 0x0032c045}}}, + {X: Field{[10]uint32{0x0244a3d1, 0x03807ec1, 0x02a5ee94, 0x005cbfdb, 0x01fb0993, 0x01eec5d9, 0x0261c685, 0x00da046a, 0x028a8f0b, 0x003b5079}}, Y: Field{[10]uint32{0x0108231c, 0x0037ae31, 0x005dc1dd, 0x03823302, 0x0071c918, 0x00f65600, 0x03a1e448, 0x02f8109a, 0x007b880c, 0x003cb324}}}, + {X: Field{[10]uint32{0x01fec0de, 0x01e59083, 0x0113ab0b, 0x03c4cc88, 0x01538192, 0x00e8cf5a, 0x0236e4f5, 0x032e978b, 0x024a96cf, 0x001a51d9}}, Y: Field{[10]uint32{0x038fb6cd, 0x01770be8, 0x01dc77f9, 0x02577b3d, 0x03256101, 0x01ab78cc, 0x01b76c4d, 0x02dbeea4, 0x01bc5b65, 0x00192074}}}, + {X: Field{[10]uint32{0x0227fb03, 0x021715c7, 0x02f668ea, 0x00b1c3a3, 0x00437901, 0x02a4996c, 0x000a42bb, 0x018f7daa, 0x007ce22b, 0x002a8f86}}, Y: Field{[10]uint32{0x00d011be, 0x02a47fc2, 0x0329c38f, 0x01239736, 0x03e8732f, 0x00c04150, 0x03fcab70, 0x027f465b, 0x016b9810, 0x00298e37}}}, + {X: Field{[10]uint32{0x004a944b, 0x026f863e, 0x021c5eff, 0x00de4493, 0x02bfd5ea, 0x0150ff5b, 0x029fbab6, 0x03e536d2, 0x00e1a4be, 0x00001779}}, Y: Field{[10]uint32{0x0157e2d6, 0x026ea79e, 0x03442967, 0x03469fb1, 0x0158f8ae, 0x01dd11d8, 0x0299513f, 0x038a502d, 0x0282693b, 0x00087128}}}, + {X: Field{[10]uint32{0x007a7ce5, 0x01b0ad0a, 0x030a0964, 0x03ba8ce8, 0x02fdd18f, 0x02bc2bc8, 0x0096c793, 0x02d1de07, 0x00c72c87, 0x00194cf7}}, Y: Field{[10]uint32{0x037ccc51, 0x00dc1620, 0x00cd3f8c, 0x033e8ebb, 0x00482748, 0x00d1085d, 0x01589fc2, 0x03e6ef3a, 0x01f23d82, 0x001fc0f9}}}, + {X: Field{[10]uint32{0x00fdf354, 0x02ec0299, 0x01871a5e, 0x008e9c2e, 0x01c5109f, 0x014d0d4c, 0x02008ab8, 0x01612af6, 0x033c129e, 0x0004e797}}, Y: Field{[10]uint32{0x033f0a98, 0x0028bddd, 0x009de619, 0x039209ab, 0x026bf011, 0x020d4ad8, 0x03182ee9, 0x023abe94, 0x025741fb, 0x00125edf}}}, + {X: Field{[10]uint32{0x0161f7c3, 0x01e6bba0, 0x01f0c7c7, 0x02060645, 0x013ce57b, 0x0363c958, 0x00ea9918, 0x03a5420f, 0x01ccf7e1, 0x00124ffa}}, Y: Field{[10]uint32{0x03020cd5, 0x02f93059, 0x02f4088c, 0x00562f30, 0x00639ab6, 0x028eed12, 0x00aff6a6, 0x03874115, 0x03fd62fc, 0x0039a5d8}}}, + {X: Field{[10]uint32{0x02a064a9, 0x039acd94, 0x008a7446, 0x0055d9bb, 0x03900e3c, 0x0240f29d, 0x01ac2fb4, 0x01c2e190, 0x03dbd8dd, 0x003b59d7}}, Y: Field{[10]uint32{0x00416de9, 0x01bcc4da, 0x037fd1f2, 0x02c9739d, 0x0223ccff, 0x02c0622b, 0x00669b40, 0x03d6d1b8, 0x037985ce, 0x002986ec}}}, + {X: Field{[10]uint32{0x02260a4d, 0x02c32a66, 0x00b83136, 0x0110e187, 0x02b6d484, 0x014e4f54, 0x03c14e31, 0x0278e9e5, 0x00a89a76, 0x0005cd9c}}, Y: Field{[10]uint32{0x03bd4904, 0x00f689f1, 0x02bc6d68, 0x03ddf760, 0x00d140b3, 0x01242104, 0x02a1b28e, 0x0134ba57, 0x0121c1ba, 0x0013750e}}}, + {X: Field{[10]uint32{0x035d1610, 0x0387c258, 0x0128cdf9, 0x00f4b329, 0x00a1da93, 0x03041ba0, 0x011e05a0, 0x038551bc, 0x03a08f87, 0x00356978}}, Y: Field{[10]uint32{0x01175352, 0x00a45397, 0x01167255, 0x01d0828d, 0x01aa20df, 0x0307fec3, 0x00a9c6f2, 0x03024a34, 0x01e0daf3, 0x001f1b15}}}, + {X: Field{[10]uint32{0x02f6fa2a, 0x0168ce36, 0x00ebe417, 0x00c9d3b9, 0x01a0a999, 0x01359a5f, 0x02f2e2b9, 0x00c871a4, 0x01a004ab, 0x00153d7a}}, Y: Field{[10]uint32{0x01f2de21, 0x0359b622, 0x0342b5cb, 0x032a157f, 0x0258a7d9, 0x03e0a376, 0x02eb7614, 0x01b91cd2, 0x03d175fa, 0x001633c4}}}, + {X: Field{[10]uint32{0x03ebe6da, 0x01c96f1f, 0x01d4c9e8, 0x00b65111, 0x02fd9a63, 0x010988ac, 0x025544a4, 0x03a6558b, 0x0098154d, 0x00359a0a}}, Y: Field{[10]uint32{0x0190f206, 0x01c7718c, 0x001ebd13, 0x0117dd83, 0x030b2d50, 0x01e5c6a8, 0x0202c50a, 0x02e15d43, 0x023b9ba3, 0x00260247}}}, + {X: Field{[10]uint32{0x01c2da08, 0x0126fdb3, 0x008cafef, 0x03fc6324, 0x02610bec, 0x00b7b34d, 0x01f6e1a8, 0x03131236, 0x01b92af2, 0x00094c06}}, Y: Field{[10]uint32{0x017c680a, 0x02e1ae8e, 0x02a5a495, 0x00ef694e, 0x023ffbdd, 0x00421cb8, 0x02ebdce8, 0x0275d397, 0x035ad950, 0x00185f4c}}}, + {X: Field{[10]uint32{0x004da6cb, 0x019f3544, 0x00f16bab, 0x01d14391, 0x02ced725, 0x03023ca4, 0x00d2bcfa, 0x03af7958, 0x00ca461b, 0x00015bd9}}, Y: Field{[10]uint32{0x013aee44, 0x00efcf56, 0x023eebd8, 0x014ee40e, 0x02757cb5, 0x00bba050, 0x012bca8f, 0x020ca2a6, 0x01cfdc27, 0x0016c821}}}, + {X: Field{[10]uint32{0x03553420, 0x03b49163, 0x012f64dd, 0x03a6fbcc, 0x005a31a1, 0x01f8fb8e, 0x025c1928, 0x00ea6bc3, 0x01711e15, 0x003ce725}}, Y: Field{[10]uint32{0x03b0b1cc, 0x020a4c38, 0x03a974b8, 0x018922f7, 0x02e742ef, 0x0126304c, 0x039df908, 0x01ae7de1, 0x02c11c20, 0x00133252}}}, + {X: Field{[10]uint32{0x013128b5, 0x037758b0, 0x005368c8, 0x01297783, 0x01b2f303, 0x01716ab9, 0x02d3dad9, 0x021cf00c, 0x02a8cbdf, 0x00010dfa}}, Y: Field{[10]uint32{0x013c59c6, 0x038c2026, 0x01fcc721, 0x00b77c30, 0x012f8d1b, 0x03583696, 0x00245993, 0x0042ed65, 0x020eb003, 0x0009f63a}}}, + {X: Field{[10]uint32{0x0080e9b2, 0x027ad2ea, 0x0371f0a7, 0x0298053b, 0x003f13e7, 0x00715d4d, 0x010ae621, 0x019e6112, 0x01893f5d, 0x002b7869}}, Y: Field{[10]uint32{0x0391c715, 0x00b8988d, 0x01304902, 0x00adfc90, 0x01e80188, 0x00f06d0a, 0x03404d8c, 0x01a8eeb1, 0x017c537e, 0x002f5270}}}, + {X: Field{[10]uint32{0x02c1224e, 0x038b64ce, 0x0198fd16, 0x01e31eb4, 0x00a87ef9, 0x029386db, 0x0357d977, 0x00696ae7, 0x01d5c309, 0x0024d89d}}, Y: Field{[10]uint32{0x036b9f32, 0x000481f7, 0x0057e5aa, 0x0146c5ee, 0x00ed5988, 0x01b88934, 0x0375d96c, 0x021317aa, 0x010ad8bd, 0x001a149a}}}, + {X: Field{[10]uint32{0x039b786e, 0x03ed69da, 0x01e8cc33, 0x00741dad, 0x03e29497, 0x03202e74, 0x006db205, 0x03573781, 0x01fd3e8f, 0x0000a795}}, Y: Field{[10]uint32{0x00010a0d, 0x03379263, 0x02f57af6, 0x00ab5869, 0x002bbf3e, 0x01c83391, 0x038312f0, 0x00d2e515, 0x017a7eb9, 0x0001da79}}}, + {X: Field{[10]uint32{0x009051ef, 0x02c566e0, 0x00584168, 0x0011d91f, 0x003ae378, 0x01785bde, 0x00b52754, 0x0217fc66, 0x02a73501, 0x0037e0d8}}, Y: Field{[10]uint32{0x02af6bab, 0x032b82d8, 0x01a263a6, 0x0203b923, 0x03735ece, 0x012c5b0e, 0x026b6048, 0x028ef7a0, 0x0046fbd4, 0x002bf2cd}}}, + {X: Field{[10]uint32{0x018a427e, 0x0057b381, 0x0033c254, 0x020e5b3d, 0x01b9a01e, 0x01b31867, 0x01660379, 0x017f83e5, 0x012309a3, 0x0017d10c}}, Y: Field{[10]uint32{0x00901ac0, 0x01f530ac, 0x03c906fd, 0x01c923eb, 0x0337d81c, 0x01aaa705, 0x0272b605, 0x02af14a4, 0x0012fc0a, 0x000e170a}}}, + {X: Field{[10]uint32{0x01dd2de5, 0x038d1205, 0x0163f4b7, 0x03fd74f7, 0x008c5323, 0x01a4ff13, 0x01b77a31, 0x000df149, 0x021553c6, 0x00306710}}, Y: Field{[10]uint32{0x013900a4, 0x0323b06a, 0x01822159, 0x01564b26, 0x00a19d22, 0x03679ac8, 0x01161896, 0x01df849c, 0x028a8791, 0x0027ddba}}}, + {X: Field{[10]uint32{0x032d45ac, 0x028508eb, 0x013f1d62, 0x024aa084, 0x0214d19d, 0x018e5091, 0x0162fdb3, 0x008ccbab, 0x021dd1e0, 0x0022afce}}, Y: Field{[10]uint32{0x03e36dde, 0x006d6629, 0x007ec7de, 0x0105b754, 0x02defc29, 0x0330b67c, 0x027a984e, 0x03b0fdd7, 0x027fdcf5, 0x000c96a5}}}, + {X: Field{[10]uint32{0x0359ae7a, 0x028f377d, 0x03b9433f, 0x01db0181, 0x0257c1dd, 0x01c7aa12, 0x014a58fa, 0x01879b13, 0x0390b931, 0x00322ff7}}, Y: Field{[10]uint32{0x030b20f9, 0x02513cc9, 0x01ce5b51, 0x033c054d, 0x00fd7990, 0x00f96a8f, 0x007efd3c, 0x03ed8fb5, 0x00a3d172, 0x0008f70e}}}, + {X: Field{[10]uint32{0x02d2c78d, 0x01fa1b80, 0x038b443c, 0x01016dde, 0x02a26ccc, 0x017e435e, 0x019e7ab8, 0x01665e9d, 0x026c35c5, 0x00025d99}}, Y: Field{[10]uint32{0x001ed0ff, 0x0145850e, 0x00f89605, 0x03fad0dc, 0x0392c52c, 0x008333bb, 0x02db2e4e, 0x033c96fc, 0x003e44fa, 0x001b4d0b}}}, + {X: Field{[10]uint32{0x0163252b, 0x00aa337e, 0x0273a1c1, 0x01b3fac8, 0x021fd65b, 0x02f6270e, 0x03b8e8a5, 0x0393871e, 0x03a77737, 0x0039de42}}, Y: Field{[10]uint32{0x03bdba42, 0x0096773f, 0x02e1a810, 0x03caa7a4, 0x01f7138f, 0x02ca2663, 0x02754ead, 0x02d63dc3, 0x02201534, 0x000098d7}}}, + {X: Field{[10]uint32{0x0176fb0d, 0x01df6051, 0x03efe375, 0x03265d7c, 0x03b471ce, 0x02e61ab0, 0x00e3ecd5, 0x03b20fd8, 0x017f6bfc, 0x0010b2e0}}, Y: Field{[10]uint32{0x005cf49a, 0x022937b1, 0x03cce270, 0x025941d7, 0x01144a85, 0x015cde42, 0x0162050a, 0x02f643c8, 0x0128b2f9, 0x003b4d78}}}, + {X: Field{[10]uint32{0x012f3cbb, 0x014383d0, 0x018f0024, 0x00a293f5, 0x01319024, 0x03847c51, 0x0060397a, 0x024ccfff, 0x00701a23, 0x0028221a}}, Y: Field{[10]uint32{0x0083af52, 0x0207e646, 0x00ad6d8a, 0x03267300, 0x03fc6002, 0x01221fae, 0x0251995b, 0x0380d023, 0x03371ad6, 0x0032121b}}}, + {X: Field{[10]uint32{0x032c4bb3, 0x021bc95c, 0x01aab034, 0x00b08998, 0x02e6a964, 0x00d9294b, 0x00fd8e8b, 0x006e2c10, 0x02419f10, 0x00290332}}, Y: Field{[10]uint32{0x0045a910, 0x02c542a5, 0x01285bab, 0x026e5402, 0x03b0655b, 0x001c0730, 0x01e611df, 0x025bc0b4, 0x03693ec0, 0x0003d086}}}, + {X: Field{[10]uint32{0x01beb721, 0x0181290d, 0x0350fefe, 0x003c5068, 0x02c53294, 0x027d5d57, 0x035b70bc, 0x011cb169, 0x0178bbb0, 0x00242bbe}}, Y: Field{[10]uint32{0x014bbf0d, 0x021f8478, 0x01187a5f, 0x004251e7, 0x0193f585, 0x0391e3a9, 0x008cde92, 0x03db932a, 0x0070737c, 0x003e7c17}}}, + {X: Field{[10]uint32{0x003407c3, 0x031a65eb, 0x03f1a07b, 0x00ceee09, 0x02d73ae4, 0x036e6b2d, 0x00292f68, 0x007ce580, 0x0281a0f6, 0x003ff08e}}, Y: Field{[10]uint32{0x034d4b66, 0x017ca115, 0x02803686, 0x00de81d1, 0x004f313b, 0x0351f338, 0x03c74630, 0x0384e49d, 0x0212bce5, 0x002dda81}}}, + {X: Field{[10]uint32{0x00a112a5, 0x003fd408, 0x01ded2ab, 0x00b837e6, 0x02742c85, 0x02610969, 0x022bc162, 0x03e64109, 0x039440bd, 0x0034f29e}}, Y: Field{[10]uint32{0x024d637a, 0x01e03ff7, 0x022cb1f9, 0x02dcd07e, 0x005ef191, 0x0204f38b, 0x004281f9, 0x0209713d, 0x03acca7e, 0x00276bb2}}}, + {X: Field{[10]uint32{0x01bb9f06, 0x02cf3294, 0x02b41b23, 0x02b3557b, 0x03469b21, 0x038386b1, 0x02b7589c, 0x02cc70a9, 0x02bb720a, 0x000a94e8}}, Y: Field{[10]uint32{0x0051f84e, 0x0295f8f5, 0x03256c21, 0x0036e912, 0x0027f781, 0x008341bb, 0x00d0f522, 0x025919e9, 0x0133ffde, 0x00046bfe}}}, + {X: Field{[10]uint32{0x01a1ac96, 0x00211d2b, 0x0087d05a, 0x01c5fedd, 0x0322b2fc, 0x02e3d72f, 0x03d2f77b, 0x000a1e9b, 0x035680c4, 0x00121f94}}, Y: Field{[10]uint32{0x02a849c8, 0x02434356, 0x03a731e9, 0x00954830, 0x01029c96, 0x0144c111, 0x0365326d, 0x00358dde, 0x03d54607, 0x0014ef5f}}}, + {X: Field{[10]uint32{0x027b3e16, 0x0396e659, 0x03a2963d, 0x02d20827, 0x01cf23c0, 0x00bd2d8a, 0x0332cfd6, 0x028307f0, 0x03cf291d, 0x000f9697}}, Y: Field{[10]uint32{0x02b86825, 0x0037b43e, 0x01c97b06, 0x03bdfd57, 0x008b33d7, 0x01ceec4c, 0x03028df7, 0x02687c12, 0x032c4338, 0x0021a61f}}}, + {X: Field{[10]uint32{0x023e256f, 0x01f5de43, 0x02b8ed5f, 0x03ed5c21, 0x00601840, 0x00b755c1, 0x002493d2, 0x011f08b1, 0x03c515a8, 0x0013e42b}}, Y: Field{[10]uint32{0x02b831be, 0x037b43ea, 0x01e33226, 0x0250ad61, 0x024ef939, 0x02b034f0, 0x01f6b089, 0x01a248cd, 0x0158ac2e, 0x0011b8c6}}}, + {X: Field{[10]uint32{0x023601fc, 0x01617078, 0x01a1782c, 0x00e29161, 0x02c2ff4b, 0x0086fa60, 0x02738071, 0x00fa9e9a, 0x012b40be, 0x002f81ce}}, Y: Field{[10]uint32{0x01f258db, 0x02a085bc, 0x0038da57, 0x01c799bb, 0x01431727, 0x036f8842, 0x01775b81, 0x027a39ef, 0x0057657c, 0x000e8561}}}, + {X: Field{[10]uint32{0x021108ed, 0x018d04be, 0x02603e05, 0x010546d6, 0x02ecc2f7, 0x01f09381, 0x02f9e6d4, 0x00dd7c88, 0x00e52140, 0x0021b09d}}, Y: Field{[10]uint32{0x00a96ef8, 0x0025a490, 0x003a2aa0, 0x01dbe4b0, 0x012703f2, 0x0326261f, 0x02b90b64, 0x035640cb, 0x02b94065, 0x001280be}}}, + {X: Field{[10]uint32{0x0173cf97, 0x023813cd, 0x03626267, 0x02a88449, 0x02287277, 0x036b04ff, 0x03b30561, 0x00e26049, 0x026be792, 0x00013f4e}}, Y: Field{[10]uint32{0x011173e4, 0x000d0b7c, 0x000d238c, 0x0288ed0e, 0x02f07ebe, 0x00ef1fa5, 0x00f4b4b4, 0x03b2db1b, 0x01a163cf, 0x00192628}}}, + {X: Field{[10]uint32{0x01117c94, 0x031da577, 0x0118cb68, 0x021aea06, 0x03cd2a5f, 0x03f33f41, 0x02fe78d1, 0x02f75e2a, 0x01ca5423, 0x0033e90d}}, Y: Field{[10]uint32{0x00ce1fe8, 0x01a0d5c4, 0x00cefd7d, 0x00ed2a7d, 0x01c399b5, 0x01a114e2, 0x03778546, 0x03de78d6, 0x011c02df, 0x002fd322}}}, + {X: Field{[10]uint32{0x021d446c, 0x024f8b0f, 0x010c1cdf, 0x03987cf2, 0x01414119, 0x01d1a6bf, 0x029e9277, 0x00f3166c, 0x031b7953, 0x002a96b2}}, Y: Field{[10]uint32{0x02a498ab, 0x01023d08, 0x01bc26bb, 0x004271d7, 0x028b11bf, 0x0060dd9f, 0x02d3854e, 0x030007ed, 0x01b78713, 0x002c37ca}}}, + {X: Field{[10]uint32{0x005c3d15, 0x00f82855, 0x01175635, 0x03d5341b, 0x03435c09, 0x006f294b, 0x03fa1c44, 0x03d56376, 0x02ecc21b, 0x0006e4f0}}, Y: Field{[10]uint32{0x03195ed2, 0x00fed28c, 0x00c4aeb5, 0x02c68837, 0x03f72e67, 0x0171b498, 0x00e8a5fd, 0x0243996b, 0x01ff7181, 0x0015b115}}}, + {X: Field{[10]uint32{0x03b91760, 0x0145260b, 0x010acd85, 0x02489190, 0x01c84800, 0x017dcac3, 0x039438b5, 0x03482fd8, 0x03f02566, 0x0005d132}}, Y: Field{[10]uint32{0x034c66f5, 0x03d48a77, 0x01f6c683, 0x03e12f68, 0x00068dc0, 0x029f495c, 0x01d5da57, 0x02d71674, 0x03a232b0, 0x001f9de9}}}, + {X: Field{[10]uint32{0x0302582b, 0x02a101ff, 0x01bedd24, 0x029e88a4, 0x021b9cb9, 0x0181ecc5, 0x02f8ffc0, 0x02300a30, 0x00a5ed44, 0x00282fa6}}, Y: Field{[10]uint32{0x011da6ea, 0x03065c40, 0x029a2274, 0x0207774d, 0x0376b869, 0x033dab23, 0x01444620, 0x00d496d3, 0x006a0239, 0x0039f30b}}}, + {X: Field{[10]uint32{0x03845882, 0x0244019e, 0x03e71148, 0x00673723, 0x038b2f2b, 0x0235d7a8, 0x02b2591d, 0x03dea558, 0x03f5dab5, 0x00383964}}, Y: Field{[10]uint32{0x02d67334, 0x017d70b2, 0x029c7e78, 0x031927d1, 0x00b5464d, 0x0290b38b, 0x03c26141, 0x0176d6ce, 0x036215e3, 0x00242231}}}, + {X: Field{[10]uint32{0x029290f5, 0x03f21e70, 0x02b408b9, 0x01b17924, 0x01ffe579, 0x039ec359, 0x031b928d, 0x00baaf5b, 0x0095a498, 0x001e0936}}, Y: Field{[10]uint32{0x00c7ee88, 0x02bc06af, 0x02d448a4, 0x005d5f36, 0x00d6bcf1, 0x0308cb18, 0x022d8bbf, 0x0214a0e2, 0x00688e42, 0x002b85d7}}}, + {X: Field{[10]uint32{0x01d96e66, 0x0073c43e, 0x00b5c421, 0x024fa5db, 0x012aa513, 0x00066b8b, 0x00e4a2cd, 0x00477085, 0x017ee0b6, 0x001274b9}}, Y: Field{[10]uint32{0x015b770a, 0x028f2caf, 0x014d25cf, 0x013e9e05, 0x0311c81e, 0x00a6ee7e, 0x01b79198, 0x007dc9de, 0x00ca8801, 0x003fe831}}}, + {X: Field{[10]uint32{0x035ead00, 0x004e73f1, 0x03ee8be2, 0x00cba71e, 0x02eeb3de, 0x00e262ba, 0x0012e8f8, 0x006a1618, 0x036b8f70, 0x00369817}}, Y: Field{[10]uint32{0x0011d246, 0x027973a5, 0x03633d69, 0x01f19d47, 0x025a2430, 0x024fd43e, 0x030ca5ea, 0x00706a27, 0x012ce98a, 0x0016e830}}}, + {X: Field{[10]uint32{0x02c16ff2, 0x03ff672e, 0x02785652, 0x00f070cb, 0x029307be, 0x03670e02, 0x01de2bd1, 0x0139b568, 0x03ebcde9, 0x002bbaaa}}, Y: Field{[10]uint32{0x010bf840, 0x006aebf5, 0x02460664, 0x006b0965, 0x03b62e49, 0x0041c24f, 0x000a52bf, 0x03b37814, 0x03558510, 0x000c0251}}}, + {X: Field{[10]uint32{0x010c40b7, 0x007fac68, 0x0378cb0e, 0x002f972d, 0x0066ca0a, 0x00c17e7a, 0x02d1e1f4, 0x03f992c6, 0x012b35f3, 0x0018bc62}}, Y: Field{[10]uint32{0x03f5780d, 0x0204e9c0, 0x028838e1, 0x0148b452, 0x03f1f890, 0x0316fb6f, 0x0287f090, 0x02fd28b8, 0x005ee600, 0x00069108}}}, + {X: Field{[10]uint32{0x02979382, 0x01356265, 0x01e944ac, 0x00cf6b89, 0x033a567b, 0x0029a020, 0x02be9f55, 0x00b5a4a3, 0x02c54677, 0x00308247}}, Y: Field{[10]uint32{0x02d4b31e, 0x02140b72, 0x002b2382, 0x01a4b56a, 0x02eb610c, 0x007f8651, 0x01fa722a, 0x0274c5cd, 0x025bd2e8, 0x0016669d}}}, + {X: Field{[10]uint32{0x03242367, 0x0003f7c6, 0x01ba597d, 0x01557e0f, 0x02e50a24, 0x027f9f08, 0x00e1b237, 0x0248d5c0, 0x015b1951, 0x002ff5f0}}, Y: Field{[10]uint32{0x0066b17b, 0x00af51af, 0x02694037, 0x031235bf, 0x03f4cdda, 0x03ebf4a1, 0x01272130, 0x031cd7a8, 0x03de545e, 0x002b1b79}}}, + {X: Field{[10]uint32{0x032ddc7f, 0x017d8d44, 0x00fd116b, 0x027dd3cf, 0x01958162, 0x020c76a0, 0x03d85073, 0x03f7de40, 0x03843cab, 0x00353539}}, Y: Field{[10]uint32{0x021758a6, 0x01d0b501, 0x0082d219, 0x0138ae3c, 0x01d1cd6d, 0x011d572c, 0x0265a284, 0x02eb2ff3, 0x011d582c, 0x00079258}}}, + {X: Field{[10]uint32{0x03908fdc, 0x03047223, 0x03d02cdd, 0x03e37d85, 0x014945b4, 0x0177630c, 0x03434a49, 0x02cd37ce, 0x0009c378, 0x000795d4}}, Y: Field{[10]uint32{0x00f6cdb7, 0x02161fc3, 0x005655bd, 0x008cffea, 0x0010bf21, 0x023c8273, 0x017458cb, 0x0256849a, 0x03a2810c, 0x001738df}}}, + {X: Field{[10]uint32{0x01408fd0, 0x03e570ee, 0x00ee1108, 0x01b4dc41, 0x01c9268c, 0x03f7d979, 0x035e690f, 0x01fae287, 0x022eac23, 0x002d699a}}, Y: Field{[10]uint32{0x03f72798, 0x00fbca32, 0x030de3c4, 0x0200c1d8, 0x03f8cc32, 0x0219a31b, 0x0042ba86, 0x03dba982, 0x02c0aaa4, 0x00264016}}}, + {X: Field{[10]uint32{0x0326fe0d, 0x030fb99f, 0x036e60cf, 0x00c0878f, 0x0166bc3a, 0x02ebabe3, 0x0090b063, 0x0164f19b, 0x01352599, 0x000768e7}}, Y: Field{[10]uint32{0x0141311f, 0x0216e172, 0x03e489f2, 0x029e3f1f, 0x00f7e58a, 0x00070c00, 0x030d076c, 0x00546d51, 0x005eb6b0, 0x00249ca8}}}, + {X: Field{[10]uint32{0x01a971b2, 0x01d10d2d, 0x005002b3, 0x016bce11, 0x024e900c, 0x007d0a3f, 0x02862d72, 0x00029d94, 0x00b6b100, 0x001fcec4}}, Y: Field{[10]uint32{0x02ecd385, 0x03481728, 0x03a9e1f5, 0x01d37cf0, 0x008c4a4f, 0x0095be82, 0x03bd4c90, 0x03b8cc44, 0x03e07907, 0x002e528b}}}, + {X: Field{[10]uint32{0x024eb2e0, 0x02132f5e, 0x018cbbaf, 0x0228fd74, 0x02e5dc36, 0x008030b6, 0x03eb61ae, 0x003e6fda, 0x03c66185, 0x00109841}}, Y: Field{[10]uint32{0x03e511af, 0x0231c319, 0x014f540f, 0x033a3a39, 0x000857ce, 0x034ebfa9, 0x0313488b, 0x03b43e35, 0x0078a9e6, 0x00387e9f}}}, + {X: Field{[10]uint32{0x01be9697, 0x01d290d1, 0x013e2fa3, 0x0265a03d, 0x01d6c940, 0x012273ea, 0x02093c21, 0x031310c4, 0x0256708f, 0x00155789}}, Y: Field{[10]uint32{0x004db6e7, 0x00b8af8a, 0x00cb002f, 0x008b1bd1, 0x01a78224, 0x019d2e84, 0x0166e06c, 0x02dda889, 0x03b71e3b, 0x00003d7b}}}, + {X: Field{[10]uint32{0x017dd290, 0x03f6c4a4, 0x028b3af8, 0x0095190a, 0x01033606, 0x0096dc27, 0x02a927e7, 0x0381f098, 0x017b5736, 0x001c5c2c}}, Y: Field{[10]uint32{0x030973b1, 0x02b9cd40, 0x01608627, 0x029adb7d, 0x0398b2c6, 0x029df382, 0x02d86e69, 0x02204ed6, 0x02a3f899, 0x003bd0df}}}, + {X: Field{[10]uint32{0x025c2180, 0x03b0c456, 0x00172aaa, 0x011b224c, 0x01eb4de6, 0x01ca913c, 0x02329d00, 0x03f44d27, 0x033e66fe, 0x00072a2a}}, Y: Field{[10]uint32{0x030a3c49, 0x003be98e, 0x03274fd2, 0x028554c6, 0x02c70103, 0x012613b4, 0x01da2a0f, 0x035dda07, 0x01c92a87, 0x001bf190}}}, + {X: Field{[10]uint32{0x005366b8, 0x0393e370, 0x007977d5, 0x034d21ed, 0x0385f057, 0x007069ca, 0x0150c1e4, 0x00ba0afc, 0x006af6d4, 0x0020d495}}, Y: Field{[10]uint32{0x02c5fdb1, 0x00ea0d61, 0x0084b138, 0x039ba831, 0x01ac92b0, 0x0070ac72, 0x008d7e72, 0x016c4aa2, 0x02b27ca2, 0x001daf96}}}, + {X: Field{[10]uint32{0x00904cd7, 0x02211667, 0x0244c3e9, 0x0285364b, 0x03353123, 0x0197123b, 0x03988ea7, 0x02e7558f, 0x037b1730, 0x000bc44b}}, Y: Field{[10]uint32{0x0234a44f, 0x029a094b, 0x031bb743, 0x02f50680, 0x0027d7a8, 0x00ab45d0, 0x0370b16d, 0x01f568cb, 0x0297f648, 0x003acd23}}}, + {X: Field{[10]uint32{0x02a5648a, 0x009423cf, 0x00f1d519, 0x00245a9c, 0x002eb6fd, 0x01042979, 0x032494ad, 0x031b1c75, 0x023c164d, 0x0003a100}}, Y: Field{[10]uint32{0x02f4462d, 0x01bf2007, 0x01b8a48a, 0x00c6ac51, 0x01225aa0, 0x008a05af, 0x032f5106, 0x000ca226, 0x018529be, 0x0018d3cd}}}, + {X: Field{[10]uint32{0x0228fc6b, 0x010049e3, 0x029afd6e, 0x0108c719, 0x004da403, 0x005355fd, 0x00039291, 0x03d49c2e, 0x011745da, 0x00254713}}, Y: Field{[10]uint32{0x0227f0a7, 0x02b92b56, 0x00921bb2, 0x03c71cbf, 0x03b9592e, 0x02ba0989, 0x0296f608, 0x003eecb1, 0x0311a8b3, 0x003e420e}}}, + {X: Field{[10]uint32{0x00cb19f4, 0x02e24be3, 0x007fd689, 0x010546ba, 0x01788458, 0x007e516e, 0x025548c5, 0x027cfb82, 0x0057f60b, 0x002b6aa5}}, Y: Field{[10]uint32{0x0361caa6, 0x01a16205, 0x018302e4, 0x01450339, 0x03f899b9, 0x0159d265, 0x039b0475, 0x03fbee37, 0x03f92145, 0x0020d195}}}, + {X: Field{[10]uint32{0x019e6ef7, 0x017f7b98, 0x03397749, 0x00d474c0, 0x00597f3e, 0x00b5fee9, 0x02ef3d85, 0x0028ed45, 0x02b30980, 0x001924a5}}, Y: Field{[10]uint32{0x021df105, 0x0214cfb5, 0x038535c7, 0x00776233, 0x005c8b44, 0x00bb7faf, 0x005f078e, 0x01459ff7, 0x00901021, 0x001133a7}}}, + {X: Field{[10]uint32{0x0006266f, 0x02534fd8, 0x012ce4bc, 0x02dac47e, 0x029f1e9d, 0x021d7c75, 0x02fe2ba7, 0x01d6fce2, 0x02979085, 0x000b075f}}, Y: Field{[10]uint32{0x01a2cf7f, 0x008dc983, 0x02ff50ba, 0x0307f469, 0x038c6c8e, 0x030272c0, 0x03b4e4bb, 0x02f422ee, 0x00bc030a, 0x0027ac94}}}, + {X: Field{[10]uint32{0x004647ec, 0x0355be5d, 0x0174f0f6, 0x029f46ef, 0x03b44ada, 0x014be865, 0x0293b100, 0x02f0c9e0, 0x038bed4e, 0x002c4c3f}}, Y: Field{[10]uint32{0x02a5eb33, 0x01643ffb, 0x01806212, 0x002c3730, 0x000136f6, 0x019b908a, 0x03d0a950, 0x031fd9db, 0x01e9b785, 0x00128291}}}, + {X: Field{[10]uint32{0x030e6231, 0x00335432, 0x0011732a, 0x012b5a3c, 0x0029bf68, 0x03335c73, 0x02e9c740, 0x02cb64c6, 0x019762ec, 0x0013ca96}}, Y: Field{[10]uint32{0x00cf17de, 0x0302fd5f, 0x00237377, 0x005b3def, 0x000fc442, 0x00c27b70, 0x0300dde7, 0x01c20fe9, 0x01b45cfc, 0x0037afe3}}}, + {X: Field{[10]uint32{0x03a23c0b, 0x0034b781, 0x030d1cab, 0x002ea678, 0x020a178c, 0x02968936, 0x01419a18, 0x01b89790, 0x01a17fbe, 0x0025fe7a}}, Y: Field{[10]uint32{0x03559128, 0x03688c95, 0x03c0a4dd, 0x02ef9c74, 0x026cb622, 0x003ed4e1, 0x034fdc87, 0x02d2003e, 0x026b0cce, 0x0006ac48}}}, + {X: Field{[10]uint32{0x01d9d8cb, 0x00ed1f42, 0x02f4cbb9, 0x03c42b4f, 0x00bfd486, 0x02dc4250, 0x01820673, 0x0345f900, 0x03e5e9f5, 0x00385fcf}}, Y: Field{[10]uint32{0x01272f58, 0x00a40eed, 0x0196b59c, 0x018b80fb, 0x0344ad7d, 0x0014492b, 0x0360b263, 0x00ea29ac, 0x0252615d, 0x003c449a}}}, + {X: Field{[10]uint32{0x032fa2de, 0x02a2ed9e, 0x026887a5, 0x014eab0d, 0x033ae668, 0x00e283f8, 0x00c3e945, 0x02060a40, 0x00467d63, 0x00068e7e}}, Y: Field{[10]uint32{0x02903aa5, 0x037bd6e0, 0x027bf28d, 0x00feed15, 0x0118492f, 0x035f1d40, 0x034dc019, 0x0169390a, 0x03995a62, 0x002b9f04}}}, + {X: Field{[10]uint32{0x002f5320, 0x021a4bad, 0x03e68cd1, 0x0205450a, 0x00baa605, 0x013ebfee, 0x0293e52f, 0x03e91242, 0x006127f6, 0x00229777}}, Y: Field{[10]uint32{0x016b0d8e, 0x020346a2, 0x0338974c, 0x0297f1e1, 0x00328e69, 0x03577f30, 0x02559ebb, 0x0377c690, 0x0325853d, 0x0017ad88}}}, + {X: Field{[10]uint32{0x0238c299, 0x0387e73f, 0x0190f7af, 0x01bfc234, 0x02b86490, 0x01bd6d76, 0x03dc17d5, 0x035bf351, 0x03b574b7, 0x00045f6f}}, Y: Field{[10]uint32{0x0190196b, 0x036e3757, 0x03b26bd5, 0x00bdae40, 0x00c50471, 0x0009902a, 0x03bc9233, 0x0051390d, 0x015130b7, 0x0012b348}}}, + {X: Field{[10]uint32{0x0270a537, 0x02168e62, 0x019f3f29, 0x031d0606, 0x00eec84e, 0x01428a98, 0x010706d9, 0x01fad5cc, 0x0228431c, 0x002c30c4}}, Y: Field{[10]uint32{0x0064ff78, 0x0122c02c, 0x02419a10, 0x01f10e3f, 0x030085e4, 0x0183608d, 0x00c32372, 0x01dbffa6, 0x03347928, 0x0029f7a6}}}, + {X: Field{[10]uint32{0x0243946f, 0x0347c0fc, 0x017e08d1, 0x02196962, 0x02736cbc, 0x005d81af, 0x03e6d5b5, 0x009d6b85, 0x00b9f493, 0x001f0843}}, Y: Field{[10]uint32{0x0359c63a, 0x038d4a45, 0x02db1c38, 0x02b0c3eb, 0x00920a7f, 0x02bc7c77, 0x00a92d87, 0x006173a9, 0x0123a8bd, 0x0005ec1d}}}, + {X: Field{[10]uint32{0x02d6e650, 0x01c5841b, 0x00aa1387, 0x02cbd15c, 0x03177b14, 0x02c3b285, 0x017b5192, 0x03b5118e, 0x0167578b, 0x0005cb94}}, Y: Field{[10]uint32{0x03830ba7, 0x01f3614c, 0x00cee173, 0x005f07e2, 0x039d3ba8, 0x00f1ceb4, 0x03de8038, 0x02e01758, 0x012e4776, 0x0027055d}}}, + {X: Field{[10]uint32{0x00030686, 0x02738a88, 0x019ca47e, 0x03ceaa70, 0x02c95a6e, 0x036b6011, 0x02373173, 0x03f6840d, 0x0040df25, 0x000586bf}}, Y: Field{[10]uint32{0x026089ce, 0x0035bc04, 0x03759ab9, 0x0182d895, 0x009926f1, 0x0291783a, 0x039c8193, 0x017ddad2, 0x0083c126, 0x00179bf4}}}, + {X: Field{[10]uint32{0x0216a85f, 0x034fb0e2, 0x018d9459, 0x0243b854, 0x002d194e, 0x01b8e451, 0x0369cf8b, 0x03b4cd35, 0x02a8e18a, 0x002e647c}}, Y: Field{[10]uint32{0x03cab7b0, 0x03433586, 0x00e8b1a0, 0x003886ca, 0x017e6e59, 0x0248f4b0, 0x0169d3e0, 0x01c723a8, 0x01a6b89f, 0x00074aea}}}, + {X: Field{[10]uint32{0x00ca8afc, 0x0328c351, 0x035026f1, 0x0121f56a, 0x007d6233, 0x03ecd91f, 0x016f4881, 0x03b9dfde, 0x009f5a6c, 0x0036b81a}}, Y: Field{[10]uint32{0x039c329c, 0x03221cf0, 0x01fa8c6c, 0x02c0c533, 0x0143ccc1, 0x00ef96e5, 0x01e69643, 0x02eb8a85, 0x0270f730, 0x003b99ed}}}, + {X: Field{[10]uint32{0x027e4e41, 0x03f63b22, 0x02e61aea, 0x02905a84, 0x03d72805, 0x018a7ed6, 0x0217ba14, 0x0270551a, 0x00cd75f8, 0x0011e963}}, Y: Field{[10]uint32{0x01fdd889, 0x0153cf0a, 0x007679b9, 0x02e5cf65, 0x02a4bc43, 0x007f07c2, 0x03e60bb6, 0x02043ad2, 0x03ed1bbb, 0x0030579f}}}, + {X: Field{[10]uint32{0x03040e3c, 0x0026d11a, 0x01698cef, 0x01a57142, 0x02d7582f, 0x013bd96d, 0x000697c9, 0x01bb8cc3, 0x03d02e3b, 0x003deb8b}}, Y: Field{[10]uint32{0x0019ca03, 0x03762b75, 0x00ea36a9, 0x0195e64d, 0x015eb495, 0x037506b2, 0x00d8e6dd, 0x004e6f15, 0x00aac527, 0x002b7a7e}}}, + {X: Field{[10]uint32{0x0012989d, 0x0112365f, 0x00dc8b6c, 0x0091757e, 0x00ae61cf, 0x03091296, 0x03e9c214, 0x02b88235, 0x02a89be2, 0x000557e7}}, Y: Field{[10]uint32{0x01b009ff, 0x033a74d9, 0x036808c1, 0x003d3345, 0x00cf5ea6, 0x032fd124, 0x0204abe6, 0x03466bf6, 0x01f3840c, 0x0004813d}}}, + {X: Field{[10]uint32{0x029d74f6, 0x018598c7, 0x01a5189a, 0x02e404f1, 0x01e35057, 0x0034fb8e, 0x01348a0e, 0x017c53e9, 0x01c3933b, 0x002a0f32}}, Y: Field{[10]uint32{0x0072a74a, 0x0352ebfc, 0x021dbe30, 0x00468a0f, 0x0052b91d, 0x007ef91e, 0x02a9c78e, 0x0211d878, 0x02d7fad6, 0x00102a99}}}, + {X: Field{[10]uint32{0x03b5f5df, 0x030fa959, 0x02cce11f, 0x02f6fca9, 0x00d7acef, 0x02912d55, 0x00a20e0f, 0x01708ca6, 0x01cfc07b, 0x00329254}}, Y: Field{[10]uint32{0x01f4afc2, 0x004b13c2, 0x02050b80, 0x0115e161, 0x0235aac5, 0x00a31e66, 0x01791a6b, 0x032beb1e, 0x03d76700, 0x00061aa2}}}, + {X: Field{[10]uint32{0x02b6787c, 0x0339c4a7, 0x011a9ae0, 0x0296e11e, 0x01d6760b, 0x02f090e3, 0x031f2a0d, 0x00407d79, 0x01e61bad, 0x0033e4b7}}, Y: Field{[10]uint32{0x003bcbd8, 0x014f88d7, 0x0159528f, 0x027444df, 0x026c9d8a, 0x00a51638, 0x00c1f053, 0x0079af2f, 0x01b7f3e3, 0x0029f4d4}}}, + {X: Field{[10]uint32{0x029c1179, 0x01466144, 0x0287d08f, 0x02a5b8a9, 0x03b06154, 0x020fa2cd, 0x039df9be, 0x00a0e8ed, 0x033ecfd8, 0x002c6ac2}}, Y: Field{[10]uint32{0x01506bbf, 0x017435ba, 0x0305812d, 0x0254e0df, 0x0099e973, 0x0204a403, 0x034cd97b, 0x014d2907, 0x02f34bab, 0x00336dfc}}}, + {X: Field{[10]uint32{0x021789ce, 0x02549283, 0x0035424e, 0x028a62cc, 0x01197296, 0x00ffaeb6, 0x0399295f, 0x0327a13e, 0x03299cd4, 0x00285d0c}}, Y: Field{[10]uint32{0x037e1afe, 0x00bd75fd, 0x03fc4428, 0x02913cbc, 0x035bee11, 0x0373e9b5, 0x0078088a, 0x00d5ddbc, 0x02f44cf5, 0x00102653}}}, + {X: Field{[10]uint32{0x01c0573b, 0x02868af6, 0x01e0b0d0, 0x011981fc, 0x0338b318, 0x006954c5, 0x03b946a6, 0x02b1f0f1, 0x00864efc, 0x0000906d}}, Y: Field{[10]uint32{0x03a0d574, 0x03d72607, 0x0197c832, 0x0166eb4e, 0x002f9801, 0x02f2900f, 0x01f3ba8f, 0x00734cc9, 0x0048eec6, 0x001733a2}}}, + {X: Field{[10]uint32{0x0291b387, 0x00f8f937, 0x0137ed75, 0x01534960, 0x03e3efd3, 0x01e66ac2, 0x01559adf, 0x01e611a6, 0x02096499, 0x00207e20}}, Y: Field{[10]uint32{0x0226d15c, 0x031c79aa, 0x01967a32, 0x0266be8a, 0x0243bda5, 0x03cf3236, 0x01e5caa5, 0x01c1846e, 0x01b85bfd, 0x0023e7fb}}}, + {X: Field{[10]uint32{0x024e5a5b, 0x03d75251, 0x006fe8fb, 0x01ad955c, 0x00c22da9, 0x028bb095, 0x00793d64, 0x00851480, 0x0231bd2c, 0x00127590}}, Y: Field{[10]uint32{0x0351e825, 0x0350ccf1, 0x0302b548, 0x0100fc69, 0x01bf9864, 0x01c71b76, 0x01f81216, 0x00b2b607, 0x02dab0d7, 0x003ebb23}}}, + {X: Field{[10]uint32{0x026e0ae4, 0x01f6db41, 0x029387e7, 0x013651db, 0x006daea2, 0x02dd0260, 0x03e1f159, 0x00e90471, 0x00324fad, 0x001d3053}}, Y: Field{[10]uint32{0x00641a41, 0x01ce2038, 0x009fd5aa, 0x0176af6e, 0x013ee016, 0x011b9ad9, 0x031a2cb9, 0x03972fc0, 0x02031fbe, 0x002bde54}}}, + {X: Field{[10]uint32{0x02a1e7c3, 0x012db5c4, 0x011b2a98, 0x00674276, 0x00930f9c, 0x004e0f1b, 0x03f42158, 0x036532f8, 0x009c7342, 0x00222f08}}, Y: Field{[10]uint32{0x005b3e08, 0x03265313, 0x02a2346a, 0x03985606, 0x01b817eb, 0x00a1d843, 0x0288866e, 0x021c8e26, 0x034576dd, 0x002b2df5}}}, + {X: Field{[10]uint32{0x026eb3f8, 0x0361738a, 0x02e77c1b, 0x01099daa, 0x0009bee2, 0x0285497d, 0x03b93c85, 0x02a2337d, 0x0068c81c, 0x00121b23}}, Y: Field{[10]uint32{0x03e52d54, 0x03749bd3, 0x0234ec1a, 0x0013eccf, 0x01d62490, 0x03d79a12, 0x02648706, 0x02a5f357, 0x014b035f, 0x00383fb2}}}, + {X: Field{[10]uint32{0x00a681a3, 0x033ae401, 0x02f14e28, 0x00f5b97e, 0x03ba3904, 0x034377cd, 0x01e30fb5, 0x02388ded, 0x02116c58, 0x001287be}}, Y: Field{[10]uint32{0x017b64f4, 0x03efc6a6, 0x00d538fc, 0x030506f6, 0x0365f2ac, 0x02f391db, 0x0137dd31, 0x01c596a2, 0x03373c90, 0x002ec659}}}, + {X: Field{[10]uint32{0x00eb28d2, 0x0110a51e, 0x0392f8da, 0x016dfdfd, 0x002632e8, 0x03bf9eed, 0x0317f308, 0x0027b436, 0x0006c696, 0x0035dd17}}, Y: Field{[10]uint32{0x01b96a73, 0x00fc208e, 0x0297cad1, 0x001fdc0a, 0x025371f0, 0x006b76c6, 0x0046e11b, 0x00af557f, 0x02754d1b, 0x0001d5d6}}}, + {X: Field{[10]uint32{0x03e68def, 0x01ebe90a, 0x015f49ca, 0x0143f666, 0x00dc333d, 0x03dd2a1f, 0x0208cedd, 0x009f1a9a, 0x032ea3db, 0x002f5d4b}}, Y: Field{[10]uint32{0x01e9491a, 0x03b0e2e9, 0x024d791d, 0x01b76a70, 0x02ef5c57, 0x01b54318, 0x00725ed2, 0x023482e9, 0x02af6747, 0x000de3e2}}}, + {X: Field{[10]uint32{0x03224d21, 0x0115ec07, 0x001f94be, 0x0131fccc, 0x0055eb30, 0x03380357, 0x0202bffa, 0x031faf19, 0x033315a3, 0x003bd620}}, Y: Field{[10]uint32{0x03517abd, 0x02830482, 0x0123ff46, 0x01532d69, 0x01eb52e0, 0x0210dd47, 0x01a95f7e, 0x037ef8f6, 0x02ab6253, 0x0015bace}}}, + {X: Field{[10]uint32{0x0253727a, 0x031810d4, 0x01f1fc1d, 0x0339fb7c, 0x0106b495, 0x010b7c90, 0x01beea4f, 0x02097682, 0x03747355, 0x000b0778}}, Y: Field{[10]uint32{0x03a150c2, 0x00ec74e1, 0x0058873a, 0x0340a34b, 0x005ff92c, 0x01dd9caa, 0x01986bdf, 0x03d7623e, 0x02609082, 0x0026164d}}}, + {X: Field{[10]uint32{0x000daf99, 0x03fd43ca, 0x02535324, 0x008aa23c, 0x00b78e2a, 0x03ce6cba, 0x00c90016, 0x000503d4, 0x031b23e6, 0x00127e35}}, Y: Field{[10]uint32{0x018b04ec, 0x024ea1ad, 0x0254622b, 0x03207f90, 0x00308111, 0x03dbf788, 0x00ec3393, 0x039f70cc, 0x02654807, 0x003d9aed}}}, + {X: Field{[10]uint32{0x009f37be, 0x0185eac6, 0x03ceb6df, 0x01e36d64, 0x02d18fdf, 0x0153ce94, 0x02a30f99, 0x018728ac, 0x0385754b, 0x000d9727}}, Y: Field{[10]uint32{0x0132825e, 0x00169054, 0x01a3af14, 0x000488da, 0x007681b6, 0x0028c9e5, 0x026aced6, 0x01af2ffe, 0x03e6aca5, 0x00310ffb}}}, + {X: Field{[10]uint32{0x01f1b5af, 0x013a2fc8, 0x023108e2, 0x00f86612, 0x027e2cb5, 0x028c473c, 0x02446c4d, 0x01a3b706, 0x03e9e896, 0x00073cb3}}, Y: Field{[10]uint32{0x00c966b7, 0x007bd688, 0x03803673, 0x004b8b2b, 0x03aebc7b, 0x029a17c8, 0x038f1041, 0x00c251ed, 0x01ac43c5, 0x001c795b}}}, + {X: Field{[10]uint32{0x008ca3ec, 0x03398dad, 0x03d5225d, 0x03e38072, 0x02219694, 0x01fa1de5, 0x011c26fa, 0x00089bce, 0x00796266, 0x003ccc0d}}, Y: Field{[10]uint32{0x02762827, 0x023e3e98, 0x030026f4, 0x03215aa4, 0x02afa585, 0x013e0e90, 0x0359ab87, 0x03a5176e, 0x03f4c110, 0x001f7a82}}}, + {X: Field{[10]uint32{0x00b27154, 0x030c94f9, 0x02df0587, 0x01a46b9e, 0x008756a9, 0x008a5fa8, 0x00664f90, 0x01b220e6, 0x004c4bc1, 0x002da249}}, Y: Field{[10]uint32{0x0050c856, 0x03466a39, 0x00364c27, 0x02b971c0, 0x00bd7483, 0x02d29d68, 0x03f89a90, 0x00da3325, 0x03481357, 0x0026d221}}}, + {X: Field{[10]uint32{0x038cbe41, 0x02c45018, 0x00517f3e, 0x00089035, 0x01a78b43, 0x0392f808, 0x032f8745, 0x00dc73fb, 0x00d2d6b4, 0x002fcd3f}}, Y: Field{[10]uint32{0x0397ac02, 0x01386557, 0x03546546, 0x00e09fd9, 0x001ef6a2, 0x006d0ef0, 0x0372914e, 0x01baba39, 0x00d27e32, 0x00339a22}}}, + {X: Field{[10]uint32{0x018d74fe, 0x03520844, 0x01cd110e, 0x018f116e, 0x00d51ffe, 0x01300094, 0x005a5944, 0x031e5b3a, 0x026d231b, 0x0030825e}}, Y: Field{[10]uint32{0x03e4ac87, 0x002da82f, 0x0372b135, 0x00f96e67, 0x01d1f92b, 0x0299d221, 0x023a85ac, 0x0305cf87, 0x0013fc4a, 0x00162c19}}}, + {X: Field{[10]uint32{0x017afa81, 0x01a8cc10, 0x026184d4, 0x0261036c, 0x02e3e817, 0x03191eba, 0x011b1de3, 0x0013cc28, 0x02223d88, 0x0021d298}}, Y: Field{[10]uint32{0x0380b429, 0x00e83b6b, 0x00f8f6b1, 0x03803bdc, 0x02b31668, 0x03263cd5, 0x02b181d5, 0x03988a5d, 0x01f67986, 0x00104ca9}}}, + {X: Field{[10]uint32{0x01bc605c, 0x021382bd, 0x03b85b97, 0x00f332a8, 0x021f2846, 0x0030fb51, 0x002227ab, 0x03564a05, 0x028a1a05, 0x002b1f1b}}, Y: Field{[10]uint32{0x018a2186, 0x02c52cc4, 0x00da4a08, 0x036da1e5, 0x01c107a9, 0x018fd71c, 0x0260a0a9, 0x00ce5fae, 0x0195581e, 0x00069668}}}, + {X: Field{[10]uint32{0x0333342c, 0x02c58e8c, 0x00a65575, 0x02e0bc95, 0x0344bc12, 0x005c5697, 0x0075c01a, 0x028fd822, 0x02d8d825, 0x000fc4f8}}, Y: Field{[10]uint32{0x0025e3b7, 0x00fe8716, 0x02724339, 0x033f5ee9, 0x036a2e6e, 0x02d788a4, 0x02f76a68, 0x009847ff, 0x0082fb2c, 0x002ebfda}}}, + {X: Field{[10]uint32{0x03a8fe2d, 0x03e57b2f, 0x03cec4d5, 0x003d327d, 0x01aa7e40, 0x007418c3, 0x03e26315, 0x01fce770, 0x0354515e, 0x0007afac}}, Y: Field{[10]uint32{0x025c85cf, 0x02847deb, 0x02daca6c, 0x02e6131c, 0x00c70724, 0x00617ce9, 0x00a2473c, 0x03373ce1, 0x00ef00c2, 0x0028b8d7}}}, + {X: Field{[10]uint32{0x0202b2ab, 0x00668777, 0x019a0d2d, 0x027388ae, 0x00b47d8f, 0x004ad176, 0x0059218d, 0x039d979b, 0x0365b211, 0x0030b736}}, Y: Field{[10]uint32{0x00f3be50, 0x01bd4389, 0x01237b14, 0x00cb25ad, 0x028722e0, 0x00967e21, 0x009326e9, 0x0045e9ca, 0x039ca960, 0x00382a96}}}, + {X: Field{[10]uint32{0x00bc0d45, 0x03a1e459, 0x01b85841, 0x02e09c32, 0x0207f360, 0x000e3db1, 0x02ed8a9c, 0x03451238, 0x01f7e2a9, 0x0012575a}}, Y: Field{[10]uint32{0x017088d2, 0x03d67825, 0x003e70bd, 0x02f84d0a, 0x03c48584, 0x013eb1bd, 0x034465d7, 0x0339ee0e, 0x022a1dab, 0x0017ecff}}}, + {X: Field{[10]uint32{0x0053bab2, 0x01eb21cd, 0x0169d203, 0x01deeb56, 0x01270a94, 0x0368fd45, 0x01be43d8, 0x0393e5c0, 0x01692139, 0x0033ab11}}, Y: Field{[10]uint32{0x00908070, 0x00b05811, 0x00b3bca3, 0x01035548, 0x02f385ea, 0x01812dac, 0x002f2bd9, 0x03a1cad8, 0x01d815f4, 0x002f47f6}}}, + {X: Field{[10]uint32{0x01407e0d, 0x015625c2, 0x0140682f, 0x006835b3, 0x034e6dba, 0x002881ab, 0x01284cbc, 0x02e30073, 0x00b93196, 0x001fb474}}, Y: Field{[10]uint32{0x012801c5, 0x03286287, 0x00e0af1b, 0x03036103, 0x0111018e, 0x035d6a71, 0x034ee732, 0x002f988b, 0x02c96ba6, 0x003a568e}}}, + {X: Field{[10]uint32{0x01040b04, 0x02dc5e28, 0x010fba24, 0x02c84c49, 0x03ac5fe4, 0x02e9f325, 0x00fd4365, 0x033b2250, 0x03664f42, 0x0001cbec}}, Y: Field{[10]uint32{0x007dce41, 0x028994f1, 0x029bcdbb, 0x0372887b, 0x0063d551, 0x02d4b3a4, 0x01e5c9b4, 0x0047d7d7, 0x031a93a2, 0x0003060a}}}, + {X: Field{[10]uint32{0x0008beea, 0x0183c118, 0x00309021, 0x00b56455, 0x03469019, 0x00f9b615, 0x0320043d, 0x00791759, 0x018c9ca9, 0x003741b3}}, Y: Field{[10]uint32{0x001e7ecd, 0x021771b1, 0x03ce272b, 0x016e402c, 0x01418970, 0x020faf60, 0x03a8a7ee, 0x03a8efe7, 0x03276eeb, 0x0033705c}}}, + {X: Field{[10]uint32{0x0178cd13, 0x02a6a64e, 0x00743da8, 0x010c0b8b, 0x003c708c, 0x02ffb6c4, 0x02504398, 0x01fc3c79, 0x0129e90a, 0x000203d8}}, Y: Field{[10]uint32{0x01deb82a, 0x009b53ce, 0x0000fe72, 0x0208e0a3, 0x02d95a30, 0x016d9129, 0x02f594f8, 0x03bfd28f, 0x0012145f, 0x001d365e}}}, + {X: Field{[10]uint32{0x005995b6, 0x0309f9c4, 0x01b24f5b, 0x00f13014, 0x020b48f8, 0x02bee774, 0x02970afb, 0x01422bbb, 0x00daf56b, 0x0015abcd}}, Y: Field{[10]uint32{0x01ae68bf, 0x02ac37b4, 0x0334d8a3, 0x016b7317, 0x03decca6, 0x00867734, 0x0105a4cc, 0x02386624, 0x02529e78, 0x0035077f}}}, + {X: Field{[10]uint32{0x023f91ee, 0x00f11393, 0x001f6ca3, 0x024e8687, 0x00148cf6, 0x01a27647, 0x005e29c4, 0x0196d031, 0x01ba7955, 0x00208089}}, Y: Field{[10]uint32{0x024b7db4, 0x000a2fae, 0x03334b24, 0x03c52ce1, 0x0011a0f4, 0x01e09a4a, 0x02bf5a31, 0x0270b819, 0x025bc89b, 0x000d88ab}}}, + {X: Field{[10]uint32{0x02ea57d2, 0x008cafa8, 0x037033bf, 0x02c5594a, 0x03ad388d, 0x0231fc27, 0x01a1b7ca, 0x0080aa25, 0x01bfcfcc, 0x001e497f}}, Y: Field{[10]uint32{0x0290525c, 0x00dcc253, 0x00d0a9dc, 0x0072a105, 0x021ebcc2, 0x01b4fd7c, 0x019cf5ec, 0x01f72455, 0x0301c9cb, 0x0011bdfb}}}, + {X: Field{[10]uint32{0x01d81808, 0x01fd8341, 0x039f6102, 0x012a6ffd, 0x02663879, 0x036f4ac7, 0x03316eb8, 0x039cc416, 0x036af38a, 0x0012c892}}, Y: Field{[10]uint32{0x015c3dac, 0x03e72c56, 0x029d423f, 0x02207f19, 0x00b6dc68, 0x007ff96d, 0x032ad2e1, 0x00c00aee, 0x0208b163, 0x000c50fa}}}, + {X: Field{[10]uint32{0x007380ee, 0x02bc831a, 0x013cd28d, 0x0192a904, 0x022c1bdd, 0x01b39223, 0x02a1a36e, 0x03d3ad80, 0x03fa4135, 0x000b01d9}}, Y: Field{[10]uint32{0x03bc16a7, 0x006f8ec3, 0x0389a5f7, 0x00ac4142, 0x0006a65d, 0x004dcf78, 0x002da710, 0x00c185f3, 0x03fce78d, 0x003770fb}}}, + {X: Field{[10]uint32{0x00a7ae7c, 0x0366ee94, 0x01ef1982, 0x03097544, 0x0137b5a2, 0x006a7e0d, 0x02ed2d94, 0x026a13bd, 0x013ee717, 0x0020e0df}}, Y: Field{[10]uint32{0x03b66dbe, 0x00092db8, 0x008d8556, 0x03c9e51b, 0x01fe2294, 0x029809ed, 0x02f1a495, 0x01ed32a1, 0x02166095, 0x00188807}}}, + {X: Field{[10]uint32{0x0095387a, 0x009c4256, 0x01d9bda4, 0x027875c3, 0x0225e50d, 0x00d6fc76, 0x028e0118, 0x03c15d4e, 0x0334e560, 0x0033c1d6}}, Y: Field{[10]uint32{0x02127018, 0x001c6128, 0x02a1404b, 0x03746035, 0x032b11d8, 0x00f7ce35, 0x0219f6f3, 0x03d348e3, 0x01d0330f, 0x0031cc82}}}, + {X: Field{[10]uint32{0x008931a4, 0x006e20df, 0x0329dcb0, 0x00b04020, 0x039d06ba, 0x0038faed, 0x00680300, 0x01d747bd, 0x00ff9b18, 0x003560fe}}, Y: Field{[10]uint32{0x03ae3292, 0x02f94f1b, 0x0258cd55, 0x0270ccee, 0x00aaac7c, 0x0165ad42, 0x03cfcc69, 0x024ae9af, 0x031c03f0, 0x003e33f3}}}, + {X: Field{[10]uint32{0x03eaefaa, 0x006de490, 0x02220343, 0x02cb687f, 0x0327568b, 0x010bb6c6, 0x01853723, 0x00e26ff0, 0x01b621d2, 0x001547fa}}, Y: Field{[10]uint32{0x023c24e0, 0x02b74095, 0x023d8c3b, 0x03fa5c48, 0x03ff48e5, 0x03cc4467, 0x02ff5057, 0x018f331a, 0x004ae485, 0x001b1da4}}}, + {X: Field{[10]uint32{0x016a80b2, 0x018fdbb4, 0x02da9a9d, 0x0252f239, 0x0051f063, 0x0339f264, 0x0162be7b, 0x00bc92c2, 0x00fc7406, 0x0006edde}}, Y: Field{[10]uint32{0x01d88318, 0x0385d018, 0x03bdb14b, 0x00bc775e, 0x0260e935, 0x03fc0dbe, 0x02700b68, 0x03459cf4, 0x013d2f4e, 0x0009d53d}}}, + {X: Field{[10]uint32{0x03e364aa, 0x00ff8439, 0x03be6e4a, 0x0313a5f3, 0x01aa0744, 0x03fe354e, 0x009f1a93, 0x0160be25, 0x02f71261, 0x00028542}}, Y: Field{[10]uint32{0x02ea4773, 0x037dc87a, 0x03ab99e0, 0x03b57e5b, 0x03100737, 0x01b86fd1, 0x02124715, 0x01c70be7, 0x02fea686, 0x00388a86}}}, + {X: Field{[10]uint32{0x032e2a9e, 0x00b856b9, 0x0380b724, 0x02f095e1, 0x00835ed2, 0x023a4f5a, 0x0163a030, 0x037e475e, 0x03df727f, 0x003253b0}}, Y: Field{[10]uint32{0x0152009c, 0x00d3485c, 0x030d50a9, 0x0042cfd5, 0x02011b28, 0x003eb427, 0x0312b35f, 0x014f1518, 0x00e97bda, 0x00291da8}}}, + {X: Field{[10]uint32{0x0146875a, 0x02d97dfc, 0x03f255f8, 0x0285e131, 0x02f186bd, 0x008d69ca, 0x01427394, 0x00c8c5f1, 0x01dbebe1, 0x000cd9ae}}, Y: Field{[10]uint32{0x0345d3cf, 0x00c9c984, 0x01862eea, 0x0064805c, 0x026b6206, 0x010e4657, 0x03213835, 0x00a22508, 0x007895f5, 0x00017a89}}}, + {X: Field{[10]uint32{0x00e8ba25, 0x030e3978, 0x02373974, 0x02f91130, 0x0358bec6, 0x0024acae, 0x005ef365, 0x0197b32e, 0x026ce522, 0x00185b23}}, Y: Field{[10]uint32{0x01aa0970, 0x0126fc73, 0x033caba0, 0x0240bc7b, 0x02724a98, 0x03d04926, 0x03286f45, 0x00963362, 0x01433d6e, 0x00134f55}}}, + {X: Field{[10]uint32{0x02651827, 0x008a47da, 0x00b1d043, 0x0298c825, 0x032617b3, 0x01177129, 0x001d86ef, 0x03a13a2e, 0x01772e38, 0x001d37c8}}, Y: Field{[10]uint32{0x02e01334, 0x011b6308, 0x0360c487, 0x0071a86c, 0x032a9ccf, 0x0326e695, 0x00abc6f9, 0x02549ff1, 0x03af30f0, 0x000130ca}}}, + {X: Field{[10]uint32{0x01accbd1, 0x03f14008, 0x00ce5d68, 0x0366fb83, 0x02532f8d, 0x03bd0bea, 0x01966d15, 0x0114ca5e, 0x01bf76b7, 0x00060528}}, Y: Field{[10]uint32{0x00d46bdc, 0x02feeb6b, 0x02ef3154, 0x01b826cb, 0x037af174, 0x03ea4ee6, 0x0205ad25, 0x0350e6c8, 0x01ff0da9, 0x0017d77d}}}, + {X: Field{[10]uint32{0x018625cc, 0x01db00ae, 0x02975c74, 0x019b108a, 0x035f444d, 0x03a17ef6, 0x01f22878, 0x01d49aeb, 0x029498ff, 0x000a2447}}, Y: Field{[10]uint32{0x02638537, 0x03240f07, 0x01ada5e4, 0x02ef8e02, 0x02eac150, 0x02c886e9, 0x0069542f, 0x01801a76, 0x00f35cf2, 0x00168d07}}}, + {X: Field{[10]uint32{0x01270865, 0x0343bf8a, 0x0279abd6, 0x006f9913, 0x02f441ce, 0x0227a1a1, 0x01ce2926, 0x011570e8, 0x0371e82a, 0x00356b3f}}, Y: Field{[10]uint32{0x0126d5e8, 0x031f6007, 0x0070e00d, 0x025a5636, 0x03ca8cde, 0x0344fc0c, 0x004971aa, 0x03a5c281, 0x008f1b46, 0x002ab1b5}}}, + {X: Field{[10]uint32{0x02711596, 0x002638b8, 0x00b6a91f, 0x015d4401, 0x008f03fc, 0x00842545, 0x0365e173, 0x00361675, 0x001b0221, 0x00173d47}}, Y: Field{[10]uint32{0x02d5c3b3, 0x016f73c9, 0x01838f39, 0x03ba8e65, 0x00017fe9, 0x028a8852, 0x031e58ea, 0x03d164b0, 0x01e0610d, 0x0007bac6}}}, +} + +var preG128 = []XY{ + {X: Field{[10]uint32{0x02c4c0da, 0x02d11327, 0x023351b7, 0x01e1c8fa, 0x02e88c56, 0x0207c58b, 0x039c1ad9, 0x017cce48, 0x01d2f63b, 0x0023da2e}}, Y: Field{[10]uint32{0x001fff82, 0x032fde54, 0x00bfdf23, 0x03fa5544, 0x01bbea2c, 0x01af8857, 0x01d90c2b, 0x00e61b78, 0x032dba06, 0x00198aa7}}}, + {X: Field{[10]uint32{0x023809fa, 0x00ae3b74, 0x014be18e, 0x02cd4765, 0x00fd845c, 0x009147c2, 0x0293363f, 0x027c8a2e, 0x01be2e50, 0x000e0e07}}, Y: Field{[10]uint32{0x031fed52, 0x001d460c, 0x0324dbd7, 0x032ccb63, 0x003681fc, 0x0083ac73, 0x01405a55, 0x005f72c2, 0x010a0fb9, 0x003928cb}}}, + {X: Field{[10]uint32{0x03c2a310, 0x01099225, 0x026303ea, 0x02950048, 0x01f186ae, 0x0291a668, 0x0121b82a, 0x00ab9bda, 0x0324e437, 0x00124989}}, Y: Field{[10]uint32{0x0227ded0, 0x006da057, 0x038ce0c4, 0x004a9d7f, 0x036d1636, 0x01c50c0e, 0x02cfa569, 0x02afe568, 0x0373bca7, 0x0004cdf9}}}, + {X: Field{[10]uint32{0x02bd2d31, 0x012c1e73, 0x01b8d138, 0x015bfc1b, 0x004dcc1a, 0x011df8be, 0x02253b3e, 0x00324357, 0x028c1a24, 0x0038c195}}, Y: Field{[10]uint32{0x02546e44, 0x02d020e4, 0x03826692, 0x010af8dc, 0x02ffbc80, 0x03df436d, 0x00f2b107, 0x01098222, 0x03e37893, 0x0003ab1b}}}, + {X: Field{[10]uint32{0x023136b0, 0x0030e78d, 0x01dd9c53, 0x0366aad0, 0x0374ebf8, 0x00fef58c, 0x01b0e762, 0x033bf09c, 0x000e2428, 0x000ee784}}, Y: Field{[10]uint32{0x00dbbc8a, 0x03b05bdb, 0x01f81953, 0x028ceb4c, 0x02a2ae28, 0x03d1d6c9, 0x01533eb8, 0x02edc77c, 0x00152d16, 0x003ebee6}}}, + {X: Field{[10]uint32{0x03485d3f, 0x023c11cb, 0x03eee960, 0x01a2041e, 0x0317ca07, 0x0177b7bd, 0x036ca80f, 0x0326a4ad, 0x0149712a, 0x002ec2ab}}, Y: Field{[10]uint32{0x00a2f975, 0x00e4940f, 0x00bffe79, 0x03e8c59c, 0x00895a5a, 0x00a5f68d, 0x00d201f7, 0x0151e63b, 0x0053c583, 0x003a9a67}}}, + {X: Field{[10]uint32{0x02718dc9, 0x03b4ce8d, 0x023de4ae, 0x0136c044, 0x03e1e58b, 0x02bf8044, 0x028eb197, 0x03f30353, 0x02c8e4ee, 0x001e4242}}, Y: Field{[10]uint32{0x00fae7c5, 0x00c8ac47, 0x0008b963, 0x02dc2ea4, 0x02dd36af, 0x0366aa95, 0x01816cbc, 0x016e3c4f, 0x022b9190, 0x003aaadc}}}, + {X: Field{[10]uint32{0x0360c7d1, 0x025a531f, 0x01ad2a26, 0x039f35dd, 0x028dd71d, 0x01526e99, 0x003dbbce, 0x01ed5470, 0x01ade9f9, 0x0039df20}}, Y: Field{[10]uint32{0x02d72449, 0x01607ca0, 0x006d34ec, 0x03dc70a6, 0x03631470, 0x03aa0550, 0x03c3b323, 0x004c8717, 0x0078eef8, 0x000eb3c5}}}, + {X: Field{[10]uint32{0x01ccf6b0, 0x03ece915, 0x01341501, 0x02ba8b51, 0x003d633d, 0x037b61f3, 0x018878e3, 0x014473cb, 0x00e9dbce, 0x00378ad7}}, Y: Field{[10]uint32{0x01100666, 0x00a7adc4, 0x018bb348, 0x016b198c, 0x0065b8c4, 0x02c68dd1, 0x03717e98, 0x038386ef, 0x02f3d3c3, 0x003c415d}}}, + {X: Field{[10]uint32{0x03c03c56, 0x005182c4, 0x0258b26b, 0x02977919, 0x0329659c, 0x03048485, 0x0259fbd7, 0x028bf87a, 0x01ffd491, 0x00341ef7}}, Y: Field{[10]uint32{0x03405ce7, 0x00fd830a, 0x02ea76be, 0x03fe330b, 0x0161d963, 0x00778135, 0x01c40e2a, 0x025f743e, 0x0308cd3c, 0x002cab51}}}, + {X: Field{[10]uint32{0x036a4d51, 0x036ad06e, 0x0025710e, 0x01710d2e, 0x010f8da4, 0x025b3a38, 0x025ec4c3, 0x005abcdd, 0x027c5d30, 0x0020900f}}, Y: Field{[10]uint32{0x03463b19, 0x024bab5e, 0x03c1b11e, 0x03313b19, 0x0199ab6c, 0x00fa1014, 0x016baddb, 0x02dd9d11, 0x021be27c, 0x00034259}}}, + {X: Field{[10]uint32{0x010680cf, 0x032d219d, 0x0023f438, 0x00f65507, 0x01930f93, 0x0132bd36, 0x03faa58c, 0x009bd498, 0x0131fbd6, 0x003ab70c}}, Y: Field{[10]uint32{0x0087a914, 0x0253fc4b, 0x01a74360, 0x02770de4, 0x01a388fb, 0x01cb5740, 0x024b36c9, 0x02a25d71, 0x03b1c9b4, 0x0034f25d}}}, + {X: Field{[10]uint32{0x007987d9, 0x03ca427f, 0x038ac609, 0x0172ddf9, 0x0336bdd6, 0x019d23d3, 0x018a4b38, 0x03fc9314, 0x025f6758, 0x000e40fb}}, Y: Field{[10]uint32{0x002be83b, 0x03f8ab86, 0x028dab0c, 0x0061249e, 0x018d222a, 0x0348d1d2, 0x0115934b, 0x01075902, 0x014ea152, 0x0003a486}}}, + {X: Field{[10]uint32{0x03e6a5d9, 0x007e2096, 0x00e9323e, 0x010f6efe, 0x015759c3, 0x026a7c86, 0x035bdccf, 0x01228e11, 0x037839ab, 0x0034200e}}, Y: Field{[10]uint32{0x00582f0b, 0x012a4999, 0x01d24289, 0x01b39474, 0x0004ecf0, 0x00e2ebe9, 0x02ec15fb, 0x0325fa84, 0x0180ff29, 0x000b30ec}}}, + {X: Field{[10]uint32{0x00567ed0, 0x018a3ef0, 0x02c19215, 0x008f6a39, 0x018496dd, 0x033e2f81, 0x013a5aea, 0x01d26685, 0x0096b18a, 0x0007d5bc}}, Y: Field{[10]uint32{0x039dff58, 0x004f2d0d, 0x000d51fc, 0x03d06a4f, 0x01c94189, 0x02d9735a, 0x00044360, 0x03d2420c, 0x038a3b52, 0x003fbc8a}}}, + {X: Field{[10]uint32{0x038e213b, 0x03f016d8, 0x032974e0, 0x033f3c80, 0x0079e947, 0x008d2a8c, 0x006f5250, 0x01d0cb8e, 0x01b1a4a4, 0x000767da}}, Y: Field{[10]uint32{0x00d4ccbb, 0x00575bb9, 0x0372041f, 0x02cf4fdb, 0x005438d5, 0x00ac7689, 0x00500c3a, 0x001d86ce, 0x0017949c, 0x0036263b}}}, + {X: Field{[10]uint32{0x03629efd, 0x016a773e, 0x008b1aeb, 0x01537200, 0x00552133, 0x01719eb4, 0x03c43610, 0x032de04b, 0x01134d9d, 0x00004a32}}, Y: Field{[10]uint32{0x03e67c96, 0x01060602, 0x036e45ff, 0x0393b1bd, 0x02c160c8, 0x00267598, 0x03259360, 0x00984365, 0x014add15, 0x003fb8f9}}}, + {X: Field{[10]uint32{0x011a9685, 0x0038f643, 0x011fc49c, 0x015238b1, 0x00301f28, 0x01d581d7, 0x00b8d519, 0x02e53491, 0x012f5a95, 0x00087b00}}, Y: Field{[10]uint32{0x00de08ae, 0x0237864f, 0x00162d12, 0x029bf57f, 0x027418ed, 0x02527ca3, 0x03fef716, 0x0125fd31, 0x010577af, 0x000b7bc8}}}, + {X: Field{[10]uint32{0x02331cc5, 0x008a0d8f, 0x0311c584, 0x039df6be, 0x00761c3b, 0x031f3f1d, 0x0080e894, 0x022f0279, 0x0202fb9d, 0x001a23d4}}, Y: Field{[10]uint32{0x03302cd3, 0x02708631, 0x03d9462d, 0x02be27ba, 0x001a393e, 0x00900d0d, 0x007cabd9, 0x01069cbb, 0x015963b5, 0x0025ae9f}}}, + {X: Field{[10]uint32{0x03f02baf, 0x034ead3d, 0x03f682e4, 0x03bc3a2e, 0x010744d0, 0x0029434d, 0x0314c300, 0x02a3d6cc, 0x02ea1cb9, 0x003ed727}}, Y: Field{[10]uint32{0x03630418, 0x015fa77e, 0x02af0911, 0x0331f949, 0x006868e0, 0x01717a57, 0x028bd269, 0x031547ec, 0x0044e18f, 0x000a7ee2}}}, + {X: Field{[10]uint32{0x02c03421, 0x00d89732, 0x0380de0b, 0x03b1ed48, 0x01593168, 0x012a7787, 0x01f6a5d8, 0x02b8fcbd, 0x03e22eed, 0x003c51e7}}, Y: Field{[10]uint32{0x02764606, 0x015acb88, 0x02131cb8, 0x003120d4, 0x01c0b463, 0x03ef4d06, 0x0350d1a3, 0x022e084e, 0x015d2fd8, 0x0006990b}}}, + {X: Field{[10]uint32{0x031a7950, 0x0171ecaf, 0x0165a69f, 0x01eca261, 0x0200f60f, 0x03f83bfe, 0x005b0e09, 0x025dd24f, 0x01c5e819, 0x00089cfb}}, Y: Field{[10]uint32{0x027bda12, 0x02b8e7bf, 0x03530906, 0x03f13d42, 0x00b64691, 0x021254d6, 0x031a1df9, 0x01e364a7, 0x02388fd9, 0x002ceba8}}}, + {X: Field{[10]uint32{0x03ef5214, 0x0016b5e6, 0x0285656f, 0x03d2c518, 0x03496d59, 0x02ce768b, 0x03d10b32, 0x010de2d1, 0x000c3050, 0x00267e12}}, Y: Field{[10]uint32{0x0264b2cd, 0x029eb998, 0x0215171d, 0x00df9398, 0x02d930e4, 0x02d6aa67, 0x00bd397c, 0x010a1a36, 0x015d8e22, 0x00380075}}}, + {X: Field{[10]uint32{0x016a6f1f, 0x0195aea6, 0x03635bc9, 0x03561fd5, 0x0209c000, 0x024f2190, 0x00fdfc69, 0x004a035d, 0x017fe475, 0x0000e089}}, Y: Field{[10]uint32{0x0351d474, 0x01caab62, 0x019731c6, 0x00e78d96, 0x0130dbfa, 0x01ad7c7e, 0x01a4f1da, 0x032c1899, 0x033dfe52, 0x0030b71c}}}, + {X: Field{[10]uint32{0x00efb24b, 0x01179ffb, 0x034526e1, 0x03e7db57, 0x0262e5ea, 0x02b3211e, 0x01f4e1b2, 0x00e1af91, 0x02329125, 0x0008e84d}}, Y: Field{[10]uint32{0x016854c0, 0x0057d566, 0x03a6f49f, 0x01c0dcd2, 0x01413cc3, 0x03dc557c, 0x03817a1a, 0x02e888af, 0x037e0643, 0x00244a5d}}}, + {X: Field{[10]uint32{0x01149f0b, 0x002b0d5e, 0x039d48a3, 0x00f71102, 0x008cf559, 0x031737b5, 0x01791a18, 0x01937a8d, 0x026058a6, 0x0019967a}}, Y: Field{[10]uint32{0x02f2199d, 0x0031b5ac, 0x031ffc82, 0x036394d3, 0x035300d1, 0x010bf1b0, 0x007b69e7, 0x020dbecd, 0x0305a85d, 0x000ab731}}}, + {X: Field{[10]uint32{0x03a939fc, 0x0299f746, 0x01033037, 0x021d0508, 0x022899b4, 0x027f4a8f, 0x00e6f6c8, 0x034ed1fb, 0x03c6e1ac, 0x0014b70e}}, Y: Field{[10]uint32{0x03d05746, 0x03a270d0, 0x013e2709, 0x028fb946, 0x031e8f6b, 0x0168f13f, 0x003d9da1, 0x0041fef6, 0x034632ad, 0x00176bac}}}, + {X: Field{[10]uint32{0x01573551, 0x01dac435, 0x034f6173, 0x03add7c1, 0x01693fbc, 0x03251ef0, 0x01189ba9, 0x015d16f6, 0x029793cd, 0x001492ca}}, Y: Field{[10]uint32{0x00c80b71, 0x011b86ef, 0x02ca02d1, 0x0318f7b3, 0x01a6865a, 0x03a28bed, 0x02b92cc3, 0x03ec6a77, 0x01d6cb23, 0x0027a026}}}, + {X: Field{[10]uint32{0x0382756e, 0x01e45585, 0x029976fe, 0x02579641, 0x03525b7b, 0x02583a6d, 0x03e6c3dd, 0x01654e48, 0x01a8e2bc, 0x001cc860}}, Y: Field{[10]uint32{0x022e4823, 0x0318869c, 0x01d84eda, 0x0258523c, 0x03e3c42d, 0x02eba62a, 0x03a193c0, 0x03ac290a, 0x02b35592, 0x000945b1}}}, + {X: Field{[10]uint32{0x0102664b, 0x01c04479, 0x0315d8d5, 0x00f7ddba, 0x0249a7ae, 0x00bbdbf2, 0x038496ac, 0x00e3f7cc, 0x002d926e, 0x002e3a25}}, Y: Field{[10]uint32{0x02faf8eb, 0x00bd7b6f, 0x01d77f79, 0x0105a794, 0x03972486, 0x000c79b1, 0x0270ba22, 0x01623935, 0x016e7dea, 0x001e6435}}}, + {X: Field{[10]uint32{0x0098e4e5, 0x006de5f8, 0x001ae18d, 0x03989e25, 0x0119e744, 0x037733de, 0x00ac11e7, 0x02affdcb, 0x00f63e73, 0x000513a2}}, Y: Field{[10]uint32{0x0021837c, 0x027e0f0c, 0x02b3b4e0, 0x033df70b, 0x01158705, 0x029518cf, 0x018197fe, 0x03195431, 0x03f35df3, 0x00018f36}}}, + {X: Field{[10]uint32{0x003a9081, 0x023bef57, 0x0303975b, 0x024da055, 0x0160e5bc, 0x0271cf8f, 0x016a739c, 0x033638b4, 0x03dc489e, 0x00250db8}}, Y: Field{[10]uint32{0x01a7e59c, 0x002fd80e, 0x02d5e03a, 0x02cace99, 0x038e8d76, 0x02a139fd, 0x02a7806e, 0x01baff46, 0x031f50cb, 0x00051814}}}, + {X: Field{[10]uint32{0x00890db9, 0x01b09d48, 0x01e76193, 0x00177d9a, 0x03e840e0, 0x01c43464, 0x019b01a1, 0x03442d1b, 0x01617a56, 0x00274f09}}, Y: Field{[10]uint32{0x00521ea3, 0x019f38de, 0x02aca044, 0x0337a2bc, 0x001f89ff, 0x00b6a6e5, 0x01fee9b8, 0x03a6f30b, 0x00bc4c4a, 0x001aef70}}}, + {X: Field{[10]uint32{0x03db76c8, 0x02a1418f, 0x01d2d0dd, 0x02a2c398, 0x02d0aca5, 0x0114f13c, 0x00c6ae0b, 0x01fe2f86, 0x0250f51b, 0x000a7e63}}, Y: Field{[10]uint32{0x00e5d28f, 0x0038f1fc, 0x01186df8, 0x00c2b4de, 0x0358a6ec, 0x01016018, 0x02b8b211, 0x000c71cf, 0x00dcae8e, 0x0036bcef}}}, + {X: Field{[10]uint32{0x01c22c94, 0x02bc1d13, 0x02e1a538, 0x014a535d, 0x0217a897, 0x0375811b, 0x0005e311, 0x02a8d806, 0x00c2c71d, 0x00359f4c}}, Y: Field{[10]uint32{0x014f670c, 0x00452ee9, 0x03d969c1, 0x02faabd2, 0x00e87ebb, 0x00b81a33, 0x02e690aa, 0x001ec2e4, 0x00e712c8, 0x00122e6c}}}, + {X: Field{[10]uint32{0x03c81649, 0x019809cb, 0x00334835, 0x02e65e9e, 0x03059aa7, 0x0340e805, 0x032c9b76, 0x030b92dd, 0x03a88ce9, 0x003c8b0a}}, Y: Field{[10]uint32{0x01b7028f, 0x001bf77e, 0x019a3cbc, 0x02a4233e, 0x022d92dc, 0x015c09c2, 0x03a4e0f1, 0x02f85890, 0x0310f190, 0x001aaa79}}}, + {X: Field{[10]uint32{0x02c5f894, 0x00c25a66, 0x034a5eff, 0x03b73f01, 0x0336b722, 0x03bcc8d3, 0x02533c90, 0x01320f94, 0x018d06b9, 0x0003179c}}, Y: Field{[10]uint32{0x02eef436, 0x02cc5983, 0x01d7e642, 0x027b3111, 0x03f7f8ce, 0x02a71412, 0x024e810f, 0x01986775, 0x0051ccfc, 0x00092584}}}, + {X: Field{[10]uint32{0x0144d611, 0x019bdcde, 0x014a2c1f, 0x022cccd5, 0x02c291dc, 0x03e1fb93, 0x0218999e, 0x03adf55d, 0x00aac836, 0x0009aa2f}}, Y: Field{[10]uint32{0x03bcecc9, 0x0331976e, 0x027a6c69, 0x03438667, 0x00e57192, 0x00781d8f, 0x022da29c, 0x01998eb3, 0x01ba0723, 0x00308014}}}, + {X: Field{[10]uint32{0x01fa098c, 0x020cd18b, 0x027aa2c0, 0x03841d93, 0x016bcf65, 0x029925b5, 0x0301ba17, 0x0055166f, 0x0170fb7b, 0x000e238d}}, Y: Field{[10]uint32{0x007be798, 0x0003d7e8, 0x02bdea95, 0x0049176d, 0x0299120d, 0x038d12f9, 0x01561e5a, 0x003fc151, 0x0122a2eb, 0x000b5383}}}, + {X: Field{[10]uint32{0x01250709, 0x03e3dc85, 0x03fca7a7, 0x0070ba95, 0x0200da2d, 0x03aacb1b, 0x0227efa4, 0x01e0f88c, 0x03abb5a0, 0x001a0626}}, Y: Field{[10]uint32{0x007ae856, 0x02e0d34f, 0x00855a0e, 0x005cc34c, 0x003e42d5, 0x0145117e, 0x00954f62, 0x034fea85, 0x01833694, 0x002f4c2f}}}, + {X: Field{[10]uint32{0x012190ab, 0x0364344a, 0x03d42b88, 0x020ff5ec, 0x01ea6ff6, 0x00106289, 0x03b7aa90, 0x01de5659, 0x0023bb34, 0x00190b82}}, Y: Field{[10]uint32{0x03b4000f, 0x018e71fc, 0x00903210, 0x02418eda, 0x01286b46, 0x00e76bce, 0x02748926, 0x0014bf8d, 0x02a786ec, 0x0036dcf7}}}, + {X: Field{[10]uint32{0x00924afa, 0x01a0d719, 0x02027f91, 0x00bf4e61, 0x037f4eff, 0x0225abea, 0x01addea5, 0x015415d4, 0x0281e5bf, 0x0026adba}}, Y: Field{[10]uint32{0x0229bb6c, 0x0001eb1d, 0x02f2b47d, 0x026ca659, 0x03dd951c, 0x03392cf9, 0x0329efcb, 0x02979cbf, 0x02a74870, 0x000e301a}}}, + {X: Field{[10]uint32{0x014a8ee7, 0x020563ba, 0x01a62dd1, 0x0056f780, 0x01e059e0, 0x0227993e, 0x0298248e, 0x03da71c6, 0x01aee567, 0x002c2601}}, Y: Field{[10]uint32{0x0183d221, 0x01eca386, 0x0212c814, 0x02a038f6, 0x03dea885, 0x034882b0, 0x01382eb6, 0x004bbf31, 0x016a7ec9, 0x0018aba8}}}, + {X: Field{[10]uint32{0x0107e6e5, 0x01306f00, 0x03b5a82b, 0x03c25d6f, 0x0291d6b5, 0x020c5a46, 0x018bfbc9, 0x03568d29, 0x025b636e, 0x000f58ca}}, Y: Field{[10]uint32{0x03395a1c, 0x033e8c73, 0x01aef682, 0x0273c581, 0x027a7ee0, 0x032d3525, 0x036ba0f9, 0x005b64ba, 0x009e75bf, 0x0015de91}}}, + {X: Field{[10]uint32{0x00cef707, 0x0069a5d0, 0x0150ab1c, 0x00d4e8db, 0x03b51e36, 0x025ab22e, 0x02db69dd, 0x017fcb3b, 0x03f0f70d, 0x001ae086}}, Y: Field{[10]uint32{0x02d12e5d, 0x00ede271, 0x0347a6d8, 0x02d37e8b, 0x00006371, 0x03377aa5, 0x00286745, 0x03048220, 0x0211993f, 0x001484b3}}}, + {X: Field{[10]uint32{0x01728b23, 0x036e1511, 0x0196c789, 0x00c32476, 0x02dc33b3, 0x03364e53, 0x027740b5, 0x03f82e14, 0x01514496, 0x002fca52}}, Y: Field{[10]uint32{0x0112782c, 0x009cac7a, 0x03baec13, 0x00aaed06, 0x034c53bc, 0x004378e3, 0x03f745c4, 0x0339e8d0, 0x01e5da35, 0x001e42bb}}}, + {X: Field{[10]uint32{0x0175ec80, 0x02d80d47, 0x02f06742, 0x026c453d, 0x024906f6, 0x01126251, 0x0268267c, 0x025a2859, 0x00c382bf, 0x002954d5}}, Y: Field{[10]uint32{0x025962e8, 0x0298c332, 0x00c88179, 0x025b460a, 0x019dd6d2, 0x0337ed6c, 0x03319676, 0x00697ca2, 0x01dc4566, 0x000a026f}}}, + {X: Field{[10]uint32{0x0249a693, 0x03e8d109, 0x019f45a6, 0x02be13d4, 0x03b893f8, 0x03ed2603, 0x03a1574f, 0x020c46ef, 0x0036abcd, 0x003f0054}}, Y: Field{[10]uint32{0x019db819, 0x03d9dafc, 0x00789657, 0x03280f9f, 0x02f5542a, 0x026b34fd, 0x01cd0042, 0x03812ce1, 0x02781946, 0x00343da8}}}, + {X: Field{[10]uint32{0x019a7aae, 0x01e26003, 0x024eab75, 0x01b1447e, 0x0059caea, 0x012bef89, 0x02a799fb, 0x03cd489c, 0x010d9f81, 0x00185910}}, Y: Field{[10]uint32{0x025a7966, 0x031c54fb, 0x01ac0abe, 0x03d7539f, 0x034982ff, 0x016e4e5b, 0x03ee69c9, 0x027f34f2, 0x00800ba1, 0x0024af05}}}, + {X: Field{[10]uint32{0x030b5f2d, 0x003f2145, 0x01fc6faa, 0x01f47b01, 0x016e2591, 0x0060ad3d, 0x00f9a9b3, 0x035cddca, 0x01358de9, 0x003be059}}, Y: Field{[10]uint32{0x007ec595, 0x0320fa9d, 0x03d7e155, 0x03732c71, 0x010f1721, 0x02dbf4cb, 0x0249df88, 0x02a71141, 0x0026403c, 0x00370dc9}}}, + {X: Field{[10]uint32{0x0187a8ed, 0x03029222, 0x032e2642, 0x011a107a, 0x00178c56, 0x01c34b10, 0x0304e681, 0x00db7771, 0x00b989a4, 0x0010a30d}}, Y: Field{[10]uint32{0x02eebe06, 0x00deaf4e, 0x01f4f512, 0x01f9c651, 0x003836f9, 0x010da58d, 0x004dc3e6, 0x01191b28, 0x0158251c, 0x002c7c90}}}, + {X: Field{[10]uint32{0x01417a9e, 0x03f88199, 0x024a55ac, 0x01cdfb69, 0x025f19da, 0x02faef5a, 0x01e62437, 0x0055ed05, 0x0382f909, 0x001bad85}}, Y: Field{[10]uint32{0x00577b72, 0x013bfffa, 0x00c3904c, 0x03b8a43b, 0x02af03ed, 0x026710bd, 0x012f168f, 0x03cac5b2, 0x0146baed, 0x0013f9f1}}}, + {X: Field{[10]uint32{0x0376fa4b, 0x01c718a8, 0x01646e43, 0x01cf4530, 0x03cb6f95, 0x02338c77, 0x03830099, 0x013fb17b, 0x02f1466d, 0x00264b82}}, Y: Field{[10]uint32{0x01f9e825, 0x01a4354a, 0x01ae3871, 0x0398c75e, 0x0150d000, 0x002590d9, 0x001e3a90, 0x025acbac, 0x02691e43, 0x003438f6}}}, + {X: Field{[10]uint32{0x01721d11, 0x0210e0c1, 0x039c3010, 0x000e33d6, 0x00513e99, 0x00925a4d, 0x00f31d11, 0x0001e3c8, 0x024badc7, 0x003fb6d5}}, Y: Field{[10]uint32{0x00157a39, 0x01237bce, 0x00b2fa94, 0x021f5502, 0x02ba26ae, 0x015fc580, 0x015d97d6, 0x010833cb, 0x024957e8, 0x0006a38a}}}, + {X: Field{[10]uint32{0x033b24bd, 0x010c3401, 0x03575e54, 0x009989d2, 0x023e6832, 0x03109245, 0x007088d3, 0x02746049, 0x028a4dd8, 0x003cfc81}}, Y: Field{[10]uint32{0x03a2bfa8, 0x0069fdde, 0x00f0e75c, 0x017f87c7, 0x0312381c, 0x002a9f8c, 0x026ab1ee, 0x03d18850, 0x011900a7, 0x003caaaf}}}, + {X: Field{[10]uint32{0x00a13680, 0x00c1dc8f, 0x02e02b3d, 0x016364f6, 0x015b6aa4, 0x01daa160, 0x024e7c14, 0x028d6637, 0x025e4217, 0x000cae48}}, Y: Field{[10]uint32{0x02133802, 0x00d74396, 0x008a396f, 0x0051cce0, 0x03532462, 0x0341c7a5, 0x0185683d, 0x018d004a, 0x00042685, 0x001d19ba}}}, + {X: Field{[10]uint32{0x02e64a8a, 0x0266e7f6, 0x01c7fc62, 0x024fe893, 0x01ee6c6b, 0x03ad64be, 0x03899792, 0x035ac13f, 0x0287385e, 0x00214022}}, Y: Field{[10]uint32{0x0104a2df, 0x01b8a129, 0x023622ae, 0x023e8943, 0x0284b5b3, 0x0020961d, 0x01569f6c, 0x0015dbee, 0x022b8a5b, 0x0007c9e7}}}, + {X: Field{[10]uint32{0x002effd4, 0x0114bdaa, 0x030e9e44, 0x01883c04, 0x010b8353, 0x03f126ff, 0x00edac7c, 0x02ac2fb2, 0x0033ebbe, 0x00136b1e}}, Y: Field{[10]uint32{0x023c740a, 0x03426a80, 0x001f00cc, 0x02d76e3b, 0x01133dc3, 0x02d08df7, 0x014ada57, 0x02a9a184, 0x0170f230, 0x003f2746}}}, + {X: Field{[10]uint32{0x016dbeeb, 0x03cc40b5, 0x03d71031, 0x010406e4, 0x034b44de, 0x014d77d6, 0x0340226e, 0x01755066, 0x008145a6, 0x0026dd56}}, Y: Field{[10]uint32{0x0089a02d, 0x03674478, 0x00e1fa1e, 0x0185679f, 0x01c15160, 0x036ee8ed, 0x03382907, 0x00dedf26, 0x01710d69, 0x00340c90}}}, + {X: Field{[10]uint32{0x03bc8bdd, 0x00fb66b2, 0x004bdb58, 0x03291877, 0x0198b525, 0x02d9176d, 0x02e6e8b1, 0x029f5e99, 0x02b92592, 0x0006f5b3}}, Y: Field{[10]uint32{0x0229944c, 0x0242b126, 0x01e4e7b7, 0x03955473, 0x015a1c4c, 0x0296dc15, 0x037abb10, 0x022fa922, 0x028784a9, 0x00269677}}}, + {X: Field{[10]uint32{0x015b56ee, 0x03d4d56f, 0x00637268, 0x01f62d11, 0x016b3a3c, 0x03f9e1ba, 0x025b08a7, 0x00250594, 0x02b93b36, 0x00096a2c}}, Y: Field{[10]uint32{0x025f22ec, 0x0393a2e5, 0x0240ac45, 0x02bb7dc6, 0x0045f131, 0x03b1b154, 0x01027e63, 0x01a1ff6f, 0x00f75734, 0x000f1633}}}, + {X: Field{[10]uint32{0x03ed9f5f, 0x02c87945, 0x003c0d88, 0x02aa3695, 0x02bf5a1c, 0x0148975a, 0x01a57671, 0x00fbec88, 0x003327c3, 0x000912ca}}, Y: Field{[10]uint32{0x01f53d7d, 0x027c2ff0, 0x000dbc22, 0x0398110e, 0x0237f83c, 0x00a7d404, 0x02cec92a, 0x02254d6b, 0x02ace48d, 0x0008800d}}}, + {X: Field{[10]uint32{0x025dd1b7, 0x01928d4c, 0x01e64e97, 0x00775ab0, 0x0291f0cc, 0x0159a5e3, 0x0042d13e, 0x01e415ad, 0x000f27b8, 0x001be5eb}}, Y: Field{[10]uint32{0x03433d32, 0x0034ffe7, 0x01c814dd, 0x01697cb6, 0x007e937f, 0x0246ce28, 0x02ce1cc6, 0x031c1c89, 0x030cfac6, 0x0020f1b9}}}, + {X: Field{[10]uint32{0x021dce1f, 0x03120055, 0x02badc94, 0x0352c88d, 0x012d6abc, 0x01153c98, 0x00265cad, 0x0138b6ea, 0x020feb01, 0x001cb175}}, Y: Field{[10]uint32{0x03978fe2, 0x02d03698, 0x00bf0690, 0x02db491b, 0x0397b281, 0x03174eb2, 0x03282163, 0x00658ece, 0x02197ef9, 0x0038c466}}}, + {X: Field{[10]uint32{0x01f33825, 0x0367b435, 0x006ea707, 0x0252aba3, 0x002af32b, 0x0110686c, 0x018659df, 0x000619a6, 0x01a001b1, 0x002a5b4b}}, Y: Field{[10]uint32{0x02513f9f, 0x03a04202, 0x016906c0, 0x01c45aa4, 0x025659ea, 0x0230dc2a, 0x03cfd412, 0x0148d67d, 0x018305da, 0x0019835f}}}, + {X: Field{[10]uint32{0x03e3c4fa, 0x00537156, 0x00875173, 0x009e6431, 0x03d906aa, 0x01d8599d, 0x001d2008, 0x017b3066, 0x03634d81, 0x000b339b}}, Y: Field{[10]uint32{0x02ba4b50, 0x008cc8ef, 0x036e5d3c, 0x01d327b2, 0x01b33cb2, 0x03f4151d, 0x02f997a0, 0x027a446d, 0x00ddbd59, 0x00185484}}}, + {X: Field{[10]uint32{0x0245f0c4, 0x0226f5a9, 0x02f4660e, 0x03f1d628, 0x024558fa, 0x02e354ec, 0x00602d98, 0x034e6766, 0x0084525d, 0x00264ac0}}, Y: Field{[10]uint32{0x00e2f98d, 0x01935869, 0x02a572da, 0x0039657b, 0x02f5a5c7, 0x00508180, 0x005f40b1, 0x0168a631, 0x00d22654, 0x0020f2a6}}}, + {X: Field{[10]uint32{0x03eb7357, 0x03dd9ba6, 0x0388e44e, 0x027ad17a, 0x01c6b0c6, 0x03f52ddf, 0x0361ee43, 0x01867f31, 0x03453089, 0x0010d3be}}, Y: Field{[10]uint32{0x029291ea, 0x027bf08a, 0x01bd001e, 0x03220c2e, 0x0126967a, 0x00db02fa, 0x025586d2, 0x02e4b965, 0x016d01c0, 0x000f6ec3}}}, + {X: Field{[10]uint32{0x03fbc156, 0x037171f8, 0x02b884bd, 0x02271370, 0x00f0dbf5, 0x00fbf8c1, 0x02e47359, 0x00cc1828, 0x01ad2c68, 0x0002885e}}, Y: Field{[10]uint32{0x02033c1f, 0x001ebebd, 0x00b20192, 0x008c21b7, 0x0288a2d2, 0x036d8274, 0x00e6dfab, 0x0005da86, 0x01f8ab98, 0x003b914e}}}, + {X: Field{[10]uint32{0x0305a2e1, 0x00e41ebb, 0x00f146d6, 0x00a999c6, 0x02a445f2, 0x024887bd, 0x012bb400, 0x03851ea9, 0x001ed3e1, 0x000e4d02}}, Y: Field{[10]uint32{0x03b5b3c7, 0x02aca429, 0x0206214f, 0x03f9d4b1, 0x03d3a9fe, 0x03c7a566, 0x01e79d49, 0x006de882, 0x02563139, 0x002f0dc1}}}, + {X: Field{[10]uint32{0x0395d8ef, 0x022381f7, 0x013db396, 0x0388414a, 0x03f1f3f7, 0x03310957, 0x00383546, 0x02e4e401, 0x00e159a2, 0x000d6f09}}, Y: Field{[10]uint32{0x0223ae15, 0x03b42a24, 0x02dfa246, 0x034e2127, 0x00e87e0c, 0x0159c93e, 0x02beb5c0, 0x02636bde, 0x00700a96, 0x0037b87f}}}, + {X: Field{[10]uint32{0x0148127d, 0x0394962e, 0x01b48bc7, 0x0386f2b9, 0x0163aa14, 0x00176399, 0x012a0eef, 0x02d1ce15, 0x035c251f, 0x003d7479}}, Y: Field{[10]uint32{0x037170fe, 0x0084aa1b, 0x036fe92d, 0x03d02fde, 0x03e7d586, 0x00a614a2, 0x0009134d, 0x03c1623d, 0x01bc7044, 0x00389830}}}, + {X: Field{[10]uint32{0x03eb121c, 0x03687301, 0x00f54d12, 0x02cd80d4, 0x03f9617b, 0x02b2ddd0, 0x01170dd6, 0x00a0bc28, 0x02d36fed, 0x003b829d}}, Y: Field{[10]uint32{0x020ba5b1, 0x03debc50, 0x035166db, 0x01612d0a, 0x024e56c4, 0x03e78432, 0x02135eff, 0x02583c39, 0x02dbeba6, 0x003e33f0}}}, + {X: Field{[10]uint32{0x00a689d8, 0x01e43467, 0x01676f94, 0x03d85b69, 0x004d1879, 0x005dd345, 0x00ab377f, 0x01d99057, 0x03cf7892, 0x00278ee1}}, Y: Field{[10]uint32{0x02b3b577, 0x02a39b6e, 0x03482266, 0x025ad151, 0x027a9c2d, 0x006c7c9a, 0x033b0c2b, 0x028ab2c9, 0x0122da3c, 0x003e3cd1}}}, + {X: Field{[10]uint32{0x034868f0, 0x016cc43a, 0x0115286e, 0x031d3d89, 0x0012f409, 0x019ae2d4, 0x005b89ee, 0x010b00f2, 0x016fd089, 0x00389bc9}}, Y: Field{[10]uint32{0x02f210f9, 0x03a2fed5, 0x012f21bb, 0x00fcf13c, 0x033552c2, 0x00f26c49, 0x008c6562, 0x0127e9b4, 0x00d96fea, 0x002eacf1}}}, + {X: Field{[10]uint32{0x011da6c2, 0x01626000, 0x0021cf08, 0x014baa31, 0x01a3f5c8, 0x03c1eaf1, 0x00b67634, 0x020e6345, 0x0046a5d3, 0x0022b1d0}}, Y: Field{[10]uint32{0x0229b3dc, 0x0174c91c, 0x0288e149, 0x02543210, 0x024a71af, 0x00d500b0, 0x00f59160, 0x00c66215, 0x0393f56e, 0x00348329}}}, + {X: Field{[10]uint32{0x01932bd0, 0x01dea495, 0x03a83ac6, 0x02fecb20, 0x02753928, 0x03a074a7, 0x01531a86, 0x0253324f, 0x00956346, 0x0016c038}}, Y: Field{[10]uint32{0x00a99656, 0x00fbf598, 0x032d64bc, 0x00cdd200, 0x0242882b, 0x0003561f, 0x02daf180, 0x03123185, 0x027a8071, 0x00234bc9}}}, + {X: Field{[10]uint32{0x0211f0b1, 0x00d5fe27, 0x02a872c0, 0x026ad3a7, 0x01546ffb, 0x02ca9984, 0x01ae4ba7, 0x0175eeac, 0x00c4080c, 0x00058864}}, Y: Field{[10]uint32{0x02423525, 0x024c0c24, 0x019d8796, 0x00ba6317, 0x01bb8419, 0x00ef731b, 0x006d7a31, 0x022a7396, 0x01041244, 0x0036d788}}}, + {X: Field{[10]uint32{0x01b145b1, 0x0299db21, 0x0236cf26, 0x03726bfd, 0x03476774, 0x001805f6, 0x03f8520e, 0x020fa021, 0x0021b4b3, 0x003daa11}}, Y: Field{[10]uint32{0x0037a3b3, 0x01d2a010, 0x020a80ed, 0x0056fe23, 0x02937172, 0x03a3f87b, 0x03a2da82, 0x01c3b401, 0x01a95967, 0x0014131c}}}, + {X: Field{[10]uint32{0x032dd6e5, 0x01d66a64, 0x0013455a, 0x02795727, 0x0183e591, 0x0127e423, 0x038937da, 0x034f62cf, 0x0142f0b5, 0x0007c0b4}}, Y: Field{[10]uint32{0x01863e65, 0x0220b68e, 0x00348fb3, 0x017d22b8, 0x03fbc903, 0x036df27f, 0x02c2eae5, 0x01b7dd43, 0x03338ed3, 0x0039a972}}}, + {X: Field{[10]uint32{0x0178899f, 0x01889e07, 0x03a0434a, 0x03d44b5d, 0x0268e29b, 0x00d21295, 0x02e38c37, 0x0287fa8a, 0x016bc326, 0x00187d36}}, Y: Field{[10]uint32{0x03b4aab8, 0x00deb4b5, 0x02b38b3a, 0x012cdd79, 0x02217272, 0x00603097, 0x03970216, 0x016b1d93, 0x03386200, 0x001947bd}}}, + {X: Field{[10]uint32{0x01c11616, 0x005f2b8c, 0x019c19c9, 0x00ac6be8, 0x007c7ebe, 0x034a45b8, 0x008a71f8, 0x0179e602, 0x000d623c, 0x002e9f57}}, Y: Field{[10]uint32{0x015f5a51, 0x016c1f6f, 0x00958ce4, 0x039f99b2, 0x01a1ec37, 0x03ecd565, 0x02551530, 0x00fdb1e1, 0x03400d7e, 0x00369027}}}, + {X: Field{[10]uint32{0x025bdb09, 0x01be7464, 0x003c3bb1, 0x029a6af1, 0x01fe5a92, 0x036f0f86, 0x02a68ee6, 0x025df1b9, 0x0190eacb, 0x0022e429}}, Y: Field{[10]uint32{0x035df718, 0x00d4603e, 0x039a92a0, 0x01d760a6, 0x024d01ef, 0x01d1a9d4, 0x02734e1f, 0x0175642b, 0x0342ef65, 0x002973d7}}}, + {X: Field{[10]uint32{0x03f4fe4c, 0x03a6ab37, 0x025b71c9, 0x03ffd56c, 0x01f0d994, 0x02d6b85c, 0x00294a3c, 0x0133f73a, 0x02272191, 0x0021fcd4}}, Y: Field{[10]uint32{0x00babb2f, 0x00930a19, 0x03552dda, 0x00fc88a8, 0x01f26b28, 0x026a44cd, 0x027c1efb, 0x031787ab, 0x01af530b, 0x00331c74}}}, + {X: Field{[10]uint32{0x0377a15d, 0x03bb92b2, 0x0358b6c1, 0x027c61fb, 0x0383d550, 0x014c3c7c, 0x00ffe8a5, 0x014566fc, 0x0136ba40, 0x002bba93}}, Y: Field{[10]uint32{0x00d3ac1a, 0x01581e98, 0x033f78d5, 0x01f738da, 0x0196958f, 0x022aa8a3, 0x03031c24, 0x00f7e1f4, 0x01eae740, 0x0036d58f}}}, + {X: Field{[10]uint32{0x03cc7111, 0x00e2966b, 0x02db62a3, 0x00d95dd3, 0x00d8dda4, 0x02016353, 0x006f1ef0, 0x03ae755f, 0x018d3996, 0x000c03fa}}, Y: Field{[10]uint32{0x00c40e77, 0x01962c8e, 0x025e3a49, 0x009b49c8, 0x01d2e6e2, 0x010eddbf, 0x037913c1, 0x029033e4, 0x00178fdd, 0x00345228}}}, + {X: Field{[10]uint32{0x01c19fdb, 0x0017d0a6, 0x0073aa50, 0x006ddb53, 0x03d01e9c, 0x019d0f93, 0x01095a1f, 0x0051ba0e, 0x035e22cd, 0x0031c02b}}, Y: Field{[10]uint32{0x014b32c0, 0x0151aa86, 0x011d28b5, 0x024b0b54, 0x010d4a30, 0x02dba95a, 0x02b1fc6b, 0x00709c9e, 0x0181b1f0, 0x000ff800}}}, + {X: Field{[10]uint32{0x0350bc60, 0x030dd233, 0x034a5941, 0x01d7e5ae, 0x0194228f, 0x0211214e, 0x02147af3, 0x0104e06a, 0x00e117b9, 0x00340f42}}, Y: Field{[10]uint32{0x0096e31d, 0x001c6cea, 0x000fa10e, 0x01dba451, 0x01f47dd0, 0x015076a3, 0x00bfbfdc, 0x02f314b8, 0x03fd2785, 0x0016c467}}}, + {X: Field{[10]uint32{0x022bd361, 0x017697f0, 0x03832b39, 0x00fb2533, 0x03ea9c98, 0x02be0697, 0x017fadb6, 0x0082e15b, 0x00fa17a5, 0x001b19c4}}, Y: Field{[10]uint32{0x02804941, 0x028e4f3c, 0x00ad64fb, 0x002097b5, 0x01b036a4, 0x00225ec1, 0x01964f3c, 0x0207a906, 0x012636e2, 0x0036d3bf}}}, + {X: Field{[10]uint32{0x03d91bbb, 0x03cfef68, 0x021d9b46, 0x03a653e1, 0x025ea3bf, 0x00229766, 0x02cb900d, 0x01e859ad, 0x02399df4, 0x0035ed70}}, Y: Field{[10]uint32{0x00efe8ba, 0x03565f59, 0x03710cff, 0x0194a702, 0x03a3c8a0, 0x0253ff87, 0x003494d7, 0x03097a72, 0x034e4ab1, 0x003b5e47}}}, + {X: Field{[10]uint32{0x00f66c06, 0x02a7a394, 0x029524ab, 0x008c8d06, 0x0253ff2f, 0x03aaa8fb, 0x01eb8dcc, 0x02054b8b, 0x01ab8f72, 0x00243da6}}, Y: Field{[10]uint32{0x02fce91d, 0x0320b27f, 0x0008e641, 0x0339b98f, 0x00561558, 0x00da487e, 0x006d80ec, 0x004aee75, 0x03a77f53, 0x0022f430}}}, + {X: Field{[10]uint32{0x01fb65cc, 0x02b9c6a3, 0x0344abb9, 0x0338ada1, 0x0137557d, 0x0285bd5a, 0x01eaead6, 0x0370d324, 0x023e3d7a, 0x001343ab}}, Y: Field{[10]uint32{0x03a3de5a, 0x01b8bc87, 0x02a5352c, 0x02641425, 0x026e874c, 0x010aa94b, 0x019a6851, 0x021cc6ea, 0x0006a950, 0x00205ac2}}}, + {X: Field{[10]uint32{0x02f7de62, 0x023df26c, 0x031d0243, 0x0266381a, 0x01689a23, 0x00c54617, 0x034f8153, 0x0212637e, 0x02ddec31, 0x0011b367}}, Y: Field{[10]uint32{0x021f29bc, 0x0211be95, 0x0100810a, 0x01a0491f, 0x03e0d5d1, 0x0204ce22, 0x0164a8bb, 0x01e1d232, 0x01a3d5fd, 0x000ed6f0}}}, + {X: Field{[10]uint32{0x02ff730b, 0x013ae0c0, 0x000aebce, 0x03f88696, 0x00653748, 0x01154b90, 0x0176297b, 0x02aadc71, 0x000e3f6e, 0x00012ab2}}, Y: Field{[10]uint32{0x008c7954, 0x00d4e61b, 0x020509e4, 0x02a53c77, 0x0240d331, 0x02b1a811, 0x03e2dd5b, 0x03d1aa03, 0x000d8014, 0x000f50a8}}}, + {X: Field{[10]uint32{0x002a4114, 0x01a06956, 0x006374bb, 0x03d8bb2f, 0x02e03e96, 0x006664de, 0x01e45730, 0x0270244c, 0x0261b73d, 0x00166fa9}}, Y: Field{[10]uint32{0x01afa47d, 0x038f4b2c, 0x035c130b, 0x026af576, 0x00d9f263, 0x03a24541, 0x01062e78, 0x00b0ba07, 0x03e8ee8a, 0x000c6882}}}, + {X: Field{[10]uint32{0x00ca6037, 0x024d59e4, 0x003385e2, 0x02929387, 0x029ee089, 0x03b1e937, 0x019acd3f, 0x03ba48ac, 0x006588b2, 0x0001ffa4}}, Y: Field{[10]uint32{0x01e5c128, 0x03a4da4d, 0x032a7c69, 0x018f9fb1, 0x002659b7, 0x001d8ffd, 0x01eb3262, 0x00fbac7d, 0x0190c5f4, 0x0037ed17}}}, + {X: Field{[10]uint32{0x01322157, 0x03254625, 0x0262f19d, 0x011fcb20, 0x01f3a5fc, 0x03e3cbf4, 0x00b5e4ac, 0x01e225e1, 0x03913227, 0x0036ce43}}, Y: Field{[10]uint32{0x0290bbad, 0x01872b35, 0x02dc8d5d, 0x0302b7a0, 0x012aaeb5, 0x0298f6c6, 0x00fd7d4d, 0x020c7c25, 0x015b241c, 0x0010d925}}}, + {X: Field{[10]uint32{0x0391ebc8, 0x017501dc, 0x03c29e6e, 0x02980714, 0x00985732, 0x02ba3de3, 0x02a9e615, 0x0066b1f6, 0x0266e5fc, 0x000d3740}}, Y: Field{[10]uint32{0x01dd797b, 0x007a87f1, 0x02ddb661, 0x01ad148c, 0x0077a5db, 0x030ad22f, 0x0013b1d2, 0x03f80398, 0x02d80e73, 0x0030b5ad}}}, + {X: Field{[10]uint32{0x011772ab, 0x038f7c67, 0x004db336, 0x0314ca3e, 0x015e6c7e, 0x01b8bbe5, 0x01fcfbe1, 0x0182374f, 0x032b7e31, 0x003ba9fd}}, Y: Field{[10]uint32{0x014004bb, 0x0034c354, 0x029b88af, 0x015831af, 0x03172195, 0x00e6a9d1, 0x02a6d947, 0x02930d23, 0x00f1ccde, 0x002598b2}}}, + {X: Field{[10]uint32{0x00c391f2, 0x00f9e8e2, 0x007fc10d, 0x0190db64, 0x019376d2, 0x03a1584a, 0x01e412dd, 0x003ace4f, 0x007af1b1, 0x0031abc2}}, Y: Field{[10]uint32{0x00825144, 0x02d2b9d4, 0x00959eee, 0x0090b185, 0x01e5ff98, 0x033faae9, 0x018847a9, 0x01915e2b, 0x022e3185, 0x002ea675}}}, + {X: Field{[10]uint32{0x02ccefc7, 0x0132667f, 0x01518136, 0x02fd434d, 0x02aff37f, 0x032d0fd6, 0x033d034b, 0x015d02ad, 0x03356c71, 0x003ab8d1}}, Y: Field{[10]uint32{0x02fe4703, 0x03998e64, 0x01a9879f, 0x01b6d87f, 0x03968525, 0x02513dd2, 0x02f15d84, 0x03d91735, 0x0075da8b, 0x002e4e1b}}}, + {X: Field{[10]uint32{0x0340438f, 0x0093fdfe, 0x0046165c, 0x038c0764, 0x0241b68a, 0x01392589, 0x039a27e6, 0x023d5013, 0x00250f4d, 0x00129523}}, Y: Field{[10]uint32{0x016f6d10, 0x014bca06, 0x01578382, 0x00570a83, 0x014c2742, 0x038a698f, 0x01e40c67, 0x0233dbbd, 0x0085bd60, 0x002ba7cb}}}, + {X: Field{[10]uint32{0x00f744af, 0x02bcac3b, 0x01a53f43, 0x03678603, 0x03453318, 0x032cf02f, 0x019743d7, 0x0116a3a8, 0x0279dd65, 0x00186495}}, Y: Field{[10]uint32{0x03cb184d, 0x002913ca, 0x011a1726, 0x0075138f, 0x0347fc55, 0x00f92a87, 0x02c062ca, 0x014dcba7, 0x0184d721, 0x00281a0b}}}, + {X: Field{[10]uint32{0x0137ea2a, 0x03c05424, 0x004fe025, 0x02e14bfc, 0x0250267a, 0x01097bd8, 0x03a260d2, 0x02addb53, 0x02869574, 0x003876d7}}, Y: Field{[10]uint32{0x011905a8, 0x010f2054, 0x0277483f, 0x012fed25, 0x00836e20, 0x00318494, 0x01a99a1d, 0x03de8db0, 0x00219fd5, 0x00323abd}}}, + {X: Field{[10]uint32{0x0248c7f1, 0x027498f4, 0x004a7d2f, 0x02473f08, 0x0038e636, 0x007f613c, 0x00ab862a, 0x00e108a8, 0x03ca7392, 0x000c18b2}}, Y: Field{[10]uint32{0x019670cb, 0x03011ff7, 0x02b2cf55, 0x03c7327f, 0x00721a85, 0x038610c4, 0x0289eee1, 0x00a5c373, 0x02570e3f, 0x0023c44b}}}, + {X: Field{[10]uint32{0x01a4f739, 0x00500113, 0x00f4e4e8, 0x03ca5dd9, 0x039da74f, 0x02d4fe54, 0x007a861e, 0x00dbf3bb, 0x03ccaa97, 0x0019f0e4}}, Y: Field{[10]uint32{0x01853203, 0x011f1352, 0x013942d1, 0x03551b1f, 0x0033ac24, 0x03566d49, 0x00009d5a, 0x017f88be, 0x01d09a16, 0x0024f4ca}}}, + {X: Field{[10]uint32{0x0099bf5e, 0x00c213fa, 0x03728f94, 0x02c43a2e, 0x01ac5bc5, 0x0160731f, 0x01a5619d, 0x00861fb9, 0x01f236cf, 0x00319d1c}}, Y: Field{[10]uint32{0x01e2c513, 0x039a1223, 0x00aea62f, 0x00dfeda1, 0x003a533f, 0x0132ef32, 0x03c32477, 0x00c63650, 0x009c787b, 0x001d7243}}}, + {X: Field{[10]uint32{0x00ed1b52, 0x01fa62b9, 0x03070182, 0x03301951, 0x0112143a, 0x0096aab1, 0x033d7a40, 0x02376484, 0x03efd593, 0x00354057}}, Y: Field{[10]uint32{0x00f03d6b, 0x01b0975f, 0x0379f400, 0x0182de63, 0x00e99668, 0x00761177, 0x037c0d65, 0x00dbc570, 0x0216a022, 0x00110c15}}}, + {X: Field{[10]uint32{0x0164f2d2, 0x024a73a0, 0x003b73c1, 0x002473d4, 0x02243ca3, 0x0000bb66, 0x008ed564, 0x0258572d, 0x0365aaa8, 0x002baf2f}}, Y: Field{[10]uint32{0x00b3f019, 0x01f4dff9, 0x01ee535e, 0x015554e6, 0x02a6ee7f, 0x027223a1, 0x020305ba, 0x03b8ad08, 0x025d1a30, 0x0013f07c}}}, + {X: Field{[10]uint32{0x03b30e43, 0x03c03ffa, 0x00d8105e, 0x002ed4dc, 0x01bb8f98, 0x00ca8e74, 0x02d68219, 0x037bbd26, 0x02171727, 0x000572c5}}, Y: Field{[10]uint32{0x000ebd7a, 0x039f4afe, 0x02d93b1f, 0x01ad243a, 0x012dfff8, 0x01cd2cd3, 0x035c1b99, 0x0014ffb8, 0x008287fc, 0x00192b63}}}, + {X: Field{[10]uint32{0x0049c123, 0x000c2013, 0x026986bd, 0x008c18f8, 0x0119fb25, 0x00948468, 0x03b88a55, 0x0359d026, 0x009e8530, 0x00350108}}, Y: Field{[10]uint32{0x00a7a128, 0x03318890, 0x032c562b, 0x02fa28d0, 0x0046ef87, 0x02d68c9f, 0x01062753, 0x017467a1, 0x0168fdb8, 0x000dd8ff}}}, + {X: Field{[10]uint32{0x03ffdd96, 0x03a4e066, 0x02a4ed42, 0x025fd08a, 0x00d40b44, 0x030c9eb1, 0x02330c2f, 0x00a12563, 0x00cf0c23, 0x003ceafe}}, Y: Field{[10]uint32{0x015b0d5d, 0x0083a69f, 0x02061cc7, 0x03b1f33c, 0x01d1dfe9, 0x035e9d88, 0x01076432, 0x00c9f0fa, 0x0305d831, 0x00142187}}}, + {X: Field{[10]uint32{0x00874dea, 0x01ffdbdf, 0x03b4e57b, 0x011b0f92, 0x035cf92b, 0x0146e748, 0x004755a6, 0x036fecfe, 0x00932ee9, 0x001e28ca}}, Y: Field{[10]uint32{0x02c85895, 0x005fdae6, 0x02473b46, 0x02ca4b06, 0x01b3c36e, 0x0257aadf, 0x02ccd874, 0x0087d1ba, 0x003a9667, 0x002496de}}}, + {X: Field{[10]uint32{0x0350cd4a, 0x000c8269, 0x01e8df65, 0x0390fb55, 0x011b7d15, 0x01eed9e3, 0x001ed91a, 0x01be286b, 0x010f5d14, 0x00205948}}, Y: Field{[10]uint32{0x015d260d, 0x02e161e4, 0x0363a384, 0x019a87b6, 0x03859541, 0x00e5b1c4, 0x0145875e, 0x00af732f, 0x013a19e2, 0x003f8e43}}}, + {X: Field{[10]uint32{0x01fe3f09, 0x03295fdf, 0x032f3633, 0x007f3c01, 0x00ba7343, 0x00fbe866, 0x0317dd6f, 0x00f4d337, 0x01e86c2f, 0x001d49a7}}, Y: Field{[10]uint32{0x004805bd, 0x03454f9c, 0x020b1f5e, 0x027c77c6, 0x00f463f3, 0x017ba214, 0x006e3dbd, 0x009fb111, 0x025fd199, 0x002c58a9}}}, + {X: Field{[10]uint32{0x027145b0, 0x01394490, 0x02b38954, 0x02dea405, 0x03c520a7, 0x013ecbfd, 0x01c4e104, 0x0252796e, 0x028fb393, 0x00178db3}}, Y: Field{[10]uint32{0x0011614c, 0x0269381e, 0x03a4e7d3, 0x0170320a, 0x0022074c, 0x0152baa4, 0x01822ced, 0x025a9076, 0x0318292f, 0x001f1039}}}, + {X: Field{[10]uint32{0x02632746, 0x0302dac5, 0x03d25b05, 0x0181db69, 0x01c249d3, 0x02b260f9, 0x0176edc6, 0x02ff1b01, 0x0129fdeb, 0x0032331c}}, Y: Field{[10]uint32{0x00716fb1, 0x01d35e13, 0x01e68e46, 0x02bf53dd, 0x022653fb, 0x014e7fae, 0x011a332c, 0x011261db, 0x00e3a77e, 0x00122a33}}}, + {X: Field{[10]uint32{0x0246973f, 0x0303053a, 0x021dd2d6, 0x022dce0e, 0x03fa8579, 0x038f772b, 0x024d2a9a, 0x00f9b4e4, 0x0336f1ee, 0x0027f876}}, Y: Field{[10]uint32{0x0074f6d2, 0x039db38b, 0x0223e7c2, 0x03b2facc, 0x0343dc55, 0x00084ad8, 0x02d96588, 0x01170257, 0x02a86070, 0x00074d6d}}}, + {X: Field{[10]uint32{0x008ecda2, 0x01c4fd6f, 0x024657c9, 0x036f49b4, 0x01e23648, 0x030d449e, 0x019e02dd, 0x01d239b8, 0x038a3d45, 0x00132a2a}}, Y: Field{[10]uint32{0x023e73da, 0x02a68e53, 0x005cf164, 0x0236ec83, 0x0113b8a6, 0x0021db25, 0x03c9f23c, 0x036e489c, 0x02ad9bb7, 0x00229619}}}, + {X: Field{[10]uint32{0x032060c0, 0x01dbd62d, 0x017b13d3, 0x00607604, 0x03f1f308, 0x006c78a7, 0x01bc7242, 0x0227b173, 0x0150e4a9, 0x00032340}}, Y: Field{[10]uint32{0x0082ebd1, 0x018cd954, 0x0271749e, 0x00cb2c9b, 0x027ac4a7, 0x002c800c, 0x0242a9df, 0x00e9286b, 0x00a4c5a7, 0x00171620}}}, + {X: Field{[10]uint32{0x02f2aa31, 0x03868304, 0x03feafc1, 0x0113c4c2, 0x039e3684, 0x02072620, 0x03e1b7c9, 0x03f79927, 0x017bb4b9, 0x000f5855}}, Y: Field{[10]uint32{0x025b56f9, 0x021e64b7, 0x0228671c, 0x0254c63a, 0x021e2336, 0x01ac70df, 0x0160c90e, 0x02102cea, 0x03ff62cd, 0x0024cc59}}}, + {X: Field{[10]uint32{0x00e69e2a, 0x02bc5a49, 0x00552ccf, 0x03b72d89, 0x03feaada, 0x0170fb47, 0x0078dbb8, 0x0328256d, 0x039ffd44, 0x0019d5a7}}, Y: Field{[10]uint32{0x03eb7fcc, 0x006c9b59, 0x00102feb, 0x037abc3f, 0x03d16619, 0x02b7ec92, 0x01412887, 0x02f4b2aa, 0x0148230f, 0x0018aeca}}}, + {X: Field{[10]uint32{0x0372fbc2, 0x02dd4f9c, 0x01af70f3, 0x0340f3c3, 0x006e3075, 0x0319b6aa, 0x037d2792, 0x0050043a, 0x013edebf, 0x0018c4f4}}, Y: Field{[10]uint32{0x03573ef3, 0x0389ab74, 0x039c2f65, 0x01d2fabf, 0x032839f8, 0x00f81b8b, 0x01754556, 0x0049161a, 0x023050eb, 0x00111884}}}, + {X: Field{[10]uint32{0x01d23968, 0x03f78913, 0x031955e2, 0x03c857c4, 0x03088529, 0x01f1b2ca, 0x023085b4, 0x01ba3343, 0x01e7fbbe, 0x001be3b2}}, Y: Field{[10]uint32{0x0136cd79, 0x0031dbfb, 0x0078dc51, 0x002a0c07, 0x0323e195, 0x0311bbba, 0x003b215d, 0x00febad5, 0x0214523b, 0x0007ed87}}}, + {X: Field{[10]uint32{0x010b7f6c, 0x0301519c, 0x022447be, 0x01638380, 0x0336f0ae, 0x020e6d30, 0x01a0ec2f, 0x0286b2f6, 0x01ac3c5a, 0x0015984f}}, Y: Field{[10]uint32{0x02ca79e8, 0x01ceaa63, 0x0316cf7b, 0x02f775fd, 0x03530908, 0x010d2be2, 0x03233194, 0x0263e40e, 0x03ab86c3, 0x00091c98}}}, + {X: Field{[10]uint32{0x03aee08c, 0x02cf0861, 0x01da041e, 0x02c1a167, 0x0217e91a, 0x0169f775, 0x03e6e57c, 0x01c8644d, 0x01e7b414, 0x00327785}}, Y: Field{[10]uint32{0x038b0009, 0x03eff10f, 0x0370fd8f, 0x02c7d792, 0x0040cc5d, 0x00556473, 0x0111c877, 0x015b437f, 0x02a5cfa0, 0x0031c5e3}}}, + {X: Field{[10]uint32{0x016c0504, 0x01aeff7d, 0x01c48a8b, 0x00b74b77, 0x02f90618, 0x02f9925e, 0x02a4b0f6, 0x017a4390, 0x024a627d, 0x0001d642}}, Y: Field{[10]uint32{0x02c38587, 0x00f38aa9, 0x029f81f9, 0x01d4d4ed, 0x00cc5bd8, 0x02a9192f, 0x017e878b, 0x021d8172, 0x021ab549, 0x00358478}}}, + {X: Field{[10]uint32{0x03e19d6a, 0x025e421f, 0x0173b760, 0x0176fcf2, 0x021fcc55, 0x0076ccd8, 0x00dff728, 0x03815b6c, 0x020fb310, 0x00252c76}}, Y: Field{[10]uint32{0x014fc217, 0x021b78ff, 0x01159852, 0x02723cbf, 0x0045c42e, 0x0392e54f, 0x03a2ab4a, 0x0069580c, 0x013dd5b4, 0x0020c622}}}, + {X: Field{[10]uint32{0x00c9a6cb, 0x039b54a1, 0x011a5f20, 0x0084e385, 0x02d6f8f8, 0x02bb0b3e, 0x007d081d, 0x033bc438, 0x0299bcda, 0x002d6bd0}}, Y: Field{[10]uint32{0x0395448d, 0x0091e6ea, 0x00b2043b, 0x03f42bb7, 0x01c8cf65, 0x004df702, 0x032987eb, 0x02e0b7d5, 0x00078a7d, 0x00302611}}}, + {X: Field{[10]uint32{0x0139c3e3, 0x01da11da, 0x03b0c3c4, 0x01066226, 0x03f8ef61, 0x021460a6, 0x000a153c, 0x01161ce6, 0x01437074, 0x0017d26b}}, Y: Field{[10]uint32{0x007e04eb, 0x0346001d, 0x020f7d01, 0x0251172b, 0x022ae25c, 0x0103f092, 0x0208ae1b, 0x01b0f42e, 0x038520f5, 0x00171034}}}, + {X: Field{[10]uint32{0x007da385, 0x0386e792, 0x01c645cd, 0x02fc9bb2, 0x0216bea3, 0x01a24e50, 0x0230d1ae, 0x03047193, 0x027f88cc, 0x003daec1}}, Y: Field{[10]uint32{0x00288f55, 0x03b5c85e, 0x004fead4, 0x0367cafd, 0x0328dbfd, 0x037792a0, 0x01d4ec8a, 0x025e3362, 0x036d7268, 0x000c5691}}}, + {X: Field{[10]uint32{0x01df6950, 0x03b4affe, 0x03f10bee, 0x0124112c, 0x0152690b, 0x03000115, 0x01aea0ee, 0x00678253, 0x02dec02b, 0x001ed1f3}}, Y: Field{[10]uint32{0x00efe9a6, 0x03b64ef8, 0x01330280, 0x03603084, 0x0353b7cc, 0x015e462b, 0x03ac5a79, 0x037b25ba, 0x01f49bee, 0x0006f369}}}, + {X: Field{[10]uint32{0x0140876d, 0x03f59826, 0x01035a78, 0x0087000a, 0x01182236, 0x035c3d4b, 0x025e1ab2, 0x015b67ad, 0x03f3082d, 0x002e9a75}}, Y: Field{[10]uint32{0x035d393d, 0x01b447e5, 0x02c7684b, 0x00d6b86b, 0x001d1cf9, 0x003b894e, 0x036bdb95, 0x00a2703c, 0x02fd56d5, 0x0017d128}}}, + {X: Field{[10]uint32{0x03d929ff, 0x037f6e5e, 0x0347d1d3, 0x017e5d0c, 0x01fe7ec3, 0x00cc2e8e, 0x03713bf0, 0x03065488, 0x0094d226, 0x0028edc2}}, Y: Field{[10]uint32{0x02ae6135, 0x03013355, 0x00aa593c, 0x00b082ec, 0x01495edf, 0x02ace51e, 0x01ad2e10, 0x016a80d5, 0x03df4275, 0x00017432}}}, + {X: Field{[10]uint32{0x01c804e5, 0x0368df74, 0x0384f0e8, 0x02cd1233, 0x025ae602, 0x003aceff, 0x03e73b52, 0x0207f647, 0x023ebb2d, 0x0031d5b8}}, Y: Field{[10]uint32{0x00df49ff, 0x0044840d, 0x035f8985, 0x02a753ec, 0x025a4fab, 0x02192a60, 0x01f52b29, 0x01ae6f2a, 0x02faedf8, 0x00227d2d}}}, + {X: Field{[10]uint32{0x0271822c, 0x00bba10d, 0x02a00d17, 0x0271b37e, 0x0065410e, 0x030e4127, 0x011c2341, 0x0252afde, 0x00356fab, 0x000d8c9f}}, Y: Field{[10]uint32{0x03ed4c6d, 0x034187f4, 0x0127abe7, 0x00c63096, 0x01eb7456, 0x0253dc0e, 0x0201f04e, 0x0234d7c3, 0x00a4698c, 0x003f8d62}}}, + {X: Field{[10]uint32{0x03dd21bb, 0x0278418d, 0x00c32118, 0x02c61d2c, 0x00b66051, 0x017acabd, 0x02ecf6fc, 0x008c47d1, 0x03be8e37, 0x000edd6f}}, Y: Field{[10]uint32{0x02879908, 0x002a8a56, 0x03c2aea5, 0x02575f46, 0x022e42a0, 0x01e502d3, 0x015e2488, 0x00ce6916, 0x0233e3c3, 0x002e4512}}}, + {X: Field{[10]uint32{0x00d3c5e2, 0x029fdd7c, 0x017b4d92, 0x02f4de6a, 0x035f0272, 0x03e3d11d, 0x015ed721, 0x03a22831, 0x031057b4, 0x00112987}}, Y: Field{[10]uint32{0x02d80141, 0x03785120, 0x00086111, 0x0019b705, 0x02181623, 0x016de4e4, 0x016ec1f0, 0x0011925c, 0x02658034, 0x003a1c3a}}}, + {X: Field{[10]uint32{0x0097fefd, 0x026889c0, 0x00acb74c, 0x039b28a5, 0x011ebed2, 0x03a481bb, 0x00c6fe5c, 0x00f02809, 0x02f70066, 0x00046b80}}, Y: Field{[10]uint32{0x03d6a36f, 0x01f4a337, 0x0024bd69, 0x019a5039, 0x01a4e357, 0x01c108b3, 0x008737ae, 0x03ecc140, 0x0387a262, 0x0018d686}}}, + {X: Field{[10]uint32{0x02142f5c, 0x0021728f, 0x01981069, 0x03c84175, 0x008e987a, 0x02cc6cdf, 0x02ab1b0a, 0x017450b9, 0x010adfb2, 0x0031d44c}}, Y: Field{[10]uint32{0x02821014, 0x0250eebb, 0x018864df, 0x00752f30, 0x02ccca85, 0x039a1716, 0x00485a4b, 0x005ea7c4, 0x01d8ed27, 0x002918c3}}}, + {X: Field{[10]uint32{0x03efe46a, 0x02f76dfb, 0x02f7f790, 0x00ac3856, 0x00a639b7, 0x03ac94db, 0x0357b173, 0x03ce7105, 0x03c64009, 0x003ffd35}}, Y: Field{[10]uint32{0x025080e5, 0x01d91433, 0x02dc6e89, 0x01af6b5f, 0x014c110d, 0x024a92ec, 0x030697a2, 0x008b4440, 0x018e0ffe, 0x001a529e}}}, + {X: Field{[10]uint32{0x03f90534, 0x03233a70, 0x00d18c06, 0x0068c495, 0x0300932b, 0x03350dc1, 0x031e8bc1, 0x027d1ba4, 0x0239c13c, 0x001f5dba}}, Y: Field{[10]uint32{0x03e415bb, 0x00727fa2, 0x026d4d2a, 0x022ce696, 0x024cee43, 0x01163245, 0x007cf7c3, 0x00f63cd3, 0x02ba8f0a, 0x002f052c}}}, + {X: Field{[10]uint32{0x0207ad39, 0x00c3a557, 0x037e8a67, 0x017a097d, 0x01625fda, 0x00c2aaab, 0x00807075, 0x0393cdbc, 0x02d2ca6a, 0x002dbbf2}}, Y: Field{[10]uint32{0x01b1c765, 0x00864e6f, 0x005f00a4, 0x00687d90, 0x02469430, 0x00fa9ab5, 0x036f4a32, 0x034c9c0f, 0x00ef8a56, 0x00121a36}}}, + {X: Field{[10]uint32{0x0233a32e, 0x032a9b8d, 0x02b4ae30, 0x02ab034a, 0x0348e38f, 0x01d501b4, 0x03f9050e, 0x03129b4d, 0x012aa889, 0x0006812c}}, Y: Field{[10]uint32{0x0075911d, 0x01baf237, 0x02966c24, 0x0005ebe1, 0x0221e1c8, 0x039fa827, 0x0017dca3, 0x023641b2, 0x008ffad3, 0x003d0e83}}}, + {X: Field{[10]uint32{0x03209b7e, 0x02ab5460, 0x02a6c531, 0x00016935, 0x03b70e25, 0x0323b777, 0x0078b126, 0x0146413a, 0x00fe9b34, 0x002b6bac}}, Y: Field{[10]uint32{0x037522ad, 0x032c0e74, 0x03173f33, 0x03bf19e4, 0x02b1c59d, 0x02639bb7, 0x00c6b4e1, 0x00a69c23, 0x016ddd4d, 0x000ac9ac}}}, + {X: Field{[10]uint32{0x006e0679, 0x013ae20b, 0x010d19a9, 0x00961183, 0x00d97fa1, 0x0358c9d9, 0x012121d2, 0x03cff2d4, 0x02023931, 0x00013932}}, Y: Field{[10]uint32{0x00537467, 0x0208b461, 0x00348515, 0x005fc965, 0x02cc917b, 0x00a3accc, 0x00c68609, 0x029b2515, 0x02cd3704, 0x003be43b}}}, + {X: Field{[10]uint32{0x011e2971, 0x030821f0, 0x02a220a7, 0x02b2b700, 0x035654ec, 0x00e7d80e, 0x01b5ee41, 0x0304e9c4, 0x0279df69, 0x00287cf0}}, Y: Field{[10]uint32{0x02a16b2d, 0x0148eb6d, 0x023b2252, 0x035ea2a4, 0x02e8aafa, 0x03bf88c9, 0x03699165, 0x01e375fb, 0x039454cb, 0x0015c925}}}, + {X: Field{[10]uint32{0x0398c7a5, 0x004f8339, 0x003c4f4b, 0x0321a9a4, 0x03c19424, 0x03259d7f, 0x030c911b, 0x01a39bd2, 0x03814886, 0x002ab1db}}, Y: Field{[10]uint32{0x00dd2978, 0x029cb461, 0x03189588, 0x00dbac9d, 0x02c37595, 0x00d826f0, 0x011df3f7, 0x01f5b04e, 0x02dfdd6c, 0x00092b85}}}, + {X: Field{[10]uint32{0x00034769, 0x036dc074, 0x030a2a5b, 0x025a8578, 0x010ddce4, 0x012639b2, 0x03601666, 0x008bc378, 0x0171e596, 0x001c3a50}}, Y: Field{[10]uint32{0x0103b757, 0x0113c684, 0x0257d5e2, 0x02ef3d1a, 0x02446111, 0x00803e4a, 0x004d4e80, 0x032fbcae, 0x00a775a9, 0x0035b5f0}}}, + {X: Field{[10]uint32{0x02c78890, 0x023825a3, 0x002b6f28, 0x01ad6e0a, 0x03342670, 0x01aac711, 0x02fa849c, 0x01124925, 0x01e711d4, 0x003285f9}}, Y: Field{[10]uint32{0x03ce2c2e, 0x00bcfa22, 0x034105e3, 0x03b938a0, 0x00e6c58f, 0x005f4cb3, 0x039f501e, 0x01dee376, 0x02322ce5, 0x002cf775}}}, + {X: Field{[10]uint32{0x03aa62e8, 0x018c928b, 0x025717ec, 0x0006357f, 0x00255ec0, 0x0290eae7, 0x000700f3, 0x03f7a1ab, 0x018d8d70, 0x000685a9}}, Y: Field{[10]uint32{0x02710c27, 0x003ac746, 0x017e116c, 0x03cde8e2, 0x00dc2eb6, 0x015f074c, 0x03bc1372, 0x03c28f75, 0x02ba65af, 0x003cb2cb}}}, + {X: Field{[10]uint32{0x00b9d4f2, 0x02438ca5, 0x0301e981, 0x01eb8f97, 0x012dd335, 0x02acab04, 0x01c6bbf5, 0x037c430a, 0x02650b4d, 0x0023cb77}}, Y: Field{[10]uint32{0x034c6afb, 0x024ff937, 0x01f5d804, 0x016f4c9e, 0x0179df33, 0x01647df3, 0x02954bd8, 0x00db5413, 0x00f7e5a7, 0x00381ae3}}}, + {X: Field{[10]uint32{0x00950162, 0x0376a401, 0x018c5a3a, 0x0215b223, 0x00ba1d72, 0x0336cd59, 0x014562e0, 0x00f9f203, 0x0153f821, 0x000cc52d}}, Y: Field{[10]uint32{0x0043532d, 0x02a87e7f, 0x00c24fc4, 0x018804eb, 0x02b4dab4, 0x00f2b547, 0x00a7434e, 0x031543e5, 0x005ee3f7, 0x000cfa0f}}}, + {X: Field{[10]uint32{0x01304000, 0x00f16e89, 0x026062af, 0x0153b8ad, 0x03fa5895, 0x01229f30, 0x01b11a33, 0x0030bff1, 0x02f465ac, 0x001f041f}}, Y: Field{[10]uint32{0x035702c5, 0x0398fba5, 0x0124b508, 0x01e708fc, 0x0289b5a9, 0x015b4d97, 0x027fe78e, 0x001c1741, 0x03122e8a, 0x001ad6f3}}}, + {X: Field{[10]uint32{0x03e4f8b3, 0x01a95296, 0x00cb97b7, 0x0014dac8, 0x0019be46, 0x01565b42, 0x01e257ee, 0x037d9d44, 0x0029325a, 0x003a462a}}, Y: Field{[10]uint32{0x032fa8ae, 0x032481f3, 0x00ebfa9d, 0x03bc0ffc, 0x01b70af0, 0x00846705, 0x03a8f0d1, 0x014b0f86, 0x00a0b461, 0x0006a4bc}}}, + {X: Field{[10]uint32{0x01b9b079, 0x032533d0, 0x015d1e3f, 0x01f4b3a8, 0x01c346c9, 0x038c2720, 0x02dd2e3b, 0x0292e7a4, 0x0203d4f3, 0x0021dc36}}, Y: Field{[10]uint32{0x03123c03, 0x03a10b6a, 0x0005a10c, 0x01847ed4, 0x0053f964, 0x013d5feb, 0x01372fe6, 0x00f55c63, 0x030fdc63, 0x00340950}}}, + {X: Field{[10]uint32{0x00d8b22b, 0x012ab56b, 0x03ea1731, 0x01c318a0, 0x01a6589f, 0x02ef00e7, 0x026a57f6, 0x00955ec4, 0x013fae2b, 0x0031ad2b}}, Y: Field{[10]uint32{0x00d29bfe, 0x006bfeb6, 0x036fb46e, 0x023b3cf1, 0x0385f288, 0x01270e37, 0x01f278de, 0x00d048d7, 0x01cd2c1c, 0x003a148f}}}, + {X: Field{[10]uint32{0x03a86e14, 0x0232dc0d, 0x039689c8, 0x006c786a, 0x01462274, 0x03e1c586, 0x03b1e91f, 0x03e610dc, 0x01486ffb, 0x0026b3b6}}, Y: Field{[10]uint32{0x00b352d9, 0x01fd6482, 0x012cde8e, 0x03b29aa1, 0x0316e1e7, 0x02527074, 0x003cc321, 0x00c77ffd, 0x031f1b4c, 0x0035e9fa}}}, + {X: Field{[10]uint32{0x039007f3, 0x0153d7c6, 0x0322b87c, 0x015780e2, 0x01b08bf0, 0x03a2b29a, 0x034015b1, 0x036ad313, 0x036ffccb, 0x002bd454}}, Y: Field{[10]uint32{0x03130f7b, 0x03e12791, 0x027ef00c, 0x02ddc0e8, 0x00cbe813, 0x02ec74c2, 0x03fa85ba, 0x01fb3d27, 0x034c95c0, 0x002daec2}}}, + {X: Field{[10]uint32{0x01823ce2, 0x00bb94c4, 0x00c3e5bb, 0x03e8608e, 0x0156e02f, 0x01707249, 0x0045a092, 0x02aed5bf, 0x02df3ea0, 0x003b14c1}}, Y: Field{[10]uint32{0x01ee8b99, 0x004a100b, 0x009f6898, 0x02ff6507, 0x009457f4, 0x00f242f6, 0x00653524, 0x0197d060, 0x01b6720f, 0x00325433}}}, + {X: Field{[10]uint32{0x032d90a0, 0x0366ebb9, 0x00d876c5, 0x02320779, 0x03587f46, 0x024590d8, 0x0397ecd5, 0x01ef1868, 0x00a5be12, 0x000a4ec7}}, Y: Field{[10]uint32{0x0235d821, 0x01bdd36e, 0x0261bae2, 0x0090f463, 0x010443a5, 0x01d9218f, 0x03d81d91, 0x027c17a4, 0x030f238e, 0x00120840}}}, + {X: Field{[10]uint32{0x00865488, 0x007d21ad, 0x003c1256, 0x01088bbe, 0x00168771, 0x01a2ff04, 0x0151f0ee, 0x01aadaca, 0x037d9987, 0x003af952}}, Y: Field{[10]uint32{0x01381c07, 0x01bbae1b, 0x03c47924, 0x02835206, 0x0158d84f, 0x02090bd4, 0x0299d91b, 0x0200bfe9, 0x011ccaf8, 0x000a8759}}}, + {X: Field{[10]uint32{0x0064acdc, 0x03671a4d, 0x019dfd38, 0x00951174, 0x0133ac83, 0x00a74366, 0x0220109b, 0x035a6fb4, 0x01233ab0, 0x00223ddd}}, Y: Field{[10]uint32{0x03276702, 0x00a0b2f2, 0x00d5b79a, 0x01651670, 0x038e0590, 0x03b1afaf, 0x02a2cb1a, 0x017bd4c7, 0x0122fbd9, 0x0023e454}}}, + {X: Field{[10]uint32{0x02b3bb01, 0x005cd668, 0x0039fb81, 0x02e5ba51, 0x03c7fa40, 0x03afa5e5, 0x036cfa08, 0x00376276, 0x013de721, 0x0007611d}}, Y: Field{[10]uint32{0x01f41ad6, 0x029e187c, 0x0260dabf, 0x00ce7cd0, 0x012e889c, 0x01503121, 0x000b6d6f, 0x029361d1, 0x035aba53, 0x003dcd82}}}, + {X: Field{[10]uint32{0x011d4b2f, 0x033bed4c, 0x01e1c27f, 0x00f979d0, 0x0336f82a, 0x02ce2338, 0x01ae032c, 0x020b073c, 0x01f5176f, 0x000679a7}}, Y: Field{[10]uint32{0x03d5c143, 0x016ee9b2, 0x016e00b9, 0x02bd6ed2, 0x0309d9f7, 0x030745ec, 0x0175dc8c, 0x014efaf8, 0x00fec9ba, 0x0031007d}}}, + {X: Field{[10]uint32{0x02e3f2c9, 0x00d5332b, 0x0372953d, 0x01790ab7, 0x0119b04f, 0x01fca6a9, 0x01a93995, 0x0097ff7c, 0x0202c1f1, 0x001cc627}}, Y: Field{[10]uint32{0x0137f704, 0x00270069, 0x01424010, 0x00710407, 0x00d901de, 0x0390180e, 0x01d21b01, 0x01f3e188, 0x008f1c6e, 0x0014ae3a}}}, + {X: Field{[10]uint32{0x0087a74f, 0x0095ba4a, 0x0366901c, 0x02c296b9, 0x03278fd2, 0x01d1fc74, 0x038956cb, 0x02a2fd4b, 0x00828ff1, 0x00317af8}}, Y: Field{[10]uint32{0x01259860, 0x03c736f3, 0x033823ef, 0x0075b026, 0x02c506e5, 0x035cdad7, 0x0397dc92, 0x012e606a, 0x00b962e7, 0x00033963}}}, + {X: Field{[10]uint32{0x0182da76, 0x02815892, 0x01166435, 0x019f20ee, 0x011a7808, 0x02f220f5, 0x016feed3, 0x0038050a, 0x0221f799, 0x001e0f05}}, Y: Field{[10]uint32{0x0236da30, 0x0158f862, 0x03bc622f, 0x01d2f57f, 0x01f52245, 0x03ae0067, 0x0165c3e8, 0x02271a71, 0x03e2c9a1, 0x0000dc2c}}}, + {X: Field{[10]uint32{0x022b3305, 0x0267dbfe, 0x015794d7, 0x032cb1c7, 0x01fad66f, 0x0294dc87, 0x024cbd64, 0x01a9185c, 0x02800ccc, 0x0015579f}}, Y: Field{[10]uint32{0x004e9e41, 0x036980fd, 0x030eb63b, 0x00242cc9, 0x02db9b48, 0x023f9b75, 0x035ed312, 0x01c10863, 0x0165d39d, 0x0019eefc}}}, + {X: Field{[10]uint32{0x00243471, 0x0084e950, 0x0150a4b0, 0x02932b37, 0x030faa40, 0x010b1ac6, 0x028467e2, 0x0351b3c7, 0x0226ab1c, 0x00103126}}, Y: Field{[10]uint32{0x03dadf86, 0x0204fd8b, 0x0296bdc2, 0x00c19fd3, 0x03ad55bf, 0x00d08930, 0x039fdb4c, 0x0188bf82, 0x03005002, 0x0005a542}}}, + {X: Field{[10]uint32{0x03935298, 0x02d8bdb5, 0x021627c8, 0x009835df, 0x02473062, 0x0164f1d1, 0x0010b9f5, 0x02346272, 0x03e5db09, 0x003adace}}, Y: Field{[10]uint32{0x015c5bc8, 0x01d3c380, 0x022fb9bd, 0x01c512f8, 0x00c84e96, 0x00073b72, 0x01902317, 0x01bd707e, 0x01843f35, 0x000f4a55}}}, + {X: Field{[10]uint32{0x02b26091, 0x019c3397, 0x03ca903f, 0x00da6813, 0x03a06835, 0x034186d4, 0x020a0734, 0x0305a472, 0x00a42b55, 0x0005dc86}}, Y: Field{[10]uint32{0x03a5fa42, 0x02da432c, 0x00f4eced, 0x01c9d67c, 0x02057e0e, 0x017a2e5e, 0x017f243e, 0x02f1cddc, 0x021aa8a3, 0x00258459}}}, + {X: Field{[10]uint32{0x03d2a680, 0x020e99e3, 0x02be37f8, 0x018a2c1f, 0x02ea0c37, 0x009f099e, 0x0028c001, 0x017e29f4, 0x03a2f3bc, 0x002106a3}}, Y: Field{[10]uint32{0x012cf1b0, 0x00b53cd1, 0x0289d9a4, 0x02313e6e, 0x00052693, 0x0236ef73, 0x00577128, 0x007dde80, 0x037db2fd, 0x0015e6fc}}}, + {X: Field{[10]uint32{0x02dea82d, 0x0142985b, 0x01691322, 0x02735f94, 0x00358578, 0x00e6714f, 0x001421da, 0x01fc7b20, 0x01543a37, 0x002c07bd}}, Y: Field{[10]uint32{0x01a90265, 0x000802c9, 0x009eb962, 0x0347998e, 0x0082e119, 0x01e8dfc5, 0x03626a00, 0x02cbc4eb, 0x00e97e29, 0x000a3cc3}}}, + {X: Field{[10]uint32{0x00f38904, 0x006c2b01, 0x029a6259, 0x01f02ce2, 0x00ba344e, 0x03e32646, 0x02e70d6e, 0x03190c5f, 0x014e8e3c, 0x002e4f80}}, Y: Field{[10]uint32{0x000ac3d3, 0x027f2549, 0x001f72b2, 0x03b702b8, 0x00d0b368, 0x00bfe26d, 0x03152e10, 0x034431af, 0x01855bdf, 0x00004a70}}}, + {X: Field{[10]uint32{0x03acd522, 0x02fd5201, 0x0137305f, 0x031a2b20, 0x01a00601, 0x01b58c62, 0x000a1dd2, 0x00366bfe, 0x02f243c5, 0x00383d09}}, Y: Field{[10]uint32{0x02b749fc, 0x0035c177, 0x02d1e143, 0x00abac92, 0x021c1938, 0x033ce70a, 0x00bd848c, 0x037178c1, 0x03e0951a, 0x0025b620}}}, + {X: Field{[10]uint32{0x0073233c, 0x03aa6de7, 0x03df2147, 0x0052ceee, 0x00d5379f, 0x00ee7b01, 0x030adda6, 0x025eb4a1, 0x007440e8, 0x003847a7}}, Y: Field{[10]uint32{0x01c1f019, 0x03c2881b, 0x016c5cb9, 0x013767cf, 0x01e125e3, 0x0388b8d6, 0x01a9df03, 0x01d4c8fd, 0x014b2919, 0x001275b9}}}, + {X: Field{[10]uint32{0x016b2c2b, 0x03d9e9ea, 0x0191c79c, 0x01c26b11, 0x02ae38ee, 0x00009f30, 0x0396eca2, 0x03c514ed, 0x004b0c5e, 0x00246b56}}, Y: Field{[10]uint32{0x030bac2a, 0x030729d4, 0x001e23e9, 0x025fb3a1, 0x01565dfd, 0x017670f1, 0x0379e5db, 0x0314c447, 0x0213a620, 0x00360568}}}, + {X: Field{[10]uint32{0x0299f8d2, 0x01011850, 0x033dabfe, 0x00708c0f, 0x01103297, 0x02cc8bcd, 0x0013785c, 0x00d3c81d, 0x0392f4fa, 0x000f9c94}}, Y: Field{[10]uint32{0x0308ae85, 0x0088f95d, 0x0039e042, 0x015de256, 0x014e0c1d, 0x0241fbe9, 0x01482176, 0x03bb57cd, 0x02515add, 0x00238c8e}}}, + {X: Field{[10]uint32{0x01a98160, 0x03d5e411, 0x039bced4, 0x026e6808, 0x0191d911, 0x02a18fcd, 0x03c00acf, 0x0226ad20, 0x02c201a5, 0x0017a1ef}}, Y: Field{[10]uint32{0x02e7d47b, 0x009408fc, 0x032633a8, 0x00734335, 0x0233625f, 0x03f0e69b, 0x02f3c159, 0x01707e7a, 0x038433c7, 0x002a228e}}}, + {X: Field{[10]uint32{0x0268a0ed, 0x03e87234, 0x00f32489, 0x003b494b, 0x01da1826, 0x013a6642, 0x01cb6524, 0x00ecd5d2, 0x02132cb9, 0x0030b821}}, Y: Field{[10]uint32{0x008a5761, 0x00360aa3, 0x007644ed, 0x01934169, 0x0328e02e, 0x015381dc, 0x03038d68, 0x00d97751, 0x03ad1f16, 0x0034fcb8}}}, + {X: Field{[10]uint32{0x031978af, 0x005ee9c3, 0x0025c745, 0x034392e4, 0x023b9053, 0x0077650c, 0x02193c23, 0x0261a5ec, 0x005eccf0, 0x00264c13}}, Y: Field{[10]uint32{0x009dc789, 0x00066a88, 0x02111338, 0x03cc7836, 0x00ba1324, 0x00f74128, 0x03e77e34, 0x004e59bd, 0x027b638b, 0x003b9dfe}}}, + {X: Field{[10]uint32{0x00c5c6bc, 0x004c8aad, 0x02b1d1c2, 0x000d9435, 0x0325a79f, 0x027be256, 0x01f04f70, 0x03ecdd94, 0x00c559ad, 0x00103842}}, Y: Field{[10]uint32{0x039db653, 0x039192d9, 0x02b2cfc5, 0x02ae8253, 0x00210eb2, 0x011ffbd1, 0x02ff3f8c, 0x03992212, 0x03385733, 0x0022602a}}}, + {X: Field{[10]uint32{0x00c6a78a, 0x03ab3722, 0x01aca5bb, 0x037725c4, 0x006d6276, 0x03d4237d, 0x00315287, 0x001c8483, 0x02572d19, 0x00263220}}, Y: Field{[10]uint32{0x01a61c92, 0x0399dad0, 0x03256f3e, 0x003b8230, 0x00b57f27, 0x0341443a, 0x02ea7f48, 0x017fef44, 0x01761f5c, 0x001746aa}}}, + {X: Field{[10]uint32{0x00af6fed, 0x036ac818, 0x03740c05, 0x002601bf, 0x02d7b4cf, 0x005b0deb, 0x00eeab7a, 0x008c1ae1, 0x027a25e9, 0x000e26ae}}, Y: Field{[10]uint32{0x0065707e, 0x003b3db4, 0x01c13d6f, 0x00dcd7d8, 0x0049c326, 0x004aca64, 0x032ed608, 0x038ba34d, 0x00c9ec48, 0x0019ceac}}}, + {X: Field{[10]uint32{0x0253df17, 0x014fbab2, 0x03732614, 0x02ab94e6, 0x026619ea, 0x017c46ce, 0x02fda62e, 0x0255ba4f, 0x03ba832c, 0x00277193}}, Y: Field{[10]uint32{0x005990ac, 0x02ebf6bd, 0x0089f956, 0x0326520e, 0x038f60a9, 0x0228d63b, 0x0267ad8d, 0x02ac4290, 0x00a93c56, 0x000602ce}}}, + {X: Field{[10]uint32{0x024921f7, 0x0270557f, 0x008a9675, 0x00334f54, 0x03b3439b, 0x02d9c1ea, 0x003528b8, 0x030b0d88, 0x0218e758, 0x001c4463}}, Y: Field{[10]uint32{0x02104ee0, 0x01e78a2a, 0x0000b5ec, 0x03df8732, 0x0176bf22, 0x0046d4b4, 0x0108719f, 0x013a7192, 0x02f12c1b, 0x0030bd86}}}, + {X: Field{[10]uint32{0x02c3d096, 0x02ecaa0f, 0x0224245c, 0x008d94c6, 0x0146218b, 0x02b717f4, 0x00e09909, 0x03cf1249, 0x01ee11b9, 0x000cef3b}}, Y: Field{[10]uint32{0x00fbad0a, 0x0015f56b, 0x03e9d655, 0x023578c5, 0x03f83b3e, 0x011a53f6, 0x01a71f6f, 0x0319ce50, 0x011a6c22, 0x00057d2f}}}, + {X: Field{[10]uint32{0x0213ccb4, 0x02c83713, 0x031d0e66, 0x0101d661, 0x01fbd977, 0x00bf6e95, 0x021e5cb6, 0x03a7c7c5, 0x033a4ab5, 0x0012d666}}, Y: Field{[10]uint32{0x023fb523, 0x020a6752, 0x034232b1, 0x0268b1b7, 0x006c9601, 0x02cd0851, 0x03064119, 0x009cae2d, 0x01da9035, 0x0018d40e}}}, + {X: Field{[10]uint32{0x01269d10, 0x010d96c8, 0x03627569, 0x0368d7a5, 0x02decb8d, 0x0144d809, 0x038f6429, 0x0132a506, 0x034cdae5, 0x00067daf}}, Y: Field{[10]uint32{0x033c95d7, 0x024b1933, 0x03f3da1c, 0x01ad8274, 0x036cb31a, 0x02c9d40b, 0x00bca48d, 0x001b7099, 0x03dc090b, 0x0028930f}}}, + {X: Field{[10]uint32{0x0301314c, 0x03751bc6, 0x0267a058, 0x01d6c5de, 0x028a2708, 0x02b41ceb, 0x0229adf7, 0x034537d9, 0x01a98027, 0x002f0f7c}}, Y: Field{[10]uint32{0x008d1f76, 0x02cc2ae0, 0x005e7b6b, 0x0195dc1d, 0x01934450, 0x03645462, 0x0233e898, 0x00741cbb, 0x029154f5, 0x0026774e}}}, + {X: Field{[10]uint32{0x01d72c3c, 0x012a795f, 0x0285e1ea, 0x00793768, 0x02c34ef3, 0x0306b97d, 0x025f5b5a, 0x01c3a134, 0x0264521a, 0x0025de90}}, Y: Field{[10]uint32{0x039f5a0c, 0x03a6ca8a, 0x0041b4fc, 0x01a0cb87, 0x01dbf44f, 0x03500ff2, 0x0025b61c, 0x00bf9341, 0x00197aab, 0x003c6ff2}}}, + {X: Field{[10]uint32{0x01c9b339, 0x004b1a43, 0x01b47a1c, 0x0044f89c, 0x00098b26, 0x02b71ec7, 0x014a7f58, 0x01694cfb, 0x024a85fc, 0x0017f7f7}}, Y: Field{[10]uint32{0x02c6555a, 0x0113d245, 0x02b1ce97, 0x0222cbdb, 0x01731c25, 0x01bec92e, 0x011bad52, 0x02539825, 0x03afbd6a, 0x000fb7ca}}}, + {X: Field{[10]uint32{0x01e9c50d, 0x000508fa, 0x007476ce, 0x02fe089a, 0x00afc17a, 0x03edf6e3, 0x02c1ac50, 0x022bf3ba, 0x032cdcd2, 0x002e2f35}}, Y: Field{[10]uint32{0x03c55e9d, 0x01144940, 0x026dbf2c, 0x038da9d5, 0x039cb6d0, 0x01dc694f, 0x03d9f2f3, 0x03015e6e, 0x03c52e6d, 0x0002098c}}}, + {X: Field{[10]uint32{0x01f75c77, 0x02290700, 0x01c728be, 0x03a769cd, 0x01721bc2, 0x03a51959, 0x01d01eb6, 0x030def19, 0x0199133b, 0x001b082e}}, Y: Field{[10]uint32{0x00b71e53, 0x037c4550, 0x03f20cf6, 0x0129e717, 0x015e36f4, 0x0296b91d, 0x0342aa47, 0x000db897, 0x0274d8ad, 0x000832bd}}}, + {X: Field{[10]uint32{0x015adb07, 0x03246b4c, 0x03a7022b, 0x03e858ed, 0x03f877b5, 0x00ba4677, 0x00e4bf2f, 0x017c54e7, 0x01416965, 0x002ef924}}, Y: Field{[10]uint32{0x03f93a1e, 0x01dba732, 0x036ac40f, 0x01fc3b21, 0x01a77b84, 0x02e3f029, 0x02b5ff6d, 0x0348f231, 0x00256618, 0x002334f8}}}, + {X: Field{[10]uint32{0x01e73786, 0x00531a19, 0x00c752fe, 0x02bb4e60, 0x03bf6dfe, 0x015905cd, 0x0339bbbc, 0x01d2fc1f, 0x0078e383, 0x001d22cc}}, Y: Field{[10]uint32{0x02811ac8, 0x032533ca, 0x02eb28f3, 0x02c18a5e, 0x03ea86b6, 0x005ff211, 0x01f2c802, 0x037e891c, 0x020a61a7, 0x001fdf2b}}}, + {X: Field{[10]uint32{0x0364e4b4, 0x03522fb1, 0x000bcd23, 0x024b414b, 0x005d39d5, 0x009cb3da, 0x015728b2, 0x00956518, 0x03c5b89a, 0x003e98f1}}, Y: Field{[10]uint32{0x00a47c8a, 0x01f5a4a3, 0x01d31fbe, 0x035972d3, 0x01804724, 0x0359f410, 0x0238a506, 0x02758387, 0x03a27751, 0x003130ca}}}, + {X: Field{[10]uint32{0x0056c91c, 0x014e1c73, 0x024446c9, 0x02c1c38f, 0x0386978e, 0x02520c52, 0x025ea13d, 0x038e028d, 0x0197d014, 0x0030bb5c}}, Y: Field{[10]uint32{0x026a595e, 0x03700791, 0x0007009b, 0x02ddcdf7, 0x033404bd, 0x022e6c3e, 0x0054a09d, 0x033463de, 0x0293e7c1, 0x00171cf0}}}, + {X: Field{[10]uint32{0x03c266be, 0x03fa1c9b, 0x03ab5f22, 0x00130367, 0x026c2b3a, 0x03cfa001, 0x0334e846, 0x002f5b0b, 0x01efcb1e, 0x00094530}}, Y: Field{[10]uint32{0x024e3eb3, 0x007b2531, 0x01ad069a, 0x0376333e, 0x02507c35, 0x017d9bb1, 0x00443466, 0x02cb67fe, 0x006c07bb, 0x0031682b}}}, + {X: Field{[10]uint32{0x02286350, 0x01bbe513, 0x0081df6b, 0x03ff25a8, 0x00e2318b, 0x028e10f2, 0x01d2e289, 0x011fc963, 0x03050116, 0x0016f01f}}, Y: Field{[10]uint32{0x03bcbea4, 0x03e16afa, 0x02c66a41, 0x01947844, 0x017a91c4, 0x0096136d, 0x007d059f, 0x03bc1236, 0x00931217, 0x00084f38}}}, + {X: Field{[10]uint32{0x023cad8a, 0x0285cc66, 0x03dd8862, 0x00d7da80, 0x03db9c13, 0x01eb9193, 0x0173f706, 0x016c0e29, 0x02429737, 0x003b6d5b}}, Y: Field{[10]uint32{0x01ef5fa7, 0x01111fc5, 0x01f2e531, 0x014c7660, 0x00358620, 0x009bcef9, 0x038414a4, 0x03551986, 0x027016f8, 0x0034f986}}}, + {X: Field{[10]uint32{0x03d5d732, 0x0323675c, 0x03d55817, 0x023b435d, 0x02684908, 0x0380a191, 0x03609982, 0x019204ef, 0x036e7826, 0x000a4949}}, Y: Field{[10]uint32{0x0287296f, 0x004ff926, 0x02d22622, 0x004c8375, 0x0184b332, 0x02ec33b8, 0x032d755d, 0x0262773a, 0x03a6a97c, 0x003d4c55}}}, + {X: Field{[10]uint32{0x03c0a034, 0x039027a6, 0x0337fa69, 0x01e70ebe, 0x01912863, 0x00dc067a, 0x02098829, 0x03d294dc, 0x01d5bda0, 0x000b115e}}, Y: Field{[10]uint32{0x02f7d99c, 0x032a4d17, 0x0315c336, 0x019ec6e6, 0x02a319d4, 0x00c41ef2, 0x01acd23f, 0x030f1195, 0x034dd889, 0x0038542f}}}, + {X: Field{[10]uint32{0x00808904, 0x0221516a, 0x00b3d056, 0x02e109a6, 0x02025f21, 0x02bcc60c, 0x02295870, 0x03e1daef, 0x020011f9, 0x0017c982}}, Y: Field{[10]uint32{0x02e02350, 0x01cea263, 0x03a9b534, 0x013b60e8, 0x01736fe6, 0x001bab0f, 0x00d2ce00, 0x02a87de9, 0x0232164c, 0x001ab4ce}}}, + {X: Field{[10]uint32{0x02ac4b8b, 0x016935ed, 0x011000d6, 0x01a7a221, 0x029d1f2c, 0x00fecf5a, 0x02fd430f, 0x017b2414, 0x00c61209, 0x000eeeef}}, Y: Field{[10]uint32{0x010b0c97, 0x03e7ea95, 0x019487e4, 0x032ea8ed, 0x0240d244, 0x03256076, 0x01b090f8, 0x029b9f6d, 0x00283846, 0x0000ca3a}}}, + {X: Field{[10]uint32{0x016acff0, 0x02e76065, 0x0117daff, 0x032998b6, 0x02343e80, 0x03088bd2, 0x009af44b, 0x0363bffb, 0x027bdd0f, 0x00126140}}, Y: Field{[10]uint32{0x038affda, 0x005b088e, 0x0065468c, 0x0053fa05, 0x03460b10, 0x009c5a88, 0x01561b5f, 0x01b904c1, 0x012e37a3, 0x00162fbf}}}, + {X: Field{[10]uint32{0x03959de7, 0x0098f559, 0x0359b92e, 0x03300386, 0x006e826e, 0x000ecf73, 0x01eb2d88, 0x0022466d, 0x00e8d2e3, 0x0008518e}}, Y: Field{[10]uint32{0x0232342a, 0x0350793d, 0x03dd8ad9, 0x03c72379, 0x02dc22c0, 0x03d7f270, 0x02e0454f, 0x0078a4d6, 0x01216f13, 0x00027762}}}, + {X: Field{[10]uint32{0x02f3cfdd, 0x00013db9, 0x01f35444, 0x0041a455, 0x016876c1, 0x0197828c, 0x023532b9, 0x00b5abcf, 0x03055ced, 0x001b3b61}}, Y: Field{[10]uint32{0x02546ec6, 0x03ad5bdf, 0x00ac0a83, 0x000665ff, 0x0355b17c, 0x0079abb9, 0x03ba4e2a, 0x0155be2d, 0x02abc86f, 0x003d46c6}}}, + {X: Field{[10]uint32{0x01dcfacb, 0x007221b2, 0x0172730a, 0x03901086, 0x017fc3ad, 0x0216746b, 0x02634987, 0x024db38c, 0x0267876c, 0x0025405b}}, Y: Field{[10]uint32{0x02f4f660, 0x02ece49a, 0x03160742, 0x00bcb90f, 0x034df723, 0x004016ea, 0x03d284b8, 0x019bbbfe, 0x00c4e6e2, 0x000a679e}}}, + {X: Field{[10]uint32{0x026f23f2, 0x0054c67b, 0x00763513, 0x003e76cc, 0x00c513d2, 0x030e633c, 0x02a8019f, 0x0070e710, 0x02c83040, 0x0012fb19}}, Y: Field{[10]uint32{0x038514fc, 0x02c9cd64, 0x003d58e8, 0x028550ff, 0x034fcded, 0x0224a718, 0x01aa9162, 0x0118261c, 0x02923b7d, 0x003c77ff}}}, + {X: Field{[10]uint32{0x008a59c7, 0x03b69e21, 0x03bb27f3, 0x03bd6ac9, 0x019088c4, 0x00394eb9, 0x000015a6, 0x00ee5dab, 0x03d14051, 0x002d4144}}, Y: Field{[10]uint32{0x01c36399, 0x016252e6, 0x0084129a, 0x0326999d, 0x01dc9282, 0x02de1b33, 0x03254c51, 0x039b08fe, 0x02e51182, 0x00271072}}}, + {X: Field{[10]uint32{0x0290708d, 0x005564ed, 0x00c003e4, 0x01149bcc, 0x01d1df38, 0x02a482b2, 0x029bda38, 0x0280e5a9, 0x02533989, 0x00165e49}}, Y: Field{[10]uint32{0x02ba648f, 0x03b40bc6, 0x00bab3a3, 0x02ce5eb9, 0x034c750c, 0x027b99cd, 0x02561921, 0x021f6d79, 0x00b72748, 0x001fcb05}}}, + {X: Field{[10]uint32{0x01eacf6f, 0x00dc1581, 0x02dd34db, 0x03e4fb05, 0x01251cc7, 0x0245b599, 0x00fe2b3e, 0x00aa4d1e, 0x0366cf01, 0x001ee8ad}}, Y: Field{[10]uint32{0x016404bb, 0x02cc47e1, 0x02a6903f, 0x0230b212, 0x003dcc7e, 0x03a2f745, 0x01212865, 0x01e630dc, 0x0138f950, 0x00053f62}}}, + {X: Field{[10]uint32{0x02b5d6bb, 0x00f7e6fa, 0x013a71c4, 0x008959af, 0x017f9e9d, 0x027a0e73, 0x0147af8a, 0x024367f2, 0x02fef69c, 0x000c18bc}}, Y: Field{[10]uint32{0x02f5ee58, 0x025caf01, 0x02bbaad9, 0x0350868d, 0x02064047, 0x0364a9c5, 0x01e7b719, 0x01b505ff, 0x00334991, 0x0036e12a}}}, + {X: Field{[10]uint32{0x00b06e74, 0x0230bf55, 0x00ce3db3, 0x021f8c9f, 0x00f6fae6, 0x02d119c0, 0x034d695c, 0x03b229df, 0x009d69db, 0x003b57e5}}, Y: Field{[10]uint32{0x018930e3, 0x00bfafcb, 0x019fdee6, 0x008fc566, 0x032a6907, 0x026542f2, 0x0104ff92, 0x00f54194, 0x0060057b, 0x0011c938}}}, + {X: Field{[10]uint32{0x021b7cdc, 0x01c39181, 0x028d3d71, 0x01427af5, 0x0030e129, 0x01ab3004, 0x01312fea, 0x0209d83a, 0x02033002, 0x00135957}}, Y: Field{[10]uint32{0x00ea99bb, 0x03b948c4, 0x00d0b7bc, 0x02789e33, 0x00439957, 0x027a5fc1, 0x01e046b6, 0x01526cbd, 0x01226c27, 0x00243bf0}}}, + {X: Field{[10]uint32{0x02f1b35d, 0x019beaba, 0x0260dbf1, 0x02030d46, 0x0368e05e, 0x0120fe56, 0x029edf4a, 0x03bfb342, 0x0356b888, 0x003dad81}}, Y: Field{[10]uint32{0x00a5fb8c, 0x008a8f4e, 0x01df6bfd, 0x023c2f39, 0x00cb57e9, 0x02bebe6c, 0x0096b241, 0x005611aa, 0x02bdaa78, 0x0009efb7}}}, + {X: Field{[10]uint32{0x03c55748, 0x00c06228, 0x00b516ca, 0x00e23f1f, 0x008c81c5, 0x0235ba8b, 0x004db945, 0x0288ddcb, 0x00aa942b, 0x0033164b}}, Y: Field{[10]uint32{0x03288158, 0x0144b476, 0x0307c63d, 0x02c75900, 0x01bb6bd2, 0x00d870fc, 0x0277d100, 0x015820db, 0x03cd358e, 0x000db8bd}}}, + {X: Field{[10]uint32{0x02c1a456, 0x0280cbfd, 0x00edf6a7, 0x01865db4, 0x00f93721, 0x03b7d0c1, 0x023acb8c, 0x011a6086, 0x01dca5bb, 0x0012b2ea}}, Y: Field{[10]uint32{0x02262437, 0x0393a154, 0x021669ca, 0x00aa5cbc, 0x01d6fb30, 0x02ef40b3, 0x032287e9, 0x011fccf9, 0x003ab2ab, 0x002cdba6}}}, + {X: Field{[10]uint32{0x03061f91, 0x011b76fa, 0x0072d974, 0x00f612a5, 0x017be363, 0x02e73a58, 0x010e0c61, 0x01e74cad, 0x005e0422, 0x00322946}}, Y: Field{[10]uint32{0x03d4b5cb, 0x02348b66, 0x000ff3c3, 0x0347fd97, 0x01cdb7cb, 0x019a3bac, 0x00c1df74, 0x00626f59, 0x00b7445e, 0x0033ea94}}}, + {X: Field{[10]uint32{0x035f18f9, 0x02c41074, 0x0120e052, 0x002197e3, 0x01535faf, 0x0277842b, 0x01168a88, 0x03d844d9, 0x016707f4, 0x00307255}}, Y: Field{[10]uint32{0x00033749, 0x02ae5052, 0x027eb537, 0x0384dc23, 0x02543919, 0x015bd11c, 0x02fc1eb9, 0x01ad8c26, 0x003b3d95, 0x000d3def}}}, + {X: Field{[10]uint32{0x0236a8f3, 0x006b9474, 0x038fa8df, 0x01a3cf87, 0x028bb68d, 0x00fdf495, 0x02093703, 0x01cdbad2, 0x03b736f6, 0x00237d3e}}, Y: Field{[10]uint32{0x0102122c, 0x01ddd917, 0x00c81229, 0x03ddc1dc, 0x00cef6b0, 0x006ece14, 0x007af267, 0x00b400e6, 0x01fe8e9a, 0x000f5c61}}}, + {X: Field{[10]uint32{0x025af3dd, 0x02a979aa, 0x00297c2b, 0x02db47af, 0x01c2c8bb, 0x011d4047, 0x02a1ec0c, 0x01f2e3ca, 0x01f0e35c, 0x0000358d}}, Y: Field{[10]uint32{0x03a51a2f, 0x01a00f1e, 0x006435e3, 0x0264614f, 0x03441e5a, 0x0241eb97, 0x0190a5b5, 0x03a2cc6a, 0x02bdc588, 0x0000249b}}}, + {X: Field{[10]uint32{0x0346a4bc, 0x0181c802, 0x01923d64, 0x0097a2d4, 0x013678b5, 0x0038e381, 0x014ea383, 0x014dd5d4, 0x012d5f86, 0x0002d634}}, Y: Field{[10]uint32{0x03438d3e, 0x01121041, 0x037f648e, 0x0103a920, 0x00d77c9e, 0x0265702d, 0x01d587ce, 0x02eace4d, 0x01835b0e, 0x003ded64}}}, + {X: Field{[10]uint32{0x029a7f36, 0x029db6f6, 0x0178011b, 0x014d9187, 0x0212cb42, 0x01e3a26b, 0x03ad0755, 0x00d903b3, 0x028cb401, 0x002edf1a}}, Y: Field{[10]uint32{0x0036581c, 0x00836852, 0x00ba7d1c, 0x0100c1b7, 0x023c2f5c, 0x01c20a56, 0x0195b835, 0x035861a2, 0x02583774, 0x001f7680}}}, + {X: Field{[10]uint32{0x0114a9e6, 0x00eca60d, 0x03b91968, 0x0065c8b3, 0x02f116b8, 0x03e96dea, 0x00a990a7, 0x0233be77, 0x00f792cc, 0x00053dbc}}, Y: Field{[10]uint32{0x024d7055, 0x01bc840e, 0x000b97b9, 0x017fc8e0, 0x01226104, 0x02cffb2d, 0x00e5aac4, 0x01663243, 0x03927a07, 0x002230d7}}}, + {X: Field{[10]uint32{0x03448541, 0x02ef39dd, 0x014fa76b, 0x034125ab, 0x02fb60f4, 0x015fd2a8, 0x01ad8964, 0x02846177, 0x01f4eb9f, 0x0012e579}}, Y: Field{[10]uint32{0x01e71d21, 0x01c1b451, 0x038f4d27, 0x0023df8a, 0x01502d1f, 0x0004807b, 0x0087f512, 0x032cc6e8, 0x0387513a, 0x00078401}}}, + {X: Field{[10]uint32{0x024b63ae, 0x032f4a8d, 0x01c16dce, 0x01993617, 0x03a7af53, 0x008cd568, 0x004aa312, 0x016cb18e, 0x03c067f7, 0x003a685f}}, Y: Field{[10]uint32{0x027fb8c7, 0x00302177, 0x01ac1956, 0x01a806d3, 0x030a40e0, 0x00ad806a, 0x038fcf01, 0x01148d8b, 0x0388ad67, 0x00108288}}}, + {X: Field{[10]uint32{0x03ff9169, 0x02b55110, 0x0281cf10, 0x010e0cc6, 0x0096d4ff, 0x0020d04c, 0x023d066c, 0x03b2053b, 0x0136f320, 0x0000e761}}, Y: Field{[10]uint32{0x028ca248, 0x01b8d9f0, 0x023be7a7, 0x00d44e9e, 0x00c74345, 0x00152af4, 0x0166a556, 0x03a26183, 0x01e91478, 0x001c3ba2}}}, + {X: Field{[10]uint32{0x03b636e8, 0x036a8f0b, 0x0320e001, 0x024f127f, 0x029f95b9, 0x00dc7389, 0x031dc72f, 0x0135b2fa, 0x00c80862, 0x0025de68}}, Y: Field{[10]uint32{0x00c2712e, 0x00292ae8, 0x03907d23, 0x03629932, 0x03369684, 0x000de482, 0x01a4b0e6, 0x01b14027, 0x03cc6729, 0x00276789}}}, + {X: Field{[10]uint32{0x02f0b401, 0x022d3ed9, 0x01586bd7, 0x007f4559, 0x034a9747, 0x032bcdbf, 0x01c09de9, 0x02d23da9, 0x004a1dab, 0x00335316}}, Y: Field{[10]uint32{0x033446f1, 0x00cd0449, 0x017f0bc4, 0x03b711d9, 0x026fd60e, 0x02b4b0a3, 0x02104b0c, 0x001b8acf, 0x02b10eff, 0x0025640a}}}, + {X: Field{[10]uint32{0x0161aba4, 0x02afba89, 0x0319688e, 0x01957549, 0x02dbeb3f, 0x01cadddb, 0x03164f7c, 0x018b2d44, 0x01f41423, 0x0011b284}}, Y: Field{[10]uint32{0x0034c9ff, 0x00b13569, 0x022f5e83, 0x01198813, 0x01bcfd09, 0x01898f18, 0x036d3cbd, 0x03510b7e, 0x031a2a2a, 0x00201810}}}, + {X: Field{[10]uint32{0x0294a513, 0x030e7622, 0x003b475a, 0x0395fa3e, 0x01eb712d, 0x0000c688, 0x035c7535, 0x018fd5db, 0x01791ffb, 0x0037faf4}}, Y: Field{[10]uint32{0x03be75de, 0x032c6b71, 0x00f0aa71, 0x00b7b2ca, 0x006576af, 0x03df1843, 0x02aa0e22, 0x02d53081, 0x007e39b2, 0x0033fb5b}}}, + {X: Field{[10]uint32{0x012c2469, 0x00e021d7, 0x03fcfe12, 0x0285e59f, 0x0143daf1, 0x028ee53e, 0x0233d9d7, 0x0018ed11, 0x013282fd, 0x0031c719}}, Y: Field{[10]uint32{0x01d376d0, 0x0346d52a, 0x02ba8620, 0x00d94ab7, 0x00f18a47, 0x00eafa50, 0x01f8aed3, 0x01a840e3, 0x03cd0e00, 0x0018bf35}}}, + {X: Field{[10]uint32{0x00c0ff37, 0x022bbdcd, 0x007b1e9f, 0x0107f059, 0x026864ec, 0x0123edd6, 0x02640fbf, 0x02826938, 0x034ddc8b, 0x0018faee}}, Y: Field{[10]uint32{0x024ae28e, 0x01848176, 0x022df772, 0x013dc671, 0x01dbf1ae, 0x01cd82a1, 0x01090e19, 0x01bd2d07, 0x034b0fe1, 0x00396740}}}, + {X: Field{[10]uint32{0x0112814a, 0x00536e77, 0x000bceea, 0x00709c75, 0x01ce6e5c, 0x006d624b, 0x02eac616, 0x02fc5963, 0x00c8cb51, 0x00194126}}, Y: Field{[10]uint32{0x00a65279, 0x0162be59, 0x01e6ee30, 0x0215c2b5, 0x027a6145, 0x02f57452, 0x0057769b, 0x00064c91, 0x03855d8e, 0x0039f999}}}, + {X: Field{[10]uint32{0x03c43fd5, 0x00896a11, 0x0032ac41, 0x02a10304, 0x00090815, 0x0205b7d1, 0x0199c07b, 0x00218e05, 0x003f14c0, 0x00052878}}, Y: Field{[10]uint32{0x01fe98de, 0x03581bcd, 0x02ddb6d6, 0x00e1414c, 0x024926da, 0x02ee3bd7, 0x0366bac9, 0x02a23d1b, 0x0259bc6b, 0x000d4912}}}, + {X: Field{[10]uint32{0x02903c5c, 0x03d4c56d, 0x00f084d6, 0x0056ef54, 0x03a4f14c, 0x004553ff, 0x00f9a167, 0x0287a03b, 0x02b2f6a8, 0x000727db}}, Y: Field{[10]uint32{0x0203a033, 0x0181974a, 0x0187dd26, 0x00f900be, 0x01538638, 0x0143bba6, 0x026fc511, 0x03fd8e6d, 0x01f52ca4, 0x0039af78}}}, + {X: Field{[10]uint32{0x0170f8bf, 0x03c0863e, 0x029d97cf, 0x006b0381, 0x00b43ea6, 0x02c0355b, 0x00809664, 0x039ec41f, 0x02ed0bad, 0x000779c7}}, Y: Field{[10]uint32{0x00ee1434, 0x01f69986, 0x029bb5c6, 0x0176615d, 0x01ea99d6, 0x02def253, 0x00d42e16, 0x03babb5e, 0x02de77ed, 0x0002352c}}}, + {X: Field{[10]uint32{0x035cb4b1, 0x01baaad7, 0x018c35a9, 0x00e420e3, 0x02479f7a, 0x02eeadc1, 0x022f0628, 0x0134baea, 0x0280ce95, 0x003d10ca}}, Y: Field{[10]uint32{0x02d579bf, 0x0286272f, 0x0302cc67, 0x01dca718, 0x0291f3d0, 0x03f024e0, 0x00abf476, 0x0290300f, 0x02adac34, 0x0025bf9b}}}, + {X: Field{[10]uint32{0x0119fb21, 0x022d7a49, 0x00737482, 0x032b0549, 0x01cb37e1, 0x02109046, 0x023d3f96, 0x012bd158, 0x034d1796, 0x0023dc79}}, Y: Field{[10]uint32{0x004865ab, 0x01e15358, 0x0091cec0, 0x008021a7, 0x025b6b17, 0x02fda51b, 0x03678e4e, 0x03292e9d, 0x00dfd7f0, 0x001a643c}}}, + {X: Field{[10]uint32{0x02a6745e, 0x00671271, 0x001a1200, 0x014b3bdc, 0x005a09d0, 0x025aa0e8, 0x01546e20, 0x03097999, 0x01575e3d, 0x00088a4c}}, Y: Field{[10]uint32{0x01c423b0, 0x01bab639, 0x0285986a, 0x020b7bfa, 0x0283d050, 0x02a5072a, 0x012bfae8, 0x01581f1e, 0x00874258, 0x002ab63e}}}, + {X: Field{[10]uint32{0x0248a096, 0x00ea8abc, 0x017c63b7, 0x01a4eb08, 0x00cc57d0, 0x03989d94, 0x02bf5f29, 0x029a6a05, 0x02632ef3, 0x0019617f}}, Y: Field{[10]uint32{0x00fd9f8b, 0x00dea0db, 0x037cc12f, 0x00ff7847, 0x03dc8a89, 0x01bb3157, 0x019ca577, 0x006bfbb7, 0x03bb2028, 0x002082a8}}}, + {X: Field{[10]uint32{0x03f67bf8, 0x007907e4, 0x01339195, 0x00bf9843, 0x01aaec47, 0x02fc18a0, 0x0163ce5a, 0x01472aca, 0x0079e55c, 0x000888c9}}, Y: Field{[10]uint32{0x03f927d2, 0x016a6efa, 0x0104bb7c, 0x0062a359, 0x02888a8f, 0x0304ca68, 0x03f0514b, 0x00b5ff99, 0x03ab2cf2, 0x0003864b}}}, + {X: Field{[10]uint32{0x01df16fc, 0x01f6c097, 0x00f60826, 0x022dc3a6, 0x00446014, 0x02ce5b25, 0x00aba082, 0x001a7af3, 0x02fde4ba, 0x0036a340}}, Y: Field{[10]uint32{0x023fa2bb, 0x01d80879, 0x034d059a, 0x03422d9b, 0x01579756, 0x01e8b993, 0x0167e7c1, 0x0021291f, 0x013de337, 0x00068c08}}}, + {X: Field{[10]uint32{0x02202ebf, 0x02a7c624, 0x02501708, 0x0249e3b9, 0x01ad49e0, 0x01313a2e, 0x038a0066, 0x020b7bc6, 0x0062854e, 0x0029bdcb}}, Y: Field{[10]uint32{0x01d03ba4, 0x00d54dc0, 0x0037edaa, 0x02246a0e, 0x002e2709, 0x008c63bd, 0x03c56abc, 0x0204102d, 0x032db08c, 0x0020d565}}}, + {X: Field{[10]uint32{0x03c7db68, 0x016b8a8e, 0x028ee8d5, 0x033a67d6, 0x02a15077, 0x00df7315, 0x02f8c359, 0x02168171, 0x013a309e, 0x00081d3f}}, Y: Field{[10]uint32{0x022cff97, 0x0387c20c, 0x0182e53a, 0x03a6baa5, 0x023061a4, 0x001aa605, 0x018fc0e8, 0x00f250b9, 0x02eacb78, 0x00384700}}}, + {X: Field{[10]uint32{0x01a1a5e3, 0x0071431e, 0x0106c861, 0x03cc6098, 0x0229aa59, 0x00a92d8b, 0x00d316f6, 0x02a8adc3, 0x0266fae9, 0x00127b55}}, Y: Field{[10]uint32{0x007643f7, 0x02eb1b20, 0x028b6324, 0x0024aa0d, 0x021477c2, 0x0261a59e, 0x000b19ef, 0x0138af73, 0x009aae14, 0x001729f9}}}, + {X: Field{[10]uint32{0x016c1b1f, 0x004d8897, 0x014683ed, 0x03a63864, 0x01b582c4, 0x00dc88cd, 0x03472a71, 0x0393a617, 0x007ea1f7, 0x0008a27b}}, Y: Field{[10]uint32{0x01cbbeb1, 0x0144b2b6, 0x0090261a, 0x022f5c3a, 0x03b03f89, 0x01ff903d, 0x017bff67, 0x00219c14, 0x0318689a, 0x0000478a}}}, + {X: Field{[10]uint32{0x01859164, 0x0273afe1, 0x00635bc4, 0x014bff1c, 0x03fbed0e, 0x022e8ae8, 0x02c64a55, 0x03befb62, 0x02be23f1, 0x003aa14b}}, Y: Field{[10]uint32{0x01cbb824, 0x02a98d50, 0x00fafc97, 0x01456c97, 0x0125ef13, 0x01e93905, 0x0266583c, 0x0298e5cc, 0x0341fe97, 0x002f78bb}}}, + {X: Field{[10]uint32{0x0302f0ea, 0x026f86f4, 0x018553fe, 0x01f6905e, 0x00290b25, 0x03fbc229, 0x001a9548, 0x01f4fc6b, 0x00e67cc0, 0x0015c63c}}, Y: Field{[10]uint32{0x01acbe90, 0x0103b3da, 0x0094fd4e, 0x02828bae, 0x03a6ffca, 0x019169ab, 0x02d8bd53, 0x0175fb9c, 0x015bfca6, 0x00263b13}}}, + {X: Field{[10]uint32{0x03810a4c, 0x03af6492, 0x01ad550b, 0x00fde033, 0x0310269c, 0x01d51638, 0x00f0650b, 0x03f5f7ba, 0x02abd77a, 0x0037d8a8}}, Y: Field{[10]uint32{0x00e4c034, 0x0120a6c2, 0x028cd54c, 0x023a7f22, 0x008d39fe, 0x022198f8, 0x03ea2e95, 0x0349ee02, 0x02cce384, 0x001a9981}}}, + {X: Field{[10]uint32{0x005e6668, 0x01336ba0, 0x039aa497, 0x003bbf5d, 0x039ea7dc, 0x00254239, 0x039bd198, 0x009a2f0c, 0x00454b0c, 0x0004043f}}, Y: Field{[10]uint32{0x016410e1, 0x0197eafa, 0x0001c3fa, 0x03c674f6, 0x02d51194, 0x01adaf4a, 0x030a323c, 0x02d65cac, 0x02db0681, 0x001a1a8e}}}, + {X: Field{[10]uint32{0x035c5c18, 0x0097b5a7, 0x0087bd54, 0x01101e41, 0x02072ca3, 0x0050524f, 0x03e93c96, 0x00e061a7, 0x00527567, 0x0022b1e6}}, Y: Field{[10]uint32{0x01d1c08e, 0x031cb26f, 0x03cec684, 0x03e67496, 0x00775375, 0x027bc7e4, 0x0172e04b, 0x03219f46, 0x0248fcbf, 0x002ecc50}}}, + {X: Field{[10]uint32{0x03848b9d, 0x0321a48f, 0x021605f9, 0x01340866, 0x036f3f17, 0x017c2b78, 0x01f3bf44, 0x031f3b18, 0x031188cb, 0x001583a5}}, Y: Field{[10]uint32{0x01b9cd2f, 0x003bdb74, 0x02277bc8, 0x022b063b, 0x014d133f, 0x01939ba7, 0x03bf21fc, 0x03319efe, 0x02ce6775, 0x0027a4b6}}}, + {X: Field{[10]uint32{0x01fb943a, 0x0241c03d, 0x009fee6d, 0x00bc1fdc, 0x0028eea5, 0x011a6870, 0x015ca088, 0x03ad9b32, 0x02044b95, 0x00231190}}, Y: Field{[10]uint32{0x009d0223, 0x0049c79a, 0x03aa51a1, 0x009654f0, 0x03a34920, 0x03afa965, 0x01b3a615, 0x014604c0, 0x005d7bc2, 0x002fc43f}}}, + {X: Field{[10]uint32{0x031eb5aa, 0x034730a1, 0x013cb4d8, 0x036be1d1, 0x037f2245, 0x0362c0d9, 0x0377247c, 0x022dc4d4, 0x034cf357, 0x0034a4fd}}, Y: Field{[10]uint32{0x024a6f26, 0x02befb69, 0x03423ba7, 0x0352b8d5, 0x03f080e3, 0x02c24143, 0x0245931e, 0x03a8518f, 0x013a61df, 0x0021b080}}}, + {X: Field{[10]uint32{0x03687d35, 0x02f5d135, 0x02aff4c6, 0x029ccd99, 0x01fefbf7, 0x01dbae4d, 0x027611ec, 0x01ec7f1d, 0x0241ae75, 0x000d665c}}, Y: Field{[10]uint32{0x004b2aa0, 0x013e5bf1, 0x01f9c599, 0x03bf3283, 0x022f36e0, 0x02f4e4f6, 0x007fd357, 0x0335330f, 0x021f246b, 0x002f2fa9}}}, + {X: Field{[10]uint32{0x036464eb, 0x00d8095f, 0x006de15f, 0x0316f678, 0x00285a17, 0x013b8d77, 0x01a0ef84, 0x0065f4f0, 0x00977467, 0x00034258}}, Y: Field{[10]uint32{0x013e8783, 0x012dc2ef, 0x0303cd14, 0x01a67a22, 0x023dd448, 0x01e737a7, 0x02954bfc, 0x036e59a4, 0x02a51e06, 0x000d0abd}}}, + {X: Field{[10]uint32{0x0241a777, 0x03e2632b, 0x01470bfd, 0x025c8e89, 0x01621257, 0x0086c3e1, 0x033a3755, 0x03ab59c0, 0x00992aea, 0x0023a1d7}}, Y: Field{[10]uint32{0x03c0bbd8, 0x01ea625c, 0x010c653f, 0x02187b1b, 0x02a5ee66, 0x00c49eb4, 0x020ba101, 0x0066ec13, 0x033d2d2f, 0x00092a89}}}, + {X: Field{[10]uint32{0x02541855, 0x03786e6b, 0x01aee0d2, 0x0110215a, 0x00d622f4, 0x01cb16ee, 0x02f47d81, 0x00e93347, 0x01f30270, 0x002fd474}}, Y: Field{[10]uint32{0x039aa484, 0x0029c433, 0x0030f3c6, 0x00c510cf, 0x005918d9, 0x024d4f61, 0x01e6e409, 0x002b3eef, 0x0352b6c6, 0x0023e078}}}, + {X: Field{[10]uint32{0x0341c26f, 0x02a35320, 0x03aee696, 0x016db372, 0x022ebb11, 0x0020fbd5, 0x032d1415, 0x01a1588a, 0x00620972, 0x001bedad}}, Y: Field{[10]uint32{0x003c9c73, 0x027c182e, 0x02032a89, 0x00c2eb28, 0x01468f25, 0x015e2e91, 0x02923b3e, 0x03367b32, 0x03bff9cf, 0x0027023d}}}, + {X: Field{[10]uint32{0x03617438, 0x0237d8a4, 0x0389d067, 0x01a1acb3, 0x031db56f, 0x03fc117e, 0x026a21fa, 0x03de35f7, 0x02c18b5c, 0x001d560e}}, Y: Field{[10]uint32{0x0369f900, 0x0240d026, 0x0082df67, 0x00526100, 0x02071fe0, 0x0319a725, 0x0237c7d9, 0x011bfc38, 0x022cb085, 0x00209668}}}, + {X: Field{[10]uint32{0x00c0ef92, 0x023fe72d, 0x00f36cdd, 0x038d8404, 0x014aabc2, 0x006ddba5, 0x0051c893, 0x0166b1fb, 0x0133a5d7, 0x00109846}}, Y: Field{[10]uint32{0x01ed4261, 0x00054748, 0x00bf8783, 0x000c3e67, 0x0158cde4, 0x013ae131, 0x038e2bd5, 0x032f3a8d, 0x00ce6b8a, 0x00222991}}}, + {X: Field{[10]uint32{0x02f520d2, 0x00eb78c2, 0x038458a4, 0x025492eb, 0x016dff9c, 0x01c5af71, 0x02e776ca, 0x03e592f6, 0x01bf6128, 0x00090e9b}}, Y: Field{[10]uint32{0x001b7e50, 0x007c6948, 0x0025d609, 0x01368f64, 0x003dda74, 0x024af7ea, 0x0001850e, 0x036d2341, 0x028a5ce4, 0x00098a8b}}}, + {X: Field{[10]uint32{0x00c2ac76, 0x02c4a476, 0x03d58082, 0x00b169da, 0x0046e57e, 0x01f7c56f, 0x01e9307a, 0x031b4810, 0x01751548, 0x00084af4}}, Y: Field{[10]uint32{0x039391bc, 0x032f5dc1, 0x01aaae33, 0x03d1c66a, 0x0257f04e, 0x022c9020, 0x03cc788a, 0x01c9cc99, 0x03c76cc9, 0x00209186}}}, + {X: Field{[10]uint32{0x0161177b, 0x01f05ad3, 0x021fbc1a, 0x011842f5, 0x008ca8a5, 0x022b83b2, 0x00b3e562, 0x01b4aaa8, 0x030b21f9, 0x00369b40}}, Y: Field{[10]uint32{0x023f9fde, 0x02f6f9cb, 0x03d0a1ce, 0x00787aae, 0x012c2aad, 0x02d27b0a, 0x02b85961, 0x000a1d28, 0x02358fab, 0x0016d6f1}}}, + {X: Field{[10]uint32{0x02c1f01f, 0x027d38fd, 0x0010886a, 0x01fb3fa0, 0x004a4313, 0x03ba923f, 0x001e1012, 0x010ec296, 0x02f055a2, 0x003708c2}}, Y: Field{[10]uint32{0x028180ca, 0x03e80f95, 0x018bb950, 0x02ad805c, 0x012eb5a9, 0x00f5ffbb, 0x030120da, 0x011635c0, 0x021be70a, 0x00343e63}}}, + {X: Field{[10]uint32{0x01089df1, 0x01b412ea, 0x00797dc1, 0x01cbc291, 0x00ee9c59, 0x03c8c9a1, 0x00e73b56, 0x031a1a63, 0x023ac815, 0x0020b0b7}}, Y: Field{[10]uint32{0x03b8573d, 0x018b65e4, 0x02432544, 0x0110b07e, 0x010c8598, 0x007f85e3, 0x0253b8ec, 0x033063e8, 0x0065c6c2, 0x0007211c}}}, + {X: Field{[10]uint32{0x020494a3, 0x01d85278, 0x037f6670, 0x0081a901, 0x02cc439f, 0x0002be26, 0x0165dfa2, 0x0245bb86, 0x028874e4, 0x001b28b7}}, Y: Field{[10]uint32{0x02662043, 0x014466a6, 0x02e0699b, 0x0276ba5a, 0x02cd5111, 0x01f71f39, 0x03cc1aa5, 0x02177690, 0x034497aa, 0x001bbc2c}}}, + {X: Field{[10]uint32{0x0051d97f, 0x00ebd4de, 0x031f88d3, 0x029242f4, 0x03cf1149, 0x021003be, 0x02448f82, 0x03ed9481, 0x03c41728, 0x002e89a1}}, Y: Field{[10]uint32{0x02b4c0c4, 0x03c82c61, 0x01de5d61, 0x000090ec, 0x02033455, 0x0318b34c, 0x03803bb3, 0x039eaba2, 0x01f11f2c, 0x0025ab49}}}, + {X: Field{[10]uint32{0x01553e0d, 0x028bc203, 0x01aa5f1e, 0x00cf91a8, 0x03d311f5, 0x02cc0cc8, 0x0032d5a4, 0x03cc0458, 0x00401947, 0x002b0d88}}, Y: Field{[10]uint32{0x00b30a22, 0x01c70fcb, 0x0137fdf1, 0x006dec82, 0x001d5b98, 0x005f6e47, 0x035881fa, 0x00a21169, 0x0395fef3, 0x0014e0e7}}}, + {X: Field{[10]uint32{0x01049e13, 0x01a51d9e, 0x0246bac7, 0x0308b6ee, 0x024158c7, 0x00ecd727, 0x014241ec, 0x01c815a3, 0x00ee5b1b, 0x0019e03b}}, Y: Field{[10]uint32{0x0057d9a8, 0x02fd004c, 0x02e4ee0f, 0x015fb31e, 0x0246520d, 0x0158b9cc, 0x0090b9f3, 0x022234b7, 0x01f031e0, 0x0026b045}}}, + {X: Field{[10]uint32{0x02a63732, 0x0040e434, 0x00254cbb, 0x00eaaca5, 0x01c0f765, 0x02ef4d0e, 0x0110d622, 0x035754c1, 0x0247e7a2, 0x00254dde}}, Y: Field{[10]uint32{0x00195fc0, 0x02f948fe, 0x01d7b091, 0x01a8d992, 0x03bb01f7, 0x0319155e, 0x01abe4df, 0x02d8b3f8, 0x01109daf, 0x0015eb24}}}, + {X: Field{[10]uint32{0x02dd8921, 0x005e85ca, 0x0015e85f, 0x001ccc9d, 0x01486a85, 0x02f50abd, 0x02e97c59, 0x020efc1f, 0x01bf98fd, 0x00013c65}}, Y: Field{[10]uint32{0x011cf3dc, 0x0171ee1a, 0x03b59a86, 0x02f3c7bc, 0x011a057b, 0x01ac72b7, 0x027cae30, 0x008c8d8c, 0x032501c8, 0x00295ab3}}}, + {X: Field{[10]uint32{0x00bcb53f, 0x00a46c53, 0x036bad9e, 0x034b5edb, 0x02cc0510, 0x036eaaf3, 0x0208240a, 0x00a67f48, 0x03d1efe8, 0x003b3347}}, Y: Field{[10]uint32{0x002c667c, 0x020111e9, 0x02b29135, 0x022fff09, 0x012d9b6f, 0x00663806, 0x03d6f2d3, 0x003e9715, 0x03216da5, 0x003b0bfc}}}, + {X: Field{[10]uint32{0x0058f438, 0x0321386c, 0x01f2b1ee, 0x0004307b, 0x01502e76, 0x01f2dd1d, 0x00ff41cf, 0x010971ca, 0x004af2c3, 0x0031d5d1}}, Y: Field{[10]uint32{0x0362e53a, 0x01c0a0d8, 0x014b8fd0, 0x03f1a140, 0x039cd267, 0x0322d995, 0x0301105b, 0x0050f8a5, 0x01b6169f, 0x00387520}}}, + {X: Field{[10]uint32{0x005250b8, 0x006d5f19, 0x00ac636f, 0x0170711c, 0x03aef325, 0x028468d9, 0x01996627, 0x001dd963, 0x037ebff5, 0x000d58a0}}, Y: Field{[10]uint32{0x019234d8, 0x01cb598a, 0x02b9cf4d, 0x00d729fe, 0x00fa1d0d, 0x02f2bf00, 0x01374bb0, 0x0163f333, 0x020d97aa, 0x003373d2}}}, + {X: Field{[10]uint32{0x02d4a3a1, 0x00cc5f21, 0x00a82b11, 0x01f7ed95, 0x03b1f2f0, 0x03eb062d, 0x01339e97, 0x025eaf4b, 0x0245f62e, 0x0033a770}}, Y: Field{[10]uint32{0x00d184d5, 0x0295857c, 0x00b7927b, 0x00c2f9bb, 0x02fcaf1b, 0x030deaf7, 0x03e8520e, 0x03ee3993, 0x0325342a, 0x003db878}}}, + {X: Field{[10]uint32{0x00858a12, 0x0275b8cb, 0x03dd542d, 0x023394e0, 0x02aab481, 0x02807ea2, 0x0271a8c1, 0x0112ea74, 0x033b48ee, 0x002b008b}}, Y: Field{[10]uint32{0x02ca76fa, 0x02e6ea5c, 0x01aaf45d, 0x01f99815, 0x02191e49, 0x00e58477, 0x009e0917, 0x03447c66, 0x03a891f8, 0x00078158}}}, + {X: Field{[10]uint32{0x0251d9f9, 0x026702e9, 0x024ff3a9, 0x020a2332, 0x0355a837, 0x02dbc89d, 0x02e57e6d, 0x033eab91, 0x0282cb12, 0x0034753d}}, Y: Field{[10]uint32{0x01e71a36, 0x016639e1, 0x02960488, 0x0192b2e3, 0x03016072, 0x0059c88c, 0x023b4b07, 0x0064c530, 0x03e5870e, 0x0006c66f}}}, + {X: Field{[10]uint32{0x031c8a37, 0x014c0ebf, 0x012ee243, 0x012cb401, 0x00892e75, 0x026f746a, 0x03bacd4f, 0x02be5117, 0x0171bbdd, 0x001e6588}}, Y: Field{[10]uint32{0x03b98a7d, 0x0056f8de, 0x0320ab85, 0x02a76bc1, 0x00fe47b6, 0x00d304d5, 0x0072f77b, 0x00afad15, 0x03de2a95, 0x002e2b09}}}, + {X: Field{[10]uint32{0x009d3b90, 0x00cb8f14, 0x038d8cf0, 0x02c60e83, 0x0120ecb3, 0x001868bc, 0x03c3573b, 0x02d812ec, 0x03c42390, 0x00111685}}, Y: Field{[10]uint32{0x013f97b1, 0x02b52c5a, 0x026aae34, 0x01079026, 0x024ea769, 0x03bfd259, 0x00057c87, 0x03f97283, 0x00887c07, 0x002dd7d0}}}, + {X: Field{[10]uint32{0x03402051, 0x020ef0c3, 0x02ccfb0e, 0x01244745, 0x038c39cd, 0x0345d5d8, 0x02c49a78, 0x03d1fd7e, 0x01f963a9, 0x001859ad}}, Y: Field{[10]uint32{0x012430b3, 0x005f77fa, 0x01d7e053, 0x03d56811, 0x02933d6d, 0x03b15d24, 0x03e46204, 0x02bac884, 0x02618302, 0x002e8cdd}}}, + {X: Field{[10]uint32{0x03251531, 0x00574fe2, 0x034a9293, 0x036e8d36, 0x0330b6db, 0x012379f8, 0x027d0e40, 0x006bfa39, 0x02742890, 0x0033599b}}, Y: Field{[10]uint32{0x0002304b, 0x0146040e, 0x024f9e54, 0x0147c46c, 0x01440959, 0x027f227b, 0x02398e74, 0x02950390, 0x00b943cb, 0x002bdcb6}}}, + {X: Field{[10]uint32{0x0123ac72, 0x0272eb41, 0x0014ee83, 0x02f35ee2, 0x015a6285, 0x036640d5, 0x01837a11, 0x01bf811b, 0x028cfd2f, 0x00320cef}}, Y: Field{[10]uint32{0x01a6af03, 0x00926132, 0x00ed603a, 0x02fbfa32, 0x02b6c07d, 0x01430ed3, 0x01751531, 0x008d8ea3, 0x010b4411, 0x001faa3e}}}, + {X: Field{[10]uint32{0x025ea477, 0x0000da7c, 0x03613982, 0x013fa109, 0x02e40e4a, 0x03a56c58, 0x010ac1f5, 0x034e1762, 0x03363036, 0x00330617}}, Y: Field{[10]uint32{0x02338236, 0x03bae7c9, 0x02b42832, 0x01d50157, 0x03f66d07, 0x027384bb, 0x02aabe5a, 0x02726262, 0x0036146d, 0x00381da2}}}, + {X: Field{[10]uint32{0x009c4a5a, 0x010f0a63, 0x01770479, 0x0043a4b2, 0x0177ccd9, 0x0101ee02, 0x03c9be70, 0x030aead9, 0x006324bb, 0x00052382}}, Y: Field{[10]uint32{0x02408797, 0x03f8eeb0, 0x036ee55d, 0x00c7edc5, 0x01b706a3, 0x004e3a5f, 0x02733ae6, 0x03f20277, 0x00859cdd, 0x00227a0f}}}, + {X: Field{[10]uint32{0x02c95c76, 0x038048af, 0x03a7e460, 0x012553d4, 0x010cf8b6, 0x00a8dd87, 0x008d9b19, 0x02d60d72, 0x01c1aba5, 0x0026c54e}}, Y: Field{[10]uint32{0x00efdc18, 0x03c8756b, 0x0395b967, 0x010a88c9, 0x00d8472e, 0x02a87389, 0x00895f13, 0x01676b53, 0x021945be, 0x000e4737}}}, + {X: Field{[10]uint32{0x024495cd, 0x02e29cc3, 0x03dd3e93, 0x01d2a5d2, 0x03a60327, 0x03d09f31, 0x029e575f, 0x00074dda, 0x02c175fb, 0x001a28b9}}, Y: Field{[10]uint32{0x00e00752, 0x00f7139e, 0x014f2557, 0x02df89cf, 0x030666ca, 0x03166591, 0x0269b741, 0x0037797c, 0x0084c8c3, 0x00054f99}}}, + {X: Field{[10]uint32{0x01dfb04e, 0x01b08a18, 0x030b66c3, 0x028b9f0b, 0x007669e9, 0x00cf332b, 0x02334405, 0x029030ed, 0x004935a5, 0x00163fa4}}, Y: Field{[10]uint32{0x0136e1bb, 0x03eed815, 0x01555b39, 0x009c569e, 0x0371ac1e, 0x0356669d, 0x0106e2a2, 0x0038b5c7, 0x01c59245, 0x002cda41}}}, + {X: Field{[10]uint32{0x02ac7080, 0x0169e0d7, 0x00378337, 0x029838a6, 0x0103e9bc, 0x026d809f, 0x01aff2a1, 0x0366c2ff, 0x0396dcbd, 0x00208f03}}, Y: Field{[10]uint32{0x02ad0a7f, 0x0334823c, 0x03db8895, 0x02c36410, 0x028831a2, 0x00efcf0d, 0x03eb6d54, 0x026962ea, 0x02ccf34d, 0x00364551}}}, + {X: Field{[10]uint32{0x02d14537, 0x03378800, 0x02caf533, 0x01493df7, 0x03d68121, 0x00c04fb9, 0x03e7b710, 0x03e42157, 0x02aee908, 0x001295ab}}, Y: Field{[10]uint32{0x0222b7a2, 0x02be42b1, 0x00d8d021, 0x03ecb80c, 0x023129a7, 0x01e43ae6, 0x01995b33, 0x00634846, 0x000133b7, 0x001f9832}}}, + {X: Field{[10]uint32{0x01240334, 0x01b28efe, 0x0168a71f, 0x03d27f82, 0x0382a64b, 0x02204c66, 0x0194e2b8, 0x03d7cb11, 0x0055e6c4, 0x001b03ce}}, Y: Field{[10]uint32{0x03b5203c, 0x03f8d348, 0x02fc83ac, 0x0346d355, 0x03e1478a, 0x0016bab4, 0x01ade853, 0x02eea12d, 0x036da9ef, 0x0017239e}}}, + {X: Field{[10]uint32{0x01ac9632, 0x02e8a8cd, 0x033313ae, 0x002d4923, 0x000496e4, 0x005cb992, 0x01de21cf, 0x01241c57, 0x032cd170, 0x003673e3}}, Y: Field{[10]uint32{0x00934344, 0x00e0570f, 0x028e6b07, 0x0242db0f, 0x0315867e, 0x00d755fd, 0x0198299c, 0x03e4c02f, 0x0251b440, 0x0024a9f0}}}, + {X: Field{[10]uint32{0x0193d898, 0x01d9fdee, 0x039e27c6, 0x00a3f3c6, 0x01775927, 0x026bcc0e, 0x027ed43d, 0x0371eebe, 0x00928b91, 0x0012ff2d}}, Y: Field{[10]uint32{0x005d14f7, 0x032a5269, 0x03dda7bf, 0x03a791c0, 0x001854a4, 0x00ea8cee, 0x00c9a4ae, 0x035042cd, 0x02f1ecd9, 0x0009da81}}}, + {X: Field{[10]uint32{0x03c434e8, 0x00066b08, 0x00792944, 0x01d7964a, 0x027cdcc5, 0x0055965b, 0x0193dee8, 0x00cbd13b, 0x0093ac40, 0x002af796}}, Y: Field{[10]uint32{0x0195c40a, 0x012c0360, 0x0116ed77, 0x02c93066, 0x0346162c, 0x033bc0be, 0x002af7a7, 0x018113a5, 0x00092b9e, 0x001780ea}}}, + {X: Field{[10]uint32{0x026e1cc5, 0x00ec3f54, 0x020a803b, 0x02b8c6f8, 0x004482f1, 0x00a07688, 0x00814b49, 0x02a3845e, 0x03077a98, 0x00081758}}, Y: Field{[10]uint32{0x03e4d780, 0x027fd41b, 0x036147a7, 0x03495595, 0x00b9cab7, 0x01b992ff, 0x015cb19d, 0x00d581ae, 0x015c943e, 0x0012ef8a}}}, + {X: Field{[10]uint32{0x001c43bd, 0x02337491, 0x00b7c3b9, 0x02f116fd, 0x01b59653, 0x01b980c7, 0x0228a423, 0x00e871b0, 0x0083e667, 0x0032d313}}, Y: Field{[10]uint32{0x031a2769, 0x013a3ab8, 0x01149cfe, 0x00307fa9, 0x0062f334, 0x016bf9c5, 0x002ff397, 0x01fa83df, 0x02763926, 0x00050b80}}}, + {X: Field{[10]uint32{0x00ca77a7, 0x02ec894b, 0x004f2b5a, 0x02cb7b1f, 0x0392ccf0, 0x024cd5bb, 0x0354a4b4, 0x02f7eceb, 0x00b27ff5, 0x0009687d}}, Y: Field{[10]uint32{0x035c3c38, 0x03fe5ecc, 0x03fe93e9, 0x022ca229, 0x0136c32e, 0x02647cb6, 0x033b3afc, 0x020d05f7, 0x0193153f, 0x0006c977}}}, + {X: Field{[10]uint32{0x0254237b, 0x029dea8a, 0x026dc89c, 0x015255ed, 0x015a1b71, 0x0195f2e2, 0x011c863a, 0x02835a94, 0x02a77eec, 0x00088bdd}}, Y: Field{[10]uint32{0x00b0b289, 0x01680bcb, 0x03492794, 0x0210bda8, 0x01a205c8, 0x019974a5, 0x03a598a8, 0x03e23421, 0x02e064ef, 0x002a3caf}}}, + {X: Field{[10]uint32{0x034dfa8d, 0x032f63ce, 0x002daec3, 0x009a67c7, 0x02379f5c, 0x024dad01, 0x03f10156, 0x01946d06, 0x028d1ad2, 0x000cb50c}}, Y: Field{[10]uint32{0x0188261d, 0x033a4c1e, 0x0290d204, 0x028741a4, 0x02df5de0, 0x0391e025, 0x00d40623, 0x028ced7d, 0x02e23294, 0x0027db79}}}, + {X: Field{[10]uint32{0x01f1d3f0, 0x0195a460, 0x01b14e82, 0x00c33e64, 0x01187d08, 0x01998adf, 0x01937900, 0x0335c0ec, 0x00be6948, 0x00337a7b}}, Y: Field{[10]uint32{0x03029720, 0x03a06c56, 0x015e24bc, 0x03ffe554, 0x01f5abe8, 0x022b55b1, 0x037794ce, 0x00634a6d, 0x03320e12, 0x0021221e}}}, + {X: Field{[10]uint32{0x0348947d, 0x0354f4e9, 0x00b80011, 0x01f89979, 0x02509f4e, 0x0141a801, 0x03435826, 0x03bd32a0, 0x005c3baa, 0x002f227d}}, Y: Field{[10]uint32{0x03e68475, 0x00a7d79b, 0x03a49511, 0x02bdc89a, 0x0209fa15, 0x00d3de6f, 0x0272fce5, 0x02c519e8, 0x00a2714d, 0x003bfd6f}}}, + {X: Field{[10]uint32{0x01b51d4f, 0x003dd237, 0x03df0994, 0x02e6d5fb, 0x0139b409, 0x010d2a6b, 0x014ba655, 0x02eff8af, 0x00c0eea2, 0x001899e3}}, Y: Field{[10]uint32{0x03a74acf, 0x0141470d, 0x00883673, 0x02e79ef3, 0x02a5cc8a, 0x03db7553, 0x0161245e, 0x034c7470, 0x034fd234, 0x00234e13}}}, + {X: Field{[10]uint32{0x02bc93d0, 0x027e4ce1, 0x02f8af21, 0x030d3fa1, 0x02df7c0a, 0x037e89cd, 0x01c89cf3, 0x0388958f, 0x0139c63a, 0x00057807}}, Y: Field{[10]uint32{0x00cfb13b, 0x01d56204, 0x03ef42bc, 0x0267e8c5, 0x01e7efb9, 0x025da618, 0x03251334, 0x032e0705, 0x0132314f, 0x0007d58d}}}, + {X: Field{[10]uint32{0x03ac10e3, 0x03cd92ca, 0x03eb97b8, 0x000c06f6, 0x0052c601, 0x010a2ba7, 0x018e813e, 0x009637fe, 0x03493493, 0x0013e34a}}, Y: Field{[10]uint32{0x0169b73f, 0x02c99380, 0x021bcd66, 0x039085b2, 0x031e8c58, 0x03e467d5, 0x00580283, 0x0176db00, 0x017b6795, 0x00231f44}}}, + {X: Field{[10]uint32{0x016f1d61, 0x02249dad, 0x0136f1a7, 0x02d3d124, 0x003b0d77, 0x0374d623, 0x03e397cd, 0x01ad8260, 0x031a2bf1, 0x00345338}}, Y: Field{[10]uint32{0x013f0910, 0x03cdcd2b, 0x0335611e, 0x031c9613, 0x01833f24, 0x0375eefd, 0x022ca6e4, 0x0360e8dc, 0x0220b227, 0x0026857d}}}, + {X: Field{[10]uint32{0x02f780f1, 0x03a38ed9, 0x008419c3, 0x028b104c, 0x00024c1a, 0x02ffa800, 0x00d656c9, 0x01d7d704, 0x034eb8c2, 0x000d4886}}, Y: Field{[10]uint32{0x03f8e808, 0x0317764e, 0x03fa0f8e, 0x01186d77, 0x0306888d, 0x009de195, 0x038382bb, 0x02bf2ef5, 0x02025274, 0x000f4716}}}, + {X: Field{[10]uint32{0x00a8ddc8, 0x02b02a8d, 0x0043c49e, 0x005dc9c2, 0x0083f686, 0x03d10ec8, 0x00ff6f29, 0x0306e3d1, 0x003b1c76, 0x0020bb67}}, Y: Field{[10]uint32{0x015f1340, 0x0077177a, 0x02fc48a9, 0x0162bbf5, 0x00e81f5a, 0x000009a4, 0x002081d9, 0x00ae19cd, 0x026bc2ab, 0x00098ba7}}}, + {X: Field{[10]uint32{0x00717b85, 0x0078d244, 0x02118d18, 0x012bfd71, 0x009c49b6, 0x010ba5f1, 0x02342f77, 0x02a8dba1, 0x020eacf2, 0x002467a5}}, Y: Field{[10]uint32{0x0145b861, 0x020bf936, 0x016505a0, 0x010b1e08, 0x03ef530d, 0x030ca7c4, 0x01ce9d5a, 0x0059e736, 0x014ea3ea, 0x0012d46a}}}, + {X: Field{[10]uint32{0x03c3ec7d, 0x03f4d996, 0x02c3065f, 0x0386b3c1, 0x02edca3d, 0x0190f398, 0x02abcafa, 0x01546afb, 0x023e20ce, 0x00336b2b}}, Y: Field{[10]uint32{0x02b95bb6, 0x00881c5b, 0x009b13d3, 0x0292cd07, 0x02235df4, 0x02953d3b, 0x00c326df, 0x001dab8a, 0x0313872b, 0x002aab2e}}}, + {X: Field{[10]uint32{0x02a5f2ab, 0x027389a4, 0x015a8f94, 0x03fed98f, 0x00de3a62, 0x001c9bc2, 0x0180f829, 0x017027cf, 0x00e21bd0, 0x00069142}}, Y: Field{[10]uint32{0x00ca97ba, 0x00c83d4b, 0x013e602b, 0x0315b497, 0x00c6e672, 0x02fc0a65, 0x00459bf4, 0x02c0cdd8, 0x03f0976e, 0x00149e03}}}, + {X: Field{[10]uint32{0x003a0b45, 0x005098a0, 0x018ddd52, 0x01dfcea8, 0x02e9129f, 0x03c9b262, 0x00f73d13, 0x03c972a5, 0x02ed5686, 0x002391bb}}, Y: Field{[10]uint32{0x01edcf4d, 0x0326bd87, 0x00200782, 0x0159843a, 0x027253d5, 0x01fc2bad, 0x03f2ed1e, 0x03ba9f21, 0x038d7041, 0x003b95b4}}}, + {X: Field{[10]uint32{0x017e4031, 0x0396ecda, 0x00532a92, 0x0079e828, 0x0168d617, 0x02d8611a, 0x01797c15, 0x02cc276b, 0x00fa3bd6, 0x001e0a44}}, Y: Field{[10]uint32{0x00e4b3f4, 0x0025d4d1, 0x022ddee4, 0x03fdb4fc, 0x00717914, 0x011ac2a0, 0x00c31b89, 0x00a8a3a1, 0x0365c44c, 0x003fc5e0}}}, + {X: Field{[10]uint32{0x01f64e8a, 0x00f246b9, 0x01041ae9, 0x02a3e41a, 0x0265c50a, 0x013c75f4, 0x002d0a29, 0x004329b3, 0x028cc5a7, 0x0000aae7}}, Y: Field{[10]uint32{0x03f89b9b, 0x00ebf269, 0x001c9db2, 0x000a84f6, 0x03185366, 0x0164d251, 0x03cf23da, 0x012eb419, 0x010fa225, 0x0002aaf3}}}, + {X: Field{[10]uint32{0x0382c9e5, 0x006f4758, 0x037a5fcb, 0x03091843, 0x03a094dd, 0x01494a4d, 0x020cc533, 0x016c8a0c, 0x03c44fb2, 0x00341199}}, Y: Field{[10]uint32{0x02b0f74e, 0x0351e52c, 0x00f5ce31, 0x03600c19, 0x026e5a91, 0x02b13ea1, 0x02f436ec, 0x01239e1a, 0x013f8bf0, 0x001f24d8}}}, + {X: Field{[10]uint32{0x0286b0f7, 0x012be0db, 0x01252def, 0x00a724d8, 0x00f157bd, 0x0160e265, 0x01b0476c, 0x03769294, 0x02f9799c, 0x002e711d}}, Y: Field{[10]uint32{0x0297932e, 0x02aad2b2, 0x029eff13, 0x036aa414, 0x03d1a9b0, 0x01a11549, 0x01cefbc4, 0x0122cfc9, 0x019bc779, 0x000bb1d8}}}, + {X: Field{[10]uint32{0x006eee85, 0x036a104a, 0x02e0d64f, 0x03ff7b8a, 0x004ef765, 0x03591ce7, 0x01d8c565, 0x0265012e, 0x01abf13f, 0x00242f7b}}, Y: Field{[10]uint32{0x00cf21f5, 0x00a04138, 0x037255c6, 0x0376e53d, 0x007f8bb8, 0x0061f49b, 0x02812a48, 0x0122ad2f, 0x0082d9a8, 0x002a7d1e}}}, + {X: Field{[10]uint32{0x00485c84, 0x001cdebf, 0x01e7ba68, 0x03377356, 0x03ff4208, 0x013afc3f, 0x02b83107, 0x01dcd300, 0x00a80217, 0x002830e5}}, Y: Field{[10]uint32{0x0109364b, 0x003975c3, 0x02e3fd64, 0x02d8bcd3, 0x00e835ca, 0x026dec59, 0x002434fe, 0x00bcd3f2, 0x0132b4c6, 0x00313c22}}}, + {X: Field{[10]uint32{0x00294c3e, 0x02ad434c, 0x00273b9a, 0x008fafab, 0x02bd3c29, 0x00b9da53, 0x00f949c7, 0x03a318a1, 0x01bd3896, 0x0006c0c6}}, Y: Field{[10]uint32{0x02ee339d, 0x03b54be8, 0x02080053, 0x01c8768c, 0x021401b6, 0x000edec6, 0x038233d7, 0x02ab9f97, 0x029b17c3, 0x000576ff}}}, + {X: Field{[10]uint32{0x03dc719d, 0x00b8f66f, 0x032ab699, 0x00ecea43, 0x001210eb, 0x01463730, 0x03a93540, 0x005afa89, 0x030fe92f, 0x0026453b}}, Y: Field{[10]uint32{0x03c4086b, 0x0370ac6c, 0x02b8398d, 0x00b218cc, 0x005e671d, 0x02bd968c, 0x01f3629f, 0x002c47a3, 0x00650cea, 0x001e82f4}}}, + {X: Field{[10]uint32{0x01f60d3e, 0x03b744f7, 0x03810daa, 0x01b5eb39, 0x015798ad, 0x02572585, 0x02fa1763, 0x03d8e1f6, 0x02195599, 0x000e9a3e}}, Y: Field{[10]uint32{0x00e71a89, 0x025afdf5, 0x0054f5cd, 0x03ba6a2b, 0x00de158e, 0x00190729, 0x00faef1e, 0x01a76ce5, 0x02e6a3f5, 0x001d15d6}}}, + {X: Field{[10]uint32{0x0288b2e5, 0x01a71817, 0x023859da, 0x03b1fc04, 0x0241193d, 0x006fff23, 0x01872b1b, 0x01f8c43c, 0x0141e2b6, 0x002dcd87}}, Y: Field{[10]uint32{0x00668344, 0x0241f860, 0x029c29b0, 0x02f7c42f, 0x00315347, 0x01b9eb34, 0x00f5890f, 0x026f29cf, 0x039566d4, 0x003ea75a}}}, + {X: Field{[10]uint32{0x01174e81, 0x0216e0c9, 0x01bc637b, 0x034c4ba6, 0x02aa93a4, 0x03edffe7, 0x03d13543, 0x011903db, 0x018742d8, 0x000d07a6}}, Y: Field{[10]uint32{0x03fcfc95, 0x00adae62, 0x007ac861, 0x0269bb5d, 0x01e95b4e, 0x018b97f0, 0x01cbcff7, 0x01861d84, 0x00dc91b4, 0x00312582}}}, + {X: Field{[10]uint32{0x0083e6f6, 0x03dd76b1, 0x0026e2a0, 0x02febe1d, 0x001f6420, 0x000b25c6, 0x00849094, 0x03d55d00, 0x0045de34, 0x0020f5a9}}, Y: Field{[10]uint32{0x01dddfc1, 0x030486e8, 0x030fd787, 0x00249df6, 0x00e9fbed, 0x012a5376, 0x01cf48a1, 0x03ed4d7b, 0x034458c8, 0x001ea1b6}}}, + {X: Field{[10]uint32{0x02ac351b, 0x02e12e49, 0x03bdda40, 0x0218bf3f, 0x0032d176, 0x01a92676, 0x0082bf1c, 0x032ba624, 0x035a014b, 0x0013c448}}, Y: Field{[10]uint32{0x014a2acf, 0x018cce7a, 0x022886e9, 0x03b6f967, 0x0308678d, 0x01dce72d, 0x00021c83, 0x009a745a, 0x00f15f31, 0x002d4189}}}, + {X: Field{[10]uint32{0x03ee2b89, 0x03a6a734, 0x0115b998, 0x024b0208, 0x02eafb38, 0x02db8f5f, 0x0285907a, 0x0384b3a9, 0x032721cf, 0x0023eed5}}, Y: Field{[10]uint32{0x02906680, 0x0248e8d9, 0x03ab791c, 0x0296be2f, 0x00ef1bb1, 0x0296d6a9, 0x018de8e2, 0x02386973, 0x0285c814, 0x00369ff9}}}, + {X: Field{[10]uint32{0x0096c3de, 0x00b167d5, 0x02bd63f5, 0x03cbf19c, 0x01286023, 0x00fd6627, 0x0205b1f5, 0x00fd7dd9, 0x023cb924, 0x00201329}}, Y: Field{[10]uint32{0x035233c6, 0x01c2c175, 0x01fd8431, 0x01b52722, 0x00865fab, 0x02bad13e, 0x038300ee, 0x00455a86, 0x0112eedb, 0x00000dca}}}, + {X: Field{[10]uint32{0x012a5365, 0x005da70b, 0x03bf58cc, 0x035c77a6, 0x0060b48e, 0x01598341, 0x018de870, 0x02a091ac, 0x006ab83c, 0x002c9e57}}, Y: Field{[10]uint32{0x0249d820, 0x0024d6ca, 0x0041f90d, 0x015e6f70, 0x01db6841, 0x021aa280, 0x03510441, 0x002dad34, 0x02b58853, 0x0019ba30}}}, + {X: Field{[10]uint32{0x02d9dad3, 0x0317814d, 0x02588208, 0x00ec640e, 0x00caf390, 0x001193ad, 0x0139d07c, 0x03645302, 0x004db61b, 0x0037ad4c}}, Y: Field{[10]uint32{0x015777ca, 0x0281aa53, 0x03b27762, 0x0360fdec, 0x0040507d, 0x039201cf, 0x00b62491, 0x0179d9a9, 0x0343e7e4, 0x00063553}}}, + {X: Field{[10]uint32{0x037714c4, 0x00f3aee6, 0x035cf774, 0x03a15d27, 0x01eb79d5, 0x00cd9a40, 0x0061d696, 0x03b0d2db, 0x0102d177, 0x000446fd}}, Y: Field{[10]uint32{0x016a4e54, 0x030e35da, 0x000f0bf8, 0x0083f99e, 0x0107d8ba, 0x0391e83c, 0x036bad45, 0x02ef33c0, 0x012abc38, 0x002fa035}}}, + {X: Field{[10]uint32{0x00be92a5, 0x006f4e37, 0x00f8b016, 0x01419d34, 0x01daceeb, 0x02e18e19, 0x014e71fd, 0x014e4fa3, 0x0343c15c, 0x00252c43}}, Y: Field{[10]uint32{0x01be6dc7, 0x02e6ddfd, 0x02e9bd25, 0x035fc682, 0x038d087d, 0x004161b3, 0x03f77291, 0x0230d96c, 0x032ea34e, 0x003b156b}}}, + {X: Field{[10]uint32{0x02895593, 0x007c6203, 0x02248d3b, 0x00b44051, 0x03fb4a42, 0x00b4c0da, 0x03e529d6, 0x01de1314, 0x03f22d44, 0x001189ea}}, Y: Field{[10]uint32{0x037b3e4a, 0x018140fa, 0x01c483a5, 0x03d31fa3, 0x00cbea9e, 0x01947a52, 0x00172d56, 0x02d66dce, 0x018d6110, 0x0022cd07}}}, + {X: Field{[10]uint32{0x017c355f, 0x02e91a0a, 0x02a80757, 0x02fb05ca, 0x03585dca, 0x037714c9, 0x035727b5, 0x03730dcd, 0x01cfdfea, 0x00067385}}, Y: Field{[10]uint32{0x01e60f81, 0x0333f613, 0x03a6625c, 0x01f816ce, 0x0283853e, 0x021b3bc9, 0x02ca9ec8, 0x024505cd, 0x015ece82, 0x00014195}}}, + {X: Field{[10]uint32{0x039a3e55, 0x0373f42a, 0x01ef0fe6, 0x00b85b4f, 0x01295068, 0x0387e45b, 0x03e97d80, 0x03f2ba30, 0x02818293, 0x001d6901}}, Y: Field{[10]uint32{0x008c7930, 0x01f45577, 0x01f22a04, 0x002fce7d, 0x03452678, 0x0254a62d, 0x039f2af4, 0x03893604, 0x01c0e02e, 0x0014a4b5}}}, + {X: Field{[10]uint32{0x033bf578, 0x03de6f07, 0x026f1cbb, 0x033a3cc8, 0x0388cb82, 0x03d29ccc, 0x03a341d4, 0x01da1ad1, 0x038def4b, 0x0029fae2}}, Y: Field{[10]uint32{0x018199a1, 0x03f24fef, 0x01cc880c, 0x028a1a19, 0x0124407c, 0x0129c962, 0x0352bf39, 0x015df2ce, 0x036fe238, 0x00217662}}}, + {X: Field{[10]uint32{0x03da647a, 0x024e37ac, 0x02c00e8a, 0x01114385, 0x016c9f83, 0x03067dae, 0x0352d143, 0x00759c2c, 0x02b5dcc9, 0x00296e68}}, Y: Field{[10]uint32{0x039571c1, 0x01cbca1e, 0x00c29634, 0x004ff45b, 0x0126fc4e, 0x009833fc, 0x0335aba1, 0x0011c590, 0x03a83985, 0x003c4b53}}}, + {X: Field{[10]uint32{0x00015cca, 0x00273211, 0x0217157c, 0x00c5e2b5, 0x01df58d8, 0x026c3f7d, 0x037c20ee, 0x02269977, 0x02ed48d5, 0x001e6671}}, Y: Field{[10]uint32{0x018f5756, 0x02dcc750, 0x010145bc, 0x003489d5, 0x00aaacaf, 0x034fc4b2, 0x00b3fecb, 0x030e8715, 0x01053706, 0x00055bd1}}}, + {X: Field{[10]uint32{0x009829b1, 0x02b4de71, 0x028e20fe, 0x0161b70b, 0x01422020, 0x030171eb, 0x01baade6, 0x03b746e1, 0x01f3b708, 0x00223fa0}}, Y: Field{[10]uint32{0x03727c01, 0x035035f7, 0x01b10d99, 0x03376a87, 0x008972a8, 0x0182814b, 0x00341502, 0x01f4aec5, 0x024fb04b, 0x003358b8}}}, + {X: Field{[10]uint32{0x03e86763, 0x015f57d3, 0x0264e895, 0x00dd421e, 0x01912165, 0x01a529df, 0x03192beb, 0x0187f908, 0x02b0cfcc, 0x00063ec3}}, Y: Field{[10]uint32{0x00169785, 0x00a3174e, 0x01922b1f, 0x038d548a, 0x0380f4a6, 0x03b61c75, 0x0288e230, 0x02d594e3, 0x031fdfe8, 0x000f3dca}}}, + {X: Field{[10]uint32{0x03d38aac, 0x006721bb, 0x00b660d9, 0x03ebad7f, 0x02004719, 0x02bc639d, 0x03171d5b, 0x03cb333f, 0x02312be4, 0x0036b6cc}}, Y: Field{[10]uint32{0x018bc0d7, 0x03d2cc3e, 0x039813d9, 0x00c31a9c, 0x0150e0b3, 0x02855112, 0x0340e423, 0x03a2f2c1, 0x005d752d, 0x002359e5}}}, + {X: Field{[10]uint32{0x039e5c8e, 0x015fc1a8, 0x039c2d80, 0x0271b070, 0x027b17e0, 0x038c416e, 0x03aa0cb0, 0x027d91ac, 0x00867cdd, 0x003c2e68}}, Y: Field{[10]uint32{0x02f4e9de, 0x032782d7, 0x01c81370, 0x000f052f, 0x003ff913, 0x020872ef, 0x01cf4319, 0x03460103, 0x025625e6, 0x000ad4d3}}}, + {X: Field{[10]uint32{0x02fcb7e0, 0x03efa2b0, 0x0132d406, 0x0199922e, 0x031cd601, 0x01cba350, 0x010e2536, 0x030e9f97, 0x03052e49, 0x00370382}}, Y: Field{[10]uint32{0x03b791d9, 0x0151f871, 0x01bea086, 0x03ce087f, 0x02223e7a, 0x02487892, 0x0139cb56, 0x01946933, 0x03868e1c, 0x003fe465}}}, + {X: Field{[10]uint32{0x02eb91ee, 0x02a9688c, 0x01038b74, 0x023c4604, 0x016bea74, 0x00571b29, 0x02c365b5, 0x03751cd7, 0x0298fb6d, 0x0039c72b}}, Y: Field{[10]uint32{0x01600266, 0x020af3c7, 0x0106ce66, 0x029ca007, 0x019ed731, 0x036f47d0, 0x03c5bc75, 0x0083db8b, 0x0018396c, 0x002012ba}}}, + {X: Field{[10]uint32{0x00ddfd8c, 0x01e4ad35, 0x03b9f88d, 0x01a081e6, 0x006b5d53, 0x02f4b29b, 0x0194d486, 0x0393fced, 0x01b2f7b2, 0x0014346d}}, Y: Field{[10]uint32{0x015cc744, 0x012f2213, 0x01f5b6e3, 0x039d0083, 0x015c554f, 0x02ae863f, 0x039b03f0, 0x0019821a, 0x00c518fa, 0x00155b3d}}}, + {X: Field{[10]uint32{0x002701aa, 0x00c8746f, 0x01747325, 0x021ad1c2, 0x00966348, 0x008fdb2d, 0x00c5e86f, 0x0365537e, 0x003e2bd5, 0x003021d0}}, Y: Field{[10]uint32{0x03507712, 0x028894a8, 0x00679003, 0x012f8ac0, 0x02258bc1, 0x03b61f81, 0x023a549e, 0x01cc001b, 0x0187d851, 0x00276d12}}}, + {X: Field{[10]uint32{0x016d6894, 0x003d45ef, 0x002b3798, 0x03d47a49, 0x014d45f8, 0x03da28a6, 0x00988fd3, 0x00d08b7a, 0x03f7f384, 0x0037440d}}, Y: Field{[10]uint32{0x01cccce1, 0x030646c9, 0x025f254f, 0x03395ac1, 0x021a9c08, 0x01cc24e9, 0x01ab8b76, 0x02f3762c, 0x01615cfb, 0x0032a39b}}}, + {X: Field{[10]uint32{0x00b5ceb4, 0x02731f4d, 0x01d1473a, 0x0295b026, 0x00424dfd, 0x0063dd93, 0x02840c3d, 0x01626fd2, 0x021967ca, 0x003788a6}}, Y: Field{[10]uint32{0x00122b22, 0x014456d5, 0x00be702d, 0x03046e3a, 0x00a1d352, 0x0391bfd1, 0x023f4b2a, 0x018ea50c, 0x01ca84ca, 0x002563f2}}}, + {X: Field{[10]uint32{0x00cdfd9c, 0x031fb881, 0x01cb1143, 0x03759ea3, 0x02f8a3a3, 0x0028d690, 0x0225f487, 0x0213e858, 0x03c9cc9d, 0x0000578c}}, Y: Field{[10]uint32{0x0260e920, 0x026e6cc1, 0x022562f8, 0x00571fcd, 0x02a59a1e, 0x01792b5a, 0x02058364, 0x033574d8, 0x0206ed48, 0x00104f00}}}, + {X: Field{[10]uint32{0x03d6bee0, 0x03902328, 0x00fc4394, 0x0266deac, 0x00dc010b, 0x02c86b8e, 0x023e3173, 0x01361cb4, 0x0161ca3c, 0x0014d089}}, Y: Field{[10]uint32{0x0103048e, 0x02ecfed8, 0x038b78de, 0x002e9c6e, 0x0020f2c5, 0x01e73872, 0x007c7ab7, 0x02427d94, 0x02e5e505, 0x001bba41}}}, + {X: Field{[10]uint32{0x0282b2fc, 0x00765ca6, 0x02a74a03, 0x0028245d, 0x020308bf, 0x0172dc72, 0x0000bbff, 0x013cdcca, 0x034f9b2c, 0x0020a773}}, Y: Field{[10]uint32{0x038483c4, 0x017dab97, 0x005d3352, 0x03101857, 0x01abe3f8, 0x03d621cf, 0x0249d3c9, 0x014e2938, 0x0200429e, 0x0011cde0}}}, + {X: Field{[10]uint32{0x02e911e5, 0x039970e2, 0x00ebe450, 0x02e8757d, 0x01c05594, 0x033fe5fc, 0x023b989a, 0x02c6c524, 0x02b73769, 0x003b5bdb}}, Y: Field{[10]uint32{0x02c38eb4, 0x01403868, 0x03fbe18e, 0x02768dcb, 0x01d52e2d, 0x027fd886, 0x018cd0b6, 0x02136e2e, 0x032f3fe5, 0x0037fb9b}}}, + {X: Field{[10]uint32{0x00455503, 0x009c8170, 0x013da303, 0x02fb2d24, 0x0370616e, 0x03cac612, 0x00d1982d, 0x01c83a3f, 0x03981fbe, 0x0011f948}}, Y: Field{[10]uint32{0x02f3e900, 0x038bd2ae, 0x012515ea, 0x02e1b118, 0x00179f4c, 0x0378379c, 0x020cfbd1, 0x030c3da0, 0x00ebf360, 0x002bf4b7}}}, + {X: Field{[10]uint32{0x01037312, 0x037812ea, 0x010df49f, 0x02a304f7, 0x00ba10e2, 0x017a2039, 0x03f1170f, 0x0387e1bc, 0x03d58f48, 0x002c0a4d}}, Y: Field{[10]uint32{0x00c18c4f, 0x034f1e8a, 0x03cf5347, 0x0093da32, 0x038a6c79, 0x00d5785f, 0x02de5805, 0x021158c5, 0x024f3e4c, 0x000372c2}}}, + {X: Field{[10]uint32{0x001989f8, 0x015ff43b, 0x025d44ee, 0x03af7f71, 0x03878486, 0x00f019ba, 0x0010c2dc, 0x03070c97, 0x00f53578, 0x0027e64f}}, Y: Field{[10]uint32{0x01c8bb52, 0x00ece18c, 0x0275d914, 0x01bc34e0, 0x01e83eda, 0x03986ebe, 0x026ea432, 0x02047359, 0x000b16b8, 0x0031ae35}}}, + {X: Field{[10]uint32{0x013240e6, 0x03e6e277, 0x0284e599, 0x0213cdbf, 0x01ce4317, 0x037f4743, 0x02730edb, 0x03b077c4, 0x00c25913, 0x00250edb}}, Y: Field{[10]uint32{0x03ed3fd0, 0x01dd2093, 0x0316d09f, 0x03ffead6, 0x029604d3, 0x0153bd56, 0x02d7ca32, 0x03fcff50, 0x02bacac2, 0x00396040}}}, + {X: Field{[10]uint32{0x01acfe0a, 0x02fcbc06, 0x00a6481f, 0x033d1fd6, 0x0059511d, 0x01ed69f2, 0x0043da4f, 0x03e7b146, 0x027e69b3, 0x00026c39}}, Y: Field{[10]uint32{0x01c54dd8, 0x00274c3b, 0x01c674a0, 0x00dbdf92, 0x022e074c, 0x01cccf29, 0x02defc7d, 0x03b2d338, 0x002817a4, 0x001a9377}}}, + {X: Field{[10]uint32{0x00571651, 0x03a19ce9, 0x03acc72a, 0x02d004da, 0x020c8246, 0x012329b9, 0x03b0fd40, 0x03463e30, 0x02339cd8, 0x0025f73b}}, Y: Field{[10]uint32{0x00e693e4, 0x00b4b49d, 0x03d510d8, 0x01192208, 0x0229b952, 0x0224cf71, 0x02e36cfc, 0x02fce62a, 0x0205cc20, 0x001858e8}}}, + {X: Field{[10]uint32{0x02292ced, 0x027fdeb4, 0x00267299, 0x003cadf7, 0x02798c94, 0x01286e80, 0x02a9c26f, 0x007b69f3, 0x02f92696, 0x00287979}}, Y: Field{[10]uint32{0x00d5f19d, 0x0234c6c2, 0x00fbeca1, 0x03e4ee7a, 0x03cfc07a, 0x01b65d95, 0x01384013, 0x003dd3b4, 0x037a6a71, 0x001409d2}}}, + {X: Field{[10]uint32{0x034884a9, 0x0210a596, 0x021a61a9, 0x02c61020, 0x001c21bd, 0x03f1dc60, 0x03c9bdc6, 0x0377f14b, 0x03cf7cdf, 0x0011cf57}}, Y: Field{[10]uint32{0x03d856af, 0x01f16c63, 0x02250eba, 0x03afa2f9, 0x0389ff95, 0x0320b656, 0x032d7036, 0x03d543fa, 0x02a70ad7, 0x000d220d}}}, + {X: Field{[10]uint32{0x0396f613, 0x0147a851, 0x009d454c, 0x004caec5, 0x00db8c1e, 0x00151326, 0x00c33b27, 0x02cb413f, 0x00427384, 0x0027061d}}, Y: Field{[10]uint32{0x00ae0a19, 0x00fdfd7f, 0x0342b791, 0x00d831c4, 0x02c1825d, 0x02573bee, 0x0212e475, 0x0001e4f6, 0x0043970f, 0x000b5b7b}}}, + {X: Field{[10]uint32{0x0162b154, 0x029aa981, 0x0351e0c7, 0x00a57d6f, 0x02ed63c7, 0x039d0392, 0x002d826b, 0x038afedd, 0x00469150, 0x00047387}}, Y: Field{[10]uint32{0x034fa33d, 0x02da9887, 0x00271aa3, 0x0232bca9, 0x0267f3b2, 0x03a2df64, 0x01f8b93b, 0x00a03eaf, 0x014fea38, 0x001ba194}}}, + {X: Field{[10]uint32{0x01656042, 0x0297159e, 0x031cd4d9, 0x01c52eb3, 0x03dde2fd, 0x0234731b, 0x013c3541, 0x0379bca2, 0x0104e4e2, 0x000780de}}, Y: Field{[10]uint32{0x00960755, 0x03a06963, 0x0221b462, 0x0214f007, 0x023c81ac, 0x002bc0d7, 0x028aa38a, 0x01a084a8, 0x01c934c2, 0x0006edd6}}}, + {X: Field{[10]uint32{0x00071d82, 0x007669f0, 0x02800995, 0x0178c731, 0x003f8d50, 0x03e78d88, 0x0294f240, 0x0266abc6, 0x006723f8, 0x0014bf25}}, Y: Field{[10]uint32{0x00bd6dbb, 0x0065a5f4, 0x039db924, 0x02cd2ce8, 0x0239c909, 0x01c2d1ee, 0x00dfb992, 0x00208083, 0x02e07543, 0x000118ca}}}, + {X: Field{[10]uint32{0x0242b20d, 0x027600c1, 0x02a4ff9e, 0x02d35e37, 0x0235069e, 0x025bd4e1, 0x00f9e394, 0x00672c85, 0x01059975, 0x0032d616}}, Y: Field{[10]uint32{0x0093ac7d, 0x038e44fb, 0x02d45064, 0x03cd6643, 0x007131b2, 0x038b5794, 0x02a0f51c, 0x01d68790, 0x02e7a5b4, 0x0006e7d0}}}, + {X: Field{[10]uint32{0x00a69c46, 0x02b803ed, 0x03a12cec, 0x00368471, 0x03e7ab18, 0x034def34, 0x03275845, 0x011561d5, 0x005729f1, 0x000e0b0a}}, Y: Field{[10]uint32{0x00039440, 0x03079f95, 0x008e4a25, 0x028f82c9, 0x03495907, 0x03c4a1a4, 0x02586843, 0x003ecdb8, 0x011220a7, 0x0032c9fa}}}, + {X: Field{[10]uint32{0x034e5024, 0x03b2e213, 0x0164b6dc, 0x00fecbe5, 0x02a4dd61, 0x02cce9a4, 0x00456dce, 0x0039263e, 0x02c6c285, 0x0005bc21}}, Y: Field{[10]uint32{0x039339a9, 0x03bbfb49, 0x01df312d, 0x033b26b5, 0x0073cb5e, 0x0169940d, 0x008ca682, 0x004620d1, 0x020888eb, 0x000b854a}}}, + {X: Field{[10]uint32{0x01a02492, 0x03585dd9, 0x009506ee, 0x007d99cc, 0x014439a5, 0x011ba89d, 0x030f0ae4, 0x00d5dd54, 0x011b1f0a, 0x001d626f}}, Y: Field{[10]uint32{0x00462d49, 0x0365d966, 0x0389c00a, 0x030d8c30, 0x0004076f, 0x00534d8d, 0x01771bb0, 0x02054c79, 0x0212d375, 0x000b6103}}}, + {X: Field{[10]uint32{0x00930890, 0x00c9bd35, 0x004469a0, 0x03d689ad, 0x01a80cc5, 0x030efbba, 0x02dbd2b0, 0x00e944f7, 0x0240cce6, 0x00062e6b}}, Y: Field{[10]uint32{0x022690e4, 0x0293ae4a, 0x0118acf6, 0x035e382b, 0x039e0032, 0x02c9c342, 0x03571382, 0x00f111c6, 0x024dd5ed, 0x00092e1a}}}, + {X: Field{[10]uint32{0x03ebb48a, 0x03a2a2b4, 0x009a4ccf, 0x01b840b2, 0x0394e9ba, 0x012fa189, 0x030db5d1, 0x007bd900, 0x00a4acc7, 0x002307dd}}, Y: Field{[10]uint32{0x0245677a, 0x02c59ce4, 0x01c9416e, 0x00664b57, 0x021af1c1, 0x022c9b21, 0x03ba735c, 0x0294a478, 0x011998ae, 0x0029e7c0}}}, + {X: Field{[10]uint32{0x02bfb080, 0x00b080f0, 0x010465cd, 0x00223b1f, 0x002c0fca, 0x000e096d, 0x0157ba0d, 0x02aadd6d, 0x012d36bf, 0x00236016}}, Y: Field{[10]uint32{0x0151d3f6, 0x02d19bc0, 0x03a51859, 0x01504335, 0x027671a6, 0x014cff4a, 0x00a1bd4a, 0x01d14d34, 0x008791f2, 0x000f91e5}}}, + {X: Field{[10]uint32{0x030ca248, 0x0095d959, 0x02770f71, 0x03a78114, 0x03f36782, 0x00b159dd, 0x005046cf, 0x038563b2, 0x0319f477, 0x003aac2e}}, Y: Field{[10]uint32{0x00c04640, 0x01d3329f, 0x01ebd700, 0x0190fc62, 0x0337f0bd, 0x00ae81c7, 0x0355e563, 0x00ebd36b, 0x00812309, 0x00289f5c}}}, + {X: Field{[10]uint32{0x020a039c, 0x00cb1a8a, 0x0399bdb5, 0x00776d21, 0x0109647e, 0x0149833a, 0x03b249fd, 0x00be89b4, 0x01c9ebbb, 0x003fc343}}, Y: Field{[10]uint32{0x02b31fa9, 0x00e50bbe, 0x010233c4, 0x03d59884, 0x02fad5b0, 0x0366dd82, 0x01c35055, 0x007e2f38, 0x02ae7f16, 0x0004ac3d}}}, + {X: Field{[10]uint32{0x0037d526, 0x00aaa58e, 0x030ad42a, 0x0080fb9a, 0x02be22b3, 0x02c22def, 0x03403468, 0x02f46e48, 0x023571db, 0x0036268c}}, Y: Field{[10]uint32{0x02e3cf27, 0x02dd084d, 0x03b62146, 0x0241551b, 0x03db4a04, 0x039bdbc7, 0x008124d9, 0x03c59cc4, 0x01b99988, 0x0009768d}}}, + {X: Field{[10]uint32{0x025b43fd, 0x013004a4, 0x00a229ec, 0x0055574d, 0x0313ffb3, 0x019d47df, 0x03cdafa8, 0x02acb10c, 0x023bf01c, 0x003c5400}}, Y: Field{[10]uint32{0x02c7a9cc, 0x030f4cce, 0x03f341a9, 0x01a881ca, 0x038ac37a, 0x01ea7920, 0x00966b71, 0x032259b7, 0x0221026a, 0x000c7dc3}}}, + {X: Field{[10]uint32{0x003af2a8, 0x03b80672, 0x0070d9b3, 0x032382d1, 0x0276f442, 0x030b3436, 0x02e9d5e2, 0x0025e1ca, 0x013b2d58, 0x003663af}}, Y: Field{[10]uint32{0x01dba3f5, 0x005f249d, 0x00823e00, 0x01629453, 0x00930fb3, 0x029b1c89, 0x03f9873d, 0x0065c0d2, 0x02a95a06, 0x0027b56d}}}, + {X: Field{[10]uint32{0x03c3c746, 0x03ec06f2, 0x01827583, 0x00efe9df, 0x02817353, 0x03cf2a05, 0x002e313d, 0x0253bb7f, 0x0185833a, 0x00156d8b}}, Y: Field{[10]uint32{0x024a835c, 0x02b4444d, 0x0189715b, 0x02fd1320, 0x011f4dbb, 0x0269e84e, 0x01eb9211, 0x016bdede, 0x03730cb9, 0x0027e121}}}, + {X: Field{[10]uint32{0x01718de6, 0x003fb3ef, 0x021ca286, 0x01268a9e, 0x00ec759c, 0x01b070ff, 0x0069de8f, 0x00fe4d13, 0x0176fef7, 0x0037ebd3}}, Y: Field{[10]uint32{0x025a0671, 0x034c509c, 0x01971357, 0x0054656f, 0x017fba1f, 0x00db64fb, 0x0009f94c, 0x030a1fd9, 0x029344e2, 0x002b12bd}}}, + {X: Field{[10]uint32{0x01fe29da, 0x01fcf9b1, 0x00bf838b, 0x00f16043, 0x03a7839f, 0x005bb88a, 0x0020f29a, 0x0248b0dd, 0x00a34510, 0x00212911}}, Y: Field{[10]uint32{0x0114f06a, 0x02615404, 0x0175fa18, 0x01c032fe, 0x026e89af, 0x01cc1a7f, 0x03f420a6, 0x0304b850, 0x01802215, 0x003bdccf}}}, + {X: Field{[10]uint32{0x032212af, 0x006a94e9, 0x02548629, 0x01260e24, 0x032c3377, 0x025a0468, 0x01d24d12, 0x01c020f7, 0x021146c8, 0x0035f213}}, Y: Field{[10]uint32{0x00844ac4, 0x03350184, 0x01745f84, 0x0344135e, 0x019579b2, 0x0202bb18, 0x01357e54, 0x0102f70f, 0x0158a3be, 0x002c61f7}}}, + {X: Field{[10]uint32{0x0198051d, 0x03a9e215, 0x02a069ff, 0x02d5c68b, 0x00c7fca4, 0x01d41cb3, 0x029f6165, 0x0022fbce, 0x027fa70b, 0x003f7b70}}, Y: Field{[10]uint32{0x03b9bf9a, 0x0118a901, 0x01fbb3ec, 0x01379c91, 0x0253f6f5, 0x029fd378, 0x014d279b, 0x016a780d, 0x031a1c57, 0x003fa6de}}}, + {X: Field{[10]uint32{0x03122e77, 0x0171e57b, 0x039a5c2d, 0x0141365a, 0x03f950c2, 0x01610dec, 0x0022b350, 0x0331aa48, 0x038ad3f2, 0x0033e9d1}}, Y: Field{[10]uint32{0x021409c4, 0x02516c89, 0x023bb158, 0x0028f6a1, 0x022ad780, 0x03f7530b, 0x00f8eedf, 0x00a0d4d5, 0x01cae959, 0x003cf923}}}, + {X: Field{[10]uint32{0x020eefe2, 0x01f73a3b, 0x023f8033, 0x02f36377, 0x02aa1584, 0x01d9e3f3, 0x03b7493d, 0x00825dc3, 0x03f83fd6, 0x0023a455}}, Y: Field{[10]uint32{0x0205351b, 0x027ce94e, 0x0188ac8d, 0x016913ea, 0x003322fb, 0x02d2c8a7, 0x00f91df4, 0x037edae9, 0x02898c05, 0x00181e6e}}}, + {X: Field{[10]uint32{0x03116f75, 0x022e4a00, 0x01dfdbea, 0x03f1a9fe, 0x029d422f, 0x02f77fc8, 0x00eb80a9, 0x02b0c3b1, 0x03b6103e, 0x001efd7b}}, Y: Field{[10]uint32{0x03a71a3b, 0x00e24c4e, 0x03e67ba1, 0x0130d54f, 0x012cba4b, 0x015e5850, 0x01355542, 0x007b7f96, 0x02596479, 0x003beb6d}}}, + {X: Field{[10]uint32{0x00e8df0b, 0x009e0834, 0x0153e85f, 0x03f22747, 0x01690a13, 0x01da5c1e, 0x007b1b53, 0x030b49a3, 0x02b7b7b2, 0x003d6e80}}, Y: Field{[10]uint32{0x02465485, 0x03c54567, 0x013a3af7, 0x01930f1e, 0x00a9266b, 0x034b510c, 0x00329d19, 0x003906ff, 0x0126b264, 0x00198c5b}}}, + {X: Field{[10]uint32{0x03004475, 0x01262fff, 0x008284a1, 0x0297c494, 0x0387c10d, 0x008a547e, 0x02bc3dbf, 0x029325b4, 0x01f3dcec, 0x0017aab3}}, Y: Field{[10]uint32{0x011f122d, 0x0094652b, 0x02106c8c, 0x00425dfa, 0x00b38f58, 0x020c7341, 0x0185d404, 0x0338245a, 0x03ed9721, 0x0032cf6c}}}, + {X: Field{[10]uint32{0x024a5554, 0x0169da29, 0x01e4177c, 0x02fd3e8b, 0x01d1320a, 0x03544cdc, 0x0152ba6a, 0x0044d14d, 0x0017b8d6, 0x00073f97}}, Y: Field{[10]uint32{0x011dcd5d, 0x03a91aff, 0x008945ed, 0x039801e8, 0x0099bcab, 0x00c67dd0, 0x024a2f7e, 0x02e21c79, 0x00f64846, 0x0014e0df}}}, + {X: Field{[10]uint32{0x025dbc10, 0x007c28de, 0x028805e2, 0x02ed1391, 0x02286f47, 0x004843ef, 0x0091dd2a, 0x03321873, 0x03478a2c, 0x0024aa0f}}, Y: Field{[10]uint32{0x0199de94, 0x03d53d72, 0x01043684, 0x03e43b0d, 0x000cb69f, 0x006604cb, 0x0270b8bc, 0x016c0be0, 0x0065fcd4, 0x003fb8d7}}}, + {X: Field{[10]uint32{0x02d277d3, 0x012ada72, 0x01dd14f7, 0x034c92fd, 0x0173c07a, 0x00d6f6de, 0x0186ea10, 0x00e6c3d3, 0x01bad5d5, 0x0005c8a1}}, Y: Field{[10]uint32{0x02ada654, 0x0308be6a, 0x00897314, 0x0100a22d, 0x02cfc290, 0x03b8f883, 0x03afa15c, 0x018d9382, 0x0140cf35, 0x00116afe}}}, + {X: Field{[10]uint32{0x03164762, 0x01badcf2, 0x0032c764, 0x0204e817, 0x013126ce, 0x03e45637, 0x014ae08b, 0x026eae15, 0x015392e1, 0x002b45ef}}, Y: Field{[10]uint32{0x01065586, 0x0115d323, 0x01b94e16, 0x014625be, 0x038139c6, 0x0275c353, 0x01d4f47d, 0x00e61ddd, 0x00191c83, 0x000284a6}}}, + {X: Field{[10]uint32{0x02bdeb1c, 0x01f2cc4b, 0x00a12526, 0x001f1019, 0x03c23fd3, 0x00f94470, 0x02ce9e91, 0x02a2707d, 0x033e91a4, 0x00041086}}, Y: Field{[10]uint32{0x02a53319, 0x0164a18e, 0x03cc1923, 0x00036b1d, 0x03985697, 0x01cc4632, 0x02b8a510, 0x03c3f461, 0x01d09e49, 0x0014e6ed}}}, + {X: Field{[10]uint32{0x01de5bfd, 0x00d6c188, 0x030ff397, 0x03787838, 0x012e8476, 0x0198caa9, 0x039eba60, 0x00a8f772, 0x00fa7815, 0x00310eb7}}, Y: Field{[10]uint32{0x00abdebf, 0x00469567, 0x018801a9, 0x0389815f, 0x031e81c6, 0x036b2ede, 0x03d04f05, 0x01602e11, 0x01ca2122, 0x001b7742}}}, + {X: Field{[10]uint32{0x00bf9a73, 0x036401a6, 0x0227b5c8, 0x00764aab, 0x0014434f, 0x0279f662, 0x02b9e50d, 0x01634131, 0x00cb603a, 0x003dea67}}, Y: Field{[10]uint32{0x031a7ccb, 0x00e9df69, 0x01b0878a, 0x01332bf2, 0x005e6293, 0x032dd04c, 0x02d68091, 0x00e4eba5, 0x024476f4, 0x003337f0}}}, + {X: Field{[10]uint32{0x0209c826, 0x01d6f9c3, 0x01aacb31, 0x005a7492, 0x02f602d5, 0x028b2a6f, 0x038f44f4, 0x013a8d40, 0x01bf7017, 0x0026af25}}, Y: Field{[10]uint32{0x03adfe0c, 0x00663835, 0x03763617, 0x036d32ad, 0x0222a9fe, 0x0233b6b2, 0x027d2c9f, 0x03e28f50, 0x02ed3e71, 0x001b3ef3}}}, + {X: Field{[10]uint32{0x005d8d82, 0x02ee7b57, 0x035c5546, 0x03f03414, 0x03d7bd08, 0x0124f273, 0x034af06b, 0x0121cfb2, 0x009335c8, 0x00229f2a}}, Y: Field{[10]uint32{0x01e31bc1, 0x000064c8, 0x005ba07b, 0x03fb4bca, 0x01209ae3, 0x010511e6, 0x031ee4e5, 0x00f021cb, 0x0372090d, 0x0009462c}}}, + {X: Field{[10]uint32{0x024d1c3e, 0x032489e9, 0x03b79ff1, 0x0373091b, 0x02b39fdb, 0x018be352, 0x01182fd8, 0x018a365a, 0x03798649, 0x001c3238}}, Y: Field{[10]uint32{0x02ea3cbb, 0x0038c849, 0x0386f7f5, 0x005d3bf6, 0x03936c95, 0x03558823, 0x0297d9ef, 0x00292bb0, 0x02d527ec, 0x0031e4c6}}}, + {X: Field{[10]uint32{0x01002121, 0x00b58a0c, 0x0076b957, 0x039f0616, 0x00934a82, 0x012023f7, 0x01dcf61b, 0x007b81c7, 0x02b40612, 0x0035e0fd}}, Y: Field{[10]uint32{0x029c7fbb, 0x007662d7, 0x0262ca03, 0x0055a52e, 0x0028b3ed, 0x02699226, 0x0107c82b, 0x01a52678, 0x01841422, 0x002aa4af}}}, + {X: Field{[10]uint32{0x03654c18, 0x01f939de, 0x007581a1, 0x025671de, 0x02b75927, 0x03aa3931, 0x01ffbb87, 0x02d0eb2b, 0x021c29ab, 0x00307c1a}}, Y: Field{[10]uint32{0x03ecdbf0, 0x006497be, 0x005476cd, 0x01c2a906, 0x03bc1024, 0x03968263, 0x01b0e7d9, 0x010b3eae, 0x01e2f1db, 0x00076b83}}}, + {X: Field{[10]uint32{0x02cc5105, 0x01f98b94, 0x0072487b, 0x009d21a6, 0x02d1498a, 0x0085c998, 0x02633ea3, 0x02d61e19, 0x02113205, 0x000ab5d3}}, Y: Field{[10]uint32{0x00ff779e, 0x01176834, 0x02e105de, 0x01652e2f, 0x02b5c851, 0x01d5720e, 0x01aa7d30, 0x0287f589, 0x0107de1f, 0x0031c31d}}}, + {X: Field{[10]uint32{0x037408b6, 0x00025e35, 0x01ac03d8, 0x015dd2b2, 0x03a9e32b, 0x01c713d5, 0x0374e233, 0x01a919ba, 0x01ad7224, 0x003d243a}}, Y: Field{[10]uint32{0x01dc3d6a, 0x003c06aa, 0x01fb963a, 0x006a2d12, 0x0377e49a, 0x03096141, 0x02ef15e4, 0x005a1ee9, 0x027f8fdd, 0x00151bcd}}}, + {X: Field{[10]uint32{0x001d6149, 0x008cdce6, 0x030553f1, 0x03143781, 0x0280c431, 0x017e2ecc, 0x01788b05, 0x02da5f81, 0x00918357, 0x0008140a}}, Y: Field{[10]uint32{0x028e3b0d, 0x01aaf411, 0x02777796, 0x016d71de, 0x019489ee, 0x0214bf42, 0x01a67712, 0x00388963, 0x00e54411, 0x000e7410}}}, + {X: Field{[10]uint32{0x006eae95, 0x0007acbe, 0x005d1bb0, 0x026780e3, 0x02e4b782, 0x0137a4a5, 0x0359915d, 0x028e8fbb, 0x038ec169, 0x001ba46e}}, Y: Field{[10]uint32{0x00877dfd, 0x0252e8a0, 0x008872ae, 0x03574823, 0x0045305d, 0x0227eb12, 0x0034063a, 0x0327c459, 0x029788f8, 0x0034b084}}}, + {X: Field{[10]uint32{0x03a34905, 0x01e2ec5a, 0x02a01906, 0x02ea79f7, 0x0339e7d0, 0x00796b54, 0x00d0d2fe, 0x0102c184, 0x03c839fc, 0x0033ca51}}, Y: Field{[10]uint32{0x0337c63d, 0x00502c8f, 0x007baaec, 0x01a84c7b, 0x018db00f, 0x01cba1d7, 0x0358d7b1, 0x0354fc35, 0x030f7f0c, 0x00185169}}}, + {X: Field{[10]uint32{0x022366f1, 0x01861d3e, 0x02864ad1, 0x0306b0f1, 0x001c8db1, 0x02b4ca8a, 0x01c9b010, 0x029b2158, 0x0387ea93, 0x002d23e0}}, Y: Field{[10]uint32{0x022d253c, 0x00c5749e, 0x0276b375, 0x02077e10, 0x009f46bd, 0x018273f2, 0x03d971b3, 0x01f4f89b, 0x0333cbe0, 0x0000b2ac}}}, + {X: Field{[10]uint32{0x02a1f827, 0x007b6850, 0x0315ef39, 0x013a0515, 0x0030f605, 0x025bf50f, 0x00ae58c6, 0x00b4d393, 0x03660c57, 0x001f12d7}}, Y: Field{[10]uint32{0x01843d97, 0x034cab66, 0x033b008e, 0x02b57e53, 0x02d0adc2, 0x01848cb0, 0x007c5fcc, 0x016bc0e4, 0x024fbe12, 0x000f2f89}}}, + {X: Field{[10]uint32{0x010d86e8, 0x02a17821, 0x02567378, 0x0147d756, 0x018fe24e, 0x01e1d636, 0x027f9890, 0x02786588, 0x0368d464, 0x00395e58}}, Y: Field{[10]uint32{0x02c9d4a7, 0x030d53bd, 0x0089646e, 0x02e35982, 0x021fa111, 0x01e9f92f, 0x02880bf6, 0x0244a26b, 0x0343c9a6, 0x0001d2ec}}}, + {X: Field{[10]uint32{0x004d637f, 0x00ae963f, 0x016509f0, 0x00994f1f, 0x0167c1ab, 0x038f2976, 0x01b88416, 0x03a7bf06, 0x025efe83, 0x0037e841}}, Y: Field{[10]uint32{0x00a5042d, 0x020fbb43, 0x00a231ec, 0x00668aa8, 0x02e23fdf, 0x021794d4, 0x0270e046, 0x00dee8bc, 0x0167eb02, 0x00008b49}}}, + {X: Field{[10]uint32{0x028af132, 0x01ecdea4, 0x01f2f234, 0x01133c4c, 0x008f4638, 0x039c42e0, 0x01a3ce98, 0x030cca3f, 0x00aad436, 0x000ba876}}, Y: Field{[10]uint32{0x0298dc4c, 0x0187cc43, 0x004328fc, 0x0081e80d, 0x0213ff96, 0x033ca92c, 0x00a243cc, 0x02b44160, 0x020fb8c2, 0x000cfe9f}}}, + {X: Field{[10]uint32{0x0167253f, 0x01477975, 0x031b4c0a, 0x01b3e2a4, 0x03ab6a97, 0x039677cd, 0x008298b5, 0x02bcfe9e, 0x00518122, 0x0004ab85}}, Y: Field{[10]uint32{0x0124877d, 0x034c6807, 0x015a7926, 0x02bad555, 0x021c3ff9, 0x038fc296, 0x02fa7329, 0x0074bb78, 0x01d2b327, 0x00217fc7}}}, + {X: Field{[10]uint32{0x01bf6619, 0x01164c25, 0x00270856, 0x03bd57be, 0x03125579, 0x03b1d68e, 0x02b84fed, 0x02bc6a9c, 0x01efb588, 0x003f51b8}}, Y: Field{[10]uint32{0x03a51b17, 0x01f2dec9, 0x01ea40f5, 0x01eba071, 0x03342e6b, 0x01ce8abf, 0x007d477c, 0x00a4bd83, 0x006eceb6, 0x00341ab7}}}, + {X: Field{[10]uint32{0x0332b52b, 0x024342df, 0x01e614a2, 0x011ac5cb, 0x01c7a179, 0x02f88ab3, 0x009e1bf0, 0x0347bc71, 0x013eb8c0, 0x0003b5f6}}, Y: Field{[10]uint32{0x02303ada, 0x0233a7ec, 0x02246f36, 0x02129a33, 0x02b55522, 0x010aafac, 0x036668a7, 0x0070ebe3, 0x030a39a8, 0x001343b0}}}, + {X: Field{[10]uint32{0x029619ef, 0x0022db43, 0x034dc9d8, 0x004cd893, 0x01585179, 0x01d701b7, 0x02bda814, 0x01e69a7f, 0x03a5cd0e, 0x003f33f7}}, Y: Field{[10]uint32{0x010adf49, 0x009106b7, 0x015139bd, 0x012b5838, 0x02ec6232, 0x024aa58d, 0x01959c69, 0x026fb7e2, 0x000d11d0, 0x001e6e41}}}, + {X: Field{[10]uint32{0x034ac477, 0x02955912, 0x00010a57, 0x029c8ad1, 0x0316823e, 0x02f1c532, 0x02044b27, 0x026bfb4a, 0x02b86a9b, 0x0020c5d8}}, Y: Field{[10]uint32{0x0156c708, 0x005a7926, 0x02ff69c3, 0x0372989a, 0x032754c1, 0x02137f5d, 0x00b3f77f, 0x02ff72d2, 0x00628ef3, 0x00051eb8}}}, + {X: Field{[10]uint32{0x02f26b01, 0x00ee6753, 0x02fb3490, 0x0187c995, 0x01f92cc4, 0x03f8333e, 0x0370adbb, 0x014c0f23, 0x0001a84d, 0x000cd123}}, Y: Field{[10]uint32{0x03b8f2ff, 0x03a9507f, 0x0095f736, 0x00f1bf5f, 0x02208ad0, 0x03b9fe41, 0x00a82840, 0x02e98723, 0x03490ae8, 0x00395c9c}}}, + {X: Field{[10]uint32{0x03d215a6, 0x01533081, 0x024a2482, 0x036ac66c, 0x0160df85, 0x003aebdb, 0x03ccb8c5, 0x004c1055, 0x02616ddf, 0x00248284}}, Y: Field{[10]uint32{0x028d0f4e, 0x028f283c, 0x02e369f1, 0x00738313, 0x03e2cb67, 0x02a302e5, 0x02f7a11c, 0x03a240f4, 0x00f9cc91, 0x00067935}}}, + {X: Field{[10]uint32{0x036b1ba4, 0x03f98b94, 0x026b7fca, 0x029712e4, 0x01458385, 0x02eb0971, 0x020ac00c, 0x002e70fd, 0x021d3e37, 0x00077e33}}, Y: Field{[10]uint32{0x0099a92b, 0x039f9814, 0x01083533, 0x03d6f1c0, 0x023fcbab, 0x01ca4253, 0x02f61602, 0x0141e54a, 0x006ee363, 0x000d137d}}}, + {X: Field{[10]uint32{0x038b7b72, 0x02ca2074, 0x013b6286, 0x03236036, 0x022e2243, 0x00de8149, 0x0018175c, 0x009ae04f, 0x007dabfe, 0x001c89e1}}, Y: Field{[10]uint32{0x03973d24, 0x02622e29, 0x03364622, 0x0104311a, 0x0128b5aa, 0x0185973e, 0x0289c934, 0x00f37654, 0x01eb33da, 0x002fb79e}}}, + {X: Field{[10]uint32{0x03f7fb8d, 0x027ca4bb, 0x01995972, 0x013c9b63, 0x003caff7, 0x03321041, 0x02571f8c, 0x022feac0, 0x0259e121, 0x001b7bee}}, Y: Field{[10]uint32{0x00340a04, 0x025aa353, 0x001a6956, 0x00156487, 0x002c188c, 0x034d39df, 0x03770d1b, 0x03ef165b, 0x028e21f2, 0x00135eea}}}, + {X: Field{[10]uint32{0x002d6bd3, 0x00581478, 0x020f990b, 0x006ad8c6, 0x0208302e, 0x02b7d4ef, 0x031ae022, 0x01f491ac, 0x00eff512, 0x003199fd}}, Y: Field{[10]uint32{0x02d34cf5, 0x00312936, 0x032373e8, 0x00f549eb, 0x02f8de28, 0x01f5d1a8, 0x00d822c3, 0x02f7dbf5, 0x0276ce11, 0x000f5ef3}}}, + {X: Field{[10]uint32{0x0229d866, 0x00b1cbf3, 0x03d2355c, 0x02e39aec, 0x006fbca1, 0x00e8aac0, 0x00dcc242, 0x0083d664, 0x02744416, 0x003b67a1}}, Y: Field{[10]uint32{0x0006ad30, 0x01f08a96, 0x021a5829, 0x01c47b0d, 0x027c03dd, 0x0024c37b, 0x01a12f33, 0x0268aee0, 0x019bb428, 0x0019357b}}}, + {X: Field{[10]uint32{0x0176fb24, 0x03ae630c, 0x02ea0b0e, 0x03bab114, 0x03219e57, 0x018d13bc, 0x0000b256, 0x033b80cf, 0x0057e6b0, 0x0021a8db}}, Y: Field{[10]uint32{0x02fff739, 0x03a36cfa, 0x02f25135, 0x00f9e686, 0x01b147b4, 0x02564ad7, 0x01038748, 0x01637d38, 0x01da9e9b, 0x002d3d2f}}}, + {X: Field{[10]uint32{0x00cca913, 0x0248a02f, 0x00e04337, 0x0208779c, 0x01fd02bf, 0x0285478f, 0x02105acb, 0x01bfce83, 0x03844539, 0x000b88dd}}, Y: Field{[10]uint32{0x03148551, 0x01c5b0d9, 0x0304fc0b, 0x03728cd8, 0x00f43726, 0x02ef3241, 0x00464c43, 0x020fc184, 0x039ce779, 0x003dcd94}}}, + {X: Field{[10]uint32{0x00a1390f, 0x027e6008, 0x028c1689, 0x021eb0b5, 0x009db88a, 0x00682f00, 0x026dbcf1, 0x0364d948, 0x014c7790, 0x003334f0}}, Y: Field{[10]uint32{0x003af907, 0x037f75c7, 0x00a6781c, 0x02a01f7c, 0x00f8a9cb, 0x006264c8, 0x03bac2af, 0x017767cc, 0x035fbd6d, 0x002c902c}}}, + {X: Field{[10]uint32{0x0237b018, 0x033361cd, 0x021b217b, 0x02b6e09d, 0x01eba4ef, 0x015625e3, 0x006566d0, 0x035ec71b, 0x027f0988, 0x001dc4ef}}, Y: Field{[10]uint32{0x00475781, 0x02cd309d, 0x03d9470d, 0x039993b9, 0x01c75f31, 0x017eacd0, 0x02ef7c51, 0x00aea8bb, 0x026fa9d6, 0x0023ee46}}}, + {X: Field{[10]uint32{0x00982b02, 0x0199eea9, 0x0398b1ab, 0x03fc7165, 0x0134c739, 0x02c21573, 0x020acf56, 0x032cee54, 0x0160035d, 0x0015216b}}, Y: Field{[10]uint32{0x02a90f0f, 0x00e658a5, 0x03f9fcd4, 0x01579f72, 0x0357cbd4, 0x0224c46f, 0x03df62e5, 0x005329d0, 0x007b1e7c, 0x00077b1b}}}, + {X: Field{[10]uint32{0x00ee0f19, 0x0268f72c, 0x01ed189c, 0x0007cac1, 0x00411bd2, 0x013a1503, 0x012d1cfc, 0x01213407, 0x003ad3be, 0x002965d4}}, Y: Field{[10]uint32{0x001113cd, 0x0157b8ec, 0x014dce28, 0x03c1d972, 0x00becbd6, 0x036f3d24, 0x02cee664, 0x00466478, 0x027d3800, 0x000d444f}}}, + {X: Field{[10]uint32{0x0191ce4a, 0x03795f37, 0x0046cb94, 0x00de0320, 0x011ae249, 0x02f4bf64, 0x01d07a3d, 0x00c2c55f, 0x0251abb1, 0x002ea46c}}, Y: Field{[10]uint32{0x013e1f6c, 0x030d64c3, 0x01dcfe1d, 0x003f85e6, 0x03837742, 0x03d90bee, 0x01f33f54, 0x03b7ee9a, 0x0080500a, 0x0033f308}}}, + {X: Field{[10]uint32{0x02d324a4, 0x0116ffe1, 0x032e2fb0, 0x012980fe, 0x005c6d2f, 0x01721905, 0x03d33869, 0x01ef4f1b, 0x025883cc, 0x002b7ed6}}, Y: Field{[10]uint32{0x030cdc5c, 0x01554fde, 0x0172222a, 0x014f325d, 0x013a5257, 0x030c36a4, 0x00415a18, 0x00b7f714, 0x02d745d8, 0x000595d3}}}, + {X: Field{[10]uint32{0x03561ae8, 0x013b73e8, 0x023e29d9, 0x029383ee, 0x01ba1f13, 0x00292f8d, 0x0054b141, 0x002972b2, 0x014ddd71, 0x00042124}}, Y: Field{[10]uint32{0x01c25e99, 0x0373e152, 0x003babe6, 0x028d6423, 0x002f2b74, 0x037e3999, 0x02ac6cda, 0x03bd8104, 0x01353240, 0x00194f28}}}, + {X: Field{[10]uint32{0x026c6f7b, 0x0337345b, 0x0033f133, 0x01abe01e, 0x0281876a, 0x02e207bf, 0x028abe50, 0x022c505e, 0x02719af3, 0x001c12a8}}, Y: Field{[10]uint32{0x03769e54, 0x013d9ba8, 0x03b9263f, 0x03d10ae9, 0x0111395a, 0x038a8690, 0x00726c9b, 0x00602f12, 0x02b348c1, 0x0029bfb8}}}, + {X: Field{[10]uint32{0x00aec289, 0x01ee0daa, 0x0108051d, 0x03a250b2, 0x03fe68b0, 0x024f19a0, 0x01f57348, 0x00aa1970, 0x00c17f5d, 0x00118123}}, Y: Field{[10]uint32{0x03288efd, 0x00681e62, 0x03277a46, 0x00d0e106, 0x032e7668, 0x02d3e28c, 0x01bf9c6b, 0x03ddf41d, 0x003089a8, 0x0036173b}}}, + {X: Field{[10]uint32{0x03fce9e9, 0x011d95dd, 0x03c763d5, 0x033d6e87, 0x0107d04c, 0x016634be, 0x02781ba8, 0x00ec858d, 0x02be315d, 0x00143c79}}, Y: Field{[10]uint32{0x026b0b00, 0x017ec3bb, 0x00db7d09, 0x03851f80, 0x0325dd0c, 0x03725887, 0x00249759, 0x02e7ca33, 0x03d62057, 0x003df72d}}}, + {X: Field{[10]uint32{0x0263501c, 0x03ff3402, 0x006d03b7, 0x03cc16f5, 0x02944df1, 0x01d23527, 0x00efa037, 0x0156b404, 0x02446766, 0x001fb428}}, Y: Field{[10]uint32{0x01c18c21, 0x00343c01, 0x028d8269, 0x0196981d, 0x01e9b3ae, 0x00dab91d, 0x02eb2669, 0x0089ed11, 0x0265593f, 0x002a0dde}}}, + {X: Field{[10]uint32{0x03ebccc7, 0x03d18c93, 0x03342c29, 0x00eec7cd, 0x0219b29d, 0x03fc6f4b, 0x01c431dc, 0x030b3d84, 0x00a1ee66, 0x000340e7}}, Y: Field{[10]uint32{0x016d736f, 0x00c4139a, 0x0076e781, 0x03845699, 0x006e652e, 0x033f7321, 0x01ff5e24, 0x0319858a, 0x018214f4, 0x0036c343}}}, + {X: Field{[10]uint32{0x03b092b7, 0x03b60429, 0x015797be, 0x0272ab58, 0x028e3672, 0x01335283, 0x031768d9, 0x03f8bd14, 0x033acc55, 0x000309e5}}, Y: Field{[10]uint32{0x01f41c99, 0x005e8500, 0x020db439, 0x03c7fdd4, 0x000878e1, 0x02e78cc5, 0x02d54029, 0x02c91b15, 0x00eab36a, 0x003370c4}}}, + {X: Field{[10]uint32{0x0046e945, 0x0030cf19, 0x01d846de, 0x02000e8b, 0x01ac14a1, 0x03880b45, 0x0072e48d, 0x031a0c95, 0x0142cce3, 0x000da10a}}, Y: Field{[10]uint32{0x03b8f2f7, 0x000ee581, 0x02bcb574, 0x03e8376b, 0x03208d95, 0x03b55826, 0x009db9ae, 0x020be8d6, 0x03f819ab, 0x0014002c}}}, + {X: Field{[10]uint32{0x0162d0e9, 0x01552b9b, 0x03d7b0c4, 0x03de1783, 0x0074865e, 0x016aed15, 0x03f3a8c5, 0x0086d467, 0x015c3386, 0x00346a86}}, Y: Field{[10]uint32{0x03b737a8, 0x019c9469, 0x03c88c2e, 0x01cea6a2, 0x00832ce7, 0x0221018c, 0x0234576d, 0x00e166d1, 0x0133dc29, 0x0039f877}}}, + {X: Field{[10]uint32{0x000f00f0, 0x03c99fd7, 0x008b0489, 0x00aa3340, 0x03a59b2c, 0x01d9bb04, 0x02bd6ff5, 0x00e7b0d9, 0x01326074, 0x0013d08f}}, Y: Field{[10]uint32{0x00e7a9f4, 0x0075e1e9, 0x034eef5e, 0x016012d3, 0x00b6c3e0, 0x01cb2223, 0x008e6aa2, 0x01305701, 0x029d7ee9, 0x00178f1f}}}, + {X: Field{[10]uint32{0x03f06c4a, 0x006ee641, 0x018c5910, 0x03eabdce, 0x00ebcb9a, 0x02d7ea6e, 0x000859a9, 0x0247bc5f, 0x0280ff89, 0x001aec71}}, Y: Field{[10]uint32{0x0269a253, 0x03fcf261, 0x0039f189, 0x03f54d6e, 0x03217005, 0x01d85717, 0x03c242c9, 0x00ab9745, 0x03750d91, 0x000c6369}}}, + {X: Field{[10]uint32{0x00096f68, 0x00b426b0, 0x03b8bd0f, 0x008cc0c0, 0x02bc3934, 0x03efb8b9, 0x00b251c9, 0x0291a97f, 0x01d44713, 0x00005025}}, Y: Field{[10]uint32{0x0204a2b1, 0x032caeb9, 0x0159322d, 0x03ec2dfd, 0x001c7aa4, 0x0219f1ff, 0x01e632f6, 0x02cdd256, 0x000b3660, 0x00191f80}}}, + {X: Field{[10]uint32{0x035e5323, 0x0184ec12, 0x03b838b2, 0x0068e3a7, 0x02894319, 0x03021e1d, 0x00f831f6, 0x0271b92a, 0x03f0346e, 0x0004844a}}, Y: Field{[10]uint32{0x0257a3d0, 0x010a61a5, 0x0210e30a, 0x0196273f, 0x01faf640, 0x03b936ae, 0x03abf62a, 0x00cf6530, 0x02c2cb45, 0x00390526}}}, + {X: Field{[10]uint32{0x03ca5738, 0x0170dc22, 0x0329b4f7, 0x029e1165, 0x014f2197, 0x02bad67f, 0x00974ebe, 0x01204360, 0x00ccc2ed, 0x003e64d8}}, Y: Field{[10]uint32{0x026f1cb3, 0x020ea4bb, 0x020dbc0c, 0x00524d40, 0x03a06e44, 0x03865c76, 0x001b9f86, 0x01ea2b0b, 0x035e86d7, 0x002e4a8b}}}, + {X: Field{[10]uint32{0x02809ca4, 0x013a01ba, 0x00567a65, 0x02712522, 0x0264ae77, 0x0394fd47, 0x032112bb, 0x00fb3121, 0x024ec81a, 0x000b7b96}}, Y: Field{[10]uint32{0x033d4954, 0x00786931, 0x033b1bcb, 0x018e4d3f, 0x02bdea4d, 0x03f3c983, 0x02a1bcff, 0x011f0702, 0x00a1df6d, 0x00078baa}}}, + {X: Field{[10]uint32{0x01461229, 0x020b1ec3, 0x006a5f23, 0x0346ef5d, 0x00b73688, 0x00371404, 0x01638f7b, 0x03ade3d2, 0x02a2139e, 0x00016ea9}}, Y: Field{[10]uint32{0x01dca81d, 0x00756549, 0x00693cc0, 0x02a58055, 0x03b08a0c, 0x03909427, 0x02a75cd9, 0x014bc67c, 0x038310a3, 0x001c99dc}}}, + {X: Field{[10]uint32{0x02913d70, 0x015a2ea0, 0x0183c8f8, 0x00b365ba, 0x02f60d10, 0x004c6791, 0x034a6f3b, 0x01135add, 0x02b9321d, 0x0028fddf}}, Y: Field{[10]uint32{0x00613a05, 0x033ae397, 0x00077d3f, 0x0195dd1c, 0x00f6db17, 0x01afb074, 0x02386302, 0x039c3c6a, 0x01df8271, 0x003e4f5d}}}, + {X: Field{[10]uint32{0x03f2cf08, 0x02421371, 0x017db72f, 0x019baefa, 0x008588d7, 0x022ba7ce, 0x00fd62d6, 0x0249d0de, 0x02b5fa1f, 0x0011ae99}}, Y: Field{[10]uint32{0x038897f9, 0x02d77648, 0x0385b72d, 0x038bb3c1, 0x01f44bf7, 0x00ab5415, 0x01f9b555, 0x02e37e4b, 0x02243078, 0x000151cf}}}, + {X: Field{[10]uint32{0x0280dbf2, 0x034873b3, 0x02af4291, 0x01732865, 0x000bccb1, 0x01547eb4, 0x03415b6f, 0x000982ca, 0x0246ddcf, 0x0036da80}}, Y: Field{[10]uint32{0x00591d3c, 0x01645fca, 0x01c7ea98, 0x01bf9d78, 0x025f8885, 0x00f34259, 0x02c6f6f6, 0x00725e95, 0x0046f93e, 0x000e5b35}}}, + {X: Field{[10]uint32{0x026c8fa1, 0x00720d1b, 0x02e8c5cc, 0x02e19a64, 0x0338187e, 0x036e86c2, 0x012c4e58, 0x026368e6, 0x011ca7a2, 0x002e0be3}}, Y: Field{[10]uint32{0x01483461, 0x02d80d80, 0x03ee028e, 0x02254cf8, 0x02b1b805, 0x02dd9f1a, 0x00fdbddd, 0x0104f235, 0x036af9b0, 0x0012c2b9}}}, + {X: Field{[10]uint32{0x0085f000, 0x003c0631, 0x014a182e, 0x035edffe, 0x01d106fd, 0x02984a18, 0x00c6348a, 0x0192bfa7, 0x02a4dc92, 0x00111ba5}}, Y: Field{[10]uint32{0x01568440, 0x00cf7c26, 0x02507c8e, 0x0032984a, 0x012771c4, 0x033d9def, 0x0223b7ec, 0x00e9607f, 0x03d92159, 0x000cb7f8}}}, + {X: Field{[10]uint32{0x003a2eb9, 0x02874e4c, 0x01fb81ad, 0x01b3616f, 0x025c8a3e, 0x01941277, 0x0300ca34, 0x01b732e7, 0x03107bfa, 0x0000321b}}, Y: Field{[10]uint32{0x0034219d, 0x02b92b9f, 0x03ed888b, 0x01f92aa9, 0x019dcb27, 0x00c8d1d3, 0x0218c6a7, 0x0020502b, 0x00667e91, 0x003993dc}}}, + {X: Field{[10]uint32{0x036cd710, 0x017d6eb6, 0x01cdb83e, 0x02acc0a9, 0x009201c2, 0x000af9ee, 0x00d94cc2, 0x010a6793, 0x036ecda1, 0x002fb63a}}, Y: Field{[10]uint32{0x01411aac, 0x01226957, 0x01256708, 0x00f08250, 0x0116a1f0, 0x01a49d1b, 0x0367b9f6, 0x02903174, 0x00fab375, 0x00055cdb}}}, + {X: Field{[10]uint32{0x0364d38f, 0x0249b823, 0x02881da1, 0x014b7a0a, 0x00665e0a, 0x035d6520, 0x03171b5a, 0x02b44107, 0x03f2c5f6, 0x002cfbe9}}, Y: Field{[10]uint32{0x031677e6, 0x017eb23f, 0x013ffc53, 0x01840fed, 0x00b6dbd3, 0x03a6380d, 0x02b0dfaa, 0x00689003, 0x00843276, 0x000f7d8f}}}, + {X: Field{[10]uint32{0x0315cbd2, 0x03149749, 0x02921ebd, 0x0305947b, 0x018fa9af, 0x027850f8, 0x01213a84, 0x026d7c8d, 0x01a0cd86, 0x002c1183}}, Y: Field{[10]uint32{0x006fd7ee, 0x02ec486e, 0x00eee865, 0x017b3d8c, 0x0146b472, 0x02d5eca6, 0x033b4c02, 0x0061df39, 0x02adf354, 0x0030468f}}}, + {X: Field{[10]uint32{0x033bc071, 0x03b0f3b5, 0x0152a49c, 0x014e9f43, 0x00b49692, 0x00b58035, 0x00191871, 0x014afacb, 0x0117a174, 0x000a2c25}}, Y: Field{[10]uint32{0x0120a326, 0x01e90f7a, 0x01ae7fce, 0x0341a437, 0x0040ffd6, 0x0102bd65, 0x01635180, 0x01d64444, 0x0308073c, 0x000d9a59}}}, + {X: Field{[10]uint32{0x03b5f136, 0x02946c3e, 0x037536b1, 0x03f11c55, 0x020ad86a, 0x002fc5fe, 0x02e76b7c, 0x032d601e, 0x00d8192a, 0x001486fb}}, Y: Field{[10]uint32{0x01ac858d, 0x01ffa0dd, 0x026691dc, 0x003bb7cc, 0x02ee0671, 0x015145a0, 0x00f399e1, 0x03c4fb33, 0x00c6d7af, 0x00192295}}}, + {X: Field{[10]uint32{0x01f6cf67, 0x02dd87de, 0x01082368, 0x029ddb4e, 0x02a2a200, 0x0161f613, 0x009bca1b, 0x0275949b, 0x01d0b7fd, 0x002def06}}, Y: Field{[10]uint32{0x0370acae, 0x025ba347, 0x023ad2f7, 0x03fbfeff, 0x024a1e9f, 0x01cc58ed, 0x012c29a7, 0x03233d09, 0x02bee0d0, 0x0016b7be}}}, + {X: Field{[10]uint32{0x017aea8b, 0x00c7c34e, 0x03114dc9, 0x01b704f9, 0x0066db7b, 0x0055633b, 0x030c2412, 0x02a35507, 0x03e51b6c, 0x0039238e}}, Y: Field{[10]uint32{0x020f28ac, 0x01079f83, 0x004314bf, 0x00fbe7dd, 0x01f6cb3a, 0x03c4ad19, 0x03064bff, 0x038bc4c3, 0x03575b16, 0x0036f3d8}}}, + {X: Field{[10]uint32{0x03455751, 0x03d0a427, 0x028909b2, 0x02d65d67, 0x014ec795, 0x038a3ca9, 0x02475968, 0x024a9a8c, 0x02de71c6, 0x0000e571}}, Y: Field{[10]uint32{0x0269a13d, 0x030b2169, 0x003c3fcf, 0x0391266f, 0x03b5b097, 0x02b28557, 0x02ed4e15, 0x03768b07, 0x011803c7, 0x003b9780}}}, + {X: Field{[10]uint32{0x02808d99, 0x01814af2, 0x009a81a6, 0x02aa293a, 0x02663da3, 0x0303fb0d, 0x03412919, 0x010e6489, 0x02c3b118, 0x000a24e2}}, Y: Field{[10]uint32{0x03174603, 0x002e6193, 0x025f8031, 0x0256e87a, 0x00da1682, 0x0032e684, 0x03eadb18, 0x0306fa8a, 0x027ab1eb, 0x0012ba37}}}, + {X: Field{[10]uint32{0x0248f5a4, 0x00fb9ad4, 0x036f5852, 0x013f428d, 0x03be3af6, 0x0389fa14, 0x01472f23, 0x0233d881, 0x021895e8, 0x0001703d}}, Y: Field{[10]uint32{0x004be51b, 0x02c70f79, 0x02624b41, 0x0360d107, 0x038473e3, 0x03f6d43e, 0x03634569, 0x03aecedc, 0x0055cd09, 0x002f970f}}}, + {X: Field{[10]uint32{0x023ca1d7, 0x01536b17, 0x02ec0015, 0x004c7ae8, 0x02ae2e8f, 0x01fb416e, 0x028e125f, 0x03dccfb4, 0x03bf22d0, 0x002af87d}}, Y: Field{[10]uint32{0x02b0ab4e, 0x02a8b106, 0x02ffc918, 0x02d656ba, 0x03e553e6, 0x0265b2cc, 0x008ffe4b, 0x007daa5c, 0x00db3de3, 0x000a9692}}}, + {X: Field{[10]uint32{0x008d8be7, 0x03f4a738, 0x02349bcc, 0x03b110a9, 0x015f1dbe, 0x0298244a, 0x0124907e, 0x01c2cde4, 0x002757d3, 0x0030c109}}, Y: Field{[10]uint32{0x01868934, 0x01d73a6c, 0x031448bb, 0x0304a7a3, 0x01528959, 0x02326047, 0x01b35e2f, 0x0369d54d, 0x02b33e0f, 0x0019e993}}}, + {X: Field{[10]uint32{0x0140f5b8, 0x014cbf8c, 0x01c21c81, 0x0119abd0, 0x03031527, 0x038690fd, 0x02f0b6a9, 0x008675de, 0x0146356f, 0x00196966}}, Y: Field{[10]uint32{0x00f35918, 0x00e9871d, 0x0241f246, 0x0164f611, 0x001692b0, 0x001c3688, 0x00cf27fc, 0x013e8146, 0x028d5d3e, 0x001939c4}}}, + {X: Field{[10]uint32{0x001413e2, 0x03ad4fc5, 0x0219ede2, 0x02df536b, 0x0060311c, 0x02e67684, 0x03066f2b, 0x02321d1a, 0x023b4842, 0x001b1f4b}}, Y: Field{[10]uint32{0x00b7e3a1, 0x0192f2db, 0x007ab2a6, 0x03f8a3df, 0x03286292, 0x03b5ece0, 0x022864d1, 0x0319c137, 0x03bfc2e7, 0x00012e91}}}, + {X: Field{[10]uint32{0x03fdcdd9, 0x033d63a4, 0x019cf44a, 0x01fe914e, 0x03565579, 0x0324ffd5, 0x03798a9b, 0x02270ad1, 0x03bdb99c, 0x00037495}}, Y: Field{[10]uint32{0x01b3e4af, 0x00ab8db0, 0x020cc1af, 0x02058e43, 0x03e8194f, 0x010a2440, 0x027e0d71, 0x01fc954b, 0x00f2a920, 0x003e359c}}}, + {X: Field{[10]uint32{0x00c23d7b, 0x02ad79bb, 0x0263eb2a, 0x01f2c23c, 0x026827b8, 0x03351f18, 0x0152b8fa, 0x0310910a, 0x034eb8dd, 0x00094580}}, Y: Field{[10]uint32{0x0216ac9e, 0x031d6858, 0x02826433, 0x00d12d21, 0x00bd2ab5, 0x01cc774c, 0x03545bca, 0x03a81eb4, 0x0079f5fe, 0x002b63a2}}}, + {X: Field{[10]uint32{0x0134246d, 0x037382b6, 0x0180b907, 0x00559646, 0x017f0752, 0x00847b70, 0x01834b38, 0x02478ec6, 0x005427b5, 0x001f9c8c}}, Y: Field{[10]uint32{0x0263a71f, 0x020051d3, 0x034e33b0, 0x03a38c91, 0x032506be, 0x00261d82, 0x01671df1, 0x02129bc8, 0x00bbd8c1, 0x0017247f}}}, + {X: Field{[10]uint32{0x01d1898b, 0x0174e65b, 0x0333e72b, 0x01ffbe77, 0x038d4fb5, 0x0169bdae, 0x03876914, 0x0034a812, 0x0116ac3c, 0x0006c7e7}}, Y: Field{[10]uint32{0x035b4b1b, 0x034299fc, 0x01bd1024, 0x014e5146, 0x0215e944, 0x01890696, 0x00a399e1, 0x039142c5, 0x031e05ff, 0x001910af}}}, + {X: Field{[10]uint32{0x00872f2b, 0x001b18ff, 0x01a23e90, 0x01364f14, 0x0265b514, 0x02598c71, 0x039f6715, 0x03a90e8e, 0x024e57cd, 0x00383c7e}}, Y: Field{[10]uint32{0x0332e564, 0x02705dab, 0x018640a4, 0x037b349f, 0x0374f9a3, 0x00547751, 0x02056170, 0x003450bd, 0x01fb5489, 0x00320e14}}}, + {X: Field{[10]uint32{0x02728c3a, 0x0284bacc, 0x03d0b3e9, 0x009e675e, 0x0040efa0, 0x00a8281e, 0x01a3667b, 0x02082894, 0x03bb697c, 0x0002ba56}}, Y: Field{[10]uint32{0x03aebb41, 0x016c521a, 0x03f10e68, 0x0371ee00, 0x011140e0, 0x016b9427, 0x02a4da94, 0x0025b61b, 0x02970280, 0x003836ee}}}, + {X: Field{[10]uint32{0x002aed31, 0x00d01d9a, 0x01b3069e, 0x02b9b9fc, 0x030afad1, 0x014ffe30, 0x02529ea8, 0x03d0b07f, 0x0085d52e, 0x003f23fe}}, Y: Field{[10]uint32{0x01e3dd14, 0x0382992c, 0x00850433, 0x01c50cab, 0x0209cced, 0x00d5b406, 0x0104f1b3, 0x023d89ee, 0x02d4b26e, 0x001497b3}}}, + {X: Field{[10]uint32{0x02c8e810, 0x0272accc, 0x02546c62, 0x00f04d94, 0x00ed68d6, 0x02a59683, 0x01b57533, 0x01896835, 0x036a459d, 0x001984c4}}, Y: Field{[10]uint32{0x015b65cb, 0x02614ed9, 0x0069b93a, 0x00050049, 0x0228b4cb, 0x02c5a2f4, 0x01732b43, 0x002a52cf, 0x03f824d3, 0x00043ca7}}}, + {X: Field{[10]uint32{0x01ea56f0, 0x03d68df7, 0x01b91f24, 0x0107daf8, 0x0319dda8, 0x01bbced8, 0x02309b39, 0x00cc9f1d, 0x01157b68, 0x00114216}}, Y: Field{[10]uint32{0x01956821, 0x01d953e4, 0x02a12bbc, 0x02fed2c6, 0x032b6ebb, 0x0023569a, 0x0155e34f, 0x022391a8, 0x0046584a, 0x002e69c5}}}, + {X: Field{[10]uint32{0x008a4325, 0x00bcfddf, 0x0064f0e3, 0x013089d1, 0x01be58af, 0x035785c4, 0x0382576c, 0x02e8377a, 0x03bd8f10, 0x0005a3b8}}, Y: Field{[10]uint32{0x0278b34c, 0x01d08099, 0x0388668b, 0x02116082, 0x00465fb1, 0x020be1c0, 0x016891c9, 0x01027ea4, 0x026343ff, 0x001bbbc7}}}, + {X: Field{[10]uint32{0x03048c04, 0x0009c53b, 0x0131b718, 0x013181de, 0x00fdd86b, 0x02c800f9, 0x034db8de, 0x008d053a, 0x0197763c, 0x002cc647}}, Y: Field{[10]uint32{0x02152edd, 0x016a0f30, 0x00a04f88, 0x0358ddc4, 0x03ce6860, 0x03af7570, 0x03d53d83, 0x01d72af9, 0x008559f9, 0x002d2b0c}}}, + {X: Field{[10]uint32{0x022f8738, 0x0280898e, 0x0096a51e, 0x03f3c804, 0x033ec477, 0x03a4fd2e, 0x032acca1, 0x03724cf1, 0x005b4e73, 0x0036a757}}, Y: Field{[10]uint32{0x0012f8aa, 0x02cc826a, 0x015b50b4, 0x03422c28, 0x01400c05, 0x018d9944, 0x01b93b0d, 0x019b0da2, 0x02da65f9, 0x001feda8}}}, + {X: Field{[10]uint32{0x00b0dd66, 0x0196f339, 0x0215c01e, 0x02825538, 0x008d1cfa, 0x0314991c, 0x011730f0, 0x0159e05e, 0x01d2a7e7, 0x00050395}}, Y: Field{[10]uint32{0x0153d5b3, 0x00165042, 0x0118bce8, 0x0397225e, 0x0087e2d5, 0x03bcd8c6, 0x02470d81, 0x00965e47, 0x00d863ea, 0x0012fee8}}}, + {X: Field{[10]uint32{0x02b173d8, 0x00e67ac5, 0x00a1cf3f, 0x03e198d1, 0x03b438f7, 0x03f8f62f, 0x029bd01b, 0x03321f3b, 0x00f64b95, 0x00056a73}}, Y: Field{[10]uint32{0x03b33f3b, 0x018f2366, 0x03f90e03, 0x0269b946, 0x035d0ba5, 0x002cc6a4, 0x01e51fbf, 0x03b49581, 0x02cdbdeb, 0x0013d51c}}}, + {X: Field{[10]uint32{0x00af6e06, 0x032a8f62, 0x0088f814, 0x0244b42a, 0x00c7ed5e, 0x02b4606f, 0x033d3d8f, 0x01c076de, 0x024b6776, 0x003a1b8d}}, Y: Field{[10]uint32{0x01ea7b92, 0x0130d5d3, 0x00915f83, 0x03452989, 0x0124a466, 0x018a1a62, 0x0195518c, 0x001034fa, 0x00600afc, 0x00008bf5}}}, + {X: Field{[10]uint32{0x02500eb6, 0x020beb96, 0x03ddbfc2, 0x00ea9b56, 0x03b1f81d, 0x008faf39, 0x021134c7, 0x03c36c8c, 0x0298cd25, 0x000f0986}}, Y: Field{[10]uint32{0x03abd9c1, 0x00d7f15d, 0x02cbc455, 0x001b7abb, 0x004027a5, 0x0325a99b, 0x00b6ed7e, 0x02084629, 0x01455e49, 0x000ae348}}}, + {X: Field{[10]uint32{0x00c955c8, 0x0151bb7d, 0x0300bd66, 0x017408e0, 0x00368c3b, 0x01deab3f, 0x03b1f6c1, 0x02d45db2, 0x00114d55, 0x00126daa}}, Y: Field{[10]uint32{0x03815b94, 0x00d60e28, 0x01bca5b5, 0x0044e475, 0x020ab944, 0x03c6c2ca, 0x038e0017, 0x039f041a, 0x00a409f0, 0x00346c49}}}, + {X: Field{[10]uint32{0x0125f6b9, 0x02a36b31, 0x03f71f34, 0x007fde90, 0x016cee80, 0x003312e0, 0x01deab62, 0x039694fe, 0x0061f0d3, 0x001bb23a}}, Y: Field{[10]uint32{0x02dcfd6a, 0x00006ae9, 0x02e27782, 0x01c718fe, 0x011e01a8, 0x02dad7ac, 0x009c4f7e, 0x02bef4cc, 0x005b68cc, 0x0010b815}}}, + {X: Field{[10]uint32{0x0195b9ac, 0x02262a91, 0x03e1ac08, 0x015d1903, 0x004b527e, 0x023c5369, 0x005a2e2a, 0x02973f4c, 0x034159ac, 0x001cd0ac}}, Y: Field{[10]uint32{0x03160124, 0x01748d14, 0x01ac121b, 0x0102b21b, 0x0127f64f, 0x03a984a0, 0x03969a84, 0x00bb88d8, 0x0302d244, 0x002d4984}}}, + {X: Field{[10]uint32{0x02686fa9, 0x034c2e56, 0x0054b687, 0x015e9827, 0x00b27477, 0x03c9a59f, 0x01cfc43d, 0x00d42d97, 0x00bd54ef, 0x00210acc}}, Y: Field{[10]uint32{0x0336ead6, 0x016b20fc, 0x0277b9cc, 0x01f1c79f, 0x037d594f, 0x01723795, 0x0331f63f, 0x00dae7b3, 0x02922caa, 0x0013fea7}}}, + {X: Field{[10]uint32{0x01f94862, 0x02381306, 0x02153999, 0x0028fa46, 0x037c13bb, 0x0255d5fb, 0x03fb60d4, 0x029f1ef0, 0x035dd589, 0x000b6e90}}, Y: Field{[10]uint32{0x028cc0a1, 0x03522257, 0x013ed55c, 0x0171f7e1, 0x00931d3e, 0x01dd7940, 0x038eca16, 0x00f2e748, 0x020ea4b2, 0x0031101c}}}, + {X: Field{[10]uint32{0x033bec02, 0x034f1171, 0x01c07998, 0x02f4f40d, 0x02bb284f, 0x0064e42f, 0x035a4578, 0x03396ca9, 0x01248f84, 0x002747a1}}, Y: Field{[10]uint32{0x00eb9ead, 0x0201d325, 0x03f40129, 0x033e126f, 0x036d62e8, 0x02a018fc, 0x038bbc84, 0x0332b08c, 0x024cc935, 0x0023903b}}}, + {X: Field{[10]uint32{0x00b441af, 0x0158b4b6, 0x01cf4e76, 0x008d8b89, 0x019a7f86, 0x005525d5, 0x03639121, 0x029d6f53, 0x02c5d1fb, 0x00349cd6}}, Y: Field{[10]uint32{0x01afc081, 0x023ecd9f, 0x0331da1d, 0x01b4727e, 0x01b4ade8, 0x02d4bcf9, 0x037cb0e5, 0x03cce5de, 0x003619f9, 0x0002f4ab}}}, + {X: Field{[10]uint32{0x00a3e11a, 0x00eb7fac, 0x017cdca6, 0x025b82a5, 0x01b27c2b, 0x015ca4e5, 0x01a68d31, 0x03fc4eb4, 0x0238f46c, 0x002c04c3}}, Y: Field{[10]uint32{0x006aa3c4, 0x01666803, 0x001b5535, 0x00590d9b, 0x02610f15, 0x02c45dda, 0x02ff8443, 0x0100721f, 0x017f4a61, 0x000f67da}}}, + {X: Field{[10]uint32{0x01ec76a7, 0x00b99a0d, 0x02caaed8, 0x01e0a650, 0x03f59faa, 0x02e277a2, 0x022d8f33, 0x01abe2d9, 0x022f1530, 0x00382a81}}, Y: Field{[10]uint32{0x015e6f2e, 0x01115fb0, 0x0218179a, 0x015097f1, 0x0334305b, 0x02b260e1, 0x01ffb8ac, 0x01cc1297, 0x00b56ea7, 0x00317d7c}}}, + {X: Field{[10]uint32{0x019432d5, 0x012f42c0, 0x004139f4, 0x021665eb, 0x002156d6, 0x03a61d7b, 0x03e15c4a, 0x03472461, 0x02c1a8e6, 0x003b4589}}, Y: Field{[10]uint32{0x01f0c35d, 0x01410a5c, 0x00d7e69d, 0x011b164e, 0x037f0fad, 0x039cdcfd, 0x035e531e, 0x0128fd08, 0x015b9dcb, 0x000f0362}}}, + {X: Field{[10]uint32{0x01c92833, 0x034bb413, 0x00be8431, 0x036e1b81, 0x00664744, 0x01325d3e, 0x0025aa67, 0x03f6be33, 0x00314e18, 0x0028b333}}, Y: Field{[10]uint32{0x0359d71c, 0x00e9d3f1, 0x038a846c, 0x02230190, 0x002e1b9c, 0x019cbd79, 0x00e55368, 0x01c7bb48, 0x0249d6d4, 0x002d9043}}}, + {X: Field{[10]uint32{0x0268bf27, 0x03d9d6fd, 0x0331fa35, 0x0018f552, 0x00b3b24e, 0x00b65aa2, 0x0319119b, 0x03d8b12b, 0x012fdb15, 0x0016ff06}}, Y: Field{[10]uint32{0x03d99051, 0x02786611, 0x0223b609, 0x01890087, 0x02dbe0dc, 0x03d8a8e2, 0x0031bb39, 0x03850241, 0x0374acb4, 0x00119dd0}}}, + {X: Field{[10]uint32{0x01227028, 0x02ad7c02, 0x0090e97d, 0x015621ab, 0x0161eb21, 0x01fbec02, 0x022e5539, 0x031010ca, 0x0289da73, 0x0019a10a}}, Y: Field{[10]uint32{0x01941de9, 0x00602448, 0x02f4e90b, 0x031a2726, 0x01da171b, 0x00405b36, 0x012dc9df, 0x02812223, 0x03c3511e, 0x000ea3a0}}}, + {X: Field{[10]uint32{0x01c516e8, 0x001d9af3, 0x002f7181, 0x0137564d, 0x03e3a4a8, 0x03ba2e4a, 0x01f89913, 0x017e6351, 0x01973ba9, 0x003b208c}}, Y: Field{[10]uint32{0x037206fe, 0x0097866a, 0x032aef1d, 0x01b6b265, 0x0177d547, 0x02a54ed7, 0x033bc882, 0x00fd3865, 0x0079f511, 0x0014cb4f}}}, + {X: Field{[10]uint32{0x02fc140b, 0x009467dc, 0x007ad1ac, 0x01b0caac, 0x03e8e8e2, 0x03cfb4e7, 0x015e5b65, 0x0185dabb, 0x0278bc51, 0x000ed97f}}, Y: Field{[10]uint32{0x00208d98, 0x03deb7e6, 0x02c1b9c9, 0x035cc533, 0x02566a1f, 0x019be577, 0x037f9764, 0x03ae704f, 0x02de5190, 0x00215b4d}}}, + {X: Field{[10]uint32{0x018cc346, 0x01880db4, 0x03945182, 0x02cc9c8a, 0x01f9f31e, 0x00ff7402, 0x02545ce8, 0x00d497a7, 0x02ca51c4, 0x0000eb03}}, Y: Field{[10]uint32{0x0213a7e6, 0x00c092a8, 0x01e509ab, 0x0322c4d3, 0x00325beb, 0x01038251, 0x004ef313, 0x02933cc9, 0x018bc3b2, 0x00371c80}}}, + {X: Field{[10]uint32{0x02e23508, 0x014e810b, 0x0172ffbe, 0x02e6ed42, 0x00bcdac8, 0x005f66f8, 0x012db7c2, 0x03b39bb7, 0x018d6c50, 0x00124a59}}, Y: Field{[10]uint32{0x02cec38a, 0x012f642a, 0x00c3a728, 0x03e35e84, 0x016dfc8d, 0x008ca1d0, 0x0155980a, 0x02ef52e1, 0x002c61aa, 0x00396b29}}}, + {X: Field{[10]uint32{0x013a6291, 0x002ad6c5, 0x022781d6, 0x02ad2469, 0x037830e2, 0x031b48a5, 0x029e7488, 0x01924bc3, 0x036f4bc9, 0x002745b9}}, Y: Field{[10]uint32{0x015ac7ab, 0x0099bb22, 0x01711da7, 0x0228113a, 0x015eaa98, 0x01dc2bbd, 0x00363189, 0x01a48815, 0x0300e4ac, 0x00399643}}}, + {X: Field{[10]uint32{0x035df94d, 0x026cae07, 0x0276d5e0, 0x01a89f01, 0x014e13b3, 0x03fe5eb7, 0x02a9bbe7, 0x039febd4, 0x004a1327, 0x002c1927}}, Y: Field{[10]uint32{0x0091acdd, 0x01570f0e, 0x02d120b3, 0x00206981, 0x02d79fdd, 0x01fdd6a2, 0x032a0807, 0x01a12381, 0x0316a6f3, 0x00264720}}}, + {X: Field{[10]uint32{0x0052235d, 0x0304af6c, 0x013c96b7, 0x03d817f8, 0x03eb39a8, 0x0129285a, 0x01ce51c4, 0x00f7b4b2, 0x0221f630, 0x0023c652}}, Y: Field{[10]uint32{0x0330739e, 0x015749a5, 0x030f1bd7, 0x00b3b7f9, 0x01c63517, 0x0268b721, 0x01afb23e, 0x020b8951, 0x03d0c9af, 0x002f477c}}}, + {X: Field{[10]uint32{0x03e21ff0, 0x021fc77b, 0x0262a60e, 0x00871b08, 0x033872b7, 0x03579996, 0x037f6c3d, 0x0133651d, 0x0297cc7a, 0x000769c6}}, Y: Field{[10]uint32{0x00be6a06, 0x03411a01, 0x026e87f0, 0x03a19a8f, 0x030a4d30, 0x009cebfa, 0x032b9af1, 0x01b869eb, 0x02413903, 0x001e345e}}}, + {X: Field{[10]uint32{0x0386aa45, 0x01ebcf37, 0x0290f7a3, 0x006ec604, 0x03e04e40, 0x0148a471, 0x02fabb1c, 0x03c98b4f, 0x0363e493, 0x00027fb4}}, Y: Field{[10]uint32{0x003de729, 0x03fe0d9c, 0x00d6cb3f, 0x00da437f, 0x0353a54f, 0x02972597, 0x01b18276, 0x02b7fefb, 0x033ee164, 0x0004c330}}}, + {X: Field{[10]uint32{0x03a1e49f, 0x01d6a1e9, 0x0298febb, 0x00eb079e, 0x007a601a, 0x032ed850, 0x01ebc38f, 0x00d5a066, 0x00cd221c, 0x003459bb}}, Y: Field{[10]uint32{0x0072f06e, 0x0257dda8, 0x003c9937, 0x01f33952, 0x00b0628c, 0x0152150d, 0x00ec5628, 0x0002f577, 0x02b7e7c2, 0x00098888}}}, + {X: Field{[10]uint32{0x01dbe0fd, 0x002482a3, 0x035cc293, 0x01b8e4d0, 0x02b998a5, 0x02528ba3, 0x03078392, 0x01c30730, 0x00bd3e37, 0x0039e14f}}, Y: Field{[10]uint32{0x000e5a8e, 0x00503da6, 0x0050b80a, 0x02c63e92, 0x00cff1e7, 0x0008f0ef, 0x01d29181, 0x01f31259, 0x02ca6714, 0x001e5df9}}}, + {X: Field{[10]uint32{0x0227a17f, 0x03d27158, 0x03511480, 0x039c108f, 0x0251036c, 0x02c687c0, 0x02a3cd56, 0x000804af, 0x02b1cb14, 0x002a2c3f}}, Y: Field{[10]uint32{0x01ba8a9f, 0x02773e9d, 0x037b527c, 0x02483225, 0x0367afe7, 0x00e00723, 0x00eedd6d, 0x02db6db3, 0x03db9d3a, 0x003335f0}}}, + {X: Field{[10]uint32{0x02d617d7, 0x0167db15, 0x02b26c90, 0x001aa11a, 0x006d02e4, 0x013d62e6, 0x02905797, 0x015d54c7, 0x01d9e181, 0x0015f397}}, Y: Field{[10]uint32{0x02142d14, 0x006b18ff, 0x01bc4e85, 0x03c97bf2, 0x01829f61, 0x02a3e6bb, 0x01598f8a, 0x03cc589a, 0x00904399, 0x00330d30}}}, + {X: Field{[10]uint32{0x00f9c858, 0x02e61bf4, 0x02f2d6c8, 0x031b2fc0, 0x008077b6, 0x0196acf9, 0x03bbc1d3, 0x03f1b6fb, 0x00b64f60, 0x0011e5e4}}, Y: Field{[10]uint32{0x007f2f9b, 0x022cd582, 0x03f435df, 0x006a57a6, 0x025cff91, 0x00f923e9, 0x025382ae, 0x00649774, 0x0182e358, 0x00055fd2}}}, + {X: Field{[10]uint32{0x03f17c68, 0x019421ff, 0x03b1ccb2, 0x0328f2cd, 0x008ee0a0, 0x004ef9db, 0x001b6228, 0x00290486, 0x007b1ffe, 0x000156af}}, Y: Field{[10]uint32{0x0171d99f, 0x03b7532a, 0x032d669b, 0x02fe0a0f, 0x01606272, 0x02877496, 0x039e6030, 0x01314d33, 0x024923e9, 0x002f44d0}}}, + {X: Field{[10]uint32{0x00d2e659, 0x019ce509, 0x011da1dc, 0x03807514, 0x02bd3156, 0x0397dc27, 0x004d4310, 0x0359eae0, 0x00328bf5, 0x001b29f8}}, Y: Field{[10]uint32{0x02ca2647, 0x008815d7, 0x01a69077, 0x03d1b4ac, 0x00d80aaa, 0x03e1c360, 0x011c2ff2, 0x00e42595, 0x0133f368, 0x00310a2c}}}, + {X: Field{[10]uint32{0x01f530d3, 0x0167a44b, 0x014dd999, 0x03ba706b, 0x02346ae4, 0x02ebea2c, 0x03d20baf, 0x0021b132, 0x01a983e9, 0x001837c6}}, Y: Field{[10]uint32{0x0379cc48, 0x022dec0e, 0x01e31d7a, 0x03e211c0, 0x01a09d60, 0x0393a393, 0x01c2f1e0, 0x005e8108, 0x005429f8, 0x0036b9ee}}}, + {X: Field{[10]uint32{0x03686bce, 0x009b5b74, 0x012c7e1d, 0x00141ae9, 0x035c22ff, 0x01668e11, 0x0180ea1c, 0x03cab6eb, 0x010e5ef5, 0x001bc635}}, Y: Field{[10]uint32{0x00d7d7a9, 0x00cdab7c, 0x038f513a, 0x01756d15, 0x00d3f340, 0x030de1b8, 0x00f5c83b, 0x03bf43eb, 0x020fa166, 0x003475fa}}}, + {X: Field{[10]uint32{0x03d949e0, 0x03a281cb, 0x01233b3b, 0x00399796, 0x01fcdfe0, 0x0377ba76, 0x009569a8, 0x004cd92b, 0x009d5ed5, 0x002d8d37}}, Y: Field{[10]uint32{0x0331db69, 0x01b40dba, 0x021a70e8, 0x01d9958a, 0x02fdf189, 0x0370d15b, 0x01a505cb, 0x0095d7c9, 0x02e2c61b, 0x0035cb91}}}, + {X: Field{[10]uint32{0x03445910, 0x0159bf65, 0x00f0e4fc, 0x020da7d7, 0x0340d919, 0x00f6f16a, 0x02461714, 0x0093cf99, 0x00f02dba, 0x00168dff}}, Y: Field{[10]uint32{0x01c69d1e, 0x010918dd, 0x00b59c33, 0x00f4a5d7, 0x0333e615, 0x00531e11, 0x02a95826, 0x01d1b198, 0x01d813f8, 0x002a5834}}}, + {X: Field{[10]uint32{0x0112661c, 0x00eb86fc, 0x029e11b8, 0x023c6aac, 0x01eeeb8f, 0x0065b63f, 0x00201b6b, 0x0200cb18, 0x02a73731, 0x0022abc5}}, Y: Field{[10]uint32{0x039a8e44, 0x02ead22a, 0x0215d611, 0x025661f1, 0x036d03a7, 0x0117cab9, 0x03cc0c28, 0x02929d58, 0x035666a3, 0x0031187b}}}, + {X: Field{[10]uint32{0x035e3434, 0x012e2bab, 0x0004d9cd, 0x024d0b0a, 0x011d85a6, 0x001ca711, 0x03e7f49e, 0x0057bf64, 0x03a5a05f, 0x00115bc2}}, Y: Field{[10]uint32{0x0311cad5, 0x01fb2c9c, 0x0135bb0f, 0x02f612e4, 0x0213f616, 0x00c10785, 0x006da131, 0x006a2dfd, 0x00a99922, 0x0029a03d}}}, + {X: Field{[10]uint32{0x00f5c741, 0x02cd32ce, 0x0170a9d0, 0x003e85e2, 0x014bfdc9, 0x00784b2e, 0x03146d93, 0x015025d7, 0x02a1f190, 0x003e270d}}, Y: Field{[10]uint32{0x0044099b, 0x0348dd67, 0x01646579, 0x0233ad28, 0x034b1df3, 0x0307fe8e, 0x01866159, 0x006e4a84, 0x008058e3, 0x000ed58b}}}, + {X: Field{[10]uint32{0x01f3f76a, 0x030940d0, 0x004289d2, 0x0398cbcc, 0x00e23876, 0x035a73ed, 0x00c49031, 0x02180036, 0x03112e1d, 0x001fdafa}}, Y: Field{[10]uint32{0x00ff4a9b, 0x03743b29, 0x02fb90cd, 0x035ba33d, 0x0008d98e, 0x00589ee6, 0x0194b9b5, 0x016bf2fa, 0x0007c092, 0x002864dd}}}, + {X: Field{[10]uint32{0x02d73511, 0x03718184, 0x000d3827, 0x010c653d, 0x011010f5, 0x03475400, 0x037130ba, 0x031f0de2, 0x00aab585, 0x002416b4}}, Y: Field{[10]uint32{0x037177a9, 0x02e00942, 0x018aab83, 0x007e8b82, 0x00a44782, 0x024745b5, 0x00130aee, 0x0334e054, 0x0301c3dd, 0x002ff381}}}, + {X: Field{[10]uint32{0x03408b6c, 0x0145487d, 0x032aef1d, 0x03d1d542, 0x01e54187, 0x02d80cf4, 0x001e7a30, 0x00bf29c8, 0x02d16212, 0x003d5670}}, Y: Field{[10]uint32{0x00154481, 0x0059eb4d, 0x017f25dc, 0x0108e33b, 0x037695ea, 0x00c4209c, 0x02f04dc4, 0x03ac51fd, 0x0222dfd0, 0x000fc435}}}, + {X: Field{[10]uint32{0x018ce8b4, 0x0364741c, 0x023456f4, 0x00330d85, 0x037c0d8a, 0x022fb7d4, 0x02e5830a, 0x00527332, 0x00a4fa17, 0x00066cca}}, Y: Field{[10]uint32{0x02582f64, 0x01134127, 0x00855126, 0x0024975a, 0x01fdff7f, 0x039e19de, 0x01258838, 0x01a48da6, 0x000a2a4e, 0x0026873a}}}, + {X: Field{[10]uint32{0x01ad5d4a, 0x024d922b, 0x03e533a3, 0x03d02487, 0x032743d4, 0x0069a82f, 0x00abc24c, 0x0066f3af, 0x00a0e756, 0x002beae6}}, Y: Field{[10]uint32{0x023a32db, 0x034e6fa4, 0x017157df, 0x038c4f5d, 0x007c8e5b, 0x007ca684, 0x0341c092, 0x00e695e5, 0x02877591, 0x002fc6ce}}}, + {X: Field{[10]uint32{0x024181c7, 0x0247f63b, 0x01085cca, 0x03ba05db, 0x01b2dfe0, 0x020ea3b2, 0x01b36d9c, 0x028d36b7, 0x037c1d86, 0x0030b2af}}, Y: Field{[10]uint32{0x0191070f, 0x0349ea93, 0x032acf51, 0x0143a725, 0x01159ab1, 0x03b3ae3d, 0x00465bd6, 0x00cd71c9, 0x032453f1, 0x0016ccad}}}, + {X: Field{[10]uint32{0x0289f593, 0x035b3f0a, 0x02be4f5a, 0x03e8b068, 0x024f6e9c, 0x03050d57, 0x028c5347, 0x01d148a6, 0x00248e84, 0x0024a0e5}}, Y: Field{[10]uint32{0x008c3a07, 0x02285c5f, 0x02996c88, 0x0057594b, 0x0051983b, 0x011bebda, 0x00a7b4a1, 0x03b81a67, 0x005dfd41, 0x002ee716}}}, + {X: Field{[10]uint32{0x033c7dfa, 0x030c3431, 0x03b4aa8d, 0x004b4327, 0x0155e55f, 0x005ef5eb, 0x00cba646, 0x03c61082, 0x013c389e, 0x002f28a1}}, Y: Field{[10]uint32{0x01df63a2, 0x02235e78, 0x01340175, 0x00b80799, 0x02fe9a14, 0x01a98bee, 0x005952b1, 0x03b7b4f5, 0x009ef32a, 0x0027d04a}}}, + {X: Field{[10]uint32{0x01bf56fd, 0x013ca05c, 0x037e4a0e, 0x02f4df29, 0x015745b7, 0x03399cb1, 0x0353aea5, 0x0196a3af, 0x03da94b5, 0x00293a9e}}, Y: Field{[10]uint32{0x013e96bc, 0x03339aa2, 0x00fb0970, 0x00c4deec, 0x02629eef, 0x00b1654f, 0x01e1a284, 0x03aa426e, 0x00851405, 0x0032541d}}}, + {X: Field{[10]uint32{0x00d5e169, 0x0139e318, 0x03b1ff75, 0x022a149e, 0x03da57c1, 0x02268900, 0x0327ced0, 0x004e7b5c, 0x0145af71, 0x001c5c1f}}, Y: Field{[10]uint32{0x00223ef9, 0x037a75c4, 0x0185f1b9, 0x00e7f4f1, 0x013eef0f, 0x01691df7, 0x034e4a85, 0x029bce8f, 0x0084fe4d, 0x00092cd9}}}, + {X: Field{[10]uint32{0x03df9a05, 0x029c1b93, 0x028c07dd, 0x03db5cc8, 0x015b1f5f, 0x01ae3fd4, 0x01cf4d23, 0x03d64675, 0x02030296, 0x0014b077}}, Y: Field{[10]uint32{0x02344d0e, 0x0074d356, 0x03c5135d, 0x00524181, 0x01c95097, 0x0368ede1, 0x00066e4f, 0x0355d0e1, 0x01590d73, 0x0036e563}}}, + {X: Field{[10]uint32{0x0368912f, 0x007a9888, 0x03120d8b, 0x001f7e09, 0x0374dc20, 0x02f32ee1, 0x0291989c, 0x03a114c1, 0x00b07852, 0x001ec270}}, Y: Field{[10]uint32{0x002bd263, 0x0027a13e, 0x01f3be9c, 0x01736a5e, 0x0109545a, 0x01e0ae93, 0x02ebeeb0, 0x00a05f43, 0x0317ffc5, 0x0013b7d5}}}, + {X: Field{[10]uint32{0x03b8300a, 0x031a277f, 0x02540681, 0x01899acc, 0x03f26e70, 0x038ecf00, 0x00088343, 0x0346a0af, 0x00ceb29a, 0x003a661c}}, Y: Field{[10]uint32{0x01597f9f, 0x01e16a33, 0x00fadc6f, 0x00f6448c, 0x008ff75e, 0x005345ea, 0x0012dbc6, 0x01f596f3, 0x01927894, 0x0020202b}}}, + {X: Field{[10]uint32{0x005c38e7, 0x00e90d08, 0x02444adc, 0x02f4ae44, 0x022dd2c2, 0x00f5317b, 0x01b4cb9c, 0x0204e617, 0x026de28b, 0x0031f88c}}, Y: Field{[10]uint32{0x02ad940e, 0x02fd7871, 0x0099d195, 0x023150f6, 0x01d31adf, 0x005df3c1, 0x0387000e, 0x0332547e, 0x03f9cdc0, 0x0017ca18}}}, + {X: Field{[10]uint32{0x023f7965, 0x026d574f, 0x02244119, 0x01ad7a94, 0x014c6bb6, 0x023ee922, 0x0186bfd2, 0x02f5e0f1, 0x02c84ca7, 0x00220d65}}, Y: Field{[10]uint32{0x00e9282e, 0x01af3896, 0x03ac6940, 0x016da3b3, 0x0147a22f, 0x00a516b2, 0x02d6d4a7, 0x017c4325, 0x03e85925, 0x003ec452}}}, + {X: Field{[10]uint32{0x020b42cc, 0x03adf8fc, 0x02dcf7ff, 0x0165794c, 0x035cf616, 0x01f95b9f, 0x03029dd3, 0x0103d6c3, 0x0248a196, 0x001fdce9}}, Y: Field{[10]uint32{0x00ff4feb, 0x013fea20, 0x0107f4a9, 0x006e7565, 0x0108ef19, 0x028ed09b, 0x022df3eb, 0x02bb7ed3, 0x008af931, 0x0013dd89}}}, + {X: Field{[10]uint32{0x0341aa3d, 0x030e0aa5, 0x015bddb9, 0x026a291e, 0x0218c873, 0x00465a99, 0x03b56040, 0x0340eb38, 0x034a3660, 0x003227b8}}, Y: Field{[10]uint32{0x02923884, 0x0346e544, 0x02084684, 0x0192e677, 0x03068387, 0x003bca4b, 0x0379ac9d, 0x02b15fcb, 0x008835fb, 0x002928ee}}}, + {X: Field{[10]uint32{0x0141d5bc, 0x0313b4f6, 0x023fd566, 0x02250c15, 0x01b5c468, 0x007607c6, 0x0050cf43, 0x00313940, 0x0056d7dc, 0x00092f93}}, Y: Field{[10]uint32{0x029e6213, 0x0268217c, 0x001cbac0, 0x031e95bf, 0x010f6a5f, 0x03c6b5da, 0x00714a2a, 0x00c5757c, 0x02e24936, 0x00381c8d}}}, + {X: Field{[10]uint32{0x000b94f5, 0x02e614f9, 0x02852c4e, 0x00749a4d, 0x022866a9, 0x008dea7c, 0x00ee5c53, 0x007001e6, 0x031ecaa9, 0x001b0c79}}, Y: Field{[10]uint32{0x00cf8cd7, 0x00f0e167, 0x03922572, 0x0365203d, 0x0134543c, 0x00c2e53a, 0x0117e0ac, 0x00b34704, 0x03232b5f, 0x00196bfc}}}, + {X: Field{[10]uint32{0x0258b7e7, 0x0007b5e3, 0x02286926, 0x01d34c7e, 0x03e470a5, 0x02d860e7, 0x003c0229, 0x01a4f4f8, 0x033c8479, 0x00141b0d}}, Y: Field{[10]uint32{0x01b7ab65, 0x00feb280, 0x023ca167, 0x01db83ff, 0x03e24f86, 0x001ffba0, 0x00bd4ae7, 0x0140d49a, 0x03d3a57c, 0x0013f42f}}}, + {X: Field{[10]uint32{0x018349a4, 0x0314ccb2, 0x01b45b48, 0x00247700, 0x0057571a, 0x01c7dcc7, 0x027b0978, 0x01b3185b, 0x01f3ea1a, 0x00167669}}, Y: Field{[10]uint32{0x01fc8447, 0x005b8355, 0x0363821c, 0x004c6a9a, 0x0153aadf, 0x029fb94e, 0x03c348f0, 0x025b0c98, 0x033eee64, 0x00252b4d}}}, + {X: Field{[10]uint32{0x02d75c69, 0x00e06cc8, 0x008d64de, 0x0274d991, 0x01c6f892, 0x01b399f5, 0x001912fa, 0x005923d9, 0x03ab6537, 0x00294933}}, Y: Field{[10]uint32{0x01782823, 0x028daa51, 0x0214471a, 0x01630fd1, 0x02ac1b61, 0x02f9f1e6, 0x026ae90b, 0x0356645e, 0x03f987fb, 0x0005309b}}}, + {X: Field{[10]uint32{0x0348c550, 0x03cb195f, 0x0276a92a, 0x03537c9b, 0x038aa3fd, 0x029ac8e4, 0x000d3ac6, 0x018c1e1f, 0x006df83c, 0x00049b26}}, Y: Field{[10]uint32{0x014c5c5c, 0x00595acf, 0x03d39774, 0x00757a6b, 0x003f74ab, 0x006b1cb8, 0x00f04dd3, 0x01be3cef, 0x01d3a56a, 0x0020214e}}}, + {X: Field{[10]uint32{0x00e39722, 0x0211d283, 0x01db7318, 0x035ee6a0, 0x00d8ff25, 0x03341554, 0x01a9d5b4, 0x033ec9f8, 0x03c01aeb, 0x000cb2ae}}, Y: Field{[10]uint32{0x03bccee9, 0x01bfac63, 0x035bb957, 0x0087eaa7, 0x02be1910, 0x03b9ad4a, 0x02c070f6, 0x00c71004, 0x020ae080, 0x001f4c04}}}, + {X: Field{[10]uint32{0x02f42c64, 0x03873e08, 0x025da359, 0x01905b70, 0x028a9f08, 0x0356992a, 0x00975aba, 0x035be2a6, 0x00baf7de, 0x000ff787}}, Y: Field{[10]uint32{0x035ac075, 0x00f2580b, 0x03f919ee, 0x02858373, 0x0044ffed, 0x024484b3, 0x0293cae6, 0x03c5d2c3, 0x00ac61f0, 0x0003943f}}}, + {X: Field{[10]uint32{0x01462e24, 0x024cb1c4, 0x0326b3ce, 0x00dc7b87, 0x0336e9db, 0x02c409c9, 0x013a08d6, 0x037ef007, 0x02cad6c3, 0x00272b48}}, Y: Field{[10]uint32{0x00461c6b, 0x0136e554, 0x015a6882, 0x00653967, 0x03422bb1, 0x02aaeed4, 0x00781cb0, 0x033411fc, 0x031d873d, 0x0016ba13}}}, + {X: Field{[10]uint32{0x015872ef, 0x014b465f, 0x0024e1c6, 0x027e4927, 0x010c20cf, 0x00706beb, 0x00ca18e9, 0x01d898ea, 0x0020aa80, 0x00026164}}, Y: Field{[10]uint32{0x03c73e69, 0x00152e34, 0x02dd6a3d, 0x03aecccb, 0x01a084e7, 0x03617e8e, 0x00976f72, 0x01f5b91c, 0x03fd21ab, 0x001150c8}}}, + {X: Field{[10]uint32{0x024eb2b6, 0x00c6e791, 0x033a9d8c, 0x014f112c, 0x00ac00bc, 0x02094a07, 0x03093b6c, 0x032f568a, 0x01a3e7cb, 0x002085a6}}, Y: Field{[10]uint32{0x02a9726a, 0x001cead9, 0x0384023b, 0x0146f39b, 0x03e62cf4, 0x02ef4fa7, 0x0344cbcb, 0x032e6dca, 0x00172400, 0x003df567}}}, + {X: Field{[10]uint32{0x00d370d9, 0x029fdb63, 0x02dad74e, 0x030ff0a1, 0x00440b3c, 0x031233ae, 0x01fc7a55, 0x00e189e5, 0x00be3642, 0x002f41b5}}, Y: Field{[10]uint32{0x0183b90e, 0x03354218, 0x017140ac, 0x014fef34, 0x0361bb12, 0x032ee023, 0x00a56632, 0x03b22329, 0x013a0fdc, 0x000ec246}}}, + {X: Field{[10]uint32{0x03bdf4d2, 0x010448d2, 0x038225bc, 0x013645df, 0x02bb4b73, 0x0010f1b2, 0x00a4ed0e, 0x031e37c1, 0x02e79c8c, 0x000b1c44}}, Y: Field{[10]uint32{0x00391243, 0x00fb108e, 0x01afd6e0, 0x03bd97fc, 0x02bae242, 0x02403d87, 0x012884ad, 0x008921d8, 0x03add42e, 0x00320733}}}, + {X: Field{[10]uint32{0x0122131e, 0x02deabf8, 0x03905762, 0x01bbc660, 0x03b7f523, 0x0377e73a, 0x03cbb8c9, 0x01dcb20c, 0x010fa65d, 0x00146b8e}}, Y: Field{[10]uint32{0x017ba06e, 0x01b86a3b, 0x02ec8125, 0x0387a13a, 0x000f1e96, 0x01f6edc5, 0x02f2a888, 0x01ac18a0, 0x03808040, 0x000f5f27}}}, + {X: Field{[10]uint32{0x02cc59ea, 0x0209b936, 0x027a177d, 0x01c9ae45, 0x02c74326, 0x00ecc4d5, 0x00b8348e, 0x01e90caf, 0x0112de23, 0x00316778}}, Y: Field{[10]uint32{0x01903b25, 0x0131a275, 0x012b0285, 0x000ea381, 0x00aa33e4, 0x017859db, 0x009c1d9c, 0x02d9b67c, 0x03167c5e, 0x000d8427}}}, + {X: Field{[10]uint32{0x0156d978, 0x000608fd, 0x030f757d, 0x039a4867, 0x02077ca1, 0x015d4c09, 0x01cb89a4, 0x02766c54, 0x023ab750, 0x0022e67c}}, Y: Field{[10]uint32{0x016a4164, 0x0380203d, 0x00e9adc8, 0x00be4132, 0x00d338e1, 0x02f355cf, 0x033cf0e4, 0x03f913d4, 0x02adf53a, 0x0021a8c6}}}, + {X: Field{[10]uint32{0x00369dd5, 0x0382ae5e, 0x0271739f, 0x01f277ba, 0x0261f5fb, 0x03bc620b, 0x024135a1, 0x02a6f67b, 0x03657d6f, 0x001319c3}}, Y: Field{[10]uint32{0x03e65417, 0x002de5fb, 0x01dd3c10, 0x00d46d4e, 0x01b54e04, 0x01fe2474, 0x0075dc10, 0x014d8c4a, 0x02265d4b, 0x0014c6a0}}}, + {X: Field{[10]uint32{0x00f38548, 0x0233b778, 0x0333d938, 0x037277c3, 0x0036aed9, 0x015fc190, 0x03024e6e, 0x003e57f5, 0x02359daa, 0x0023a59f}}, Y: Field{[10]uint32{0x010d218f, 0x0285d946, 0x00d2f1f1, 0x02c7c058, 0x0145fa0a, 0x028440e0, 0x008b833b, 0x03ea9632, 0x015ba59a, 0x000dbe01}}}, + {X: Field{[10]uint32{0x032ac9e1, 0x03a78cce, 0x03c3ec82, 0x01f0231e, 0x015e2e09, 0x03c33256, 0x007bfaac, 0x028df417, 0x01159c45, 0x000fd846}}, Y: Field{[10]uint32{0x0197d7d6, 0x00cb80b5, 0x014faf6c, 0x03b896dd, 0x03b9d2f3, 0x03bab694, 0x02087578, 0x01f7148f, 0x034ab743, 0x00032004}}}, + {X: Field{[10]uint32{0x007641d9, 0x0140033d, 0x007459f8, 0x020e1c1c, 0x0366bba6, 0x01faf7b7, 0x03b203ac, 0x0104ad4f, 0x009d7c61, 0x000fd679}}, Y: Field{[10]uint32{0x003ad5b0, 0x038958e9, 0x010f2ae3, 0x01e261b5, 0x0264cd09, 0x03d77353, 0x038f1010, 0x037f8f48, 0x00884243, 0x002fb75c}}}, + {X: Field{[10]uint32{0x03f6d490, 0x032be1d6, 0x02781bbb, 0x036865e8, 0x01ad46d4, 0x033c5c3a, 0x0044b5bf, 0x00da90ef, 0x00c9b648, 0x0016df61}}, Y: Field{[10]uint32{0x034d984f, 0x00ffb0ac, 0x0156a7c7, 0x016e64a0, 0x03f2164e, 0x001f7c12, 0x00b89755, 0x02c3ffeb, 0x029cc7d6, 0x0027d56c}}}, + {X: Field{[10]uint32{0x01744b1c, 0x030a7a94, 0x02a88962, 0x003681c6, 0x0390decf, 0x02bf0faa, 0x03bf1f9a, 0x03a0f3dc, 0x00ae0ac3, 0x00387b9d}}, Y: Field{[10]uint32{0x01277030, 0x0331423c, 0x0221650a, 0x016e0319, 0x01eefbe1, 0x020e60e7, 0x028d6748, 0x02149415, 0x02f8b34e, 0x0027a1b4}}}, + {X: Field{[10]uint32{0x03eea871, 0x03125ada, 0x0200e5dd, 0x02b2fbb8, 0x01eba721, 0x025b29fb, 0x0196c22e, 0x0251238c, 0x015b8d48, 0x003e8733}}, Y: Field{[10]uint32{0x039bc469, 0x0396154b, 0x01829d25, 0x012ff4aa, 0x02851350, 0x01e95b5f, 0x02479a8a, 0x01995275, 0x019a326a, 0x0038adfd}}}, + {X: Field{[10]uint32{0x03fdc8bf, 0x03c30e9e, 0x027a04c9, 0x01afde97, 0x00b29231, 0x02d298eb, 0x02199d1a, 0x0182587d, 0x00d70f38, 0x003bc787}}, Y: Field{[10]uint32{0x0298ef05, 0x014430ae, 0x00687eeb, 0x01dd5677, 0x025783d3, 0x0104794c, 0x015dadce, 0x0044760e, 0x0001a9de, 0x00133be7}}}, + {X: Field{[10]uint32{0x01326120, 0x0391a2b8, 0x02e8e9b3, 0x02565687, 0x020fe9c3, 0x01204f6c, 0x025cc4ed, 0x034eeb7e, 0x02b93e75, 0x0036dc53}}, Y: Field{[10]uint32{0x0271a206, 0x00a56a9a, 0x0067f618, 0x00059970, 0x00fa3cb7, 0x02205a10, 0x0130311c, 0x01e3d213, 0x0286b812, 0x000f7126}}}, + {X: Field{[10]uint32{0x02ea5d5a, 0x03ccbfb9, 0x0045229a, 0x031e6b47, 0x03d70c79, 0x03a74ffa, 0x00cf936e, 0x00a1610f, 0x038dbd57, 0x001665fc}}, Y: Field{[10]uint32{0x03e4a224, 0x01a695a5, 0x00eec45a, 0x01e37d52, 0x031f44b6, 0x01970777, 0x0349e089, 0x00046ee5, 0x0062b716, 0x002b7df6}}}, + {X: Field{[10]uint32{0x03baeb92, 0x03bb0f4e, 0x00039ea4, 0x02f4ef1b, 0x02956654, 0x03f07f1e, 0x008ae666, 0x0015ddec, 0x02d90a92, 0x0025f5bd}}, Y: Field{[10]uint32{0x020068b9, 0x03c6d730, 0x03c684bd, 0x037d39ff, 0x03ce03fe, 0x00f7eefd, 0x015ab971, 0x0261536b, 0x0047ff21, 0x002d1437}}}, + {X: Field{[10]uint32{0x02d307c4, 0x00034016, 0x010abc4b, 0x032875ac, 0x0040232b, 0x013bbe67, 0x0149ae3c, 0x02dcada5, 0x03cd5ec8, 0x0013d14f}}, Y: Field{[10]uint32{0x01683f7f, 0x01303482, 0x038160b9, 0x017b59a3, 0x00bd61f1, 0x0258367a, 0x02442baf, 0x02f21f1e, 0x0168c4a8, 0x002ab7b5}}}, + {X: Field{[10]uint32{0x009424d6, 0x01c9c165, 0x031e6499, 0x0243036d, 0x00ae4c44, 0x02a9e51b, 0x01c0a6ac, 0x00c0d71c, 0x00a35059, 0x00016981}}, Y: Field{[10]uint32{0x033be9c8, 0x01e9bd04, 0x0186a893, 0x0278bde1, 0x01ae8277, 0x03ea2742, 0x02b92b93, 0x00069e80, 0x00126d87, 0x00395e3f}}}, + {X: Field{[10]uint32{0x03c635b3, 0x0061a581, 0x004985d1, 0x0324d382, 0x022de601, 0x02d7fa3b, 0x024cf0d5, 0x00cbe86d, 0x01a29168, 0x000fcc1c}}, Y: Field{[10]uint32{0x011ad3a3, 0x02147911, 0x0070d053, 0x01706f91, 0x038712f2, 0x0277c390, 0x02adb6f6, 0x02c8cec8, 0x01990bae, 0x003a456c}}}, + {X: Field{[10]uint32{0x001c06e5, 0x01252464, 0x02c45318, 0x01b0bb79, 0x02f7476a, 0x03e67088, 0x0302c5fb, 0x0226b3f3, 0x01cd6431, 0x001d16f0}}, Y: Field{[10]uint32{0x029933f0, 0x024741b4, 0x01d21872, 0x0107409d, 0x00be16cb, 0x0039676d, 0x02519bd1, 0x01dd77a6, 0x034a8703, 0x001668ae}}}, + {X: Field{[10]uint32{0x0237238e, 0x02024449, 0x01942175, 0x00da29b0, 0x01ab3967, 0x018e1e62, 0x03591a60, 0x02567614, 0x028cadb3, 0x002ef41b}}, Y: Field{[10]uint32{0x00b8b690, 0x013b7b4e, 0x00c2a02b, 0x000e9968, 0x00d562b0, 0x0242e1a9, 0x006cb880, 0x0397cf71, 0x0296b484, 0x002b8360}}}, + {X: Field{[10]uint32{0x022cf07c, 0x014ff524, 0x017a385e, 0x01a6debe, 0x029f3eb5, 0x00e8ecd7, 0x00b7e436, 0x02f99a14, 0x01b6128d, 0x003f36a3}}, Y: Field{[10]uint32{0x01551974, 0x03d4d7fe, 0x03f283a0, 0x03a0a817, 0x02cd11f1, 0x03135721, 0x0358ee14, 0x03e6a17d, 0x01fc37a0, 0x0012fcf7}}}, + {X: Field{[10]uint32{0x0073cce2, 0x006b7666, 0x015705ca, 0x025d3b7b, 0x034ed2da, 0x01c84332, 0x025e1132, 0x01f7b4a9, 0x03dffc9c, 0x0018c977}}, Y: Field{[10]uint32{0x00f222e1, 0x0355b4d3, 0x033584d7, 0x003ebc69, 0x027ce193, 0x0185e7fa, 0x00ada7e2, 0x01bf1c5c, 0x0099683e, 0x00227f93}}}, + {X: Field{[10]uint32{0x02ee0d7f, 0x038fca48, 0x02d59245, 0x026d068e, 0x03513df5, 0x009e7429, 0x035797a5, 0x014258ea, 0x00a69349, 0x001dd653}}, Y: Field{[10]uint32{0x01faabb2, 0x023760f9, 0x024a9581, 0x00ef299a, 0x03631df0, 0x03cbbd63, 0x02ddf45e, 0x02ff23f7, 0x01122ccf, 0x000657ac}}}, + {X: Field{[10]uint32{0x02a67867, 0x005514ae, 0x0027bede, 0x01f80c21, 0x02e2defd, 0x019649dc, 0x01348fdc, 0x0090bd3c, 0x0067ea9b, 0x003cd5bb}}, Y: Field{[10]uint32{0x0233ba7a, 0x00bed335, 0x00121e4a, 0x00423c41, 0x03d75a21, 0x03262c0f, 0x02b71459, 0x023a9268, 0x01b9e23f, 0x000f4899}}}, + {X: Field{[10]uint32{0x00a205c9, 0x03f74bbe, 0x012ffcad, 0x002d6428, 0x0186149f, 0x03e2b9be, 0x00e30914, 0x02923b1e, 0x02129b0f, 0x000cd82b}}, Y: Field{[10]uint32{0x01d18a34, 0x014b7dc9, 0x00b83dcb, 0x01478cdf, 0x023d7a20, 0x00ac2989, 0x00098722, 0x016844fb, 0x03f2720d, 0x001e6cde}}}, + {X: Field{[10]uint32{0x01e8727b, 0x0056b4fe, 0x032823fc, 0x02ae7fc3, 0x03b29040, 0x0311d84f, 0x031a4c5f, 0x031436cc, 0x0352c703, 0x00113a43}}, Y: Field{[10]uint32{0x02f55f17, 0x027b0178, 0x02feb400, 0x00789b45, 0x0295c249, 0x00624cbd, 0x02d013a7, 0x00f9bd8d, 0x03419265, 0x0018b7ec}}}, + {X: Field{[10]uint32{0x02c84047, 0x000ad793, 0x0209ee79, 0x0225462a, 0x01c9e042, 0x02ca3f8d, 0x01958764, 0x02b888c4, 0x03a9b5c3, 0x003974d9}}, Y: Field{[10]uint32{0x02f8bcf0, 0x02a62f39, 0x02ace9c9, 0x02d308e0, 0x03fbbc06, 0x001c14b9, 0x0337c069, 0x03c3e9be, 0x017f01ab, 0x003a86c9}}}, + {X: Field{[10]uint32{0x01a63957, 0x01504ed6, 0x038de100, 0x02af820e, 0x010559ba, 0x008a01a9, 0x0061e6d4, 0x0396b4f0, 0x00fd7910, 0x00211e3a}}, Y: Field{[10]uint32{0x022df1d6, 0x0306f0c6, 0x03d5cfd8, 0x02f6d24b, 0x032f3f1e, 0x0052f52f, 0x03e38c45, 0x00d2644f, 0x00180519, 0x0013de4d}}}, + {X: Field{[10]uint32{0x0284b42d, 0x033dd84a, 0x01b6dc2c, 0x03ffda15, 0x0010c97d, 0x01e7249d, 0x035e2240, 0x01cc6fd6, 0x03c80587, 0x0030e0c9}}, Y: Field{[10]uint32{0x01abfcd6, 0x015f5493, 0x01b22bc6, 0x03eae157, 0x00a213fe, 0x0004b39d, 0x007d61f5, 0x0040b9fa, 0x03accb1b, 0x003ac0eb}}}, + {X: Field{[10]uint32{0x0051f10a, 0x00ad486f, 0x0214cd62, 0x02d9813b, 0x024662b4, 0x005fca28, 0x00f48c9d, 0x0299c956, 0x00125348, 0x002e7a2a}}, Y: Field{[10]uint32{0x031ccfee, 0x02b5ccbb, 0x0344ce3d, 0x02ee5e85, 0x033813e7, 0x01dc6d48, 0x02a02241, 0x0341ed47, 0x000d65fc, 0x000d709e}}}, + {X: Field{[10]uint32{0x01cc713e, 0x0229ca69, 0x030fdcc6, 0x00f48506, 0x03d3c3b5, 0x002ea1ab, 0x012e4837, 0x028c94e3, 0x02d595cf, 0x002952a8}}, Y: Field{[10]uint32{0x03b8a159, 0x03ea81a2, 0x02baf4e1, 0x02e68cba, 0x007e9552, 0x02a14692, 0x036b9c86, 0x00acbb99, 0x006e63c0, 0x002fdd37}}}, + {X: Field{[10]uint32{0x029fd956, 0x006787f6, 0x015ea4cc, 0x02b61735, 0x00420ce2, 0x02e2212b, 0x00ad145f, 0x0153ae11, 0x003ce2df, 0x003517fb}}, Y: Field{[10]uint32{0x00b81bd6, 0x03122fe3, 0x0208d205, 0x039fb9d2, 0x00bf6be1, 0x02308235, 0x001dbf9b, 0x032da9a4, 0x030065ae, 0x003b633e}}}, + {X: Field{[10]uint32{0x03192172, 0x03892b54, 0x0310187b, 0x02ae390c, 0x005c0136, 0x013360db, 0x0159829d, 0x02cc632a, 0x0298f728, 0x003d2d13}}, Y: Field{[10]uint32{0x01ea9fa1, 0x030a8262, 0x024e84d3, 0x022fc2a9, 0x012febdd, 0x033dee37, 0x0041fd88, 0x033924b2, 0x01b3960b, 0x003bd548}}}, + {X: Field{[10]uint32{0x013d67e3, 0x00b5090d, 0x039e2841, 0x031b8982, 0x00dcec40, 0x0214cc1e, 0x020cd40e, 0x024443ea, 0x01bf0d34, 0x0037b1b4}}, Y: Field{[10]uint32{0x01095895, 0x028bee99, 0x03b7254c, 0x02cc9041, 0x039451b0, 0x00bff243, 0x02fe44f3, 0x032405c7, 0x03813609, 0x001ce85b}}}, + {X: Field{[10]uint32{0x03ff013e, 0x02d6deac, 0x02039238, 0x0092f069, 0x01265f1c, 0x009cd4d3, 0x010b9c02, 0x01f1064c, 0x015372e1, 0x0007ef37}}, Y: Field{[10]uint32{0x006c27ca, 0x031dfc93, 0x0374f22b, 0x01d628a9, 0x03b2358f, 0x01c9d551, 0x004d14b9, 0x00704483, 0x034a06a6, 0x00273d3f}}}, + {X: Field{[10]uint32{0x02ab593b, 0x0004bef8, 0x03890357, 0x03e6a90e, 0x0250ea1f, 0x00e8c76a, 0x02d53f49, 0x01bb5deb, 0x00cb038c, 0x003673bc}}, Y: Field{[10]uint32{0x0253303f, 0x0030b74d, 0x0148604d, 0x004fb410, 0x01e161cd, 0x03c67769, 0x00e66547, 0x01cb56da, 0x02fe2468, 0x000ca905}}}, + {X: Field{[10]uint32{0x03f03da3, 0x01d29807, 0x03ccede1, 0x01f338cf, 0x024e2f60, 0x022348e1, 0x022135f0, 0x00a86117, 0x014988e2, 0x0005906d}}, Y: Field{[10]uint32{0x0194922f, 0x0237ef5f, 0x006fb5b6, 0x03473eb6, 0x0148e3ff, 0x0103e05b, 0x024e1b95, 0x021d9cd9, 0x00d9ed71, 0x003b74fc}}}, + {X: Field{[10]uint32{0x02243cdd, 0x014d9b0e, 0x0376f96c, 0x020eb13b, 0x0237938f, 0x03bd8059, 0x0238b211, 0x027fec6d, 0x00163c5d, 0x00267bdb}}, Y: Field{[10]uint32{0x02f66b48, 0x005da7b5, 0x02499a31, 0x02f9ae87, 0x027f912b, 0x03c10f80, 0x01d7796d, 0x01607787, 0x0362d819, 0x001adbbb}}}, + {X: Field{[10]uint32{0x035bc97c, 0x0119e7d6, 0x03fe4e2f, 0x02ca3a93, 0x02b9c47f, 0x0314d917, 0x03f79b09, 0x00ba2e03, 0x012dc24c, 0x00124d63}}, Y: Field{[10]uint32{0x001cf5b4, 0x00df2bb7, 0x03865378, 0x0121efb8, 0x03b8c807, 0x023872bd, 0x03c1cbff, 0x0103afbd, 0x00a7f9df, 0x00144a85}}}, + {X: Field{[10]uint32{0x00eb206b, 0x03b2119f, 0x02ee8a4e, 0x029690c2, 0x03c8c122, 0x00533ce0, 0x009c5e1a, 0x037fa495, 0x03cfb1de, 0x0038c74f}}, Y: Field{[10]uint32{0x01b0449b, 0x00eb95a9, 0x03687e6c, 0x02b6d379, 0x01effc4d, 0x020d193e, 0x03ad1dde, 0x01d1ec28, 0x026669db, 0x001ef0f0}}}, + {X: Field{[10]uint32{0x02c64adf, 0x00933861, 0x015d44e3, 0x01fe5e68, 0x03ad1fbb, 0x00a35d20, 0x0332e66a, 0x02f2b7ee, 0x01d6ac86, 0x002a0bb2}}, Y: Field{[10]uint32{0x00f74c89, 0x03b1b4c3, 0x01f816c4, 0x03402c78, 0x023a9efa, 0x031de64d, 0x02b46f1a, 0x006b97d2, 0x012bc28b, 0x002eb21f}}}, + {X: Field{[10]uint32{0x00ea113d, 0x02d4f532, 0x01c081bf, 0x030c631c, 0x020dc370, 0x02334eae, 0x01ab82b1, 0x028b891e, 0x01942bff, 0x00085942}}, Y: Field{[10]uint32{0x001fcae3, 0x029df272, 0x03103fec, 0x02fa697c, 0x00f84511, 0x009067e4, 0x0113b6f6, 0x00d142f9, 0x006a2f65, 0x0025ea09}}}, + {X: Field{[10]uint32{0x02dd4b84, 0x03acd8b1, 0x0057f63c, 0x0318f6d6, 0x01e4e666, 0x01123a41, 0x01f8070e, 0x025a21ff, 0x00d8208d, 0x001cd414}}, Y: Field{[10]uint32{0x02b9e2e9, 0x0007e78a, 0x03918900, 0x032eb4c1, 0x00216887, 0x0320866b, 0x03e23f07, 0x0187279b, 0x00385636, 0x000b8fed}}}, + {X: Field{[10]uint32{0x03afe506, 0x02ced991, 0x008ba197, 0x0001e770, 0x0365f878, 0x02e70fa6, 0x00c3813b, 0x0370228d, 0x0061e679, 0x00074086}}, Y: Field{[10]uint32{0x02fd2f1f, 0x029ae9e9, 0x03c50cea, 0x0133b82d, 0x004a10e8, 0x00a56fc2, 0x0292cd0e, 0x0120f427, 0x00b92303, 0x00052db4}}}, + {X: Field{[10]uint32{0x02d7810b, 0x0313d391, 0x0033c1bd, 0x01dd2615, 0x03f91c55, 0x013bfe5b, 0x018c15d5, 0x0225cea1, 0x027486ca, 0x001e9fbb}}, Y: Field{[10]uint32{0x03b498cf, 0x004b2edd, 0x02297c70, 0x006ef078, 0x03448fed, 0x01f46733, 0x035057d8, 0x01439e9f, 0x007f5d91, 0x0017a0e8}}}, + {X: Field{[10]uint32{0x0302beec, 0x039c9b69, 0x00b51f50, 0x0008cbc9, 0x02485938, 0x00a8cab6, 0x0005cce3, 0x00c1851f, 0x03d4fe0a, 0x00020470}}, Y: Field{[10]uint32{0x033d9f0a, 0x03acaf20, 0x034efc95, 0x0274c7b5, 0x03b28e59, 0x016b615d, 0x004214e3, 0x03d3e4ba, 0x016c6c9c, 0x0029bf30}}}, + {X: Field{[10]uint32{0x01ad606c, 0x01f69248, 0x0150b435, 0x0020c2ba, 0x03ca25ed, 0x0112c9b4, 0x00d5b1ee, 0x027a3c09, 0x003889ea, 0x000b2851}}, Y: Field{[10]uint32{0x0026c551, 0x004398c4, 0x0186f42e, 0x038dd04f, 0x03c5e90b, 0x03e39884, 0x002c6560, 0x028a7c2a, 0x02c692d8, 0x001ed229}}}, + {X: Field{[10]uint32{0x010277bf, 0x02c7c7ce, 0x01c80d57, 0x02977bba, 0x005dd3e0, 0x015f9989, 0x01566d29, 0x006bf0ce, 0x03e16104, 0x002a603f}}, Y: Field{[10]uint32{0x03a1c64c, 0x01051581, 0x007fd10e, 0x0015c739, 0x01457d50, 0x0285d366, 0x03440797, 0x00d0ee1d, 0x03a2a139, 0x000c9dbd}}}, + {X: Field{[10]uint32{0x01cd80bd, 0x0275bab6, 0x026bc957, 0x02639977, 0x01fde41d, 0x026364dc, 0x002954a9, 0x02dd3f16, 0x03d9cbcc, 0x00395c28}}, Y: Field{[10]uint32{0x02973a52, 0x026af905, 0x022df273, 0x01af1f7a, 0x019400bc, 0x00b05a2f, 0x01d30351, 0x00e63826, 0x01776658, 0x00169d24}}}, + {X: Field{[10]uint32{0x03ce1110, 0x025530de, 0x018c972b, 0x03ed988d, 0x0171bd25, 0x024a02eb, 0x013d985d, 0x03d4399b, 0x02b8952c, 0x003d7eea}}, Y: Field{[10]uint32{0x03d77175, 0x03d5fcc7, 0x006cfb02, 0x023400eb, 0x03801081, 0x01229d13, 0x03097c9b, 0x03e08693, 0x01236179, 0x0006b288}}}, + {X: Field{[10]uint32{0x018d89be, 0x0277a85c, 0x03375555, 0x017b136f, 0x016f9e52, 0x012adf1d, 0x0008d258, 0x02a2b055, 0x02fbecbd, 0x000b9650}}, Y: Field{[10]uint32{0x00bc790b, 0x0155bec5, 0x0201640c, 0x006a3032, 0x0230e12a, 0x01ad6498, 0x0123d6cf, 0x02669e3c, 0x0107d141, 0x00254419}}}, + {X: Field{[10]uint32{0x015dd296, 0x00cc006d, 0x0013ea2f, 0x00fe9ce5, 0x010a9fc8, 0x026eadc1, 0x01e7f64a, 0x0267a5b2, 0x00a9891c, 0x0024af41}}, Y: Field{[10]uint32{0x022ba587, 0x0067eb60, 0x01fbf130, 0x00d08859, 0x035cc71c, 0x005eda83, 0x0017ba68, 0x03f67395, 0x0333659b, 0x0033d78d}}}, + {X: Field{[10]uint32{0x03b11083, 0x034c1069, 0x008ffed7, 0x02c219c9, 0x024d0e52, 0x00f77358, 0x00c54269, 0x03ab878f, 0x019fa50f, 0x000c377f}}, Y: Field{[10]uint32{0x02eb42ed, 0x036bd989, 0x0241b14b, 0x003e1eb1, 0x0221bdfa, 0x03d09a72, 0x00389e3d, 0x020fbe86, 0x00fe2bb1, 0x003fc574}}}, + {X: Field{[10]uint32{0x012a9f4f, 0x00e779c9, 0x03f1cbaf, 0x036dcbe9, 0x00067ddd, 0x0115c679, 0x03196882, 0x031a2abc, 0x010bdf8a, 0x00233d45}}, Y: Field{[10]uint32{0x0186cfd5, 0x003f0150, 0x0007a213, 0x02ad0516, 0x002a9963, 0x00232636, 0x0318bc25, 0x02ec660e, 0x017ba299, 0x00130a12}}}, + {X: Field{[10]uint32{0x025e46c7, 0x00ca2149, 0x001b8690, 0x002637b3, 0x014a8e3c, 0x03db765e, 0x02ed9f74, 0x013becf2, 0x02fd5097, 0x0007d2d3}}, Y: Field{[10]uint32{0x039fd399, 0x031bfac5, 0x00a76ee1, 0x00a49940, 0x02685352, 0x011f1f02, 0x00adeb8a, 0x02c0370e, 0x00c7f7c6, 0x001b12c1}}}, + {X: Field{[10]uint32{0x0091af81, 0x00a2c634, 0x029a22a0, 0x02e43cb8, 0x003f915c, 0x004f40e3, 0x01883bad, 0x03e8ce35, 0x0100979a, 0x00275492}}, Y: Field{[10]uint32{0x0002be38, 0x0059e79a, 0x033e1e0f, 0x031c2e69, 0x03db3257, 0x02c5874c, 0x004453d6, 0x01ccb444, 0x013c037c, 0x00102684}}}, + {X: Field{[10]uint32{0x01a2e3a1, 0x01fcd2f7, 0x00734c62, 0x0133cfec, 0x005b0398, 0x0308d00f, 0x01c124c1, 0x036743f5, 0x00e446ee, 0x0014b879}}, Y: Field{[10]uint32{0x008320a7, 0x010c85c2, 0x03e5b262, 0x00c1d69d, 0x02e2dbc6, 0x00b05c4e, 0x004104f1, 0x03fea30f, 0x03317375, 0x0019d295}}}, + {X: Field{[10]uint32{0x02401c8b, 0x00bdea05, 0x03148fd2, 0x024e9df5, 0x020e0a6c, 0x031b8dbe, 0x00a8b6e7, 0x0138c79b, 0x031a8eef, 0x00209ec5}}, Y: Field{[10]uint32{0x03ca7540, 0x017cd93d, 0x01f08827, 0x03e84a7e, 0x001d58c7, 0x01e2e845, 0x026d14cb, 0x00073df7, 0x01fdd9b8, 0x00197361}}}, + {X: Field{[10]uint32{0x00df2f9b, 0x03e45edb, 0x00383c83, 0x01506fa8, 0x023db299, 0x0160b891, 0x01abc32e, 0x025909a8, 0x01e961d8, 0x000493d1}}, Y: Field{[10]uint32{0x038d6c62, 0x02d359e5, 0x00f8358b, 0x01f484e9, 0x03e48e7a, 0x018a23e1, 0x020626fc, 0x0196c4b5, 0x03e4110b, 0x001cd38b}}}, + {X: Field{[10]uint32{0x024d67e2, 0x03d5a666, 0x011695f5, 0x035b0234, 0x00fb4ac9, 0x02648131, 0x024f0028, 0x02cc9043, 0x029818b2, 0x0000edc4}}, Y: Field{[10]uint32{0x02c27c3b, 0x01f07ed0, 0x02218560, 0x01a2862b, 0x0154ba63, 0x03119582, 0x0010c51e, 0x005ad570, 0x038b0cee, 0x000a2dbd}}}, + {X: Field{[10]uint32{0x012d8a00, 0x000ced54, 0x020a4290, 0x02871fdf, 0x02e2b887, 0x029ab9c3, 0x0264485e, 0x014d8c39, 0x007e063b, 0x00349c76}}, Y: Field{[10]uint32{0x016da847, 0x008e3ae7, 0x01c9b510, 0x009cd25c, 0x0060ef59, 0x03619134, 0x03122ba8, 0x038a009c, 0x00047865, 0x0019750e}}}, + {X: Field{[10]uint32{0x00dc03a7, 0x0252c943, 0x01661e84, 0x0326b9ef, 0x000c5ca0, 0x00ae954b, 0x00d2d82e, 0x0145819f, 0x01852db3, 0x0007471b}}, Y: Field{[10]uint32{0x02691f62, 0x02c40153, 0x02ebbae8, 0x0132f75e, 0x01e19f87, 0x02bba80d, 0x01b68407, 0x00095bba, 0x00c5673a, 0x002f0c7d}}}, + {X: Field{[10]uint32{0x02efdd9d, 0x01d5bf51, 0x007fb1d3, 0x0331a559, 0x00bf8d2e, 0x02e81f79, 0x02d274c0, 0x02530376, 0x01b471e3, 0x0023fba2}}, Y: Field{[10]uint32{0x012b8c6c, 0x0298bc6f, 0x034c434c, 0x01c51aa6, 0x034ba5cf, 0x00663e73, 0x03ae1487, 0x015e3f45, 0x00c38479, 0x001757b4}}}, + {X: Field{[10]uint32{0x0010a6ec, 0x03ef4c22, 0x02ce55d7, 0x017e4236, 0x018ef938, 0x038fb91d, 0x026302cc, 0x03cd4580, 0x030955a0, 0x001a07f3}}, Y: Field{[10]uint32{0x02a38faa, 0x00d63280, 0x00885e6d, 0x03d0643c, 0x00aa54e8, 0x013195d7, 0x0187edbc, 0x01d89200, 0x035b9992, 0x0010c1fd}}}, + {X: Field{[10]uint32{0x03a6971b, 0x024a4dec, 0x02918907, 0x0225ff0c, 0x026f6c1a, 0x001334f8, 0x0184a289, 0x029c6da9, 0x02ddfcb5, 0x001c5ff5}}, Y: Field{[10]uint32{0x00b17992, 0x036167d6, 0x02511d7c, 0x0174d075, 0x021b05e2, 0x01fdb6a3, 0x00405532, 0x02b4137f, 0x002971d4, 0x002d00fe}}}, + {X: Field{[10]uint32{0x014f2ff6, 0x0004f8dd, 0x03a34227, 0x01e71cc8, 0x00d29832, 0x02b630d0, 0x01f49986, 0x025e1b70, 0x032394eb, 0x003cae55}}, Y: Field{[10]uint32{0x0366763b, 0x02925f9d, 0x0120ddba, 0x00179e99, 0x03bb69e7, 0x02645edc, 0x009645dd, 0x033505c6, 0x03813efd, 0x002d54f4}}}, + {X: Field{[10]uint32{0x02730b1b, 0x01d21765, 0x017b1423, 0x0340755b, 0x019ab6fe, 0x00504d70, 0x0309b524, 0x01b22594, 0x03e6d7d8, 0x00161c52}}, Y: Field{[10]uint32{0x03e3e533, 0x0293579b, 0x03cf81c9, 0x01717e93, 0x03403984, 0x0038c54d, 0x02b84abf, 0x03396f7a, 0x03343e38, 0x00030047}}}, + {X: Field{[10]uint32{0x026ff3c3, 0x0056f01e, 0x0223b7f9, 0x03eecafa, 0x02b30819, 0x0271ad3e, 0x0300d49e, 0x03e306e5, 0x01abc828, 0x0034cf39}}, Y: Field{[10]uint32{0x01a23395, 0x0293045d, 0x0156fcac, 0x013cdf6e, 0x01ef5939, 0x03ef88bc, 0x0372ba63, 0x01262088, 0x02223913, 0x001ce6d8}}}, + {X: Field{[10]uint32{0x03b55479, 0x01ec9b58, 0x020d5983, 0x00235be4, 0x02249048, 0x00bdf652, 0x03a58ff4, 0x0004a13a, 0x0232fc7d, 0x0020880b}}, Y: Field{[10]uint32{0x0163b4c8, 0x000ced89, 0x0004dedd, 0x000a6800, 0x0063aa32, 0x02b0b220, 0x004fb0a8, 0x015793f3, 0x015450aa, 0x003f798e}}}, + {X: Field{[10]uint32{0x01ea7781, 0x027e9f0b, 0x022b7041, 0x021e8d09, 0x02941e64, 0x00322d92, 0x0300e370, 0x013223e8, 0x02185bfb, 0x0009798c}}, Y: Field{[10]uint32{0x0316e640, 0x03736fbd, 0x02a1142d, 0x00915230, 0x0209caa1, 0x019cc75f, 0x032d84cc, 0x02ae6537, 0x03074802, 0x002b9a5a}}}, + {X: Field{[10]uint32{0x005c114e, 0x006a56d8, 0x0048753c, 0x00e87bf7, 0x039da877, 0x010e837f, 0x0068a363, 0x01386bc9, 0x0205b925, 0x00380cda}}, Y: Field{[10]uint32{0x03b12a18, 0x036762eb, 0x01050d96, 0x0056776b, 0x015ba059, 0x011899b1, 0x03974553, 0x0368e1e6, 0x0160377a, 0x001075d6}}}, + {X: Field{[10]uint32{0x02996662, 0x01cc6aa6, 0x0375262d, 0x016b6d5e, 0x0134ee87, 0x01092270, 0x01a9253e, 0x02c6f472, 0x03af7fd2, 0x00210cd8}}, Y: Field{[10]uint32{0x03cde6ca, 0x034d58bf, 0x004734d2, 0x02c59b92, 0x0012c4b3, 0x0054e8ca, 0x00bda36f, 0x03c04fb5, 0x02d1dbfc, 0x00397028}}}, + {X: Field{[10]uint32{0x011178de, 0x03d8cca5, 0x03c0526d, 0x000a74a0, 0x03abb9f2, 0x029f95d8, 0x03955cff, 0x01fc63e5, 0x00b81cdb, 0x002b6c84}}, Y: Field{[10]uint32{0x00ea0e35, 0x02e4695d, 0x02cf068e, 0x03b0b86f, 0x01364db5, 0x0122be84, 0x03847219, 0x00aa9835, 0x0305d818, 0x000b0847}}}, + {X: Field{[10]uint32{0x024d7491, 0x019450bc, 0x036e088b, 0x0139615e, 0x02203460, 0x02684de4, 0x013854f5, 0x0088d7ba, 0x03a1a2fe, 0x002ac317}}, Y: Field{[10]uint32{0x000124d2, 0x00bde16e, 0x0132b8d9, 0x0337b29a, 0x03b9dc48, 0x01ce0d54, 0x00a73840, 0x01b855c7, 0x01cbe36d, 0x003951c9}}}, + {X: Field{[10]uint32{0x0085deda, 0x02f2235e, 0x01835f9c, 0x002d9eb3, 0x03868a08, 0x03d3d51c, 0x03124b0a, 0x018f90fc, 0x037a1d21, 0x000f9779}}, Y: Field{[10]uint32{0x01746630, 0x03994745, 0x036d2254, 0x03130dfb, 0x02e1927d, 0x01dfd452, 0x03e66b83, 0x000ee2e0, 0x00a42f95, 0x0029bb4d}}}, + {X: Field{[10]uint32{0x0191ec05, 0x03abbd92, 0x01ceb050, 0x0057e0ea, 0x01321848, 0x03ccbd9c, 0x031f0688, 0x034c996d, 0x033d31d1, 0x001831a2}}, Y: Field{[10]uint32{0x0000d498, 0x0183f29f, 0x0132a9d7, 0x00a5403b, 0x01898867, 0x021dcde9, 0x01aecbe9, 0x009322a5, 0x00619f7d, 0x0025deb3}}}, + {X: Field{[10]uint32{0x01c135e2, 0x0316cc5a, 0x0065464f, 0x00a5afa8, 0x014a1267, 0x019ae6c9, 0x0004a76a, 0x039656db, 0x02e9b646, 0x00086c14}}, Y: Field{[10]uint32{0x000779e7, 0x00262715, 0x0128538f, 0x035166aa, 0x0318db6e, 0x02c37f5f, 0x007292c4, 0x035c5dba, 0x00cd2fb3, 0x00040a79}}}, + {X: Field{[10]uint32{0x03523d68, 0x01f6e8de, 0x0379dc02, 0x03bd6c47, 0x02f58bb2, 0x002f9332, 0x0101e666, 0x011457b9, 0x02f37c66, 0x0001c032}}, Y: Field{[10]uint32{0x03a08be1, 0x024d31db, 0x00948e1a, 0x01f95bb7, 0x008eac9b, 0x02655e0c, 0x032487c1, 0x011bccb8, 0x0388f1c3, 0x001f7dda}}}, + {X: Field{[10]uint32{0x01541e8d, 0x01a59912, 0x01696299, 0x02bd5969, 0x015d34ae, 0x019160c5, 0x01f1c9f5, 0x02112b39, 0x03d21293, 0x00316ae6}}, Y: Field{[10]uint32{0x01c422d8, 0x0184c100, 0x02f29c03, 0x00315f6c, 0x029b34d9, 0x03b14e9f, 0x01f44678, 0x01b22a83, 0x01c6c61d, 0x000b4820}}}, + {X: Field{[10]uint32{0x016d75a3, 0x034dda80, 0x023dfa4a, 0x0375751a, 0x005713fb, 0x03085476, 0x00d15af8, 0x01770512, 0x032ed53f, 0x0022bf0f}}, Y: Field{[10]uint32{0x039b6c8f, 0x02c69392, 0x0389764d, 0x004fcd15, 0x036767c5, 0x00864f9a, 0x015a99d4, 0x02fb6780, 0x03932627, 0x000047d8}}}, + {X: Field{[10]uint32{0x025007a7, 0x01cf140e, 0x034d86e1, 0x019fb7a7, 0x02c0d698, 0x01eb8da0, 0x00cf7292, 0x03ab7f3d, 0x01c6bb55, 0x001052b6}}, Y: Field{[10]uint32{0x03603585, 0x0374e823, 0x03fd6181, 0x020bb6f7, 0x01dafb6f, 0x019e951b, 0x002306b6, 0x026c7444, 0x00f8f4de, 0x00312f34}}}, + {X: Field{[10]uint32{0x0304a1e3, 0x005c91f2, 0x008fdb23, 0x034eabc2, 0x01a163a2, 0x037109b4, 0x005ec88f, 0x01cc5ea7, 0x0240b84b, 0x00208478}}, Y: Field{[10]uint32{0x02722bbb, 0x0250ab49, 0x029be4e7, 0x02c5c2a7, 0x03a74f10, 0x016586cc, 0x006c4f6d, 0x02fd453c, 0x019bb268, 0x00329da9}}}, + {X: Field{[10]uint32{0x02ba700e, 0x01676bc8, 0x012f429e, 0x02450fb9, 0x023f7cd2, 0x00252c9e, 0x02c44523, 0x0374f1d7, 0x0132363a, 0x0029537f}}, Y: Field{[10]uint32{0x02d4490b, 0x02364bae, 0x02bbb279, 0x01d1aa4f, 0x013639ac, 0x026d1219, 0x038d1304, 0x000260f8, 0x022c5951, 0x003c5820}}}, + {X: Field{[10]uint32{0x018860f7, 0x029f2e52, 0x015e9a3b, 0x010f3ef6, 0x03e2921a, 0x0387a74f, 0x02ee1a81, 0x026c629e, 0x005552b2, 0x001df593}}, Y: Field{[10]uint32{0x0208ff10, 0x01bcb9e0, 0x025978d0, 0x02a43325, 0x020fed03, 0x01b6681a, 0x00ad9d73, 0x0323d110, 0x00f95ea9, 0x003a5eee}}}, + {X: Field{[10]uint32{0x02309ca9, 0x0251f85b, 0x03d61ba7, 0x000d83c4, 0x011b57c1, 0x00396862, 0x007f0f5f, 0x01afc47d, 0x0014b33e, 0x001216ce}}, Y: Field{[10]uint32{0x00e38bdb, 0x02098c81, 0x01b5f152, 0x01bcb1e0, 0x03f99857, 0x011b2194, 0x0050dd09, 0x01f18a98, 0x0070ce60, 0x0039aede}}}, + {X: Field{[10]uint32{0x0072739c, 0x01c1a3c0, 0x029aab0a, 0x032052bb, 0x017ced2a, 0x02dbb714, 0x03618be1, 0x01e30b7b, 0x01eca90a, 0x003b48e0}}, Y: Field{[10]uint32{0x034954c7, 0x0117fec4, 0x00fbc3de, 0x0058b284, 0x02d68599, 0x018d4e07, 0x00c291ec, 0x019148e0, 0x03e0ba32, 0x0032c21c}}}, + {X: Field{[10]uint32{0x00ed971d, 0x01795f11, 0x03a684a6, 0x019a3cb9, 0x02955b6a, 0x0132e83f, 0x03c7369a, 0x03049f20, 0x0379d36b, 0x0039112b}}, Y: Field{[10]uint32{0x03785fff, 0x031553f4, 0x034e9dd7, 0x03780434, 0x02ec50e5, 0x02922662, 0x0355ca16, 0x0208eaab, 0x030327b6, 0x0029e1db}}}, + {X: Field{[10]uint32{0x01fc1fca, 0x035f941a, 0x0278c07e, 0x022a5b2c, 0x03b8677b, 0x014bfa93, 0x024296c1, 0x0168b57d, 0x00d77de7, 0x002be30d}}, Y: Field{[10]uint32{0x0184d673, 0x0330ec8a, 0x00a8cf9e, 0x032e2e07, 0x02f3c451, 0x0118caf8, 0x015899f2, 0x0306a339, 0x0062ab6e, 0x00123396}}}, + {X: Field{[10]uint32{0x027efe13, 0x0150db3d, 0x000cbe31, 0x0221d812, 0x0108940c, 0x0368128c, 0x02745a81, 0x0113b463, 0x0066243a, 0x003a6675}}, Y: Field{[10]uint32{0x0237fe36, 0x0347ec00, 0x013cb2f7, 0x03adfea0, 0x00ef55d3, 0x0337b6f4, 0x02ac0e75, 0x01198708, 0x027063a8, 0x003d07a3}}}, + {X: Field{[10]uint32{0x004bcc72, 0x026d9118, 0x02d66e20, 0x02a962dc, 0x00072caf, 0x00bf7afb, 0x00c923a0, 0x0193fe8f, 0x00aa7d89, 0x003103be}}, Y: Field{[10]uint32{0x03238ce5, 0x03c189ed, 0x02c2f696, 0x031ecfbe, 0x00ff50eb, 0x01dbccde, 0x012c3b61, 0x02879bc4, 0x01b56549, 0x0012038d}}}, + {X: Field{[10]uint32{0x0252982f, 0x006c3ce6, 0x026151bd, 0x02288a89, 0x01679e4b, 0x00826a97, 0x012b546e, 0x01267226, 0x001de3f9, 0x00120bb9}}, Y: Field{[10]uint32{0x00d3de3d, 0x03fba077, 0x009f832e, 0x03b28395, 0x03563f92, 0x03843b1b, 0x012eff0e, 0x006054b5, 0x0070d213, 0x00144398}}}, + {X: Field{[10]uint32{0x0058fae5, 0x033dc997, 0x01fd465d, 0x00cb180a, 0x036df7ca, 0x034dbe2d, 0x0003c694, 0x0307599c, 0x006825a3, 0x00119829}}, Y: Field{[10]uint32{0x0223f618, 0x02fe842e, 0x017c0700, 0x0380540e, 0x03791de8, 0x00b6b7a5, 0x00acc720, 0x030a5a62, 0x03f546b5, 0x000f660a}}}, + {X: Field{[10]uint32{0x035d8f8d, 0x022fbc3a, 0x00d8703c, 0x0385d8c5, 0x00d8a3ae, 0x01d62665, 0x031dc033, 0x01bc2cfe, 0x024c92ba, 0x002e1798}}, Y: Field{[10]uint32{0x0175679b, 0x01861a2b, 0x0148688c, 0x009a19b3, 0x03e2cdff, 0x02cdbbdd, 0x03ff93ef, 0x016e9092, 0x033320a5, 0x002224da}}}, + {X: Field{[10]uint32{0x002683e3, 0x0261d524, 0x014c6b16, 0x00be53be, 0x03b3be28, 0x018bf56c, 0x0187ebab, 0x009afef4, 0x00b5361a, 0x00290648}}, Y: Field{[10]uint32{0x015ea98a, 0x031e92b8, 0x007d1491, 0x027c9819, 0x02c95a8f, 0x00814f80, 0x027201b3, 0x00ed34f4, 0x019629d9, 0x001de428}}}, + {X: Field{[10]uint32{0x03b7f86e, 0x025e7d3e, 0x03937055, 0x022c5541, 0x01ed1abf, 0x03c40762, 0x012f01bb, 0x00a980c9, 0x01a97926, 0x0024e20b}}, Y: Field{[10]uint32{0x009d7e44, 0x01024406, 0x03e0215a, 0x03c4fb4d, 0x0223e570, 0x0357c08b, 0x037450ba, 0x005bbc04, 0x004df0a7, 0x00024e22}}}, + {X: Field{[10]uint32{0x00952e00, 0x008c8972, 0x03b0679c, 0x016799bb, 0x03ebfa6a, 0x01c26c65, 0x0356b643, 0x036982b3, 0x01f83efe, 0x00284142}}, Y: Field{[10]uint32{0x024d1ddb, 0x03c19df0, 0x015fe830, 0x0291f038, 0x005a06e7, 0x0132b93e, 0x0237df52, 0x03793426, 0x03d5559b, 0x001d6420}}}, + {X: Field{[10]uint32{0x03eb3651, 0x02c7be4a, 0x02d294b3, 0x00122a89, 0x03c55de7, 0x03f9d7ab, 0x017e587d, 0x0109e1cf, 0x02976ea7, 0x000ae516}}, Y: Field{[10]uint32{0x02893c65, 0x003bd941, 0x03752698, 0x0043976b, 0x03cb488d, 0x0002d146, 0x01cbabce, 0x02fdae74, 0x03ed27cc, 0x00108f01}}}, + {X: Field{[10]uint32{0x03cc37f0, 0x01115ec3, 0x01073b59, 0x0244a354, 0x03f69516, 0x00fc5c05, 0x0203da01, 0x02ff9003, 0x01bbc1a0, 0x0021be76}}, Y: Field{[10]uint32{0x024c32bb, 0x031b19d1, 0x007eddf3, 0x00099249, 0x0362388f, 0x02f067a3, 0x039cd4bf, 0x00de5a4c, 0x02242e30, 0x003cdc31}}}, + {X: Field{[10]uint32{0x0161ed91, 0x0343e0f7, 0x0206c016, 0x003e42a4, 0x033aa9cc, 0x02f6d384, 0x038d8958, 0x00113988, 0x02f9555e, 0x003e2656}}, Y: Field{[10]uint32{0x02a8a060, 0x00964853, 0x014bcd08, 0x024d2bc6, 0x031febdb, 0x013e8b98, 0x00bdab83, 0x004b20ee, 0x02e31bee, 0x002cb534}}}, + {X: Field{[10]uint32{0x019394ce, 0x015105e0, 0x01dbe2f5, 0x00858f42, 0x00fdea26, 0x02ef071d, 0x01eee7f0, 0x00d4b515, 0x027f69eb, 0x002ad568}}, Y: Field{[10]uint32{0x031b801a, 0x01988038, 0x013534a1, 0x012a25e2, 0x024d5467, 0x012a4c38, 0x0373bc17, 0x0216d5c8, 0x009360f5, 0x0022b159}}}, + {X: Field{[10]uint32{0x023b9fa6, 0x022645a8, 0x02522e8a, 0x00ffeb6b, 0x03ce8472, 0x017a60d4, 0x02a89069, 0x037e6245, 0x02c9c428, 0x0013f041}}, Y: Field{[10]uint32{0x02b92031, 0x00c5a227, 0x02fd1925, 0x0129f066, 0x01fdebbc, 0x00e49a1f, 0x00c88be3, 0x00d0793d, 0x02e83d54, 0x002435cc}}}, + {X: Field{[10]uint32{0x03149a91, 0x01af2080, 0x036b2462, 0x036c2e81, 0x03874080, 0x00ea2538, 0x0187b257, 0x03332ddf, 0x01808831, 0x00327216}}, Y: Field{[10]uint32{0x02abf0b8, 0x00c0b8ec, 0x026e6a6f, 0x01a1e015, 0x02c5f992, 0x002f7e8d, 0x01a6355f, 0x0127e6fa, 0x00cd8c09, 0x0027eb53}}}, + {X: Field{[10]uint32{0x005209e7, 0x01dc5247, 0x00cb7aee, 0x01737756, 0x01a278eb, 0x028508bf, 0x0378c46a, 0x02aee97f, 0x037e2293, 0x003032d6}}, Y: Field{[10]uint32{0x0210c47b, 0x0035ccd3, 0x027d5133, 0x027bb634, 0x03cc7278, 0x0037d328, 0x036b572d, 0x02161976, 0x002e3664, 0x0020407d}}}, + {X: Field{[10]uint32{0x00ce0b63, 0x03c56436, 0x0215d140, 0x03383ef3, 0x01af2f70, 0x0246f75a, 0x02ab60c3, 0x00fe0d1c, 0x03c516d9, 0x0036ff00}}, Y: Field{[10]uint32{0x02d26564, 0x023054ff, 0x03b46465, 0x00937af1, 0x024811fa, 0x00ddaa93, 0x033ecfec, 0x0328ba68, 0x014d7228, 0x003e0e38}}}, + {X: Field{[10]uint32{0x004f59c8, 0x00fcf4d2, 0x03af37cc, 0x02e58b8e, 0x00435140, 0x00d581ec, 0x031d8910, 0x00ffc455, 0x0285eea1, 0x00378981}}, Y: Field{[10]uint32{0x01cfbbcc, 0x023eb966, 0x00accd7f, 0x0132a97e, 0x02c1f5f5, 0x02d9bc79, 0x0363335b, 0x01619798, 0x02c9a602, 0x001af08f}}}, + {X: Field{[10]uint32{0x02a2e71e, 0x00f162fe, 0x01e5f6f7, 0x027f1e06, 0x031ed812, 0x01b05fae, 0x0362f79f, 0x023f6c06, 0x0160b8cb, 0x001635e3}}, Y: Field{[10]uint32{0x004bccc1, 0x029014ed, 0x0353140a, 0x00f6ec98, 0x03b04d6d, 0x018e444c, 0x0222f5e1, 0x0319c630, 0x00f2fd6b, 0x001f2ef9}}}, + {X: Field{[10]uint32{0x0000a490, 0x03afbf8b, 0x01738211, 0x004bd91b, 0x03fde1af, 0x0000538e, 0x00869aa9, 0x013f96ac, 0x031aeed5, 0x0039cae6}}, Y: Field{[10]uint32{0x00af4fc2, 0x03cc9ce4, 0x01d348cf, 0x01a5df49, 0x00d94659, 0x00b320a8, 0x02af020a, 0x0160ce10, 0x014d8f59, 0x003364b4}}}, + {X: Field{[10]uint32{0x030fd658, 0x03cd2355, 0x0085b3b9, 0x00508885, 0x00b725f6, 0x0277fe2a, 0x03cef97c, 0x016f862d, 0x03aed55a, 0x0001aa1a}}, Y: Field{[10]uint32{0x032c5724, 0x001b59fb, 0x01d4081c, 0x00515c6a, 0x0360a14f, 0x01c27ea1, 0x03121407, 0x00c05440, 0x02914c3b, 0x0004e289}}}, + {X: Field{[10]uint32{0x030a1fc5, 0x0002bbae, 0x0316e0e1, 0x0386d891, 0x03b17c39, 0x0193f0a0, 0x00b00595, 0x03c9135b, 0x00f67240, 0x00072823}}, Y: Field{[10]uint32{0x01ef0a55, 0x011ecff6, 0x0016ab34, 0x010d3a70, 0x03deec27, 0x019ab7c1, 0x0236317c, 0x0027b0d2, 0x03ce655d, 0x0008b893}}}, + {X: Field{[10]uint32{0x024a0b0f, 0x01608060, 0x016070f5, 0x022bf525, 0x02b7cf62, 0x03377ddb, 0x021ee30b, 0x012711cf, 0x0128feba, 0x00365770}}, Y: Field{[10]uint32{0x03c7e8a1, 0x00b135b1, 0x02116161, 0x02eab8bf, 0x03633e98, 0x01a6da38, 0x0061274c, 0x0384df44, 0x02b8fea3, 0x00354d02}}}, + {X: Field{[10]uint32{0x00d83857, 0x001cfe33, 0x03afcf3c, 0x022f6661, 0x03ae7e28, 0x01a6a22e, 0x03a14e47, 0x035405b0, 0x022a7f4f, 0x000b3334}}, Y: Field{[10]uint32{0x033b389e, 0x01593741, 0x01f3b0f2, 0x00513b6d, 0x00c2a7b6, 0x03e393ee, 0x010f849f, 0x027f6d1c, 0x023caea8, 0x002ba099}}}, + {X: Field{[10]uint32{0x01628a43, 0x03afac25, 0x001d1c5e, 0x03207ca0, 0x01ae4a9a, 0x0375ed04, 0x03bc0037, 0x03788e4d, 0x01f6c8e4, 0x003b05ed}}, Y: Field{[10]uint32{0x0258df83, 0x01b9ba59, 0x007348e6, 0x0083c1e6, 0x03743196, 0x01a3f9c3, 0x01fa2989, 0x0056c18c, 0x011dfd58, 0x002cf835}}}, + {X: Field{[10]uint32{0x0096b6f4, 0x0216225b, 0x023ca956, 0x00b22eb3, 0x00cee8e1, 0x033c7326, 0x0213cddc, 0x01fd3869, 0x037e6290, 0x00298eab}}, Y: Field{[10]uint32{0x02e8216e, 0x01500c6b, 0x00deeef7, 0x01f7a003, 0x01f8bc1a, 0x00c95688, 0x0144ab12, 0x0265cfa7, 0x02bcdc5f, 0x000be54f}}}, + {X: Field{[10]uint32{0x03ad32f3, 0x03805a61, 0x00b2c550, 0x02bc6685, 0x0390e345, 0x00a5b44d, 0x005636cb, 0x023435ad, 0x0330318d, 0x0023ad3f}}, Y: Field{[10]uint32{0x00a4a3e3, 0x022bddc3, 0x031718f2, 0x0144209f, 0x020cc01d, 0x017aeddd, 0x0200151c, 0x03f1f9f5, 0x038bae7f, 0x0012e388}}}, + {X: Field{[10]uint32{0x0276b8d2, 0x012b7660, 0x02341437, 0x0232d1c4, 0x002432fa, 0x01298ebb, 0x038a6e57, 0x010e5fd5, 0x00afbb5b, 0x002ac508}}, Y: Field{[10]uint32{0x00b94396, 0x03995fd9, 0x0357490c, 0x0335fdd6, 0x038f264a, 0x029e5562, 0x039df900, 0x03a49d96, 0x028ea197, 0x003ebd8c}}}, + {X: Field{[10]uint32{0x006f680a, 0x002f46a2, 0x03b5e963, 0x01acd23f, 0x015102aa, 0x00756667, 0x0016f1cc, 0x0286ab73, 0x010e6b2b, 0x0036a862}}, Y: Field{[10]uint32{0x012fa209, 0x03db7e8d, 0x0051094b, 0x0170b088, 0x038744f0, 0x03caef48, 0x02f6005c, 0x03ae532d, 0x03695a63, 0x00067eb2}}}, + {X: Field{[10]uint32{0x032a28e3, 0x033d91df, 0x03f2e0b1, 0x010af48b, 0x03cb08a6, 0x03e3aedc, 0x01a1b0ed, 0x0346d226, 0x012e5398, 0x003c667d}}, Y: Field{[10]uint32{0x02c2f454, 0x02d66167, 0x03d9e5c1, 0x02b15526, 0x012d5278, 0x01fbe6dd, 0x00f87476, 0x004c7533, 0x03aba5e2, 0x000d866a}}}, + {X: Field{[10]uint32{0x0046ad6a, 0x014888fc, 0x00046e27, 0x03d6727f, 0x01e75c86, 0x025e928d, 0x0320bc14, 0x03b3cdaf, 0x0293a5f9, 0x00060aa7}}, Y: Field{[10]uint32{0x03b8bcfd, 0x0079223f, 0x007a5c73, 0x0328d2bc, 0x03e0924d, 0x021585f1, 0x0067693d, 0x03b8632a, 0x0288c39d, 0x00318257}}}, + {X: Field{[10]uint32{0x0214abbb, 0x0026552c, 0x0327c3b5, 0x02b82418, 0x025ac21e, 0x0109dfec, 0x020a7016, 0x03f99ad9, 0x03530636, 0x00022932}}, Y: Field{[10]uint32{0x01d0ed1c, 0x035a49a8, 0x00bbf63f, 0x01709540, 0x008efcb8, 0x0349758e, 0x02e707fa, 0x02a5048f, 0x00514cc6, 0x001a4f96}}}, + {X: Field{[10]uint32{0x008c1282, 0x00224597, 0x018d42b2, 0x023204ef, 0x02f49517, 0x00b1565c, 0x01e31058, 0x030cf845, 0x035a3b40, 0x0012404c}}, Y: Field{[10]uint32{0x004214e3, 0x02760072, 0x0016624d, 0x00393778, 0x00f26a9a, 0x0387c3a5, 0x02c70eb9, 0x01d03772, 0x0176429d, 0x0011c01c}}}, + {X: Field{[10]uint32{0x004e01dd, 0x01048ca6, 0x02b8fcdf, 0x01772b60, 0x01df64f5, 0x02e7cb81, 0x01b49e14, 0x00d8ad18, 0x01a77c34, 0x00206039}}, Y: Field{[10]uint32{0x0305040b, 0x01d0ab2b, 0x03e650de, 0x02704c3c, 0x01cb3fb4, 0x0016b247, 0x034b0fd0, 0x03c402a8, 0x0221d4b9, 0x000d33d5}}}, + {X: Field{[10]uint32{0x0251ee9f, 0x0217f84d, 0x032a4b10, 0x01f2df48, 0x01a90e1d, 0x023aa975, 0x00aeee35, 0x03d2a277, 0x027efea9, 0x0023dc48}}, Y: Field{[10]uint32{0x0255ad73, 0x036bd3a5, 0x01aaee90, 0x01aaf011, 0x03e27267, 0x02e4531f, 0x03c344f3, 0x01e68289, 0x01bcbb2b, 0x00293685}}}, + {X: Field{[10]uint32{0x03b58264, 0x023508f3, 0x02a3ccc6, 0x02a96821, 0x02d1ea8e, 0x00f30669, 0x03592a2a, 0x02eb2c20, 0x0374cdc9, 0x0036fae6}}, Y: Field{[10]uint32{0x00576161, 0x000268d0, 0x022d45b1, 0x03e6d967, 0x0018e86d, 0x02785aef, 0x00732eb7, 0x01fed60c, 0x039283f0, 0x002f99a1}}}, + {X: Field{[10]uint32{0x01591933, 0x02985f5c, 0x02958ab0, 0x037e0c5e, 0x017d9ea4, 0x02014a37, 0x03b09b62, 0x00b2b0f1, 0x013fa7f5, 0x003cca3a}}, Y: Field{[10]uint32{0x02405547, 0x0108c47c, 0x00a60fc0, 0x005f5faf, 0x002f780c, 0x036174e5, 0x01c3f3a7, 0x027a4187, 0x0059811f, 0x001073a3}}}, + {X: Field{[10]uint32{0x00fea051, 0x0033c20c, 0x00b7d8fb, 0x020544c7, 0x01d4ca41, 0x00087091, 0x005f44c2, 0x006fb127, 0x0003416b, 0x0015b53d}}, Y: Field{[10]uint32{0x00bd39ce, 0x028eb614, 0x002a8d35, 0x024b8f60, 0x0051ae1a, 0x035773a3, 0x00cb6373, 0x01defa4d, 0x0133948f, 0x003317d8}}}, + {X: Field{[10]uint32{0x039022b8, 0x03d3af00, 0x03c49e9c, 0x03e819f3, 0x01dd90c9, 0x00c9ff50, 0x02becf2a, 0x01dadf33, 0x004b8bb4, 0x002388b8}}, Y: Field{[10]uint32{0x00286b8b, 0x0064ecc2, 0x01d6d3e4, 0x024b0b20, 0x00934e79, 0x0074fbd6, 0x0103c023, 0x01a5b4d3, 0x02603204, 0x00007e3e}}}, + {X: Field{[10]uint32{0x02f064f6, 0x019f5e83, 0x00e1a518, 0x01cafe7f, 0x02b396eb, 0x033fbeb7, 0x03624dc1, 0x01f1a3e4, 0x02e4b9a7, 0x000d06c8}}, Y: Field{[10]uint32{0x02d9441a, 0x023fe2e4, 0x01e27cfc, 0x01c9f4ca, 0x03af11ed, 0x036f2cb6, 0x0162bcf0, 0x01a55d65, 0x03877bc3, 0x002560e7}}}, + {X: Field{[10]uint32{0x03324763, 0x02c8098e, 0x0305045e, 0x02670002, 0x00e6af97, 0x013ee2a3, 0x01e86809, 0x01044a1e, 0x02939f23, 0x000fa90b}}, Y: Field{[10]uint32{0x0201a623, 0x01af544b, 0x02f59186, 0x028ce2c5, 0x0160a5c0, 0x03b3ea3f, 0x024d51ff, 0x029bc13f, 0x01676f5a, 0x00110c90}}}, + {X: Field{[10]uint32{0x035d625b, 0x0249efd4, 0x0317342f, 0x01829c70, 0x0023d8a6, 0x02337a47, 0x00faa1bb, 0x01453be5, 0x004cef10, 0x002bf9ed}}, Y: Field{[10]uint32{0x008b4b65, 0x02b3f21f, 0x0042751c, 0x01dde8e2, 0x026cfcdd, 0x012c18fb, 0x0151f185, 0x021dcaf3, 0x03885121, 0x001d85e9}}}, + {X: Field{[10]uint32{0x02034d2b, 0x00fef9a8, 0x01dda37a, 0x038ffc38, 0x0112f69e, 0x00b00d74, 0x00ac725f, 0x003531b8, 0x0202abb4, 0x0028d832}}, Y: Field{[10]uint32{0x016b646d, 0x020c9a64, 0x03814fab, 0x01e49568, 0x039d8bbe, 0x0298211b, 0x01d0f723, 0x00fa80c1, 0x01783fec, 0x0005879c}}}, + {X: Field{[10]uint32{0x00011b88, 0x012a16de, 0x0361ec91, 0x02304667, 0x035984d1, 0x02cbb37d, 0x025d9899, 0x03f9f66d, 0x025ff7d9, 0x00041213}}, Y: Field{[10]uint32{0x0176cdc9, 0x01135be5, 0x031844f7, 0x00f5e3de, 0x03e7f4e0, 0x00b05127, 0x01e1086c, 0x01cd5e7b, 0x00e21e13, 0x0004b470}}}, + {X: Field{[10]uint32{0x0256b138, 0x030e71b4, 0x01ba67ee, 0x03996c14, 0x02b11245, 0x0369f79a, 0x0276c40e, 0x02777090, 0x00e15dad, 0x001db0b7}}, Y: Field{[10]uint32{0x0064ce82, 0x033bc57f, 0x03605ed4, 0x01f4fac3, 0x0361a896, 0x010dce68, 0x023fca2a, 0x0020e64b, 0x01ce585b, 0x00366980}}}, + {X: Field{[10]uint32{0x01d4d2e1, 0x0266dd44, 0x0335627b, 0x0220e951, 0x03d1d839, 0x00f71831, 0x004fcb18, 0x03b662c1, 0x01d4c3e6, 0x0019c68c}}, Y: Field{[10]uint32{0x02053088, 0x034dc6c3, 0x01b3b08a, 0x017a94b0, 0x01281f18, 0x03d0ea12, 0x033762fb, 0x03bcfdfb, 0x01152005, 0x001bf763}}}, + {X: Field{[10]uint32{0x02898a37, 0x0384ad9b, 0x032431be, 0x016e9bc5, 0x00c2343a, 0x01fdc706, 0x03729985, 0x01a40c4a, 0x0165a2da, 0x0024743d}}, Y: Field{[10]uint32{0x0332f681, 0x02c8275f, 0x0147a41e, 0x0359c924, 0x01e6393a, 0x007df377, 0x02906a10, 0x028a2355, 0x01b91956, 0x00275a95}}}, + {X: Field{[10]uint32{0x028512ba, 0x03ba6ad8, 0x032d4de9, 0x0379c902, 0x006b90d8, 0x03d37dee, 0x014d0cd8, 0x028b0f2f, 0x00581953, 0x001f967c}}, Y: Field{[10]uint32{0x0242a173, 0x02da6ee6, 0x03dbd9d9, 0x03f8ca3e, 0x0035a012, 0x027c0dc5, 0x0019b0af, 0x01f583bd, 0x01eb74cc, 0x000cec34}}}, + {X: Field{[10]uint32{0x03788a26, 0x024abf87, 0x0380dd34, 0x016f8100, 0x03f43a28, 0x02c7ccbf, 0x02652ada, 0x006fb484, 0x025e0b79, 0x003bde2d}}, Y: Field{[10]uint32{0x0108d306, 0x007346d9, 0x03910abb, 0x03be4e55, 0x00f156cd, 0x013feb00, 0x027ab1b2, 0x02bf08fa, 0x013896d5, 0x0027cf89}}}, + {X: Field{[10]uint32{0x016b7cd3, 0x02337e6d, 0x02e1f50a, 0x0133b9d4, 0x01cb0c0e, 0x0304b2c0, 0x03ce2f5f, 0x00cfb905, 0x00d01998, 0x001e2e5e}}, Y: Field{[10]uint32{0x01560dd9, 0x00251e30, 0x00cd0197, 0x0245c518, 0x01dd631f, 0x005647d7, 0x01701413, 0x001aef8c, 0x01d73726, 0x0027e71f}}}, + {X: Field{[10]uint32{0x00bfe64a, 0x00f49b5c, 0x00ceff1b, 0x03e9ee9f, 0x02906ffd, 0x002aeadc, 0x012f5e88, 0x016883a6, 0x0331f994, 0x0017de16}}, Y: Field{[10]uint32{0x03881c1c, 0x034285ca, 0x0046e0a6, 0x004f9742, 0x01575224, 0x0089e447, 0x021988d3, 0x00e1abfe, 0x000eb3cb, 0x0028f312}}}, + {X: Field{[10]uint32{0x0006b3d1, 0x03a7f95e, 0x00887fce, 0x01f58dd7, 0x0102c388, 0x0112135c, 0x03aadfa4, 0x0124bf3c, 0x01997cbb, 0x0027fb9e}}, Y: Field{[10]uint32{0x0224c22e, 0x02752b3f, 0x00437a12, 0x03c31b19, 0x00c0f0b8, 0x0039f512, 0x03ef25a6, 0x031d807e, 0x03277e94, 0x0010c450}}}, + {X: Field{[10]uint32{0x02e3f30b, 0x0362c313, 0x031020ac, 0x004fe694, 0x02c0f462, 0x036f5f1d, 0x03befd7c, 0x022215ed, 0x015db75d, 0x0004bcb7}}, Y: Field{[10]uint32{0x034097d8, 0x02d2a94c, 0x010216dc, 0x01c1d0b7, 0x00f85105, 0x00e1901c, 0x013ecfad, 0x00127a6b, 0x018b0e85, 0x003389d6}}}, + {X: Field{[10]uint32{0x03997bd7, 0x020c9773, 0x004d5317, 0x027c74aa, 0x02fbb86f, 0x0306dc63, 0x00e2befb, 0x02d470fc, 0x02b43ee2, 0x0031a52b}}, Y: Field{[10]uint32{0x01050977, 0x0221ea3b, 0x03226bdc, 0x003ab9c7, 0x036fc519, 0x02169be0, 0x02c3e5cc, 0x024c44b2, 0x033eb6a6, 0x00105207}}}, + {X: Field{[10]uint32{0x01047ae9, 0x035e32a0, 0x03ab149a, 0x00002182, 0x029bd161, 0x02bcefbe, 0x033493f5, 0x030172eb, 0x024614c5, 0x003f899a}}, Y: Field{[10]uint32{0x00471e6b, 0x006e5506, 0x0320b074, 0x021d255f, 0x00f58ca0, 0x01dca971, 0x00614ada, 0x025352df, 0x02bec446, 0x0038b863}}}, + {X: Field{[10]uint32{0x016118dd, 0x0149a64d, 0x03250d21, 0x039fd9e9, 0x01daff04, 0x03060fc8, 0x03abfa58, 0x02c1f121, 0x01dc0926, 0x001e5d78}}, Y: Field{[10]uint32{0x011409e5, 0x03f1c24d, 0x029d821c, 0x02366e5c, 0x01f94346, 0x02a536b9, 0x014b779d, 0x02cc0329, 0x039744e2, 0x00032612}}}, + {X: Field{[10]uint32{0x018a2b06, 0x01f3c5a8, 0x02951a13, 0x023adff5, 0x00702284, 0x0061b5c0, 0x0109e8e6, 0x00d62682, 0x00db5018, 0x0024d5cf}}, Y: Field{[10]uint32{0x00bf47d5, 0x02439886, 0x010f0265, 0x022bf27d, 0x02caae2d, 0x004db2b3, 0x0090039d, 0x03dabb65, 0x00663047, 0x001ea55f}}}, + {X: Field{[10]uint32{0x01d77660, 0x01febe20, 0x00829fa3, 0x003b8a6d, 0x026771d8, 0x0217f13f, 0x00ac7dd4, 0x01bfae38, 0x021ea60f, 0x00302f4b}}, Y: Field{[10]uint32{0x0335bacd, 0x03fc96c0, 0x0306556a, 0x00ff896b, 0x002effc8, 0x027c91fa, 0x0076267d, 0x03871da4, 0x00fd9edd, 0x001a16dd}}}, + {X: Field{[10]uint32{0x0024bf3e, 0x031a6127, 0x032538c4, 0x00af6a90, 0x01b67685, 0x01575646, 0x02e5f45d, 0x00881e41, 0x00e19319, 0x0015aeb0}}, Y: Field{[10]uint32{0x03c18ebf, 0x0081fb0b, 0x01096a5d, 0x03a7e342, 0x010f5c0a, 0x022c4639, 0x02480bbc, 0x02e04b4b, 0x01d39856, 0x0038efd4}}}, + {X: Field{[10]uint32{0x0142c06c, 0x01347964, 0x03c65231, 0x002ae4f7, 0x015225fa, 0x02617f7b, 0x03ec7c4a, 0x03774baf, 0x0313fe7c, 0x0014ed06}}, Y: Field{[10]uint32{0x03b69c4b, 0x00bfa6f0, 0x03a988f6, 0x008123ca, 0x03cb4ecf, 0x0334af7f, 0x02e038dc, 0x03d59574, 0x025744e4, 0x00243f2e}}}, + {X: Field{[10]uint32{0x02e765bb, 0x03f3cab0, 0x025f5d55, 0x00019d33, 0x00b11364, 0x0060b28b, 0x02baa269, 0x03b6e51f, 0x0231ccc0, 0x002f6817}}, Y: Field{[10]uint32{0x02cf75e8, 0x0371ae9e, 0x0307b447, 0x036aba3d, 0x032fff08, 0x00c23aa5, 0x00593567, 0x01a60a9d, 0x01793123, 0x0025c9d6}}}, + {X: Field{[10]uint32{0x030413d8, 0x03b78552, 0x0189b21a, 0x0254715c, 0x0291196e, 0x023d97e0, 0x0209f19a, 0x0020807f, 0x006a8a90, 0x00123747}}, Y: Field{[10]uint32{0x009b98f5, 0x022d8eb0, 0x017af78c, 0x00367143, 0x01c5a615, 0x0039cbe1, 0x017e2878, 0x00f72994, 0x02fb1a94, 0x001e687d}}}, + {X: Field{[10]uint32{0x012f1f2c, 0x0010e00a, 0x0051c13c, 0x01bcd119, 0x002be834, 0x03a68b52, 0x02ff4e2c, 0x010a323b, 0x0269e28c, 0x001d5018}}, Y: Field{[10]uint32{0x033e996a, 0x03371684, 0x0289f9e7, 0x03377796, 0x00202c44, 0x024bbf11, 0x00d13d76, 0x0201f88f, 0x0097211c, 0x0011d0ec}}}, + {X: Field{[10]uint32{0x0192ee5f, 0x02181288, 0x03165401, 0x0009376a, 0x00744200, 0x010c53ff, 0x000ae4d2, 0x0204ce21, 0x0193bf31, 0x0006a957}}, Y: Field{[10]uint32{0x00bc3bfc, 0x038e3c4b, 0x0118f041, 0x02204d84, 0x017a6a8e, 0x02db2cb3, 0x02ac7e99, 0x027a2995, 0x035492d5, 0x002eaeb0}}}, + {X: Field{[10]uint32{0x037dcf03, 0x01c48311, 0x02fbab93, 0x03d26c5d, 0x0234d214, 0x03627dc8, 0x00fa8503, 0x0318a799, 0x0050db7b, 0x001d6f93}}, Y: Field{[10]uint32{0x00b6f819, 0x015320a5, 0x003fb511, 0x00a9069b, 0x03ed2e5e, 0x0321831a, 0x033d9343, 0x01b6c820, 0x03ba8c60, 0x002d5482}}}, + {X: Field{[10]uint32{0x00ef6c8c, 0x00e0950f, 0x01c7d8d6, 0x002871c9, 0x036508e1, 0x01846e56, 0x00b2486b, 0x022cb435, 0x0022e4ed, 0x003cd812}}, Y: Field{[10]uint32{0x022dc0f5, 0x00e51188, 0x00105f98, 0x00b2c8eb, 0x0075d99d, 0x00b2f5a6, 0x021a412f, 0x02f1a896, 0x00797404, 0x003d016b}}}, + {X: Field{[10]uint32{0x037cefe8, 0x01f7fc39, 0x012bf2d8, 0x0247c107, 0x01da54ee, 0x0380c9ac, 0x015f727a, 0x009afbeb, 0x02e66f93, 0x001b2485}}, Y: Field{[10]uint32{0x01d16517, 0x00ddfece, 0x01704557, 0x01c94194, 0x031ec2f3, 0x03d48c37, 0x0146f922, 0x011f237d, 0x01b9bc19, 0x00192808}}}, + {X: Field{[10]uint32{0x0105668a, 0x0351d35a, 0x03b09e74, 0x03896c4a, 0x00988346, 0x01a01d9e, 0x03138617, 0x01ccb77c, 0x03bdce97, 0x002b91e6}}, Y: Field{[10]uint32{0x02612929, 0x01f02b24, 0x028b3f4b, 0x025fa8fc, 0x02b33a6f, 0x01366f74, 0x01363366, 0x01821e26, 0x0355c599, 0x0028f380}}}, + {X: Field{[10]uint32{0x014898be, 0x01c14b5d, 0x034ff480, 0x029eaabd, 0x039ccc05, 0x01b3f4bd, 0x02abcf83, 0x0136c871, 0x017966f7, 0x0033a4b0}}, Y: Field{[10]uint32{0x001bb978, 0x039e7298, 0x0127ce44, 0x0200fc42, 0x038adebf, 0x0238d15a, 0x019cec9c, 0x00e31329, 0x03f3530f, 0x003cf8f4}}}, + {X: Field{[10]uint32{0x026ea68d, 0x033c589b, 0x03b9f477, 0x0388de28, 0x01a96f5a, 0x02623137, 0x0153d875, 0x01d705dd, 0x02b68152, 0x002282ef}}, Y: Field{[10]uint32{0x03e77f4e, 0x005e60d7, 0x036d64e9, 0x02b08a11, 0x00a7c74e, 0x0216938d, 0x02a9f770, 0x01504ab2, 0x015e46f4, 0x002562de}}}, + {X: Field{[10]uint32{0x01d9ccfe, 0x03944da3, 0x028d00c2, 0x029c721b, 0x027f0e97, 0x017b479e, 0x02a033c0, 0x00038a44, 0x02e99754, 0x0030a913}}, Y: Field{[10]uint32{0x0275668f, 0x02a5514d, 0x03c60596, 0x02e3afda, 0x0170cd17, 0x00ed44da, 0x03b69b29, 0x02941f6f, 0x01ef7d24, 0x0025590d}}}, + {X: Field{[10]uint32{0x019ea1e1, 0x022471c6, 0x01c293cc, 0x02472057, 0x013d3bbe, 0x01510ef3, 0x03785208, 0x037d851e, 0x0225534d, 0x002d857d}}, Y: Field{[10]uint32{0x02c3ea25, 0x037079db, 0x01e12267, 0x0071ace6, 0x00fe3afd, 0x03d97189, 0x02908764, 0x0051a18a, 0x00f199e2, 0x00132afd}}}, + {X: Field{[10]uint32{0x00a75a0e, 0x002e4efa, 0x030b55fd, 0x0153e020, 0x03b64a0c, 0x02602fb9, 0x016dde93, 0x009cab3d, 0x038dfdcf, 0x002bf32b}}, Y: Field{[10]uint32{0x0042a63e, 0x00b05044, 0x00e9554f, 0x01801f62, 0x03e7d6a6, 0x00d6186b, 0x036d9ba7, 0x03113e27, 0x005d6f6f, 0x0002363b}}}, + {X: Field{[10]uint32{0x03135f53, 0x00cf22a6, 0x033ac328, 0x00ab2ce1, 0x03559d07, 0x03de0c02, 0x039395d0, 0x006c987c, 0x02a8c531, 0x0014d05d}}, Y: Field{[10]uint32{0x02b2f436, 0x031f9b22, 0x03643b03, 0x0175a0fb, 0x020b1615, 0x03e9d5be, 0x02f66398, 0x029ed21f, 0x004b5eee, 0x002ae13e}}}, + {X: Field{[10]uint32{0x0391f34c, 0x03f34506, 0x0393ea65, 0x02f194c6, 0x028705ab, 0x00883cfc, 0x03651ac6, 0x025737d1, 0x017397ef, 0x0017dea8}}, Y: Field{[10]uint32{0x0081da22, 0x01215866, 0x02ab8b75, 0x02ef8118, 0x0270cffc, 0x01e9df63, 0x011b28f1, 0x02cd3cbb, 0x00983cdd, 0x001cbdf6}}}, + {X: Field{[10]uint32{0x008f3d3b, 0x00a1ff2b, 0x034490aa, 0x0161a40f, 0x02b6a952, 0x00d6bf5e, 0x001db193, 0x03edcacc, 0x024cc1e2, 0x00353ed2}}, Y: Field{[10]uint32{0x014154f9, 0x02062538, 0x00306088, 0x03de6ba4, 0x02f213ad, 0x037b9e1f, 0x01098cd5, 0x02ca1c67, 0x02e84a9d, 0x001dad5c}}}, + {X: Field{[10]uint32{0x037a9ff4, 0x03515327, 0x035694c6, 0x01716aef, 0x00dad097, 0x00f6c374, 0x013116c2, 0x00bcebde, 0x0163843b, 0x000f719d}}, Y: Field{[10]uint32{0x016753ae, 0x01da980d, 0x01fbf780, 0x01dd3ece, 0x004894b2, 0x0126a022, 0x010ccf80, 0x00edfd0f, 0x039e4db8, 0x00377d96}}}, + {X: Field{[10]uint32{0x02f897d6, 0x01720b28, 0x036b13bb, 0x0176cdb8, 0x039c3e41, 0x00334599, 0x006c4495, 0x0005344e, 0x02bd1edd, 0x00195e44}}, Y: Field{[10]uint32{0x02d505cf, 0x00249fbf, 0x02143430, 0x012327d6, 0x0178205e, 0x03341b1a, 0x007fb3aa, 0x0389023f, 0x03db11bb, 0x00138bf7}}}, + {X: Field{[10]uint32{0x03d69f99, 0x0205c5cf, 0x027b8f90, 0x017f12b7, 0x036f412b, 0x03cffa4d, 0x00473e50, 0x016173d9, 0x03b35f82, 0x00016914}}, Y: Field{[10]uint32{0x00097ebe, 0x02d985d6, 0x00c4fa29, 0x02d5fcad, 0x03ec2fb4, 0x012ae868, 0x01dbf06f, 0x02d64138, 0x02113448, 0x003f05a7}}}, + {X: Field{[10]uint32{0x00052679, 0x02cdece9, 0x03689093, 0x02c83d3f, 0x03d01c68, 0x025a8c10, 0x02cfaf1f, 0x012f21a6, 0x005ac24b, 0x0030eb7d}}, Y: Field{[10]uint32{0x00ae19cc, 0x00ab1a04, 0x017d7edc, 0x020f3b72, 0x014f0d4b, 0x01cae342, 0x0285bea9, 0x012d274e, 0x0207cd37, 0x000f648c}}}, + {X: Field{[10]uint32{0x021e1d56, 0x0103fa57, 0x006b6e90, 0x003eb2c1, 0x035bd84f, 0x007c976b, 0x016420be, 0x0372109d, 0x01c8905d, 0x00068cbb}}, Y: Field{[10]uint32{0x00eb4c51, 0x0108591a, 0x0059c0ca, 0x0203e33e, 0x03f1612c, 0x01a98bd3, 0x00b73ad1, 0x01dfe307, 0x019d113a, 0x001fd19f}}}, + {X: Field{[10]uint32{0x034d6c98, 0x00efc829, 0x006b7b4a, 0x010bac69, 0x02f925c1, 0x03944092, 0x028b7da2, 0x025deb0c, 0x019862e5, 0x001c255f}}, Y: Field{[10]uint32{0x02f09381, 0x03f49cef, 0x03ec1441, 0x00c7c8c9, 0x037d7ee2, 0x02074b14, 0x01513488, 0x0330d282, 0x02c62e42, 0x0009a6d5}}}, + {X: Field{[10]uint32{0x037537a7, 0x03b72120, 0x02b44bd7, 0x015b65da, 0x01bf6dd2, 0x02db37c9, 0x03ae4540, 0x02c5b041, 0x00165a02, 0x0001f9a5}}, Y: Field{[10]uint32{0x005185f5, 0x01a09ad1, 0x03b243e6, 0x0075e28d, 0x03a6aac2, 0x00f91cd8, 0x010d2ce0, 0x0030478b, 0x00db3836, 0x003fee1d}}}, + {X: Field{[10]uint32{0x01df9678, 0x0355495b, 0x018b60ee, 0x01d78ded, 0x003b9d8a, 0x03d10176, 0x03e7ac6f, 0x03a6d492, 0x01597b42, 0x0013e068}}, Y: Field{[10]uint32{0x02e0a78c, 0x02e125e1, 0x038b377c, 0x035e6494, 0x003558ee, 0x0349f7d3, 0x00ffbe16, 0x018196b6, 0x02071867, 0x002c94c4}}}, + {X: Field{[10]uint32{0x014fd547, 0x0068d74a, 0x002d9359, 0x03586f74, 0x009be6fd, 0x024e04cd, 0x020be8de, 0x0196bc2d, 0x03685770, 0x003e8940}}, Y: Field{[10]uint32{0x00e81625, 0x01873512, 0x02f06d4d, 0x029deda5, 0x033b0a1f, 0x03d7b842, 0x0242f0dc, 0x01f2fd75, 0x01e396c7, 0x003c2e64}}}, + {X: Field{[10]uint32{0x032ba3d4, 0x03c09689, 0x02c4d440, 0x0312961d, 0x006b61d6, 0x00ffb1b6, 0x03da5172, 0x00aff0f8, 0x02bd6716, 0x003d37d7}}, Y: Field{[10]uint32{0x0052212b, 0x038ca860, 0x00d44674, 0x016e425c, 0x026380dc, 0x0278dd73, 0x010e384c, 0x017ecb56, 0x02798bc7, 0x002c8ee8}}}, + {X: Field{[10]uint32{0x01ac5015, 0x021c1da8, 0x0141c4a5, 0x00681955, 0x0051b897, 0x0111835b, 0x0228e5c4, 0x016d97eb, 0x031db372, 0x002ad6da}}, Y: Field{[10]uint32{0x02ee2ece, 0x03a972c9, 0x02a9e286, 0x02e3422d, 0x00424f72, 0x01e16b7c, 0x01d7876d, 0x005c60ea, 0x0057ecdc, 0x0005b4b1}}}, + {X: Field{[10]uint32{0x00869e55, 0x01df380a, 0x03981ac8, 0x0264f0c3, 0x0002e08d, 0x01c34e29, 0x0280dcc4, 0x014dc101, 0x007e13db, 0x002a293b}}, Y: Field{[10]uint32{0x037f60a4, 0x01205472, 0x007bb2d2, 0x0356eaec, 0x00754025, 0x01961e29, 0x03d08749, 0x03b94e25, 0x019c2cdf, 0x0012a77b}}}, + {X: Field{[10]uint32{0x00245f48, 0x02c5042e, 0x00faa5f1, 0x03678aaf, 0x016f914d, 0x01970404, 0x0183d081, 0x01836c01, 0x00f633bd, 0x000cdfd5}}, Y: Field{[10]uint32{0x0176dbfc, 0x0159dc60, 0x00a94ea4, 0x0395022c, 0x00679b58, 0x00eaeb93, 0x035452bd, 0x03f12902, 0x0328696a, 0x002514fa}}}, + {X: Field{[10]uint32{0x01901b53, 0x0190ad7f, 0x020e433b, 0x00354a74, 0x00f6db48, 0x00694153, 0x004c7674, 0x02abc415, 0x03abdc2b, 0x003bb8cd}}, Y: Field{[10]uint32{0x029c27be, 0x019091e1, 0x01830872, 0x03357db2, 0x00825616, 0x01a55be2, 0x03a1d8ba, 0x00035292, 0x038802cc, 0x00196b56}}}, + {X: Field{[10]uint32{0x012f1548, 0x00ff3bdd, 0x010b8451, 0x01f143c0, 0x00f56e47, 0x010fc49d, 0x01aaf0cb, 0x00002bb0, 0x021857cb, 0x00167d4b}}, Y: Field{[10]uint32{0x021698be, 0x0383d4e7, 0x00e70a1a, 0x018665e3, 0x014f2254, 0x01bb078a, 0x007006ba, 0x00ec6601, 0x036e8db0, 0x003632a3}}}, + {X: Field{[10]uint32{0x006f3e12, 0x0297c150, 0x0115e8f5, 0x0043cad2, 0x038583ab, 0x01f618a1, 0x01618d9d, 0x036caa2a, 0x020c25fa, 0x001b0802}}, Y: Field{[10]uint32{0x038081f8, 0x03b6527b, 0x03a617d6, 0x0276c5e4, 0x00050464, 0x0170343e, 0x01af24da, 0x03cd7051, 0x004e374c, 0x00053526}}}, + {X: Field{[10]uint32{0x02ac07fa, 0x03fef0e2, 0x002a032c, 0x03e2628f, 0x02f8144f, 0x00e6d95e, 0x02ad8782, 0x02dbe1c6, 0x02fd51df, 0x00059528}}, Y: Field{[10]uint32{0x021a839c, 0x02410f45, 0x037148d5, 0x0317e977, 0x00e36d46, 0x031c5c17, 0x00dcc1d4, 0x0215a6db, 0x01c382d9, 0x0022da59}}}, + {X: Field{[10]uint32{0x03556d77, 0x008cbdd9, 0x02fae8de, 0x0301fa63, 0x027b3ed1, 0x014fe5b5, 0x0182f339, 0x00d55b26, 0x03c9ab47, 0x0031200c}}, Y: Field{[10]uint32{0x01968bac, 0x01ead2fb, 0x002b6f89, 0x01520a2c, 0x010abe4a, 0x0373feab, 0x03873828, 0x00c5a041, 0x00a87bc4, 0x002bcfd2}}}, + {X: Field{[10]uint32{0x003c6032, 0x01390a0f, 0x003baf1a, 0x007c084b, 0x001a9577, 0x015fdea6, 0x005aaea5, 0x00a35462, 0x03faa9d2, 0x0017765d}}, Y: Field{[10]uint32{0x032eb656, 0x01ca8de3, 0x02b4549e, 0x03349d2f, 0x02abb06a, 0x036a81bc, 0x00e52043, 0x023db34b, 0x014aba17, 0x000effe7}}}, + {X: Field{[10]uint32{0x0242a564, 0x03f7ca73, 0x032abefe, 0x01a69760, 0x03261e4c, 0x00f26aba, 0x03f1d8af, 0x025b12f3, 0x0025dd9a, 0x000a9db7}}, Y: Field{[10]uint32{0x01244806, 0x02ad31b5, 0x02c5b2fc, 0x02ab7d85, 0x0307ff82, 0x03d70e20, 0x00c972aa, 0x032b9f7a, 0x02f23ad5, 0x00124d14}}}, + {X: Field{[10]uint32{0x029a4b8d, 0x02e3d2f4, 0x02d6ff2d, 0x02a69279, 0x02fd3935, 0x01198aca, 0x02bab4db, 0x01e48e08, 0x01064c0e, 0x00336f4d}}, Y: Field{[10]uint32{0x017a90ce, 0x03828f15, 0x03143a8c, 0x0054550f, 0x0358b845, 0x021bf6d7, 0x008a84c3, 0x009d3e9a, 0x032eb61e, 0x002c849b}}}, + {X: Field{[10]uint32{0x0354d978, 0x03dc974a, 0x02a75bf6, 0x00969051, 0x012bcfd5, 0x01c4ebfe, 0x0182d6ce, 0x0353d8d3, 0x009b2cb9, 0x00260fc9}}, Y: Field{[10]uint32{0x028abca2, 0x03c12122, 0x033ef0cf, 0x01dc8e20, 0x02af302e, 0x0280b6af, 0x004d25f5, 0x0380b69b, 0x0006850b, 0x001e7349}}}, + {X: Field{[10]uint32{0x00afd4f4, 0x0370630e, 0x0138396f, 0x0227eb78, 0x019e1284, 0x03ec8f94, 0x017e21ef, 0x02a7ce89, 0x01b4a5a0, 0x002231d9}}, Y: Field{[10]uint32{0x015f46c2, 0x0226df56, 0x006971cf, 0x038d170a, 0x02e3336a, 0x034511a0, 0x005cc031, 0x02568f94, 0x02647299, 0x003d357f}}}, + {X: Field{[10]uint32{0x03d52c31, 0x01e960ad, 0x036926b6, 0x001d1580, 0x031d147d, 0x02234398, 0x01c7d08b, 0x032c2866, 0x01ecd603, 0x00065d41}}, Y: Field{[10]uint32{0x01057f15, 0x0158793e, 0x0208f49a, 0x037e88d3, 0x002f212a, 0x0169d6bb, 0x035a7461, 0x017f142b, 0x013bf2d7, 0x00251fb0}}}, + {X: Field{[10]uint32{0x032eaaf8, 0x00c82d8e, 0x00fec668, 0x003fad8e, 0x019a1979, 0x035af013, 0x02700c30, 0x01817d62, 0x0232e10f, 0x00260610}}, Y: Field{[10]uint32{0x03f9c85b, 0x01e3873b, 0x03d7f395, 0x024aac62, 0x01dbbdf1, 0x01b0c7d6, 0x02a837e3, 0x03e8e4c3, 0x02edc0e2, 0x003bcc1d}}}, + {X: Field{[10]uint32{0x000bc002, 0x03e388db, 0x02764892, 0x0205a1a6, 0x02f0c7d0, 0x00c899c3, 0x00f47a9e, 0x004d2de4, 0x0335cba0, 0x00143c36}}, Y: Field{[10]uint32{0x00396072, 0x00cff2da, 0x00edd832, 0x0112e181, 0x009e466b, 0x02389976, 0x03260f65, 0x0213ab9d, 0x0013d98a, 0x000706c7}}}, + {X: Field{[10]uint32{0x01665502, 0x00770c75, 0x03a8680c, 0x005b35af, 0x0099ac85, 0x03d08a3d, 0x00bb19f3, 0x02ed42b9, 0x00ea1a44, 0x003678d0}}, Y: Field{[10]uint32{0x034aaad8, 0x03d2cd56, 0x00f75355, 0x02b49412, 0x01341445, 0x020eebba, 0x0005251b, 0x00864ffe, 0x0288335a, 0x0004a285}}}, + {X: Field{[10]uint32{0x007c539c, 0x00f03e3a, 0x034c91e3, 0x02a42a51, 0x01d42cb4, 0x01557706, 0x03067020, 0x01377631, 0x013301b8, 0x00056aa0}}, Y: Field{[10]uint32{0x0142dbc1, 0x031a9b62, 0x03b1de22, 0x011d17d8, 0x032a14bf, 0x01d8b32e, 0x01d2ba17, 0x019003af, 0x03209658, 0x001e54c1}}}, + {X: Field{[10]uint32{0x025d34d2, 0x0060be1e, 0x0024255e, 0x00608d81, 0x03d489dd, 0x01f1ef88, 0x010d169c, 0x026936e4, 0x030453d1, 0x001bdc21}}, Y: Field{[10]uint32{0x01c7dde2, 0x01e2aa66, 0x02101355, 0x03f569b7, 0x01c15246, 0x01f136ee, 0x029beabd, 0x00afd282, 0x01567c1c, 0x003814c6}}}, + {X: Field{[10]uint32{0x03167674, 0x03e370f1, 0x03f1bf33, 0x0163f8b4, 0x03867f9a, 0x01a2153d, 0x02d97e91, 0x028e9226, 0x00dfcddc, 0x000c7a48}}, Y: Field{[10]uint32{0x03706f39, 0x020a4030, 0x038afdbe, 0x017ec4b2, 0x01244a9c, 0x03af89f7, 0x01576600, 0x01b96054, 0x003d0b0c, 0x00149c4b}}}, + {X: Field{[10]uint32{0x008d51d8, 0x007cb693, 0x015ab8d0, 0x030a1a8c, 0x028258de, 0x00622325, 0x0381fbcf, 0x03c0765b, 0x0211708f, 0x0024cc03}}, Y: Field{[10]uint32{0x026c33ff, 0x00f52838, 0x01f464c9, 0x00d8495b, 0x009e0b76, 0x01961393, 0x0049b536, 0x00823021, 0x02473b6a, 0x00054da1}}}, + {X: Field{[10]uint32{0x03acb3db, 0x0153d973, 0x017dcecd, 0x00c9c81e, 0x0230c946, 0x01c4b072, 0x016cfdf3, 0x019c0818, 0x010bf62d, 0x0023deb5}}, Y: Field{[10]uint32{0x0043c637, 0x03e2d121, 0x01d347e4, 0x01c4197e, 0x001eff0d, 0x00686532, 0x0290080a, 0x014af0cc, 0x023207dc, 0x0016b042}}}, + {X: Field{[10]uint32{0x0189f4a9, 0x022921ca, 0x03dd7445, 0x007723be, 0x027f5cf5, 0x01431822, 0x028f5d73, 0x0035c711, 0x03827627, 0x001bb602}}, Y: Field{[10]uint32{0x01826dc0, 0x0248f422, 0x035a2e00, 0x03c8058e, 0x0177fd3c, 0x01a1f1f8, 0x01e47b7c, 0x039ded19, 0x03f738f6, 0x002f2e8a}}}, + {X: Field{[10]uint32{0x00e3714c, 0x00aed2df, 0x01e38eea, 0x02ca1a52, 0x027c2b11, 0x01dfab68, 0x02cb85f7, 0x02278a58, 0x017db949, 0x003b1b07}}, Y: Field{[10]uint32{0x02d08fdd, 0x02c0c3a7, 0x02516df3, 0x01354bf3, 0x018ef266, 0x02f295d5, 0x00089d0e, 0x037f6c75, 0x01af6042, 0x002b767e}}}, + {X: Field{[10]uint32{0x0237f093, 0x00982112, 0x0335c1fe, 0x023a5519, 0x01c59bca, 0x0042166e, 0x03a82d35, 0x03064964, 0x032c24dc, 0x0023ddf2}}, Y: Field{[10]uint32{0x03e07202, 0x0266cf13, 0x02213831, 0x02f561f9, 0x00423fde, 0x0029c32e, 0x0355bd4f, 0x0267e9c2, 0x0186fbf4, 0x001459d2}}}, + {X: Field{[10]uint32{0x024b6aca, 0x01e30741, 0x0049f1fd, 0x035890f4, 0x011122f2, 0x03d28cb7, 0x00c4ed62, 0x00c6bea9, 0x0374dae8, 0x0038ab77}}, Y: Field{[10]uint32{0x028b2297, 0x020463f8, 0x0323ccf5, 0x02808296, 0x00a73a1a, 0x0369984a, 0x02560224, 0x03ec2c22, 0x03941ead, 0x001f6f2c}}}, + {X: Field{[10]uint32{0x02b1e3eb, 0x011768c0, 0x0072d3e8, 0x0144d2ea, 0x033a22b1, 0x0233516c, 0x03b7c6db, 0x00c7266b, 0x01bc614d, 0x002fdebc}}, Y: Field{[10]uint32{0x00125a21, 0x00bb0b14, 0x03239754, 0x0193c49d, 0x012b8504, 0x00c99ef5, 0x029e2552, 0x02288bee, 0x01e78cf8, 0x0004234e}}}, + {X: Field{[10]uint32{0x02fe50e4, 0x03af1663, 0x01987093, 0x01a29d60, 0x0035b4f0, 0x014b60b3, 0x012c5f69, 0x0196016e, 0x007f0cec, 0x000223ff}}, Y: Field{[10]uint32{0x01378a4c, 0x03713693, 0x00cf4a63, 0x03262e7a, 0x00d39193, 0x008e5159, 0x01558c78, 0x00b0fae8, 0x00ca94b4, 0x000e0b6b}}}, + {X: Field{[10]uint32{0x013a152b, 0x00d4f51f, 0x003b7a28, 0x001cd33e, 0x039070e2, 0x00dbaac9, 0x00569ae6, 0x02b982e7, 0x03840ef4, 0x002c4528}}, Y: Field{[10]uint32{0x00a3fa70, 0x02311df3, 0x03001b18, 0x01d9b629, 0x03bb8260, 0x02ef972f, 0x036438c9, 0x03882981, 0x033ce58e, 0x000df1d9}}}, + {X: Field{[10]uint32{0x03e801b0, 0x036cea31, 0x009da627, 0x00ac6453, 0x00cfb0cd, 0x00c4064b, 0x0368fa1e, 0x008edbe9, 0x002fe20d, 0x00390469}}, Y: Field{[10]uint32{0x019b1039, 0x02140225, 0x0080b91c, 0x02ba2bb1, 0x028f6828, 0x00a2bca6, 0x012bbc17, 0x01e601c9, 0x039b43ee, 0x003fac6d}}}, + {X: Field{[10]uint32{0x00ee1999, 0x0053f35d, 0x00fd7cb8, 0x035fc7d2, 0x0031057a, 0x037979f1, 0x005182ae, 0x008c4f02, 0x007e4643, 0x000647da}}, Y: Field{[10]uint32{0x026dbc72, 0x03d2c7a4, 0x001e60e4, 0x0100f542, 0x0043e5c5, 0x00e02336, 0x0239efb8, 0x0338b566, 0x002b3f77, 0x0015192d}}}, + {X: Field{[10]uint32{0x006bcd81, 0x0023ae54, 0x01bf0b22, 0x01321686, 0x03983774, 0x006bbd4d, 0x018c4ff0, 0x02927bd8, 0x017733b0, 0x0018ffd2}}, Y: Field{[10]uint32{0x00593d3b, 0x0126ca4c, 0x020903ae, 0x02321f89, 0x0039535d, 0x02a4fca9, 0x0287b500, 0x0164c7ce, 0x0397ca83, 0x001b32bb}}}, + {X: Field{[10]uint32{0x03fc2c1c, 0x01f96b6d, 0x015564c5, 0x0291a361, 0x00f4ce72, 0x00ba318a, 0x027056c0, 0x0016e9a7, 0x0025c377, 0x003bf8d9}}, Y: Field{[10]uint32{0x01970ad5, 0x02443014, 0x032d08dd, 0x0049485c, 0x028faa7f, 0x00b956ec, 0x01a5f52c, 0x0127160c, 0x035f27ac, 0x000e4ae6}}}, + {X: Field{[10]uint32{0x037e94a5, 0x0001477d, 0x00a99988, 0x00dd3968, 0x02841d47, 0x005c1287, 0x01419102, 0x0302346f, 0x026bdd7c, 0x0001b484}}, Y: Field{[10]uint32{0x00e6e806, 0x01be55a1, 0x015f55da, 0x02c236bd, 0x03efb4d4, 0x02b50849, 0x0372ce6e, 0x02fa5d4b, 0x023acda1, 0x000ba6e0}}}, + {X: Field{[10]uint32{0x00933743, 0x037da941, 0x02f54b20, 0x03261ad3, 0x006d453a, 0x00732a4f, 0x006340dc, 0x02716e47, 0x03f4297d, 0x0033dee7}}, Y: Field{[10]uint32{0x03670c15, 0x02ea8ffa, 0x012ca083, 0x031078d8, 0x00c20613, 0x03dd46d5, 0x01efec2b, 0x0000ac44, 0x008a2c07, 0x002295e0}}}, + {X: Field{[10]uint32{0x01f7e83e, 0x0093f981, 0x023f2c15, 0x02ffdf00, 0x0027f5a5, 0x038b5568, 0x01ba4e80, 0x017b8747, 0x002b4cbe, 0x002c5809}}, Y: Field{[10]uint32{0x000fb5a0, 0x016e318f, 0x01567607, 0x03d19f42, 0x024f1faa, 0x03ece74f, 0x02e9f540, 0x0049801f, 0x03956cf3, 0x0002b0d5}}}, + {X: Field{[10]uint32{0x02bb050e, 0x0336a95a, 0x02733c02, 0x031b7f43, 0x021744d9, 0x0098669c, 0x013dce02, 0x0063661b, 0x012c4f89, 0x001ea191}}, Y: Field{[10]uint32{0x010de179, 0x02daf172, 0x0285a91e, 0x03e90f62, 0x00542370, 0x025b3d15, 0x02a1fb35, 0x02c383ee, 0x031cb558, 0x000c34c2}}}, + {X: Field{[10]uint32{0x002323b9, 0x0014bfd6, 0x01372408, 0x01024e07, 0x00af41ba, 0x025f19dc, 0x0296d3ab, 0x001bbc3a, 0x001a64d2, 0x00289e6f}}, Y: Field{[10]uint32{0x00e42046, 0x0129af1b, 0x0261da1b, 0x034d2d60, 0x02e96199, 0x0380cc60, 0x01a7ab1f, 0x02f1119e, 0x013d701e, 0x002bbf21}}}, + {X: Field{[10]uint32{0x01e5cc76, 0x039bb1aa, 0x0301a0d4, 0x0218987a, 0x00f76918, 0x03167e1a, 0x00c301aa, 0x0005ad82, 0x01705c16, 0x003a38a1}}, Y: Field{[10]uint32{0x030a983d, 0x02cfab27, 0x01eb8f2f, 0x01989da6, 0x02c988ea, 0x02509c9c, 0x0303b7a4, 0x0201442d, 0x0315f8e7, 0x00248d40}}}, + {X: Field{[10]uint32{0x029f2bbd, 0x03833862, 0x03e73459, 0x0216e4e6, 0x0046da15, 0x01cd3e73, 0x015f300a, 0x03f20601, 0x02f814f3, 0x0007f673}}, Y: Field{[10]uint32{0x00abb55e, 0x02230367, 0x025cd264, 0x02a5e528, 0x00c26d79, 0x00117c08, 0x003c71bc, 0x033239bb, 0x033fa50f, 0x0037313d}}}, + {X: Field{[10]uint32{0x027e5f11, 0x006b41a4, 0x0174d39f, 0x02db3d39, 0x03c609d4, 0x03cd93db, 0x0148942d, 0x017f583f, 0x02fc7027, 0x000c86c6}}, Y: Field{[10]uint32{0x00add33d, 0x015118e0, 0x01680c5b, 0x03e3b40a, 0x03725a80, 0x0293207e, 0x01ad36f8, 0x02cc46ba, 0x00ef808b, 0x0004da3b}}}, + {X: Field{[10]uint32{0x02d7bf72, 0x02310bbd, 0x01741810, 0x02731433, 0x03f9ef1e, 0x0037b095, 0x010cad9b, 0x038e4f6b, 0x01fb6518, 0x00137fca}}, Y: Field{[10]uint32{0x00dfb70c, 0x003d308c, 0x00efde4d, 0x022d20c1, 0x02d92f8f, 0x004fb23d, 0x03bfd067, 0x013a0935, 0x006e05aa, 0x0010565e}}}, + {X: Field{[10]uint32{0x00ed1e0b, 0x00dcfdd7, 0x001b9274, 0x01ca56a3, 0x00c839b9, 0x028fcb95, 0x03162e11, 0x00157196, 0x00a5eb63, 0x0024dea1}}, Y: Field{[10]uint32{0x0166afc6, 0x0253cdde, 0x01954532, 0x02c6a73e, 0x0162c122, 0x038f9e8b, 0x03fb3b52, 0x028d4769, 0x00bbbf11, 0x00280c1e}}}, + {X: Field{[10]uint32{0x016cc3d2, 0x03c111fa, 0x03c7a56d, 0x024ecc5d, 0x0156f073, 0x0176dff1, 0x032a87d2, 0x01cee13e, 0x029b7cab, 0x002f8fea}}, Y: Field{[10]uint32{0x02faf77f, 0x02625a02, 0x00ee1029, 0x01a9f8d2, 0x02927644, 0x03a47dfd, 0x01dacc44, 0x0252bd5c, 0x02e01ad7, 0x0039c147}}}, + {X: Field{[10]uint32{0x016c9b41, 0x0037c55d, 0x021f8c68, 0x004ec3ef, 0x0136928d, 0x001635f7, 0x01d24da6, 0x035419d9, 0x006bcc36, 0x00162ce7}}, Y: Field{[10]uint32{0x023d74ff, 0x00b4fc10, 0x0063dad7, 0x0278315e, 0x03b4ecd9, 0x00fdeb9b, 0x0012b777, 0x011b669d, 0x0291aaa8, 0x001127a5}}}, + {X: Field{[10]uint32{0x03765798, 0x00af7270, 0x007b2819, 0x00ac71cb, 0x008c9128, 0x02195d0b, 0x00e21000, 0x002d19c8, 0x0171b166, 0x0026c62a}}, Y: Field{[10]uint32{0x02e0f49f, 0x024b8c4c, 0x03d506c7, 0x00dc1673, 0x022be28d, 0x02819405, 0x0007a934, 0x03e0f4b3, 0x012298ad, 0x000a04b9}}}, + {X: Field{[10]uint32{0x02c0f59e, 0x0286cfb7, 0x002d7f73, 0x031724a5, 0x02c86740, 0x005de209, 0x035e2076, 0x0352f5e8, 0x0003dbac, 0x0029b113}}, Y: Field{[10]uint32{0x0056077f, 0x0124f31c, 0x000e0797, 0x027b1032, 0x022258d2, 0x02abce71, 0x03737278, 0x00d041da, 0x037cd1fa, 0x001ccc5a}}}, + {X: Field{[10]uint32{0x01682ee3, 0x00168e88, 0x03aaa21a, 0x010eefe8, 0x005dde20, 0x012b5e28, 0x037495b9, 0x03e35760, 0x0355628f, 0x0007fec9}}, Y: Field{[10]uint32{0x03b5943b, 0x016bfe36, 0x02fec5f9, 0x02b71a43, 0x03a71243, 0x01c38aa0, 0x019962df, 0x022db3ff, 0x00f7006b, 0x0012811e}}}, + {X: Field{[10]uint32{0x019b8283, 0x03c79e10, 0x0025c3d6, 0x039c23ed, 0x02b67a21, 0x023b97dc, 0x02538a80, 0x00451120, 0x008e3605, 0x002ba931}}, Y: Field{[10]uint32{0x01a80b27, 0x01aeea50, 0x0099b221, 0x00c1ad91, 0x0282c7b5, 0x039c44cc, 0x009d216c, 0x02ce5ef6, 0x02b8c28e, 0x001145f2}}}, + {X: Field{[10]uint32{0x034ed3eb, 0x025e6402, 0x03127f52, 0x0050e0af, 0x030b972f, 0x0000f29b, 0x036fabb5, 0x0009c210, 0x03fa5f8c, 0x00377166}}, Y: Field{[10]uint32{0x03d995c1, 0x0014d17a, 0x02696996, 0x0200ea65, 0x01ad7dbc, 0x0108117a, 0x00370b67, 0x01d6d94f, 0x019fb80e, 0x003db0fc}}}, + {X: Field{[10]uint32{0x014c80a8, 0x00f162c1, 0x0237d0d0, 0x032619a9, 0x0394d204, 0x011d0bdb, 0x03f83ed6, 0x006cb58a, 0x03e7ed30, 0x00088613}}, Y: Field{[10]uint32{0x0179b442, 0x00d85020, 0x00ab4ace, 0x01a8ee03, 0x013bc55d, 0x015a6095, 0x03a389dc, 0x028f5585, 0x01281073, 0x00276c9d}}}, + {X: Field{[10]uint32{0x0201cef3, 0x02a8debc, 0x02eeaf98, 0x00421c4d, 0x036488c5, 0x02ebf0f2, 0x030ed2d6, 0x01bd29d2, 0x03f474e4, 0x00396185}}, Y: Field{[10]uint32{0x02aa2220, 0x013e393c, 0x019d436d, 0x038b93d4, 0x00c6b141, 0x0126906c, 0x03f2047d, 0x038179c6, 0x037552dd, 0x00331a9c}}}, + {X: Field{[10]uint32{0x024f8e41, 0x0280de60, 0x0046c5b2, 0x003c740a, 0x02b7394a, 0x029cecfc, 0x02c2c5ab, 0x0317fb79, 0x00925add, 0x00306a90}}, Y: Field{[10]uint32{0x028c687b, 0x0161b074, 0x0357028b, 0x009815c4, 0x032475bf, 0x0020ead4, 0x016ce735, 0x03d58254, 0x0307e30a, 0x0025c4eb}}}, + {X: Field{[10]uint32{0x01df6168, 0x034a46b0, 0x01b5ac08, 0x0082c2dc, 0x0069e4d3, 0x001931c6, 0x00cd1c23, 0x01916407, 0x008d8957, 0x0012a976}}, Y: Field{[10]uint32{0x0113e6e6, 0x0034cab2, 0x006adf24, 0x020b7396, 0x010c0484, 0x01e01920, 0x0336cc3f, 0x00a23b1a, 0x001b915c, 0x000743a9}}}, + {X: Field{[10]uint32{0x02a8a977, 0x025be4e8, 0x031e7432, 0x01c4e477, 0x02738d41, 0x02a1a680, 0x025e192f, 0x01e0d372, 0x01917313, 0x0024e1db}}, Y: Field{[10]uint32{0x026457a4, 0x01beeb5e, 0x03c3de2d, 0x023e74a9, 0x0173fc6c, 0x015e1a9a, 0x0263d9dd, 0x03514093, 0x023d32ba, 0x001e5211}}}, + {X: Field{[10]uint32{0x011b7b28, 0x012243ea, 0x006ee50e, 0x00295310, 0x035d1808, 0x00bcabcd, 0x033dd13f, 0x020096c8, 0x017d3026, 0x00032033}}, Y: Field{[10]uint32{0x0318bc4b, 0x03f9486d, 0x00292278, 0x03249e1c, 0x019e6260, 0x031eb49d, 0x008f904a, 0x0047e459, 0x018b1f1d, 0x0027dced}}}, + {X: Field{[10]uint32{0x00c8c5cb, 0x010943a8, 0x01bb8fba, 0x0310f39e, 0x00e8e7e7, 0x01ea70c3, 0x004e8579, 0x028d16a3, 0x00d97dd4, 0x0034af49}}, Y: Field{[10]uint32{0x02494b9e, 0x0059ae41, 0x030f7665, 0x0257b868, 0x00055ae8, 0x0027ac0a, 0x03310558, 0x0064c640, 0x00b815cb, 0x000cc3c3}}}, + {X: Field{[10]uint32{0x01d7e9f4, 0x000cc1d7, 0x038b8dc3, 0x02254568, 0x015d7225, 0x00eae605, 0x015457df, 0x03a863ec, 0x03a290de, 0x00353928}}, Y: Field{[10]uint32{0x027d1c21, 0x0308774f, 0x038a56ee, 0x01b2e452, 0x0271c57a, 0x014867a6, 0x02bdc9ba, 0x03b2c5d0, 0x013e77d0, 0x00121512}}}, + {X: Field{[10]uint32{0x03236d19, 0x026f9b51, 0x02bea277, 0x00b85807, 0x03d318f8, 0x0039db8a, 0x011b246f, 0x038e67f3, 0x00f4810d, 0x003c3edb}}, Y: Field{[10]uint32{0x00595daf, 0x03b779eb, 0x00d07ad0, 0x034df3d6, 0x022cc9b4, 0x03aca907, 0x030b1973, 0x0008e622, 0x01606648, 0x0038eb54}}}, + {X: Field{[10]uint32{0x00858939, 0x01cec40d, 0x03ab0ebf, 0x03c66191, 0x039a4f9d, 0x000ac3f1, 0x0191740d, 0x011c30da, 0x018e3f4c, 0x003753b1}}, Y: Field{[10]uint32{0x00a3bfe3, 0x00df6810, 0x0246417e, 0x024253fe, 0x00737a63, 0x0107a4b7, 0x038c8395, 0x01633bc9, 0x0086a3b0, 0x000e9bb3}}}, + {X: Field{[10]uint32{0x03904e51, 0x02baedea, 0x01a8b8fd, 0x00eb771d, 0x012af12f, 0x013dab78, 0x02fe1b6c, 0x03655353, 0x01101d7e, 0x0003b15a}}, Y: Field{[10]uint32{0x0050c54a, 0x02df9435, 0x01d6dbe0, 0x02b6cb30, 0x01be7cba, 0x008bc988, 0x027111ae, 0x013dc50c, 0x027f5d59, 0x000d25f1}}}, + {X: Field{[10]uint32{0x03aa35c5, 0x03668676, 0x03da5a85, 0x02c38a2a, 0x03e25ef6, 0x013b70f2, 0x025e1aa6, 0x015a95f2, 0x02f80518, 0x00329177}}, Y: Field{[10]uint32{0x003521b2, 0x034cf6dc, 0x03df04d1, 0x01a569e8, 0x026eb4ed, 0x0044dcb0, 0x013fcde1, 0x02e7af80, 0x0357268d, 0x0036e2c8}}}, + {X: Field{[10]uint32{0x01b49a47, 0x03702485, 0x022e65f6, 0x00550d73, 0x0040f8ba, 0x03722925, 0x003c8b63, 0x00878920, 0x03889645, 0x002d1314}}, Y: Field{[10]uint32{0x02198d00, 0x018aa0f7, 0x031f5724, 0x02a7076b, 0x01509890, 0x021459ae, 0x0125e04b, 0x012e033c, 0x035df30c, 0x000b8590}}}, + {X: Field{[10]uint32{0x005dea26, 0x033fb2b8, 0x00603666, 0x0386d66d, 0x0333a20c, 0x02d1b65d, 0x01291a54, 0x00bc503a, 0x01e23586, 0x00256dcd}}, Y: Field{[10]uint32{0x024aabb9, 0x01159d49, 0x02553211, 0x02c4a1ba, 0x00f22ab5, 0x01ba0302, 0x03c9977b, 0x02f86426, 0x03055f38, 0x00384a05}}}, + {X: Field{[10]uint32{0x03e5bdfc, 0x024a3b5c, 0x027cee56, 0x02c99b06, 0x00a15c71, 0x03b91c5b, 0x028d2313, 0x00098db3, 0x00678fbb, 0x0020f676}}, Y: Field{[10]uint32{0x03949246, 0x021a1eda, 0x00545991, 0x0308df7e, 0x00c35027, 0x0267d280, 0x03e7d784, 0x03c4cbbf, 0x002fbe92, 0x00381253}}}, + {X: Field{[10]uint32{0x01bbae03, 0x010ddc12, 0x016f02e8, 0x0233cc37, 0x031d3b47, 0x02453891, 0x036bad16, 0x0151b6ef, 0x0085a04c, 0x000262df}}, Y: Field{[10]uint32{0x032ace57, 0x02718f4e, 0x00972e56, 0x03e510d9, 0x01ce4106, 0x0042c299, 0x0027da4a, 0x037f6764, 0x03953733, 0x001da70e}}}, + {X: Field{[10]uint32{0x03b12e45, 0x01018aa8, 0x01dfe086, 0x02c46691, 0x0375019c, 0x03699b54, 0x0358a8f4, 0x00d3b0d0, 0x0277852d, 0x000f39ed}}, Y: Field{[10]uint32{0x027e409a, 0x0158b751, 0x03218e42, 0x03677913, 0x0102cf03, 0x0179062a, 0x0272c4bd, 0x022e1a58, 0x010f0183, 0x001a349e}}}, + {X: Field{[10]uint32{0x02d7836f, 0x011c9fb2, 0x03291e07, 0x0320265e, 0x036b50bd, 0x00550ae0, 0x010dca75, 0x01c40507, 0x00f4d4da, 0x00282f0a}}, Y: Field{[10]uint32{0x03e47c88, 0x02d21665, 0x012242a8, 0x02f329e1, 0x02177eec, 0x027c58f4, 0x005a5819, 0x01e0735a, 0x014940f2, 0x001bb5f8}}}, + {X: Field{[10]uint32{0x02185c0b, 0x03846ac7, 0x00b6818f, 0x03126863, 0x0397750f, 0x00350660, 0x01d290ac, 0x0358ad39, 0x03a352b1, 0x002695c6}}, Y: Field{[10]uint32{0x011b4ad1, 0x0078a56b, 0x00128ff6, 0x01c26f76, 0x030f6c28, 0x00d19245, 0x03c0dfed, 0x03d63e73, 0x00cdb2b1, 0x0006a473}}}, + {X: Field{[10]uint32{0x0221b9bf, 0x03d91f8a, 0x00b93d53, 0x00760d23, 0x004e135c, 0x016a312c, 0x024eca55, 0x0379cc34, 0x004fcdd2, 0x003ee815}}, Y: Field{[10]uint32{0x0374568a, 0x015f8109, 0x023f7aed, 0x0327df6f, 0x02f71a6c, 0x03e0ef9a, 0x02fe631f, 0x01ab3cba, 0x0025a4ec, 0x001e8469}}}, + {X: Field{[10]uint32{0x00920a9b, 0x02af2875, 0x00b485f7, 0x00551585, 0x01ecad11, 0x0070eeb6, 0x002bdd70, 0x03d988e4, 0x013a1edb, 0x00365ac9}}, Y: Field{[10]uint32{0x0318c2e8, 0x0341980e, 0x031f2408, 0x0322c5cb, 0x021499f1, 0x03ccc54d, 0x027d09f2, 0x02e0c4bc, 0x0198f951, 0x000af222}}}, + {X: Field{[10]uint32{0x02267c2b, 0x012e2990, 0x0135613a, 0x00ba51f0, 0x01982338, 0x03e5c8fe, 0x02e14da0, 0x02e09652, 0x03ce1081, 0x000acf05}}, Y: Field{[10]uint32{0x036048ff, 0x037e9a4c, 0x0074fdbb, 0x030b6ef3, 0x02e77205, 0x009e8aad, 0x007f1fa4, 0x00916e23, 0x009f2ebd, 0x00293356}}}, + {X: Field{[10]uint32{0x016439f9, 0x0158da72, 0x021252eb, 0x03253f61, 0x013f6bc5, 0x03891367, 0x0313ea72, 0x0148b1a4, 0x0380fdac, 0x001a5a61}}, Y: Field{[10]uint32{0x01a03154, 0x0007ddc9, 0x0020ec10, 0x0053f880, 0x018d6e43, 0x02ee6653, 0x02b59439, 0x011d7f01, 0x03c6460f, 0x003a3bac}}}, + {X: Field{[10]uint32{0x00848c68, 0x0257be68, 0x03c6d763, 0x03f2b8bf, 0x02d1577e, 0x02ff0bd2, 0x03e172c9, 0x03713258, 0x02114cb4, 0x00078d11}}, Y: Field{[10]uint32{0x004f5b19, 0x00d0db10, 0x01e1da47, 0x00858167, 0x01a2bb46, 0x02ef1b54, 0x016d4643, 0x0268382e, 0x00dfe6f5, 0x0037aeee}}}, + {X: Field{[10]uint32{0x006aa61a, 0x022ba34a, 0x03a1fc55, 0x0213109c, 0x03d5c302, 0x034d78a1, 0x012c191b, 0x00aa6ae8, 0x02024c7f, 0x001b33eb}}, Y: Field{[10]uint32{0x02e7cb11, 0x0120e22d, 0x02de854e, 0x03c7ba0e, 0x0194c4cd, 0x00791623, 0x002ade25, 0x028bf74d, 0x01740c78, 0x00308050}}}, + {X: Field{[10]uint32{0x024c728e, 0x02c5b8b2, 0x0077ec32, 0x00fe525f, 0x02db4315, 0x006884a2, 0x03f0a2e6, 0x0284ccd6, 0x008769b6, 0x0016d7f5}}, Y: Field{[10]uint32{0x00f00c77, 0x039df363, 0x0108850f, 0x03694f10, 0x015a54c9, 0x01a1c46d, 0x01f26321, 0x027513ab, 0x013fb23c, 0x0026550d}}}, + {X: Field{[10]uint32{0x035d069e, 0x01aa6f00, 0x0221565a, 0x0277d504, 0x03e6a41d, 0x00c8ed8f, 0x03bbbd27, 0x01137587, 0x025727af, 0x001add28}}, Y: Field{[10]uint32{0x0032a34c, 0x02674cfd, 0x01756480, 0x01185491, 0x0039b87a, 0x03c01326, 0x03d689c5, 0x0237fed6, 0x0214f17b, 0x00029384}}}, + {X: Field{[10]uint32{0x00e372a2, 0x02fc50ee, 0x004b263c, 0x01b02ab8, 0x03868860, 0x03823cc5, 0x03408b9f, 0x03b4060d, 0x01878ae9, 0x00145c68}}, Y: Field{[10]uint32{0x03172d06, 0x01009d82, 0x037e8681, 0x0057164e, 0x0044da8e, 0x02a3c829, 0x024a4728, 0x014f33f9, 0x026b9641, 0x002d79f7}}}, + {X: Field{[10]uint32{0x03c8e80d, 0x03a5b350, 0x0356c279, 0x024a102d, 0x03dbce8a, 0x014a562a, 0x018568ce, 0x03bcc8d4, 0x006a4337, 0x00037e7a}}, Y: Field{[10]uint32{0x03027da7, 0x0246ed1c, 0x001df5f5, 0x037c1865, 0x0250b2cc, 0x03a4e04c, 0x00e8ff61, 0x01182844, 0x02eec72f, 0x001510ae}}}, + {X: Field{[10]uint32{0x0087c850, 0x0200608e, 0x033072ec, 0x024dedb4, 0x00ac9e46, 0x0240fef4, 0x0076ab73, 0x007dc6be, 0x0279eb6f, 0x003381c0}}, Y: Field{[10]uint32{0x02a155eb, 0x0037b52d, 0x01e84aea, 0x025d4e37, 0x016ea230, 0x0247e2b6, 0x03f2a79e, 0x034d1787, 0x01f988f9, 0x0037a0f7}}}, + {X: Field{[10]uint32{0x002f35fd, 0x01fcd213, 0x00c40766, 0x026c3b4a, 0x0296e578, 0x0274234d, 0x0238936c, 0x03213160, 0x006244af, 0x00280957}}, Y: Field{[10]uint32{0x033c6f7a, 0x0383459d, 0x0269f17e, 0x005f3589, 0x0206cd50, 0x02c83c88, 0x0098293f, 0x02635c32, 0x0007aef8, 0x0024f8b5}}}, + {X: Field{[10]uint32{0x02f0d86b, 0x009b72a1, 0x03ef0d51, 0x010370bd, 0x02138e18, 0x00e0ffd8, 0x00e1197a, 0x01775c50, 0x02adb76d, 0x002ba0b7}}, Y: Field{[10]uint32{0x0320964a, 0x02057295, 0x027c65f5, 0x01606668, 0x0072d36b, 0x038c2d64, 0x036d8ec2, 0x001de6a7, 0x03accaaa, 0x0008e76e}}}, + {X: Field{[10]uint32{0x02332393, 0x00dd7645, 0x0088444c, 0x02b27024, 0x0197c597, 0x02250918, 0x016441ea, 0x0178bb56, 0x01cebee6, 0x0033c266}}, Y: Field{[10]uint32{0x02748ca4, 0x017fecce, 0x01880865, 0x03481a4d, 0x011c664a, 0x016b736f, 0x03f8cd54, 0x03b75407, 0x03d2f074, 0x00198832}}}, + {X: Field{[10]uint32{0x00d3965c, 0x01600ce7, 0x0222a762, 0x00065151, 0x029ec068, 0x02eb2ecd, 0x03ff1b41, 0x02c06d8e, 0x03746404, 0x0017ed2b}}, Y: Field{[10]uint32{0x032abff5, 0x0338e489, 0x03e93d99, 0x02d16553, 0x00916a51, 0x01239d12, 0x009529fa, 0x01a5f350, 0x02e12cce, 0x0011932c}}}, + {X: Field{[10]uint32{0x033216b4, 0x00e83cc6, 0x023a0199, 0x003e0453, 0x002c7a35, 0x00af12b3, 0x01e5687a, 0x008cb815, 0x000a46b5, 0x00056bcf}}, Y: Field{[10]uint32{0x01d45a83, 0x00e95d33, 0x03b37ad8, 0x02795a96, 0x0286c818, 0x028ffdee, 0x035acd93, 0x00e2c11c, 0x039bbdce, 0x002b80dc}}}, + {X: Field{[10]uint32{0x000b4b10, 0x00cf8d95, 0x0046576d, 0x021d9034, 0x0232c887, 0x00b65cf6, 0x00b8b5d3, 0x0333150b, 0x01d1d008, 0x0017400d}}, Y: Field{[10]uint32{0x0254c465, 0x00f9ef9b, 0x02f39617, 0x023356d2, 0x0376db8a, 0x00e9d3c5, 0x009061f7, 0x027ca19a, 0x00e5bffa, 0x001123b6}}}, + {X: Field{[10]uint32{0x03c95527, 0x01eeb520, 0x03915e02, 0x0013f12b, 0x02a40b07, 0x03f1a78e, 0x039d322f, 0x01277fb6, 0x00f39cf7, 0x0025131c}}, Y: Field{[10]uint32{0x006c6f0c, 0x023b2f6e, 0x02fc21a1, 0x03f52388, 0x02df10ac, 0x012699a6, 0x026e95ce, 0x024cc992, 0x003bbf48, 0x002c2b03}}}, + {X: Field{[10]uint32{0x011e4402, 0x02f17585, 0x00acc846, 0x0095b34a, 0x0052e262, 0x02b58bc1, 0x0246754d, 0x00f128fc, 0x01f082ec, 0x003e9486}}, Y: Field{[10]uint32{0x027afae9, 0x0138fcc2, 0x0065a01b, 0x00af7340, 0x01eb730d, 0x000a240c, 0x0364f26a, 0x00c4cb5e, 0x01e9d640, 0x000cb3a0}}}, + {X: Field{[10]uint32{0x00a30ede, 0x010e4a0e, 0x03032704, 0x01ad766f, 0x0085c6a1, 0x0162e146, 0x009455a8, 0x03898c14, 0x0230ddbe, 0x00327d2a}}, Y: Field{[10]uint32{0x00ad7b7c, 0x02dd8c8d, 0x01baea15, 0x00d30be9, 0x03add203, 0x01adcee9, 0x00927994, 0x02bcc66a, 0x03c6b438, 0x0017bdc5}}}, + {X: Field{[10]uint32{0x03770319, 0x0305e39e, 0x02120162, 0x018b7bba, 0x020529b3, 0x01cb53ff, 0x00dd2fdc, 0x0355a56c, 0x03ca7454, 0x000bd33c}}, Y: Field{[10]uint32{0x02f7d487, 0x0033ade8, 0x02042d5a, 0x0317fc51, 0x02fe7c87, 0x02dd9c24, 0x03c1ce0f, 0x03af2fd1, 0x020e3566, 0x003736a4}}}, + {X: Field{[10]uint32{0x01969945, 0x02a5ae1e, 0x02af40a0, 0x01080891, 0x02a1cb0a, 0x007e46cf, 0x03a41a75, 0x035d2bc1, 0x01762e0c, 0x000905fd}}, Y: Field{[10]uint32{0x027807d9, 0x02e9ffc7, 0x02ceefcf, 0x01b65aea, 0x01741ef9, 0x0072d13b, 0x02d0a3f6, 0x01c6f2b6, 0x0355f8dc, 0x001aa5b5}}}, + {X: Field{[10]uint32{0x0088852c, 0x02d86e16, 0x008c66cf, 0x002bba45, 0x00d43d06, 0x02ecf6e9, 0x01ca5bac, 0x00707d9d, 0x0384305a, 0x0026ac8b}}, Y: Field{[10]uint32{0x0028a03e, 0x02d45ea9, 0x01c18e23, 0x01acb32a, 0x03b51d99, 0x02b3768e, 0x02ac12a7, 0x0238e9eb, 0x02faa258, 0x002bc141}}}, + {X: Field{[10]uint32{0x00a72b6c, 0x00074749, 0x02f52875, 0x00996858, 0x0077a917, 0x038551c9, 0x00ed8787, 0x01e4980a, 0x02a22462, 0x003dd087}}, Y: Field{[10]uint32{0x0343fcf6, 0x00224015, 0x004dd8f5, 0x03322160, 0x01fe1c72, 0x03351845, 0x032ca6d8, 0x0104cbcd, 0x0265e448, 0x0036c2b9}}}, + {X: Field{[10]uint32{0x035c6f75, 0x00ef5ff7, 0x01e35496, 0x02edf65c, 0x0110a912, 0x02e61d6c, 0x00bb7918, 0x015fa370, 0x02f3548d, 0x000d5d5a}}, Y: Field{[10]uint32{0x0077a1d2, 0x01c26378, 0x0260fc51, 0x023882c5, 0x0186d94b, 0x03538658, 0x02d69aeb, 0x02d3f753, 0x01ba78a2, 0x0007291b}}}, + {X: Field{[10]uint32{0x03f01837, 0x031136c6, 0x01bc0241, 0x030bf80c, 0x03de4041, 0x0036b9ff, 0x0049d9ab, 0x03ebc859, 0x000c494c, 0x0029fa7c}}, Y: Field{[10]uint32{0x021a0280, 0x02013005, 0x008b7d10, 0x03793bd4, 0x005a7760, 0x02d7eedd, 0x013d0093, 0x0101aa5d, 0x01ae480b, 0x003cabae}}}, + {X: Field{[10]uint32{0x0262adb7, 0x03d79bf2, 0x03c1ac88, 0x028a4213, 0x0064838a, 0x0195739c, 0x037755b7, 0x00a1e5dc, 0x01ba9287, 0x001a5147}}, Y: Field{[10]uint32{0x002b1cd9, 0x00fc69ec, 0x0143c0c7, 0x01ed468c, 0x00107153, 0x01b1ee54, 0x01845d49, 0x03c244c7, 0x03a8d40d, 0x00098863}}}, + {X: Field{[10]uint32{0x02abf06d, 0x01b338f6, 0x00ad35eb, 0x003c3148, 0x0089a92d, 0x0220817f, 0x0186a375, 0x0299bf3a, 0x033015cc, 0x0031270e}}, Y: Field{[10]uint32{0x000e354c, 0x01b59f16, 0x01b5e621, 0x02714f8c, 0x03624291, 0x034ab425, 0x00f9ca99, 0x000ac383, 0x004a665b, 0x001ebf7a}}}, + {X: Field{[10]uint32{0x039dae8f, 0x01ad891a, 0x003871ab, 0x0110215c, 0x0090c0c7, 0x0047053e, 0x036ee1df, 0x01b8e316, 0x01bfb68e, 0x003a7860}}, Y: Field{[10]uint32{0x01ef5e1b, 0x0309a8b5, 0x00018fc6, 0x0297868d, 0x00d1af5c, 0x00d946a9, 0x007e260c, 0x010c5c24, 0x02db3f39, 0x002c2f3f}}}, + {X: Field{[10]uint32{0x02392324, 0x00b8c0b7, 0x028bc406, 0x00e2ae67, 0x012e7d87, 0x0035b87e, 0x01c9e52e, 0x01073d6d, 0x006f0adf, 0x00290a16}}, Y: Field{[10]uint32{0x01b8d142, 0x019fc225, 0x031c83f9, 0x00fd37a0, 0x01a2a741, 0x012737ba, 0x03911e8b, 0x0324dd96, 0x018bfe71, 0x001df0f8}}}, + {X: Field{[10]uint32{0x032712cf, 0x03743641, 0x0194d785, 0x039d7bfb, 0x0038077b, 0x0195a99d, 0x00a4830b, 0x0068952d, 0x02d2de1d, 0x003d724b}}, Y: Field{[10]uint32{0x033958fb, 0x019c2e7a, 0x03f1ed7c, 0x01f80699, 0x01228fdf, 0x01471446, 0x01f6dcbc, 0x0127356d, 0x013a4978, 0x001fba63}}}, + {X: Field{[10]uint32{0x009c3f66, 0x023c062d, 0x034bdf26, 0x031ffc95, 0x01e18c19, 0x019ed55c, 0x01b69307, 0x03d418c4, 0x03ca6c85, 0x002a15c1}}, Y: Field{[10]uint32{0x028aa050, 0x006367d7, 0x0273d775, 0x00d5356e, 0x00536543, 0x00dee3ee, 0x0367d103, 0x038626ab, 0x0271cde2, 0x0005e17f}}}, + {X: Field{[10]uint32{0x00a7468d, 0x0250bfb0, 0x0197c0f9, 0x01819e9f, 0x00d084ab, 0x027b2971, 0x01e0cf81, 0x03470bcb, 0x035fa4c8, 0x0002219b}}, Y: Field{[10]uint32{0x0188336e, 0x024c120d, 0x0009afe6, 0x022e9fb0, 0x02291528, 0x01d8af9b, 0x02c49adc, 0x0241e8bd, 0x026c3f33, 0x000c0508}}}, + {X: Field{[10]uint32{0x020688cc, 0x02f8532b, 0x03d66f40, 0x02d59186, 0x0392af22, 0x036901b3, 0x03d07c8b, 0x00b5a385, 0x017337eb, 0x001097db}}, Y: Field{[10]uint32{0x004d4980, 0x035a63f4, 0x03dbdef8, 0x016561c6, 0x00096436, 0x0202f67f, 0x0373290e, 0x038e446a, 0x026f7c42, 0x003a1954}}}, + {X: Field{[10]uint32{0x00323139, 0x03208f5a, 0x019a2f8a, 0x02bcef27, 0x0236bfe6, 0x00f7ad2f, 0x00184414, 0x02cff555, 0x003e1de3, 0x0003dc3f}}, Y: Field{[10]uint32{0x0224ce03, 0x01012d76, 0x0144adae, 0x002d02aa, 0x008ae575, 0x01ac635e, 0x0374a82d, 0x02cc278d, 0x014b1feb, 0x0022d1e6}}}, + {X: Field{[10]uint32{0x0283116c, 0x002cd8ca, 0x0106758a, 0x03650e7a, 0x00d59c66, 0x02be8487, 0x003b10ce, 0x00a8581c, 0x00f3038d, 0x0006fa58}}, Y: Field{[10]uint32{0x01e29aef, 0x0070378f, 0x0201062f, 0x036c67ba, 0x030647e0, 0x02c0403e, 0x01549cc3, 0x03b810d4, 0x022f8218, 0x001fe932}}}, + {X: Field{[10]uint32{0x020cf385, 0x01cb54cc, 0x02a7e484, 0x022520c7, 0x02e915eb, 0x01a52a03, 0x0351e9f5, 0x02028e2b, 0x02d3bc5c, 0x00007ca8}}, Y: Field{[10]uint32{0x013940e5, 0x0194ef9b, 0x00e9ff55, 0x001d9e0b, 0x0147053f, 0x0399c07e, 0x03cb9455, 0x013127e6, 0x0239174b, 0x0028633a}}}, + {X: Field{[10]uint32{0x00d04766, 0x01dfcf91, 0x0140e884, 0x00dff9dc, 0x019aa67c, 0x01f2beaa, 0x03908611, 0x01ac2edd, 0x03607084, 0x0001875a}}, Y: Field{[10]uint32{0x00f2688f, 0x0230472a, 0x024d2533, 0x03ab2bdc, 0x02b7c4b1, 0x0325b799, 0x02eb59a6, 0x026b858c, 0x02908684, 0x0031fd2f}}}, + {X: Field{[10]uint32{0x02e6cc9c, 0x033c3507, 0x03c4fe6c, 0x00e249db, 0x026d5405, 0x012f9fc9, 0x0108daf0, 0x019145e5, 0x00932d9a, 0x0000acdc}}, Y: Field{[10]uint32{0x015beca7, 0x0002438a, 0x01d9f5ca, 0x0111860e, 0x0391cdfc, 0x005b382d, 0x016a1d86, 0x0262c7b8, 0x03f42c89, 0x003000a8}}}, + {X: Field{[10]uint32{0x02708858, 0x03598a7c, 0x0263a87c, 0x0255a89d, 0x0364af0e, 0x03fa6c07, 0x03fd1360, 0x02de8d35, 0x03efaba8, 0x00123d70}}, Y: Field{[10]uint32{0x0232b5ab, 0x03c0fa3f, 0x015e2b88, 0x02fed4a2, 0x0290aefd, 0x00be5cef, 0x02f09cc5, 0x019c91f0, 0x00b7fce4, 0x002330e3}}}, + {X: Field{[10]uint32{0x0262cfa0, 0x007766cf, 0x00b86e98, 0x03a42798, 0x00adfbe9, 0x01edb54d, 0x01cfc876, 0x03089dbd, 0x01972e5e, 0x0039826d}}, Y: Field{[10]uint32{0x02b43081, 0x00cf997c, 0x0189f0a4, 0x005826b8, 0x02335ca6, 0x02fc6c9e, 0x0385e3db, 0x017f4f8e, 0x01eeff20, 0x001afa70}}}, + {X: Field{[10]uint32{0x016d205a, 0x019a806c, 0x02b0b2ab, 0x01ecb69a, 0x02f19a76, 0x03bc3073, 0x02b8ea81, 0x0273211b, 0x031a5b2c, 0x003af902}}, Y: Field{[10]uint32{0x03c67058, 0x01be4525, 0x032f445d, 0x008035c2, 0x02967d69, 0x02593d76, 0x01899bd1, 0x032f440e, 0x00e8e4fe, 0x000bddc4}}}, + {X: Field{[10]uint32{0x018e3abd, 0x037d964d, 0x01b3ff70, 0x01160f60, 0x03dbc72d, 0x02c18af3, 0x03d32f39, 0x02c7bd94, 0x00399391, 0x0025f353}}, Y: Field{[10]uint32{0x03f37968, 0x036629fe, 0x03fe813d, 0x00ae88ce, 0x02263acf, 0x03a7d72b, 0x03c35c56, 0x02db7be6, 0x0184a175, 0x00281698}}}, + {X: Field{[10]uint32{0x02a7e6d9, 0x0128f06f, 0x0100ebf6, 0x02a80de0, 0x03257343, 0x019566b9, 0x00d99fce, 0x0343a14f, 0x00aa1d3f, 0x00209a4a}}, Y: Field{[10]uint32{0x021efc79, 0x02c1ec8b, 0x0399b020, 0x022a26ec, 0x02faad7f, 0x03dbe112, 0x010fddfc, 0x03a42bfd, 0x01b1a3bd, 0x002f128b}}}, + {X: Field{[10]uint32{0x03a19121, 0x03b4e697, 0x02398967, 0x00c59dcb, 0x0283bd14, 0x0042eb9e, 0x02e91814, 0x0257745d, 0x0097f3ac, 0x000f9d50}}, Y: Field{[10]uint32{0x0118df32, 0x03f99d69, 0x01801135, 0x0251fcfc, 0x0000ca7f, 0x033e50db, 0x0107ea15, 0x033fe282, 0x0299c6a2, 0x001d1b33}}}, + {X: Field{[10]uint32{0x029365db, 0x014c998c, 0x028fa446, 0x0118eee0, 0x0282991f, 0x02809c19, 0x00a236c8, 0x02651e02, 0x0064b49b, 0x003394e5}}, Y: Field{[10]uint32{0x022e5dd9, 0x0353009d, 0x00d41a74, 0x027046cb, 0x03a7bda7, 0x0270b0e2, 0x01f2fda2, 0x011d8c18, 0x02c2b8bc, 0x000d5e3f}}}, + {X: Field{[10]uint32{0x03e349dd, 0x0030ebd4, 0x036692c9, 0x01a4854c, 0x0344a2b6, 0x01929df2, 0x0041d6ae, 0x0056b5eb, 0x01d9cda6, 0x00324cf6}}, Y: Field{[10]uint32{0x0172c610, 0x002c36c1, 0x00c11f9f, 0x012a8713, 0x02a25b05, 0x0262eaf3, 0x02a8ede2, 0x03aeee3c, 0x024f83ba, 0x00129b68}}}, + {X: Field{[10]uint32{0x000b2ac4, 0x0068ef20, 0x03d51d08, 0x03bca009, 0x03a78e2d, 0x0237777b, 0x0116f2e7, 0x02057fa4, 0x003b1aa9, 0x001166a9}}, Y: Field{[10]uint32{0x03e993d5, 0x017f1f18, 0x016454bd, 0x01583f0a, 0x025c6151, 0x0377347c, 0x02900d4c, 0x0178c2c5, 0x03c3de99, 0x0006b3b6}}}, + {X: Field{[10]uint32{0x023b0a5e, 0x01fe44c7, 0x004d43b2, 0x00d268c3, 0x00ff4453, 0x018e6aff, 0x00675640, 0x02b4a7ad, 0x01d99862, 0x0017caa9}}, Y: Field{[10]uint32{0x01ace144, 0x01507258, 0x02cfbce7, 0x02df7538, 0x025acfbb, 0x0116ce6c, 0x01ef9ba4, 0x002fcb67, 0x022be61d, 0x0015c7b2}}}, + {X: Field{[10]uint32{0x00f4fd1d, 0x02079822, 0x000f5756, 0x01fe51ed, 0x01fc2c3d, 0x028ce152, 0x0393e681, 0x01756630, 0x021de6cc, 0x003b19ba}}, Y: Field{[10]uint32{0x01280f52, 0x01f6faaa, 0x025978ab, 0x027e8dc1, 0x02554073, 0x0029525e, 0x014dfa9d, 0x0210d562, 0x03db3b37, 0x0035c47f}}}, + {X: Field{[10]uint32{0x016105fe, 0x0205a0ab, 0x007ab1a4, 0x00e31e15, 0x0169ad06, 0x03472ace, 0x003f018b, 0x01fcb666, 0x01f5aa09, 0x001ab14f}}, Y: Field{[10]uint32{0x0218a598, 0x03238159, 0x00578abf, 0x025aee82, 0x013cd517, 0x010c1e5a, 0x008f2242, 0x02e46652, 0x02815127, 0x00257da6}}}, + {X: Field{[10]uint32{0x0396c0b0, 0x00bc4a67, 0x014fd384, 0x02142cd1, 0x0016fb5c, 0x03700b3d, 0x026dcb8f, 0x0343f711, 0x01e29e4a, 0x002a28fa}}, Y: Field{[10]uint32{0x0316dc2b, 0x00e29559, 0x03685ce1, 0x00242f78, 0x03169b8d, 0x00e535f0, 0x016d152f, 0x037a943b, 0x033e3006, 0x0037e1ba}}}, + {X: Field{[10]uint32{0x02db251c, 0x01030f79, 0x0116632c, 0x01f0c618, 0x001dbe98, 0x03b69b7e, 0x02c84a2f, 0x01d06e57, 0x00d2a0d8, 0x001429d9}}, Y: Field{[10]uint32{0x03e41055, 0x03ed089f, 0x00a4085c, 0x03890c29, 0x0176a8c7, 0x03a6d44b, 0x027632ac, 0x005f052d, 0x03f02339, 0x002ca080}}}, + {X: Field{[10]uint32{0x02b51ef9, 0x01d1b286, 0x013a9423, 0x021160a2, 0x011bd9c5, 0x01b8e73e, 0x0056c9fa, 0x037c749a, 0x00b15ef9, 0x0030b0c5}}, Y: Field{[10]uint32{0x012ab759, 0x0086693a, 0x01d4493e, 0x00c79c5d, 0x03a22f1e, 0x0167c22d, 0x009a9f5d, 0x037eaae5, 0x0286ff7f, 0x00289fe4}}}, + {X: Field{[10]uint32{0x02a9d3df, 0x01aee49d, 0x01b75dbf, 0x01d4dc3f, 0x0364868b, 0x00882930, 0x03ce375e, 0x032344ac, 0x0185da44, 0x002e9955}}, Y: Field{[10]uint32{0x024fda50, 0x0198eef2, 0x0073be51, 0x0139bf22, 0x00bdd9d0, 0x00cb3127, 0x0318f614, 0x00e16f7b, 0x016ba03a, 0x000f5938}}}, + {X: Field{[10]uint32{0x006e600e, 0x0173fbe9, 0x001c2aca, 0x004ee785, 0x0256bd0d, 0x00694403, 0x0276a650, 0x000292d6, 0x0249d4d1, 0x000f517e}}, Y: Field{[10]uint32{0x00059176, 0x02f70ad6, 0x001eced5, 0x0039cc60, 0x00da3039, 0x031d6e92, 0x01a93b13, 0x03b90b87, 0x013c38ee, 0x000024a5}}}, + {X: Field{[10]uint32{0x008c3a8c, 0x011ac12f, 0x005964ca, 0x01fd144e, 0x0083e5ab, 0x03ecb043, 0x025d96e1, 0x030f8903, 0x0346e40d, 0x00391930}}, Y: Field{[10]uint32{0x0204cf4e, 0x03243594, 0x0390fc7a, 0x0293d5f3, 0x030ca364, 0x01d3359e, 0x02205aa3, 0x0142f4a0, 0x03461829, 0x0018fc52}}}, + {X: Field{[10]uint32{0x02a42688, 0x010b756b, 0x001e3fdf, 0x03931ce1, 0x00d56f3f, 0x034f71c8, 0x030d218b, 0x02cc1c16, 0x012fe235, 0x000529f8}}, Y: Field{[10]uint32{0x01e9ff2a, 0x02fce8c5, 0x038099ee, 0x01266b84, 0x00eac312, 0x004de93c, 0x02a22d48, 0x03d20bb5, 0x03cc40ce, 0x0035e5a0}}}, + {X: Field{[10]uint32{0x023828be, 0x03ec1e25, 0x01936a99, 0x00ae1757, 0x0061d2ee, 0x02cbfdbd, 0x0334ffab, 0x01cec896, 0x03b821af, 0x00239ebe}}, Y: Field{[10]uint32{0x026b1853, 0x02739f6b, 0x01ec16cc, 0x01c37b98, 0x02bb5284, 0x00838418, 0x015bea0e, 0x01da33c1, 0x03765aa0, 0x00010391}}}, + {X: Field{[10]uint32{0x03297573, 0x0181a414, 0x002465b1, 0x015629fb, 0x017d8440, 0x03973a0a, 0x00f9f1f9, 0x02f43d2f, 0x01623227, 0x00275904}}, Y: Field{[10]uint32{0x0307fc8d, 0x030d70e6, 0x01b2c126, 0x03576974, 0x021f8630, 0x003fb027, 0x0067ea47, 0x006f95c0, 0x03a06800, 0x003b4360}}}, + {X: Field{[10]uint32{0x03c83eaf, 0x0201625f, 0x00f0b7bd, 0x03c512bc, 0x0352bb40, 0x00f69d39, 0x025b52be, 0x02767d04, 0x02d6d9e4, 0x0019d631}}, Y: Field{[10]uint32{0x004fd292, 0x032d0d06, 0x026e36a1, 0x033351a0, 0x005f7d22, 0x0255df6f, 0x0229b3de, 0x00b0d8e8, 0x008ec2aa, 0x001d26b8}}}, + {X: Field{[10]uint32{0x0061d73a, 0x0045452f, 0x03fb80da, 0x0066d28c, 0x01326327, 0x0293047d, 0x0193df63, 0x00b62c53, 0x01a04570, 0x0002cf84}}, Y: Field{[10]uint32{0x01d562eb, 0x01bef66a, 0x02d189a8, 0x02d8d2c8, 0x009660c6, 0x032e5c11, 0x02238928, 0x01fb0806, 0x02b12b26, 0x0031b854}}}, + {X: Field{[10]uint32{0x026fa5f1, 0x03b56835, 0x00b98994, 0x00f08842, 0x02137bf4, 0x002e789d, 0x0371b0fe, 0x02644404, 0x01ea3b30, 0x001428c9}}, Y: Field{[10]uint32{0x0345b70e, 0x02b8500d, 0x00739dfe, 0x027009d4, 0x028a9939, 0x02ce7bfa, 0x03585279, 0x002a9629, 0x011fd39e, 0x00251b6b}}}, + {X: Field{[10]uint32{0x015e9661, 0x0138c8ba, 0x03e39121, 0x029a91bb, 0x02a97341, 0x02b1423b, 0x02802ce8, 0x03568b3d, 0x02493bef, 0x003df23c}}, Y: Field{[10]uint32{0x0234cb67, 0x00f62347, 0x03f5d4e3, 0x039fe8fc, 0x02573883, 0x02639365, 0x00b7ec05, 0x03cdc051, 0x00c4eec1, 0x000f01cb}}}, + {X: Field{[10]uint32{0x038f85b6, 0x01977200, 0x00cc3c89, 0x02ee1b0a, 0x0038c7e7, 0x03127a9a, 0x030b94e9, 0x00ce1bc2, 0x0350c154, 0x000c0b4e}}, Y: Field{[10]uint32{0x00310744, 0x00b496a2, 0x03720567, 0x00a3539f, 0x013588d1, 0x01b1e324, 0x0366e5a9, 0x02a8bd82, 0x03d0d891, 0x00262011}}}, + {X: Field{[10]uint32{0x019f0eb7, 0x014edf48, 0x0386afbf, 0x03f2c363, 0x021d3810, 0x017b7a26, 0x00e8ecb5, 0x016e9834, 0x03282e7e, 0x0032e3b9}}, Y: Field{[10]uint32{0x038094cd, 0x038058ea, 0x0118e75f, 0x018381a8, 0x02bc10bd, 0x03c12470, 0x009a4e3c, 0x00426423, 0x022befad, 0x0012c13a}}}, + {X: Field{[10]uint32{0x03d5fd42, 0x015cb533, 0x0131b211, 0x00d7e42f, 0x0174f920, 0x031ce927, 0x00f6f04a, 0x0362a883, 0x022b4a0c, 0x0019172a}}, Y: Field{[10]uint32{0x037ef5b9, 0x0320d1be, 0x010a6b6f, 0x008dfd47, 0x03b0aa13, 0x03f945b6, 0x022b64ea, 0x035f0779, 0x019635f9, 0x001e4fca}}}, + {X: Field{[10]uint32{0x015f5a21, 0x031289ce, 0x034f3e69, 0x01ccf617, 0x00f00b1c, 0x0185f593, 0x034b8df6, 0x02d79d50, 0x002f6148, 0x00134dcd}}, Y: Field{[10]uint32{0x03a708bd, 0x01df6294, 0x01cded15, 0x0374e341, 0x034eebd7, 0x006dad99, 0x00a7db2b, 0x031c1519, 0x012bd4c5, 0x00190002}}}, + {X: Field{[10]uint32{0x00c0e0d8, 0x024c5c06, 0x02d3dbd6, 0x00d0db9d, 0x01747a21, 0x034a2f4e, 0x02c6285e, 0x001ecad2, 0x0317024e, 0x00398d2f}}, Y: Field{[10]uint32{0x03e9f021, 0x036e1cc4, 0x00a53020, 0x03efa25f, 0x025e9660, 0x02c44e1d, 0x01d9d8b6, 0x02947b0c, 0x02de4b82, 0x003332f2}}}, + {X: Field{[10]uint32{0x020cef38, 0x0044014d, 0x0192ba51, 0x0018eefe, 0x0264c490, 0x00c74966, 0x03ff5354, 0x03144f56, 0x01e62767, 0x00202803}}, Y: Field{[10]uint32{0x028ef572, 0x033737d8, 0x036b203f, 0x03de54c2, 0x03b2620d, 0x03f71f80, 0x027e23e8, 0x00cd9b11, 0x0189e8d7, 0x001f73ad}}}, + {X: Field{[10]uint32{0x028f8a0f, 0x00b8b767, 0x0225d05b, 0x0197dc65, 0x02baf5b7, 0x0047571d, 0x01b8409f, 0x0143b669, 0x00e6d23d, 0x00181b54}}, Y: Field{[10]uint32{0x03b32788, 0x010d9acf, 0x00cc748c, 0x03a2edf2, 0x004cbb41, 0x0305c480, 0x001d2206, 0x02d30bf3, 0x009245b1, 0x00067d55}}}, + {X: Field{[10]uint32{0x024f0420, 0x03583b83, 0x02a247fd, 0x020ce359, 0x02266c30, 0x0392864c, 0x03ea835a, 0x013edd29, 0x0214f7d4, 0x00272282}}, Y: Field{[10]uint32{0x01d9169a, 0x021d1679, 0x028b4d01, 0x01e8ecaf, 0x018737fc, 0x006bb74a, 0x02da6218, 0x023748c7, 0x02373157, 0x0010b1b0}}}, + {X: Field{[10]uint32{0x0235da1c, 0x030cf6c7, 0x00e59ceb, 0x032810ea, 0x001a32d3, 0x02905e49, 0x01a01548, 0x01bd63fe, 0x00f781a4, 0x0035b33f}}, Y: Field{[10]uint32{0x021d084f, 0x037c88e1, 0x016d568b, 0x02f24409, 0x0287cbcf, 0x015c3e0c, 0x00824e61, 0x01ae362d, 0x021ace84, 0x002872ae}}}, + {X: Field{[10]uint32{0x01f2e3c4, 0x01aeb67d, 0x000da459, 0x03b6903b, 0x006eed5d, 0x0251f234, 0x016f4464, 0x00ffc915, 0x036a3e4c, 0x00233ebc}}, Y: Field{[10]uint32{0x00f3c4d7, 0x0381a4b6, 0x031fcc80, 0x00ee5b28, 0x026b7237, 0x00419fc8, 0x03f81d1c, 0x0337f78c, 0x02ccede6, 0x002646db}}}, + {X: Field{[10]uint32{0x03e664a0, 0x03023aed, 0x03da0541, 0x02c1245f, 0x03189849, 0x031a9b31, 0x02f39738, 0x00e82ef3, 0x01815b0f, 0x00351b0f}}, Y: Field{[10]uint32{0x0167c159, 0x033962b6, 0x026421fe, 0x02650107, 0x0158cffe, 0x02a13b60, 0x02dc9b63, 0x03975f22, 0x03b6d053, 0x000d5492}}}, + {X: Field{[10]uint32{0x037adfff, 0x008ffb0a, 0x02f0490c, 0x01d7280b, 0x03e2ce9b, 0x0118df73, 0x02dce33e, 0x0237dfe0, 0x00a52f1f, 0x0023b5fc}}, Y: Field{[10]uint32{0x028d99ff, 0x003088d8, 0x019a55d9, 0x017509dd, 0x024be1aa, 0x037b8ed9, 0x00272253, 0x0344325b, 0x00c7b418, 0x003c0918}}}, + {X: Field{[10]uint32{0x01aaa2ca, 0x02a17d9b, 0x02c2b0ce, 0x02ca2af4, 0x00825c46, 0x03ba8ffc, 0x03a4d6ca, 0x0146f54a, 0x02dca8a3, 0x0010cfb2}}, Y: Field{[10]uint32{0x022977e5, 0x02850bc5, 0x0038f983, 0x03f20f41, 0x03f6d396, 0x01bce438, 0x00d03c48, 0x0345dd17, 0x01bcc2d7, 0x00134edc}}}, + {X: Field{[10]uint32{0x03a006e6, 0x02cfe72e, 0x014eb249, 0x00ec5701, 0x03ba0449, 0x007d990a, 0x01bbddd8, 0x01fe0dea, 0x02f31037, 0x00301dc7}}, Y: Field{[10]uint32{0x034ccb1e, 0x037c963b, 0x015b0784, 0x00ce98e5, 0x00e1ea2b, 0x01e35312, 0x018c6b47, 0x01a809e2, 0x01ab1d81, 0x000f94f7}}}, + {X: Field{[10]uint32{0x03597ad7, 0x00ea7143, 0x03d238ff, 0x02a29d07, 0x0092072b, 0x00d71b36, 0x0197383e, 0x021ee54e, 0x02264a6a, 0x00370b80}}, Y: Field{[10]uint32{0x0012c74d, 0x00f07c5f, 0x00e01d8a, 0x03272f20, 0x018ddbac, 0x03d65fa1, 0x00ac0ff6, 0x03dc8d10, 0x0346ecd5, 0x002263b9}}}, + {X: Field{[10]uint32{0x02dab771, 0x002dd81a, 0x01f0311f, 0x02cbb60e, 0x01d043d7, 0x0273678c, 0x005f7811, 0x0232fc7f, 0x023459ad, 0x0005aeb3}}, Y: Field{[10]uint32{0x002fb1c4, 0x01b077f0, 0x01243e89, 0x02c4af52, 0x0066e835, 0x00acae0d, 0x02239797, 0x025f8cb2, 0x01326ec6, 0x00003d91}}}, + {X: Field{[10]uint32{0x0169c736, 0x017ce95f, 0x001a4072, 0x036a0e72, 0x029af55e, 0x023c00d1, 0x02539a86, 0x0050e451, 0x018f3a27, 0x002bee53}}, Y: Field{[10]uint32{0x035201d8, 0x03a2f468, 0x009cb386, 0x029d5653, 0x00bdf37f, 0x0158f5d9, 0x00a4eff7, 0x000c769c, 0x014ea455, 0x002bf6ca}}}, + {X: Field{[10]uint32{0x00e89b74, 0x0056aa74, 0x01dc706b, 0x02017de0, 0x02ecc337, 0x0006397a, 0x01b0ae76, 0x03dfd07b, 0x02364a98, 0x002ecc74}}, Y: Field{[10]uint32{0x02031a9a, 0x029307f6, 0x01c27a92, 0x0229ee76, 0x0287cbc2, 0x01373657, 0x009f032f, 0x0331fb35, 0x00031f47, 0x00068193}}}, + {X: Field{[10]uint32{0x004318b8, 0x00f0454f, 0x0270001c, 0x01bb5c9f, 0x03241e48, 0x03bdba0e, 0x0204ee30, 0x0176a059, 0x036c4bbf, 0x003dcec6}}, Y: Field{[10]uint32{0x008c9b17, 0x03e6e29b, 0x01ffb476, 0x03bcedf5, 0x0125ba08, 0x03006c98, 0x00ac2255, 0x0132ead6, 0x016e09d6, 0x00268a2b}}}, + {X: Field{[10]uint32{0x01afa8a4, 0x01ba4864, 0x03313b23, 0x01983c34, 0x03708c87, 0x025816ca, 0x038ea7b6, 0x03168213, 0x0212d0dd, 0x00018ef4}}, Y: Field{[10]uint32{0x016c3e67, 0x001da631, 0x01b0fa33, 0x023b33b3, 0x0102fbca, 0x027f4d0b, 0x03bb0b3a, 0x0100c82b, 0x00f60482, 0x0003b9bd}}}, + {X: Field{[10]uint32{0x02bc6465, 0x001fe186, 0x016299e0, 0x01761d7f, 0x00967b95, 0x031a241e, 0x02416b78, 0x020088c2, 0x022b3606, 0x0018d9f4}}, Y: Field{[10]uint32{0x029417eb, 0x00a225fd, 0x020bbec6, 0x011e4967, 0x03118d16, 0x01657e6c, 0x02444ad5, 0x01e4fc5f, 0x032d14e6, 0x0030fb87}}}, + {X: Field{[10]uint32{0x0085976e, 0x00186a25, 0x02c4f2df, 0x003c2d8c, 0x020c922d, 0x0120e531, 0x0101e3a4, 0x03d4b95e, 0x0143fbb7, 0x001938b9}}, Y: Field{[10]uint32{0x00ab2a4c, 0x024df7ff, 0x0011b48f, 0x01093f38, 0x02895119, 0x0218e939, 0x0047e5a5, 0x01a2d3f1, 0x002e336a, 0x00190698}}}, + {X: Field{[10]uint32{0x03fee1c6, 0x03cc0c78, 0x03f38d6b, 0x01298399, 0x02e16e82, 0x036704c8, 0x0179e869, 0x00d72347, 0x02fd18c8, 0x000b8a42}}, Y: Field{[10]uint32{0x01390f21, 0x0199161e, 0x03874962, 0x02b178dc, 0x02da18cc, 0x00a68d89, 0x0286b0ec, 0x01ad9c1d, 0x028ed2fa, 0x001fe158}}}, + {X: Field{[10]uint32{0x00ee401e, 0x03c421cb, 0x0242b17e, 0x0333602e, 0x00c0ba2d, 0x02231ddd, 0x03229079, 0x0174f7d7, 0x008a0c47, 0x00216688}}, Y: Field{[10]uint32{0x0319f5d8, 0x009ffea2, 0x01e31336, 0x0297c4d2, 0x0384b982, 0x03e84bf3, 0x02ed1e3c, 0x01d0eb58, 0x0245778e, 0x002999f1}}}, + {X: Field{[10]uint32{0x02bcaf21, 0x02b00a80, 0x00939b92, 0x036f64ac, 0x03b608d3, 0x00a7f718, 0x01c0b868, 0x002abbc6, 0x0108ccc5, 0x00324a46}}, Y: Field{[10]uint32{0x02cd2599, 0x023406c1, 0x0231a17d, 0x0115df18, 0x0320cb7d, 0x00bf227e, 0x01352c8b, 0x007d631c, 0x03b74711, 0x0039714a}}}, + {X: Field{[10]uint32{0x01cefb26, 0x03507118, 0x00459b04, 0x031d6369, 0x0364bc42, 0x03c68752, 0x02b01411, 0x02d881e2, 0x009042b5, 0x00140d65}}, Y: Field{[10]uint32{0x034f04e0, 0x01147aaf, 0x02af1e5b, 0x00abdef4, 0x03347c13, 0x009cbe05, 0x00d9bd8f, 0x00193fe0, 0x023db68c, 0x003d87a0}}}, + {X: Field{[10]uint32{0x00a4cbf3, 0x007cb7b1, 0x0343e7b6, 0x00067d17, 0x0039f29a, 0x00ed4d7b, 0x02787c35, 0x03c7ed84, 0x02e7d6a3, 0x003e6f3e}}, Y: Field{[10]uint32{0x032ff883, 0x0301e848, 0x0067b28f, 0x018abb77, 0x02a65658, 0x003f211a, 0x02d5a995, 0x035f9e40, 0x026f273a, 0x003d361b}}}, + {X: Field{[10]uint32{0x014a9152, 0x011c0e7c, 0x01dbad77, 0x03a5fe35, 0x01602ac4, 0x001d91c5, 0x03c0004b, 0x03c143a4, 0x028b901c, 0x0000723f}}, Y: Field{[10]uint32{0x0136769c, 0x01ee031f, 0x00c4c99d, 0x009fdbdd, 0x03b42a0f, 0x02c67e1f, 0x0143b6ec, 0x00a50a48, 0x03347c45, 0x002c9776}}}, + {X: Field{[10]uint32{0x0386f552, 0x010c4c79, 0x004dd2c5, 0x033d04af, 0x008ff676, 0x03ad4d38, 0x023947c6, 0x00ea1f4d, 0x03e14cbe, 0x0000f142}}, Y: Field{[10]uint32{0x0305a74d, 0x03b928e6, 0x032388a0, 0x00f6ed94, 0x00194f55, 0x0119b2b4, 0x02277754, 0x03d80362, 0x031c6e03, 0x00110d11}}}, + {X: Field{[10]uint32{0x030522f5, 0x009c0bb9, 0x01409fe7, 0x02b5b677, 0x005b3e91, 0x03e322c9, 0x0168b4b4, 0x01cbe3ea, 0x01b25554, 0x0019335c}}, Y: Field{[10]uint32{0x01ede304, 0x03c5b622, 0x002af5bf, 0x00f05a1e, 0x0140350a, 0x0066f58a, 0x017fc2a8, 0x0121540b, 0x033ae9fa, 0x003c6c72}}}, + {X: Field{[10]uint32{0x019af7a8, 0x038d0518, 0x00bccc41, 0x039f4bb2, 0x02fd8f69, 0x033102c3, 0x03dded87, 0x030d1b46, 0x0044c584, 0x00307001}}, Y: Field{[10]uint32{0x01879436, 0x0240174f, 0x0238eee0, 0x0332f1b7, 0x01f78dbc, 0x016042d8, 0x03b391ad, 0x03aec21e, 0x00943e3f, 0x00358c6d}}}, + {X: Field{[10]uint32{0x03a2a7ed, 0x03d6558f, 0x01b96cbe, 0x00a2be5c, 0x002fbd0c, 0x02df92e8, 0x0050fd03, 0x02ed871d, 0x0182dad5, 0x003e9425}}, Y: Field{[10]uint32{0x033df4e5, 0x038acd8b, 0x03816165, 0x016cd242, 0x012acdff, 0x01af8865, 0x03890d75, 0x00bde26a, 0x0364617c, 0x00099f09}}}, + {X: Field{[10]uint32{0x01a2386c, 0x008351b0, 0x024d0509, 0x0033df49, 0x0235175e, 0x018130b6, 0x0205f04b, 0x0249aa9b, 0x02e6864e, 0x00195773}}, Y: Field{[10]uint32{0x03ee19c8, 0x03853cb3, 0x02df72bb, 0x00e2d788, 0x025f1dc2, 0x01e596ea, 0x02d36c46, 0x00b2d2e8, 0x02dabf06, 0x00368bab}}}, + {X: Field{[10]uint32{0x033c213e, 0x01bf02b7, 0x01beb760, 0x001b4568, 0x002cc1de, 0x03b17135, 0x03c8fbef, 0x03989025, 0x01ac1b7b, 0x001aad78}}, Y: Field{[10]uint32{0x00a9e466, 0x008c7934, 0x01d3cf36, 0x02353a02, 0x00f83392, 0x03fb37d6, 0x003e0247, 0x00c671d1, 0x03b204eb, 0x0009be60}}}, + {X: Field{[10]uint32{0x00c25f3b, 0x02a75458, 0x01af35f5, 0x02951fbd, 0x036224e2, 0x03dceadc, 0x0373a0d3, 0x02a8b7a7, 0x029e039c, 0x0031f6a1}}, Y: Field{[10]uint32{0x00da579f, 0x010adad0, 0x0175dc79, 0x02267b08, 0x02cfdc0f, 0x01ab9312, 0x02f4cf67, 0x001f604a, 0x010249a6, 0x003a66c4}}}, + {X: Field{[10]uint32{0x0144ef99, 0x03034852, 0x01084a9c, 0x0152fc05, 0x03e20b68, 0x03d34526, 0x028091fa, 0x00f3b7b5, 0x00a15f1c, 0x000a9b53}}, Y: Field{[10]uint32{0x02661ae0, 0x01ad8e03, 0x039b4ced, 0x03cc4fc5, 0x015cb44b, 0x029c0eb1, 0x00d92846, 0x0257a6ae, 0x0288ae92, 0x0037f09d}}}, + {X: Field{[10]uint32{0x01c846c0, 0x018b3684, 0x015752de, 0x009c604a, 0x0292600a, 0x0079dc5a, 0x0259f70b, 0x008932a9, 0x00b3bba7, 0x00111c98}}, Y: Field{[10]uint32{0x008999bf, 0x03687837, 0x00996db8, 0x02990098, 0x038331e2, 0x00184e51, 0x000c9220, 0x00bb7a26, 0x020f33ef, 0x003c5f8f}}}, + {X: Field{[10]uint32{0x03781969, 0x0253dbe9, 0x016fd5b9, 0x0299b94d, 0x015a8788, 0x02cc4abb, 0x00b0f441, 0x01c00e35, 0x00adbaba, 0x002336c7}}, Y: Field{[10]uint32{0x00536977, 0x01dfb75d, 0x00fa17c1, 0x0392e81b, 0x03b88750, 0x0355b080, 0x03be06d8, 0x019ceab9, 0x010e262e, 0x002ce96f}}}, + {X: Field{[10]uint32{0x01caaefe, 0x009aa175, 0x00576851, 0x003c5d76, 0x00bc3e2c, 0x033d1b03, 0x0323e6cd, 0x03e41460, 0x0350fb60, 0x000a2f83}}, Y: Field{[10]uint32{0x022b7320, 0x03e6e8e1, 0x009de21b, 0x030fa590, 0x028d986f, 0x01a30c5d, 0x01404295, 0x02313384, 0x00f7fb18, 0x00173016}}}, + {X: Field{[10]uint32{0x014673a0, 0x012128a6, 0x00eb6f23, 0x0189fe3c, 0x02837e22, 0x0273e0e7, 0x029218ad, 0x03eb522d, 0x00badd2d, 0x0002db73}}, Y: Field{[10]uint32{0x022de992, 0x033f533e, 0x02eafb52, 0x01daba07, 0x02496231, 0x03731cc2, 0x00aa2ab5, 0x005899dd, 0x02d7297f, 0x00387052}}}, + {X: Field{[10]uint32{0x03766a87, 0x01c25578, 0x02e1dbe7, 0x03e4066e, 0x02b9cbb0, 0x0317f369, 0x03ecec9d, 0x03df95e9, 0x02c88813, 0x003917af}}, Y: Field{[10]uint32{0x01fbb07a, 0x004d7ac3, 0x028563ff, 0x01fc4e91, 0x03f915cc, 0x02b2eaa7, 0x03848857, 0x00de0df0, 0x00bb4ccf, 0x000e98a8}}}, + {X: Field{[10]uint32{0x00dccdbb, 0x0087faba, 0x030eb07b, 0x001f7d97, 0x0059bc9d, 0x00adf21d, 0x00b9e552, 0x02752078, 0x037726f3, 0x0037a49b}}, Y: Field{[10]uint32{0x004d8e05, 0x00d9fd8c, 0x02ba0f5f, 0x02c75c86, 0x01115be2, 0x008e7db8, 0x03618ce1, 0x01090092, 0x02a9263d, 0x00274643}}}, + {X: Field{[10]uint32{0x00f2caf0, 0x0280fcbb, 0x03091b54, 0x00b84c17, 0x0091e427, 0x01a5c8ad, 0x03948075, 0x027011b5, 0x03842066, 0x003dd884}}, Y: Field{[10]uint32{0x039e4914, 0x00a4f412, 0x00f6d12d, 0x00aed31f, 0x033088c9, 0x016432a8, 0x01945284, 0x03caa571, 0x00e5a227, 0x003431fa}}}, + {X: Field{[10]uint32{0x025ce751, 0x02effa15, 0x0037d4a8, 0x03458669, 0x01a5cdb1, 0x02e83ae7, 0x00d472e8, 0x03b823d1, 0x028644ff, 0x00139e57}}, Y: Field{[10]uint32{0x0190a4e0, 0x03a0f885, 0x03549749, 0x0156672c, 0x0365038c, 0x01d47961, 0x01b4be3c, 0x01a3e6ee, 0x00e54782, 0x0014a4b6}}}, + {X: Field{[10]uint32{0x01b50b3d, 0x0174b4b7, 0x03559bf4, 0x0237a15d, 0x01cdf75e, 0x02248d4c, 0x0333a97c, 0x02c0fcca, 0x0289a944, 0x001c3991}}, Y: Field{[10]uint32{0x00225586, 0x01349483, 0x0151a536, 0x02eea45a, 0x03925a93, 0x01c79bb7, 0x01ae263c, 0x0226928b, 0x02e5460b, 0x00299d71}}}, + {X: Field{[10]uint32{0x0367056b, 0x02d73c96, 0x020fab08, 0x0240ee76, 0x03477ef3, 0x02d2ffc7, 0x00b8c1c8, 0x0091f803, 0x002e682b, 0x000858df}}, Y: Field{[10]uint32{0x0292d882, 0x0125e793, 0x00e04831, 0x01638934, 0x03c5716b, 0x009f60e1, 0x00c2b6c7, 0x006955f9, 0x025e3e76, 0x0038d5c5}}}, + {X: Field{[10]uint32{0x001d1964, 0x015828e7, 0x02949a40, 0x02c5d19a, 0x03d8ae5b, 0x00062f6e, 0x01a41350, 0x034b85d0, 0x039908da, 0x001da468}}, Y: Field{[10]uint32{0x02422b74, 0x020711c2, 0x00be4d8c, 0x0038a31a, 0x03025728, 0x01db9fc9, 0x03f2296f, 0x016edb36, 0x0004b05b, 0x000897c5}}}, + {X: Field{[10]uint32{0x01af9302, 0x0266be1e, 0x012cb698, 0x0244361d, 0x01b0d11e, 0x009faafe, 0x035a14b0, 0x0021266b, 0x02a4f395, 0x001d20c5}}, Y: Field{[10]uint32{0x03fd7ee2, 0x00c11ed6, 0x0061f179, 0x006e7a11, 0x00f600fc, 0x037628b1, 0x0187c126, 0x0027630f, 0x00d26bd7, 0x00337375}}}, + {X: Field{[10]uint32{0x02ed9b8a, 0x03f83bfd, 0x03390c2f, 0x0146001a, 0x00a97089, 0x007814a5, 0x0084aa6c, 0x03a171b7, 0x01ab3839, 0x002bd623}}, Y: Field{[10]uint32{0x03d9cff0, 0x0055058d, 0x0081d870, 0x00d633c3, 0x01616ca1, 0x03800aab, 0x014131f5, 0x01523c9e, 0x02401b06, 0x0028f4dd}}}, + {X: Field{[10]uint32{0x01b42dc6, 0x011b8436, 0x0253735c, 0x001dbc2d, 0x005f869d, 0x0255ca2c, 0x03617969, 0x01bfec66, 0x00603170, 0x002f6477}}, Y: Field{[10]uint32{0x00f153b2, 0x01c41d91, 0x01a6d161, 0x03df5949, 0x00cdce2c, 0x0381c21c, 0x028db8ed, 0x03d71868, 0x02d15a74, 0x000f258f}}}, + {X: Field{[10]uint32{0x01e98f47, 0x01ccbb7b, 0x0382d985, 0x0209f7ae, 0x030c202c, 0x0132c787, 0x03aa583c, 0x002efd70, 0x00a59146, 0x00398971}}, Y: Field{[10]uint32{0x0170b72e, 0x03733056, 0x0299d7fd, 0x0187244c, 0x000812a4, 0x0392b180, 0x02505348, 0x014e5877, 0x01f9a903, 0x003409b1}}}, + {X: Field{[10]uint32{0x03daac1c, 0x023f971f, 0x000e8ebc, 0x015f6566, 0x00122cd0, 0x0060d5f9, 0x014553c7, 0x024ebe2e, 0x03fed4b1, 0x001af489}}, Y: Field{[10]uint32{0x0221a9f9, 0x03549271, 0x039f022f, 0x012792de, 0x03c66a05, 0x0028ad39, 0x01835d3b, 0x02c1127b, 0x01400a98, 0x0017cff9}}}, + {X: Field{[10]uint32{0x02db2609, 0x03d99907, 0x02f495cf, 0x03e5531b, 0x0068a0f0, 0x016cd39f, 0x03d3872c, 0x01bce148, 0x0225895e, 0x0009dc1e}}, Y: Field{[10]uint32{0x02a777ee, 0x0060088f, 0x0335e03a, 0x02452337, 0x01e5de5c, 0x01fd9dfa, 0x0334b38f, 0x035a5da7, 0x038ec893, 0x003bdbd3}}}, + {X: Field{[10]uint32{0x03f0ebde, 0x005383f3, 0x026db1f3, 0x03039d51, 0x00c01770, 0x010a135f, 0x03770ea0, 0x01053aed, 0x008e3359, 0x00181489}}, Y: Field{[10]uint32{0x03f7b7a2, 0x00638ab8, 0x0312c8b1, 0x034c72e5, 0x031a1ac7, 0x02a955be, 0x0262e020, 0x03551a7e, 0x00585cf0, 0x000f6608}}}, + {X: Field{[10]uint32{0x0370f6bc, 0x0168453c, 0x0150e6c7, 0x019a6d15, 0x034d4fc6, 0x02c8a615, 0x01825068, 0x0049305b, 0x03534fa6, 0x003cb2d6}}, Y: Field{[10]uint32{0x0241112e, 0x029d02dc, 0x008a0ad7, 0x02ef17eb, 0x038ec9dc, 0x00f31de7, 0x0152def4, 0x032b484e, 0x030763a5, 0x00173795}}}, + {X: Field{[10]uint32{0x007a502e, 0x0342c8fa, 0x01b20aa9, 0x01453bdb, 0x0304989b, 0x01d71807, 0x00030c7a, 0x02e7e782, 0x02159fe6, 0x001deb60}}, Y: Field{[10]uint32{0x029b703d, 0x031a037a, 0x0132a87f, 0x01e266be, 0x0300c136, 0x02e87aec, 0x0056add2, 0x0124c9d2, 0x01eeffc2, 0x00249a28}}}, + {X: Field{[10]uint32{0x028fd29d, 0x0132f252, 0x001c8a11, 0x003ee93b, 0x035cc9aa, 0x00b5e246, 0x0380fd7c, 0x03e03e9f, 0x008d171c, 0x0011061d}}, Y: Field{[10]uint32{0x031835c1, 0x02ed063e, 0x02aeebab, 0x01aa99f1, 0x029916c1, 0x009e7f9e, 0x0318322b, 0x006dfdcb, 0x028579f0, 0x000144c0}}}, + {X: Field{[10]uint32{0x027355e0, 0x01f5f98d, 0x008831d3, 0x03ff7df4, 0x01126e59, 0x0046a09b, 0x01901b4d, 0x0321edf9, 0x01606f89, 0x0005abd2}}, Y: Field{[10]uint32{0x00b04c2e, 0x0130b353, 0x009f68ca, 0x03a943b8, 0x0012c8e8, 0x03a8ece3, 0x02131ca8, 0x008f27a3, 0x00405372, 0x000684e1}}}, + {X: Field{[10]uint32{0x02120f9d, 0x00e4be77, 0x03e4aae6, 0x00c0d49d, 0x000730a7, 0x03606123, 0x037ba0ca, 0x00c6e33d, 0x003cab44, 0x0008b481}}, Y: Field{[10]uint32{0x011b8acd, 0x03d3dae6, 0x0145a432, 0x03263b4f, 0x034d71f9, 0x01ff33e7, 0x036520ac, 0x011b4270, 0x01ad5e5b, 0x0035de57}}}, + {X: Field{[10]uint32{0x03676302, 0x02cc9c55, 0x017349fb, 0x022ec906, 0x0241d92c, 0x03d8912d, 0x02033602, 0x0194cdf8, 0x028b3482, 0x00015f9e}}, Y: Field{[10]uint32{0x0199b83a, 0x00a00ed1, 0x022a0975, 0x0374f473, 0x015146af, 0x02ecb951, 0x02bd2eb6, 0x0322cb0e, 0x00e8ba4b, 0x0013648e}}}, + {X: Field{[10]uint32{0x02acc359, 0x01156c09, 0x009da9ab, 0x02093018, 0x007ea19a, 0x01776ac7, 0x02b39ed0, 0x0009f8a0, 0x03602755, 0x0011559f}}, Y: Field{[10]uint32{0x0134f5a7, 0x02e92350, 0x03d4c2fb, 0x03dfdc9b, 0x0182c1cc, 0x0104e4b7, 0x02291611, 0x0153b790, 0x015a77a3, 0x0036d57b}}}, + {X: Field{[10]uint32{0x027fa80f, 0x03e9683d, 0x00c383e8, 0x039c68a1, 0x01798a0b, 0x02114c80, 0x001933ca, 0x024d1e77, 0x01549105, 0x0025a3ed}}, Y: Field{[10]uint32{0x00e8920e, 0x01332849, 0x00bd0b16, 0x0007740f, 0x0201c141, 0x019c60dd, 0x02d83945, 0x03d5430d, 0x02b16853, 0x00018d61}}}, + {X: Field{[10]uint32{0x01873107, 0x0050946b, 0x02d1714c, 0x033446bc, 0x013d640a, 0x01e3dee1, 0x03ef522b, 0x00f35fc7, 0x02490f63, 0x003cd9b1}}, Y: Field{[10]uint32{0x0082c6b9, 0x03ed971d, 0x01546e56, 0x0355c46b, 0x0325b260, 0x0275057b, 0x004cfab5, 0x0262360b, 0x02af38f4, 0x0017f0e5}}}, + {X: Field{[10]uint32{0x00201d06, 0x01a1d0ff, 0x026e9ad0, 0x0224540f, 0x0059b192, 0x00acf0a7, 0x0016effd, 0x01a2cbb7, 0x03d44a2e, 0x002a8313}}, Y: Field{[10]uint32{0x033fee33, 0x037e2dff, 0x01b82b5d, 0x028952a9, 0x002763ac, 0x01d89c34, 0x00b5c4db, 0x01e5dd19, 0x02242fba, 0x0018538c}}}, + {X: Field{[10]uint32{0x032cc876, 0x01125223, 0x00ad2b44, 0x033cdd21, 0x01da4cbd, 0x02a0c391, 0x0057abbd, 0x033b1a47, 0x00ee19b2, 0x001b221b}}, Y: Field{[10]uint32{0x02fc16a1, 0x012e5382, 0x01cf5def, 0x025ef3cb, 0x02a197e8, 0x03b19396, 0x03eb384f, 0x037e1c21, 0x03bd9ab4, 0x000933f2}}}, + {X: Field{[10]uint32{0x02095554, 0x005e16f1, 0x02e439a8, 0x032b7cef, 0x00fbe5e4, 0x0045b538, 0x01d1686f, 0x01dbbb20, 0x0199c33f, 0x00135800}}, Y: Field{[10]uint32{0x03ae614a, 0x0057cc97, 0x028e9dad, 0x03127c58, 0x032bf73d, 0x037fb5d0, 0x01d4321f, 0x03dc3845, 0x00ceb769, 0x0032d053}}}, + {X: Field{[10]uint32{0x010a4fc2, 0x01689697, 0x0230aa67, 0x032b4bc8, 0x0212c3ca, 0x02d96ec5, 0x01e84724, 0x0167839c, 0x00a0196d, 0x000ddf74}}, Y: Field{[10]uint32{0x00feb560, 0x010f1d2b, 0x0338fe03, 0x00d8ad47, 0x021159c7, 0x02cd25d4, 0x03f7c270, 0x009f7297, 0x027d8c8e, 0x000b1c9f}}}, + {X: Field{[10]uint32{0x00820f46, 0x024a2967, 0x025529ca, 0x006633cd, 0x02e8aa50, 0x036402e2, 0x031826f9, 0x037cd46e, 0x038a23af, 0x00273033}}, Y: Field{[10]uint32{0x03e67256, 0x0234d1fd, 0x031f8b06, 0x01197554, 0x00693e54, 0x0290e828, 0x0142c53e, 0x0302a320, 0x015be2aa, 0x002d5cbc}}}, + {X: Field{[10]uint32{0x01fa3050, 0x01363b46, 0x000ead4a, 0x03aa9471, 0x024cfb01, 0x02f81107, 0x01d154a2, 0x00ac7a60, 0x02a64149, 0x0035577e}}, Y: Field{[10]uint32{0x03238ac1, 0x02cb9463, 0x012eb45f, 0x01dc30b7, 0x02da0c4c, 0x008e879c, 0x0098f315, 0x01d30aa6, 0x01cb408c, 0x000b9e57}}}, + {X: Field{[10]uint32{0x01210fd5, 0x001b7b9f, 0x024e8463, 0x021c9e5c, 0x02e3d27e, 0x02b1b01f, 0x035efb3f, 0x00c548c1, 0x03d72d11, 0x0011afd8}}, Y: Field{[10]uint32{0x03b0b199, 0x02cb220c, 0x002fc94c, 0x00dccb8a, 0x02dc4a2e, 0x02417128, 0x03b433a2, 0x00c94df8, 0x01f230fa, 0x001dc6ec}}}, + {X: Field{[10]uint32{0x00ca3aad, 0x000165d4, 0x03a3a13f, 0x02e306a6, 0x03594ef8, 0x01d79f0e, 0x02f1826f, 0x01f05e31, 0x038803e7, 0x0012f3f8}}, Y: Field{[10]uint32{0x021b0129, 0x02abd522, 0x009b62dd, 0x008ed1f4, 0x00ec5ea9, 0x03014e27, 0x0283cf56, 0x0119cbe8, 0x02939dcf, 0x002d558b}}}, + {X: Field{[10]uint32{0x00c241db, 0x01d1ee36, 0x02c57df9, 0x00e477dd, 0x016255ba, 0x012eca92, 0x00ce8023, 0x01a7bb5f, 0x02f4715e, 0x00325a06}}, Y: Field{[10]uint32{0x01e038e6, 0x0087dfb3, 0x02e0828c, 0x0204c420, 0x00da530e, 0x006f72c1, 0x02bb8468, 0x0148197c, 0x01cbb03d, 0x00322c5d}}}, + {X: Field{[10]uint32{0x02fbc33c, 0x02c5af30, 0x00101790, 0x02f531ad, 0x01bd5538, 0x02d3daba, 0x022671a3, 0x01ab1fd2, 0x021b56bd, 0x00027e82}}, Y: Field{[10]uint32{0x03129e63, 0x03f62d8c, 0x01fb5c08, 0x01a1b511, 0x0016056f, 0x0122d219, 0x00599593, 0x01f33b92, 0x02be785c, 0x0009fe7a}}}, + {X: Field{[10]uint32{0x03d0381e, 0x03b1a91c, 0x01feaa56, 0x03caf038, 0x03a87203, 0x019de593, 0x023e7b98, 0x022ab01c, 0x01f0ca17, 0x0005410b}}, Y: Field{[10]uint32{0x010183f2, 0x03b8ef63, 0x033a1677, 0x03f49082, 0x03e271cb, 0x0050f9d7, 0x039eb59a, 0x01ac37e3, 0x0257dac8, 0x0011176d}}}, + {X: Field{[10]uint32{0x0337e9b2, 0x022c0c87, 0x00b65eb0, 0x03403abe, 0x036b7f9d, 0x00876dd9, 0x027da3e9, 0x0061df83, 0x02630d4c, 0x000d53da}}, Y: Field{[10]uint32{0x004ea8fc, 0x026a8ac4, 0x03fea555, 0x0361942f, 0x012eb784, 0x010fbf59, 0x032f480a, 0x0202fbad, 0x003bd65b, 0x00040014}}}, + {X: Field{[10]uint32{0x01de065c, 0x010c3166, 0x03d8ac11, 0x0139e6b8, 0x029e4ba7, 0x009c1f5b, 0x00d8864d, 0x023f0127, 0x01617a44, 0x000670d8}}, Y: Field{[10]uint32{0x009acff5, 0x001bcc26, 0x022fa4dd, 0x00605842, 0x0275742d, 0x02dca67b, 0x02f570c1, 0x03ba0653, 0x03d8fd38, 0x000be7e7}}}, + {X: Field{[10]uint32{0x0083f88e, 0x0130519c, 0x01d395bd, 0x01ed5b39, 0x035a5080, 0x03767ea3, 0x027a2d4a, 0x02299ada, 0x008ad2ab, 0x000dce61}}, Y: Field{[10]uint32{0x01f0cbc9, 0x02058b19, 0x0151e6f5, 0x002440da, 0x01068a54, 0x00b86233, 0x01d20569, 0x000af7d3, 0x00206111, 0x001bf5c6}}}, + {X: Field{[10]uint32{0x0010aa35, 0x018bab07, 0x01ba9500, 0x023e2b1b, 0x012dd7e5, 0x0212e13d, 0x00e66f1f, 0x008cd9f7, 0x0345261c, 0x002708b2}}, Y: Field{[10]uint32{0x012a1116, 0x02fb9901, 0x0146ec8d, 0x005c665b, 0x03605b00, 0x021b72e7, 0x00bead62, 0x02f9ca44, 0x03f58c25, 0x003fe138}}}, + {X: Field{[10]uint32{0x01b4538e, 0x02f7525b, 0x03abbd0f, 0x0215d44f, 0x015a4127, 0x038df155, 0x00c71e45, 0x005cc9fb, 0x01c87f31, 0x0015c851}}, Y: Field{[10]uint32{0x0238871f, 0x031e4422, 0x03550242, 0x02b013a9, 0x015338c6, 0x00485523, 0x02d5166c, 0x002368ab, 0x03ac5e39, 0x00058f98}}}, + {X: Field{[10]uint32{0x01e940ef, 0x0078c84b, 0x0285bd93, 0x036636e1, 0x034c641e, 0x006a59b1, 0x03213b75, 0x00fad63b, 0x0154d841, 0x00327c1e}}, Y: Field{[10]uint32{0x01e17fd0, 0x03061333, 0x0041d792, 0x03cfb7a4, 0x0092cf5a, 0x0026f3b3, 0x025fe7cb, 0x00f4f281, 0x00bc804f, 0x00279a11}}}, + {X: Field{[10]uint32{0x007f25e3, 0x024684de, 0x000c3f92, 0x02a83a20, 0x01f7b0e4, 0x0016a294, 0x024a24df, 0x0228a759, 0x0346b07c, 0x002b0a5f}}, Y: Field{[10]uint32{0x01b66cbb, 0x02637a0a, 0x0185875e, 0x01ddd4f0, 0x02b1556c, 0x01297460, 0x01bbca05, 0x016b5ff4, 0x037f78e4, 0x001a1b8e}}}, + {X: Field{[10]uint32{0x00b3e1b5, 0x025e4d26, 0x0198c218, 0x02f202f0, 0x035ad55d, 0x0087b688, 0x00274df1, 0x029a20e4, 0x013bb383, 0x0001b164}}, Y: Field{[10]uint32{0x00b9ccf1, 0x016ab78b, 0x00dc91c3, 0x02d743de, 0x0153e5b4, 0x00789295, 0x011ebf46, 0x027d28bc, 0x003ae364, 0x00152e6e}}}, + {X: Field{[10]uint32{0x032495df, 0x03aa396b, 0x01b45cf7, 0x03f71e4f, 0x01846e3e, 0x0058f2fe, 0x0259ee92, 0x00d5afb2, 0x03a3f503, 0x002e649b}}, Y: Field{[10]uint32{0x02e2a512, 0x03e41510, 0x03047bb8, 0x0030402f, 0x01054fd0, 0x03f05781, 0x0015c511, 0x039e87b5, 0x03c533d4, 0x00035b75}}}, + {X: Field{[10]uint32{0x00e69556, 0x01ceb61d, 0x03d5a314, 0x03314d5f, 0x03cb36ad, 0x0181cc15, 0x00ac758f, 0x02f9dff8, 0x01d2f2ca, 0x0010c974}}, Y: Field{[10]uint32{0x034904a9, 0x029f53d4, 0x01932ed5, 0x02d7116b, 0x03818c8f, 0x01833123, 0x030562d5, 0x00c57e21, 0x01682ff6, 0x003790de}}}, + {X: Field{[10]uint32{0x00164917, 0x022a3045, 0x03f110d3, 0x037346ff, 0x00eed924, 0x0387103d, 0x03c9059c, 0x02ff292b, 0x015ffd84, 0x002860fa}}, Y: Field{[10]uint32{0x01d64b95, 0x0006ed10, 0x017f0a0d, 0x0176fbc1, 0x00c38d69, 0x0337e57b, 0x005046d4, 0x03290405, 0x0210c7ff, 0x0004715d}}}, + {X: Field{[10]uint32{0x00d07114, 0x017a205b, 0x0009184d, 0x03f4eeaa, 0x02ab7af5, 0x0123f6f0, 0x0251414f, 0x00a3c365, 0x00d9ad65, 0x002cd034}}, Y: Field{[10]uint32{0x020dd4e1, 0x03410384, 0x01384919, 0x02a6db0f, 0x02ae2671, 0x00392da3, 0x024dfbd4, 0x01c3dfe5, 0x026a9ecd, 0x00217b5c}}}, + {X: Field{[10]uint32{0x02719377, 0x03cd3085, 0x0240e8e6, 0x038db035, 0x00b146fa, 0x02781d74, 0x015f0a4c, 0x00be9056, 0x02883599, 0x002d4b6a}}, Y: Field{[10]uint32{0x024ad7ad, 0x0324391e, 0x029df85e, 0x020892c5, 0x004f42f0, 0x011e31e8, 0x00b5cbad, 0x00e2269b, 0x01399fa8, 0x0018222c}}}, + {X: Field{[10]uint32{0x02b9d8ad, 0x015c268a, 0x0218d5dc, 0x00d9148e, 0x01f269ba, 0x030ad7f9, 0x03f82bf7, 0x03e23a7d, 0x011542b0, 0x000242ef}}, Y: Field{[10]uint32{0x028fc4e5, 0x039cd214, 0x00743e06, 0x02432a9a, 0x03c69584, 0x034dd0f7, 0x01461d2b, 0x00d1329c, 0x024a51af, 0x003277e4}}}, + {X: Field{[10]uint32{0x03aa8365, 0x023a9aa8, 0x01fd2278, 0x03ed0e2c, 0x02b31c54, 0x00b24c4b, 0x03d4603f, 0x00653fb4, 0x01a81696, 0x003dcbb9}}, Y: Field{[10]uint32{0x010fde8a, 0x0305c879, 0x0307404f, 0x0331e159, 0x010e66f4, 0x035169cb, 0x03c1078c, 0x003d2e3f, 0x0182b6ca, 0x0038a58f}}}, + {X: Field{[10]uint32{0x02b9fb53, 0x02a0e5f9, 0x01298c35, 0x0137667e, 0x0366a10f, 0x03f4d23c, 0x035d6ddd, 0x0014950b, 0x03715bc7, 0x000422ba}}, Y: Field{[10]uint32{0x0209f1ce, 0x0273c70c, 0x0145b49b, 0x01c2b1af, 0x0297b8d9, 0x00dca261, 0x036df472, 0x02381283, 0x033975a5, 0x0020e22c}}}, + {X: Field{[10]uint32{0x0361d5b0, 0x019fedbf, 0x02e86e26, 0x000524f8, 0x00fe54c9, 0x01fd189a, 0x00a5ff5c, 0x017afe09, 0x02ed8734, 0x00370f6b}}, Y: Field{[10]uint32{0x013411e5, 0x003e2776, 0x01d56da2, 0x01e64ca9, 0x02cf0010, 0x02ad1fd9, 0x02c1683b, 0x00119c65, 0x0241238e, 0x002d69f9}}}, + {X: Field{[10]uint32{0x0265c589, 0x01e70190, 0x03ef9381, 0x00cbe35a, 0x03a82c5f, 0x00e14fbc, 0x01e1d26e, 0x018483a0, 0x003c2be1, 0x000fe5aa}}, Y: Field{[10]uint32{0x035c64b3, 0x00dc4c5a, 0x03a0f2ea, 0x03eaebff, 0x01630ba1, 0x03ef409f, 0x020d7349, 0x03c83f56, 0x030e797c, 0x003ae34d}}}, + {X: Field{[10]uint32{0x03f5c4f3, 0x004ee5bb, 0x038661de, 0x01febc6d, 0x03b35835, 0x00913ef8, 0x00a22780, 0x008f8c73, 0x006ce1f4, 0x0009f2be}}, Y: Field{[10]uint32{0x02b30f61, 0x03e86e28, 0x005a139b, 0x0128bcb5, 0x032187e2, 0x036f7283, 0x03ddbc23, 0x033ed18c, 0x0318647a, 0x003a3ddd}}}, + {X: Field{[10]uint32{0x0374d04f, 0x00931883, 0x0236167a, 0x0071f020, 0x012d301a, 0x01206591, 0x007f9648, 0x021e1862, 0x03b9e241, 0x0019a073}}, Y: Field{[10]uint32{0x0015151d, 0x02d28dee, 0x017608dc, 0x01a66353, 0x03f1ce48, 0x0023447b, 0x01f521cc, 0x03a510bd, 0x033a7849, 0x0027227a}}}, + {X: Field{[10]uint32{0x02ba8da5, 0x02c3996f, 0x0280e67f, 0x03705e57, 0x02fcac45, 0x03eeebe8, 0x02747092, 0x0118e59c, 0x00494866, 0x0019c46e}}, Y: Field{[10]uint32{0x014cfcc6, 0x00ac964a, 0x00118b81, 0x017d834b, 0x016b986a, 0x02f2a947, 0x02d8cecb, 0x017b6488, 0x003f1c8f, 0x003284b2}}}, + {X: Field{[10]uint32{0x031dd94d, 0x0210f8ad, 0x010118b7, 0x019c89da, 0x01fdd734, 0x01a61d71, 0x03d22b05, 0x00b36e83, 0x03d0b110, 0x0017ba73}}, Y: Field{[10]uint32{0x007d7d86, 0x00087782, 0x0063aed9, 0x02522d7d, 0x02060d22, 0x026d80cc, 0x03c518f1, 0x027b9385, 0x00e5bd7f, 0x000775e9}}}, + {X: Field{[10]uint32{0x01f4924c, 0x028fcabb, 0x01785e38, 0x0074b4b6, 0x02d7538f, 0x03408937, 0x0195a466, 0x002f9bcf, 0x017b1339, 0x00161b6b}}, Y: Field{[10]uint32{0x002b64d0, 0x0365e1b3, 0x039867be, 0x00072657, 0x00bc2fb1, 0x00467963, 0x035bd337, 0x00d6085c, 0x01a5a68a, 0x0031ddfb}}}, + {X: Field{[10]uint32{0x025091ec, 0x01c94359, 0x02d9184f, 0x0382b63b, 0x00867f6e, 0x003771fa, 0x024b6e69, 0x004b1c64, 0x02d20fa0, 0x000169d4}}, Y: Field{[10]uint32{0x03b95db6, 0x02ba0651, 0x02d27d53, 0x025d7cb2, 0x03ec1ace, 0x01e2410b, 0x01029fc5, 0x0190a7c5, 0x032b32b3, 0x0015fc88}}}, + {X: Field{[10]uint32{0x013e638e, 0x02a01929, 0x02e60002, 0x0381ef9c, 0x02426372, 0x01e3ac50, 0x00fef223, 0x015dfaa7, 0x02ff22bc, 0x003e4f2f}}, Y: Field{[10]uint32{0x03afe50f, 0x00d08de0, 0x00a5996f, 0x01755c64, 0x03eeadb7, 0x009e793c, 0x03166702, 0x036d0a52, 0x02bb401b, 0x002af1dc}}}, + {X: Field{[10]uint32{0x012608a9, 0x00053a43, 0x038cc3dd, 0x03ee15ba, 0x0076052c, 0x029b98eb, 0x03c34c36, 0x0025c8bb, 0x009e9613, 0x002309cb}}, Y: Field{[10]uint32{0x024607b3, 0x03a49f9b, 0x02dfde85, 0x0058d257, 0x03731e37, 0x022d5000, 0x027d2261, 0x01c588ee, 0x016813c5, 0x002661f4}}}, + {X: Field{[10]uint32{0x01769bc5, 0x021f0453, 0x015e23e1, 0x01327e55, 0x0038dfd8, 0x00e1b770, 0x00226c4d, 0x0150ae95, 0x00d61519, 0x002fde28}}, Y: Field{[10]uint32{0x01910280, 0x01bb262c, 0x00fe55d2, 0x01f4c56f, 0x03e16058, 0x010a567b, 0x0014b59d, 0x03020798, 0x01e4d84e, 0x00182538}}}, + {X: Field{[10]uint32{0x02e65caa, 0x03f6e64c, 0x02b28ee1, 0x016b8c47, 0x01497aaa, 0x0109217f, 0x03ab651f, 0x00a86ffe, 0x0376cd09, 0x0016c992}}, Y: Field{[10]uint32{0x01d70d78, 0x0062381a, 0x00c84c8c, 0x008b5762, 0x021dd847, 0x015a56c1, 0x010fdc88, 0x035f0d98, 0x03594b68, 0x002513e4}}}, + {X: Field{[10]uint32{0x0082b559, 0x03810ab0, 0x027974b7, 0x014409d3, 0x01322f71, 0x03451dc1, 0x03c14598, 0x028344ce, 0x00ea8075, 0x002891cf}}, Y: Field{[10]uint32{0x02575a18, 0x01a2a268, 0x004b5d2c, 0x00a9c212, 0x035168d3, 0x03db2416, 0x0309d794, 0x01ec1b66, 0x030db655, 0x001937a0}}}, + {X: Field{[10]uint32{0x009efa45, 0x022a00d8, 0x02350652, 0x002028a4, 0x01f14b07, 0x01c21ef5, 0x001535da, 0x0314510d, 0x01e63dd0, 0x000f8635}}, Y: Field{[10]uint32{0x00288c5b, 0x027fd9d5, 0x030a6e1d, 0x00589aa7, 0x0026dc2f, 0x0394d1c3, 0x02fd041b, 0x01ce0be0, 0x01b97d00, 0x001ba71c}}}, + {X: Field{[10]uint32{0x0294dfa5, 0x03d855a0, 0x0184b71a, 0x01050a16, 0x026a7674, 0x0308a421, 0x0296eb09, 0x018c56f3, 0x03cdb91e, 0x00346b36}}, Y: Field{[10]uint32{0x013da5a4, 0x03a7e218, 0x014522c9, 0x03a59ae6, 0x00accb67, 0x00f8a74f, 0x00072017, 0x00dd70fe, 0x00d89872, 0x00178ec3}}}, + {X: Field{[10]uint32{0x0050c90d, 0x002badf6, 0x024e1a21, 0x00a3103d, 0x0125ddb0, 0x00d7b3dd, 0x02cc880a, 0x0383cad7, 0x01e29344, 0x000eaa66}}, Y: Field{[10]uint32{0x0143d42b, 0x00eaafe9, 0x01951567, 0x013b1f28, 0x01028c45, 0x027a6a20, 0x02e6fcbe, 0x0286fb74, 0x025cfbe3, 0x00334b38}}}, + {X: Field{[10]uint32{0x01a5017d, 0x0359c258, 0x02398146, 0x0389692d, 0x033e1b31, 0x028e9b28, 0x010aa4c8, 0x00572fb3, 0x021d7c38, 0x0026288d}}, Y: Field{[10]uint32{0x0009f2bc, 0x01c4a28b, 0x00de6d39, 0x01753674, 0x01516df2, 0x035e380e, 0x00213958, 0x00304efa, 0x03780304, 0x0007ccf7}}}, + {X: Field{[10]uint32{0x013d98d0, 0x01459d01, 0x03cc4613, 0x011ef86d, 0x03ff3482, 0x0132da72, 0x03a55628, 0x02e1c1b5, 0x018c907a, 0x0014a2e7}}, Y: Field{[10]uint32{0x01eafabd, 0x01fab4f7, 0x01051aba, 0x014c6531, 0x0129700d, 0x00028450, 0x02d67bb8, 0x015de1f1, 0x0036d666, 0x003e47ae}}}, + {X: Field{[10]uint32{0x025029b6, 0x01b07398, 0x0193a355, 0x0398b236, 0x00f4be50, 0x02e33dcc, 0x01a6a866, 0x0034822f, 0x008d3d1b, 0x003c6b7b}}, Y: Field{[10]uint32{0x03cc7224, 0x01d07506, 0x0178f964, 0x0153822a, 0x0257e4a7, 0x00b51e55, 0x03fb61b3, 0x01860896, 0x00aac3bf, 0x0011e0c9}}}, + {X: Field{[10]uint32{0x0124a099, 0x035429ce, 0x00f10f74, 0x0329d0aa, 0x000e0181, 0x01d752a8, 0x0070cf8d, 0x0056b106, 0x0133b1b1, 0x002acbbc}}, Y: Field{[10]uint32{0x026a91ea, 0x00a6ac15, 0x030a5756, 0x0339c29c, 0x012f2baa, 0x02302bda, 0x0149ef53, 0x03baad5e, 0x0374c584, 0x0028b11e}}}, + {X: Field{[10]uint32{0x00576f85, 0x0326c9f8, 0x00c72348, 0x01f4446e, 0x00539a61, 0x024dc21a, 0x0120e2bf, 0x01be0ec7, 0x001af6da, 0x002753ad}}, Y: Field{[10]uint32{0x01f30eea, 0x035accf1, 0x000d7cc5, 0x031c7096, 0x0373acc3, 0x00d4cc17, 0x02dfe904, 0x03213ea2, 0x000db786, 0x003071ec}}}, + {X: Field{[10]uint32{0x03b916d9, 0x01088a4f, 0x011d018a, 0x023e790c, 0x02a55363, 0x0367a418, 0x006dff05, 0x00b20722, 0x017f7b1b, 0x000c3b75}}, Y: Field{[10]uint32{0x00842ee7, 0x039f1291, 0x00502d44, 0x0192a8a2, 0x00f7449e, 0x02b3f38c, 0x0220b485, 0x015e8607, 0x034b16d2, 0x001af11d}}}, + {X: Field{[10]uint32{0x01306583, 0x00715d0c, 0x0066a41d, 0x029c7a04, 0x00f10969, 0x01248053, 0x0058fc6a, 0x02e15597, 0x039d09a2, 0x000a38fa}}, Y: Field{[10]uint32{0x03bb6c2c, 0x00f23f37, 0x00e7ddc9, 0x00577d2a, 0x0359ad3c, 0x030542b8, 0x025245c8, 0x01019c03, 0x03878073, 0x003f194e}}}, + {X: Field{[10]uint32{0x02ac75a3, 0x015c69a6, 0x00e08c91, 0x02d9d276, 0x035a3a8b, 0x03cfa098, 0x03be578f, 0x010b428b, 0x0335e3c8, 0x0032e611}}, Y: Field{[10]uint32{0x03ea8367, 0x0050a6de, 0x02268b48, 0x01efa64d, 0x004c3e25, 0x035c52bd, 0x013f977a, 0x030fd4c0, 0x00cc7181, 0x003a4d68}}}, + {X: Field{[10]uint32{0x000fe170, 0x00146ae9, 0x037a3ed0, 0x016c82a8, 0x015e4d66, 0x021437f3, 0x0283b106, 0x001fabba, 0x02727e83, 0x000d8619}}, Y: Field{[10]uint32{0x00707a6d, 0x03be3440, 0x0124be32, 0x03cb6976, 0x01ab27cb, 0x038b2cd2, 0x014c710c, 0x037007d7, 0x02d32ae6, 0x003b189b}}}, + {X: Field{[10]uint32{0x006b7d2e, 0x020ec5d3, 0x03136021, 0x02c8ed40, 0x034260ab, 0x032099ef, 0x02ccd54d, 0x03cd970a, 0x015e69e9, 0x002c6903}}, Y: Field{[10]uint32{0x01c186ec, 0x011cc28f, 0x027c3af0, 0x02a02eb8, 0x0331edde, 0x03bd8cba, 0x001ff894, 0x0107d490, 0x01ab2a7b, 0x001d9867}}}, + {X: Field{[10]uint32{0x01660825, 0x02c509c5, 0x02be242e, 0x00d75308, 0x00b32a8f, 0x00988019, 0x03f0ccb2, 0x00288fa0, 0x00b3dff6, 0x002af522}}, Y: Field{[10]uint32{0x000b3a89, 0x03dfc8e1, 0x0105be1b, 0x00124684, 0x03fa9949, 0x006122ea, 0x007a463d, 0x038ebe5b, 0x00f217da, 0x001bbfe0}}}, + {X: Field{[10]uint32{0x01d6aa22, 0x01443293, 0x00598c92, 0x0055cff9, 0x002a5721, 0x0086f6c4, 0x00979743, 0x03ad20bd, 0x0304d91c, 0x002b033e}}, Y: Field{[10]uint32{0x034582d5, 0x03958149, 0x02de81c5, 0x0129198a, 0x02395031, 0x0111d366, 0x018ae4a6, 0x0342a419, 0x01874a90, 0x001ad7db}}}, + {X: Field{[10]uint32{0x03c34432, 0x02ebc46b, 0x008e6087, 0x03cd54a5, 0x02a3a0bf, 0x0374762f, 0x03c75410, 0x012d9da5, 0x020f476c, 0x0007ea2f}}, Y: Field{[10]uint32{0x00788d33, 0x036d6ae0, 0x01e5496d, 0x01ae3d71, 0x03fe79df, 0x02071c61, 0x0161d201, 0x011878ca, 0x00848038, 0x0031ac94}}}, + {X: Field{[10]uint32{0x01f90e56, 0x03ed0970, 0x00ec9b29, 0x0355fa34, 0x03f336a4, 0x015717c3, 0x017d3137, 0x022626a0, 0x03c0d373, 0x000a06d0}}, Y: Field{[10]uint32{0x009f4a9c, 0x02a6ef2f, 0x03689921, 0x0111fe08, 0x03686830, 0x0089e9a9, 0x03e3db31, 0x016726dc, 0x030eba10, 0x0009ad41}}}, + {X: Field{[10]uint32{0x008f4052, 0x02c9a532, 0x02f120f0, 0x0118aa4a, 0x013b83eb, 0x01796a0b, 0x006327f5, 0x007b11d1, 0x01e954e8, 0x0035939a}}, Y: Field{[10]uint32{0x01c8622a, 0x0251e5cf, 0x030d58f3, 0x0036bebf, 0x0227a8f0, 0x019ba952, 0x0275565f, 0x00f28a6f, 0x015f284c, 0x002a9fb5}}}, + {X: Field{[10]uint32{0x00e7b028, 0x02f353f9, 0x03a5417b, 0x02315086, 0x01483fb5, 0x0185e08d, 0x035b0c9d, 0x0076c7c2, 0x02eed4b0, 0x003d336e}}, Y: Field{[10]uint32{0x02c63b47, 0x02eac641, 0x013021dd, 0x011e3aa4, 0x01b2b924, 0x02894022, 0x039f48c5, 0x0264137a, 0x00eb29d6, 0x0019b564}}}, + {X: Field{[10]uint32{0x03c9dca5, 0x00ffc2a4, 0x02f4c724, 0x0334779d, 0x00761fc1, 0x01e74868, 0x02ca8090, 0x038cd03f, 0x004a6c46, 0x0023fe53}}, Y: Field{[10]uint32{0x0149abf7, 0x00236bbc, 0x0377c2ab, 0x00d2a2ed, 0x01772071, 0x021ff731, 0x0342d4f1, 0x01a38ca7, 0x00335f3c, 0x00048f77}}}, + {X: Field{[10]uint32{0x03cf267a, 0x00fb3449, 0x01e705c3, 0x0313cabd, 0x00efed70, 0x00ed93ec, 0x007c0e62, 0x0061adfa, 0x01b46e34, 0x00031e1a}}, Y: Field{[10]uint32{0x0011f48a, 0x01c829d7, 0x01a59629, 0x0291a401, 0x03029aef, 0x0368aef5, 0x017d95d7, 0x002260bc, 0x00393662, 0x00198a55}}}, + {X: Field{[10]uint32{0x02cce1a4, 0x02c90c41, 0x00142351, 0x01c9bbb0, 0x0309836f, 0x016d4106, 0x026ba9e2, 0x03721ef4, 0x02c60ad5, 0x00383a9d}}, Y: Field{[10]uint32{0x00eff928, 0x00f52e35, 0x03dbc5a0, 0x005f22bd, 0x016a3a44, 0x02248ad9, 0x02a620a7, 0x0126ae22, 0x00e66320, 0x0022f5c9}}}, + {X: Field{[10]uint32{0x01e30159, 0x029fac4a, 0x027bfc6a, 0x03492d2a, 0x00e8e357, 0x0220fd4b, 0x0019f1f4, 0x022608d9, 0x02c73e5f, 0x000be98e}}, Y: Field{[10]uint32{0x00d8c3fd, 0x02c0e3ae, 0x01d517d0, 0x00a01bde, 0x007251db, 0x02d79711, 0x025b3146, 0x00fea3d6, 0x001cd632, 0x0015f858}}}, + {X: Field{[10]uint32{0x033026a1, 0x01b4cb71, 0x0012f6aa, 0x01dec808, 0x0149d008, 0x02ede99c, 0x02783fc1, 0x0024c08b, 0x0038d4c5, 0x001d3b50}}, Y: Field{[10]uint32{0x0328476f, 0x01bf509a, 0x0035e80e, 0x0200e3a6, 0x0258234f, 0x03deff69, 0x00618e49, 0x0027a233, 0x030e65d0, 0x0016dd3d}}}, + {X: Field{[10]uint32{0x00025f97, 0x03f4b63c, 0x01148eae, 0x03737101, 0x0216ce75, 0x03f7c83e, 0x02d1f934, 0x004f71b7, 0x00a6e387, 0x001c75ab}}, Y: Field{[10]uint32{0x0067e302, 0x00f9829c, 0x02bae0dd, 0x013688b6, 0x02072ffd, 0x0067da74, 0x00c6c4fb, 0x037f209e, 0x01337d48, 0x002d0c51}}}, + {X: Field{[10]uint32{0x03ed5292, 0x01d2b316, 0x004ac8a1, 0x031a25c1, 0x02ee617e, 0x0100a5eb, 0x02d5720f, 0x02f27e68, 0x03f16e91, 0x000a3ed1}}, Y: Field{[10]uint32{0x00b498f7, 0x02e1293e, 0x0059e0bd, 0x03b4ae9e, 0x00ef8e7a, 0x0250f06d, 0x00db6059, 0x01caf93f, 0x0161d724, 0x003412da}}}, + {X: Field{[10]uint32{0x0347a37a, 0x01c3b887, 0x036f8942, 0x0177898b, 0x03828c5a, 0x0269eccb, 0x02fca795, 0x016d7d74, 0x01f5c865, 0x001a3f35}}, Y: Field{[10]uint32{0x038d74ab, 0x009fcc9d, 0x01fb6d3d, 0x01395183, 0x017aa1ad, 0x029c409d, 0x032bc4e7, 0x01c59b0d, 0x02503362, 0x0015d201}}}, + {X: Field{[10]uint32{0x01aa36da, 0x0041a165, 0x03e97491, 0x01346b1a, 0x0117c974, 0x01e9800b, 0x017f8a8a, 0x02af11fb, 0x02d2f423, 0x0031d85e}}, Y: Field{[10]uint32{0x03121d9d, 0x01fd95ed, 0x022e8d59, 0x03f281b2, 0x0269e330, 0x00cf1852, 0x027a9db8, 0x01b2b72f, 0x0367fba9, 0x00366412}}}, + {X: Field{[10]uint32{0x02487cdd, 0x019864a9, 0x028c8df5, 0x00862c93, 0x01474fdc, 0x00966a74, 0x0278b955, 0x03f85b03, 0x029d2396, 0x0029fbd3}}, Y: Field{[10]uint32{0x02f67f28, 0x01427bd6, 0x015c1f40, 0x03753dd9, 0x0323c1e4, 0x01bc8bcd, 0x003f7e68, 0x02f81263, 0x020491c6, 0x00359e09}}}, + {X: Field{[10]uint32{0x031e2578, 0x01ad0d9d, 0x00890eab, 0x00602789, 0x0271856d, 0x00246ecb, 0x00e420f4, 0x00d9d92b, 0x00467ff0, 0x003cef9e}}, Y: Field{[10]uint32{0x0236dbc5, 0x0198aec1, 0x03309434, 0x00e9a047, 0x010dc58f, 0x02c9fff0, 0x026966f6, 0x03cf959e, 0x025745cb, 0x003cc09d}}}, + {X: Field{[10]uint32{0x02f0259c, 0x00fdd54d, 0x0347094d, 0x00a9385c, 0x016c8d9e, 0x03afd3cd, 0x0214c303, 0x0338a414, 0x03955bd9, 0x0017251f}}, Y: Field{[10]uint32{0x035e76cc, 0x02d729ed, 0x039c468f, 0x0235a3bc, 0x0190a81d, 0x015e2893, 0x01fdf498, 0x014a8f4b, 0x03753e75, 0x002daded}}}, + {X: Field{[10]uint32{0x018b2c68, 0x033d02ef, 0x00c134e4, 0x02274410, 0x002c54c1, 0x0309681d, 0x01b87028, 0x01cd789e, 0x0160c3b1, 0x0008dbf6}}, Y: Field{[10]uint32{0x01bbc279, 0x02b0e416, 0x01181873, 0x02fad097, 0x01b44bac, 0x01e69db3, 0x019360eb, 0x03063743, 0x03f7c0ba, 0x0026ad66}}}, + {X: Field{[10]uint32{0x01947b31, 0x0184ecec, 0x00d99cd7, 0x03ff2a2c, 0x02c1a9e9, 0x02e7624c, 0x01d02438, 0x038bdd96, 0x032617cc, 0x00324b27}}, Y: Field{[10]uint32{0x02357a51, 0x03f826d4, 0x0150b725, 0x037c54e7, 0x02e4804d, 0x006b38ac, 0x02707695, 0x0193ad97, 0x014c1a5e, 0x002af7aa}}}, + {X: Field{[10]uint32{0x01a94fc0, 0x0068509b, 0x03bd28bd, 0x03a02f07, 0x02733c2a, 0x0348b0c5, 0x0383a124, 0x018230cd, 0x03c9142c, 0x00261821}}, Y: Field{[10]uint32{0x0342a1cd, 0x01844fea, 0x0068d3fa, 0x0373ac9b, 0x038f5bad, 0x01158b37, 0x0282c650, 0x02d475af, 0x03f5fd76, 0x00052496}}}, + {X: Field{[10]uint32{0x008a1d43, 0x01e18869, 0x021bf914, 0x024e0ed0, 0x0222424e, 0x00d5942d, 0x0244e21f, 0x02eab5f1, 0x0374f4f6, 0x00119687}}, Y: Field{[10]uint32{0x0388cb48, 0x03fa48f1, 0x031579f2, 0x01ee0c91, 0x03d41c14, 0x036c0554, 0x02698d57, 0x00c2f7b9, 0x01e41794, 0x0009b69c}}}, + {X: Field{[10]uint32{0x009796b4, 0x033b9bd7, 0x00a00785, 0x03645643, 0x03c7aa2e, 0x002d1ab6, 0x033c88bd, 0x005f113f, 0x00cdf281, 0x00375d96}}, Y: Field{[10]uint32{0x03cc43be, 0x01ecd033, 0x00f37c1c, 0x0303ddf7, 0x039a9b8a, 0x0391749f, 0x034935a8, 0x03a65c29, 0x000d1e10, 0x000c8c5f}}}, + {X: Field{[10]uint32{0x03c72033, 0x033ae1d5, 0x02d09715, 0x022f766b, 0x006222af, 0x0097d4bf, 0x0148b177, 0x03127ad1, 0x02bfa803, 0x00156f4a}}, Y: Field{[10]uint32{0x013ebf43, 0x037f214f, 0x00e3553a, 0x02e10559, 0x0096b991, 0x0373ca95, 0x03c603b8, 0x0112ceaf, 0x03b39d73, 0x000d2b4c}}}, + {X: Field{[10]uint32{0x0012fcde, 0x0322297b, 0x03c36db0, 0x01d90627, 0x00440068, 0x0056c787, 0x01616d30, 0x0089b232, 0x0006d10c, 0x001def97}}, Y: Field{[10]uint32{0x029ba01b, 0x03f67810, 0x037f6ec8, 0x017b6597, 0x0020e8b5, 0x000d86e7, 0x0327ae1b, 0x01252623, 0x03ca5c47, 0x00333cb2}}}, + {X: Field{[10]uint32{0x012ab21c, 0x02dabcbd, 0x0161830d, 0x03bb52ed, 0x0180b890, 0x03a9f6f7, 0x0060b19b, 0x03c987c1, 0x00863eb6, 0x003eadc9}}, Y: Field{[10]uint32{0x0076d0b0, 0x00bdd322, 0x025c15d2, 0x03ebea76, 0x00b67f6a, 0x0276039a, 0x01174ed9, 0x00b8baaa, 0x003a408a, 0x0002453c}}}, + {X: Field{[10]uint32{0x020b2f66, 0x02e0208a, 0x005a109d, 0x017573c4, 0x02510db6, 0x039e0c52, 0x02671f8d, 0x022e1942, 0x0039fafe, 0x0008ca88}}, Y: Field{[10]uint32{0x0178576a, 0x03cfb0ab, 0x02218d95, 0x0389934b, 0x033be3a6, 0x0085bb04, 0x03b9f6ee, 0x03078d4c, 0x0082510b, 0x0005329c}}}, + {X: Field{[10]uint32{0x037f58e7, 0x00e41506, 0x00cfc64e, 0x028a252a, 0x01deee9f, 0x023c4f9a, 0x01847526, 0x013fde81, 0x0039612a, 0x002cd20a}}, Y: Field{[10]uint32{0x0126ae44, 0x03edc757, 0x0193a3f2, 0x00919ac4, 0x01653b82, 0x01f16378, 0x034e9faf, 0x00096c3a, 0x02eddf30, 0x001c8b40}}}, + {X: Field{[10]uint32{0x02353210, 0x008e6596, 0x017b2858, 0x012889b7, 0x02cf6fd8, 0x024c89c4, 0x0310871a, 0x01d61f2a, 0x02570b0a, 0x0034e1ce}}, Y: Field{[10]uint32{0x0160f186, 0x01789fd4, 0x011d660e, 0x003327f0, 0x01f1f45d, 0x01578cd4, 0x03f95b1c, 0x039c1b37, 0x018459c7, 0x000edf92}}}, + {X: Field{[10]uint32{0x022c20ad, 0x02cb6e85, 0x03281cc9, 0x030c9b72, 0x0226a049, 0x011f029e, 0x01289a71, 0x02caddc7, 0x008ceeeb, 0x00220a1e}}, Y: Field{[10]uint32{0x007b71a7, 0x0197d230, 0x0364cc8c, 0x00b77928, 0x025da2fa, 0x0125c709, 0x0398922b, 0x017c88f5, 0x01958742, 0x00390a28}}}, + {X: Field{[10]uint32{0x027e537d, 0x002cfd3a, 0x0280a37f, 0x02d3a9d5, 0x0052f8db, 0x024fe85d, 0x0186c189, 0x030035d2, 0x013126d0, 0x001e7fb9}}, Y: Field{[10]uint32{0x002cb5b6, 0x0005ea20, 0x035a4560, 0x02fa4f56, 0x01525ceb, 0x00eaceaf, 0x017b4a14, 0x03e652d3, 0x00713143, 0x003f7940}}}, + {X: Field{[10]uint32{0x02814e91, 0x03962a19, 0x01cbaac1, 0x0272fda6, 0x03367242, 0x000ead42, 0x00f3a8ce, 0x017de57c, 0x01f05a9f, 0x003d13ce}}, Y: Field{[10]uint32{0x019a1dd4, 0x02768c35, 0x030e3fc0, 0x01191ab1, 0x02ff75a2, 0x02aca2ee, 0x00a27afb, 0x004c0254, 0x01d1e4de, 0x002e5791}}}, + {X: Field{[10]uint32{0x00aa9abb, 0x009bb0a0, 0x02148504, 0x02fcf0be, 0x02da45af, 0x00cb3def, 0x01d7d788, 0x0326dee2, 0x0209baf9, 0x00044e38}}, Y: Field{[10]uint32{0x006a0d6e, 0x01f9267c, 0x02f88372, 0x005c259c, 0x03ac7d59, 0x0399fcba, 0x02285207, 0x02cabc3a, 0x016a3965, 0x000570a3}}}, + {X: Field{[10]uint32{0x00912c1e, 0x02e0fe4d, 0x02620472, 0x03c56bf0, 0x00dcd3d3, 0x02940c4c, 0x024685aa, 0x035e3183, 0x01421b98, 0x000a74fa}}, Y: Field{[10]uint32{0x02bf5825, 0x011729f4, 0x02ce1a6d, 0x019f222e, 0x01411c8c, 0x02df14ee, 0x01d46b6d, 0x0025a485, 0x00f84968, 0x00242945}}}, + {X: Field{[10]uint32{0x00ff3eb8, 0x025a7021, 0x020c7e90, 0x022294fe, 0x01d6efeb, 0x034b51c2, 0x00c18d7c, 0x00cf813c, 0x02945fdd, 0x002a28da}}, Y: Field{[10]uint32{0x016ab564, 0x025abd7d, 0x002a9bb5, 0x03351e7c, 0x0223db1f, 0x033b872b, 0x02aedbe1, 0x0335c009, 0x0105edbf, 0x000775fe}}}, + {X: Field{[10]uint32{0x02981eff, 0x0030849a, 0x03fd5367, 0x032a0498, 0x003c35f2, 0x00f9e81b, 0x02ab4f0c, 0x02513e43, 0x02ceb3fa, 0x00168123}}, Y: Field{[10]uint32{0x03c886ff, 0x035b52ed, 0x019b24b3, 0x0015a486, 0x008e330d, 0x03a201df, 0x03caf7b5, 0x03b59754, 0x03aeb70f, 0x000493c6}}}, + {X: Field{[10]uint32{0x0132b8ba, 0x0204a23a, 0x031583dc, 0x03b35ca5, 0x00fd1eb4, 0x01917eb1, 0x01ee579c, 0x02f0bd99, 0x02820c5e, 0x000c81c0}}, Y: Field{[10]uint32{0x01bdaa17, 0x036b7ca1, 0x03d55b86, 0x026a00f2, 0x03c17eda, 0x022109c1, 0x03b11ee0, 0x0101fb6b, 0x022d0d68, 0x0023da59}}}, + {X: Field{[10]uint32{0x03afe787, 0x01e91f95, 0x01786db7, 0x024c9e86, 0x02c78105, 0x0202927f, 0x0188a7b0, 0x034fc6ee, 0x025bfb04, 0x001f08a1}}, Y: Field{[10]uint32{0x0036bd3b, 0x03c1b874, 0x00d53097, 0x01c9839c, 0x03d0830b, 0x00e7c672, 0x01997344, 0x02675f55, 0x026e30f5, 0x00280bac}}}, + {X: Field{[10]uint32{0x039385cc, 0x0384f2c2, 0x033a422d, 0x01682abc, 0x01fd842e, 0x00f730d9, 0x02c8269a, 0x02094b01, 0x001330ad, 0x00282e93}}, Y: Field{[10]uint32{0x02239bc8, 0x00a4397f, 0x00960c13, 0x00511d5a, 0x00940fdb, 0x01dee7a1, 0x036d2ce2, 0x02efdfce, 0x03135cfd, 0x00163b2a}}}, + {X: Field{[10]uint32{0x00f76309, 0x007b08d1, 0x038194e3, 0x0121c399, 0x03007be4, 0x00b8b033, 0x03e47a41, 0x02e97723, 0x0042c8a2, 0x0010ab98}}, Y: Field{[10]uint32{0x02a1542e, 0x03c826f7, 0x02c3ce19, 0x008f2f25, 0x0336ea3a, 0x00f19119, 0x010a6e75, 0x022fc888, 0x01ac7ba3, 0x001cab5a}}}, + {X: Field{[10]uint32{0x007b2a19, 0x000b56c2, 0x01e7c6e8, 0x00323f04, 0x01d8f35f, 0x01c081ce, 0x025d82f4, 0x01e8b8fa, 0x00b64550, 0x0023ceba}}, Y: Field{[10]uint32{0x025b4cfe, 0x034ae03b, 0x036a50d1, 0x009f4fe6, 0x03604259, 0x02e6c51c, 0x003420ef, 0x03b5506e, 0x02353028, 0x00186ee3}}}, + {X: Field{[10]uint32{0x005df32f, 0x006d0dec, 0x004c00d9, 0x00498ab9, 0x00a7ba1e, 0x00254f9b, 0x024fb4f3, 0x00648283, 0x024b1e15, 0x000ea12e}}, Y: Field{[10]uint32{0x013e20c0, 0x02eb679f, 0x02ce7d3c, 0x03af3771, 0x0332c44e, 0x02438743, 0x023abe9c, 0x017c51ec, 0x01794352, 0x002c83d9}}}, + {X: Field{[10]uint32{0x03316210, 0x017f6239, 0x005b62d2, 0x0204af05, 0x017b87d1, 0x03918b9f, 0x00c102bd, 0x02940cfb, 0x026c0b04, 0x0019207f}}, Y: Field{[10]uint32{0x0364560d, 0x039709e3, 0x01075b26, 0x003abbcc, 0x03d4e88b, 0x00232461, 0x036538b8, 0x00ab4245, 0x00abf5f3, 0x002f306d}}}, + {X: Field{[10]uint32{0x0151a094, 0x004c1935, 0x02f4d1ff, 0x032b2b02, 0x038e4bd1, 0x03dceccf, 0x01cd3651, 0x0160febe, 0x0174722c, 0x00014d00}}, Y: Field{[10]uint32{0x01a66a8e, 0x02f88840, 0x00a41a3b, 0x016ebafe, 0x01d9e465, 0x021742a5, 0x0035180f, 0x0185b439, 0x0135448a, 0x00392408}}}, + {X: Field{[10]uint32{0x022867cc, 0x003e1493, 0x0349bb35, 0x029e4372, 0x016c9ee2, 0x015ef0cb, 0x024e08bd, 0x017135b0, 0x02aea582, 0x00301a4f}}, Y: Field{[10]uint32{0x03b9a05e, 0x0217618c, 0x00a0462c, 0x022bbf83, 0x01f4f617, 0x032e3ed5, 0x006c601b, 0x01047817, 0x034b7627, 0x0036883e}}}, + {X: Field{[10]uint32{0x00fa0d9d, 0x02dba4cf, 0x0335ca91, 0x006a0d59, 0x01e63e58, 0x02862608, 0x03f9200c, 0x00140b45, 0x037372fd, 0x00314743}}, Y: Field{[10]uint32{0x02352655, 0x02b5308b, 0x03413b3b, 0x01f4f1be, 0x03a2797a, 0x013ae5e6, 0x03ff1345, 0x01fb74b3, 0x02b207ed, 0x00234439}}}, + {X: Field{[10]uint32{0x02c3290c, 0x005837ef, 0x0059dbe3, 0x023b674b, 0x03366600, 0x022d4ab4, 0x02f79f85, 0x0266b8b6, 0x00564d2d, 0x0005a046}}, Y: Field{[10]uint32{0x012e7460, 0x03ddee8a, 0x0202d1ad, 0x0128f021, 0x033e9cc8, 0x0148b342, 0x01dbac34, 0x01e123a0, 0x01a14561, 0x000afafc}}}, + {X: Field{[10]uint32{0x000afeb5, 0x0125d21f, 0x01a0920a, 0x02695e0d, 0x030b1599, 0x01952a9b, 0x00e16225, 0x021496cb, 0x0133e143, 0x001eba52}}, Y: Field{[10]uint32{0x019b95f5, 0x00bd3d6f, 0x0390195a, 0x02dbd10f, 0x01a13b87, 0x038ccc6f, 0x00282a51, 0x0191684e, 0x0237830a, 0x0024644b}}}, + {X: Field{[10]uint32{0x0019d4ac, 0x0166684c, 0x0036b179, 0x02c156cb, 0x02c27709, 0x00b46fc2, 0x014c5f6c, 0x01daac90, 0x0197d02b, 0x0039de4b}}, Y: Field{[10]uint32{0x013f2b52, 0x02e6383b, 0x02e8d16f, 0x00528a05, 0x01dd2746, 0x01755b30, 0x00c75a0d, 0x02c5e6e6, 0x02895fce, 0x0027d365}}}, + {X: Field{[10]uint32{0x0247bde1, 0x0278d34c, 0x004f769d, 0x001bba9b, 0x003d97d7, 0x02b1e514, 0x00ff64f4, 0x0358fc93, 0x01d4946f, 0x0000bfee}}, Y: Field{[10]uint32{0x0381014f, 0x0095edfa, 0x03a9ff32, 0x00c955db, 0x02cff188, 0x038d823a, 0x016907a6, 0x0054c4af, 0x00743488, 0x00019ac7}}}, + {X: Field{[10]uint32{0x00bb2fbe, 0x01722c7b, 0x00ea3c16, 0x02e84b80, 0x01aeb6f4, 0x012b9cd4, 0x012aafab, 0x03bac450, 0x0232f90c, 0x0011512e}}, Y: Field{[10]uint32{0x038f6736, 0x0221f2e7, 0x017b3948, 0x022e0d1e, 0x002bba53, 0x000b6eff, 0x039ede9b, 0x033ba2fe, 0x03b4c2a5, 0x0018bef5}}}, + {X: Field{[10]uint32{0x0118980f, 0x0278f99e, 0x0137a1b0, 0x039e2093, 0x025d981c, 0x02319ed7, 0x02b156dd, 0x03fe89d7, 0x01b925d9, 0x000942c0}}, Y: Field{[10]uint32{0x0209c481, 0x03ae074f, 0x000ff261, 0x0185010b, 0x03eb1851, 0x01d98967, 0x032bcbe6, 0x036a1b94, 0x024a32f0, 0x002e8764}}}, + {X: Field{[10]uint32{0x02beb4d2, 0x0387fb82, 0x030f5ecb, 0x004e4078, 0x0262e0b8, 0x00ba58bb, 0x00468073, 0x017f71cc, 0x02541f2a, 0x00273cc3}}, Y: Field{[10]uint32{0x01510723, 0x035528ed, 0x00741c6b, 0x03ad959f, 0x02848259, 0x02aa3fd8, 0x0201d14b, 0x02ddec65, 0x02cd1281, 0x001f2c91}}}, + {X: Field{[10]uint32{0x02285a2c, 0x005ec695, 0x01c03cd2, 0x03293c47, 0x01b5a90e, 0x0254213b, 0x013be124, 0x0287823e, 0x00b13c61, 0x003b727a}}, Y: Field{[10]uint32{0x021e1f3d, 0x03e67f98, 0x01fda5e9, 0x02168bf7, 0x01b0e8df, 0x02320198, 0x0143b1b5, 0x03eb1d3f, 0x012107e8, 0x0019b0bf}}}, + {X: Field{[10]uint32{0x01e2c66e, 0x020b1c3c, 0x036b6970, 0x000acf76, 0x02cae9d0, 0x009ee06e, 0x02a41649, 0x029260aa, 0x015f8388, 0x0037650a}}, Y: Field{[10]uint32{0x00d6706b, 0x03af0602, 0x00f4bfd3, 0x02c920b6, 0x033b08c2, 0x007eb20f, 0x00d9e8cb, 0x0307aa6f, 0x020cd409, 0x0020e301}}}, + {X: Field{[10]uint32{0x0285ab7e, 0x01d14d41, 0x0087692f, 0x037742b1, 0x0296e96d, 0x02ff1cd3, 0x000d3b35, 0x02f92397, 0x0204dfc0, 0x001f81a3}}, Y: Field{[10]uint32{0x02c70d0a, 0x02100793, 0x036462c8, 0x0021e620, 0x0369351e, 0x024fc52f, 0x00052e60, 0x00972341, 0x014690d2, 0x0037cb34}}}, + {X: Field{[10]uint32{0x009a5052, 0x010fce65, 0x0217a21f, 0x01cdf7b0, 0x00b7c2a0, 0x01b10e68, 0x02e659f7, 0x02b26c11, 0x03cfd10a, 0x001cea6f}}, Y: Field{[10]uint32{0x03be10dd, 0x01092a6c, 0x00ec24a1, 0x03da46a7, 0x03bf379d, 0x023e1b2f, 0x002062c0, 0x02c1481a, 0x01293ea7, 0x001cee45}}}, + {X: Field{[10]uint32{0x0008c55b, 0x0211fb35, 0x0205adaa, 0x012fda6f, 0x0055cc22, 0x0216026f, 0x0234678d, 0x031d539b, 0x03840c8c, 0x003bf77f}}, Y: Field{[10]uint32{0x02f188d5, 0x01b75b70, 0x013fc173, 0x0228ed9c, 0x008aac21, 0x03116d2b, 0x026ed7e0, 0x02aacbbf, 0x03418264, 0x00197763}}}, + {X: Field{[10]uint32{0x03d73f4b, 0x015a23af, 0x03585756, 0x016c5c69, 0x01dc264f, 0x010e1b76, 0x023d6dfa, 0x00e13634, 0x01857118, 0x0011aa51}}, Y: Field{[10]uint32{0x01aaf35c, 0x03004699, 0x02a6d256, 0x03a3a37c, 0x031e684e, 0x0239fd85, 0x03f16cb3, 0x03063d36, 0x037ea298, 0x000f796b}}}, + {X: Field{[10]uint32{0x0021cd3f, 0x03a91fce, 0x0193b910, 0x02326b5b, 0x0045dd0c, 0x038582a5, 0x02fa17bb, 0x03099752, 0x01b27ce3, 0x001a243b}}, Y: Field{[10]uint32{0x03cbd1ab, 0x008103dd, 0x03852dd2, 0x03abad9e, 0x037c24be, 0x02a200aa, 0x00810a7c, 0x01525336, 0x005b10ef, 0x00183d1f}}}, + {X: Field{[10]uint32{0x0205f5ae, 0x02d12d0a, 0x0288d952, 0x03087d55, 0x01e33e68, 0x01e89470, 0x02c4b328, 0x0221aa07, 0x02b6340b, 0x00023327}}, Y: Field{[10]uint32{0x007fb6eb, 0x022fc08c, 0x01c95507, 0x01c05432, 0x01f03238, 0x02f11d6e, 0x011981a3, 0x020a4224, 0x030d90e3, 0x0026c5da}}}, + {X: Field{[10]uint32{0x015b0475, 0x007f8a92, 0x00e0b0fd, 0x03809b25, 0x01227875, 0x025b3785, 0x0001ccae, 0x03782d60, 0x035ada48, 0x000ac18b}}, Y: Field{[10]uint32{0x031eab0d, 0x00d4e40b, 0x0280548b, 0x02523bfd, 0x02da9de9, 0x02fc5c9d, 0x0097bad4, 0x01c31420, 0x00683d51, 0x0014dfc7}}}, + {X: Field{[10]uint32{0x037240f9, 0x01ea2fae, 0x0008252d, 0x037c9fcc, 0x01cd358b, 0x0093a48c, 0x032ff7f2, 0x0354fd0c, 0x011a84b3, 0x0037556e}}, Y: Field{[10]uint32{0x012a5c94, 0x02064206, 0x0158bff6, 0x01ce8eb0, 0x01774d21, 0x037bbe5a, 0x03376094, 0x0194c3b5, 0x0208a40b, 0x00039bc6}}}, + {X: Field{[10]uint32{0x02c59c70, 0x032592bc, 0x01e7516f, 0x02035c54, 0x008986fd, 0x01e0bb8b, 0x000cdb1c, 0x02a5e51b, 0x03e040b1, 0x002b1449}}, Y: Field{[10]uint32{0x03ae5db9, 0x017a806d, 0x038e2476, 0x025e202b, 0x038afbb0, 0x01d9164f, 0x020a82e1, 0x0014e776, 0x0249323d, 0x00212788}}}, + {X: Field{[10]uint32{0x01311123, 0x0084b06d, 0x034bff72, 0x008c54c5, 0x039d1364, 0x038776b9, 0x004e9ce1, 0x033a68de, 0x02daf0b6, 0x0037cbcb}}, Y: Field{[10]uint32{0x006d46a5, 0x031d7dba, 0x027bedba, 0x01105880, 0x02fde6ab, 0x01991009, 0x02da64f4, 0x02f080c5, 0x038ebd78, 0x002e7663}}}, + {X: Field{[10]uint32{0x0373e5f9, 0x03e4f5e8, 0x0002773f, 0x03d0fec2, 0x0097bdc5, 0x00844d84, 0x0385e216, 0x0305d88e, 0x0387d630, 0x003f60ec}}, Y: Field{[10]uint32{0x036cd2ee, 0x019c2daa, 0x00837d3c, 0x02f0e10e, 0x01115805, 0x0303f772, 0x03503d40, 0x00d69675, 0x027d375f, 0x0026a58a}}}, + {X: Field{[10]uint32{0x02cac4df, 0x03ae384c, 0x00c9505f, 0x0079081b, 0x00d565ca, 0x028ffaaa, 0x02ad443b, 0x0322b22f, 0x03c1155e, 0x00363ef7}}, Y: Field{[10]uint32{0x011f73ac, 0x02697a9d, 0x03abc9cb, 0x03587e58, 0x027fb1fc, 0x03afdd90, 0x01258edf, 0x0272d1ce, 0x000fccb9, 0x003e514f}}}, + {X: Field{[10]uint32{0x03bf86d6, 0x00443037, 0x010ddc89, 0x01cae08d, 0x0285f008, 0x01aabcf5, 0x03093891, 0x03a3006c, 0x009a20a3, 0x0027f25d}}, Y: Field{[10]uint32{0x023e19df, 0x0129e661, 0x02379109, 0x02eb9d69, 0x0075c85c, 0x0023c3c6, 0x033bca70, 0x02b1655d, 0x01a76c92, 0x0028bd9e}}}, + {X: Field{[10]uint32{0x03476a3f, 0x032057cb, 0x00f62b58, 0x024b4dca, 0x0365b810, 0x038865ae, 0x02bcf252, 0x0073a6f6, 0x034671a9, 0x000a7838}}, Y: Field{[10]uint32{0x00d0c0e6, 0x02f5a635, 0x039d4174, 0x002aad0b, 0x011ce5ad, 0x0319ac98, 0x00a35fb9, 0x002b91e6, 0x0061b82e, 0x000bd103}}}, + {X: Field{[10]uint32{0x02e102d7, 0x01ad4642, 0x0278f873, 0x002ea1bb, 0x007fbee7, 0x0330f7ee, 0x03e6f929, 0x015683c9, 0x02153989, 0x003901a2}}, Y: Field{[10]uint32{0x03165086, 0x0279a623, 0x014e77d6, 0x010c1d1f, 0x0016b911, 0x012a68d4, 0x01999438, 0x0272dabb, 0x02ad550f, 0x0028fcbc}}}, + {X: Field{[10]uint32{0x026c9f2c, 0x01080a1c, 0x0109248a, 0x01934f55, 0x0010f163, 0x0132065e, 0x03156c8a, 0x0366262e, 0x0210bb1b, 0x00146d17}}, Y: Field{[10]uint32{0x03e141a2, 0x023256f8, 0x03f6bb47, 0x01452315, 0x008a1f1d, 0x00004330, 0x01ac4797, 0x03798ca0, 0x01d04225, 0x0038c1c6}}}, + {X: Field{[10]uint32{0x02a0b83e, 0x032fe96a, 0x005acf6f, 0x00bf5683, 0x0164dc49, 0x01b18ecf, 0x02ec2e60, 0x02dad7a4, 0x01297b8a, 0x00053357}}, Y: Field{[10]uint32{0x03666805, 0x00af5df8, 0x033279b7, 0x01c0a91a, 0x015be192, 0x02c71f63, 0x01ad1faf, 0x032198d2, 0x03d77cdc, 0x0016fcc1}}}, + {X: Field{[10]uint32{0x022c4da6, 0x03376d74, 0x0168f8c3, 0x037d067b, 0x0045e9f2, 0x027060a2, 0x02254cae, 0x03451b0c, 0x031149d6, 0x00296a29}}, Y: Field{[10]uint32{0x00bf6c2e, 0x002eeb4f, 0x012d549c, 0x0205e0cf, 0x00b003f4, 0x0158e6fc, 0x00ae6933, 0x034d16bd, 0x00877bc3, 0x0027d1f6}}}, + {X: Field{[10]uint32{0x039372cb, 0x01303107, 0x038f999a, 0x0394b31d, 0x01bda494, 0x00519893, 0x01b13ddd, 0x0108cb5d, 0x00d24baa, 0x000d64ca}}, Y: Field{[10]uint32{0x001af6d8, 0x0206b3c9, 0x03050a78, 0x01f5923d, 0x03b6695d, 0x0323da02, 0x0084afe0, 0x00e67a64, 0x02b571df, 0x0034c555}}}, + {X: Field{[10]uint32{0x0273e7fd, 0x03e56f79, 0x005e891a, 0x0304349b, 0x00c8fdac, 0x02407b6c, 0x0268a12d, 0x0168b05c, 0x01ca4f2a, 0x00327ae0}}, Y: Field{[10]uint32{0x008adb66, 0x034a5092, 0x008df76e, 0x0394d558, 0x035acb73, 0x026fef5a, 0x01ae19cd, 0x03fa69c4, 0x012fc974, 0x001b5294}}}, + {X: Field{[10]uint32{0x02ca8e2c, 0x037979b0, 0x01f386cc, 0x00c093d0, 0x0248e557, 0x02d840b8, 0x00c9f90e, 0x02cc22b1, 0x01f816f3, 0x0038998c}}, Y: Field{[10]uint32{0x039306bd, 0x011857fa, 0x0224858a, 0x00502f56, 0x0396cfb8, 0x00146094, 0x01e2f102, 0x03b34059, 0x02a8823a, 0x0005b82c}}}, + {X: Field{[10]uint32{0x019110ba, 0x020d57fe, 0x029658db, 0x03e68ec2, 0x02677e5a, 0x01a711cc, 0x0007b242, 0x039f941e, 0x02f365c0, 0x003ddba6}}, Y: Field{[10]uint32{0x012a9407, 0x032c04ef, 0x021028a0, 0x018a5ab6, 0x019d174c, 0x0217e759, 0x02f25423, 0x00593af6, 0x0039d26f, 0x002032fd}}}, + {X: Field{[10]uint32{0x012c5dd9, 0x03d89c21, 0x03421e65, 0x01521079, 0x00bc333d, 0x02a23f38, 0x01d6ab69, 0x00520ca5, 0x005baf89, 0x00373205}}, Y: Field{[10]uint32{0x031e2a19, 0x031866bc, 0x01480cca, 0x03360362, 0x00296155, 0x000d8eec, 0x00d6cd16, 0x039ea6d0, 0x0370a620, 0x0033b6cd}}}, + {X: Field{[10]uint32{0x0203e4fd, 0x00feb4f1, 0x03847ed3, 0x010107b6, 0x007660bc, 0x02ba4c06, 0x02a199ec, 0x01343e95, 0x013a6a1c, 0x001d9178}}, Y: Field{[10]uint32{0x0291e713, 0x01308b2f, 0x002ee186, 0x014ec8b1, 0x02bcfc53, 0x036a2434, 0x01eccbb5, 0x03975449, 0x011b7990, 0x001f23a9}}}, + {X: Field{[10]uint32{0x022f3f25, 0x00acc627, 0x00fb4422, 0x01751788, 0x01465822, 0x00706daf, 0x027210d5, 0x02f3bebf, 0x006ed74c, 0x002e89a2}}, Y: Field{[10]uint32{0x02b3409d, 0x01436e28, 0x02893bdf, 0x009dcd67, 0x01e0b896, 0x02ee8c9b, 0x025fa64a, 0x02b7ba79, 0x01b223dd, 0x003f6217}}}, + {X: Field{[10]uint32{0x01050fe1, 0x03486946, 0x02c92299, 0x023579e4, 0x000fc657, 0x029497a0, 0x01bda654, 0x016c7640, 0x00e13100, 0x001a2d40}}, Y: Field{[10]uint32{0x0312f96b, 0x001757da, 0x0202207e, 0x009e0f80, 0x008df9b1, 0x01f6951a, 0x01ac8e87, 0x012a53cf, 0x017ab354, 0x001c7bdf}}}, + {X: Field{[10]uint32{0x027996ff, 0x03a9d6b6, 0x01064b84, 0x03265029, 0x035b19f7, 0x00b1be81, 0x03f851f1, 0x02a0f09f, 0x03e2613f, 0x000b3329}}, Y: Field{[10]uint32{0x03d7707f, 0x02b83cc9, 0x005703c6, 0x023c2fb5, 0x03cf37af, 0x03164e42, 0x01b2d2f0, 0x006b4343, 0x022222dd, 0x0016adc2}}}, + {X: Field{[10]uint32{0x03179f14, 0x03d369bd, 0x033c1827, 0x03013573, 0x00383ad9, 0x032db729, 0x01af7183, 0x0291686d, 0x012d6a56, 0x001b5e5f}}, Y: Field{[10]uint32{0x000edf3f, 0x0189547a, 0x02ea67b1, 0x0078568e, 0x03b80e54, 0x035bd6a2, 0x0284bee7, 0x03463667, 0x00e5d203, 0x0002ab8d}}}, + {X: Field{[10]uint32{0x018ee327, 0x001665ba, 0x027b5116, 0x0160157d, 0x009a565a, 0x025a94f9, 0x013751ad, 0x01dac655, 0x03c437be, 0x002a9a65}}, Y: Field{[10]uint32{0x00684835, 0x0030cf03, 0x034cb3cc, 0x01de87d3, 0x036532e2, 0x038bd7c6, 0x018a15b2, 0x0103825a, 0x00219cdb, 0x00180d29}}}, + {X: Field{[10]uint32{0x022a0f48, 0x00316fae, 0x02dead01, 0x02137006, 0x0201e624, 0x02c3e25f, 0x005d53a7, 0x0075c28d, 0x03bffb8e, 0x0015b103}}, Y: Field{[10]uint32{0x02f0bd01, 0x032daa91, 0x01f4c458, 0x01e1f8a6, 0x01676a4a, 0x01cf632a, 0x03a0e091, 0x024a409e, 0x0389078b, 0x003a7419}}}, + {X: Field{[10]uint32{0x03918d89, 0x0240f545, 0x010731d2, 0x00dca94d, 0x01b6e1e2, 0x02d4b0f7, 0x0262be08, 0x03b5ef70, 0x02a83963, 0x0036dbfd}}, Y: Field{[10]uint32{0x01951769, 0x02dc461f, 0x03bdc162, 0x019435d5, 0x030e248d, 0x00513283, 0x02f6b18c, 0x03f512d0, 0x02fa0f30, 0x00290044}}}, + {X: Field{[10]uint32{0x03402c6d, 0x03286018, 0x01de4151, 0x01cdd539, 0x03dcdd11, 0x02950c04, 0x00e730d4, 0x018f88ce, 0x0301a46f, 0x00237d55}}, Y: Field{[10]uint32{0x03a1c3df, 0x0344b755, 0x02a93b9d, 0x0196f227, 0x02b3e696, 0x0122efd8, 0x016ddafb, 0x00ffc04e, 0x009a64b6, 0x001933e7}}}, + {X: Field{[10]uint32{0x030588a1, 0x03d22806, 0x00af37be, 0x033b7896, 0x0166485c, 0x01775791, 0x03ae460e, 0x023d5d01, 0x002c5101, 0x0027442f}}, Y: Field{[10]uint32{0x00922c04, 0x0324e261, 0x02ac2fcb, 0x00baba83, 0x01726b30, 0x000f7fae, 0x01ebe44e, 0x0385c5fb, 0x0008b2a4, 0x000e3a8f}}}, + {X: Field{[10]uint32{0x03640367, 0x02e601cd, 0x03e662e4, 0x01ec3f39, 0x02056025, 0x0080581b, 0x027a7068, 0x029e1cb2, 0x0075cc07, 0x0004eef2}}, Y: Field{[10]uint32{0x00c2c708, 0x011d2c70, 0x007697fe, 0x02bf5bd5, 0x02d2ea3d, 0x02abc6c7, 0x00a19acb, 0x00a99b63, 0x031a47c8, 0x002d3365}}}, + {X: Field{[10]uint32{0x02a9c3e1, 0x03273257, 0x02b1e24e, 0x028c4f24, 0x011857d9, 0x00369b72, 0x0147630d, 0x02c5d372, 0x0037f617, 0x0023c9b7}}, Y: Field{[10]uint32{0x033f15ef, 0x03ddb839, 0x0375bd5c, 0x03f0554c, 0x00f887f2, 0x01646b11, 0x00238776, 0x02fc9d39, 0x03031d96, 0x000e1228}}}, + {X: Field{[10]uint32{0x007b5f21, 0x0295e693, 0x01041ad3, 0x026c4419, 0x03a23e0d, 0x01836f84, 0x015236f6, 0x0245bd79, 0x003df290, 0x000b8795}}, Y: Field{[10]uint32{0x01473846, 0x002b4bed, 0x02d28ff1, 0x020ca3f8, 0x03947bc0, 0x00610d2d, 0x00cd9f32, 0x00176b04, 0x0127626e, 0x00221691}}}, + {X: Field{[10]uint32{0x023f3109, 0x02020b3b, 0x0385a123, 0x0143a31e, 0x018bed8f, 0x00fada6d, 0x0076936e, 0x027aa2ee, 0x00a3e050, 0x00320f0b}}, Y: Field{[10]uint32{0x029cd5ed, 0x01f0cc4c, 0x00c0e3b0, 0x01d54c07, 0x0074b75e, 0x00276955, 0x030da10d, 0x02378ac2, 0x02a9bc80, 0x000ae580}}}, + {X: Field{[10]uint32{0x03d29607, 0x0347eaf4, 0x02700578, 0x00724181, 0x01afee8b, 0x038e14c4, 0x024111ae, 0x005394c9, 0x03b4e2c1, 0x00231e40}}, Y: Field{[10]uint32{0x01025731, 0x011cddbc, 0x01b2528d, 0x000620a6, 0x00b488c4, 0x00a8d0fa, 0x02ebea9a, 0x03e53407, 0x02d1964d, 0x003740b6}}}, + {X: Field{[10]uint32{0x02569cc0, 0x029a0769, 0x009bda38, 0x02199532, 0x01b51857, 0x00707ae1, 0x00adfc6c, 0x01d732cc, 0x0054dd75, 0x0012098f}}, Y: Field{[10]uint32{0x0213167f, 0x037ee204, 0x03955dda, 0x017d572d, 0x02e223ac, 0x00964dba, 0x0198e49a, 0x02d4a03b, 0x03bddacd, 0x0039bc41}}}, + {X: Field{[10]uint32{0x02f0d2d3, 0x02c95185, 0x0227495f, 0x009f153b, 0x00accb71, 0x00f35766, 0x018644c6, 0x007d61e4, 0x010aea7d, 0x001a9f01}}, Y: Field{[10]uint32{0x0021e232, 0x01c95bb6, 0x0154628d, 0x020ed2ec, 0x02f80f73, 0x00226c32, 0x03f733dc, 0x0191b8d2, 0x026127a2, 0x003eb464}}}, + {X: Field{[10]uint32{0x035c3ea8, 0x0168661f, 0x01a3bf10, 0x02683331, 0x030ece87, 0x00c72c27, 0x01147dcc, 0x03080b7e, 0x013f62fb, 0x00387c29}}, Y: Field{[10]uint32{0x01706277, 0x02483c79, 0x01d8dcfe, 0x024bf8b9, 0x003968f6, 0x0100dde0, 0x03148489, 0x03a8c030, 0x010f0b0e, 0x000e4c28}}}, + {X: Field{[10]uint32{0x03182b7b, 0x00999d74, 0x0213b485, 0x0029b539, 0x02da9b6a, 0x02293219, 0x026efcae, 0x03296ff5, 0x0113cb0f, 0x002f03ec}}, Y: Field{[10]uint32{0x03090f31, 0x02871b2f, 0x0060131c, 0x01581d17, 0x0037892c, 0x00fb2c52, 0x0315f691, 0x03baef49, 0x025e6993, 0x0038479c}}}, + {X: Field{[10]uint32{0x0342f908, 0x02c0ca72, 0x034fe266, 0x0285d284, 0x030ee7e6, 0x027ab9ed, 0x03f9ebf8, 0x023d2192, 0x00f49c43, 0x0007f968}}, Y: Field{[10]uint32{0x0275f66c, 0x03584271, 0x0379b35a, 0x012b3a6d, 0x02069451, 0x03e9ed65, 0x033878bc, 0x0190724a, 0x01cef912, 0x0036e025}}}, + {X: Field{[10]uint32{0x02524cd4, 0x010c82aa, 0x00f6de43, 0x020cfcf2, 0x00ade6ea, 0x02afe94f, 0x02e61aae, 0x01c00be9, 0x01b49016, 0x001778ff}}, Y: Field{[10]uint32{0x007e08f0, 0x01615e45, 0x00535dc1, 0x028f57a6, 0x016d7e9c, 0x02346b0a, 0x004a1dd8, 0x035b3acd, 0x0288862a, 0x002d72f7}}}, + {X: Field{[10]uint32{0x023da54f, 0x02ff2f00, 0x020738ad, 0x00b78865, 0x02b2964f, 0x02529916, 0x02b0be62, 0x037f3d7b, 0x0193a913, 0x0024ec1a}}, Y: Field{[10]uint32{0x012ae0b8, 0x01285352, 0x0107c4d1, 0x03607a2d, 0x029c151a, 0x0328f1f8, 0x007330ef, 0x02dd1106, 0x002f856c, 0x001e0d9e}}}, + {X: Field{[10]uint32{0x02762f0c, 0x02de1823, 0x01851886, 0x026f8e05, 0x009c3336, 0x01ac1578, 0x005a044f, 0x001d079a, 0x000d27d9, 0x0001c15d}}, Y: Field{[10]uint32{0x033d956e, 0x01772645, 0x03c55d3f, 0x00c87eec, 0x00b2142b, 0x00a7c4ab, 0x013193b5, 0x011b1a7a, 0x03bb738d, 0x00312963}}}, + {X: Field{[10]uint32{0x0193e296, 0x00687847, 0x0086434a, 0x019d8410, 0x02e5b787, 0x0254c3c2, 0x00a20e19, 0x015499cd, 0x0000fc48, 0x001d8668}}, Y: Field{[10]uint32{0x006ebed6, 0x02fa1b41, 0x032014f8, 0x01d5dc80, 0x01ab26f6, 0x028b3ad6, 0x03a0afe0, 0x011e73db, 0x01e1182f, 0x001fcc03}}}, + {X: Field{[10]uint32{0x019ff2fe, 0x0150a296, 0x0060dbec, 0x02d8e139, 0x01cc0d54, 0x00a0504f, 0x01346fcd, 0x014805b3, 0x01a8ddbb, 0x003f883d}}, Y: Field{[10]uint32{0x002d879c, 0x02a4ae49, 0x02e0bae7, 0x01ead3b2, 0x01338cf4, 0x02655ec3, 0x02be551f, 0x0121c6bf, 0x02e6e260, 0x0016d222}}}, + {X: Field{[10]uint32{0x02ad11e2, 0x03878fd0, 0x00b84422, 0x00862ae2, 0x01707681, 0x00f1d47e, 0x0129e077, 0x014b3cb7, 0x0327ba7e, 0x002656e5}}, Y: Field{[10]uint32{0x037fd26e, 0x03d71b4b, 0x0391f42a, 0x0217e416, 0x0049c8d5, 0x00a6f62e, 0x02c5e5f5, 0x0051a313, 0x01c97ee4, 0x0030f277}}}, + {X: Field{[10]uint32{0x002b3136, 0x01f0909c, 0x02a16e26, 0x02836130, 0x01636d26, 0x01458648, 0x02913445, 0x0135f1e7, 0x024d2ca9, 0x0032d3cb}}, Y: Field{[10]uint32{0x003ddb9b, 0x021e77a0, 0x02e49bbb, 0x01c5e9a3, 0x031b9b2f, 0x03df8ae2, 0x000df480, 0x01039b3c, 0x02ee3949, 0x000857ad}}}, + {X: Field{[10]uint32{0x01fce397, 0x00b095ae, 0x00e6fc72, 0x02757869, 0x034572b6, 0x019a3ad9, 0x00b10707, 0x024512eb, 0x025634b4, 0x0032828a}}, Y: Field{[10]uint32{0x03f4841b, 0x023ae0b4, 0x01ebfe95, 0x029c2f6d, 0x036e2562, 0x01ab69e9, 0x0098c855, 0x00beee94, 0x00c974ab, 0x002481e7}}}, + {X: Field{[10]uint32{0x03af7c7b, 0x01ae48b8, 0x00246acd, 0x02259ed3, 0x02bfadde, 0x013bc58e, 0x02f27a02, 0x0302bf5c, 0x032dc6c0, 0x003ee08c}}, Y: Field{[10]uint32{0x0134c7ee, 0x0315032a, 0x030c660d, 0x02646733, 0x032b90d3, 0x038b12c6, 0x00beaa52, 0x02da40ce, 0x0119f21c, 0x00069a5c}}}, + {X: Field{[10]uint32{0x00513dd2, 0x03b10a97, 0x006736af, 0x02818f6d, 0x02d07550, 0x008062f5, 0x02184a4e, 0x0237bc83, 0x0205d925, 0x003415bb}}, Y: Field{[10]uint32{0x0015bffb, 0x0366632f, 0x0031c276, 0x03135a37, 0x0389ab0f, 0x0006b5c9, 0x027cfb62, 0x038d599f, 0x01d0d222, 0x0002bcb0}}}, + {X: Field{[10]uint32{0x02526f12, 0x028494d0, 0x007267ae, 0x004b360a, 0x01c63257, 0x02dde18d, 0x0046c594, 0x01098b10, 0x0222c658, 0x000feb6c}}, Y: Field{[10]uint32{0x0199ae96, 0x019adfb0, 0x02717586, 0x0387aae1, 0x03d181e0, 0x02875d2d, 0x00a7e8bf, 0x00474e13, 0x0007fa68, 0x00369723}}}, + {X: Field{[10]uint32{0x019c4b61, 0x01098ec7, 0x029248ab, 0x023bed9f, 0x03214b81, 0x0274f914, 0x01915dd3, 0x03943977, 0x0169e222, 0x00349eb2}}, Y: Field{[10]uint32{0x033a1c7f, 0x02529db2, 0x03f6f9b4, 0x016b6079, 0x0209a7c5, 0x02100c8d, 0x02709a32, 0x034c15b9, 0x0294baea, 0x0031215d}}}, + {X: Field{[10]uint32{0x02c565d4, 0x0103c05c, 0x02cbcd93, 0x00064686, 0x0399cd3a, 0x03ff5a7b, 0x03a4324b, 0x006b9a97, 0x01b48b98, 0x001048de}}, Y: Field{[10]uint32{0x00fa280e, 0x034fa1ff, 0x023abac9, 0x00ec9154, 0x03c75505, 0x02f9aad5, 0x02523e7e, 0x0393c0b2, 0x02c9c7db, 0x003c900d}}}, + {X: Field{[10]uint32{0x039336f1, 0x037ea8fd, 0x003eace9, 0x027ec849, 0x01bef790, 0x018f4029, 0x028cc3b6, 0x01304ee6, 0x02aa9937, 0x003608d3}}, Y: Field{[10]uint32{0x02755c27, 0x03e412db, 0x00e5cb1f, 0x03e47720, 0x001845d8, 0x00a4aeaf, 0x03c15930, 0x0197d9a8, 0x028ec4b4, 0x0002e32f}}}, + {X: Field{[10]uint32{0x01189009, 0x02ebca97, 0x03bbe47f, 0x00e8f61d, 0x00427d32, 0x03634f00, 0x000ea349, 0x03fe72eb, 0x033568c5, 0x00109be2}}, Y: Field{[10]uint32{0x0100586d, 0x010e672f, 0x03bfd7dc, 0x01fde214, 0x019931f5, 0x01f2e0ae, 0x03a1ba72, 0x00f1ee71, 0x013dce02, 0x0013808a}}}, + {X: Field{[10]uint32{0x0097dfa5, 0x009d8291, 0x036ccfe7, 0x01bb1e03, 0x01871757, 0x0272971e, 0x012a7fdc, 0x017cb090, 0x02f902ee, 0x003c71c1}}, Y: Field{[10]uint32{0x03b7e740, 0x0173eb0a, 0x004d59f8, 0x02575ae7, 0x009ef758, 0x006826e1, 0x01787005, 0x01570ece, 0x01a1727f, 0x00317868}}}, + {X: Field{[10]uint32{0x02c2c679, 0x03c61a4d, 0x00b67608, 0x00799d66, 0x03598200, 0x0094d5ad, 0x00d66825, 0x01661e5a, 0x007ecc1d, 0x002138b8}}, Y: Field{[10]uint32{0x0028555a, 0x01ce19b3, 0x03bb6281, 0x03dbd6d0, 0x012903f4, 0x01ff3ae9, 0x0275a8ab, 0x03b3732f, 0x03438ab5, 0x00106ac4}}}, + {X: Field{[10]uint32{0x02ad2b54, 0x0226d01d, 0x020689c6, 0x002fbc3d, 0x023d599b, 0x028633da, 0x02bb6993, 0x01608d12, 0x02c2fe53, 0x001e4d7b}}, Y: Field{[10]uint32{0x03371910, 0x033ef554, 0x01b406c4, 0x02b78f5d, 0x01b77480, 0x0393d721, 0x00ed574f, 0x022186db, 0x016aab97, 0x00338bf2}}}, + {X: Field{[10]uint32{0x00dbd9a0, 0x029a8c2c, 0x0383927a, 0x02250878, 0x013e8c26, 0x0368e802, 0x01abbef9, 0x01b55ade, 0x00a8319f, 0x003550a9}}, Y: Field{[10]uint32{0x038173e1, 0x01e6bb1e, 0x037a4f19, 0x00326161, 0x026badb7, 0x00654681, 0x019f3e9c, 0x0217aa3e, 0x016265d2, 0x00144128}}}, + {X: Field{[10]uint32{0x00ece2be, 0x009f6691, 0x0232fd3c, 0x02e49bec, 0x00041011, 0x000e049b, 0x02f0157a, 0x02624012, 0x02194228, 0x002f1a49}}, Y: Field{[10]uint32{0x0252f3bc, 0x00da71ff, 0x034f9847, 0x00bb6c97, 0x0311e202, 0x032e3bdd, 0x032e8543, 0x0298c24d, 0x00c147e2, 0x00238bc4}}}, + {X: Field{[10]uint32{0x018d8d03, 0x0086fd74, 0x03e51f45, 0x024257d0, 0x00ae079a, 0x0122ad94, 0x02cdd80b, 0x0230237a, 0x0336bb17, 0x003af86d}}, Y: Field{[10]uint32{0x01db7514, 0x0028bab3, 0x02bbb0cd, 0x0187f23b, 0x03782f20, 0x00aa049a, 0x0378ef4b, 0x01437917, 0x02590b14, 0x002b6071}}}, + {X: Field{[10]uint32{0x01e2774c, 0x014b7b2e, 0x03e7bde1, 0x012a4e0a, 0x02666d09, 0x03e3c158, 0x01f887ad, 0x0214f93f, 0x010849e1, 0x003989ae}}, Y: Field{[10]uint32{0x034834ea, 0x004ffe43, 0x027c30f5, 0x010b1658, 0x002dca73, 0x033ee1d6, 0x02ab4062, 0x00a89c32, 0x01daa419, 0x002433d5}}}, + {X: Field{[10]uint32{0x00381e67, 0x021ea739, 0x000b61a9, 0x0072f1eb, 0x000d8f57, 0x0291453c, 0x013b8b5b, 0x021e488c, 0x0057ba04, 0x003ee9e8}}, Y: Field{[10]uint32{0x029ec44a, 0x03b9ebb5, 0x000f718c, 0x0243b94c, 0x037cea5b, 0x016295fa, 0x005133f9, 0x014eeafc, 0x03fc1426, 0x001f4abd}}}, + {X: Field{[10]uint32{0x00c35a54, 0x02f9a265, 0x039ea1e3, 0x01691595, 0x03023973, 0x01c0cf99, 0x02e5bdb5, 0x01460568, 0x03955b5d, 0x00051336}}, Y: Field{[10]uint32{0x0253f1e6, 0x021e9dd8, 0x02a83919, 0x023e28ba, 0x03ed0a10, 0x0204d6d2, 0x0150d2b0, 0x03f16600, 0x0389e896, 0x0039805b}}}, + {X: Field{[10]uint32{0x003c0a24, 0x009787c6, 0x01eb681c, 0x023c099e, 0x03ad28cd, 0x02566767, 0x034a2d1a, 0x006d7b35, 0x026ee7ab, 0x00014e37}}, Y: Field{[10]uint32{0x00121004, 0x021012c5, 0x009601de, 0x01cc84f4, 0x012482b9, 0x016ce281, 0x01bac87d, 0x00464d6f, 0x03477961, 0x000db029}}}, + {X: Field{[10]uint32{0x03c03794, 0x001856ba, 0x02f2e9d1, 0x029c152f, 0x007876eb, 0x018edd5f, 0x00a38062, 0x01cfb883, 0x030fd28f, 0x001da453}}, Y: Field{[10]uint32{0x03a12642, 0x00c1a00c, 0x0008ec39, 0x014be7e2, 0x00593307, 0x0189b18b, 0x03557861, 0x0156fc88, 0x01cae168, 0x001b7893}}}, + {X: Field{[10]uint32{0x0234e4a7, 0x00caeaa7, 0x000af27e, 0x02eea960, 0x0186bee7, 0x03244bca, 0x015f7f96, 0x03df6bd6, 0x026cf675, 0x001a6457}}, Y: Field{[10]uint32{0x039513c9, 0x00b3c88a, 0x00d56df7, 0x006ddd9d, 0x03139bc3, 0x0374b68e, 0x0353c918, 0x026155de, 0x03c02f10, 0x0018253e}}}, + {X: Field{[10]uint32{0x00ce3015, 0x02ea11c6, 0x03e5d859, 0x00d790a1, 0x022c37eb, 0x02e4460b, 0x0142dcfd, 0x0353f6fa, 0x020c900b, 0x0013b9b0}}, Y: Field{[10]uint32{0x0062cd64, 0x03543cc8, 0x00f7590e, 0x0319311f, 0x0142e2a9, 0x030a4f4f, 0x0338e668, 0x0186312d, 0x0369863d, 0x00212b25}}}, + {X: Field{[10]uint32{0x00a0fa61, 0x01c5e5a2, 0x02c6ad22, 0x00442be7, 0x01aa5982, 0x01323160, 0x00e11dca, 0x03e28e3b, 0x001af57b, 0x0029a04f}}, Y: Field{[10]uint32{0x038edca4, 0x00ba0256, 0x000e1d18, 0x026f7168, 0x01d415c9, 0x0263ecbc, 0x03e2335e, 0x0258c56d, 0x034df4e2, 0x00190809}}}, + {X: Field{[10]uint32{0x010fce84, 0x03f9aadc, 0x03d6c0fd, 0x01ddbb94, 0x0269d910, 0x01d76d27, 0x01fc7432, 0x00a25c93, 0x03b7107b, 0x00108400}}, Y: Field{[10]uint32{0x02f9427f, 0x023ccf1d, 0x0002ac21, 0x021ceaa0, 0x020a9320, 0x022f3fa9, 0x01cb1498, 0x010e570c, 0x01697b92, 0x0032e555}}}, + {X: Field{[10]uint32{0x00c8c522, 0x002f7192, 0x02df8fc6, 0x02616d51, 0x015e1252, 0x02b3d7c9, 0x009d362e, 0x0313f100, 0x01e10cb8, 0x000272c6}}, Y: Field{[10]uint32{0x03d70d12, 0x03a253b1, 0x036231b7, 0x0382416f, 0x028fd286, 0x035f3fe1, 0x0220e70e, 0x039a2d8f, 0x01d32c6e, 0x00089c05}}}, + {X: Field{[10]uint32{0x03b953c2, 0x00d8d8a2, 0x03704362, 0x012dd78c, 0x03c4a7ac, 0x038b3832, 0x03412d64, 0x01623ce3, 0x01968193, 0x0031d04d}}, Y: Field{[10]uint32{0x0108aa6b, 0x01d7bd2a, 0x008019ae, 0x03c949de, 0x015e1d70, 0x03b05ace, 0x02dd4c90, 0x03135b48, 0x03a01b7c, 0x001efb9f}}}, + {X: Field{[10]uint32{0x01df22cc, 0x00b99d98, 0x02cec9dc, 0x02603a1b, 0x00c2f8e3, 0x02a5f319, 0x03ac1ea8, 0x01249ba3, 0x0205321f, 0x000aa3a2}}, Y: Field{[10]uint32{0x001fae42, 0x007ef6e6, 0x037809c8, 0x001febfd, 0x0364f0c0, 0x0034fe04, 0x0360c21c, 0x0372aab2, 0x01074e4f, 0x0018ee19}}}, + {X: Field{[10]uint32{0x0097a14d, 0x008a4fb5, 0x02127355, 0x031f1bd9, 0x025af1d8, 0x02a38b72, 0x02ab014e, 0x00d65122, 0x02607d40, 0x003cfbcb}}, Y: Field{[10]uint32{0x022cccc9, 0x01f0c758, 0x03ca9c63, 0x012fd0f6, 0x019e9ce4, 0x0275e305, 0x01d1d964, 0x027d12f1, 0x0334214b, 0x0037f354}}}, + {X: Field{[10]uint32{0x0057ead9, 0x0100a012, 0x0365a80e, 0x0092effa, 0x03a93964, 0x02c759c4, 0x0111b361, 0x00ce9744, 0x01c8169c, 0x001b5710}}, Y: Field{[10]uint32{0x005e84c8, 0x031522a9, 0x02a4a6a0, 0x00829486, 0x023d6742, 0x003d66f7, 0x0291d370, 0x02f0a89e, 0x00c49f01, 0x001307dd}}}, + {X: Field{[10]uint32{0x02fff85c, 0x031c7d12, 0x03c73488, 0x00891f81, 0x01608223, 0x013f51e3, 0x01982ce3, 0x021ac0b1, 0x0261c6a9, 0x0017604a}}, Y: Field{[10]uint32{0x03a960b8, 0x036894ff, 0x001fdcc8, 0x005e2fb5, 0x00680b15, 0x03248d21, 0x0349e164, 0x023f1095, 0x037b1601, 0x000dc20f}}}, + {X: Field{[10]uint32{0x0373093e, 0x02aa11df, 0x027d5dc6, 0x029827be, 0x01720177, 0x00a44615, 0x03a97108, 0x03cd1f0e, 0x02ecb82f, 0x00380565}}, Y: Field{[10]uint32{0x005b3bdd, 0x01faceed, 0x0177e554, 0x03061dd9, 0x03a17aca, 0x02963929, 0x00da5d06, 0x0212e74e, 0x00328498, 0x00299d32}}}, + {X: Field{[10]uint32{0x01980f55, 0x01100b02, 0x00d0b834, 0x0183bdac, 0x00ad52b9, 0x0373fdfc, 0x032fcaea, 0x03fcb9ec, 0x01000313, 0x0019e96a}}, Y: Field{[10]uint32{0x000a4a02, 0x01c0f24f, 0x02a03f41, 0x022bae2d, 0x009fdf92, 0x01f10783, 0x00075753, 0x022197ae, 0x01db5e8e, 0x0039dfbf}}}, + {X: Field{[10]uint32{0x0066b277, 0x0035f0d9, 0x01c217df, 0x02cd5ca0, 0x0353d77d, 0x03798960, 0x01c16477, 0x002b60a0, 0x039c2e2d, 0x000ae5a1}}, Y: Field{[10]uint32{0x00b62b25, 0x02f211a0, 0x030743cb, 0x0019e1a9, 0x027e0dae, 0x012a7f9f, 0x032408f6, 0x030caf31, 0x007343ba, 0x0037574d}}}, + {X: Field{[10]uint32{0x010367e9, 0x038b670c, 0x02bad825, 0x012fedc9, 0x03639b05, 0x00f8f848, 0x03137aea, 0x01235cb7, 0x038df087, 0x002ae50d}}, Y: Field{[10]uint32{0x03a10f03, 0x03740610, 0x011c99e3, 0x027fcb7c, 0x017f9d76, 0x01e376bd, 0x0331865c, 0x01f446a0, 0x02244003, 0x0015e173}}}, + {X: Field{[10]uint32{0x03e7439f, 0x02aaec10, 0x00985fa3, 0x036e1ef9, 0x012f3fd4, 0x028edb23, 0x013def6c, 0x03f78e32, 0x01560fd6, 0x001c1e09}}, Y: Field{[10]uint32{0x038ebec7, 0x02cfee05, 0x036af8f9, 0x03603e88, 0x0151894b, 0x03abd4d4, 0x01274b48, 0x01408331, 0x0365ecf1, 0x001e44ef}}}, + {X: Field{[10]uint32{0x03ca3942, 0x028062dd, 0x01eb3e71, 0x0203bf3b, 0x036b4d5e, 0x000928fd, 0x038c72c1, 0x03541ecc, 0x0070138b, 0x000c0974}}, Y: Field{[10]uint32{0x02b470ae, 0x03759a43, 0x03096f83, 0x02558e96, 0x038d5032, 0x00a93b94, 0x00172b5f, 0x03fe56a5, 0x020e175e, 0x000ea29a}}}, + {X: Field{[10]uint32{0x039ab0b6, 0x028f4602, 0x03ac9901, 0x02864e25, 0x02576081, 0x02a34079, 0x0069e7b2, 0x01eaee50, 0x02d065e9, 0x000ff8dc}}, Y: Field{[10]uint32{0x00842e5a, 0x00082895, 0x00c2d4c1, 0x014b3898, 0x00824035, 0x0359ed69, 0x03315e41, 0x037300dd, 0x02923154, 0x000bbf3b}}}, + {X: Field{[10]uint32{0x02f55636, 0x03968c0a, 0x001640bc, 0x03836a04, 0x03c3c373, 0x0301af5f, 0x02be8f9c, 0x00cfba5f, 0x00113a91, 0x000da31c}}, Y: Field{[10]uint32{0x006162a8, 0x03e1ad34, 0x024a135b, 0x03969bea, 0x02eb7d70, 0x0305a5c4, 0x028b942b, 0x02a385bc, 0x00fa4870, 0x00086f50}}}, + {X: Field{[10]uint32{0x00d96810, 0x03ab253b, 0x0100387e, 0x01a3953f, 0x0357682f, 0x02b5b5c4, 0x0040f230, 0x01793879, 0x03d8beb4, 0x001f7e3f}}, Y: Field{[10]uint32{0x002ed0df, 0x01d99f66, 0x013c9ec0, 0x0034281f, 0x03dc5555, 0x0131fff9, 0x0057d789, 0x016a6512, 0x00f9908e, 0x000f6793}}}, + {X: Field{[10]uint32{0x036f23d4, 0x036fdf42, 0x038bbdd2, 0x01c9413e, 0x02882691, 0x026c449d, 0x02162624, 0x031fb9f0, 0x0139eb49, 0x0032dab6}}, Y: Field{[10]uint32{0x0298346d, 0x000063ba, 0x01cb345e, 0x019785e2, 0x005480ca, 0x027e399a, 0x01319c45, 0x01cd9f78, 0x00db18f2, 0x003b2181}}}, + {X: Field{[10]uint32{0x00f4265a, 0x0263ca1c, 0x0053d390, 0x010b9a13, 0x01d8a1e0, 0x02766c81, 0x014e6a75, 0x00679b81, 0x02c80fc3, 0x0016b949}}, Y: Field{[10]uint32{0x010a9a63, 0x022185f5, 0x03850f24, 0x02af678c, 0x00a03f4b, 0x0155df02, 0x033ef80d, 0x016a433f, 0x028114c2, 0x00368784}}}, + {X: Field{[10]uint32{0x01ff7661, 0x021ab9c9, 0x03323a87, 0x019d6e34, 0x02174777, 0x000115b5, 0x03f2b10e, 0x02eb306e, 0x008906dd, 0x0021a35e}}, Y: Field{[10]uint32{0x0322ca1d, 0x030c24eb, 0x00ef296f, 0x0120d0a8, 0x0246e6ce, 0x027051bd, 0x03e57baa, 0x0037e38a, 0x001d189b, 0x00364b5a}}}, + {X: Field{[10]uint32{0x03686b74, 0x00762675, 0x025a4834, 0x02611f0c, 0x0223bd32, 0x01041a8c, 0x01d1f8a7, 0x0206db13, 0x034de7b8, 0x0027cbc2}}, Y: Field{[10]uint32{0x02440088, 0x013f0523, 0x016e3c44, 0x0172d1fc, 0x02deca28, 0x016158bc, 0x0329ca66, 0x012be2d5, 0x0111c297, 0x001beef5}}}, + {X: Field{[10]uint32{0x03fca8a3, 0x0140ddb4, 0x00b4fe69, 0x03afa302, 0x02c522f5, 0x03b8babd, 0x032da983, 0x0037c56f, 0x022b813b, 0x003eabc8}}, Y: Field{[10]uint32{0x000b472e, 0x036d0751, 0x01469b2c, 0x01b175b4, 0x0147f00e, 0x013c4aaf, 0x032ae874, 0x036b1a3e, 0x02692e98, 0x002fb14f}}}, + {X: Field{[10]uint32{0x03161475, 0x01f48a69, 0x00008fd6, 0x020293b1, 0x0313c81c, 0x01b1718b, 0x02a7ab70, 0x02e7e8b0, 0x01b9db4a, 0x001fd482}}, Y: Field{[10]uint32{0x0248d193, 0x033a82d2, 0x00ce4e69, 0x002e6b31, 0x00a58be4, 0x03c64736, 0x017d1c76, 0x01a67fce, 0x00daf9e8, 0x00284f5b}}}, + {X: Field{[10]uint32{0x02c84c2a, 0x012fd3c4, 0x00c04683, 0x02490168, 0x0050c7b4, 0x009c0285, 0x025f395e, 0x00dbc201, 0x016e80b1, 0x003d0d85}}, Y: Field{[10]uint32{0x017e60c4, 0x022546ef, 0x020e5911, 0x002e220a, 0x00e7aa89, 0x026c01fa, 0x020807d3, 0x03806e9d, 0x03b05684, 0x00337655}}}, + {X: Field{[10]uint32{0x00f1d06e, 0x03c70c4f, 0x0169f201, 0x0150ac93, 0x02882167, 0x00d153e9, 0x020c2bb0, 0x00df6081, 0x03495c5b, 0x003be6a9}}, Y: Field{[10]uint32{0x027a4aa9, 0x033d32bc, 0x0366654c, 0x03bf47dd, 0x0050003a, 0x0139b35f, 0x0125750e, 0x012a3eb0, 0x024df1d8, 0x003e1036}}}, + {X: Field{[10]uint32{0x035de05a, 0x00a25bfe, 0x01d40b12, 0x0322965c, 0x016d9e1c, 0x0179e4db, 0x010809c2, 0x02e4eb0a, 0x0043e96e, 0x001f7bb7}}, Y: Field{[10]uint32{0x02a8e0ce, 0x009ad949, 0x03381220, 0x03edaf24, 0x01de6683, 0x033c4bf3, 0x027b349c, 0x03439003, 0x026627b9, 0x00399703}}}, + {X: Field{[10]uint32{0x006d6459, 0x012cf3a6, 0x0215c0e7, 0x03d3ca0f, 0x01878384, 0x020bcd87, 0x03e74955, 0x01e5711e, 0x03156669, 0x001686fb}}, Y: Field{[10]uint32{0x00cf39ff, 0x01e711cb, 0x00d61b11, 0x020777e3, 0x0069b28b, 0x020cf8e0, 0x035b97e1, 0x000aca78, 0x02811fdb, 0x0033a616}}}, + {X: Field{[10]uint32{0x0125fa8e, 0x014d5639, 0x0383bfa4, 0x033e12c8, 0x0173b8fd, 0x020f1beb, 0x00eeb789, 0x004f0ac5, 0x01392334, 0x0036048f}}, Y: Field{[10]uint32{0x0233ef73, 0x009a51e9, 0x00095ea2, 0x028c3256, 0x02835e35, 0x02ecf2d5, 0x03f78a5a, 0x01c8011b, 0x019d905b, 0x003aa74e}}}, + {X: Field{[10]uint32{0x024d4bc8, 0x00c4cd03, 0x035d8939, 0x03469e9a, 0x0310d3df, 0x0026bed7, 0x02a36c39, 0x030c4099, 0x01d4f1f4, 0x0018bd0f}}, Y: Field{[10]uint32{0x0190f3ed, 0x028772ed, 0x028ef89f, 0x00a76a8b, 0x02755258, 0x00e8407c, 0x034fe225, 0x03591cb8, 0x01f1f83b, 0x002edd62}}}, + {X: Field{[10]uint32{0x039d72f7, 0x033cc4bd, 0x01f4fcc1, 0x0111bd8b, 0x00865f6e, 0x033d6535, 0x015aa750, 0x03011450, 0x0371d549, 0x00001b3c}}, Y: Field{[10]uint32{0x01e93af4, 0x006b7172, 0x0216a758, 0x02741a33, 0x002b3dee, 0x020ad168, 0x024ce206, 0x026f4a0a, 0x022b5c97, 0x003e33ad}}}, + {X: Field{[10]uint32{0x03cdd7e7, 0x03bf16d1, 0x01f3c509, 0x01c545af, 0x0249aeb3, 0x03e55021, 0x01638dd8, 0x03a70df0, 0x0380770b, 0x0016f5ed}}, Y: Field{[10]uint32{0x006ba9ff, 0x0242664a, 0x031e3021, 0x000ca8a2, 0x01efc12c, 0x02b74309, 0x006b91c5, 0x02abd3d8, 0x00488a87, 0x00351b1e}}}, + {X: Field{[10]uint32{0x036b6a62, 0x02fcf6f0, 0x001af0e6, 0x01ffc55a, 0x0081eecd, 0x02e566e8, 0x02086653, 0x02f52b96, 0x0154a319, 0x0031dc12}}, Y: Field{[10]uint32{0x016d0fe7, 0x00ecf294, 0x0337836e, 0x0002c571, 0x03e508f6, 0x02273312, 0x013b9c61, 0x012ea0fd, 0x03e82478, 0x000dcd50}}}, + {X: Field{[10]uint32{0x01b19cda, 0x0371b40e, 0x039588fe, 0x02342790, 0x02d6e92c, 0x0040b07b, 0x007da707, 0x00ea7760, 0x03fe4153, 0x000ad3c9}}, Y: Field{[10]uint32{0x001fb424, 0x038ab67e, 0x01d6b089, 0x02009005, 0x0049ba21, 0x024bd30c, 0x01fadd4a, 0x01f2c704, 0x03100ecd, 0x00262ea0}}}, + {X: Field{[10]uint32{0x014c0e5a, 0x001b2297, 0x03db54d3, 0x0204f5f0, 0x032c920c, 0x01a4c7e5, 0x000c581d, 0x030d3498, 0x01710b3d, 0x00039f50}}, Y: Field{[10]uint32{0x029a409a, 0x00513c92, 0x011f75b6, 0x01c74735, 0x0303e75b, 0x0169b128, 0x03a97efb, 0x014e1e67, 0x01ba9a82, 0x002ca560}}}, + {X: Field{[10]uint32{0x01c5d52e, 0x0198357c, 0x0284b2b5, 0x0187a01b, 0x032face7, 0x01a89c5f, 0x02700435, 0x00d5dc14, 0x022c18f4, 0x001880c0}}, Y: Field{[10]uint32{0x036a720d, 0x02021944, 0x024eb06c, 0x035aaa21, 0x020212ef, 0x0150ae5f, 0x035fe973, 0x0135d409, 0x03255d0a, 0x0006294b}}}, + {X: Field{[10]uint32{0x02e43b2b, 0x00700124, 0x026300e8, 0x01e5e479, 0x02489876, 0x02c3f332, 0x02327fe3, 0x02036e83, 0x03a28c1c, 0x002f6071}}, Y: Field{[10]uint32{0x003871c0, 0x0388d1e0, 0x00678db1, 0x02b3a4ea, 0x02416064, 0x03c6154d, 0x00831f07, 0x02f19278, 0x004ea14b, 0x0032942a}}}, + {X: Field{[10]uint32{0x004bc29a, 0x01aa6d3f, 0x0154a062, 0x0139bce9, 0x01b875eb, 0x000e9b83, 0x01385cd6, 0x00e43f34, 0x021ad3c1, 0x0026f10f}}, Y: Field{[10]uint32{0x00cb2cd4, 0x00b9a9b8, 0x0222e6b1, 0x02f763d2, 0x0264ea39, 0x01e5c5ec, 0x00d8b34b, 0x012ed5eb, 0x00bf9aa5, 0x00215e96}}}, + {X: Field{[10]uint32{0x03e40f33, 0x01da7329, 0x039082c8, 0x01c7195b, 0x015e5bfb, 0x0262fea8, 0x030117cb, 0x038f1e7b, 0x028d194d, 0x000c1569}}, Y: Field{[10]uint32{0x000d1d10, 0x008cf90d, 0x0086c1c9, 0x01ca9ff8, 0x00acbd8c, 0x01aae9af, 0x00218cfb, 0x038712fc, 0x01eadfeb, 0x000060fe}}}, + {X: Field{[10]uint32{0x034b08ac, 0x01e7eedc, 0x03e1b710, 0x00c5f62e, 0x002cec12, 0x00d60ee0, 0x02710724, 0x03462324, 0x0184ad1f, 0x0012b6fe}}, Y: Field{[10]uint32{0x03ec04e6, 0x013578f5, 0x01954709, 0x02dbde7d, 0x032192ce, 0x038fcb42, 0x01507668, 0x033bfcf6, 0x01889560, 0x0005149c}}}, + {X: Field{[10]uint32{0x016487cc, 0x01947469, 0x00b0cd00, 0x00daa81d, 0x0283fc6a, 0x033c5b48, 0x03ae3979, 0x0107671e, 0x01cc27e0, 0x000e3dcb}}, Y: Field{[10]uint32{0x033dc0bf, 0x01830ea4, 0x0188df71, 0x0110b946, 0x02496104, 0x002dbff1, 0x030d6f2c, 0x001b904d, 0x017c33a1, 0x00148e32}}}, + {X: Field{[10]uint32{0x015be2d3, 0x00623199, 0x03813322, 0x011d1f09, 0x02045606, 0x03167fca, 0x0013828a, 0x03f78285, 0x018a7bdf, 0x0037956f}}, Y: Field{[10]uint32{0x0042d9da, 0x034eed40, 0x0151ce65, 0x0146e65b, 0x0367bf9d, 0x01ec2bed, 0x039d0979, 0x0097cdd7, 0x01b0df5b, 0x0011de18}}}, + {X: Field{[10]uint32{0x023bcc66, 0x026e2797, 0x03893873, 0x03a9b159, 0x02e19340, 0x019bfa44, 0x00edf986, 0x000ae246, 0x00fdc47e, 0x003185ef}}, Y: Field{[10]uint32{0x01117072, 0x0098d259, 0x00d473b8, 0x01cad6c2, 0x01a6e046, 0x01133f12, 0x020f4e86, 0x01da0cab, 0x0117357e, 0x002e42e8}}}, + {X: Field{[10]uint32{0x01c84758, 0x02aceefc, 0x036724ad, 0x036fb2b6, 0x03c455f4, 0x024acc0c, 0x02402f1e, 0x0223252d, 0x01961b51, 0x00119570}}, Y: Field{[10]uint32{0x02fbc4a0, 0x0071b779, 0x01b5cf2c, 0x0300a0e2, 0x02714600, 0x012f017a, 0x0202df4f, 0x017d37ec, 0x0093a257, 0x000f3bb3}}}, + {X: Field{[10]uint32{0x03726a45, 0x021ba375, 0x004c9e5f, 0x00c67077, 0x00110df4, 0x02ad0f68, 0x013c503f, 0x0396b4da, 0x0340dc05, 0x003f2a43}}, Y: Field{[10]uint32{0x035771ca, 0x0321bf17, 0x021c3e6c, 0x03b1a323, 0x027478ed, 0x0269c29b, 0x0337aeb1, 0x0198106b, 0x039bbe3e, 0x003d608b}}}, + {X: Field{[10]uint32{0x027f61e9, 0x03c546f4, 0x00afb93f, 0x0015e31f, 0x02a31cbe, 0x02434ecf, 0x01e88d7f, 0x020961de, 0x004adcb2, 0x000c5db3}}, Y: Field{[10]uint32{0x02cc0135, 0x00308c50, 0x006aac34, 0x01115b34, 0x036a18ce, 0x03ed6ad6, 0x00fe7bba, 0x00290f25, 0x02cc148a, 0x000e18fc}}}, + {X: Field{[10]uint32{0x03b2ddc4, 0x0079943a, 0x014e0b81, 0x02734c69, 0x0151d9c1, 0x013e0b31, 0x030db151, 0x00842b41, 0x0373d124, 0x0018c9a7}}, Y: Field{[10]uint32{0x005cd0ac, 0x003c36f6, 0x02188e30, 0x02f0fdaa, 0x03038246, 0x002230e1, 0x034114e5, 0x01e90929, 0x03dd8a78, 0x002fe3b1}}}, + {X: Field{[10]uint32{0x032003d0, 0x00f39518, 0x02708dee, 0x0124d374, 0x000f07e7, 0x0104c9aa, 0x027f5445, 0x014ed86b, 0x01328d0f, 0x0019e687}}, Y: Field{[10]uint32{0x025c350f, 0x0240629c, 0x0085c034, 0x0157268d, 0x02c9b3eb, 0x03dbba69, 0x03e341d5, 0x03b28c46, 0x03488f21, 0x0020f284}}}, + {X: Field{[10]uint32{0x00b38b28, 0x033ce678, 0x036fb846, 0x0277a009, 0x03f7172f, 0x0153624c, 0x0148568a, 0x00b2134e, 0x01792998, 0x001a689f}}, Y: Field{[10]uint32{0x03b26168, 0x0058f90e, 0x034f3a02, 0x03d6b0b6, 0x0369c8b7, 0x00bce6f5, 0x00b16a12, 0x002ee15d, 0x0207cb0f, 0x003d0474}}}, + {X: Field{[10]uint32{0x0373ee4d, 0x015b23d9, 0x03c7f9dd, 0x02e72bfa, 0x02abfdab, 0x000a73bc, 0x03f21716, 0x01410b2f, 0x005701af, 0x000a6354}}, Y: Field{[10]uint32{0x0297e9e1, 0x00f0156a, 0x0222075e, 0x029e733e, 0x034271bd, 0x03db70db, 0x02e62c4b, 0x02113904, 0x0271d271, 0x003d0d0f}}}, + {X: Field{[10]uint32{0x000c4653, 0x022e5e48, 0x023b1f8f, 0x0391513d, 0x00e26f66, 0x02f3ce4c, 0x00eb9845, 0x03c4063e, 0x03da46d1, 0x000fca60}}, Y: Field{[10]uint32{0x01d71db0, 0x03166542, 0x01b53b26, 0x02f1e760, 0x009b2c38, 0x00c9b4e0, 0x02d57e6b, 0x00cec40d, 0x0114c4ad, 0x00125cea}}}, + {X: Field{[10]uint32{0x023538dd, 0x02aa2fdf, 0x03b1359f, 0x0287bda8, 0x0154412e, 0x0074a9be, 0x02d64b2a, 0x02e23650, 0x013e30ce, 0x003e0dbf}}, Y: Field{[10]uint32{0x037f9367, 0x0380a0b3, 0x02ba3b28, 0x038c1b9a, 0x00c8161e, 0x0162ddc8, 0x01fd29c1, 0x01ad69c2, 0x00815347, 0x001c828c}}}, + {X: Field{[10]uint32{0x00ef583a, 0x038b7c80, 0x03930b3a, 0x008807bb, 0x01295ed5, 0x03a647fa, 0x03c8ee4f, 0x00e2898e, 0x039b911e, 0x00375cba}}, Y: Field{[10]uint32{0x00c1b2ef, 0x02d03250, 0x00b8683c, 0x02c50fc4, 0x02398e86, 0x0182d4ec, 0x0285d9b3, 0x03dfe5e4, 0x01a5688b, 0x000a8369}}}, + {X: Field{[10]uint32{0x0168a619, 0x00fc0cd2, 0x019be028, 0x02912584, 0x037cef92, 0x00962dfc, 0x027bd818, 0x00957310, 0x025046ab, 0x00154789}}, Y: Field{[10]uint32{0x03bc4f30, 0x01e8dc39, 0x0223b200, 0x02a8f1ba, 0x02e5ca16, 0x00560a9b, 0x006a5ecd, 0x03cd6e6e, 0x03d24cd8, 0x000c5f0c}}}, + {X: Field{[10]uint32{0x0336c650, 0x00eb5e14, 0x02a90fbd, 0x01857214, 0x01ab28cb, 0x01e09564, 0x0319a304, 0x038f43b2, 0x0292131d, 0x0019a0f7}}, Y: Field{[10]uint32{0x002225f8, 0x01b4224a, 0x019e4d63, 0x03082397, 0x00b3c3b2, 0x011be839, 0x029556ec, 0x01548fe2, 0x018e7fd9, 0x00127ba9}}}, + {X: Field{[10]uint32{0x00f97805, 0x0127224f, 0x03ac7bea, 0x00f4c692, 0x01ca99ef, 0x023e257a, 0x029b146e, 0x03a99782, 0x01e284a6, 0x002d6cec}}, Y: Field{[10]uint32{0x01b6fe0d, 0x013ba239, 0x01667ffa, 0x030d51fa, 0x023cf16c, 0x0065402f, 0x0391437e, 0x038a5bca, 0x0294f333, 0x00285c82}}}, + {X: Field{[10]uint32{0x03cbf466, 0x009007e6, 0x00d1011a, 0x00e954d4, 0x03ccdde4, 0x01c63518, 0x009a2329, 0x01da125c, 0x03737c33, 0x00294065}}, Y: Field{[10]uint32{0x01d429e2, 0x03eb61ea, 0x0027e12e, 0x0233efcf, 0x03c51fff, 0x01add47a, 0x03a5e09b, 0x031777a3, 0x029effef, 0x00027301}}}, + {X: Field{[10]uint32{0x001588fb, 0x00dad8fb, 0x03849e12, 0x0092238b, 0x02e5cb72, 0x02c7162c, 0x0041b663, 0x0361850a, 0x018feb2b, 0x0027b0d2}}, Y: Field{[10]uint32{0x001f5f12, 0x00194bc3, 0x0333ba00, 0x0216a01c, 0x01e517e5, 0x005437fb, 0x02719bf2, 0x025fc0d8, 0x01a5e14b, 0x00380324}}}, + {X: Field{[10]uint32{0x03c5b6b2, 0x00c6afbc, 0x004b1f47, 0x02f16abc, 0x03581f97, 0x02e49999, 0x00b446ba, 0x00c615d4, 0x00b4adc1, 0x003842db}}, Y: Field{[10]uint32{0x01e2b9c3, 0x017f720d, 0x00ed3c1f, 0x010bc998, 0x01d5520b, 0x02d97007, 0x0287bba5, 0x0011dfce, 0x02137db2, 0x0014e944}}}, + {X: Field{[10]uint32{0x013ae314, 0x01873877, 0x00d0d3ff, 0x009c4ec6, 0x0360ace9, 0x000ad810, 0x0093691e, 0x029f1e63, 0x0167e36e, 0x002dd52a}}, Y: Field{[10]uint32{0x0073d849, 0x02e0a855, 0x0359be12, 0x00a64cf3, 0x00d83ee0, 0x02ac0794, 0x02f8d5fb, 0x03b96690, 0x01639aa7, 0x0022a68e}}}, + {X: Field{[10]uint32{0x02efa869, 0x0060ffcc, 0x02c8d489, 0x01d58d02, 0x017999a2, 0x02fa95a7, 0x038a51e6, 0x02fcf81b, 0x0361c10c, 0x0017fbf2}}, Y: Field{[10]uint32{0x02881e83, 0x02f86fd3, 0x0120715b, 0x01426cd2, 0x01dfe499, 0x02308150, 0x008c0932, 0x020d7076, 0x0093cbc4, 0x003606cc}}}, + {X: Field{[10]uint32{0x03d2d848, 0x02910bc9, 0x0118470a, 0x002aca6e, 0x01f0ed6f, 0x009f2265, 0x0009400b, 0x025f8658, 0x03bb04ac, 0x003f9468}}, Y: Field{[10]uint32{0x01116a58, 0x03f55a32, 0x00bd6ec5, 0x013c020f, 0x03d30625, 0x027c2c60, 0x02b8aaf5, 0x0279103c, 0x00e0a4c3, 0x00215a3f}}}, + {X: Field{[10]uint32{0x02b7dee3, 0x024519be, 0x0158d7b5, 0x0263911d, 0x00391df7, 0x03aca908, 0x00d5d38a, 0x03fb6f16, 0x02299fcc, 0x001a8f91}}, Y: Field{[10]uint32{0x02a5e548, 0x00fba6c8, 0x01a91aec, 0x02e78c58, 0x0289873e, 0x02ac7679, 0x02e7b5a3, 0x01767750, 0x03ba7bb1, 0x0006fb63}}}, + {X: Field{[10]uint32{0x03450c37, 0x01fff225, 0x012ee745, 0x0134e492, 0x0233db30, 0x0385af4c, 0x0162d970, 0x03537bdf, 0x00b83c40, 0x002b7f6f}}, Y: Field{[10]uint32{0x00138e0e, 0x0216e1fd, 0x001956be, 0x0064b873, 0x038fde78, 0x0055ab08, 0x00b588c4, 0x0127b0aa, 0x03dc1635, 0x001ec20a}}}, + {X: Field{[10]uint32{0x0113bf61, 0x030f7540, 0x02cb9f06, 0x0371bb31, 0x01509ed7, 0x00b45c04, 0x0254c270, 0x00b1520d, 0x03cc9c20, 0x0025a143}}, Y: Field{[10]uint32{0x0281aaf7, 0x022e2c34, 0x03b6c008, 0x01568070, 0x01b9fcc4, 0x01fb062d, 0x00c05dac, 0x01b126bc, 0x00327f96, 0x00041011}}}, + {X: Field{[10]uint32{0x00458bbe, 0x01026d57, 0x03ac4f09, 0x005059bc, 0x031703f5, 0x0010de69, 0x00151ca8, 0x03285362, 0x01978f78, 0x000ab884}}, Y: Field{[10]uint32{0x01ecf7b1, 0x03277106, 0x012c86cb, 0x009fe80c, 0x022328e3, 0x021e5873, 0x01c7dde3, 0x00d7f514, 0x00d95760, 0x001379d3}}}, + {X: Field{[10]uint32{0x02987e57, 0x03ab1846, 0x006cfb79, 0x038f149d, 0x027e5816, 0x0358b109, 0x021a332c, 0x03265899, 0x0342e1b5, 0x003b7061}}, Y: Field{[10]uint32{0x01b4fe5e, 0x00868d01, 0x01bc02c0, 0x00c8c0c4, 0x0129ba90, 0x02eaf95e, 0x01d484fe, 0x0026fcfe, 0x033fc633, 0x0020000e}}}, + {X: Field{[10]uint32{0x0243a244, 0x0299033f, 0x025aa1d6, 0x012610dd, 0x0038b35d, 0x022e50da, 0x0290885c, 0x03c2b8a6, 0x022a5fa0, 0x001e00aa}}, Y: Field{[10]uint32{0x0192a803, 0x03dc59e4, 0x025dd7f5, 0x004616ea, 0x037e3dda, 0x005b126e, 0x03297e04, 0x00e6a101, 0x029fe632, 0x00031fcc}}}, + {X: Field{[10]uint32{0x012335cf, 0x01efdfe6, 0x02386bf6, 0x03a0d79c, 0x02c2173d, 0x038ff16a, 0x02ede712, 0x011d6b0d, 0x0179b124, 0x003eddd1}}, Y: Field{[10]uint32{0x03a82c94, 0x032f3011, 0x02c01cdf, 0x029add8e, 0x01b6f413, 0x006a3590, 0x03ebf0e3, 0x01edeb90, 0x035163c1, 0x0030399a}}}, + {X: Field{[10]uint32{0x00bc2852, 0x03886cff, 0x02982051, 0x00928c6d, 0x00695a9c, 0x03a70480, 0x0394881f, 0x02ba78cb, 0x018a43ab, 0x0036068f}}, Y: Field{[10]uint32{0x0112673f, 0x03dafcb7, 0x00dbf2cc, 0x028f2419, 0x01a693e3, 0x002a636d, 0x0351de7e, 0x032db5ef, 0x0011e8a8, 0x0018c376}}}, + {X: Field{[10]uint32{0x03324cf0, 0x01ddadf1, 0x0249f9bf, 0x02812f94, 0x027cb2ed, 0x0089a336, 0x00da0c7e, 0x001a2e01, 0x03d497cf, 0x001467f3}}, Y: Field{[10]uint32{0x0162fdb9, 0x039bff25, 0x0391dc20, 0x03b0ef28, 0x03a357c8, 0x03912ae7, 0x02916466, 0x02cfaef9, 0x00cd198a, 0x002fb1bd}}}, + {X: Field{[10]uint32{0x028ef592, 0x024a5be1, 0x0044124f, 0x021389dc, 0x023e31b2, 0x003e6c70, 0x0193853e, 0x0181cd78, 0x03e48fd6, 0x003312b4}}, Y: Field{[10]uint32{0x0383c27b, 0x0098eb75, 0x02f68996, 0x007b6c96, 0x019b1215, 0x01ec0f1d, 0x01520ac6, 0x0311d1f5, 0x018d8583, 0x00222bc5}}}, + {X: Field{[10]uint32{0x00d24117, 0x00240d1e, 0x01e338f7, 0x02852e17, 0x02c06a57, 0x0137b5ba, 0x0340cf96, 0x021a9662, 0x00ae6f51, 0x002b7654}}, Y: Field{[10]uint32{0x03affa7d, 0x01effd28, 0x0165bc04, 0x03f1c013, 0x00111f6d, 0x002fb1d1, 0x03d6853a, 0x00a1737a, 0x00bd2d69, 0x00316729}}}, + {X: Field{[10]uint32{0x02b383e4, 0x030fdb6e, 0x027ddd0b, 0x0319f124, 0x03ef0437, 0x032cd62b, 0x03c81730, 0x01f79c4a, 0x03454309, 0x003701c6}}, Y: Field{[10]uint32{0x015ca8ed, 0x0042d03a, 0x0385f9e4, 0x0283ec46, 0x03f28fca, 0x0061f7ef, 0x03b2adfc, 0x00c1305c, 0x02a9899b, 0x001e4e44}}}, + {X: Field{[10]uint32{0x02c167c7, 0x01e6c6ab, 0x03abe94d, 0x01c91fda, 0x02fd97a6, 0x025ade9c, 0x0037da4a, 0x002676a7, 0x037e6db6, 0x0017738c}}, Y: Field{[10]uint32{0x024377f6, 0x0276f593, 0x021d5754, 0x015993ac, 0x00eb35bf, 0x005ae8a8, 0x0082991f, 0x02290ed9, 0x03ba1f09, 0x0006e21f}}}, + {X: Field{[10]uint32{0x01f5cfcb, 0x02133e78, 0x009e5ba2, 0x03d0f984, 0x02900a83, 0x03a02260, 0x022ead80, 0x029989b4, 0x02ad8493, 0x00145bad}}, Y: Field{[10]uint32{0x00e05042, 0x00c3fbfb, 0x03e3c68d, 0x0046ecdb, 0x03ef6a85, 0x0074fe51, 0x018308c6, 0x02d1bd23, 0x02b38085, 0x00328d42}}}, + {X: Field{[10]uint32{0x000e5e75, 0x03c71f3c, 0x020a335a, 0x02e02321, 0x03732b3f, 0x03a45f21, 0x03912114, 0x00b68796, 0x01503b1f, 0x003dd9f0}}, Y: Field{[10]uint32{0x01aaab54, 0x02d1cf68, 0x0165795b, 0x003854f3, 0x0109ec61, 0x015776ad, 0x00f64a26, 0x0119ee22, 0x00c8cdbe, 0x000fb3be}}}, + {X: Field{[10]uint32{0x03c977f0, 0x00eb099c, 0x01e7531f, 0x00b0b319, 0x02418558, 0x005df79e, 0x03bc5d8f, 0x00b2329e, 0x03cf0f79, 0x003e6efa}}, Y: Field{[10]uint32{0x01614a85, 0x026595d2, 0x02f52b8c, 0x02aab3b2, 0x03ac751e, 0x02867957, 0x02f767b8, 0x00e89895, 0x00fefecb, 0x000a42ad}}}, + {X: Field{[10]uint32{0x0147c45f, 0x01dff3d3, 0x00e8eaf4, 0x02f326c2, 0x016ec3ad, 0x0048f7d8, 0x01bff42c, 0x0236c7d5, 0x01febe5c, 0x0031aff8}}, Y: Field{[10]uint32{0x0241792f, 0x02b55b35, 0x02995c79, 0x0004d1fa, 0x0041c271, 0x0159e624, 0x032eddc9, 0x028bff60, 0x0082d6d6, 0x0031657e}}}, + {X: Field{[10]uint32{0x00d3ce1e, 0x020a7978, 0x02425761, 0x00862e1c, 0x03c55595, 0x005c2ed1, 0x01cfe6e5, 0x02d321c7, 0x0371808f, 0x0015b0b5}}, Y: Field{[10]uint32{0x000468ba, 0x003f27d5, 0x0229f5ee, 0x02bdc58d, 0x0112ec15, 0x039c8718, 0x00a91889, 0x03989bf7, 0x02e69e03, 0x001b79ca}}}, + {X: Field{[10]uint32{0x0109d663, 0x028d99d4, 0x00fb5066, 0x03fbf181, 0x02da9ecf, 0x03033df4, 0x0296d8c3, 0x016f961e, 0x0305ec9f, 0x00080862}}, Y: Field{[10]uint32{0x038f6993, 0x00a0eefb, 0x02e12e79, 0x00ea22d0, 0x02b41bfa, 0x029cc86b, 0x02ea0aa7, 0x01f8907c, 0x03c2c535, 0x000bb069}}}, + {X: Field{[10]uint32{0x036be4ee, 0x03f2bfe5, 0x00f09e2a, 0x03d2ece9, 0x03519035, 0x01252bfc, 0x03db4f33, 0x0333656f, 0x02690a04, 0x000e8224}}, Y: Field{[10]uint32{0x0042d1a2, 0x006b615a, 0x02757ed9, 0x00899036, 0x020bbeba, 0x00d012cc, 0x0293757b, 0x0287fa45, 0x0225fb0b, 0x00395a03}}}, + {X: Field{[10]uint32{0x005b3f07, 0x01948ebd, 0x01a2e285, 0x0006ca5d, 0x02dfd3e1, 0x02618125, 0x00fd0f25, 0x022d4f6c, 0x0296a0cd, 0x0023e7c8}}, Y: Field{[10]uint32{0x01c625b5, 0x02d5c8ad, 0x01920a3f, 0x00295de1, 0x038ab3be, 0x018a435d, 0x029015cd, 0x037cc6c8, 0x01072cac, 0x00187056}}}, + {X: Field{[10]uint32{0x0288070e, 0x03d1d33f, 0x0106c836, 0x024347a8, 0x00097e2b, 0x0352d8ca, 0x01599b26, 0x036a5f34, 0x03e8695b, 0x00219602}}, Y: Field{[10]uint32{0x017d7d21, 0x03146aec, 0x00ac6166, 0x02a276e9, 0x022bb220, 0x001f71fb, 0x022fe5fd, 0x02b160e2, 0x00a17e19, 0x002aeb9a}}}, + {X: Field{[10]uint32{0x02b4d762, 0x00b74a5c, 0x03d048c7, 0x0163ec61, 0x01eb1f94, 0x015ea879, 0x005b4f0e, 0x035627b3, 0x038a1e69, 0x003edab0}}, Y: Field{[10]uint32{0x02ac32c1, 0x0004c061, 0x000147fb, 0x01bc2e58, 0x03e5d180, 0x02e0ad72, 0x031d3af2, 0x01c7cc5b, 0x0116bec2, 0x00358077}}}, + {X: Field{[10]uint32{0x02a5f0b0, 0x02e36f9f, 0x027b4242, 0x00c6d9b8, 0x02c5bb7d, 0x00aec273, 0x03aec947, 0x03aa06fc, 0x006bc54f, 0x001f0418}}, Y: Field{[10]uint32{0x01f68f54, 0x035df6ef, 0x010abd14, 0x00a8f809, 0x0202ea52, 0x0102d116, 0x01839872, 0x01590dd9, 0x0180d3d6, 0x00048854}}}, + {X: Field{[10]uint32{0x0152a1a6, 0x00ac05cb, 0x02495204, 0x0398ee11, 0x02740a5b, 0x0367ce12, 0x007822b1, 0x024ef1d3, 0x03948335, 0x002179aa}}, Y: Field{[10]uint32{0x01fae93a, 0x0397af80, 0x030f981f, 0x033371d7, 0x02d6e69f, 0x0334a38f, 0x02512138, 0x03e1aa3d, 0x00d068d6, 0x003d7058}}}, + {X: Field{[10]uint32{0x0351cfe5, 0x0044eb7f, 0x00a27f02, 0x03b2e203, 0x005e626a, 0x0151c7d4, 0x0374ea0e, 0x006e8146, 0x013a99cd, 0x001f878b}}, Y: Field{[10]uint32{0x01ad89bc, 0x012c0267, 0x0299781f, 0x033b0018, 0x02c1eb96, 0x00dbc6b7, 0x02322291, 0x03f8de30, 0x002ee9d4, 0x00104fb2}}}, + {X: Field{[10]uint32{0x007aaacd, 0x03af407a, 0x02bd2928, 0x02b1ca70, 0x016a9490, 0x024c7187, 0x03a08dd6, 0x00d7cbb5, 0x00ad8137, 0x00162590}}, Y: Field{[10]uint32{0x00485429, 0x0009c648, 0x02e15c1a, 0x026f8d0f, 0x017a1e90, 0x025b1335, 0x039fc330, 0x03ed2cd9, 0x010b8a89, 0x002275ac}}}, + {X: Field{[10]uint32{0x026e6608, 0x02b41017, 0x00c5d7b7, 0x03511046, 0x0191fdd7, 0x01d07067, 0x00db0ef3, 0x0173a3f7, 0x034ff346, 0x001c2033}}, Y: Field{[10]uint32{0x022441fe, 0x02b627e3, 0x03d347df, 0x0274d050, 0x00303348, 0x02036c76, 0x006d334f, 0x002e82d7, 0x01a95cbc, 0x001e8fc3}}}, + {X: Field{[10]uint32{0x02917c55, 0x026a1d89, 0x0261c7d5, 0x000d954f, 0x01091deb, 0x01dcdf0c, 0x0196bd4d, 0x0009a4b7, 0x034c2d40, 0x002ed982}}, Y: Field{[10]uint32{0x00983c24, 0x028fd030, 0x002faf5e, 0x00446370, 0x03f150af, 0x017a2e1b, 0x00684031, 0x00125c18, 0x0113a756, 0x002d252b}}}, + {X: Field{[10]uint32{0x03221b27, 0x03141b67, 0x02e0c1e2, 0x02c23376, 0x013f4f4f, 0x03629719, 0x008161c5, 0x0056c910, 0x01ec7ebf, 0x001ce890}}, Y: Field{[10]uint32{0x0063640a, 0x02f05d75, 0x0332b5e1, 0x024a8bdb, 0x0364bbe1, 0x03520363, 0x00865041, 0x0295bde1, 0x03b433a0, 0x002014d2}}}, + {X: Field{[10]uint32{0x00b1fe07, 0x0056aa9e, 0x03a6f89a, 0x000b0f5e, 0x039e45f2, 0x028ad62f, 0x005741e6, 0x03f6f1dc, 0x0351f08b, 0x003f707b}}, Y: Field{[10]uint32{0x016c0586, 0x039683a6, 0x00e36880, 0x0051d57d, 0x001684f7, 0x0160c950, 0x03ac05b5, 0x0121e191, 0x00dcdc1e, 0x001fa740}}}, + {X: Field{[10]uint32{0x033618af, 0x01ccf4e8, 0x007bc6d6, 0x00ea449a, 0x03a15ab1, 0x02838cf7, 0x0344736e, 0x017304ea, 0x02cba0ce, 0x00081210}}, Y: Field{[10]uint32{0x016bd521, 0x03e4ab32, 0x03a35896, 0x03708516, 0x029e1804, 0x0062a53c, 0x01187418, 0x02472feb, 0x0205a6e9, 0x002bf248}}}, + {X: Field{[10]uint32{0x017ed768, 0x02f2d805, 0x0193e0b2, 0x02660eeb, 0x01a47c4a, 0x00121a1a, 0x00095675, 0x00c54604, 0x001ef82c, 0x00280ea7}}, Y: Field{[10]uint32{0x02090a65, 0x033c67fd, 0x0263ca26, 0x028b7361, 0x0302158b, 0x02690ee2, 0x033e5eed, 0x01a603bb, 0x0164fb9c, 0x001e1be4}}}, + {X: Field{[10]uint32{0x03c00ed2, 0x026c56f6, 0x025baee1, 0x010b1515, 0x01fa18bd, 0x036a04f3, 0x015e3ff7, 0x005e118d, 0x025f6cb4, 0x00178edb}}, Y: Field{[10]uint32{0x02ee603f, 0x0000db10, 0x02cfde34, 0x022b1722, 0x019d6f35, 0x0234f936, 0x03b8f9f8, 0x008a13f0, 0x015342bf, 0x002e70e9}}}, + {X: Field{[10]uint32{0x005dbc70, 0x010e1728, 0x0254b015, 0x01d840a6, 0x00abf764, 0x03ec9d1b, 0x03dfbd6e, 0x004a0198, 0x020e082d, 0x00066c25}}, Y: Field{[10]uint32{0x01504773, 0x01993d39, 0x02f312d2, 0x03b64845, 0x0133df5d, 0x00d74107, 0x03356451, 0x004aa517, 0x03bc4401, 0x003e2ca2}}}, + {X: Field{[10]uint32{0x03f3677e, 0x01d98e37, 0x00d05098, 0x0076dafa, 0x006f1c2d, 0x028688b3, 0x039b274b, 0x02ebf9d2, 0x01007597, 0x0004187a}}, Y: Field{[10]uint32{0x01444b21, 0x0171e048, 0x00fa9815, 0x03c533d3, 0x01fe2fff, 0x03894629, 0x017b59eb, 0x024bb113, 0x0122dec5, 0x001c1eb2}}}, + {X: Field{[10]uint32{0x03030b85, 0x01c73c7c, 0x01f5709a, 0x0078ec55, 0x01cc0e22, 0x02683940, 0x039b5676, 0x01f61d50, 0x001160fc, 0x00324613}}, Y: Field{[10]uint32{0x00327805, 0x00fa608a, 0x02e308c4, 0x02527ec7, 0x018e83e5, 0x017c8e26, 0x01d30f87, 0x01a27f5b, 0x01e37c04, 0x002202da}}}, + {X: Field{[10]uint32{0x0374cf04, 0x01567fd0, 0x02f12d37, 0x0190988a, 0x01c8fa23, 0x01b09ae9, 0x005af94e, 0x014b363f, 0x03044dec, 0x0028d7ec}}, Y: Field{[10]uint32{0x012242fd, 0x035d5704, 0x0284042d, 0x01c614c9, 0x038b3604, 0x00d08b73, 0x03adcb9a, 0x00d612b1, 0x0375692a, 0x0005513c}}}, + {X: Field{[10]uint32{0x010929ca, 0x0012f46e, 0x00a8c1b2, 0x0069e000, 0x021b2c50, 0x02c4c3da, 0x00efbe8e, 0x03afa046, 0x03ad60ff, 0x002ea300}}, Y: Field{[10]uint32{0x03aaafbe, 0x00da71b8, 0x03722f11, 0x011eb84d, 0x0365b88d, 0x03de002a, 0x03732112, 0x010783eb, 0x0329a3f3, 0x003a57bd}}}, + {X: Field{[10]uint32{0x0330ddb9, 0x0346d4a3, 0x03ba3361, 0x017d7992, 0x02fe0849, 0x01268042, 0x03ba189f, 0x0229de5f, 0x0355842d, 0x0034ae95}}, Y: Field{[10]uint32{0x03df7957, 0x00c2fe94, 0x03d477c0, 0x00b0e42d, 0x000549e7, 0x00e95758, 0x00bc5f0c, 0x005e7de1, 0x01b10cad, 0x00368d9a}}}, + {X: Field{[10]uint32{0x008703f2, 0x036e6b9b, 0x0194a086, 0x01e552b2, 0x00d3de15, 0x020332c9, 0x031d2b28, 0x0222c9de, 0x03587ec9, 0x000f813a}}, Y: Field{[10]uint32{0x0328dd9c, 0x0336d3f9, 0x0207bb98, 0x02273170, 0x00ff3c60, 0x037e5bef, 0x031d6503, 0x021767ba, 0x0113e6dc, 0x003e9048}}}, + {X: Field{[10]uint32{0x019fe7f6, 0x0368f09a, 0x01ca17a0, 0x008177e4, 0x0260c9f1, 0x007d19b5, 0x019aefa9, 0x029274f8, 0x03424339, 0x003bf96e}}, Y: Field{[10]uint32{0x005156e9, 0x00fa74c9, 0x0008ff9e, 0x0029f2d1, 0x01e3576b, 0x01f3e7f1, 0x0221db29, 0x01903f3a, 0x012ffb39, 0x00263188}}}, + {X: Field{[10]uint32{0x02a0908b, 0x0359a92e, 0x008a302b, 0x00b6605b, 0x03bca2dc, 0x031383a9, 0x03e65915, 0x00cdb7bb, 0x02e5a330, 0x0028a510}}, Y: Field{[10]uint32{0x02a135e6, 0x0109ea77, 0x023112db, 0x02251199, 0x02dc5e77, 0x029bee79, 0x0374c130, 0x0391f0ed, 0x00297320, 0x00286fe2}}}, + {X: Field{[10]uint32{0x008bb792, 0x022aa23c, 0x013714da, 0x03fe0063, 0x0148e877, 0x0324862c, 0x01f632d1, 0x0097daa4, 0x00ba6f72, 0x001152f3}}, Y: Field{[10]uint32{0x01ec713c, 0x02562dd1, 0x00e3e918, 0x00f681f8, 0x01815775, 0x000ba837, 0x021106b2, 0x00ac0582, 0x01312d53, 0x0036837b}}}, + {X: Field{[10]uint32{0x00c2dca9, 0x0160d337, 0x01fced42, 0x020ba503, 0x00565737, 0x00941501, 0x00631afa, 0x02559b2c, 0x014032c3, 0x0000c58e}}, Y: Field{[10]uint32{0x03cc5fc7, 0x016a36f3, 0x004dd844, 0x017e9555, 0x0267f089, 0x03d359a2, 0x037464c6, 0x02c34691, 0x01c41b15, 0x00063158}}}, + {X: Field{[10]uint32{0x01b07703, 0x03f22112, 0x00a92bc4, 0x00e8ef38, 0x01524089, 0x03f1c4cb, 0x015fcedf, 0x01efc83c, 0x035f53f0, 0x00152d4d}}, Y: Field{[10]uint32{0x01abdee7, 0x0058fb98, 0x026a7b3f, 0x031b59c8, 0x00f5df11, 0x028ba886, 0x02922bdf, 0x01094794, 0x033f0a94, 0x000c6f8a}}}, + {X: Field{[10]uint32{0x0058b3bd, 0x02dfb980, 0x003280d2, 0x03118e7a, 0x00de9033, 0x025368f3, 0x03b9b6a6, 0x03419caf, 0x031b0745, 0x000a0f38}}, Y: Field{[10]uint32{0x00c0245a, 0x00801136, 0x0338ff9d, 0x02a99eaa, 0x010dc1c7, 0x03a074b2, 0x01c24e76, 0x02ed5b8f, 0x00a4d452, 0x003daa52}}}, + {X: Field{[10]uint32{0x00e99967, 0x0059fc84, 0x033e3a60, 0x00c5892e, 0x0148d5f8, 0x0012515e, 0x012419cb, 0x029d51ec, 0x0353117b, 0x002d79d3}}, Y: Field{[10]uint32{0x018dd3e6, 0x0120a01c, 0x01b5e10d, 0x007d33f6, 0x003da833, 0x03ce0c02, 0x03c22e89, 0x03e6aaa0, 0x0354d635, 0x0017d8d5}}}, + {X: Field{[10]uint32{0x03f83080, 0x0159c4f2, 0x031340a8, 0x012c7349, 0x03d587c3, 0x0335476b, 0x00dc776f, 0x00c60c5c, 0x0332cfa3, 0x001a0797}}, Y: Field{[10]uint32{0x0279266a, 0x0106951c, 0x010e38f2, 0x03bfef8e, 0x0276f646, 0x01ff3cc2, 0x00361d9b, 0x039375ed, 0x00b8d144, 0x003161f6}}}, + {X: Field{[10]uint32{0x029f1d0c, 0x01697f40, 0x00621b92, 0x00857fe3, 0x012f28b2, 0x00177d5b, 0x021ec17d, 0x00a27c94, 0x02b7722f, 0x0007ee97}}, Y: Field{[10]uint32{0x0311f5ba, 0x0372fa7a, 0x037d1524, 0x018d6cae, 0x0234283b, 0x032b2d9a, 0x03f287ef, 0x03f537e9, 0x00d997ec, 0x0037c450}}}, + {X: Field{[10]uint32{0x020d0a77, 0x004c029a, 0x00f2031e, 0x01933095, 0x0217855b, 0x00cfc6f3, 0x038fc5a7, 0x022cf3b4, 0x00b0df37, 0x000e2ffd}}, Y: Field{[10]uint32{0x0206b1be, 0x03728719, 0x03dc2520, 0x01979cef, 0x01f35a50, 0x0094dd1d, 0x00485ee3, 0x00a5b993, 0x025df634, 0x001b53c1}}}, + {X: Field{[10]uint32{0x017de831, 0x023dd3b9, 0x015ed6e0, 0x0281df32, 0x03779df8, 0x01ed5e63, 0x00050d52, 0x00992ef9, 0x03c359a9, 0x001c1c04}}, Y: Field{[10]uint32{0x014ea422, 0x032455c0, 0x00c3fda9, 0x029d8cb9, 0x02582313, 0x00f3662b, 0x03b8dcc5, 0x021b0195, 0x01a03153, 0x002e7cde}}}, + {X: Field{[10]uint32{0x01642ef5, 0x028fd8d1, 0x0135a73d, 0x02467799, 0x03fc5b8c, 0x0082416a, 0x010abbb3, 0x00921392, 0x012f7028, 0x002b653b}}, Y: Field{[10]uint32{0x02c88457, 0x01c0b0aa, 0x02bd6cb8, 0x01cdb409, 0x020fdf49, 0x01951485, 0x00011fec, 0x0387cfa6, 0x0013a554, 0x00276fa2}}}, + {X: Field{[10]uint32{0x0362612e, 0x0115613f, 0x001f54f5, 0x021d62e2, 0x00fd174f, 0x0110de17, 0x01ad1552, 0x021da926, 0x01e4e991, 0x0011ed5b}}, Y: Field{[10]uint32{0x00efdced, 0x0356695f, 0x012d986b, 0x03483524, 0x03383d92, 0x03dd4ddd, 0x016117a5, 0x02faddf1, 0x01375855, 0x00028501}}}, + {X: Field{[10]uint32{0x01f431e8, 0x03ded205, 0x036af03c, 0x013433cc, 0x03f31f62, 0x0047ca04, 0x024643af, 0x029a4c7c, 0x024e9291, 0x00146f39}}, Y: Field{[10]uint32{0x0107e552, 0x00eaaebb, 0x02e13a06, 0x01a435d6, 0x03f40c4c, 0x00480e53, 0x0235d284, 0x00891c3b, 0x03d9a301, 0x00023dd0}}}, + {X: Field{[10]uint32{0x03f7a43f, 0x02e550b9, 0x03447a0c, 0x03b80ef1, 0x0083b80b, 0x026d3af8, 0x018e56b4, 0x01683f3a, 0x00feb52c, 0x001d8a1f}}, Y: Field{[10]uint32{0x02a7a7bc, 0x00cfadb8, 0x007ff13e, 0x026f7161, 0x03e9e339, 0x003662c1, 0x01d064a5, 0x0112ef4e, 0x0256fa57, 0x001cdadf}}}, + {X: Field{[10]uint32{0x036b8f5e, 0x02b37037, 0x0155b181, 0x0333c713, 0x028dc29b, 0x006dddc6, 0x011aaa2c, 0x000430c6, 0x039ead01, 0x0018535c}}, Y: Field{[10]uint32{0x002f8085, 0x036d9b43, 0x031664f4, 0x036eabc1, 0x025591ef, 0x00001193, 0x0296c2c5, 0x01eddb22, 0x028fe860, 0x00173353}}}, + {X: Field{[10]uint32{0x024e1bc9, 0x00b4ce97, 0x0380803e, 0x02262598, 0x0035cd58, 0x00354fb4, 0x039404d9, 0x00d7cacc, 0x00c8ee8c, 0x0030e111}}, Y: Field{[10]uint32{0x00cd29f2, 0x02febd9b, 0x03f441f4, 0x02685ae4, 0x031d2ffc, 0x021fea6a, 0x02221092, 0x014baf70, 0x00cdde54, 0x0022d102}}}, + {X: Field{[10]uint32{0x01c8f349, 0x0077dea6, 0x02539239, 0x025cb6ed, 0x0256a1c1, 0x014aff79, 0x019bf028, 0x01bcd760, 0x0249c601, 0x0022a725}}, Y: Field{[10]uint32{0x0369a8ed, 0x03a5d2b5, 0x001afdc6, 0x0168ce46, 0x031797aa, 0x0132d402, 0x00a6030a, 0x0067e9b1, 0x0157be2c, 0x002cb736}}}, + {X: Field{[10]uint32{0x02a04b03, 0x02ccc46f, 0x026bced6, 0x02d0745d, 0x0196292a, 0x0334a35d, 0x010ea0a6, 0x025c2497, 0x011be444, 0x00283d73}}, Y: Field{[10]uint32{0x027ff95b, 0x03e56524, 0x034b868a, 0x00681c73, 0x00c8d793, 0x03912738, 0x0045d923, 0x00a6c338, 0x01e9291b, 0x00349c2c}}}, + {X: Field{[10]uint32{0x033a9614, 0x03530447, 0x03a64709, 0x0372a550, 0x0025c64d, 0x00a38964, 0x03bdbaf0, 0x01661deb, 0x03368767, 0x0029e3c8}}, Y: Field{[10]uint32{0x02a6de83, 0x007c108c, 0x01e7ee24, 0x02690e7d, 0x01de34aa, 0x007d4346, 0x0245b3ab, 0x0116fb94, 0x02c9a5d2, 0x0004d97e}}}, + {X: Field{[10]uint32{0x03391769, 0x03f0f902, 0x03b514a9, 0x00c27b8f, 0x03af6cae, 0x0104e91a, 0x03aa6f5a, 0x00b16e4a, 0x03e3ae48, 0x000eff4d}}, Y: Field{[10]uint32{0x016d1c59, 0x01553c0e, 0x03d66bdc, 0x0019371f, 0x03d0219c, 0x01de3273, 0x02424a07, 0x02c3719b, 0x001834bb, 0x000b64c2}}}, + {X: Field{[10]uint32{0x013881a2, 0x00735c74, 0x00e5d1b4, 0x00f580bb, 0x02d426f2, 0x039e5b4a, 0x036ea757, 0x00748f9d, 0x009a0026, 0x0024b2b1}}, Y: Field{[10]uint32{0x031521c1, 0x02124b95, 0x035dac0d, 0x032061e8, 0x00c7a43a, 0x02303176, 0x023e587a, 0x00df2266, 0x00138e0f, 0x00231dbb}}}, + {X: Field{[10]uint32{0x0356842a, 0x01008502, 0x01d6b829, 0x0379ea5b, 0x03718944, 0x0124d59e, 0x03708941, 0x03719f30, 0x01e00ea7, 0x00033dbb}}, Y: Field{[10]uint32{0x00627cb7, 0x03a343d5, 0x0042ca76, 0x0343d646, 0x020fa070, 0x00f72314, 0x016128a5, 0x01822deb, 0x03d4e939, 0x0038adc5}}}, + {X: Field{[10]uint32{0x0291e17a, 0x006fe0be, 0x0035e3dd, 0x00b44781, 0x00968c8c, 0x02c1b886, 0x02cb92bb, 0x00a5149b, 0x0198ba51, 0x00188132}}, Y: Field{[10]uint32{0x00cd0ea4, 0x0362b765, 0x03939d12, 0x031e6981, 0x03d1ed18, 0x002bca8f, 0x03ae21ef, 0x01972723, 0x015fe783, 0x0005a428}}}, + {X: Field{[10]uint32{0x00c0aa5d, 0x006bff79, 0x03f12ef7, 0x001fc88d, 0x02d8ce07, 0x01ab0b85, 0x0268d13a, 0x000384d4, 0x0348cc55, 0x0028b13e}}, Y: Field{[10]uint32{0x000cd839, 0x03cb5c0f, 0x039509e5, 0x01ea3566, 0x03c403f5, 0x016048ea, 0x03e3906c, 0x03225f2d, 0x000ee608, 0x000e0251}}}, + {X: Field{[10]uint32{0x03656f60, 0x01e1cf7a, 0x024f2b66, 0x03135cc8, 0x016acc8e, 0x00ecb8c2, 0x01a36a6d, 0x00f92f17, 0x03a1cc30, 0x00362bdf}}, Y: Field{[10]uint32{0x00c6de0d, 0x0333fffc, 0x02e5ddd4, 0x006e7b7a, 0x015e14d8, 0x00116c4d, 0x03b39f97, 0x00cf1437, 0x02bd5a55, 0x0027f1fc}}}, + {X: Field{[10]uint32{0x02dea0e7, 0x035dd75d, 0x0390a864, 0x00fb476b, 0x01377073, 0x0014c12f, 0x00e6bbdb, 0x00a46981, 0x00adb873, 0x000fa680}}, Y: Field{[10]uint32{0x0101ded0, 0x023bad02, 0x0063051f, 0x026cc86d, 0x0320a5cb, 0x0066a35d, 0x0124e37f, 0x0313bd4d, 0x0057f6d1, 0x0037ad25}}}, + {X: Field{[10]uint32{0x03dc3d7f, 0x03943974, 0x0136809d, 0x0357a862, 0x01760ca8, 0x0306cab2, 0x014346aa, 0x01883261, 0x02e930aa, 0x0002fbd6}}, Y: Field{[10]uint32{0x00dfc48f, 0x037eb592, 0x03034c0f, 0x028ff8dc, 0x0105da98, 0x03501079, 0x0212b9c7, 0x017d66c0, 0x0042f792, 0x00083603}}}, + {X: Field{[10]uint32{0x0155f67f, 0x00ad2424, 0x0035d592, 0x011e2229, 0x0238215e, 0x03ce5916, 0x01743088, 0x03541db0, 0x01fbcd28, 0x0033505a}}, Y: Field{[10]uint32{0x01e74674, 0x030bc98d, 0x025b929d, 0x03192d6a, 0x00a170da, 0x015b06da, 0x025f2743, 0x01937569, 0x00a21a55, 0x003e798b}}}, + {X: Field{[10]uint32{0x015a4c28, 0x02d810bb, 0x0121d538, 0x004533ce, 0x014bd37b, 0x025f5db3, 0x01a25047, 0x009893f7, 0x01ed34cd, 0x00292da4}}, Y: Field{[10]uint32{0x026af55d, 0x01b08174, 0x02d12c33, 0x01ddcb1c, 0x025c045a, 0x00f8ce5f, 0x030ca545, 0x02d30456, 0x00b16781, 0x003194dd}}}, + {X: Field{[10]uint32{0x00aa4818, 0x01576f62, 0x0047dc9e, 0x0056fe7a, 0x03c2b3a6, 0x02a14303, 0x03cf68fa, 0x02de2065, 0x016a4226, 0x001793a4}}, Y: Field{[10]uint32{0x0398951e, 0x02128c6d, 0x032808d9, 0x0014fac9, 0x03f3395d, 0x0193d2cb, 0x01991f44, 0x014b9972, 0x02a25c7c, 0x000fcf0f}}}, + {X: Field{[10]uint32{0x03a74a7c, 0x011d357a, 0x0105ca5f, 0x02e88653, 0x01f743e6, 0x00293180, 0x011b3ad5, 0x027dcb25, 0x02cff4d6, 0x003751e0}}, Y: Field{[10]uint32{0x00977b99, 0x0304b208, 0x0281d6c7, 0x0247536c, 0x0205d3a7, 0x018a3630, 0x03dd6ae8, 0x03bdf178, 0x035e9854, 0x0025e9ee}}}, + {X: Field{[10]uint32{0x01adce36, 0x02026470, 0x02f0bcc0, 0x01044f92, 0x00281aff, 0x019a701f, 0x03945432, 0x0017b376, 0x02d54ab4, 0x002854c2}}, Y: Field{[10]uint32{0x0263e756, 0x01125612, 0x0168a774, 0x02dbf6ee, 0x01b18550, 0x038aa96c, 0x01dda781, 0x0210b977, 0x02212732, 0x003cf494}}}, + {X: Field{[10]uint32{0x0264719e, 0x035db2a7, 0x013234a2, 0x00cab639, 0x03e5ee0d, 0x00cabd92, 0x014523f2, 0x0393c018, 0x02f7b438, 0x00146493}}, Y: Field{[10]uint32{0x028a8095, 0x01631dc4, 0x00176268, 0x01563ab6, 0x03fdfe6e, 0x02d912fe, 0x036e82b8, 0x0136d59c, 0x01a811f9, 0x0021f045}}}, + {X: Field{[10]uint32{0x03fada6e, 0x03555a14, 0x03563a3b, 0x01701ae5, 0x016ac905, 0x03882a75, 0x03625d4b, 0x0361d041, 0x0268e137, 0x0020b3fb}}, Y: Field{[10]uint32{0x00733b7a, 0x019e61cc, 0x01cc06ff, 0x01e140a9, 0x02a363e9, 0x037b9e9c, 0x02804d76, 0x031471ca, 0x0246c4f5, 0x0037526a}}}, + {X: Field{[10]uint32{0x032e623a, 0x03f5f957, 0x03f30a4e, 0x03f4b30e, 0x02e02b70, 0x00db1f69, 0x021346b0, 0x03bd1016, 0x0076f7f1, 0x0028dce2}}, Y: Field{[10]uint32{0x0204a21a, 0x0365847a, 0x02edf368, 0x00d9606c, 0x02b1204d, 0x01200cc6, 0x00de46e5, 0x014acaf8, 0x012be1ea, 0x001965bd}}}, + {X: Field{[10]uint32{0x0180bcbc, 0x000d960a, 0x01d7dd82, 0x02cc62c3, 0x028d8382, 0x00b33c92, 0x0224fd6b, 0x00635cad, 0x02f7aec8, 0x002b9329}}, Y: Field{[10]uint32{0x018f1ae2, 0x02325eb7, 0x015e9237, 0x02586aa6, 0x03348155, 0x015322ee, 0x02a29f25, 0x01f15c78, 0x020335ad, 0x001a9eb6}}}, + {X: Field{[10]uint32{0x01d12732, 0x03df7ea2, 0x006b1400, 0x0250b614, 0x004d6ac8, 0x03732e72, 0x018d1984, 0x01d8be6c, 0x022bfa9d, 0x002f8cd5}}, Y: Field{[10]uint32{0x0075d442, 0x034b9ba5, 0x008fe473, 0x015a40c1, 0x01c4f5c9, 0x013a1d29, 0x0336cc21, 0x019a9cd4, 0x03b877c6, 0x002d99bb}}}, + {X: Field{[10]uint32{0x03c74446, 0x02e4b68d, 0x01ecf37c, 0x007c1711, 0x03f38289, 0x02983fda, 0x003b2888, 0x00f6e14c, 0x02d9815b, 0x00275f69}}, Y: Field{[10]uint32{0x015b12a8, 0x00ada35d, 0x001ac540, 0x003627f3, 0x00df3d2c, 0x02d04f51, 0x01f6d734, 0x016f8398, 0x007372ba, 0x0011b0a4}}}, + {X: Field{[10]uint32{0x030d4d3f, 0x02a77d0e, 0x02366b62, 0x03edf266, 0x020b5981, 0x02edecef, 0x02028498, 0x030af301, 0x0131e513, 0x000e48cf}}, Y: Field{[10]uint32{0x0116dfd8, 0x038e136e, 0x03c81f97, 0x012ea6bf, 0x001ec57d, 0x0187e9dd, 0x00ac3e1c, 0x03a93d36, 0x017c92e0, 0x003f09e1}}}, + {X: Field{[10]uint32{0x037768be, 0x039450f6, 0x004b43f7, 0x00cea0b6, 0x02547e6f, 0x02d63d06, 0x00d02dd7, 0x03a0ec16, 0x0388db90, 0x0016f8b5}}, Y: Field{[10]uint32{0x03de1026, 0x0127cbdb, 0x00875b90, 0x01ae6899, 0x03d585ef, 0x0213edb3, 0x01396f2e, 0x03e8cf9c, 0x03a86b2d, 0x0002e33c}}}, + {X: Field{[10]uint32{0x00f162ac, 0x01e187a2, 0x035d682f, 0x02f8e09f, 0x027c53a0, 0x01c011e7, 0x03600c25, 0x02853044, 0x01e8191f, 0x000ffd67}}, Y: Field{[10]uint32{0x01c77ba2, 0x01730c8b, 0x024dfd81, 0x03ed79e6, 0x0308ae4e, 0x009e6847, 0x03f5f60c, 0x02db9efb, 0x01856ab0, 0x00009756}}}, + {X: Field{[10]uint32{0x019a256f, 0x01d6f05c, 0x01b5875f, 0x029398c1, 0x00b61a18, 0x02803e36, 0x02d9475d, 0x00648262, 0x0030ed22, 0x00207727}}, Y: Field{[10]uint32{0x014682a5, 0x01e34a3d, 0x03fc2ca6, 0x00913503, 0x009cccf0, 0x01a6897e, 0x038f9c98, 0x032c9e9b, 0x005e5c44, 0x000a5c1d}}}, + {X: Field{[10]uint32{0x0370e9da, 0x0168f926, 0x00d24f76, 0x010eedea, 0x02ea3869, 0x00c353d2, 0x036121b2, 0x01026455, 0x0216579c, 0x002e8f87}}, Y: Field{[10]uint32{0x02c72f4e, 0x02088d8c, 0x02abd90f, 0x039956ae, 0x0154eb0d, 0x034c39ec, 0x01d8d9c7, 0x03e99e2a, 0x0008653c, 0x00287bae}}}, + {X: Field{[10]uint32{0x03f854f8, 0x02271220, 0x0304ca05, 0x0250ee5b, 0x01fa66d1, 0x02df479a, 0x01f52a51, 0x02bb8450, 0x028150fa, 0x0000d7ff}}, Y: Field{[10]uint32{0x01366fad, 0x03422a32, 0x00dc9b7d, 0x018c181c, 0x00b4ad31, 0x03c44170, 0x00a09b8d, 0x01b74ff3, 0x0022e83f, 0x00359a86}}}, + {X: Field{[10]uint32{0x00763a06, 0x0142ab58, 0x00f685b9, 0x038f95c9, 0x038b50d7, 0x00e2e605, 0x0214c0ae, 0x03e5c870, 0x00221435, 0x000e63af}}, Y: Field{[10]uint32{0x00811f46, 0x016e0120, 0x03011682, 0x021c5240, 0x0115551b, 0x030b233a, 0x00d4da7f, 0x03baaff3, 0x009d0eb2, 0x0030b7d5}}}, + {X: Field{[10]uint32{0x00a89e96, 0x0284e243, 0x01a0d6cf, 0x00aa913f, 0x029ca89d, 0x01397387, 0x018511a8, 0x029d7474, 0x0333e7d0, 0x000ae89f}}, Y: Field{[10]uint32{0x017cf4a7, 0x02d98ae6, 0x02f19c6b, 0x0153f304, 0x0045c2ac, 0x02472845, 0x039946cc, 0x01d70e3c, 0x004b8323, 0x001408da}}}, + {X: Field{[10]uint32{0x01e829c2, 0x034547be, 0x0014465c, 0x00fbc7fc, 0x032b5497, 0x014c60ba, 0x02cd4856, 0x007e4813, 0x023e7ec5, 0x001095c1}}, Y: Field{[10]uint32{0x01232c1c, 0x01518ad5, 0x015d747c, 0x016a04ab, 0x00919f8b, 0x01a6af59, 0x009ab35b, 0x00145447, 0x034116dd, 0x0011cd47}}}, + {X: Field{[10]uint32{0x034063a8, 0x03c5cb66, 0x006ebe3e, 0x025623b9, 0x0180da81, 0x00b95946, 0x0218582d, 0x03295a50, 0x03c1b5b3, 0x001df9cd}}, Y: Field{[10]uint32{0x01d1587a, 0x038830a2, 0x007b50e0, 0x017135ec, 0x03651ae4, 0x032e44b8, 0x008d4f11, 0x0262b4df, 0x01c5e667, 0x0003df2d}}}, + {X: Field{[10]uint32{0x00cdaa4f, 0x03bb1e8d, 0x028c44a7, 0x010d1ed7, 0x01ef027d, 0x02932dcb, 0x02f98b82, 0x02307ef7, 0x024d7101, 0x0037f2ed}}, Y: Field{[10]uint32{0x03972a23, 0x02c31765, 0x01a92e06, 0x0160b72a, 0x01bc2f4e, 0x014713c2, 0x03379e87, 0x01d6222b, 0x01bcc720, 0x0037f033}}}, + {X: Field{[10]uint32{0x0355ae8a, 0x0258ab74, 0x00e78ce6, 0x0388a94b, 0x01b39855, 0x011b5c62, 0x02c52567, 0x007a38ca, 0x02d0a787, 0x0023ada1}}, Y: Field{[10]uint32{0x00cc30da, 0x038cc71b, 0x02a5ed71, 0x01d5ba29, 0x0389b796, 0x0308b17e, 0x00afe424, 0x00a0dff4, 0x0211fec5, 0x003aa2cd}}}, + {X: Field{[10]uint32{0x02cc3e54, 0x025ac74d, 0x0298785a, 0x00b6fa9e, 0x02ee5652, 0x0313083f, 0x02703ff8, 0x00b754c5, 0x0313ebaf, 0x00345f61}}, Y: Field{[10]uint32{0x01c10b54, 0x007616f7, 0x038b5682, 0x01c9391b, 0x00e9fdb8, 0x03e25074, 0x00a7a19b, 0x018b2a76, 0x03e86d78, 0x003a9c2d}}}, + {X: Field{[10]uint32{0x00b3ba89, 0x000df88c, 0x02cfa3ec, 0x007e0b35, 0x02249c47, 0x0053bbb6, 0x02d28e9c, 0x00287215, 0x03e6ae05, 0x001f531d}}, Y: Field{[10]uint32{0x0265fe60, 0x01cffa58, 0x027bcea7, 0x0230f686, 0x01900ad6, 0x009f440b, 0x0180f393, 0x037e4d2c, 0x0253f5fb, 0x0031681d}}}, + {X: Field{[10]uint32{0x017ebcab, 0x014306d3, 0x01e88f4f, 0x03b4378e, 0x003721dc, 0x02c942f3, 0x021d51b3, 0x0179a1b5, 0x0109451e, 0x00258e04}}, Y: Field{[10]uint32{0x00801b64, 0x01745959, 0x003947f1, 0x00529c8a, 0x0209f065, 0x035bc3f9, 0x017642bd, 0x032951fc, 0x0019b088, 0x0025263d}}}, + {X: Field{[10]uint32{0x038c2ba7, 0x02be42a5, 0x00d208af, 0x020ff68f, 0x0385f44e, 0x023d3a54, 0x02da8f2f, 0x00f5cdec, 0x01505435, 0x001d002d}}, Y: Field{[10]uint32{0x01909771, 0x022ab9ff, 0x008be6b1, 0x00749d41, 0x02e36bed, 0x036c7572, 0x0129a04c, 0x00d9df88, 0x00a3ce50, 0x00264ceb}}}, + {X: Field{[10]uint32{0x026ff59f, 0x00792e81, 0x01be2a01, 0x030e4ed4, 0x00d1de3b, 0x03c4baf6, 0x02f59639, 0x02ff49c7, 0x0011fff7, 0x000f5ec3}}, Y: Field{[10]uint32{0x02404b9d, 0x007133cc, 0x01789b79, 0x00bdd51a, 0x008bddb1, 0x02a21851, 0x01eb57d8, 0x02839738, 0x00317f7c, 0x002d8e5d}}}, + {X: Field{[10]uint32{0x01c46328, 0x01bd33d9, 0x0343c5cd, 0x0377f78d, 0x0245d128, 0x03237665, 0x03125455, 0x01fc5398, 0x01ec7ebf, 0x00125136}}, Y: Field{[10]uint32{0x00589996, 0x009c6fcb, 0x01d1f5bf, 0x036449b2, 0x035c2f49, 0x02747cf4, 0x01cd408c, 0x02bb04ca, 0x019313ba, 0x003c1954}}}, + {X: Field{[10]uint32{0x01bdecf1, 0x0391b49e, 0x00b5189c, 0x00cda6eb, 0x01f37b99, 0x03822cd5, 0x0207d6d8, 0x02c743e1, 0x032b4764, 0x00265810}}, Y: Field{[10]uint32{0x03160ebd, 0x02b15ac1, 0x0386578f, 0x03e37aea, 0x03f7e1a9, 0x030852b7, 0x0200ea9e, 0x034be8a4, 0x034c0921, 0x000c13ae}}}, + {X: Field{[10]uint32{0x033de4d6, 0x0212a8ee, 0x0281d9ca, 0x01658cc5, 0x019196cc, 0x009ad77b, 0x03409cc7, 0x015963f0, 0x035b6358, 0x000c4fd4}}, Y: Field{[10]uint32{0x016c9716, 0x01024bf1, 0x01fb3dd6, 0x03fe3266, 0x0159b049, 0x0007fd3c, 0x0323bcfd, 0x0383af97, 0x008aa55f, 0x00394469}}}, + {X: Field{[10]uint32{0x008ed7b2, 0x03c0d315, 0x01bcb3cc, 0x03597004, 0x00c99478, 0x03d3dd3b, 0x01b9006e, 0x01b7036e, 0x006f8cd3, 0x00217116}}, Y: Field{[10]uint32{0x03434229, 0x02d34416, 0x01f63a75, 0x01699d8e, 0x00144c8c, 0x03e6c01c, 0x02325923, 0x0175b371, 0x03c0045c, 0x00335a54}}}, + {X: Field{[10]uint32{0x00671af8, 0x01c1be65, 0x0251d21d, 0x0036d935, 0x03d489b2, 0x01ce07ba, 0x01b668db, 0x00d6747b, 0x02d2a7fc, 0x0025a2f1}}, Y: Field{[10]uint32{0x00725186, 0x02f6df3c, 0x033ce0d0, 0x03f02d4b, 0x02de88bc, 0x0396545f, 0x032f3304, 0x01c1f306, 0x02a3723d, 0x003ec2b5}}}, + {X: Field{[10]uint32{0x0328985d, 0x023158ef, 0x024200e5, 0x03373fda, 0x0326d343, 0x01bb03a1, 0x00c72215, 0x039dfb9b, 0x00eb3722, 0x0008c96b}}, Y: Field{[10]uint32{0x038d39e1, 0x03323fe1, 0x03a5a21a, 0x03f7a06e, 0x0019b9c8, 0x03cfa7bb, 0x02596836, 0x0165e3ca, 0x0353dd29, 0x0018069f}}}, + {X: Field{[10]uint32{0x03acd2e4, 0x001ff759, 0x01dff054, 0x00d61f0c, 0x024b1c93, 0x02abcca9, 0x00667f99, 0x00efab70, 0x02abb231, 0x00231b9d}}, Y: Field{[10]uint32{0x0250c29f, 0x01444b47, 0x02a46b3f, 0x00b8d036, 0x023d7bb9, 0x00a6ce43, 0x03b19c42, 0x037ceb24, 0x0050d422, 0x0009f8ee}}}, + {X: Field{[10]uint32{0x0236748f, 0x03508c17, 0x037af9d8, 0x02a22e60, 0x000352e7, 0x0354e285, 0x02b2c728, 0x0234f935, 0x02313446, 0x0038c7fb}}, Y: Field{[10]uint32{0x010309be, 0x02686c9b, 0x00139e41, 0x00f8a035, 0x0237f9df, 0x02684078, 0x03974f6b, 0x0123e24d, 0x02e12d19, 0x00226c25}}}, + {X: Field{[10]uint32{0x00d306c6, 0x0305f52c, 0x02981215, 0x02c19eb8, 0x00da748a, 0x03968ce6, 0x0342fdd7, 0x0012d1f1, 0x006e8494, 0x00165ad6}}, Y: Field{[10]uint32{0x02a0a16b, 0x03863e18, 0x02791ff6, 0x0180acb3, 0x012ac277, 0x036b7c86, 0x00e8f05e, 0x031c4579, 0x00c5912c, 0x003a5b17}}}, + {X: Field{[10]uint32{0x01aa1c02, 0x01492185, 0x03317714, 0x028e0c4f, 0x03d453d5, 0x006549c3, 0x019c3b71, 0x00032e86, 0x01675cf5, 0x00080330}}, Y: Field{[10]uint32{0x0320ce61, 0x01e73d54, 0x024b3e7b, 0x013b05f7, 0x011905e2, 0x024900dc, 0x005c1334, 0x010a7191, 0x00c87e34, 0x001e02ab}}}, + {X: Field{[10]uint32{0x02d2025f, 0x017a774a, 0x01767dfb, 0x01be04cc, 0x0370f0e9, 0x01e93c91, 0x01148f87, 0x007f3c1e, 0x0032e10e, 0x001f9355}}, Y: Field{[10]uint32{0x03aa432a, 0x02d49458, 0x0136eec0, 0x03284f8c, 0x01fa58f0, 0x0105e60b, 0x03f5fd7d, 0x00a0dfcd, 0x03b26ee8, 0x000d7d76}}}, + {X: Field{[10]uint32{0x000237b7, 0x02edef67, 0x030e5776, 0x01e4d4a1, 0x00ff21f8, 0x01bac430, 0x038f800b, 0x01f9b9e9, 0x010895c9, 0x00307b5d}}, Y: Field{[10]uint32{0x03418fb9, 0x005063fa, 0x01bb1d8b, 0x02565c82, 0x01a38e80, 0x013ffb0f, 0x031e89f6, 0x02aa2670, 0x02068dc0, 0x00241c8e}}}, + {X: Field{[10]uint32{0x02104770, 0x0339cc2c, 0x018defc7, 0x02b9a55b, 0x029948dd, 0x00576374, 0x01239b2a, 0x02027e0f, 0x02e8a53e, 0x00397f52}}, Y: Field{[10]uint32{0x031c4fa2, 0x00bc37bd, 0x0112ade0, 0x03d77d30, 0x03050c7b, 0x017cb76e, 0x00e8ebd3, 0x00865c82, 0x029c1cbb, 0x001a9376}}}, + {X: Field{[10]uint32{0x0251f30d, 0x01bab076, 0x03f2ca76, 0x0057d9cc, 0x03e3534d, 0x00be7b3b, 0x0372cdb4, 0x02f621ea, 0x01f24b33, 0x0000f39d}}, Y: Field{[10]uint32{0x02838ed7, 0x03c132c6, 0x0136213b, 0x02334f72, 0x01a43eb4, 0x00a2bd56, 0x00e9b5d8, 0x03db898b, 0x015b51dd, 0x0027b68c}}}, + {X: Field{[10]uint32{0x0013391c, 0x033bcee2, 0x01d34ad8, 0x02a23867, 0x00527fb9, 0x01fb7d66, 0x018d8ce7, 0x00735392, 0x004f33a8, 0x00263013}}, Y: Field{[10]uint32{0x038bd3a7, 0x03c185ff, 0x01949483, 0x00ea3fc8, 0x03acb484, 0x00158255, 0x0371c463, 0x03e04bd0, 0x0167f853, 0x003f4af3}}}, + {X: Field{[10]uint32{0x0287bbf3, 0x02281e42, 0x001b10fc, 0x00a1b905, 0x01f3d2dd, 0x004f390f, 0x00e62f84, 0x032c1b2f, 0x00882906, 0x000143a7}}, Y: Field{[10]uint32{0x002fa3fb, 0x01890f36, 0x00a9ce1c, 0x0168bcf2, 0x02479a61, 0x028111d2, 0x01eefb2b, 0x006731a1, 0x013bb05f, 0x00010f1c}}}, + {X: Field{[10]uint32{0x03adf2d1, 0x022a0c50, 0x023a2eeb, 0x0190a9cf, 0x0071bf65, 0x03c86ddb, 0x00faa663, 0x0378ec19, 0x0217458b, 0x0017506e}}, Y: Field{[10]uint32{0x03b6cec5, 0x031117d5, 0x0351087c, 0x029da1d8, 0x0307f64f, 0x01eac163, 0x039e22b0, 0x008564ac, 0x0054b308, 0x0005fbff}}}, + {X: Field{[10]uint32{0x00d5b077, 0x00e3e749, 0x023e789d, 0x018191bf, 0x026b34cc, 0x0364b81d, 0x003cb8e1, 0x0164edba, 0x00bf2a02, 0x00138ccb}}, Y: Field{[10]uint32{0x039e1f95, 0x00aa1679, 0x01955c8b, 0x00f77b34, 0x01744ad0, 0x0278e478, 0x03699859, 0x000c0256, 0x005c3ab9, 0x00143e9d}}}, + {X: Field{[10]uint32{0x01a2dae9, 0x005baecd, 0x013f8347, 0x01f3776d, 0x03c83cd4, 0x00d04141, 0x017455e4, 0x02096f0d, 0x029d27ee, 0x0006efd8}}, Y: Field{[10]uint32{0x01e9bb75, 0x03ea250f, 0x0370971f, 0x01a58074, 0x018fb72f, 0x002f6179, 0x000070ec, 0x014fcd3d, 0x00c1e997, 0x00214242}}}, + {X: Field{[10]uint32{0x01cde650, 0x03d6c06d, 0x01b8aa25, 0x026f71e7, 0x0023aece, 0x03af72cc, 0x00cb3f5d, 0x0358aab4, 0x02eff9db, 0x002a4526}}, Y: Field{[10]uint32{0x00c327bd, 0x03c2fdad, 0x01a79918, 0x02318766, 0x02ae3c14, 0x037da1b5, 0x00a16d09, 0x00447d1a, 0x0346e6db, 0x0029eed2}}}, + {X: Field{[10]uint32{0x01b72a71, 0x0385c87f, 0x0037ffc5, 0x0375d7e0, 0x03b98ffc, 0x02c876b2, 0x01e5b406, 0x03590867, 0x01ee0185, 0x00200402}}, Y: Field{[10]uint32{0x03e26441, 0x00b96bcd, 0x010f2daf, 0x00162619, 0x01382839, 0x01171d7c, 0x0136f706, 0x02b5b077, 0x020957c7, 0x003a0859}}}, + {X: Field{[10]uint32{0x00ba6770, 0x01a2a1b0, 0x0068ab73, 0x00e4e401, 0x0096c6b6, 0x01bc4cbb, 0x02345846, 0x03d9e82c, 0x019ae466, 0x00301c3a}}, Y: Field{[10]uint32{0x00769362, 0x01124154, 0x00171a15, 0x033e703c, 0x03be6f8f, 0x02ca47ff, 0x016f77e3, 0x013d5a29, 0x03df358d, 0x00220fea}}}, + {X: Field{[10]uint32{0x00109f4a, 0x017fc7d5, 0x039da71c, 0x014c77fd, 0x018e028c, 0x0342be68, 0x03549a9e, 0x009d85e3, 0x0239cf61, 0x001afa25}}, Y: Field{[10]uint32{0x0204cf14, 0x017f6ce5, 0x02e0d821, 0x03c5b5d9, 0x00ff2dd6, 0x03e65c31, 0x0292f38f, 0x0244c49a, 0x017ddd37, 0x001ddebb}}}, + {X: Field{[10]uint32{0x0224ce8c, 0x016bf165, 0x01009219, 0x0014ae76, 0x03100945, 0x036ec6a1, 0x0052e796, 0x00792808, 0x01d41ce7, 0x00347f4c}}, Y: Field{[10]uint32{0x013fded1, 0x00425249, 0x01a2e5b5, 0x02aba8af, 0x0136d5f2, 0x02183979, 0x02796d91, 0x000a77aa, 0x03d378a8, 0x003cd5ea}}}, + {X: Field{[10]uint32{0x03169d9e, 0x0351a6e3, 0x010337ae, 0x022bab66, 0x02614c32, 0x02909a65, 0x01e617c0, 0x03c52cf3, 0x002d66fe, 0x0007214e}}, Y: Field{[10]uint32{0x038a71f9, 0x02257bc1, 0x01113a8f, 0x0137f6fe, 0x01e2406a, 0x01c9f669, 0x018702ab, 0x039aa13d, 0x031cb236, 0x0016316b}}}, + {X: Field{[10]uint32{0x0336b5ea, 0x03b7f653, 0x0212e272, 0x02dd0f2e, 0x03eec32c, 0x0304a2b5, 0x025c2d52, 0x019edd0b, 0x01edd5fd, 0x000b63ea}}, Y: Field{[10]uint32{0x032cd37d, 0x026b4763, 0x0331f0aa, 0x0103de01, 0x02231453, 0x0325930c, 0x0133af4b, 0x00a827e5, 0x033937eb, 0x001c6c57}}}, + {X: Field{[10]uint32{0x03dbafb4, 0x00e048b7, 0x00c954c5, 0x031a1c0c, 0x0240ceb1, 0x014376f7, 0x00d0a159, 0x031659c0, 0x0379d9f6, 0x0013d448}}, Y: Field{[10]uint32{0x0248c05b, 0x01f020d0, 0x01674c7f, 0x03ef80e0, 0x034b320a, 0x01f76159, 0x0061980c, 0x037d7aea, 0x0305f864, 0x001537a6}}}, + {X: Field{[10]uint32{0x01e7cd1c, 0x02348b36, 0x02834016, 0x0173b64f, 0x032c6999, 0x0350fb28, 0x02609496, 0x00b08563, 0x01ba4856, 0x002697e4}}, Y: Field{[10]uint32{0x0322b86b, 0x0034aa6d, 0x036382d4, 0x00fb84bd, 0x0129bfa3, 0x02b3e714, 0x01b11266, 0x03b28b80, 0x03ecc668, 0x0027e228}}}, + {X: Field{[10]uint32{0x02f9f610, 0x01df7614, 0x03cf0065, 0x03f83563, 0x01d84d54, 0x020cedd7, 0x00cc6b6e, 0x03eb9313, 0x0102d417, 0x003768c1}}, Y: Field{[10]uint32{0x015469a1, 0x036ff045, 0x02b0c5d4, 0x01e9b1fe, 0x0207f4c5, 0x000b8a90, 0x005468d1, 0x019079b5, 0x01da2e74, 0x003eee23}}}, + {X: Field{[10]uint32{0x0326e117, 0x036978d6, 0x025e8e88, 0x02c58635, 0x000600df, 0x00c7397d, 0x00e50cc6, 0x00507612, 0x027c5586, 0x00234ba7}}, Y: Field{[10]uint32{0x0251aa86, 0x0287b400, 0x009a9e33, 0x02f3dd8f, 0x02bb72fa, 0x0170a955, 0x01ab4fd8, 0x01f15355, 0x01ecffd6, 0x0026270e}}}, + {X: Field{[10]uint32{0x001ee995, 0x029f2a59, 0x01bbfa27, 0x03378f56, 0x0310c911, 0x00f47689, 0x031cee1c, 0x00f5b2c1, 0x0076e6b6, 0x001c9b38}}, Y: Field{[10]uint32{0x010af9c1, 0x02588b98, 0x015951c4, 0x02043522, 0x0206ea5e, 0x022ad74d, 0x02d01acd, 0x03e34d34, 0x02a0c91f, 0x0013906e}}}, + {X: Field{[10]uint32{0x02a43a1a, 0x02eb366f, 0x017aa27d, 0x01c7b4ba, 0x02c0d429, 0x027a5418, 0x02c0dc2c, 0x000f4fee, 0x01fe1835, 0x0037af24}}, Y: Field{[10]uint32{0x022d2f11, 0x01e8ccef, 0x00100d49, 0x0323fda2, 0x026dfdf3, 0x0357c9b9, 0x03b2ab80, 0x033a6bcc, 0x0315a6fe, 0x0004d64d}}}, + {X: Field{[10]uint32{0x00fd4b28, 0x017a443c, 0x00f41c58, 0x013b5ac9, 0x03237c79, 0x01cbfcb5, 0x0039e8c4, 0x012ae39c, 0x03357791, 0x00314e50}}, Y: Field{[10]uint32{0x0126087b, 0x01bf1533, 0x0310d1fc, 0x03da691c, 0x0123c26c, 0x002a8a83, 0x03041128, 0x027139ec, 0x019b628a, 0x000a014d}}}, + {X: Field{[10]uint32{0x005f29b0, 0x022f1e68, 0x00e1cc99, 0x00412fb9, 0x0072b818, 0x022a3ebb, 0x02bf1fbe, 0x0002c600, 0x02fd33c3, 0x00268a24}}, Y: Field{[10]uint32{0x01186e33, 0x03dcbfd1, 0x00bebb37, 0x0177d7ea, 0x00553870, 0x01738df3, 0x02ebc53a, 0x0004d948, 0x023bc2fa, 0x00265fc4}}}, + {X: Field{[10]uint32{0x039a351a, 0x0160412c, 0x0279f4c5, 0x02ff5cf7, 0x001503bb, 0x0382fc60, 0x017fe427, 0x013ef9fb, 0x00ac0f22, 0x0035288b}}, Y: Field{[10]uint32{0x02ce752b, 0x02bdae0e, 0x02860341, 0x00442a0b, 0x02232603, 0x01238d1a, 0x01133495, 0x00b824a9, 0x02973062, 0x00209a3f}}}, + {X: Field{[10]uint32{0x00c11659, 0x01653ee7, 0x0003c077, 0x02ee1df7, 0x0111d4d2, 0x001c27ee, 0x0014963b, 0x02f87635, 0x03ff15ad, 0x0012933c}}, Y: Field{[10]uint32{0x01ced874, 0x03b75834, 0x0336fc2d, 0x002f0e7f, 0x035109a3, 0x03a992b4, 0x00418100, 0x0254a989, 0x018336f1, 0x0015f211}}}, + {X: Field{[10]uint32{0x018e1539, 0x026fc305, 0x02f441f6, 0x009e1c72, 0x00e85e0b, 0x00b28992, 0x00836cf4, 0x0354c263, 0x00edb580, 0x0016303b}}, Y: Field{[10]uint32{0x0042467e, 0x005e0fba, 0x03fd7412, 0x0027e847, 0x0292e54a, 0x000b346a, 0x023d36f7, 0x02f25139, 0x00491e1d, 0x003abde7}}}, + {X: Field{[10]uint32{0x024892bb, 0x03326fdc, 0x0016f634, 0x0009fd39, 0x03261323, 0x03961a8c, 0x02154f3f, 0x01fa24e2, 0x00e8a60c, 0x002c3ef4}}, Y: Field{[10]uint32{0x02a5d3c3, 0x00cc31e0, 0x03d079a0, 0x024c4df0, 0x026dd83f, 0x0012662e, 0x00fcb501, 0x03d036d5, 0x027d6757, 0x0009ee9d}}}, + {X: Field{[10]uint32{0x0192f0d3, 0x01b630b6, 0x000818c1, 0x03de132d, 0x00ee90c2, 0x013bc611, 0x01fecf3e, 0x004d6849, 0x012a26b0, 0x002a52b8}}, Y: Field{[10]uint32{0x018e2050, 0x0229d808, 0x03c95bbc, 0x00d8221d, 0x02e046fe, 0x02ee8f59, 0x0016a6f6, 0x01d6571e, 0x03ba665e, 0x0028dd11}}}, + {X: Field{[10]uint32{0x00dcbeb5, 0x02f8c223, 0x02eeb9ad, 0x0101cc16, 0x00c540e2, 0x03e40137, 0x036c4844, 0x013eb8ca, 0x009b3eb7, 0x00232f6c}}, Y: Field{[10]uint32{0x00c932fe, 0x01cb3d0d, 0x023b810e, 0x01146d27, 0x01912df7, 0x0139685a, 0x007b14c0, 0x03bf4bfc, 0x03a291f6, 0x0000ae18}}}, + {X: Field{[10]uint32{0x00cdbac8, 0x00e721cd, 0x03afcf8f, 0x0071034d, 0x020ab313, 0x01422af5, 0x02fb89ed, 0x03af8731, 0x02c3b70e, 0x000fe33e}}, Y: Field{[10]uint32{0x0158b65e, 0x0124e84b, 0x01321f0c, 0x021ed10f, 0x01a68b52, 0x0122592d, 0x00b303db, 0x03c975e5, 0x0111846e, 0x0036ec08}}}, + {X: Field{[10]uint32{0x0315b25b, 0x01f69837, 0x004b9054, 0x0136ceb2, 0x0331fcaf, 0x020598c2, 0x03e9a4e1, 0x039e704b, 0x00e0cea3, 0x002d8581}}, Y: Field{[10]uint32{0x01b86801, 0x03a7660a, 0x0192cea2, 0x02224063, 0x00317d53, 0x02849929, 0x0265b41b, 0x03e96d59, 0x03ad9ea0, 0x0006abca}}}, + {X: Field{[10]uint32{0x011327d7, 0x021bbc11, 0x00a3f07c, 0x028d9347, 0x02fa51bd, 0x03ef5a2d, 0x026630a7, 0x02ce3870, 0x00103c6a, 0x003ac39d}}, Y: Field{[10]uint32{0x00e82e6d, 0x01a05eb8, 0x037d44c3, 0x0330bb8d, 0x0045cdaa, 0x027edd0e, 0x001c9c7d, 0x034f0655, 0x001757c4, 0x0037e814}}}, + {X: Field{[10]uint32{0x0156b7ae, 0x0342fda5, 0x0144f4bc, 0x01f92c95, 0x031fcfdd, 0x01d8b012, 0x02d28126, 0x03993236, 0x0103be51, 0x0018dbf1}}, Y: Field{[10]uint32{0x013f4cd9, 0x021c0e8c, 0x011e6984, 0x0375414b, 0x02b633c8, 0x022df621, 0x03b6735a, 0x010525fc, 0x030f0510, 0x0015ee0e}}}, + {X: Field{[10]uint32{0x012ab330, 0x031cd639, 0x02288c15, 0x01953a8f, 0x005ba9dc, 0x034b7867, 0x02fc2bd1, 0x008d6f1a, 0x00ec4d42, 0x000bf31c}}, Y: Field{[10]uint32{0x016a30ce, 0x01df9949, 0x01069395, 0x03a09467, 0x0135bde8, 0x03f36da5, 0x024cbbfc, 0x00788b6d, 0x00182bfa, 0x001a8d58}}}, + {X: Field{[10]uint32{0x02a94b54, 0x0043889f, 0x007d01cd, 0x0396f56f, 0x0183be81, 0x01af7ea5, 0x00969ebd, 0x02e2ff6e, 0x02c38d38, 0x00045401}}, Y: Field{[10]uint32{0x0080e08a, 0x01687508, 0x02780250, 0x00e9cc94, 0x023fac02, 0x01ba1e00, 0x0339e83f, 0x00feea6b, 0x010216eb, 0x001810eb}}}, + {X: Field{[10]uint32{0x01b3aaf1, 0x0194fca3, 0x019a515b, 0x021afb70, 0x013756a9, 0x03f95340, 0x00a2da82, 0x0070a583, 0x025a15ba, 0x00005f55}}, Y: Field{[10]uint32{0x03c7399c, 0x012b5ea6, 0x00c35f27, 0x0064cd4d, 0x027a6338, 0x0274c494, 0x00b05aab, 0x002cf92e, 0x01dd4204, 0x00245eee}}}, + {X: Field{[10]uint32{0x03221ef2, 0x01d31b5a, 0x0330e023, 0x022ad20b, 0x01d2af8f, 0x00f96f2a, 0x00598f7a, 0x00710c2e, 0x00898850, 0x00037309}}, Y: Field{[10]uint32{0x03652e72, 0x01919193, 0x02b0a578, 0x02d667c7, 0x01cd14ca, 0x03c037b3, 0x03102a6e, 0x03b14ac7, 0x017dd5c6, 0x002a165d}}}, + {X: Field{[10]uint32{0x011f0b0f, 0x00fea3cd, 0x03a03d83, 0x030f50f2, 0x03ae2cf9, 0x03a0229f, 0x01919db6, 0x00c2df37, 0x039f4e94, 0x0029a2ca}}, Y: Field{[10]uint32{0x00786526, 0x0096f165, 0x00f66d65, 0x0137cbe7, 0x017f45b1, 0x009de008, 0x015614d9, 0x00248e3a, 0x0232d3ad, 0x0038d2e2}}}, + {X: Field{[10]uint32{0x010e9462, 0x0020a7e3, 0x013c2319, 0x005d1c0b, 0x01fe7e2f, 0x02b5654e, 0x02d11e9e, 0x00466174, 0x025a938e, 0x000be553}}, Y: Field{[10]uint32{0x03b16dd5, 0x02ac79c2, 0x02c61e55, 0x02fe7e26, 0x01f6aaa6, 0x01a8e4ec, 0x02fecc84, 0x01f502e8, 0x0379fa8b, 0x002cbc34}}}, + {X: Field{[10]uint32{0x027ffe4f, 0x00e4e330, 0x03556fa9, 0x0234f33f, 0x033cc33c, 0x02ecb77a, 0x03fcae86, 0x0253f66c, 0x01136bca, 0x00088f4f}}, Y: Field{[10]uint32{0x01512915, 0x01329614, 0x00ec09c7, 0x02294eed, 0x0327f6cd, 0x00f58866, 0x016f7dd8, 0x0061f309, 0x0106e317, 0x0021f864}}}, + {X: Field{[10]uint32{0x028f7b2e, 0x020d2b67, 0x02abf517, 0x00ae83ce, 0x00b61443, 0x02d3d257, 0x01f3a3e9, 0x0186d90f, 0x00e82911, 0x00156476}}, Y: Field{[10]uint32{0x026d07c2, 0x03bd6503, 0x01416673, 0x01fb1028, 0x0130b3fe, 0x02e91c67, 0x03d454eb, 0x01f94b66, 0x0235f626, 0x000b235a}}}, + {X: Field{[10]uint32{0x01f29a29, 0x024dd451, 0x02252c8e, 0x0078b939, 0x03414184, 0x027a6bbe, 0x00cbaecb, 0x0068521c, 0x004ad15d, 0x003acb3f}}, Y: Field{[10]uint32{0x0052e5ac, 0x019c855c, 0x00b955bc, 0x0035b4d7, 0x00e62f21, 0x01d94054, 0x0304c79c, 0x03664ade, 0x020810bf, 0x001e2043}}}, + {X: Field{[10]uint32{0x00a3f74b, 0x0178fa7b, 0x0392700d, 0x01f4b867, 0x02bdcdb4, 0x00e7310d, 0x00b1d4c5, 0x02a06179, 0x03f99680, 0x001844b0}}, Y: Field{[10]uint32{0x00da4403, 0x03694ae6, 0x00f353b8, 0x01f1a9a4, 0x02f2579d, 0x007db2a5, 0x008f9d40, 0x022feb6b, 0x03dd723c, 0x001ba182}}}, + {X: Field{[10]uint32{0x03d58b16, 0x02477b69, 0x015797b3, 0x00535f8c, 0x03b9b329, 0x0283c5f0, 0x002c23b9, 0x0362c031, 0x00d8d552, 0x00224848}}, Y: Field{[10]uint32{0x01cf7941, 0x0008c5ad, 0x00edf325, 0x025b33c3, 0x03cc4a94, 0x02f7300d, 0x013d1f64, 0x01e3cbe4, 0x03acb3c7, 0x00398948}}}, + {X: Field{[10]uint32{0x03c4dc0a, 0x0347a447, 0x021c5ecb, 0x01245a11, 0x0160ca4a, 0x018c1129, 0x03155839, 0x034ef808, 0x0056217a, 0x0011d62d}}, Y: Field{[10]uint32{0x01d83679, 0x0121e336, 0x027ca960, 0x01ec0f13, 0x03bb7498, 0x030c2b06, 0x03eec6a1, 0x025cfc15, 0x015a4f30, 0x00267909}}}, + {X: Field{[10]uint32{0x025629da, 0x039d5d5b, 0x02143b99, 0x031f658b, 0x03a3b95d, 0x01e11e6b, 0x03a0c6f9, 0x01ea1e5f, 0x02a69a20, 0x002ac108}}, Y: Field{[10]uint32{0x01823faa, 0x01b8b8e9, 0x02dfa7a0, 0x01c12653, 0x0184af0f, 0x02e37f3b, 0x00280c32, 0x026157af, 0x010f00fc, 0x001cce63}}}, + {X: Field{[10]uint32{0x0145d227, 0x02b50fb5, 0x01b20ee7, 0x02983c28, 0x01852cc7, 0x020a4dd3, 0x010b4c35, 0x002c50c3, 0x032accb9, 0x00066010}}, Y: Field{[10]uint32{0x028b05c5, 0x023696e7, 0x01546766, 0x03e3cb94, 0x0069c919, 0x02e626f4, 0x03d1a0e9, 0x0233acab, 0x0073bfbc, 0x0025ab8e}}}, + {X: Field{[10]uint32{0x00e93f17, 0x01894bb8, 0x010cbb71, 0x0055d0f5, 0x0293b8a0, 0x02aefbcf, 0x0361cd72, 0x03eceb29, 0x037fe2df, 0x0010a204}}, Y: Field{[10]uint32{0x02238825, 0x0021b76a, 0x008de456, 0x0011679e, 0x0271fddb, 0x03681d9c, 0x01855f14, 0x019a9bef, 0x033e36c3, 0x00300b0c}}}, + {X: Field{[10]uint32{0x02b6cde2, 0x024a06b5, 0x03d3d52d, 0x01db836d, 0x0077e432, 0x02a9cfe9, 0x03c4d160, 0x0227682b, 0x003505bc, 0x003597eb}}, Y: Field{[10]uint32{0x0007383f, 0x01e11e30, 0x02b13056, 0x03906221, 0x038e9f07, 0x000e18b4, 0x01005456, 0x03ccded1, 0x0175a6c5, 0x0039bd32}}}, + {X: Field{[10]uint32{0x018f6ca7, 0x00665e2e, 0x014c843e, 0x021346ca, 0x02beb967, 0x0181e4db, 0x028b54e1, 0x0349e93f, 0x0144e62d, 0x001c0a6c}}, Y: Field{[10]uint32{0x0140a25c, 0x023ca99c, 0x0114aa47, 0x011f1cf7, 0x009a1af3, 0x0155113c, 0x02c90c38, 0x01b1b8e8, 0x01665805, 0x0022c43b}}}, + {X: Field{[10]uint32{0x039183b2, 0x0256d0f3, 0x01711502, 0x013911c5, 0x01fa343e, 0x01768306, 0x00ea87da, 0x026f77a0, 0x00ebdf96, 0x0013c9d8}}, Y: Field{[10]uint32{0x03e28167, 0x00a59de0, 0x03425d46, 0x017536bf, 0x0115d862, 0x023da6da, 0x001fd39b, 0x03bc27e8, 0x017bf3f9, 0x0010f8b0}}}, + {X: Field{[10]uint32{0x0374a5fc, 0x01c98570, 0x03e52143, 0x015fcbb9, 0x01b573ce, 0x02e7e94e, 0x015f0d23, 0x025aa3cd, 0x02addb41, 0x0033265a}}, Y: Field{[10]uint32{0x028ef28d, 0x027cb702, 0x019232c0, 0x02b6fffe, 0x0144284b, 0x02fa1744, 0x00a9cb66, 0x00a4d70c, 0x03871878, 0x002c7103}}}, + {X: Field{[10]uint32{0x014ade42, 0x010c0f35, 0x006313cf, 0x0214ef6b, 0x01cd9b32, 0x017adc24, 0x0038e398, 0x036416cb, 0x02d3f3e3, 0x0031e062}}, Y: Field{[10]uint32{0x00339eee, 0x01feebe5, 0x03937800, 0x03f747d7, 0x033403a5, 0x030510f3, 0x0363fb0f, 0x02142c51, 0x004e7bbb, 0x001555d3}}}, + {X: Field{[10]uint32{0x0189c4fd, 0x01d5cdc9, 0x0045e52a, 0x03279de5, 0x009a45db, 0x02b97496, 0x0344d1f3, 0x023affd0, 0x01846fc4, 0x001b340d}}, Y: Field{[10]uint32{0x03416e34, 0x03a33224, 0x00723a44, 0x024a34b5, 0x014d811c, 0x039347ea, 0x0367dda8, 0x038dc6b7, 0x037db165, 0x002bea16}}}, + {X: Field{[10]uint32{0x003b2e0a, 0x03aeeb51, 0x00fd3bfa, 0x02491d37, 0x00f5231b, 0x004548c5, 0x02b72359, 0x02c6b98c, 0x0205f716, 0x003594a8}}, Y: Field{[10]uint32{0x013bedcf, 0x02281bae, 0x02dcba45, 0x008fb059, 0x03c4646a, 0x03780f62, 0x002f0d85, 0x0103df2e, 0x0021b782, 0x00348661}}}, + {X: Field{[10]uint32{0x0052fb54, 0x0014be37, 0x02d73a6a, 0x02bf4d38, 0x0181ff0b, 0x00d00116, 0x01b3e4fe, 0x012877e6, 0x004dcd84, 0x002a01f4}}, Y: Field{[10]uint32{0x02e2cd9a, 0x0067a7e8, 0x03151af0, 0x011e5f3e, 0x00c385c0, 0x03eef1c6, 0x03e5079f, 0x0260d4ee, 0x00bb7393, 0x0006229e}}}, + {X: Field{[10]uint32{0x009eb2d7, 0x03f705f3, 0x02de224e, 0x017a7d33, 0x01b8c3a9, 0x01b2c0ae, 0x03acd07d, 0x02b523a4, 0x03bca5d6, 0x0007bf4a}}, Y: Field{[10]uint32{0x02745b39, 0x00fbbcd9, 0x01a05006, 0x02baa2bc, 0x0202a9d2, 0x02ecd5fd, 0x03e191a1, 0x031f98d5, 0x03881b98, 0x003e547b}}}, + {X: Field{[10]uint32{0x0395888f, 0x002e6b08, 0x01f666ed, 0x004df0ef, 0x030ea0ff, 0x025ff838, 0x02bcd044, 0x00f6d660, 0x0254d27d, 0x00016f17}}, Y: Field{[10]uint32{0x02ec3300, 0x03d97ca0, 0x003754c1, 0x01d409c4, 0x025a22d9, 0x00c86cda, 0x01f8b857, 0x03ac0598, 0x0002d4f4, 0x000d556f}}}, + {X: Field{[10]uint32{0x006a3247, 0x02e023dd, 0x02f221f5, 0x01c456f9, 0x02158cca, 0x022b4bc7, 0x022ea80e, 0x0234379b, 0x028d26b0, 0x0003d802}}, Y: Field{[10]uint32{0x03ca3523, 0x02ceac62, 0x00aa3cd5, 0x0371945b, 0x0276c753, 0x03a3846e, 0x02f75b28, 0x03e96c1f, 0x02134bc3, 0x0008ef96}}}, + {X: Field{[10]uint32{0x00ccaf7b, 0x00af49a4, 0x0381ae49, 0x030db1cf, 0x01f5119b, 0x0396404d, 0x01712a8b, 0x029ea331, 0x020b2ab2, 0x003f1f93}}, Y: Field{[10]uint32{0x001151a6, 0x03242ace, 0x01cddb31, 0x02d6aa0d, 0x01e4a682, 0x01b7624a, 0x02862b8a, 0x011a41ba, 0x02f41f27, 0x0012f584}}}, + {X: Field{[10]uint32{0x01442655, 0x00eced62, 0x01700bcd, 0x0161daaa, 0x0141641d, 0x01e6d8f9, 0x0067eecd, 0x03402feb, 0x033cfe12, 0x00144c97}}, Y: Field{[10]uint32{0x033ef941, 0x00de92c4, 0x03b33a44, 0x03964730, 0x03982a35, 0x01e595ff, 0x01623605, 0x039b8b6e, 0x00ad7b7a, 0x0035aa25}}}, + {X: Field{[10]uint32{0x0198aec8, 0x009b92b1, 0x03a09056, 0x01b6e3fb, 0x02afee9a, 0x005fc00e, 0x01bd2d57, 0x03d823c8, 0x00271a55, 0x000b6ceb}}, Y: Field{[10]uint32{0x03f9533e, 0x03832226, 0x03dd6e0d, 0x01a2d1f3, 0x013c6621, 0x0199827d, 0x00c9fc9d, 0x00718307, 0x0333a0c0, 0x003149af}}}, + {X: Field{[10]uint32{0x01fa7dcc, 0x03481775, 0x01be51e1, 0x00d8fce4, 0x0135fbd4, 0x01f790c8, 0x0305b554, 0x02c06d7a, 0x037293de, 0x00024201}}, Y: Field{[10]uint32{0x02d7442d, 0x01304097, 0x03f23e03, 0x02134f30, 0x0164dfef, 0x01718856, 0x013d318b, 0x00ccdc19, 0x02ac1724, 0x003fa587}}}, + {X: Field{[10]uint32{0x039ed9d6, 0x030def0c, 0x017cce2e, 0x02b4f4d6, 0x03045557, 0x01e43353, 0x02cc03f6, 0x013f20b6, 0x0181e5a6, 0x000ca86b}}, Y: Field{[10]uint32{0x027cb07a, 0x01c41898, 0x02cf3d13, 0x0362a41d, 0x0279cb55, 0x01e573b1, 0x017b63ca, 0x000089c2, 0x03681801, 0x0021eaf3}}}, + {X: Field{[10]uint32{0x019246f9, 0x01c745d3, 0x016e9a37, 0x027556ce, 0x0108c584, 0x01c745ea, 0x031af769, 0x02714683, 0x00fa5868, 0x003df2ea}}, Y: Field{[10]uint32{0x0358ee45, 0x01ee7b2b, 0x0072cac3, 0x030bf20c, 0x025309a0, 0x01757ee8, 0x024d7333, 0x02a72bb6, 0x03a910d5, 0x003d2c2a}}}, + {X: Field{[10]uint32{0x0329ea81, 0x022be098, 0x006d58ee, 0x0156b9c1, 0x03fab75f, 0x0015e690, 0x01b6b7bc, 0x00036759, 0x01042da9, 0x003369ac}}, Y: Field{[10]uint32{0x011771e3, 0x035bc773, 0x000fc068, 0x038a6b1f, 0x01a8ee20, 0x038d8078, 0x01171a01, 0x01d00568, 0x000eacfd, 0x001c321b}}}, + {X: Field{[10]uint32{0x027ee58b, 0x021e3c3d, 0x03f2ac23, 0x032b446d, 0x01a46f3b, 0x0113282f, 0x00f27b05, 0x02c73a6a, 0x024009c5, 0x00289869}}, Y: Field{[10]uint32{0x03fff888, 0x01b9043c, 0x014d420c, 0x030c1496, 0x0185da67, 0x034cf5c9, 0x029cda8f, 0x036ba6d3, 0x031d4c42, 0x000789a9}}}, + {X: Field{[10]uint32{0x01f4db57, 0x0252e9ba, 0x028846b3, 0x00f1a0bd, 0x009435aa, 0x007edb4d, 0x018e885d, 0x0210b300, 0x0167fd7f, 0x002f1c32}}, Y: Field{[10]uint32{0x00bd9468, 0x0213847e, 0x03e5718d, 0x03121f11, 0x013032ef, 0x01e195c0, 0x00a07840, 0x00b78310, 0x013a837e, 0x0028ae67}}}, + {X: Field{[10]uint32{0x0077a9c2, 0x000e269c, 0x020269c6, 0x019c4147, 0x02c7a265, 0x03ebc8d2, 0x03fdba3f, 0x00c52532, 0x02f75dc4, 0x000d9054}}, Y: Field{[10]uint32{0x0146d265, 0x0130ca81, 0x018eae08, 0x000496f3, 0x013c8fa6, 0x03b79c75, 0x038ae4e7, 0x02150cc0, 0x03d9f4ec, 0x002b0eb1}}}, + {X: Field{[10]uint32{0x00f3043d, 0x01b765a5, 0x01326cc3, 0x00be8f62, 0x01d82ca4, 0x01008b7e, 0x02f59d8e, 0x01756364, 0x00bed57d, 0x0014bfa9}}, Y: Field{[10]uint32{0x004feb35, 0x0150a363, 0x0399b249, 0x00216daa, 0x005708c6, 0x0299ece7, 0x038f9a37, 0x0229d7dc, 0x032852f9, 0x002dfa60}}}, + {X: Field{[10]uint32{0x023e1a4d, 0x035a08a1, 0x03ce67b8, 0x030f4af8, 0x039c32ec, 0x026b0ffe, 0x033a096a, 0x032203e5, 0x0110c8ba, 0x000d3fba}}, Y: Field{[10]uint32{0x009c7a17, 0x0155881a, 0x008b2243, 0x02825c74, 0x002231f6, 0x008b8983, 0x00db14b1, 0x03111b1e, 0x00969c9d, 0x00383c04}}}, + {X: Field{[10]uint32{0x0349c65b, 0x026cef76, 0x024bb401, 0x02c3d1da, 0x030f815a, 0x007c1dbd, 0x02424ec3, 0x034ba064, 0x030bf4c9, 0x001abca3}}, Y: Field{[10]uint32{0x02a45248, 0x0143fadb, 0x005d3f13, 0x03742f29, 0x0017d1e1, 0x005fd819, 0x01aa3469, 0x00ecc46a, 0x012fbb66, 0x000b157f}}}, + {X: Field{[10]uint32{0x01320e46, 0x01d3dc93, 0x0003b8bc, 0x0204eebb, 0x03a4f0ad, 0x02b174db, 0x00f1b6b6, 0x02d07991, 0x036639e4, 0x001c2daa}}, Y: Field{[10]uint32{0x02913a14, 0x02030622, 0x02c95237, 0x01777f37, 0x0196f713, 0x025b4f37, 0x01ad5f10, 0x013f3346, 0x01e64f4e, 0x003b1902}}}, + {X: Field{[10]uint32{0x0065724d, 0x00212068, 0x000bc155, 0x01a84e18, 0x03061419, 0x03df6ef8, 0x03eff50f, 0x01d6bab6, 0x03114ab9, 0x003b795b}}, Y: Field{[10]uint32{0x0336ecfc, 0x02b7f254, 0x0173c02d, 0x018dbbf7, 0x0371906b, 0x006c1a12, 0x01839dc6, 0x0087b49b, 0x024c11f4, 0x00279feb}}}, + {X: Field{[10]uint32{0x016df8a4, 0x01f0f915, 0x03efe685, 0x03e7c5a0, 0x025de54a, 0x01992399, 0x0019d746, 0x01cc40f6, 0x003c840a, 0x0020f0d3}}, Y: Field{[10]uint32{0x0086cd10, 0x035c2903, 0x0040fd31, 0x00dfc426, 0x0290aa81, 0x0338bbb4, 0x00d97719, 0x035b03bb, 0x0041562d, 0x002708e0}}}, + {X: Field{[10]uint32{0x00c7e200, 0x00164f68, 0x037c6102, 0x0114934d, 0x0052cbdb, 0x0017a1e9, 0x028cf032, 0x026e6148, 0x00900008, 0x002a8abf}}, Y: Field{[10]uint32{0x02be01f4, 0x017309e5, 0x006af2db, 0x0093fa2a, 0x006d8129, 0x00c58780, 0x013bc4fa, 0x02b0674f, 0x016ab382, 0x000d10c6}}}, + {X: Field{[10]uint32{0x0155c520, 0x01d5cc10, 0x02800e3a, 0x0116207b, 0x03e90eb0, 0x03efdc7e, 0x02956a02, 0x03322e7c, 0x03dc4310, 0x00390bb1}}, Y: Field{[10]uint32{0x0225336c, 0x0099e735, 0x027b693c, 0x011562af, 0x012d0009, 0x02369536, 0x00324bbe, 0x02473f88, 0x02cfa52d, 0x0024e7bc}}}, + {X: Field{[10]uint32{0x02ec2b21, 0x0315818c, 0x01dd34a3, 0x02ac99ff, 0x00181617, 0x005bbe7d, 0x038de47a, 0x014803f5, 0x0124937c, 0x002f02f7}}, Y: Field{[10]uint32{0x02b63035, 0x034a64d4, 0x03ac9df6, 0x00448175, 0x004a0285, 0x024ac21c, 0x02e0e1d1, 0x0087de61, 0x024c10b5, 0x00036c12}}}, + {X: Field{[10]uint32{0x01adc8e7, 0x013aebab, 0x03990626, 0x03559037, 0x0155c005, 0x03dd838a, 0x0310fbb3, 0x029ccd78, 0x01d89b43, 0x00372232}}, Y: Field{[10]uint32{0x002fc512, 0x00f2353f, 0x0163625a, 0x00cb308f, 0x033fe37b, 0x027faded, 0x03fc6777, 0x011e5196, 0x01e46f98, 0x000b59de}}}, + {X: Field{[10]uint32{0x00111c20, 0x0278d260, 0x03210f6f, 0x01422315, 0x035ee3dc, 0x00175dbb, 0x030cb02e, 0x00cb18bf, 0x018ab0c9, 0x0029eb83}}, Y: Field{[10]uint32{0x02e553a2, 0x001f6864, 0x03cdd01d, 0x0115a48c, 0x03ac8dcc, 0x00c87794, 0x039dc94b, 0x018b2262, 0x03c9d631, 0x00358caa}}}, + {X: Field{[10]uint32{0x00be0e97, 0x0296b317, 0x03215592, 0x026e97c0, 0x00d631ac, 0x01f69b99, 0x0203af75, 0x01baaf6c, 0x036ee7bd, 0x00118808}}, Y: Field{[10]uint32{0x00627c6e, 0x025da40a, 0x018c88fa, 0x02f1c0a3, 0x02707851, 0x03eb99a8, 0x0330cdf4, 0x0078a9b3, 0x004f69ea, 0x00177d09}}}, + {X: Field{[10]uint32{0x03d8f671, 0x036647c9, 0x00a38e2b, 0x03fcd276, 0x015cd35f, 0x03e4c8c0, 0x0350acac, 0x0364c147, 0x004a3d8b, 0x0020132e}}, Y: Field{[10]uint32{0x00ae8d3f, 0x026a391c, 0x01267bbc, 0x014aef9b, 0x00cdc395, 0x000d884a, 0x02b2f192, 0x03e0d65a, 0x00129ee0, 0x0012ddee}}}, + {X: Field{[10]uint32{0x011c2ed2, 0x0076ef6e, 0x032378e7, 0x01343881, 0x02b4f6fb, 0x02918e44, 0x001fcbee, 0x02cbcae0, 0x030f5382, 0x001ba94d}}, Y: Field{[10]uint32{0x00b2d88d, 0x02f85064, 0x025b1a8b, 0x038b4de0, 0x008b513e, 0x006567b2, 0x012a002f, 0x03fc203a, 0x0109d8f3, 0x003d6d3e}}}, + {X: Field{[10]uint32{0x02e22ba6, 0x031c1ca8, 0x01f4769f, 0x000ee068, 0x031ee564, 0x03d871ac, 0x03b0852a, 0x01d6984a, 0x021c4ff5, 0x00362e37}}, Y: Field{[10]uint32{0x02468c0e, 0x00e37d38, 0x018928d5, 0x032d1ec1, 0x01f23cbd, 0x017095b9, 0x02ad8275, 0x02fe2625, 0x0190d37a, 0x00078f10}}}, + {X: Field{[10]uint32{0x01f1b147, 0x0320a47b, 0x00a9e475, 0x019c1420, 0x0080d384, 0x00e8035b, 0x033f3ea4, 0x02f5ba71, 0x006404a0, 0x0019ab06}}, Y: Field{[10]uint32{0x03a1260e, 0x02207313, 0x030bca61, 0x0319cf6a, 0x029be98e, 0x0147868d, 0x0103efd5, 0x02ddd805, 0x000f7db6, 0x000b3183}}}, + {X: Field{[10]uint32{0x0360e942, 0x0314d9cf, 0x0185bef3, 0x00d70dd7, 0x02f27844, 0x022d6972, 0x0263cf93, 0x008f9c1d, 0x022c4ed2, 0x0011c652}}, Y: Field{[10]uint32{0x03d9f920, 0x01213034, 0x036045f4, 0x033aaf7d, 0x035808a3, 0x01409f55, 0x032738c7, 0x03704def, 0x011b5a64, 0x002c3f78}}}, + {X: Field{[10]uint32{0x024c6186, 0x034f3d0a, 0x0229010b, 0x00ab17c1, 0x009fdc1b, 0x02375da3, 0x02747428, 0x03660e20, 0x00599af2, 0x00045072}}, Y: Field{[10]uint32{0x02f0226e, 0x014234fb, 0x02c64d6b, 0x034aea63, 0x005392a0, 0x015e343e, 0x017555a0, 0x01184ccc, 0x034761ed, 0x001e90c7}}}, + {X: Field{[10]uint32{0x03496f79, 0x00c030f9, 0x0251d4ba, 0x03585ab1, 0x01487002, 0x03ee3952, 0x01da689b, 0x03fa7b59, 0x01d8e80a, 0x003e416f}}, Y: Field{[10]uint32{0x03bfcf72, 0x0096c65d, 0x000fca7e, 0x0317e7d3, 0x03cd999f, 0x01fc1419, 0x021b03ba, 0x01411751, 0x037f3bfb, 0x0007b1ef}}}, + {X: Field{[10]uint32{0x0315e9e0, 0x03c7eb03, 0x023e5573, 0x00beb51e, 0x00232ea6, 0x0053c2be, 0x004faadb, 0x014bb88f, 0x00e4fba4, 0x002e952e}}, Y: Field{[10]uint32{0x00f5cda8, 0x02f52818, 0x030b8da1, 0x002c044d, 0x039c96ed, 0x00ab203c, 0x018e48a8, 0x02ef36ef, 0x02e9efca, 0x002bd55a}}}, + {X: Field{[10]uint32{0x0226a80a, 0x028a2d02, 0x035e9c08, 0x01080e9d, 0x001494a0, 0x00d868ad, 0x0287f3cf, 0x01b890c3, 0x02d0561f, 0x001674fa}}, Y: Field{[10]uint32{0x000a9bc8, 0x007863c0, 0x015d9ac5, 0x00730b42, 0x02f5f1ba, 0x009f1cc1, 0x00a278d4, 0x0088a70a, 0x007d50a9, 0x0026c9bd}}}, + {X: Field{[10]uint32{0x00865d47, 0x03641c2b, 0x00f5b129, 0x0023bfc0, 0x0315520a, 0x01f83cf3, 0x032924be, 0x0324a363, 0x023fab4c, 0x000a9b96}}, Y: Field{[10]uint32{0x00a625a5, 0x01dc60d7, 0x000cb38b, 0x037ba4e0, 0x00919913, 0x01824d47, 0x01191964, 0x01c08e1b, 0x03505872, 0x00015700}}}, + {X: Field{[10]uint32{0x00907502, 0x022c00aa, 0x03d84682, 0x00716aba, 0x01fff1fb, 0x010b3d96, 0x00afe918, 0x03b90422, 0x00d1c35b, 0x002263d4}}, Y: Field{[10]uint32{0x02f3267b, 0x02e3e3d8, 0x01a79daf, 0x03c528f1, 0x02fc9bd0, 0x01ae1300, 0x0202e490, 0x00ab406b, 0x0280c97c, 0x002c915b}}}, + {X: Field{[10]uint32{0x016af85a, 0x03119c43, 0x03bf9422, 0x028eb013, 0x03bda5d9, 0x027b8f34, 0x01d2304e, 0x03c32c7e, 0x02b8b49b, 0x00346152}}, Y: Field{[10]uint32{0x03155c20, 0x03fafa51, 0x03fabd0a, 0x00085f7d, 0x00d7bdeb, 0x00fb77cd, 0x016a0775, 0x0206016c, 0x000fd881, 0x00013894}}}, + {X: Field{[10]uint32{0x02af4680, 0x037f19bf, 0x01303a3e, 0x03d0a15b, 0x024a417d, 0x025a3bdf, 0x03cc787d, 0x02db87c0, 0x008a394d, 0x002187ee}}, Y: Field{[10]uint32{0x02135da6, 0x0348d882, 0x018dddc6, 0x022f6f00, 0x0268f3c3, 0x018e3380, 0x03ff11b0, 0x002c4c8f, 0x015aab8b, 0x002975fa}}}, + {X: Field{[10]uint32{0x013403d6, 0x033d8b60, 0x0111cb0c, 0x000ce7f0, 0x03ea5269, 0x019db3de, 0x0155d90b, 0x0277f0f0, 0x0368b9fa, 0x0025513d}}, Y: Field{[10]uint32{0x006e047f, 0x02659c20, 0x0290253e, 0x000d78c0, 0x0328d876, 0x02fd4552, 0x011ed21b, 0x01893c21, 0x012fcbde, 0x0033b136}}}, + {X: Field{[10]uint32{0x01db68e9, 0x01732a34, 0x009ba2cb, 0x0034edc5, 0x00311cd4, 0x027ce825, 0x00d7b078, 0x019af88f, 0x0192f80a, 0x003ddc88}}, Y: Field{[10]uint32{0x001b516e, 0x03bf83f2, 0x03462d40, 0x00809dfd, 0x011c11e3, 0x03321479, 0x02266610, 0x035939cf, 0x029f3243, 0x00010743}}}, + {X: Field{[10]uint32{0x018e14ed, 0x0381eb5a, 0x02fc1be9, 0x01f10e7d, 0x01b6bd8e, 0x027aa479, 0x039927a8, 0x01ca6f6f, 0x00651f88, 0x0021dad3}}, Y: Field{[10]uint32{0x016b49da, 0x00c7773e, 0x004e16ad, 0x02121aae, 0x037b5730, 0x018bc94d, 0x0387b88f, 0x03a7773d, 0x03811cfa, 0x003b38b3}}}, + {X: Field{[10]uint32{0x03b70b10, 0x032c0f01, 0x03127b7e, 0x03d8cd4e, 0x00721be8, 0x0245e267, 0x00614278, 0x02649221, 0x00e46224, 0x001c1abd}}, Y: Field{[10]uint32{0x0258a5f3, 0x0141ba5f, 0x03545aa6, 0x0383984b, 0x00cdcf0e, 0x004f7add, 0x015bd298, 0x0348039a, 0x01720c65, 0x00325cb6}}}, + {X: Field{[10]uint32{0x03863c9d, 0x0256df7c, 0x03ddef14, 0x016fe745, 0x024301b7, 0x009f97d2, 0x00dde0ba, 0x01898ad7, 0x0218c9c9, 0x0033a5e8}}, Y: Field{[10]uint32{0x02a1ef10, 0x01c2b280, 0x03f55c57, 0x02c9cac0, 0x01c12900, 0x01ebda3c, 0x0116410d, 0x00509a22, 0x021a20fd, 0x003a4e63}}}, + {X: Field{[10]uint32{0x013be895, 0x03991275, 0x019bca8f, 0x03afa6cf, 0x037dae0f, 0x00b6cf54, 0x02a1f01c, 0x020c7a21, 0x039a92cf, 0x003ed896}}, Y: Field{[10]uint32{0x02599a37, 0x0165f7a0, 0x0344c30d, 0x030a9947, 0x031fe2a8, 0x00b2fc88, 0x029d68f1, 0x02781028, 0x0274ba56, 0x001fde0f}}}, + {X: Field{[10]uint32{0x01f4747d, 0x00b16955, 0x01bc4c6b, 0x03ced0b7, 0x02f126c6, 0x020cc912, 0x039098a8, 0x00ae2d46, 0x03697a7d, 0x00207fef}}, Y: Field{[10]uint32{0x0006f33b, 0x000858bc, 0x00d0a8b0, 0x037b43f5, 0x0190b4d1, 0x0336aa9f, 0x013d5303, 0x03bedcc8, 0x0357982e, 0x0038b19c}}}, + {X: Field{[10]uint32{0x020ed0e4, 0x00c6d55a, 0x01ba8c0f, 0x01def9a5, 0x00679d6b, 0x002728bb, 0x016d4d63, 0x02adf2bc, 0x03668c30, 0x001b7f03}}, Y: Field{[10]uint32{0x015a563c, 0x03fe1f6c, 0x03d905ae, 0x00e2ff77, 0x01367724, 0x003d107a, 0x002d7a62, 0x02a9d0c6, 0x02b2d9a0, 0x002907b4}}}, + {X: Field{[10]uint32{0x03501b44, 0x03e530ce, 0x0023fe77, 0x037e22f3, 0x001d5715, 0x03d8f0ca, 0x01a9b5b0, 0x0395aae8, 0x01d1b953, 0x00071afc}}, Y: Field{[10]uint32{0x00e4b0ef, 0x00d82279, 0x02d3a8e3, 0x037e4688, 0x028f1e74, 0x01f0ae92, 0x01c368bf, 0x005e0806, 0x014db4ca, 0x003199c8}}}, + {X: Field{[10]uint32{0x02def93d, 0x03f491fe, 0x00ba6b2a, 0x03c3479e, 0x035417b9, 0x005134bc, 0x00632319, 0x027d8176, 0x02df5d99, 0x002da444}}, Y: Field{[10]uint32{0x018df4ae, 0x00d318d5, 0x020209a0, 0x01722508, 0x00464f11, 0x02b2b77b, 0x00fafeb8, 0x021b9c1c, 0x037a3028, 0x000858f3}}}, + {X: Field{[10]uint32{0x0176b6e0, 0x0192f792, 0x0287cda4, 0x03363805, 0x019737a2, 0x027be48a, 0x018b8fcf, 0x003e45f1, 0x0332ac23, 0x002f00e1}}, Y: Field{[10]uint32{0x025682d2, 0x007011a8, 0x00ab3719, 0x03677d8e, 0x017a7ae0, 0x01f88ce1, 0x03e1d6fa, 0x018dcd80, 0x02010079, 0x0000ce49}}}, + {X: Field{[10]uint32{0x03e32d81, 0x00faf689, 0x001ae183, 0x0032b7b4, 0x007489c2, 0x0166ec03, 0x024d9aee, 0x02b531aa, 0x02951047, 0x0025b7cc}}, Y: Field{[10]uint32{0x02e2034b, 0x02313bf8, 0x00466181, 0x03c7999d, 0x02cbfaa8, 0x01743c19, 0x01189bbf, 0x018cf060, 0x002d74ce, 0x001063db}}}, + {X: Field{[10]uint32{0x02304979, 0x034be9da, 0x001d263c, 0x03e8bcd4, 0x01cb6a65, 0x02d864f0, 0x02fcefde, 0x0102afb1, 0x0227939e, 0x0028f14c}}, Y: Field{[10]uint32{0x03c967e4, 0x0283b5b6, 0x00de8caf, 0x02637180, 0x0300f467, 0x01e8bd99, 0x0329ade3, 0x029bc64b, 0x02a5498e, 0x00111a32}}}, + {X: Field{[10]uint32{0x0145eb2b, 0x02bc2b49, 0x01a92601, 0x011ae475, 0x017a0c7d, 0x0385ca98, 0x005f1b31, 0x01b5b5ae, 0x02073dfd, 0x0024ff60}}, Y: Field{[10]uint32{0x0163a847, 0x025f51f5, 0x02866883, 0x026c82e2, 0x03961155, 0x02b3faec, 0x03ca8636, 0x01a9046f, 0x02c19a8a, 0x001806fa}}}, + {X: Field{[10]uint32{0x02ca0a9b, 0x01e82ea1, 0x00a2bee8, 0x027ad179, 0x01a5bc0d, 0x011a2b63, 0x039acef2, 0x018fc403, 0x03ef2e2c, 0x002e9f4e}}, Y: Field{[10]uint32{0x015114dc, 0x03bf2ba9, 0x02e097c6, 0x02c5eefc, 0x01376f29, 0x0316daf6, 0x0133ed0b, 0x0278c443, 0x02673312, 0x003fffe6}}}, + {X: Field{[10]uint32{0x036157a8, 0x010a4380, 0x03011190, 0x03ea5fbc, 0x00218898, 0x025935e9, 0x01972582, 0x0270d65d, 0x01c02a4f, 0x00383655}}, Y: Field{[10]uint32{0x01c617f0, 0x02ee6140, 0x0397baa2, 0x01a75699, 0x01b28cbc, 0x021c1de2, 0x0382f0f0, 0x002ee681, 0x039e7d42, 0x0005dbf7}}}, + {X: Field{[10]uint32{0x03f81ac9, 0x0111d42f, 0x02dcd0a4, 0x03f785d4, 0x036cd226, 0x01a435aa, 0x02da689c, 0x032e4c44, 0x01408320, 0x0005acb0}}, Y: Field{[10]uint32{0x018bb281, 0x031de436, 0x01edd2ab, 0x02494f19, 0x025025f7, 0x02a85edb, 0x0217488f, 0x00e4cbc9, 0x00e3dafd, 0x000a8beb}}}, + {X: Field{[10]uint32{0x01f502da, 0x00af043a, 0x020c7fc2, 0x02e3ad36, 0x02220db4, 0x02569053, 0x01d61d97, 0x00f8bd91, 0x00329c82, 0x000beec1}}, Y: Field{[10]uint32{0x00ebc31d, 0x02d89664, 0x00246a0a, 0x0239a7d6, 0x030cbfe5, 0x021c1a2a, 0x03cda69c, 0x0377eeae, 0x02ef15ea, 0x0006b7d9}}}, + {X: Field{[10]uint32{0x03208ebf, 0x00b79399, 0x01ccce13, 0x020e3277, 0x02c178f8, 0x00135915, 0x0122f2f4, 0x0095e6d9, 0x00daf42d, 0x0019244d}}, Y: Field{[10]uint32{0x009355cb, 0x015b0efc, 0x00e8a4a7, 0x0147f991, 0x02e7709b, 0x02a6ba96, 0x00446480, 0x012f09e2, 0x03fc3c55, 0x0010e16a}}}, + {X: Field{[10]uint32{0x013991cd, 0x03b7e2c3, 0x03023dbc, 0x02c2e264, 0x03128d62, 0x0271ff7b, 0x0201c172, 0x007e7381, 0x00b1dcb8, 0x002e5551}}, Y: Field{[10]uint32{0x029dcd2a, 0x0314e0dd, 0x02b0f33c, 0x01824f02, 0x03206fe7, 0x013c1c9b, 0x01f2d450, 0x0378cb54, 0x02dcffba, 0x003e1c7e}}}, + {X: Field{[10]uint32{0x01d668de, 0x00f03297, 0x0389fd06, 0x005c0a23, 0x02ace1ea, 0x012c6c25, 0x03df5b4a, 0x03430288, 0x03fc5034, 0x0033500e}}, Y: Field{[10]uint32{0x02717742, 0x0387f509, 0x0316054e, 0x01529763, 0x023fa92e, 0x00e92fc3, 0x0359760f, 0x03d1bd27, 0x0131aa56, 0x00304a58}}}, + {X: Field{[10]uint32{0x0004c581, 0x03a91e0f, 0x019394b6, 0x01e656d3, 0x021ad784, 0x026a3d5a, 0x0202074c, 0x02f72640, 0x0337d7f8, 0x000292ab}}, Y: Field{[10]uint32{0x0316da34, 0x00d234eb, 0x03431009, 0x032ce22b, 0x031a8cb9, 0x001dcf5c, 0x02594f94, 0x02d873f4, 0x02f2dc02, 0x00132ced}}}, + {X: Field{[10]uint32{0x03f438c4, 0x01f67e2a, 0x039376c3, 0x031f9b9e, 0x0297478f, 0x021915e3, 0x02dd3c52, 0x00123a17, 0x03f8ebdf, 0x0015c40b}}, Y: Field{[10]uint32{0x00161d4f, 0x00763bbe, 0x01128833, 0x005a42ad, 0x01915aef, 0x0146cbcc, 0x01e308c2, 0x00658b9e, 0x019beaec, 0x003213c7}}}, + {X: Field{[10]uint32{0x03c9b6ac, 0x02c188e8, 0x01774832, 0x02171a02, 0x01124246, 0x03ebf1c0, 0x00c08c58, 0x017f8442, 0x00e93c5c, 0x001a3fa6}}, Y: Field{[10]uint32{0x004df273, 0x02033e43, 0x01cd4d64, 0x023fba1c, 0x03cb5ea5, 0x011bc878, 0x00078e2c, 0x01ae1fba, 0x0017fd95, 0x00124ab1}}}, + {X: Field{[10]uint32{0x024a5e77, 0x022f900a, 0x03d43ec0, 0x028ac224, 0x03d97bae, 0x00bba92a, 0x0132cef0, 0x0388ebc2, 0x03b69ef5, 0x0000352e}}, Y: Field{[10]uint32{0x03c7c98c, 0x03e92c11, 0x00166607, 0x0130a8b7, 0x019e7488, 0x00334231, 0x01e223df, 0x02b8c7d9, 0x02609c1d, 0x00016063}}}, + {X: Field{[10]uint32{0x0283192a, 0x01f9a416, 0x03b5d68c, 0x00fdd8fc, 0x0123a5c5, 0x022b314f, 0x00d872f2, 0x022dc9fc, 0x0157a8eb, 0x003a589e}}, Y: Field{[10]uint32{0x010d984f, 0x026ea1f3, 0x008d66e5, 0x015d3d68, 0x020cab10, 0x01329b32, 0x0066d17d, 0x005a5b65, 0x027ddc29, 0x00176a4b}}}, + {X: Field{[10]uint32{0x0311caf5, 0x008e0bc5, 0x032076dd, 0x03cb7e0f, 0x001cd547, 0x003e7fa1, 0x0108ffb7, 0x03cbadf1, 0x00ada83b, 0x00127c87}}, Y: Field{[10]uint32{0x01f31931, 0x022497ce, 0x00114ca1, 0x00693fb6, 0x03244761, 0x00cb9bbf, 0x033afc21, 0x013b62b1, 0x01295f83, 0x00071f60}}}, + {X: Field{[10]uint32{0x02fa792e, 0x034060ab, 0x0364dfd6, 0x03316c3f, 0x006c34a8, 0x0061c4f5, 0x011d110c, 0x00754c53, 0x02a940f6, 0x000160a0}}, Y: Field{[10]uint32{0x005f6ddd, 0x03c28d04, 0x0091e677, 0x0124fab0, 0x012a96ee, 0x0360f5f7, 0x03701457, 0x03cb5948, 0x0155d3e0, 0x001e1578}}}, + {X: Field{[10]uint32{0x03ca118d, 0x01a46648, 0x012e5f55, 0x039d0f52, 0x01dc3a14, 0x01c2fb1f, 0x01db6f1d, 0x0009e9ed, 0x02324b07, 0x0032725e}}, Y: Field{[10]uint32{0x0264b56d, 0x035d31a5, 0x001e8747, 0x03678bb1, 0x0115d600, 0x03080cae, 0x031e99f7, 0x037f870a, 0x000f894d, 0x003d807d}}}, + {X: Field{[10]uint32{0x019e054e, 0x00568845, 0x0062b8d5, 0x0332a9ca, 0x039bbbe0, 0x0047e49c, 0x027bcdda, 0x01d4061a, 0x01758ed6, 0x00279370}}, Y: Field{[10]uint32{0x03c6c0ab, 0x020e04f3, 0x03d3bc94, 0x0321c57a, 0x03fcf4f4, 0x026df8db, 0x00736aa1, 0x019a9af8, 0x031f2bb8, 0x00328470}}}, + {X: Field{[10]uint32{0x02afe2b5, 0x03c31ae2, 0x0152f7a7, 0x03d89a3d, 0x028e5af1, 0x0337ef76, 0x00c1e5e8, 0x000c2f36, 0x03893ae0, 0x003f418d}}, Y: Field{[10]uint32{0x01c8e676, 0x008754c3, 0x00435b2e, 0x02037c68, 0x01f4a354, 0x00c9b700, 0x0068a8e4, 0x01d12881, 0x030b068d, 0x0023027a}}}, + {X: Field{[10]uint32{0x014af04e, 0x00ac9cbf, 0x02c77b3f, 0x02d6d19b, 0x00d85360, 0x004ddd60, 0x0281c3ec, 0x01d9466e, 0x033b6e7a, 0x000df7f7}}, Y: Field{[10]uint32{0x00fb7844, 0x02d3e3b4, 0x01727ea3, 0x0217b250, 0x03043dcd, 0x0004a79d, 0x00f3b078, 0x009d635e, 0x03b27b73, 0x00330c4d}}}, + {X: Field{[10]uint32{0x001dbae0, 0x0291751b, 0x018ffe72, 0x0127785b, 0x010a69cb, 0x034af832, 0x01a2f18b, 0x038971dc, 0x006ac8a5, 0x00117bc4}}, Y: Field{[10]uint32{0x020ab158, 0x022da608, 0x00bf42ad, 0x006cc646, 0x0060e568, 0x00058d24, 0x03bd452e, 0x01f6dcfd, 0x000d742e, 0x0032b5a9}}}, + {X: Field{[10]uint32{0x01fdfca4, 0x0091a704, 0x02d14be0, 0x036f0414, 0x0099648c, 0x011cafd6, 0x03cde710, 0x0328941c, 0x02f988b9, 0x00096314}}, Y: Field{[10]uint32{0x01939dfd, 0x02be7b0a, 0x00ffc359, 0x02e20e53, 0x010d60d0, 0x0296d87f, 0x026c9e21, 0x0171f1a9, 0x008b26ea, 0x00112476}}}, + {X: Field{[10]uint32{0x01e65217, 0x014464ea, 0x01c83afd, 0x019f7a20, 0x01d4f8ff, 0x034dbc76, 0x00cddb90, 0x0138d8f4, 0x00a7727c, 0x002f24a9}}, Y: Field{[10]uint32{0x03aa5120, 0x004c4898, 0x039d79dd, 0x02d2e8dd, 0x00331c22, 0x01193a70, 0x031c024d, 0x011e5587, 0x0208b18b, 0x001dbfda}}}, + {X: Field{[10]uint32{0x01f27ebd, 0x0304b451, 0x03353249, 0x00dfed7f, 0x0223e4e8, 0x03055aef, 0x01ceccb0, 0x0120d3c4, 0x00c258c0, 0x0022867a}}, Y: Field{[10]uint32{0x00e92c1a, 0x017941f9, 0x01f065d6, 0x032e1706, 0x018f50a9, 0x02e5e3f8, 0x016caca2, 0x023a8831, 0x0070bff4, 0x00057f1b}}}, + {X: Field{[10]uint32{0x01d70eea, 0x02447a95, 0x00572d9c, 0x02a30a91, 0x03e6f3b1, 0x00e65a2f, 0x013c1a7a, 0x00d136c4, 0x02d1ab90, 0x003966e0}}, Y: Field{[10]uint32{0x013b91be, 0x00abf20c, 0x00b80cc2, 0x02640205, 0x036634d6, 0x00baa9db, 0x01f0bc01, 0x01a86f93, 0x018cd58c, 0x002478cf}}}, + {X: Field{[10]uint32{0x0371a7d0, 0x000c6c1c, 0x03eb3330, 0x034976b2, 0x020f3456, 0x03e506fa, 0x0017db72, 0x01335af1, 0x025f8824, 0x003e653b}}, Y: Field{[10]uint32{0x019c62e2, 0x0102816b, 0x03d40514, 0x027d09c1, 0x03d9c268, 0x036b923d, 0x02bf9c04, 0x0266ccc0, 0x006aecc2, 0x002409be}}}, + {X: Field{[10]uint32{0x0000410f, 0x00e9a4de, 0x015ffc1e, 0x03355976, 0x018000cc, 0x0200f448, 0x0317bc79, 0x03e9409e, 0x008c32d1, 0x001ddb13}}, Y: Field{[10]uint32{0x00785149, 0x03c2eb72, 0x03803165, 0x0298e104, 0x01988b64, 0x00f4f8c6, 0x00201d50, 0x01dce1be, 0x0234438e, 0x00103b38}}}, + {X: Field{[10]uint32{0x01c9b12e, 0x00feb96d, 0x02620fb8, 0x022b1780, 0x0032c196, 0x02fc95cc, 0x00aea3d8, 0x02c004a7, 0x01a5dd13, 0x000e4d9d}}, Y: Field{[10]uint32{0x035a8b00, 0x0129a7e9, 0x02dc0378, 0x01cd39d0, 0x032e5dc7, 0x02c3af30, 0x016ff4c4, 0x00033bb4, 0x03c47934, 0x000e79b3}}}, + {X: Field{[10]uint32{0x03401b1e, 0x027ea330, 0x00eaa2f0, 0x03c9efce, 0x0094dcfd, 0x0242f87f, 0x01de130e, 0x031ed8b3, 0x029422ed, 0x0035f374}}, Y: Field{[10]uint32{0x014fb184, 0x031c194d, 0x00302db5, 0x03662fc5, 0x020728bd, 0x031e7ad1, 0x00ca141d, 0x03462edd, 0x0328073c, 0x00372e72}}}, + {X: Field{[10]uint32{0x0256bc2c, 0x019f73db, 0x021b99cb, 0x01ea6216, 0x01902613, 0x00925274, 0x02206718, 0x011278fd, 0x01272726, 0x002f38fc}}, Y: Field{[10]uint32{0x02e76217, 0x0355e1b9, 0x0097d296, 0x01f714a9, 0x011c33c3, 0x02b4496b, 0x0168f040, 0x037692fa, 0x0017ee92, 0x00290900}}}, + {X: Field{[10]uint32{0x035d6e52, 0x037ba5ff, 0x01eb9738, 0x00ddd0e6, 0x03700801, 0x0078d7eb, 0x02daf442, 0x010529e6, 0x00cdefe9, 0x00277c26}}, Y: Field{[10]uint32{0x01abf15d, 0x0223ae94, 0x01baf3b7, 0x02d36fbc, 0x03f04bf4, 0x01a45f65, 0x0317bb80, 0x0250f343, 0x035fef36, 0x001afe48}}}, + {X: Field{[10]uint32{0x03d43f1d, 0x0332536c, 0x02522e8d, 0x02d1c888, 0x0005d88a, 0x0249c4e8, 0x00839a82, 0x03712a69, 0x002ee561, 0x00265616}}, Y: Field{[10]uint32{0x028c226a, 0x013a2341, 0x00dc78cb, 0x02cd0ed7, 0x02850008, 0x00966cde, 0x0376cba2, 0x03c8fa1b, 0x0214b63a, 0x00382562}}}, + {X: Field{[10]uint32{0x01fb1f24, 0x024cf11b, 0x02871bad, 0x01e548ce, 0x03dda933, 0x02230122, 0x0292447c, 0x009e79f4, 0x00ce7d7b, 0x000f9fee}}, Y: Field{[10]uint32{0x008806e5, 0x01bb2b59, 0x0309d229, 0x02aa4e17, 0x02e36352, 0x001ae92f, 0x037a5dd9, 0x0208e4b5, 0x01083410, 0x000109e7}}}, + {X: Field{[10]uint32{0x01e8ed62, 0x0029a8dd, 0x001c71ac, 0x01a7f2da, 0x0097611d, 0x0209b3d6, 0x02c93ee7, 0x01684433, 0x0050f740, 0x00073415}}, Y: Field{[10]uint32{0x0334d0f0, 0x02880eeb, 0x0136b039, 0x017264c6, 0x025759d3, 0x002e54db, 0x020a3a02, 0x02c10358, 0x0070bb52, 0x000216ef}}}, + {X: Field{[10]uint32{0x03c9b367, 0x02b6fdf5, 0x005e3c76, 0x03283ed3, 0x0393cf99, 0x02e040cb, 0x0387bd01, 0x0168f7db, 0x03763214, 0x0001411d}}, Y: Field{[10]uint32{0x03d1d2c3, 0x01820115, 0x03f7a1ed, 0x008e2132, 0x00a0e67b, 0x031c7d06, 0x02b97ce6, 0x01ddc627, 0x0359919c, 0x0001eeb7}}}, + {X: Field{[10]uint32{0x0070e6ea, 0x03de8391, 0x030be636, 0x00afdfcb, 0x0079fd30, 0x03452629, 0x01b8d87a, 0x012ea0c2, 0x02c949b6, 0x0007aa44}}, Y: Field{[10]uint32{0x002b7650, 0x0021b401, 0x02b4d029, 0x039b3e0e, 0x014acd50, 0x0140aba3, 0x014896d3, 0x00477a10, 0x03dd0b12, 0x0026c9e7}}}, + {X: Field{[10]uint32{0x01a01628, 0x00c0a3c8, 0x007ac8c0, 0x026f4bd3, 0x03e1ed32, 0x017c0f12, 0x00e0b009, 0x001daf2d, 0x00d34b00, 0x0026cfe8}}, Y: Field{[10]uint32{0x03d420de, 0x02549f09, 0x01f4126e, 0x035543bf, 0x038cef81, 0x033b1987, 0x00d5dcb0, 0x023bd4b8, 0x0248b2a5, 0x0004045e}}}, + {X: Field{[10]uint32{0x024c94eb, 0x01e3f020, 0x03e22ff6, 0x00a34095, 0x036200d1, 0x02eb4530, 0x02c7f7f5, 0x027712ce, 0x03b801d3, 0x00197fbd}}, Y: Field{[10]uint32{0x0308b475, 0x026bc249, 0x032fe325, 0x03b1e80a, 0x02f2dcd6, 0x01bbc9db, 0x0373b9b3, 0x013f09dc, 0x01ee680c, 0x000c0878}}}, + {X: Field{[10]uint32{0x0385f9ac, 0x00a45fdf, 0x01d46c5a, 0x02ee3f7b, 0x036ef5e1, 0x030afbd6, 0x004c0f2b, 0x00e95419, 0x023daf76, 0x000f9dec}}, Y: Field{[10]uint32{0x024f3221, 0x02cf930a, 0x0021b415, 0x021443f4, 0x018d4fc7, 0x00b6cb1e, 0x03f0766a, 0x01e1e671, 0x00e95bb0, 0x00156c9e}}}, + {X: Field{[10]uint32{0x01de2965, 0x023022c8, 0x0378396f, 0x0228c8cb, 0x02f69fbf, 0x0335f4d4, 0x0215fba1, 0x0248af11, 0x02bf2fec, 0x000ab136}}, Y: Field{[10]uint32{0x019f957f, 0x03cfab08, 0x0089fa92, 0x00947bfc, 0x006d6494, 0x03e16946, 0x03e60187, 0x022f3c0a, 0x00177623, 0x000b0cf0}}}, + {X: Field{[10]uint32{0x0162c66e, 0x0150a153, 0x0155868d, 0x03c65f8c, 0x03748be0, 0x00acb3ae, 0x01feac74, 0x00134215, 0x022067da, 0x003faf22}}, Y: Field{[10]uint32{0x01d96083, 0x012a3499, 0x03bd1a55, 0x01b6898a, 0x01e3db34, 0x004169dc, 0x029d583e, 0x0398ffe6, 0x02873d45, 0x002bb8e4}}}, + {X: Field{[10]uint32{0x0206a569, 0x023da261, 0x038d3e1c, 0x000b7138, 0x02026542, 0x01715006, 0x002d10bd, 0x009d4623, 0x00b4a598, 0x0029045d}}, Y: Field{[10]uint32{0x03732a00, 0x0021fa47, 0x0367e3bd, 0x00be3643, 0x016b589f, 0x020ad947, 0x0165337e, 0x03e17b1a, 0x03b99fb5, 0x002f1ad8}}}, + {X: Field{[10]uint32{0x025de220, 0x02919396, 0x02ae93a3, 0x0134f2bc, 0x02907c19, 0x004bdd26, 0x0397fc6d, 0x028ebcee, 0x02cf5d10, 0x00048865}}, Y: Field{[10]uint32{0x0304e533, 0x031ba4a4, 0x032b946f, 0x03175016, 0x01674697, 0x02508ff7, 0x00e2c7c5, 0x03884d51, 0x0342b3c1, 0x00333d19}}}, + {X: Field{[10]uint32{0x021eadb3, 0x02d98f0b, 0x0373e799, 0x0187a38e, 0x019f93ec, 0x03219dd8, 0x03bfaa08, 0x03731f86, 0x01cb0104, 0x001deeb5}}, Y: Field{[10]uint32{0x02faa3cc, 0x03a18271, 0x00fea411, 0x02317bc2, 0x014023fd, 0x03c948bb, 0x021214dd, 0x037afd23, 0x007bad8b, 0x0002225d}}}, + {X: Field{[10]uint32{0x02d4a98b, 0x005faec4, 0x015d2f55, 0x0225a578, 0x024e3f6c, 0x00cc9f9b, 0x01451637, 0x02b505ab, 0x00758c49, 0x0007a350}}, Y: Field{[10]uint32{0x023b09f4, 0x01a05803, 0x01cd1259, 0x02835220, 0x0398d94a, 0x032f13e0, 0x03379a2e, 0x02986726, 0x00b00730, 0x000745b3}}}, + {X: Field{[10]uint32{0x03b6ee42, 0x01a7e97e, 0x028cfb18, 0x02b3d280, 0x01880ff2, 0x03ed6d4d, 0x03f4974a, 0x01077521, 0x016b2402, 0x00321e99}}, Y: Field{[10]uint32{0x02757beb, 0x02bfdc2f, 0x01cb76dd, 0x02a2d326, 0x0134f694, 0x029a9e43, 0x0174412f, 0x0254e17b, 0x033a6fac, 0x0005bc97}}}, + {X: Field{[10]uint32{0x0355a4eb, 0x02f67092, 0x03b8071f, 0x005b9ce4, 0x01669adf, 0x03385a81, 0x0369944c, 0x01ba23a5, 0x0007482c, 0x0025ac05}}, Y: Field{[10]uint32{0x00b50223, 0x02fffee5, 0x00ca4578, 0x03886c5e, 0x0082b786, 0x021a2006, 0x00d68de3, 0x0213c382, 0x02805903, 0x002ccaf8}}}, + {X: Field{[10]uint32{0x01ae4af5, 0x02fe211b, 0x01eff7eb, 0x01888b87, 0x00b2afd1, 0x01b423d5, 0x0272fb74, 0x018b9a07, 0x00b37395, 0x000483da}}, Y: Field{[10]uint32{0x000bcc78, 0x0305a40c, 0x00743ded, 0x02758572, 0x0102f4da, 0x03643853, 0x03c6729b, 0x01dbe51d, 0x034f2b23, 0x001f07ad}}}, + {X: Field{[10]uint32{0x02acd157, 0x03177139, 0x00989b65, 0x0074a170, 0x0049a441, 0x00923fba, 0x008be2cf, 0x02d15618, 0x01ec2789, 0x0039921c}}, Y: Field{[10]uint32{0x00e10a6b, 0x01d8a516, 0x02145843, 0x039740bc, 0x02f3dbfa, 0x017be47f, 0x039ecfd4, 0x02c2d56d, 0x02d14999, 0x000a602c}}}, + {X: Field{[10]uint32{0x026798ad, 0x010e18ea, 0x012660eb, 0x03894ea3, 0x0243daa1, 0x01cf9721, 0x0324adfc, 0x00f8b094, 0x0009b20d, 0x001822c4}}, Y: Field{[10]uint32{0x010e13df, 0x03f8b223, 0x0038b3b4, 0x00f10fbf, 0x03a021e1, 0x033c3998, 0x0181c68c, 0x0258e144, 0x0203ad5c, 0x00209b96}}}, + {X: Field{[10]uint32{0x01bb152a, 0x017e1068, 0x033e57c6, 0x00ada142, 0x00cdc4dc, 0x01bd306a, 0x02614353, 0x03917d82, 0x01558132, 0x002325e0}}, Y: Field{[10]uint32{0x037460fc, 0x03504df6, 0x0344ba6e, 0x00f670c6, 0x001875d6, 0x02193c65, 0x01083c53, 0x0207bc2a, 0x0098394d, 0x00328ecc}}}, + {X: Field{[10]uint32{0x0021bf3e, 0x0323e366, 0x00627f80, 0x015da084, 0x03100727, 0x0380441b, 0x018e731c, 0x00920be3, 0x011ac73b, 0x0000d4d6}}, Y: Field{[10]uint32{0x01eb6412, 0x02131ed0, 0x03df9d4f, 0x02067d12, 0x0370ae89, 0x009823aa, 0x02306db0, 0x02d1a6b1, 0x011a501a, 0x000adf8f}}}, + {X: Field{[10]uint32{0x00d78857, 0x03710c27, 0x02978b05, 0x01f6a7f6, 0x023c387b, 0x01e3f38c, 0x0270a671, 0x01cdcbb3, 0x0188ec35, 0x003acb7f}}, Y: Field{[10]uint32{0x024b88e4, 0x011fbc68, 0x01f6318c, 0x01ff2828, 0x023dd7aa, 0x02148dcb, 0x001a8cf9, 0x01548711, 0x02ed1f5a, 0x001bcaed}}}, + {X: Field{[10]uint32{0x012eb279, 0x03fdcca6, 0x00487b29, 0x03a619cb, 0x00abd72a, 0x03bbd9b7, 0x018f3b07, 0x001439a6, 0x03f65db1, 0x00290703}}, Y: Field{[10]uint32{0x01a99cd4, 0x0147bba6, 0x00244ba9, 0x03acaab3, 0x03bc0786, 0x014841c9, 0x019d7f86, 0x03fe77d8, 0x03205616, 0x0015be9e}}}, + {X: Field{[10]uint32{0x02217e92, 0x009395e8, 0x00ea9415, 0x02b6186f, 0x01615d85, 0x021677c4, 0x005917e0, 0x00540329, 0x0335f5bb, 0x00239d22}}, Y: Field{[10]uint32{0x00a46df8, 0x01d78fbf, 0x0266c9ef, 0x028e5b3f, 0x00825515, 0x025cef14, 0x03f86043, 0x031a9e12, 0x0362e226, 0x0015504c}}}, + {X: Field{[10]uint32{0x02dd17e5, 0x0354d709, 0x03708f35, 0x009f3339, 0x02bc506c, 0x01fb1eff, 0x00de2c7b, 0x001891cf, 0x0007cce7, 0x002a0fd8}}, Y: Field{[10]uint32{0x026af268, 0x00edd318, 0x02cbb26c, 0x005221e8, 0x015a1ac6, 0x03543585, 0x0397a379, 0x01f9718c, 0x012daf21, 0x002b523b}}}, + {X: Field{[10]uint32{0x0282d2fa, 0x022bfb44, 0x033abf11, 0x0376d1d5, 0x025cf208, 0x03f4e5f7, 0x000246eb, 0x0058924e, 0x02927e45, 0x003e7b5e}}, Y: Field{[10]uint32{0x00237b70, 0x02eed772, 0x01324087, 0x001ed2f9, 0x0303c844, 0x01c34e03, 0x015d53c6, 0x00c3de03, 0x02163a6f, 0x003055d1}}}, + {X: Field{[10]uint32{0x002ea08e, 0x00499c9b, 0x0255af01, 0x00491b14, 0x02c7dff0, 0x03c27e04, 0x01177078, 0x031e99fe, 0x038a175e, 0x0028af79}}, Y: Field{[10]uint32{0x01ca12ec, 0x004c8f72, 0x01e20b09, 0x00aa976e, 0x013b5dd6, 0x037140fe, 0x03d27419, 0x01302db5, 0x018fe82d, 0x001c495a}}}, + {X: Field{[10]uint32{0x039899b2, 0x03a88c6f, 0x01a56e62, 0x010b861d, 0x036b37da, 0x02385a42, 0x01cc0e9b, 0x019cda41, 0x01c79dcb, 0x0032a301}}, Y: Field{[10]uint32{0x0087534c, 0x003c67c5, 0x0199641d, 0x0275c4e2, 0x02275125, 0x03eea72a, 0x0160c1e3, 0x02b6e999, 0x01ca1e19, 0x00141314}}}, + {X: Field{[10]uint32{0x00eca02b, 0x01ec0655, 0x0397c061, 0x008725e7, 0x0061fd4b, 0x0140609e, 0x037ecdd1, 0x004eb104, 0x02ee61db, 0x0003f041}}, Y: Field{[10]uint32{0x03bef3ee, 0x0265945e, 0x0308e6bc, 0x035d724b, 0x02971f2c, 0x037168b0, 0x03ce9c2c, 0x0198e0ab, 0x02284fc2, 0x001b6956}}}, + {X: Field{[10]uint32{0x0092a8ab, 0x02da9c59, 0x0390b8b9, 0x012f0be3, 0x03504f67, 0x02b1e11b, 0x019a3217, 0x0041a150, 0x0039f47b, 0x000b2c86}}, Y: Field{[10]uint32{0x000a5757, 0x0204927c, 0x017aff10, 0x00cc116a, 0x00637264, 0x01978bf2, 0x0007feb9, 0x00112bda, 0x0332ae75, 0x00007fac}}}, + {X: Field{[10]uint32{0x0161f3ae, 0x03c84c95, 0x002245d4, 0x01c9e65c, 0x0356ba35, 0x02e957b6, 0x022963ef, 0x001ffff2, 0x00ee759c, 0x0019e314}}, Y: Field{[10]uint32{0x02cba96c, 0x022ffd2b, 0x03107c49, 0x015f6a9d, 0x01780b16, 0x00e2787e, 0x03afce2d, 0x00130724, 0x0387abbf, 0x0006626d}}}, + {X: Field{[10]uint32{0x024aa6fc, 0x00724420, 0x01da41b2, 0x032907cf, 0x0275d407, 0x002cbc99, 0x015097c3, 0x00d36608, 0x01ceaa2e, 0x002ad8f8}}, Y: Field{[10]uint32{0x00e2363c, 0x00955a9b, 0x00d82479, 0x0395f43d, 0x02812eb7, 0x011506b5, 0x01d3da2c, 0x03fdc9c5, 0x02611150, 0x003b196f}}}, + {X: Field{[10]uint32{0x003dd336, 0x02466ba4, 0x03cc9f5c, 0x01e6c14a, 0x03ec5672, 0x00499260, 0x0239a2a3, 0x02565d69, 0x01cafad5, 0x0029a4e6}}, Y: Field{[10]uint32{0x010d97dd, 0x00f84bb1, 0x017551c4, 0x012d8d24, 0x001c8730, 0x024eb8d2, 0x02799dcc, 0x013d369e, 0x0259c30c, 0x002d4971}}}, + {X: Field{[10]uint32{0x00fc5f3e, 0x01d4ef70, 0x001fbe13, 0x02bf4ef9, 0x00bd7a48, 0x00e720b4, 0x01cb5ed4, 0x033d7b49, 0x0282507b, 0x000cafd0}}, Y: Field{[10]uint32{0x0279bff2, 0x02eda543, 0x0033ac20, 0x02607a00, 0x026773c5, 0x038d1fa0, 0x0282f90b, 0x0367f495, 0x017a4336, 0x00336480}}}, + {X: Field{[10]uint32{0x02dfd862, 0x00ba6e3b, 0x032ec5e4, 0x0213da06, 0x02f2fe64, 0x005141c5, 0x003e2cc1, 0x000259c8, 0x01837e72, 0x00287f32}}, Y: Field{[10]uint32{0x01ed4fd7, 0x01b0c58c, 0x03a964ba, 0x03f6f05f, 0x02a419af, 0x008b7927, 0x03fa79a7, 0x03ee277f, 0x02c317e8, 0x000785ad}}}, + {X: Field{[10]uint32{0x030ceae0, 0x02ccae5f, 0x00838472, 0x03cceafa, 0x0360485c, 0x0073dce2, 0x01f1e822, 0x01f94063, 0x014e6961, 0x0036168c}}, Y: Field{[10]uint32{0x000a52f1, 0x02a8d9f8, 0x024e86e1, 0x033ccc22, 0x00fbbcba, 0x02229e6d, 0x034b5daa, 0x0379999a, 0x03eee92d, 0x001c683f}}}, + {X: Field{[10]uint32{0x020c2e7f, 0x000feabc, 0x0224e4ee, 0x017a010f, 0x02f5a53b, 0x00d5bab0, 0x01b20e31, 0x031c3905, 0x02fa0688, 0x00062489}}, Y: Field{[10]uint32{0x01515aa6, 0x0161f7bc, 0x00eaa1a0, 0x01fe54b9, 0x02fc2bba, 0x0261f3d8, 0x00be5759, 0x0354f9ef, 0x00ac40c7, 0x00366ff6}}}, + {X: Field{[10]uint32{0x019e1330, 0x001c2695, 0x01241ff7, 0x009534b6, 0x0132465d, 0x00b3c84d, 0x02674e63, 0x00458b5e, 0x020a6a93, 0x0034d50b}}, Y: Field{[10]uint32{0x0357c369, 0x01e645d2, 0x032bf9a0, 0x021012c7, 0x03dbd427, 0x008aef60, 0x00be5ed6, 0x0108d0d3, 0x0351e266, 0x000097a3}}}, + {X: Field{[10]uint32{0x013a2bc5, 0x01af861d, 0x0245f287, 0x016ab6ff, 0x029a8c0a, 0x0161d615, 0x006e6b82, 0x02d8487b, 0x0286fb2c, 0x00145367}}, Y: Field{[10]uint32{0x03cbf261, 0x02a10615, 0x0179145c, 0x02f1218a, 0x011b8370, 0x0197de76, 0x01918d9f, 0x008f10d0, 0x01c0be54, 0x001c01e1}}}, + {X: Field{[10]uint32{0x023fe495, 0x01a128fa, 0x03f6ad6d, 0x0188b5c8, 0x0343f9aa, 0x02b981aa, 0x031db335, 0x0333f787, 0x036512e9, 0x00327e18}}, Y: Field{[10]uint32{0x0230270b, 0x00efac87, 0x01db3a3b, 0x0163cc7d, 0x01b7b80b, 0x0372f8ee, 0x02f9445d, 0x02807271, 0x02313868, 0x000c34e9}}}, + {X: Field{[10]uint32{0x002deb93, 0x03481bcb, 0x00768357, 0x029cae42, 0x03641200, 0x0039e436, 0x00cd96fa, 0x0227f826, 0x020c8fc0, 0x000089bc}}, Y: Field{[10]uint32{0x025f66bc, 0x00ee56aa, 0x00cff1c0, 0x01bfb860, 0x015e0262, 0x012d0f6a, 0x03c20452, 0x024d880f, 0x03b8b43e, 0x000b88fe}}}, + {X: Field{[10]uint32{0x035350bd, 0x0125adb2, 0x03da0a38, 0x03f62366, 0x019fcc79, 0x02e29f98, 0x019bd9e6, 0x03e531c8, 0x0268d4b6, 0x00286c9d}}, Y: Field{[10]uint32{0x02d68a32, 0x013ccb75, 0x01b94264, 0x01d2dcae, 0x01c96b5f, 0x0003f57b, 0x02a62bc2, 0x0305ab9e, 0x005eb6e1, 0x000e4cff}}}, + {X: Field{[10]uint32{0x03e28887, 0x0037dfab, 0x01ae38c4, 0x01f05643, 0x0357dd4e, 0x02023ac2, 0x03b71810, 0x02f0c47d, 0x02570087, 0x00043c4d}}, Y: Field{[10]uint32{0x03366d84, 0x031ba178, 0x03995db5, 0x02d29e68, 0x02291338, 0x00753b73, 0x02c570d9, 0x030fb139, 0x008709bd, 0x000694b9}}}, + {X: Field{[10]uint32{0x01be3e46, 0x03861073, 0x01884273, 0x03623e62, 0x00f613b3, 0x0003717b, 0x03558615, 0x03d60fe7, 0x00eea984, 0x00022aa8}}, Y: Field{[10]uint32{0x0133260d, 0x025f48a8, 0x017b8f21, 0x016055b6, 0x0124e564, 0x00bc91bb, 0x02c46abc, 0x009df700, 0x01540f85, 0x0014a588}}}, + {X: Field{[10]uint32{0x01c89d2e, 0x019990fc, 0x034aa3bd, 0x03be96e2, 0x00dc9472, 0x01ea4ea6, 0x0397ce5f, 0x02c6de6c, 0x02710024, 0x000ca016}}, Y: Field{[10]uint32{0x003091fd, 0x01439621, 0x002a2f4d, 0x019702e2, 0x029e23c7, 0x00a9d3b5, 0x02d0a858, 0x00e7d734, 0x007cb7c1, 0x002bd497}}}, + {X: Field{[10]uint32{0x01412451, 0x0141d26a, 0x02b12cde, 0x030a1fda, 0x01058db0, 0x03ce9483, 0x030835a4, 0x035125fe, 0x00cc909a, 0x0031cbc4}}, Y: Field{[10]uint32{0x02c7c65a, 0x0044b5bc, 0x03030a7a, 0x00c99d19, 0x03b8e2ca, 0x0192d83c, 0x015ff15b, 0x02ea78df, 0x027d5197, 0x0029599b}}}, + {X: Field{[10]uint32{0x03fc9a22, 0x0082195d, 0x01f97c03, 0x016b5301, 0x0172c0fa, 0x0080ef50, 0x01a74adc, 0x0046c905, 0x00c78702, 0x001bb1da}}, Y: Field{[10]uint32{0x031b09fb, 0x009833ab, 0x014d05da, 0x010b6d9f, 0x03b51cbf, 0x01527230, 0x01e67100, 0x036ec249, 0x02220aa2, 0x00060e52}}}, + {X: Field{[10]uint32{0x00a64737, 0x00e9c70f, 0x01e61dc9, 0x0343bbe4, 0x01a846e7, 0x01c117f2, 0x01061438, 0x03455981, 0x03bbff99, 0x00378dba}}, Y: Field{[10]uint32{0x000f4270, 0x0292d3a4, 0x00c81b39, 0x02e86d34, 0x00488208, 0x011db138, 0x0247dcda, 0x02cded01, 0x02520f3c, 0x0031605d}}}, + {X: Field{[10]uint32{0x00c00218, 0x0082adcf, 0x0297bc0c, 0x008ad1a8, 0x0019bea3, 0x037a9bd3, 0x0001ef86, 0x03f1a16b, 0x015d5538, 0x003d4d05}}, Y: Field{[10]uint32{0x03b9523c, 0x0355c1ac, 0x026030d3, 0x013c5376, 0x03f9d092, 0x028b4494, 0x02b38a49, 0x02632bbb, 0x01f2979d, 0x0013eadf}}}, + {X: Field{[10]uint32{0x0286129d, 0x01ff304c, 0x035210bc, 0x0223436a, 0x0008db20, 0x0156da1f, 0x00ecb981, 0x02409420, 0x0050a1db, 0x0036bf6e}}, Y: Field{[10]uint32{0x011ada22, 0x03cbfbd9, 0x0291aa2e, 0x014183ff, 0x027d0ccc, 0x00dbeef4, 0x02be601f, 0x013050ff, 0x03fcae6c, 0x0010e597}}}, + {X: Field{[10]uint32{0x01d705ce, 0x027e7d26, 0x03721299, 0x01a5a02c, 0x022efe40, 0x00cf31a7, 0x016893ee, 0x02f21460, 0x02211dca, 0x002b2682}}, Y: Field{[10]uint32{0x00c728ef, 0x00e5c6e6, 0x03a8879c, 0x02c4e7d6, 0x02acf64e, 0x034035c4, 0x021e02c2, 0x034af7fe, 0x02408281, 0x0005baff}}}, + {X: Field{[10]uint32{0x00503030, 0x0207afa6, 0x02ceb1db, 0x00bc0ede, 0x0131ae2b, 0x02e2da7f, 0x01eb8b97, 0x03dba578, 0x03d4b48c, 0x002becde}}, Y: Field{[10]uint32{0x024b7929, 0x0336c582, 0x01d84d3f, 0x037b3913, 0x01c47c06, 0x017e8c4f, 0x0231af3e, 0x033765bc, 0x0164f8d9, 0x000733d0}}}, + {X: Field{[10]uint32{0x0088e709, 0x000a494e, 0x007d51a6, 0x00b4ac4a, 0x00f55368, 0x007591c3, 0x0318e7f2, 0x013e0cea, 0x02ef6c29, 0x00006e40}}, Y: Field{[10]uint32{0x00d69ebe, 0x007b3bb7, 0x024aa24b, 0x00091b1c, 0x0066ca01, 0x00359a93, 0x005e9fe4, 0x027f9c8e, 0x01ff34e4, 0x001dcd71}}}, + {X: Field{[10]uint32{0x003133e2, 0x0138a2df, 0x030b255e, 0x031630ef, 0x00c61b41, 0x00cc883f, 0x01b4ec3d, 0x00a561f1, 0x03108a20, 0x001b9396}}, Y: Field{[10]uint32{0x028fcfbe, 0x012a6766, 0x02f660f1, 0x0011b3a8, 0x00b55ae5, 0x01224569, 0x01ea4106, 0x01abd11a, 0x03065c33, 0x002d27e0}}}, + {X: Field{[10]uint32{0x037e9714, 0x00346ac6, 0x0280b5b1, 0x0261f607, 0x0112342d, 0x034e4c6e, 0x00532760, 0x0008416e, 0x037fbb80, 0x0021f38f}}, Y: Field{[10]uint32{0x00f0f635, 0x0065ce93, 0x02e16d1e, 0x0263751b, 0x016b71f8, 0x03078ce1, 0x013c3869, 0x03ce700a, 0x004779db, 0x0015b1aa}}}, + {X: Field{[10]uint32{0x01426b2d, 0x0199eab2, 0x01d0c9f6, 0x00189d1f, 0x02d368a7, 0x01687a51, 0x00193724, 0x01927270, 0x029bb7ba, 0x0021c90c}}, Y: Field{[10]uint32{0x010b944c, 0x0243fe59, 0x030d89d0, 0x03548745, 0x0155b109, 0x003e811e, 0x03a5a5bb, 0x03512d76, 0x00e848d7, 0x00011116}}}, + {X: Field{[10]uint32{0x02a1a4bc, 0x025fd8ad, 0x005cd7d2, 0x03333b21, 0x03c6338d, 0x01935f5f, 0x01b18b6b, 0x030244cb, 0x03a64735, 0x002e46fb}}, Y: Field{[10]uint32{0x00138467, 0x03dc0778, 0x0340b14c, 0x00323e7c, 0x0015e7ca, 0x0391d9a8, 0x03f16cfb, 0x01e71a19, 0x01ef8c9b, 0x002ece58}}}, + {X: Field{[10]uint32{0x00d08fb3, 0x038c8028, 0x0296cd8d, 0x02e19735, 0x009ae3d6, 0x0228d227, 0x00fbb896, 0x025fa8ef, 0x0259332e, 0x0010c87a}}, Y: Field{[10]uint32{0x00cd538e, 0x032d8021, 0x00f7ee31, 0x008d7394, 0x0203f6b0, 0x01ce8d7a, 0x0182e3fc, 0x02754f5d, 0x00d4c514, 0x0025f920}}}, + {X: Field{[10]uint32{0x02f1bc6d, 0x014b29bd, 0x02069057, 0x0357a230, 0x017950a8, 0x02a63508, 0x01051d25, 0x025a990c, 0x03b2836d, 0x00371165}}, Y: Field{[10]uint32{0x03df36ff, 0x01cfc814, 0x02ad7f9b, 0x03f79310, 0x03362bb4, 0x00d5c96a, 0x00e3a83c, 0x00c32ba1, 0x000d16ba, 0x0031c496}}}, + {X: Field{[10]uint32{0x0159a009, 0x00b4e700, 0x00992997, 0x0194b67e, 0x03c5f19b, 0x037801ee, 0x02617508, 0x00c0242c, 0x02f085ff, 0x00339913}}, Y: Field{[10]uint32{0x033cc8f7, 0x02641b35, 0x02c17c08, 0x01a48299, 0x00c9402a, 0x019026ac, 0x0200c92f, 0x02e596ea, 0x01d0058d, 0x00002690}}}, + {X: Field{[10]uint32{0x0136b41a, 0x01138066, 0x002b4a74, 0x0309611a, 0x022ec439, 0x00f2e3bc, 0x01aecf42, 0x02d2eae0, 0x035cb6c7, 0x0002e878}}, Y: Field{[10]uint32{0x01bd6272, 0x0339a50d, 0x0128ad2f, 0x00cc73ab, 0x0001098b, 0x02c5ea39, 0x0178d6f7, 0x037918f8, 0x0252f91d, 0x003cecf1}}}, + {X: Field{[10]uint32{0x02e3920f, 0x0344d821, 0x0114d72e, 0x011c640b, 0x036988c7, 0x011763d0, 0x03c839f8, 0x006efd83, 0x02a02a33, 0x002e7e63}}, Y: Field{[10]uint32{0x020d03d3, 0x03eca4b1, 0x0327d318, 0x013ea52e, 0x0235d9b0, 0x02a85f04, 0x0326f5e8, 0x00e85b31, 0x0101a7f2, 0x00027ec9}}}, + {X: Field{[10]uint32{0x007e886f, 0x028da7a0, 0x02ed09c1, 0x03c45b5e, 0x00dc10db, 0x03f3fe4c, 0x038e702f, 0x003e0711, 0x034655f9, 0x001c1645}}, Y: Field{[10]uint32{0x0205a59f, 0x0255426c, 0x02f8c64b, 0x010747cd, 0x03d09d3f, 0x0182a8fd, 0x031ec925, 0x03c32836, 0x00a4b9d6, 0x002099e8}}}, + {X: Field{[10]uint32{0x025434bf, 0x00886b30, 0x0031eb76, 0x01b938c7, 0x0114cc5a, 0x01004858, 0x036469f8, 0x02818e9e, 0x00bcc43c, 0x003bf69e}}, Y: Field{[10]uint32{0x02fa2864, 0x038de055, 0x032aa92b, 0x0191126b, 0x034cdf80, 0x00c64f44, 0x0121b135, 0x03e1643d, 0x03f6ef45, 0x001ed0db}}}, + {X: Field{[10]uint32{0x010ccc34, 0x01b4251d, 0x02f0e430, 0x01d00068, 0x0335fbd8, 0x02015aba, 0x0230988c, 0x002578e9, 0x030f5d62, 0x0008a692}}, Y: Field{[10]uint32{0x0234de6e, 0x028d6578, 0x034288be, 0x00d771a8, 0x00741acf, 0x01a9466f, 0x01694cef, 0x01d38f4b, 0x03af491c, 0x0005c34c}}}, + {X: Field{[10]uint32{0x02f07100, 0x0238bb1a, 0x03f178ce, 0x02d2069a, 0x03f91860, 0x02b343e4, 0x01d44b83, 0x0084c862, 0x008e20a0, 0x0031dc3d}}, Y: Field{[10]uint32{0x00266eec, 0x03e18870, 0x038c9610, 0x02fdf82f, 0x02a6d8db, 0x00c96fab, 0x0143aca3, 0x00647e7b, 0x00d38b2a, 0x001f8448}}}, + {X: Field{[10]uint32{0x0286aa44, 0x0121a6bc, 0x00af8eb7, 0x0260f509, 0x01e89b89, 0x002c626a, 0x020a48a2, 0x00754a2d, 0x00630390, 0x002976cb}}, Y: Field{[10]uint32{0x00af1e50, 0x03868dc9, 0x03a1446f, 0x021a0146, 0x010384e1, 0x0270dfbb, 0x034e6abd, 0x0356c069, 0x01926a93, 0x002e6587}}}, + {X: Field{[10]uint32{0x0241db1c, 0x01eca636, 0x005ff007, 0x01233a8b, 0x024b447e, 0x005a36e6, 0x03897b7c, 0x000a2298, 0x029e9f33, 0x000fb1c5}}, Y: Field{[10]uint32{0x03053fb2, 0x01de0d7c, 0x00b49e44, 0x01a04b96, 0x024b3be2, 0x034d2935, 0x004aa34e, 0x003b688b, 0x034de8e6, 0x0030ffa5}}}, + {X: Field{[10]uint32{0x035bf3b3, 0x00b0453e, 0x02b777cf, 0x024f3a4b, 0x03810cff, 0x0267923a, 0x0060d4cf, 0x00461356, 0x0217c331, 0x002dccf7}}, Y: Field{[10]uint32{0x000c11b0, 0x038690d2, 0x0290ad28, 0x033a7c9a, 0x0157fc4a, 0x02ed855c, 0x000d537e, 0x002b4c80, 0x00dd72d2, 0x00031d70}}}, + {X: Field{[10]uint32{0x002ed278, 0x0140585b, 0x01df28b4, 0x0279aa08, 0x00027db5, 0x005601d7, 0x0149616a, 0x02f09057, 0x0208d555, 0x0015f5b8}}, Y: Field{[10]uint32{0x0346eba8, 0x00d31b0d, 0x02891fca, 0x00b9b3ca, 0x0274b5d0, 0x014ecd3d, 0x028e3533, 0x036968d4, 0x0279d130, 0x0020e1c2}}}, + {X: Field{[10]uint32{0x02d3673d, 0x0249621a, 0x03aab8d7, 0x0027f6cb, 0x026f0694, 0x00823dbc, 0x032fd3c3, 0x0291e0ef, 0x00f1aa69, 0x0027908d}}, Y: Field{[10]uint32{0x008d0653, 0x00dccf8a, 0x0029bd75, 0x005abffb, 0x019fb42b, 0x01e81610, 0x03ed0414, 0x03af0fa2, 0x03737725, 0x0017e691}}}, + {X: Field{[10]uint32{0x02b68173, 0x00fc7ce6, 0x00a758d4, 0x03c9d81a, 0x0322e4fc, 0x0362ba44, 0x0096202f, 0x00bff6f6, 0x039d9fc1, 0x001bf8ff}}, Y: Field{[10]uint32{0x0109fa1b, 0x00f688ad, 0x02a3c2ab, 0x0058f9fe, 0x010bf94e, 0x02482316, 0x03ef7b50, 0x0118209c, 0x02821d41, 0x003bc355}}}, + {X: Field{[10]uint32{0x005c4631, 0x02ab96ed, 0x0161fff2, 0x015f446c, 0x0154c492, 0x01532d26, 0x02af415e, 0x01b867be, 0x014fd258, 0x000b0c79}}, Y: Field{[10]uint32{0x03311346, 0x003908c4, 0x0308bd8e, 0x015069c1, 0x00039af3, 0x03ee0979, 0x0353c0e9, 0x02c6b39f, 0x00ad364a, 0x002fb7ec}}}, + {X: Field{[10]uint32{0x00203ebc, 0x019839de, 0x037823b8, 0x0225270b, 0x004d745b, 0x02e4ce16, 0x00ea2ee2, 0x01230d1e, 0x02590231, 0x0014565c}}, Y: Field{[10]uint32{0x02aa1817, 0x027cefd9, 0x033628a5, 0x03396984, 0x03b81ff7, 0x015e4140, 0x03dc4702, 0x02dd0f13, 0x0153f688, 0x000ca7d8}}}, + {X: Field{[10]uint32{0x01caf1f4, 0x010791b3, 0x03d6070d, 0x0213378d, 0x020d3946, 0x03d4733e, 0x03fcb3bd, 0x035ee370, 0x032458f7, 0x000622cc}}, Y: Field{[10]uint32{0x03901910, 0x0195a934, 0x03104487, 0x030a22ab, 0x003d1dde, 0x026671aa, 0x026b04c8, 0x02845cc6, 0x01dad112, 0x000137a9}}}, + {X: Field{[10]uint32{0x03a6e471, 0x00dcb573, 0x0090e307, 0x033dfc4f, 0x0085f804, 0x0384f8aa, 0x02b0a494, 0x03856233, 0x0241a503, 0x00248163}}, Y: Field{[10]uint32{0x00ec108a, 0x01c95761, 0x0151068e, 0x01e96334, 0x01bcbe17, 0x0085dfa5, 0x025a230e, 0x01a1785f, 0x02d4449e, 0x000da01c}}}, + {X: Field{[10]uint32{0x00099fcf, 0x011e20cd, 0x0105d5b6, 0x03a27a0c, 0x03726f79, 0x01bab14d, 0x03a7a689, 0x01941bc9, 0x022644e0, 0x001a9bd4}}, Y: Field{[10]uint32{0x01132586, 0x0268cb69, 0x013214c1, 0x0269692d, 0x007104e7, 0x01d261fd, 0x027b6645, 0x0360fac5, 0x014bd8ce, 0x0033cfb7}}}, + {X: Field{[10]uint32{0x0376bb26, 0x03e49bc8, 0x0148d89c, 0x0008d3c0, 0x03c77c34, 0x035523cd, 0x021e0efa, 0x03730f28, 0x02a2340c, 0x001f8df3}}, Y: Field{[10]uint32{0x009a0016, 0x027fa6b3, 0x0369e83b, 0x00af4c72, 0x026b02d4, 0x0172f08a, 0x022938e0, 0x01f1aac1, 0x029b42a2, 0x0031cb60}}}, + {X: Field{[10]uint32{0x00d0b667, 0x023ee0b6, 0x00c5ad84, 0x00314b0f, 0x00800d01, 0x0325ea37, 0x03b4b39b, 0x01b3deeb, 0x0069cf0f, 0x00079b08}}, Y: Field{[10]uint32{0x0260196f, 0x031c8e23, 0x03e81f86, 0x02198c2d, 0x00491469, 0x032c2450, 0x02cfbdc2, 0x03611a1b, 0x0276bca1, 0x00030607}}}, + {X: Field{[10]uint32{0x02f07e16, 0x00fbd6c1, 0x00be3520, 0x00f32901, 0x02f36ba4, 0x0112d1fa, 0x02336c8d, 0x0293dec1, 0x000fe6ee, 0x00155998}}, Y: Field{[10]uint32{0x01057e55, 0x03f87380, 0x0278b5a7, 0x0059da56, 0x0269e5ac, 0x03cdcbb6, 0x00acb4c0, 0x0065e7b5, 0x008f7adc, 0x001aeef4}}}, + {X: Field{[10]uint32{0x01c791b5, 0x0341f64c, 0x03a7619a, 0x005b54a6, 0x00690450, 0x017653e3, 0x01c5adc4, 0x00717008, 0x034ded45, 0x0010d718}}, Y: Field{[10]uint32{0x034d4cc1, 0x02d391f1, 0x02c14024, 0x01d8adbd, 0x02850098, 0x0254f032, 0x006f9591, 0x02943c88, 0x02688252, 0x000c7b78}}}, + {X: Field{[10]uint32{0x0057b9b6, 0x0108d0a7, 0x027e9dd1, 0x00abe157, 0x01f19a0d, 0x014a9053, 0x01c06122, 0x01c71ce5, 0x00e6a660, 0x001bee33}}, Y: Field{[10]uint32{0x0368e052, 0x017627c9, 0x034c5b84, 0x03baaff8, 0x02183dad, 0x0208c989, 0x0399fad6, 0x014c5351, 0x0249e2f0, 0x0005fe50}}}, + {X: Field{[10]uint32{0x0180dc36, 0x037a30ca, 0x01890148, 0x028a6781, 0x0011c711, 0x0153b98d, 0x016a695f, 0x01325252, 0x029920fc, 0x00219bcf}}, Y: Field{[10]uint32{0x018d62f7, 0x0221e1b4, 0x0109bae1, 0x000ba0de, 0x01f5211f, 0x030036cb, 0x00a11e13, 0x030f074e, 0x01af4f8d, 0x003a6715}}}, + {X: Field{[10]uint32{0x00468b2d, 0x01bd8620, 0x03c79461, 0x002df009, 0x0162404f, 0x0372f941, 0x024f7234, 0x0122669c, 0x0010b716, 0x0020304d}}, Y: Field{[10]uint32{0x000b91aa, 0x037e254a, 0x016216d8, 0x03870b10, 0x01bd6e8f, 0x0371a74e, 0x03592819, 0x00793f5e, 0x002e71a0, 0x00218c65}}}, + {X: Field{[10]uint32{0x02a7da99, 0x00577060, 0x004d2c38, 0x030292e9, 0x00bf37ab, 0x005eedbb, 0x03e68bec, 0x02762014, 0x01eeef4e, 0x0023e16f}}, Y: Field{[10]uint32{0x0217897e, 0x027edfbb, 0x02962b4a, 0x017927b9, 0x034e8c29, 0x02a96468, 0x00f8ce78, 0x00d0b2bc, 0x03df8ae9, 0x000db516}}}, + {X: Field{[10]uint32{0x01600749, 0x01280692, 0x022aa440, 0x039209b6, 0x0317a920, 0x03ba286c, 0x00edaf40, 0x03369833, 0x032b3393, 0x00027342}}, Y: Field{[10]uint32{0x02fc5a5a, 0x03977baa, 0x00463414, 0x024a9258, 0x023a00c4, 0x03c313a8, 0x0101e348, 0x01942ec6, 0x035a51d9, 0x000e0c74}}}, + {X: Field{[10]uint32{0x009f33b0, 0x0380ddf5, 0x032d3bdb, 0x032b7fe8, 0x02003ab7, 0x01d31de6, 0x03832f79, 0x01fff5b3, 0x01af15c6, 0x0028317c}}, Y: Field{[10]uint32{0x01cb91ec, 0x00a5a080, 0x03c57800, 0x00aee210, 0x03307939, 0x0188317f, 0x03344123, 0x01898905, 0x00d442de, 0x001abfd0}}}, + {X: Field{[10]uint32{0x00edfacc, 0x0208c4d6, 0x02d7890a, 0x01c0df2c, 0x02c01113, 0x03b100e7, 0x021fbf02, 0x03885f5f, 0x03400013, 0x002bce5b}}, Y: Field{[10]uint32{0x02cfb936, 0x03a53d66, 0x024bc936, 0x0267a161, 0x016754c5, 0x0017c397, 0x0035d167, 0x014d28b7, 0x01e25a57, 0x002aabae}}}, + {X: Field{[10]uint32{0x01ed0eaf, 0x039c7124, 0x01307cf1, 0x01c7cbe2, 0x0187d4c0, 0x02f8d65e, 0x02871b0d, 0x03b3179f, 0x0057e3e0, 0x003f6b0f}}, Y: Field{[10]uint32{0x00a09fc7, 0x03981a0f, 0x00b18cde, 0x03fd7684, 0x02b14d14, 0x033f8db5, 0x00877afc, 0x03c259cf, 0x00cca22e, 0x000c0a28}}}, + {X: Field{[10]uint32{0x02fa88b7, 0x011c767b, 0x0103e14a, 0x035aab14, 0x00ae745f, 0x023bebb7, 0x012b6a96, 0x02eaa6b8, 0x01239587, 0x0038ebac}}, Y: Field{[10]uint32{0x02f769c7, 0x00ce5ef2, 0x036cd2d3, 0x00168b23, 0x017b4603, 0x02c9f469, 0x006833fb, 0x01512f8c, 0x038652c1, 0x001fb471}}}, + {X: Field{[10]uint32{0x038352f5, 0x01694335, 0x00a0e605, 0x01e8f8f8, 0x000eb83d, 0x0246b2e5, 0x00cc663c, 0x00058bed, 0x01e3382a, 0x0025aebb}}, Y: Field{[10]uint32{0x00c50cbc, 0x02b8167c, 0x039972ad, 0x0187a963, 0x0105100d, 0x02e4c022, 0x00c3a80f, 0x00a090e2, 0x0297b3ad, 0x001e1c8b}}}, + {X: Field{[10]uint32{0x03f5f5b5, 0x0013b88e, 0x03e408de, 0x008911a8, 0x02ba93d1, 0x036d51bf, 0x01e1eda4, 0x0158dfcd, 0x01561697, 0x001a1c12}}, Y: Field{[10]uint32{0x014ca494, 0x00d86f18, 0x005ff46e, 0x0099dc90, 0x02934bd2, 0x01310986, 0x006c7a20, 0x011c7ce8, 0x02feb5f7, 0x001891f4}}}, + {X: Field{[10]uint32{0x00bcf749, 0x0257827d, 0x01ad7940, 0x014be0fb, 0x0362eaf6, 0x02c374ac, 0x0202d72e, 0x03e1622b, 0x02342ca1, 0x001c7331}}, Y: Field{[10]uint32{0x012a45fb, 0x027e60f7, 0x02c686cb, 0x02510aa5, 0x01aee177, 0x01c0f968, 0x00e3f222, 0x0039a52a, 0x03d923b1, 0x00121eba}}}, + {X: Field{[10]uint32{0x0235d3f0, 0x002cfb3d, 0x00dff25d, 0x02ebc927, 0x01713844, 0x03a2d842, 0x00cd1831, 0x0268b816, 0x01d06573, 0x001bf687}}, Y: Field{[10]uint32{0x0078108e, 0x02597d48, 0x013df60a, 0x00f554dc, 0x00a232a9, 0x02a22a2c, 0x00a96c32, 0x032dc93e, 0x00f48afc, 0x0028bb91}}}, + {X: Field{[10]uint32{0x01147f45, 0x005b31b5, 0x03b64b10, 0x03d60e39, 0x0165cbfc, 0x02651c45, 0x02395c13, 0x0365ed17, 0x0309ff5a, 0x0034fc9d}}, Y: Field{[10]uint32{0x03265077, 0x024559e4, 0x0161a043, 0x03854767, 0x0329006e, 0x026ef5b1, 0x02026ed2, 0x03870d53, 0x0016cdc8, 0x003e5b2b}}}, + {X: Field{[10]uint32{0x00a011d6, 0x038d9ba9, 0x0278641e, 0x024e38af, 0x0268f827, 0x02e0a4b1, 0x027d064b, 0x01bbfde2, 0x0144a28a, 0x0009ee86}}, Y: Field{[10]uint32{0x027bdcab, 0x03dea613, 0x014d0a77, 0x01755d1a, 0x01fcbe30, 0x0163c15c, 0x0312fc94, 0x0190c39c, 0x00759d21, 0x00092fbe}}}, + {X: Field{[10]uint32{0x004fe190, 0x039f4025, 0x0348ee35, 0x011061c1, 0x01772f4c, 0x021cb83a, 0x03ca9ff7, 0x01f3820b, 0x00125fd8, 0x003f4dee}}, Y: Field{[10]uint32{0x03dcb453, 0x01ee6809, 0x02951184, 0x01118041, 0x028ec68a, 0x02ccdf7c, 0x01b8c43f, 0x0066376e, 0x0125d9ae, 0x00251429}}}, + {X: Field{[10]uint32{0x02071c69, 0x013322a3, 0x00b802c2, 0x02296576, 0x03446751, 0x00caa005, 0x0329b63f, 0x00f83634, 0x00ca9258, 0x0036659f}}, Y: Field{[10]uint32{0x03376c25, 0x0192ba5c, 0x02ab97ed, 0x034c85e7, 0x0328361c, 0x00b96bc9, 0x0086dbb9, 0x0275a4ef, 0x0273c2c3, 0x001ab28d}}}, + {X: Field{[10]uint32{0x014a0a3c, 0x027b502e, 0x0044f3d8, 0x017c38f4, 0x02f53cd4, 0x03f65705, 0x02798efb, 0x0007af48, 0x013c4a8d, 0x0023ba0b}}, Y: Field{[10]uint32{0x011e1b2d, 0x0189b1de, 0x022f036c, 0x02836ceb, 0x0379c8b6, 0x0356e702, 0x0271c3af, 0x03ee742a, 0x037e9167, 0x00382c2a}}}, + {X: Field{[10]uint32{0x00562caa, 0x022876c3, 0x01a4764c, 0x0336fc8b, 0x038d709c, 0x0140a5c1, 0x03ea0291, 0x02d526a7, 0x03d2817c, 0x001187b0}}, Y: Field{[10]uint32{0x036684af, 0x01abd1eb, 0x0259adb1, 0x0036c218, 0x0126cdf8, 0x00594100, 0x00f6e126, 0x025e4144, 0x017dcb5c, 0x001986cb}}}, + {X: Field{[10]uint32{0x01f5793e, 0x00406f50, 0x01890673, 0x0203cf79, 0x0059f517, 0x014ffdae, 0x01bb7ffb, 0x032bb51a, 0x005c0935, 0x000c5562}}, Y: Field{[10]uint32{0x0043dfff, 0x010d3388, 0x0181e28d, 0x0309a71d, 0x0208ca6a, 0x023cd5db, 0x00bbdfe0, 0x00423e34, 0x00e992ac, 0x00180d65}}}, + {X: Field{[10]uint32{0x024ea9eb, 0x0109d60a, 0x02f0dcad, 0x028ae7ed, 0x00c68a60, 0x03621d39, 0x02267a0a, 0x02670641, 0x03b0ad91, 0x00172b24}}, Y: Field{[10]uint32{0x000032ab, 0x008ee662, 0x0234a0e4, 0x0254df99, 0x03c48e72, 0x035d20fa, 0x0161fe7a, 0x036ae5a6, 0x0298a116, 0x0020dbea}}}, + {X: Field{[10]uint32{0x0156cc42, 0x03b15b1a, 0x039047e3, 0x01d09121, 0x0154d052, 0x02a3c05e, 0x02eea1c4, 0x03bd5a2d, 0x03acafd5, 0x0007edb4}}, Y: Field{[10]uint32{0x022a5411, 0x00f6bf4b, 0x00839313, 0x0120460f, 0x027431be, 0x014318d8, 0x036a1ec0, 0x013cc9b7, 0x01f2f89e, 0x002e3be4}}}, + {X: Field{[10]uint32{0x002b28f2, 0x03f1dcf6, 0x02bdcd31, 0x015fdeec, 0x0369fe01, 0x03f7b9ec, 0x00618f03, 0x0001768c, 0x01e152f0, 0x0022702c}}, Y: Field{[10]uint32{0x00b4a507, 0x01deac60, 0x007a9254, 0x0362b27d, 0x01ad8223, 0x009b19ed, 0x0105de5b, 0x01a05ab3, 0x0357bbf4, 0x001875b8}}}, + {X: Field{[10]uint32{0x039a211e, 0x01eac6ed, 0x01751080, 0x02f83cc7, 0x007cb968, 0x01064c90, 0x023875a3, 0x006bf359, 0x018b1f9d, 0x0001f174}}, Y: Field{[10]uint32{0x00779ff3, 0x02e70def, 0x01b3b6dc, 0x02c4a5b2, 0x03d136b5, 0x0353a517, 0x023b4495, 0x03683ef4, 0x03ea985b, 0x00117ef9}}}, + {X: Field{[10]uint32{0x0159f85c, 0x027744fc, 0x03792ddf, 0x034e978b, 0x00b6afda, 0x017adfc0, 0x031ad4db, 0x0042326c, 0x03c19393, 0x003209f3}}, Y: Field{[10]uint32{0x013a1cb1, 0x006aa99d, 0x01a129c3, 0x00f758cd, 0x000330ea, 0x0265478b, 0x03e12fc8, 0x03500553, 0x007a3025, 0x001717f8}}}, + {X: Field{[10]uint32{0x03cc5d9b, 0x005e1d55, 0x001e6571, 0x0201541d, 0x002e0dfa, 0x01ac806d, 0x01e2fa40, 0x03df7081, 0x032bb1f3, 0x0018d1ec}}, Y: Field{[10]uint32{0x028c3ba4, 0x02f868eb, 0x02e52e22, 0x03cec5c3, 0x01a455d3, 0x03e2b09b, 0x00d72553, 0x034d3292, 0x02109508, 0x003e3cc3}}}, + {X: Field{[10]uint32{0x03ae1014, 0x00748999, 0x00130e0a, 0x00ea5266, 0x02bfa21f, 0x036c0cab, 0x02e42837, 0x0040757d, 0x0195e822, 0x0035227d}}, Y: Field{[10]uint32{0x027c66a9, 0x0299b648, 0x000c22b4, 0x037fae54, 0x012bfa98, 0x00987e32, 0x024c33d1, 0x02851a3d, 0x02898dc4, 0x0022c44b}}}, + {X: Field{[10]uint32{0x00a6205b, 0x0016372e, 0x000b276f, 0x01cf50ef, 0x0102200d, 0x039da991, 0x02b8f981, 0x03ef3ab7, 0x0063fb4a, 0x002432e7}}, Y: Field{[10]uint32{0x02e74645, 0x00c93394, 0x0087ba02, 0x01ed6fdb, 0x002611a7, 0x00811c76, 0x02f19c67, 0x01fc6aee, 0x01c0f6ba, 0x002252bf}}}, + {X: Field{[10]uint32{0x02196af4, 0x0269e55a, 0x0018bbc4, 0x01b1a67a, 0x00869bb0, 0x002a6255, 0x026a1bef, 0x0087d395, 0x00bb19f1, 0x001037da}}, Y: Field{[10]uint32{0x020cec90, 0x02f758c8, 0x0269da31, 0x034a90c7, 0x02e1d6b3, 0x01843dad, 0x009f8303, 0x037df0c7, 0x0009d0ce, 0x001c3507}}}, + {X: Field{[10]uint32{0x03da41bf, 0x00450ea0, 0x009d78b4, 0x007acd55, 0x00a888dd, 0x00c7c5ff, 0x00962b64, 0x01411647, 0x0174a0ac, 0x00124dbf}}, Y: Field{[10]uint32{0x03ff4f92, 0x02d7fc86, 0x03392c5a, 0x00ad7743, 0x013fc5b7, 0x02cfc73d, 0x0068af85, 0x0214fb5f, 0x01dd6517, 0x000cea38}}}, + {X: Field{[10]uint32{0x02023557, 0x03a0ac36, 0x03594288, 0x039eca8f, 0x03c1a0c6, 0x025601d2, 0x03aad592, 0x01d6e3d6, 0x01388110, 0x0005c5dd}}, Y: Field{[10]uint32{0x01b10837, 0x02ec1cb0, 0x0077504b, 0x00a08e6a, 0x01b163fe, 0x00d36848, 0x03a0c5f7, 0x01d0b179, 0x0014efd8, 0x00160f52}}}, + {X: Field{[10]uint32{0x038926a2, 0x01dc33d3, 0x02bab586, 0x023c0da4, 0x006abb11, 0x03c87c82, 0x014c82d8, 0x0117aad0, 0x03fbad51, 0x002849ad}}, Y: Field{[10]uint32{0x022ec669, 0x032cb46b, 0x00394452, 0x0251a679, 0x0288d465, 0x007dffb0, 0x02bfdb74, 0x02d34868, 0x0017b601, 0x001e6d2b}}}, + {X: Field{[10]uint32{0x02871163, 0x0039c0eb, 0x004fdba3, 0x02361a61, 0x023485db, 0x03619694, 0x015de512, 0x00012035, 0x0361f884, 0x00147b33}}, Y: Field{[10]uint32{0x02a8d50f, 0x032bb4cb, 0x03dcee87, 0x02a55e94, 0x0012b2c6, 0x0003a824, 0x000c46a2, 0x0327c20b, 0x025397bd, 0x001652b4}}}, + {X: Field{[10]uint32{0x02b3c7a9, 0x016e8ed4, 0x02882510, 0x00e22d45, 0x03d89844, 0x01e7496b, 0x01966cca, 0x01c4c7d5, 0x02336f1b, 0x0025de05}}, Y: Field{[10]uint32{0x03214c60, 0x03a2764e, 0x01516e47, 0x03bbd0d5, 0x02105011, 0x0149d7ad, 0x01a20e0a, 0x023f8337, 0x0141b4b0, 0x003c77cd}}}, + {X: Field{[10]uint32{0x0093f7fe, 0x01e6f80b, 0x03f01cdb, 0x00ea1c2e, 0x0064231d, 0x0068d73a, 0x038cf6db, 0x0236ad71, 0x003a7224, 0x0022f0b1}}, Y: Field{[10]uint32{0x00cbb425, 0x02ef8385, 0x01b2ef49, 0x001e009a, 0x030b428f, 0x03eee75e, 0x028106af, 0x0276fc27, 0x0276173e, 0x00354b8b}}}, + {X: Field{[10]uint32{0x01aef9f2, 0x014f9401, 0x020d9799, 0x01d7a267, 0x036c3271, 0x012e42cd, 0x00abd033, 0x02846729, 0x00816c7c, 0x00167b5e}}, Y: Field{[10]uint32{0x02449910, 0x02981a85, 0x02133152, 0x0094d2f1, 0x02207794, 0x019a7836, 0x01b46a28, 0x003faf93, 0x0027690c, 0x0008e7f0}}}, + {X: Field{[10]uint32{0x03c70fda, 0x0033dacb, 0x025200ca, 0x0268b2ad, 0x01c8ff8e, 0x00a8e716, 0x01923907, 0x01265750, 0x01d17671, 0x002fb0e6}}, Y: Field{[10]uint32{0x010ba8e7, 0x0266ff6b, 0x03fbf709, 0x01f3bf17, 0x02a21a2f, 0x0394bcd1, 0x021ab9ad, 0x0082348e, 0x01ef7831, 0x003ff12f}}}, + {X: Field{[10]uint32{0x020c4d34, 0x00d62167, 0x0307668a, 0x036d6318, 0x019e3b87, 0x0348a9df, 0x01f99517, 0x03c76fe9, 0x01eef4ce, 0x0024ef49}}, Y: Field{[10]uint32{0x0335b4dc, 0x039aa1d9, 0x00860794, 0x018c0d01, 0x01fa008c, 0x03e265c3, 0x003b1f94, 0x006e1269, 0x00129736, 0x00375f45}}}, + {X: Field{[10]uint32{0x02ddcf58, 0x039b2483, 0x00f8e3e8, 0x0316f7a9, 0x0344e553, 0x01d15695, 0x00b2e708, 0x01354456, 0x0257fb4e, 0x002c80e9}}, Y: Field{[10]uint32{0x02d8c99c, 0x0200d657, 0x03a6a0ac, 0x029e866b, 0x03c74ae5, 0x010fee9e, 0x030d4c75, 0x03860987, 0x01480c63, 0x0026091a}}}, + {X: Field{[10]uint32{0x00f6aa69, 0x01a0f760, 0x024e70be, 0x008533fd, 0x023e20ac, 0x0076a2aa, 0x018a28d1, 0x009ed604, 0x013c1dcd, 0x002bce2d}}, Y: Field{[10]uint32{0x009fd919, 0x030cbe70, 0x02c16acd, 0x01e463e2, 0x035ec101, 0x028feb19, 0x02867237, 0x00ad08d1, 0x0136ba8b, 0x002478e2}}}, + {X: Field{[10]uint32{0x03fd8518, 0x0315d3da, 0x02d862f8, 0x01c83d79, 0x02988ed4, 0x002ad33b, 0x00587562, 0x03601788, 0x025b0b99, 0x00157936}}, Y: Field{[10]uint32{0x00eb2d35, 0x005845eb, 0x0130940b, 0x00963c5e, 0x02e7713b, 0x00d30d9b, 0x01b5976c, 0x0274cb85, 0x02347517, 0x001cda2f}}}, + {X: Field{[10]uint32{0x002133f5, 0x00e83279, 0x035d9018, 0x01b74968, 0x01a3608c, 0x03605f64, 0x021a15e1, 0x0389020f, 0x002aa7eb, 0x0034f5fa}}, Y: Field{[10]uint32{0x005d504b, 0x029f53ff, 0x03bfcae6, 0x01a5b06f, 0x024b1c6d, 0x031789dc, 0x01080b06, 0x00df1a25, 0x01cce895, 0x00029491}}}, + {X: Field{[10]uint32{0x02e48799, 0x01b9699b, 0x003f2231, 0x012da31b, 0x03beab75, 0x03732641, 0x021e8031, 0x0110de5d, 0x039fe6b5, 0x0022f453}}, Y: Field{[10]uint32{0x0178fe19, 0x0042bfda, 0x00603891, 0x009f66ba, 0x00ecb2eb, 0x0158ce1a, 0x0263a263, 0x01895d45, 0x0150a387, 0x003e2770}}}, + {X: Field{[10]uint32{0x02212932, 0x0223f488, 0x0370485c, 0x016c1208, 0x023a7dbc, 0x01ca9688, 0x02b08589, 0x003d0b3f, 0x036503f5, 0x002c75c8}}, Y: Field{[10]uint32{0x002143ac, 0x03cdc5b0, 0x0025570b, 0x013801f4, 0x01627986, 0x0216c877, 0x00aa52d3, 0x0387e6dd, 0x01d8594e, 0x0010165f}}}, + {X: Field{[10]uint32{0x039d3023, 0x03d3dc99, 0x013a8593, 0x000c1787, 0x01c22d44, 0x001173bd, 0x03e4763e, 0x0248324e, 0x03e1cb7d, 0x001134c0}}, Y: Field{[10]uint32{0x0189a70c, 0x004b1857, 0x02004769, 0x02a6806c, 0x03e77e41, 0x00f8f3b8, 0x03d6fcc8, 0x0368bcc6, 0x02fc5ed6, 0x001e7ef7}}}, + {X: Field{[10]uint32{0x030cb3ca, 0x03ae848e, 0x00aed3df, 0x026420f5, 0x02925589, 0x0183ae65, 0x03bd4b90, 0x02aba5c9, 0x0054447a, 0x0005957b}}, Y: Field{[10]uint32{0x0226fcdf, 0x03b39419, 0x017443b9, 0x029ac76b, 0x006ea28f, 0x027c1b65, 0x00f7bf8a, 0x038c7a62, 0x0178cf96, 0x0023a439}}}, + {X: Field{[10]uint32{0x005a3f29, 0x01eedf61, 0x02cb1971, 0x00120032, 0x027902b1, 0x0226439b, 0x01a93261, 0x019afd9b, 0x03fb5305, 0x002c0ab8}}, Y: Field{[10]uint32{0x03006876, 0x000c1f5e, 0x0105162a, 0x00ca4a98, 0x03d8c052, 0x02ce5d09, 0x03b76311, 0x00c0c466, 0x0313f448, 0x0031b4c9}}}, + {X: Field{[10]uint32{0x00c5bcd3, 0x03927344, 0x02c6e065, 0x0266854f, 0x018e1236, 0x02c4ae6b, 0x015e1402, 0x0010ae1d, 0x016653a0, 0x0004f119}}, Y: Field{[10]uint32{0x02d41c88, 0x024b1441, 0x002b0044, 0x02a29e2c, 0x007bab13, 0x00eb0f84, 0x0121ea40, 0x0180f8f1, 0x032c498f, 0x001c3cd9}}}, + {X: Field{[10]uint32{0x00f1483f, 0x03b68f01, 0x034c6361, 0x00fc5077, 0x010dee48, 0x017a5ece, 0x01c7bffc, 0x00dee0ba, 0x022b03fc, 0x0039f1d5}}, Y: Field{[10]uint32{0x03454066, 0x00be39b0, 0x028331b1, 0x026076ec, 0x021a9372, 0x01e85b43, 0x03dce515, 0x01256306, 0x00603d2b, 0x001cd2f9}}}, + {X: Field{[10]uint32{0x0159aefc, 0x035fee8a, 0x038d2263, 0x00870c12, 0x03332f39, 0x02f1ec9f, 0x02b2ed1e, 0x03f1d4d0, 0x012dfb6c, 0x00378097}}, Y: Field{[10]uint32{0x02de12f1, 0x01dbc705, 0x005985e6, 0x007601a5, 0x001a88c3, 0x020dce8c, 0x02fc30c3, 0x03cf40b6, 0x01b16ab6, 0x0011b182}}}, + {X: Field{[10]uint32{0x02ca2e01, 0x00b0c8cf, 0x03e4b6a4, 0x03d20e05, 0x0225730a, 0x02ebc14e, 0x01db714a, 0x0070f497, 0x00b4fed2, 0x000879e2}}, Y: Field{[10]uint32{0x01c1c4c6, 0x00a7f6b9, 0x03c58ddd, 0x03e73504, 0x01b249b1, 0x008cd6e7, 0x02af9b83, 0x01d64ad9, 0x02bda7d0, 0x0007f9c5}}}, + {X: Field{[10]uint32{0x0379edce, 0x033fc41e, 0x02012e39, 0x02776a5f, 0x02d1bc1a, 0x01d6ca39, 0x0058242c, 0x03542c69, 0x03ca7481, 0x0029f6c9}}, Y: Field{[10]uint32{0x01ae73f8, 0x00d860dc, 0x02238851, 0x0348ec47, 0x00084239, 0x02569f31, 0x0055fc17, 0x039b074d, 0x006dcabd, 0x00313e1a}}}, + {X: Field{[10]uint32{0x022d477a, 0x03d92d97, 0x01ccf41a, 0x00faf56f, 0x01e80a7d, 0x02b22533, 0x01616275, 0x03c90388, 0x01732790, 0x00314814}}, Y: Field{[10]uint32{0x022ba20b, 0x02fab27d, 0x03cda463, 0x00290150, 0x00af8770, 0x03ab70fe, 0x028e216d, 0x004283c3, 0x015b2094, 0x003a6a8a}}}, + {X: Field{[10]uint32{0x0172846d, 0x00dc7125, 0x01d05ea9, 0x03aa2e15, 0x0138e91e, 0x00dbaf36, 0x0025f86d, 0x036bafc7, 0x00ad99d1, 0x00121efd}}, Y: Field{[10]uint32{0x00febf70, 0x02a55dbf, 0x00ffe791, 0x01c21b78, 0x0032f729, 0x013062b8, 0x004b2a50, 0x03b42fb8, 0x0037ac6d, 0x00204a4e}}}, + {X: Field{[10]uint32{0x0208cb53, 0x005120c3, 0x03cb13cd, 0x01d083b7, 0x01355675, 0x03958097, 0x03e2d550, 0x01a22e13, 0x02a6bfcf, 0x002f5b74}}, Y: Field{[10]uint32{0x01ab0fca, 0x00dcc936, 0x01a1a1b0, 0x00b34714, 0x000c467d, 0x00a14566, 0x02a1501c, 0x00e018e3, 0x01e184c8, 0x00321a91}}}, + {X: Field{[10]uint32{0x035ec737, 0x02931f08, 0x02ce7936, 0x00619caf, 0x0070dbca, 0x0019cc7a, 0x034fbb69, 0x0223904c, 0x03fdfbf1, 0x00252905}}, Y: Field{[10]uint32{0x01be8e34, 0x026910f6, 0x01765029, 0x024d51be, 0x03564e9f, 0x033edf65, 0x02af124b, 0x03052e07, 0x0207343e, 0x00380f19}}}, + {X: Field{[10]uint32{0x02aba51e, 0x02236519, 0x00fa8ebd, 0x034c0e5a, 0x002ac597, 0x005e88f0, 0x02d9b733, 0x00ec9aa5, 0x02c33fa1, 0x000a95f6}}, Y: Field{[10]uint32{0x00c13b61, 0x02ca4dfa, 0x010c442d, 0x0366016d, 0x013b05bf, 0x0117cd3f, 0x027996e5, 0x02cee2c2, 0x02bf1db7, 0x0005d529}}}, + {X: Field{[10]uint32{0x007e7df7, 0x0242dffb, 0x01742eae, 0x0284b0fe, 0x02d1c66d, 0x00c20f0c, 0x00613e99, 0x00a8e59f, 0x02710614, 0x002e8b92}}, Y: Field{[10]uint32{0x034cb07e, 0x01eb3fa0, 0x00c971da, 0x00d6091f, 0x02ccc6de, 0x02b7b197, 0x03fc60c5, 0x03a0efb5, 0x00c1a704, 0x003098be}}}, + {X: Field{[10]uint32{0x00c01ca9, 0x018baa3b, 0x015a80a8, 0x02681cc3, 0x0008bb0b, 0x03eef609, 0x00a12b11, 0x00944b4a, 0x0343b313, 0x0012b865}}, Y: Field{[10]uint32{0x0017eece, 0x01323de8, 0x0019320b, 0x00f0fe75, 0x00cb2788, 0x029aa2e8, 0x001ec7c0, 0x00fa8747, 0x027d48fa, 0x0019edc9}}}, + {X: Field{[10]uint32{0x0306ddcb, 0x0143a9dd, 0x023ad618, 0x02fd046d, 0x000778b9, 0x01dd24fc, 0x00e6ff9d, 0x00d99fc6, 0x026c8182, 0x000133ec}}, Y: Field{[10]uint32{0x00e4028e, 0x00789dc9, 0x020c778e, 0x01e70e5e, 0x01aa6c60, 0x001f0c84, 0x017af164, 0x024f7c13, 0x023e3a8c, 0x000437e2}}}, + {X: Field{[10]uint32{0x01130349, 0x034f6e57, 0x02561934, 0x0009bdf5, 0x0215f061, 0x00f01418, 0x03bc3efb, 0x02d9bc03, 0x0166a014, 0x0027e791}}, Y: Field{[10]uint32{0x0396c592, 0x005f4964, 0x015fb0a4, 0x027333f2, 0x02ab6e5c, 0x01682a9e, 0x03d0c17c, 0x009aee63, 0x03a276d5, 0x00124ae2}}}, + {X: Field{[10]uint32{0x00239301, 0x033c7dab, 0x03bd222e, 0x0252d57c, 0x03ecf2a1, 0x0045678b, 0x039f4c10, 0x02d582c3, 0x01133641, 0x0038db01}}, Y: Field{[10]uint32{0x0343736c, 0x01696f6e, 0x00c7faa0, 0x004eb0ac, 0x0220e9a1, 0x027e0ea0, 0x022aea8e, 0x03f1018c, 0x00ba48e7, 0x0031ff5d}}}, + {X: Field{[10]uint32{0x00480bbf, 0x027e0936, 0x025e033e, 0x02938fb1, 0x02a0bbe0, 0x03c76846, 0x0337580b, 0x0115a1e1, 0x03b3b94d, 0x00246c04}}, Y: Field{[10]uint32{0x00cfc5b4, 0x00bc8afa, 0x03f00647, 0x02b0f4d9, 0x02948790, 0x038cf45c, 0x026f8247, 0x0094a48a, 0x007ec13a, 0x000578dc}}}, + {X: Field{[10]uint32{0x02324f56, 0x00fdc8fa, 0x001077d4, 0x01eb5d74, 0x00041f66, 0x0354e7cb, 0x02782de2, 0x01b5488d, 0x03888c67, 0x00095345}}, Y: Field{[10]uint32{0x0014094a, 0x00944cf2, 0x002755fd, 0x037e5e5d, 0x0309bec3, 0x02cb6fc9, 0x034aa03b, 0x0079744f, 0x012e9351, 0x003dc10b}}}, + {X: Field{[10]uint32{0x02f4079a, 0x00d59e15, 0x03f0b061, 0x018a65a5, 0x0234fce6, 0x0288bc5b, 0x03abe442, 0x003dc4ab, 0x037ece7d, 0x00114b5a}}, Y: Field{[10]uint32{0x03776998, 0x00c5691f, 0x02d23db3, 0x0164504c, 0x029a39ee, 0x0384c812, 0x000d69fc, 0x03f9d8d0, 0x03a128cf, 0x00087aa2}}}, + {X: Field{[10]uint32{0x004c508b, 0x01451e73, 0x001631f1, 0x02157ca3, 0x02817831, 0x02c660b4, 0x0386b855, 0x023d0606, 0x01d00788, 0x0005602e}}, Y: Field{[10]uint32{0x01d689ff, 0x03403d70, 0x02dc3ecd, 0x02abd95d, 0x0365b69f, 0x01e306df, 0x03cbbe87, 0x036775ce, 0x029c78b3, 0x00136747}}}, + {X: Field{[10]uint32{0x02fc2700, 0x00e582a8, 0x02f450c4, 0x01fb4212, 0x0245a5aa, 0x033c9680, 0x011470c2, 0x0253245b, 0x023fc316, 0x001e7768}}, Y: Field{[10]uint32{0x015bc978, 0x03c968ea, 0x03c03c34, 0x0086855b, 0x02d7158c, 0x01dc0c73, 0x0374e0f3, 0x02363312, 0x0169a58b, 0x001f1ef0}}}, + {X: Field{[10]uint32{0x0149dbe6, 0x036bb850, 0x013b5fe2, 0x00141119, 0x02419b49, 0x017d2a83, 0x02500afb, 0x0337084f, 0x03a9bf80, 0x00219b69}}, Y: Field{[10]uint32{0x026bd3d7, 0x02066add, 0x0124b239, 0x00b1af19, 0x02081a28, 0x022af126, 0x027e8adc, 0x015ea9a1, 0x00b3b45d, 0x00189b4e}}}, + {X: Field{[10]uint32{0x0011d374, 0x012e02e5, 0x0122e102, 0x032be641, 0x02cdb502, 0x01818ae5, 0x01624cfc, 0x01c7a4c8, 0x0112bed2, 0x0010caf2}}, Y: Field{[10]uint32{0x0011cf01, 0x0339a8f9, 0x03605bcd, 0x030aebae, 0x034cb341, 0x03175177, 0x020cc5ac, 0x01350507, 0x009edd7c, 0x00399151}}}, + {X: Field{[10]uint32{0x0010518e, 0x00fb27d9, 0x01be477b, 0x02b420e9, 0x030717f5, 0x009764de, 0x02970865, 0x00e16854, 0x032883ec, 0x002b0f4e}}, Y: Field{[10]uint32{0x00b9b8db, 0x031c9a21, 0x01a125fc, 0x03e55061, 0x033dde58, 0x0039e439, 0x00d01b2c, 0x01f9d704, 0x02fcc9ed, 0x003449bb}}}, + {X: Field{[10]uint32{0x03d6aa37, 0x00f690ea, 0x0064a5c1, 0x018a5834, 0x03fa18b2, 0x01ab8999, 0x03696d95, 0x00e175b6, 0x034b2a82, 0x00115c20}}, Y: Field{[10]uint32{0x01236f28, 0x0121ac18, 0x004e121a, 0x0192b590, 0x03d9d15c, 0x02a565f9, 0x022eb590, 0x02fe21ee, 0x0083b249, 0x0007a758}}}, + {X: Field{[10]uint32{0x0183ef15, 0x00d5752e, 0x03fd3341, 0x0144dabb, 0x02b224b0, 0x0058f02a, 0x029bf792, 0x03816df0, 0x02a0ffaa, 0x00223a69}}, Y: Field{[10]uint32{0x018d1e5a, 0x01a4c91c, 0x00413999, 0x01d746ba, 0x00fe4574, 0x01e6aebf, 0x00ef5e25, 0x018fab71, 0x022dfa2f, 0x003b4e0a}}}, + {X: Field{[10]uint32{0x02dff706, 0x0361d20a, 0x0348c04f, 0x00ef5b25, 0x00b39703, 0x02b5fd86, 0x005663dc, 0x009f1a94, 0x02b4de33, 0x0005a043}}, Y: Field{[10]uint32{0x0260c81b, 0x02f0b3fb, 0x0111901f, 0x01f96a7b, 0x0230693b, 0x00370a6b, 0x019e84c4, 0x01b27485, 0x03d89132, 0x0000d4ba}}}, + {X: Field{[10]uint32{0x014adf7b, 0x00cc0726, 0x01cabe2e, 0x03650fea, 0x0088c861, 0x0223455f, 0x01c65035, 0x01260473, 0x02929506, 0x0035f40e}}, Y: Field{[10]uint32{0x002f9627, 0x00578d8e, 0x003ef2a9, 0x023f66aa, 0x02ef419c, 0x0339e079, 0x023042d5, 0x00b01472, 0x03fe933c, 0x00232082}}}, + {X: Field{[10]uint32{0x01cf11b0, 0x03c994b7, 0x018d91c6, 0x01df9154, 0x03f33aed, 0x0220339e, 0x0225c4ae, 0x02b24093, 0x0104f645, 0x0016cb25}}, Y: Field{[10]uint32{0x01296449, 0x02271d8a, 0x00354fc2, 0x02893abb, 0x03440e1d, 0x023ca901, 0x01681e5e, 0x013cc847, 0x03bcc776, 0x001402cd}}}, + {X: Field{[10]uint32{0x00fbd761, 0x012b7523, 0x01c2d628, 0x0137d5e7, 0x03bab1a6, 0x03567bb0, 0x01826759, 0x022ef05a, 0x02edd2c7, 0x00346389}}, Y: Field{[10]uint32{0x010770c3, 0x031fbd5f, 0x021a44a6, 0x03684e4b, 0x00685915, 0x016eda51, 0x018989aa, 0x00f9e23f, 0x0172037a, 0x00068780}}}, + {X: Field{[10]uint32{0x0258222d, 0x00d338a3, 0x0077224f, 0x02fe1759, 0x02dc9e46, 0x03c94951, 0x0221e88d, 0x011e5632, 0x00169bbc, 0x0017dac5}}, Y: Field{[10]uint32{0x037fd6a6, 0x02ab6bd2, 0x00600e02, 0x02378e0f, 0x033a5791, 0x018f992e, 0x03ca0bf1, 0x00140651, 0x02164d5a, 0x000ea39d}}}, + {X: Field{[10]uint32{0x03762bc7, 0x036f2283, 0x0137339b, 0x00289508, 0x01ec2e05, 0x03fa15a4, 0x00020238, 0x02d159a6, 0x01e8dcc8, 0x0035e989}}, Y: Field{[10]uint32{0x02ea3643, 0x0142d34d, 0x0080620d, 0x029c4000, 0x00208683, 0x03b07f63, 0x017bcbcf, 0x00981eaf, 0x0135a8ce, 0x0023c7e6}}}, + {X: Field{[10]uint32{0x015913f9, 0x03198fa3, 0x027716ba, 0x0325780a, 0x027ffb42, 0x0286cd3a, 0x01c891b3, 0x0293dc57, 0x001972ae, 0x00295a95}}, Y: Field{[10]uint32{0x03c3f994, 0x0266a41a, 0x038971e9, 0x008d9038, 0x0059b440, 0x01fd7451, 0x00f7bbfa, 0x0159c460, 0x03cdad78, 0x0011ecf7}}}, + {X: Field{[10]uint32{0x02ade31e, 0x0045beae, 0x03c3ad93, 0x02ccd86d, 0x0030325d, 0x028c1ad1, 0x031a3cd4, 0x032f44de, 0x01d7e574, 0x0007aee2}}, Y: Field{[10]uint32{0x00da4dc7, 0x01401d4e, 0x03e6cb95, 0x00cd24d5, 0x02ee020c, 0x0108a8d0, 0x003d1185, 0x03212d26, 0x012fbd30, 0x00080e71}}}, + {X: Field{[10]uint32{0x009706fe, 0x024ea22d, 0x030c5ad4, 0x03e8fb93, 0x03e189ef, 0x01e63b09, 0x01cd1a4a, 0x0195d52d, 0x0208931a, 0x002d5ca0}}, Y: Field{[10]uint32{0x03ede9ee, 0x037df442, 0x036c214d, 0x0028c5e0, 0x03358f68, 0x01881e2f, 0x029a6125, 0x034c072c, 0x01e72da3, 0x002ae9e1}}}, + {X: Field{[10]uint32{0x01a775c9, 0x015f2161, 0x00a8aa24, 0x025d1ebf, 0x02f5162a, 0x03ff07bd, 0x02a00dee, 0x01f1dc80, 0x0270d67b, 0x00159985}}, Y: Field{[10]uint32{0x018803f6, 0x01128953, 0x019b2ea0, 0x024ce7c6, 0x014de8a8, 0x015274f0, 0x0055122e, 0x01441c13, 0x00e183bc, 0x002b6bc2}}}, + {X: Field{[10]uint32{0x01f2704d, 0x001a3c37, 0x023e93fd, 0x0346c5c2, 0x01c18521, 0x015cded4, 0x01042433, 0x01ada5dc, 0x02e1ecc8, 0x00062ad5}}, Y: Field{[10]uint32{0x0119e94a, 0x020967a0, 0x039ff46b, 0x01fb387f, 0x03df74f0, 0x032cc158, 0x009572ca, 0x02ea6c83, 0x003f43bf, 0x00331a53}}}, + {X: Field{[10]uint32{0x020ac357, 0x0283c6f3, 0x027c3c1a, 0x0214b83c, 0x036e9451, 0x02fd7d43, 0x035b7540, 0x000d8055, 0x00744827, 0x002f04aa}}, Y: Field{[10]uint32{0x01ada1e9, 0x0005f1bc, 0x036f95de, 0x01598bfc, 0x00abe12d, 0x00812b39, 0x027783c7, 0x01738759, 0x036bac17, 0x00271b39}}}, + {X: Field{[10]uint32{0x01054584, 0x01eb119e, 0x024572c2, 0x0259776f, 0x01756667, 0x014fb29d, 0x01bdd6c3, 0x036835bb, 0x002699b2, 0x00291253}}, Y: Field{[10]uint32{0x0082d621, 0x014e1b54, 0x01d03554, 0x01a4ee2b, 0x02e8f0cf, 0x00756c6e, 0x022a9146, 0x02a79f4f, 0x00d58360, 0x00162601}}}, + {X: Field{[10]uint32{0x023aea6e, 0x012b2733, 0x009c7828, 0x038ba8f7, 0x03f1baf9, 0x000da809, 0x034de77d, 0x0139faf8, 0x02f96d0e, 0x0007fe11}}, Y: Field{[10]uint32{0x013f2e6a, 0x00f84b59, 0x009748d0, 0x03be94b7, 0x0327ba3e, 0x01302da3, 0x035d1a8d, 0x00d580c7, 0x036b9f0e, 0x0022828c}}}, + {X: Field{[10]uint32{0x0110b374, 0x023c7ca5, 0x00099ffa, 0x0090d5d1, 0x026862d7, 0x005cfdc5, 0x00839e04, 0x00f771ca, 0x02ae9157, 0x000cc606}}, Y: Field{[10]uint32{0x01c5223e, 0x039f27ef, 0x01fedad0, 0x01acf86a, 0x01f01ee2, 0x030d3129, 0x01aaa0a4, 0x03393077, 0x029a8cc8, 0x00049484}}}, + {X: Field{[10]uint32{0x00012594, 0x0232795e, 0x02ae5702, 0x001bf931, 0x00644264, 0x01c9d2a5, 0x0249b157, 0x0112bbdd, 0x032dfb0e, 0x0039a1e0}}, Y: Field{[10]uint32{0x0113b7c0, 0x030312a9, 0x030028ca, 0x0263bb2a, 0x03c5de4f, 0x01dffedf, 0x01caec8c, 0x00d2ded9, 0x009706b7, 0x001796ce}}}, + {X: Field{[10]uint32{0x00b37def, 0x031cbce5, 0x02aa5755, 0x01477d31, 0x0000c229, 0x028631db, 0x0174b5e2, 0x01c6b160, 0x02c3ed93, 0x000d52ef}}, Y: Field{[10]uint32{0x0214c29a, 0x02a0ff31, 0x0244b5c2, 0x03beeeae, 0x033c2f4d, 0x01d0078f, 0x0213ac73, 0x0105b6cd, 0x00769283, 0x00103432}}}, + {X: Field{[10]uint32{0x0039a485, 0x01bdc99d, 0x00511ae3, 0x02ffe8bd, 0x02a8bc68, 0x02d7afbc, 0x01e8aa68, 0x02e07cf2, 0x006c5205, 0x003e91ab}}, Y: Field{[10]uint32{0x0367d180, 0x01354b8f, 0x03b35c1b, 0x01e9d97e, 0x010f2565, 0x00fe4461, 0x00de37b1, 0x034aa007, 0x01fab016, 0x000e14fe}}}, + {X: Field{[10]uint32{0x0024328c, 0x01fb50cc, 0x02688562, 0x01de517d, 0x0256a53d, 0x008fee1b, 0x005263c9, 0x017e387a, 0x02b73325, 0x00109be1}}, Y: Field{[10]uint32{0x028c4fdf, 0x03bef353, 0x011486a2, 0x0105abfe, 0x01658c63, 0x01ec8885, 0x013c4c45, 0x0322756c, 0x01685301, 0x0024bb00}}}, + {X: Field{[10]uint32{0x00bc64e3, 0x02db9620, 0x01edeb47, 0x03b2d6b8, 0x017685df, 0x01f5233c, 0x01d3f4d1, 0x00b56f85, 0x009bf9a7, 0x00172347}}, Y: Field{[10]uint32{0x01bda7e5, 0x0343df4a, 0x02dc4e18, 0x014d9074, 0x00b6a26b, 0x0083c37b, 0x038a3c7c, 0x02054198, 0x010e286c, 0x00188155}}}, + {X: Field{[10]uint32{0x0283422f, 0x02f95c39, 0x03c80271, 0x01cfe998, 0x01be6733, 0x01aa72c0, 0x00313562, 0x01407f77, 0x01bc7bf7, 0x000e8087}}, Y: Field{[10]uint32{0x001bfa53, 0x01ec3793, 0x00fff54c, 0x0209217f, 0x02a7a71b, 0x0015924a, 0x00e508ad, 0x037e25e1, 0x00540dda, 0x00192a27}}}, + {X: Field{[10]uint32{0x03ba47bb, 0x012bc9c8, 0x0326fa50, 0x030c8a59, 0x027c0062, 0x007590b6, 0x01d2dd91, 0x027c001d, 0x02491d71, 0x002360aa}}, Y: Field{[10]uint32{0x03e4e77a, 0x01718b14, 0x026991ff, 0x03f51d83, 0x007c2ae8, 0x031b4f14, 0x00ed10d6, 0x01e3da62, 0x03506d14, 0x001b985b}}}, + {X: Field{[10]uint32{0x005e536f, 0x03c2394f, 0x02d76f27, 0x0145b9ea, 0x010bbe54, 0x032b06cf, 0x015d60ef, 0x023869bb, 0x0188fe48, 0x001bfbba}}, Y: Field{[10]uint32{0x0044c502, 0x00a6632c, 0x00eeff48, 0x0184d781, 0x0073dcee, 0x0096da28, 0x026d8484, 0x02ea5ae8, 0x0395839f, 0x00003ba7}}}, + {X: Field{[10]uint32{0x0216fa1b, 0x00f9672b, 0x00e5d2df, 0x002ba257, 0x02306388, 0x005024f1, 0x03cadc73, 0x00355dcb, 0x0179bafd, 0x000d8902}}, Y: Field{[10]uint32{0x004afa48, 0x005f1872, 0x036ca65f, 0x003055e0, 0x03eb2082, 0x01f60cb2, 0x02fe3267, 0x00f6169e, 0x037658ef, 0x00186740}}}, + {X: Field{[10]uint32{0x036a18f4, 0x026128f3, 0x03407009, 0x0132461d, 0x000b7849, 0x01ba05c1, 0x0046fc32, 0x01814f08, 0x00474da5, 0x00130ae2}}, Y: Field{[10]uint32{0x0328142c, 0x007f884e, 0x03398dda, 0x038f432a, 0x03734286, 0x01716a08, 0x00a0b438, 0x035c4587, 0x026917a4, 0x001166a7}}}, + {X: Field{[10]uint32{0x01478ac2, 0x004beeac, 0x005ad84e, 0x0142bdee, 0x00d6e54f, 0x0141130d, 0x034eb5b1, 0x0046ea9f, 0x01fdb332, 0x003e4872}}, Y: Field{[10]uint32{0x02016973, 0x005243eb, 0x014f9317, 0x030d7356, 0x01e31fae, 0x03dfd893, 0x006b16a5, 0x0120f923, 0x01b8c850, 0x000e336a}}}, + {X: Field{[10]uint32{0x0319b257, 0x00b1ac86, 0x038b8ca4, 0x01f7d079, 0x02850ae0, 0x028ff6d3, 0x006c8a7d, 0x035a3e3e, 0x01e66181, 0x00295dda}}, Y: Field{[10]uint32{0x027cfc6c, 0x0276bf14, 0x00eb3882, 0x0260a03e, 0x011dcd66, 0x013542e9, 0x017e00d5, 0x0310afdd, 0x007e644b, 0x00084aa6}}}, + {X: Field{[10]uint32{0x03c11d9f, 0x02a526b1, 0x0063901e, 0x0053fb5d, 0x03375a27, 0x00f26c5a, 0x00c91952, 0x03b2b622, 0x010437ab, 0x002569e0}}, Y: Field{[10]uint32{0x02cfdf78, 0x007b2ca8, 0x0274809e, 0x01da4688, 0x00ec6428, 0x03c46925, 0x02723df1, 0x0015ac90, 0x00aa227b, 0x003ab8c8}}}, + {X: Field{[10]uint32{0x01cfa42a, 0x03503d0a, 0x020e5d10, 0x01761612, 0x009f034a, 0x03a61002, 0x01a9a64c, 0x00f850ab, 0x0034f7ef, 0x001da9f8}}, Y: Field{[10]uint32{0x028effa2, 0x0251a2d9, 0x0240479c, 0x025948a8, 0x009f2e49, 0x02f0bbb7, 0x00ec9319, 0x03acf0a9, 0x00e49633, 0x00266770}}}, + {X: Field{[10]uint32{0x035881d6, 0x023347ba, 0x0247df4e, 0x03357a50, 0x01427010, 0x036df60b, 0x00ddf929, 0x01e01407, 0x03964756, 0x003aea24}}, Y: Field{[10]uint32{0x03bca552, 0x029a6d76, 0x026a50d4, 0x022a3692, 0x02aebe0f, 0x005b3175, 0x037d8be6, 0x014850fc, 0x01f1c088, 0x002e4ab8}}}, + {X: Field{[10]uint32{0x0223704f, 0x03cf875b, 0x028addd3, 0x0225c4f3, 0x01dc0b75, 0x02bb51cd, 0x014f872a, 0x038559ac, 0x00d8059f, 0x00294e92}}, Y: Field{[10]uint32{0x01387fb6, 0x022d454e, 0x02a0d252, 0x00619db3, 0x004f4634, 0x03b9f559, 0x009403f3, 0x028ea0f6, 0x01a07e85, 0x00279ce3}}}, + {X: Field{[10]uint32{0x0307d3bc, 0x013f57a9, 0x00fb595b, 0x03e660a2, 0x03c831cd, 0x001418e9, 0x039b1481, 0x03e28e38, 0x010bdba5, 0x0020c996}}, Y: Field{[10]uint32{0x03768982, 0x01986caf, 0x02b06cb4, 0x013ca5f9, 0x03061b7d, 0x03e904c3, 0x000d62ec, 0x037494b4, 0x0388a2a1, 0x000280b3}}}, + {X: Field{[10]uint32{0x03916030, 0x02b1b7c5, 0x014af7f5, 0x00b02571, 0x03b0c35a, 0x01e9d2cb, 0x01714a21, 0x0042ff8c, 0x0194ba8c, 0x001a9248}}, Y: Field{[10]uint32{0x00c77b87, 0x01b148be, 0x0145db6b, 0x0001bfaf, 0x01c531cd, 0x013f0ca2, 0x02e8b4fb, 0x024dea4b, 0x01658e0c, 0x000f3c2f}}}, + {X: Field{[10]uint32{0x03c52a57, 0x030c1a0c, 0x007474b6, 0x004df8f5, 0x013b34bf, 0x01ae8887, 0x0180c494, 0x01fbb587, 0x01c6ff79, 0x002d2b1c}}, Y: Field{[10]uint32{0x012820f7, 0x000d41b5, 0x03683905, 0x01837e04, 0x0214ae3b, 0x01893835, 0x03d23434, 0x03fbf3bc, 0x02e48fb6, 0x0011ab2c}}}, + {X: Field{[10]uint32{0x0286e0bc, 0x0064c5b0, 0x02f9b49a, 0x024e8707, 0x0113b19b, 0x0155ec84, 0x03f05b4e, 0x00a7845a, 0x011e65bc, 0x0022c45c}}, Y: Field{[10]uint32{0x02af0dde, 0x0241e322, 0x004910aa, 0x03d71c8b, 0x00faa6bc, 0x02d3ab96, 0x02d695e5, 0x00d4e086, 0x00cfcf38, 0x001e7128}}}, + {X: Field{[10]uint32{0x0008e098, 0x013d90d1, 0x0192d897, 0x030db5e8, 0x00727362, 0x0203f789, 0x0203f82e, 0x0095e65d, 0x0276e86b, 0x002e2c02}}, Y: Field{[10]uint32{0x013e56c6, 0x006dbe14, 0x03d0a585, 0x03ede121, 0x029e0b9f, 0x03ab5ecb, 0x006fa1cf, 0x002375f3, 0x03188b01, 0x000176d9}}}, + {X: Field{[10]uint32{0x01d89814, 0x038b4b58, 0x03a52c50, 0x01a41917, 0x02bebe8f, 0x026dc4f1, 0x0027a8f6, 0x02e5a14d, 0x021b0fb6, 0x0022130e}}, Y: Field{[10]uint32{0x03a3749b, 0x01963381, 0x00fbf14d, 0x012f56c6, 0x00ff28aa, 0x03d537b0, 0x003f821d, 0x00bbbcdd, 0x00e5094b, 0x000f6b30}}}, + {X: Field{[10]uint32{0x00637596, 0x0291fe5d, 0x037d8496, 0x006abad8, 0x02c004dd, 0x02fdbed3, 0x004100dc, 0x02fd8ff8, 0x01cf51aa, 0x000f4307}}, Y: Field{[10]uint32{0x025df51c, 0x010c8d82, 0x0305d228, 0x004cf8bb, 0x02883fe0, 0x0267eedd, 0x0242a6f5, 0x038b3418, 0x015bbf5d, 0x0015dbaf}}}, + {X: Field{[10]uint32{0x02bca8c7, 0x020478b6, 0x028fa13f, 0x02d8f54c, 0x031ae972, 0x009deddf, 0x0057f79a, 0x026b7097, 0x01af6153, 0x0015acfb}}, Y: Field{[10]uint32{0x012e98eb, 0x02b19b4b, 0x01347dbd, 0x02ade6cf, 0x0096bdfb, 0x0376a574, 0x02b3d2b5, 0x021809c6, 0x0100a2b2, 0x00100e0e}}}, + {X: Field{[10]uint32{0x03cfd3e2, 0x02417eca, 0x01457a74, 0x0360c67e, 0x025fbb11, 0x0115217f, 0x00eacfa8, 0x01327d0d, 0x01bf50f3, 0x00109b8a}}, Y: Field{[10]uint32{0x03cb117a, 0x004c660c, 0x017a35d6, 0x02237c7d, 0x00eeb60b, 0x00ee77d0, 0x0110cd5c, 0x01031883, 0x02e8eeff, 0x003ab11f}}}, + {X: Field{[10]uint32{0x02929308, 0x014329d8, 0x03ea67ed, 0x03ed6ff0, 0x03cf0a91, 0x00bb6b71, 0x01419baa, 0x0135fb1b, 0x03c9f4e2, 0x002555cd}}, Y: Field{[10]uint32{0x001675dd, 0x02b3bb52, 0x0260867b, 0x02d6ee0b, 0x01b69831, 0x0166fd91, 0x02783143, 0x024100be, 0x009d18fd, 0x0025eeee}}}, + {X: Field{[10]uint32{0x00b3e514, 0x021405fa, 0x004a1cbb, 0x02820e9e, 0x00704e74, 0x035f9eb4, 0x03ae639f, 0x009e83cb, 0x0013d464, 0x00175caa}}, Y: Field{[10]uint32{0x00876c2f, 0x00584f2e, 0x005ac9bc, 0x00dbd471, 0x022e8c26, 0x0267ae56, 0x01d6839a, 0x03187956, 0x010e851f, 0x00324bd0}}}, + {X: Field{[10]uint32{0x0369b6ef, 0x0146edf9, 0x02406225, 0x02701e14, 0x02dda784, 0x01c12570, 0x00876d91, 0x02224188, 0x0359e9bc, 0x0031f6a4}}, Y: Field{[10]uint32{0x01c10653, 0x02530fc1, 0x001c6d37, 0x031720bc, 0x01cb41f6, 0x012831f6, 0x01907872, 0x02340257, 0x01687150, 0x000489e0}}}, + {X: Field{[10]uint32{0x029ac683, 0x024193d5, 0x01ace972, 0x035ff86b, 0x02d92697, 0x0082b945, 0x03ee080f, 0x03c3f70b, 0x0226da7a, 0x0019c202}}, Y: Field{[10]uint32{0x0316d94d, 0x008b3f08, 0x03714aa5, 0x0339e7dd, 0x008e08c5, 0x01443ab0, 0x0144107e, 0x01c22cc2, 0x03acfbba, 0x002b6681}}}, + {X: Field{[10]uint32{0x03fc0dbf, 0x00015c16, 0x01a4163a, 0x00117055, 0x023947f4, 0x00b8ebeb, 0x0078ddc8, 0x00a3ddbe, 0x0239d614, 0x00084356}}, Y: Field{[10]uint32{0x028c511c, 0x02c600cb, 0x017ac96e, 0x01324fa6, 0x002efa80, 0x01ea464f, 0x014cc296, 0x00a70bb4, 0x03e6b0a6, 0x00185fbf}}}, + {X: Field{[10]uint32{0x0334ed98, 0x00874138, 0x015fc590, 0x0071bfd9, 0x039b8e46, 0x01e0df44, 0x03242a93, 0x0046e714, 0x0231ca15, 0x001742e4}}, Y: Field{[10]uint32{0x03e924ae, 0x00e99baf, 0x01986bd1, 0x0387dbe3, 0x011a2f58, 0x0279f5b3, 0x03ae1b4a, 0x013b69c4, 0x0121f479, 0x003201c0}}}, + {X: Field{[10]uint32{0x02907392, 0x01e299f8, 0x00ab63ce, 0x00abf344, 0x019013fe, 0x0131c65d, 0x00c8bd54, 0x004587b4, 0x002c4210, 0x001a1eee}}, Y: Field{[10]uint32{0x000d9eeb, 0x017a5984, 0x03e356a2, 0x020440e5, 0x03fafc8e, 0x022c8273, 0x03c721cf, 0x028e9be7, 0x0187758a, 0x003abd8f}}}, + {X: Field{[10]uint32{0x025f5d33, 0x01a9b473, 0x00da40e6, 0x0347d2f3, 0x03c63527, 0x03cb0ffc, 0x02a3931f, 0x023da068, 0x0157b804, 0x00146910}}, Y: Field{[10]uint32{0x0047dd31, 0x009ffa7a, 0x02a1ec51, 0x019cb6e5, 0x001a0c56, 0x00298e24, 0x03dc8f42, 0x00a50053, 0x0116519c, 0x001bff23}}}, + {X: Field{[10]uint32{0x01e86775, 0x01c2f2e3, 0x004f989f, 0x02c8af5f, 0x000a5dd7, 0x01e30eff, 0x024786a4, 0x00568d58, 0x017256f5, 0x002ca189}}, Y: Field{[10]uint32{0x0264f3a3, 0x0364cb51, 0x03692abc, 0x037917c5, 0x02f53b64, 0x024a4bfe, 0x0267e5b2, 0x014e5ade, 0x02a80a5a, 0x0008aba5}}}, + {X: Field{[10]uint32{0x0035bc30, 0x01f1ff82, 0x02e584bb, 0x02f3ee4a, 0x036ee129, 0x028e5884, 0x03d89a5c, 0x01e32bba, 0x021e2010, 0x003ddadc}}, Y: Field{[10]uint32{0x02c0d561, 0x00bd28f9, 0x024b7a06, 0x00e07a5a, 0x03223a0a, 0x0186ebff, 0x02b3d171, 0x026100f5, 0x02b10841, 0x0016671a}}}, + {X: Field{[10]uint32{0x00178e9c, 0x001f0d31, 0x01b9793b, 0x022cdb7b, 0x01d9a3b8, 0x03da5a44, 0x02f20b7f, 0x03b81ba0, 0x028763ad, 0x0004bc92}}, Y: Field{[10]uint32{0x0055b7f1, 0x01e35638, 0x021b7351, 0x037c230b, 0x02b2427f, 0x00a09efb, 0x025d939c, 0x007edec9, 0x039f96f0, 0x00167f5e}}}, + {X: Field{[10]uint32{0x0122260a, 0x008878c6, 0x010cefa0, 0x0117123e, 0x00bcfaf1, 0x01609033, 0x0082d477, 0x01aef8a8, 0x0290de6c, 0x002786e2}}, Y: Field{[10]uint32{0x03390f9f, 0x02966042, 0x000a66cd, 0x001ba923, 0x008a71eb, 0x0025f401, 0x02a54f42, 0x036781f0, 0x02a5b54b, 0x003e97a1}}}, + {X: Field{[10]uint32{0x03baae9c, 0x00240c4b, 0x020a38c1, 0x03e1b134, 0x01ed4117, 0x00a38c7c, 0x01b6a66e, 0x00fadec0, 0x010320b7, 0x0018fc16}}, Y: Field{[10]uint32{0x0101d8eb, 0x02fa2c65, 0x019c501a, 0x032aebd7, 0x0340bd68, 0x0098e1df, 0x0288967a, 0x0207f81b, 0x01d2d34a, 0x00092e32}}}, + {X: Field{[10]uint32{0x03905999, 0x0264ad18, 0x003a8e27, 0x01ba671d, 0x01e5c89b, 0x0367ca15, 0x03569a4a, 0x00a8f687, 0x0009f540, 0x00111f1d}}, Y: Field{[10]uint32{0x0149e154, 0x0240dc2b, 0x0328db77, 0x01ce2e4f, 0x00716baa, 0x03805b02, 0x0337723b, 0x01e8251e, 0x019ab34a, 0x003513a3}}}, + {X: Field{[10]uint32{0x00793254, 0x03c437fe, 0x006df1bb, 0x03d28fe6, 0x0025eed4, 0x003c65f9, 0x037db0c2, 0x0102bead, 0x006a4c53, 0x001d2910}}, Y: Field{[10]uint32{0x03742023, 0x0261fad9, 0x0246dfc7, 0x02f014aa, 0x02dc4c07, 0x00711ac5, 0x0136907d, 0x029c4a33, 0x038a0a4b, 0x00058b59}}}, + {X: Field{[10]uint32{0x03047c07, 0x00c91ba3, 0x005ff3a2, 0x01d814e9, 0x022bf5e0, 0x010731ed, 0x00e63cc8, 0x0098deac, 0x01713187, 0x003dc0d4}}, Y: Field{[10]uint32{0x021097ef, 0x03ba7076, 0x00936cca, 0x032599c6, 0x02b3c7ee, 0x025cad67, 0x01762a95, 0x001e15c8, 0x03914f47, 0x003212c0}}}, + {X: Field{[10]uint32{0x02eaae11, 0x0267dbdc, 0x024f6ac9, 0x01a37285, 0x022194d1, 0x02c29054, 0x013bd706, 0x00d604b1, 0x007b57b2, 0x003b13f8}}, Y: Field{[10]uint32{0x02fff789, 0x00a3d728, 0x004d7b55, 0x01e6f74c, 0x01b2f9df, 0x026dd814, 0x02b1dc4e, 0x02ca7fb0, 0x029145de, 0x002bd254}}}, + {X: Field{[10]uint32{0x01d2ac9d, 0x02ead2b3, 0x0238878d, 0x011c47cd, 0x00c65520, 0x005a3435, 0x00b274ee, 0x005d3de8, 0x01e8fa96, 0x0005c55b}}, Y: Field{[10]uint32{0x0061ac3d, 0x01a00fc5, 0x00ca6abb, 0x0211e78a, 0x03c2de9f, 0x037b2e23, 0x00e37ed6, 0x01183261, 0x02c436c1, 0x0000ab8f}}}, + {X: Field{[10]uint32{0x021b2ede, 0x032990e6, 0x02a6aabf, 0x00302541, 0x01549cb9, 0x00374c33, 0x029be560, 0x011feb3e, 0x022b9c5a, 0x003906d1}}, Y: Field{[10]uint32{0x017507f4, 0x002fc440, 0x01311d38, 0x01308885, 0x03e1b360, 0x0231a563, 0x00fb3533, 0x02982b1a, 0x02b208bd, 0x000423f8}}}, + {X: Field{[10]uint32{0x0344aa38, 0x01bd0ddd, 0x015ad38a, 0x01e314ee, 0x03f357ea, 0x006a00e3, 0x00800515, 0x01e20f5e, 0x015920a6, 0x002e9b00}}, Y: Field{[10]uint32{0x02002cf3, 0x026d6e45, 0x03680457, 0x006d9a1b, 0x00cda144, 0x003a39c4, 0x0366aa5c, 0x02dd1a0c, 0x00e7deb6, 0x00369270}}}, + {X: Field{[10]uint32{0x00cbf1ae, 0x020d5a3e, 0x0329cee2, 0x014e1255, 0x037e8a95, 0x01f94998, 0x0102ab7f, 0x012dae1c, 0x006e883a, 0x0009bc06}}, Y: Field{[10]uint32{0x03d5f47a, 0x009176d2, 0x002d398b, 0x008c1d5c, 0x00aad788, 0x02568628, 0x01519809, 0x025f2b33, 0x01e4bb21, 0x0003bbe3}}}, + {X: Field{[10]uint32{0x000c9d22, 0x0007296d, 0x03cddc45, 0x038f6998, 0x03e00874, 0x00050398, 0x01b5588c, 0x033af0d4, 0x03de80c0, 0x000042e4}}, Y: Field{[10]uint32{0x00903258, 0x016d3407, 0x002842d0, 0x03c850d6, 0x001dfef7, 0x03b1257b, 0x0186b027, 0x03cdaf9e, 0x01ddf79a, 0x003b4c62}}}, + {X: Field{[10]uint32{0x03769dde, 0x0268f9dd, 0x002558bc, 0x0101db25, 0x017a1595, 0x03d6a315, 0x03b32da8, 0x020b0725, 0x0274337a, 0x0039e7b0}}, Y: Field{[10]uint32{0x028a06f6, 0x0145d898, 0x0102c3b6, 0x03660f5d, 0x02e527da, 0x02223cfb, 0x024c175d, 0x03f38d52, 0x039f22da, 0x0027c8c1}}}, + {X: Field{[10]uint32{0x03c101e1, 0x034c685b, 0x01b0c1b7, 0x038e4810, 0x002be265, 0x023832a9, 0x039915e0, 0x02b4ff22, 0x017544f0, 0x0003f680}}, Y: Field{[10]uint32{0x018902e7, 0x00bd7061, 0x0030d0db, 0x01dae128, 0x03e4d49a, 0x029415cc, 0x03e42981, 0x0271baf1, 0x022785d5, 0x001093a6}}}, + {X: Field{[10]uint32{0x0099c6bd, 0x033c46e8, 0x01b31577, 0x028f2f3f, 0x008327d8, 0x022f20c3, 0x03147258, 0x0337f940, 0x01cb5380, 0x001a07c0}}, Y: Field{[10]uint32{0x039002bc, 0x0252463c, 0x018cd007, 0x02b63836, 0x0359c02f, 0x03f279d5, 0x006cef06, 0x02c17e70, 0x0117cdc3, 0x002fe748}}}, + {X: Field{[10]uint32{0x03d12f64, 0x00825736, 0x039611de, 0x0236e7bf, 0x03d6fe9f, 0x02b28942, 0x0251f4d9, 0x00b30b74, 0x026b2a2d, 0x001c3096}}, Y: Field{[10]uint32{0x02966126, 0x02669346, 0x021f46b2, 0x00136647, 0x03134dae, 0x024fa96d, 0x03f4dc47, 0x02cb3f34, 0x0368a386, 0x00327bab}}}, + {X: Field{[10]uint32{0x03ccbb9d, 0x00486e27, 0x0330403b, 0x02143fa2, 0x023b466e, 0x03d02199, 0x03d5ea45, 0x010b53fb, 0x012c404b, 0x0011937b}}, Y: Field{[10]uint32{0x005d910b, 0x009c4884, 0x01260796, 0x01ef9069, 0x03610bb4, 0x0295a0d9, 0x02d2d3e0, 0x03d84c8e, 0x01046ad3, 0x002b044e}}}, + {X: Field{[10]uint32{0x03a103db, 0x00bc4d04, 0x023f02ad, 0x02406d73, 0x01b7ff89, 0x023177f0, 0x0055109a, 0x02466175, 0x037248e7, 0x00028cb7}}, Y: Field{[10]uint32{0x03160e72, 0x0084d292, 0x02173821, 0x034cf997, 0x00cf9ad8, 0x01d8a5b2, 0x02a2d1d8, 0x0241ae6b, 0x00fb9d60, 0x001b6d2d}}}, + {X: Field{[10]uint32{0x0165179a, 0x0254c540, 0x03fe9a76, 0x0370a971, 0x023ccb74, 0x013b13fa, 0x00297746, 0x034e725c, 0x029e7ee5, 0x003f9273}}, Y: Field{[10]uint32{0x03e7dc8c, 0x023c3e8f, 0x026e63f5, 0x020ad310, 0x0390bfc5, 0x018555c8, 0x03b98662, 0x01773bbb, 0x013a3592, 0x00194fd5}}}, + {X: Field{[10]uint32{0x0354ad14, 0x01cc5b8c, 0x01a878aa, 0x0028ab75, 0x01ec0f1a, 0x0049ac43, 0x0224750c, 0x029f0936, 0x0255c895, 0x0021a2cb}}, Y: Field{[10]uint32{0x02c299ef, 0x0187c91e, 0x00324efb, 0x02080201, 0x00776bca, 0x0298a46f, 0x03035941, 0x0067f5c7, 0x0074cdea, 0x00178a22}}}, + {X: Field{[10]uint32{0x00098461, 0x03422d63, 0x011aec63, 0x01fbf4cb, 0x03d267ff, 0x003f121a, 0x013f1c08, 0x00d31a2b, 0x00da90ae, 0x003f81e4}}, Y: Field{[10]uint32{0x00f7177e, 0x00efabdb, 0x03ef416f, 0x036d5a02, 0x02cdbfcc, 0x008b184c, 0x01a02444, 0x02ca0d1c, 0x0393de35, 0x002b4cc4}}}, + {X: Field{[10]uint32{0x03e9a9d9, 0x03609e5b, 0x039557f6, 0x03d59a0d, 0x0242a23b, 0x019f7fbe, 0x016b1961, 0x020373fc, 0x028d0f4f, 0x003f9ff2}}, Y: Field{[10]uint32{0x00d4eb3b, 0x023c72f6, 0x01b1e71c, 0x02738605, 0x02ccc572, 0x02051dab, 0x000cb3d6, 0x03a49776, 0x018a0d7e, 0x002ef137}}}, + {X: Field{[10]uint32{0x0034cfc2, 0x00da1625, 0x03fd23aa, 0x0263a7c0, 0x02ae7975, 0x00473d30, 0x011b11b5, 0x03882fad, 0x0270aa4c, 0x00288db0}}, Y: Field{[10]uint32{0x0088f29b, 0x00e8c7c8, 0x01f4c486, 0x0103eeda, 0x028bc370, 0x00230842, 0x00c3ade6, 0x02f7ad07, 0x01c575a7, 0x00164d66}}}, + {X: Field{[10]uint32{0x02519248, 0x0151bf1d, 0x03644565, 0x03ab6787, 0x02800472, 0x00e0d938, 0x028a3485, 0x0309fcfa, 0x00a56bb8, 0x00035a81}}, Y: Field{[10]uint32{0x0142deb9, 0x01c1a6ad, 0x00e079b7, 0x019889ba, 0x03dbf6e4, 0x015d8490, 0x03099aba, 0x01d8a48a, 0x030d50b9, 0x0012e551}}}, + {X: Field{[10]uint32{0x00a30e7f, 0x000baa7e, 0x02ebd74e, 0x00a0c986, 0x00677732, 0x035c0689, 0x0276f974, 0x00117f86, 0x0377d64a, 0x00342734}}, Y: Field{[10]uint32{0x0188ffea, 0x02a49359, 0x02e57b90, 0x03abb81a, 0x0141a342, 0x032be203, 0x02ed2d01, 0x000acf5d, 0x02b902b7, 0x0027c250}}}, + {X: Field{[10]uint32{0x01d98b8b, 0x0343a979, 0x03440b2e, 0x02fffc29, 0x01b9a469, 0x0071f8ff, 0x02e52456, 0x006a75b0, 0x032c16d0, 0x00340c31}}, Y: Field{[10]uint32{0x031f2c8e, 0x02c3c454, 0x006f473d, 0x019f2850, 0x03fddeee, 0x02baa10e, 0x02b60ffe, 0x03e60405, 0x0308dba4, 0x00031ac4}}}, + {X: Field{[10]uint32{0x0345a691, 0x031aec78, 0x03ba1100, 0x03dd5c1a, 0x0157d0c6, 0x002ce695, 0x01980ab8, 0x0129f510, 0x02c6d2c0, 0x0015b115}}, Y: Field{[10]uint32{0x02084819, 0x00d39909, 0x03189fae, 0x00968184, 0x02825ce5, 0x01d4f0ac, 0x0310ffc2, 0x01743e3b, 0x00dc2c73, 0x00316cbc}}}, + {X: Field{[10]uint32{0x008400c9, 0x0146eb0c, 0x0037d75e, 0x03178396, 0x0129d911, 0x0353f779, 0x01d1b98d, 0x0347d0a3, 0x01f3b505, 0x002ab56b}}, Y: Field{[10]uint32{0x0377acc6, 0x02ae1f89, 0x036e46af, 0x03c877d2, 0x00f55569, 0x01e431a3, 0x03aa411b, 0x02530448, 0x03674f79, 0x003a52b7}}}, + {X: Field{[10]uint32{0x026a0ef0, 0x0219e8d7, 0x0034e6b1, 0x030c67b4, 0x02ca1d43, 0x0062d32c, 0x006b089f, 0x02e3dd22, 0x00b4dd76, 0x002b2336}}, Y: Field{[10]uint32{0x037ba96d, 0x02753dc4, 0x001f3c75, 0x02d26f32, 0x02ffb71d, 0x032b73f1, 0x013f8271, 0x02ac55d0, 0x0094f9da, 0x001c75c2}}}, + {X: Field{[10]uint32{0x0047ca1d, 0x0314d5f7, 0x0394841d, 0x0143d085, 0x0093eb41, 0x01665ad1, 0x01d7a4d0, 0x03e91502, 0x006df110, 0x000e5900}}, Y: Field{[10]uint32{0x03ad7cdb, 0x0291b7c0, 0x017d6395, 0x01d0daff, 0x01c2f244, 0x00fc15f9, 0x022a2bd2, 0x0364ebe4, 0x006d21db, 0x00392847}}}, + {X: Field{[10]uint32{0x03ca56ec, 0x0387efde, 0x01d551a0, 0x03e3ed0f, 0x03723a1f, 0x02fe442d, 0x02a37b19, 0x004aedd3, 0x039227a3, 0x000af842}}, Y: Field{[10]uint32{0x02df59ab, 0x014bb731, 0x000b4590, 0x03a3076f, 0x03755b2d, 0x00a42c92, 0x03ecca94, 0x037034a4, 0x02fbc886, 0x00066aa2}}}, + {X: Field{[10]uint32{0x01ad6ae5, 0x018c96ad, 0x01342a4c, 0x005c70e3, 0x03ccc1e4, 0x03ff22ea, 0x0219a34d, 0x03d46874, 0x01562bd7, 0x000de705}}, Y: Field{[10]uint32{0x03185907, 0x00feb10b, 0x0348db98, 0x00d1fc81, 0x01e7bc67, 0x0036554d, 0x01ce2231, 0x0077d59b, 0x028fa637, 0x0011e87c}}}, + {X: Field{[10]uint32{0x03ce9809, 0x033dea07, 0x014f9914, 0x02426277, 0x0130a362, 0x01e0443a, 0x03584a7d, 0x011674ab, 0x01c2e675, 0x00090153}}, Y: Field{[10]uint32{0x017ae592, 0x016128b9, 0x02a7612b, 0x02069bc0, 0x013553dc, 0x008345a9, 0x00e06d48, 0x03429c71, 0x021d3e05, 0x00195cab}}}, + {X: Field{[10]uint32{0x002420a4, 0x02d323a8, 0x0298fa3b, 0x0322e140, 0x02913199, 0x00408ecc, 0x03cd8790, 0x02a5e6ad, 0x02a6f46c, 0x002604b9}}, Y: Field{[10]uint32{0x00f937f0, 0x004ae722, 0x0315152a, 0x00ed595d, 0x033afd96, 0x021be4dd, 0x03baf369, 0x0364cc06, 0x02eddfec, 0x0011a3db}}}, + {X: Field{[10]uint32{0x0313c700, 0x000e969f, 0x03c6b962, 0x03ee5720, 0x029f6c14, 0x00b2778a, 0x00c928d6, 0x02392b61, 0x02446a34, 0x00118161}}, Y: Field{[10]uint32{0x022d57ab, 0x00079dd8, 0x021ad904, 0x004415ec, 0x034c873f, 0x02c62103, 0x0359c203, 0x01c07f99, 0x02e3ca3d, 0x00277157}}}, + {X: Field{[10]uint32{0x00be006a, 0x002541ef, 0x003228e9, 0x03298e6b, 0x021cb877, 0x012bb43e, 0x00d862fe, 0x0017ca91, 0x03972d5b, 0x002a36eb}}, Y: Field{[10]uint32{0x036fa4bc, 0x0312a5c5, 0x0190251a, 0x00a6e0f2, 0x03253e67, 0x0050742f, 0x018d38c6, 0x024df13e, 0x0003f082, 0x000f6d53}}}, + {X: Field{[10]uint32{0x011149fe, 0x01e0024e, 0x01128741, 0x0064899c, 0x02008b30, 0x013e611a, 0x0324bcd4, 0x004ca44c, 0x01f4f4d9, 0x0026e2ce}}, Y: Field{[10]uint32{0x0052c1d3, 0x025aa647, 0x030976b3, 0x01fcb82a, 0x034e4cae, 0x002c346c, 0x03fc6939, 0x00b96a23, 0x03721c45, 0x00124293}}}, + {X: Field{[10]uint32{0x014615eb, 0x00d62b4c, 0x0059773e, 0x00909e99, 0x017406ce, 0x039407e0, 0x02404ea9, 0x011b6c65, 0x01d5a7ef, 0x000cd1a0}}, Y: Field{[10]uint32{0x03ad6c0d, 0x01951094, 0x02b6d6c1, 0x0304dff9, 0x02e328fd, 0x0081a778, 0x004775a5, 0x0335aa7c, 0x003a1d80, 0x000ac8d8}}}, + {X: Field{[10]uint32{0x01c32529, 0x00fc380a, 0x02a88202, 0x01cadeba, 0x02bd5f83, 0x02933390, 0x00639b40, 0x01baf4a5, 0x0310c63c, 0x003fae38}}, Y: Field{[10]uint32{0x0343b213, 0x02fe1b76, 0x02617fbc, 0x018ef7df, 0x0068a45c, 0x019a0898, 0x017934b8, 0x035e02a9, 0x02ad6a0c, 0x0032db90}}}, + {X: Field{[10]uint32{0x0305cb67, 0x003cb121, 0x013b3fcf, 0x02d8acf6, 0x01a8ca5c, 0x02e44295, 0x01232523, 0x013a4b72, 0x03c2c733, 0x003d285e}}, Y: Field{[10]uint32{0x026e9dfe, 0x011c6c36, 0x02304bb0, 0x038f573e, 0x02e7f4a9, 0x03d14982, 0x03d55a32, 0x011ca52c, 0x039501b2, 0x00204add}}}, + {X: Field{[10]uint32{0x00cf181b, 0x011e6e93, 0x0324c7e0, 0x0257c208, 0x02c330a9, 0x03f2abd3, 0x016d596b, 0x010d2552, 0x007b8551, 0x0023b0ab}}, Y: Field{[10]uint32{0x01250130, 0x03aeea4d, 0x00258ce4, 0x025c9ec7, 0x0070e927, 0x0173c2f1, 0x00b3bcf0, 0x03498def, 0x00b67811, 0x003a8562}}}, + {X: Field{[10]uint32{0x00d4f19a, 0x010f1b01, 0x04001534, 0x02ddf68e, 0x03e4aa9e, 0x039231bd, 0x01c4b6d9, 0x0336f032, 0x021bd9ae, 0x002c79b5}}, Y: Field{[10]uint32{0x028cbf4a, 0x03e62bec, 0x031a35ae, 0x02e83b32, 0x011bc20a, 0x0235bcce, 0x01fdb344, 0x0325da2c, 0x0355b2e2, 0x0010ebde}}}, + {X: Field{[10]uint32{0x0313b2be, 0x03c8124b, 0x022e4b69, 0x018c0b53, 0x031a9519, 0x036cd50c, 0x004a3974, 0x011f70e4, 0x02e8210d, 0x001360f4}}, Y: Field{[10]uint32{0x0137a6b3, 0x015cbd8f, 0x000367c8, 0x02b25500, 0x017a0e3b, 0x039610ae, 0x005f1d88, 0x03f25ef9, 0x00833874, 0x001fb65b}}}, + {X: Field{[10]uint32{0x03b20b84, 0x02dba3ca, 0x01c36b9e, 0x03bac2ca, 0x0325f5c5, 0x01549fd9, 0x035d5143, 0x03f0875b, 0x012efd51, 0x0005123a}}, Y: Field{[10]uint32{0x02e344ad, 0x02efae65, 0x03f4cea8, 0x0298e790, 0x0013336a, 0x021a25cf, 0x011c9a22, 0x020f94be, 0x038fc8be, 0x0009228c}}}, + {X: Field{[10]uint32{0x024e4ead, 0x01c24f24, 0x03e63dcf, 0x02c09617, 0x0239d928, 0x03828863, 0x01cc7d44, 0x0142b0b3, 0x03d69c22, 0x00388ec0}}, Y: Field{[10]uint32{0x01b9aea9, 0x03ee2b9c, 0x024542ef, 0x02e84f7b, 0x0380b91c, 0x02b6c135, 0x017ef44f, 0x012df066, 0x03d04a8a, 0x00231a71}}}, + {X: Field{[10]uint32{0x02b5d7cb, 0x01c8ad0c, 0x02f94e5a, 0x0093699a, 0x00786632, 0x02baff2e, 0x02a929b9, 0x00ff9a51, 0x035e21fb, 0x00133478}}, Y: Field{[10]uint32{0x0167e3bc, 0x012ac1dc, 0x02984cba, 0x035dcc32, 0x03eca892, 0x00a5e185, 0x02887803, 0x016c42e9, 0x02dc5e86, 0x001ac444}}}, + {X: Field{[10]uint32{0x020db647, 0x03ec8102, 0x01bf5f2e, 0x02c363c7, 0x00bf25c6, 0x0165bb38, 0x00b92123, 0x02dec09f, 0x02f8092c, 0x003cf3ae}}, Y: Field{[10]uint32{0x0168d8e0, 0x0160af2a, 0x02ab7e12, 0x01cbbef6, 0x02cf3c71, 0x02ee974f, 0x0123b887, 0x03004e46, 0x01eb8418, 0x00298577}}}, + {X: Field{[10]uint32{0x01655e7d, 0x02168b1b, 0x01736a3a, 0x0379ec75, 0x02dfe341, 0x00c605c1, 0x0337c813, 0x03e235a0, 0x0128500b, 0x0012e2b3}}, Y: Field{[10]uint32{0x01219bb8, 0x0325b83f, 0x018ac624, 0x021e113c, 0x027b7c5d, 0x014bcec1, 0x016f76e0, 0x0159d613, 0x03c3825a, 0x002fa4f5}}}, + {X: Field{[10]uint32{0x00eb9fe1, 0x01c6541f, 0x03c53d47, 0x020616ba, 0x003e567d, 0x0331a37a, 0x03d2de62, 0x0002218f, 0x0081d04e, 0x002371eb}}, Y: Field{[10]uint32{0x01fa9198, 0x02e53104, 0x000e8214, 0x0224bb84, 0x031eb14c, 0x0097200f, 0x03a7755e, 0x0064c711, 0x024abe7b, 0x0018b52d}}}, + {X: Field{[10]uint32{0x01b89a23, 0x01394c30, 0x02033710, 0x015e400f, 0x01a817c2, 0x03d3cb06, 0x002bbbed, 0x03523425, 0x003f3078, 0x002a98cd}}, Y: Field{[10]uint32{0x02a7b524, 0x0256399b, 0x009bbfe7, 0x01b4338e, 0x0013befc, 0x037a51d6, 0x0020f4d9, 0x01cc3da7, 0x003423a6, 0x0009dfbe}}}, + {X: Field{[10]uint32{0x01121d30, 0x0135e841, 0x034955d0, 0x0186f085, 0x02dadeba, 0x028df7ce, 0x01096c01, 0x0079023a, 0x00619f30, 0x000df794}}, Y: Field{[10]uint32{0x0138898a, 0x00cbef39, 0x00c31f57, 0x01c35b6d, 0x00e3f6aa, 0x0001565f, 0x0136516c, 0x002e59a8, 0x009c33e4, 0x0001f9c1}}}, + {X: Field{[10]uint32{0x01eb83b4, 0x03cb0311, 0x0045e011, 0x0208be45, 0x003ebc66, 0x00d1d207, 0x028cd44f, 0x01673a8f, 0x0355506d, 0x001b4633}}, Y: Field{[10]uint32{0x00a30cdb, 0x03cabdee, 0x03854c8f, 0x029f3a01, 0x00220f7b, 0x03536e28, 0x039818e5, 0x01cfd1fe, 0x01c1ca8b, 0x003a4c3a}}}, + {X: Field{[10]uint32{0x02caa7d3, 0x025ece45, 0x01c0a5b7, 0x03f7ac74, 0x00f70243, 0x00054b27, 0x00203c49, 0x036b1775, 0x02606de7, 0x001df615}}, Y: Field{[10]uint32{0x019c659c, 0x01f6123d, 0x0122e8c3, 0x03b3e481, 0x031a2722, 0x02cf038e, 0x01b0fc94, 0x03554327, 0x03e39b37, 0x000fd5f3}}}, + {X: Field{[10]uint32{0x0381bf16, 0x0398d77c, 0x01229670, 0x002f5a76, 0x00ea5645, 0x03e753ee, 0x01dc8b56, 0x016ec715, 0x01a6c44b, 0x00170b9a}}, Y: Field{[10]uint32{0x01a3588d, 0x03c0499d, 0x03049f1a, 0x03c930d2, 0x009ec21a, 0x03f42d1b, 0x0021a8c2, 0x032a6e8a, 0x009d0a69, 0x003c2081}}}, + {X: Field{[10]uint32{0x01a393ee, 0x0339002d, 0x02af1918, 0x023626ca, 0x02aaacb9, 0x00afac1a, 0x01944ed9, 0x02496c94, 0x01f5066d, 0x000ca700}}, Y: Field{[10]uint32{0x02a57abf, 0x02bfb7fe, 0x032a9c3c, 0x0114f531, 0x02e21c2c, 0x0292494b, 0x0150c80a, 0x003ffdab, 0x0038427a, 0x001f8a6c}}}, + {X: Field{[10]uint32{0x029525da, 0x02d26f58, 0x0099df62, 0x03f21519, 0x02b670f4, 0x01c75ec3, 0x02bb4017, 0x037e90df, 0x031f18b2, 0x00130b98}}, Y: Field{[10]uint32{0x029a6f9c, 0x022728ff, 0x013701f7, 0x00b68fe1, 0x00050c6c, 0x02df0813, 0x01314326, 0x00fe9d30, 0x03fb8742, 0x0022a57a}}}, + {X: Field{[10]uint32{0x03d03fdc, 0x03efc6d8, 0x03fd9392, 0x0393184c, 0x01d3808c, 0x0384295d, 0x037cf02c, 0x0111971f, 0x03930d25, 0x003f8486}}, Y: Field{[10]uint32{0x009e0ba6, 0x0032f3a9, 0x036352a8, 0x022bcd82, 0x030e5943, 0x0110e83f, 0x03b997f9, 0x010c4653, 0x03077bda, 0x000cc4a6}}}, + {X: Field{[10]uint32{0x03784c23, 0x00ab984b, 0x0316da53, 0x03510600, 0x032cf8c5, 0x0079d2e2, 0x0220521f, 0x03cfddd3, 0x027b1cdb, 0x000c8eb0}}, Y: Field{[10]uint32{0x03c3dc18, 0x025acb4f, 0x01197bb2, 0x005bcf4c, 0x01c8489e, 0x00d2ea69, 0x00b15fe8, 0x012b1622, 0x0108f6a6, 0x00084558}}}, + {X: Field{[10]uint32{0x03afd533, 0x006a3481, 0x00d3741b, 0x0287964d, 0x01eeccbc, 0x03830840, 0x01f0ed5c, 0x02c780e9, 0x0362fdfc, 0x000451e3}}, Y: Field{[10]uint32{0x005f9153, 0x025a667b, 0x0366c70d, 0x02c82614, 0x02aba8d0, 0x0344549e, 0x00cdb176, 0x03b32191, 0x02732fd3, 0x002a7de5}}}, + {X: Field{[10]uint32{0x00b9d078, 0x010fbf08, 0x016e5e73, 0x02d5d9e2, 0x02bc8d82, 0x03b569a9, 0x008acf3a, 0x0306b7ae, 0x01b6c9d3, 0x0027c242}}, Y: Field{[10]uint32{0x007db181, 0x03ce1139, 0x017a33b0, 0x035ee669, 0x0061a579, 0x023d948d, 0x0263e30b, 0x01759371, 0x00a6c5c9, 0x00294587}}}, + {X: Field{[10]uint32{0x024a6b9f, 0x0255f4e9, 0x01711c55, 0x02c6d4bc, 0x032807ac, 0x006be02e, 0x01d8cd1a, 0x02b508a6, 0x007532a9, 0x0012582a}}, Y: Field{[10]uint32{0x02976625, 0x02e42d37, 0x03dd8cd6, 0x000bbbdd, 0x004bfc62, 0x00fe0bc9, 0x008f54a9, 0x0198a3ad, 0x01f3f1b4, 0x0015e394}}}, + {X: Field{[10]uint32{0x01310354, 0x0160bc17, 0x0066854b, 0x00d92d7b, 0x01d142d5, 0x03f27dcf, 0x010951cb, 0x00997952, 0x01c20bdb, 0x0019d70a}}, Y: Field{[10]uint32{0x008bd6d1, 0x00a411f8, 0x03a49832, 0x017e768c, 0x028cb8ad, 0x021af7e9, 0x02d4f9a1, 0x037a1080, 0x02693d82, 0x0008b47d}}}, + {X: Field{[10]uint32{0x007ce605, 0x02df26c4, 0x01d36f65, 0x037eb612, 0x01a9053a, 0x005aaccb, 0x01221779, 0x034389aa, 0x00bd6c75, 0x0031025b}}, Y: Field{[10]uint32{0x01c2bb46, 0x016f94e5, 0x023c294f, 0x01440092, 0x01b2b97e, 0x018ceb81, 0x0361efb9, 0x0325e4bf, 0x03472ae3, 0x0017c8da}}}, + {X: Field{[10]uint32{0x03905c0b, 0x003b66ce, 0x03789dd8, 0x018007e8, 0x01b1ddd4, 0x031d5055, 0x01205ec2, 0x015007c0, 0x0341ddd0, 0x0027a834}}, Y: Field{[10]uint32{0x01a28e69, 0x00570803, 0x03b717e6, 0x016654fd, 0x00ba7ce0, 0x00e625d9, 0x03692cd5, 0x0342ddbc, 0x010197e7, 0x000efd20}}}, + {X: Field{[10]uint32{0x02fb92e4, 0x035d690c, 0x028c7b4d, 0x03cb78dd, 0x01637367, 0x026056c3, 0x026edd2d, 0x03e8cdca, 0x02d784bf, 0x002f7aef}}, Y: Field{[10]uint32{0x03d0b9c0, 0x01312bb3, 0x00067673, 0x007f28ac, 0x01297a43, 0x02882507, 0x016af105, 0x026d8b70, 0x037eb62a, 0x0017fcd0}}}, + {X: Field{[10]uint32{0x02910932, 0x031f5b27, 0x020c7bcc, 0x01d1ded5, 0x000cbfe6, 0x03d55084, 0x02ea82c8, 0x00d3cb5a, 0x0244b46e, 0x002921be}}, Y: Field{[10]uint32{0x0097317a, 0x007208be, 0x03ca8323, 0x02a9fd1f, 0x01b8ad5b, 0x01532955, 0x023caa0f, 0x038a1022, 0x036d8a15, 0x0006adf8}}}, + {X: Field{[10]uint32{0x01cbba08, 0x0069f44a, 0x03769fbd, 0x02c4631f, 0x0366e7ab, 0x0082bbea, 0x0204376a, 0x02a49aa8, 0x00a557a1, 0x001118e8}}, Y: Field{[10]uint32{0x0034af0d, 0x036ada74, 0x02ce09a9, 0x0148973a, 0x037dc081, 0x002e2b44, 0x00f01de2, 0x0180a9c1, 0x02a5ab7b, 0x0012a08e}}}, + {X: Field{[10]uint32{0x01825ac4, 0x029cf7d3, 0x00b4c593, 0x0318bbad, 0x008cbdc5, 0x03647476, 0x03135840, 0x0237eead, 0x024fc45e, 0x0035b822}}, Y: Field{[10]uint32{0x02b4c55f, 0x020032d7, 0x02506c59, 0x036588bf, 0x0108be98, 0x003f8b6f, 0x031ae8fc, 0x0342e941, 0x03b477c0, 0x000b3616}}}, + {X: Field{[10]uint32{0x016a10f1, 0x00fea1fe, 0x03656a43, 0x034293e2, 0x00546d31, 0x026eff4d, 0x0076dca2, 0x032b5398, 0x02992a69, 0x002d89b8}}, Y: Field{[10]uint32{0x03cb5bc6, 0x015bd0d0, 0x03d343c6, 0x00ee32ef, 0x0162ac5e, 0x01789d95, 0x01686325, 0x0249a3c5, 0x02ceba91, 0x001b7d2c}}}, + {X: Field{[10]uint32{0x007139a5, 0x006959a5, 0x03b057e3, 0x03ad8678, 0x0225a4df, 0x03f93497, 0x01d61965, 0x0141c2cb, 0x02eb7464, 0x000d8679}}, Y: Field{[10]uint32{0x0282093f, 0x0035c944, 0x014311aa, 0x00ed1430, 0x0379940c, 0x02519f1e, 0x036c3bf2, 0x01848674, 0x0189ba15, 0x002592e2}}}, + {X: Field{[10]uint32{0x00bda2e9, 0x03dfd232, 0x02a847cc, 0x01838c9a, 0x0141e5c0, 0x014cc258, 0x00a3a65d, 0x0210ff10, 0x035e6718, 0x002cd4a6}}, Y: Field{[10]uint32{0x01c1b935, 0x03f15496, 0x030579d4, 0x01eca99e, 0x0131111e, 0x0216fb3d, 0x00595ac2, 0x02fd17a7, 0x00d37ce1, 0x001279b8}}}, + {X: Field{[10]uint32{0x03a9e05b, 0x02bf7c4b, 0x01598d42, 0x01e2500d, 0x014a1997, 0x03491fbc, 0x0385527d, 0x00517ff3, 0x00675bd7, 0x003947c0}}, Y: Field{[10]uint32{0x01b32666, 0x00a72ff0, 0x02c8cec7, 0x017cc3ad, 0x017d2e17, 0x026c11f9, 0x023d5fc6, 0x01cbad14, 0x033e8b4d, 0x003566ab}}}, + {X: Field{[10]uint32{0x01e79b28, 0x017e0c73, 0x00720170, 0x03935148, 0x0391c930, 0x0029ed52, 0x025eb6aa, 0x0311a348, 0x0066f64b, 0x0022a1fc}}, Y: Field{[10]uint32{0x02800227, 0x03afa959, 0x0113bb5e, 0x02b18954, 0x03249c34, 0x0343909d, 0x019062f5, 0x01f256c8, 0x0195e005, 0x002a4a97}}}, + {X: Field{[10]uint32{0x01310b06, 0x03661eff, 0x03632cd7, 0x03eee2bb, 0x013a926a, 0x03e236ab, 0x01c771eb, 0x023b969a, 0x0015aa87, 0x00362a04}}, Y: Field{[10]uint32{0x020acbdd, 0x017d4ff8, 0x02ad3d5e, 0x03680667, 0x03ec9f31, 0x03ce50b1, 0x03e3a262, 0x03b53a58, 0x03e8f276, 0x002bddfd}}}, + {X: Field{[10]uint32{0x020cc5c1, 0x01d0f533, 0x034d2c3b, 0x02f5466b, 0x02051c9a, 0x01974a35, 0x025b8a38, 0x01364f6f, 0x02194f3f, 0x002230fe}}, Y: Field{[10]uint32{0x020d8f8d, 0x0192381d, 0x039d9a9d, 0x036a660a, 0x0226b5de, 0x01dd16fb, 0x03671a7e, 0x03e089ec, 0x037a0f9f, 0x0004132b}}}, + {X: Field{[10]uint32{0x01ce648e, 0x00b0f650, 0x02484553, 0x0045b169, 0x02220701, 0x031ca6a2, 0x01e9c763, 0x02c3abc1, 0x03253434, 0x003e1ce1}}, Y: Field{[10]uint32{0x006f7bd7, 0x0327885e, 0x0320146f, 0x0055e059, 0x024c286e, 0x0034f86f, 0x01f66270, 0x01e44eda, 0x02d1d4ee, 0x002a2d7b}}}, + {X: Field{[10]uint32{0x009acc33, 0x021083e4, 0x02f606b1, 0x03e3723f, 0x007b35c8, 0x01a25817, 0x00ca8265, 0x00087e53, 0x01385afb, 0x00017f29}}, Y: Field{[10]uint32{0x01b2b3a8, 0x0246bd75, 0x036392b7, 0x01e35752, 0x03c5b4d0, 0x008facaf, 0x01f9a527, 0x022ff7ac, 0x0251f5c2, 0x000075fe}}}, + {X: Field{[10]uint32{0x035007db, 0x01193eb3, 0x01a51891, 0x013f8558, 0x03f1fddf, 0x03b52f43, 0x02cef9db, 0x02b366ec, 0x0148d4b2, 0x0011d211}}, Y: Field{[10]uint32{0x028f44a8, 0x02a8f20c, 0x02bce3dd, 0x00efb620, 0x01b93e22, 0x03ed113f, 0x03a25397, 0x033f811b, 0x0154f011, 0x003a9878}}}, + {X: Field{[10]uint32{0x02c5b8f1, 0x01ab2179, 0x0234ab46, 0x01b49500, 0x01dd8ef5, 0x0106a008, 0x029a6feb, 0x0350ffb1, 0x03ff0b14, 0x000cc7c5}}, Y: Field{[10]uint32{0x02ec144b, 0x015a6c27, 0x0299b68d, 0x01840b11, 0x0337d8c0, 0x02864c47, 0x0364a0f8, 0x011cc6da, 0x00a18d77, 0x002e882f}}}, + {X: Field{[10]uint32{0x03dc68ce, 0x02c51b76, 0x027f15e9, 0x0073e710, 0x0205b897, 0x0014c395, 0x0388ce98, 0x034b192a, 0x022d200b, 0x0001aae9}}, Y: Field{[10]uint32{0x01f832c8, 0x02ac09ba, 0x00c5b000, 0x035de376, 0x01fcf65f, 0x03c1c7cb, 0x0126ef0c, 0x022466b3, 0x02d7d7d9, 0x0039324d}}}, + {X: Field{[10]uint32{0x03ca19c5, 0x032f1a48, 0x014fcf52, 0x02371cc9, 0x02c0cfee, 0x027b1bb3, 0x01022b4d, 0x02867188, 0x0035e72f, 0x0031dadb}}, Y: Field{[10]uint32{0x0213efc9, 0x02ea0c7e, 0x03fb1ee7, 0x0215ec86, 0x01b49dba, 0x01fe80a2, 0x034d0a1d, 0x0216666d, 0x027a48ee, 0x0016c3fe}}}, + {X: Field{[10]uint32{0x021bb77a, 0x024e1533, 0x014a404a, 0x03b50549, 0x02aaa438, 0x00a70529, 0x01590fa4, 0x00f7e6c0, 0x023d43f3, 0x003015ba}}, Y: Field{[10]uint32{0x033dca7b, 0x01ee31fa, 0x0231cc33, 0x000a2e80, 0x0258355a, 0x01da95c7, 0x0079e7f5, 0x02a7c4b1, 0x00e32337, 0x00356c65}}}, + {X: Field{[10]uint32{0x01ac938a, 0x0222cf6f, 0x003a147e, 0x03124f2b, 0x037df652, 0x01ae3ced, 0x03bb897e, 0x003bc44d, 0x00cc8ddf, 0x000f5a23}}, Y: Field{[10]uint32{0x015879fc, 0x02bc8b53, 0x03b4a691, 0x0269ebce, 0x0338b6bc, 0x0045563d, 0x00daead1, 0x0387ca58, 0x03884d7a, 0x002f2a51}}}, + {X: Field{[10]uint32{0x00d2a179, 0x012ccf42, 0x009cf392, 0x027d7cb9, 0x00c59d7a, 0x03dbf60d, 0x0145f0cd, 0x004602a4, 0x02f669ce, 0x0013ebfe}}, Y: Field{[10]uint32{0x020159d2, 0x03d55841, 0x00485b71, 0x01c9e6f3, 0x03dcbad8, 0x032442ae, 0x000c16d8, 0x00bb0956, 0x00ac2dca, 0x00278057}}}, + {X: Field{[10]uint32{0x024aecad, 0x00c15e68, 0x02f614ac, 0x031d9a67, 0x000e8ba0, 0x037b31f1, 0x01a44eb3, 0x03ade1ad, 0x00e37cd7, 0x00011d5e}}, Y: Field{[10]uint32{0x03171651, 0x03be3259, 0x0056945e, 0x019a7af2, 0x0007fd00, 0x02d8a3b6, 0x00eab83f, 0x03802f1a, 0x0017a6be, 0x002522b2}}}, + {X: Field{[10]uint32{0x00618836, 0x0386a577, 0x01dfe103, 0x029dded6, 0x038c72fd, 0x01d221f6, 0x02d1a35f, 0x0191a892, 0x02753eaa, 0x0026ab78}}, Y: Field{[10]uint32{0x002bca96, 0x000dcf74, 0x0025687e, 0x03b771fd, 0x03ceef2f, 0x0325120f, 0x02e7a050, 0x0097cc79, 0x03848f46, 0x002d9470}}}, + {X: Field{[10]uint32{0x03aed711, 0x004cebd8, 0x02f9a276, 0x027d8a72, 0x03321c9b, 0x011ecaf3, 0x02818524, 0x03b9d556, 0x03e0b1c6, 0x002c6c30}}, Y: Field{[10]uint32{0x000ac827, 0x02eac90c, 0x01571759, 0x019d632f, 0x03c2c741, 0x03fc5c44, 0x001d0dca, 0x01bfcf7f, 0x00fd624e, 0x00124eb3}}}, + {X: Field{[10]uint32{0x032a8ff6, 0x0373cfaf, 0x0201c156, 0x01881eeb, 0x032a0ce4, 0x03ce46a6, 0x02c5762f, 0x028163ab, 0x018fb192, 0x003155dd}}, Y: Field{[10]uint32{0x011bd3b3, 0x011e5a5b, 0x01766399, 0x02129dc6, 0x03989212, 0x006ff6fc, 0x010f671b, 0x0386567c, 0x0353d209, 0x000753a6}}}, + {X: Field{[10]uint32{0x037b5e0e, 0x02b648ca, 0x00d07cc9, 0x0209237d, 0x020edcc0, 0x037d686d, 0x01b5ca60, 0x03b53ed2, 0x01ed5120, 0x001cd48b}}, Y: Field{[10]uint32{0x02e08d74, 0x02233e37, 0x01a96e43, 0x013b25c9, 0x037f87db, 0x016f3f71, 0x01299ced, 0x009c3b47, 0x0194cdf0, 0x0011d5a7}}}, + {X: Field{[10]uint32{0x00323506, 0x02e70bfa, 0x033ad72b, 0x0033c3b1, 0x00fd6fbc, 0x030afb94, 0x03ae46df, 0x02258ca8, 0x000d6632, 0x000595c7}}, Y: Field{[10]uint32{0x03ec68d2, 0x00911212, 0x03143d22, 0x02135d67, 0x00a936d6, 0x01f39854, 0x0157911e, 0x0071833b, 0x01869e00, 0x001977a7}}}, + {X: Field{[10]uint32{0x00e5f090, 0x00be5626, 0x03343dbe, 0x00ba0b72, 0x01b1810d, 0x0327be1b, 0x020cc8d7, 0x00c29721, 0x01642eb6, 0x003d7f95}}, Y: Field{[10]uint32{0x03adfa87, 0x03244fa7, 0x03504e20, 0x02f75fb5, 0x02eec2da, 0x030b025e, 0x0340dcdf, 0x036b2328, 0x021fbea9, 0x00173b9e}}}, + {X: Field{[10]uint32{0x016e3592, 0x0138f28e, 0x00591881, 0x005d635e, 0x037aece0, 0x021f3b6b, 0x01a67a0b, 0x02410d0f, 0x033270d0, 0x003bc276}}, Y: Field{[10]uint32{0x03b675e2, 0x0288e6b1, 0x036ea80c, 0x01c4ab81, 0x037df142, 0x03bf7d38, 0x01c6161c, 0x01ba7e59, 0x0005ba24, 0x00164d3e}}}, + {X: Field{[10]uint32{0x033a54e8, 0x03f948cd, 0x030c13ed, 0x008be5d2, 0x025e1746, 0x03c807b4, 0x012b102b, 0x03c26661, 0x03d727d2, 0x00221b36}}, Y: Field{[10]uint32{0x00a73b2b, 0x029ec277, 0x021426ee, 0x021ce351, 0x015166f6, 0x019393e2, 0x03518255, 0x01b96b94, 0x028a7fca, 0x0036b2cc}}}, + {X: Field{[10]uint32{0x02237cff, 0x03be0ab3, 0x011f96e4, 0x00226ef6, 0x01620713, 0x02367cfa, 0x029ff848, 0x02fcba14, 0x03cd04f7, 0x002df61a}}, Y: Field{[10]uint32{0x03702f0e, 0x03f623ce, 0x0002ee32, 0x0293b434, 0x0303acf2, 0x01d5d210, 0x0146dc41, 0x0151faa1, 0x03f1375a, 0x0031ac2b}}}, + {X: Field{[10]uint32{0x03388c67, 0x03f1eeba, 0x02c4d22b, 0x02659ef1, 0x00c24f5e, 0x0257653b, 0x03910593, 0x02ae14c1, 0x01b28132, 0x0035f45c}}, Y: Field{[10]uint32{0x001a8f8f, 0x01950f77, 0x00744bfe, 0x020a5c22, 0x037be396, 0x02ece6fd, 0x013c1351, 0x038ad957, 0x00e02421, 0x00260ddc}}}, + {X: Field{[10]uint32{0x0394b1be, 0x024202a5, 0x03502a42, 0x025b0524, 0x00f01a18, 0x00cf6b64, 0x01f1cfa8, 0x00c39c8a, 0x02fd881e, 0x003ff9c4}}, Y: Field{[10]uint32{0x00505da8, 0x03063395, 0x01586cda, 0x01e94c59, 0x02f18b03, 0x03cbe8af, 0x0311ae58, 0x00212842, 0x0203075d, 0x003d0a67}}}, + {X: Field{[10]uint32{0x03d13f7c, 0x01919555, 0x03d669f6, 0x03781bc0, 0x03dff3f0, 0x03decd71, 0x03cd10b3, 0x01a54735, 0x02b30322, 0x00158f24}}, Y: Field{[10]uint32{0x03ec10c1, 0x0272cdcc, 0x01f43076, 0x0252153d, 0x009bb210, 0x0105be52, 0x030ccfb2, 0x03bd0602, 0x02f4085b, 0x0037287b}}}, + {X: Field{[10]uint32{0x00f32437, 0x0353591a, 0x013dd9a0, 0x00a19a9f, 0x01dd52c2, 0x03e91f05, 0x00056d7e, 0x03af3985, 0x02f33a2c, 0x002e39db}}, Y: Field{[10]uint32{0x018651c2, 0x01068a24, 0x004a22aa, 0x03084277, 0x003076cc, 0x00986687, 0x02539ba4, 0x039e668e, 0x039d652a, 0x00111539}}}, + {X: Field{[10]uint32{0x02f1c971, 0x01d5182a, 0x002d2c56, 0x03cf8219, 0x0107b4a4, 0x022a6610, 0x02e429fb, 0x000e8b7c, 0x0304f607, 0x000db6c8}}, Y: Field{[10]uint32{0x0284b5cc, 0x010bf269, 0x03ef00f8, 0x02d02323, 0x03ecf7f9, 0x009ac6ae, 0x03859eee, 0x002a8f66, 0x028f5cc3, 0x002814db}}}, + {X: Field{[10]uint32{0x00d9a5ab, 0x01562862, 0x02314f9d, 0x0286df1a, 0x00d537c1, 0x03a6b8a9, 0x0055e529, 0x018df758, 0x011d1521, 0x00317539}}, Y: Field{[10]uint32{0x03eb3f6d, 0x036cce9b, 0x02d0de04, 0x00f12d22, 0x00aaf709, 0x0195c265, 0x0365b08c, 0x01e0b3ef, 0x02ed6a13, 0x0032107b}}}, + {X: Field{[10]uint32{0x01c4bffd, 0x0263e7dc, 0x032207cd, 0x00cd802b, 0x02b05615, 0x018d785e, 0x0379ed3f, 0x0167dbfe, 0x01c29858, 0x0014300f}}, Y: Field{[10]uint32{0x03137720, 0x01929df5, 0x02b0a68b, 0x00a22dfd, 0x025c4255, 0x01471d22, 0x01a2bd74, 0x008a6bd6, 0x0397a7ed, 0x0031a321}}}, + {X: Field{[10]uint32{0x008333ef, 0x014d1b7c, 0x01ff3364, 0x0245c74c, 0x03985606, 0x03d6ec3b, 0x010ae5dc, 0x01be68b8, 0x004b3e7e, 0x000a01b6}}, Y: Field{[10]uint32{0x007b429d, 0x026d40f2, 0x0385e54a, 0x0099090d, 0x02bf8cac, 0x00e9ad63, 0x00b5ddbf, 0x01332d33, 0x004338e3, 0x001cbc8d}}}, + {X: Field{[10]uint32{0x008790a4, 0x02254bce, 0x0353f4c5, 0x006f888a, 0x0282bb9c, 0x026103fb, 0x03e33c62, 0x02374710, 0x01dd1ef5, 0x001035c3}}, Y: Field{[10]uint32{0x030770d5, 0x00a875fd, 0x0130d96b, 0x016ce51a, 0x02e65468, 0x03d35545, 0x00d170ea, 0x0264c8ce, 0x0157b6dd, 0x0026c6a7}}}, + {X: Field{[10]uint32{0x0387c835, 0x01598222, 0x03905d01, 0x00105e60, 0x02ac7338, 0x038876a0, 0x037b193e, 0x00484ef5, 0x003204e7, 0x0022143b}}, Y: Field{[10]uint32{0x01c160e2, 0x00dfddf7, 0x00d3a7d6, 0x02cac32d, 0x02961480, 0x019701c5, 0x01f58eaa, 0x002e464b, 0x03a0a916, 0x002abffd}}}, + {X: Field{[10]uint32{0x00ad6e8b, 0x0033dc54, 0x00bd2c24, 0x02c1a8c2, 0x030de291, 0x02f92175, 0x039d4a62, 0x00a7d1df, 0x0109bd7c, 0x00152545}}, Y: Field{[10]uint32{0x03ef2722, 0x01b1ccb1, 0x02f27f13, 0x027ddf00, 0x01b1d8f7, 0x013307ea, 0x0245c764, 0x00ee7e8e, 0x007cf2a2, 0x000bf6cd}}}, + {X: Field{[10]uint32{0x037e5d44, 0x023da7eb, 0x0221facf, 0x022f990d, 0x031c3d3e, 0x0028f9f3, 0x01af1ab7, 0x03ad3ef9, 0x0355cdf8, 0x0027d7b0}}, Y: Field{[10]uint32{0x01d3c06e, 0x01bcb286, 0x00a58488, 0x017a4afe, 0x0312b8be, 0x0368712e, 0x03da94ba, 0x00d5401b, 0x015fb38b, 0x002c80f7}}}, + {X: Field{[10]uint32{0x02c0b3da, 0x00dc688b, 0x0037bbdf, 0x0388c18a, 0x028b72f0, 0x022cc9bf, 0x035e606c, 0x02794a32, 0x029c1bba, 0x00204b92}}, Y: Field{[10]uint32{0x00e222a1, 0x0347163e, 0x00f24d10, 0x01227be4, 0x015d98d2, 0x03b4004d, 0x02bd36a1, 0x02b8e718, 0x01b714a9, 0x000ae9ed}}}, + {X: Field{[10]uint32{0x023d924a, 0x0072a18a, 0x02c36c5c, 0x03d8a89b, 0x01af52c6, 0x03575ff4, 0x00ff16ec, 0x0185ad50, 0x01dbcf85, 0x003980d7}}, Y: Field{[10]uint32{0x001eec86, 0x03ed77fc, 0x0154ad6c, 0x0011a716, 0x01173d31, 0x007ca7c6, 0x0118718a, 0x03f2b1be, 0x009ef687, 0x002a514e}}}, + {X: Field{[10]uint32{0x02033446, 0x0079d49a, 0x00bc6032, 0x00a69ad4, 0x032643f1, 0x01ac8ce6, 0x01696938, 0x0351c6dc, 0x01e8d771, 0x0035e229}}, Y: Field{[10]uint32{0x017d3990, 0x026259fa, 0x030e0b25, 0x00bde7f8, 0x01c0c9a4, 0x01f646d9, 0x017fe32a, 0x01e0fbe9, 0x02225095, 0x000d2e15}}}, + {X: Field{[10]uint32{0x03c6f41c, 0x0175291d, 0x01802561, 0x00bdc1af, 0x020c8ef4, 0x03e8cad5, 0x01b5f116, 0x013e7c07, 0x03dd2937, 0x00198dcc}}, Y: Field{[10]uint32{0x0078676d, 0x03b09b74, 0x013c1394, 0x0199b895, 0x0185b59f, 0x005002de, 0x014e916a, 0x03f16458, 0x01453ae0, 0x0000d617}}}, + {X: Field{[10]uint32{0x0323ad9c, 0x02c08f6c, 0x006f0a5a, 0x00ccd585, 0x016affda, 0x0278b8f5, 0x03ad4d11, 0x00504cf6, 0x032805ae, 0x0017b1b9}}, Y: Field{[10]uint32{0x00884579, 0x008f5a70, 0x029f645c, 0x03919a37, 0x03d35a56, 0x00683f28, 0x00d609db, 0x00c078a7, 0x01bfcfc6, 0x000f7490}}}, + {X: Field{[10]uint32{0x00f8f3c5, 0x019d28cb, 0x02ceee4a, 0x03975105, 0x0087532b, 0x01165c5f, 0x03366471, 0x019a89f0, 0x00421fbb, 0x003c63f1}}, Y: Field{[10]uint32{0x0359d560, 0x008a7344, 0x00de9b4f, 0x0397dd60, 0x02026847, 0x01a1b03e, 0x03b4e836, 0x00f7c403, 0x00813bb3, 0x0034e282}}}, + {X: Field{[10]uint32{0x01f5345a, 0x0089108e, 0x01719206, 0x03fbba87, 0x017dec0d, 0x004d0919, 0x038d3362, 0x03f87c52, 0x009ed9bc, 0x002063d5}}, Y: Field{[10]uint32{0x006602ee, 0x00b237e1, 0x013688cc, 0x0170ae7d, 0x0048b24c, 0x01fd2cfe, 0x001a8e9d, 0x03d12117, 0x011fcca2, 0x000df398}}}, + {X: Field{[10]uint32{0x02dce942, 0x016c02c7, 0x02a6417a, 0x03ad9086, 0x024f4fa8, 0x00cba1e5, 0x034ee3a5, 0x00ff20a9, 0x0391f98e, 0x001d78b1}}, Y: Field{[10]uint32{0x03e5f6b4, 0x0153354d, 0x00b26f2d, 0x02f888aa, 0x007c4d37, 0x00582157, 0x02a17c71, 0x004d89a2, 0x033ba495, 0x00147c8d}}}, + {X: Field{[10]uint32{0x023954d3, 0x01a0db87, 0x011199ca, 0x01667d2e, 0x009b44de, 0x0264ddcc, 0x03f4ec1f, 0x01b4c76b, 0x01b64c0c, 0x001c47e3}}, Y: Field{[10]uint32{0x00caa4b0, 0x038f9f5c, 0x03eb5b75, 0x02e85c2e, 0x016e4dfb, 0x02cd4673, 0x0170fcf7, 0x0320b7cc, 0x01e3432a, 0x00121655}}}, + {X: Field{[10]uint32{0x033ba6a5, 0x01c6f237, 0x0003a160, 0x003f8878, 0x005216f5, 0x0232a70b, 0x022104ee, 0x0168792f, 0x00266f75, 0x0018d40b}}, Y: Field{[10]uint32{0x01bea942, 0x00a2a852, 0x028dd90f, 0x022bc7ce, 0x033954b8, 0x03f9de5d, 0x01075bda, 0x00fd2bd5, 0x01eac8fc, 0x0029720a}}}, + {X: Field{[10]uint32{0x02850872, 0x00425530, 0x0138c92d, 0x0358e49e, 0x0213f5c3, 0x00bb95f9, 0x01bb82fd, 0x0381c06d, 0x0059ccfe, 0x000a99dd}}, Y: Field{[10]uint32{0x037cbe71, 0x035717bb, 0x02053714, 0x00a3ace7, 0x00401bbf, 0x02c0f831, 0x031cbf5d, 0x02c2ca6e, 0x03985c5d, 0x003fdba5}}}, + {X: Field{[10]uint32{0x02b52cbe, 0x006c020c, 0x00d99f05, 0x03417c8c, 0x015b359b, 0x035febe5, 0x01b4a223, 0x01a69c27, 0x038778fb, 0x001a3e17}}, Y: Field{[10]uint32{0x03c92210, 0x0357cf3f, 0x0389e405, 0x0302cef7, 0x01ef9c65, 0x022d5ae1, 0x037b771f, 0x00c62713, 0x0149f4fc, 0x000370ba}}}, + {X: Field{[10]uint32{0x02b74ade, 0x02413cf4, 0x0390e1c2, 0x0321bd2e, 0x009e9883, 0x039642c9, 0x01fd8b9d, 0x0080d942, 0x01b73b54, 0x001fba75}}, Y: Field{[10]uint32{0x03343e62, 0x030c3b81, 0x03828002, 0x01aa7759, 0x03492063, 0x02497775, 0x01c6977b, 0x03c817e4, 0x0013241c, 0x00260489}}}, + {X: Field{[10]uint32{0x00aa33c8, 0x01d54f89, 0x03391381, 0x0011e7ab, 0x00102b5d, 0x03503948, 0x03680230, 0x0249c76c, 0x0090cdb1, 0x002111ec}}, Y: Field{[10]uint32{0x03c0bdb0, 0x02a3087d, 0x02a78c14, 0x0295e225, 0x03121d02, 0x00096948, 0x02eacd39, 0x01d20700, 0x03e655a2, 0x00096d0f}}}, + {X: Field{[10]uint32{0x0016a645, 0x02a2dbca, 0x03268c89, 0x00b9de8b, 0x03e45e62, 0x00317bce, 0x0151f569, 0x01439ade, 0x03b93f15, 0x000c581c}}, Y: Field{[10]uint32{0x007624be, 0x00b6cc65, 0x02caf6a5, 0x02286191, 0x03a1a6f3, 0x00c7571d, 0x0254a4db, 0x0033a30f, 0x01ac2fc7, 0x00155f29}}}, + {X: Field{[10]uint32{0x0036d6ac, 0x007addd2, 0x004ae5fc, 0x03c7264a, 0x00cdaa8e, 0x030046c6, 0x00fe9495, 0x0086b0d6, 0x012da2ef, 0x003eb88c}}, Y: Field{[10]uint32{0x030b76c7, 0x03ba358f, 0x00b8b54e, 0x0366ca6d, 0x00aa948a, 0x03f32fc2, 0x00ee7cb3, 0x03a196c3, 0x02612d99, 0x001bcefd}}}, + {X: Field{[10]uint32{0x00f839f0, 0x0339e0d5, 0x023e12f8, 0x031addbc, 0x007d4c72, 0x00c58abb, 0x01e1691d, 0x037f7c2c, 0x03ef5588, 0x000a028a}}, Y: Field{[10]uint32{0x03683f72, 0x02d21ce4, 0x01c73ca7, 0x018f3036, 0x01b2b4ba, 0x03910161, 0x03be1bc7, 0x025dd2a1, 0x011bc31a, 0x003c037b}}}, + {X: Field{[10]uint32{0x037ccdcd, 0x03dab02f, 0x01ddb86b, 0x02ca2a99, 0x034d0609, 0x031d5113, 0x037e5d28, 0x024b264a, 0x037a9b7b, 0x000fd0f9}}, Y: Field{[10]uint32{0x0072a2d6, 0x01c2a113, 0x015366cf, 0x0155401d, 0x00ac2678, 0x00ae3617, 0x02bd6b99, 0x002952f1, 0x0103bb3c, 0x002cc45e}}}, + {X: Field{[10]uint32{0x0069f2de, 0x03c58b75, 0x0229646d, 0x0037d941, 0x02953550, 0x00147843, 0x02539290, 0x03e8d21f, 0x01c8387b, 0x000e82bf}}, Y: Field{[10]uint32{0x01bb29c7, 0x0061eb32, 0x0324e8b4, 0x03df23fc, 0x01907d4c, 0x03cb294f, 0x0386dff3, 0x0242db87, 0x00c8f0f6, 0x001d5a5f}}}, + {X: Field{[10]uint32{0x0170809d, 0x03a905de, 0x01660949, 0x02aa288f, 0x002789d0, 0x01c81ca8, 0x026e7c4a, 0x01c8fa66, 0x0364209f, 0x000fe5ca}}, Y: Field{[10]uint32{0x02e47d15, 0x0293e110, 0x02342b32, 0x00fb98fc, 0x039a7c05, 0x0280b17f, 0x0026e769, 0x03f672bf, 0x00287a6b, 0x001e9209}}}, + {X: Field{[10]uint32{0x0089b0b4, 0x036bd2ba, 0x004df0e8, 0x0175c7d0, 0x01c21ff8, 0x02e138f4, 0x01f1ecc4, 0x00d93447, 0x000ffa73, 0x00024e2b}}, Y: Field{[10]uint32{0x01be0312, 0x02e9d291, 0x0204a63f, 0x0255932d, 0x004e9689, 0x03681a84, 0x02e8820e, 0x02ce0437, 0x02d3d526, 0x00287027}}}, + {X: Field{[10]uint32{0x00e28bcc, 0x007b22bd, 0x01071831, 0x016993a6, 0x01631c9b, 0x02f4d15d, 0x01eb9ed3, 0x039d309d, 0x01752993, 0x0014d57b}}, Y: Field{[10]uint32{0x006ad088, 0x01c94f3f, 0x01a40ddf, 0x011c0c24, 0x01c81885, 0x0003c614, 0x010279f6, 0x02aabeb0, 0x007d680a, 0x002eec40}}}, + {X: Field{[10]uint32{0x03f277b7, 0x0224c47e, 0x024574e9, 0x01bead8b, 0x02b03369, 0x010d0191, 0x03bda46a, 0x01db1b60, 0x02ed70ba, 0x0022038c}}, Y: Field{[10]uint32{0x020410bc, 0x0331ea1b, 0x00e7c623, 0x02bccc39, 0x0308dcda, 0x01a59a1a, 0x02763d5f, 0x03578901, 0x02cb8d10, 0x001dbfac}}}, + {X: Field{[10]uint32{0x00f11aa8, 0x03447c42, 0x02beebd6, 0x000f6ab5, 0x00857ac5, 0x012dd3a7, 0x00beec11, 0x016da0ae, 0x00aaa275, 0x0036bdde}}, Y: Field{[10]uint32{0x00a5f428, 0x0260bba6, 0x01c88fd4, 0x03c24a60, 0x02e38325, 0x01bb5a5d, 0x00f3024d, 0x00c05e7c, 0x0062710d, 0x0007b617}}}, + {X: Field{[10]uint32{0x03b474dd, 0x01eaf6a3, 0x004641cf, 0x01690b23, 0x009a60b9, 0x00d4cfe0, 0x01c0a4ff, 0x00f49f46, 0x01dd7563, 0x003970fa}}, Y: Field{[10]uint32{0x01fb0dfc, 0x01ec9063, 0x02afb251, 0x03f858cc, 0x0371b7b7, 0x03c82f27, 0x03036990, 0x0021faac, 0x02f65c5c, 0x003c795a}}}, + {X: Field{[10]uint32{0x00096973, 0x01a0df70, 0x03afdd11, 0x00302335, 0x016859c2, 0x03ec9d32, 0x03f3bf2f, 0x0361c25d, 0x0334ecdf, 0x0017500f}}, Y: Field{[10]uint32{0x00f6aeb1, 0x004a4e76, 0x01e4a5ba, 0x00d110f9, 0x022335c3, 0x005d935c, 0x001ba707, 0x01b3165e, 0x007c7024, 0x001ad6f9}}}, + {X: Field{[10]uint32{0x02246b12, 0x019162d7, 0x01f81389, 0x00d3cf95, 0x03993bf0, 0x02642ac9, 0x01b4caac, 0x007dc6cd, 0x013c2551, 0x00142e81}}, Y: Field{[10]uint32{0x02291f63, 0x03e8aefc, 0x025b88a7, 0x028af32f, 0x009f8a22, 0x0018f6ac, 0x02903993, 0x00c5c19d, 0x02455c7a, 0x0034bc4a}}}, + {X: Field{[10]uint32{0x026629cf, 0x02fc0bc1, 0x03a00b38, 0x0088e670, 0x039f2906, 0x00d961e4, 0x03898f0b, 0x02a7b681, 0x00eaee4a, 0x000e16a0}}, Y: Field{[10]uint32{0x03efcd50, 0x029a5d02, 0x01eb16e6, 0x00091a64, 0x038cfe49, 0x02a42e3e, 0x010806d6, 0x031b975d, 0x020bd72a, 0x002950cc}}}, + {X: Field{[10]uint32{0x03dedbef, 0x03866582, 0x00a9b276, 0x02948d88, 0x02eaa669, 0x03501463, 0x029de6c3, 0x0378e1b9, 0x00b9904e, 0x00026184}}, Y: Field{[10]uint32{0x0206b581, 0x03436522, 0x03315c4a, 0x034d8760, 0x03b88f72, 0x016d7fe3, 0x00d0c892, 0x02840343, 0x01a2eb6a, 0x00241dd5}}}, + {X: Field{[10]uint32{0x011b7fe8, 0x01e66646, 0x0329ed45, 0x016d1d53, 0x0219ae21, 0x032efda8, 0x007b0d3d, 0x0034ef7f, 0x0007d964, 0x0020fc42}}, Y: Field{[10]uint32{0x03293364, 0x029be681, 0x035e2489, 0x012bef0a, 0x02fe719e, 0x002778b1, 0x00e69c65, 0x035b4a18, 0x031b5095, 0x003d8b48}}}, + {X: Field{[10]uint32{0x03b1c246, 0x03285f53, 0x0059e74d, 0x03f19ed8, 0x01e3f287, 0x009d67f4, 0x002b0285, 0x00d718be, 0x02939273, 0x00147488}}, Y: Field{[10]uint32{0x0063745d, 0x008677db, 0x0187be05, 0x0374c4a1, 0x02f7184b, 0x00f22c49, 0x00b909e2, 0x016d3462, 0x03a3b514, 0x002e6e00}}}, + {X: Field{[10]uint32{0x03465006, 0x0277bc53, 0x03c70368, 0x01316827, 0x013e8cc2, 0x009b0df1, 0x02919458, 0x00f50f49, 0x0342e578, 0x002f9a98}}, Y: Field{[10]uint32{0x007ef000, 0x0236e89f, 0x0004c200, 0x012c70d8, 0x0081bc7e, 0x00f773f6, 0x01efc141, 0x0149e76a, 0x00fc3fc1, 0x002071c6}}}, + {X: Field{[10]uint32{0x00790036, 0x023c89af, 0x02e81a4e, 0x03642a0a, 0x00448681, 0x022c9c1c, 0x03b043b5, 0x004a1292, 0x00d9c36f, 0x003c84cd}}, Y: Field{[10]uint32{0x0016eff2, 0x03d1d4e2, 0x0308e428, 0x02e0b3c9, 0x03f5f143, 0x00878a4e, 0x03dcc1eb, 0x03f4c114, 0x00513a87, 0x00000112}}}, + {X: Field{[10]uint32{0x01730508, 0x03abebb2, 0x022cb419, 0x00ca494f, 0x020932a8, 0x01cef49f, 0x00cb1f1b, 0x0118fe04, 0x00e5af34, 0x00055631}}, Y: Field{[10]uint32{0x00c917f8, 0x007f937d, 0x0149e2dd, 0x00dd0a28, 0x006921bb, 0x029d4217, 0x023f3f41, 0x0104c8d9, 0x025025e1, 0x0032e331}}}, + {X: Field{[10]uint32{0x025d71e2, 0x02428699, 0x02e642e0, 0x03b6641c, 0x01b575a4, 0x02238e09, 0x00d3596a, 0x0083606d, 0x032c8f60, 0x000614e8}}, Y: Field{[10]uint32{0x003a8367, 0x03b660a8, 0x005e89e3, 0x0222ca50, 0x03eaf268, 0x006187ff, 0x024aedbb, 0x02ba838d, 0x031cb170, 0x002368a8}}}, + {X: Field{[10]uint32{0x00cd323d, 0x00d4e233, 0x0190b8cc, 0x02d0ef75, 0x002da679, 0x03ebea77, 0x01f60dbc, 0x00efb087, 0x00bcf0f0, 0x003bd617}}, Y: Field{[10]uint32{0x00c2f296, 0x03db601e, 0x03acdd93, 0x02e876a9, 0x01f02ccd, 0x00a04e41, 0x0192e078, 0x007db4e1, 0x0203aff9, 0x000af178}}}, + {X: Field{[10]uint32{0x02fd5c14, 0x01da022c, 0x03471a14, 0x01938344, 0x031fa458, 0x0092cf1e, 0x03d99714, 0x01a3aefb, 0x0237e1ea, 0x000fd30b}}, Y: Field{[10]uint32{0x020eeaa5, 0x038da91f, 0x005e330d, 0x005ed50e, 0x01051b9c, 0x03cca6d4, 0x02665b04, 0x00ecfeaa, 0x00ab3d28, 0x0019e264}}}, + {X: Field{[10]uint32{0x0021693a, 0x02d04679, 0x0133b621, 0x004082d5, 0x0059fc9b, 0x00eafcab, 0x01cb20ab, 0x02b12860, 0x038ad557, 0x000ac006}}, Y: Field{[10]uint32{0x02c6b94a, 0x00a5c8e0, 0x006758fa, 0x0234b283, 0x01310a32, 0x0122c949, 0x026f8c30, 0x0276c5cf, 0x0007f8d1, 0x003f93cc}}}, + {X: Field{[10]uint32{0x012cd229, 0x016f24d1, 0x00bb98d0, 0x009d62e8, 0x0379c90d, 0x007ec328, 0x02b5b108, 0x0023fe37, 0x01dd7d5a, 0x00196274}}, Y: Field{[10]uint32{0x028149a9, 0x01e45966, 0x007faa11, 0x016c64af, 0x01fdc547, 0x038003f5, 0x008dca23, 0x00a64d2f, 0x0080ed84, 0x00209025}}}, + {X: Field{[10]uint32{0x03950a6f, 0x027c3d49, 0x028a83b8, 0x03968e8e, 0x00ab4377, 0x01da9aa4, 0x00553162, 0x020d6e3a, 0x010df5d3, 0x00308cff}}, Y: Field{[10]uint32{0x00f6f3e5, 0x0088e4ad, 0x0384f494, 0x00c61ae2, 0x02314680, 0x016bbf81, 0x00fbac08, 0x02690c4b, 0x00a8775a, 0x0023fa38}}}, + {X: Field{[10]uint32{0x024cc14a, 0x02c4f41d, 0x036e7b65, 0x003e27db, 0x02a38867, 0x01d68afe, 0x02e3f57f, 0x023bbb5b, 0x02852a84, 0x00209cc6}}, Y: Field{[10]uint32{0x01117583, 0x0039334e, 0x004c1208, 0x026e29d4, 0x011ffacc, 0x0238d288, 0x03096883, 0x017a1fc6, 0x009a307c, 0x00300314}}}, + {X: Field{[10]uint32{0x02d2a50d, 0x03a9b401, 0x0097707e, 0x02d54fab, 0x00c9dde3, 0x008a50bb, 0x02b51501, 0x02c6c16a, 0x03a0e5d8, 0x003884e1}}, Y: Field{[10]uint32{0x01b0ff83, 0x02043723, 0x00349bb2, 0x02564cd5, 0x000fc81c, 0x012b177f, 0x003c9207, 0x024f7c0d, 0x0109f90d, 0x0031d379}}}, + {X: Field{[10]uint32{0x039fdc25, 0x03269256, 0x0236a00b, 0x0305b410, 0x0292780f, 0x0358d6e3, 0x035c3414, 0x010f6716, 0x01fd2fa4, 0x0006021c}}, Y: Field{[10]uint32{0x0314d120, 0x021400ea, 0x00146599, 0x00db89de, 0x021f25e6, 0x02f80971, 0x02014a8b, 0x03cde908, 0x01506008, 0x00359b1c}}}, + {X: Field{[10]uint32{0x00cb2c42, 0x034c382f, 0x03ab4b44, 0x024d360f, 0x00d64dff, 0x00455ae4, 0x0329a9a3, 0x00aa307b, 0x027eed11, 0x002d6a77}}, Y: Field{[10]uint32{0x0139db38, 0x029c7d0d, 0x03d91130, 0x033ec3fc, 0x0130315c, 0x03be15c8, 0x00afe660, 0x00febcec, 0x0279a81c, 0x00159d69}}}, + {X: Field{[10]uint32{0x00aee7d6, 0x00047f40, 0x03b4d40d, 0x01ec01b4, 0x018ce569, 0x0016973e, 0x02baf78c, 0x039437d0, 0x007261f1, 0x0026b339}}, Y: Field{[10]uint32{0x0107a05c, 0x0223fae5, 0x01e0a95f, 0x00c6b74a, 0x026cb8c8, 0x00c969e7, 0x03568304, 0x0131a795, 0x013c4046, 0x003edf10}}}, + {X: Field{[10]uint32{0x03574e5c, 0x03303ae2, 0x01100a02, 0x038d9f61, 0x01916796, 0x0064f7bb, 0x007bc4b2, 0x01dc48bf, 0x039b7bef, 0x003e02ad}}, Y: Field{[10]uint32{0x015c8f6d, 0x00067747, 0x022aac77, 0x02142d74, 0x003a1ac5, 0x01b372b3, 0x035834ed, 0x022c9766, 0x003f842d, 0x0031b534}}}, + {X: Field{[10]uint32{0x009366a1, 0x0287e62f, 0x01aeefae, 0x0123b058, 0x0125d814, 0x0182c936, 0x005845ef, 0x008c30c0, 0x0355cdb4, 0x002d0c78}}, Y: Field{[10]uint32{0x0241c1cd, 0x0345db76, 0x0390ef69, 0x0395731c, 0x017aebac, 0x014adb9a, 0x02ddb985, 0x002850e0, 0x01d4ae23, 0x003af36b}}}, + {X: Field{[10]uint32{0x0275f1fb, 0x01aa001b, 0x009c593f, 0x037db082, 0x02efe56e, 0x01b72939, 0x02b686f4, 0x00e98d47, 0x039e08c9, 0x001ea982}}, Y: Field{[10]uint32{0x03a0347e, 0x03c03bd7, 0x00c98328, 0x0002d01a, 0x00cb4248, 0x038cf9a5, 0x013e3892, 0x002fc781, 0x01e21770, 0x00001320}}}, + {X: Field{[10]uint32{0x0286b30b, 0x039d8404, 0x0296ba72, 0x03bc9cbd, 0x01d304fb, 0x028ded37, 0x001d1a4d, 0x0090edd1, 0x010b3aa4, 0x0006a209}}, Y: Field{[10]uint32{0x01b7a473, 0x017d2ada, 0x033fe3fd, 0x0163d166, 0x02b33b76, 0x0015aa6f, 0x02d8cb0f, 0x02056f81, 0x010557d3, 0x001896e7}}}, + {X: Field{[10]uint32{0x022b57c7, 0x03b6f0ea, 0x0196682d, 0x011c7aea, 0x0106c4ca, 0x02d773b8, 0x034db23c, 0x015628b4, 0x02eb49fd, 0x0016d493}}, Y: Field{[10]uint32{0x038ae50c, 0x014a41ae, 0x02d5dbf2, 0x009caf28, 0x0025c8b2, 0x01b80af7, 0x01b163d5, 0x033875cd, 0x009756b7, 0x000b570b}}}, + {X: Field{[10]uint32{0x0276d2c5, 0x0016139d, 0x007d1892, 0x03610cef, 0x00191550, 0x03dd5826, 0x00cb8b10, 0x02f9e749, 0x03776d9f, 0x002b9839}}, Y: Field{[10]uint32{0x018d7784, 0x0249bec5, 0x0311ffff, 0x0350d1a8, 0x00b76c36, 0x03bf219e, 0x011be83e, 0x0091cb28, 0x01867377, 0x0010c3fa}}}, + {X: Field{[10]uint32{0x02efb9d4, 0x03e04a98, 0x03105ab4, 0x00c2710b, 0x0353e8d7, 0x017739be, 0x020b081a, 0x03d9a351, 0x023d9e29, 0x000c8e97}}, Y: Field{[10]uint32{0x004776ba, 0x0295afa0, 0x01830c2f, 0x02911d98, 0x03da6216, 0x02d7aa6b, 0x0256d1d3, 0x00fd0859, 0x03b36948, 0x0000ad15}}}, + {X: Field{[10]uint32{0x027c1c9d, 0x00d9445e, 0x022a2a8b, 0x0125e965, 0x02b3db86, 0x01a50a6c, 0x00e612ed, 0x0154b219, 0x01b6591e, 0x002b346d}}, Y: Field{[10]uint32{0x026e88b8, 0x01886423, 0x00fa3265, 0x00947af1, 0x0067544d, 0x009498d2, 0x02ba7729, 0x01a40249, 0x03ff056f, 0x003984c7}}}, + {X: Field{[10]uint32{0x005b36f4, 0x02fdd3de, 0x02cf114e, 0x018211d0, 0x02f2e61e, 0x01549233, 0x026286b1, 0x014b80a8, 0x00708178, 0x001ad38b}}, Y: Field{[10]uint32{0x01b893df, 0x03a19139, 0x01a1a1e4, 0x03f359b9, 0x037398f7, 0x007354a5, 0x007130d0, 0x026f7080, 0x011c7a52, 0x00210025}}}, + {X: Field{[10]uint32{0x0084ab31, 0x01e5a7e0, 0x017c7151, 0x017e02a0, 0x004e6a37, 0x0230d1d1, 0x004cb914, 0x0029187d, 0x0327d67b, 0x0030acb1}}, Y: Field{[10]uint32{0x036d5f59, 0x0207ebb0, 0x01718824, 0x03522414, 0x03a52c47, 0x030a07f4, 0x00aa2519, 0x01ec3e66, 0x0359ebf3, 0x003fb590}}}, + {X: Field{[10]uint32{0x004f202e, 0x01f286e4, 0x02f71220, 0x008af683, 0x022ec564, 0x01e283e1, 0x014609d9, 0x02f653de, 0x02dab5b2, 0x000ce17b}}, Y: Field{[10]uint32{0x003d7443, 0x01eedc58, 0x0074b490, 0x0219d1a9, 0x01b12a21, 0x006a7d10, 0x01975aa3, 0x02a3b871, 0x02af1db8, 0x000a0234}}}, + {X: Field{[10]uint32{0x00c803f2, 0x006701c5, 0x02a82335, 0x03c35314, 0x02edce15, 0x03ead1e1, 0x030c2923, 0x010dee11, 0x00d7f2cb, 0x002003db}}, Y: Field{[10]uint32{0x00a37056, 0x0054bd35, 0x03734ad0, 0x0233b0e5, 0x0023e0a8, 0x02c980a3, 0x0206ca59, 0x006a8337, 0x023e0ad1, 0x002607cb}}}, + {X: Field{[10]uint32{0x02aa2f3b, 0x0071803b, 0x01f32474, 0x02dd853c, 0x02ebfaf4, 0x01eedb2a, 0x00103c6d, 0x00a1bf4f, 0x03ff3a9f, 0x001cea82}}, Y: Field{[10]uint32{0x00c6f7b1, 0x03c76946, 0x02846701, 0x00f13f79, 0x00a54a2e, 0x0362f39f, 0x009fe73d, 0x02e60f2e, 0x012981a9, 0x0000c2f1}}}, + {X: Field{[10]uint32{0x0178f2c5, 0x005a7ee8, 0x029ca789, 0x02626f3c, 0x03863804, 0x00f9d84b, 0x03fdfa9c, 0x004fda02, 0x00e6ab5c, 0x0024a03f}}, Y: Field{[10]uint32{0x00ae36bb, 0x013df373, 0x03b233e7, 0x02f76c28, 0x03aeb6a7, 0x03dfd6ed, 0x01397b18, 0x00b8ecbf, 0x00dbc5bc, 0x0012e5bb}}}, + {X: Field{[10]uint32{0x026e03ca, 0x02fda769, 0x00b8107d, 0x020397b3, 0x029f4387, 0x01c344ba, 0x009be162, 0x02e7bed6, 0x004bbb50, 0x001c8157}}, Y: Field{[10]uint32{0x036bc7cb, 0x0169b183, 0x023f9891, 0x0016a87f, 0x01985ad7, 0x006a188f, 0x01746935, 0x01df7561, 0x017fc30a, 0x002baa89}}}, + {X: Field{[10]uint32{0x03c1879f, 0x017411f9, 0x008e0308, 0x021c4aaf, 0x000eb8e8, 0x03ea09f3, 0x02687c73, 0x038f6c2e, 0x03d0c771, 0x003c3cf3}}, Y: Field{[10]uint32{0x00936b33, 0x026054e9, 0x02e20eff, 0x01733db8, 0x031bf8aa, 0x013f8428, 0x030c4b32, 0x013153e3, 0x027d8b74, 0x000b184b}}}, + {X: Field{[10]uint32{0x02f5dcfa, 0x01ebe6f9, 0x033ec67a, 0x01df979e, 0x00d8b611, 0x0290ddab, 0x02c8fe8e, 0x03c9c1be, 0x036570b0, 0x0025f1e2}}, Y: Field{[10]uint32{0x03e14c3d, 0x027563ce, 0x00daa127, 0x026cd1f1, 0x01133460, 0x00f2d650, 0x03da765c, 0x016162a5, 0x010cfea9, 0x0006bae5}}}, + {X: Field{[10]uint32{0x02509e69, 0x0327bfa7, 0x03eeb9b5, 0x03d4ce9c, 0x024b7908, 0x022c1dfe, 0x013a9de4, 0x01bf0f52, 0x021e967e, 0x002ce7fe}}, Y: Field{[10]uint32{0x0265dc05, 0x01039d7a, 0x01e16f3b, 0x00bc4486, 0x03f76c30, 0x007205f8, 0x0218c007, 0x01cb3035, 0x015181ac, 0x003d57ce}}}, + {X: Field{[10]uint32{0x00e7baaa, 0x007198fe, 0x03fd1735, 0x01ca2c79, 0x0201b2a9, 0x0246c582, 0x003fcc4d, 0x01f1346f, 0x037a5ff2, 0x000566e7}}, Y: Field{[10]uint32{0x00c4360a, 0x0202df29, 0x02697a83, 0x01f55e30, 0x015e6012, 0x01e27f50, 0x021c7f0d, 0x013febae, 0x036d86c5, 0x002c2abb}}}, + {X: Field{[10]uint32{0x0385e44c, 0x027dfcf2, 0x021aaf72, 0x02acf04d, 0x016dff76, 0x0189bf11, 0x0107a62b, 0x012c5b1f, 0x03d18d4a, 0x00096043}}, Y: Field{[10]uint32{0x036a2d9b, 0x0348864b, 0x00f442fc, 0x017ccd5e, 0x009252dd, 0x02d2e2c0, 0x0295526a, 0x02f5c2b4, 0x03257794, 0x003d0148}}}, + {X: Field{[10]uint32{0x033352b2, 0x024d37d1, 0x0241d6e1, 0x02440b69, 0x01eab362, 0x0241d620, 0x019864c0, 0x028ca312, 0x024d5860, 0x0009f882}}, Y: Field{[10]uint32{0x03b45203, 0x02e52640, 0x02a7b65c, 0x00ac03a1, 0x03d3822a, 0x000f0469, 0x030b4905, 0x02d43f89, 0x00f2888c, 0x00305663}}}, + {X: Field{[10]uint32{0x001448a2, 0x03cef44d, 0x032dd685, 0x01a13651, 0x006d684a, 0x02885ed8, 0x008f465b, 0x0253999c, 0x014e517a, 0x00120fd1}}, Y: Field{[10]uint32{0x039ad11f, 0x01a2985f, 0x02aa82ba, 0x01bfc308, 0x01d338d0, 0x01772dc3, 0x0123346c, 0x0268d917, 0x0144d93b, 0x00304ecc}}}, + {X: Field{[10]uint32{0x0204e6e5, 0x002967af, 0x03266e2e, 0x023e0e93, 0x0267ef06, 0x03054cbc, 0x024c9a30, 0x012a996b, 0x02f63173, 0x0013d1ec}}, Y: Field{[10]uint32{0x00d99d2b, 0x00d35996, 0x03a27c01, 0x00bb7551, 0x01682439, 0x03b6adcb, 0x033ebcf3, 0x0272d174, 0x034cf11b, 0x00163c7c}}}, + {X: Field{[10]uint32{0x0397db07, 0x02d8d05d, 0x0057424f, 0x00ac4711, 0x00d6f42a, 0x03a04330, 0x031774b8, 0x033a12d3, 0x037e0835, 0x002a9e3a}}, Y: Field{[10]uint32{0x005e743b, 0x0124fa86, 0x0311b0cf, 0x018c85c4, 0x03ee9ffc, 0x00fdcb8c, 0x00c7541d, 0x0351f167, 0x0139d957, 0x000e5900}}}, + {X: Field{[10]uint32{0x00033d49, 0x02c33a33, 0x0194417e, 0x03daa97d, 0x0031a3f1, 0x00dd602c, 0x01c0655c, 0x00158047, 0x018583c0, 0x00349662}}, Y: Field{[10]uint32{0x02f24b08, 0x00744696, 0x02d8bc84, 0x00193413, 0x02b6a830, 0x036af85c, 0x014622a2, 0x02062e8a, 0x01739de8, 0x000d9072}}}, + {X: Field{[10]uint32{0x01e26634, 0x004a9215, 0x03faf487, 0x017567df, 0x03f2d2b8, 0x010d641e, 0x0338f877, 0x02dd3d5b, 0x03a0eccc, 0x0013c08e}}, Y: Field{[10]uint32{0x01a6a456, 0x020a57ec, 0x02e95bc4, 0x012e1a9b, 0x03a2ae09, 0x024edb0f, 0x03c35ea3, 0x014496e3, 0x0033b15d, 0x003e03bf}}}, + {X: Field{[10]uint32{0x023a1589, 0x03df8b5d, 0x003c670b, 0x00a3df05, 0x028eda41, 0x0056b22f, 0x03e13cfa, 0x03425def, 0x008b48ab, 0x002721bc}}, Y: Field{[10]uint32{0x01c2df45, 0x014bc570, 0x00a171a1, 0x036b211a, 0x0217d4ee, 0x00a7536c, 0x02ff453d, 0x032e20e7, 0x03870e9e, 0x00045447}}}, + {X: Field{[10]uint32{0x02137576, 0x00362e3b, 0x0120e913, 0x01dda760, 0x01c5e6ac, 0x0355f89a, 0x03affcec, 0x017323ff, 0x018b72e9, 0x000e021c}}, Y: Field{[10]uint32{0x01ea728f, 0x0227f4cc, 0x00ceedb7, 0x0068278f, 0x00c614a6, 0x03b62d63, 0x02e59cf8, 0x02dc8936, 0x01ebcf5e, 0x003d03af}}}, + {X: Field{[10]uint32{0x00dda3df, 0x03e9d4bf, 0x03b4255d, 0x011d71f7, 0x00eb349f, 0x03b68091, 0x01c80a13, 0x024bf01c, 0x015e3994, 0x00237bf4}}, Y: Field{[10]uint32{0x03f7a771, 0x01317d9e, 0x00c7ff9e, 0x033b8ec3, 0x01a01786, 0x03f0e58c, 0x03b0d19f, 0x03430ed3, 0x03784353, 0x0034f7e9}}}, + {X: Field{[10]uint32{0x0024bf8a, 0x02a2a9f7, 0x03d466ea, 0x03430c92, 0x03ed99f9, 0x0263eb79, 0x00052487, 0x0341f8ea, 0x01425ac1, 0x00236b23}}, Y: Field{[10]uint32{0x02ef8009, 0x0042dcaa, 0x00087d64, 0x0098834a, 0x0262e9d9, 0x00d5375b, 0x032f097d, 0x00d3f362, 0x01b79232, 0x003c8cbf}}}, + {X: Field{[10]uint32{0x03a90e1b, 0x032b011f, 0x01d35329, 0x03f1be04, 0x01e45d26, 0x0090f0f4, 0x03178b4f, 0x039b78a1, 0x0043f3bc, 0x0021f399}}, Y: Field{[10]uint32{0x01724138, 0x00cfa54e, 0x02875fac, 0x03523dc3, 0x000f0af0, 0x01fb7cec, 0x002799d7, 0x012ad316, 0x00196241, 0x0002a25c}}}, + {X: Field{[10]uint32{0x00fdf08d, 0x0259b1aa, 0x02f3bd22, 0x03201d06, 0x02124a21, 0x02dddd6e, 0x0360a3f8, 0x02ddfa7a, 0x03fabf2f, 0x002ffb9a}}, Y: Field{[10]uint32{0x03ba76f7, 0x0339757e, 0x03fa69c9, 0x03a102e0, 0x02cd2e8b, 0x00bf20fb, 0x026f2155, 0x012fc5fc, 0x0399541e, 0x000a6870}}}, + {X: Field{[10]uint32{0x00c2bec1, 0x026bcad7, 0x0341daef, 0x02be0e06, 0x00044873, 0x02bfdcae, 0x001a5537, 0x02a0008d, 0x01a5b553, 0x00030c3f}}, Y: Field{[10]uint32{0x039fea6d, 0x01054ed0, 0x0162e7d1, 0x01b99775, 0x028a96f7, 0x0338d011, 0x004aafc0, 0x023593e9, 0x02b587d8, 0x001738fa}}}, + {X: Field{[10]uint32{0x0000ed97, 0x0375360d, 0x030a00f1, 0x001dca35, 0x014d9226, 0x006d067d, 0x01cadbfe, 0x00675c31, 0x01fd5941, 0x00179c54}}, Y: Field{[10]uint32{0x02108917, 0x03654c7a, 0x0020d73b, 0x0259895e, 0x024c64ec, 0x032f75d7, 0x0136816e, 0x0129f58b, 0x02a5a51d, 0x001aa33b}}}, + {X: Field{[10]uint32{0x0086100b, 0x01a436fb, 0x007c04bf, 0x01ead435, 0x03e974af, 0x01494896, 0x03d06208, 0x0357c3cc, 0x030a66cd, 0x002a723a}}, Y: Field{[10]uint32{0x038e0a2f, 0x02786ca2, 0x02bf329c, 0x0223cebb, 0x00a4371e, 0x03ca4335, 0x02a24bcf, 0x00c7cec0, 0x039d8987, 0x003c8272}}}, + {X: Field{[10]uint32{0x03a2e439, 0x021446b8, 0x0253b946, 0x01cd7ebd, 0x01cb8043, 0x00bb9848, 0x01b16595, 0x0245411c, 0x01d79366, 0x0025579e}}, Y: Field{[10]uint32{0x03930d06, 0x001c02f3, 0x028261de, 0x037c4839, 0x002e82cd, 0x0295b1e8, 0x02a3bcc1, 0x019e8043, 0x03e32a9b, 0x001a36ab}}}, + {X: Field{[10]uint32{0x03a34a71, 0x00ad0277, 0x005fac19, 0x0014f21a, 0x02bef248, 0x02edf875, 0x03bc70b3, 0x0331a96c, 0x0293d3c1, 0x0008b49c}}, Y: Field{[10]uint32{0x039b3357, 0x020dfa58, 0x02389e6c, 0x037ece77, 0x014d5d76, 0x01036ed6, 0x004e42e7, 0x0156dd4f, 0x00e34fc8, 0x0031d2d1}}}, + {X: Field{[10]uint32{0x0137abc0, 0x013a3108, 0x03835b2f, 0x022ce80d, 0x0370d46e, 0x0121ebaf, 0x01d91f71, 0x005d9d3a, 0x02cef74b, 0x003467f3}}, Y: Field{[10]uint32{0x02db7580, 0x02b6db12, 0x00a83fe9, 0x0397cd97, 0x0334ca9f, 0x025332e8, 0x02224f74, 0x002604f3, 0x03f63dca, 0x0016e412}}}, + {X: Field{[10]uint32{0x02336899, 0x00df2470, 0x0073f2a4, 0x01b1492a, 0x001723c3, 0x02f1a9aa, 0x02091136, 0x01200359, 0x022aadc7, 0x001aa85c}}, Y: Field{[10]uint32{0x02319d07, 0x03c7b8b5, 0x03c369a4, 0x0367b599, 0x023d9709, 0x00855273, 0x01640583, 0x016d318c, 0x004cdf49, 0x0023a5c0}}}, + {X: Field{[10]uint32{0x00ea6efc, 0x01be146c, 0x01052f73, 0x01ac1c83, 0x02b16e3b, 0x025ab461, 0x0107262e, 0x0348804b, 0x02239ee4, 0x001e6f4d}}, Y: Field{[10]uint32{0x0018729e, 0x03d36fbd, 0x000fe42d, 0x01beb5ae, 0x036a3116, 0x031f24b0, 0x00972c71, 0x03369077, 0x03dbf568, 0x000292d0}}}, + {X: Field{[10]uint32{0x00f16ce9, 0x00460be9, 0x028c9e40, 0x00800500, 0x03a1c7d8, 0x01a43033, 0x0183c5d3, 0x00ded59d, 0x032c1463, 0x002d780a}}, Y: Field{[10]uint32{0x0069e0b2, 0x0389e564, 0x026fb938, 0x0299c634, 0x021a819b, 0x003a2850, 0x013516fa, 0x02a9c39e, 0x02be3fac, 0x0012e591}}}, + {X: Field{[10]uint32{0x03a7403a, 0x02bdd0c1, 0x0057dd05, 0x02152ce2, 0x0114a2b6, 0x021fde43, 0x0044d643, 0x03ad3419, 0x0271de2d, 0x00238cf8}}, Y: Field{[10]uint32{0x01ecc429, 0x00f5b8a2, 0x0171fc91, 0x03fc3fa7, 0x00e08d73, 0x00f833ac, 0x02011bd0, 0x028773aa, 0x03a2c7a4, 0x00360b54}}}, + {X: Field{[10]uint32{0x0019c2f5, 0x0164f293, 0x0036b074, 0x03d8bd7b, 0x020abd6e, 0x03b68df6, 0x0369b73f, 0x029e0395, 0x004277db, 0x0013ffbd}}, Y: Field{[10]uint32{0x0392f854, 0x021a04f4, 0x01d694a1, 0x02f59efe, 0x03796755, 0x02ec27e6, 0x036162cf, 0x0282ae7b, 0x0057378a, 0x002a28c2}}}, + {X: Field{[10]uint32{0x01f57368, 0x00dc49ba, 0x02bdefb7, 0x035bb2e9, 0x03f7e42e, 0x006e491b, 0x00b03341, 0x001722d6, 0x012a6338, 0x0021e2d9}}, Y: Field{[10]uint32{0x02e85836, 0x007bf055, 0x0020ad54, 0x004749d2, 0x02148c97, 0x01290750, 0x02e71f0b, 0x0056334e, 0x033ed691, 0x000b3efa}}}, + {X: Field{[10]uint32{0x01eb415e, 0x002c41a7, 0x02783dd4, 0x00bc6c20, 0x01a0aa0b, 0x01e6b2f0, 0x0399ee6a, 0x02bb451a, 0x0215aee2, 0x003be69a}}, Y: Field{[10]uint32{0x01e97240, 0x02f42392, 0x00d826d9, 0x03686715, 0x02cffd9c, 0x02d271ea, 0x03c44802, 0x00d45286, 0x02ba7fd5, 0x00264278}}}, + {X: Field{[10]uint32{0x0245bf37, 0x02b081c1, 0x008fcdcf, 0x00630b55, 0x02c7814e, 0x036c33a3, 0x00358855, 0x0348c182, 0x00d41551, 0x00357092}}, Y: Field{[10]uint32{0x01a36f05, 0x02013045, 0x029cb3c3, 0x017e0b6a, 0x003cbeb4, 0x0053542a, 0x0378c88c, 0x007e0a32, 0x009e7bf0, 0x003e717a}}}, + {X: Field{[10]uint32{0x03227d1a, 0x016467d5, 0x00289f2c, 0x003c25bb, 0x026dad0c, 0x005155a0, 0x036e6148, 0x0055f659, 0x01cca526, 0x003b6fc9}}, Y: Field{[10]uint32{0x0299554d, 0x036b80bb, 0x034c7409, 0x007bdb95, 0x03d0ca70, 0x0034dc95, 0x0033c137, 0x0191592a, 0x0088be05, 0x0001a115}}}, + {X: Field{[10]uint32{0x00cf09bb, 0x039ba953, 0x0378b26f, 0x02c37f3c, 0x0314be80, 0x033e4a1a, 0x021f5cf0, 0x038dd894, 0x026fb8e2, 0x00170480}}, Y: Field{[10]uint32{0x02daa596, 0x0299d619, 0x010471bf, 0x014102ea, 0x0094b81a, 0x02072691, 0x010154d5, 0x0194a1e5, 0x01ef4e2c, 0x000f6635}}}, + {X: Field{[10]uint32{0x008e2d6d, 0x0134acb9, 0x030a0b43, 0x0352bce5, 0x03ae728b, 0x019cce31, 0x00dcef7f, 0x00157585, 0x02435056, 0x00309f98}}, Y: Field{[10]uint32{0x018525c9, 0x004dea9f, 0x033ced82, 0x025e158c, 0x029e372d, 0x0334a315, 0x00839eeb, 0x03e51bde, 0x02fc703c, 0x001dad61}}}, + {X: Field{[10]uint32{0x01abaf8a, 0x036bb794, 0x027e7b96, 0x00feac52, 0x007f6760, 0x0263b981, 0x0024e8af, 0x0061ad35, 0x03045140, 0x0028a631}}, Y: Field{[10]uint32{0x00108fda, 0x0358e35a, 0x031085d7, 0x027ae9cb, 0x00463b77, 0x01283087, 0x01b430db, 0x0064d529, 0x01582a1b, 0x001371c0}}}, + {X: Field{[10]uint32{0x012013c4, 0x00bccf86, 0x02f073a6, 0x005223ae, 0x02fdf400, 0x0125a8cc, 0x0204fb19, 0x03a2c2b0, 0x015782da, 0x00387f3a}}, Y: Field{[10]uint32{0x01d02f4c, 0x0138d9c7, 0x008a4a26, 0x00e513cc, 0x01e8ca64, 0x01de8435, 0x022b50aa, 0x01bfe5aa, 0x02e5d578, 0x0010145f}}}, + {X: Field{[10]uint32{0x03097d6d, 0x00e6ff02, 0x033a21e1, 0x010bd9cf, 0x001a2b0c, 0x008d8551, 0x00e49bb6, 0x02e00239, 0x03fc5f06, 0x00039c66}}, Y: Field{[10]uint32{0x02fd7822, 0x0118b0ab, 0x025e1a0a, 0x00cd3e45, 0x01d14e2c, 0x00631251, 0x023929ee, 0x037da287, 0x001d83f5, 0x003c320f}}}, + {X: Field{[10]uint32{0x00ad0a4e, 0x0130e2d4, 0x0235a17f, 0x01436723, 0x020dc27c, 0x039a5f6e, 0x00b11277, 0x03358a10, 0x024ba9d8, 0x001ddd9a}}, Y: Field{[10]uint32{0x031b6431, 0x02da7388, 0x00554b26, 0x01b9bdb9, 0x0060b758, 0x01b0642f, 0x02265ac8, 0x009ee808, 0x02d94483, 0x0016ce8a}}}, + {X: Field{[10]uint32{0x008514b4, 0x03ca390d, 0x00292597, 0x035d8983, 0x004f2c9d, 0x00418da4, 0x0260cda4, 0x02a157e1, 0x021f6215, 0x003c8ddc}}, Y: Field{[10]uint32{0x02cfef79, 0x02e4ce06, 0x03651bcc, 0x03a755ec, 0x0046f5ad, 0x00f2e61d, 0x02e8c6d3, 0x027e73b2, 0x021c187b, 0x0004276a}}}, + {X: Field{[10]uint32{0x027b3e08, 0x014fc269, 0x033b9f19, 0x00edb16b, 0x0397517b, 0x01436f20, 0x004e7a8a, 0x006868f3, 0x01d5e889, 0x0025023d}}, Y: Field{[10]uint32{0x01691555, 0x01e7b256, 0x02b90ed8, 0x0150cb67, 0x03ca33e9, 0x0173b4af, 0x01f87b90, 0x006ba725, 0x0212c32f, 0x0006e0bc}}}, + {X: Field{[10]uint32{0x012a7064, 0x027db055, 0x020f4c4f, 0x03223c59, 0x03883649, 0x03a419d7, 0x03214f13, 0x01e49b27, 0x02551170, 0x002ca0dd}}, Y: Field{[10]uint32{0x011abfcf, 0x02c2f5db, 0x00131829, 0x01054671, 0x03be6ee0, 0x02f5545b, 0x0303ca45, 0x02258b9b, 0x033915be, 0x0022554d}}}, + {X: Field{[10]uint32{0x0378f4a9, 0x019eff92, 0x039c1437, 0x00c4fe4b, 0x03986413, 0x01b034a7, 0x012a9dcb, 0x03d5293b, 0x020036b5, 0x003390ae}}, Y: Field{[10]uint32{0x03a048d4, 0x02f4dff8, 0x028024a7, 0x0360914a, 0x0339b757, 0x03dc1afe, 0x00c91792, 0x02ebd1da, 0x0292cf35, 0x001b951c}}}, + {X: Field{[10]uint32{0x00cbcc59, 0x03b738bb, 0x0007d8e9, 0x02f10bc2, 0x00d3942b, 0x0352bd08, 0x009325e8, 0x00ea5efb, 0x02a01a06, 0x002ecf68}}, Y: Field{[10]uint32{0x02d70b32, 0x016749fe, 0x00d9d5c5, 0x00023685, 0x0225d6eb, 0x035b9ecb, 0x018a19ec, 0x0241ffbd, 0x03aabc39, 0x001f0a39}}}, + {X: Field{[10]uint32{0x02c490ee, 0x00b0378d, 0x02acf539, 0x0249b7a3, 0x01dd3e95, 0x01bec9a4, 0x036f620d, 0x0281d3a9, 0x003c97f3, 0x00097613}}, Y: Field{[10]uint32{0x02d5651a, 0x01ce90c5, 0x0154016f, 0x01b279d6, 0x03415309, 0x02b5bf49, 0x0391ffb1, 0x022a6c1e, 0x0345088c, 0x0017839d}}}, + {X: Field{[10]uint32{0x00d5765b, 0x00e511a1, 0x034a7faf, 0x00af9d0e, 0x03764994, 0x01f01d85, 0x015a01de, 0x01bc60b9, 0x03fdca25, 0x0022ea8e}}, Y: Field{[10]uint32{0x030506f1, 0x0022e034, 0x018117f3, 0x01f41f9c, 0x01587bfe, 0x01cc2c84, 0x01c28164, 0x0057345c, 0x00978bbe, 0x001851fa}}}, + {X: Field{[10]uint32{0x021f5170, 0x01a5e5c0, 0x0319274c, 0x026ca1f1, 0x024d3b6b, 0x000931c1, 0x0065dea8, 0x000e1447, 0x020a5b7d, 0x00141f5a}}, Y: Field{[10]uint32{0x037bf5d3, 0x00eb6b5f, 0x03b372dc, 0x034338c3, 0x03c12793, 0x00eb8cae, 0x02a8141c, 0x020eb91f, 0x024770ea, 0x0004e7c5}}}, + {X: Field{[10]uint32{0x02bbd846, 0x003f4e89, 0x030d6d64, 0x03ced3fc, 0x00e45620, 0x003f085f, 0x037354b1, 0x0316fa66, 0x02f7a059, 0x001f1a64}}, Y: Field{[10]uint32{0x01e0bee6, 0x006838ed, 0x02d03274, 0x02814386, 0x001f64e6, 0x004e7efb, 0x027062d7, 0x019070aa, 0x034efa63, 0x00025911}}}, + {X: Field{[10]uint32{0x02698bf2, 0x0319a496, 0x0238fcfc, 0x005efec2, 0x033d5e33, 0x03a9bc55, 0x00507509, 0x016c8c52, 0x02b01bf6, 0x003d8a0c}}, Y: Field{[10]uint32{0x00c1ec95, 0x0230a995, 0x0040d366, 0x00ee31d6, 0x011546cc, 0x013cdd6f, 0x02ce6f88, 0x037f5cfd, 0x00107b8f, 0x0035cc52}}}, + {X: Field{[10]uint32{0x03d1ebad, 0x03e2e71a, 0x02657def, 0x022b3332, 0x00594f62, 0x02f8f1f1, 0x00e20913, 0x03b0d8ad, 0x00abd8e4, 0x002bb487}}, Y: Field{[10]uint32{0x037100f8, 0x03759cae, 0x01dfdf9c, 0x00158094, 0x02b880a2, 0x03d07515, 0x02de1ac2, 0x01ffeaa2, 0x02f3833c, 0x0003e003}}}, + {X: Field{[10]uint32{0x014bf405, 0x0337f6dc, 0x01f66e06, 0x032adb00, 0x029e0ba8, 0x032a5094, 0x011b877a, 0x026905ae, 0x00a9343a, 0x0011b79e}}, Y: Field{[10]uint32{0x014d2bcf, 0x027662fb, 0x00bf66c8, 0x021c237e, 0x0181f30b, 0x00646136, 0x02809c6f, 0x029cfb84, 0x02524f3e, 0x00305104}}}, + {X: Field{[10]uint32{0x00bd41bc, 0x000ed095, 0x02174a63, 0x02469d42, 0x03ba4b65, 0x0010ee66, 0x016ae193, 0x03a4c94d, 0x01b8ab82, 0x000a0cad}}, Y: Field{[10]uint32{0x00aba440, 0x0398fdcd, 0x0049e249, 0x0093d242, 0x01a82752, 0x032e19a5, 0x02ce5340, 0x03c5248f, 0x02033f59, 0x00300d8f}}}, + {X: Field{[10]uint32{0x03e43f9a, 0x017c3132, 0x007ff939, 0x00109cdb, 0x020d85bd, 0x003cdaf6, 0x00abe39b, 0x005885df, 0x01024b5c, 0x0016d5f1}}, Y: Field{[10]uint32{0x0120766c, 0x0032306f, 0x00c06853, 0x0131eb73, 0x01b282ed, 0x00d7613b, 0x03f57b9b, 0x0011cfc6, 0x0007dc0c, 0x00002109}}}, + {X: Field{[10]uint32{0x01c2f103, 0x0132ec70, 0x03af3dac, 0x0362a7b6, 0x00814c45, 0x025ad2a7, 0x01bf8211, 0x01d63a09, 0x02708063, 0x002ce136}}, Y: Field{[10]uint32{0x030fa325, 0x002fbf48, 0x02d13df3, 0x0056bcc3, 0x03aa2375, 0x0241d5fe, 0x03925965, 0x033101d3, 0x01df6400, 0x0039b998}}}, + {X: Field{[10]uint32{0x009a5e1c, 0x00031697, 0x008f8e73, 0x01c8057b, 0x0282a5b6, 0x0069519a, 0x00a5da96, 0x01122a6c, 0x0191563e, 0x000dbff6}}, Y: Field{[10]uint32{0x00bb961c, 0x03b625c0, 0x013b632a, 0x035812d4, 0x01d1a742, 0x0135c8a9, 0x01873208, 0x0351fa50, 0x0035fc17, 0x0025c19e}}}, + {X: Field{[10]uint32{0x0189d81c, 0x02acd2bb, 0x022e7f5a, 0x00b31b0d, 0x035b9d14, 0x00eb7361, 0x0260ecc3, 0x000d9f93, 0x005257c2, 0x0020d9f9}}, Y: Field{[10]uint32{0x008be121, 0x00efc665, 0x0327af1f, 0x0356ef73, 0x02b77ce2, 0x03d0e067, 0x00a9e74d, 0x02c9bb4e, 0x00903ffa, 0x003f1ffc}}}, + {X: Field{[10]uint32{0x00b0564b, 0x0225a6f7, 0x02d179c9, 0x02e752c6, 0x0004719f, 0x0048e196, 0x00539e24, 0x00a5bed0, 0x03e48cc9, 0x003db391}}, Y: Field{[10]uint32{0x03950e1c, 0x003582a1, 0x02a60093, 0x0019e002, 0x02b524a6, 0x033464ab, 0x01590175, 0x03702dbc, 0x036afe5e, 0x000da34a}}}, + {X: Field{[10]uint32{0x01fae013, 0x00769efe, 0x02ac6509, 0x01623fe7, 0x03194ccb, 0x01c95917, 0x03d20c2a, 0x029bc149, 0x03e4beda, 0x0010e308}}, Y: Field{[10]uint32{0x02ff15f8, 0x004c69a4, 0x00b456d6, 0x02ffe392, 0x03e28dc6, 0x01c8a884, 0x01c93b53, 0x02095f6f, 0x0230c721, 0x00151882}}}, + {X: Field{[10]uint32{0x02bee7bd, 0x02124b61, 0x03fbc84e, 0x02acbbb1, 0x03a1fa1d, 0x0176d405, 0x00e87228, 0x00d2fdeb, 0x02f8cc94, 0x00073d9c}}, Y: Field{[10]uint32{0x01cafdcc, 0x00d2f16d, 0x01018167, 0x0047891e, 0x018932b5, 0x01d9f3bf, 0x03cccedb, 0x03769655, 0x01258bb4, 0x0035b48f}}}, + {X: Field{[10]uint32{0x021a2861, 0x01688fcf, 0x00bf4432, 0x018e2bca, 0x01943052, 0x03dc557f, 0x01cd1574, 0x00a6d9ba, 0x0212b0fa, 0x0011d193}}, Y: Field{[10]uint32{0x02b05141, 0x02a19368, 0x01e5681d, 0x02c286c6, 0x03a2468d, 0x0121a6a0, 0x0166e808, 0x03d5997a, 0x01d53bcd, 0x00082690}}}, + {X: Field{[10]uint32{0x02a964a2, 0x0301d69a, 0x02ff8717, 0x008f82c0, 0x020c4ee2, 0x02efdceb, 0x0077a0a9, 0x0324139a, 0x03a1c884, 0x002a6b7e}}, Y: Field{[10]uint32{0x03f79dc8, 0x02b90120, 0x0236c6cf, 0x0282121e, 0x02b2d809, 0x03fad49f, 0x03371d4a, 0x030d71cf, 0x001da7bb, 0x002ac584}}}, + {X: Field{[10]uint32{0x018edcbe, 0x00071bf1, 0x03f97d31, 0x02b97d05, 0x01824421, 0x0167b3e5, 0x00983dd6, 0x000c496b, 0x02de1060, 0x000a4cbf}}, Y: Field{[10]uint32{0x0176d727, 0x01d508f7, 0x02176e10, 0x0385f210, 0x012df54f, 0x03d32c47, 0x0234fe06, 0x0055afcb, 0x0343e666, 0x00218069}}}, + {X: Field{[10]uint32{0x03a50216, 0x0359969c, 0x01df3e31, 0x00e79a62, 0x0064f9ba, 0x03fdd103, 0x02b62c58, 0x02b41080, 0x01282f87, 0x0016afd5}}, Y: Field{[10]uint32{0x01a1fabf, 0x01a4a541, 0x029c5d32, 0x015ca0b5, 0x00610b6f, 0x03b71738, 0x00a1b370, 0x0170080b, 0x0216f270, 0x001c7713}}}, + {X: Field{[10]uint32{0x0001843a, 0x02670f6a, 0x013ec573, 0x02f34902, 0x020f359c, 0x00b0b1f9, 0x0087fc28, 0x0072b506, 0x015d9a12, 0x00010652}}, Y: Field{[10]uint32{0x033e0c31, 0x014daabd, 0x009d2956, 0x01f3638e, 0x02d5e661, 0x00e641cc, 0x02fefc78, 0x01425046, 0x01974029, 0x002454b8}}}, + {X: Field{[10]uint32{0x01fbc3af, 0x016ade8a, 0x03eae416, 0x013889bd, 0x00a902bc, 0x02b2ec56, 0x027979a5, 0x039270f0, 0x0082ea2b, 0x003f28e1}}, Y: Field{[10]uint32{0x0346f5f4, 0x015a9b73, 0x0234f288, 0x01d5ec03, 0x01bad50a, 0x00a5b110, 0x0235f0f7, 0x00999242, 0x035e5fe6, 0x0004981c}}}, + {X: Field{[10]uint32{0x01065d06, 0x02bd1595, 0x02de14b7, 0x01023244, 0x02d499ec, 0x016f0eac, 0x02135305, 0x00da22b2, 0x01233d70, 0x002f3c14}}, Y: Field{[10]uint32{0x01fb8bf9, 0x032d97e9, 0x0271d5f5, 0x0245d9c3, 0x01c16d49, 0x00d15a21, 0x0084e63a, 0x01a42cd5, 0x03f10645, 0x003cc995}}}, + {X: Field{[10]uint32{0x029a92e1, 0x036292e3, 0x018e479d, 0x03128999, 0x0268bf6c, 0x017f25ac, 0x019cf74f, 0x02d092c5, 0x002f6391, 0x00139c2d}}, Y: Field{[10]uint32{0x013b3688, 0x02ccfdf9, 0x03d36591, 0x02c8ff93, 0x0266c595, 0x02db38d5, 0x0324fa44, 0x007019de, 0x00111af3, 0x0022e9e2}}}, + {X: Field{[10]uint32{0x0121742f, 0x0213c37a, 0x00e6e1be, 0x03ce2897, 0x013cdb83, 0x01d8a370, 0x013703ca, 0x0183ab08, 0x03d7331c, 0x000ffa14}}, Y: Field{[10]uint32{0x01dca5d6, 0x00c39517, 0x0076d0b2, 0x00966d81, 0x03f27b51, 0x003c9374, 0x01961540, 0x03704dbd, 0x0377c2c6, 0x003edf6e}}}, + {X: Field{[10]uint32{0x0248b9be, 0x0098d27d, 0x025f5ee7, 0x0208f33d, 0x01ca42f5, 0x013a5d90, 0x02aa8100, 0x03750028, 0x037fc3ca, 0x003600cd}}, Y: Field{[10]uint32{0x03d6fe99, 0x011c67a3, 0x02900d82, 0x00616b44, 0x00aeed21, 0x033044eb, 0x02b7fbfe, 0x02020152, 0x004f281a, 0x0018d5ee}}}, + {X: Field{[10]uint32{0x030bebe1, 0x001b2781, 0x03845941, 0x00535b62, 0x0290a051, 0x01fe97b4, 0x037128e7, 0x01c5880a, 0x007b6f9e, 0x001777f7}}, Y: Field{[10]uint32{0x01cd76ad, 0x0047b915, 0x021e9d59, 0x03644663, 0x02714b6d, 0x00740c19, 0x0274c81a, 0x03edefeb, 0x00edfa1e, 0x00008fab}}}, + {X: Field{[10]uint32{0x036f7dd5, 0x0133528e, 0x004115bc, 0x01bb5c85, 0x037913b4, 0x004b459e, 0x01353e6b, 0x02523fa4, 0x0243c964, 0x0017c540}}, Y: Field{[10]uint32{0x00af903f, 0x0375366e, 0x014e571c, 0x0336555d, 0x03b18147, 0x028d8313, 0x00991e2b, 0x03440805, 0x01497a2f, 0x000daaf2}}}, + {X: Field{[10]uint32{0x00942647, 0x01a6eb14, 0x00e14979, 0x00898551, 0x030539f0, 0x02c49fbf, 0x00cc89c2, 0x0110a5e9, 0x00975b0c, 0x00092d3f}}, Y: Field{[10]uint32{0x02b5c207, 0x00e895e7, 0x038f9a82, 0x00b290f2, 0x0311d96f, 0x000529de, 0x02f88819, 0x001f617e, 0x03df54ad, 0x002f4f8f}}}, + {X: Field{[10]uint32{0x002202e0, 0x03395739, 0x0276e1dc, 0x03aab987, 0x03f11b18, 0x02191061, 0x025ba2b2, 0x02d7f277, 0x03355556, 0x0028083a}}, Y: Field{[10]uint32{0x02639f66, 0x02416755, 0x0188027e, 0x01bafadc, 0x039765ac, 0x02a60b8a, 0x03667c00, 0x03d15c5a, 0x021f1ad2, 0x00269c7a}}}, + {X: Field{[10]uint32{0x01f37a68, 0x01abf6b8, 0x00a0f86f, 0x01e33356, 0x038a224c, 0x018711f8, 0x0131de59, 0x00fab181, 0x0064f717, 0x00182de4}}, Y: Field{[10]uint32{0x010786b7, 0x017ce312, 0x016decfc, 0x038d89c9, 0x013437e4, 0x022d529f, 0x01fcbaed, 0x01f5b5ae, 0x024cf6a4, 0x000eb412}}}, + {X: Field{[10]uint32{0x01f7d60b, 0x01edf8e8, 0x01685177, 0x02d74442, 0x03d2e233, 0x03238ff7, 0x002d9159, 0x0079512b, 0x01f2b57d, 0x0020d73c}}, Y: Field{[10]uint32{0x02a84b31, 0x017281fd, 0x01b16166, 0x0255f24a, 0x01a7112f, 0x03871b80, 0x03f77339, 0x036c4eee, 0x0135136e, 0x001f48f7}}}, + {X: Field{[10]uint32{0x037f77ed, 0x00e549e0, 0x00dcab1d, 0x0378c623, 0x03606cd7, 0x012cc66e, 0x021d8ade, 0x036b540b, 0x03501f1e, 0x003ebdd0}}, Y: Field{[10]uint32{0x0221bcc9, 0x0122f7ff, 0x0147616d, 0x006e15d4, 0x030fbcd1, 0x026deb3f, 0x01a0fa03, 0x0160392e, 0x00bdbffb, 0x0036efac}}}, + {X: Field{[10]uint32{0x012de938, 0x02775dc3, 0x027620a3, 0x02974eca, 0x01044091, 0x004849c7, 0x03f74edf, 0x02eb88f9, 0x03c3e072, 0x000e5b1b}}, Y: Field{[10]uint32{0x026fa667, 0x027458b7, 0x024799e9, 0x01dbd1aa, 0x029fb0e0, 0x01ae3d53, 0x00499409, 0x01513533, 0x02f8a143, 0x00177948}}}, + {X: Field{[10]uint32{0x0144ab88, 0x0051fb83, 0x03684881, 0x0170790e, 0x00ae8e60, 0x0023bc83, 0x02622f80, 0x03cb2870, 0x0140ad8d, 0x0003e2ae}}, Y: Field{[10]uint32{0x01bff796, 0x00f9c377, 0x011e0406, 0x03d4cf91, 0x01630d28, 0x0201310a, 0x0057163f, 0x009f3b26, 0x0281fa74, 0x00267f94}}}, + {X: Field{[10]uint32{0x01772367, 0x0106d1af, 0x01e78758, 0x01325640, 0x008197af, 0x020a70dd, 0x0122219a, 0x03fff078, 0x0068af6d, 0x0029880a}}, Y: Field{[10]uint32{0x01e9af45, 0x03deeac1, 0x00e4d145, 0x031360ec, 0x03fe9c4f, 0x0235a363, 0x0254eb6f, 0x0127053e, 0x020bc82a, 0x000981e8}}}, + {X: Field{[10]uint32{0x0067e41e, 0x0312611c, 0x02bda4d7, 0x017edda8, 0x00cfbced, 0x00e93f6f, 0x03644842, 0x02185a41, 0x019349a9, 0x002c4b46}}, Y: Field{[10]uint32{0x02d75e31, 0x0270cf70, 0x037ec009, 0x0155c006, 0x0173fdd5, 0x01c05112, 0x0045eb3f, 0x022ac4a4, 0x00e0ac6c, 0x00299b75}}}, + {X: Field{[10]uint32{0x01eb3b3c, 0x01ef7085, 0x01c64fd6, 0x00d17372, 0x009ae0a7, 0x0064e0c1, 0x00d3b97b, 0x003d7f1b, 0x0355b499, 0x00023723}}, Y: Field{[10]uint32{0x01435d83, 0x01044679, 0x002f5fa6, 0x00e3211f, 0x02c00ce4, 0x021c8bd2, 0x0354cc38, 0x023f632e, 0x017d62cc, 0x0006f9d1}}}, + {X: Field{[10]uint32{0x018feeec, 0x03586719, 0x0053b1b6, 0x00f6b743, 0x01f12864, 0x018d47d9, 0x0121c4b3, 0x02792df5, 0x0337d1db, 0x000b02dc}}, Y: Field{[10]uint32{0x039bad53, 0x0264016c, 0x02d9ad8b, 0x0254ec20, 0x01ef765b, 0x001f3b85, 0x03dae62c, 0x004867de, 0x039ceb7c, 0x003a289e}}}, + {X: Field{[10]uint32{0x023bab35, 0x001b24f6, 0x00d0e66d, 0x024aed7c, 0x02b17ad6, 0x009052ac, 0x00a0d1d2, 0x001a2692, 0x00a25010, 0x002247ed}}, Y: Field{[10]uint32{0x027260f6, 0x014f8903, 0x00c7c0cb, 0x00399869, 0x0052d06c, 0x00d1fcf2, 0x013c03bc, 0x00f04efa, 0x0166cdf4, 0x00105a14}}}, + {X: Field{[10]uint32{0x01ca1738, 0x027b4eda, 0x03b02ed9, 0x02d87d6e, 0x0039fbcc, 0x0399a3bc, 0x0213729d, 0x01103f9c, 0x01b1511c, 0x00128cde}}, Y: Field{[10]uint32{0x03ac0f6f, 0x00519328, 0x02b0039d, 0x000f505c, 0x0017b3bf, 0x02d133a2, 0x01d75eed, 0x006476a2, 0x01c239e9, 0x002c4a8f}}}, + {X: Field{[10]uint32{0x03815521, 0x01c18697, 0x000d22c5, 0x00f0721e, 0x017dc58e, 0x00efe359, 0x01a360f8, 0x01afe98b, 0x03c85493, 0x002e2ca9}}, Y: Field{[10]uint32{0x02a2d15b, 0x0168f57d, 0x03021c06, 0x00b05f0a, 0x021cd441, 0x014aa26e, 0x02c70012, 0x00d8b096, 0x000b7719, 0x0023e48b}}}, + {X: Field{[10]uint32{0x039624fb, 0x024491f6, 0x03a7ff01, 0x02d88b25, 0x002fb56a, 0x01f3dcea, 0x029341d7, 0x014b941e, 0x0219d1dc, 0x002419bf}}, Y: Field{[10]uint32{0x011baf50, 0x00f9f51c, 0x00896215, 0x02f02aef, 0x00c281f5, 0x02d9e269, 0x01d4929e, 0x0315d760, 0x03436ec3, 0x0008f466}}}, + {X: Field{[10]uint32{0x00ced8ec, 0x00d35d5f, 0x017c2b05, 0x0379b99d, 0x029f32c8, 0x02d6dcfb, 0x01a18df2, 0x03a6c728, 0x014c19c9, 0x002fe6ac}}, Y: Field{[10]uint32{0x029759c0, 0x007c5d03, 0x011dd048, 0x01d756f2, 0x0385e793, 0x00de8ebd, 0x02724188, 0x018f782a, 0x01233c38, 0x003b25a6}}}, + {X: Field{[10]uint32{0x016f9d03, 0x01978d4c, 0x031af102, 0x021ba216, 0x0378c656, 0x023adeab, 0x01b7e69e, 0x01280889, 0x006f9c65, 0x001a2c9a}}, Y: Field{[10]uint32{0x014da9c3, 0x012e06fc, 0x0019af28, 0x035bd3dd, 0x03b6b407, 0x00e49caa, 0x014d4077, 0x009af615, 0x01048468, 0x00074f5d}}}, + {X: Field{[10]uint32{0x010bf2fa, 0x009c00dc, 0x01a7de04, 0x01a6fdef, 0x024d3bf6, 0x00b27cda, 0x00989d39, 0x02886a53, 0x03855251, 0x00083720}}, Y: Field{[10]uint32{0x01aa749f, 0x01d83c25, 0x0224a974, 0x0251588f, 0x03975d67, 0x0182321d, 0x0080c4b3, 0x00ca7fe4, 0x02ff713d, 0x000085f9}}}, + {X: Field{[10]uint32{0x01fd0368, 0x026872ad, 0x01568168, 0x011a6a1d, 0x025c822e, 0x03164612, 0x01859bf8, 0x0266328e, 0x009b555d, 0x003c2fad}}, Y: Field{[10]uint32{0x02664aac, 0x0022d01c, 0x032f53bd, 0x03c05830, 0x002e8ff7, 0x029d74fd, 0x033b3b30, 0x037e52e8, 0x02e7a23d, 0x00383816}}}, + {X: Field{[10]uint32{0x00a0ee57, 0x0168ed71, 0x022cfaab, 0x032b7229, 0x0016ddc1, 0x00b3d311, 0x01ad8abf, 0x03e7ae90, 0x0173270f, 0x0023c6aa}}, Y: Field{[10]uint32{0x015920ec, 0x038c2996, 0x00a87071, 0x02c0ae68, 0x002bd6bb, 0x00bdbae8, 0x02a441f1, 0x026c5ea1, 0x0260e340, 0x00242a8d}}}, + {X: Field{[10]uint32{0x028a9957, 0x0208a0e4, 0x01dfb413, 0x02a02ab2, 0x00fecd43, 0x024d2e20, 0x00ca847a, 0x03051d83, 0x0135278d, 0x0031c7ac}}, Y: Field{[10]uint32{0x02003804, 0x021c57ad, 0x03299a9d, 0x0311f9c6, 0x0351d23a, 0x03b31fdb, 0x0307ad5d, 0x0206e224, 0x03774852, 0x0010599f}}}, + {X: Field{[10]uint32{0x02c41c81, 0x03b5946f, 0x01180b0f, 0x00f6ee87, 0x00fa904d, 0x01259717, 0x0109df5d, 0x01aa7cdf, 0x026e50d6, 0x003a401c}}, Y: Field{[10]uint32{0x01028e39, 0x0317c25c, 0x01d5a921, 0x0095e1ba, 0x03117f77, 0x0371f5ec, 0x00e64f2c, 0x01bd02cd, 0x0230db03, 0x0035482a}}}, + {X: Field{[10]uint32{0x0123fa38, 0x0398ed80, 0x00c3beda, 0x035d3e1f, 0x0258d72d, 0x0083bf79, 0x03a6d6b7, 0x014aa6e8, 0x00afa159, 0x002502ac}}, Y: Field{[10]uint32{0x03bfcbcd, 0x01974a3c, 0x00702f87, 0x03c14f10, 0x016e5061, 0x012445b8, 0x01e443aa, 0x022866e1, 0x03476f78, 0x003fb1b5}}}, + {X: Field{[10]uint32{0x00c76949, 0x00b9c32a, 0x006be8b6, 0x01a81903, 0x02a03ba4, 0x004b1739, 0x033ce9d4, 0x02619937, 0x026d643e, 0x002684f7}}, Y: Field{[10]uint32{0x0126dd5e, 0x000e54da, 0x02499061, 0x00c0bada, 0x01a46016, 0x02f1b2f2, 0x00c914d4, 0x02361e2d, 0x02966c2d, 0x00108e20}}}, + {X: Field{[10]uint32{0x02c577c3, 0x03e0ee9d, 0x01d6f256, 0x0176f782, 0x01b76d6a, 0x035fd8ba, 0x006b1497, 0x00a7652a, 0x01b2b311, 0x0010e10a}}, Y: Field{[10]uint32{0x00bc1c7d, 0x013e4c97, 0x006cd2e4, 0x0261f11b, 0x03b2398e, 0x03a0cef6, 0x03cb600b, 0x026f86cc, 0x0186a722, 0x00390d80}}}, + {X: Field{[10]uint32{0x02d02605, 0x019df1a5, 0x00f018c1, 0x02f9a8ea, 0x03c8bb59, 0x010c03a5, 0x007b524e, 0x01cb97eb, 0x025d66d4, 0x000fd8ec}}, Y: Field{[10]uint32{0x00ca39dd, 0x0257ced4, 0x0249d44c, 0x028bef7d, 0x01d9971a, 0x033fcb1a, 0x0119bbe5, 0x006734af, 0x0042158e, 0x0001161c}}}, + {X: Field{[10]uint32{0x038cc0c5, 0x00d716ae, 0x013d1e17, 0x03b5b3ef, 0x0047afe5, 0x0237b7bc, 0x004f90b9, 0x0294828e, 0x01f717c7, 0x0001987f}}, Y: Field{[10]uint32{0x01a80abd, 0x01c0a4df, 0x02549d99, 0x00cec765, 0x03b83b74, 0x014be083, 0x012f00ea, 0x00386496, 0x003ab43c, 0x002f6689}}}, + {X: Field{[10]uint32{0x02b951ce, 0x0317e256, 0x018cc279, 0x01f1d6f1, 0x000c999d, 0x03a8b532, 0x0027c367, 0x01abdf43, 0x0326daac, 0x002e706e}}, Y: Field{[10]uint32{0x03140f4e, 0x02e1fac6, 0x0138a767, 0x01eed632, 0x01b872d1, 0x03b575fc, 0x026c5b2e, 0x021aedf1, 0x0334a42b, 0x002934ef}}}, + {X: Field{[10]uint32{0x0127e8fa, 0x006fe82c, 0x010999b1, 0x03b2ead7, 0x017d9b23, 0x03bf4aee, 0x02af4733, 0x03676142, 0x00a0fc6c, 0x0033d6b1}}, Y: Field{[10]uint32{0x011070ec, 0x03c5817e, 0x002872ca, 0x01dff521, 0x01ad465d, 0x0298b2bd, 0x03a94fe3, 0x005c601f, 0x0316c37f, 0x00112498}}}, + {X: Field{[10]uint32{0x02b3b422, 0x02191c6f, 0x01b7413c, 0x0286cf0a, 0x03749caa, 0x03c28d3e, 0x0082c57f, 0x028cb8ee, 0x02afab8d, 0x002a94ac}}, Y: Field{[10]uint32{0x000859ce, 0x038fb303, 0x00244ac4, 0x02105b18, 0x03733260, 0x00c8094b, 0x028df35e, 0x0396546d, 0x03284a7b, 0x0012d589}}}, + {X: Field{[10]uint32{0x0068211c, 0x01fc60d2, 0x0217ad34, 0x0159e61c, 0x007926b0, 0x011a25af, 0x032909c5, 0x002342a7, 0x022eb3aa, 0x0001843c}}, Y: Field{[10]uint32{0x0019e6bb, 0x030d5492, 0x006eac1b, 0x01ef09dd, 0x012dbf63, 0x019bb68f, 0x01571e61, 0x0312cc06, 0x010df35f, 0x00294b86}}}, + {X: Field{[10]uint32{0x011a6d80, 0x00f30d31, 0x03b44acc, 0x01690997, 0x02db65f1, 0x025449e5, 0x00543307, 0x02963381, 0x00c3a485, 0x00004fc9}}, Y: Field{[10]uint32{0x03f3bc3b, 0x01261301, 0x02e611a4, 0x01b6c93e, 0x020f0797, 0x03e01cd9, 0x01c4327c, 0x01a7fcf3, 0x03b618e0, 0x003eb32f}}}, + {X: Field{[10]uint32{0x00eb0f24, 0x02176768, 0x02bdf922, 0x03ed0573, 0x01caeb18, 0x008b16a1, 0x00112e69, 0x026ca72c, 0x02a84927, 0x000573af}}, Y: Field{[10]uint32{0x0075d833, 0x03a27e38, 0x00d05821, 0x014a3430, 0x01c36de4, 0x029dec70, 0x01af7ed4, 0x03e6f54e, 0x00fe158f, 0x0008f973}}}, + {X: Field{[10]uint32{0x004d97f6, 0x03721c80, 0x029a55f2, 0x032025bc, 0x02cf92e0, 0x00093586, 0x001b1d60, 0x014d9f71, 0x018efb7d, 0x00098168}}, Y: Field{[10]uint32{0x0266d375, 0x012f5417, 0x022f4f94, 0x0132500b, 0x02fd6d67, 0x002b5bf4, 0x018ae518, 0x02dfb371, 0x0374f111, 0x00235a99}}}, + {X: Field{[10]uint32{0x027f9995, 0x002c172f, 0x0356c33d, 0x004cda52, 0x0225cd05, 0x00d6cd8a, 0x0236d6cd, 0x015bcdfe, 0x0272a787, 0x00396238}}, Y: Field{[10]uint32{0x0072fbb7, 0x015bff55, 0x0191766e, 0x0300341c, 0x02115425, 0x0348f94f, 0x00715c6a, 0x010a5a6e, 0x018320b8, 0x00056fae}}}, + {X: Field{[10]uint32{0x016b46a5, 0x021d436f, 0x00b6ccb9, 0x00e64d16, 0x023a02cc, 0x03de729f, 0x03205cb0, 0x03b716da, 0x0122f264, 0x002000c9}}, Y: Field{[10]uint32{0x011a44a8, 0x01c60ee1, 0x01043bca, 0x03a3530f, 0x02fd2c1d, 0x02aa5c97, 0x038b93b5, 0x007aea63, 0x02f4fb4e, 0x0011e724}}}, + {X: Field{[10]uint32{0x0241bfaa, 0x01a8be85, 0x013f3c16, 0x02dfe45b, 0x0394b525, 0x0084a1f9, 0x0101308a, 0x0206d5c1, 0x000ee1a5, 0x00254301}}, Y: Field{[10]uint32{0x0338ea71, 0x03bc76ed, 0x01a751e4, 0x022370e1, 0x0252441a, 0x01d808de, 0x0171725f, 0x01c29a7c, 0x020e911d, 0x00390f6c}}}, + {X: Field{[10]uint32{0x02c391fa, 0x015402a1, 0x018759db, 0x02f8a0b7, 0x01a634b9, 0x02e2f03d, 0x030aecad, 0x03b95cb9, 0x0336423f, 0x003a267f}}, Y: Field{[10]uint32{0x003a9bd1, 0x01231f2d, 0x02790a02, 0x02432c62, 0x01886117, 0x03e1ea44, 0x03100340, 0x02da3899, 0x03b0dfe6, 0x0001fb65}}}, + {X: Field{[10]uint32{0x00a1a51b, 0x00a972f6, 0x0045e833, 0x034a715e, 0x006a7415, 0x01b867ee, 0x00ce5c76, 0x01adea3e, 0x008f0c20, 0x00348d9a}}, Y: Field{[10]uint32{0x016ec9e9, 0x00170b19, 0x01113adb, 0x021d5486, 0x01d50988, 0x0060ed49, 0x02d65085, 0x012983f9, 0x019fe3d5, 0x001cbc8d}}}, + {X: Field{[10]uint32{0x019dcccf, 0x038be884, 0x0286ae94, 0x017f7709, 0x01430eab, 0x01718a3d, 0x02458c58, 0x00bc920f, 0x0071da4b, 0x00234f5f}}, Y: Field{[10]uint32{0x0361178f, 0x01e3d607, 0x00aad827, 0x000c7d65, 0x021f435c, 0x0191ffc7, 0x039c22ad, 0x03c832f5, 0x00e47948, 0x000cf102}}}, + {X: Field{[10]uint32{0x032651a9, 0x01ff66ed, 0x028a587d, 0x01431585, 0x03fee4b7, 0x034418fe, 0x02542ba5, 0x02066546, 0x037ae891, 0x000c83c4}}, Y: Field{[10]uint32{0x03c402c5, 0x016f3cf4, 0x02232679, 0x0262a317, 0x03086036, 0x014efc00, 0x0275a021, 0x0387bcc8, 0x006ae2a4, 0x002e1015}}}, + {X: Field{[10]uint32{0x0081352c, 0x015df186, 0x020de8ce, 0x01fe691b, 0x027546c8, 0x03519006, 0x01686072, 0x02c967d1, 0x03ce3fe6, 0x0027a2bf}}, Y: Field{[10]uint32{0x029d02f1, 0x01def530, 0x00f9273e, 0x03db14fb, 0x01af8639, 0x01c8d949, 0x00ebaf09, 0x01fdf098, 0x0301d83b, 0x00343a8d}}}, + {X: Field{[10]uint32{0x021eef64, 0x031cacf1, 0x03f539be, 0x03d26b4a, 0x03daf70f, 0x0090487b, 0x03c915ea, 0x00e61ca4, 0x01b81d35, 0x00177d19}}, Y: Field{[10]uint32{0x01e690af, 0x01069eb5, 0x03e54385, 0x01f3ccf0, 0x038b3804, 0x003d1820, 0x00c193d4, 0x03210416, 0x01ff5ae4, 0x000c81b1}}}, + {X: Field{[10]uint32{0x02f28f58, 0x01197523, 0x0064d6e1, 0x00e621a8, 0x011312bb, 0x009ae8f1, 0x0061d488, 0x00d42fd2, 0x0326a18c, 0x00266734}}, Y: Field{[10]uint32{0x00b1ef12, 0x02244772, 0x00b0dd41, 0x02c2fa21, 0x00a9fcea, 0x02554582, 0x018e6629, 0x0337d9e6, 0x032ad6dc, 0x000b362a}}}, + {X: Field{[10]uint32{0x03ce163b, 0x02c09ada, 0x034cdc0a, 0x019d1d86, 0x03479a66, 0x01551832, 0x02ba6f42, 0x02705be8, 0x00ee574d, 0x0020763f}}, Y: Field{[10]uint32{0x00673143, 0x02d2b166, 0x00ca638c, 0x03f3f5f2, 0x003cf771, 0x0169a605, 0x039a996f, 0x01e9a8ed, 0x0334f589, 0x0016539f}}}, + {X: Field{[10]uint32{0x0096d278, 0x01b610f4, 0x020dd4da, 0x027b254e, 0x0385839c, 0x01be1460, 0x032b42d5, 0x01cefbe4, 0x0324b9ac, 0x0027a0f5}}, Y: Field{[10]uint32{0x00c88869, 0x03e9788c, 0x01689a1a, 0x00029287, 0x0100d3a0, 0x03125bb1, 0x02fda95a, 0x016b2e27, 0x00abfed0, 0x003e2c63}}}, + {X: Field{[10]uint32{0x02320c3e, 0x0244510f, 0x0231764f, 0x00ecd6ea, 0x01908ec3, 0x00ecb640, 0x00b1f647, 0x00f022bb, 0x00b13b44, 0x00262e8e}}, Y: Field{[10]uint32{0x0399b84f, 0x0075808f, 0x020a44df, 0x01e8d0d2, 0x010d8ece, 0x01bd0bd2, 0x012f972e, 0x00cbefd7, 0x01d7fc22, 0x000d0fd8}}}, + {X: Field{[10]uint32{0x02a875ec, 0x00120194, 0x01285de7, 0x01ef9b0d, 0x01582244, 0x03a5c19c, 0x03a94886, 0x017bb169, 0x025a9adf, 0x000824ba}}, Y: Field{[10]uint32{0x024e7f35, 0x02b71efa, 0x0228f304, 0x03099650, 0x0195a7e9, 0x00985998, 0x00facc8e, 0x009c8aa5, 0x02eb5238, 0x00377edc}}}, + {X: Field{[10]uint32{0x02eeb75a, 0x00c13080, 0x01e765b9, 0x00e65687, 0x00c044c6, 0x02f25d04, 0x037bce4e, 0x02817ab1, 0x009a8f45, 0x003e7ba4}}, Y: Field{[10]uint32{0x0301705e, 0x03b93b84, 0x01d51a41, 0x034df8ba, 0x023a39c0, 0x02babc4f, 0x03e50fd2, 0x02c3a11c, 0x01ba93f5, 0x0021840c}}}, + {X: Field{[10]uint32{0x01df101c, 0x03394d4d, 0x00603c75, 0x009f18fa, 0x015c676e, 0x03baa6fe, 0x002dfc02, 0x0169f2cd, 0x00e23bc5, 0x00284e1e}}, Y: Field{[10]uint32{0x03108427, 0x03ffe09e, 0x02ed001b, 0x0214d71c, 0x02233f05, 0x034fa069, 0x02a2f833, 0x02c24424, 0x02d03d4b, 0x000d7033}}}, + {X: Field{[10]uint32{0x004ae3e4, 0x01ec6d84, 0x0065d34f, 0x03e0e9c6, 0x03b863a7, 0x02760300, 0x004cfce0, 0x037f61ca, 0x01d2cd32, 0x003a3b20}}, Y: Field{[10]uint32{0x0017648b, 0x009c89c1, 0x01e4ec6e, 0x03a2c219, 0x011d24c4, 0x0145eff2, 0x032b01af, 0x0375ffd4, 0x0377ee12, 0x00182fa6}}}, + {X: Field{[10]uint32{0x00f35b60, 0x00ae2607, 0x0297a664, 0x0261a6e6, 0x00d48e98, 0x013818e4, 0x030b18fe, 0x03710cd1, 0x02551529, 0x003c1f2c}}, Y: Field{[10]uint32{0x0223b550, 0x00a5e9b0, 0x03d2b0a3, 0x00856544, 0x01c6e854, 0x0388d56a, 0x034b9412, 0x018cf566, 0x03776d74, 0x002f51ba}}}, + {X: Field{[10]uint32{0x02af7f51, 0x022136ae, 0x03dd82fe, 0x00fcbcb2, 0x0242becd, 0x02982e0d, 0x03189ae0, 0x02a7c2a5, 0x0023dcfd, 0x000e6f39}}, Y: Field{[10]uint32{0x022c8e4d, 0x01e2ec7a, 0x01a2b2db, 0x03a0525e, 0x01f3430b, 0x00c0fb24, 0x00903127, 0x008679d1, 0x00aa4b71, 0x00305667}}}, + {X: Field{[10]uint32{0x029ad3cf, 0x03f44147, 0x00ec80e0, 0x019f3cb6, 0x0358142f, 0x00f2793f, 0x033de211, 0x02e05062, 0x01cbd51d, 0x001b6984}}, Y: Field{[10]uint32{0x001e4b7f, 0x01e3fcc1, 0x00d704d1, 0x01a0b867, 0x02f7fe55, 0x02c0d203, 0x03d494eb, 0x03d953f6, 0x00483250, 0x001af0bc}}}, + {X: Field{[10]uint32{0x031aed8a, 0x0327eee2, 0x00c709a3, 0x011de51c, 0x01f4e13a, 0x029fa571, 0x00a5e8ef, 0x003ae629, 0x00038d2e, 0x0033b6e7}}, Y: Field{[10]uint32{0x019a0d40, 0x01ab5361, 0x028feeca, 0x0297dfd7, 0x0046804f, 0x034213d0, 0x00d5d56e, 0x0362f208, 0x0131de42, 0x001e68bf}}}, + {X: Field{[10]uint32{0x01ae3d82, 0x01e841c1, 0x02d8a3a0, 0x02134037, 0x0225393f, 0x01b107f9, 0x0340458f, 0x001b40cb, 0x00986d11, 0x001f6255}}, Y: Field{[10]uint32{0x026d0d61, 0x03561a86, 0x01866ee7, 0x030ac842, 0x02edd110, 0x0382b783, 0x02a117c7, 0x01652d86, 0x02cfff1c, 0x001753ed}}}, + {X: Field{[10]uint32{0x03dc3df7, 0x000310f5, 0x01aa175a, 0x01431ba7, 0x00851aaf, 0x00fb3b18, 0x01e26069, 0x010ebfac, 0x01627370, 0x00293ca4}}, Y: Field{[10]uint32{0x039c4439, 0x009a0871, 0x00846b27, 0x01ef118a, 0x0392265d, 0x0116abb4, 0x03abb201, 0x012c54e3, 0x00e8fb76, 0x002fbaff}}}, + {X: Field{[10]uint32{0x011cab70, 0x0058bc3e, 0x000a29cb, 0x01959a03, 0x00e0ba81, 0x01a26ef3, 0x00ce964e, 0x032c23b0, 0x01acde4c, 0x002d8e27}}, Y: Field{[10]uint32{0x00303529, 0x00103294, 0x02cdd679, 0x029fbbf6, 0x039ee836, 0x0238c7f9, 0x032826d2, 0x0091d05e, 0x03dbd2d0, 0x00391031}}}, + {X: Field{[10]uint32{0x02fcc9e1, 0x022bbefd, 0x00b4927b, 0x005a6673, 0x01ae4ee0, 0x03bbcdfd, 0x00ac2d6a, 0x030dbe5e, 0x01acf752, 0x001cb39b}}, Y: Field{[10]uint32{0x039bbca6, 0x017c43b5, 0x03bc67c4, 0x03379e5a, 0x028ad38a, 0x0380409f, 0x00c6d4d5, 0x01100f58, 0x0297bbd8, 0x00339ab0}}}, + {X: Field{[10]uint32{0x00255f06, 0x004e119b, 0x0117531b, 0x02b43e2b, 0x014fb3e5, 0x01af1430, 0x00931faa, 0x01096958, 0x036fcfd7, 0x003beb4c}}, Y: Field{[10]uint32{0x015a82c0, 0x008ba3f8, 0x0203b2b4, 0x00251064, 0x039eab6b, 0x00605c58, 0x03ab5597, 0x026847b1, 0x00f4eeee, 0x000fede1}}}, + {X: Field{[10]uint32{0x034eaae3, 0x0177ac80, 0x0349c289, 0x01b3ce0a, 0x0322002c, 0x00e4f295, 0x034bd1f0, 0x008599f1, 0x022d04bb, 0x003e6352}}, Y: Field{[10]uint32{0x016fd148, 0x01b3116d, 0x0269e9a3, 0x022b59a7, 0x0297a26f, 0x01851f2e, 0x0350763c, 0x01e2a0d1, 0x031f7e37, 0x00261d78}}}, + {X: Field{[10]uint32{0x0134183f, 0x02251832, 0x02eafb0b, 0x0079961d, 0x012b0d16, 0x02b04fb4, 0x01eea342, 0x0108ccb1, 0x034d2bc2, 0x001da33d}}, Y: Field{[10]uint32{0x02fdc34e, 0x0003e9e8, 0x022654ba, 0x00cb9cb9, 0x00af083b, 0x0341a954, 0x02e9f72d, 0x0135ebe1, 0x0207e55b, 0x00108cdd}}}, + {X: Field{[10]uint32{0x01beff7b, 0x0049d369, 0x01c59979, 0x01b88949, 0x03d34cfb, 0x02a45b42, 0x01ec27aa, 0x03189645, 0x03b01d05, 0x002b09bc}}, Y: Field{[10]uint32{0x014f4045, 0x033b37fa, 0x0254a42f, 0x01dae2f7, 0x01a30055, 0x03afac66, 0x0113bcb1, 0x005a0746, 0x00ac89b6, 0x0038d9d8}}}, + {X: Field{[10]uint32{0x0374fbac, 0x0263cd07, 0x01285212, 0x00368234, 0x02fcd905, 0x02c10a8e, 0x025045e1, 0x002f8b99, 0x0181741a, 0x0036b750}}, Y: Field{[10]uint32{0x00a84f60, 0x01b80339, 0x0002b805, 0x02f2a40a, 0x03f6a4df, 0x018d5d39, 0x01e4e2c8, 0x03741098, 0x03e0da78, 0x001b3d1b}}}, + {X: Field{[10]uint32{0x0286a3e8, 0x0342ae46, 0x00f82a6f, 0x03aa46a2, 0x032c4e1e, 0x010fc6dc, 0x03139ed1, 0x01aa18be, 0x0198ce9e, 0x00395945}}, Y: Field{[10]uint32{0x01f1ac98, 0x03bf6cbc, 0x0221a9e9, 0x022b55a6, 0x000770fd, 0x03d357db, 0x01723d8f, 0x01b04042, 0x033669ab, 0x002ed084}}}, + {X: Field{[10]uint32{0x030f5b02, 0x03922b89, 0x03d65de9, 0x02dc3730, 0x032d47a2, 0x0007b8ea, 0x0369b454, 0x03d658e6, 0x011eb4f0, 0x003c9bde}}, Y: Field{[10]uint32{0x030ff699, 0x026f02d1, 0x004fbe1a, 0x02458cea, 0x002693c5, 0x02915d5f, 0x003c799e, 0x02efc946, 0x03251fe5, 0x0008b8d2}}}, + {X: Field{[10]uint32{0x023da9da, 0x0379a398, 0x018ac19f, 0x008a76de, 0x032d2bec, 0x02137628, 0x01da048a, 0x00bd21ea, 0x010b9561, 0x0029433c}}, Y: Field{[10]uint32{0x03dcc576, 0x020554c2, 0x02888e4c, 0x033730f7, 0x00ce345e, 0x03358166, 0x039f9f47, 0x02899076, 0x013c0a76, 0x0014041f}}}, + {X: Field{[10]uint32{0x0245c13c, 0x025fc6c2, 0x00c10a11, 0x02ad7b17, 0x03e917e5, 0x0205f2e6, 0x0386a5c1, 0x01b06f57, 0x03b90273, 0x0031d220}}, Y: Field{[10]uint32{0x008beedc, 0x03d2f44b, 0x0232e847, 0x01570ade, 0x01d1c2bd, 0x003a89d6, 0x013e73b6, 0x00f3fc35, 0x03bce739, 0x00380f10}}}, + {X: Field{[10]uint32{0x01e1c0a9, 0x03fa0002, 0x02e9c98d, 0x02937400, 0x01be7cad, 0x00a78b23, 0x005c00f6, 0x03b622ec, 0x03d01741, 0x00028d0d}}, Y: Field{[10]uint32{0x007bca1c, 0x0181c4e1, 0x01c9ed21, 0x019c2ed0, 0x00fc268e, 0x0134fbbe, 0x01a00afa, 0x032af47f, 0x005a257f, 0x002989f8}}}, + {X: Field{[10]uint32{0x01c8312d, 0x027fe8e6, 0x03093832, 0x01dc128f, 0x0090c00c, 0x00c1a1bf, 0x018ba895, 0x02ead37a, 0x0188f179, 0x0029b312}}, Y: Field{[10]uint32{0x0170b6df, 0x03fd1d67, 0x01643712, 0x03bd3d84, 0x01bbba86, 0x004d191c, 0x03cad7c1, 0x0169e4a6, 0x00737db2, 0x003d3ae9}}}, + {X: Field{[10]uint32{0x00b84dbe, 0x0286b29c, 0x02f2400d, 0x020c4e4d, 0x039e6801, 0x03286af8, 0x03330776, 0x02355ecc, 0x00a8f577, 0x0003becd}}, Y: Field{[10]uint32{0x03428d3f, 0x00a61e1f, 0x025952f0, 0x0328526c, 0x027e5845, 0x019d4dae, 0x00878e71, 0x03ea60c8, 0x016efc53, 0x002a5288}}}, + {X: Field{[10]uint32{0x00dfa07a, 0x017ef5bf, 0x01a94a2c, 0x02e0fe91, 0x03019ec3, 0x021fee6a, 0x03914ef4, 0x039aeec8, 0x02d81385, 0x0004e611}}, Y: Field{[10]uint32{0x00fce099, 0x0132f1ab, 0x02aa09c3, 0x02cba325, 0x0362d837, 0x0237f682, 0x01f6aff2, 0x004336a6, 0x004e599b, 0x0013edf3}}}, + {X: Field{[10]uint32{0x01f2a101, 0x02336aeb, 0x01bb7a53, 0x00284ca6, 0x0249c209, 0x02d4fa98, 0x01f6eeaa, 0x0159ea0f, 0x03af98ba, 0x00198248}}, Y: Field{[10]uint32{0x0094bd29, 0x003c3623, 0x0078d446, 0x021a5c55, 0x00ee2a56, 0x0118bd10, 0x01890ee8, 0x025c89a6, 0x00cab1a2, 0x002ca2d6}}}, + {X: Field{[10]uint32{0x012be3c6, 0x000e243d, 0x01a98d3e, 0x03430772, 0x02d2f86b, 0x00698d16, 0x0389d31f, 0x005f78fc, 0x02b58c75, 0x003c6024}}, Y: Field{[10]uint32{0x00f9c906, 0x02a6bf5a, 0x006d07e8, 0x018ca8db, 0x00440ca7, 0x00ec0c87, 0x00276973, 0x013b5df7, 0x02049148, 0x002a0f9e}}}, + {X: Field{[10]uint32{0x01d0ab75, 0x03844e20, 0x03f74bfe, 0x019d9233, 0x017b7004, 0x02d7eca5, 0x026a6e25, 0x01503ce2, 0x020d1b2c, 0x003a342a}}, Y: Field{[10]uint32{0x0314409a, 0x02ee2af4, 0x016e9f19, 0x032ffaa9, 0x021abfc0, 0x022a0260, 0x00c3f298, 0x01706f43, 0x03be5205, 0x0028c932}}}, + {X: Field{[10]uint32{0x03526c1a, 0x00b7f11b, 0x025f3c7d, 0x00b540c0, 0x021d8ee7, 0x007dd18f, 0x01613df5, 0x001d0c3e, 0x00c0230a, 0x000961a8}}, Y: Field{[10]uint32{0x0016c735, 0x000eb026, 0x02653ede, 0x02891d01, 0x03ce9b1d, 0x02143d70, 0x007b4694, 0x011c350f, 0x01a1eb2b, 0x0028a5cd}}}, + {X: Field{[10]uint32{0x037dffd8, 0x032ad099, 0x00e48a12, 0x015390b0, 0x018be682, 0x0375f23d, 0x01bb2d27, 0x01b51b0c, 0x02888d82, 0x00085f3e}}, Y: Field{[10]uint32{0x001ac4ce, 0x025adab0, 0x031a006d, 0x015fd204, 0x0134179c, 0x02be477b, 0x01f99017, 0x03ec540d, 0x00309ff0, 0x00135767}}}, + {X: Field{[10]uint32{0x02edf4c0, 0x00e8d4c6, 0x03ccb820, 0x02fc4035, 0x03943af3, 0x00df3f59, 0x02791eb0, 0x00ee3e79, 0x013471aa, 0x0013a996}}, Y: Field{[10]uint32{0x00b7b4c5, 0x004a6121, 0x02ca506c, 0x00d3222f, 0x03ded8a5, 0x03257a65, 0x00474035, 0x000b1160, 0x02c419a3, 0x003fbb66}}}, + {X: Field{[10]uint32{0x00c7a1ae, 0x02b09346, 0x01f7d4fa, 0x03cb2591, 0x007d7759, 0x0125fbaf, 0x0122150c, 0x01aa93a9, 0x028b5102, 0x0025d2e0}}, Y: Field{[10]uint32{0x03aa9d26, 0x0063fb53, 0x0109396d, 0x000ff2c1, 0x0165cd3a, 0x02a07c98, 0x026f344c, 0x01ccd895, 0x01a0c308, 0x00300da7}}}, + {X: Field{[10]uint32{0x00978186, 0x031c25a7, 0x01755529, 0x0113b475, 0x0299bb45, 0x033d16cd, 0x01c8ae93, 0x035e9653, 0x0379d572, 0x00366056}}, Y: Field{[10]uint32{0x035241fa, 0x038d62b9, 0x013ecd67, 0x036193b5, 0x035b6c20, 0x0023e99f, 0x00ea24f5, 0x006552b1, 0x02cbf518, 0x0027f3ae}}}, + {X: Field{[10]uint32{0x00368837, 0x00acc3ae, 0x02d38efd, 0x02f7e7da, 0x01478208, 0x03596ab0, 0x01506f1b, 0x03539f2f, 0x01970d9b, 0x00149c49}}, Y: Field{[10]uint32{0x033df18e, 0x008c98a2, 0x01d79aef, 0x03044b5b, 0x0068bbf0, 0x014da004, 0x00911d16, 0x03b2b668, 0x0196ba2c, 0x0014bb2a}}}, + {X: Field{[10]uint32{0x009abf6d, 0x01577a11, 0x018186af, 0x0278ae2b, 0x00ed2fc8, 0x022a3d3a, 0x030e1fee, 0x03d7e7bd, 0x01afd890, 0x0036508c}}, Y: Field{[10]uint32{0x019e2867, 0x01195248, 0x01e27e06, 0x03d23343, 0x0384278f, 0x00b61972, 0x03475fc3, 0x0248609c, 0x036ef078, 0x0009964a}}}, + {X: Field{[10]uint32{0x019a7d90, 0x00a2936a, 0x034bfe53, 0x02c1c534, 0x02b661f7, 0x01d8fae6, 0x03a99d4b, 0x036558ec, 0x02317a69, 0x00192144}}, Y: Field{[10]uint32{0x01d46bc6, 0x024828d4, 0x02fb4af4, 0x02cde048, 0x021e06d3, 0x028fa485, 0x02020885, 0x01038dbe, 0x02335150, 0x003ac82e}}}, + {X: Field{[10]uint32{0x0368a8c2, 0x00e0473b, 0x0021779c, 0x037c3b80, 0x0370df9e, 0x03018959, 0x03413a5f, 0x00bc5e63, 0x011bef66, 0x0034292c}}, Y: Field{[10]uint32{0x0170b9cd, 0x00a7dd37, 0x00dbe8b3, 0x018ffd35, 0x03748b7a, 0x02ace7ba, 0x00ef5c99, 0x01a5170e, 0x012018e1, 0x00352ee6}}}, + {X: Field{[10]uint32{0x005802b6, 0x001fc1a6, 0x0249b3dc, 0x00dcef54, 0x01dcf546, 0x032f5dac, 0x03e103dd, 0x0121a07e, 0x0086c4b2, 0x0007626e}}, Y: Field{[10]uint32{0x0369535d, 0x0024e7d8, 0x01f3030d, 0x01150af3, 0x02a7885a, 0x00e9c31a, 0x036056ba, 0x00415df8, 0x00caaacd, 0x0028ce73}}}, + {X: Field{[10]uint32{0x00dbb256, 0x01d72cb9, 0x036c010a, 0x008efac2, 0x039dbab2, 0x00e2e82d, 0x036682fa, 0x010f93c4, 0x01d59363, 0x002db3b3}}, Y: Field{[10]uint32{0x019f7be8, 0x0236c0cc, 0x01d583ba, 0x00ba090b, 0x025f77d1, 0x03604d99, 0x01a5d1fe, 0x021e896f, 0x005387dd, 0x000a4d70}}}, + {X: Field{[10]uint32{0x032f8e24, 0x02ba942f, 0x002c4028, 0x0244261a, 0x0040f1b4, 0x03d6065a, 0x00a6c5fb, 0x03611cd7, 0x00e0a0ca, 0x00212c91}}, Y: Field{[10]uint32{0x021f7a71, 0x0226b221, 0x021bad82, 0x018b6837, 0x03148c8e, 0x038e9762, 0x0313087e, 0x002c47d5, 0x028c7df8, 0x0018b8a3}}}, + {X: Field{[10]uint32{0x00114d1a, 0x037db073, 0x036d1638, 0x01650ffa, 0x01664331, 0x038ddf10, 0x00366102, 0x0200a0e5, 0x00ff2a90, 0x003e57b3}}, Y: Field{[10]uint32{0x0158eba2, 0x00e34af9, 0x039ca7de, 0x020586d3, 0x0256d16e, 0x022615bb, 0x011b9ea1, 0x001b36e3, 0x003f1a03, 0x002f436a}}}, + {X: Field{[10]uint32{0x010f55e3, 0x03bcc874, 0x0132727f, 0x00d79043, 0x032a1e63, 0x0268b748, 0x02ccd255, 0x00f792bc, 0x01fd3e61, 0x001f133b}}, Y: Field{[10]uint32{0x03d7b1d8, 0x030893b9, 0x026960cd, 0x01f504c1, 0x0111d482, 0x01ca9983, 0x017f73c6, 0x0014db1a, 0x0109d9d0, 0x000cc7c8}}}, + {X: Field{[10]uint32{0x00269713, 0x03dc80e8, 0x021c34b9, 0x019bb4c6, 0x02f88af8, 0x010d789d, 0x03918de0, 0x0360a792, 0x02381bf2, 0x0008d70b}}, Y: Field{[10]uint32{0x00dbf929, 0x00413be8, 0x03d0ff26, 0x00111803, 0x02815a13, 0x013aaa1e, 0x00486144, 0x0024bb9f, 0x030d2671, 0x00143737}}}, + {X: Field{[10]uint32{0x0207cd73, 0x00a1a0fa, 0x02923761, 0x021b1777, 0x000cdf26, 0x007128e2, 0x03ca488d, 0x0025d545, 0x00d09ab5, 0x000aa587}}, Y: Field{[10]uint32{0x0398abe5, 0x024efa48, 0x0152dd7f, 0x00bbb75d, 0x0384f84c, 0x01d951c8, 0x000f7fde, 0x011b48f3, 0x0076b2ee, 0x00217244}}}, + {X: Field{[10]uint32{0x00fd65e3, 0x023d0393, 0x01b51a62, 0x01d424f4, 0x03e00c47, 0x02fc60fd, 0x013f591c, 0x02e32e1c, 0x0091f0af, 0x002562f1}}, Y: Field{[10]uint32{0x009a65b3, 0x01431a82, 0x02eef92d, 0x01eaba3d, 0x01b2a09a, 0x03c1d868, 0x013e026a, 0x037f9244, 0x0339fa21, 0x002fd6f8}}}, + {X: Field{[10]uint32{0x015f78fd, 0x0196f60f, 0x0273ddc8, 0x03319093, 0x030adb5c, 0x01adfa54, 0x035a2e24, 0x01eafe67, 0x00a37b5b, 0x001ba583}}, Y: Field{[10]uint32{0x025e0e15, 0x0166cd5a, 0x01a81bd6, 0x02ca7335, 0x00dcc4b0, 0x0285bf32, 0x02df612e, 0x0190fd7c, 0x03d1d5e9, 0x0014eb52}}}, + {X: Field{[10]uint32{0x00d05871, 0x03b3a3fc, 0x01b5a8b2, 0x029e9237, 0x00e747e4, 0x036475aa, 0x01615257, 0x02eeb776, 0x020e9272, 0x0035eb24}}, Y: Field{[10]uint32{0x00c87ed8, 0x019b893c, 0x02dc4adf, 0x008186d9, 0x039d4c76, 0x00302630, 0x000b96d0, 0x02b178e3, 0x01fcc37b, 0x0018e06e}}}, + {X: Field{[10]uint32{0x01730609, 0x00754c57, 0x00078b6c, 0x00bfcb67, 0x024481c1, 0x02fa506b, 0x0123844e, 0x015c1bb0, 0x003b1de9, 0x00026c20}}, Y: Field{[10]uint32{0x033fb1b0, 0x00258a9a, 0x03ef2f5f, 0x02ec4f30, 0x005a5ff0, 0x0392e007, 0x002ed01f, 0x03f7f3ab, 0x03d6b12a, 0x0005833c}}}, + {X: Field{[10]uint32{0x00c5fd88, 0x0154ef29, 0x033ea689, 0x0027c08b, 0x02991bd5, 0x02e81085, 0x00e0153a, 0x03801a77, 0x006e5b74, 0x0017541d}}, Y: Field{[10]uint32{0x03259ff8, 0x018462da, 0x00e58927, 0x01bedbb4, 0x0299cb33, 0x00a724ad, 0x03a2e484, 0x012c6ef6, 0x005fd2a1, 0x002c3ec8}}}, + {X: Field{[10]uint32{0x00be04ff, 0x0006a17f, 0x02cf0bbd, 0x02af1a1b, 0x01ef4483, 0x0180230b, 0x03087483, 0x018a7249, 0x0269fa27, 0x00386f09}}, Y: Field{[10]uint32{0x00d95ecf, 0x0027e103, 0x00e783d4, 0x0124efb6, 0x0315e8b1, 0x02ce86ca, 0x033fd435, 0x00248585, 0x0371083c, 0x001bedeb}}}, + {X: Field{[10]uint32{0x00bfbf78, 0x003732f6, 0x017a2fe9, 0x00833dc0, 0x02f36ac6, 0x037e873c, 0x00519797, 0x024f6d03, 0x001cb5a8, 0x0033f242}}, Y: Field{[10]uint32{0x02a69ac2, 0x00a6b9a5, 0x01659b5f, 0x00695713, 0x00db321d, 0x026fe05f, 0x0377c15a, 0x00bf0cbc, 0x01235077, 0x0009aa23}}}, + {X: Field{[10]uint32{0x0229bb9b, 0x03677d08, 0x014b05fa, 0x01621163, 0x00cd8ad1, 0x0263b5e3, 0x021246db, 0x01a314e5, 0x009d12bd, 0x00015367}}, Y: Field{[10]uint32{0x021cbff6, 0x01275db7, 0x025eba45, 0x00161248, 0x00f8de70, 0x034cf5f5, 0x00c961fe, 0x0089658c, 0x00311dec, 0x002d7a5f}}}, + {X: Field{[10]uint32{0x03057dff, 0x02d694d0, 0x002e8d64, 0x02a987f9, 0x02bfb11e, 0x01cd71ec, 0x00f19248, 0x01986740, 0x02e67e9d, 0x0022a453}}, Y: Field{[10]uint32{0x03c040c8, 0x0046b0c6, 0x01b05a63, 0x011a8bd6, 0x0199c518, 0x00a9be94, 0x002f018c, 0x0369262f, 0x01da3374, 0x0006e478}}}, + {X: Field{[10]uint32{0x00240522, 0x02c16574, 0x03b030a0, 0x010bef48, 0x00aa2f4c, 0x026ac2ae, 0x0304fbae, 0x0077eaf1, 0x01773e64, 0x00352e04}}, Y: Field{[10]uint32{0x025cc726, 0x03ef8159, 0x007b8ce6, 0x00d405c4, 0x01cf2e68, 0x003d037c, 0x01bd3642, 0x02853d29, 0x023b1ea4, 0x002b0c33}}}, + {X: Field{[10]uint32{0x00780ba9, 0x00999c05, 0x02004362, 0x00b9cb83, 0x006f3c8e, 0x024927d9, 0x002c3517, 0x00d5f2ee, 0x0387c232, 0x002e0429}}, Y: Field{[10]uint32{0x018319e2, 0x036eec05, 0x02ef76a2, 0x00c3c6de, 0x034a422c, 0x02af2119, 0x02bac769, 0x0375fc85, 0x00341078, 0x00150d90}}}, + {X: Field{[10]uint32{0x0134a833, 0x01cb4ffd, 0x00e0d14e, 0x00b63b1f, 0x00d29c76, 0x00e9fbb4, 0x01691eac, 0x023bdc6b, 0x00cedc73, 0x0035c7e2}}, Y: Field{[10]uint32{0x00fbcd99, 0x0139c583, 0x02ad9d2a, 0x0052570e, 0x0197c1b5, 0x02d31449, 0x019d0d97, 0x02b6ba8b, 0x02831aaa, 0x00291f33}}}, + {X: Field{[10]uint32{0x01147ffc, 0x02675c5b, 0x0217496c, 0x00b331b1, 0x011ad709, 0x018b3978, 0x01d9d896, 0x018a384e, 0x031d4cac, 0x0005c33c}}, Y: Field{[10]uint32{0x006d77a5, 0x02977b33, 0x013a46f9, 0x03b9a549, 0x01adf6c4, 0x0377cc46, 0x01e8baaa, 0x03d61405, 0x0094e741, 0x0013ecee}}}, + {X: Field{[10]uint32{0x00c316af, 0x0269913b, 0x034d3172, 0x01250216, 0x03bfd48d, 0x032e6956, 0x00cbf66e, 0x017a00e3, 0x02a3b127, 0x00239da4}}, Y: Field{[10]uint32{0x00c504b1, 0x02ad501a, 0x0241134c, 0x029ae291, 0x024fc0bf, 0x0399aa46, 0x0100665c, 0x01497899, 0x01d3af07, 0x003cce70}}}, + {X: Field{[10]uint32{0x02ca891a, 0x032fbe92, 0x00d40a27, 0x01a79da1, 0x02a07ca8, 0x038addf3, 0x0047002e, 0x017a04cb, 0x03383dda, 0x001747fc}}, Y: Field{[10]uint32{0x035fbb8b, 0x0246006f, 0x039cf5b0, 0x00ce34a5, 0x02fe8438, 0x01d31145, 0x032e62e0, 0x032f6d9d, 0x03acb0de, 0x00286b6c}}}, + {X: Field{[10]uint32{0x002b8af7, 0x03fdbb0f, 0x003ebd75, 0x01717d50, 0x00375e1c, 0x00deb556, 0x032605da, 0x0319af77, 0x03dda9de, 0x003559b3}}, Y: Field{[10]uint32{0x019c78bd, 0x02b78398, 0x01ed8427, 0x035efedd, 0x00b6007b, 0x016a4293, 0x01598bb2, 0x01b6a5d0, 0x032c7858, 0x0004f888}}}, + {X: Field{[10]uint32{0x03d96493, 0x0265f40b, 0x01e33764, 0x03389271, 0x033cb85b, 0x02e7b8f6, 0x01ae74b2, 0x00ebc666, 0x00f9cc71, 0x0032f5c2}}, Y: Field{[10]uint32{0x004cb2cb, 0x03e499da, 0x026d655c, 0x02fdae01, 0x01c264f4, 0x02276376, 0x037a5af8, 0x02c2e24c, 0x016c4ca9, 0x003c0687}}}, + {X: Field{[10]uint32{0x00ed0fe2, 0x02d6e8fc, 0x013f4ad4, 0x02e3e241, 0x03e8d049, 0x014e003c, 0x020bea21, 0x01cf2208, 0x00e4e8ac, 0x003fb87b}}, Y: Field{[10]uint32{0x0226aad6, 0x015a8bba, 0x0154f53d, 0x02c2f6c2, 0x02f9763d, 0x033d0bda, 0x013354a7, 0x0019028d, 0x00ea17c8, 0x0026d482}}}, + {X: Field{[10]uint32{0x02ee843f, 0x0122f251, 0x01dbb79c, 0x00cc5305, 0x01db916f, 0x032cd6a3, 0x03a6c3af, 0x01214e35, 0x0266de44, 0x0031aabe}}, Y: Field{[10]uint32{0x01505b1b, 0x02bceff4, 0x01bfa7cd, 0x016cc2c4, 0x0234c49d, 0x029b893e, 0x001a7617, 0x0243def2, 0x02b67fc5, 0x00229871}}}, + {X: Field{[10]uint32{0x01aac415, 0x0199e076, 0x02f1e0a8, 0x03ffc017, 0x02dcbe21, 0x0199aef3, 0x018551e7, 0x007df922, 0x016083d9, 0x002b0d45}}, Y: Field{[10]uint32{0x0334483d, 0x01f59804, 0x014945ac, 0x002e369b, 0x03557741, 0x03bb2289, 0x00318fbe, 0x026beca3, 0x01977710, 0x0035c276}}}, + {X: Field{[10]uint32{0x01914e18, 0x01a3dc8f, 0x02ef9219, 0x00d25419, 0x017a212e, 0x00eb013d, 0x0055d199, 0x0092d205, 0x021607c0, 0x002a2709}}, Y: Field{[10]uint32{0x03a3c1ab, 0x00867b84, 0x02199ac8, 0x01a10cf7, 0x013569ce, 0x03b636ac, 0x01f092f5, 0x0219b1df, 0x02626127, 0x0015474d}}}, + {X: Field{[10]uint32{0x00a3f06b, 0x02202347, 0x02a3a72e, 0x016bf491, 0x02b045b9, 0x03ee458b, 0x00018d8c, 0x0267aba5, 0x031db584, 0x00265460}}, Y: Field{[10]uint32{0x01e4d773, 0x021ec5b6, 0x01188fd4, 0x02856c34, 0x0081696e, 0x02ce1202, 0x0027146f, 0x03e19f56, 0x02ecb9d5, 0x003f8e6b}}}, + {X: Field{[10]uint32{0x001fba96, 0x009a489a, 0x02e8c78d, 0x03a4df34, 0x028615e2, 0x007b3af1, 0x01be26c6, 0x01111e55, 0x03e01456, 0x002dc785}}, Y: Field{[10]uint32{0x03b9e3bf, 0x007142d8, 0x03dc4301, 0x02a7324a, 0x031a6c5b, 0x03bfa554, 0x023cb224, 0x02e32e57, 0x01f1d21f, 0x003af3f7}}}, + {X: Field{[10]uint32{0x01914074, 0x020fff05, 0x002c22d6, 0x03b5399d, 0x032fe89f, 0x030f52f2, 0x020ef6a1, 0x027fdb51, 0x001edbdd, 0x00385c3e}}, Y: Field{[10]uint32{0x0396e67f, 0x019f9caa, 0x014d2d6f, 0x03af1f7c, 0x03801fa7, 0x03dbe72b, 0x02206e3d, 0x0072b233, 0x00ee0f97, 0x0024fc44}}}, + {X: Field{[10]uint32{0x02c104f2, 0x01757207, 0x00c73acf, 0x02291f73, 0x014ac8dd, 0x007eaeec, 0x00f04eda, 0x0017157b, 0x0147318d, 0x0010c695}}, Y: Field{[10]uint32{0x03a779e7, 0x0022fcaf, 0x00dea6fd, 0x01c1d72a, 0x027a6f1f, 0x01f2a09e, 0x03a1f045, 0x0068d92b, 0x00ad7b14, 0x000f8c62}}}, + {X: Field{[10]uint32{0x02203394, 0x03ffb098, 0x01eec383, 0x0245fc2d, 0x013c1932, 0x007e032c, 0x0226ce4a, 0x01d48caf, 0x026ee158, 0x000a679a}}, Y: Field{[10]uint32{0x01301575, 0x00a9df81, 0x010c93bb, 0x0393b4de, 0x0123c9b3, 0x03002815, 0x008e8bf4, 0x028846ff, 0x00ed3ad4, 0x00176edc}}}, + {X: Field{[10]uint32{0x038934ee, 0x01e32730, 0x0359fb09, 0x026fa80a, 0x01bc99ac, 0x0079fe09, 0x03b5f786, 0x0221a6cb, 0x008ff2b5, 0x0019b6d2}}, Y: Field{[10]uint32{0x00ae6a5f, 0x01adcc3a, 0x0017fc31, 0x03bfac52, 0x006040e7, 0x03da19b1, 0x010e9972, 0x020fe02c, 0x0112b51c, 0x002addb8}}}, + {X: Field{[10]uint32{0x02274932, 0x02091f49, 0x002a1c3c, 0x02d7fb50, 0x0054c812, 0x022b56dc, 0x03912fa7, 0x00354aec, 0x016b6698, 0x00049661}}, Y: Field{[10]uint32{0x02150383, 0x011631fc, 0x03c2245d, 0x02ee1c31, 0x02d70dfc, 0x015a06f0, 0x03e0557d, 0x02571fb7, 0x013fc678, 0x003ab5f3}}}, + {X: Field{[10]uint32{0x01f1cf00, 0x01d177ff, 0x02cf9102, 0x0233bfaf, 0x00426996, 0x03494b1f, 0x025272fd, 0x03cf732a, 0x0214cbb0, 0x00140b21}}, Y: Field{[10]uint32{0x03c53c3c, 0x0242654e, 0x0154c10b, 0x0001921c, 0x001b2f45, 0x01abc28e, 0x01d06951, 0x038d5bf6, 0x028807e4, 0x001c46f1}}}, + {X: Field{[10]uint32{0x02a8d6fd, 0x026f31c2, 0x00c42224, 0x03b05f00, 0x01f43acd, 0x01edadff, 0x01c10734, 0x01900fda, 0x013c323c, 0x00381446}}, Y: Field{[10]uint32{0x02560455, 0x0045f8e2, 0x039f1c85, 0x02c61fe2, 0x00c574d9, 0x0097098c, 0x011d2bcf, 0x023b985b, 0x0271ce42, 0x000840b0}}}, + {X: Field{[10]uint32{0x01f1dc46, 0x0381d06b, 0x02cb800a, 0x0162d4e2, 0x030abe7c, 0x030ecdf9, 0x03d90c15, 0x0234c8a7, 0x03ae0d76, 0x0032461e}}, Y: Field{[10]uint32{0x01c92c0f, 0x011ccd62, 0x000f8d75, 0x0373c9ff, 0x015714f6, 0x0056b0a7, 0x03d02526, 0x02e92865, 0x0043f9eb, 0x00304c35}}}, + {X: Field{[10]uint32{0x010fe897, 0x03b2367a, 0x017a16ea, 0x03513a0a, 0x0123dba4, 0x031ac190, 0x003ae701, 0x02cfb8ac, 0x027eb9f3, 0x0016c215}}, Y: Field{[10]uint32{0x010c27c9, 0x006a61ea, 0x02d92aa8, 0x012dd43f, 0x03914d4b, 0x03a3d32e, 0x02e9c726, 0x03246b37, 0x00159079, 0x002b41c7}}}, + {X: Field{[10]uint32{0x003ba7cc, 0x03d2946d, 0x0286f839, 0x015343aa, 0x038a9cc5, 0x0189a46a, 0x0306a26d, 0x01ea1b3e, 0x008ac581, 0x002b96d9}}, Y: Field{[10]uint32{0x032db311, 0x03a49750, 0x019830d5, 0x004a9bfa, 0x0166e752, 0x0285f18a, 0x00a48c3d, 0x0308aaac, 0x030db665, 0x0007aa2a}}}, + {X: Field{[10]uint32{0x010178d2, 0x00085222, 0x038f0421, 0x034c9f95, 0x0004f2e0, 0x03326aed, 0x02ea5c5c, 0x0215b663, 0x00d0a092, 0x000ee6eb}}, Y: Field{[10]uint32{0x01bd5052, 0x031977c8, 0x024911fd, 0x011fc606, 0x00b79be4, 0x02a4a6b8, 0x03628d7e, 0x02e8715e, 0x008e9603, 0x002da07a}}}, + {X: Field{[10]uint32{0x0259fef4, 0x0016a191, 0x02d7ee8d, 0x01e8707d, 0x03f6dfbf, 0x0179056a, 0x022f8279, 0x019b6b54, 0x0180a740, 0x0014937d}}, Y: Field{[10]uint32{0x0252f35f, 0x02ae9c89, 0x039c1ed2, 0x03e78d62, 0x019c72c5, 0x034c0bbc, 0x03c210ca, 0x0307869b, 0x03285f3b, 0x000feb31}}}, + {X: Field{[10]uint32{0x010e4363, 0x034c2751, 0x00cdff6e, 0x03a9ff1c, 0x01599a34, 0x01202e1d, 0x0109a383, 0x01d7121f, 0x03f2ade7, 0x000b818d}}, Y: Field{[10]uint32{0x0364738e, 0x0228283d, 0x023696da, 0x03bab69c, 0x031aafb7, 0x012b557c, 0x038e903e, 0x01392731, 0x03087e2f, 0x0038f1ba}}}, + {X: Field{[10]uint32{0x020cc483, 0x0184c2ea, 0x0364bbda, 0x00a089bd, 0x033f7857, 0x021ee509, 0x013fb335, 0x02f4ef90, 0x02adbeaf, 0x003dffb1}}, Y: Field{[10]uint32{0x0208c68d, 0x014c7467, 0x00544c66, 0x00eb967f, 0x03dd4209, 0x018ee5da, 0x00fefd8e, 0x015f1ff2, 0x01748eb4, 0x003d91aa}}}, + {X: Field{[10]uint32{0x023608be, 0x0362f122, 0x0229929a, 0x025d3609, 0x00cd6eb4, 0x03624b72, 0x02c95b12, 0x01310cad, 0x00e06af6, 0x001d7e53}}, Y: Field{[10]uint32{0x01958a29, 0x0221deec, 0x026c622e, 0x0248b1ef, 0x026e32c8, 0x007b001d, 0x0316b322, 0x0241a9a4, 0x02d0a2b7, 0x002fe1c5}}}, + {X: Field{[10]uint32{0x03fb4d85, 0x0370733c, 0x0104331b, 0x03a74c04, 0x00f62e07, 0x0321a424, 0x00f039fc, 0x03cf2c31, 0x02de5e0d, 0x001040a5}}, Y: Field{[10]uint32{0x03fecfa0, 0x03dcbb4f, 0x0396c383, 0x01ff2187, 0x02da7426, 0x018996e0, 0x00a82ff8, 0x03765aae, 0x039ca314, 0x003a58d5}}}, + {X: Field{[10]uint32{0x033ffa05, 0x03ff8035, 0x03b23cbd, 0x02605b3e, 0x0369b4e6, 0x025f699e, 0x03c1703d, 0x0385acbd, 0x02ac05f5, 0x00332093}}, Y: Field{[10]uint32{0x013e8abb, 0x03c428cd, 0x02aa8b8c, 0x006a4abe, 0x03d18c6f, 0x01f1e203, 0x00582182, 0x013be577, 0x01a69f41, 0x0005f0c3}}}, + {X: Field{[10]uint32{0x026e5820, 0x03fc44df, 0x00d03a83, 0x0193e976, 0x03d2074b, 0x00c5dc1d, 0x00f0b3fd, 0x03b6335e, 0x00ef4d26, 0x002b306c}}, Y: Field{[10]uint32{0x003ce6c3, 0x01432367, 0x04000111, 0x03405a79, 0x014fcd24, 0x03e3efbb, 0x01d2a804, 0x02ba4406, 0x00c68519, 0x001b3391}}}, + {X: Field{[10]uint32{0x010da922, 0x03f1c6f2, 0x038257c2, 0x0238c61d, 0x01583c2b, 0x00c62e48, 0x034bccf4, 0x00766c1d, 0x036eccce, 0x00072cc1}}, Y: Field{[10]uint32{0x00e373cc, 0x021d2393, 0x03b04c62, 0x03cb3c96, 0x02a6372d, 0x03b37168, 0x0217dfd3, 0x0181760a, 0x036c0058, 0x000a8bc9}}}, + {X: Field{[10]uint32{0x00fe13f2, 0x02096aa1, 0x039783d5, 0x0085e8e2, 0x008cb3a5, 0x02796900, 0x03ea9750, 0x03d26d61, 0x00512a22, 0x001bbf69}}, Y: Field{[10]uint32{0x038e2424, 0x0251d621, 0x0103954a, 0x03f6f2f5, 0x0360673c, 0x03968a96, 0x032a54ad, 0x00becc7f, 0x02d56dfe, 0x00047513}}}, + {X: Field{[10]uint32{0x01bf0858, 0x00c30ee7, 0x01cdd51b, 0x03345f7a, 0x02e2fcf1, 0x02a3f665, 0x00931ecd, 0x00de2d73, 0x0219aef4, 0x0011fda5}}, Y: Field{[10]uint32{0x00b5e274, 0x0242251f, 0x03ee9bf8, 0x022b0cea, 0x020d2fa2, 0x0135c359, 0x0057af2a, 0x038f5b69, 0x02a19776, 0x00052555}}}, + {X: Field{[10]uint32{0x014d28e4, 0x0120cd5e, 0x00d4f8ff, 0x02f0691f, 0x028b2eae, 0x00e86789, 0x01032c51, 0x0375754e, 0x021e97f5, 0x00374f63}}, Y: Field{[10]uint32{0x00467e83, 0x03e7aa93, 0x029c2e0f, 0x02ec0d2f, 0x030c2233, 0x020bafcc, 0x033d7c63, 0x02a0eaa5, 0x000020f6, 0x001e5a2f}}}, + {X: Field{[10]uint32{0x01e16d78, 0x02b4ad99, 0x01f9197a, 0x02dd414d, 0x027de2a2, 0x00f2d2cc, 0x015737cd, 0x00e9b2f9, 0x00eea19d, 0x000af515}}, Y: Field{[10]uint32{0x029f7f99, 0x03c7f5c4, 0x037549c1, 0x01221f8f, 0x039f7c62, 0x02b503fa, 0x0271c667, 0x009e3cd0, 0x00f0d6a1, 0x00029c2c}}}, + {X: Field{[10]uint32{0x035a5ee0, 0x00cc6103, 0x02d91047, 0x037c4eb0, 0x02915462, 0x02899e13, 0x02035b29, 0x01d2d136, 0x01bb2a7e, 0x00233f9d}}, Y: Field{[10]uint32{0x0207cd1e, 0x03cb8919, 0x01ca1eef, 0x0289ff6b, 0x00b65c2d, 0x02491550, 0x02226d1c, 0x01f2193d, 0x0056bdc8, 0x001923ff}}}, + {X: Field{[10]uint32{0x01724d36, 0x02cc9559, 0x02f6e665, 0x01a13c44, 0x005e046a, 0x012d5ef2, 0x03dab832, 0x018b2f0b, 0x00ae19c4, 0x0017bfcd}}, Y: Field{[10]uint32{0x004d68a4, 0x03378568, 0x026b0ccf, 0x020d1f1a, 0x01d551e7, 0x00b80414, 0x0289629d, 0x011fff08, 0x01bb9db3, 0x000663ed}}}, + {X: Field{[10]uint32{0x00f92b91, 0x0198e7de, 0x02a61042, 0x02e07c62, 0x00a2c51b, 0x01d8c5dd, 0x02db6244, 0x00ec238d, 0x0154f367, 0x0026a951}}, Y: Field{[10]uint32{0x01384806, 0x0235e118, 0x006fa75c, 0x01197c97, 0x011d167b, 0x01cad42f, 0x0222faf2, 0x01d0134b, 0x03ad4a6e, 0x0021d128}}}, + {X: Field{[10]uint32{0x03f259e0, 0x032d4e97, 0x0165a955, 0x02a2e75d, 0x03ac88a2, 0x037c1bae, 0x007463c5, 0x0165c37f, 0x01758cfb, 0x0012e0dd}}, Y: Field{[10]uint32{0x028df208, 0x0069793e, 0x02aa9917, 0x01aaadea, 0x02ed7076, 0x0048cf7d, 0x0074396a, 0x0294fdb9, 0x0142bda1, 0x0021d647}}}, + {X: Field{[10]uint32{0x02428bb1, 0x03317bdd, 0x00428226, 0x009615cd, 0x03c49dc7, 0x01671f3b, 0x03f5a579, 0x03e4399c, 0x00b49134, 0x001752dd}}, Y: Field{[10]uint32{0x02d89425, 0x001e83ef, 0x03cfcb1f, 0x02efc670, 0x00cdc2f6, 0x00036368, 0x026bf3f1, 0x03b856af, 0x0110f466, 0x0006caa2}}}, + {X: Field{[10]uint32{0x03cad2d8, 0x00a8c255, 0x002b2570, 0x0105eae7, 0x002d4754, 0x018bb9a0, 0x013bafaf, 0x01133976, 0x02c0c552, 0x003542f8}}, Y: Field{[10]uint32{0x0162f583, 0x00735700, 0x0144ef24, 0x03c82f11, 0x005a4dc0, 0x03aa9779, 0x01854617, 0x026ad300, 0x024c6ee8, 0x003f881f}}}, + {X: Field{[10]uint32{0x0075bff1, 0x0280d384, 0x032e9a1d, 0x03c505b6, 0x02f93bbf, 0x02fe616a, 0x02489155, 0x02ce1193, 0x01ce8e0e, 0x002ec3d8}}, Y: Field{[10]uint32{0x037b7d0e, 0x03dbefed, 0x00412631, 0x0184c51d, 0x034e6b05, 0x02f2c23b, 0x02a1032c, 0x02c37cc3, 0x03152dde, 0x000004e9}}}, + {X: Field{[10]uint32{0x01dcb2f5, 0x00cafe13, 0x03d22886, 0x02785366, 0x0263e22b, 0x00bf17be, 0x00e41fb2, 0x0006c85c, 0x01db473f, 0x000f39af}}, Y: Field{[10]uint32{0x00e0922e, 0x01e896ab, 0x01edf8d4, 0x023c6eb0, 0x029a8426, 0x0043714b, 0x02b73081, 0x034a6109, 0x0057f4b3, 0x0010c218}}}, + {X: Field{[10]uint32{0x038f81aa, 0x01d182ec, 0x03c85bd3, 0x03c695b0, 0x02bbcbbf, 0x01f36dd7, 0x00b5490c, 0x0202ff24, 0x014aef16, 0x003ff7ec}}, Y: Field{[10]uint32{0x02f4af0d, 0x005bb87a, 0x00a547c2, 0x031ceef3, 0x0124f228, 0x02522d69, 0x02880d0e, 0x03c6788c, 0x01ef02f1, 0x003cc117}}}, + {X: Field{[10]uint32{0x0223172c, 0x03e93020, 0x000fed59, 0x000941eb, 0x02c828d1, 0x008cc2bb, 0x026eb60a, 0x00993604, 0x02e19ab4, 0x0006b07c}}, Y: Field{[10]uint32{0x00e18bf8, 0x03c64db6, 0x027f5133, 0x018e06d3, 0x02d8fae0, 0x020363c0, 0x015e3a8f, 0x021abec8, 0x00bc3394, 0x001d8da9}}}, + {X: Field{[10]uint32{0x01ec228e, 0x01987b2b, 0x009a22d6, 0x02d81f9b, 0x01b1a1a6, 0x0083c8ce, 0x002957aa, 0x03a26985, 0x000a0740, 0x001494d3}}, Y: Field{[10]uint32{0x0261b669, 0x02a5f3cc, 0x022f1365, 0x00d6ba00, 0x02e1a318, 0x02213ebe, 0x02c2fa5d, 0x03226707, 0x02bafe41, 0x0033dbf9}}}, + {X: Field{[10]uint32{0x011b09eb, 0x03d91899, 0x0278d5b9, 0x00b25928, 0x0104f36f, 0x00df4cac, 0x00dccd61, 0x00b0b1e3, 0x02857cd2, 0x00102480}}, Y: Field{[10]uint32{0x01031d0d, 0x0384b10b, 0x025fb3bd, 0x023ae2a1, 0x01f6b773, 0x013c5824, 0x01fef1bf, 0x00f8fd9b, 0x0373a5fa, 0x00103253}}}, + {X: Field{[10]uint32{0x03029289, 0x006f1466, 0x019e70c8, 0x030901a7, 0x0225a5b3, 0x021036c5, 0x02ac6e4e, 0x0336c852, 0x00334b9c, 0x0022c74f}}, Y: Field{[10]uint32{0x0223e853, 0x035b6d57, 0x006e5630, 0x027c517e, 0x03802076, 0x01e0889d, 0x01658985, 0x0256647f, 0x00642acf, 0x000453f5}}}, + {X: Field{[10]uint32{0x00a242bd, 0x01ce5e7d, 0x020fd7e4, 0x0398f4d1, 0x008a6055, 0x019058b7, 0x006bbd20, 0x03c4e967, 0x0260b7c7, 0x002b8537}}, Y: Field{[10]uint32{0x0065a412, 0x031a8f93, 0x00ef16ca, 0x039ebe80, 0x03afccfe, 0x01dbc844, 0x00463e23, 0x028cce85, 0x0089cdb5, 0x0022e581}}}, + {X: Field{[10]uint32{0x02d3e3d7, 0x020e1b8b, 0x02420078, 0x01204df7, 0x03b81539, 0x037f76eb, 0x00d4e395, 0x0179b0fa, 0x004099c9, 0x003cdfc7}}, Y: Field{[10]uint32{0x03fb3606, 0x003028ec, 0x01af5031, 0x004413d4, 0x030a5644, 0x033dd95d, 0x0283d769, 0x02b4d2c8, 0x008082f6, 0x0007ca40}}}, + {X: Field{[10]uint32{0x03017a84, 0x00fb2c86, 0x005dfaa5, 0x00cd99b4, 0x00a13f89, 0x030925af, 0x0041c1d3, 0x022270d1, 0x03ae9636, 0x0007ec1f}}, Y: Field{[10]uint32{0x037753c0, 0x03e32718, 0x03cb7b8d, 0x011bea5f, 0x0358e6da, 0x01ffd546, 0x0368934b, 0x015dab12, 0x01c93931, 0x0004a062}}}, + {X: Field{[10]uint32{0x0015f3cc, 0x0365ca12, 0x0371552b, 0x0087435a, 0x032afb07, 0x02e88ae9, 0x00ea2b51, 0x03b3b520, 0x0354e112, 0x0011347a}}, Y: Field{[10]uint32{0x02ed7043, 0x02a6cabc, 0x0288e3c3, 0x02df56db, 0x02ea1855, 0x035e4e3e, 0x0273e02e, 0x0149bc49, 0x0328574c, 0x0029b84e}}}, + {X: Field{[10]uint32{0x0103238e, 0x02559168, 0x03cbfd87, 0x0229d669, 0x00ec9491, 0x01dbdef4, 0x02311cff, 0x02e1d5ff, 0x032e5732, 0x001a6025}}, Y: Field{[10]uint32{0x03d26a5e, 0x03ac18d8, 0x03c262d2, 0x03385f16, 0x02ac4a0f, 0x024be826, 0x0376b24a, 0x02450c85, 0x00324ffb, 0x001ee7fa}}}, + {X: Field{[10]uint32{0x00efcfa3, 0x00c09554, 0x0379bf70, 0x018a7616, 0x01a8566a, 0x03d901a8, 0x019639c4, 0x02c79379, 0x009d405b, 0x001a8ea3}}, Y: Field{[10]uint32{0x02c038ba, 0x023799b2, 0x0124d0ce, 0x03ae7546, 0x002e0f59, 0x025ad1e9, 0x01b408e1, 0x03412a3f, 0x02e87b22, 0x000fa2ae}}}, + {X: Field{[10]uint32{0x0012ed0b, 0x00e42d91, 0x036831da, 0x013251b0, 0x03bfb680, 0x02f3e809, 0x01844c4d, 0x01192afd, 0x00d41598, 0x003fcc42}}, Y: Field{[10]uint32{0x03d0a317, 0x01cb51f2, 0x03515dc0, 0x03408672, 0x0011f5d4, 0x01c15192, 0x02abe857, 0x03422571, 0x01e33ee1, 0x00201559}}}, + {X: Field{[10]uint32{0x01517d73, 0x024c93a5, 0x011bb213, 0x01406012, 0x03499727, 0x00d772d6, 0x0134e533, 0x0126acf8, 0x036a2f85, 0x0003b93d}}, Y: Field{[10]uint32{0x0071a838, 0x0204125c, 0x0075c8fe, 0x01f628a4, 0x03830736, 0x032509d9, 0x0189e899, 0x00ac45a2, 0x01672240, 0x001af640}}}, + {X: Field{[10]uint32{0x0053e0a4, 0x023d4693, 0x01966ac7, 0x00163342, 0x00230c63, 0x032eae83, 0x023b7205, 0x02563cda, 0x01cb01ca, 0x0030845d}}, Y: Field{[10]uint32{0x0072bf51, 0x008da233, 0x02a44ea9, 0x03acbff9, 0x01585a02, 0x03021760, 0x02a0ecd2, 0x0282bc95, 0x03a67a7c, 0x001a8860}}}, + {X: Field{[10]uint32{0x0237d6fc, 0x0272fce6, 0x01292c40, 0x030317cb, 0x03953141, 0x01f2ae46, 0x0246e39e, 0x02ce60d3, 0x0008a9a0, 0x000b5793}}, Y: Field{[10]uint32{0x01c6e15e, 0x0190119d, 0x03054d61, 0x0087713b, 0x004b5127, 0x024017b4, 0x0234f37e, 0x00c7e824, 0x01c531a3, 0x001d5a6e}}}, + {X: Field{[10]uint32{0x0315dbc3, 0x030a932e, 0x01c26ef7, 0x019dade6, 0x015d573b, 0x00c5d97c, 0x00124086, 0x03ac2730, 0x0041bfbb, 0x0018c0b0}}, Y: Field{[10]uint32{0x02491025, 0x02bc209f, 0x0063f915, 0x02201279, 0x01a1e514, 0x0024cba4, 0x00ddfedd, 0x010a82b1, 0x020f67ce, 0x000caa3c}}}, + {X: Field{[10]uint32{0x01934e2d, 0x00d98481, 0x0308ca3b, 0x0330b7aa, 0x005b6c67, 0x027be6e5, 0x01c9cfb8, 0x03823bdf, 0x016c198d, 0x000f9854}}, Y: Field{[10]uint32{0x037520d9, 0x01b818c0, 0x00dbee95, 0x03b41239, 0x005692f3, 0x003d89e1, 0x03849447, 0x01c413dd, 0x03f74d5f, 0x0007bfee}}}, + {X: Field{[10]uint32{0x0142fe30, 0x02ac2bb9, 0x005a7d8a, 0x0064422c, 0x01b89892, 0x03ccc148, 0x0335a378, 0x00d3492a, 0x02b2d7d1, 0x0028022e}}, Y: Field{[10]uint32{0x01b475a1, 0x027f8c54, 0x01de6be0, 0x03aa0ae6, 0x03f5454a, 0x02701790, 0x03ec2fde, 0x001b9518, 0x03ec903c, 0x001de8dd}}}, + {X: Field{[10]uint32{0x0224005f, 0x02645fa9, 0x022f8c38, 0x019c05bc, 0x03287114, 0x00b90c05, 0x00f42b80, 0x0258aa54, 0x0348b928, 0x001de0bf}}, Y: Field{[10]uint32{0x03608c15, 0x0322263e, 0x03c18c78, 0x033d6c8a, 0x008ad2c9, 0x026ebf8c, 0x01b766db, 0x00f832b4, 0x024938a0, 0x001e3c8f}}}, + {X: Field{[10]uint32{0x03ddcfc2, 0x019dbe09, 0x03c20d20, 0x01c633fb, 0x02f6ffbe, 0x03225bba, 0x0019d648, 0x02d13f44, 0x0278c26a, 0x0008ced2}}, Y: Field{[10]uint32{0x033b655c, 0x00fb679d, 0x037b518f, 0x0108b825, 0x01f553d3, 0x020a1337, 0x03ddc1a4, 0x037e4121, 0x0036d976, 0x00379421}}}, + {X: Field{[10]uint32{0x01b8bb0e, 0x0177831c, 0x02a0792c, 0x008ca57c, 0x023f7a46, 0x03630cd0, 0x03d7aed2, 0x03524f60, 0x022906ee, 0x0020052a}}, Y: Field{[10]uint32{0x03583d92, 0x01b75543, 0x02444f3e, 0x02be0687, 0x01695f39, 0x0215aa78, 0x030caba4, 0x02f26c45, 0x029df2a5, 0x0037161c}}}, + {X: Field{[10]uint32{0x03bbdfce, 0x012ad676, 0x012c1b28, 0x03abafab, 0x0060882a, 0x02f18723, 0x03050ce7, 0x02b9c46e, 0x010b233d, 0x0022807a}}, Y: Field{[10]uint32{0x0291fdb0, 0x0376eb5d, 0x01cf4ca4, 0x03bc8294, 0x03b34b72, 0x00b2569d, 0x0006cc41, 0x01a4fa4b, 0x035dc9e3, 0x001603b5}}}, + {X: Field{[10]uint32{0x02e733b4, 0x02e48c86, 0x011a44cb, 0x006825af, 0x03a56988, 0x020ae81f, 0x026372d5, 0x024561c3, 0x034924a2, 0x00014288}}, Y: Field{[10]uint32{0x038cc751, 0x02af3699, 0x03cde3ed, 0x0038bdf3, 0x03aa21d0, 0x0111bf38, 0x01d8e2fa, 0x0007529e, 0x0220a977, 0x001a50f0}}}, + {X: Field{[10]uint32{0x02aa6d83, 0x00821ebb, 0x015cecbd, 0x01b6a299, 0x02b51b8f, 0x0209903b, 0x0307bd61, 0x01d13dea, 0x03578c96, 0x0032fd24}}, Y: Field{[10]uint32{0x028d4bf0, 0x03c1f13b, 0x011d5e75, 0x02961f41, 0x0129e79f, 0x01212813, 0x00bdb1c9, 0x036e6501, 0x02f45711, 0x001346cd}}}, + {X: Field{[10]uint32{0x028efe38, 0x026e9c62, 0x03d89ad5, 0x007fe93a, 0x007c63d1, 0x00a2cc76, 0x0164c2e8, 0x034a5a34, 0x0175e4ed, 0x001cdecf}}, Y: Field{[10]uint32{0x01f31586, 0x0208ad4d, 0x03439e7c, 0x01b74e1d, 0x02ff1ebf, 0x03720c9e, 0x027002ee, 0x03945514, 0x03a18aa8, 0x003b1fde}}}, + {X: Field{[10]uint32{0x0038813a, 0x008bff2b, 0x00b8bb7e, 0x03166aaa, 0x028812e0, 0x035ed105, 0x03f46d69, 0x00e6b9b1, 0x00642519, 0x000a72ca}}, Y: Field{[10]uint32{0x00a2e6e9, 0x02edcebb, 0x038f0528, 0x01477af4, 0x03b5f1eb, 0x01043fc6, 0x02d77c8b, 0x02cb1725, 0x000a7c98, 0x0030fb0a}}}, + {X: Field{[10]uint32{0x0228fe9d, 0x01653f17, 0x01d352c9, 0x015091d0, 0x03f36689, 0x0065e553, 0x00dffa25, 0x00bef791, 0x02592428, 0x0006162a}}, Y: Field{[10]uint32{0x02d4bd46, 0x03b0a074, 0x0248596f, 0x03512f9d, 0x00be50b1, 0x01f92ad3, 0x03d7879a, 0x027eae7e, 0x01d6b0a6, 0x00283a24}}}, + {X: Field{[10]uint32{0x022eb75c, 0x03a45d21, 0x004fc2a9, 0x02374d1b, 0x0126c137, 0x013c24ba, 0x03ae314d, 0x003abd9e, 0x00581a42, 0x001cb39f}}, Y: Field{[10]uint32{0x0025ae1c, 0x012f781d, 0x02ff3628, 0x007fdd18, 0x038bec12, 0x002162ee, 0x02236ae3, 0x00f833db, 0x037a5a9c, 0x0008ca45}}}, + {X: Field{[10]uint32{0x03112903, 0x035bd1ab, 0x0031517b, 0x02f403b3, 0x00a3f9dc, 0x02777e6f, 0x03dcb830, 0x02db492a, 0x025e5dfa, 0x000d3072}}, Y: Field{[10]uint32{0x02a1f803, 0x02a01ec8, 0x021a27ac, 0x0093ad26, 0x0080088a, 0x02962682, 0x03c4aeb6, 0x03325c0d, 0x02adc931, 0x0024fdbf}}}, + {X: Field{[10]uint32{0x00392c36, 0x02e83749, 0x02243284, 0x011e7389, 0x028d348b, 0x03b8f59d, 0x003100cc, 0x01619fe0, 0x004a80af, 0x0001f16b}}, Y: Field{[10]uint32{0x02fc5828, 0x003a9019, 0x01b86337, 0x03faad61, 0x00a3201c, 0x03a9eae1, 0x03db23d1, 0x03991cc7, 0x0164903b, 0x002911a2}}}, + {X: Field{[10]uint32{0x00363caa, 0x012dfb13, 0x00b35e59, 0x00f69d1b, 0x010b57bf, 0x01a0ffdf, 0x018851c8, 0x01dca06a, 0x0113244c, 0x002f8b77}}, Y: Field{[10]uint32{0x02580fa2, 0x0391648f, 0x01f257df, 0x02151e56, 0x018c45ea, 0x02f1ee99, 0x033e5b92, 0x028b3c73, 0x01390af8, 0x002b6dd6}}}, + {X: Field{[10]uint32{0x02c13806, 0x0285d923, 0x039b7901, 0x00ae0665, 0x037f7b22, 0x018b7f67, 0x0244471d, 0x03bf7292, 0x036a3b3b, 0x001b7b87}}, Y: Field{[10]uint32{0x002e5651, 0x02e66657, 0x01ab6af3, 0x00c43d90, 0x021a9a24, 0x02c04c48, 0x000356ce, 0x03dbffe3, 0x01014fa5, 0x001767a1}}}, + {X: Field{[10]uint32{0x01e68c19, 0x039bf9e7, 0x03c3180e, 0x01afdaeb, 0x02c76438, 0x01ec4544, 0x00355b3a, 0x023b5d24, 0x00e68e2c, 0x00057c99}}, Y: Field{[10]uint32{0x00326aba, 0x00fe315c, 0x0374eddf, 0x02ae9daa, 0x03c41291, 0x01c73ca6, 0x01053fd3, 0x03d023be, 0x0126302b, 0x002415d3}}}, + {X: Field{[10]uint32{0x029c91a3, 0x026017af, 0x036660df, 0x01ec60fc, 0x016d4c5e, 0x02a61323, 0x0192b785, 0x022433a9, 0x03e904cc, 0x000f5f3e}}, Y: Field{[10]uint32{0x03f62808, 0x01f7f979, 0x00d12682, 0x01239d8c, 0x0042b30b, 0x01aa12d5, 0x0351694f, 0x00196be3, 0x01d44ea7, 0x00355737}}}, + {X: Field{[10]uint32{0x003a1e10, 0x00773667, 0x02e1445b, 0x02c1ffaf, 0x011ec637, 0x0125c480, 0x035dd3e7, 0x014771ea, 0x03f90d79, 0x00150e22}}, Y: Field{[10]uint32{0x02e5a547, 0x03bfd52a, 0x03dcf6fb, 0x030aa75b, 0x03725f99, 0x03d58348, 0x008738b3, 0x00a97e6f, 0x038825dc, 0x0005ecd9}}}, + {X: Field{[10]uint32{0x02088313, 0x03c065da, 0x03c94be5, 0x03154818, 0x00425327, 0x024a05e5, 0x00a0d2cc, 0x02029652, 0x03dd9a00, 0x000f08a7}}, Y: Field{[10]uint32{0x02926a1c, 0x036ee34a, 0x01d8d3a8, 0x01c7fb48, 0x01192f0a, 0x00dcf141, 0x0083d12c, 0x020ed2be, 0x0395a84f, 0x000d25d5}}}, + {X: Field{[10]uint32{0x03c63210, 0x00149c49, 0x02b26157, 0x0138dbc6, 0x011974e7, 0x03ea35eb, 0x0291f368, 0x01669b85, 0x036ee146, 0x002d84ae}}, Y: Field{[10]uint32{0x00df5bb4, 0x0181cb29, 0x00dc223b, 0x005fa382, 0x02052408, 0x0357a3aa, 0x0077733d, 0x0337c7e5, 0x005dd623, 0x00016523}}}, + {X: Field{[10]uint32{0x0305f613, 0x037bf81e, 0x03d64d2e, 0x0108bbec, 0x03ae381e, 0x024038ce, 0x0341ed3e, 0x003750a0, 0x01855447, 0x003b15b9}}, Y: Field{[10]uint32{0x015e9c45, 0x03d9b3ca, 0x016d9df8, 0x00334ec5, 0x0286effe, 0x01e2f39d, 0x03f2bd65, 0x038c237f, 0x0151acf6, 0x003b35fc}}}, + {X: Field{[10]uint32{0x0011f80d, 0x039d23ff, 0x0308f25e, 0x02bf9353, 0x02a565ee, 0x026c56c9, 0x000c8baf, 0x027e3ef6, 0x03ca85ff, 0x00006fbc}}, Y: Field{[10]uint32{0x012914f9, 0x0315a0fe, 0x03135272, 0x002b7a22, 0x01125f0a, 0x006f2262, 0x014b8927, 0x0125ee86, 0x00bb96be, 0x003f8098}}}, + {X: Field{[10]uint32{0x0107c20a, 0x0020fa64, 0x0325168a, 0x03968bae, 0x010c4b27, 0x034afd2b, 0x00e42653, 0x01a38aa4, 0x004a522b, 0x0006f6eb}}, Y: Field{[10]uint32{0x00d63ea1, 0x00a10e54, 0x03a9e3d2, 0x009c38fe, 0x025b09e1, 0x00ba2c81, 0x00467b9d, 0x01fe8004, 0x03263ede, 0x00135838}}}, + {X: Field{[10]uint32{0x0262fc84, 0x027aab4d, 0x038373bd, 0x01ffa252, 0x026e601b, 0x02cb0b08, 0x01e0f8b1, 0x02e36954, 0x039a567a, 0x003a40cb}}, Y: Field{[10]uint32{0x00eb70e9, 0x00c65b5d, 0x0400064e, 0x0252372c, 0x0121d609, 0x02bf783c, 0x00b0a49d, 0x006bce83, 0x03e647d2, 0x0002b158}}}, + {X: Field{[10]uint32{0x00f79c75, 0x0241f0c2, 0x011a9fda, 0x03af2281, 0x03a9608d, 0x015b8d19, 0x0108044f, 0x03dd2295, 0x02ec044a, 0x001f39d1}}, Y: Field{[10]uint32{0x02aa426a, 0x0103f57c, 0x017d5406, 0x02814beb, 0x012c6b8f, 0x01bcf006, 0x03bbb804, 0x02f48ef9, 0x01c13166, 0x0023c21e}}}, + {X: Field{[10]uint32{0x0359eecd, 0x01b7932e, 0x01fc906c, 0x032fbcda, 0x0068862d, 0x01b34c80, 0x01298564, 0x01b47282, 0x038919de, 0x00383549}}, Y: Field{[10]uint32{0x02886b20, 0x028a51b2, 0x03ce88cd, 0x03c74faf, 0x01f46680, 0x025d02f5, 0x03547912, 0x03764293, 0x039db4eb, 0x00263d19}}}, + {X: Field{[10]uint32{0x025ca397, 0x004eba9f, 0x01f1800a, 0x02159070, 0x02e28c8b, 0x00bc8222, 0x000a4d48, 0x012d6110, 0x01cdcf1f, 0x0031a891}}, Y: Field{[10]uint32{0x021ac628, 0x0399da25, 0x01bf3605, 0x02a0cc08, 0x01cb11ec, 0x02d79b34, 0x00ff944a, 0x032c2656, 0x03b9f8f2, 0x0034c1b6}}}, + {X: Field{[10]uint32{0x0295c910, 0x00a1b9cd, 0x02b06a1b, 0x00652837, 0x024ade09, 0x026661ff, 0x0334acec, 0x03c20a87, 0x008d9710, 0x003fe55b}}, Y: Field{[10]uint32{0x03bcc306, 0x008f4304, 0x0239fb78, 0x03b2c38b, 0x01a8086a, 0x0362a4dd, 0x028c832f, 0x03f5187f, 0x012b866a, 0x003eafb1}}}, + {X: Field{[10]uint32{0x02c23af0, 0x00485489, 0x00cc73ff, 0x0059bd2b, 0x025cef12, 0x0313709d, 0x0344fe45, 0x01813343, 0x024a0d1a, 0x00152776}}, Y: Field{[10]uint32{0x000631ef, 0x03dd9784, 0x00381a33, 0x025d58b1, 0x01166fec, 0x02aec578, 0x02eede71, 0x02a0980d, 0x03c0e05b, 0x001c78eb}}}, + {X: Field{[10]uint32{0x02776416, 0x01f99127, 0x01723207, 0x004bb708, 0x016070dd, 0x037647e7, 0x01896e82, 0x01cf339a, 0x03090215, 0x0019b4f7}}, Y: Field{[10]uint32{0x03b46d5d, 0x03c9e756, 0x01ebc25f, 0x0327aa4c, 0x0009ccf1, 0x02bc162f, 0x0029dd3e, 0x03b8fb65, 0x021359a2, 0x0024e605}}}, + {X: Field{[10]uint32{0x01e4f8d9, 0x01c0bd5e, 0x01be737b, 0x02083eb8, 0x028a4d7a, 0x01713c61, 0x013ede5a, 0x018e1a71, 0x01bc0942, 0x00186f4f}}, Y: Field{[10]uint32{0x0082e780, 0x015cad38, 0x02caac1b, 0x020788cd, 0x00502aee, 0x003be923, 0x01ddf540, 0x013d24b2, 0x0247e27d, 0x0023015a}}}, + {X: Field{[10]uint32{0x00178f4e, 0x01bcee60, 0x0000647d, 0x01dbe99f, 0x004ef20c, 0x005236c7, 0x002f7849, 0x036aa49c, 0x03464a31, 0x00229b62}}, Y: Field{[10]uint32{0x028f7407, 0x019f2eab, 0x00d8ccfe, 0x02864efd, 0x03c31309, 0x02081451, 0x0082f9e3, 0x01d8065b, 0x02eee408, 0x00347d01}}}, + {X: Field{[10]uint32{0x022e573e, 0x03f47924, 0x02b1b809, 0x01096b3d, 0x0137893b, 0x03b76607, 0x00aa90e1, 0x021105c0, 0x029399eb, 0x0038ad83}}, Y: Field{[10]uint32{0x0219f7af, 0x004fba93, 0x029ed635, 0x02b42003, 0x01bd8a38, 0x02cd75e2, 0x0209dc0a, 0x020a6a2b, 0x025fe394, 0x001a2831}}}, + {X: Field{[10]uint32{0x00f55e85, 0x03c9b375, 0x00574ac6, 0x031cad56, 0x01fc23b8, 0x0277e950, 0x0316cad9, 0x03f24993, 0x030fe85c, 0x00131d80}}, Y: Field{[10]uint32{0x012b7bb6, 0x0166fa28, 0x000902d9, 0x02aa62bb, 0x01e98c63, 0x006157df, 0x039a5745, 0x02d3b323, 0x02d89a31, 0x00112cd4}}}, + {X: Field{[10]uint32{0x03baed2e, 0x0151d897, 0x01580fe4, 0x025cd98f, 0x002f0e89, 0x00e304e8, 0x022c9ef5, 0x00f0d42a, 0x02a35910, 0x00372ea5}}, Y: Field{[10]uint32{0x036544b4, 0x00530885, 0x003deb4d, 0x034b6cb6, 0x00b13053, 0x016fedcf, 0x01f91bd7, 0x01a62b7a, 0x005f0727, 0x002be788}}}, + {X: Field{[10]uint32{0x02dc7883, 0x02cacc7c, 0x02a433b5, 0x01ffa6d9, 0x03e68242, 0x0327b71c, 0x03d3e036, 0x03fe6b2f, 0x03d8f75f, 0x003f4125}}, Y: Field{[10]uint32{0x00d62d79, 0x002eb7ff, 0x0213509c, 0x022625b7, 0x01445762, 0x002f792a, 0x03fb2fcc, 0x0041deac, 0x00b69c8d, 0x00348c05}}}, + {X: Field{[10]uint32{0x01f48040, 0x0331bb7b, 0x01077542, 0x026bae28, 0x02e70500, 0x013a0fe7, 0x011b7795, 0x03904d0f, 0x01bb0b38, 0x0016ed00}}, Y: Field{[10]uint32{0x02599c14, 0x020afe20, 0x03a5ee7a, 0x01cc03b3, 0x00ca9445, 0x01e38f2a, 0x00ea6283, 0x004e47da, 0x00b5acec, 0x0010c7f3}}}, + {X: Field{[10]uint32{0x00bb283b, 0x00b6d6d2, 0x01d20a26, 0x00119ef1, 0x023acac7, 0x00d70ddf, 0x0341c38b, 0x01ab62c9, 0x024ff9cc, 0x0007ea5a}}, Y: Field{[10]uint32{0x02b963eb, 0x02a3fafb, 0x02ac8bfc, 0x031c6c88, 0x036404dc, 0x0278527a, 0x02af7f1f, 0x016bf3c7, 0x0092ffc6, 0x0030d123}}}, + {X: Field{[10]uint32{0x002f86ea, 0x00c8a459, 0x00f11614, 0x0080bfb2, 0x03697ea4, 0x01c74298, 0x02384531, 0x014749e9, 0x02ef1ae5, 0x000254d2}}, Y: Field{[10]uint32{0x03729591, 0x00aab03b, 0x03849643, 0x0084b2ff, 0x0346fd7f, 0x0284fa5b, 0x0148a4ec, 0x01f740cf, 0x003c3883, 0x00334325}}}, + {X: Field{[10]uint32{0x001b8ceb, 0x000ca834, 0x038b7b57, 0x02fc06a3, 0x02138440, 0x02a93fd2, 0x018d08f3, 0x000e42f2, 0x03ed4330, 0x003a9cab}}, Y: Field{[10]uint32{0x0058663e, 0x0299b4b6, 0x0280925e, 0x0112145c, 0x00af4fb0, 0x03ab9fa5, 0x02856a44, 0x00b30a72, 0x018c0369, 0x00385d37}}}, + {X: Field{[10]uint32{0x00122327, 0x03e1b517, 0x01fa9a01, 0x0188d75e, 0x03165698, 0x02fce874, 0x03801f2a, 0x0148e980, 0x01343ca2, 0x000e564d}}, Y: Field{[10]uint32{0x0153dd96, 0x00b80026, 0x0175b45d, 0x021eb1b2, 0x0142a5b8, 0x0111d449, 0x01cbf0e9, 0x01b72154, 0x03e92cd7, 0x002b34f8}}}, + {X: Field{[10]uint32{0x002d4721, 0x038f827b, 0x02a3f246, 0x03e1c9d0, 0x034f74ef, 0x037eed46, 0x027d4b53, 0x01683da5, 0x022a375e, 0x00355eca}}, Y: Field{[10]uint32{0x013ed306, 0x03495443, 0x03b036a0, 0x0251c6b9, 0x01c0aeeb, 0x01209e07, 0x02c20913, 0x01fb0c43, 0x00484d10, 0x0004b5be}}}, + {X: Field{[10]uint32{0x002f1082, 0x02eabd91, 0x0119c59b, 0x023f5480, 0x01fc5def, 0x03804d75, 0x02c781af, 0x03bbd839, 0x03c51b99, 0x00027cb7}}, Y: Field{[10]uint32{0x0320dd0d, 0x022d5b96, 0x01a77e0f, 0x01626789, 0x017ad1d7, 0x02a5bf83, 0x03ca6e4e, 0x00c123e8, 0x0162fd27, 0x00023c82}}}, + {X: Field{[10]uint32{0x0229884b, 0x00b06f40, 0x0216a935, 0x01d96316, 0x01afa587, 0x03037b68, 0x0336c1f9, 0x03244d26, 0x03c6f030, 0x002c70c2}}, Y: Field{[10]uint32{0x02ecdfc3, 0x00e43187, 0x019f1939, 0x009fd4ed, 0x035563e7, 0x028b8a32, 0x01c63d18, 0x02223735, 0x01d16e77, 0x003e2916}}}, + {X: Field{[10]uint32{0x01c6e53b, 0x03866369, 0x002eb665, 0x00ce14f8, 0x02305429, 0x02ed7499, 0x01ad6f91, 0x0348dc4b, 0x03e740ca, 0x00022998}}, Y: Field{[10]uint32{0x035c1e99, 0x007bb9ae, 0x03812c0c, 0x03f8081d, 0x000786a8, 0x00ec2463, 0x00cf7116, 0x0174576b, 0x03995117, 0x003881ac}}}, + {X: Field{[10]uint32{0x012941a1, 0x02aa2d2a, 0x03696fe1, 0x03a09f98, 0x005f4a5a, 0x01b302c0, 0x00fac0a7, 0x0247bbd1, 0x02cbe0ca, 0x000ac255}}, Y: Field{[10]uint32{0x006cffd2, 0x00aa588e, 0x03423ddf, 0x03fb68a7, 0x033f84b8, 0x018989f8, 0x02e1e110, 0x013abe43, 0x03a8dd45, 0x0028c79b}}}, + {X: Field{[10]uint32{0x0262c3bd, 0x00a449b9, 0x01330d54, 0x02001a83, 0x006b0099, 0x03847ed3, 0x02381df7, 0x0325c3ad, 0x01517a2a, 0x00380510}}, Y: Field{[10]uint32{0x008dfcee, 0x02e8d810, 0x03a1e7f4, 0x00d12218, 0x03aeb3fd, 0x0234636f, 0x01639341, 0x03203085, 0x029ba691, 0x00208e33}}}, + {X: Field{[10]uint32{0x02c86c37, 0x008568df, 0x02eba08b, 0x035c78a2, 0x02f344e0, 0x01682d99, 0x0316c530, 0x00bccf2b, 0x013e8b06, 0x0002f8c8}}, Y: Field{[10]uint32{0x0151cd1f, 0x02ca725f, 0x00adc3f1, 0x00f7476c, 0x03550fb8, 0x014a8990, 0x03956838, 0x00e29335, 0x03baeaca, 0x00154948}}}, + {X: Field{[10]uint32{0x01e8ff2b, 0x03859faa, 0x030abc4f, 0x01b6d7ac, 0x001c18eb, 0x0396389d, 0x03aa1db9, 0x02f593f1, 0x03b6bfbf, 0x00188ce4}}, Y: Field{[10]uint32{0x00e42cd3, 0x03537f8d, 0x00b500ba, 0x025ed4ac, 0x031339a1, 0x028edee5, 0x025e316f, 0x016fca80, 0x0174f0fd, 0x001f0390}}}, + {X: Field{[10]uint32{0x01cfe97a, 0x00856c43, 0x0326fbc6, 0x02aa2bea, 0x01bffe79, 0x0233d02f, 0x01eb624b, 0x007a1d9a, 0x0302dd0a, 0x0036b7ad}}, Y: Field{[10]uint32{0x03253490, 0x030e37c5, 0x00bb48fb, 0x026686ac, 0x025a5225, 0x0334e6f2, 0x0260acb8, 0x026d04b5, 0x00cae4c2, 0x0024c224}}}, + {X: Field{[10]uint32{0x01362f33, 0x03edde32, 0x03c13627, 0x03563894, 0x010ac98a, 0x00986133, 0x01c9cfec, 0x026e0aec, 0x03b78317, 0x002d4a34}}, Y: Field{[10]uint32{0x038babab, 0x00af54b6, 0x004f047c, 0x00222ed1, 0x01aa902e, 0x028b4628, 0x0140676b, 0x0048a98e, 0x03af1545, 0x00018c80}}}, + {X: Field{[10]uint32{0x01734a6a, 0x0096adc4, 0x036e02d0, 0x018835d0, 0x017a4de5, 0x0013a7a0, 0x0018a5c8, 0x01b88ab9, 0x03e09398, 0x000bfc88}}, Y: Field{[10]uint32{0x0100f678, 0x029e7000, 0x000965ef, 0x01d75280, 0x03819904, 0x01e0e2ad, 0x0276d8a9, 0x036866f6, 0x0188ec9c, 0x00317234}}}, + {X: Field{[10]uint32{0x01eb1742, 0x01b9d2e6, 0x0312ff94, 0x03da67f1, 0x019ec839, 0x0322ac73, 0x03d2c393, 0x014f2733, 0x01d50e1e, 0x0032e1cc}}, Y: Field{[10]uint32{0x02d19fb5, 0x02394f3d, 0x0076d8c1, 0x0123921c, 0x00a9db38, 0x024b3a29, 0x01252480, 0x03141374, 0x01f838fe, 0x00334be7}}}, + {X: Field{[10]uint32{0x00cf4a2e, 0x02c49c78, 0x0379936b, 0x0376fa61, 0x006dac52, 0x03c9c9a4, 0x02c265aa, 0x02972ddb, 0x0045d776, 0x0004ddeb}}, Y: Field{[10]uint32{0x02a04670, 0x02b287b0, 0x010d4f34, 0x0154353b, 0x0025ab21, 0x036524f8, 0x027a8187, 0x0124cb56, 0x030dd595, 0x00292ccc}}}, + {X: Field{[10]uint32{0x001a5ccd, 0x006894d9, 0x00724c51, 0x01cdeb04, 0x0222fbac, 0x020107ea, 0x03489bd8, 0x031d7f80, 0x03f2f140, 0x002612e6}}, Y: Field{[10]uint32{0x00d14ff3, 0x0050c7f2, 0x02bb590b, 0x026a50a8, 0x03d82f4c, 0x03135431, 0x010ea82a, 0x03bb2e9d, 0x02399733, 0x00311d3d}}}, + {X: Field{[10]uint32{0x03bdcb06, 0x025835eb, 0x00c4d857, 0x01e5ca63, 0x01d50504, 0x0000afe6, 0x035d56ac, 0x01f3e6c4, 0x000074f5, 0x0012e3f4}}, Y: Field{[10]uint32{0x00c703bf, 0x038deccd, 0x0097e3a8, 0x03a531b4, 0x0095560e, 0x01833ddb, 0x01937a4c, 0x03dbddc8, 0x01031df0, 0x001f0110}}}, + {X: Field{[10]uint32{0x018b6079, 0x0215a0c8, 0x000b6605, 0x006e2fb3, 0x0334fc75, 0x022f4376, 0x01250b25, 0x0088d986, 0x02536841, 0x0015cc59}}, Y: Field{[10]uint32{0x01652904, 0x010142a4, 0x01c37da6, 0x016f8e8e, 0x0216f833, 0x022bf850, 0x0172898b, 0x00715d22, 0x024f30f0, 0x0034755b}}}, + {X: Field{[10]uint32{0x0369f286, 0x01c883f6, 0x03bd253c, 0x019d3cae, 0x00607373, 0x019f50fd, 0x032cb597, 0x005bcbef, 0x0197a0ff, 0x00326800}}, Y: Field{[10]uint32{0x00142f0b, 0x03314610, 0x034e4009, 0x03b694c7, 0x006b4dfe, 0x018172af, 0x02074b0c, 0x0045f077, 0x0383d739, 0x0005df19}}}, + {X: Field{[10]uint32{0x021881cb, 0x03b1b3a9, 0x03ff645e, 0x03d5fba2, 0x00c87b9e, 0x01e6cc02, 0x01616185, 0x008ea76c, 0x02da91df, 0x00388d05}}, Y: Field{[10]uint32{0x00b8da15, 0x01cb755c, 0x00137937, 0x03d28f78, 0x02e42fbc, 0x005c60a5, 0x02c82e0e, 0x00da479f, 0x017f8404, 0x00395590}}}, + {X: Field{[10]uint32{0x038e9ad8, 0x038a5558, 0x01c1e3b0, 0x03ba29d2, 0x0114293e, 0x01def62a, 0x0214c450, 0x01d4f399, 0x03f2369d, 0x0027e5b8}}, Y: Field{[10]uint32{0x021ddff1, 0x012cae68, 0x00ff6b49, 0x025b94a7, 0x039b01a3, 0x0104f83a, 0x0250d10e, 0x029369c5, 0x02681567, 0x003d7344}}}, + {X: Field{[10]uint32{0x01301fd2, 0x013efdae, 0x03d5f1d9, 0x01e16e90, 0x01ae4880, 0x039a8c91, 0x014317dd, 0x00048f35, 0x03a4b24b, 0x0012195e}}, Y: Field{[10]uint32{0x02f0d890, 0x02319beb, 0x03e36a4a, 0x02824a69, 0x00dd4931, 0x02a4086c, 0x013ca772, 0x00de04a0, 0x02c06eb5, 0x000647b7}}}, + {X: Field{[10]uint32{0x0236f24a, 0x021f9a5a, 0x032d4e01, 0x03201de0, 0x02c6c858, 0x00500b5e, 0x03155111, 0x02193632, 0x02e9d72e, 0x0019ecc8}}, Y: Field{[10]uint32{0x03f6946a, 0x03f7ceb1, 0x02208c3d, 0x019fdfe6, 0x030e15c8, 0x017eaa0c, 0x0387058c, 0x02fc54ef, 0x02c26b58, 0x0033fac4}}}, + {X: Field{[10]uint32{0x004ded15, 0x0381bc29, 0x02d40fbd, 0x004c5820, 0x03c545ba, 0x014800b6, 0x00e89250, 0x037663f3, 0x0068542b, 0x00010ba0}}, Y: Field{[10]uint32{0x03c4aae5, 0x0111146f, 0x02402bf6, 0x0139eab1, 0x01a1ee81, 0x0313c987, 0x03649158, 0x00f3d49c, 0x01b0c1f3, 0x0005916a}}}, + {X: Field{[10]uint32{0x0290d4c7, 0x0230417f, 0x00e30758, 0x03292a32, 0x013e058c, 0x02eeb001, 0x02191079, 0x01437555, 0x00e1339c, 0x0023b9f7}}, Y: Field{[10]uint32{0x02c9d5f9, 0x01a6a05b, 0x011d2b46, 0x03fc79bc, 0x0098e102, 0x036fa7f8, 0x01a61705, 0x0209e4b3, 0x02f48aae, 0x003fef42}}}, + {X: Field{[10]uint32{0x03a368e6, 0x01e2a087, 0x02ece559, 0x03c3319b, 0x0237a935, 0x02c82485, 0x01aaaf27, 0x01a9c5ab, 0x01041292, 0x0002af25}}, Y: Field{[10]uint32{0x01f79203, 0x0317db5c, 0x027c9624, 0x01234e91, 0x02155a4a, 0x036b93f4, 0x0375c484, 0x01879e7e, 0x0135e9b4, 0x001cb952}}}, + {X: Field{[10]uint32{0x02976ba8, 0x037746e9, 0x02f3b433, 0x0235e0fc, 0x00fd72fd, 0x000de3f3, 0x000568d4, 0x03a6d4ec, 0x032081e0, 0x002f4940}}, Y: Field{[10]uint32{0x003ceb39, 0x0318e55b, 0x021ca4c3, 0x01f4a75a, 0x02e8c4c8, 0x005ee39e, 0x00ca8797, 0x01526265, 0x03db8585, 0x0016b6e2}}}, + {X: Field{[10]uint32{0x02e25f71, 0x02297862, 0x00740c01, 0x03812222, 0x01b31609, 0x039ea836, 0x02e91677, 0x03a13926, 0x0262fbee, 0x0002d3ec}}, Y: Field{[10]uint32{0x0176e5fc, 0x0371fe38, 0x0003b24c, 0x00da3a8d, 0x01265d6d, 0x033d85ba, 0x00ecbe41, 0x00754496, 0x0386dc09, 0x000d37cf}}}, + {X: Field{[10]uint32{0x02605c01, 0x03a20cef, 0x021c495d, 0x005c86cd, 0x03e46048, 0x00418ed7, 0x005ad148, 0x013abe85, 0x036766f2, 0x00346ea6}}, Y: Field{[10]uint32{0x01e8400a, 0x011da8f6, 0x03a75068, 0x00f292e2, 0x01f87194, 0x0245f8ea, 0x03ce7f28, 0x00bc7998, 0x00bd17de, 0x003a029b}}}, + {X: Field{[10]uint32{0x022639b3, 0x009d4ba4, 0x01ba8373, 0x0009a771, 0x03a80c67, 0x03ae78aa, 0x006652d5, 0x016a34b5, 0x02b03a3e, 0x0017262d}}, Y: Field{[10]uint32{0x010f4a54, 0x03d944f1, 0x012e06b8, 0x02d98d4a, 0x006a35ef, 0x03e41e81, 0x011bd130, 0x003374b1, 0x039a145d, 0x0002078b}}}, + {X: Field{[10]uint32{0x002618f8, 0x036d7753, 0x02a840c8, 0x00382a1e, 0x02908abf, 0x03ec97cb, 0x00b70714, 0x02e1bd87, 0x0288f75f, 0x00307e91}}, Y: Field{[10]uint32{0x028397ea, 0x00f32e72, 0x01d9b204, 0x0396ae18, 0x039db869, 0x02aa44f2, 0x0355d0b1, 0x03c9b45f, 0x02776d4b, 0x003cbdd2}}}, + {X: Field{[10]uint32{0x03227ec1, 0x00ae9b3d, 0x01f76dc2, 0x022d1017, 0x0396aec7, 0x00269d56, 0x0062ba2f, 0x03acc947, 0x02e9a644, 0x00017a01}}, Y: Field{[10]uint32{0x033e614b, 0x013e1fe9, 0x01bba9d8, 0x03adcbcc, 0x02b871d2, 0x01d08c4e, 0x02caa050, 0x020a75ab, 0x0118d6a1, 0x002e2320}}}, + {X: Field{[10]uint32{0x01c8de9a, 0x018c9bb4, 0x00c1434c, 0x01b7bfd5, 0x01096863, 0x031e406f, 0x023d965b, 0x0069efd8, 0x03fefd2c, 0x003e7451}}, Y: Field{[10]uint32{0x029caffd, 0x01235cb4, 0x00c33cd5, 0x032e1260, 0x0040de44, 0x0045cc18, 0x027d77b4, 0x021b1e4e, 0x0249ab66, 0x0031e21c}}}, + {X: Field{[10]uint32{0x030ccdb1, 0x0283fb29, 0x0023babe, 0x02b8c5c4, 0x009f7020, 0x001e658d, 0x0138a1f5, 0x03447ea3, 0x015685f6, 0x002e6332}}, Y: Field{[10]uint32{0x010ecf7f, 0x00ab6f26, 0x01f49571, 0x0085c25d, 0x013dcbdf, 0x002208d5, 0x024cc0d4, 0x03a28dbb, 0x00953689, 0x003c1d35}}}, + {X: Field{[10]uint32{0x0017b474, 0x0229925a, 0x02b03464, 0x024fceed, 0x02184584, 0x0052f2e9, 0x01091dc7, 0x005f9fbe, 0x02d41008, 0x003c5872}}, Y: Field{[10]uint32{0x03740904, 0x0227db66, 0x01ffd612, 0x03e7e946, 0x01c4410a, 0x01798945, 0x0081eb24, 0x03cc908a, 0x012e396a, 0x002dfbae}}}, + {X: Field{[10]uint32{0x0326914c, 0x02c70214, 0x038fb1b7, 0x03da2899, 0x03fb54af, 0x01bb7022, 0x02abac24, 0x00187915, 0x00892ea4, 0x001f22db}}, Y: Field{[10]uint32{0x027692f8, 0x02722bd7, 0x015b10d6, 0x00f736ae, 0x02296072, 0x00acd1a0, 0x035eacd0, 0x034b0a7f, 0x03026ea1, 0x003c2387}}}, + {X: Field{[10]uint32{0x00f28729, 0x00d7bb49, 0x01e5dd36, 0x023dc937, 0x023ab207, 0x03dc681d, 0x01b93cce, 0x01196065, 0x029f1633, 0x00119a30}}, Y: Field{[10]uint32{0x0074ea4f, 0x039d0013, 0x00fa129e, 0x01f0bd87, 0x008fd22f, 0x02766545, 0x024c7233, 0x03b1480c, 0x00c98391, 0x00176c8a}}}, + {X: Field{[10]uint32{0x0167b65e, 0x0071f94c, 0x00b2f4e2, 0x00a724a4, 0x0296fa67, 0x00d9c994, 0x0239f8cf, 0x03697066, 0x00f39dd6, 0x000d10f4}}, Y: Field{[10]uint32{0x03429234, 0x01f03a25, 0x014b92a8, 0x002edfb6, 0x0114a432, 0x0301e514, 0x0131f637, 0x0237723b, 0x02399a08, 0x0012db6d}}}, + {X: Field{[10]uint32{0x03c227b4, 0x031e0422, 0x020e8ffe, 0x02a6beb0, 0x02458dbc, 0x015d3025, 0x0281e693, 0x013a5560, 0x010117a0, 0x0034f38d}}, Y: Field{[10]uint32{0x02eb9908, 0x01ff2ac1, 0x0384a9b7, 0x01ba4338, 0x007696ee, 0x03555ab4, 0x001e47f8, 0x01bba4d5, 0x03b9628f, 0x002f3f1d}}}, + {X: Field{[10]uint32{0x015127af, 0x0005583e, 0x03080233, 0x030f34b5, 0x00f2bc1a, 0x03782b0a, 0x01f86409, 0x00914888, 0x0363ad77, 0x00313718}}, Y: Field{[10]uint32{0x012d3038, 0x025ae2dd, 0x0271b3e0, 0x03165fda, 0x00038a79, 0x020d1494, 0x01bc9493, 0x0299990e, 0x028fd789, 0x001e326e}}}, + {X: Field{[10]uint32{0x015ac666, 0x034a769b, 0x01075b23, 0x0332ef37, 0x021bf4ed, 0x008f4b83, 0x0178d7a1, 0x011fb3f3, 0x0394221a, 0x00031dc7}}, Y: Field{[10]uint32{0x028d6091, 0x0157dc73, 0x01980d91, 0x01bd6e3d, 0x03f2ec52, 0x01778a4f, 0x00719246, 0x016abbd1, 0x0330829f, 0x00137b8e}}}, + {X: Field{[10]uint32{0x01e6e199, 0x00945f5e, 0x03d50e77, 0x02fc9d6b, 0x0136a1e9, 0x012287c9, 0x02516e64, 0x023dfd6d, 0x00e89633, 0x002ffe23}}, Y: Field{[10]uint32{0x0388c206, 0x01d05629, 0x03f68532, 0x00a6ed56, 0x01c15526, 0x03a5d876, 0x00b62117, 0x004293ac, 0x007ab620, 0x0023cfc3}}}, + {X: Field{[10]uint32{0x01a3b97a, 0x0287ca82, 0x002da576, 0x01dbcb38, 0x006a467e, 0x00f2b089, 0x010e7e3d, 0x02fc93a1, 0x00645d57, 0x0012bf34}}, Y: Field{[10]uint32{0x0110f0a2, 0x02b95393, 0x01f93984, 0x00ec301b, 0x00ef927d, 0x021db5b0, 0x00692f61, 0x02be4db3, 0x035487b2, 0x0014bc8e}}}, + {X: Field{[10]uint32{0x02b1f373, 0x022e884c, 0x03abdf8a, 0x00d26001, 0x0379e23c, 0x0136c04b, 0x03933fd9, 0x0038815f, 0x022cb9bf, 0x00312f04}}, Y: Field{[10]uint32{0x02fbfc6d, 0x01e21859, 0x00ce1a87, 0x02f5ef7e, 0x031daf76, 0x02ad5b5d, 0x005d4273, 0x0206eb71, 0x03b6a31d, 0x00390311}}}, + {X: Field{[10]uint32{0x01f821a8, 0x01a3c614, 0x019ddb4c, 0x0229f4d3, 0x02837a0f, 0x02ac46b2, 0x0223d27b, 0x01de4738, 0x01b1d1be, 0x00121e86}}, Y: Field{[10]uint32{0x01d0ef98, 0x027912a9, 0x00e67f51, 0x000dec97, 0x01055524, 0x0150578d, 0x02335544, 0x013a6821, 0x034316ff, 0x00294f35}}}, + {X: Field{[10]uint32{0x0301a326, 0x00cb2e10, 0x007f8106, 0x0202a162, 0x01f4ac3d, 0x022333ff, 0x02035165, 0x031d201d, 0x00ecbe06, 0x0009d28f}}, Y: Field{[10]uint32{0x01a9f40d, 0x02627121, 0x019b3ff4, 0x01e98efc, 0x035d06b4, 0x00e172db, 0x0272cab5, 0x022d1426, 0x03e3afbe, 0x0005e892}}}, + {X: Field{[10]uint32{0x03afa9e8, 0x01e4418c, 0x022c48a0, 0x01a8002f, 0x03e82fcc, 0x01563e74, 0x03fc34e7, 0x0266b00e, 0x0377b0cb, 0x000cacc7}}, Y: Field{[10]uint32{0x018f5bc2, 0x036a0297, 0x032a8993, 0x03542c5c, 0x0217f422, 0x02e0111c, 0x02b3f71d, 0x036a4383, 0x004cc191, 0x000111ed}}}, + {X: Field{[10]uint32{0x024a2752, 0x022e1680, 0x03c2925d, 0x038419b7, 0x03945285, 0x03f424cd, 0x0339d46f, 0x0051a370, 0x01cf5556, 0x001e30e7}}, Y: Field{[10]uint32{0x03a3ac55, 0x022119de, 0x009ce890, 0x00c57844, 0x02a66809, 0x03008f98, 0x03df63d5, 0x032a17ba, 0x01bb4e41, 0x0035a477}}}, + {X: Field{[10]uint32{0x0134e5ff, 0x035bece7, 0x0325fa04, 0x0258ac79, 0x00d2f21f, 0x03bbf06a, 0x0102116d, 0x001ddf11, 0x0111a492, 0x0017f1d6}}, Y: Field{[10]uint32{0x017512f2, 0x0182ecd2, 0x00d507a4, 0x01892dca, 0x01f3fe16, 0x0284e5d2, 0x03524d96, 0x0221737f, 0x037f18f5, 0x00167cdb}}}, + {X: Field{[10]uint32{0x0108fa8a, 0x00a274eb, 0x0364ae38, 0x039bda4e, 0x01fa62dd, 0x038d1b86, 0x010fc164, 0x00ad269b, 0x00e9152b, 0x00328564}}, Y: Field{[10]uint32{0x0046dc8c, 0x023fcc20, 0x007f524a, 0x01124da5, 0x01535ea7, 0x00499157, 0x029eae17, 0x03b5d527, 0x033c1174, 0x0011a9ee}}}, + {X: Field{[10]uint32{0x0111fa1f, 0x01433767, 0x037f1f3d, 0x02f16ea6, 0x01743d94, 0x03d9b56b, 0x036e660b, 0x02f7ae9f, 0x02665ff0, 0x00171c54}}, Y: Field{[10]uint32{0x0073a03e, 0x03ffa711, 0x00c39b31, 0x02903c82, 0x02e41684, 0x03333293, 0x01ee9ddc, 0x02570e88, 0x031556e9, 0x001f688e}}}, + {X: Field{[10]uint32{0x00177e82, 0x0361a139, 0x017c8c29, 0x03387255, 0x03fa0c09, 0x03cb840c, 0x01c38774, 0x031ce957, 0x01a36361, 0x0031fdc7}}, Y: Field{[10]uint32{0x01b0dedf, 0x03b6e156, 0x01f92078, 0x0030d0a7, 0x0177c6f5, 0x0013c3e5, 0x022dbf9a, 0x033b2dac, 0x007fb5c2, 0x000235b9}}}, + {X: Field{[10]uint32{0x0058afab, 0x00070af7, 0x0316da01, 0x03339be9, 0x024130b4, 0x00cedd4d, 0x01259004, 0x0284f8de, 0x019f5264, 0x001ba46f}}, Y: Field{[10]uint32{0x00fd604f, 0x008e946d, 0x034499ed, 0x00d077d6, 0x01ee0f94, 0x00826a80, 0x0020c20f, 0x01612576, 0x0055506b, 0x0016ea9d}}}, + {X: Field{[10]uint32{0x02ef0d33, 0x015065ae, 0x01072689, 0x0280d416, 0x03244907, 0x00cc8a04, 0x01c789df, 0x01f2ff1d, 0x028e69ac, 0x0007c037}}, Y: Field{[10]uint32{0x02e040f4, 0x020dc0f6, 0x02feab2e, 0x032106e9, 0x020e65fe, 0x0120ad9e, 0x000c30b4, 0x00c3b4a0, 0x0290f323, 0x000a24b3}}}, + {X: Field{[10]uint32{0x01300638, 0x01e4515f, 0x01e1091d, 0x002c8c93, 0x001a2f5b, 0x01c76356, 0x01efa3ad, 0x0311a508, 0x03f507d8, 0x0030004c}}, Y: Field{[10]uint32{0x00f18895, 0x010d3b4d, 0x027a2f86, 0x004bf72d, 0x031aa3dc, 0x027a38c6, 0x005ea455, 0x03a60b74, 0x01820d3e, 0x000f1dac}}}, + {X: Field{[10]uint32{0x020cad49, 0x03a420f1, 0x0248d2f8, 0x03819b37, 0x00cdb172, 0x012efe5c, 0x00ef7560, 0x009a784b, 0x01e795e8, 0x0002bd8e}}, Y: Field{[10]uint32{0x0026abb4, 0x00b11d09, 0x03219808, 0x02bd59ce, 0x030c479d, 0x03477921, 0x0014a74c, 0x0334a439, 0x0179ce92, 0x0006f404}}}, + {X: Field{[10]uint32{0x01f4c9a1, 0x01e5e5cc, 0x00cd54e9, 0x00e22dcf, 0x00ede585, 0x03af2e68, 0x03a0a5d8, 0x03011063, 0x027d5447, 0x0039b6f4}}, Y: Field{[10]uint32{0x01242153, 0x037aaf8f, 0x038ee6b5, 0x00dcd236, 0x01a20710, 0x03433e2f, 0x00c780a0, 0x020c80f5, 0x0124f284, 0x001dfce1}}}, + {X: Field{[10]uint32{0x036360a9, 0x037f54cc, 0x0246e4c2, 0x007b9015, 0x028d1e3e, 0x0304467a, 0x02dd904e, 0x01c2ab40, 0x0123c95b, 0x003d46a3}}, Y: Field{[10]uint32{0x00f46c57, 0x012c6a70, 0x0113873e, 0x02ad4651, 0x02ae5c6a, 0x02566b36, 0x03488714, 0x00f3d831, 0x009a1d70, 0x00109acb}}}, + {X: Field{[10]uint32{0x00f6bcf4, 0x01135428, 0x01863429, 0x02b07b91, 0x00a3e4d1, 0x00eb8e98, 0x038d8fc3, 0x00dedfd5, 0x01e70fe4, 0x00384bc4}}, Y: Field{[10]uint32{0x0019f5d2, 0x01b64011, 0x01253e3c, 0x0359b71f, 0x038bfec8, 0x00453255, 0x03985b14, 0x0226ad58, 0x015835fa, 0x0008b457}}}, + {X: Field{[10]uint32{0x0188e14c, 0x02f1fb7a, 0x00bb9bf6, 0x01467624, 0x03ac6193, 0x02562853, 0x0351e56d, 0x018b418b, 0x020a8ec7, 0x0039d621}}, Y: Field{[10]uint32{0x027ecd78, 0x0070a5d5, 0x03b23ec4, 0x0208ec00, 0x03104386, 0x032d1d43, 0x008d780d, 0x013c87ee, 0x00ef10b8, 0x0010b678}}}, + {X: Field{[10]uint32{0x00a64163, 0x00e8e608, 0x032c6e42, 0x020bbe47, 0x02d47998, 0x022952de, 0x022b90c7, 0x00797360, 0x03e90ba2, 0x000f24cf}}, Y: Field{[10]uint32{0x029080df, 0x00b77cd9, 0x03f96b67, 0x00d447d9, 0x017fc161, 0x01c02d2b, 0x01b23a56, 0x008b8b29, 0x00be5319, 0x00307aa8}}}, + {X: Field{[10]uint32{0x02857872, 0x004d3f7a, 0x00e07939, 0x0138f027, 0x00df828e, 0x02469e70, 0x02b6b08e, 0x0019b2db, 0x036a83c9, 0x0011d5d5}}, Y: Field{[10]uint32{0x0038277a, 0x03b9b183, 0x00d7b058, 0x03a27654, 0x01818248, 0x0249c311, 0x03e8388d, 0x01fc5778, 0x03b262d7, 0x0004fc8b}}}, + {X: Field{[10]uint32{0x031045c7, 0x0275ad00, 0x00aa8012, 0x03361987, 0x0246570f, 0x029fffd0, 0x01df9039, 0x014502c6, 0x01037008, 0x000d798e}}, Y: Field{[10]uint32{0x01b9e8c9, 0x0272b979, 0x011f1b0e, 0x02b6961a, 0x0053cfb3, 0x00f0a3a1, 0x004f022b, 0x018361a9, 0x00bcaa9d, 0x000a157d}}}, + {X: Field{[10]uint32{0x02126fa3, 0x0398cb8c, 0x024fe82b, 0x0371aa2f, 0x02ad5330, 0x0342a17d, 0x025f0316, 0x02081cd5, 0x02011f11, 0x002b511b}}, Y: Field{[10]uint32{0x00e83e39, 0x00653d8a, 0x00d4315c, 0x0150bdcc, 0x021d8acb, 0x02b03aac, 0x012b2f81, 0x038fd47e, 0x02f1dece, 0x000900e0}}}, + {X: Field{[10]uint32{0x02718815, 0x0359001a, 0x021aff82, 0x03d75dd1, 0x0289164e, 0x03108869, 0x00af7529, 0x02b0de08, 0x01f3eb01, 0x003efa79}}, Y: Field{[10]uint32{0x02d088e6, 0x0007fd84, 0x00468478, 0x0210aafe, 0x01ba2073, 0x0137a485, 0x013e0884, 0x00b8338e, 0x00add85a, 0x003cbcc3}}}, + {X: Field{[10]uint32{0x03038135, 0x014bc4ce, 0x029166e9, 0x03d8cb4c, 0x00b9b585, 0x020b326e, 0x0149aa24, 0x03d0c281, 0x0320d81f, 0x000799d4}}, Y: Field{[10]uint32{0x00686aa7, 0x02d326bc, 0x01db1b44, 0x006cd9b4, 0x002e2c7f, 0x02621c03, 0x03aa5de2, 0x03665716, 0x0276c9c7, 0x003283c4}}}, + {X: Field{[10]uint32{0x02267718, 0x00e45f35, 0x0285f359, 0x010cc383, 0x0394c3f6, 0x0349e492, 0x02b8068a, 0x0394ae8b, 0x037023b0, 0x0005db71}}, Y: Field{[10]uint32{0x017ca8d9, 0x003cff8a, 0x02701d51, 0x03da1746, 0x000548d4, 0x03d98254, 0x010686fd, 0x016c1bd1, 0x02885df7, 0x0034b718}}}, + {X: Field{[10]uint32{0x01a9c938, 0x002aded0, 0x008dd99a, 0x01080f3f, 0x017ac839, 0x0331f150, 0x02feadbc, 0x00aceacd, 0x02c232a0, 0x000f214d}}, Y: Field{[10]uint32{0x025186b5, 0x013d6b68, 0x03d9dbdc, 0x014b5a8e, 0x018ebc7f, 0x00c08ab4, 0x00dd8f17, 0x0344ab49, 0x02a5249c, 0x0029a13b}}}, + {X: Field{[10]uint32{0x02f006fd, 0x028c8b5e, 0x014a5605, 0x000f58f1, 0x00ec6ea0, 0x02a20466, 0x00c446fb, 0x01dadb95, 0x03abc61a, 0x00122a9c}}, Y: Field{[10]uint32{0x02403a64, 0x03e64d63, 0x00d4ecdb, 0x02dc1039, 0x035977fa, 0x033cf77c, 0x00185065, 0x002208b4, 0x02eeffb2, 0x0030a317}}}, + {X: Field{[10]uint32{0x03cc1ff1, 0x028e86d4, 0x024cbd83, 0x0034329f, 0x01263d17, 0x022eb292, 0x02d2b363, 0x000a3676, 0x03620abd, 0x001d1cc9}}, Y: Field{[10]uint32{0x0136c2c6, 0x02f5a779, 0x01f3fddf, 0x03f982ea, 0x00927a88, 0x03008edb, 0x02ef7ce5, 0x02827cfc, 0x030ce8df, 0x00328477}}}, + {X: Field{[10]uint32{0x01698522, 0x01cb16e5, 0x0002eb86, 0x0095491f, 0x01a40427, 0x0053fa40, 0x03dc9188, 0x016455d9, 0x0309520e, 0x003adc6a}}, Y: Field{[10]uint32{0x0148e995, 0x027d5b93, 0x031eb874, 0x0007001f, 0x01c81b69, 0x0008ecaa, 0x02563cb2, 0x016ce3b5, 0x02e0a7e9, 0x0017eb5e}}}, + {X: Field{[10]uint32{0x02f5be6b, 0x0110dc5f, 0x021cef84, 0x0256595d, 0x02af5e86, 0x02c5e731, 0x02da74be, 0x00f7d5cb, 0x03f6c776, 0x000ac406}}, Y: Field{[10]uint32{0x03140ce9, 0x03fa188f, 0x02597067, 0x0065fe26, 0x01f66647, 0x03c96108, 0x014629fe, 0x0068f663, 0x02c84e1d, 0x00003745}}}, + {X: Field{[10]uint32{0x020ab337, 0x02910d9b, 0x033ebca2, 0x03fa3cec, 0x0213976a, 0x017a06e8, 0x032b0507, 0x0195494c, 0x03a82c66, 0x0028267b}}, Y: Field{[10]uint32{0x01136c07, 0x02a66f57, 0x013abdc0, 0x02d796dd, 0x02fb1e33, 0x0049ab32, 0x016c7faa, 0x03cacf77, 0x017b5cf1, 0x003e20e5}}}, + {X: Field{[10]uint32{0x0362f95d, 0x02f267e2, 0x00f153d5, 0x03340bd6, 0x018cc107, 0x01c2f7ac, 0x032ab6d4, 0x00f3a56d, 0x0056a61c, 0x003d0e5a}}, Y: Field{[10]uint32{0x029f6133, 0x01db005b, 0x02567cfd, 0x03cf87bc, 0x03df81c2, 0x00c9d398, 0x03240caf, 0x02c2c019, 0x011aa8ed, 0x001b8fab}}}, + {X: Field{[10]uint32{0x014050c0, 0x038e1fda, 0x00008bd5, 0x01f12516, 0x0353215b, 0x0124f600, 0x00aabe5a, 0x02ec6128, 0x019726aa, 0x00369cc8}}, Y: Field{[10]uint32{0x01a0eeb6, 0x0211813a, 0x01b4666d, 0x01339f38, 0x019489af, 0x017a5538, 0x00b987d8, 0x012da1af, 0x03291772, 0x003881d7}}}, + {X: Field{[10]uint32{0x000a6792, 0x01359be6, 0x02f4575f, 0x0345343c, 0x018fea44, 0x025d0080, 0x0259c09b, 0x01860fd0, 0x021e1959, 0x002645c6}}, Y: Field{[10]uint32{0x01219a4f, 0x01d9ec5d, 0x03f5f27a, 0x034b9d81, 0x0066af1b, 0x0381efb0, 0x032cbd80, 0x03bbcf9f, 0x000c83e1, 0x00148ae1}}}, + {X: Field{[10]uint32{0x018cf08f, 0x034d329d, 0x0323f8f0, 0x03da44cc, 0x001db7bc, 0x01122270, 0x008997a9, 0x013cd890, 0x02848a2c, 0x000d4f31}}, Y: Field{[10]uint32{0x0267ebe7, 0x01449373, 0x01fa243d, 0x0051b839, 0x0097effd, 0x000a0d32, 0x02b283f7, 0x000559f8, 0x0062f4ba, 0x0006196f}}}, + {X: Field{[10]uint32{0x02312852, 0x0090b75e, 0x026d5deb, 0x00f755e8, 0x01b9ed7e, 0x02dbf330, 0x027c77f1, 0x034f4e39, 0x003b5053, 0x0022c5a6}}, Y: Field{[10]uint32{0x005d47c6, 0x03217976, 0x00e9fbe6, 0x034b1ca8, 0x000caeb3, 0x03fd26b2, 0x02adeedc, 0x014f4e55, 0x0392fa59, 0x0012764f}}}, + {X: Field{[10]uint32{0x010cabc9, 0x0381191d, 0x002ef505, 0x00c0eeb0, 0x02efb367, 0x020fed88, 0x03b25130, 0x00c9f089, 0x02a4b1da, 0x001a3d77}}, Y: Field{[10]uint32{0x03d31782, 0x01a263f8, 0x0350c435, 0x0115c72d, 0x02146de0, 0x01b271d0, 0x01257744, 0x012e76bb, 0x039c5d62, 0x00099d03}}}, + {X: Field{[10]uint32{0x020c699b, 0x02ec8080, 0x01244e74, 0x001a6156, 0x03cc9367, 0x008229b5, 0x019d8bd7, 0x03c03238, 0x007fc3ac, 0x003ebd48}}, Y: Field{[10]uint32{0x02f1936c, 0x019282f3, 0x03eebb85, 0x009c2181, 0x03d42c15, 0x01c77a39, 0x00186ac9, 0x031b952b, 0x004617a6, 0x003eaded}}}, + {X: Field{[10]uint32{0x00d17630, 0x03d4207a, 0x004a2bca, 0x00828998, 0x02917c04, 0x00bc0685, 0x0204707a, 0x0316f4f6, 0x0291b541, 0x0030f46a}}, Y: Field{[10]uint32{0x00d9ce27, 0x03450d7f, 0x02c64d8c, 0x028d1324, 0x01c9b631, 0x0397ded1, 0x02d7ce54, 0x031017c1, 0x006e5a58, 0x0016d5e0}}}, + {X: Field{[10]uint32{0x02c8db1a, 0x03267ea2, 0x01455623, 0x016bf8b0, 0x0254b5bd, 0x0246cc3c, 0x00db5263, 0x02e48114, 0x02354970, 0x0008c9e2}}, Y: Field{[10]uint32{0x00e1888b, 0x03b91064, 0x0144d55d, 0x01afef48, 0x03357048, 0x018150b7, 0x0093b746, 0x02791c6b, 0x01dae8df, 0x00219360}}}, + {X: Field{[10]uint32{0x038c0146, 0x01d97151, 0x02d25485, 0x00ac3b2b, 0x017c12c3, 0x02773440, 0x00de4ab2, 0x0329341d, 0x018133cb, 0x00180bd8}}, Y: Field{[10]uint32{0x027aa968, 0x02791800, 0x0011f91c, 0x010b39a8, 0x019ffab3, 0x0266e721, 0x03d2da15, 0x030d43dd, 0x03b7279e, 0x001310b3}}}, + {X: Field{[10]uint32{0x01843ee9, 0x03b2ab49, 0x02690fd4, 0x02af1e58, 0x03c545a9, 0x0373233f, 0x002aa463, 0x030ec976, 0x03c70126, 0x00077133}}, Y: Field{[10]uint32{0x03fedeb1, 0x0097986c, 0x003ac182, 0x02e4aa6d, 0x036002b1, 0x0178cabe, 0x0020f172, 0x0155d4d6, 0x01825c53, 0x002a4d5e}}}, + {X: Field{[10]uint32{0x0235af82, 0x0308f3f3, 0x028b33c6, 0x037e2c13, 0x01887a95, 0x032997f1, 0x00d99108, 0x02f1e453, 0x01216e02, 0x000da53c}}, Y: Field{[10]uint32{0x00555d88, 0x00d9090e, 0x006d1d1c, 0x03266e0e, 0x02c61e57, 0x021162e7, 0x016e7428, 0x0065db51, 0x0291b1c4, 0x001fffb8}}}, + {X: Field{[10]uint32{0x01f1bdbf, 0x0248ac87, 0x003b4b65, 0x00eea483, 0x00457be0, 0x03c1b0b1, 0x00725e0a, 0x019081ee, 0x0275a959, 0x001d0eb6}}, Y: Field{[10]uint32{0x000f908f, 0x035c5d6d, 0x026c0b16, 0x03e4e6c4, 0x035629b9, 0x00b706d0, 0x00c23ed9, 0x03176027, 0x01b55ac4, 0x0023cae0}}}, + {X: Field{[10]uint32{0x02420085, 0x02bdf5ac, 0x0394f210, 0x00b89b5b, 0x00f047cf, 0x0011181f, 0x00c42d7f, 0x03129ee7, 0x03977c7c, 0x0002ffa4}}, Y: Field{[10]uint32{0x02373d64, 0x00241beb, 0x01d92126, 0x03fa80b8, 0x01666c3d, 0x037b94f5, 0x02f2b510, 0x03720c07, 0x00598f80, 0x00189758}}}, + {X: Field{[10]uint32{0x03240eb9, 0x01b62e46, 0x01f8373e, 0x03ff21e5, 0x01cb56eb, 0x0219e86b, 0x01447517, 0x011b230a, 0x000e6ee6, 0x0021b00b}}, Y: Field{[10]uint32{0x005be4ed, 0x0299abf2, 0x037b40bf, 0x01224591, 0x0159d39f, 0x03d5be02, 0x02af5290, 0x004262dd, 0x029fda4b, 0x001966d7}}}, + {X: Field{[10]uint32{0x007bfda4, 0x02a48a4e, 0x02ce5dc3, 0x011d2e0a, 0x026c4f8f, 0x02a13719, 0x01d357d3, 0x0007a665, 0x0045857f, 0x000eca04}}, Y: Field{[10]uint32{0x02e9fd4c, 0x02039ff4, 0x00f8a16d, 0x008cfd40, 0x01e318a1, 0x03cc4f6b, 0x007c42f1, 0x0055091f, 0x032ccdeb, 0x00265209}}}, + {X: Field{[10]uint32{0x02fc47c0, 0x0294a13f, 0x007a3da9, 0x02380cc2, 0x02985903, 0x01b5bfca, 0x004d33d4, 0x025e7c14, 0x01d3b54d, 0x00337733}}, Y: Field{[10]uint32{0x016683b8, 0x00ebad01, 0x00321213, 0x02469fac, 0x010196c9, 0x001f7759, 0x0191e5e8, 0x004f0513, 0x03f83693, 0x0027ca84}}}, + {X: Field{[10]uint32{0x030e16d7, 0x014b0d21, 0x00088403, 0x027ccdc2, 0x018f8c2e, 0x0008c9c4, 0x034462bd, 0x00f76fb8, 0x0102a602, 0x00260401}}, Y: Field{[10]uint32{0x0169b9cb, 0x0253a406, 0x01a5747a, 0x019af5c8, 0x004cf8fb, 0x0152a13b, 0x0381c084, 0x00ecec78, 0x02f469af, 0x0006a2ff}}}, + {X: Field{[10]uint32{0x01978179, 0x0088f966, 0x02316c90, 0x03e6cd77, 0x03c26092, 0x02e08492, 0x00168479, 0x005e6c24, 0x017db2fc, 0x0022dd9d}}, Y: Field{[10]uint32{0x02b16f05, 0x03e69cd0, 0x009606ea, 0x01a07a2d, 0x01ee4492, 0x00459cc8, 0x01a71a6a, 0x01972950, 0x0326588e, 0x0011fabc}}}, + {X: Field{[10]uint32{0x02cc3b43, 0x015c759f, 0x02771bf2, 0x02cb557a, 0x0045c83b, 0x01ac3187, 0x004d8a94, 0x02d981bd, 0x03dc897f, 0x00399bb5}}, Y: Field{[10]uint32{0x0214dcbe, 0x03316a7c, 0x01810518, 0x03e64dd3, 0x017f1745, 0x0229016f, 0x00ffd470, 0x03fd3b1b, 0x039b8a9f, 0x00394dbd}}}, + {X: Field{[10]uint32{0x02bc88c8, 0x01aa84fc, 0x020d2262, 0x00241a82, 0x01ead632, 0x03bd7045, 0x02ad0656, 0x002e7e33, 0x0192cc9c, 0x00381801}}, Y: Field{[10]uint32{0x035a584f, 0x035472df, 0x03f7ca42, 0x01775527, 0x02e7f75f, 0x0304e105, 0x02552544, 0x01c1745b, 0x00b78b84, 0x0018a365}}}, + {X: Field{[10]uint32{0x01152767, 0x016b01c6, 0x02cfbffc, 0x0109ace4, 0x0362db2e, 0x018f8bc1, 0x0358fc70, 0x00975331, 0x0242a9cf, 0x0006c2bc}}, Y: Field{[10]uint32{0x0056a2be, 0x010ff0f2, 0x035a0ed0, 0x012c0be5, 0x00592dec, 0x024d5012, 0x0128da0d, 0x0015668f, 0x02a5eec3, 0x000ceba2}}}, + {X: Field{[10]uint32{0x035acb7d, 0x02a935ab, 0x00ed5439, 0x0137396f, 0x009b8092, 0x02c2f2fc, 0x005beeed, 0x01fb68d4, 0x03aa142f, 0x0038813f}}, Y: Field{[10]uint32{0x018911ba, 0x0136d257, 0x0159e692, 0x00c11e69, 0x03a02f70, 0x03bcb08a, 0x02acdd1a, 0x005466b7, 0x019b98e1, 0x0028a013}}}, + {X: Field{[10]uint32{0x01515ed5, 0x03c26683, 0x0196469c, 0x03d24a11, 0x00a35431, 0x00c5cf53, 0x00ea1fc1, 0x00c7d885, 0x02676515, 0x002bf103}}, Y: Field{[10]uint32{0x00b648e0, 0x01b4ccc0, 0x01b45589, 0x001f34ef, 0x035e6297, 0x02c13499, 0x02e85963, 0x0037a4ca, 0x02f41e48, 0x0015fbdb}}}, + {X: Field{[10]uint32{0x03e8d226, 0x037b88aa, 0x001d4690, 0x00197298, 0x01729634, 0x017038f2, 0x00588b04, 0x01907e00, 0x03db747b, 0x001654e2}}, Y: Field{[10]uint32{0x002d4438, 0x000c773b, 0x00e28652, 0x00a174de, 0x0352ca7a, 0x037a5821, 0x026547a3, 0x0270d530, 0x006a3c91, 0x00280c12}}}, + {X: Field{[10]uint32{0x0197ed8f, 0x0391a6aa, 0x026f1efb, 0x01106012, 0x02b964cf, 0x03b6ca9d, 0x03a4baeb, 0x0100a318, 0x034fc38d, 0x001aa474}}, Y: Field{[10]uint32{0x01073260, 0x00075d76, 0x02a00f2b, 0x034729b3, 0x0345f221, 0x034f9cfa, 0x02ead10d, 0x0149d0b4, 0x00836a0b, 0x000c9403}}}, + {X: Field{[10]uint32{0x02c28d61, 0x018330a2, 0x02ee8f77, 0x02772170, 0x00332ae3, 0x038870d1, 0x01c44ab5, 0x025fba5f, 0x0287b11d, 0x00249839}}, Y: Field{[10]uint32{0x0223e778, 0x03a61458, 0x01d1892c, 0x020e8cf9, 0x01c1d13e, 0x03736765, 0x0124f5e2, 0x01953bdc, 0x033de8d8, 0x0003d1f7}}}, + {X: Field{[10]uint32{0x00fe3cba, 0x02410413, 0x03e06a03, 0x030f73e6, 0x00b48820, 0x02d3ca4f, 0x038561f4, 0x03cc07d9, 0x03337a66, 0x000d2439}}, Y: Field{[10]uint32{0x029bbd6c, 0x0281c857, 0x006f1f5e, 0x00d94ca2, 0x02a81695, 0x016eec8a, 0x03876368, 0x01c2b1d3, 0x02797edb, 0x00125646}}}, + {X: Field{[10]uint32{0x0107b4a0, 0x0029a023, 0x03c8a6ec, 0x02049e00, 0x01d71d7a, 0x02a55228, 0x00b1311e, 0x02a68df7, 0x00fe1f47, 0x0025ca7d}}, Y: Field{[10]uint32{0x0317f896, 0x02e2bcba, 0x0386c2dc, 0x01cffa2a, 0x01c8f03d, 0x008bbfa9, 0x03ee569e, 0x03f5ca39, 0x01d4ccc4, 0x0015b869}}}, + {X: Field{[10]uint32{0x029c2caf, 0x036360eb, 0x034b1c37, 0x02d60332, 0x005e694e, 0x0200113c, 0x03d77a66, 0x0108f473, 0x004f06da, 0x002bd8e4}}, Y: Field{[10]uint32{0x03e110b2, 0x006cc1b6, 0x02400f3d, 0x003df1e6, 0x01b8cfaf, 0x029f8bb7, 0x01fa10b4, 0x02e52345, 0x002f5fe2, 0x001b7b37}}}, + {X: Field{[10]uint32{0x00435a3f, 0x00bede8b, 0x031f2f24, 0x03831ede, 0x01403cf0, 0x01f0a53f, 0x0274edf8, 0x007c8688, 0x03721f4a, 0x002589c7}}, Y: Field{[10]uint32{0x025adddf, 0x03d6c872, 0x01e7951c, 0x01deb904, 0x01719400, 0x027dba52, 0x03bbca44, 0x033f54af, 0x00731fc8, 0x0019bfef}}}, + {X: Field{[10]uint32{0x03717c7d, 0x03653292, 0x0296a95b, 0x00f1fb89, 0x00dfa5a1, 0x02ea3658, 0x0027287e, 0x03168056, 0x02151f0c, 0x00290bbc}}, Y: Field{[10]uint32{0x00046fec, 0x0257dad4, 0x03a1ba49, 0x01c82d48, 0x02e32431, 0x0051823b, 0x02969298, 0x029644c8, 0x02d45f08, 0x00179247}}}, + {X: Field{[10]uint32{0x0062e5e4, 0x00b01eee, 0x02c2f7fb, 0x00ac4d6f, 0x00fc4ce9, 0x022f89e0, 0x019c2896, 0x029d5f61, 0x01ede770, 0x00064ecf}}, Y: Field{[10]uint32{0x00716700, 0x0066d7bc, 0x0177522d, 0x01026031, 0x02d1d1d7, 0x02378155, 0x01d5cd13, 0x01cd7828, 0x03baffbb, 0x00064b12}}}, + {X: Field{[10]uint32{0x001e8dc7, 0x0029f3a3, 0x02029e29, 0x02c389d5, 0x02054084, 0x01bfbbcf, 0x03b4fc82, 0x0113933c, 0x0075da6f, 0x00333e68}}, Y: Field{[10]uint32{0x0235a183, 0x02c83266, 0x03a67bf6, 0x0247ffa6, 0x020a5d64, 0x00208671, 0x020f0a23, 0x030c2e40, 0x004dccf2, 0x003413e1}}}, + {X: Field{[10]uint32{0x025b0140, 0x039eb3b4, 0x03831873, 0x02e5b738, 0x00d3ddff, 0x02614c82, 0x00ec69ef, 0x02ed0fd8, 0x025b1d69, 0x001fafa8}}, Y: Field{[10]uint32{0x03ec3d65, 0x00f9f293, 0x01d16fc8, 0x01d62557, 0x002a9483, 0x004e8fce, 0x031a47d0, 0x0358dd53, 0x02f2bf87, 0x00091502}}}, + {X: Field{[10]uint32{0x00a038c7, 0x004718e1, 0x02e45d71, 0x03af5ca6, 0x02674662, 0x00e11e2d, 0x03ff0380, 0x006c066d, 0x034ac2a3, 0x0000327a}}, Y: Field{[10]uint32{0x01f32240, 0x02f77b60, 0x016a6e26, 0x02cca744, 0x0312f6e8, 0x022b90a8, 0x032b90d7, 0x00fd3afb, 0x003dcaed, 0x001f8bb8}}}, + {X: Field{[10]uint32{0x01acd867, 0x03651bf9, 0x007b87fe, 0x00361b15, 0x02cd0b29, 0x03f61ed2, 0x0323bc5c, 0x013a7a9e, 0x020c08c8, 0x00115d5b}}, Y: Field{[10]uint32{0x00acdd1f, 0x0076829c, 0x00413461, 0x00b216c2, 0x0031326e, 0x01f705b4, 0x03984c3d, 0x03005cf6, 0x022ce577, 0x00270fd4}}}, + {X: Field{[10]uint32{0x03e3c0da, 0x0036dfc4, 0x0225ce4a, 0x039c42ae, 0x0359438d, 0x0197891d, 0x009e3416, 0x0358db1e, 0x008121be, 0x0006f561}}, Y: Field{[10]uint32{0x0386a90b, 0x03d0d451, 0x008e7350, 0x035e5627, 0x00ffd4d6, 0x001e1d0c, 0x028a7b75, 0x014e658e, 0x0097bf90, 0x0032c3ae}}}, + {X: Field{[10]uint32{0x01324dc1, 0x01f3b676, 0x00063054, 0x038333e9, 0x0032eda7, 0x01677663, 0x02a80a97, 0x026e9612, 0x022c8e80, 0x003c6655}}, Y: Field{[10]uint32{0x0008d1d0, 0x026b1ead, 0x00f32400, 0x0047374e, 0x022f7ea8, 0x00f28537, 0x01dbcea3, 0x00126252, 0x02ad7643, 0x000cd467}}}, + {X: Field{[10]uint32{0x005ea6f3, 0x00f4f53d, 0x03559674, 0x03a61372, 0x02975319, 0x00162548, 0x02ac3b93, 0x01f707d5, 0x0110e9e3, 0x001fed3a}}, Y: Field{[10]uint32{0x03c960ee, 0x00341399, 0x0062855f, 0x029ef553, 0x005f4d94, 0x038c80f7, 0x02b59bcf, 0x03b273cd, 0x003c0cdb, 0x0002dd28}}}, + {X: Field{[10]uint32{0x006c03e6, 0x03ea7fa2, 0x031364c6, 0x0229ae73, 0x03c1a1d6, 0x0137108c, 0x02270205, 0x0275e2b2, 0x00fd1983, 0x00140f42}}, Y: Field{[10]uint32{0x02448e0a, 0x00def463, 0x02f77589, 0x0355f10d, 0x02698459, 0x01cf48f7, 0x01059144, 0x03ae1ef6, 0x01db9a09, 0x00212b65}}}, + {X: Field{[10]uint32{0x01e1e713, 0x025820d4, 0x02c25091, 0x032390be, 0x0162db42, 0x021c5629, 0x02d0deac, 0x034f8961, 0x0204e6ae, 0x000cd724}}, Y: Field{[10]uint32{0x00c1c2f9, 0x027c2b3d, 0x01ce67ef, 0x01774d06, 0x0049b60c, 0x004bf761, 0x00849d42, 0x02fb8a50, 0x01bb10f8, 0x00056cd6}}}, + {X: Field{[10]uint32{0x0034bc9f, 0x01104d0a, 0x035ef30c, 0x0262738f, 0x00f218c2, 0x01c82ed4, 0x01117df5, 0x00567e08, 0x01cbe0f7, 0x002e9a39}}, Y: Field{[10]uint32{0x00fa5d72, 0x01ef2510, 0x017f3ca5, 0x011dc719, 0x03101ff4, 0x0104a8a1, 0x005a2ede, 0x01393bfd, 0x03dd0ff3, 0x000ab096}}}, + {X: Field{[10]uint32{0x037e6baa, 0x017b0821, 0x03a0a02a, 0x010e8791, 0x03446d79, 0x00e71252, 0x00202677, 0x0210c163, 0x0313311d, 0x0024f5b9}}, Y: Field{[10]uint32{0x001a0856, 0x01a99748, 0x0324fdb5, 0x0055f353, 0x01e10bf6, 0x02d427e7, 0x00710410, 0x03f49b81, 0x019c99a2, 0x001665f0}}}, + {X: Field{[10]uint32{0x03397172, 0x01402917, 0x00c22ac7, 0x009a3b30, 0x00cb8f46, 0x031746da, 0x0284fbe0, 0x01e829ce, 0x001b5cc7, 0x001ea52f}}, Y: Field{[10]uint32{0x0178bee5, 0x03dad341, 0x02cef34a, 0x025405b7, 0x03032d36, 0x02fb7d34, 0x01c9f8c1, 0x0354a9c6, 0x006e82a4, 0x0004a307}}}, + {X: Field{[10]uint32{0x0021b809, 0x00f165b2, 0x01c54c21, 0x00b6eb2b, 0x0375fbe5, 0x01bcf919, 0x02ec848f, 0x020f6517, 0x01a7c193, 0x003c0c7b}}, Y: Field{[10]uint32{0x03cabab8, 0x0031dd88, 0x03ea0517, 0x00dabe5a, 0x01eb505d, 0x0394bc65, 0x001e2e7e, 0x0393d76e, 0x010d1c17, 0x002d29e3}}}, + {X: Field{[10]uint32{0x0039907c, 0x02df5c08, 0x0360857a, 0x01d58329, 0x010ce9f3, 0x01d34065, 0x00cb924c, 0x03820b75, 0x02cd5c17, 0x0021bbc6}}, Y: Field{[10]uint32{0x00f3bb3c, 0x0383b093, 0x03de1ef7, 0x0172731d, 0x0136c310, 0x01b559cf, 0x02d34b10, 0x022b2509, 0x013db907, 0x001a4da8}}}, + {X: Field{[10]uint32{0x03c6d720, 0x005ad832, 0x00bc9409, 0x0324aac4, 0x006d24ee, 0x00a853ee, 0x039beeb6, 0x00e8d526, 0x00c9c78e, 0x003f3adb}}, Y: Field{[10]uint32{0x03f7583d, 0x005e1cdd, 0x0162f08b, 0x024ba9d5, 0x009f8d92, 0x004b2946, 0x03697015, 0x007c7382, 0x00245f56, 0x001f0b98}}}, + {X: Field{[10]uint32{0x03a5c8d9, 0x0084fbb7, 0x00f3ecd2, 0x01b8ec50, 0x00d475e3, 0x02bf90e0, 0x0026d837, 0x03cd207d, 0x011b9a36, 0x0028767b}}, Y: Field{[10]uint32{0x03a558a0, 0x016fc1f7, 0x00c6007d, 0x00ef9aaa, 0x0078bd5e, 0x03a7fb95, 0x002cb779, 0x00fca7b0, 0x017ca127, 0x000da0f2}}}, + {X: Field{[10]uint32{0x01bd48c7, 0x03e43814, 0x03dac844, 0x0269dfac, 0x013e8f62, 0x022bff28, 0x01bbdc75, 0x03b55785, 0x01996311, 0x0036637a}}, Y: Field{[10]uint32{0x00ef2a22, 0x01127ca1, 0x037cc07d, 0x014e5a75, 0x02693943, 0x01de3970, 0x011b8100, 0x023b9da3, 0x014d272a, 0x0022bd86}}}, + {X: Field{[10]uint32{0x019aac60, 0x022e8fea, 0x023edbee, 0x008e625e, 0x0060f4d2, 0x0197e014, 0x031ba80d, 0x03e8a6db, 0x01b7cd6a, 0x001e0ca3}}, Y: Field{[10]uint32{0x02fc5efb, 0x031ea79d, 0x02f01f35, 0x02171265, 0x02629f81, 0x0384d910, 0x023377f4, 0x00eb1204, 0x016f1d14, 0x0038df92}}}, + {X: Field{[10]uint32{0x0336db5e, 0x0347d9b8, 0x02117223, 0x033f36c9, 0x005d9747, 0x02ca7b9b, 0x001e1c09, 0x02bc2cdf, 0x0093031f, 0x000f5c05}}, Y: Field{[10]uint32{0x037600ad, 0x033474f9, 0x008b6648, 0x0316e1fe, 0x03414ea3, 0x02d3a774, 0x01f7ce0a, 0x02c82ad0, 0x01408311, 0x00347a64}}}, + {X: Field{[10]uint32{0x02288628, 0x03dd8ab3, 0x03a96e90, 0x021bf6fd, 0x000e2239, 0x02953b31, 0x015ba2a7, 0x0352ac2f, 0x00c047e0, 0x003d866b}}, Y: Field{[10]uint32{0x001564f2, 0x013b299e, 0x01de68fa, 0x037f3bed, 0x02f9cdcc, 0x039ff07b, 0x016a2d70, 0x017443f2, 0x023de154, 0x003c93ad}}}, + {X: Field{[10]uint32{0x02d0a2d2, 0x02f0032a, 0x03489a1d, 0x00d678be, 0x0291718f, 0x03de5ff3, 0x004a8514, 0x016800cd, 0x01b871f8, 0x00332a02}}, Y: Field{[10]uint32{0x0090b037, 0x0047045a, 0x012f712b, 0x03b4e0a6, 0x03aba642, 0x007d8be5, 0x018f260a, 0x020d6489, 0x02b83565, 0x002df5ca}}}, + {X: Field{[10]uint32{0x01c81958, 0x00fb471f, 0x03eeaa7d, 0x016d4706, 0x01aa26c4, 0x003ee851, 0x034eec03, 0x014076be, 0x0366ee2c, 0x002ef465}}, Y: Field{[10]uint32{0x035250fa, 0x03c6b3f7, 0x03cfeb98, 0x033b0cbb, 0x036c1ca4, 0x01c9110b, 0x030a6e89, 0x0184b9f3, 0x01ff70b3, 0x002f1c27}}}, + {X: Field{[10]uint32{0x001cfadd, 0x01352bfb, 0x025f79c3, 0x03a0e9a2, 0x01ca8f0e, 0x01912a97, 0x03a19381, 0x02065c99, 0x00a0e4a5, 0x001a9bf7}}, Y: Field{[10]uint32{0x02732081, 0x0145fa74, 0x00c36db6, 0x01bf2b6c, 0x006bd7ff, 0x01faf31c, 0x0104298d, 0x01495730, 0x02367658, 0x0030a2c4}}}, + {X: Field{[10]uint32{0x035c8006, 0x014c85b7, 0x00be02c5, 0x00ac05e9, 0x029564af, 0x014bc2b7, 0x03d693de, 0x00688bb9, 0x03e1fd40, 0x000248b8}}, Y: Field{[10]uint32{0x0088f757, 0x03ac7105, 0x004aa3b9, 0x031c82e5, 0x03696841, 0x032a2889, 0x0379e0c5, 0x012902e6, 0x0065aae8, 0x0029ec40}}}, + {X: Field{[10]uint32{0x0276eac8, 0x020be629, 0x01490383, 0x036b5225, 0x03aff8a6, 0x00f2f4ec, 0x02bd9dae, 0x02d54fe4, 0x024e3526, 0x0014ffeb}}, Y: Field{[10]uint32{0x01f8c6f4, 0x0390fb66, 0x03d23cfd, 0x024b115b, 0x009e6652, 0x033a183b, 0x023b2228, 0x0202e0f4, 0x00aeb51f, 0x00207f7f}}}, + {X: Field{[10]uint32{0x0203d119, 0x009e1882, 0x015b9772, 0x031ad574, 0x027c2e70, 0x00a73f92, 0x03e70289, 0x025be274, 0x01d1c945, 0x00052837}}, Y: Field{[10]uint32{0x036dd086, 0x03c7efa5, 0x02e83806, 0x03bed663, 0x007e8c94, 0x00f71956, 0x03e14835, 0x0074777d, 0x0071febe, 0x000ad770}}}, + {X: Field{[10]uint32{0x0168c8f9, 0x0143c78f, 0x03f4dc01, 0x00a9ce7b, 0x00bebe27, 0x032bcee4, 0x01a25428, 0x03cd6ed4, 0x000dfb74, 0x001cda09}}, Y: Field{[10]uint32{0x00a7a27f, 0x02ea17b9, 0x03cd8fd2, 0x01cac572, 0x0321801a, 0x031191a7, 0x00c71687, 0x03a0b9dd, 0x0317b4c5, 0x00254e4a}}}, + {X: Field{[10]uint32{0x00580560, 0x00340408, 0x0079e640, 0x0041ef16, 0x035fbdb6, 0x0105a217, 0x016825e2, 0x02ce748e, 0x0053b9ea, 0x001302a0}}, Y: Field{[10]uint32{0x03db5427, 0x02a5eef5, 0x002f093c, 0x0099820f, 0x02f5a6f8, 0x01022de7, 0x03f67f65, 0x0394c985, 0x02a75b7d, 0x00216888}}}, + {X: Field{[10]uint32{0x01dabbf8, 0x00c814cf, 0x00a1e91e, 0x01abd5e4, 0x026751a2, 0x00cf7f2c, 0x01447a49, 0x03e2b2f6, 0x02a824a6, 0x00328359}}, Y: Field{[10]uint32{0x01395d18, 0x003cca5e, 0x016b2155, 0x0020297c, 0x036f7d7d, 0x03bc0790, 0x01fd49b1, 0x00211447, 0x018d4f8b, 0x00187322}}}, + {X: Field{[10]uint32{0x01e9d6d4, 0x01629b95, 0x03a76453, 0x03dcd572, 0x01a3d7df, 0x031fec20, 0x020763b5, 0x01a8db54, 0x0375e62f, 0x00191a81}}, Y: Field{[10]uint32{0x037dbbb4, 0x006807de, 0x026f7a6b, 0x011b85f1, 0x01b11000, 0x00b24dbe, 0x01b23662, 0x00299083, 0x0044e738, 0x000f94a2}}}, + {X: Field{[10]uint32{0x0055d070, 0x000c00d9, 0x007f2303, 0x00faa044, 0x01bac77f, 0x0014b69c, 0x02d7c477, 0x02f04c50, 0x01ecf3d6, 0x0010d559}}, Y: Field{[10]uint32{0x00c9f6bd, 0x027ad369, 0x02d159fa, 0x01706ba5, 0x03ab6edc, 0x027c31c3, 0x03ca8f6c, 0x023658d0, 0x009689fd, 0x0013b54a}}}, + {X: Field{[10]uint32{0x03aa8f9d, 0x029d82e4, 0x0316fff6, 0x02b000dc, 0x037a014a, 0x018171a4, 0x01f22fee, 0x01512a94, 0x00969328, 0x00362c06}}, Y: Field{[10]uint32{0x0206edf3, 0x03dc964e, 0x020ac989, 0x020b9318, 0x01dd4127, 0x00525ed7, 0x0160719c, 0x01e6b4db, 0x0242a2b8, 0x0018fd47}}}, + {X: Field{[10]uint32{0x023d48d7, 0x039511b5, 0x0399a21e, 0x02ed1fc1, 0x0283a30a, 0x03c60b97, 0x02f6f2b6, 0x00c14a52, 0x01504a9b, 0x002e51d6}}, Y: Field{[10]uint32{0x002fb876, 0x0241a243, 0x01018042, 0x01f0d2b8, 0x02968027, 0x038d62b5, 0x03896769, 0x0266fde6, 0x002837a8, 0x0032f1d0}}}, + {X: Field{[10]uint32{0x038e0ef0, 0x01a89c7f, 0x02f0fc3e, 0x019c6c98, 0x01d521b4, 0x0121084d, 0x0201b5e3, 0x0356fb16, 0x00492972, 0x00050c5f}}, Y: Field{[10]uint32{0x02069381, 0x02419470, 0x006cfc20, 0x027930d2, 0x01d318e7, 0x036d20f6, 0x02a476a7, 0x033f48b9, 0x0235d1ce, 0x00331348}}}, + {X: Field{[10]uint32{0x0144f8c6, 0x03753927, 0x005f8fcd, 0x01cd3a57, 0x0278c4b8, 0x0224a354, 0x0062ab33, 0x019fd13c, 0x03575b68, 0x0022ef6c}}, Y: Field{[10]uint32{0x0173a778, 0x025fccd4, 0x019fa90b, 0x028bb86d, 0x021279ec, 0x01f40398, 0x01a67e6c, 0x01015301, 0x03873242, 0x0034e34c}}}, + {X: Field{[10]uint32{0x006aa685, 0x002c643c, 0x014761ab, 0x03e53b4c, 0x03380b00, 0x0265b035, 0x0279786b, 0x02f9e024, 0x02f636ec, 0x001ddd7f}}, Y: Field{[10]uint32{0x0355407b, 0x025bafcb, 0x018e12a9, 0x014cae0c, 0x00342431, 0x02e21711, 0x0257d7fc, 0x03596773, 0x0273162d, 0x0014c54a}}}, + {X: Field{[10]uint32{0x01693b48, 0x0247030e, 0x0242ba74, 0x02955143, 0x00bc9b0e, 0x0279cbed, 0x02649502, 0x038ddef2, 0x03d139eb, 0x0036d792}}, Y: Field{[10]uint32{0x005a0abb, 0x025399b3, 0x00e62141, 0x003af6f9, 0x00416ca2, 0x00e209f7, 0x037ceb32, 0x025ab68c, 0x0113a5a7, 0x002991a0}}}, + {X: Field{[10]uint32{0x01c619eb, 0x013fc47c, 0x020fc241, 0x00c5c255, 0x016ebf06, 0x03c1a73c, 0x0011be39, 0x014b8bab, 0x03b0578c, 0x003aac15}}, Y: Field{[10]uint32{0x01023f67, 0x036d157f, 0x01f750cd, 0x03386031, 0x006fb041, 0x030b787a, 0x00e5c6c3, 0x02e2a116, 0x023fcf69, 0x00150880}}}, + {X: Field{[10]uint32{0x03f5e44c, 0x00460ff9, 0x02fe6d02, 0x00c90639, 0x02c231ba, 0x01944ccf, 0x02d43cc0, 0x035845f8, 0x00d3c657, 0x003a557f}}, Y: Field{[10]uint32{0x028e6b57, 0x008a3d20, 0x02369cfe, 0x03f2cb8d, 0x02973095, 0x0311b176, 0x014953a4, 0x00bc9c91, 0x02986521, 0x003743aa}}}, + {X: Field{[10]uint32{0x002d8e49, 0x01fe46c1, 0x027a72a0, 0x01cfabec, 0x03ec0f5e, 0x00759817, 0x011f596f, 0x03f0c30c, 0x005758ea, 0x0017d68f}}, Y: Field{[10]uint32{0x01cdf1a2, 0x00fbca97, 0x0090ccf2, 0x017a132a, 0x01c6d9f5, 0x02914dbd, 0x005a04aa, 0x02cbaa76, 0x00b01d1f, 0x0000f378}}}, + {X: Field{[10]uint32{0x00b99bab, 0x00b64902, 0x019c0757, 0x03c9ab48, 0x0049c82c, 0x0012bc46, 0x03fbd7ae, 0x03787bbf, 0x01e4ff0a, 0x003ede8c}}, Y: Field{[10]uint32{0x01df2a01, 0x00ac1fcc, 0x0345a550, 0x00b01cd8, 0x039e6910, 0x03918f75, 0x006bc4eb, 0x0395fbba, 0x020c431d, 0x003aa1ea}}}, + {X: Field{[10]uint32{0x03ae1ffb, 0x005de352, 0x02b44e41, 0x00f79ac8, 0x036ec18d, 0x020fb8e8, 0x01f8dd96, 0x01dde52e, 0x016aa3e8, 0x00355ec7}}, Y: Field{[10]uint32{0x000f62ee, 0x0235eaf7, 0x008ca73f, 0x015c08b6, 0x009fcb9e, 0x00f32ebb, 0x01adb0e4, 0x034bc027, 0x02d6b85b, 0x00095bff}}}, + {X: Field{[10]uint32{0x03b8f1a6, 0x02b15232, 0x00b5bbd6, 0x00cb1c2f, 0x030f7268, 0x020da5ec, 0x00fc90e1, 0x0128e3bc, 0x0052d3a2, 0x0024c9bf}}, Y: Field{[10]uint32{0x02889a2b, 0x01629bc4, 0x0330801a, 0x03095355, 0x00d7d766, 0x0267ebea, 0x01176f5c, 0x00afab48, 0x00a0cc0a, 0x00218ef4}}}, + {X: Field{[10]uint32{0x013caff4, 0x01e6d2ea, 0x036da360, 0x0354c4fb, 0x03d5d310, 0x0082b421, 0x0217e946, 0x02d7995d, 0x00d5abc9, 0x00160d8b}}, Y: Field{[10]uint32{0x022fc52f, 0x012350bd, 0x021c03da, 0x03cf098b, 0x03d6923c, 0x0390c88c, 0x03b673b2, 0x02ef635c, 0x00044e86, 0x00017ca9}}}, + {X: Field{[10]uint32{0x001738ee, 0x03f3a061, 0x03681034, 0x01a5fa68, 0x01b8c4cd, 0x02cc6358, 0x001b3a96, 0x039a3c38, 0x00b9cd06, 0x001f7522}}, Y: Field{[10]uint32{0x019782cf, 0x0267af82, 0x0010f34a, 0x03414998, 0x00d963de, 0x00f4a4a8, 0x0370846a, 0x03225f2d, 0x01ed0130, 0x003f5ea9}}}, + {X: Field{[10]uint32{0x00fe798d, 0x01419003, 0x0061df95, 0x0091aea0, 0x011fa2a3, 0x00ed05c1, 0x030d7d5a, 0x005550cc, 0x0302524c, 0x0026fde2}}, Y: Field{[10]uint32{0x00cf5a83, 0x009d5224, 0x00f48104, 0x0215da59, 0x00c7d063, 0x02d08672, 0x01d5a703, 0x01a0075e, 0x03d66d2e, 0x00167d4d}}}, + {X: Field{[10]uint32{0x02b3fc47, 0x00f70d83, 0x03c39366, 0x02dbbbaf, 0x00e71513, 0x02ef5b47, 0x01b4f879, 0x03572c63, 0x0173743a, 0x0013205a}}, Y: Field{[10]uint32{0x0141105f, 0x010b6243, 0x00254ab1, 0x03af545b, 0x0044c6f8, 0x0003e594, 0x033ef09f, 0x025002a4, 0x02ac37a4, 0x00069b71}}}, + {X: Field{[10]uint32{0x01051be8, 0x00715bec, 0x031a835c, 0x0169fc00, 0x00173f4e, 0x003ce89b, 0x02964084, 0x018d0d64, 0x03c2c748, 0x001818da}}, Y: Field{[10]uint32{0x03e88e8b, 0x03763d76, 0x01b08541, 0x01adf3e0, 0x020efc2e, 0x0346f95b, 0x024190b0, 0x00af25c2, 0x037a3aed, 0x001c69e2}}}, + {X: Field{[10]uint32{0x03f8d00a, 0x01e83cc1, 0x00a2f004, 0x00dd0329, 0x03122115, 0x03579b34, 0x0263fc94, 0x0029c1b1, 0x02dec3e9, 0x0029b9dc}}, Y: Field{[10]uint32{0x00eed520, 0x029f1cf4, 0x032ca76b, 0x00875e30, 0x00f10902, 0x002a87ae, 0x02175a81, 0x01c60529, 0x021f5c72, 0x00096e3f}}}, + {X: Field{[10]uint32{0x00b89262, 0x00c9395f, 0x026c9019, 0x004c598c, 0x031692f6, 0x02a2feeb, 0x03b4b2aa, 0x01c857ea, 0x013c6030, 0x001e7199}}, Y: Field{[10]uint32{0x02197bcb, 0x039fb4b4, 0x028f8db1, 0x00f08138, 0x03c24eaa, 0x0025572f, 0x0379da4c, 0x02525b8a, 0x0112b6b4, 0x000db57b}}}, + {X: Field{[10]uint32{0x0246cb15, 0x02a151b5, 0x0242ed4b, 0x013aaaf6, 0x034a2bdb, 0x03911530, 0x0374af4c, 0x03eb7b51, 0x032e4530, 0x000fd55a}}, Y: Field{[10]uint32{0x00fd25c3, 0x00a4e27b, 0x039e0588, 0x0360e5f3, 0x02c9fd04, 0x01717138, 0x028996bf, 0x010cc4ef, 0x03211ce8, 0x002eac74}}}, + {X: Field{[10]uint32{0x03b3913a, 0x009cedcf, 0x01dd93b7, 0x00abce18, 0x02d645c5, 0x03dcc7f8, 0x011e0fbc, 0x03fa7d78, 0x02238d21, 0x003b6966}}, Y: Field{[10]uint32{0x012bbfee, 0x006e6a1c, 0x02562416, 0x015d032c, 0x03d3cea8, 0x01d6dfad, 0x0029c06d, 0x0082e0b3, 0x03014ba3, 0x0008bc8b}}}, + {X: Field{[10]uint32{0x01e68548, 0x02909e5f, 0x02cb0c42, 0x00aea7d8, 0x033a2bea, 0x01c753c0, 0x0158adf0, 0x03ed3cda, 0x0277323d, 0x0001e87a}}, Y: Field{[10]uint32{0x024825a0, 0x030fc809, 0x01940f6c, 0x0147dbd0, 0x006d2d7f, 0x00984c63, 0x036f9766, 0x00ad7689, 0x0225ee7a, 0x001219b3}}}, + {X: Field{[10]uint32{0x0323de2a, 0x0330f668, 0x00178a0e, 0x023d8b57, 0x0233d102, 0x02421db8, 0x027c51d5, 0x035b42eb, 0x013aad62, 0x0002b43f}}, Y: Field{[10]uint32{0x003b0601, 0x0100e082, 0x02787a6d, 0x01f7b660, 0x01d16315, 0x01e4b5d8, 0x034a64eb, 0x011a7d53, 0x00c59672, 0x00223809}}}, + {X: Field{[10]uint32{0x002729d3, 0x001b3718, 0x00dfd207, 0x01c6358d, 0x03ee7437, 0x02e12972, 0x016e9d67, 0x0129a55b, 0x0032f404, 0x0006fc65}}, Y: Field{[10]uint32{0x00516aa9, 0x00710c1f, 0x0292263d, 0x0270fe93, 0x034f2acd, 0x01b0dfa6, 0x02f8e3e1, 0x028681d7, 0x0200afb6, 0x0010452c}}}, + {X: Field{[10]uint32{0x0121d93b, 0x008130b8, 0x019afc35, 0x017c4b48, 0x012fb1af, 0x0002da53, 0x023b9d5f, 0x036bea2f, 0x02f20bc2, 0x00145185}}, Y: Field{[10]uint32{0x022eaf9c, 0x01cb33e4, 0x0058a740, 0x02dc1140, 0x0257ba8e, 0x0196b6fc, 0x03f4e0a0, 0x00a673d9, 0x0253608a, 0x000f973b}}}, + {X: Field{[10]uint32{0x0121a661, 0x000b685a, 0x01a1c3b0, 0x00c1aa38, 0x00fdc423, 0x033fcd39, 0x0321d181, 0x03b4c64d, 0x00e85338, 0x00238ffb}}, Y: Field{[10]uint32{0x00f686d2, 0x01993e08, 0x03b2e077, 0x010e2ccc, 0x03128945, 0x032b267b, 0x02dfc249, 0x0121ad9d, 0x034b6736, 0x002c255c}}}, + {X: Field{[10]uint32{0x03ad4447, 0x0350e329, 0x03355916, 0x02682b98, 0x016db1eb, 0x0362882e, 0x00421867, 0x007b4a4a, 0x0020df10, 0x0011b01a}}, Y: Field{[10]uint32{0x01f1afa9, 0x031eaf37, 0x0226f9ac, 0x01606f3f, 0x01d7d439, 0x0051ed4d, 0x00d1b601, 0x02dcff12, 0x00f4059b, 0x003f2a84}}}, + {X: Field{[10]uint32{0x03722b31, 0x031f6ff3, 0x02dba0fe, 0x01a470bb, 0x013fff8c, 0x02cdebdc, 0x001e406a, 0x00e42ac0, 0x01f71f9b, 0x00158cd3}}, Y: Field{[10]uint32{0x026707dc, 0x01082f1c, 0x006904af, 0x031011d1, 0x038a3724, 0x01269b24, 0x03c4b0bf, 0x03055a9c, 0x0394340d, 0x0008b410}}}, + {X: Field{[10]uint32{0x00a67c4f, 0x020998c3, 0x03d37cb8, 0x03e86d72, 0x03b2fd55, 0x03294b48, 0x03e3dc97, 0x017e3276, 0x006d8904, 0x00080b89}}, Y: Field{[10]uint32{0x017a62b1, 0x039ec828, 0x033659a2, 0x038d44f2, 0x027a6241, 0x0116201c, 0x01f661ec, 0x03c08c72, 0x03899cbc, 0x003d39b3}}}, + {X: Field{[10]uint32{0x039bd4d5, 0x008e7a66, 0x0009dece, 0x01735979, 0x03c56b63, 0x00d54bbf, 0x03c1ff94, 0x0070b3d6, 0x02e01021, 0x00320153}}, Y: Field{[10]uint32{0x03f31057, 0x008a09c5, 0x0046b46e, 0x034419e3, 0x010bf1eb, 0x02e152c1, 0x02842b43, 0x0072f379, 0x01af5160, 0x003d4145}}}, + {X: Field{[10]uint32{0x00438383, 0x00954e05, 0x004f51c6, 0x02b95be6, 0x01ea3282, 0x02e5c068, 0x01407084, 0x02d86b4a, 0x008c235e, 0x00270a5e}}, Y: Field{[10]uint32{0x0359ead7, 0x01c3b125, 0x0286c2ab, 0x010a6774, 0x00c116cc, 0x02b4c38c, 0x02469db4, 0x03bcb88d, 0x02ecefdb, 0x000c8447}}}, + {X: Field{[10]uint32{0x01a57ef8, 0x005d1706, 0x009e74bc, 0x008cd9d4, 0x02729990, 0x02530f35, 0x028dc86f, 0x030e51c1, 0x00d0b7b5, 0x0016153a}}, Y: Field{[10]uint32{0x023eb98d, 0x02dd72e9, 0x005f2345, 0x001505f5, 0x00edafec, 0x03834b4f, 0x00c41134, 0x02faf7d4, 0x01c50c06, 0x001f9e40}}}, + {X: Field{[10]uint32{0x033fef34, 0x03ea247d, 0x010b74d0, 0x03767239, 0x011104a5, 0x0151e913, 0x0046e1b3, 0x039e2681, 0x03f0f45b, 0x0022ecbf}}, Y: Field{[10]uint32{0x03b182c1, 0x02a45cdc, 0x03a7935d, 0x037dc888, 0x03efb979, 0x00e0fdd9, 0x0171e2bc, 0x00fa99b1, 0x0365a534, 0x0030ccb8}}}, + {X: Field{[10]uint32{0x00cd209e, 0x022d5863, 0x033c45ad, 0x015b71cc, 0x02992f56, 0x02d90f36, 0x0165faac, 0x00ce1e18, 0x02656ee4, 0x0003aa23}}, Y: Field{[10]uint32{0x01f0f909, 0x02a0e897, 0x006f1fd0, 0x012a10e6, 0x02af9f4f, 0x0115c971, 0x03357ab8, 0x00d0f62a, 0x00d64a7a, 0x0030e310}}}, + {X: Field{[10]uint32{0x0046295a, 0x0075aa51, 0x01ff6698, 0x02e33236, 0x02a3b18a, 0x00352e8a, 0x0322c2ee, 0x01fa984c, 0x00df857c, 0x00303075}}, Y: Field{[10]uint32{0x0172b981, 0x00bf8167, 0x02918729, 0x0123aede, 0x029a2846, 0x0326f91a, 0x02ae1dbe, 0x03bdf739, 0x01d10e8e, 0x00091c45}}}, + {X: Field{[10]uint32{0x007fc72a, 0x0380a33b, 0x0265db74, 0x0049e4ae, 0x0267b8e2, 0x02dc8faf, 0x0008d8dd, 0x00d800aa, 0x00f9407d, 0x002479a9}}, Y: Field{[10]uint32{0x005721ba, 0x0394104f, 0x0299547e, 0x02ed1e92, 0x0212e57d, 0x00841b82, 0x00e98f7b, 0x022fa173, 0x016035f5, 0x003bdab9}}}, + {X: Field{[10]uint32{0x03208454, 0x0253823e, 0x03078187, 0x000b8873, 0x0224a7a4, 0x020340d9, 0x015cf613, 0x0074d8a6, 0x02189a8c, 0x00335d25}}, Y: Field{[10]uint32{0x03af0bd9, 0x00b17b72, 0x024f6ba0, 0x00bc748e, 0x022dd6ba, 0x022bf2ae, 0x03debcf8, 0x03e44a80, 0x02be15d1, 0x003cf724}}}, + {X: Field{[10]uint32{0x02943018, 0x01d4bfe0, 0x015e9f71, 0x0196bc28, 0x0285f630, 0x013ac929, 0x004f3fa4, 0x0239c30c, 0x012d02e6, 0x00267d74}}, Y: Field{[10]uint32{0x020b8a9e, 0x01a37076, 0x01dfb611, 0x020091b5, 0x01dff9f9, 0x0028a5ec, 0x03962c9c, 0x02fccda3, 0x021ad97e, 0x00167c64}}}, + {X: Field{[10]uint32{0x01f7608f, 0x03580aee, 0x02dff7b3, 0x036e77ae, 0x01a6ac02, 0x01745c64, 0x0256b1e7, 0x01c25845, 0x0130f9c0, 0x0018f1b3}}, Y: Field{[10]uint32{0x021083f0, 0x00fffbd1, 0x017234b7, 0x03d03b9c, 0x006d8b1e, 0x02add6f9, 0x025f0a13, 0x006e3f83, 0x037370a4, 0x000b90e4}}}, + {X: Field{[10]uint32{0x01184d92, 0x0357a5d7, 0x01e9394c, 0x011c602c, 0x019e04fe, 0x01f9b06c, 0x037fc551, 0x03a84766, 0x032690a5, 0x002dd01f}}, Y: Field{[10]uint32{0x013de6d2, 0x0233df54, 0x0301aaed, 0x0200f835, 0x03828ee8, 0x0299e5b9, 0x020f7277, 0x012611d0, 0x012947dd, 0x0006e54e}}}, + {X: Field{[10]uint32{0x0383fd40, 0x03e69b78, 0x02297150, 0x023761ad, 0x02c29ce4, 0x01e94015, 0x0121e962, 0x02210375, 0x0116161c, 0x000925e4}}, Y: Field{[10]uint32{0x00b9a70b, 0x03826c0a, 0x03649143, 0x010fdee8, 0x0076f999, 0x03ec5992, 0x00d3e325, 0x0273dce1, 0x01ab3dd6, 0x0004f75c}}}, + {X: Field{[10]uint32{0x01d73b7d, 0x037a3dfe, 0x0196b6f2, 0x00651943, 0x030b4199, 0x03210542, 0x016c80d4, 0x02c9e219, 0x02c36122, 0x003c426d}}, Y: Field{[10]uint32{0x011c96ac, 0x03ab575e, 0x01c77142, 0x01ad284f, 0x01bd971f, 0x02525be1, 0x0291d4a3, 0x03553702, 0x0369bef8, 0x0029d15c}}}, + {X: Field{[10]uint32{0x01118df9, 0x038edb5a, 0x015169f0, 0x000289ad, 0x0136be99, 0x03ef42b0, 0x017c9297, 0x030dc13c, 0x03f82031, 0x00166cc0}}, Y: Field{[10]uint32{0x03d678c3, 0x0197af4b, 0x01e02d6c, 0x01b431a5, 0x01983030, 0x00d41a30, 0x008c936b, 0x009c696b, 0x00dd1666, 0x000c31f1}}}, + {X: Field{[10]uint32{0x0062fc52, 0x00e5d3b5, 0x02cd6602, 0x006b4afd, 0x01a67862, 0x01ee2132, 0x0254cd6c, 0x00436d2e, 0x019aeb39, 0x001989cd}}, Y: Field{[10]uint32{0x0110d487, 0x03115f6a, 0x010b2555, 0x0377a93d, 0x00feab83, 0x024de5de, 0x00867347, 0x01e29ff1, 0x01bad2de, 0x002f2f3e}}}, + {X: Field{[10]uint32{0x0151f1d9, 0x009e16b7, 0x0281e921, 0x00104610, 0x00ec7efc, 0x003a062b, 0x01d23059, 0x0141f672, 0x0180c4fb, 0x001dbf6b}}, Y: Field{[10]uint32{0x03a8c346, 0x03b376f8, 0x0119a18c, 0x0035ff27, 0x039b88b7, 0x01566156, 0x00adf7ef, 0x03cc1fcd, 0x03cc349c, 0x00332331}}}, + {X: Field{[10]uint32{0x01313330, 0x00ede478, 0x00700b98, 0x032d30a2, 0x037f2380, 0x02a6ebf6, 0x03ed9cc4, 0x03c2294b, 0x0006e99c, 0x0001e24d}}, Y: Field{[10]uint32{0x0111d149, 0x03e02bc9, 0x0007450e, 0x00ede96e, 0x00d0c2e8, 0x02f56e3b, 0x001acd3f, 0x03f96b42, 0x01af39ea, 0x003b0578}}}, + {X: Field{[10]uint32{0x038c81d5, 0x02c6e820, 0x039ff3bb, 0x033760e8, 0x01018f16, 0x003a0d3d, 0x013c229d, 0x0084cfb6, 0x02a4e8d0, 0x00031152}}, Y: Field{[10]uint32{0x03ac51f0, 0x00ecea1c, 0x01f5c67e, 0x039b7afd, 0x018af57b, 0x00a69b96, 0x00959245, 0x00e023d2, 0x01cf89c4, 0x002a6398}}}, + {X: Field{[10]uint32{0x02402880, 0x002d845c, 0x0327bf99, 0x03b8e55e, 0x0097dac1, 0x0108e404, 0x02ba8f96, 0x03048b74, 0x021ccbe5, 0x003fc2f0}}, Y: Field{[10]uint32{0x03bca50a, 0x0334e59d, 0x020da467, 0x03dc14a5, 0x01ecd634, 0x039117b0, 0x00cd5f89, 0x00860635, 0x009c1f7b, 0x00030d02}}}, + {X: Field{[10]uint32{0x0331c301, 0x00789e4d, 0x0373586f, 0x03a74fad, 0x003a0e61, 0x004ade3c, 0x0132e398, 0x0108ef60, 0x02e349a0, 0x00239121}}, Y: Field{[10]uint32{0x022053a1, 0x01ee6ca6, 0x0083ca8a, 0x02130422, 0x0116bbf0, 0x037088bb, 0x021866f4, 0x0098354b, 0x00d437cc, 0x00225ec9}}}, + {X: Field{[10]uint32{0x01c579e7, 0x03e96d13, 0x03584590, 0x01b04e11, 0x010bf7fb, 0x00d44227, 0x00a30d20, 0x0313a5ab, 0x017f84f5, 0x0013d329}}, Y: Field{[10]uint32{0x01e63a9e, 0x0094396b, 0x010b717d, 0x01d63ca3, 0x01336349, 0x0286e46a, 0x031cb1f8, 0x0155b0db, 0x03dc1691, 0x00354f6d}}}, + {X: Field{[10]uint32{0x03c203bb, 0x002ab633, 0x02423c76, 0x01bce22d, 0x0279b3a9, 0x02bb63ee, 0x00618300, 0x013ea417, 0x00b2d7a2, 0x003fa249}}, Y: Field{[10]uint32{0x00b056be, 0x033a8cb4, 0x0026a7e3, 0x02103ea3, 0x00e92c37, 0x02c5f82b, 0x0279df9c, 0x0038afd3, 0x0229c6be, 0x002f4c0f}}}, + {X: Field{[10]uint32{0x006abb5d, 0x03345371, 0x03fc5dcd, 0x028cc83c, 0x03008ed9, 0x014be66c, 0x005895d1, 0x031cbe1a, 0x035cf6a8, 0x000c267d}}, Y: Field{[10]uint32{0x02fc9f1c, 0x0082cba9, 0x000bc6fc, 0x0313038b, 0x0304a939, 0x02a570a9, 0x038a32c2, 0x014a7289, 0x002aec76, 0x003eed6f}}}, + {X: Field{[10]uint32{0x0072f4eb, 0x0170b727, 0x004b9741, 0x0088ab0e, 0x03432443, 0x00901727, 0x0232de01, 0x009bced9, 0x0383f841, 0x000ee4e7}}, Y: Field{[10]uint32{0x005607fb, 0x030932bc, 0x0255f1d3, 0x031fd22f, 0x01c1e602, 0x00e84e2d, 0x014cc202, 0x010e03a7, 0x0353ec45, 0x00210edc}}}, + {X: Field{[10]uint32{0x01c732d8, 0x03191b65, 0x009327b0, 0x025f5b4c, 0x00b032f1, 0x00e12a4e, 0x023cbc06, 0x038d1772, 0x02a04a50, 0x00371d41}}, Y: Field{[10]uint32{0x03d5772a, 0x0378e766, 0x039eae8d, 0x013ad88f, 0x01c6a39d, 0x0345bd0f, 0x039559a3, 0x02758a67, 0x0311f6d4, 0x003fa508}}}, + {X: Field{[10]uint32{0x03b30dea, 0x03483aa0, 0x01433f84, 0x03ed2af2, 0x003dde68, 0x01c875d7, 0x02fb61a2, 0x01a8d45c, 0x0196c699, 0x003d6931}}, Y: Field{[10]uint32{0x01f26572, 0x01a02ee7, 0x018e35ae, 0x00c3bdf7, 0x02fd783b, 0x034c2e58, 0x02ef9220, 0x03d8eeec, 0x013e77d2, 0x0005d783}}}, + {X: Field{[10]uint32{0x02a4029e, 0x02f87e6b, 0x03133cb9, 0x01a4098b, 0x01373c2f, 0x03de7d2c, 0x01222ae2, 0x00127f97, 0x00e2c499, 0x001fa40e}}, Y: Field{[10]uint32{0x0025c737, 0x01bccae0, 0x03dfe714, 0x012c888e, 0x031d7dc6, 0x015428d8, 0x00162766, 0x00d6f038, 0x026a3433, 0x000d64b9}}}, + {X: Field{[10]uint32{0x022b1f41, 0x01227ffd, 0x0050f0af, 0x00eb6482, 0x02e2cb80, 0x03e643ad, 0x0028e921, 0x03f1bf5b, 0x0373d16b, 0x00203c8b}}, Y: Field{[10]uint32{0x03503b28, 0x02f5df9e, 0x02d682a1, 0x00471c9b, 0x00370e67, 0x0133d360, 0x03e11fd2, 0x01d2f01c, 0x01d3c5ee, 0x0021c529}}}, + {X: Field{[10]uint32{0x020c897d, 0x021efebf, 0x03535fc8, 0x001f6748, 0x03007c31, 0x02e5bf82, 0x0070a58a, 0x014fe10d, 0x02e9e86e, 0x0012628a}}, Y: Field{[10]uint32{0x0001bb53, 0x033b4e99, 0x0209ec3c, 0x02754ee1, 0x037ec380, 0x02acc207, 0x020f6516, 0x01078509, 0x02b373e8, 0x0011eaa7}}}, + {X: Field{[10]uint32{0x033a010e, 0x0377cc0e, 0x03b6d960, 0x026a009d, 0x028e9c06, 0x029e31d1, 0x012c5427, 0x03861329, 0x024cd14c, 0x001806bd}}, Y: Field{[10]uint32{0x02b7fa18, 0x00734833, 0x00d59916, 0x026c00ef, 0x0156dd57, 0x00b21fbd, 0x0346c273, 0x01db4046, 0x023fca15, 0x000a4029}}}, + {X: Field{[10]uint32{0x0174a25b, 0x00d07fcb, 0x019849a1, 0x03c41775, 0x03957f2b, 0x008aa9a0, 0x018b06a8, 0x032f12b5, 0x00f07b2f, 0x0023ecb8}}, Y: Field{[10]uint32{0x01070aa4, 0x01a32d1d, 0x016e6b7c, 0x032427db, 0x0306137d, 0x0357e0ab, 0x03386f75, 0x01f3aac6, 0x03508d79, 0x001f3608}}}, + {X: Field{[10]uint32{0x0269e6d9, 0x03962bda, 0x0282c9bd, 0x02bebbcc, 0x0083468e, 0x01cb18ef, 0x01a14980, 0x0053a2d5, 0x000f0e9d, 0x000cdb5e}}, Y: Field{[10]uint32{0x023d2261, 0x008c8529, 0x00fb00b7, 0x01e7d3f8, 0x02ac3e66, 0x03f4061e, 0x02eba682, 0x02fb9ae3, 0x0004be45, 0x00024b44}}}, + {X: Field{[10]uint32{0x00d5872d, 0x011fbea4, 0x021a5e4e, 0x000f338f, 0x02b06343, 0x02c0eaba, 0x00d2cbdf, 0x021c113e, 0x0321f4d5, 0x00141eb1}}, Y: Field{[10]uint32{0x007174d9, 0x0348b20c, 0x02f0e917, 0x0254e72a, 0x009ba53c, 0x01ee0f58, 0x00550939, 0x00175e84, 0x018de7db, 0x002e268e}}}, + {X: Field{[10]uint32{0x033ba343, 0x01a22a51, 0x009a046e, 0x0132fa86, 0x00992c60, 0x019b004b, 0x0171026f, 0x03ee58a4, 0x02c13bb7, 0x00310b73}}, Y: Field{[10]uint32{0x014f7bb5, 0x007380b9, 0x0064be3c, 0x03b00d4d, 0x018fe010, 0x0104e4a7, 0x021bfe7c, 0x008f2e80, 0x0331a532, 0x0022a8dd}}}, + {X: Field{[10]uint32{0x02866a2c, 0x010651ca, 0x00417d9f, 0x02d9400e, 0x00857eed, 0x03144212, 0x026b5c45, 0x024e8b57, 0x02c3cd60, 0x002c0ba8}}, Y: Field{[10]uint32{0x03a5527c, 0x027049cb, 0x01bf86ac, 0x03a31d69, 0x03ed1d8e, 0x033f3a4e, 0x037c5058, 0x0243186e, 0x0050cea1, 0x003aed17}}}, + {X: Field{[10]uint32{0x0370d84b, 0x005f117b, 0x02db151e, 0x010566df, 0x0185626d, 0x03aad0ed, 0x03dc2c9a, 0x03b4b89c, 0x03d29f20, 0x003d3464}}, Y: Field{[10]uint32{0x02dd0974, 0x03946586, 0x027e7280, 0x01b1847a, 0x0101f84b, 0x0133695e, 0x013f8cf1, 0x00d28b12, 0x023f19b8, 0x002f6866}}}, + {X: Field{[10]uint32{0x025f1bb0, 0x01fed93f, 0x02857eef, 0x02ec7fdb, 0x03cc84f6, 0x0340c0b4, 0x0059b9e4, 0x0318add6, 0x00eb19ea, 0x0021d037}}, Y: Field{[10]uint32{0x03c6ca49, 0x023eda39, 0x01d1b1d9, 0x03780522, 0x00f2f151, 0x03ad4887, 0x01d5b6e7, 0x008168b8, 0x02b04783, 0x00029ca7}}}, + {X: Field{[10]uint32{0x00fcc9cb, 0x017a88e1, 0x03f6c92a, 0x0098da4e, 0x0050aec6, 0x011273a2, 0x010bc940, 0x027c2364, 0x024a85a2, 0x001e7b11}}, Y: Field{[10]uint32{0x02f53b39, 0x039a3a83, 0x03a2cd44, 0x01131896, 0x03a1d7c5, 0x0216aeb8, 0x02d476d0, 0x0342ca6a, 0x00f5b52e, 0x001df45c}}}, + {X: Field{[10]uint32{0x0207fceb, 0x03bf338c, 0x01238847, 0x03011622, 0x006fb3aa, 0x0157abf5, 0x000e29b2, 0x02edc72f, 0x00d5dd54, 0x0013c406}}, Y: Field{[10]uint32{0x03e7dd8c, 0x00bd938e, 0x0222224a, 0x0364b505, 0x03a64531, 0x01c7ef8e, 0x029b2a02, 0x030b9dce, 0x01e5d23c, 0x0030ca06}}}, + {X: Field{[10]uint32{0x03e969a1, 0x00181efe, 0x00eb033a, 0x02ae05e0, 0x00e53768, 0x032a1735, 0x0325de68, 0x03a17f76, 0x01362094, 0x0037efc6}}, Y: Field{[10]uint32{0x0380e563, 0x025f876b, 0x0067193d, 0x02eb82df, 0x00a2ca3a, 0x00cb7af3, 0x005f1e49, 0x00870cab, 0x035933ba, 0x00097a82}}}, + {X: Field{[10]uint32{0x01226649, 0x02ed06a1, 0x034f9b67, 0x01c41505, 0x010940a3, 0x02184912, 0x01805f10, 0x01a20cb0, 0x02c002c3, 0x00061319}}, Y: Field{[10]uint32{0x00662eaf, 0x03fb1f7e, 0x03487ec4, 0x016ea442, 0x00736f81, 0x03814c39, 0x034a24c1, 0x031e453e, 0x0244f1cf, 0x0033d8ff}}}, + {X: Field{[10]uint32{0x03043686, 0x01043d43, 0x022e0a0f, 0x0027d40c, 0x03ede9de, 0x02090b90, 0x01a8a51a, 0x03813b8e, 0x0206d386, 0x0036aacd}}, Y: Field{[10]uint32{0x0011718a, 0x01dc63b5, 0x015e5dbb, 0x0208ea75, 0x00fbb2b6, 0x03a3dba3, 0x010d0ac4, 0x01f441bf, 0x01c40ebe, 0x000302e8}}}, + {X: Field{[10]uint32{0x0204530f, 0x0330ce5f, 0x00dfa89d, 0x0059a408, 0x0026b0e2, 0x021234cd, 0x00219d1f, 0x03c94ae8, 0x034a5311, 0x0002a21f}}, Y: Field{[10]uint32{0x01edeace, 0x023de7e7, 0x03195287, 0x0113bb34, 0x02a5b4fa, 0x03680773, 0x029bff3e, 0x032b1fd0, 0x00bd8c37, 0x00169f01}}}, + {X: Field{[10]uint32{0x002d207a, 0x008fd85f, 0x0158d281, 0x001eca12, 0x024784a9, 0x0216bef3, 0x01dbfd5a, 0x03ae6135, 0x0264409f, 0x0006cc55}}, Y: Field{[10]uint32{0x03a205bb, 0x02715a2a, 0x01c37311, 0x02eaa66f, 0x0384eea5, 0x0165ff55, 0x001d4634, 0x02396961, 0x007cba34, 0x000a5cb3}}}, + {X: Field{[10]uint32{0x01fe4984, 0x037e85ac, 0x00d1f019, 0x027e0bb2, 0x016727e6, 0x035fa119, 0x035de1e0, 0x00355b57, 0x03d427c3, 0x000552b7}}, Y: Field{[10]uint32{0x020372b5, 0x0265dd4f, 0x02079981, 0x0312487c, 0x03882477, 0x01fe94b7, 0x01f61baa, 0x009e7912, 0x028a324b, 0x0016ea1b}}}, + {X: Field{[10]uint32{0x00480994, 0x03b03562, 0x02f9494f, 0x027ed130, 0x02585fe8, 0x02c6bcf0, 0x00df417c, 0x03057eca, 0x01f9fe55, 0x0037af5a}}, Y: Field{[10]uint32{0x03f9708d, 0x038f35d5, 0x03c9ef8d, 0x03fe4d17, 0x03002564, 0x03f3d85a, 0x031b8314, 0x01b493a2, 0x002155c1, 0x00263633}}}, + {X: Field{[10]uint32{0x03baf9e2, 0x01124abb, 0x0066b71d, 0x00f7edcb, 0x01e0316c, 0x01563119, 0x0055fc09, 0x0153e68a, 0x00902a7c, 0x0027f34d}}, Y: Field{[10]uint32{0x03f5d14c, 0x029a47fd, 0x00be51cf, 0x03a09926, 0x03143e1d, 0x0356ae99, 0x029e49c8, 0x02905a27, 0x0160c2b5, 0x0029eb10}}}, + {X: Field{[10]uint32{0x0143a727, 0x02fe9ce2, 0x019bbfda, 0x024bbb83, 0x00586fd7, 0x03cf79f8, 0x00fb1d2d, 0x02ba6566, 0x01f6fe4b, 0x001672b3}}, Y: Field{[10]uint32{0x020df035, 0x0348d045, 0x01acfed8, 0x031034de, 0x03624599, 0x02471213, 0x00d349e1, 0x02b45b1d, 0x01347b3e, 0x001f1cc3}}}, + {X: Field{[10]uint32{0x03fb226c, 0x008bfb01, 0x00821677, 0x01cd01ea, 0x0134e6b3, 0x012b398d, 0x03a4c9ec, 0x00765f6c, 0x03d1fb29, 0x0017386a}}, Y: Field{[10]uint32{0x023b7526, 0x0037a3c0, 0x01d3f763, 0x01bc149d, 0x030a39de, 0x03fdea06, 0x02110255, 0x0025cf62, 0x0234b407, 0x002af091}}}, + {X: Field{[10]uint32{0x0207d73c, 0x02c6a8c0, 0x01baf3af, 0x03433856, 0x01e70897, 0x02cc053d, 0x02680015, 0x002d3dbb, 0x028ebd0a, 0x003de0d8}}, Y: Field{[10]uint32{0x0039af61, 0x027e0273, 0x031df284, 0x03ee0ecb, 0x026c7a6e, 0x03d7efcc, 0x0268b6b1, 0x02e23252, 0x00fd5b96, 0x0034190e}}}, + {X: Field{[10]uint32{0x037ba0b3, 0x01659614, 0x0200c6c1, 0x011dcbaf, 0x029a988d, 0x011074ba, 0x007130db, 0x00a7b8d7, 0x02bccc72, 0x001e0c3e}}, Y: Field{[10]uint32{0x0338fa7f, 0x02aab746, 0x0157e835, 0x02249fcb, 0x0378acc8, 0x0200e8cf, 0x01c901fa, 0x0345e0f5, 0x018e6aea, 0x00127a2d}}}, + {X: Field{[10]uint32{0x03cba9e1, 0x014bead7, 0x03482062, 0x01270a3d, 0x006416d5, 0x03e692a4, 0x024399ee, 0x004a1886, 0x010ea890, 0x00324c0e}}, Y: Field{[10]uint32{0x0161cfce, 0x00443bec, 0x0019704d, 0x01f36aac, 0x023bab13, 0x0052d2f2, 0x014e8fdd, 0x0062883d, 0x03da3d06, 0x003e83a1}}}, + {X: Field{[10]uint32{0x029cd28a, 0x0308f736, 0x018b52d0, 0x02c2979d, 0x03ba0924, 0x017c03b0, 0x0149876e, 0x00645dbe, 0x00672057, 0x000a836a}}, Y: Field{[10]uint32{0x00907647, 0x0342fc3f, 0x01dd1975, 0x007b3413, 0x0390c1fa, 0x01b7c473, 0x01b4870f, 0x00256565, 0x00fc6935, 0x0025b341}}}, + {X: Field{[10]uint32{0x0046fc83, 0x00dd2cc5, 0x01c53256, 0x033b7072, 0x00f2bef6, 0x00e5a389, 0x036e92e0, 0x01606bd5, 0x01e260da, 0x003d9220}}, Y: Field{[10]uint32{0x027c8b94, 0x02dcbd43, 0x01ac3863, 0x0027e28b, 0x022aacec, 0x01247e95, 0x02f833db, 0x019fd10f, 0x005b660b, 0x002022a5}}}, + {X: Field{[10]uint32{0x0381f052, 0x005fe66a, 0x00341330, 0x02205597, 0x00c181e4, 0x00243c78, 0x03cea175, 0x017c34e8, 0x013305ec, 0x0025c2f6}}, Y: Field{[10]uint32{0x02e9fc48, 0x0050c7c6, 0x00a796ca, 0x036ce519, 0x038eb30b, 0x01730066, 0x03b6658d, 0x01dd2bf2, 0x030fe284, 0x00134749}}}, + {X: Field{[10]uint32{0x00c4779a, 0x0056f3b9, 0x03073354, 0x021824a0, 0x032c0588, 0x0172b465, 0x023ecfdf, 0x01507d1c, 0x033124c4, 0x0037fa52}}, Y: Field{[10]uint32{0x0140e23b, 0x0169eae5, 0x00b1c185, 0x03da2c65, 0x01d047af, 0x034d00f1, 0x03afe8c5, 0x0181aa83, 0x0253d547, 0x00330a0f}}}, + {X: Field{[10]uint32{0x018df800, 0x00e8e7a1, 0x007e3bf3, 0x03463dc1, 0x0216c8bd, 0x021cdf43, 0x0230bbad, 0x0396523e, 0x0379673a, 0x003c604c}}, Y: Field{[10]uint32{0x007d294a, 0x011102ea, 0x015d2ed5, 0x03630921, 0x0220bfb9, 0x002d347c, 0x0008d50d, 0x00b6fe6c, 0x01a6139a, 0x002b34b0}}}, + {X: Field{[10]uint32{0x01423740, 0x001810db, 0x00f3ec21, 0x025e70da, 0x008890ec, 0x03036c32, 0x0192bd01, 0x006f7d44, 0x0156fb63, 0x003d3ef0}}, Y: Field{[10]uint32{0x03b7149f, 0x02409b07, 0x03f4b4f6, 0x00eb7d21, 0x039cfccd, 0x0061d2eb, 0x01faf91e, 0x037bfd0c, 0x00f05b07, 0x000f2c23}}}, + {X: Field{[10]uint32{0x0393de6d, 0x00893881, 0x01bbed36, 0x0179d150, 0x00cb9267, 0x033116a0, 0x03a9a725, 0x0275c929, 0x00e83b07, 0x00049369}}, Y: Field{[10]uint32{0x008d00e7, 0x02d26195, 0x01e6ac6f, 0x00c7a819, 0x001cd155, 0x029d6555, 0x02200fb2, 0x0032e935, 0x0066f12e, 0x000f9c00}}}, + {X: Field{[10]uint32{0x038d1138, 0x033a586d, 0x00c16428, 0x00b40ab2, 0x006c2b11, 0x019ae5f4, 0x02045bb2, 0x01e09877, 0x01c4455e, 0x001d25c8}}, Y: Field{[10]uint32{0x015a3032, 0x01567f01, 0x03b87086, 0x0250e7c1, 0x01025bc5, 0x00cc9b1f, 0x015b237d, 0x00c70bfa, 0x02eda3f3, 0x0009d55a}}}, + {X: Field{[10]uint32{0x0227a028, 0x026a46dd, 0x00e979ff, 0x02eff531, 0x00257676, 0x0143efd6, 0x0060dfed, 0x023d5487, 0x02490aa5, 0x0018b372}}, Y: Field{[10]uint32{0x015c37b5, 0x03b58156, 0x00fbbd10, 0x02229c52, 0x0317c4a6, 0x03d0cfa3, 0x021528b4, 0x0043a9fb, 0x039ae16d, 0x0022f526}}}, + {X: Field{[10]uint32{0x006478c6, 0x01692c5a, 0x01344789, 0x03a205d6, 0x011cd3a1, 0x03b4592c, 0x013b2275, 0x00ea985b, 0x00f139b1, 0x00193594}}, Y: Field{[10]uint32{0x01fa5c2f, 0x00f61fcf, 0x03a426b8, 0x0195ee56, 0x02f9e2a0, 0x02590d00, 0x039595b7, 0x00b61fcc, 0x012af757, 0x0037bbb9}}}, + {X: Field{[10]uint32{0x009ab59d, 0x0327d280, 0x0365a1ec, 0x017b6c00, 0x0237cb93, 0x02149b7d, 0x017c17cd, 0x00dbbcd0, 0x025566c6, 0x0034228f}}, Y: Field{[10]uint32{0x000dc103, 0x02b91889, 0x02a549c9, 0x03f49090, 0x00e9ed32, 0x00e15b69, 0x00d35023, 0x0145d8ff, 0x01c75eec, 0x000b6c12}}}, + {X: Field{[10]uint32{0x00f20d89, 0x0237c38c, 0x007c6f4b, 0x020926e9, 0x02971547, 0x006166bf, 0x0220d626, 0x031426be, 0x005a35bc, 0x0021d85c}}, Y: Field{[10]uint32{0x01b726ae, 0x03c37e2b, 0x03f64436, 0x027af8b6, 0x010fd43b, 0x02011a82, 0x029c3db7, 0x02588924, 0x01eebb02, 0x002cd309}}}, + {X: Field{[10]uint32{0x006f5f85, 0x0278468f, 0x03307c4e, 0x03d038de, 0x020e35f6, 0x0139f39f, 0x02cc3175, 0x00990c51, 0x01334ce2, 0x0038d14e}}, Y: Field{[10]uint32{0x0065d97d, 0x03417075, 0x03bf700a, 0x01eccda8, 0x031afdde, 0x00aed144, 0x022a0caf, 0x0206fbfc, 0x038a941e, 0x001cfb85}}}, + {X: Field{[10]uint32{0x00ca917b, 0x00d8208d, 0x01e27fac, 0x02fe5783, 0x02246b36, 0x036ff3a3, 0x00e6f11f, 0x029f9eb2, 0x012f6609, 0x0020e246}}, Y: Field{[10]uint32{0x032b636f, 0x030de303, 0x019bec68, 0x01db94f2, 0x0267c889, 0x033ec6a8, 0x027b681c, 0x023b0a75, 0x03a55044, 0x00255c1c}}}, + {X: Field{[10]uint32{0x03c5d387, 0x0186bd30, 0x02b8de5a, 0x03ede893, 0x03bbf287, 0x025ff618, 0x0278029a, 0x03897f8b, 0x00c067bb, 0x0022ff5c}}, Y: Field{[10]uint32{0x03f952fb, 0x0251d03c, 0x031fd5d8, 0x0069bb6e, 0x008b5900, 0x03c93f3b, 0x01b1d644, 0x01973568, 0x026bee72, 0x0038b9b1}}}, + {X: Field{[10]uint32{0x02ff257d, 0x0164f839, 0x01269fdb, 0x0055a21d, 0x03eaf820, 0x02601482, 0x021582d0, 0x002ec566, 0x019aa05f, 0x00297426}}, Y: Field{[10]uint32{0x0023635a, 0x01970d31, 0x0050bf9c, 0x03469910, 0x00fe6d27, 0x00b392cd, 0x02b62b36, 0x015d999d, 0x03205ef0, 0x0038d365}}}, + {X: Field{[10]uint32{0x015043ce, 0x01eeaa97, 0x02544282, 0x02164b53, 0x01176451, 0x0227ff67, 0x03942e30, 0x03222d41, 0x01a7b949, 0x0011391e}}, Y: Field{[10]uint32{0x013a7087, 0x013b7788, 0x02e23250, 0x01deb84b, 0x01e2b10d, 0x01295c2a, 0x02714162, 0x03118ec2, 0x00298c12, 0x001ee1bb}}}, + {X: Field{[10]uint32{0x012aa558, 0x01b38f4d, 0x013c4317, 0x02355648, 0x023f37bb, 0x002af432, 0x02e0251e, 0x01e045c1, 0x0143d979, 0x001837b2}}, Y: Field{[10]uint32{0x01fcaab8, 0x0042759a, 0x03d508bc, 0x013e331b, 0x0116b076, 0x01a614cd, 0x0181448d, 0x0167db14, 0x01f4a31c, 0x000b71a2}}}, + {X: Field{[10]uint32{0x01f7709b, 0x039eacc0, 0x03b24af7, 0x027f9906, 0x00d4ab82, 0x016506e6, 0x013c5c53, 0x0127983e, 0x01385b54, 0x00172963}}, Y: Field{[10]uint32{0x017cd575, 0x019607b0, 0x03eb74d9, 0x0213574f, 0x00945d9d, 0x03ce7770, 0x00ce0907, 0x01bd2044, 0x02e980eb, 0x0020abee}}}, + {X: Field{[10]uint32{0x018b031c, 0x02641234, 0x01138100, 0x028f34ca, 0x03b9a23e, 0x01afe1b0, 0x009cf3d2, 0x0358326c, 0x027ea1b1, 0x002ddd65}}, Y: Field{[10]uint32{0x0040fef1, 0x001025c2, 0x030b7120, 0x023211bd, 0x0366f12d, 0x0373eb73, 0x01885c4a, 0x004155c3, 0x029becfa, 0x0034adc5}}}, + {X: Field{[10]uint32{0x00220f96, 0x01ade690, 0x0044e92e, 0x03047e8e, 0x03a23bc4, 0x026a8175, 0x003595fb, 0x00bd840f, 0x00f67d60, 0x001cf635}}, Y: Field{[10]uint32{0x0000ce3d, 0x015d6ac9, 0x0285d331, 0x00f55a3f, 0x00bb17fb, 0x03b3453b, 0x02185309, 0x03fb96fa, 0x022cffc9, 0x002fdc8a}}}, + {X: Field{[10]uint32{0x01182b75, 0x02c46026, 0x024d61e7, 0x01151230, 0x008b1e97, 0x0271b7c3, 0x012bcce7, 0x01e08805, 0x01f9f49f, 0x003a0413}}, Y: Field{[10]uint32{0x02137361, 0x00494fe0, 0x0102396b, 0x02087175, 0x03e14fc6, 0x03e57fee, 0x03b0da00, 0x00afac6f, 0x0139ec8f, 0x00370bf5}}}, + {X: Field{[10]uint32{0x006113e6, 0x03a65715, 0x03209e89, 0x00912403, 0x01777e55, 0x00586039, 0x01449b6d, 0x010cb238, 0x02f6fb6c, 0x003b35cb}}, Y: Field{[10]uint32{0x0226e135, 0x03593ade, 0x029e0e00, 0x00f89a04, 0x00425291, 0x00516180, 0x009f518e, 0x02ea6794, 0x015d358f, 0x00059c5c}}}, + {X: Field{[10]uint32{0x00fc36cc, 0x001c1429, 0x02455a99, 0x0041fa75, 0x01464bfe, 0x029b5f0d, 0x01fc6b5f, 0x026f45bc, 0x00cfbe82, 0x00038ed7}}, Y: Field{[10]uint32{0x028044f5, 0x01ea1f68, 0x03fa331e, 0x03c042d7, 0x02296cb5, 0x016d9c7e, 0x017a2c9b, 0x03069b78, 0x039b5471, 0x00339eae}}}, + {X: Field{[10]uint32{0x03107734, 0x0286ae49, 0x01c5ed7c, 0x013c97e2, 0x0041c1ce, 0x013af48b, 0x03e75f7f, 0x024753ad, 0x0202ffab, 0x003cd646}}, Y: Field{[10]uint32{0x00fa4b3d, 0x015f0ae5, 0x01c1018a, 0x01aef8bb, 0x03cf0474, 0x00c52eda, 0x03c7d535, 0x02e49921, 0x0211f2ba, 0x000d168b}}}, + {X: Field{[10]uint32{0x0345c635, 0x006b65f2, 0x021a6550, 0x034c89eb, 0x00c61349, 0x03f16a54, 0x01184f9f, 0x02b654df, 0x005dae54, 0x003292c1}}, Y: Field{[10]uint32{0x03c1d806, 0x01312d35, 0x00d72eaf, 0x015833a7, 0x014660f4, 0x0110747a, 0x02f3c24b, 0x02fb28d4, 0x017e255e, 0x0038c3e0}}}, + {X: Field{[10]uint32{0x0341ea38, 0x00a6ed9b, 0x02a72dfd, 0x00819d6a, 0x02300947, 0x01daa57d, 0x00ebdb7b, 0x03a987ee, 0x034054a9, 0x003df315}}, Y: Field{[10]uint32{0x02556eac, 0x00b207ac, 0x009900f5, 0x02ffd4b5, 0x03b3dd7f, 0x03811af8, 0x0275aeb5, 0x00936460, 0x018cfc54, 0x0027518f}}}, + {X: Field{[10]uint32{0x016ab6c2, 0x007dc37b, 0x029f876b, 0x03ec9eda, 0x01b4fd9b, 0x034d3a2a, 0x024bbef7, 0x038fe3b9, 0x0379fba3, 0x003dd6d7}}, Y: Field{[10]uint32{0x00a43faa, 0x00c3b024, 0x014f9d40, 0x019be168, 0x037e0e82, 0x01d159df, 0x0048e362, 0x02ddedcb, 0x00bc5c3f, 0x000882d0}}}, + {X: Field{[10]uint32{0x019cd450, 0x023e9303, 0x00fde0e8, 0x0191cd69, 0x0189d86a, 0x03428e63, 0x03d89b6a, 0x008da989, 0x03a25060, 0x000aa8d9}}, Y: Field{[10]uint32{0x0041fc32, 0x02512336, 0x038f6e82, 0x03ffa6bb, 0x021e70ec, 0x0135df61, 0x00a802bc, 0x006c69d9, 0x00250249, 0x000affb7}}}, + {X: Field{[10]uint32{0x0141620f, 0x00df0e28, 0x0325765a, 0x039ec7ac, 0x03a1078c, 0x01609ec1, 0x01a1e221, 0x00f3db9f, 0x01c11178, 0x003fdfd2}}, Y: Field{[10]uint32{0x00702733, 0x026b3d95, 0x00bead51, 0x02177d91, 0x03a488c5, 0x0049477e, 0x00a8b542, 0x00163a2f, 0x009e2e48, 0x001a5543}}}, + {X: Field{[10]uint32{0x003aa39f, 0x000a82d7, 0x016016fd, 0x02d1799e, 0x0076d017, 0x034faee4, 0x01f7338f, 0x03d3b291, 0x03581164, 0x000c7414}}, Y: Field{[10]uint32{0x0163f575, 0x03364aa6, 0x011fe6bc, 0x003b46ff, 0x03d4d3ea, 0x0387e348, 0x022fa902, 0x01ffc411, 0x019b7217, 0x003c490c}}}, + {X: Field{[10]uint32{0x026a3bd0, 0x023ed7df, 0x006eabb8, 0x034ead7c, 0x030c8a02, 0x0236a6b5, 0x00bf2f30, 0x000fb28b, 0x02ddfd12, 0x001babc3}}, Y: Field{[10]uint32{0x03e05f08, 0x0242719c, 0x016d4125, 0x01d28c56, 0x02815a0c, 0x0028ee0e, 0x00521a01, 0x0251d127, 0x01012d8e, 0x00364cdb}}}, + {X: Field{[10]uint32{0x02da1347, 0x006ea5df, 0x011b9e9a, 0x0320472e, 0x0168e759, 0x03d7ea23, 0x03943acf, 0x006adff0, 0x01197799, 0x0002e569}}, Y: Field{[10]uint32{0x01e5ef23, 0x0208afdb, 0x0287f533, 0x0054dbba, 0x029758bd, 0x0168bfe9, 0x018fbfe7, 0x0112296a, 0x035f446d, 0x00233cb2}}}, + {X: Field{[10]uint32{0x011427e8, 0x03071608, 0x02eeada6, 0x03d5ae43, 0x021fd386, 0x03a0139f, 0x031dc212, 0x03b6ebce, 0x01d48ce5, 0x001394c0}}, Y: Field{[10]uint32{0x01b9f0d9, 0x00297600, 0x016b76fb, 0x0364ddb6, 0x00dcabaa, 0x02f675a1, 0x012f684c, 0x03f6cb87, 0x003de169, 0x003d40fb}}}, + {X: Field{[10]uint32{0x00f49cd2, 0x0080cf0f, 0x017a3914, 0x0152b587, 0x02fc7c2b, 0x01270b42, 0x01f92cdc, 0x006d0dc5, 0x01e50903, 0x0013f46a}}, Y: Field{[10]uint32{0x024adcb1, 0x02169b23, 0x031602c8, 0x02fa2e1d, 0x022d99c9, 0x033bda52, 0x034b43be, 0x0196f0ea, 0x011cab01, 0x001cfb30}}}, + {X: Field{[10]uint32{0x00257c84, 0x00402648, 0x00b86745, 0x03e8ba29, 0x00384070, 0x02363eb8, 0x03b7fa4a, 0x010fe97a, 0x0065b325, 0x0019d01a}}, Y: Field{[10]uint32{0x03c62008, 0x021625ae, 0x0271f3fd, 0x0173bcf4, 0x03e829a4, 0x00c89f7d, 0x00451f5e, 0x0382e53d, 0x02d593a4, 0x000ff766}}}, + {X: Field{[10]uint32{0x006569e4, 0x024a9969, 0x01cb4e49, 0x02b46723, 0x00de7e8d, 0x036b1028, 0x03dcfa0e, 0x016f9bbc, 0x01aed6ee, 0x00052e55}}, Y: Field{[10]uint32{0x022daf70, 0x0029757e, 0x011ebed6, 0x03097aa7, 0x017d9f31, 0x0184d4f7, 0x001eff67, 0x00fe0612, 0x00b62182, 0x00352e48}}}, + {X: Field{[10]uint32{0x0339ae42, 0x0297c88c, 0x00fb722c, 0x00d318da, 0x004003e4, 0x0390bf48, 0x02a0b3ff, 0x0357eb7e, 0x03bc5608, 0x00053ca0}}, Y: Field{[10]uint32{0x02db7397, 0x015df3e7, 0x008c37c1, 0x00c0aebb, 0x03bf0ba6, 0x002a1ff6, 0x004d4bfb, 0x03f4ff19, 0x023dc3ae, 0x002c9057}}}, + {X: Field{[10]uint32{0x03bd1c1f, 0x00ce8c87, 0x03d098e7, 0x01701637, 0x005416a5, 0x03e032ea, 0x02275be7, 0x038829b9, 0x00677d3c, 0x000ff783}}, Y: Field{[10]uint32{0x02daaac6, 0x01740cc6, 0x0389a115, 0x00962498, 0x009a018b, 0x02fa87c2, 0x01782f90, 0x0064b252, 0x03dc610f, 0x0026e3bd}}}, + {X: Field{[10]uint32{0x02d17267, 0x00cca883, 0x01247df5, 0x01310776, 0x00b993bf, 0x020a4150, 0x01c74dd4, 0x00f417c5, 0x0269df5f, 0x00271579}}, Y: Field{[10]uint32{0x024979f6, 0x02d3829b, 0x00810981, 0x00c8b498, 0x018c6b3c, 0x00dd5ff0, 0x01abd783, 0x01d9945d, 0x00e930c9, 0x0008f6c3}}}, + {X: Field{[10]uint32{0x02968d16, 0x01a2a4a0, 0x02ee7d85, 0x030d2cfe, 0x02506d2d, 0x003d05d1, 0x00da60b3, 0x006835ba, 0x00dfae14, 0x0002f7a1}}, Y: Field{[10]uint32{0x02b3ab04, 0x03ce3112, 0x00dcb468, 0x03cdb0a6, 0x02900374, 0x0269b1a1, 0x024697b9, 0x01877f9c, 0x0214ff13, 0x001168cc}}}, + {X: Field{[10]uint32{0x019546a3, 0x00e76bf2, 0x030c0549, 0x021651ac, 0x01e5d970, 0x03183168, 0x0368f454, 0x030b2917, 0x014ab8f3, 0x0006500a}}, Y: Field{[10]uint32{0x00e3b81e, 0x025aed3b, 0x0386abfd, 0x009b9db8, 0x00848bc9, 0x01f186ec, 0x020ea767, 0x0318a879, 0x03993816, 0x00158fe7}}}, + {X: Field{[10]uint32{0x032ccb0e, 0x027f33ac, 0x00ad6682, 0x0358dcf3, 0x00757a34, 0x0348b60e, 0x00df92ea, 0x00f991f4, 0x01e0d0d1, 0x00375ba8}}, Y: Field{[10]uint32{0x0233c313, 0x00023c3b, 0x003fdd8e, 0x01f2a803, 0x00384b55, 0x012797fe, 0x03ad27fa, 0x03a2ca14, 0x01e36bf4, 0x0030063a}}}, + {X: Field{[10]uint32{0x037fbf19, 0x01a58596, 0x01ffec06, 0x00dd0b13, 0x00dc1047, 0x02f09ee1, 0x02656bfb, 0x01158b89, 0x03e8c784, 0x00195e11}}, Y: Field{[10]uint32{0x015f2df5, 0x03daad82, 0x001725b5, 0x02d39e69, 0x0242c6a4, 0x0292a6a2, 0x01beda90, 0x02b69240, 0x03b658b6, 0x00376437}}}, + {X: Field{[10]uint32{0x023dea6b, 0x0141acff, 0x00d3e352, 0x007ce5ae, 0x0349b8e7, 0x036de072, 0x02d26c2e, 0x0275ba41, 0x00b140be, 0x003edc09}}, Y: Field{[10]uint32{0x0308efdf, 0x03f28cba, 0x0061c5a0, 0x0014501c, 0x02fea360, 0x03746b11, 0x02d961e9, 0x008ca2da, 0x03f4e50b, 0x00379023}}}, + {X: Field{[10]uint32{0x01d8e8e0, 0x004cd434, 0x018dfa31, 0x0031268e, 0x00b3f2be, 0x034fa251, 0x0280179c, 0x02c9e74e, 0x000865a7, 0x000b4a70}}, Y: Field{[10]uint32{0x02efcf8f, 0x027648f6, 0x03ee992e, 0x0017c999, 0x0125c550, 0x02592791, 0x00027485, 0x01292996, 0x027aee70, 0x0032abc4}}}, + {X: Field{[10]uint32{0x03d5662d, 0x01f07314, 0x036326d8, 0x02269f0c, 0x02392685, 0x00f06f8e, 0x028d42ba, 0x00827d37, 0x007479b7, 0x0036da41}}, Y: Field{[10]uint32{0x03aa4e00, 0x01dddc3e, 0x0063c0b7, 0x02fca48b, 0x01c58c1f, 0x020f893a, 0x013ce32c, 0x021eaa64, 0x03e95c35, 0x002437a2}}}, + {X: Field{[10]uint32{0x0141697b, 0x011cd5b2, 0x03f0adf2, 0x021f33c4, 0x01723c70, 0x01635bf0, 0x0154ada2, 0x013c2abf, 0x006f922e, 0x00260194}}, Y: Field{[10]uint32{0x016bc237, 0x011684bc, 0x037c9252, 0x0125dec9, 0x01b97fef, 0x034c72b4, 0x0298eef3, 0x02e104dd, 0x0018a8ca, 0x00301f88}}}, + {X: Field{[10]uint32{0x00e40187, 0x02b9ebd8, 0x025eaae1, 0x03478cf4, 0x01661e0a, 0x023c5188, 0x011c1122, 0x0096b16c, 0x013fe6da, 0x002ae1a3}}, Y: Field{[10]uint32{0x00bf54ad, 0x0357c4cf, 0x001d4d47, 0x0222ef4c, 0x014b12c4, 0x015e9ff6, 0x01195ced, 0x02614068, 0x0298334a, 0x003b892d}}}, + {X: Field{[10]uint32{0x018dcda2, 0x03627bbf, 0x02f4931f, 0x019aafd9, 0x003122f3, 0x01095f8a, 0x0056be17, 0x023b9848, 0x03d19d2a, 0x0039d587}}, Y: Field{[10]uint32{0x02166d5a, 0x02a0004f, 0x0118d5a8, 0x0242281e, 0x0385bcb1, 0x0089edd6, 0x0366ea73, 0x01b63171, 0x034be365, 0x000814b9}}}, + {X: Field{[10]uint32{0x00f21e6c, 0x00b7e6fa, 0x0082083c, 0x0004e654, 0x017b562f, 0x02a1132d, 0x008f2e0f, 0x038c1ef8, 0x023d84bb, 0x0017c654}}, Y: Field{[10]uint32{0x0265d7fa, 0x039f105c, 0x02cb9d9b, 0x0109ba46, 0x00333775, 0x01c93ae2, 0x029ad2d5, 0x007778ab, 0x021628ee, 0x000ea5bf}}}, + {X: Field{[10]uint32{0x01c10cc1, 0x00df4a36, 0x03545698, 0x005c9571, 0x022fdcad, 0x015407bf, 0x022ec1dc, 0x026c4490, 0x02683c94, 0x00327e91}}, Y: Field{[10]uint32{0x03fd1dba, 0x008fb7b1, 0x03ffab5e, 0x00d1db51, 0x00b5b6e7, 0x03a380d2, 0x01dcd8d9, 0x0246b33c, 0x035d18f6, 0x0006aab9}}}, + {X: Field{[10]uint32{0x03eb8d8c, 0x02de4ec2, 0x02401b1a, 0x03505690, 0x011799b2, 0x024ee081, 0x03a084c3, 0x0061e733, 0x022a1e91, 0x00076a43}}, Y: Field{[10]uint32{0x009c0b63, 0x0134a3b2, 0x013322da, 0x03947d3f, 0x0274994e, 0x00ecff0c, 0x02cbae15, 0x0134e011, 0x006911ea, 0x000f4fdf}}}, + {X: Field{[10]uint32{0x031b3186, 0x03e26b7c, 0x029153e6, 0x026363d9, 0x03707e40, 0x02de11fd, 0x01504ac0, 0x0390c9af, 0x010f3851, 0x0031bf3c}}, Y: Field{[10]uint32{0x03a50ced, 0x029494e4, 0x00bff03e, 0x02bea726, 0x004e2705, 0x03e3b972, 0x036ea108, 0x018f61b8, 0x01f4a16a, 0x00342b22}}}, + {X: Field{[10]uint32{0x02378233, 0x035fd185, 0x02588fef, 0x01ac7e6d, 0x0003cf23, 0x00495eb8, 0x02b7d4ef, 0x0319f32d, 0x022eeb56, 0x0005415e}}, Y: Field{[10]uint32{0x004930c2, 0x012ec3f7, 0x010cf505, 0x0188be6a, 0x036f205a, 0x038f42a1, 0x01543ef5, 0x029ea312, 0x0130ccc0, 0x00136ead}}}, + {X: Field{[10]uint32{0x0308b20f, 0x039067c0, 0x01ea36d1, 0x02de300b, 0x0145bf1c, 0x001f77af, 0x027337dd, 0x02b039ba, 0x02e072d5, 0x000dfbab}}, Y: Field{[10]uint32{0x0361d506, 0x02458c3c, 0x0394aebb, 0x036efd68, 0x01a5761a, 0x00ca8e8f, 0x0077249a, 0x02a85067, 0x00965d9d, 0x002c3191}}}, + {X: Field{[10]uint32{0x0157745c, 0x009cd889, 0x03ebe61a, 0x022deb66, 0x01f1d6ce, 0x024a2f71, 0x031cd96d, 0x03438cf1, 0x03f83a8b, 0x0016881e}}, Y: Field{[10]uint32{0x00f54dad, 0x031d9998, 0x0213819e, 0x0004c8f1, 0x03ee8789, 0x015d1044, 0x01494ac1, 0x026da8a9, 0x0357fadc, 0x000eb32d}}}, + {X: Field{[10]uint32{0x03abd139, 0x034e6efe, 0x006d1642, 0x002241c1, 0x02f6b2ee, 0x0206fbed, 0x0391271e, 0x038c9568, 0x016a1a0f, 0x003f8237}}, Y: Field{[10]uint32{0x0181ef40, 0x00319380, 0x030d6c52, 0x00984de6, 0x03665d23, 0x027c8130, 0x02f1b436, 0x0208bb93, 0x02d13535, 0x0010b0d0}}}, + {X: Field{[10]uint32{0x00706111, 0x032e665e, 0x01daca39, 0x03800f47, 0x01d6d859, 0x0201132b, 0x003edcf3, 0x036ee992, 0x02c908df, 0x002df498}}, Y: Field{[10]uint32{0x00d798e8, 0x01ff91ca, 0x01689ee9, 0x0044194f, 0x0230bb4c, 0x00606d6e, 0x0007c8f5, 0x02ce5da8, 0x0350b308, 0x00258218}}}, + {X: Field{[10]uint32{0x00130c86, 0x01be008d, 0x00407683, 0x015f731e, 0x027d354b, 0x006eb7d6, 0x0297d7c0, 0x00ddd4eb, 0x032e23b3, 0x0012c4aa}}, Y: Field{[10]uint32{0x023c450e, 0x03ee3c3c, 0x005c0f52, 0x027926b9, 0x012bc964, 0x007f9605, 0x0211e73a, 0x022fd00b, 0x020d9f70, 0x00106753}}}, + {X: Field{[10]uint32{0x00e88dac, 0x00331276, 0x034f74f3, 0x02addd42, 0x008f362b, 0x02f311f1, 0x009570c8, 0x0333692d, 0x0282a96e, 0x003f1b49}}, Y: Field{[10]uint32{0x00beedbb, 0x0090eb3d, 0x0184808a, 0x03c25800, 0x000694af, 0x024165fe, 0x0322612e, 0x01160347, 0x01273026, 0x0006bd59}}}, + {X: Field{[10]uint32{0x02607e8b, 0x026d9547, 0x00f0632e, 0x0303910b, 0x025e07e6, 0x012bf6e7, 0x0342c40c, 0x03ae8151, 0x03a9a189, 0x0031ee70}}, Y: Field{[10]uint32{0x001822ab, 0x02010bfc, 0x03e30fc5, 0x02e35370, 0x02ef6b38, 0x03069517, 0x0084cd19, 0x01d36d88, 0x02772f22, 0x0016eda0}}}, + {X: Field{[10]uint32{0x00dfd956, 0x001be9d4, 0x01627034, 0x030aedbe, 0x0246c761, 0x03b50c1a, 0x02339ba3, 0x029cbca6, 0x034230de, 0x003ae934}}, Y: Field{[10]uint32{0x01237cee, 0x0172fd77, 0x0106d215, 0x02961e4d, 0x01d31b01, 0x001a1033, 0x01a17477, 0x01e2cb8f, 0x020f23d2, 0x003f385e}}}, + {X: Field{[10]uint32{0x02c04155, 0x0295a7e0, 0x02cc8944, 0x03d1b366, 0x013595dc, 0x02b7b0a1, 0x034358c6, 0x0351c4d6, 0x01c02177, 0x002934db}}, Y: Field{[10]uint32{0x01f00281, 0x00ddfd20, 0x03ad1013, 0x01770beb, 0x0365f3e4, 0x016983f7, 0x038fd0fb, 0x006f838d, 0x037963b2, 0x002168a5}}}, + {X: Field{[10]uint32{0x02109ba2, 0x002b255d, 0x00a16906, 0x02a939b5, 0x020eb165, 0x0379ceaf, 0x035bf56f, 0x03eb878f, 0x0063ae8b, 0x001245b4}}, Y: Field{[10]uint32{0x003f22ee, 0x026d3513, 0x006564ae, 0x013d9d8e, 0x003b2b0b, 0x014dadf2, 0x027a08ca, 0x010357e5, 0x03034a0b, 0x0029e459}}}, + {X: Field{[10]uint32{0x02edd046, 0x02b90483, 0x03f97ecb, 0x01e61605, 0x009de019, 0x0012ad27, 0x038f1a44, 0x0180c217, 0x0310b296, 0x001d8736}}, Y: Field{[10]uint32{0x02193db7, 0x00bce88b, 0x010cf2ee, 0x03aa376a, 0x039789f0, 0x022079fe, 0x038f50ab, 0x015175cb, 0x0320763b, 0x00074455}}}, + {X: Field{[10]uint32{0x01c64ea3, 0x03f28ae3, 0x019d2e05, 0x0053a377, 0x02860ff0, 0x0242f04f, 0x005541b4, 0x023a4b7e, 0x01704d71, 0x00035e89}}, Y: Field{[10]uint32{0x034cb90c, 0x023d0f94, 0x00acec15, 0x0216a8eb, 0x026102db, 0x02f1b7b1, 0x000e035f, 0x019d9dc7, 0x039d2134, 0x00179152}}}, + {X: Field{[10]uint32{0x014d3bbe, 0x00290fcf, 0x025dfeb2, 0x02653716, 0x020a6b9a, 0x00a5d6ef, 0x02bcb063, 0x0314aec3, 0x004f7962, 0x000abd80}}, Y: Field{[10]uint32{0x001a14f3, 0x03825776, 0x01933d91, 0x006d4c8e, 0x02be1deb, 0x01a31965, 0x0108e3eb, 0x0330540c, 0x01e226f8, 0x001a622a}}}, + {X: Field{[10]uint32{0x01504255, 0x0023d72a, 0x00959741, 0x0061d6e9, 0x03ca805d, 0x034cc613, 0x027571e5, 0x00218044, 0x00e53bab, 0x002a49d0}}, Y: Field{[10]uint32{0x02d2379f, 0x01d7adb1, 0x0244e68d, 0x0214436a, 0x0096d49c, 0x00eaa138, 0x02dfd3d0, 0x01adc419, 0x011e2eb7, 0x00177ca1}}}, + {X: Field{[10]uint32{0x00014939, 0x01fb661c, 0x02057bcc, 0x01c0341d, 0x02768567, 0x00e8323a, 0x0287c449, 0x0229ad82, 0x021a510d, 0x00243425}}, Y: Field{[10]uint32{0x00aa545d, 0x01d80eb3, 0x034d3f8d, 0x00be16d2, 0x037c13dc, 0x008e1ab4, 0x036f7a8a, 0x00c2219a, 0x013c1c91, 0x001d351d}}}, + {X: Field{[10]uint32{0x00ecd12b, 0x02f98441, 0x00ded249, 0x029b28ce, 0x038dd5c6, 0x00b8b820, 0x02bfa279, 0x029813d8, 0x03eaf2e3, 0x0003394a}}, Y: Field{[10]uint32{0x015c009e, 0x0220020b, 0x031a1a49, 0x002a3e3f, 0x03dd0867, 0x0097cf66, 0x00244449, 0x0028adf2, 0x0273738a, 0x002a1a77}}}, + {X: Field{[10]uint32{0x03cd05c4, 0x038d43fc, 0x02be7cc3, 0x0105b3c5, 0x01122154, 0x0301ab12, 0x0139a471, 0x03f34bff, 0x01c210e3, 0x002672a3}}, Y: Field{[10]uint32{0x03bc4982, 0x03925ab7, 0x02142c6c, 0x03a00244, 0x024550fb, 0x03c1c82f, 0x0326309e, 0x0370b1af, 0x0280131a, 0x001e021e}}}, + {X: Field{[10]uint32{0x0202d1c6, 0x03b18428, 0x0211ab51, 0x0285f639, 0x00cbfcc6, 0x008b7ae4, 0x03ff1f43, 0x01ef1741, 0x00c29f5a, 0x002f910b}}, Y: Field{[10]uint32{0x03c084a2, 0x01584a1d, 0x03734111, 0x00978c92, 0x02fb3d1f, 0x02b3d6ec, 0x028f2c01, 0x0364d200, 0x02c4680e, 0x0018943c}}}, + {X: Field{[10]uint32{0x00ec8e54, 0x01c2ec39, 0x00e65677, 0x03e6e3e0, 0x03e75d95, 0x006e6c53, 0x030346b5, 0x02c04084, 0x01f4037f, 0x0014fd7d}}, Y: Field{[10]uint32{0x00c62f93, 0x0331774a, 0x020f9cb1, 0x01c4ca14, 0x0224c0d5, 0x00f8b870, 0x00dd2ef2, 0x00cfd6a8, 0x0353c6e7, 0x0023694a}}}, + {X: Field{[10]uint32{0x008c4d6c, 0x039b6a97, 0x0155411d, 0x006461bb, 0x02a897ab, 0x00d295bd, 0x0399e3a1, 0x03affdf5, 0x01650e90, 0x00081b39}}, Y: Field{[10]uint32{0x02a75804, 0x02a6a5a9, 0x006754dc, 0x00f0e2b8, 0x00aaa5d5, 0x01e754c8, 0x03ec5c2e, 0x01b729f7, 0x0122bd2d, 0x0030bfd7}}}, + {X: Field{[10]uint32{0x0073f443, 0x037cab1c, 0x03744faa, 0x0083308f, 0x0002176a, 0x009b4ad5, 0x01f2a727, 0x00beae04, 0x03bb87ee, 0x0034772f}}, Y: Field{[10]uint32{0x01d17db9, 0x003e5a3b, 0x0350c187, 0x024f87d0, 0x00f71da6, 0x03e0cdf6, 0x02fc27e3, 0x002edef2, 0x023b4180, 0x000041b1}}}, + {X: Field{[10]uint32{0x03749328, 0x005ce4b6, 0x002f6db1, 0x0343bc5f, 0x020a516f, 0x01bff26a, 0x039d4322, 0x01dae87a, 0x0173c543, 0x003486a8}}, Y: Field{[10]uint32{0x0074e424, 0x0131a098, 0x00b24772, 0x0293b5d3, 0x002326f9, 0x00e9d52c, 0x00f79de6, 0x02035981, 0x01f4e014, 0x000df3d7}}}, + {X: Field{[10]uint32{0x011fa3d2, 0x03553adf, 0x0203178d, 0x020fe387, 0x0215e563, 0x032edf39, 0x01acfbe2, 0x01a69d5a, 0x0024a22c, 0x00148d2c}}, Y: Field{[10]uint32{0x03c000cb, 0x02258c22, 0x02ddfd91, 0x02569d2b, 0x02b41038, 0x0296cd0e, 0x03c3b042, 0x02d4b58a, 0x0042651d, 0x000afab9}}}, + {X: Field{[10]uint32{0x01412f64, 0x010704cd, 0x00b6a509, 0x033d7b9b, 0x01f5048d, 0x01662253, 0x009dbd4f, 0x0086ae9c, 0x00759f3e, 0x00279ba6}}, Y: Field{[10]uint32{0x01757ea8, 0x009a418c, 0x034a92dc, 0x00ce9f93, 0x01431110, 0x03811c62, 0x00dd1690, 0x00b96909, 0x0199e38f, 0x000ad9c0}}}, + {X: Field{[10]uint32{0x0343ae45, 0x03ca4a21, 0x017fcd28, 0x01ce0c96, 0x0289232c, 0x00b7a6ec, 0x01f8a927, 0x0239dc43, 0x02959a71, 0x002105b8}}, Y: Field{[10]uint32{0x0133d139, 0x01c487c4, 0x004db4c7, 0x01d1d931, 0x0220732a, 0x03347c00, 0x01b79044, 0x01023b60, 0x0202801b, 0x001bbd24}}}, + {X: Field{[10]uint32{0x013561a5, 0x02389eb5, 0x0029bb10, 0x01ca7a8d, 0x0027462f, 0x014ae8b7, 0x02405ebe, 0x00ecbcc9, 0x03a7048a, 0x00214a93}}, Y: Field{[10]uint32{0x0162e520, 0x0332bce9, 0x02ac6a81, 0x03de3418, 0x02770b99, 0x032fad9c, 0x00e441c2, 0x02708dac, 0x0046ee0d, 0x000f81b0}}}, + {X: Field{[10]uint32{0x0277c1bd, 0x00a50b8d, 0x00c5d328, 0x02872c8d, 0x01fa6097, 0x03020f3b, 0x03b876d3, 0x015afae4, 0x01a02dbe, 0x000a2037}}, Y: Field{[10]uint32{0x031bb43a, 0x01991043, 0x019d3bf9, 0x01e103a4, 0x023d371f, 0x00dc37e8, 0x015366c5, 0x01aed3fa, 0x021092d4, 0x0037ec3a}}}, + {X: Field{[10]uint32{0x01819c65, 0x027fe27c, 0x006f0770, 0x01549d72, 0x0037b535, 0x02699da8, 0x03dbf869, 0x0235ff00, 0x00029e82, 0x0032dbef}}, Y: Field{[10]uint32{0x02062266, 0x00589de1, 0x02bdace5, 0x03ef816e, 0x00ce9161, 0x032ddb2e, 0x00d50c21, 0x01ce6457, 0x019a3657, 0x003f138b}}}, + {X: Field{[10]uint32{0x001afebe, 0x00c17bfe, 0x021615f6, 0x02962a1c, 0x030abc76, 0x001b43b0, 0x03241066, 0x00d0e086, 0x035bff1c, 0x002021ee}}, Y: Field{[10]uint32{0x0024ce72, 0x0305f782, 0x00353d9b, 0x01fa513d, 0x0223a443, 0x03a6918c, 0x01c5030a, 0x0300ae3d, 0x007aa602, 0x0015e2ca}}}, + {X: Field{[10]uint32{0x02d3a33a, 0x028a3ed0, 0x01482653, 0x0274493b, 0x00f8ae82, 0x0145f396, 0x030def22, 0x032431eb, 0x00bc30f2, 0x000da7d5}}, Y: Field{[10]uint32{0x01b59d16, 0x009855ee, 0x01b40b45, 0x02f71330, 0x0361f466, 0x01658850, 0x03c97aef, 0x01f8cb18, 0x02af35af, 0x0002e3cb}}}, + {X: Field{[10]uint32{0x03ed8f7d, 0x00f54cc7, 0x01eb6edd, 0x00a1af92, 0x03df2946, 0x03f6dab1, 0x03b2448f, 0x03e1c54e, 0x004c01b2, 0x0021ef93}}, Y: Field{[10]uint32{0x020effb1, 0x01bd3af2, 0x00a2adfe, 0x02a19a4e, 0x0071fdc8, 0x00735474, 0x031ec542, 0x0302855d, 0x00bc6386, 0x001fbd1d}}}, + {X: Field{[10]uint32{0x0214715e, 0x00fe8a47, 0x01cfbc01, 0x006d7bb4, 0x0280393f, 0x00e7b6f8, 0x0310eeb2, 0x016faa30, 0x00f018f7, 0x001ed99e}}, Y: Field{[10]uint32{0x038b1fd7, 0x006a2c7c, 0x02890c18, 0x01f4f754, 0x03d98570, 0x02a86efc, 0x008275d2, 0x039a69ce, 0x00e2666e, 0x001e3a2e}}}, + {X: Field{[10]uint32{0x0160f135, 0x009ce52c, 0x00aed90d, 0x01b5acdf, 0x0377d282, 0x03ee8e22, 0x01608f58, 0x027808aa, 0x02419672, 0x000227b1}}, Y: Field{[10]uint32{0x00786cff, 0x025055e9, 0x021f80ac, 0x02c36466, 0x035e3030, 0x0077ac62, 0x01ee5a74, 0x01ce1c06, 0x0142108d, 0x00177bcc}}}, + {X: Field{[10]uint32{0x02177f8e, 0x01b4698d, 0x0131199e, 0x0275907e, 0x008b8374, 0x01e30feb, 0x022acbab, 0x00242cea, 0x03393769, 0x000b2fb1}}, Y: Field{[10]uint32{0x03de8886, 0x024820fc, 0x03bad2ca, 0x0332240b, 0x0367fea7, 0x013c9aba, 0x034a007f, 0x00b56b2c, 0x03e757ad, 0x000c5039}}}, + {X: Field{[10]uint32{0x01946908, 0x033c3baf, 0x03cf02eb, 0x0061198f, 0x0229d576, 0x000c082b, 0x027b116d, 0x02962d4f, 0x03cda2d6, 0x0019e33b}}, Y: Field{[10]uint32{0x026a3491, 0x02f40a03, 0x01713314, 0x0310cc70, 0x0118834f, 0x00caca90, 0x00d56ee9, 0x023bbcdf, 0x01e01329, 0x003d16fa}}}, + {X: Field{[10]uint32{0x033ec0df, 0x03c608b1, 0x01524b43, 0x01cf2230, 0x015073b0, 0x01337c04, 0x012305a9, 0x013b391a, 0x0278adcc, 0x002376f4}}, Y: Field{[10]uint32{0x00fc5b0c, 0x024ec5e0, 0x0102268b, 0x016e8cec, 0x005d2d67, 0x00a31de1, 0x029ea1ae, 0x031b232a, 0x02dd3c52, 0x00241443}}}, + {X: Field{[10]uint32{0x03e36626, 0x00743035, 0x00739304, 0x01e2abdc, 0x00607d78, 0x008e0983, 0x03149c3d, 0x03fd7c8a, 0x0082b162, 0x0025cafc}}, Y: Field{[10]uint32{0x004087dc, 0x01416f93, 0x01324797, 0x0093408d, 0x026eca9f, 0x03a42910, 0x01b64f43, 0x02f29366, 0x03baf61c, 0x0011a16c}}}, + {X: Field{[10]uint32{0x03c97230, 0x03315f2e, 0x0280f540, 0x0182f218, 0x01d8c1f7, 0x0145348f, 0x02801c54, 0x012ae5f7, 0x01526660, 0x0010abc3}}, Y: Field{[10]uint32{0x0299ce38, 0x024afb05, 0x03b89771, 0x01a26378, 0x01cced06, 0x025edd35, 0x017160bd, 0x00a7b50d, 0x03898c90, 0x00015926}}}, + {X: Field{[10]uint32{0x03bb30ac, 0x0188fcf5, 0x010a9fa5, 0x00853010, 0x021748ee, 0x02686831, 0x02138bca, 0x01b47639, 0x03708729, 0x00014d99}}, Y: Field{[10]uint32{0x015cac1d, 0x02e3f63b, 0x01f31fd8, 0x00b96564, 0x027c297b, 0x01cb642e, 0x0219c2f6, 0x02834d49, 0x0260786b, 0x00381a0e}}}, + {X: Field{[10]uint32{0x0039fc24, 0x0157047f, 0x002559de, 0x02d2b648, 0x017d5d0a, 0x033903a4, 0x00308d6b, 0x02c63fc1, 0x0284e85b, 0x00280ed8}}, Y: Field{[10]uint32{0x00785493, 0x0356a3fa, 0x035644ca, 0x016f8052, 0x02c07300, 0x024e76e2, 0x03e7235a, 0x030d208f, 0x0282c22c, 0x0009ce7b}}}, + {X: Field{[10]uint32{0x02b66e97, 0x00b893c9, 0x03a63733, 0x0326648c, 0x01f5801d, 0x02893df7, 0x01980550, 0x014e9af6, 0x02d7268a, 0x000bce53}}, Y: Field{[10]uint32{0x03918d88, 0x03d3375c, 0x014138d3, 0x027d7415, 0x000e49d0, 0x009af130, 0x03d3714a, 0x02ea1b46, 0x033ee934, 0x002d4ad3}}}, + {X: Field{[10]uint32{0x0133f8ab, 0x01684b1c, 0x016ebbb3, 0x03b7bc2d, 0x027740bc, 0x0047bd7f, 0x020c19a6, 0x014df8ea, 0x0010527e, 0x00245dcc}}, Y: Field{[10]uint32{0x029fb5b6, 0x012053fa, 0x0396500f, 0x017333ee, 0x01b097ae, 0x02ef0dad, 0x021063ab, 0x0120249f, 0x03b328b6, 0x001a3e4d}}}, + {X: Field{[10]uint32{0x004af615, 0x018035a4, 0x00b24763, 0x03154280, 0x0028486b, 0x0354a77e, 0x020c1aeb, 0x022bc5e8, 0x01bfcddc, 0x000a146f}}, Y: Field{[10]uint32{0x00cb1356, 0x016cb5b7, 0x017585d1, 0x0320edcc, 0x02ee2acf, 0x00cc0d75, 0x006c3760, 0x009eb9b5, 0x0085702e, 0x0034c0b0}}}, + {X: Field{[10]uint32{0x014bdfef, 0x0136920c, 0x029c25d3, 0x018d69bc, 0x038be3d3, 0x02d1f965, 0x0210b791, 0x0267c515, 0x03ab0254, 0x003a61b5}}, Y: Field{[10]uint32{0x03de35a6, 0x00f0cc51, 0x01c165f5, 0x00b4c710, 0x01cfdb18, 0x00441156, 0x02c63b96, 0x03054043, 0x00dcb3b3, 0x0003418e}}}, + {X: Field{[10]uint32{0x038bfc03, 0x019238a3, 0x02099b2e, 0x0329fefe, 0x00ab44da, 0x020c7609, 0x001c5e0d, 0x02cb38b7, 0x032c5639, 0x002f1176}}, Y: Field{[10]uint32{0x03213e32, 0x03e6d481, 0x028842c1, 0x02020981, 0x0079a805, 0x02a7d4f8, 0x02327400, 0x0226b527, 0x03b127b2, 0x001764f8}}}, + {X: Field{[10]uint32{0x00a8dfc6, 0x012632d4, 0x022fd667, 0x004b29ec, 0x01849ef5, 0x0278a440, 0x027b4c84, 0x020274b1, 0x027e47d9, 0x00105175}}, Y: Field{[10]uint32{0x0113f096, 0x0085ce91, 0x00ea9492, 0x001f58a4, 0x03daeae0, 0x0036a993, 0x008604d9, 0x01fe0a5c, 0x00fc2a4f, 0x00151c7d}}}, + {X: Field{[10]uint32{0x00686825, 0x035d03d7, 0x02fa3c1a, 0x021f9e96, 0x02427e30, 0x01ce373a, 0x015314aa, 0x02755aec, 0x037f4cd7, 0x000b455f}}, Y: Field{[10]uint32{0x016fc1c0, 0x03c7a88a, 0x034eeeab, 0x0084e9c8, 0x02962a4e, 0x01d9aed1, 0x027a29a2, 0x027d2e53, 0x03187615, 0x0030713c}}}, + {X: Field{[10]uint32{0x033933ba, 0x035e5869, 0x0187b361, 0x025a089a, 0x03d6e896, 0x0304aa06, 0x03e26cb0, 0x002cb977, 0x02847704, 0x000bd098}}, Y: Field{[10]uint32{0x0144075e, 0x0120f460, 0x024bd45e, 0x010a1e7c, 0x00a384f9, 0x01d54cbe, 0x03cf601c, 0x00a1e7bf, 0x020d141b, 0x002f7384}}}, + {X: Field{[10]uint32{0x03bf527f, 0x007fff0e, 0x0220ab8a, 0x0110dfa8, 0x03bf9f8f, 0x03bc8f29, 0x003c9c0e, 0x004c0b9a, 0x03a76cc9, 0x002d0673}}, Y: Field{[10]uint32{0x02929517, 0x009478ea, 0x00dba3c0, 0x015b8f34, 0x00a911e9, 0x012201ad, 0x0091a70b, 0x00906792, 0x014e290f, 0x002ee1a5}}}, + {X: Field{[10]uint32{0x0125236f, 0x035cb552, 0x018dcae2, 0x0026c0da, 0x012b17bd, 0x0037b64e, 0x02f2913f, 0x00593f1e, 0x02f95734, 0x00336d29}}, Y: Field{[10]uint32{0x02c8e7aa, 0x03e39baa, 0x025ffc9e, 0x00f013c4, 0x01d57c96, 0x01265914, 0x0100c47d, 0x03d75c39, 0x0236bd1b, 0x00227b68}}}, + {X: Field{[10]uint32{0x0008c256, 0x02003e3d, 0x00a3e321, 0x013088cf, 0x00a12a8c, 0x000e4bfa, 0x026f2f15, 0x031128cf, 0x0351a45a, 0x003b53a9}}, Y: Field{[10]uint32{0x030ffef2, 0x01018d25, 0x0264acaf, 0x018e62b3, 0x00a296d9, 0x0013644b, 0x01266d4d, 0x00d26aba, 0x01a74a2b, 0x00271fa7}}}, + {X: Field{[10]uint32{0x00fbf5d3, 0x03b3428f, 0x0287c96d, 0x000be9e6, 0x0384a74b, 0x037c229c, 0x00ccfcd1, 0x018f0a0c, 0x0138fdf9, 0x0026c1bf}}, Y: Field{[10]uint32{0x03226416, 0x0277801a, 0x020d4eb2, 0x028ca86c, 0x023ede27, 0x0136b435, 0x004ba3cd, 0x018056bb, 0x021ce7ee, 0x003a1991}}}, + {X: Field{[10]uint32{0x02f6ae75, 0x01b94846, 0x004ef516, 0x012f7869, 0x02c2b789, 0x001c0815, 0x0213f1ee, 0x03346a5f, 0x001eefc1, 0x0037c452}}, Y: Field{[10]uint32{0x022b7e02, 0x0152ae88, 0x03ad4a83, 0x0185c5ea, 0x0180c766, 0x039cf8b3, 0x02e1f24d, 0x027e87af, 0x00563542, 0x00285046}}}, + {X: Field{[10]uint32{0x02a3c9f5, 0x0280cb44, 0x0284523d, 0x00569462, 0x0146e4df, 0x0201f186, 0x03bc65de, 0x00fecf41, 0x01010b1f, 0x003e0ca3}}, Y: Field{[10]uint32{0x01ca6216, 0x003c4033, 0x01df0d5e, 0x0051e9c2, 0x02de1749, 0x0172a7af, 0x029a6d0b, 0x0351e272, 0x00747746, 0x0038a76f}}}, + {X: Field{[10]uint32{0x013fff86, 0x03c024d3, 0x01e461fc, 0x01ea4b82, 0x01ff0d1b, 0x02b313ed, 0x02135900, 0x008c07e6, 0x03bdb7fc, 0x000f8ebe}}, Y: Field{[10]uint32{0x02b6ebd6, 0x0098849b, 0x00742f0f, 0x0070fb0a, 0x01a5c2af, 0x01866bac, 0x004c8d09, 0x007146f5, 0x03e1b982, 0x0007f1fd}}}, + {X: Field{[10]uint32{0x03f86125, 0x007aa6c7, 0x0166074d, 0x02013154, 0x0078ede8, 0x0274cd6d, 0x0019f8b6, 0x02005673, 0x02ea6834, 0x002ab45f}}, Y: Field{[10]uint32{0x01365257, 0x033e77e7, 0x008e8ed6, 0x02749ad2, 0x00dfa174, 0x0187ba44, 0x00f45bf3, 0x02276d9f, 0x038cebab, 0x0003a64e}}}, + {X: Field{[10]uint32{0x010ea35c, 0x03a65ca4, 0x0072d37c, 0x02e3eca4, 0x00286442, 0x0389a85e, 0x00f44b6f, 0x031a1bfa, 0x03195515, 0x00084fee}}, Y: Field{[10]uint32{0x0152a852, 0x0225a77b, 0x0136218e, 0x016189e0, 0x03d68c39, 0x0261d880, 0x00ee5771, 0x03d2ecb4, 0x011b7df7, 0x00125ee5}}}, + {X: Field{[10]uint32{0x030120fa, 0x024de40d, 0x021a2924, 0x011c24a0, 0x03eba91b, 0x022e31e9, 0x013321ec, 0x020678fa, 0x02a578ed, 0x00335fdc}}, Y: Field{[10]uint32{0x01bb1148, 0x03d7f3d1, 0x03ce2d8f, 0x02464fa5, 0x02ca4eac, 0x02441df9, 0x02c537d9, 0x003cb3e8, 0x00709928, 0x0028f547}}}, + {X: Field{[10]uint32{0x027f3b51, 0x0248f82d, 0x01b19068, 0x03061e3e, 0x038240ae, 0x0346a78b, 0x023a28a1, 0x00a4e7e6, 0x00c700a7, 0x001c28d8}}, Y: Field{[10]uint32{0x01710259, 0x001554ab, 0x021b73eb, 0x0261b4bd, 0x00dd175c, 0x01a82ee3, 0x024ae36b, 0x036f08ba, 0x007c53a4, 0x00287670}}}, + {X: Field{[10]uint32{0x01b5e46a, 0x01d98048, 0x02d337a0, 0x03f67369, 0x00eedc35, 0x027a72fa, 0x021dd199, 0x00ad983e, 0x015b4f8e, 0x00151298}}, Y: Field{[10]uint32{0x028451e5, 0x0142cd6e, 0x026bd751, 0x0269cc23, 0x03d7ba7a, 0x0376725f, 0x0286aecb, 0x03235d94, 0x01b9c76f, 0x001d749b}}}, + {X: Field{[10]uint32{0x02c8acef, 0x030d19e3, 0x03c92a01, 0x03dcdb08, 0x00f8b779, 0x01356d72, 0x019b2657, 0x01cf5ebc, 0x039f76a0, 0x00108635}}, Y: Field{[10]uint32{0x02cfb28e, 0x0007ae6f, 0x00bdaf2c, 0x0157881f, 0x0187e603, 0x02ca1308, 0x01c05f4e, 0x00ed7f99, 0x02314907, 0x001a057d}}}, + {X: Field{[10]uint32{0x0269b0a9, 0x00bf06a8, 0x03b3864a, 0x01767936, 0x0203deca, 0x018d7e0e, 0x03337598, 0x02b30628, 0x02381a82, 0x001ab689}}, Y: Field{[10]uint32{0x02da6c08, 0x03388a57, 0x033bae8a, 0x03e2d854, 0x012e77b6, 0x022d7e10, 0x0105f32b, 0x0149bd83, 0x02da65f7, 0x0014f4d5}}}, + {X: Field{[10]uint32{0x0118b09e, 0x019863b8, 0x03579336, 0x0291e04f, 0x018bd46e, 0x030e0b10, 0x0118e987, 0x026965d5, 0x0101d9f2, 0x0017ea67}}, Y: Field{[10]uint32{0x03fc3b39, 0x003a0b4c, 0x034cd6fc, 0x000b6fb0, 0x02f15f66, 0x0260994a, 0x00e381e4, 0x02e06f73, 0x023838de, 0x00351e74}}}, + {X: Field{[10]uint32{0x00d76f6e, 0x000656d1, 0x03e4412d, 0x0002cadf, 0x030bbb4a, 0x03fbe5b4, 0x02676d72, 0x019eadba, 0x017634cc, 0x00331bb5}}, Y: Field{[10]uint32{0x03bf820c, 0x002bd8bd, 0x03e94f52, 0x00343692, 0x03dd801b, 0x020d0a13, 0x009e5f15, 0x0266e2ab, 0x015ad509, 0x0002c570}}}, + {X: Field{[10]uint32{0x00ffceb4, 0x00bb8e90, 0x03ddfec3, 0x01e761d1, 0x01ff4476, 0x00289adb, 0x0310bf89, 0x03a8ff7a, 0x03db5323, 0x00393343}}, Y: Field{[10]uint32{0x0220e1f5, 0x021a8c34, 0x00c48d5d, 0x01ef107e, 0x00e2caa8, 0x02dd8a71, 0x02af718d, 0x010d5d95, 0x00c8ba9c, 0x003ef6d0}}}, + {X: Field{[10]uint32{0x0388a8af, 0x02df3626, 0x025686af, 0x03b1e9d5, 0x030b3c1f, 0x008d1a0c, 0x01e3ca1a, 0x02e4a6b0, 0x022aba51, 0x001dff5c}}, Y: Field{[10]uint32{0x01e98505, 0x0243d6cf, 0x006919cf, 0x016cb1ec, 0x006b5b55, 0x037d2edd, 0x0378ee31, 0x0272d13c, 0x01e10d6e, 0x00340946}}}, + {X: Field{[10]uint32{0x017a41dd, 0x010630a6, 0x033e2665, 0x008e57fd, 0x006291e5, 0x00a67d3e, 0x03ca57bf, 0x00f51e74, 0x03bca9dd, 0x00134e47}}, Y: Field{[10]uint32{0x00ce899e, 0x03afc96d, 0x02fce1a9, 0x0310e7b1, 0x03e5d4a3, 0x024f10fc, 0x03e9fcd5, 0x0181aee4, 0x0033b55e, 0x0017327b}}}, + {X: Field{[10]uint32{0x03084e97, 0x00e9115c, 0x022ba83f, 0x03e20586, 0x012eb232, 0x0324bfa0, 0x019d63c3, 0x01ee1172, 0x004617b1, 0x001d02f1}}, Y: Field{[10]uint32{0x00355464, 0x00952bfe, 0x00c67883, 0x00aa640a, 0x02fb1074, 0x004c061d, 0x0317481c, 0x02559dc5, 0x006e0f4f, 0x0003f63b}}}, + {X: Field{[10]uint32{0x01b46e5c, 0x004396c0, 0x00392b2d, 0x03106f73, 0x00c6aa12, 0x0333b40c, 0x02fd8d60, 0x02114d6e, 0x021cadeb, 0x00309630}}, Y: Field{[10]uint32{0x01171d31, 0x01884e57, 0x022af4cb, 0x029d7b0f, 0x02b73646, 0x0083797c, 0x01d08afa, 0x02f5fdce, 0x037f3e60, 0x001f37c0}}}, + {X: Field{[10]uint32{0x00130d44, 0x03fee0c9, 0x01768dbe, 0x01786fff, 0x01fac22a, 0x00327299, 0x0180261c, 0x0135742f, 0x0069733a, 0x0023f220}}, Y: Field{[10]uint32{0x02fc946e, 0x03d2a804, 0x00a95954, 0x0298e3c3, 0x01ca5bf0, 0x0073b9a4, 0x0137ba74, 0x0010b553, 0x014bf88c, 0x0010846a}}}, + {X: Field{[10]uint32{0x0096ad4c, 0x0186ee43, 0x027c967a, 0x038ccae0, 0x00f5152d, 0x03a674c5, 0x03b0e0bc, 0x007091fe, 0x021a4032, 0x0033d8bb}}, Y: Field{[10]uint32{0x02c4a3fe, 0x00259007, 0x015a19bb, 0x00d99043, 0x02e61373, 0x01f70348, 0x01978c07, 0x01ee352f, 0x03c3e64f, 0x0018a129}}}, + {X: Field{[10]uint32{0x009f8ba7, 0x00103915, 0x019d06c0, 0x032bf5bf, 0x00bb00b3, 0x026da458, 0x00884431, 0x01dd83b3, 0x038a4d44, 0x0014cd47}}, Y: Field{[10]uint32{0x037f6b83, 0x014af34d, 0x02a0a163, 0x02e23027, 0x00c7c1cb, 0x015220e1, 0x01c148fd, 0x039bfdd5, 0x02193816, 0x0020e113}}}, + {X: Field{[10]uint32{0x0106bb0c, 0x00cd2287, 0x000a9e17, 0x01eb4b98, 0x03baa015, 0x02b3a501, 0x010e1f62, 0x02464653, 0x03ceee2c, 0x00280818}}, Y: Field{[10]uint32{0x03146339, 0x03061ba7, 0x01de05f4, 0x02c0401f, 0x03fcdaee, 0x011122a2, 0x01b40eac, 0x00fd4b6a, 0x01b55565, 0x0018c118}}}, + {X: Field{[10]uint32{0x01d35660, 0x02a35bf8, 0x018575a6, 0x027a546e, 0x02c360c0, 0x0259822a, 0x034f3741, 0x005d91c9, 0x01cc25de, 0x001c2f2f}}, Y: Field{[10]uint32{0x03461d74, 0x02c3d3b6, 0x02b64a90, 0x00c252a0, 0x003a1c74, 0x02787503, 0x035e719a, 0x01673a02, 0x019b7163, 0x000ef56f}}}, + {X: Field{[10]uint32{0x02dc8fc7, 0x004b466a, 0x01fff138, 0x0305d055, 0x0054b161, 0x02945778, 0x03b1fe52, 0x030f01be, 0x017783cf, 0x00037e2b}}, Y: Field{[10]uint32{0x00069569, 0x031cd560, 0x0060444e, 0x006c4993, 0x01af3840, 0x002df2e6, 0x034ff20a, 0x036c3274, 0x00f60416, 0x002f1024}}}, + {X: Field{[10]uint32{0x000a30f9, 0x02a76795, 0x009ed777, 0x011f8154, 0x028788df, 0x014b55be, 0x02fff3a4, 0x0260017c, 0x01ccef39, 0x0009413a}}, Y: Field{[10]uint32{0x0390612a, 0x0167de5c, 0x00a51116, 0x013b6da4, 0x036fd651, 0x02d7f60c, 0x03f4d2fa, 0x023bf2bd, 0x02a2c6f4, 0x001cf141}}}, + {X: Field{[10]uint32{0x03c97025, 0x005068d6, 0x03a61571, 0x00320678, 0x0218a9ce, 0x0225e7f3, 0x02a6fa56, 0x000cd0e9, 0x03241c92, 0x00093b81}}, Y: Field{[10]uint32{0x00bd7b8a, 0x00909f2c, 0x00bf6ba2, 0x00580bec, 0x03fa0c68, 0x035fd364, 0x0140a6cc, 0x0213a1a2, 0x02cd605b, 0x003b990b}}}, + {X: Field{[10]uint32{0x023929b3, 0x01b6465e, 0x03093e1c, 0x00ac9700, 0x014961e1, 0x00825fcd, 0x00d8eb11, 0x0301698f, 0x00e09665, 0x0007ab57}}, Y: Field{[10]uint32{0x0156fcc3, 0x012a9b5c, 0x0009dc2f, 0x03d77b9c, 0x007284b5, 0x00775c48, 0x0032fbea, 0x03312ac7, 0x035da1ab, 0x00060037}}}, + {X: Field{[10]uint32{0x0205d507, 0x01e247ba, 0x009c098e, 0x03bcb97a, 0x03160c69, 0x020e21d2, 0x020b0dcd, 0x013e3e40, 0x03f22608, 0x0011f3cb}}, Y: Field{[10]uint32{0x01fb7d48, 0x03e948b5, 0x03516cf8, 0x03723720, 0x00bca2ef, 0x00e19919, 0x004d0d2c, 0x016bfc41, 0x03df129b, 0x0028d034}}}, + {X: Field{[10]uint32{0x02d6cbdd, 0x038e7110, 0x03e75b04, 0x02a0fe69, 0x0151f050, 0x0391d293, 0x018bb8ea, 0x01254a88, 0x039b8e2e, 0x0010193e}}, Y: Field{[10]uint32{0x0035de10, 0x0221b76e, 0x03d2b9c7, 0x030346b7, 0x0118ea66, 0x02b77383, 0x013e02aa, 0x0064c24b, 0x0076a2ef, 0x003fe73b}}}, + {X: Field{[10]uint32{0x0381904e, 0x038cd4fe, 0x000d222d, 0x0101a766, 0x03cdd70a, 0x029b5007, 0x01e0150b, 0x008340c8, 0x00d6e58e, 0x0020e2b2}}, Y: Field{[10]uint32{0x015614bc, 0x015222b6, 0x027105f9, 0x03f03a24, 0x01b1ef24, 0x01054ccc, 0x01a6b251, 0x036efdee, 0x03962909, 0x00264e9b}}}, + {X: Field{[10]uint32{0x0202f266, 0x03a6d7b8, 0x033855fc, 0x01caf133, 0x035aedee, 0x03b3d650, 0x016ea260, 0x010f48d3, 0x0183189d, 0x002978db}}, Y: Field{[10]uint32{0x01822c55, 0x02c7251e, 0x03fe954a, 0x02d79fae, 0x03dfc2d1, 0x01050d68, 0x012933fb, 0x00ee2677, 0x003ce25c, 0x001e300b}}}, + {X: Field{[10]uint32{0x03ba72c9, 0x0323f8c7, 0x035725dd, 0x01ea6d47, 0x015ad79e, 0x0235bdeb, 0x03312095, 0x03134cd3, 0x00bcd357, 0x00278903}}, Y: Field{[10]uint32{0x0111f06b, 0x0245cb2d, 0x030eb672, 0x00433be7, 0x0068cc5e, 0x00c2cf27, 0x01476b7b, 0x02818bb0, 0x025ced60, 0x002ba8d2}}}, + {X: Field{[10]uint32{0x02dc2eba, 0x036bb0ed, 0x020c7ea8, 0x016a182f, 0x02dfc9ed, 0x03b91e89, 0x022b91d1, 0x014e0170, 0x0246bb31, 0x002b46c1}}, Y: Field{[10]uint32{0x02dd2083, 0x02e65564, 0x018bb353, 0x02a5b4c3, 0x03a298da, 0x0285661c, 0x0110c9ee, 0x0314246a, 0x01a22499, 0x003b8b98}}}, + {X: Field{[10]uint32{0x030ec72b, 0x02df34d6, 0x020cc35c, 0x01d288da, 0x02fa12df, 0x0047b2a9, 0x00d8c7f0, 0x03d92954, 0x008911d8, 0x0013dec2}}, Y: Field{[10]uint32{0x01bb21e3, 0x00549713, 0x01d993e3, 0x0143c778, 0x0129b942, 0x035fe1a4, 0x019ffac8, 0x01f862d3, 0x001b0d29, 0x0024c6bd}}}, + {X: Field{[10]uint32{0x03d3a7ee, 0x00d48f24, 0x01870d2d, 0x01d0d5a5, 0x02834d02, 0x002ec4be, 0x03ba8747, 0x023cf24f, 0x0170e410, 0x0036aca8}}, Y: Field{[10]uint32{0x0173ae4d, 0x002cbef1, 0x0251e7bb, 0x01bc5d19, 0x03293a5c, 0x002338d6, 0x02ecb24d, 0x0004377a, 0x02cfc37f, 0x00098bc4}}}, + {X: Field{[10]uint32{0x03cf39be, 0x031d2128, 0x03a317ab, 0x021f12f3, 0x02d499f6, 0x0046d699, 0x01e50823, 0x035cb906, 0x017b0784, 0x000d0dc9}}, Y: Field{[10]uint32{0x01c398d3, 0x02cef6a9, 0x00ec2a49, 0x0281dbc7, 0x00f38bd0, 0x02c1b5f0, 0x013fa143, 0x035a3a11, 0x03076da8, 0x0033a6f3}}}, + {X: Field{[10]uint32{0x0099545b, 0x0179cd82, 0x0155c9ed, 0x0024d2b4, 0x03939fa4, 0x028d2feb, 0x0386024e, 0x006ad6fd, 0x029f8261, 0x0011652b}}, Y: Field{[10]uint32{0x02d450f5, 0x00fe4a3a, 0x00da4c4b, 0x0178fb83, 0x0177d3f1, 0x01ded1e3, 0x0034e72e, 0x02e9cb0e, 0x03f562b0, 0x00089571}}}, + {X: Field{[10]uint32{0x01898819, 0x0084b760, 0x003c2f13, 0x00dac89d, 0x033aebb0, 0x01ad6169, 0x02b21fc2, 0x001bec0d, 0x030512db, 0x0001ccdd}}, Y: Field{[10]uint32{0x00307887, 0x00315fd4, 0x03c51515, 0x03b4a4a0, 0x00848b53, 0x0161fcfe, 0x01cf461c, 0x02c28958, 0x0159725f, 0x001d4f77}}}, + {X: Field{[10]uint32{0x029790ff, 0x02af59b5, 0x0372e3f2, 0x00b41953, 0x00a53f4c, 0x0231d2af, 0x02d81c10, 0x03fbcd54, 0x00144d2a, 0x002f6456}}, Y: Field{[10]uint32{0x0027763e, 0x01fb4b46, 0x005b950e, 0x016e5783, 0x0231ae89, 0x017d1c52, 0x02b3277a, 0x038dced0, 0x01e17f27, 0x0006bd82}}}, + {X: Field{[10]uint32{0x015bb557, 0x0395b6e4, 0x03c73d4c, 0x01007d27, 0x01677827, 0x00f621c3, 0x001ced90, 0x03fb88a3, 0x014ca51d, 0x00228473}}, Y: Field{[10]uint32{0x02f5cf23, 0x003d8655, 0x017196be, 0x03c09cce, 0x02ca46b3, 0x03d1c403, 0x00278229, 0x02725fbb, 0x03eeae9f, 0x0034c2b5}}}, + {X: Field{[10]uint32{0x039bfcfd, 0x011b61db, 0x01ea697d, 0x035f0291, 0x03cfd058, 0x016c09ca, 0x023e6886, 0x02ffadb0, 0x01f02802, 0x001e4a6d}}, Y: Field{[10]uint32{0x00fde5d0, 0x02d538bd, 0x00b36963, 0x033507c2, 0x018c80d1, 0x00aa2430, 0x01e366c3, 0x01e0f534, 0x02218039, 0x003e6eeb}}}, + {X: Field{[10]uint32{0x03d89d01, 0x0131498e, 0x018bcf6e, 0x01566c69, 0x03d55f88, 0x0327c07c, 0x000e79bc, 0x0259be02, 0x02ac1d5b, 0x002037c1}}, Y: Field{[10]uint32{0x01136538, 0x006ab250, 0x03a7ebe4, 0x00dc9983, 0x025ee5c3, 0x030043cd, 0x025614ba, 0x0162a498, 0x02d0a595, 0x000d1a49}}}, + {X: Field{[10]uint32{0x025ccaf7, 0x020cc56f, 0x00ac6efc, 0x036b483d, 0x03ed4b01, 0x020eb44e, 0x0292b4f3, 0x020fca52, 0x00789ff3, 0x001d1515}}, Y: Field{[10]uint32{0x0160fa9a, 0x01ddf2f0, 0x00ceafae, 0x018679d8, 0x03e82173, 0x0133cad7, 0x01ea165c, 0x01dffb78, 0x037781ee, 0x000d9227}}}, + {X: Field{[10]uint32{0x02f8fe85, 0x00af3616, 0x01e67de6, 0x0357e1df, 0x03e562d7, 0x00a0a2df, 0x0011fdb4, 0x02a28257, 0x01bcb213, 0x000b1b4d}}, Y: Field{[10]uint32{0x035d159b, 0x02f9ad31, 0x0163144d, 0x0270af4d, 0x002e6013, 0x00bc8ca6, 0x002206c7, 0x013e7d14, 0x03703409, 0x002a8c38}}}, + {X: Field{[10]uint32{0x02e338db, 0x0369c3ec, 0x027be830, 0x0274c12a, 0x024b4342, 0x00a33458, 0x011846a7, 0x013ac0a0, 0x017a9d93, 0x0020d4d9}}, Y: Field{[10]uint32{0x00e02b71, 0x0275011d, 0x003b166a, 0x02bcebfe, 0x02ed4a4c, 0x039a4f22, 0x0189c5ac, 0x03e974a0, 0x0038020f, 0x003e1001}}}, + {X: Field{[10]uint32{0x02ae494f, 0x02a377ea, 0x027f6fd1, 0x01cd3b61, 0x012177ca, 0x018698a6, 0x02f63365, 0x015b5f1f, 0x013a54ce, 0x003c85ba}}, Y: Field{[10]uint32{0x00d30611, 0x00fa912b, 0x036723f4, 0x02dc0bc6, 0x038da296, 0x004730d1, 0x03e8fadb, 0x020c9818, 0x0313a0fe, 0x0036c28f}}}, + {X: Field{[10]uint32{0x008324fb, 0x0342046a, 0x03112273, 0x032379b9, 0x002e9a3d, 0x018bb1fd, 0x022baa4b, 0x01cfe595, 0x02219b5d, 0x00370dc4}}, Y: Field{[10]uint32{0x0357c004, 0x02c553f7, 0x000fb581, 0x0055f0cc, 0x004f1c90, 0x00a7e6ed, 0x020acaa9, 0x00fa58dc, 0x0092ec56, 0x003bb324}}}, + {X: Field{[10]uint32{0x02649475, 0x02641c8d, 0x0116dd44, 0x01ed0959, 0x02b10f04, 0x03bd4d2b, 0x02f60296, 0x02d3c787, 0x036d48f0, 0x0036cd1c}}, Y: Field{[10]uint32{0x00586bec, 0x02f93fab, 0x00fdfdd1, 0x01985934, 0x001a1169, 0x024f9462, 0x02c34c9b, 0x031e1a54, 0x016cf7a8, 0x00070a73}}}, + {X: Field{[10]uint32{0x03696add, 0x031ca5c0, 0x03d3378f, 0x03b4d63e, 0x01971b09, 0x00bd6f3c, 0x015af536, 0x021093cd, 0x00572046, 0x00028921}}, Y: Field{[10]uint32{0x02547803, 0x028ddd89, 0x006948c9, 0x00c6f214, 0x03baffc9, 0x00b8915c, 0x0367a56c, 0x037ae28d, 0x016137d0, 0x00269c0f}}}, + {X: Field{[10]uint32{0x024436c4, 0x027ea8c4, 0x01ed240c, 0x02e63ec9, 0x023eba38, 0x007da343, 0x02aa4293, 0x01d4eeef, 0x006fa9ac, 0x002edee0}}, Y: Field{[10]uint32{0x02426752, 0x020daa04, 0x02e646e5, 0x0273e6d0, 0x0007c6ff, 0x026c0543, 0x03682e3d, 0x02efa366, 0x0174a1a8, 0x0023e049}}}, + {X: Field{[10]uint32{0x03ecf446, 0x0025bff0, 0x01ad517b, 0x02a9d125, 0x00489344, 0x02783c1a, 0x02194276, 0x02808fd9, 0x0076fc28, 0x0019c0f1}}, Y: Field{[10]uint32{0x00e2a38c, 0x02b10f4a, 0x0215eed3, 0x02ac148b, 0x00f42699, 0x019cc785, 0x00211a30, 0x029c8d61, 0x023f7c9b, 0x0022d200}}}, + {X: Field{[10]uint32{0x02dbf6a2, 0x012e9878, 0x023b71b4, 0x02a8d251, 0x0214cf0d, 0x00584ae0, 0x023f3b7a, 0x02d123f8, 0x00e4bfa4, 0x002f2abe}}, Y: Field{[10]uint32{0x01c7f404, 0x0385c435, 0x01736d6f, 0x03b1a333, 0x03b07498, 0x02fa1e4e, 0x0108835d, 0x0254ffa7, 0x0300e2cc, 0x002f7fc9}}}, + {X: Field{[10]uint32{0x0310cd49, 0x0361e464, 0x00f7bbfe, 0x005cfb1d, 0x02217945, 0x01c9a8b9, 0x015b446d, 0x01c88077, 0x03da1a55, 0x00241ad3}}, Y: Field{[10]uint32{0x012653cf, 0x029d34e2, 0x00f93441, 0x0240b5fd, 0x01cf8384, 0x021a421c, 0x0304bc47, 0x0134a340, 0x02dbcd2c, 0x0035d4fc}}}, + {X: Field{[10]uint32{0x02f93d5f, 0x009ab0e7, 0x029058d7, 0x0337ade1, 0x00fa5369, 0x006ff741, 0x000e326e, 0x01f65546, 0x0383018f, 0x0027b025}}, Y: Field{[10]uint32{0x03acf205, 0x0252b765, 0x02049d17, 0x03e3e252, 0x00ad22ba, 0x034a3edc, 0x02c68424, 0x0059054e, 0x0057994b, 0x002732a0}}}, + {X: Field{[10]uint32{0x02b8209d, 0x038cc504, 0x030f3a2d, 0x02faec00, 0x036f823c, 0x004534bc, 0x0362a96f, 0x0103b0a0, 0x0106b754, 0x0014cd1e}}, Y: Field{[10]uint32{0x020c1fa0, 0x02824332, 0x0034ab06, 0x0200f864, 0x01595816, 0x025543b1, 0x02f1bf02, 0x022af91f, 0x00e0471f, 0x000332ce}}}, + {X: Field{[10]uint32{0x023a4870, 0x023e0374, 0x013373b9, 0x00445485, 0x03a33e54, 0x02cd5e01, 0x0224b18e, 0x0012024f, 0x032961b7, 0x0009f14f}}, Y: Field{[10]uint32{0x02575601, 0x02e222f6, 0x014fe2f3, 0x03ea2016, 0x00703fa5, 0x02b23139, 0x03c70e59, 0x00db11c7, 0x038de186, 0x00168fd2}}}, + {X: Field{[10]uint32{0x0259b68f, 0x03339d77, 0x02a5beac, 0x028f9d72, 0x0322ed51, 0x03d57084, 0x02616bac, 0x017e684a, 0x03e37a11, 0x00248649}}, Y: Field{[10]uint32{0x0327b141, 0x00db1341, 0x00ae2e06, 0x01c45e19, 0x0155884e, 0x0098f5de, 0x02fb5906, 0x0316d662, 0x007bc1e4, 0x002f6edf}}}, + {X: Field{[10]uint32{0x033ea8c2, 0x01b35b8f, 0x01ff8dde, 0x002468f6, 0x01efb3e6, 0x0390c9d4, 0x03c692ca, 0x007ff59d, 0x00876eb8, 0x0025cecf}}, Y: Field{[10]uint32{0x03bbb0ed, 0x03af7655, 0x003b849a, 0x02b8ea5a, 0x018684b0, 0x036f3b36, 0x0112c5da, 0x01442e90, 0x03710129, 0x000d037d}}}, + {X: Field{[10]uint32{0x0301ae71, 0x017a6b06, 0x02ce4020, 0x00c84995, 0x00d5972c, 0x024811c0, 0x038ef036, 0x00dd9e64, 0x03def053, 0x00082e05}}, Y: Field{[10]uint32{0x0395707b, 0x0052aa20, 0x01c1234a, 0x0193faa6, 0x01c6b1ce, 0x01282af1, 0x025c3529, 0x02805871, 0x025be2da, 0x000ab8bf}}}, + {X: Field{[10]uint32{0x03c95876, 0x02226d28, 0x01402aa6, 0x0358f64c, 0x01ca9fc5, 0x01cbad0f, 0x02347b7f, 0x0246041e, 0x004f7a7e, 0x0018f895}}, Y: Field{[10]uint32{0x000d16b1, 0x032b5c4a, 0x02067f91, 0x02c7e1b9, 0x02adf49c, 0x022f57eb, 0x01cdf521, 0x00533801, 0x026d20d7, 0x00398abb}}}, + {X: Field{[10]uint32{0x022aeb80, 0x00e5d4f8, 0x034216ac, 0x01cb9060, 0x01a69dd4, 0x011f5d8b, 0x0183abfc, 0x0233c2cd, 0x02107150, 0x000be437}}, Y: Field{[10]uint32{0x0388d389, 0x024eaf4d, 0x0264b761, 0x0226708f, 0x00880f3a, 0x02846122, 0x01e5e025, 0x0375d189, 0x02bd04a0, 0x0014dc6f}}}, + {X: Field{[10]uint32{0x02ed7209, 0x0373ca74, 0x0048ac9a, 0x03082b47, 0x037c9359, 0x03968d47, 0x0237cf75, 0x01b41517, 0x00e8faa9, 0x0023508f}}, Y: Field{[10]uint32{0x03ab40f2, 0x002c4a42, 0x03d6eea8, 0x03056b02, 0x03bb9d23, 0x0299570f, 0x00df7948, 0x03100686, 0x003dee76, 0x0020f52e}}}, + {X: Field{[10]uint32{0x00181efd, 0x03b04420, 0x03ea3bec, 0x0220156c, 0x02a9c91d, 0x02451090, 0x03111a20, 0x022bfcc0, 0x01425e02, 0x0004be90}}, Y: Field{[10]uint32{0x00c3ff57, 0x00ab103a, 0x03d4dc4d, 0x022ecb8d, 0x03ee5c3b, 0x018bac43, 0x010eddb3, 0x00ad5eb0, 0x03708e79, 0x001ae56c}}}, + {X: Field{[10]uint32{0x02706f73, 0x011e20a2, 0x00bbff83, 0x01bfff43, 0x00ce7019, 0x037cb5cc, 0x0105632c, 0x0375f35d, 0x015f2a3b, 0x00248f2a}}, Y: Field{[10]uint32{0x0346abbc, 0x0106ad49, 0x032ee3e5, 0x036f2b42, 0x031903af, 0x00433ffc, 0x003983b2, 0x0185cece, 0x0066c39b, 0x003e2c32}}}, + {X: Field{[10]uint32{0x00893646, 0x027835a2, 0x01776a86, 0x02859882, 0x0064ce3a, 0x00a3d1c1, 0x023875a7, 0x0103a58f, 0x013e8782, 0x00021135}}, Y: Field{[10]uint32{0x03eeaca1, 0x01579cdb, 0x032b25b8, 0x031c67ec, 0x011c84f9, 0x01c4ef1d, 0x00c47b4a, 0x02307fe6, 0x029192bf, 0x00318334}}}, + {X: Field{[10]uint32{0x01dc98f3, 0x01eb087c, 0x02b2a65e, 0x027d998d, 0x03883829, 0x00016977, 0x0277ff81, 0x007636e8, 0x03d6c547, 0x0010de1b}}, Y: Field{[10]uint32{0x02091b51, 0x00bd4a95, 0x0127e914, 0x0213e630, 0x03745ff8, 0x021c1bf9, 0x039109cb, 0x016ef63d, 0x02c29c8c, 0x0034a4a8}}}, + {X: Field{[10]uint32{0x0236d7ab, 0x01cdb72b, 0x0257ce94, 0x01162c1c, 0x02bb0dec, 0x02e628b3, 0x0383f71f, 0x03b3d8e1, 0x028df5e9, 0x001b46f0}}, Y: Field{[10]uint32{0x00d549e6, 0x020008e2, 0x0238da0e, 0x001c8c85, 0x00e2c00e, 0x00a04237, 0x0214cf7a, 0x00111e18, 0x0192bfd8, 0x0030b150}}}, + {X: Field{[10]uint32{0x02ff86c6, 0x0255aac5, 0x037f67d8, 0x0333fe12, 0x016c742c, 0x00f89975, 0x033f89cc, 0x0338f0bb, 0x03347f74, 0x001af13b}}, Y: Field{[10]uint32{0x01b46408, 0x03f33c5e, 0x0066b8b0, 0x03918317, 0x01be26a6, 0x01af798b, 0x036be35c, 0x02c13c49, 0x02fd2d2a, 0x003ad124}}}, + {X: Field{[10]uint32{0x03678b38, 0x03ea66ef, 0x00ddcb35, 0x00af2ccf, 0x000d67a6, 0x00342357, 0x02a756e0, 0x00256350, 0x0075fa81, 0x001abd14}}, Y: Field{[10]uint32{0x025bff28, 0x01ffe7ee, 0x00bfd528, 0x024e1258, 0x02886c7b, 0x02dce199, 0x00ffc3fa, 0x020b1d9e, 0x024f0e76, 0x002b6edc}}}, + {X: Field{[10]uint32{0x01260600, 0x03a29995, 0x011caa24, 0x003e416b, 0x00939f34, 0x0156dd18, 0x02f49cd3, 0x018d96a5, 0x03763646, 0x003adb62}}, Y: Field{[10]uint32{0x03bea3cd, 0x02eb835f, 0x015c33c2, 0x021c0cfe, 0x0241f7a1, 0x000ee074, 0x03a11ff6, 0x002dfee6, 0x02fdaea3, 0x001eba73}}}, + {X: Field{[10]uint32{0x01795068, 0x0115d7a4, 0x000af11e, 0x026eb594, 0x01b34d5e, 0x02eb533d, 0x038dd694, 0x01f4fd9c, 0x02332fef, 0x002f4308}}, Y: Field{[10]uint32{0x011cf209, 0x02082fa7, 0x0113676f, 0x015ceaa7, 0x01a91c4d, 0x01a08e93, 0x01100b66, 0x02c8702a, 0x004e2ea0, 0x003aae97}}}, + {X: Field{[10]uint32{0x02b7e392, 0x03261e54, 0x034b5054, 0x027e010d, 0x030aa56d, 0x01092455, 0x003e0831, 0x025064d2, 0x03bdc504, 0x0031788e}}, Y: Field{[10]uint32{0x02597751, 0x022b1e9b, 0x00fe2f7f, 0x019a156d, 0x038d59e7, 0x02a92b8f, 0x01cd02e3, 0x0085feff, 0x00cbf684, 0x00132bae}}}, + {X: Field{[10]uint32{0x0092d2a3, 0x019f3e23, 0x00bd8108, 0x02637a8e, 0x0017178e, 0x03487181, 0x003edb03, 0x02ae4955, 0x0231f3aa, 0x002d5c5d}}, Y: Field{[10]uint32{0x0011942a, 0x01027ca3, 0x020e9a02, 0x02b23c74, 0x00d2bdf0, 0x00936ead, 0x03318745, 0x02a7bc22, 0x01cc0324, 0x0039d082}}}, + {X: Field{[10]uint32{0x01305cfc, 0x012d7a57, 0x00cca2fe, 0x01f1ee0e, 0x01b2d17b, 0x00c281f8, 0x00a85d5d, 0x007cbf2b, 0x00994960, 0x00271158}}, Y: Field{[10]uint32{0x0304eeb6, 0x03b81bbf, 0x00674674, 0x030d6172, 0x00329273, 0x0079401e, 0x001b61b3, 0x0371f0a1, 0x0140a109, 0x000b5e85}}}, + {X: Field{[10]uint32{0x02a82f63, 0x01de9462, 0x00d5498c, 0x0175cc8a, 0x03e33dae, 0x00ed9812, 0x02ff1757, 0x00db12a2, 0x0146c0ab, 0x0014ab8a}}, Y: Field{[10]uint32{0x037f87b4, 0x035dc71d, 0x0104d24d, 0x0320190c, 0x027179f5, 0x019524fc, 0x003f899b, 0x006fe934, 0x019b6606, 0x001c388f}}}, + {X: Field{[10]uint32{0x0394adf9, 0x0167c280, 0x03dcef4f, 0x030b0a7b, 0x0189db9a, 0x0210207a, 0x01ba4903, 0x0118b770, 0x03bf55ff, 0x000527b0}}, Y: Field{[10]uint32{0x009dd7af, 0x02a2f05e, 0x01801341, 0x01737e52, 0x0049642b, 0x039a5472, 0x028fbc7c, 0x02e508ab, 0x0188b91d, 0x00016707}}}, + {X: Field{[10]uint32{0x02ea7ea7, 0x018e0410, 0x005768a1, 0x00270534, 0x03dbe14a, 0x0054e368, 0x03835346, 0x0063777f, 0x0294d667, 0x002bfe24}}, Y: Field{[10]uint32{0x0159266b, 0x0139d913, 0x00bb9a92, 0x0244aa23, 0x017b6154, 0x02f095b7, 0x022352ac, 0x021e97b3, 0x03ebcf58, 0x001c619a}}}, + {X: Field{[10]uint32{0x004e76fc, 0x02ed0196, 0x02b78da7, 0x02dce38a, 0x0133887e, 0x000f8ad0, 0x012d49b3, 0x0011cab5, 0x00782cb3, 0x0037913d}}, Y: Field{[10]uint32{0x02482bf5, 0x0348f273, 0x01da7eef, 0x03ea0c3b, 0x01b13d08, 0x02b23bc8, 0x03c630d7, 0x0360b015, 0x018425ba, 0x0019e62b}}}, + {X: Field{[10]uint32{0x01682e61, 0x03b1f1ce, 0x021345a2, 0x03aca253, 0x02b3a380, 0x006e80b1, 0x032c88be, 0x024d9b05, 0x02737616, 0x00382f1e}}, Y: Field{[10]uint32{0x022cb2e0, 0x01827349, 0x024d3c23, 0x030aad50, 0x035ad1f7, 0x01edfa64, 0x027c0ec8, 0x023fa37f, 0x02b933b1, 0x002f451f}}}, + {X: Field{[10]uint32{0x032f0e6d, 0x01e91d80, 0x03b1127c, 0x0269c73e, 0x02ed2613, 0x0294da88, 0x033cfa70, 0x027cce51, 0x03272af6, 0x0017b8d3}}, Y: Field{[10]uint32{0x00e13b8c, 0x018abab1, 0x036cb807, 0x004370d8, 0x011316bf, 0x01737bf1, 0x0257de98, 0x01360bda, 0x0396dc0d, 0x003077e3}}}, + {X: Field{[10]uint32{0x0199a0f2, 0x03397a39, 0x0113a68b, 0x011afb57, 0x03672968, 0x03855f5e, 0x00c274df, 0x01e98e6e, 0x03c177fa, 0x0013728e}}, Y: Field{[10]uint32{0x012fb234, 0x030cb14f, 0x032a1d01, 0x01a14bbf, 0x012fb489, 0x03d6723a, 0x033fd758, 0x026baff6, 0x015836fb, 0x0023f4ad}}}, + {X: Field{[10]uint32{0x00b48136, 0x0211d47e, 0x004f5bc1, 0x00d280d2, 0x00980810, 0x03a64fd5, 0x01ed9373, 0x000a43be, 0x03c18756, 0x001553da}}, Y: Field{[10]uint32{0x0172b26a, 0x0129af28, 0x0183d206, 0x00e8783f, 0x03de8086, 0x0230fd43, 0x03834e0e, 0x004a8d45, 0x03b7dfd5, 0x002d1530}}}, + {X: Field{[10]uint32{0x01592ad4, 0x00a096e1, 0x02ba420b, 0x01f2d4e7, 0x02955af8, 0x018b708b, 0x0160b2e1, 0x021e69aa, 0x0350a6c0, 0x00256a06}}, Y: Field{[10]uint32{0x0045c712, 0x006ac303, 0x011af265, 0x021bd9c0, 0x037c7d50, 0x00e2a930, 0x0072b75f, 0x008b47d6, 0x00c4dfed, 0x002f957a}}}, + {X: Field{[10]uint32{0x037e5c4d, 0x02e2f9d1, 0x01d853ef, 0x029ba8a4, 0x0244a4f8, 0x00c7d560, 0x00d14d34, 0x01a9b8d6, 0x01539e49, 0x00241edb}}, Y: Field{[10]uint32{0x03150eac, 0x021cb91d, 0x0265c21f, 0x0000a489, 0x01ff33e2, 0x0375f475, 0x0017fad1, 0x02ee799e, 0x02943853, 0x002cf4f5}}}, + {X: Field{[10]uint32{0x03f17aa6, 0x03330271, 0x003575bc, 0x0191adea, 0x01c8884c, 0x00fc5d81, 0x0337cb23, 0x015dbd9d, 0x001bb342, 0x002149f2}}, Y: Field{[10]uint32{0x037604fc, 0x013a3d61, 0x02a64504, 0x0274cce1, 0x019cd47b, 0x0115ddfc, 0x031930c1, 0x0149255e, 0x01bcdb8d, 0x002db59d}}}, + {X: Field{[10]uint32{0x03ab00ec, 0x025d38bb, 0x01e9f913, 0x00ea066e, 0x03bc6bf8, 0x03e41ba6, 0x02134360, 0x0036493a, 0x027d5a32, 0x0023878e}}, Y: Field{[10]uint32{0x0018b0b9, 0x002783fd, 0x01c4aff3, 0x01f1e4a0, 0x000792e0, 0x029e4b14, 0x023dad4e, 0x017c970c, 0x03abd81d, 0x003653c0}}}, + {X: Field{[10]uint32{0x019a8d76, 0x03eadd54, 0x0034d72c, 0x0125731d, 0x02dd0d89, 0x031a32da, 0x02cbd86b, 0x012a3426, 0x0393be1f, 0x003f00b2}}, Y: Field{[10]uint32{0x024d4f94, 0x00f1dc9f, 0x004e98b7, 0x027659fa, 0x02ffe4cd, 0x0216895b, 0x026ceb08, 0x01171662, 0x0132729e, 0x001c7de9}}}, + {X: Field{[10]uint32{0x03e6e7b8, 0x00a26c42, 0x016af80a, 0x01fe6cbb, 0x03ff7635, 0x03c21d46, 0x02c44db4, 0x022ceec6, 0x0302a285, 0x0033e604}}, Y: Field{[10]uint32{0x0173b528, 0x006fa223, 0x007bad3a, 0x00a2e221, 0x02f1a8a8, 0x0213c7e8, 0x0205ded9, 0x0199b9c0, 0x0012bf23, 0x0008dfa7}}}, + {X: Field{[10]uint32{0x00231d82, 0x03712faa, 0x01228e97, 0x00782e81, 0x0371718d, 0x03235433, 0x0274cbba, 0x03a480f2, 0x01dc1408, 0x000f9b91}}, Y: Field{[10]uint32{0x031ef848, 0x01d19dce, 0x028a3147, 0x0387c3f7, 0x03961009, 0x01fbe1b7, 0x01f287ca, 0x02a017d8, 0x037a2ad3, 0x000b8ff6}}}, + {X: Field{[10]uint32{0x007d4657, 0x02e7b69c, 0x028b3749, 0x02cb7c99, 0x023ce1b2, 0x00466c3b, 0x00090888, 0x0051c442, 0x03950758, 0x002ec11d}}, Y: Field{[10]uint32{0x01c67587, 0x00e45a1d, 0x01bc1bc4, 0x016ff38a, 0x028d6ee5, 0x036fbbb4, 0x01ad6977, 0x03ce9abd, 0x02fc5f95, 0x002569cb}}}, + {X: Field{[10]uint32{0x00dd6748, 0x01746e5a, 0x0193903f, 0x01b604a4, 0x0100fe35, 0x0338132d, 0x03a31034, 0x00b0412a, 0x0142b8b0, 0x00138057}}, Y: Field{[10]uint32{0x00a870fb, 0x010b001c, 0x00d2dd39, 0x03ea046f, 0x02746419, 0x02499d08, 0x00e96ffc, 0x01b5c765, 0x00e7dfbf, 0x0034d6c8}}}, + {X: Field{[10]uint32{0x00a49daf, 0x00dd1649, 0x0386792a, 0x03c90437, 0x0270850a, 0x01a341e3, 0x037391bd, 0x02c8427a, 0x005790c8, 0x00182693}}, Y: Field{[10]uint32{0x03ad0e98, 0x01540bc2, 0x00e8a0e3, 0x000347cd, 0x0314431d, 0x02290e42, 0x01cb14e7, 0x016ce960, 0x027ebc96, 0x003ce98c}}}, + {X: Field{[10]uint32{0x027fc730, 0x02eac0e8, 0x00aa1780, 0x0184c16d, 0x01b9ea07, 0x005fb3d8, 0x01b7558a, 0x016b0138, 0x03362a95, 0x00332f81}}, Y: Field{[10]uint32{0x0092cd3b, 0x0311fe47, 0x03abb71f, 0x00492c0f, 0x00d981a0, 0x00190ca6, 0x02a4e3ae, 0x02875d97, 0x00166c98, 0x003e5adf}}}, + {X: Field{[10]uint32{0x03ccab14, 0x01471a70, 0x008c3e21, 0x01a6a10e, 0x009143c5, 0x01384738, 0x0310ef90, 0x008c0b9a, 0x028285df, 0x001bb580}}, Y: Field{[10]uint32{0x02d196e7, 0x0247a946, 0x026081d5, 0x00709614, 0x03e91b0d, 0x0199798b, 0x03c75649, 0x00ede3a3, 0x03b0687a, 0x0019d7a8}}}, + {X: Field{[10]uint32{0x0349d8e0, 0x01ffda72, 0x02c7f4c0, 0x01dd10f6, 0x02708061, 0x0214554c, 0x033c5923, 0x02853156, 0x01cba0cc, 0x002f7fc1}}, Y: Field{[10]uint32{0x020c9a50, 0x0041b69b, 0x017981dd, 0x024eaab2, 0x03f09d79, 0x020ce443, 0x00a72390, 0x023b309d, 0x010486cd, 0x0014526b}}}, + {X: Field{[10]uint32{0x022bff2b, 0x01e64453, 0x0386eed5, 0x01570b1c, 0x00af9f6e, 0x01e6bb47, 0x03e53665, 0x00c96c8a, 0x028ccc70, 0x00019339}}, Y: Field{[10]uint32{0x01cb1cae, 0x01abb791, 0x0106bd59, 0x0387aad9, 0x0211bf1b, 0x0084f2ee, 0x021dddf2, 0x02683bbd, 0x01763c8a, 0x003e3226}}}, + {X: Field{[10]uint32{0x00ab2bb4, 0x0051c686, 0x007edaf0, 0x03d58984, 0x02b40de7, 0x007968bd, 0x02f3c06e, 0x0143cf72, 0x006f4891, 0x003350b9}}, Y: Field{[10]uint32{0x01bcfada, 0x03f68280, 0x025c281d, 0x0227d9e7, 0x0017f11f, 0x0094e9e2, 0x00921f4e, 0x01a59ed3, 0x00ddd202, 0x00367094}}}, + {X: Field{[10]uint32{0x01619735, 0x0157c062, 0x02c4359d, 0x0070d713, 0x025e9b12, 0x03b136ba, 0x01a7e8e3, 0x0150838b, 0x0007e714, 0x003df0a4}}, Y: Field{[10]uint32{0x03a493b7, 0x02928cfa, 0x023ddc2b, 0x00e8db3e, 0x005ea293, 0x0281b76c, 0x03735a56, 0x02a4f98d, 0x00064dbd, 0x00199145}}}, + {X: Field{[10]uint32{0x0293b7a8, 0x007d9e57, 0x010f2c5c, 0x034b6445, 0x00377609, 0x01c560d7, 0x033d2214, 0x0121589a, 0x01e1d494, 0x0018ce70}}, Y: Field{[10]uint32{0x02d59b28, 0x00cbf1cf, 0x02d95be5, 0x018261d8, 0x01d10a69, 0x03eb2e30, 0x015a20d8, 0x03a3dffd, 0x01ea47b4, 0x003bef9b}}}, + {X: Field{[10]uint32{0x0089b37b, 0x0160050d, 0x00b4daaf, 0x01e367d0, 0x0207b1ec, 0x027d3ae1, 0x00bbcf1e, 0x03b4197d, 0x03137d22, 0x003f33c7}}, Y: Field{[10]uint32{0x01bf3e10, 0x012d541f, 0x0111c64a, 0x02bc86cd, 0x016646be, 0x025d5ad3, 0x01559d9d, 0x02b30e20, 0x002fef9f, 0x002969df}}}, + {X: Field{[10]uint32{0x004f62d2, 0x03058010, 0x03d4e935, 0x035d63b0, 0x00a13434, 0x01ef23d7, 0x023b5541, 0x0213b3c4, 0x031006f2, 0x0036a5ff}}, Y: Field{[10]uint32{0x0312e168, 0x00c0732b, 0x0093cf8b, 0x008a2069, 0x024f3082, 0x0362ae4a, 0x031e3d1c, 0x00cc37cb, 0x028b4900, 0x00197085}}}, + {X: Field{[10]uint32{0x033e4fd8, 0x00b6260c, 0x039bddce, 0x03c887c2, 0x03343ab6, 0x006d1164, 0x0157556c, 0x009338da, 0x00d5428a, 0x00199da9}}, Y: Field{[10]uint32{0x01af7b41, 0x02c717cf, 0x01593854, 0x01611686, 0x03b7afcf, 0x0119f5e4, 0x034d3d83, 0x0094d7d7, 0x00a4b933, 0x00116f77}}}, + {X: Field{[10]uint32{0x017859ca, 0x004ab7b9, 0x01ccd302, 0x01e8a986, 0x0153396e, 0x00f7ba90, 0x0222c7cd, 0x00508152, 0x02becf46, 0x001e479a}}, Y: Field{[10]uint32{0x02dd37a1, 0x01ec333e, 0x02c9268a, 0x03745f93, 0x03e2ec07, 0x03fd0fb2, 0x0332990a, 0x01724fb1, 0x03fd08c5, 0x003900ce}}}, + {X: Field{[10]uint32{0x030018a1, 0x005fcc6b, 0x005ae207, 0x011d2f5f, 0x02c66dd9, 0x012dcc91, 0x00985aa8, 0x0055429e, 0x03b2d518, 0x000e9f1e}}, Y: Field{[10]uint32{0x029d7459, 0x014b517f, 0x03d1437b, 0x0094612b, 0x02b6c38d, 0x039417e2, 0x01f732a9, 0x03b71488, 0x0317e03c, 0x0008e23a}}}, + {X: Field{[10]uint32{0x013ab999, 0x0082f150, 0x00c3bef7, 0x005cad15, 0x0362b740, 0x0004e075, 0x03ca9361, 0x00725a72, 0x01b18680, 0x0009268b}}, Y: Field{[10]uint32{0x01d5e7a3, 0x0225ed74, 0x030cff71, 0x002cfb24, 0x002f708e, 0x01701d7a, 0x003cf9c8, 0x0247075e, 0x004176aa, 0x00368617}}}, + {X: Field{[10]uint32{0x034f8590, 0x029a215a, 0x0313614d, 0x01fede4a, 0x0032c085, 0x01595794, 0x01f21e0c, 0x03302661, 0x0153b4e0, 0x002c9783}}, Y: Field{[10]uint32{0x0183eda2, 0x021399d7, 0x01055d6b, 0x02010ac8, 0x0300ac5b, 0x034a360d, 0x00fac42f, 0x038eb387, 0x02ff6b02, 0x0006f45e}}}, + {X: Field{[10]uint32{0x03862fcd, 0x0167aaed, 0x02cd6013, 0x03dd45ff, 0x02bd1073, 0x0044090f, 0x029db66f, 0x00ce22a1, 0x036805e8, 0x001cd814}}, Y: Field{[10]uint32{0x015f9d56, 0x00494d9b, 0x02913d69, 0x039569d7, 0x03e767fa, 0x0384b507, 0x02434076, 0x0316983e, 0x002d0842, 0x003a71e8}}}, + {X: Field{[10]uint32{0x03f1b1d9, 0x0172585d, 0x03ff9711, 0x036979c3, 0x022e5b52, 0x03c96750, 0x038a0c9a, 0x00ba5c0b, 0x03567139, 0x003b0bc2}}, Y: Field{[10]uint32{0x008183a8, 0x025263a4, 0x00818204, 0x00ad3f7b, 0x02d49e07, 0x02395b4c, 0x00571fa9, 0x01396432, 0x02bbadb2, 0x0011fdf7}}}, + {X: Field{[10]uint32{0x03e2d378, 0x02981612, 0x038e5cbf, 0x025484dd, 0x01afc255, 0x00838630, 0x022ad2f3, 0x0350ea46, 0x03a8250d, 0x001f5ea3}}, Y: Field{[10]uint32{0x00fea3be, 0x00384458, 0x0352e02a, 0x01e904fd, 0x03fab2b0, 0x026f0835, 0x0300f110, 0x01f5dc09, 0x02168962, 0x001ad22e}}}, + {X: Field{[10]uint32{0x026713d7, 0x01a57fea, 0x0036605c, 0x02433fd3, 0x0206e594, 0x009820b1, 0x03aaa01e, 0x01c8ee99, 0x01ce52b6, 0x000c5a9c}}, Y: Field{[10]uint32{0x02a1cb9e, 0x016bdcf5, 0x020200e9, 0x03f73e0b, 0x0184152f, 0x0172d2e8, 0x0344cf6e, 0x0318484a, 0x01a07820, 0x0035bc70}}}, + {X: Field{[10]uint32{0x03bcca51, 0x01b9caa7, 0x01930ade, 0x015c476e, 0x029ace88, 0x02b65e88, 0x02e5fc6e, 0x0227ff0c, 0x00c30ade, 0x000868aa}}, Y: Field{[10]uint32{0x0082e4d0, 0x01b073e2, 0x001e47c5, 0x00e28ae5, 0x01726fd4, 0x00cbc38d, 0x012aafb4, 0x0145ed5c, 0x010438df, 0x00257f4f}}}, + {X: Field{[10]uint32{0x028f94d5, 0x027b0c9c, 0x01535536, 0x0378107e, 0x021ad2cf, 0x0144ebeb, 0x0146c68f, 0x0205c36b, 0x0067b3ad, 0x000fc606}}, Y: Field{[10]uint32{0x02317527, 0x0277c428, 0x00a915f0, 0x03c0e2c0, 0x0191abb8, 0x0088aac3, 0x01991894, 0x003aab55, 0x00e4e9f2, 0x002946a5}}}, + {X: Field{[10]uint32{0x01f63c1e, 0x0024bc22, 0x02a697d0, 0x01b4c563, 0x0079b7aa, 0x0243b3ed, 0x01ecb9b6, 0x00e6f3c4, 0x013911be, 0x003a59cc}}, Y: Field{[10]uint32{0x0103abc2, 0x02050b52, 0x035461f9, 0x03a184c1, 0x00da9be6, 0x00c808a8, 0x022017c0, 0x020f8e37, 0x00f76f87, 0x00030403}}}, + {X: Field{[10]uint32{0x0008b122, 0x0153eba4, 0x00cd8615, 0x010caf42, 0x02d3096d, 0x03ce61b1, 0x03e94b06, 0x02b1f951, 0x02b01407, 0x00187aa2}}, Y: Field{[10]uint32{0x00a4d182, 0x0172a3fd, 0x02792a10, 0x03d0a0fe, 0x02150167, 0x01a7c73b, 0x0090488e, 0x004ea5d9, 0x03cca6f7, 0x00397156}}}, + {X: Field{[10]uint32{0x02dab9fe, 0x01cfe4ef, 0x02402cab, 0x03dc928e, 0x0149673d, 0x008e68fc, 0x00815540, 0x01ff767d, 0x027a1745, 0x002b63eb}}, Y: Field{[10]uint32{0x00f03e6b, 0x01fbfbd4, 0x035d4d77, 0x0080bb4d, 0x01485172, 0x00958fde, 0x001d0371, 0x0312eeec, 0x03ef7966, 0x0014edf7}}}, + {X: Field{[10]uint32{0x02a829d3, 0x02062f6d, 0x0020c586, 0x01324640, 0x02cdf997, 0x0136750d, 0x0362f274, 0x00b9534f, 0x02dfbf7f, 0x00218173}}, Y: Field{[10]uint32{0x01946b88, 0x01bd52df, 0x01873d78, 0x03c143a1, 0x02e7a33d, 0x01dc23fd, 0x009fe4da, 0x02a86988, 0x015f0ca2, 0x0016be29}}}, + {X: Field{[10]uint32{0x03921d87, 0x034b5b3f, 0x014c8cbc, 0x00f0bc8b, 0x016e8325, 0x029e533e, 0x00ffa5a7, 0x027bd1f7, 0x004b465b, 0x002f7795}}, Y: Field{[10]uint32{0x00aadcd8, 0x02f5b3a3, 0x01a7414e, 0x0237e228, 0x030ec97c, 0x0206f9aa, 0x01e7d230, 0x019fd57b, 0x03677ba8, 0x001b14d8}}}, + {X: Field{[10]uint32{0x02fe1cdb, 0x039cd18c, 0x016bbfe3, 0x034aeb64, 0x0162a47b, 0x0170a3d2, 0x02eafca8, 0x0223724f, 0x0245e8b0, 0x000c620a}}, Y: Field{[10]uint32{0x01f176bc, 0x0075a4d5, 0x021a6fd1, 0x02a780aa, 0x01d03557, 0x00b80a32, 0x02b833c1, 0x01b8784a, 0x00f0c5f8, 0x0002cd62}}}, + {X: Field{[10]uint32{0x01dc1202, 0x0013dda9, 0x00883b0d, 0x02f589e6, 0x03e49fad, 0x000ee398, 0x0110b726, 0x003e7b6d, 0x00524580, 0x0005ef90}}, Y: Field{[10]uint32{0x0132fc54, 0x00ce92e3, 0x01cb9c9e, 0x01568bd6, 0x0181667e, 0x010349df, 0x00f7738e, 0x0156b80a, 0x03dcdf88, 0x0005413a}}}, + {X: Field{[10]uint32{0x03629537, 0x01abeb72, 0x0308c9c5, 0x03d69806, 0x00a303ea, 0x001fcaca, 0x03c4e697, 0x01f4a9af, 0x0133bb69, 0x00318cef}}, Y: Field{[10]uint32{0x0218cef8, 0x03566dee, 0x01eac2b4, 0x01e0cc4e, 0x039f3b7f, 0x0187193c, 0x0006b924, 0x01936fcb, 0x00132d47, 0x0021b8fd}}}, + {X: Field{[10]uint32{0x0260bb52, 0x01863d60, 0x00062570, 0x02d8ed18, 0x03633434, 0x00cf3444, 0x00881f3a, 0x0043dc64, 0x008af4c7, 0x003ce788}}, Y: Field{[10]uint32{0x01e2e62c, 0x014be4ae, 0x014e2bfe, 0x038ee973, 0x03d0171e, 0x03650f0c, 0x02e2b664, 0x00dbd89c, 0x0005807b, 0x0024315a}}}, + {X: Field{[10]uint32{0x00a16c54, 0x01808cbd, 0x033db893, 0x0053d67d, 0x01ee4e54, 0x00b6e2b1, 0x00ddfb37, 0x02581e95, 0x039414f2, 0x0033a610}}, Y: Field{[10]uint32{0x0224e0d7, 0x033eebae, 0x03d7f627, 0x00b6e97a, 0x02bb8054, 0x03502ba5, 0x02f78354, 0x01ec4f1c, 0x01a1d105, 0x00069201}}}, + {X: Field{[10]uint32{0x030a76bb, 0x01fd8cee, 0x0273f625, 0x008a8569, 0x01945041, 0x022175d5, 0x0171af10, 0x01e93ee9, 0x039f8110, 0x001499b9}}, Y: Field{[10]uint32{0x0159b457, 0x003f25a9, 0x01918d3b, 0x0003edce, 0x0018d382, 0x01ed5708, 0x033ca397, 0x017c4a1d, 0x01d09cc8, 0x00179eb4}}}, + {X: Field{[10]uint32{0x027056e4, 0x030563ef, 0x035c11ff, 0x0025449b, 0x03675070, 0x01de2f22, 0x0370113c, 0x01ea8efc, 0x025763f4, 0x0013ee77}}, Y: Field{[10]uint32{0x0086f7ef, 0x021d54c5, 0x0175e52e, 0x01d61e27, 0x0229fe02, 0x00bf8f6c, 0x022fa347, 0x01c65c2a, 0x02368eec, 0x000b365d}}}, + {X: Field{[10]uint32{0x03cc0226, 0x015d01c8, 0x0345bded, 0x02a348cd, 0x024ae7bb, 0x005632e4, 0x03ec8406, 0x0376f6aa, 0x0024a99e, 0x002b45a0}}, Y: Field{[10]uint32{0x014095de, 0x03dc103c, 0x003cba21, 0x01ae47b8, 0x029ee638, 0x014f12f9, 0x01e230bb, 0x0119ce3b, 0x0015968e, 0x002ac414}}}, + {X: Field{[10]uint32{0x03719cb8, 0x0320005c, 0x028d55a7, 0x02e8522e, 0x01277923, 0x03c6cc1f, 0x03aea9b0, 0x01556dcc, 0x01aef7cc, 0x0001560a}}, Y: Field{[10]uint32{0x03267689, 0x03c269d8, 0x03d3d3c4, 0x03db12eb, 0x00382969, 0x031829ef, 0x003b47d6, 0x02561550, 0x02eb9c9b, 0x001a9ecb}}}, + {X: Field{[10]uint32{0x0378b935, 0x03af0e1a, 0x01910960, 0x010d1435, 0x014e1e4c, 0x013a7780, 0x004bbe78, 0x01383888, 0x02338efa, 0x0008467c}}, Y: Field{[10]uint32{0x00e7bb93, 0x00da44ee, 0x0195711c, 0x01a4d29c, 0x0052acb4, 0x027144ea, 0x0337db96, 0x011319e8, 0x01c37785, 0x0027c867}}}, + {X: Field{[10]uint32{0x01295bbf, 0x003f96ec, 0x01b3257f, 0x0260fd70, 0x02c52274, 0x0095634d, 0x01e53caa, 0x006fa75f, 0x021b0949, 0x00047f0f}}, Y: Field{[10]uint32{0x004cf6f5, 0x02314a21, 0x00ed6219, 0x02234427, 0x0191b8d1, 0x00c4416b, 0x026b6c02, 0x0164cdaa, 0x034decb0, 0x00071a71}}}, + {X: Field{[10]uint32{0x03d2a908, 0x02fa8ef7, 0x0182180a, 0x00626421, 0x015e64ac, 0x01f981ab, 0x0091bc86, 0x01450e54, 0x026fea6e, 0x000d2db3}}, Y: Field{[10]uint32{0x03ccad6d, 0x00e5908a, 0x00694403, 0x00953860, 0x0328e9f3, 0x00b1e8c4, 0x01e41a13, 0x02fbcfee, 0x0104f4bd, 0x0016dbb6}}}, + {X: Field{[10]uint32{0x0210a84c, 0x0103254d, 0x02e2e22a, 0x00f4b6da, 0x00b326fb, 0x01fbdd17, 0x01c567d9, 0x01a2acec, 0x01cab457, 0x001b0897}}, Y: Field{[10]uint32{0x002a1084, 0x03f5da10, 0x0229cd72, 0x010b403a, 0x03912fe0, 0x03610ef6, 0x0363cfa2, 0x03f633af, 0x03522180, 0x001fa175}}}, + {X: Field{[10]uint32{0x028ed7d7, 0x001c5116, 0x003e32a7, 0x008039c1, 0x03cbfd20, 0x0052da22, 0x03cc7570, 0x025708cb, 0x02e541dd, 0x00017ddd}}, Y: Field{[10]uint32{0x03273c0e, 0x002cda62, 0x022ff2a2, 0x00fdb435, 0x01c11680, 0x0299354a, 0x009de0b9, 0x020d50e8, 0x0078fc6d, 0x000ee317}}}, + {X: Field{[10]uint32{0x011b0e23, 0x02f64ca2, 0x014e9b8b, 0x01205bf6, 0x01d5371e, 0x00913ea9, 0x037eaa63, 0x010fbd78, 0x00c55315, 0x000f89b6}}, Y: Field{[10]uint32{0x0379bb65, 0x03eaaf82, 0x034b0c70, 0x003db62b, 0x02a5b4c7, 0x01b0fafe, 0x01a53bc0, 0x0280dbb8, 0x011b43a4, 0x000c2827}}}, + {X: Field{[10]uint32{0x018b36af, 0x0036affc, 0x0085e8aa, 0x03efb84b, 0x0106be8a, 0x01954f91, 0x02970ac2, 0x00d5a2aa, 0x0291c17a, 0x00318d36}}, Y: Field{[10]uint32{0x01a925f0, 0x0088067c, 0x0346d6d5, 0x0267181b, 0x0016eb9f, 0x02361fb5, 0x01d34bd9, 0x0029ef41, 0x01bae139, 0x001925a0}}}, + {X: Field{[10]uint32{0x027e9a7e, 0x0258b7cb, 0x0347e806, 0x02ceb235, 0x024e8361, 0x03090b5f, 0x02ab4eef, 0x00d6631b, 0x01d64d64, 0x0003b4cd}}, Y: Field{[10]uint32{0x00aa93e7, 0x01ad803f, 0x015e1eb5, 0x039fd5e3, 0x025a1552, 0x023ca2fb, 0x034b6909, 0x01ea9c8c, 0x03f819c9, 0x003c39f0}}}, + {X: Field{[10]uint32{0x02521581, 0x03656147, 0x0328ed72, 0x0191d54f, 0x02d10be1, 0x021c3fec, 0x023dbf22, 0x0167b0fd, 0x00094113, 0x0034dfe3}}, Y: Field{[10]uint32{0x011f1922, 0x0391ed27, 0x0351a191, 0x03532f8e, 0x02831467, 0x01b4f26f, 0x01f1be75, 0x0380d9cb, 0x03b9ba3a, 0x00369f2f}}}, + {X: Field{[10]uint32{0x0115c360, 0x00cd4b9d, 0x0391943c, 0x0017ba1b, 0x0005b32d, 0x031ad083, 0x02ae0611, 0x017a970e, 0x01d7c747, 0x003b8c48}}, Y: Field{[10]uint32{0x004c1686, 0x03c916ef, 0x00281b76, 0x012ae9a4, 0x01b80916, 0x02b5ec4b, 0x0047411d, 0x028eca6d, 0x023797be, 0x001c0ecb}}}, + {X: Field{[10]uint32{0x0187a12b, 0x02005f46, 0x032b5fe9, 0x024109d5, 0x023f5c72, 0x024a984c, 0x02f1a594, 0x00453a83, 0x01bc5c2b, 0x001ed0b2}}, Y: Field{[10]uint32{0x020d27da, 0x03736549, 0x019c9dc7, 0x0378c377, 0x01dd57ed, 0x024909c9, 0x03cd92a9, 0x01cf5d5b, 0x0382e85b, 0x00173dd8}}}, + {X: Field{[10]uint32{0x00a555cd, 0x01d248be, 0x033c3ad0, 0x02117da4, 0x007c8f9b, 0x003e4975, 0x039b6b9a, 0x014e8a4f, 0x039ab13a, 0x0026bd7f}}, Y: Field{[10]uint32{0x025d4153, 0x01bc7eaf, 0x0042ca33, 0x0065905c, 0x0113a9ec, 0x02423215, 0x02a13fa5, 0x011cd322, 0x009e8995, 0x0032a4fb}}}, + {X: Field{[10]uint32{0x0048dacc, 0x02061dce, 0x017b659c, 0x014215af, 0x00a5b2b8, 0x01c260f7, 0x021d591f, 0x037c6c1b, 0x027401a2, 0x0017afe8}}, Y: Field{[10]uint32{0x00f7ad18, 0x01a7f1e8, 0x020fb5fb, 0x0047d1cb, 0x0046e124, 0x008a647a, 0x004c15e8, 0x00f190a4, 0x00b96ac2, 0x0002c2b7}}}, + {X: Field{[10]uint32{0x00c81e6f, 0x00979b3f, 0x01dd3ac1, 0x0219f699, 0x000daeb4, 0x007dbafb, 0x018382bc, 0x017ab214, 0x0108465e, 0x0024ed63}}, Y: Field{[10]uint32{0x0224a4e7, 0x02cfbd46, 0x01b8cf4f, 0x03618ec7, 0x038a50b8, 0x02f2a722, 0x00646c36, 0x005e135d, 0x0118c315, 0x00152fa2}}}, + {X: Field{[10]uint32{0x036fc858, 0x00c7c772, 0x0211132c, 0x02643b6a, 0x005bc868, 0x00ad0199, 0x00943ee3, 0x0191d3ff, 0x039b4fb4, 0x0028a295}}, Y: Field{[10]uint32{0x02f14670, 0x026c54e6, 0x0239646c, 0x0053ebbd, 0x036e059b, 0x03d942ad, 0x016605f0, 0x01592006, 0x01a3d562, 0x00103ba4}}}, + {X: Field{[10]uint32{0x0206ac9a, 0x0397cab5, 0x01078e8d, 0x011fe432, 0x01add7cb, 0x0143482b, 0x01f60297, 0x015582dc, 0x0109781d, 0x0003a61e}}, Y: Field{[10]uint32{0x029819d2, 0x01d3c63b, 0x00907102, 0x037ab233, 0x01c55318, 0x031786a0, 0x02a346f5, 0x036b3fff, 0x02c34c80, 0x0001c486}}}, + {X: Field{[10]uint32{0x01e1dcef, 0x02cefd18, 0x00a7d1d2, 0x02a5d7a1, 0x025c84bc, 0x00e5515b, 0x00ee62ae, 0x02035ff0, 0x011d1587, 0x000a47fc}}, Y: Field{[10]uint32{0x03ec2616, 0x000d9a94, 0x02ceec23, 0x00de4cd6, 0x0171e79e, 0x00892a51, 0x00298ce8, 0x02152d9c, 0x03e8abb6, 0x00317232}}}, + {X: Field{[10]uint32{0x01e315b4, 0x02600fbf, 0x03d824bd, 0x005ae37f, 0x01efda7d, 0x01cea84c, 0x03d9e573, 0x02d4f90a, 0x03909e28, 0x0012b6c4}}, Y: Field{[10]uint32{0x00b1456a, 0x03b37d75, 0x023eefa2, 0x00093f79, 0x0124eb70, 0x0303266c, 0x00a796e5, 0x02b9f25c, 0x0312b827, 0x0019b5fa}}}, + {X: Field{[10]uint32{0x027591ff, 0x029c0936, 0x033846b3, 0x0237902f, 0x0201707a, 0x00951807, 0x007e47b2, 0x003bf78f, 0x034b9524, 0x00157897}}, Y: Field{[10]uint32{0x00c830c2, 0x038ad6de, 0x022664b1, 0x038c8ba0, 0x03e4491a, 0x00b72e82, 0x03000b37, 0x0181b5d0, 0x017b7e98, 0x003a7c89}}}, + {X: Field{[10]uint32{0x02747eca, 0x00016c7e, 0x03ad8aa3, 0x00063084, 0x01388ddd, 0x0118e0d3, 0x03a6d8d5, 0x03f0caf9, 0x0093e41d, 0x0034939d}}, Y: Field{[10]uint32{0x00c26cac, 0x02de18d2, 0x01e93fc4, 0x028260ae, 0x026d7feb, 0x0053527c, 0x01f5bee4, 0x012c597a, 0x0216a51b, 0x0039cea0}}}, + {X: Field{[10]uint32{0x01fd8b2a, 0x03ba84d8, 0x027d9ed8, 0x01880648, 0x03caa035, 0x03b586bd, 0x03e46003, 0x0176872d, 0x02526d01, 0x0029442c}}, Y: Field{[10]uint32{0x02bea726, 0x0174bce2, 0x01adc356, 0x03ca8004, 0x01eaa2b2, 0x0031b11e, 0x02b15a28, 0x02aee98f, 0x02a09015, 0x000f6630}}}, + {X: Field{[10]uint32{0x03b314d1, 0x030ad221, 0x01f4f6b8, 0x039bf9a0, 0x008404cd, 0x029575db, 0x03ac63cc, 0x00035456, 0x00d81275, 0x00301341}}, Y: Field{[10]uint32{0x034d9d59, 0x01019eb6, 0x02e1b98c, 0x01637dff, 0x00e3cd44, 0x006f0205, 0x00db9373, 0x003aea67, 0x01779fb8, 0x0032cff3}}}, + {X: Field{[10]uint32{0x02bd0649, 0x01c3e43b, 0x0245a0df, 0x03fe9e24, 0x006b5dd2, 0x023fe9dc, 0x0051e691, 0x00cd5eea, 0x0061146c, 0x003b271f}}, Y: Field{[10]uint32{0x01186170, 0x03438f4f, 0x027a4daf, 0x0026c498, 0x03b36b07, 0x02458648, 0x028803ce, 0x01a48f01, 0x03fa10ca, 0x00268274}}}, + {X: Field{[10]uint32{0x020488cc, 0x033b5602, 0x030640ba, 0x0044b294, 0x03b25985, 0x02017952, 0x037e8403, 0x013117d2, 0x013f5d50, 0x002577d7}}, Y: Field{[10]uint32{0x00e8ecc6, 0x01ab5213, 0x00c21c7a, 0x036dd0f7, 0x0235079c, 0x00facc16, 0x03d1ef32, 0x014c16c1, 0x018589b8, 0x00290f73}}}, + {X: Field{[10]uint32{0x033a6d16, 0x00b511d8, 0x016510c7, 0x0135aec6, 0x012fc8ec, 0x0177fe52, 0x02bf50eb, 0x00314b11, 0x020c3a95, 0x002e3bb3}}, Y: Field{[10]uint32{0x01583744, 0x02c23875, 0x0384b8d0, 0x00b338fe, 0x024a4957, 0x025a68b0, 0x02c1460d, 0x02fe0ee9, 0x02a31b75, 0x001d3a50}}}, + {X: Field{[10]uint32{0x02dd09a2, 0x002fc71c, 0x000ba052, 0x01df178b, 0x00c82b2d, 0x014487a8, 0x01eac517, 0x0270894f, 0x0216d1f6, 0x001667b3}}, Y: Field{[10]uint32{0x0111bb14, 0x00f48c6a, 0x038599f7, 0x01c99908, 0x00b2fdb6, 0x035eebd2, 0x00e2e725, 0x00f43b76, 0x00c325af, 0x00012284}}}, + {X: Field{[10]uint32{0x0282ab32, 0x017f37c3, 0x023bc35a, 0x006eee93, 0x007fff71, 0x0186b360, 0x02fdfaa9, 0x0162a5b8, 0x02068d94, 0x002e2e96}}, Y: Field{[10]uint32{0x00f8ca4d, 0x0133b314, 0x007e32d4, 0x005db8ab, 0x03c2d824, 0x0134ca94, 0x00388454, 0x0160b824, 0x03227554, 0x00200d6a}}}, + {X: Field{[10]uint32{0x027e65f4, 0x017b45c8, 0x00c508c3, 0x020285c4, 0x03ae8063, 0x006c7ffc, 0x02d3d7af, 0x01e19795, 0x03e1cccd, 0x002da11a}}, Y: Field{[10]uint32{0x00bc7201, 0x039bed83, 0x0224177f, 0x03527039, 0x03361ee9, 0x0208c1d8, 0x0189f526, 0x017c2b7a, 0x00253294, 0x002ef6dc}}}, + {X: Field{[10]uint32{0x01a9d0fe, 0x0203fe03, 0x032ffc35, 0x02ce8464, 0x0120dd31, 0x0211b668, 0x0009e53f, 0x00aefbb4, 0x025e6987, 0x00287fe9}}, Y: Field{[10]uint32{0x02da215b, 0x00116c73, 0x02adadc0, 0x032c9a11, 0x0331c210, 0x022dae9b, 0x00549996, 0x00efe774, 0x0180d576, 0x002a8cb9}}}, + {X: Field{[10]uint32{0x030d0fa2, 0x03e6885c, 0x02ebeb62, 0x035b7997, 0x022ad73c, 0x0033bc22, 0x008c7078, 0x0071f7d1, 0x036d6709, 0x0026ce05}}, Y: Field{[10]uint32{0x02609207, 0x01813b53, 0x019d26fb, 0x02206412, 0x0264a459, 0x023fd665, 0x02c86bab, 0x026dfbc7, 0x0319c0fb, 0x0008b49a}}}, + {X: Field{[10]uint32{0x01fd0cd2, 0x014a104d, 0x008981fa, 0x0135f7ab, 0x020accfa, 0x036ad0fe, 0x0132553b, 0x03193eec, 0x009e209d, 0x002f0b33}}, Y: Field{[10]uint32{0x015ccfa6, 0x0160c169, 0x0134374d, 0x004dc624, 0x01350d1d, 0x021e47ef, 0x034931ba, 0x03e22c19, 0x02dc176f, 0x0011cd9a}}}, + {X: Field{[10]uint32{0x00730f6a, 0x01f735c9, 0x03aa607a, 0x00d39fe4, 0x00d45187, 0x03ef4a8c, 0x0036f514, 0x00a98974, 0x00a16545, 0x00073800}}, Y: Field{[10]uint32{0x01c6811d, 0x0018abcd, 0x02c19ee3, 0x0336dac3, 0x03fa288a, 0x038f56fc, 0x0334baf3, 0x03c3b552, 0x03fb5b90, 0x00382440}}}, + {X: Field{[10]uint32{0x01e0031f, 0x033742b7, 0x0109d63d, 0x01a13682, 0x034cc63d, 0x02718911, 0x03b26a44, 0x019303a3, 0x029a887d, 0x00211b15}}, Y: Field{[10]uint32{0x0212c07e, 0x010231be, 0x03be47df, 0x0111de61, 0x0207dcbe, 0x013fc105, 0x03acf93d, 0x027e635f, 0x0353132c, 0x0000151d}}}, + {X: Field{[10]uint32{0x00fe59e9, 0x0207a95d, 0x00b82f5c, 0x007d5321, 0x03701f7b, 0x01a1ac62, 0x00585185, 0x01b88f27, 0x00f72865, 0x0018d96a}}, Y: Field{[10]uint32{0x0316c2eb, 0x0273e9fa, 0x0023fc8d, 0x02d5fff3, 0x01be27f2, 0x027302cf, 0x0151d46c, 0x0394f2b4, 0x01fda992, 0x00231f37}}}, + {X: Field{[10]uint32{0x012939fc, 0x019fe01f, 0x0237fbd2, 0x03d66314, 0x0371dc5b, 0x017a3f45, 0x01726195, 0x00f6365e, 0x033c89ae, 0x003b5097}}, Y: Field{[10]uint32{0x01a3590b, 0x03f580a6, 0x01d74daf, 0x0341b8f0, 0x02010c98, 0x0273c53d, 0x03285fd1, 0x0280ef35, 0x03dc14f7, 0x001089aa}}}, + {X: Field{[10]uint32{0x031f00c7, 0x01b728e5, 0x03d5662a, 0x01e8ba40, 0x0285a0bd, 0x02b8c42f, 0x0267f235, 0x01fafa35, 0x006c2e1b, 0x00336949}}, Y: Field{[10]uint32{0x01247f56, 0x020922ca, 0x013f6eae, 0x03cc879b, 0x0296b2c2, 0x006293fa, 0x00534ba3, 0x026cd246, 0x0296f8ea, 0x001e47bc}}}, + {X: Field{[10]uint32{0x00eaf99e, 0x01a968fd, 0x03bc6f90, 0x0260e1be, 0x02f5017d, 0x025a8470, 0x01d3f7e5, 0x030786fb, 0x00e6ce79, 0x002d0aa1}}, Y: Field{[10]uint32{0x0007e6ac, 0x03e903b5, 0x02610823, 0x0005c2c0, 0x03cc3d06, 0x01d427f2, 0x03fad5e4, 0x00dc60db, 0x00c960bb, 0x000b9c8b}}}, + {X: Field{[10]uint32{0x030bcf90, 0x01a807ea, 0x024c16d4, 0x0342ea14, 0x01be23ca, 0x021c021d, 0x03149df5, 0x03a6f2d0, 0x008ce1e2, 0x000d62f8}}, Y: Field{[10]uint32{0x039d1308, 0x00171107, 0x01b0034f, 0x0298d922, 0x03462318, 0x01bd4446, 0x00fe0bfb, 0x02b333d9, 0x02f070ba, 0x003cf13f}}}, + {X: Field{[10]uint32{0x0016a789, 0x02784d58, 0x03ac985c, 0x03de6d0c, 0x01427d16, 0x0115c410, 0x0374bfe1, 0x0188c293, 0x035de5b3, 0x000fb590}}, Y: Field{[10]uint32{0x0041f26f, 0x0249d898, 0x02d9104b, 0x01b56a95, 0x03ee0dc5, 0x014b4f7f, 0x03e677e3, 0x010f4ad6, 0x005e1427, 0x00071cba}}}, + {X: Field{[10]uint32{0x0016c910, 0x00f67989, 0x00610c25, 0x0142e494, 0x000afb7e, 0x01c85dbd, 0x000d7e26, 0x03685965, 0x022c580d, 0x000927df}}, Y: Field{[10]uint32{0x02a9f50c, 0x01c51ece, 0x02e486dc, 0x0021e7a5, 0x021630f5, 0x037378db, 0x030f8423, 0x0245ba3d, 0x031149e9, 0x001bf058}}}, + {X: Field{[10]uint32{0x009cc85f, 0x00379bb2, 0x00d4c69f, 0x01bdbd06, 0x0114d2d7, 0x014b2fe4, 0x00f6f0b7, 0x006e8c6c, 0x0144e838, 0x0025ecec}}, Y: Field{[10]uint32{0x0188724f, 0x00111372, 0x01dc2182, 0x01827904, 0x02f72822, 0x03c77a16, 0x00492570, 0x0082d685, 0x013033b7, 0x0019f26f}}}, + {X: Field{[10]uint32{0x03395a85, 0x03bbc697, 0x01b68cfa, 0x0038e57a, 0x0380610d, 0x00491421, 0x010fcaf4, 0x00a44947, 0x019e868b, 0x000ece11}}, Y: Field{[10]uint32{0x0225ce6f, 0x02392754, 0x023a3c3e, 0x00966c5f, 0x0391ec4c, 0x01dc917a, 0x00cc9a2b, 0x01d1531e, 0x00ddbfde, 0x002f9460}}}, + {X: Field{[10]uint32{0x02163ebf, 0x03f88725, 0x017efc54, 0x03452680, 0x0074fb35, 0x0209c3f4, 0x00974f44, 0x03822a45, 0x03909f33, 0x00139bc5}}, Y: Field{[10]uint32{0x02b9fd15, 0x03341e39, 0x026a3e56, 0x02035dd3, 0x000dcd28, 0x02a69793, 0x02d34913, 0x01c5596d, 0x038f06f4, 0x0003ed95}}}, + {X: Field{[10]uint32{0x015c75de, 0x02ccb68c, 0x01a9218d, 0x02ddd586, 0x0272e301, 0x00289597, 0x025a0a67, 0x024df5d0, 0x0063e408, 0x0024506b}}, Y: Field{[10]uint32{0x006d6045, 0x024713d5, 0x007a05de, 0x037ef5e1, 0x03f10b34, 0x00aa95f6, 0x0055e721, 0x030f84f3, 0x010a56be, 0x0034d78a}}}, + {X: Field{[10]uint32{0x015ba578, 0x00b1844e, 0x01aa2e21, 0x018a23b7, 0x00337c91, 0x013f2480, 0x01c006a0, 0x009d4559, 0x03ca7205, 0x003b26dc}}, Y: Field{[10]uint32{0x00224887, 0x014043cf, 0x039051b1, 0x01d53139, 0x01ba1922, 0x031d38bc, 0x015f3ab4, 0x00b9dce3, 0x02f5c1a2, 0x000df847}}}, + {X: Field{[10]uint32{0x021caca3, 0x016e06b3, 0x00d7ef0f, 0x0022f94c, 0x01aef502, 0x03aab1b9, 0x00430b1f, 0x024a3f38, 0x00e1bb1a, 0x0015bf05}}, Y: Field{[10]uint32{0x00209001, 0x01fcc1e4, 0x01865f6d, 0x01f30e36, 0x03b05e59, 0x0203d14a, 0x03101d7a, 0x00341e7c, 0x0084f868, 0x00139698}}}, + {X: Field{[10]uint32{0x017df731, 0x00ea2699, 0x021e4d80, 0x030fc603, 0x00cf3997, 0x003c6c8b, 0x037c3627, 0x0353320a, 0x001b2ceb, 0x002bb35d}}, Y: Field{[10]uint32{0x010b8e21, 0x0315f9fe, 0x03d4d8cc, 0x005c2bff, 0x02256bd3, 0x037426ce, 0x036356e8, 0x03d27c64, 0x03336c0d, 0x0017c412}}}, + {X: Field{[10]uint32{0x01836cb8, 0x03e2f505, 0x03f0d418, 0x01c8c70f, 0x039b5c10, 0x00c27a7a, 0x0222b9a4, 0x00f54892, 0x03af54f8, 0x00145899}}, Y: Field{[10]uint32{0x03efe4fc, 0x0248261e, 0x0313d865, 0x017628f6, 0x01cc37e8, 0x02dae10e, 0x02f6fd54, 0x00b05fd3, 0x009b9e06, 0x001061ce}}}, + {X: Field{[10]uint32{0x0066fed5, 0x023d50c9, 0x007e7f25, 0x0371b84a, 0x036e7658, 0x00e0ed3f, 0x01a03687, 0x0111cfe4, 0x02bd8d3f, 0x001a2efa}}, Y: Field{[10]uint32{0x017049c4, 0x018d6b42, 0x03c27048, 0x01e9a8e0, 0x008656fc, 0x025e356c, 0x027f7ccd, 0x026d09e9, 0x000f0ac9, 0x0033d8f2}}}, + {X: Field{[10]uint32{0x007b67be, 0x036fad6c, 0x018a2b90, 0x023e4259, 0x0049ba90, 0x02d4b079, 0x01592138, 0x01fa6d47, 0x02ab6946, 0x00083388}}, Y: Field{[10]uint32{0x0297ce2d, 0x008374b7, 0x00c3e68f, 0x03c52a77, 0x0331649f, 0x026e8b05, 0x032d17e4, 0x01cfda48, 0x007d9f41, 0x00158b68}}}, + {X: Field{[10]uint32{0x02798f78, 0x00582b1b, 0x00b07d04, 0x0241ffe0, 0x029c86cd, 0x014855e1, 0x03c1ec6a, 0x027e48eb, 0x02d3a4a5, 0x002d6df5}}, Y: Field{[10]uint32{0x029d4de5, 0x03cf9e7f, 0x02dbcb8e, 0x02e96efd, 0x0045b5ea, 0x034565ed, 0x03c55af4, 0x0097b836, 0x02c97751, 0x0034178c}}}, + {X: Field{[10]uint32{0x03f45df4, 0x0130c28c, 0x03d4acdc, 0x024dac1d, 0x023967e5, 0x01d7db6e, 0x023d848f, 0x0202c577, 0x00897a42, 0x002556f5}}, Y: Field{[10]uint32{0x01453a02, 0x03e5cd0f, 0x016b2749, 0x006d12c5, 0x01644826, 0x03c97700, 0x03b9fe5b, 0x026473bc, 0x03cb5d79, 0x0012efad}}}, + {X: Field{[10]uint32{0x020a5a98, 0x0391fe19, 0x02211201, 0x0126721d, 0x0150fee8, 0x02fd4dcd, 0x0002fe18, 0x00dc3acf, 0x015198e7, 0x0027d83a}}, Y: Field{[10]uint32{0x00d613cc, 0x00b13e93, 0x00a6a3a6, 0x03a98b8a, 0x03c865a7, 0x00c87626, 0x02570f59, 0x01619a80, 0x02a933ed, 0x0018e56a}}}, + {X: Field{[10]uint32{0x00d776ee, 0x03cb5394, 0x01468999, 0x01642895, 0x009c2b64, 0x02269c40, 0x00041c75, 0x00f436f9, 0x00b6f592, 0x001c207c}}, Y: Field{[10]uint32{0x028f9fc9, 0x02a7fdd9, 0x00758403, 0x028ca231, 0x0227f3f0, 0x02fca2d2, 0x02ec9c91, 0x00067a4e, 0x0005e067, 0x00272d80}}}, + {X: Field{[10]uint32{0x0369561f, 0x02adcecc, 0x023fffb0, 0x00161f99, 0x02b607d6, 0x0358fbe6, 0x00e982ab, 0x0169f06c, 0x01800d8d, 0x00038a40}}, Y: Field{[10]uint32{0x00d924f7, 0x022345f5, 0x01f7861b, 0x006850a6, 0x01993f74, 0x002d5394, 0x00ccc7b8, 0x02692894, 0x02fe7728, 0x001189dd}}}, + {X: Field{[10]uint32{0x00598bfb, 0x031590d6, 0x035212f4, 0x037f10b2, 0x00ac254c, 0x017231ad, 0x03d5939c, 0x02f57ad8, 0x0328b285, 0x0022ba9c}}, Y: Field{[10]uint32{0x01568ec2, 0x0064be02, 0x01e228e0, 0x03ba6436, 0x0213819a, 0x03281602, 0x00a559a8, 0x0157ffad, 0x027704fc, 0x002da0b6}}}, + {X: Field{[10]uint32{0x03256e68, 0x005e418b, 0x010feb3a, 0x01e877fa, 0x0127302d, 0x01619702, 0x00fc2874, 0x012d5fa9, 0x00b254b2, 0x003a7442}}, Y: Field{[10]uint32{0x03a128d0, 0x01ee4e6a, 0x032c48f6, 0x026a9169, 0x018d0ba6, 0x02bc50d9, 0x030fc0b1, 0x0367ef9e, 0x02746d29, 0x0003ffdc}}}, + {X: Field{[10]uint32{0x01ba0fee, 0x021ae1ab, 0x009136d8, 0x00505f4a, 0x00b81f29, 0x00a79332, 0x02d49094, 0x01f985e1, 0x013d1f31, 0x0027a87e}}, Y: Field{[10]uint32{0x0180ec0a, 0x031af91a, 0x036e45d9, 0x0002e564, 0x01975a5c, 0x03f7b845, 0x023ba6aa, 0x02cd45b9, 0x0325d3b0, 0x0008c77f}}}, + {X: Field{[10]uint32{0x001e7a0d, 0x006da352, 0x000c5718, 0x00042166, 0x0080701d, 0x00fa354c, 0x00d687c4, 0x02efb81f, 0x0015e5fa, 0x003a2849}}, Y: Field{[10]uint32{0x022f62c6, 0x02886e64, 0x005dd5d6, 0x03c8b80e, 0x030ac53b, 0x021d15c9, 0x0062f185, 0x039d1a65, 0x039ce263, 0x00375a60}}}, + {X: Field{[10]uint32{0x02c3def2, 0x011bfcc1, 0x02cefb44, 0x01009d8d, 0x02ed7968, 0x03db5706, 0x002e04c7, 0x01851687, 0x03baae48, 0x0038a1fc}}, Y: Field{[10]uint32{0x01968c63, 0x02e7efe7, 0x016e0be5, 0x0239f9af, 0x005bcfbe, 0x03c85560, 0x0053baef, 0x02c3a93b, 0x013d401d, 0x0024e550}}}, + {X: Field{[10]uint32{0x02ad1194, 0x02583755, 0x03927641, 0x00c9aadd, 0x01fb23e2, 0x0053239f, 0x01756eba, 0x016ac39e, 0x039cec20, 0x0023e67d}}, Y: Field{[10]uint32{0x0019a2ea, 0x03ffe67a, 0x02de8c5d, 0x013f27c2, 0x0089cbff, 0x0226c92f, 0x021b0da3, 0x01b5b8bd, 0x03e615cc, 0x00201654}}}, + {X: Field{[10]uint32{0x0366f586, 0x00f0d0f1, 0x03e14c6b, 0x0351ebcc, 0x013adb63, 0x01687fdb, 0x00dfb59e, 0x008eb783, 0x036a8cb7, 0x002721ea}}, Y: Field{[10]uint32{0x0165bb19, 0x031ba2aa, 0x002004ed, 0x038dd61d, 0x036a3699, 0x032073fd, 0x01012cbb, 0x035e79f5, 0x01227a3b, 0x001d1e60}}}, + {X: Field{[10]uint32{0x019dc00a, 0x03b1d776, 0x03c3ec75, 0x0141f622, 0x006042bd, 0x02d44bfd, 0x02a10b7f, 0x0177902e, 0x02086f24, 0x00314b21}}, Y: Field{[10]uint32{0x02b3f844, 0x016b80d2, 0x01cc2ca0, 0x01b017ed, 0x0385e540, 0x01f50bf9, 0x00762d83, 0x02e2f672, 0x013abae8, 0x003a30a0}}}, + {X: Field{[10]uint32{0x028dafb2, 0x0138582e, 0x030ded8d, 0x03f419aa, 0x000dd7c3, 0x02f58d2b, 0x039c6b6e, 0x02f89669, 0x02e194d5, 0x0002d8a1}}, Y: Field{[10]uint32{0x019b5910, 0x00e156a2, 0x034aa18b, 0x0090a80c, 0x0027eaaf, 0x01e64549, 0x03cdf7b4, 0x03c9c1dd, 0x02a8ee0b, 0x001cbb0b}}}, + {X: Field{[10]uint32{0x03086b6d, 0x035b4d0b, 0x024ce8c5, 0x02817cee, 0x0245c648, 0x01c32a26, 0x013792e3, 0x00be2dc8, 0x02f2045f, 0x0037ded5}}, Y: Field{[10]uint32{0x0196ab4a, 0x008eb985, 0x02cb43df, 0x0335765f, 0x0139ac18, 0x000e6e5b, 0x009fc90d, 0x02f73d08, 0x01483850, 0x000e1b3b}}}, + {X: Field{[10]uint32{0x0146a3b0, 0x03341a1b, 0x0020f48e, 0x00dd9d79, 0x01459b2b, 0x0192aad6, 0x01110eda, 0x008d5cfa, 0x009f4cd4, 0x000ab3d3}}, Y: Field{[10]uint32{0x022cc579, 0x00a15f56, 0x000cff62, 0x02be5513, 0x0258b37b, 0x009487fe, 0x01ff9bbd, 0x03a60737, 0x0029aea5, 0x0017c696}}}, + {X: Field{[10]uint32{0x00d33f36, 0x02da1367, 0x03877586, 0x02b29082, 0x026a64f2, 0x00d48dcb, 0x010033db, 0x034de1c8, 0x01aaeb55, 0x002febe5}}, Y: Field{[10]uint32{0x00a3d8ee, 0x000f36ac, 0x03b0f608, 0x00b97c50, 0x0378c6ed, 0x02fe7b20, 0x02fce3eb, 0x039db8a8, 0x0313bb61, 0x001f48ae}}}, + {X: Field{[10]uint32{0x00f31421, 0x035f635d, 0x01f6a6ad, 0x02a4528a, 0x01faacb6, 0x01627329, 0x0393c9ef, 0x02a24369, 0x03604eab, 0x001e3374}}, Y: Field{[10]uint32{0x0219a634, 0x028e373a, 0x00bfd327, 0x023bebfd, 0x0376430c, 0x02d788a1, 0x030d60ef, 0x0007445a, 0x001505b8, 0x003b5fa7}}}, + {X: Field{[10]uint32{0x01213d2e, 0x010f08a3, 0x00276d98, 0x0131f2da, 0x01edb894, 0x019aa292, 0x03977135, 0x00e47f1e, 0x03a9050a, 0x003cbaf3}}, Y: Field{[10]uint32{0x00fa4eaa, 0x03d79e2c, 0x01900bb3, 0x00593cf7, 0x0309513d, 0x01a754d3, 0x03a180c5, 0x027c4f14, 0x030d956f, 0x002c71d8}}}, + {X: Field{[10]uint32{0x02af4c2b, 0x0142e746, 0x00adfca8, 0x02aba056, 0x02857593, 0x01154bab, 0x00199433, 0x032ecc33, 0x020d83bf, 0x00010f35}}, Y: Field{[10]uint32{0x007e8f62, 0x02784418, 0x0130247e, 0x00313f33, 0x01099623, 0x00926633, 0x023d6592, 0x0079ae78, 0x02b10f72, 0x003fd92e}}}, + {X: Field{[10]uint32{0x038ea93c, 0x0025c27c, 0x01315f92, 0x03ee97b0, 0x0302168d, 0x009fc4ed, 0x020c3a3b, 0x012775ef, 0x00e0c01a, 0x00106497}}, Y: Field{[10]uint32{0x00f77110, 0x03c362e5, 0x02c26c48, 0x01dbc512, 0x01a725a6, 0x02c0b66a, 0x02f49c19, 0x002b0068, 0x015ecb6a, 0x0014d1ae}}}, + {X: Field{[10]uint32{0x023877e5, 0x03b396cc, 0x03eee3e6, 0x00c9f89b, 0x000fa1c2, 0x0343b836, 0x011bb478, 0x00b60aa1, 0x02106c76, 0x003f48c4}}, Y: Field{[10]uint32{0x016fa162, 0x00bead3e, 0x0266e7eb, 0x018876cf, 0x014bf334, 0x00d3bb70, 0x03748d62, 0x03b3a2eb, 0x0316f5a6, 0x000e5d8c}}}, + {X: Field{[10]uint32{0x00556ef7, 0x01a0f63d, 0x01cb26ea, 0x012c0341, 0x03d5ad68, 0x028f4727, 0x0254a0a0, 0x02f87cda, 0x0298cb7a, 0x003f8fa2}}, Y: Field{[10]uint32{0x031223bf, 0x02503813, 0x0346c3fa, 0x01d6af81, 0x00837b44, 0x02b56992, 0x03f05f9b, 0x00198e87, 0x027734d8, 0x001f4881}}}, + {X: Field{[10]uint32{0x035ec5dd, 0x023adcd3, 0x01ab69ba, 0x02521060, 0x0338232e, 0x01c5c5f6, 0x03f9b1d2, 0x006f7130, 0x0364ae0d, 0x003980a9}}, Y: Field{[10]uint32{0x00916fdb, 0x00f9bd33, 0x03450d51, 0x03d5ed20, 0x028bc9be, 0x02dded20, 0x001f9516, 0x022c400b, 0x00aa2626, 0x002b440e}}}, + {X: Field{[10]uint32{0x0181e086, 0x02f1bfe3, 0x0364eeb0, 0x00b40d91, 0x03321814, 0x01774e46, 0x01cd9620, 0x01cb65c6, 0x01cfadb7, 0x0021c625}}, Y: Field{[10]uint32{0x0337722e, 0x0322658f, 0x029cb555, 0x03293989, 0x00dda2c9, 0x00e184d4, 0x011ef565, 0x01908675, 0x0064f791, 0x00126824}}}, + {X: Field{[10]uint32{0x03a7e4b4, 0x00e83803, 0x0107f4ab, 0x013d3052, 0x028ed4ec, 0x03ef315b, 0x014ec278, 0x01601720, 0x016e7775, 0x00388a75}}, Y: Field{[10]uint32{0x00e48af2, 0x02ae4205, 0x03ce5795, 0x026ab9ba, 0x006d4265, 0x00f3abaa, 0x017a46b6, 0x020156fb, 0x02bd66d6, 0x00336c1f}}}, + {X: Field{[10]uint32{0x00bbf8ed, 0x02a54dda, 0x01dd6ca4, 0x02be9c2b, 0x03471066, 0x034835a3, 0x00a31189, 0x0321a223, 0x03856b0c, 0x000154d7}}, Y: Field{[10]uint32{0x030ac5e8, 0x012096dd, 0x02c296ab, 0x014d3de9, 0x01f6f529, 0x030c81a8, 0x027822fa, 0x00a99e10, 0x0044245e, 0x00219572}}}, + {X: Field{[10]uint32{0x00767ad6, 0x00d7b949, 0x0130c0dd, 0x00843edc, 0x00b8c48d, 0x00f4419b, 0x000d78e0, 0x033a6b89, 0x01054b37, 0x0004195e}}, Y: Field{[10]uint32{0x03e125f5, 0x02077520, 0x02be2e8b, 0x02bf84ce, 0x004393a5, 0x000d57dc, 0x00eb013c, 0x0186400a, 0x037a508a, 0x0014a0da}}}, + {X: Field{[10]uint32{0x00868c1c, 0x02c3fce8, 0x00e4be6c, 0x00321d0a, 0x00e796db, 0x00d11dde, 0x029e311e, 0x03408e67, 0x02072521, 0x000cd9ac}}, Y: Field{[10]uint32{0x0311638c, 0x0168a350, 0x00ae3025, 0x0191d28d, 0x00ac908c, 0x026660e5, 0x032f15d3, 0x0374b29f, 0x02a422a8, 0x003b1808}}}, + {X: Field{[10]uint32{0x035953ca, 0x00c0c582, 0x03332f26, 0x01919905, 0x0291bd01, 0x027f6d07, 0x0208a1f5, 0x0391b1cd, 0x0396339b, 0x00129e24}}, Y: Field{[10]uint32{0x01b4c442, 0x008fbe79, 0x021013a1, 0x011ab86e, 0x016e6e03, 0x03ae1863, 0x01c0af84, 0x02b51602, 0x017f615a, 0x003516d9}}}, + {X: Field{[10]uint32{0x01f1302e, 0x0251f8e2, 0x030fcae9, 0x02d5eae7, 0x00d75d70, 0x037d818a, 0x00c64ad4, 0x0271ff70, 0x0084fa0a, 0x003b93c9}}, Y: Field{[10]uint32{0x01f80170, 0x03afd082, 0x003cbf81, 0x00fd1e95, 0x03409207, 0x036add28, 0x03dbd0d8, 0x037ebb7d, 0x0094d8ec, 0x0014adde}}}, + {X: Field{[10]uint32{0x01f30a1f, 0x02567f89, 0x02c0eaf9, 0x01831421, 0x039aa9b7, 0x000d7da8, 0x037fbb83, 0x0089bde4, 0x035c163f, 0x00010256}}, Y: Field{[10]uint32{0x01dff7ab, 0x011f1601, 0x025aad55, 0x00ca4c11, 0x006a15d0, 0x030167d9, 0x03145955, 0x01353ba6, 0x00ac6555, 0x00073860}}}, + {X: Field{[10]uint32{0x00436a24, 0x03318bec, 0x034943d6, 0x02734bd4, 0x037a36a5, 0x00062fee, 0x02ecd9fd, 0x02750904, 0x013b067d, 0x001a8897}}, Y: Field{[10]uint32{0x027c2701, 0x0213e67a, 0x008da6a3, 0x02f31cf1, 0x03cc698a, 0x00c0164b, 0x023c91ee, 0x038332a8, 0x023d9352, 0x000a6cf5}}}, + {X: Field{[10]uint32{0x01d36e93, 0x0343235c, 0x0057cf46, 0x015253c8, 0x02172492, 0x00fd2e78, 0x0153a89e, 0x02eeff1a, 0x0241e5f9, 0x0008fbea}}, Y: Field{[10]uint32{0x00db789d, 0x023924df, 0x0386ef21, 0x02844c56, 0x0188cea3, 0x0309a486, 0x03d70755, 0x01c68816, 0x03b17f26, 0x00332269}}}, + {X: Field{[10]uint32{0x033ae55f, 0x02b42053, 0x0066a258, 0x01afd8df, 0x02f97217, 0x028e62b8, 0x01591bd6, 0x02655d63, 0x0297f7f9, 0x0038c307}}, Y: Field{[10]uint32{0x026509e1, 0x0192c061, 0x02df311e, 0x0155a096, 0x013e8e47, 0x034a6f62, 0x01edb4d4, 0x03a497f0, 0x036c3e66, 0x00069c32}}}, + {X: Field{[10]uint32{0x0308e278, 0x0328caf7, 0x01265b57, 0x02444f23, 0x03f05aac, 0x018061da, 0x0212f534, 0x005b54ad, 0x0382acd4, 0x002f9935}}, Y: Field{[10]uint32{0x03ad7e4a, 0x01ab3561, 0x0261f946, 0x017d6887, 0x03bff8f1, 0x00f2d413, 0x03b81c87, 0x00df24a4, 0x004a43e8, 0x001e9061}}}, + {X: Field{[10]uint32{0x023822ac, 0x00930e3c, 0x0145076d, 0x02e35291, 0x0073ada0, 0x00bf7cbc, 0x032b4c28, 0x02987019, 0x02bee009, 0x0032ab00}}, Y: Field{[10]uint32{0x0216d06f, 0x03298be4, 0x008ea500, 0x013f1984, 0x0172a9a6, 0x01711579, 0x02cc3047, 0x03d3888e, 0x00bba040, 0x001f64f9}}}, + {X: Field{[10]uint32{0x0284ccb3, 0x03b079c1, 0x02860fc0, 0x030e1b43, 0x03c1ef94, 0x0385c66c, 0x009321e0, 0x03aa5248, 0x01b03a9c, 0x0036894e}}, Y: Field{[10]uint32{0x023cf9f5, 0x0172fc33, 0x01f15779, 0x01bda8cf, 0x00b1b130, 0x0019fa69, 0x03f601f8, 0x033a8bd9, 0x0387bef1, 0x003a1784}}}, + {X: Field{[10]uint32{0x019cc0ed, 0x003a4d9e, 0x00198070, 0x01eefa6d, 0x024ce4fe, 0x03673ee9, 0x03c1bd8a, 0x01492192, 0x01525c96, 0x002fcbb9}}, Y: Field{[10]uint32{0x0058f18e, 0x00c0c3d8, 0x0304f634, 0x02639d80, 0x035df423, 0x000ce408, 0x01529bc3, 0x02289284, 0x021db129, 0x0022277a}}}, + {X: Field{[10]uint32{0x03abde36, 0x0259f051, 0x0226430b, 0x00a9c829, 0x01113060, 0x0290b18d, 0x024c9ff7, 0x00d98a7f, 0x0141cb0c, 0x002cf92c}}, Y: Field{[10]uint32{0x02865657, 0x01f22a94, 0x01f56a7d, 0x02ecb906, 0x03eff979, 0x035abffa, 0x00ff83e5, 0x020a3631, 0x0118c38a, 0x003d9bdc}}}, + {X: Field{[10]uint32{0x009475a0, 0x01ee9622, 0x03e01496, 0x024d8f0c, 0x0124a255, 0x02888d92, 0x01818265, 0x00846844, 0x024ffad7, 0x001147ac}}, Y: Field{[10]uint32{0x00565bb6, 0x01506791, 0x001a21fe, 0x0316fec5, 0x034cb2f8, 0x0307ccf8, 0x01bd3211, 0x030ede69, 0x014049f6, 0x002227fe}}}, + {X: Field{[10]uint32{0x00f5984c, 0x019741ce, 0x03c53b5d, 0x02fd2f03, 0x03ea4c77, 0x012e2bcc, 0x027a0b0c, 0x011de084, 0x018a6a75, 0x000a6ad9}}, Y: Field{[10]uint32{0x03f0f2c1, 0x0380688a, 0x016d215e, 0x02aae02c, 0x02947b8b, 0x01cb69af, 0x0219f9ad, 0x01b0ec29, 0x01a9c77d, 0x002aac6f}}}, + {X: Field{[10]uint32{0x017b24db, 0x026cd04a, 0x038ac287, 0x026b1953, 0x0209d9e7, 0x0076967e, 0x03bb9c0d, 0x03089016, 0x0007d815, 0x0026d671}}, Y: Field{[10]uint32{0x0276d190, 0x006ae369, 0x0376cc76, 0x02d826c6, 0x0117bb35, 0x02eb302a, 0x0027811a, 0x0004530a, 0x018ee630, 0x00293bc1}}}, + {X: Field{[10]uint32{0x026c9fd0, 0x01939d29, 0x0220fc05, 0x01e94ab1, 0x0378e69a, 0x01b0eb1d, 0x01b970e7, 0x02e5d62e, 0x036582ae, 0x0021f49e}}, Y: Field{[10]uint32{0x03511e03, 0x0026384d, 0x00b1acd9, 0x01724c9a, 0x0004d03d, 0x03c1fd07, 0x0083e087, 0x024cdd07, 0x03ccdec2, 0x000ffcec}}}, + {X: Field{[10]uint32{0x009701dc, 0x02e9bda6, 0x00bf4d9b, 0x020edc36, 0x037fe7d3, 0x01af2e4e, 0x005a0ab3, 0x02058ef6, 0x004d3895, 0x003eecda}}, Y: Field{[10]uint32{0x03b94504, 0x02f89921, 0x014c0301, 0x0109a297, 0x01759e73, 0x00981b42, 0x01c2af7b, 0x02cef443, 0x01c6c9c5, 0x001ec1f3}}}, + {X: Field{[10]uint32{0x0314a453, 0x033de7d0, 0x034eacc7, 0x0253e549, 0x01a3ef14, 0x019b9629, 0x03cc1adc, 0x00ae7488, 0x02e4ccc4, 0x0020808a}}, Y: Field{[10]uint32{0x01d2b695, 0x03439245, 0x02a3bb5c, 0x017a6a3a, 0x003a8180, 0x02d36d14, 0x030481a9, 0x00b6841b, 0x02509ddf, 0x00309090}}}, + {X: Field{[10]uint32{0x0220f901, 0x03b2562f, 0x0001a1db, 0x01f15f42, 0x01ab4e65, 0x0247e25d, 0x02475fae, 0x032cdeef, 0x005b3b51, 0x002e9735}}, Y: Field{[10]uint32{0x0341b0a5, 0x00e807b3, 0x0016478e, 0x0062d639, 0x007f9eb7, 0x026394c9, 0x007eddd2, 0x03d638d0, 0x03c0f8b4, 0x000b8353}}}, + {X: Field{[10]uint32{0x026703fc, 0x00197622, 0x02d277cd, 0x00eb7d6d, 0x02cfadaf, 0x00f9cb88, 0x02b44445, 0x0346f9da, 0x0041b316, 0x0004a4f2}}, Y: Field{[10]uint32{0x0133c2fa, 0x01c2ab54, 0x01749286, 0x01122012, 0x002488f1, 0x01081c27, 0x004ab523, 0x012622e1, 0x033740fb, 0x00263d63}}}, + {X: Field{[10]uint32{0x035015c6, 0x02aa6237, 0x037c2c69, 0x03923610, 0x03987d77, 0x022b8db1, 0x03972dea, 0x006f6b6e, 0x03c854bf, 0x003b27ec}}, Y: Field{[10]uint32{0x01486d3f, 0x01047329, 0x00cb2a00, 0x0152ff3b, 0x00fe425d, 0x020c9583, 0x01d6b364, 0x03a5d258, 0x03fdea59, 0x00357cd6}}}, + {X: Field{[10]uint32{0x0144d244, 0x01372dc9, 0x02d62769, 0x03b1ab6b, 0x029950ea, 0x039f563d, 0x03d44662, 0x016da5b2, 0x003f4cd5, 0x000bb338}}, Y: Field{[10]uint32{0x03f68879, 0x01857990, 0x0082f0f6, 0x00ff79e4, 0x00d1bc79, 0x001f3133, 0x01403cae, 0x03dd1fab, 0x00a97f1c, 0x003853cc}}}, + {X: Field{[10]uint32{0x026fb3b2, 0x000973d5, 0x03c3d77c, 0x02beb141, 0x024c6ad5, 0x01bdbbe2, 0x025e7fa5, 0x039481e0, 0x037fa63e, 0x003b63eb}}, Y: Field{[10]uint32{0x03684a9d, 0x0011b620, 0x008f2c9b, 0x03123afe, 0x01cb0636, 0x03e8f953, 0x02f10407, 0x009cf296, 0x00b8ab21, 0x00037c48}}}, + {X: Field{[10]uint32{0x00c32e4f, 0x01e317c5, 0x023a5bc0, 0x027cf0a3, 0x030bf3fd, 0x00c3f645, 0x02b456af, 0x036afb07, 0x037b8780, 0x0011f2e3}}, Y: Field{[10]uint32{0x00aa3203, 0x00c6f4ad, 0x029af669, 0x006625e3, 0x02c5889d, 0x0087b8b7, 0x02fc948f, 0x02a9b1a2, 0x02021f16, 0x003e181e}}}, + {X: Field{[10]uint32{0x01762009, 0x0056890f, 0x025cacf2, 0x011c78e3, 0x02d49620, 0x02bf9c3a, 0x01a3ee38, 0x02acbcee, 0x02c1fdeb, 0x001d8d96}}, Y: Field{[10]uint32{0x0253aa28, 0x03146d53, 0x01c3211f, 0x00d03737, 0x025d7783, 0x01f517e9, 0x037d3a69, 0x02d803fc, 0x03728b4b, 0x000b2b2b}}}, + {X: Field{[10]uint32{0x0027b424, 0x00cc27b3, 0x00ea8a23, 0x0078461a, 0x039f0931, 0x018fb720, 0x03750550, 0x03954b84, 0x01e099b8, 0x00327757}}, Y: Field{[10]uint32{0x00f8c1a5, 0x0088daee, 0x039e4b38, 0x022ec45f, 0x0338163a, 0x02bf9f4a, 0x00f134ae, 0x017adf1a, 0x02384e61, 0x0012f534}}}, + {X: Field{[10]uint32{0x010a8961, 0x0164cb6b, 0x02a3183e, 0x02de08b8, 0x009a1e08, 0x036f2dbe, 0x01c2f96b, 0x01baf1f0, 0x03adcc40, 0x0008ada9}}, Y: Field{[10]uint32{0x020ac794, 0x007b77eb, 0x02d5e22c, 0x0389dd4d, 0x0287b553, 0x00d2bcb5, 0x02be9a95, 0x013d3f4b, 0x0095bab2, 0x0014ae18}}}, + {X: Field{[10]uint32{0x0381a158, 0x006a6da7, 0x00d24a33, 0x0012cb79, 0x0296f06c, 0x02adfdaf, 0x03017fec, 0x01f7c30d, 0x00a749fa, 0x000fba02}}, Y: Field{[10]uint32{0x0039cb4a, 0x008f0709, 0x02d0c01e, 0x015b6107, 0x016c4b13, 0x01933ff9, 0x03dc1740, 0x027b3621, 0x00ef5f1f, 0x000fa553}}}, + {X: Field{[10]uint32{0x00fa4803, 0x027088ae, 0x0048f3e4, 0x0009c10c, 0x00aa97d3, 0x0356d890, 0x0269ae44, 0x01225837, 0x00588a7a, 0x000a4e2f}}, Y: Field{[10]uint32{0x01ada03e, 0x0015340e, 0x0081865b, 0x0071672d, 0x029ea59a, 0x029ba80a, 0x034826cb, 0x00764379, 0x02619fad, 0x003c9aef}}}, + {X: Field{[10]uint32{0x01a15451, 0x025df5f8, 0x030b12c3, 0x01737dca, 0x0094962e, 0x037d0c9d, 0x03ea34f5, 0x03277932, 0x00ecda97, 0x001a0956}}, Y: Field{[10]uint32{0x01fedc6c, 0x02092bee, 0x0220f112, 0x00cd6bad, 0x028b543f, 0x023b1b31, 0x0253c4cc, 0x0004fc64, 0x036522c7, 0x003130b9}}}, + {X: Field{[10]uint32{0x02493620, 0x029a2d01, 0x03d8c08b, 0x00243dfd, 0x010cbfad, 0x007cf411, 0x036811de, 0x003695e7, 0x0068fc52, 0x001c8363}}, Y: Field{[10]uint32{0x004c9cb5, 0x01517899, 0x03a2950d, 0x030ed217, 0x0107ac26, 0x02eecc6a, 0x016fd4b8, 0x01b41813, 0x00a84f7a, 0x002e19fa}}}, + {X: Field{[10]uint32{0x00b84831, 0x01fd7afd, 0x029e02a1, 0x00beceb2, 0x01994d5d, 0x030118ea, 0x02153ec6, 0x019634d5, 0x03e71bdf, 0x00259fec}}, Y: Field{[10]uint32{0x007cc83f, 0x0180bad5, 0x03a094cf, 0x03271e21, 0x03e3cddf, 0x0326a135, 0x01d0926e, 0x0092ccbd, 0x01f88617, 0x002e1299}}}, + {X: Field{[10]uint32{0x03cedc85, 0x029063a2, 0x03d88db2, 0x0353e19c, 0x0273f6eb, 0x03bc4ee6, 0x01fc1131, 0x030f7a39, 0x025c77ec, 0x000767f4}}, Y: Field{[10]uint32{0x028035d7, 0x02b713ab, 0x030e4aa6, 0x032758af, 0x03033012, 0x00fe908c, 0x03ff58e2, 0x003ed2fe, 0x0301d972, 0x00152818}}}, + {X: Field{[10]uint32{0x01311c0a, 0x033aa27c, 0x0144a0b4, 0x027e4143, 0x017d0402, 0x00d1b8ce, 0x00dff5ff, 0x01ebcc45, 0x0158a113, 0x002004e0}}, Y: Field{[10]uint32{0x025a6b31, 0x008d2a9a, 0x01c36bdd, 0x0225f157, 0x00bc5e94, 0x028ebf9c, 0x01cc712d, 0x02b06309, 0x0076e6d6, 0x0005bd26}}}, + {X: Field{[10]uint32{0x03ef632f, 0x00de4cf0, 0x00c55c6c, 0x006088aa, 0x0233aa34, 0x0041f7c8, 0x020906b3, 0x0161138e, 0x002177fa, 0x0002aad0}}, Y: Field{[10]uint32{0x0201b092, 0x0139780c, 0x03d2f703, 0x00e669fe, 0x019a0620, 0x028225c4, 0x02d58767, 0x0373b4e0, 0x008f3ad0, 0x0026e0c8}}}, + {X: Field{[10]uint32{0x03a72f10, 0x004bc4c3, 0x00fe1d36, 0x00dc52ef, 0x003c5232, 0x00052f98, 0x02f1e3b3, 0x03d19367, 0x014c7670, 0x0023cff4}}, Y: Field{[10]uint32{0x0205c68e, 0x01b022d0, 0x030a4b54, 0x03d75c70, 0x02862ef6, 0x032181b9, 0x03a593a5, 0x02e07eef, 0x00947901, 0x002132dc}}}, + {X: Field{[10]uint32{0x021f4933, 0x0254fb52, 0x00d88e49, 0x000cc32e, 0x00df69a9, 0x00e5e7b2, 0x034578a3, 0x0301bfab, 0x011caba3, 0x000eea72}}, Y: Field{[10]uint32{0x026f99cc, 0x03b91ede, 0x0072f582, 0x016ed248, 0x03fdcff6, 0x01646efb, 0x00107990, 0x0188c7a1, 0x034c3eb6, 0x001c1229}}}, + {X: Field{[10]uint32{0x00f36a7c, 0x026a72b7, 0x006455f2, 0x0070a618, 0x017344c2, 0x027db2d8, 0x01524682, 0x02c38354, 0x03d289da, 0x000be30d}}, Y: Field{[10]uint32{0x03508396, 0x01d3503a, 0x00201d2f, 0x024dea0d, 0x014223d0, 0x0271e659, 0x02f145e6, 0x01c43afe, 0x024e9d02, 0x000dfc2d}}}, + {X: Field{[10]uint32{0x02dce846, 0x0310329d, 0x012d300e, 0x00a33b6f, 0x0273fc61, 0x02995bf2, 0x03f60500, 0x02749ee1, 0x03a2c920, 0x001179ba}}, Y: Field{[10]uint32{0x035f16ec, 0x018b24ef, 0x02d908a0, 0x015d399a, 0x02813867, 0x03b88960, 0x0091a635, 0x020aef47, 0x0144ba18, 0x0028f8a3}}}, + {X: Field{[10]uint32{0x01767ee9, 0x03ee2c7f, 0x023cc605, 0x026e62b4, 0x0182ea7d, 0x03a10b67, 0x027143ff, 0x03348d11, 0x03d380a0, 0x00297b34}}, Y: Field{[10]uint32{0x0311353f, 0x029b8a53, 0x03b959be, 0x00cc3459, 0x02c9ab6c, 0x0140573c, 0x0331fe5b, 0x0109a4fe, 0x00238ea8, 0x0008bc4a}}}, + {X: Field{[10]uint32{0x0174be83, 0x00ffe400, 0x034a2c94, 0x02a7fd80, 0x0051eb66, 0x0060dd3a, 0x03698213, 0x00ec3510, 0x0271c466, 0x003dfd16}}, Y: Field{[10]uint32{0x0346fce5, 0x030290d6, 0x021498ac, 0x01b3d4be, 0x017fbdf4, 0x01a8ca07, 0x013d6e3e, 0x025fd503, 0x03cd4ec1, 0x000e858c}}}, + {X: Field{[10]uint32{0x007cb59c, 0x02c9d2d2, 0x00832a94, 0x020a957b, 0x0252bf6c, 0x015c5f50, 0x0303b7de, 0x01385d6b, 0x02866b31, 0x00249608}}, Y: Field{[10]uint32{0x02811f68, 0x03c149d2, 0x004a0369, 0x00b377eb, 0x03d6c2f5, 0x01256ef1, 0x02346700, 0x00277194, 0x01847368, 0x003f23a5}}}, + {X: Field{[10]uint32{0x02556da4, 0x01db3043, 0x027b5a7f, 0x03c53754, 0x011d7849, 0x02b9be9d, 0x017fa966, 0x034028bd, 0x00d32303, 0x003057fa}}, Y: Field{[10]uint32{0x01c10951, 0x03ec4260, 0x00d067b5, 0x01ab8ba7, 0x03e017c0, 0x00334d22, 0x03c445c5, 0x037fc699, 0x03d04685, 0x000d890a}}}, + {X: Field{[10]uint32{0x022b5355, 0x013d8331, 0x03e5ca46, 0x00d9f5ca, 0x0004dd71, 0x01c2fc35, 0x00372df2, 0x029838c4, 0x0026152a, 0x000127be}}, Y: Field{[10]uint32{0x00c4c645, 0x01f4b2c8, 0x02165d9c, 0x00bad597, 0x024e369d, 0x01ea4f85, 0x01c572c7, 0x01202e68, 0x03a20dc4, 0x001f2b52}}}, + {X: Field{[10]uint32{0x0091a18f, 0x02b848a7, 0x006a3be4, 0x0077b59a, 0x03629b2f, 0x018c4cf8, 0x02c876e1, 0x03e53f84, 0x01e7538f, 0x00323782}}, Y: Field{[10]uint32{0x017c2635, 0x02d891da, 0x03e885ea, 0x003c69db, 0x029cecb1, 0x01825958, 0x031e872d, 0x02228417, 0x031fe580, 0x002d69fc}}}, + {X: Field{[10]uint32{0x02abb344, 0x007ffae5, 0x00576946, 0x0067bdd9, 0x016b3d51, 0x026bc92a, 0x03a6cd3d, 0x010ebc75, 0x03a4616f, 0x00361ae7}}, Y: Field{[10]uint32{0x0003bcab, 0x01c3867c, 0x02539fb5, 0x01cb8e4b, 0x0056df6f, 0x01a72e3a, 0x001b6606, 0x006d2652, 0x028e8f93, 0x0008e233}}}, + {X: Field{[10]uint32{0x00cbbf88, 0x00eb9bc0, 0x0055a743, 0x02793cfb, 0x0187c496, 0x003f8c10, 0x027b7193, 0x038ac4fe, 0x0218f351, 0x0028b35d}}, Y: Field{[10]uint32{0x0119d685, 0x034dae17, 0x0324aa8d, 0x034e8258, 0x0229870c, 0x00c430d8, 0x015711ab, 0x00d8ec51, 0x0062436a, 0x000f82d7}}}, + {X: Field{[10]uint32{0x0100b2ca, 0x010b33c8, 0x02b87ab4, 0x00efb4be, 0x02ad6c21, 0x00e6d55d, 0x036e4f6b, 0x0128f5e0, 0x00d4e33e, 0x002dca0f}}, Y: Field{[10]uint32{0x02abc9ea, 0x00c5cfa3, 0x008fc273, 0x019c0109, 0x03090833, 0x0097aacf, 0x021e7e30, 0x008c1c60, 0x02fb111c, 0x00246001}}}, + {X: Field{[10]uint32{0x00b9a769, 0x02903d92, 0x00d9a0cd, 0x0151bbf3, 0x01d12e18, 0x0328c4d9, 0x01b123b9, 0x02ea34d5, 0x012e9707, 0x002c7f4b}}, Y: Field{[10]uint32{0x035e674e, 0x027bd2d1, 0x0294b58c, 0x00f58b6b, 0x021a40cf, 0x00a062ff, 0x004d2226, 0x01577bd8, 0x00168e8f, 0x00230df3}}}, + {X: Field{[10]uint32{0x0339f90f, 0x034ae0b2, 0x0262e7c0, 0x031ce574, 0x02cf6077, 0x0216d69b, 0x034be328, 0x03a17832, 0x03e74242, 0x0006c265}}, Y: Field{[10]uint32{0x037760b3, 0x01a48eda, 0x03183fa3, 0x00493052, 0x02f30fae, 0x00ef3e33, 0x00c2d2ef, 0x00762bb6, 0x00d427cd, 0x00156d36}}}, + {X: Field{[10]uint32{0x018d78d6, 0x01541976, 0x03e698e0, 0x02e06ff5, 0x034f1dc9, 0x03b86eec, 0x02362588, 0x0324977a, 0x03bc094a, 0x0015bfee}}, Y: Field{[10]uint32{0x00edc65f, 0x029c6636, 0x022089f8, 0x02dee00d, 0x02a517fc, 0x02fc716e, 0x02f3d235, 0x00af6c82, 0x008f46d7, 0x002a9cc8}}}, + {X: Field{[10]uint32{0x02d7045e, 0x00f8364e, 0x00685353, 0x02459c8a, 0x00e39081, 0x0049847a, 0x026cd368, 0x01fe70d0, 0x02b07ddb, 0x0030497e}}, Y: Field{[10]uint32{0x0377e5ae, 0x034c3c66, 0x024b68cc, 0x03d137d1, 0x031f235e, 0x00b07763, 0x003f1189, 0x01952bdb, 0x003f622f, 0x000a019c}}}, + {X: Field{[10]uint32{0x027f4a17, 0x014508ff, 0x0130148a, 0x03efc967, 0x02dbab85, 0x0207a02b, 0x01fa6fee, 0x031d0a2c, 0x01dbe4e0, 0x0039fb7a}}, Y: Field{[10]uint32{0x033fc066, 0x01695b34, 0x021d9e63, 0x016f0b6e, 0x02e23692, 0x039fd434, 0x00d32e65, 0x0173eb20, 0x037a9fbc, 0x0024eac9}}}, + {X: Field{[10]uint32{0x03df93f3, 0x02545668, 0x01cc8aa3, 0x00a3122c, 0x03a47c16, 0x0214fe59, 0x00c3da9d, 0x01af311c, 0x0363f1bd, 0x001d1c05}}, Y: Field{[10]uint32{0x018ac8ee, 0x01bb5557, 0x029d8a4b, 0x01eca3b5, 0x02bd2223, 0x001551ee, 0x0393dd5f, 0x0043ccdc, 0x011c7c55, 0x002acb00}}}, + {X: Field{[10]uint32{0x039081b8, 0x02403579, 0x0257689c, 0x00717195, 0x020a6554, 0x00de138c, 0x01ffb8d8, 0x03dc7f9b, 0x039755ba, 0x0002349f}}, Y: Field{[10]uint32{0x02c250ad, 0x02184946, 0x01386e55, 0x0032dfcc, 0x03f308f9, 0x0354889f, 0x021f837b, 0x0258052b, 0x0268f3c8, 0x0029c5db}}}, + {X: Field{[10]uint32{0x00cc7ea9, 0x01e633ab, 0x028c10f5, 0x00063a60, 0x0071b0db, 0x02b0976e, 0x000a0ff1, 0x02d4c7ab, 0x02fe9040, 0x0018f81a}}, Y: Field{[10]uint32{0x00910aa5, 0x003001fd, 0x0213e930, 0x0112ca9a, 0x010c9112, 0x00126bb5, 0x028fcf99, 0x03822dac, 0x0084a9db, 0x002aa846}}}, + {X: Field{[10]uint32{0x004ed50f, 0x0256251d, 0x004b5dde, 0x030a2082, 0x036bf8ba, 0x00f92c6a, 0x01617d02, 0x002acd0b, 0x01ae27d6, 0x00371fa8}}, Y: Field{[10]uint32{0x002f3dfa, 0x000a4705, 0x0140e48a, 0x029b8445, 0x03b63efb, 0x01d52968, 0x03e97fc0, 0x0317feef, 0x036e2b95, 0x0024f1f5}}}, + {X: Field{[10]uint32{0x02e842d7, 0x00ef46fd, 0x02253221, 0x00e6ee5d, 0x0136e402, 0x02d6baa6, 0x03dfb691, 0x03bd28f5, 0x036df69c, 0x003cebbb}}, Y: Field{[10]uint32{0x0208de5d, 0x0343d188, 0x001151fb, 0x023bd24f, 0x0272e562, 0x032c7a2b, 0x03bde031, 0x01c00be1, 0x01da339c, 0x0015f4df}}}, + {X: Field{[10]uint32{0x02bec3ce, 0x0286b29d, 0x01b67816, 0x03eca3da, 0x02ae87da, 0x00f5c9cb, 0x005d0812, 0x0193a837, 0x004c316e, 0x002096f6}}, Y: Field{[10]uint32{0x00a52251, 0x032846d0, 0x00f1dc28, 0x01925d96, 0x00849a25, 0x018be1fc, 0x03e3f69d, 0x01c2a1a8, 0x03fdba83, 0x001878e9}}}, + {X: Field{[10]uint32{0x0056a75d, 0x03bae4ce, 0x03ba7f5a, 0x02e543b0, 0x010edb63, 0x03a509a8, 0x02988cd8, 0x014dc274, 0x00d74dec, 0x000c428b}}, Y: Field{[10]uint32{0x03122c97, 0x00ee07c5, 0x00228ffa, 0x03b8f863, 0x03e3ff1e, 0x02bb0943, 0x02b4ab3a, 0x0395fdfc, 0x02aedfa5, 0x00175b61}}}, + {X: Field{[10]uint32{0x03425217, 0x0160b006, 0x024d85af, 0x02e25dfb, 0x0369f04d, 0x026edb0f, 0x02355aef, 0x004b43e0, 0x007562a5, 0x000d1c75}}, Y: Field{[10]uint32{0x039cba31, 0x00e67af6, 0x00358aed, 0x02a51410, 0x01ccd444, 0x000ded09, 0x006d68c5, 0x02da7afe, 0x02702fe0, 0x0009cb77}}}, + {X: Field{[10]uint32{0x00257a2f, 0x01a01f93, 0x0138d808, 0x03ac3a8d, 0x00aaeee4, 0x020a6bb2, 0x022b3df6, 0x02bc9082, 0x0163bfaf, 0x002fdb49}}, Y: Field{[10]uint32{0x000b496d, 0x003b8ac1, 0x03ff1a92, 0x03113079, 0x003a2738, 0x0155d1ae, 0x03847ef7, 0x0125ad93, 0x02007e7b, 0x003a01de}}}, + {X: Field{[10]uint32{0x039cddc4, 0x03b5094a, 0x023fbbdb, 0x0194c9c8, 0x02d6f4d4, 0x03361db9, 0x03ce42a3, 0x03dc614b, 0x03c4a883, 0x003accf3}}, Y: Field{[10]uint32{0x02e5453f, 0x02b69287, 0x028d2a7d, 0x00df8977, 0x03eaab91, 0x01f7a1be, 0x00f03ad2, 0x022f6641, 0x00f2ef60, 0x0026f500}}}, + {X: Field{[10]uint32{0x00c2279f, 0x002475bb, 0x0108f082, 0x00f68363, 0x016b123d, 0x037a5591, 0x0383edf7, 0x03cc67ec, 0x00d03e5d, 0x0004c5f8}}, Y: Field{[10]uint32{0x03675afd, 0x0348a48c, 0x03b252a9, 0x025fab2e, 0x01dcae42, 0x001a951c, 0x0122b607, 0x02755ac3, 0x024d5c6f, 0x000efd90}}}, + {X: Field{[10]uint32{0x009aeb56, 0x02f38d0c, 0x03456c99, 0x039099ee, 0x007e00f8, 0x01501bcc, 0x022cf5dc, 0x010fafac, 0x032e99dc, 0x00206c27}}, Y: Field{[10]uint32{0x03361932, 0x02006028, 0x03d7c495, 0x01bfafc5, 0x011dbc5f, 0x00b8cc72, 0x035b1df9, 0x03bab10b, 0x02a4b300, 0x00275215}}}, + {X: Field{[10]uint32{0x015a62f2, 0x02199121, 0x01f7e98b, 0x00c8348f, 0x03ed436d, 0x03d3a8cd, 0x02626bae, 0x03fc65c8, 0x01670a32, 0x00037ba9}}, Y: Field{[10]uint32{0x01032414, 0x019b50e7, 0x005a6dfe, 0x03bda79e, 0x014a8310, 0x00305e4b, 0x0157ab34, 0x005ff821, 0x0297c61a, 0x00172449}}}, + {X: Field{[10]uint32{0x003444e5, 0x03713a39, 0x02755ef3, 0x02c73ba1, 0x0296ae44, 0x01ea46e7, 0x00e02ffa, 0x0345cf9a, 0x00835746, 0x003392b4}}, Y: Field{[10]uint32{0x0303aa7d, 0x001bd89f, 0x02a20d34, 0x006bfc70, 0x00df7cc8, 0x01517fa1, 0x013e2891, 0x023532d5, 0x03890523, 0x002fa1b2}}}, + {X: Field{[10]uint32{0x030b077e, 0x0339ffd4, 0x004f6fbb, 0x0131f606, 0x032e3638, 0x02281c57, 0x0119a324, 0x006bdb93, 0x023d407f, 0x0026a64f}}, Y: Field{[10]uint32{0x001a7a7e, 0x03baf04c, 0x034e2481, 0x0077150f, 0x023f8700, 0x01b65bfe, 0x027bd6fe, 0x019fba66, 0x012d80a2, 0x00392869}}}, + {X: Field{[10]uint32{0x039bd0d8, 0x00d844be, 0x03ccc06b, 0x03bd16ab, 0x039247c7, 0x0099ea98, 0x017ae6a1, 0x0017205c, 0x032d7c7f, 0x0007c437}}, Y: Field{[10]uint32{0x00760410, 0x01e0ec16, 0x029affdc, 0x010c9f30, 0x03e45ad6, 0x0259fa6b, 0x0283b0ec, 0x036de4c9, 0x025b71e2, 0x0019c2c9}}}, + {X: Field{[10]uint32{0x02621b53, 0x0355c461, 0x00a5a0ba, 0x03fe7645, 0x02d57d1d, 0x0329dd77, 0x0317633d, 0x008239f6, 0x025729c9, 0x001c33ac}}, Y: Field{[10]uint32{0x01df0c62, 0x0307b0d2, 0x0164ace7, 0x00941fa7, 0x0200ee98, 0x01b475d6, 0x0211c0ec, 0x01157f37, 0x0291b3f3, 0x001b805b}}}, + {X: Field{[10]uint32{0x00694e3e, 0x024fdf9d, 0x032fd466, 0x0312b3a7, 0x00043fb6, 0x02841818, 0x03b79210, 0x020bec37, 0x01e64dc8, 0x002e91b9}}, Y: Field{[10]uint32{0x01789acc, 0x010b221f, 0x009cb0f3, 0x02cf7a81, 0x025868d0, 0x0276310d, 0x0208e060, 0x0207fe28, 0x02b90793, 0x003abad3}}}, + {X: Field{[10]uint32{0x03c30d81, 0x0034e200, 0x037a9e32, 0x01538123, 0x02a631d1, 0x00f5d5e7, 0x0179beaf, 0x02b48390, 0x02dfd233, 0x002ee8ee}}, Y: Field{[10]uint32{0x021b961d, 0x03e400d7, 0x011e8ed3, 0x039a3229, 0x0202bdfc, 0x01d95a4f, 0x03a0af4e, 0x01131cc5, 0x030d69dd, 0x003ca9f1}}}, + {X: Field{[10]uint32{0x02d3f8a5, 0x01d4298d, 0x01283d93, 0x007ce396, 0x02057d49, 0x010782bc, 0x0258f1bf, 0x02e9a05f, 0x0369d300, 0x001b7da9}}, Y: Field{[10]uint32{0x033a4a6f, 0x0268db69, 0x02819dad, 0x024a67c4, 0x01ebf0f4, 0x0337ed36, 0x02d1f31c, 0x031dcbb3, 0x03b3aa51, 0x0018e820}}}, + {X: Field{[10]uint32{0x03174f2c, 0x02970529, 0x022361ad, 0x014c74bf, 0x034fab19, 0x024e945c, 0x00c7ea87, 0x026a60a5, 0x031a4b8c, 0x002bff44}}, Y: Field{[10]uint32{0x0011be6d, 0x00a59c4d, 0x01708734, 0x0072cc81, 0x03342689, 0x022a5e23, 0x02ed3225, 0x00da60ff, 0x00d9ec4a, 0x00130f79}}}, + {X: Field{[10]uint32{0x030abc7e, 0x028914ce, 0x016ee2f0, 0x031af086, 0x01d42cca, 0x031f1c23, 0x01ba5464, 0x02c62867, 0x00499e54, 0x000b68c4}}, Y: Field{[10]uint32{0x032db974, 0x001527c8, 0x03e7c0bb, 0x028fded1, 0x02426981, 0x00713414, 0x0109d445, 0x027e2d5b, 0x009120ad, 0x003cd52b}}}, + {X: Field{[10]uint32{0x02e57b61, 0x01f433e4, 0x03f2b2dc, 0x0007bb24, 0x0323cdd2, 0x036d30c7, 0x01381ace, 0x03e0aba3, 0x0053cbe3, 0x000e20bb}}, Y: Field{[10]uint32{0x037e6e3a, 0x020328bb, 0x03c786cd, 0x014cbec2, 0x0271a43d, 0x009d0191, 0x02b0046b, 0x02ff3124, 0x015de5a7, 0x00074d0c}}}, + {X: Field{[10]uint32{0x0387f9f1, 0x026ed21c, 0x00b28d55, 0x01d4a997, 0x03468259, 0x03a7ad78, 0x03c8e4e8, 0x02ac98e6, 0x02356a08, 0x003f2ae1}}, Y: Field{[10]uint32{0x00fceb94, 0x02c81532, 0x03f540d7, 0x023413bd, 0x02bef2b3, 0x034d5c2b, 0x0166753a, 0x001f395d, 0x00c0d08f, 0x002bd020}}}, + {X: Field{[10]uint32{0x0136bb58, 0x02275d67, 0x00ebe5dd, 0x00468552, 0x02847bf0, 0x01d5032a, 0x01dcd5a5, 0x01f84a8a, 0x00bb8a89, 0x003f4d2e}}, Y: Field{[10]uint32{0x0110b2f3, 0x00d465de, 0x0255b762, 0x00ef4356, 0x00d19b60, 0x008c41b9, 0x0127eaa7, 0x03e5cd5e, 0x02ac6a56, 0x0014699a}}}, + {X: Field{[10]uint32{0x03d4b469, 0x03663961, 0x002fa808, 0x01826776, 0x031d3b46, 0x01f1f605, 0x007a1678, 0x016fc1db, 0x0120c0d8, 0x0007a26f}}, Y: Field{[10]uint32{0x00fe882a, 0x03218a4f, 0x01353eaf, 0x0243ef13, 0x03dcf115, 0x01d3cc48, 0x02dae475, 0x021d80f7, 0x01d0e576, 0x0013d4ea}}}, + {X: Field{[10]uint32{0x03aa05ed, 0x00ea55de, 0x0048f5fb, 0x02795231, 0x01ddca45, 0x03beeaea, 0x017d93ea, 0x026b3b23, 0x03ba6690, 0x002287a9}}, Y: Field{[10]uint32{0x037be091, 0x030133e2, 0x00f99e09, 0x033e2ba5, 0x01ea1f1f, 0x0140600c, 0x037655b2, 0x00de90e7, 0x01e9064f, 0x00356016}}}, + {X: Field{[10]uint32{0x011331a1, 0x03ddb587, 0x032cbd7f, 0x00302d55, 0x00e4451f, 0x03ca586c, 0x0086549a, 0x02649a5a, 0x000d80d5, 0x003830de}}, Y: Field{[10]uint32{0x0145491d, 0x013da392, 0x02551114, 0x02baefb6, 0x03d827dd, 0x008c39ec, 0x03e6f1e5, 0x00ec7f0b, 0x02e6a13c, 0x00267674}}}, + {X: Field{[10]uint32{0x03996035, 0x032303a0, 0x0260ef7c, 0x0373fc83, 0x008e7e1b, 0x036ab786, 0x03ed36c5, 0x02b0485b, 0x00e6ed23, 0x002590d5}}, Y: Field{[10]uint32{0x0028998a, 0x02f4c98d, 0x03529aa8, 0x0234f18c, 0x027e6a40, 0x039bc188, 0x02531984, 0x031ba1c8, 0x009a8563, 0x003dd228}}}, + {X: Field{[10]uint32{0x02fe3f9b, 0x036f0f06, 0x014a1ab1, 0x00556150, 0x038bd094, 0x01a61871, 0x02eab869, 0x03218bf1, 0x03295125, 0x00260279}}, Y: Field{[10]uint32{0x007b9fd7, 0x01afd8e6, 0x0005efd4, 0x02250cbf, 0x00ab0fc0, 0x03f21296, 0x03909f86, 0x0155a20c, 0x0228bbf5, 0x003614d8}}}, + {X: Field{[10]uint32{0x0301ed17, 0x03b31303, 0x03b34abb, 0x01cf6852, 0x011d8d71, 0x00097f1f, 0x0183bf94, 0x013108a3, 0x0102305e, 0x000657d3}}, Y: Field{[10]uint32{0x009d637f, 0x02e1d99f, 0x0221a726, 0x0174ea23, 0x03ce1384, 0x00f2d119, 0x00152e02, 0x02e7341a, 0x00b497ae, 0x00255f6e}}}, + {X: Field{[10]uint32{0x014e0b37, 0x011286a1, 0x036c0f2c, 0x039a06e0, 0x02b0203f, 0x0009243a, 0x023f726d, 0x01f8d3be, 0x02ba3eb1, 0x00158baa}}, Y: Field{[10]uint32{0x0152b1e8, 0x015a9be1, 0x02da59db, 0x02935ecc, 0x0397093b, 0x003bd094, 0x03a35a77, 0x012010b4, 0x00ed9e66, 0x002d3996}}}, + {X: Field{[10]uint32{0x01ec8282, 0x027ca383, 0x01a288d7, 0x00b0292c, 0x03de3a60, 0x00c0bcd3, 0x00579693, 0x02405203, 0x01eb1efa, 0x002128b1}}, Y: Field{[10]uint32{0x02207cf1, 0x018acd91, 0x02023bdf, 0x00fd7c36, 0x00c70331, 0x0372b110, 0x03261dba, 0x03bb6161, 0x01c788cf, 0x001c0354}}}, + {X: Field{[10]uint32{0x0272f913, 0x00025ccd, 0x007fb8ba, 0x02b5df53, 0x00b93e2b, 0x031b52e1, 0x00e73406, 0x0245a2c5, 0x03cf0dbd, 0x0020f44b}}, Y: Field{[10]uint32{0x03279a7b, 0x02d44c79, 0x018ee523, 0x03f61848, 0x013c0dd6, 0x020b3a73, 0x03c78b36, 0x00cb3eeb, 0x0226bf25, 0x0039215b}}}, + {X: Field{[10]uint32{0x015451cf, 0x0001a3b7, 0x03701dfb, 0x008a7b52, 0x00ce64d5, 0x03d190fe, 0x03e73bf9, 0x00c8383e, 0x02f2bbd9, 0x00266229}}, Y: Field{[10]uint32{0x02882d5b, 0x02877462, 0x01910ed5, 0x0070aafa, 0x000d2f43, 0x024be269, 0x0244e4d8, 0x00994342, 0x02fcbd3b, 0x002eecd4}}}, + {X: Field{[10]uint32{0x03ff0724, 0x0202842b, 0x00b5160f, 0x0130aa9c, 0x0183017d, 0x028845ac, 0x0321d1e2, 0x00571ccd, 0x003dcfa6, 0x000fa486}}, Y: Field{[10]uint32{0x002dc945, 0x0202ce45, 0x03d7f226, 0x0029d395, 0x0276a2f3, 0x029cfcf4, 0x01fe5453, 0x02f98bc3, 0x0251f4bc, 0x0031e220}}}, + {X: Field{[10]uint32{0x0239492f, 0x018f5b20, 0x0044de77, 0x02617a96, 0x01e5f85b, 0x02cd89d7, 0x03130faf, 0x03f8e932, 0x0300fa1e, 0x003645d4}}, Y: Field{[10]uint32{0x03678b4b, 0x0199c0a6, 0x03521c55, 0x036217ba, 0x00fbad38, 0x00596aff, 0x0236220d, 0x00a83366, 0x0065e959, 0x001644e3}}}, + {X: Field{[10]uint32{0x02d933dc, 0x01044a4d, 0x01068b47, 0x02e1ea57, 0x03ed74c5, 0x01d9b99d, 0x017f7b47, 0x02fb9974, 0x025f7c12, 0x001bfd60}}, Y: Field{[10]uint32{0x038c0edf, 0x0200920d, 0x0038131f, 0x02a10334, 0x002ea9ac, 0x034ae360, 0x004be0a4, 0x025d2c8c, 0x01de0cb7, 0x001986ba}}}, + {X: Field{[10]uint32{0x00b1c31d, 0x03ac4594, 0x035ab15c, 0x01aeeba1, 0x03956036, 0x030093de, 0x027d580a, 0x004190c1, 0x02b1a876, 0x003b5b2f}}, Y: Field{[10]uint32{0x0217dede, 0x01f59aa1, 0x03f4519a, 0x01dbc675, 0x011269c4, 0x000ba040, 0x024d60f7, 0x02270595, 0x007ed1e8, 0x0024501a}}}, + {X: Field{[10]uint32{0x03d69164, 0x02f812a2, 0x03ca443a, 0x01b8e190, 0x000853bf, 0x02c4c88c, 0x016b56ee, 0x016a8c42, 0x00eb32d7, 0x0017e333}}, Y: Field{[10]uint32{0x0195da3a, 0x0396df9e, 0x02d456bd, 0x03c08734, 0x024f6576, 0x013d60d2, 0x02ac0fac, 0x0077352d, 0x023dd0c8, 0x000d7dca}}}, + {X: Field{[10]uint32{0x002d0b7b, 0x029b88e6, 0x02f7c479, 0x018bc056, 0x0186580d, 0x03b599d4, 0x02896c67, 0x00e5dd48, 0x00859bb2, 0x00207808}}, Y: Field{[10]uint32{0x03fbb669, 0x036f1933, 0x019601eb, 0x00e38abe, 0x02fce84a, 0x017558ac, 0x02ddc088, 0x03c9bed0, 0x029e4159, 0x0021e47e}}}, + {X: Field{[10]uint32{0x01d8f721, 0x0109c4a5, 0x005f141d, 0x03a1eb2a, 0x003eb435, 0x018eeb72, 0x03aba7ad, 0x01709a6d, 0x0316dd1e, 0x0037889a}}, Y: Field{[10]uint32{0x02c8423a, 0x01591c06, 0x0120d841, 0x01a90d37, 0x03342841, 0x038cf644, 0x007dc03d, 0x039cb0fe, 0x0399fa2c, 0x0018b878}}}, + {X: Field{[10]uint32{0x03d140f3, 0x0282f765, 0x012b1d13, 0x02549f2f, 0x00fa7629, 0x03dffc59, 0x0058be59, 0x00ca57f4, 0x03423fcd, 0x0018291b}}, Y: Field{[10]uint32{0x037f1219, 0x034dc3b7, 0x02c8e0f4, 0x015332ff, 0x01912cb8, 0x0280f2ad, 0x02bc31e1, 0x02785f91, 0x02de7b78, 0x00255c74}}}, + {X: Field{[10]uint32{0x032249c0, 0x0227f2f0, 0x027f5ce0, 0x0164fd0a, 0x0080d7e7, 0x028318d9, 0x013a77ab, 0x02f647ef, 0x005ce1b4, 0x001bfbd1}}, Y: Field{[10]uint32{0x00fa347d, 0x00b17a7d, 0x01a919a9, 0x0361f532, 0x03f82e73, 0x01605e5b, 0x020cae2e, 0x036e0e6b, 0x00fbaf46, 0x000457ef}}}, + {X: Field{[10]uint32{0x0293522f, 0x01713f90, 0x02a30914, 0x01705120, 0x03a9892b, 0x03b7af95, 0x025f7c26, 0x03e54e8f, 0x011ca8d2, 0x001b4dfd}}, Y: Field{[10]uint32{0x015309af, 0x019fbba7, 0x03dda0a9, 0x016ea212, 0x00cbefae, 0x00ee4382, 0x026897cd, 0x02b52c37, 0x01f36718, 0x001e3944}}}, + {X: Field{[10]uint32{0x03d46098, 0x02c0d440, 0x02ceaa76, 0x0157f9d2, 0x02738aa1, 0x0376fa65, 0x01cb035e, 0x01c07d72, 0x00275bd0, 0x000302b2}}, Y: Field{[10]uint32{0x00e3cd97, 0x020c807e, 0x026b7c3e, 0x00c5a996, 0x0031d762, 0x003389a9, 0x01684906, 0x029c21aa, 0x022a188f, 0x0039fcca}}}, + {X: Field{[10]uint32{0x00cde108, 0x00481814, 0x02b935d0, 0x02352c95, 0x01822a64, 0x017ebd29, 0x00507df8, 0x01408c7f, 0x03a86f89, 0x00240036}}, Y: Field{[10]uint32{0x014ef3fd, 0x0360f2d9, 0x00ff1779, 0x0008bd63, 0x00323319, 0x03d32c0f, 0x018383c2, 0x03a7a2ef, 0x003694b2, 0x0026deba}}}, + {X: Field{[10]uint32{0x029098a1, 0x02ba35a5, 0x01d9a28a, 0x029d18f8, 0x01ad58de, 0x01b0a8b8, 0x02092532, 0x02f23cd9, 0x03f4b490, 0x003c4426}}, Y: Field{[10]uint32{0x012f24c5, 0x00014257, 0x030224a8, 0x030b0c96, 0x006e3382, 0x032305fb, 0x02305141, 0x00b04200, 0x02279fd7, 0x0021d0c6}}}, + {X: Field{[10]uint32{0x028c0003, 0x0372155b, 0x018b00d1, 0x02353db8, 0x03929adc, 0x01b587e0, 0x00aac8b3, 0x031bc231, 0x01e54e9c, 0x00137a1c}}, Y: Field{[10]uint32{0x00d3bba6, 0x021fc1dc, 0x029c7f01, 0x01c3a68f, 0x00805f4b, 0x027785af, 0x01d7fce1, 0x03a29b1d, 0x03cfca98, 0x00009747}}}, + {X: Field{[10]uint32{0x02766ece, 0x0004f618, 0x01c80b66, 0x019ff633, 0x008f47b4, 0x01384004, 0x02e89ff9, 0x00aefce9, 0x02759297, 0x00288f2d}}, Y: Field{[10]uint32{0x03cf548c, 0x016bae51, 0x01dc7cae, 0x0337f5fa, 0x03cbca18, 0x01f48eab, 0x02811267, 0x0308f685, 0x0384ed05, 0x002371c2}}}, + {X: Field{[10]uint32{0x004244e5, 0x00385256, 0x0032bbb4, 0x00e296df, 0x0179d3c9, 0x039c0f31, 0x03a9dd3b, 0x023e2e46, 0x00cce96d, 0x0000a574}}, Y: Field{[10]uint32{0x0303c926, 0x00fdfb8a, 0x02c95265, 0x02304ace, 0x02745e07, 0x014e2b97, 0x030fe376, 0x0352fdab, 0x0206a16b, 0x0029b516}}}, + {X: Field{[10]uint32{0x02babbce, 0x0009517b, 0x008af9e1, 0x0337bf49, 0x016cb40b, 0x03ef45da, 0x00b13d51, 0x01da9b50, 0x03919d53, 0x001f1a0e}}, Y: Field{[10]uint32{0x01fd3f73, 0x02c6b6ab, 0x02e39332, 0x0169f08e, 0x02197d4e, 0x0367c558, 0x03ed30b8, 0x0215bd6d, 0x01d03608, 0x000f6832}}}, + {X: Field{[10]uint32{0x000c3189, 0x039fbe07, 0x001ecdf5, 0x027b2a7d, 0x038505f3, 0x0388bb08, 0x020e21ff, 0x00926a57, 0x012ed27e, 0x000c3dd4}}, Y: Field{[10]uint32{0x00875169, 0x010790b9, 0x00164fad, 0x01fd5ba2, 0x039e4e7f, 0x02d1cc65, 0x01286514, 0x00e8e856, 0x005e25ea, 0x000bd7f6}}}, + {X: Field{[10]uint32{0x03514961, 0x03d69d8b, 0x00835431, 0x00bed244, 0x031c7f84, 0x02358c52, 0x00a41c77, 0x013c9cc9, 0x038c9658, 0x0024ddef}}, Y: Field{[10]uint32{0x01f3df42, 0x03f5b4da, 0x00ad4335, 0x00b4ea27, 0x003cfa89, 0x03b60c34, 0x017fe92a, 0x036cab9f, 0x0055e2ed, 0x00356673}}}, + {X: Field{[10]uint32{0x0131e9be, 0x0307555b, 0x00ca240a, 0x01e1affd, 0x0328a66e, 0x03e0f153, 0x03530b85, 0x001256e8, 0x03e867f2, 0x000d627f}}, Y: Field{[10]uint32{0x01224c89, 0x02a49d1b, 0x0385b581, 0x019e3f74, 0x00d75b3a, 0x03c4cf71, 0x01c22a89, 0x02278482, 0x02aa9830, 0x0026208b}}}, + {X: Field{[10]uint32{0x023f8935, 0x036e2e3a, 0x03f85999, 0x01e84754, 0x012c79e7, 0x03f31905, 0x00e0f841, 0x03713396, 0x01f4b2da, 0x000e706c}}, Y: Field{[10]uint32{0x00256721, 0x026aa135, 0x0131e628, 0x010985b3, 0x0350bb8a, 0x03fe76a0, 0x036991de, 0x00ce2590, 0x031ad9df, 0x0039e149}}}, + {X: Field{[10]uint32{0x0325be33, 0x03bb7b62, 0x0372cad5, 0x0368914e, 0x00b103f9, 0x02d84639, 0x00799188, 0x00b0b666, 0x0059d3d6, 0x00373c45}}, Y: Field{[10]uint32{0x03a1c074, 0x00f31cbc, 0x017b330a, 0x0323eb9f, 0x02a190f6, 0x031f7771, 0x01a92fe7, 0x01c398d1, 0x001aaf32, 0x003700e3}}}, + {X: Field{[10]uint32{0x02623d1d, 0x018d6cc1, 0x038f0eed, 0x0179bac8, 0x00a32ff0, 0x02f60143, 0x00d82e55, 0x02c304fd, 0x01dd1de9, 0x0018524a}}, Y: Field{[10]uint32{0x00d8a24b, 0x02a9d7b1, 0x02a6ae0e, 0x010c6b2f, 0x02afafdc, 0x020603fd, 0x0118e3be, 0x03c5ee86, 0x0117c9e7, 0x0002bfa1}}}, + {X: Field{[10]uint32{0x00ce743c, 0x006c2ea7, 0x00296a7c, 0x027ed66a, 0x03ef8160, 0x03b22b6f, 0x005da355, 0x036a5029, 0x0228cff6, 0x003d29c8}}, Y: Field{[10]uint32{0x019cdacb, 0x02a069b8, 0x01e50a25, 0x0094f328, 0x032fbcd0, 0x015a71af, 0x01e90f10, 0x016ab827, 0x00fbde09, 0x00151480}}}, + {X: Field{[10]uint32{0x022c93f7, 0x03f94903, 0x01a650b5, 0x0133f23f, 0x0357aa16, 0x00dc6e50, 0x0262fbf5, 0x01565d1b, 0x02736caa, 0x0018f310}}, Y: Field{[10]uint32{0x02ce5665, 0x011f1142, 0x004fe09b, 0x0139143c, 0x01e7d822, 0x012c20a2, 0x02d2bd30, 0x0104eb5a, 0x035bc5a6, 0x0007e93b}}}, + {X: Field{[10]uint32{0x02ab8889, 0x012f8ae3, 0x002016b8, 0x022659e3, 0x00aa7f9d, 0x00d172c1, 0x02cf761f, 0x00e29834, 0x02281184, 0x002b05d4}}, Y: Field{[10]uint32{0x024af2b1, 0x016a60aa, 0x03396343, 0x02266684, 0x00832f29, 0x03ddd97c, 0x02b01b68, 0x00f6b09e, 0x00ae2964, 0x00375f7e}}}, + {X: Field{[10]uint32{0x024a0e48, 0x01e205a7, 0x02c03dd6, 0x008bcde1, 0x03823e86, 0x00bbead6, 0x00a5a2f7, 0x0106d831, 0x02b9637c, 0x00276ed7}}, Y: Field{[10]uint32{0x03d924d7, 0x00e353ad, 0x025cd1ba, 0x001e2718, 0x0205aa01, 0x021466a8, 0x01cde34b, 0x03587d0b, 0x02ba13f4, 0x0001dcb5}}}, + {X: Field{[10]uint32{0x02f7dddc, 0x015cc70f, 0x02fb173d, 0x0266e30c, 0x004e88f5, 0x01683622, 0x015b5866, 0x0304d440, 0x01ddd2fc, 0x001c5c25}}, Y: Field{[10]uint32{0x024fa5af, 0x03f7ed1f, 0x0020e581, 0x01b74638, 0x03472732, 0x031ed902, 0x023da3f3, 0x01c2f3ec, 0x010952b4, 0x0007783c}}}, + {X: Field{[10]uint32{0x025872ca, 0x026a5909, 0x03b2a331, 0x01a0b336, 0x01a32c4a, 0x00535ba7, 0x01e3964c, 0x02c7a900, 0x00d3f829, 0x0016b08c}}, Y: Field{[10]uint32{0x01c026ea, 0x0373ebb2, 0x02e8151b, 0x0360c85e, 0x03423484, 0x00c67290, 0x0206a16e, 0x03d9af17, 0x03a627db, 0x003eb0f0}}}, + {X: Field{[10]uint32{0x038752ef, 0x01f3dd87, 0x00100857, 0x02854446, 0x01382496, 0x00b9d387, 0x0057537b, 0x03d05785, 0x02af0a39, 0x00349fb2}}, Y: Field{[10]uint32{0x01c6c037, 0x037e92dc, 0x03ae35dc, 0x0213eb38, 0x00d5938e, 0x010486da, 0x03d8eb60, 0x02bcc438, 0x036746cb, 0x003f1202}}}, + {X: Field{[10]uint32{0x02ac6cda, 0x007882fc, 0x00d6477f, 0x0064e822, 0x01703af6, 0x03eb6a31, 0x0387d539, 0x0266df13, 0x03ddf92d, 0x003821dd}}, Y: Field{[10]uint32{0x01ccfee9, 0x0169404a, 0x00070db0, 0x039fb6f7, 0x001202c4, 0x03384357, 0x016ecc53, 0x0062c93a, 0x008ac6cb, 0x0009693e}}}, + {X: Field{[10]uint32{0x019ba6ed, 0x0284601a, 0x00776753, 0x039a2015, 0x0363bbe3, 0x0225aae5, 0x02a6a138, 0x01603ef6, 0x02b7afe9, 0x00116b9e}}, Y: Field{[10]uint32{0x0156f322, 0x01b9aa28, 0x00ff16c4, 0x01f83fbf, 0x02502f79, 0x0365bd0f, 0x00d440e3, 0x0381b934, 0x03ed127f, 0x003706bd}}}, + {X: Field{[10]uint32{0x00d00590, 0x0387793d, 0x00045327, 0x00516007, 0x026ae265, 0x01a2d30b, 0x00f509a7, 0x00114ecf, 0x033b71c5, 0x003f4a32}}, Y: Field{[10]uint32{0x00e5a7b6, 0x01994617, 0x02159c26, 0x00ac95fd, 0x013298a2, 0x005d3388, 0x01081f08, 0x033d12a9, 0x03954867, 0x002c1a13}}}, + {X: Field{[10]uint32{0x001d850d, 0x02cc9807, 0x01d7a158, 0x0181d9c7, 0x03956816, 0x00ee7ee9, 0x015e4e22, 0x0127c286, 0x000dac6f, 0x003c89bc}}, Y: Field{[10]uint32{0x0109ef86, 0x01c6d968, 0x0150f10f, 0x0228da45, 0x01d823a0, 0x00661bfa, 0x0230e53a, 0x028e2ad1, 0x004f6925, 0x00341757}}}, + {X: Field{[10]uint32{0x020337a3, 0x0113a41d, 0x0340ff0e, 0x03b23271, 0x00a994e1, 0x02cc0e3e, 0x00e23a72, 0x0212021f, 0x0213a80d, 0x000f3185}}, Y: Field{[10]uint32{0x013c3956, 0x036ef6b3, 0x033f5a11, 0x00794a85, 0x0090377f, 0x0256ac04, 0x0221f09f, 0x00ebda50, 0x016a2409, 0x00211d3e}}}, + {X: Field{[10]uint32{0x0260e736, 0x036b3833, 0x02223e5c, 0x03572579, 0x02633e7e, 0x03d5f5a1, 0x03be2331, 0x025c4af4, 0x01898cd9, 0x001c87b3}}, Y: Field{[10]uint32{0x00ffd69f, 0x02b064a8, 0x028ad532, 0x0284bdd9, 0x0221dc34, 0x03b18cf1, 0x009450bf, 0x01f2b928, 0x00d86fc0, 0x000c74a5}}}, + {X: Field{[10]uint32{0x032eff38, 0x03f3fe8a, 0x03aa2db0, 0x00b03fea, 0x00d5b106, 0x03963ea3, 0x01862715, 0x0366c6c9, 0x02581144, 0x00372eb2}}, Y: Field{[10]uint32{0x01ec7d34, 0x00ec95c8, 0x00689e6d, 0x03986bce, 0x00708b53, 0x038b185d, 0x02fbdca5, 0x01b3fe43, 0x021d339f, 0x00273dd8}}}, + {X: Field{[10]uint32{0x01db8b92, 0x007ccdc5, 0x03878342, 0x02654a39, 0x02b9300b, 0x031e895b, 0x00919382, 0x03b0af39, 0x0293e649, 0x003b4c53}}, Y: Field{[10]uint32{0x00744a11, 0x01f772d8, 0x0318bc83, 0x01238f7e, 0x0153ea03, 0x007c5519, 0x0122355e, 0x03fbcb8a, 0x02af0229, 0x001c2a06}}}, + {X: Field{[10]uint32{0x01c036ee, 0x00dae30a, 0x01c09854, 0x02d8010a, 0x005f5c7e, 0x017d96ba, 0x02977689, 0x02f23466, 0x03cc7a59, 0x001af466}}, Y: Field{[10]uint32{0x00999090, 0x0109cd41, 0x0332c0bc, 0x039de2d5, 0x0131803c, 0x010d5171, 0x03ea28f8, 0x015a06f6, 0x01e3f4f6, 0x00144d1b}}}, + {X: Field{[10]uint32{0x003d9acf, 0x01f1ac75, 0x03e15577, 0x0101eb62, 0x03ebe9d6, 0x02f8222f, 0x00228bb5, 0x037ecd81, 0x02156ac8, 0x00267b47}}, Y: Field{[10]uint32{0x01d2c922, 0x024430c2, 0x03c61e19, 0x02683d11, 0x0169f57e, 0x01c90dab, 0x02a0ac04, 0x01332a03, 0x01a4478b, 0x001d6c56}}}, + {X: Field{[10]uint32{0x02452045, 0x03821dec, 0x0171cc7f, 0x030e30d8, 0x000f00c3, 0x000c0e5c, 0x02dd90fb, 0x0377c212, 0x038c793a, 0x000f859b}}, Y: Field{[10]uint32{0x015bbd59, 0x0086aa07, 0x038da019, 0x0209ee52, 0x019f07e3, 0x0269b31b, 0x0330f6fb, 0x00a997b0, 0x0263b0cd, 0x00245966}}}, + {X: Field{[10]uint32{0x036df936, 0x01567345, 0x03656cf8, 0x00c82107, 0x01a1b1a4, 0x01027427, 0x00d1b168, 0x017ce2fe, 0x02d9a3a9, 0x003f06ea}}, Y: Field{[10]uint32{0x008af43d, 0x0158fc68, 0x0263884a, 0x024486db, 0x02e0b4d7, 0x020ad6d3, 0x005f2489, 0x02e27541, 0x03bdb013, 0x000c7de9}}}, + {X: Field{[10]uint32{0x037ff340, 0x02a0673f, 0x0125a5a5, 0x010d3a72, 0x003bd318, 0x00ce1a21, 0x003c8795, 0x007b2b24, 0x013d4b37, 0x00202ceb}}, Y: Field{[10]uint32{0x012af178, 0x039336dc, 0x02bfdf20, 0x00a1cd1e, 0x010108ae, 0x0197eb1a, 0x03ed7d3b, 0x01b61319, 0x00bdaac9, 0x003ec72a}}}, + {X: Field{[10]uint32{0x00616af2, 0x0330b91a, 0x03422073, 0x012535c9, 0x0002a87d, 0x023bdeab, 0x02c6c364, 0x03dc9f5d, 0x01ab2901, 0x002eb419}}, Y: Field{[10]uint32{0x030a37ed, 0x00ca71d1, 0x01d92236, 0x00d04fc5, 0x02fa925a, 0x02ae8a5c, 0x01d69a2e, 0x03bab536, 0x010216b5, 0x002ba75e}}}, + {X: Field{[10]uint32{0x029b8fe7, 0x010d7e44, 0x03ca9bce, 0x023dfa06, 0x01a2fb75, 0x0321e079, 0x01beb99c, 0x00329a65, 0x02d90d70, 0x00347c11}}, Y: Field{[10]uint32{0x0111a4df, 0x00d16818, 0x01017fca, 0x0029195d, 0x033090fc, 0x0110cc50, 0x03167188, 0x0056bcd1, 0x025d7eb8, 0x0009d3b7}}}, + {X: Field{[10]uint32{0x03f0a22f, 0x02811e8c, 0x03ea1751, 0x01851ce9, 0x0299df17, 0x00a6a83d, 0x01ea798d, 0x02a02963, 0x0355e3dc, 0x0036d4d7}}, Y: Field{[10]uint32{0x0353ff6b, 0x014a2b56, 0x037cced3, 0x03591de8, 0x00e61b86, 0x039ea3c4, 0x013df837, 0x00ef2846, 0x015d931a, 0x0039f600}}}, + {X: Field{[10]uint32{0x00a42a80, 0x039a4703, 0x01d5082a, 0x03945933, 0x008635b7, 0x02693c61, 0x00b1a5db, 0x03c3ebe6, 0x0206a56e, 0x0036876e}}, Y: Field{[10]uint32{0x0210c9ff, 0x0238c4a8, 0x01508d92, 0x0196c85e, 0x008807e2, 0x0172d058, 0x00066210, 0x00c6f2ba, 0x003ca695, 0x0021aa0e}}}, + {X: Field{[10]uint32{0x01aa42e7, 0x03b0a282, 0x008aeff5, 0x01de6cd6, 0x033b176b, 0x01ed509d, 0x014f29ff, 0x0019b1f7, 0x02b4d980, 0x00099f09}}, Y: Field{[10]uint32{0x0027161d, 0x03c82d42, 0x0034142f, 0x0231fe8c, 0x01d58465, 0x0364f6aa, 0x02300531, 0x03ac9574, 0x003ff4e5, 0x000ce430}}}, + {X: Field{[10]uint32{0x01cbea0a, 0x0120fff0, 0x0027d4f3, 0x00a7fb97, 0x025561fd, 0x0021246a, 0x00c79152, 0x03e5541c, 0x03524e6f, 0x0020092b}}, Y: Field{[10]uint32{0x02dd86b0, 0x0075f2ec, 0x00a16dff, 0x01c5cd17, 0x03df7a8a, 0x00279dbf, 0x0078fc06, 0x01c9ac20, 0x00d0498f, 0x0032779e}}}, + {X: Field{[10]uint32{0x0208f661, 0x014d1158, 0x002d2779, 0x025501a2, 0x00dc3dc1, 0x01c73c00, 0x030d7dd3, 0x02d0801f, 0x0268c7be, 0x00047fda}}, Y: Field{[10]uint32{0x03b4092c, 0x0306f029, 0x03dbd658, 0x02ea5e9f, 0x03916b75, 0x007df8ee, 0x03cac25c, 0x0206d479, 0x00252547, 0x002d4f77}}}, + {X: Field{[10]uint32{0x02e3c929, 0x02309fcd, 0x011f6aa8, 0x025ac01d, 0x02b70d65, 0x016a660a, 0x0232d7a6, 0x02080ce6, 0x0083f9a6, 0x00158a84}}, Y: Field{[10]uint32{0x01e05b51, 0x0112b2ec, 0x03364557, 0x01854248, 0x0166ec20, 0x0042b5d0, 0x00e7d255, 0x02022e54, 0x007f0908, 0x0028e03b}}}, + {X: Field{[10]uint32{0x0341c413, 0x0020b8b4, 0x037af68d, 0x029533c1, 0x030e097f, 0x03bd915c, 0x02a75987, 0x0035a4ed, 0x00fd327c, 0x0013bf9c}}, Y: Field{[10]uint32{0x00ce3dc7, 0x02afbcb2, 0x0098a4a1, 0x0118233b, 0x00b110a3, 0x03b476c4, 0x028befc3, 0x02d8b766, 0x039b92e0, 0x0004351e}}}, + {X: Field{[10]uint32{0x03a51f20, 0x03027008, 0x0034ff9a, 0x0260b34c, 0x03354abd, 0x00780709, 0x028576c9, 0x00a2c2f7, 0x030cd7f1, 0x0013592f}}, Y: Field{[10]uint32{0x00a5e28f, 0x030cb97a, 0x00d6eb9d, 0x013cf532, 0x03da3c52, 0x0136f0b9, 0x03bf38e1, 0x037feb79, 0x001af57f, 0x0005679d}}}, + {X: Field{[10]uint32{0x00a187bf, 0x03cc2cc0, 0x0243bc48, 0x02b0dcab, 0x03466de2, 0x03bb3be8, 0x02f0064c, 0x01e35acf, 0x034aff32, 0x00269058}}, Y: Field{[10]uint32{0x02aeae2a, 0x01faa801, 0x03c3cad2, 0x00c3d014, 0x02f409e5, 0x01591262, 0x007a1936, 0x01df3e11, 0x020faebb, 0x0003bbfb}}}, + {X: Field{[10]uint32{0x0102418b, 0x0137b4a4, 0x014cf4fc, 0x03f39e09, 0x002c85cf, 0x039719dd, 0x02fec2d2, 0x03782023, 0x00fb9a6b, 0x00038601}}, Y: Field{[10]uint32{0x02fcdda7, 0x01aacd1f, 0x01e7bfa5, 0x030c60f3, 0x02447e93, 0x00e9996b, 0x03e81c9b, 0x0192e70b, 0x01eb9c16, 0x003a72ac}}}, + {X: Field{[10]uint32{0x00593212, 0x018bc6d9, 0x03b411eb, 0x03c097e7, 0x00717611, 0x03fd134b, 0x021705ad, 0x01ec2be0, 0x0344c024, 0x0002980d}}, Y: Field{[10]uint32{0x02603b61, 0x0066ee32, 0x01d9ce5c, 0x0056a5ae, 0x026dcdb0, 0x021c4ee6, 0x035c0a2f, 0x01d8e10c, 0x032b706a, 0x002083f4}}}, + {X: Field{[10]uint32{0x015f20b0, 0x01882812, 0x036cb66a, 0x02ceab89, 0x01a1108a, 0x03258193, 0x0172a2fe, 0x004a60d2, 0x01b6895b, 0x0029bc76}}, Y: Field{[10]uint32{0x01c8273c, 0x027550db, 0x0288029c, 0x03be0e81, 0x037f55d7, 0x0219e70f, 0x03f5ea81, 0x020e518f, 0x00d0df03, 0x0026a577}}}, + {X: Field{[10]uint32{0x01ac5c48, 0x02bc49b3, 0x0041893b, 0x03cef5d3, 0x02f09f30, 0x01b88850, 0x00f920ab, 0x00ad8f80, 0x00320782, 0x0012b145}}, Y: Field{[10]uint32{0x00f43885, 0x012f0c68, 0x02a6ad7e, 0x031dc83d, 0x027ff037, 0x025156ef, 0x03da161f, 0x01291917, 0x014877e9, 0x002afd74}}}, + {X: Field{[10]uint32{0x03fb7a9b, 0x02efdebd, 0x004752da, 0x00dccd81, 0x0248af6e, 0x02cce508, 0x02c588e1, 0x03ab9633, 0x015ba16e, 0x00168b3d}}, Y: Field{[10]uint32{0x029322e2, 0x00001039, 0x01c4fe0c, 0x007dc58f, 0x01a45f8c, 0x03795688, 0x005aeca5, 0x01cb353f, 0x022d32ff, 0x0023c9ef}}}, + {X: Field{[10]uint32{0x03011c99, 0x00acf636, 0x0388f023, 0x00f8c32c, 0x02a87605, 0x01bff13a, 0x0012b27f, 0x0307d810, 0x03e8ef48, 0x00385bc8}}, Y: Field{[10]uint32{0x00c56000, 0x030e43ee, 0x017990e8, 0x03a84d0a, 0x0247ffe3, 0x02f69853, 0x015bb977, 0x0297036a, 0x0152b0af, 0x000657ff}}}, + {X: Field{[10]uint32{0x0124fb84, 0x02f458e1, 0x0145ac1b, 0x00ebfe5a, 0x0228923a, 0x03761ba4, 0x01e4263c, 0x027dc543, 0x00d7ac10, 0x00194d9f}}, Y: Field{[10]uint32{0x0347d731, 0x020d2945, 0x006b68a7, 0x02541a02, 0x00a7687c, 0x03ad3fa3, 0x009b170b, 0x01f75934, 0x01bafbe6, 0x00033c2e}}}, + {X: Field{[10]uint32{0x03d6eac2, 0x03bcd99a, 0x00d54a5c, 0x02723a55, 0x0389da48, 0x01b75991, 0x004228bd, 0x00ee35e9, 0x000b3944, 0x00042a21}}, Y: Field{[10]uint32{0x0261eff2, 0x01f80d31, 0x00a60798, 0x01571384, 0x03d8cc40, 0x03dfeb44, 0x01163ace, 0x01637861, 0x036ee4aa, 0x001ffdbd}}}, + {X: Field{[10]uint32{0x0245d6a0, 0x02c4c9d4, 0x000e1528, 0x03aa46ba, 0x027b1db5, 0x0315dfc5, 0x039d0380, 0x020809ae, 0x00a6c01b, 0x000ffbfa}}, Y: Field{[10]uint32{0x03637b5e, 0x01630e8e, 0x02350ecd, 0x01e9f27f, 0x03a95975, 0x0275a3bf, 0x00a0b543, 0x00512915, 0x01a937e6, 0x002a5b7d}}}, + {X: Field{[10]uint32{0x00052b61, 0x02b68871, 0x00c626c3, 0x03575861, 0x0058595f, 0x01759534, 0x03fb908f, 0x018ba5af, 0x037c0e41, 0x003be4f5}}, Y: Field{[10]uint32{0x03cd0bf5, 0x03efd03c, 0x0066b953, 0x007db35d, 0x01e53526, 0x011745a7, 0x01a23a86, 0x025f1fd6, 0x0385c18d, 0x00100222}}}, + {X: Field{[10]uint32{0x00ca4872, 0x01ef60ac, 0x01d40d62, 0x0335466f, 0x009224a2, 0x025c6df1, 0x01edbd84, 0x0240f521, 0x035eb0fa, 0x003c5e27}}, Y: Field{[10]uint32{0x031a9da8, 0x000587e9, 0x028d0583, 0x0016b6aa, 0x019e36a9, 0x01ec7d28, 0x03570f47, 0x0115fa8b, 0x00b65456, 0x00132117}}}, + {X: Field{[10]uint32{0x009b3274, 0x03313533, 0x004bfff3, 0x02422a1c, 0x00641938, 0x0353907c, 0x000d15ba, 0x017b4083, 0x0388ebc7, 0x00342ec5}}, Y: Field{[10]uint32{0x022a7641, 0x02aeffc8, 0x022fd8f7, 0x0091137d, 0x0143ac55, 0x00199992, 0x02877963, 0x009fd239, 0x00a895a3, 0x000e8483}}}, + {X: Field{[10]uint32{0x00e8963a, 0x0337df37, 0x0005a3fa, 0x0186bae6, 0x022f05e4, 0x00844350, 0x02aab317, 0x01eb9935, 0x010cf780, 0x000592b0}}, Y: Field{[10]uint32{0x02549b69, 0x037166fa, 0x032093f9, 0x0098c07c, 0x009b6dca, 0x0127e63f, 0x01d6f858, 0x037642ec, 0x03d440f1, 0x002373d0}}}, + {X: Field{[10]uint32{0x001fbe5f, 0x01b1e0a5, 0x02e40987, 0x00a5ce68, 0x00cd3aca, 0x00a527c3, 0x017dcf89, 0x0038eae1, 0x0165a8e4, 0x003c48b6}}, Y: Field{[10]uint32{0x02447371, 0x03409a36, 0x02257f50, 0x01cb4863, 0x00715043, 0x02d9c2fb, 0x02192d0b, 0x02260de2, 0x039dd9e6, 0x00136652}}}, + {X: Field{[10]uint32{0x008870a8, 0x0050e939, 0x03829662, 0x008605b9, 0x01b975fc, 0x015e07c2, 0x02e2cdbf, 0x02a4a86b, 0x014775e5, 0x002b25c5}}, Y: Field{[10]uint32{0x03c9aa71, 0x010f1c50, 0x03edef89, 0x0373e2ef, 0x0253fff7, 0x01e3725e, 0x03679452, 0x005d0a59, 0x0203795b, 0x000927ed}}}, + {X: Field{[10]uint32{0x01330906, 0x0312174b, 0x03fbdd48, 0x01b8512c, 0x02fb0add, 0x03a721c3, 0x013da811, 0x03f73243, 0x011edfd5, 0x002567b2}}, Y: Field{[10]uint32{0x0257ebdc, 0x02428898, 0x024b9aed, 0x01d4a91c, 0x0229f489, 0x014d617f, 0x01b5ebc6, 0x031d86d8, 0x0128b707, 0x000797b0}}}, + {X: Field{[10]uint32{0x02982859, 0x02ea4f87, 0x028b7c59, 0x02348ed7, 0x003c6abd, 0x01b7827c, 0x03b2d157, 0x0208c915, 0x01d8ed7d, 0x001641e5}}, Y: Field{[10]uint32{0x00576708, 0x014a4b4d, 0x003c0683, 0x008ea760, 0x01a09cb1, 0x011ead0b, 0x0216490a, 0x02210583, 0x02861a3c, 0x0017b74a}}}, + {X: Field{[10]uint32{0x03e0ba9e, 0x005373a8, 0x02555897, 0x02d6fc6e, 0x0348fdb4, 0x032b4541, 0x02178535, 0x00916fb6, 0x03987439, 0x00314dca}}, Y: Field{[10]uint32{0x00bca987, 0x02266c58, 0x035a022e, 0x010e2d92, 0x00767afc, 0x01ada713, 0x01536a54, 0x036e300d, 0x03617159, 0x003e0b42}}}, + {X: Field{[10]uint32{0x035bd38a, 0x013e5b38, 0x01ee1653, 0x00a1f72f, 0x00101611, 0x00c3c9b1, 0x00d20166, 0x032f4fb2, 0x01fcae39, 0x003cf656}}, Y: Field{[10]uint32{0x009b3562, 0x00f3c5eb, 0x016ce160, 0x000fb42b, 0x03da586a, 0x03918051, 0x03e2f97f, 0x009e0cbf, 0x001f8760, 0x00387957}}}, + {X: Field{[10]uint32{0x037fad9e, 0x033b0b94, 0x02cf8dd5, 0x010fe2a4, 0x0103a280, 0x0226c193, 0x023d9604, 0x038de0af, 0x036ebe3c, 0x00248af1}}, Y: Field{[10]uint32{0x01122109, 0x0302657d, 0x02b54352, 0x016f440c, 0x00116fbf, 0x006a5486, 0x00b9ea75, 0x03bf688c, 0x03572508, 0x002cc667}}}, + {X: Field{[10]uint32{0x01f0360d, 0x00e1cd36, 0x00a1299a, 0x02236ebf, 0x022c461d, 0x001c2b32, 0x02b1df08, 0x00b255e6, 0x01407a6d, 0x001171f7}}, Y: Field{[10]uint32{0x03e85ac4, 0x01349799, 0x00e73264, 0x029a983a, 0x02d076eb, 0x03765bd2, 0x03c4e044, 0x01a7b5b0, 0x015b5f24, 0x000e85e1}}}, + {X: Field{[10]uint32{0x0159bacb, 0x038b49ae, 0x00d5b33e, 0x02787c24, 0x00f1af5c, 0x01104705, 0x0189a5b7, 0x02c028f7, 0x0198dfd4, 0x001908b6}}, Y: Field{[10]uint32{0x037a3bb7, 0x03df6240, 0x03a09cdb, 0x01f1c0ee, 0x03376f59, 0x01dbd6cf, 0x018cea22, 0x0062864f, 0x03344912, 0x00388d63}}}, + {X: Field{[10]uint32{0x00b0535c, 0x03320b31, 0x01a6f535, 0x033c14d9, 0x0295b1a3, 0x00afdb07, 0x00640f19, 0x01b45469, 0x02143319, 0x00238120}}, Y: Field{[10]uint32{0x017c34ce, 0x023bd43a, 0x00e65b63, 0x02562ea5, 0x00200121, 0x017d56a8, 0x0282ee53, 0x00b1567c, 0x033a1f65, 0x0035b4b5}}}, + {X: Field{[10]uint32{0x024a79bb, 0x001c27f9, 0x002c4a1c, 0x003c0575, 0x02b8a708, 0x0049184f, 0x025a9e17, 0x00bc3e28, 0x01a8b5eb, 0x00168acf}}, Y: Field{[10]uint32{0x0386e6b7, 0x01fc622f, 0x00cd4422, 0x0209ae09, 0x01a6435a, 0x03be7629, 0x0095f8e6, 0x02abf9b7, 0x011deb54, 0x00181f1e}}}, + {X: Field{[10]uint32{0x02cd7ccf, 0x034b573d, 0x0213e1a0, 0x0000f377, 0x01c5296e, 0x0082afd2, 0x00f3d912, 0x005299d4, 0x03a35cf6, 0x00050d61}}, Y: Field{[10]uint32{0x02a653d7, 0x00bcb7e1, 0x0201b662, 0x01f0ba0c, 0x0315f14c, 0x011b0d02, 0x021af490, 0x03162d26, 0x01fade6c, 0x00126f21}}}, + {X: Field{[10]uint32{0x00a93193, 0x006f8677, 0x031a3ac8, 0x01f3fc97, 0x01ba357b, 0x03276141, 0x032c4bc8, 0x031d330e, 0x00428737, 0x003c0203}}, Y: Field{[10]uint32{0x023951f1, 0x00970e52, 0x00f0b5cf, 0x0364b289, 0x001c6a5a, 0x01c09f47, 0x03cfe320, 0x019d29f5, 0x019f57bf, 0x002f7404}}}, + {X: Field{[10]uint32{0x01130034, 0x01235417, 0x009cef77, 0x02bab01d, 0x023e162d, 0x0175f109, 0x00b26b68, 0x03fbd0db, 0x0373e547, 0x0021deb8}}, Y: Field{[10]uint32{0x00dfcf5f, 0x03db7c35, 0x00a8e6f9, 0x0054cb97, 0x03e1275e, 0x03c9a328, 0x0156b798, 0x00d06bb6, 0x0095b750, 0x0007c2bd}}}, + {X: Field{[10]uint32{0x00e619d4, 0x03caae7a, 0x02ca0d1d, 0x00182dce, 0x03e55f07, 0x01a689cb, 0x016a0714, 0x03286232, 0x036f0635, 0x00290637}}, Y: Field{[10]uint32{0x02f754e3, 0x03ff3580, 0x00856525, 0x0061a52e, 0x002e7558, 0x0296d646, 0x0099a6da, 0x009383f9, 0x01bb5bbb, 0x000ac1b3}}}, + {X: Field{[10]uint32{0x02aedeab, 0x001d8de8, 0x029671d9, 0x00253ad4, 0x00114dc2, 0x0131ec2d, 0x02dce4f4, 0x02eb4897, 0x0174bb6f, 0x0013084f}}, Y: Field{[10]uint32{0x03970b51, 0x0037dce7, 0x01be0e48, 0x03ec81b1, 0x01402fb5, 0x022bea73, 0x012c7d54, 0x0170561d, 0x039fccc6, 0x001d06fb}}}, + {X: Field{[10]uint32{0x00deb13a, 0x02dc1588, 0x01bff0ec, 0x030eed33, 0x032cf93b, 0x02240046, 0x014073a4, 0x03946c6a, 0x02fd3f94, 0x0028de41}}, Y: Field{[10]uint32{0x00e6030a, 0x028b59cc, 0x02332f01, 0x0376252a, 0x008a8a16, 0x00cc52dc, 0x00d5e552, 0x026c7461, 0x00b1c14a, 0x001828ec}}}, + {X: Field{[10]uint32{0x01e72301, 0x013b1353, 0x0225c5e8, 0x02396e14, 0x02d6d652, 0x01aed194, 0x038ae3d2, 0x02bd4592, 0x02ed639e, 0x000b19df}}, Y: Field{[10]uint32{0x03ee832a, 0x006e7fc1, 0x0278eaca, 0x00c4ecb4, 0x005fe639, 0x02b01f09, 0x0389240c, 0x01f2e85f, 0x0006d3bb, 0x0037c393}}}, + {X: Field{[10]uint32{0x017e77b4, 0x0077d2df, 0x009395d6, 0x02c33eb2, 0x01684473, 0x02c07000, 0x035fc3c5, 0x01af940c, 0x0014eaf8, 0x002d547e}}, Y: Field{[10]uint32{0x0246664b, 0x026738c1, 0x00bb1bd3, 0x03984693, 0x038818b6, 0x012b879f, 0x033f923b, 0x0057e0c0, 0x03354697, 0x002a5e72}}}, + {X: Field{[10]uint32{0x01f45c39, 0x020851b7, 0x01984fba, 0x02a1d050, 0x012cd47b, 0x0037c31c, 0x0361ad74, 0x0013abc7, 0x03185c8c, 0x00263571}}, Y: Field{[10]uint32{0x00050804, 0x034ae928, 0x01bc5b36, 0x00b10a3d, 0x019d4a8e, 0x007b3aa2, 0x02f88f5f, 0x01fb083a, 0x01915c73, 0x002b2949}}}, + {X: Field{[10]uint32{0x00cefc7c, 0x008f8ae5, 0x03bc9a0b, 0x021bbe3e, 0x02ed1e13, 0x03ef3318, 0x00104854, 0x02d949a3, 0x02f7260f, 0x00145238}}, Y: Field{[10]uint32{0x03ca2500, 0x01c914a9, 0x016e1296, 0x00581f2a, 0x039e9b27, 0x0068236e, 0x024a8ccb, 0x0292616e, 0x012d35de, 0x00196d37}}}, + {X: Field{[10]uint32{0x020e753c, 0x03a44c63, 0x031daf91, 0x01f260b7, 0x00a08a22, 0x02fad145, 0x0240cccb, 0x019042e2, 0x01c18c9d, 0x0004b1a6}}, Y: Field{[10]uint32{0x032fcc99, 0x0008b624, 0x028e120b, 0x01a013b4, 0x004889e9, 0x00145ba2, 0x029a1975, 0x015c90d1, 0x004289b5, 0x001f654f}}}, + {X: Field{[10]uint32{0x020a8d20, 0x01a75204, 0x02c639dc, 0x01e540e6, 0x02134e44, 0x03aec8c4, 0x02ecac37, 0x010046cd, 0x03f8a773, 0x0013434f}}, Y: Field{[10]uint32{0x0144ec64, 0x025816c0, 0x02a57397, 0x00a7c2c3, 0x03960b3d, 0x025fc85c, 0x00f10261, 0x013180f1, 0x03a0e098, 0x003b7fc5}}}, + {X: Field{[10]uint32{0x0136e42d, 0x00941855, 0x03be4481, 0x036606a7, 0x03ccb069, 0x019a0cdb, 0x01b0985a, 0x01e9c6a4, 0x030b3e7b, 0x0033a42d}}, Y: Field{[10]uint32{0x01569000, 0x00e91e01, 0x01e672e6, 0x039915fc, 0x00d3af73, 0x021d581b, 0x00640ca2, 0x03ab5d49, 0x015612e0, 0x002337a7}}}, + {X: Field{[10]uint32{0x0163b2d8, 0x03124c41, 0x0297e360, 0x02c720ef, 0x00d197f5, 0x034bea42, 0x03bf9851, 0x021e7667, 0x03276bb1, 0x000a31e4}}, Y: Field{[10]uint32{0x00643868, 0x02125b3b, 0x010857c1, 0x00f8cf64, 0x03bc0f3e, 0x03873ef8, 0x02b10f6a, 0x02d5196d, 0x0240e2f3, 0x00322513}}}, + {X: Field{[10]uint32{0x03442443, 0x03fa94f9, 0x006659a1, 0x02021f4c, 0x03864d4c, 0x016dc1fc, 0x00c2b6b5, 0x033c0601, 0x01062413, 0x001b8b6b}}, Y: Field{[10]uint32{0x029430e0, 0x000d77c4, 0x01f7dc4c, 0x00a10d10, 0x02497bc0, 0x02703f8d, 0x021fba73, 0x01a450c2, 0x0064e05d, 0x0027699f}}}, + {X: Field{[10]uint32{0x004d20fe, 0x016dc923, 0x0254f871, 0x022248fb, 0x0119f261, 0x037d0dfe, 0x034d03df, 0x00e51b10, 0x02c80376, 0x002fbe52}}, Y: Field{[10]uint32{0x031e25db, 0x033b5500, 0x038aaee7, 0x01cf39f8, 0x02386484, 0x02578501, 0x0383032e, 0x007719be, 0x0134e5fc, 0x00348c91}}}, + {X: Field{[10]uint32{0x018e433d, 0x033b6be0, 0x01125918, 0x0190f517, 0x009b7d86, 0x003c994f, 0x0166a24c, 0x01707728, 0x0057f1b4, 0x0014d523}}, Y: Field{[10]uint32{0x010c3b44, 0x024e013c, 0x0240db6a, 0x0170f2b5, 0x01c36aec, 0x00c2c4ea, 0x01307e21, 0x001fe700, 0x0146f0c2, 0x003304e2}}}, + {X: Field{[10]uint32{0x00b5867e, 0x01bfd001, 0x0188f90f, 0x02aff51e, 0x012aee71, 0x022dc8fb, 0x00b0e09b, 0x0324053a, 0x03847f25, 0x001ff53d}}, Y: Field{[10]uint32{0x00a1bd9d, 0x0174899d, 0x0297641b, 0x0234dd7e, 0x0358eec1, 0x01b900b6, 0x0205805a, 0x004ab659, 0x02bc901f, 0x003ff0f7}}}, + {X: Field{[10]uint32{0x0397dd9d, 0x031e7e94, 0x003ccd3d, 0x03da72e2, 0x03d4251b, 0x036411bb, 0x0062424c, 0x0226d127, 0x027e4997, 0x001112a2}}, Y: Field{[10]uint32{0x03b30282, 0x03117936, 0x03f828f7, 0x0106fce4, 0x02abbe8e, 0x002355b0, 0x028c7757, 0x02c0802b, 0x003b3356, 0x0013317c}}}, + {X: Field{[10]uint32{0x0326bd8b, 0x0033aa15, 0x02bc1acb, 0x019e398a, 0x0204af8c, 0x0108071e, 0x0294bd0a, 0x01897481, 0x007784d8, 0x003fc172}}, Y: Field{[10]uint32{0x0196eeb3, 0x030b79ea, 0x012d906e, 0x028242f4, 0x02a55f6a, 0x02fa613b, 0x025a0b5c, 0x01894f3e, 0x00ce6ac2, 0x001f3c3a}}}, + {X: Field{[10]uint32{0x027e4ab2, 0x020ce6b7, 0x027c679b, 0x001223c2, 0x00e29f47, 0x00ff649d, 0x0094ea08, 0x006daf3a, 0x03ae6aa3, 0x00203f7d}}, Y: Field{[10]uint32{0x0152fb75, 0x01b9828e, 0x018fe3f4, 0x02fc2f79, 0x0249e066, 0x03515d71, 0x004a8b4b, 0x009d158d, 0x017b1696, 0x001df5cc}}}, + {X: Field{[10]uint32{0x01879214, 0x012bab50, 0x01589685, 0x01edfad2, 0x03ef2022, 0x0035dcb5, 0x0020a74f, 0x001f2b54, 0x00c810a3, 0x002b0e29}}, Y: Field{[10]uint32{0x035016ac, 0x034b3a87, 0x01213c7c, 0x02acd057, 0x00d75ecf, 0x00b88a7b, 0x02f77ca9, 0x01616105, 0x00bb3c67, 0x003d2713}}}, + {X: Field{[10]uint32{0x01f75514, 0x02445569, 0x036fea26, 0x00d77a6a, 0x013a90a4, 0x03d40bc6, 0x0162f408, 0x00098bf5, 0x02ddf1e1, 0x002cdcdb}}, Y: Field{[10]uint32{0x015a78c8, 0x020c15eb, 0x027514e4, 0x037995fb, 0x000eafa2, 0x02856b83, 0x01cb0682, 0x00d4f3c0, 0x03aff190, 0x0020633b}}}, + {X: Field{[10]uint32{0x010dc295, 0x00e2cccc, 0x0322f127, 0x03d73ed9, 0x03e698d4, 0x031aa16a, 0x03f6d5ea, 0x03045ad5, 0x0212d100, 0x0019b59f}}, Y: Field{[10]uint32{0x00a05dd3, 0x0097fa85, 0x0318fd4e, 0x0318cb5c, 0x02685fae, 0x026ef5fa, 0x0208ea70, 0x0269534d, 0x021f3a0c, 0x0027353e}}}, + {X: Field{[10]uint32{0x02b59043, 0x011c4d4f, 0x0333eb87, 0x01ae9ee6, 0x029fa10c, 0x01bb37c2, 0x02eb6514, 0x0392136a, 0x035f756a, 0x002e15b5}}, Y: Field{[10]uint32{0x01cb0a38, 0x0069f6e2, 0x004c4b04, 0x0071c9ca, 0x026566da, 0x037c91bc, 0x03a177d8, 0x0259252c, 0x02b12f24, 0x00172150}}}, + {X: Field{[10]uint32{0x01c47d27, 0x014a547e, 0x01548afc, 0x017ee165, 0x03c736b1, 0x01869950, 0x00142cd6, 0x008e4d16, 0x03d70320, 0x0001a0ef}}, Y: Field{[10]uint32{0x022de166, 0x018d045d, 0x01746b41, 0x028a3653, 0x02420387, 0x031a3365, 0x0029f84a, 0x037c9945, 0x0240f5db, 0x00243d4a}}}, + {X: Field{[10]uint32{0x032923c2, 0x003e2a46, 0x018963d0, 0x029fe25d, 0x0141ee1c, 0x00ce8250, 0x00959345, 0x0079944e, 0x01f0811e, 0x000bfaa8}}, Y: Field{[10]uint32{0x00499c1a, 0x00e843fa, 0x0202b07e, 0x0081f41b, 0x03690d18, 0x039bb87b, 0x03701c35, 0x03500575, 0x0176b884, 0x00277602}}}, + {X: Field{[10]uint32{0x0287cda4, 0x001ed608, 0x0009780e, 0x02a86a5a, 0x01847070, 0x01134833, 0x0365e9b1, 0x02ebcea5, 0x0137da9e, 0x0033994a}}, Y: Field{[10]uint32{0x001ba572, 0x00c87cc1, 0x01b6801b, 0x00dbade8, 0x00454e17, 0x0279eba1, 0x01db3782, 0x00b6f96a, 0x03fb5f15, 0x0030711b}}}, + {X: Field{[10]uint32{0x00976211, 0x017f9a1e, 0x008a84fd, 0x02dac137, 0x03556087, 0x01d42f71, 0x03f9738a, 0x018feeac, 0x03d91701, 0x00269a56}}, Y: Field{[10]uint32{0x02aeda70, 0x0273c48f, 0x03c27d0c, 0x00b5935a, 0x010dce26, 0x02521a36, 0x002b1332, 0x03361669, 0x01f375ac, 0x003d02e8}}}, + {X: Field{[10]uint32{0x0134ba44, 0x034c88ef, 0x00ec718c, 0x0285d55e, 0x035908b0, 0x03936930, 0x02bd6d09, 0x020fb2fe, 0x0368bd30, 0x00396eab}}, Y: Field{[10]uint32{0x03a27fb0, 0x03bee642, 0x03dbce4d, 0x011aa6be, 0x005feb7f, 0x028fa1a9, 0x0076d0ed, 0x030f0541, 0x01f0365c, 0x002ae194}}}, + {X: Field{[10]uint32{0x03e59cc7, 0x00ddb63f, 0x0104ce06, 0x0322fd8f, 0x03dd0c4d, 0x01fb87f6, 0x033530bb, 0x03f9df63, 0x02a2b507, 0x000b09b3}}, Y: Field{[10]uint32{0x0230d62e, 0x002da739, 0x0004a500, 0x030abbf0, 0x03c30a1c, 0x016114a5, 0x0367151b, 0x00fae6c2, 0x03af54d0, 0x002cd138}}}, + {X: Field{[10]uint32{0x00bbd0e4, 0x00527d72, 0x027a3c2a, 0x02701ff2, 0x024d5333, 0x0281f8bd, 0x01eadaf0, 0x00b98623, 0x039f52af, 0x001f19d4}}, Y: Field{[10]uint32{0x009067c9, 0x039cfa4c, 0x0303896e, 0x02f986d8, 0x03df7a2c, 0x01990bb1, 0x02cc97ec, 0x0244d813, 0x02fdc21c, 0x000fe61c}}}, + {X: Field{[10]uint32{0x02249574, 0x02b7072a, 0x01aab8f9, 0x013dd080, 0x00334561, 0x00769c72, 0x02e1d17e, 0x002f24ed, 0x012dec8b, 0x0012d777}}, Y: Field{[10]uint32{0x02c5460b, 0x02cdaa2a, 0x03d695df, 0x0155b957, 0x036e16e7, 0x00aa169a, 0x00d18b3d, 0x03bf6d0d, 0x02dcaa3e, 0x0033eb68}}}, + {X: Field{[10]uint32{0x00d80e4b, 0x02f0d6e2, 0x03e59216, 0x0200bac2, 0x00f9bb66, 0x01cea13e, 0x0266edb8, 0x0020d61a, 0x02f2ccfc, 0x0035dd70}}, Y: Field{[10]uint32{0x0053ddbb, 0x02ce933f, 0x01ea765b, 0x015e444d, 0x02ff56ca, 0x025902a1, 0x02aa0b51, 0x0088c73d, 0x01b7988a, 0x00322976}}}, + {X: Field{[10]uint32{0x00d9bb4a, 0x0200ea6f, 0x014dcd3c, 0x01ec0dab, 0x00b005b0, 0x00f70f69, 0x001d9844, 0x003e77ec, 0x03097881, 0x001c68f3}}, Y: Field{[10]uint32{0x03caaa55, 0x00c41002, 0x01f5a1ad, 0x01362627, 0x01bd4a3c, 0x0185eb55, 0x000c5b39, 0x00c06e59, 0x02217db0, 0x0022aae3}}}, + {X: Field{[10]uint32{0x011f53b7, 0x03a2ec66, 0x00d3fdde, 0x00160970, 0x02a82f7d, 0x035de3bd, 0x00596ae3, 0x025b9880, 0x005492b6, 0x002f1c68}}, Y: Field{[10]uint32{0x029a2a15, 0x02abd85c, 0x03b52b07, 0x00db9003, 0x00d11255, 0x018c2a42, 0x03744600, 0x02e362c4, 0x01259785, 0x00055e24}}}, + {X: Field{[10]uint32{0x00847abc, 0x0247193f, 0x01f7e6f8, 0x002f1ade, 0x00e8d94a, 0x003d8396, 0x001ec81a, 0x02ff73ee, 0x0119ee62, 0x00274882}}, Y: Field{[10]uint32{0x02d0c675, 0x002f1f9b, 0x02a16e53, 0x03229efe, 0x0075f3a7, 0x027d3a53, 0x03fe8865, 0x00f0ae37, 0x039b1a07, 0x0020524d}}}, + {X: Field{[10]uint32{0x03f33425, 0x0230cfbb, 0x016e5c6c, 0x006d38da, 0x00d25bff, 0x038eb565, 0x030c6c91, 0x02f4668c, 0x026ad30b, 0x0020da5d}}, Y: Field{[10]uint32{0x02e79e4a, 0x02562e5c, 0x008a4e4b, 0x0236185f, 0x038ed5d2, 0x0087df6b, 0x00970d9c, 0x015d7216, 0x0282b3f4, 0x00289fdd}}}, + {X: Field{[10]uint32{0x00542451, 0x02cba2c8, 0x00ab457d, 0x02b4735a, 0x03e91f51, 0x021fed09, 0x00d36b54, 0x03aaac6a, 0x00750e4a, 0x001389de}}, Y: Field{[10]uint32{0x026566e0, 0x014083a8, 0x0123e763, 0x0036a3e1, 0x02d138fd, 0x0054a951, 0x02bf1d2a, 0x012e07e5, 0x03655bbc, 0x0027ebbf}}}, + {X: Field{[10]uint32{0x01a0d2fa, 0x024408ce, 0x036b108b, 0x0306c84c, 0x01825046, 0x009816a4, 0x028d2027, 0x03ffcc39, 0x03b51b9d, 0x0009fe41}}, Y: Field{[10]uint32{0x012d4a15, 0x035ec301, 0x0068acbf, 0x0167ff10, 0x000105f4, 0x03571276, 0x004bf3dd, 0x00d803ee, 0x01c36cb1, 0x00045489}}}, + {X: Field{[10]uint32{0x02b1fab3, 0x010bbb55, 0x0281864b, 0x02a3cf35, 0x02ef0900, 0x007dc3c5, 0x03ff42d4, 0x01d3110d, 0x03206506, 0x001b67fa}}, Y: Field{[10]uint32{0x03a02065, 0x015d3483, 0x02444f60, 0x0000e6a8, 0x035f7f7b, 0x014ebe8e, 0x015f8576, 0x00f070b9, 0x03ecd82b, 0x0020b365}}}, + {X: Field{[10]uint32{0x0187bfac, 0x03cb3de0, 0x03558857, 0x02f4ef45, 0x01ecb9cd, 0x00a139ca, 0x01c3b363, 0x019a74d8, 0x02b43360, 0x00226074}}, Y: Field{[10]uint32{0x00d48498, 0x01b5e05c, 0x0245a3e8, 0x018db09d, 0x000216b2, 0x0053b357, 0x011bf736, 0x0174761e, 0x0327d5a4, 0x0006e6ba}}}, + {X: Field{[10]uint32{0x02e1d72e, 0x026169dc, 0x010ce9c5, 0x0215b4f0, 0x02816916, 0x01fa4b38, 0x0140d557, 0x0347f895, 0x0118e47a, 0x0021299d}}, Y: Field{[10]uint32{0x01631658, 0x0294d071, 0x03356dc8, 0x0389a67b, 0x0016ca04, 0x0312dcff, 0x0011777d, 0x00ba8b9b, 0x03af8507, 0x0034f2e4}}}, + {X: Field{[10]uint32{0x00a8c683, 0x030a346b, 0x03418d50, 0x0376e77e, 0x007e666c, 0x0196999d, 0x00111e2e, 0x033ddd43, 0x035672a6, 0x0034f999}}, Y: Field{[10]uint32{0x02556dd9, 0x027eb8e9, 0x023f0735, 0x016f7441, 0x034e2e81, 0x008cfe0f, 0x01aca5d8, 0x031b0ead, 0x00aa20e5, 0x001dddbb}}}, + {X: Field{[10]uint32{0x01b87bba, 0x00b6ce19, 0x03c4af7b, 0x02129a3b, 0x02522a76, 0x0394958f, 0x00e76b5e, 0x015a2201, 0x01ef71d4, 0x003b7a5f}}, Y: Field{[10]uint32{0x01ae702f, 0x01eda4bf, 0x03513758, 0x023eddfa, 0x0285bafb, 0x01d62a03, 0x02279f95, 0x0049d982, 0x020f0c9c, 0x0024b9b4}}}, + {X: Field{[10]uint32{0x02e8c871, 0x0282e73a, 0x006ed025, 0x021091eb, 0x036ff84f, 0x00c4b9c0, 0x03db3ae2, 0x01213b3d, 0x0142e000, 0x000cd678}}, Y: Field{[10]uint32{0x021cdf66, 0x019be774, 0x0377f871, 0x0024db90, 0x00d00ada, 0x00e76fca, 0x00c98bf7, 0x017e87ce, 0x01f23c84, 0x0019ec0e}}}, + {X: Field{[10]uint32{0x022b44a1, 0x018b1f84, 0x0158f8fd, 0x02bb3c36, 0x0196f675, 0x00245295, 0x014a3dc4, 0x000bf499, 0x01720c05, 0x0038342a}}, Y: Field{[10]uint32{0x036b0312, 0x01ef51d5, 0x021718db, 0x00b46c47, 0x033ee29e, 0x03684640, 0x03d916ed, 0x0169faef, 0x01bc3457, 0x00032fac}}}, + {X: Field{[10]uint32{0x01a4c987, 0x01f7e108, 0x02605939, 0x00676368, 0x014f3320, 0x007d757b, 0x0031ac7a, 0x01dc1190, 0x03675df7, 0x00142e24}}, Y: Field{[10]uint32{0x0292f293, 0x013ccd74, 0x01204cb0, 0x014cf67b, 0x0045c382, 0x01b5bfc3, 0x009c3f25, 0x0327ae82, 0x0181063e, 0x00311d97}}}, + {X: Field{[10]uint32{0x016d446a, 0x0390cb73, 0x0111391c, 0x02f9073a, 0x037f80cb, 0x03e3a048, 0x01e84e99, 0x017fdbc8, 0x018e6677, 0x0017718b}}, Y: Field{[10]uint32{0x0373a9c2, 0x01bac505, 0x01de99ad, 0x02fc497d, 0x00b020ca, 0x0058ff57, 0x021cdabd, 0x011695db, 0x037de270, 0x0012d15a}}}, + {X: Field{[10]uint32{0x02c10971, 0x0353e588, 0x01b03fdc, 0x01f88bbf, 0x004e56ba, 0x0241c430, 0x0232e187, 0x00611749, 0x038fc792, 0x0022e85d}}, Y: Field{[10]uint32{0x023e3854, 0x031ebd8f, 0x00c53f48, 0x03a23d06, 0x0048ffeb, 0x025c1c9a, 0x01d7d435, 0x025962ce, 0x00ffa835, 0x0007cc7f}}}, + {X: Field{[10]uint32{0x00db9fc7, 0x03681b02, 0x0294be7a, 0x00aeea2d, 0x02999a10, 0x02fe6042, 0x03ad055f, 0x029eef9a, 0x02147d1e, 0x0028e851}}, Y: Field{[10]uint32{0x006ac294, 0x01fab0e2, 0x03d57a69, 0x01ec69c9, 0x00b3bdb8, 0x014c7ff3, 0x00cd6eb3, 0x004a108f, 0x0331d432, 0x0032609d}}}, + {X: Field{[10]uint32{0x00af78f5, 0x03470bf8, 0x0328621a, 0x03d93637, 0x01f6ce1a, 0x00d9a0b1, 0x01671c44, 0x00d2ab20, 0x0047bd20, 0x0025882a}}, Y: Field{[10]uint32{0x01826e1c, 0x03855553, 0x01f0d099, 0x0017a256, 0x016168a2, 0x0055af37, 0x007e32f4, 0x037ffb2d, 0x0108a7e3, 0x0038731b}}}, + {X: Field{[10]uint32{0x0396016b, 0x03663881, 0x016eebc9, 0x01f16126, 0x0395b2c5, 0x012363ff, 0x00b6a52c, 0x01a9e4fc, 0x02a0aa7d, 0x00290361}}, Y: Field{[10]uint32{0x02351ea2, 0x03365402, 0x0087396e, 0x02d117d1, 0x00062911, 0x009585f6, 0x014c15cb, 0x0119b6b6, 0x00e2d453, 0x003b1535}}}, + {X: Field{[10]uint32{0x03484c80, 0x0241de6c, 0x02fbd5ed, 0x03a6e993, 0x037e5f40, 0x01d1661b, 0x0173b979, 0x009a295d, 0x01a6f60f, 0x001c7bcd}}, Y: Field{[10]uint32{0x038a1ba3, 0x0058ded3, 0x01669875, 0x00f2f91d, 0x0302f369, 0x03d69ab5, 0x037df7f6, 0x01642b15, 0x021e9ff3, 0x003aaffe}}}, + {X: Field{[10]uint32{0x00f68de2, 0x031db5e9, 0x0267486f, 0x02fbc40f, 0x005308ab, 0x017dc256, 0x01ffa52c, 0x028ecb92, 0x0008c742, 0x002ef469}}, Y: Field{[10]uint32{0x01246124, 0x002d86d7, 0x0079a2ac, 0x00201428, 0x01ee6e1e, 0x01cca116, 0x00fbe96c, 0x0384f86c, 0x03ec9d07, 0x00125072}}}, + {X: Field{[10]uint32{0x00ba9009, 0x03c7e7a1, 0x012ab433, 0x03fe5613, 0x03805d60, 0x00b226d7, 0x009c92ff, 0x01b7d4f8, 0x03389211, 0x0005a7af}}, Y: Field{[10]uint32{0x03c6228d, 0x000d6641, 0x02a08345, 0x01247a4c, 0x02c997d1, 0x03c77923, 0x01b5adeb, 0x01fb8560, 0x0116e766, 0x002453d5}}}, + {X: Field{[10]uint32{0x00666acc, 0x01d40b3e, 0x020c3977, 0x02781313, 0x01d71c8d, 0x02436391, 0x00115458, 0x031fefab, 0x02bc4c5e, 0x0023c55e}}, Y: Field{[10]uint32{0x03f25908, 0x00604e0f, 0x021bc635, 0x0026260b, 0x02014dc7, 0x000af28f, 0x019883e6, 0x02a7ee62, 0x02ba1e78, 0x0035055d}}}, + {X: Field{[10]uint32{0x00ec9a8d, 0x03632d6d, 0x0010091e, 0x024e53ee, 0x0284f71f, 0x026801b6, 0x00ebcd83, 0x009b7001, 0x00d5694b, 0x002334ce}}, Y: Field{[10]uint32{0x00002578, 0x03b34874, 0x03d952a6, 0x00d30809, 0x0303fd9d, 0x015192ac, 0x000eccf4, 0x0366e702, 0x0010dd88, 0x00100c63}}}, + {X: Field{[10]uint32{0x013272f2, 0x003b8f8a, 0x02e28cbf, 0x030a5224, 0x03a64748, 0x012b5d83, 0x036171af, 0x02e8a834, 0x022f7ba5, 0x0008391f}}, Y: Field{[10]uint32{0x03be00bd, 0x00549519, 0x020a771b, 0x03e1db1c, 0x03162dda, 0x02279099, 0x00520897, 0x02608570, 0x022056b8, 0x002e5ab4}}}, + {X: Field{[10]uint32{0x032bb880, 0x032d7997, 0x015793f3, 0x031bfefc, 0x02f9c31e, 0x03d0477b, 0x02942d11, 0x023e736d, 0x00a5a0d3, 0x00160bb6}}, Y: Field{[10]uint32{0x03ce8486, 0x03d1e580, 0x02352a4c, 0x0248d29b, 0x02948ea8, 0x012ebd2f, 0x00a8db56, 0x0274f7b1, 0x000e4f9d, 0x000524a3}}}, + {X: Field{[10]uint32{0x001896d6, 0x03ac6d18, 0x01e7b877, 0x022db47d, 0x03b0bcab, 0x023011ba, 0x03daf30b, 0x030474fd, 0x019a6e76, 0x003d29bd}}, Y: Field{[10]uint32{0x0070f0c5, 0x0229922c, 0x01abeedc, 0x010792f6, 0x01ccde46, 0x026c5239, 0x01a05d4a, 0x01055956, 0x02e9e5d8, 0x000b4e71}}}, + {X: Field{[10]uint32{0x00957b24, 0x00a6bdcc, 0x0252d2c3, 0x02e31d8e, 0x02fc8564, 0x01588fc1, 0x0266bf01, 0x033d71db, 0x00600f71, 0x000aa083}}, Y: Field{[10]uint32{0x03ff3ca2, 0x0249919d, 0x02d370fd, 0x01f6e655, 0x0236f77f, 0x01401e34, 0x009a1d72, 0x0256679b, 0x0303d742, 0x002ce301}}}, + {X: Field{[10]uint32{0x02e2799e, 0x00612281, 0x03872623, 0x00ef075f, 0x0133634d, 0x001de8ea, 0x01d48026, 0x02fd921c, 0x004e9fcc, 0x00230b67}}, Y: Field{[10]uint32{0x01351a7d, 0x0152162a, 0x02db8d59, 0x01dd8130, 0x03cf032d, 0x02026169, 0x009c534e, 0x02edb631, 0x036cae43, 0x002b5404}}}, + {X: Field{[10]uint32{0x00061ba9, 0x003466dd, 0x004906eb, 0x017eb7f1, 0x03db00d2, 0x00e49d64, 0x00b991e2, 0x02cfb434, 0x00530744, 0x002c63a4}}, Y: Field{[10]uint32{0x033877b6, 0x03faa4ac, 0x002a702f, 0x02e1108c, 0x0343a8aa, 0x02600d34, 0x01edd739, 0x02cb19dc, 0x0244c829, 0x00243d72}}}, + {X: Field{[10]uint32{0x00e835be, 0x01e37347, 0x00109330, 0x01f3d2b1, 0x01d12482, 0x0314efe8, 0x01d2f58c, 0x010d6e41, 0x0157b03d, 0x00033c74}}, Y: Field{[10]uint32{0x0271b459, 0x01b65672, 0x031ab119, 0x037d87ba, 0x003ea656, 0x01147359, 0x0303cf21, 0x031f5a83, 0x01a15547, 0x003b8dea}}}, + {X: Field{[10]uint32{0x014a6007, 0x0358fdf9, 0x004c1562, 0x0347c8be, 0x0192fc13, 0x01bd2f39, 0x021ac36a, 0x02103ecb, 0x018ad91a, 0x002362e7}}, Y: Field{[10]uint32{0x03842dba, 0x006d1ac2, 0x02ee1ce6, 0x03851f39, 0x01ee9227, 0x00e6af7b, 0x020ec3b4, 0x023cb76b, 0x024393ca, 0x00254a2f}}}, + {X: Field{[10]uint32{0x0087fc9d, 0x006d18ff, 0x0106f256, 0x02387569, 0x037ae04a, 0x00366932, 0x02c936fb, 0x02c355c5, 0x0144bbc5, 0x001812d5}}, Y: Field{[10]uint32{0x016ac8eb, 0x00649528, 0x01d8a3e3, 0x01bc41a8, 0x03ee3cde, 0x034f67b6, 0x001e5fe7, 0x029b9d07, 0x039c4fb9, 0x000cff8b}}}, + {X: Field{[10]uint32{0x03aed8f6, 0x030245be, 0x03e5309e, 0x0191e567, 0x02cbd16d, 0x02785328, 0x017aab74, 0x03b91181, 0x00141058, 0x000f9fb5}}, Y: Field{[10]uint32{0x012e79fc, 0x00915a25, 0x006481ba, 0x01860bc6, 0x01f66bd3, 0x00280574, 0x01aa6971, 0x031b8324, 0x024186de, 0x003f056c}}}, + {X: Field{[10]uint32{0x0143f326, 0x034149de, 0x00f26736, 0x01a531a7, 0x0126e46f, 0x01b3d0b0, 0x01242431, 0x01ee2b25, 0x003586c1, 0x00342b9d}}, Y: Field{[10]uint32{0x034e0757, 0x007386fd, 0x0304b197, 0x00fa2ed7, 0x00fbaca0, 0x02fdada7, 0x0398865a, 0x01622b50, 0x01e8b983, 0x002fe80b}}}, + {X: Field{[10]uint32{0x00be1441, 0x0147ae62, 0x0197f5f8, 0x01967781, 0x023627bc, 0x014e02b7, 0x02ce2f94, 0x010f8df9, 0x01ced4f3, 0x003bd701}}, Y: Field{[10]uint32{0x00103281, 0x0031865d, 0x036350d6, 0x030ab527, 0x01b681e7, 0x012ba388, 0x010e40b7, 0x03c678ef, 0x001b0379, 0x0036499f}}}, + {X: Field{[10]uint32{0x008f49ae, 0x01921917, 0x038ca8dc, 0x01971efc, 0x03d7cf42, 0x02c2766b, 0x033015c3, 0x022b65f1, 0x03ebd799, 0x0005dae3}}, Y: Field{[10]uint32{0x0122f1b4, 0x0086fce1, 0x034c5fc8, 0x017a8053, 0x017f989f, 0x019db1e0, 0x00da1905, 0x03268da7, 0x024c8267, 0x002d2f2f}}}, + {X: Field{[10]uint32{0x0116c3dd, 0x00e9d9af, 0x03a0097b, 0x0374d50b, 0x03b20771, 0x02db698b, 0x0358d69f, 0x03053bae, 0x03db0cff, 0x00223da0}}, Y: Field{[10]uint32{0x011cb601, 0x03fdc607, 0x02219f52, 0x025aca5c, 0x020cf800, 0x0094add3, 0x02797ca0, 0x000f1499, 0x03de8121, 0x0002efbc}}}, + {X: Field{[10]uint32{0x0237abaa, 0x03f88e3d, 0x00854dd1, 0x0208c7ee, 0x018488b0, 0x00f59e24, 0x00c4121c, 0x03b113f6, 0x038f1247, 0x00299750}}, Y: Field{[10]uint32{0x023f36a3, 0x012a0be6, 0x00986d4d, 0x0257743f, 0x034bb500, 0x0131dc6b, 0x01cf3c0b, 0x010cff7f, 0x004e551e, 0x0017d972}}}, + {X: Field{[10]uint32{0x0398cc27, 0x0169a818, 0x03d2ff6a, 0x02e40a20, 0x02d5cdda, 0x03c565f1, 0x0208148a, 0x022edfdf, 0x0251c502, 0x002f5a9f}}, Y: Field{[10]uint32{0x0059d885, 0x02dc3d9e, 0x02f662dd, 0x01369dbb, 0x030c1ed1, 0x026a63a4, 0x0397979b, 0x03748ba2, 0x00c4247c, 0x000fc8a0}}}, + {X: Field{[10]uint32{0x009d274b, 0x00468264, 0x02202344, 0x02b1d34d, 0x0158f7a3, 0x01440514, 0x031814ec, 0x02837152, 0x036c2896, 0x00299c90}}, Y: Field{[10]uint32{0x03c2ec3f, 0x03f3b3af, 0x02654a7a, 0x02765590, 0x02c81f3d, 0x02b6b795, 0x02acea6b, 0x01e3656e, 0x02934681, 0x0037ba00}}}, + {X: Field{[10]uint32{0x003a24b0, 0x0380de7c, 0x004bc8d9, 0x02a4c844, 0x0257891b, 0x01f4b6a9, 0x01b0993d, 0x03433c6b, 0x01fed3a1, 0x003283d5}}, Y: Field{[10]uint32{0x023cfa6f, 0x010f9bd6, 0x0399db58, 0x020e59c4, 0x03520166, 0x02f2a363, 0x0188baae, 0x00b73645, 0x00e46346, 0x0037006e}}}, + {X: Field{[10]uint32{0x036429a1, 0x03c2d712, 0x034ccb91, 0x029fa831, 0x02211843, 0x02cbf881, 0x004961cc, 0x00087815, 0x008d9bff, 0x001843fc}}, Y: Field{[10]uint32{0x01d46b28, 0x01d82fb4, 0x020dd9b0, 0x00d8d7c5, 0x02d889bc, 0x03f34f84, 0x03daee68, 0x017e9f6a, 0x018aee96, 0x0012f8ec}}}, + {X: Field{[10]uint32{0x01ff42ae, 0x03318e2a, 0x0162238f, 0x032588b7, 0x026b695d, 0x037e3c28, 0x00f006cd, 0x03b32de3, 0x0215a70a, 0x000b5be0}}, Y: Field{[10]uint32{0x01a3927b, 0x011521e5, 0x010fd3ff, 0x005491b1, 0x037a9887, 0x03543ccd, 0x01e4e5be, 0x0325a798, 0x0164e2a3, 0x0000ff02}}}, + {X: Field{[10]uint32{0x00a1bbbb, 0x00318c22, 0x004ea70b, 0x009a90bf, 0x02998468, 0x0386826b, 0x010b132d, 0x00e716d8, 0x01b4868e, 0x002303a6}}, Y: Field{[10]uint32{0x001cfe52, 0x01314d85, 0x01a95c38, 0x00b821e1, 0x036ead99, 0x0186e305, 0x036a41de, 0x01032ca1, 0x0242f0a2, 0x000cae32}}}, + {X: Field{[10]uint32{0x03c96ed7, 0x0327ac23, 0x007e4dba, 0x007596be, 0x03658c6d, 0x013bdb5d, 0x0062af77, 0x02b9d78c, 0x028f9000, 0x00054a2e}}, Y: Field{[10]uint32{0x013b5651, 0x03b29914, 0x0253a5fa, 0x03571cc6, 0x012d39f0, 0x01d4ea2f, 0x00e64665, 0x01af3475, 0x038d54df, 0x002a3749}}}, + {X: Field{[10]uint32{0x03f1d7a4, 0x027bde9b, 0x037d2fa0, 0x02feb16b, 0x00104394, 0x02545616, 0x03a040e2, 0x01a9ebc4, 0x02a5d925, 0x0030519b}}, Y: Field{[10]uint32{0x01be5128, 0x0115ec9d, 0x00a7bc05, 0x02db8414, 0x00d8bab3, 0x01800f7c, 0x0284b540, 0x0361e7c1, 0x02c6fb36, 0x0032adbf}}}, + {X: Field{[10]uint32{0x03e98cb4, 0x004604b4, 0x02b56c6f, 0x02ea1e9d, 0x022ea946, 0x03e430fc, 0x0297a87c, 0x002274a8, 0x0093e051, 0x0033a2ec}}, Y: Field{[10]uint32{0x003a0470, 0x014ba578, 0x028884c2, 0x02b642c3, 0x00679cbc, 0x0344eeab, 0x03f556fb, 0x0213f9b7, 0x0251b906, 0x002a36ee}}}, + {X: Field{[10]uint32{0x02d6c86d, 0x01960b81, 0x016ea918, 0x018e85ea, 0x027c4267, 0x0024aa53, 0x030ddd9b, 0x02785634, 0x02737c9d, 0x0001dbce}}, Y: Field{[10]uint32{0x01d16c8a, 0x00a808b9, 0x00443b20, 0x00081f90, 0x01b29c53, 0x01b38fc1, 0x00ad27ec, 0x0179b1de, 0x007c4f34, 0x0016c728}}}, + {X: Field{[10]uint32{0x0274017f, 0x015cb542, 0x001adee1, 0x03fabdda, 0x032ed997, 0x0375f50e, 0x03988725, 0x002c84ee, 0x03c32339, 0x003dd5f7}}, Y: Field{[10]uint32{0x01b83cf8, 0x034912e9, 0x016be461, 0x019f2869, 0x0374ec4f, 0x023ace55, 0x00b63d98, 0x025c99c0, 0x00ea6787, 0x00342d39}}}, + {X: Field{[10]uint32{0x02d5f5d0, 0x00aa1ee7, 0x0065c149, 0x01a43647, 0x03f27a57, 0x036f8f19, 0x000ec6d3, 0x02bbf7c2, 0x0198a2de, 0x00166fd8}}, Y: Field{[10]uint32{0x0010f8b2, 0x00f5c3e1, 0x029b3a2f, 0x03b58054, 0x016e02f2, 0x03519e15, 0x010834c4, 0x028a08c4, 0x03399011, 0x002fd7ad}}}, + {X: Field{[10]uint32{0x0149ba16, 0x02020b81, 0x0052d53f, 0x0173c4b3, 0x02a7b0e8, 0x02463056, 0x02857900, 0x021d5d21, 0x030ac86d, 0x002c740b}}, Y: Field{[10]uint32{0x031a19d0, 0x00dff095, 0x0106b854, 0x00965b4f, 0x03972977, 0x00fce14a, 0x000878d6, 0x01adda2a, 0x02039992, 0x0001e497}}}, + {X: Field{[10]uint32{0x001d1905, 0x0393900e, 0x02908882, 0x03bc53ce, 0x027e5267, 0x01f10610, 0x03d2ec12, 0x0381f406, 0x032f41d8, 0x003349cd}}, Y: Field{[10]uint32{0x01c77297, 0x02bc3257, 0x003522ac, 0x005d4826, 0x02c33296, 0x01045a4e, 0x03810f3b, 0x027ccf33, 0x0203661b, 0x003338db}}}, + {X: Field{[10]uint32{0x019d3ace, 0x036d26f7, 0x01695b01, 0x033eef20, 0x03ad2258, 0x032eaad3, 0x028940f5, 0x00d664ed, 0x00fc26ca, 0x00044991}}, Y: Field{[10]uint32{0x01c0bf60, 0x01341245, 0x01b904e7, 0x00acefa7, 0x037ff136, 0x03b7c274, 0x03a49b3b, 0x02e57cbd, 0x03907b5a, 0x0021a17d}}}, + {X: Field{[10]uint32{0x0197d3ce, 0x001b8b03, 0x018bb3a6, 0x03abae12, 0x0192fb51, 0x00d68936, 0x02845759, 0x01285883, 0x032a99ce, 0x0024637d}}, Y: Field{[10]uint32{0x038a8461, 0x0333faee, 0x03065602, 0x00609d26, 0x01bb6b79, 0x0241e533, 0x038b0d3c, 0x03fe63c6, 0x01ec9ebb, 0x00222cce}}}, + {X: Field{[10]uint32{0x00dcb83b, 0x02b3eaff, 0x01af2a7d, 0x0093cd28, 0x00436e64, 0x035229dc, 0x0025b510, 0x03ff2025, 0x00f265c4, 0x0026e3c6}}, Y: Field{[10]uint32{0x0185ba55, 0x0152a6b5, 0x012475e4, 0x03e4fd8f, 0x01476c4a, 0x0318a04e, 0x02e8c78f, 0x0306e4b0, 0x01e86a34, 0x0002fee5}}}, + {X: Field{[10]uint32{0x0024ce30, 0x031e3fef, 0x0340c9b9, 0x002b62cc, 0x00382174, 0x03a87639, 0x02be52a1, 0x0189a90a, 0x032ac396, 0x0002b40b}}, Y: Field{[10]uint32{0x022885fb, 0x030b41c6, 0x01b13255, 0x03978953, 0x03ad8c97, 0x02deede9, 0x0027cfe1, 0x01e1cbfe, 0x00e6cf8a, 0x003f31ce}}}, + {X: Field{[10]uint32{0x026d85a3, 0x03ee6b76, 0x0076c84b, 0x00a23d51, 0x029b5c19, 0x016b3c49, 0x02e34f3f, 0x036b2423, 0x03bd5e60, 0x0000d66b}}, Y: Field{[10]uint32{0x03088955, 0x0055e7ec, 0x030f6b50, 0x00da8608, 0x03443586, 0x024cb385, 0x02721553, 0x03fb59c4, 0x01e79cd3, 0x000b8aa8}}}, + {X: Field{[10]uint32{0x00b279de, 0x0024459a, 0x033ca55e, 0x03008187, 0x030c3c15, 0x0335b1e3, 0x00c34a31, 0x00bc7384, 0x023e230f, 0x00158e6a}}, Y: Field{[10]uint32{0x0111bef1, 0x01b0bb2d, 0x0309c8ed, 0x006c1189, 0x02e3a7d5, 0x02a7a0f8, 0x023bc263, 0x01fc2cfe, 0x015c15de, 0x00382dba}}}, + {X: Field{[10]uint32{0x0269ec44, 0x015d94b5, 0x00e4ad86, 0x01b2b50b, 0x03693d3b, 0x0097bf0a, 0x00ef3d0c, 0x02567617, 0x03cc7b2f, 0x000c273f}}, Y: Field{[10]uint32{0x0150077d, 0x02596dea, 0x0274bcf7, 0x0299e664, 0x0232f949, 0x01487548, 0x00095205, 0x02c6f9e6, 0x022fd917, 0x0000eaed}}}, + {X: Field{[10]uint32{0x033b86b2, 0x006bdb94, 0x033cace9, 0x01a922af, 0x00534a02, 0x01d7244c, 0x018eab63, 0x035f0017, 0x01d2dac1, 0x00147cf5}}, Y: Field{[10]uint32{0x03e99f74, 0x0262a3e8, 0x0235aba9, 0x00aab410, 0x0234f9cf, 0x02816f76, 0x03fbfe0c, 0x0123b67c, 0x027f4bdc, 0x000142c7}}}, + {X: Field{[10]uint32{0x01c2a244, 0x03897b8a, 0x00e1fa3f, 0x03d22cf9, 0x034158b0, 0x014074c9, 0x000e0c6f, 0x01040115, 0x011833aa, 0x0023d58f}}, Y: Field{[10]uint32{0x03432193, 0x01d64a19, 0x03589028, 0x024f0600, 0x033d031d, 0x0004a263, 0x035248da, 0x00cdc55f, 0x01d85ea9, 0x0013531c}}}, + {X: Field{[10]uint32{0x037177a9, 0x031cb229, 0x01108ee7, 0x0303b867, 0x003c4853, 0x02c25ab0, 0x0045b39f, 0x036ae72f, 0x0109d68f, 0x000db28a}}, Y: Field{[10]uint32{0x024301b0, 0x00588234, 0x02ed6905, 0x018cc384, 0x0269cbf3, 0x00519e97, 0x033d0953, 0x00a58217, 0x01dfc825, 0x00193d44}}}, + {X: Field{[10]uint32{0x02a306e0, 0x00d1c0a3, 0x00cf3807, 0x023ad35c, 0x0358dd91, 0x036c9bc3, 0x001ca9c2, 0x03f5f308, 0x00d51f3f, 0x003d8a2e}}, Y: Field{[10]uint32{0x00adc2e8, 0x00d82ef6, 0x01c1ea2d, 0x01f798ca, 0x03b7c2d7, 0x03d55f7b, 0x00d6eb27, 0x00ba6cba, 0x00e30ea8, 0x0002f5af}}}, + {X: Field{[10]uint32{0x00e67c1b, 0x010454b0, 0x02f2586e, 0x035d8400, 0x00b44fa7, 0x0340d435, 0x026922c9, 0x00b02eca, 0x03f500a8, 0x003ede9a}}, Y: Field{[10]uint32{0x02702da1, 0x017af252, 0x02cfb034, 0x00cc8e86, 0x018419fc, 0x03fa3cfa, 0x01f1406e, 0x031c0c00, 0x0037f1c9, 0x00304a87}}}, + {X: Field{[10]uint32{0x0278d092, 0x0247ef3f, 0x03033753, 0x00769696, 0x01bf8ec0, 0x0003231d, 0x014080f4, 0x00abcb7c, 0x01195c3e, 0x00308246}}, Y: Field{[10]uint32{0x031adeb9, 0x01ad8c83, 0x01e6c382, 0x0063a203, 0x037aec38, 0x02d9b0c9, 0x007b1fa3, 0x036acfbe, 0x016fcbeb, 0x002cc1ed}}}, + {X: Field{[10]uint32{0x013192d1, 0x02ff8a2f, 0x0003e8d1, 0x03e3466f, 0x0073c3be, 0x00ddd292, 0x02d7c4c9, 0x009fea81, 0x03893d17, 0x001d89f7}}, Y: Field{[10]uint32{0x028451e1, 0x01c9ac6d, 0x026f4bcf, 0x033fdb4d, 0x021326da, 0x001ddb14, 0x029a865f, 0x0157dea8, 0x036c36f4, 0x000d7499}}}, + {X: Field{[10]uint32{0x002c62b9, 0x012ca580, 0x01639ed5, 0x01cf2c16, 0x01a3df6f, 0x036ff80d, 0x025df658, 0x00cea5b4, 0x01187c9f, 0x00099999}}, Y: Field{[10]uint32{0x0286630d, 0x00096931, 0x037ba468, 0x02bbd2a5, 0x02c4e7fc, 0x00d5aa1d, 0x01fe7578, 0x01789a94, 0x03c7d34a, 0x002ecc2e}}}, + {X: Field{[10]uint32{0x022ac683, 0x02fce931, 0x037bbc7a, 0x017dcd60, 0x01ef8b12, 0x03ca9bdc, 0x006a02e8, 0x000b9df7, 0x0185fa98, 0x000ef6a4}}, Y: Field{[10]uint32{0x00a05b85, 0x00b95300, 0x02118936, 0x0172ec32, 0x0222b347, 0x002b8e1d, 0x0075a76a, 0x005e135e, 0x032bc11d, 0x00080bb7}}}, + {X: Field{[10]uint32{0x003a5c4d, 0x00cf5ae6, 0x00097bc0, 0x022dfd49, 0x023be197, 0x0215c348, 0x0313c714, 0x02d93604, 0x00de4486, 0x000be42f}}, Y: Field{[10]uint32{0x00384f89, 0x03f69c6f, 0x01705270, 0x027b3d5e, 0x01f4aa75, 0x0332a677, 0x01b2e300, 0x0351d4d9, 0x02502028, 0x0018e193}}}, + {X: Field{[10]uint32{0x00becda7, 0x02f3ef32, 0x01cb6562, 0x0309b1c7, 0x017083ed, 0x0327f35c, 0x0192e654, 0x0039bf72, 0x01d4e9b0, 0x002224fd}}, Y: Field{[10]uint32{0x0238ab50, 0x00c4ed2c, 0x003130fe, 0x0275b36e, 0x02a80fa2, 0x03831a65, 0x03566a1f, 0x0041d3ef, 0x00558e63, 0x0007ebcc}}}, + {X: Field{[10]uint32{0x0155abba, 0x030d2561, 0x0237d855, 0x0094c273, 0x00f482fc, 0x0369cd44, 0x024fac54, 0x01778fb6, 0x02e686be, 0x002b3f12}}, Y: Field{[10]uint32{0x02c52d87, 0x01c5a14a, 0x0037cb90, 0x01f3e6f4, 0x0176423f, 0x03b0a47f, 0x03a5b998, 0x0229ab4d, 0x0197d187, 0x000e1fd1}}}, + {X: Field{[10]uint32{0x0017a469, 0x00a95788, 0x020d9542, 0x039f5d19, 0x01d5fe35, 0x00a2948a, 0x03a892dd, 0x03a620bc, 0x0090a4c5, 0x000ab134}}, Y: Field{[10]uint32{0x03086c09, 0x03095c77, 0x01914a3b, 0x00afdd68, 0x01927d17, 0x03639a1a, 0x0279f2d7, 0x03b1151e, 0x01162aa3, 0x0018163d}}}, + {X: Field{[10]uint32{0x02badef6, 0x03d6139f, 0x0024e9c9, 0x03b09430, 0x02c9b1a3, 0x004f1f98, 0x03c235cd, 0x0315cb96, 0x013ffc13, 0x00004dfb}}, Y: Field{[10]uint32{0x02c6fdba, 0x0214daa3, 0x00bf54fb, 0x030bcdeb, 0x010319e7, 0x0321d63c, 0x003ff023, 0x013d442d, 0x01cc3a46, 0x000307a5}}}, + {X: Field{[10]uint32{0x033ecfe4, 0x013615fb, 0x02002cfe, 0x03dd63c2, 0x006cfb16, 0x00454ae5, 0x009f6068, 0x0228f4b2, 0x037a7214, 0x0000a280}}, Y: Field{[10]uint32{0x03973d10, 0x02ce613e, 0x03aa8a1b, 0x0093ea40, 0x02ec5951, 0x031b9e8e, 0x03788cf5, 0x037a6e34, 0x0250135c, 0x002cbd2d}}}, + {X: Field{[10]uint32{0x027a9eeb, 0x02b773c6, 0x000ae3bb, 0x016d7cd3, 0x0378ad6d, 0x01d869db, 0x01d426e8, 0x00cfef3a, 0x01518fd4, 0x000c0fb3}}, Y: Field{[10]uint32{0x01abb602, 0x0158ce66, 0x01385ea9, 0x00fa2761, 0x02cbd8dc, 0x009d72c6, 0x03a5945a, 0x02c67a59, 0x02443b73, 0x001a9ff2}}}, + {X: Field{[10]uint32{0x01533202, 0x008ce054, 0x0140a509, 0x01e7e2cc, 0x02c69cf0, 0x03595a6e, 0x001defd9, 0x03dc7099, 0x002e5680, 0x0033d8c1}}, Y: Field{[10]uint32{0x00eb4ee8, 0x03cd007b, 0x009b6b8f, 0x00ebd437, 0x00017664, 0x0386a90a, 0x01a20525, 0x03f715c6, 0x036dfb17, 0x000e7ccd}}}, + {X: Field{[10]uint32{0x031fe4b7, 0x01216a86, 0x0168c44f, 0x02a38b76, 0x0334a229, 0x0395b124, 0x0123b6f2, 0x027eda5a, 0x03efb4a4, 0x0033ebee}}, Y: Field{[10]uint32{0x029f9007, 0x034971b1, 0x02a160b5, 0x0260063e, 0x01f39506, 0x0075dbdc, 0x03afbc70, 0x005f8777, 0x034d4a9c, 0x003703b4}}}, + {X: Field{[10]uint32{0x010d363e, 0x034bcc4e, 0x0153d785, 0x01da6822, 0x004a7ffd, 0x00f1aa90, 0x0093ff7b, 0x009fa9a9, 0x01e10fd5, 0x003b038f}}, Y: Field{[10]uint32{0x027a35dd, 0x030a17e3, 0x03528fc5, 0x0303fcd4, 0x01723129, 0x005fd4f3, 0x02f3c6a7, 0x00d30420, 0x03ce3002, 0x00252f76}}}, + {X: Field{[10]uint32{0x032bcde0, 0x038a9012, 0x02f7f84b, 0x0213bac0, 0x0113e9cd, 0x000645af, 0x039c0c35, 0x008b3f52, 0x00d19144, 0x003c1f4f}}, Y: Field{[10]uint32{0x01637320, 0x007ddece, 0x018103aa, 0x001a2b8b, 0x01dfe912, 0x01b47dc1, 0x0048de51, 0x00c860df, 0x02facb39, 0x0033c325}}}, + {X: Field{[10]uint32{0x0248db10, 0x01c267cd, 0x003e2821, 0x01f799d9, 0x038a6fab, 0x00031e98, 0x0264ac0a, 0x00813a8c, 0x00b66f2e, 0x00129095}}, Y: Field{[10]uint32{0x02e5023a, 0x02acaf0b, 0x0157ac26, 0x0022eb2c, 0x01b187ab, 0x017df7e5, 0x03ef9891, 0x03f0d7be, 0x0229be93, 0x002d5443}}}, + {X: Field{[10]uint32{0x007774a8, 0x0204fa3a, 0x001d9b5d, 0x02c0e017, 0x01910285, 0x03d9c651, 0x02625829, 0x02bc74d7, 0x03cfb38e, 0x00015bce}}, Y: Field{[10]uint32{0x01ed9dc6, 0x029e9d74, 0x026bac57, 0x01c219df, 0x038a1e82, 0x0051fddc, 0x03f3e5ca, 0x01fe6a6a, 0x00e79e6b, 0x002a6e59}}}, + {X: Field{[10]uint32{0x03081295, 0x01586f9a, 0x03561ace, 0x021947f9, 0x01af6b98, 0x03aa9327, 0x02d95bff, 0x00bbf030, 0x034e07d3, 0x003e2763}}, Y: Field{[10]uint32{0x01bacc69, 0x03b1c663, 0x030d1449, 0x0145235d, 0x0075e48f, 0x01c61a65, 0x02656911, 0x00e19d8e, 0x031156a3, 0x003298cb}}}, + {X: Field{[10]uint32{0x03c5530b, 0x03948149, 0x02af9758, 0x00cf1b66, 0x032890b9, 0x007c3a4a, 0x02e4a075, 0x005bad42, 0x01a0d3e7, 0x00170de4}}, Y: Field{[10]uint32{0x03b34616, 0x03e2eae9, 0x021c3ca1, 0x0070cdab, 0x02c4ed86, 0x0244d24e, 0x01e30dae, 0x00b4445e, 0x03c62de5, 0x00113bc4}}}, + {X: Field{[10]uint32{0x03a38d27, 0x02804caa, 0x0233115f, 0x03c34e8f, 0x038ab94e, 0x01b3bab6, 0x00d71561, 0x0292b98b, 0x025ae6ba, 0x0009d21d}}, Y: Field{[10]uint32{0x03f69e48, 0x013c7c9d, 0x033590cd, 0x00cea4ec, 0x020f36b3, 0x031eba4a, 0x0105bbe6, 0x01dc3582, 0x019dde63, 0x001c7534}}}, + {X: Field{[10]uint32{0x0327e254, 0x00d8efae, 0x0145322e, 0x028116a5, 0x000d2c41, 0x01fb8f9e, 0x00e4ee18, 0x035de00b, 0x03a2f8ec, 0x002593c7}}, Y: Field{[10]uint32{0x00138a2e, 0x01598435, 0x022e6775, 0x0000ee60, 0x015137ae, 0x00b33988, 0x0081a5fa, 0x02a20fa5, 0x03cade64, 0x0031d12e}}}, + {X: Field{[10]uint32{0x01b8ca3b, 0x0217895e, 0x02754589, 0x001d3df4, 0x03ee758a, 0x01b0de7f, 0x003594fe, 0x0327ea14, 0x03758709, 0x0022fd81}}, Y: Field{[10]uint32{0x03dd51a4, 0x03986221, 0x03715a5a, 0x03b9c629, 0x02ccc193, 0x02c46343, 0x011cfb8f, 0x0375cbfd, 0x0192b3fb, 0x000f98e2}}}, + {X: Field{[10]uint32{0x02e06612, 0x008e3740, 0x015f5a10, 0x03603b83, 0x00fbff70, 0x036fb9e6, 0x03c5a95d, 0x008e70af, 0x01239189, 0x003e841c}}, Y: Field{[10]uint32{0x0168e7f1, 0x01311a3e, 0x03936c62, 0x0384b5dc, 0x02315a6b, 0x00757b07, 0x0133ea97, 0x02c29664, 0x015e1a4e, 0x00029833}}}, + {X: Field{[10]uint32{0x00975588, 0x00d39451, 0x0059383c, 0x00f2a251, 0x033fe250, 0x01e5f2e2, 0x03d145ef, 0x025ffb00, 0x02d09f6f, 0x0016d231}}, Y: Field{[10]uint32{0x006e30a0, 0x00428ea4, 0x03d83c64, 0x0114a01d, 0x02173d6c, 0x02597c4d, 0x0291762d, 0x0046f304, 0x02893526, 0x00113619}}}, + {X: Field{[10]uint32{0x02b94fd0, 0x03c6f2bb, 0x025b1ae8, 0x013552f2, 0x005d4e85, 0x0397a232, 0x025d1ea1, 0x01f8fca1, 0x03e823aa, 0x00203854}}, Y: Field{[10]uint32{0x006b9728, 0x01eb2ea8, 0x023f73ed, 0x00b01c60, 0x03c888a1, 0x03d3d904, 0x03a92d8e, 0x03046c04, 0x0229e435, 0x003b74ff}}}, + {X: Field{[10]uint32{0x01ccf2c4, 0x03b5b41e, 0x03e3dae7, 0x027c1ec7, 0x03cd25de, 0x0131b8a6, 0x0190dd15, 0x01d49b09, 0x01d977bf, 0x0005b889}}, Y: Field{[10]uint32{0x01710768, 0x00622b02, 0x0274dd85, 0x014b83e8, 0x0340088c, 0x033708ad, 0x02db82af, 0x01d551b4, 0x0123b9b5, 0x00381c0b}}}, + {X: Field{[10]uint32{0x01456938, 0x0247bf36, 0x013ce7a6, 0x028b78d6, 0x03bb064a, 0x02097af2, 0x021b65e7, 0x01b1d208, 0x020915a1, 0x0028d102}}, Y: Field{[10]uint32{0x00dbf40c, 0x01c24135, 0x0226bbe9, 0x00f79f0f, 0x0326fa5d, 0x03d0de99, 0x001323a7, 0x00aa3d59, 0x02a03a58, 0x003fdf1e}}}, + {X: Field{[10]uint32{0x01aa2b5f, 0x00c3a7b3, 0x037c80a0, 0x000e4fac, 0x018d6072, 0x00b564e1, 0x0320401f, 0x0111a008, 0x034cd116, 0x0020550c}}, Y: Field{[10]uint32{0x033d5142, 0x004e7196, 0x03d54150, 0x0361f55c, 0x0017126a, 0x02824522, 0x030676f4, 0x03939ec3, 0x014e5f97, 0x002ee902}}}, + {X: Field{[10]uint32{0x014d93c7, 0x039a96df, 0x01efa329, 0x0184f86d, 0x02fe7f23, 0x0138265d, 0x0092b257, 0x02eb28e8, 0x00ca27b5, 0x003244d2}}, Y: Field{[10]uint32{0x0176b44a, 0x0079cf16, 0x036399d6, 0x02550257, 0x01e7c372, 0x0006fed6, 0x020e62dc, 0x0268b141, 0x010de9d4, 0x00338907}}}, + {X: Field{[10]uint32{0x026e8a88, 0x0096435f, 0x024363ba, 0x0101cdf9, 0x01cf3629, 0x0272a592, 0x0235e995, 0x02b5319d, 0x01a879fe, 0x0025022d}}, Y: Field{[10]uint32{0x03994fc0, 0x005d915f, 0x00fdfcbf, 0x034a12e0, 0x00e02155, 0x007d1825, 0x02858d52, 0x004306fc, 0x010a26c7, 0x003842d0}}}, + {X: Field{[10]uint32{0x02bdd2ce, 0x00f9f975, 0x01b92e7d, 0x02436408, 0x02f80ddf, 0x02160aab, 0x020a159f, 0x0122e1e7, 0x0158eefe, 0x002e1474}}, Y: Field{[10]uint32{0x02d85469, 0x02f6a8b1, 0x0293f06a, 0x036394dd, 0x0060facf, 0x0271f560, 0x00c53f06, 0x00908707, 0x02e10079, 0x000a42b8}}}, + {X: Field{[10]uint32{0x013d10fc, 0x01c79ab9, 0x005eb1b9, 0x02e15368, 0x0387e7a5, 0x0394d824, 0x00053875, 0x00801d96, 0x034d4a7c, 0x00274c82}}, Y: Field{[10]uint32{0x01d7c456, 0x000fd1c9, 0x0306e796, 0x018729a0, 0x009b44be, 0x039e0ec3, 0x022acd0a, 0x006435a0, 0x037b6a1f, 0x0013dab2}}}, + {X: Field{[10]uint32{0x018ac7b5, 0x002a7a0d, 0x004c22f3, 0x0053401d, 0x01eaa491, 0x004e9362, 0x0386799d, 0x03b1953f, 0x00107b29, 0x001b5de6}}, Y: Field{[10]uint32{0x03823950, 0x028f9e76, 0x038804b0, 0x00d00ee8, 0x0177b2a3, 0x03899731, 0x0060a2ac, 0x013c26e8, 0x03cc105c, 0x0023de64}}}, + {X: Field{[10]uint32{0x017f6489, 0x02476a79, 0x0372d73c, 0x001cb209, 0x00680c96, 0x02015b4a, 0x017d62db, 0x013eda68, 0x02ce77e1, 0x002f6cb4}}, Y: Field{[10]uint32{0x03aa590d, 0x02790b96, 0x030c184c, 0x00000f0a, 0x0008a3bc, 0x029bd592, 0x038ecede, 0x00ec6773, 0x0371d43c, 0x0002707b}}}, + {X: Field{[10]uint32{0x0055b3fa, 0x03ff68fc, 0x02dea741, 0x02a34286, 0x001f7897, 0x01ceec16, 0x01b4787f, 0x002a5293, 0x00ff1ab7, 0x00126a33}}, Y: Field{[10]uint32{0x006ba426, 0x024a0a9b, 0x0243d8bd, 0x0053f5b7, 0x0115b419, 0x03814eb5, 0x02414ed6, 0x03af47b8, 0x02772049, 0x003ca634}}}, + {X: Field{[10]uint32{0x029d2236, 0x0285ce9d, 0x000d77f1, 0x014ad441, 0x013b3d56, 0x00c5e80b, 0x0267992d, 0x02dec158, 0x016eb466, 0x00328fdf}}, Y: Field{[10]uint32{0x02145c37, 0x036ec4a3, 0x021b7126, 0x02b7dbc6, 0x0090e538, 0x025a90b0, 0x00e6f2bf, 0x00e13bde, 0x02259dcf, 0x00289b58}}}, + {X: Field{[10]uint32{0x037176e4, 0x03a98c1c, 0x0065bc00, 0x02b699af, 0x01902e9c, 0x003422e6, 0x038469cb, 0x009f46d1, 0x0214f1c4, 0x002d9cb3}}, Y: Field{[10]uint32{0x00865efa, 0x022fdd9a, 0x03eddb81, 0x0142e312, 0x0083f4f5, 0x00f1695b, 0x020f1aff, 0x0145d89e, 0x01790001, 0x0005db02}}}, + {X: Field{[10]uint32{0x029c199b, 0x03244ebb, 0x0168bda3, 0x01e23cba, 0x022c26dd, 0x010dde2a, 0x01b6866f, 0x01886f5b, 0x0357d4ad, 0x002f72ea}}, Y: Field{[10]uint32{0x00df5603, 0x01548ca2, 0x03c11240, 0x003ba4f1, 0x021cee9f, 0x03585a36, 0x0075a338, 0x004ff5f7, 0x00729bb2, 0x001e61a2}}}, + {X: Field{[10]uint32{0x01fbf9f5, 0x00e12c95, 0x001961cb, 0x03420b60, 0x020d5bee, 0x0317d08f, 0x0064aa96, 0x01f7d5d3, 0x031e382f, 0x003d7c97}}, Y: Field{[10]uint32{0x02210221, 0x0277febc, 0x0324c98a, 0x01a03849, 0x00f54bc0, 0x02942934, 0x0393a829, 0x012ab960, 0x030b5ad8, 0x003a8e23}}}, + {X: Field{[10]uint32{0x02ae09c3, 0x002e2505, 0x0250aa73, 0x01261689, 0x03603720, 0x009d1f10, 0x026e280b, 0x02ae7872, 0x0064f9f8, 0x0034a841}}, Y: Field{[10]uint32{0x029c5962, 0x033da2c8, 0x01b454fd, 0x03aeacf0, 0x032c9ffa, 0x00b240ba, 0x00d8dcaf, 0x0194cc0a, 0x01ed8dc4, 0x003465c6}}}, + {X: Field{[10]uint32{0x00410038, 0x02068008, 0x0291cc5f, 0x00ffcffd, 0x0119058c, 0x03979aa9, 0x01221058, 0x01312f15, 0x02fee672, 0x00224956}}, Y: Field{[10]uint32{0x023fd7bd, 0x01f62bf6, 0x013e6914, 0x02d19c5c, 0x00c833c3, 0x03eead40, 0x0352ffb4, 0x0324d046, 0x02dd9560, 0x00023589}}}, + {X: Field{[10]uint32{0x016e3952, 0x004bef55, 0x03f94beb, 0x03c81b24, 0x015165e3, 0x01e06406, 0x027d73f5, 0x03bbb8a9, 0x0042c5ec, 0x001791a3}}, Y: Field{[10]uint32{0x00f240de, 0x01994163, 0x021edc38, 0x02d0e92b, 0x03ce1fde, 0x00c39003, 0x00b6a8c3, 0x025f8aae, 0x024a467f, 0x002be0f8}}}, + {X: Field{[10]uint32{0x019c4e2c, 0x021401fa, 0x0036d7fc, 0x023a4e14, 0x03552caf, 0x03d52ac0, 0x006850e8, 0x00662fd8, 0x03ac9eca, 0x001c30af}}, Y: Field{[10]uint32{0x02ea37b3, 0x03fadb35, 0x00591544, 0x010034b1, 0x023b45d9, 0x0033dd65, 0x00f99392, 0x02b95e2a, 0x0365f5ff, 0x00180c88}}}, + {X: Field{[10]uint32{0x01c2f318, 0x0107032e, 0x001eeab6, 0x006993a4, 0x03bbb0db, 0x031e58c3, 0x000f86d7, 0x01ad0814, 0x013afe5f, 0x0005850f}}, Y: Field{[10]uint32{0x036a8a94, 0x022c91f5, 0x01e68ecb, 0x009132b4, 0x039fd749, 0x0134734d, 0x0109561d, 0x02075e04, 0x00140bdf, 0x001c1e3a}}}, + {X: Field{[10]uint32{0x02b62bce, 0x01ba5985, 0x03ed029f, 0x02ddce82, 0x03e1326e, 0x003fd82a, 0x025b0346, 0x0059136c, 0x02ada934, 0x0022b0cf}}, Y: Field{[10]uint32{0x00945cc6, 0x0276ff46, 0x0005dc6d, 0x013f6918, 0x00ea9e61, 0x0266f694, 0x0055d0ed, 0x0062d2f4, 0x03566f0d, 0x0001b41d}}}, + {X: Field{[10]uint32{0x0166e22a, 0x02a78189, 0x03ce771e, 0x0096843e, 0x0270cb33, 0x038323ad, 0x01f01166, 0x03abf7bd, 0x00b89e7f, 0x0011dae6}}, Y: Field{[10]uint32{0x02a91050, 0x01743875, 0x03f4730c, 0x0176e03e, 0x00fd98bd, 0x0004bc88, 0x0138483c, 0x00ae19f8, 0x00418325, 0x000e36fc}}}, + {X: Field{[10]uint32{0x01497f11, 0x03114fbb, 0x03058a19, 0x01fc64a5, 0x012e383a, 0x0086b7e8, 0x0302bcb3, 0x0270ef4c, 0x02eff0de, 0x00393498}}, Y: Field{[10]uint32{0x022781d3, 0x01f3def3, 0x0050bfec, 0x0039f008, 0x01953d0c, 0x03a92400, 0x02070c49, 0x0048323c, 0x00fc2fd6, 0x00287e0c}}}, + {X: Field{[10]uint32{0x00b5cbf8, 0x0303f3fc, 0x019871be, 0x01e5065b, 0x03e2e092, 0x027ccf99, 0x00c4f7cb, 0x02f86fc6, 0x010f48f0, 0x0019ef21}}, Y: Field{[10]uint32{0x0352d32f, 0x0373ae17, 0x03355526, 0x02f24b83, 0x01b7e6fa, 0x034bc833, 0x013e9271, 0x0292c91a, 0x0070334a, 0x00389581}}}, + {X: Field{[10]uint32{0x02ef2797, 0x0147849c, 0x02b8d58f, 0x029689c4, 0x02b543a6, 0x00aac9d3, 0x024be020, 0x01250895, 0x02c5c0dd, 0x0014372c}}, Y: Field{[10]uint32{0x02b04ea0, 0x0227e352, 0x03ca890d, 0x01a8bddf, 0x038d2ea1, 0x01c17732, 0x03854b49, 0x01132671, 0x036fb69c, 0x000b2f00}}}, + {X: Field{[10]uint32{0x0358bd6e, 0x029edda1, 0x0287644b, 0x013a2644, 0x01f86080, 0x0377d599, 0x00a57f1b, 0x0123d07a, 0x01777849, 0x001b26f1}}, Y: Field{[10]uint32{0x03b3ff20, 0x003fd13a, 0x00260cd4, 0x005724a0, 0x03a04019, 0x00892406, 0x029ca3d1, 0x02b211cc, 0x01f35998, 0x0021299c}}}, + {X: Field{[10]uint32{0x0382a868, 0x01f12520, 0x010e7a33, 0x011919ce, 0x0128b441, 0x0231bab4, 0x03ceb361, 0x036ee67c, 0x03c6d27c, 0x00176b24}}, Y: Field{[10]uint32{0x002df508, 0x0292fe0d, 0x02d8bac2, 0x02e38c57, 0x008a91c2, 0x025dc13e, 0x034578aa, 0x0020b9d0, 0x00651805, 0x002195c8}}}, + {X: Field{[10]uint32{0x01780c86, 0x00af9f21, 0x0196f2ed, 0x002ad1ae, 0x03f6b2a4, 0x00c1cf03, 0x02e9484d, 0x015f85e9, 0x03c65e1c, 0x00081e40}}, Y: Field{[10]uint32{0x03f6a442, 0x018cf051, 0x02c14854, 0x020c4569, 0x020bbdcb, 0x00f85e8e, 0x00fd3107, 0x01353db1, 0x00202956, 0x0012d5a1}}}, + {X: Field{[10]uint32{0x02dc2f90, 0x0118884b, 0x011dd295, 0x01320a44, 0x036ffbc9, 0x00a0a0c3, 0x03351132, 0x024fa4ea, 0x03639be5, 0x00368097}}, Y: Field{[10]uint32{0x016d2723, 0x0250e0e4, 0x02e68eb6, 0x02997bd2, 0x00714def, 0x006b3d72, 0x02dea9a2, 0x0395dbc3, 0x01eba315, 0x0026d2b3}}}, + {X: Field{[10]uint32{0x02823cb1, 0x002943ec, 0x02ea5603, 0x03d7b91f, 0x012a0f61, 0x021f3c64, 0x026ffa6b, 0x02272084, 0x02cd01b4, 0x000c9fea}}, Y: Field{[10]uint32{0x00c33b9b, 0x03e7b3ee, 0x037e96b7, 0x019d7f85, 0x0314c00c, 0x000f97e2, 0x00c5ac29, 0x00026c51, 0x03426010, 0x00018d2a}}}, + {X: Field{[10]uint32{0x037e8084, 0x0091561e, 0x010cc79a, 0x005fd6fd, 0x006c9cab, 0x02746ff6, 0x013478ba, 0x03d18aa1, 0x03ee1619, 0x001133fe}}, Y: Field{[10]uint32{0x008e7da4, 0x031c535d, 0x01f64563, 0x00703f8d, 0x0176442a, 0x0041e691, 0x02f8c288, 0x0278a1fa, 0x03db6207, 0x002c2260}}}, + {X: Field{[10]uint32{0x02a6fe3a, 0x0085c381, 0x0393a43a, 0x02141203, 0x03beb197, 0x00d3477a, 0x01ad6797, 0x00338b08, 0x01ca1373, 0x00317651}}, Y: Field{[10]uint32{0x023cc3fb, 0x01efc6eb, 0x02f0446e, 0x03ec328f, 0x0374102f, 0x0392a707, 0x03f72878, 0x01c503d9, 0x011b4d8b, 0x0028eab4}}}, + {X: Field{[10]uint32{0x02c0de31, 0x0290b873, 0x019e677f, 0x03d90d4d, 0x01d4bf22, 0x03c76c3b, 0x032694b8, 0x03a4d446, 0x031984df, 0x003d3633}}, Y: Field{[10]uint32{0x01a30845, 0x02e970ba, 0x03f020c0, 0x01753ec3, 0x025b48a5, 0x01f8eff7, 0x02d76bfc, 0x0062035e, 0x01223aae, 0x0020f40b}}}, + {X: Field{[10]uint32{0x0037c4cd, 0x002b9f06, 0x02e707e5, 0x0387854e, 0x03a2dce0, 0x0343c3b9, 0x006380af, 0x002f2243, 0x01dc8e7b, 0x0004f5c8}}, Y: Field{[10]uint32{0x00841116, 0x01844ba2, 0x00d28e97, 0x004b57c5, 0x009309c4, 0x002bdf93, 0x039e8237, 0x015045fa, 0x01e3e157, 0x00318830}}}, + {X: Field{[10]uint32{0x0265ce1a, 0x018b8458, 0x01783928, 0x013389ec, 0x02516482, 0x013076bc, 0x03eb55d9, 0x019ca081, 0x03a666fc, 0x00397e7b}}, Y: Field{[10]uint32{0x000d9975, 0x00bc8f57, 0x0156c771, 0x033d4f82, 0x0201f0f3, 0x018f5e6d, 0x03f9fbe1, 0x00aed48b, 0x03e61830, 0x001402a7}}}, + {X: Field{[10]uint32{0x0319c9ec, 0x0180f0f0, 0x016988da, 0x038290fa, 0x02a48ea0, 0x009ec6cc, 0x027abb98, 0x0284dd96, 0x00bd0a1b, 0x001cfb8f}}, Y: Field{[10]uint32{0x02b38f58, 0x017b1686, 0x00744b0a, 0x03408386, 0x03bbc909, 0x00ba097c, 0x0330bd5a, 0x01a272fa, 0x02b44093, 0x00365a0c}}}, + {X: Field{[10]uint32{0x01990d91, 0x0074b3f1, 0x0255df10, 0x0007c09e, 0x003e0285, 0x0089d429, 0x03285e71, 0x01aeea04, 0x03c59404, 0x00046e4b}}, Y: Field{[10]uint32{0x00315417, 0x0245c5a9, 0x03b639fe, 0x03347655, 0x0023b324, 0x002526cb, 0x01cfcd08, 0x033f8103, 0x00aae20f, 0x003822c9}}}, + {X: Field{[10]uint32{0x0160935b, 0x032873e4, 0x006a0623, 0x0148d8bc, 0x01b1bf49, 0x008a9897, 0x014442a0, 0x003717ec, 0x029c22be, 0x000c10d9}}, Y: Field{[10]uint32{0x00d0eb34, 0x034b2189, 0x00a2206d, 0x02c9724b, 0x0341eead, 0x0349b886, 0x0152c044, 0x01f5afeb, 0x00b04bf4, 0x0037120d}}}, + {X: Field{[10]uint32{0x015f9a0c, 0x02d71f4f, 0x00495132, 0x0185aa72, 0x023f92aa, 0x001f7b12, 0x007622b4, 0x034510ae, 0x01aac290, 0x0012430e}}, Y: Field{[10]uint32{0x0126b986, 0x01a36b8a, 0x021eab3d, 0x03799dcf, 0x03110f87, 0x00f2cc53, 0x001361f7, 0x012a9bfa, 0x00fd5784, 0x00171db0}}}, + {X: Field{[10]uint32{0x0002d03a, 0x02c90ce4, 0x03f2d2bb, 0x02528f82, 0x023a4caf, 0x01cac310, 0x01fb2127, 0x00cd1f28, 0x015867d7, 0x003f7573}}, Y: Field{[10]uint32{0x03411995, 0x033a425d, 0x0117210b, 0x01321762, 0x01bd69f8, 0x02f25369, 0x035bcc06, 0x01af1dbe, 0x0007d1d2, 0x003bf97d}}}, + {X: Field{[10]uint32{0x00435ea9, 0x031405c5, 0x012d80e9, 0x02272b46, 0x00e2d359, 0x01956b10, 0x03db2722, 0x003f3910, 0x008eb083, 0x002f2284}}, Y: Field{[10]uint32{0x03c979f9, 0x01a6e4f8, 0x00d60220, 0x03d8a41f, 0x0076bd3a, 0x024c65b0, 0x008a384b, 0x0369d29c, 0x0258cbc3, 0x00249300}}}, + {X: Field{[10]uint32{0x02924b44, 0x0177e3ab, 0x02e3b339, 0x02904054, 0x012c706e, 0x00626273, 0x02e431a7, 0x02db2e1a, 0x036e41f4, 0x003b6026}}, Y: Field{[10]uint32{0x00315da8, 0x0326ff19, 0x01f8a324, 0x02642c46, 0x00bede66, 0x0251eaa2, 0x0142ffe0, 0x01562723, 0x005c0329, 0x0004d760}}}, + {X: Field{[10]uint32{0x00da52d8, 0x02145edb, 0x03276797, 0x0049e7a7, 0x00043982, 0x0390b5aa, 0x007d2f1e, 0x00781d05, 0x02c75d87, 0x0009ad42}}, Y: Field{[10]uint32{0x005dd7a0, 0x011aeb55, 0x005180e3, 0x02814879, 0x021fe37e, 0x00d253c3, 0x014b4c80, 0x01ba7c2c, 0x00638642, 0x00099667}}}, + {X: Field{[10]uint32{0x03e8efd5, 0x02e53527, 0x01dd725a, 0x00419de1, 0x01679f6b, 0x02241f3c, 0x02746ff9, 0x033351fd, 0x00de27d0, 0x00333b62}}, Y: Field{[10]uint32{0x03f5729a, 0x037d0f5c, 0x00825fe4, 0x019f38af, 0x00e2beba, 0x014ad09a, 0x036adc2c, 0x0212b2d2, 0x022b4dc5, 0x0016c3b7}}}, + {X: Field{[10]uint32{0x003c6249, 0x02a20f76, 0x032bb52d, 0x005863d1, 0x02bf3fe5, 0x01e221b3, 0x00429c11, 0x018cc8c2, 0x03cb3152, 0x00363b7d}}, Y: Field{[10]uint32{0x03984be3, 0x036bc1c5, 0x033437f3, 0x0201ad21, 0x0108c71b, 0x002e9a47, 0x03427e13, 0x03bbdb50, 0x003ec155, 0x00295aaf}}}, + {X: Field{[10]uint32{0x0164b4ef, 0x02dc711d, 0x02515c2f, 0x00414fd9, 0x02526489, 0x035b23f3, 0x0149aa5c, 0x00e9d542, 0x03c9f8db, 0x003b60b0}}, Y: Field{[10]uint32{0x00b2f0b4, 0x03a3f948, 0x00f39b06, 0x032057f3, 0x0141ddcc, 0x0112a291, 0x029a26d4, 0x034f1dbe, 0x014906d9, 0x0017b966}}}, + {X: Field{[10]uint32{0x018ca937, 0x006b910f, 0x0365e777, 0x02b61620, 0x005853b3, 0x01b54212, 0x026249d5, 0x03ad5017, 0x03aee89a, 0x001b89de}}, Y: Field{[10]uint32{0x01f40b8e, 0x01f408ce, 0x025b403f, 0x03713892, 0x008f9623, 0x00e845c3, 0x01a3fe66, 0x02529f0c, 0x03d81e6f, 0x002121c6}}}, + {X: Field{[10]uint32{0x00a03c5c, 0x00abee52, 0x00967f70, 0x0109d9da, 0x00f2f8b6, 0x0386bfe5, 0x01b12293, 0x00484159, 0x02c86727, 0x002bad9e}}, Y: Field{[10]uint32{0x00bde197, 0x0034875e, 0x0289b698, 0x02fcdc1f, 0x02747100, 0x01bfd6b1, 0x027898d6, 0x02700f37, 0x01889425, 0x003f34f1}}}, + {X: Field{[10]uint32{0x0283da79, 0x01f381d4, 0x03af23ba, 0x024e8f44, 0x00457531, 0x00e18cfa, 0x00967d1e, 0x031d5a53, 0x034baa20, 0x0027c1ff}}, Y: Field{[10]uint32{0x03f2136b, 0x017edff7, 0x02e36397, 0x03df656e, 0x0014308c, 0x02b28fc7, 0x03c5f363, 0x0185a3fc, 0x030d49d0, 0x002ba2df}}}, + {X: Field{[10]uint32{0x013e1520, 0x00e5755c, 0x03df7243, 0x0325dab3, 0x03baafc3, 0x02f15406, 0x004b3ef7, 0x036ae859, 0x0114a026, 0x0009011b}}, Y: Field{[10]uint32{0x02029ae6, 0x0219f32a, 0x016cd321, 0x0202eb43, 0x0037fd53, 0x00554d2d, 0x013cd0e9, 0x0028c6ea, 0x01e96dc4, 0x00099521}}}, + {X: Field{[10]uint32{0x033de519, 0x02f08cca, 0x010c913b, 0x02adf67e, 0x011806af, 0x015d39ae, 0x0344f48c, 0x03471a00, 0x0126bf8f, 0x00004dda}}, Y: Field{[10]uint32{0x01a61fa5, 0x02f9e575, 0x01ced56e, 0x014685d5, 0x018aed90, 0x01f4da5b, 0x02b2198e, 0x01309be1, 0x00e7c4b4, 0x0028d040}}}, + {X: Field{[10]uint32{0x035a7d6e, 0x03268fbb, 0x015f11ef, 0x02996073, 0x025e4c38, 0x0045aba0, 0x037c85fb, 0x0319a21f, 0x014e816c, 0x00250f1b}}, Y: Field{[10]uint32{0x029de8dd, 0x00c69825, 0x02b24eca, 0x01c0c5a7, 0x0274112f, 0x0220fb8d, 0x02351657, 0x0369b4a7, 0x0324f618, 0x00364f51}}}, + {X: Field{[10]uint32{0x005432d9, 0x002023a2, 0x03f53d4d, 0x0252bd82, 0x03a0f46e, 0x017d3e19, 0x03c9e61d, 0x0183f72b, 0x001f1592, 0x002b7e01}}, Y: Field{[10]uint32{0x03e57958, 0x01680dc6, 0x02d952b9, 0x01779b0f, 0x02c055ff, 0x03a42cdb, 0x0331bcbb, 0x0145bcf5, 0x021f99d2, 0x00313aae}}}, + {X: Field{[10]uint32{0x022dcc44, 0x014df01b, 0x01bb8d96, 0x01860c97, 0x01dc0d94, 0x001ea7ea, 0x01defb67, 0x02b82047, 0x0313a404, 0x0005705f}}, Y: Field{[10]uint32{0x01b6898e, 0x03ce0eba, 0x01dc679d, 0x01898359, 0x01a799fb, 0x0144b5e7, 0x0042b482, 0x0257a0da, 0x0352021f, 0x0021d034}}}, + {X: Field{[10]uint32{0x02cb8ca0, 0x012df372, 0x0143580e, 0x03b46b0c, 0x00966ec9, 0x01ae04f7, 0x01bd5758, 0x01665271, 0x03356236, 0x0021eeee}}, Y: Field{[10]uint32{0x022a48c4, 0x01892a34, 0x00a36f83, 0x03a472b5, 0x036a28f4, 0x00928fa6, 0x0214ccbe, 0x00f09257, 0x012c1bfc, 0x00005666}}}, + {X: Field{[10]uint32{0x031fa105, 0x01705da7, 0x00daf95b, 0x00f35751, 0x03564da7, 0x02ba710c, 0x0082b5fe, 0x01530678, 0x004a0964, 0x000e6f45}}, Y: Field{[10]uint32{0x016fb207, 0x01dec4c9, 0x019bcfa2, 0x009ccc0c, 0x01dadf15, 0x030f2a3e, 0x02be12eb, 0x03535be2, 0x011c30b5, 0x003ffa28}}}, + {X: Field{[10]uint32{0x003bca7a, 0x02ef592a, 0x00a9ab78, 0x01dbba5c, 0x00a1c696, 0x0196cbd3, 0x0399bfe2, 0x030319ae, 0x034f9bce, 0x0031393a}}, Y: Field{[10]uint32{0x02bfc286, 0x012283a5, 0x03cb7c22, 0x00ed13f0, 0x012ecb49, 0x001798e0, 0x024be2bd, 0x02e712f3, 0x003d316c, 0x0006ee6a}}}, + {X: Field{[10]uint32{0x03244e69, 0x0392bb33, 0x01801488, 0x00d3d4f0, 0x028b53f0, 0x023280d7, 0x01dd2f44, 0x034cd3c3, 0x03831c80, 0x003060f9}}, Y: Field{[10]uint32{0x01a8b820, 0x00c362f6, 0x020b1593, 0x02552539, 0x0008ff2f, 0x03770203, 0x03389268, 0x007520f6, 0x02aac771, 0x003e663f}}}, + {X: Field{[10]uint32{0x02d47d92, 0x0309007f, 0x03b6be39, 0x03655d4e, 0x027ac812, 0x00dd3674, 0x013b630f, 0x038423c2, 0x03ac22a2, 0x00267475}}, Y: Field{[10]uint32{0x02d0e1f0, 0x031378d4, 0x008b039c, 0x00f70d9b, 0x0352080a, 0x00daa25e, 0x01ca3d9b, 0x038d07a3, 0x033488df, 0x000299f4}}}, + {X: Field{[10]uint32{0x0161cea5, 0x033324ab, 0x012bc5c3, 0x00e79fd7, 0x02985a33, 0x01a42420, 0x03d6f187, 0x0226ef7c, 0x025d16cd, 0x00381c02}}, Y: Field{[10]uint32{0x00a0b0f0, 0x025381dc, 0x007e3bd9, 0x00a529eb, 0x001fd08b, 0x02756708, 0x03ec97bc, 0x00fea102, 0x03e03895, 0x0009bdaa}}}, + {X: Field{[10]uint32{0x01a7e721, 0x021e8f98, 0x0268b554, 0x01734fe9, 0x025415e9, 0x01ea98bb, 0x03813b56, 0x0360e546, 0x02e8cf36, 0x002c66fd}}, Y: Field{[10]uint32{0x0170153d, 0x00fe2e46, 0x01041fc0, 0x016e9dc2, 0x0246c105, 0x030439c4, 0x019f59e4, 0x036cbb35, 0x00a5ca2c, 0x0018c39e}}}, + {X: Field{[10]uint32{0x0371fd44, 0x039b867f, 0x03943c6f, 0x01c870cc, 0x0039abaf, 0x025c051d, 0x0027adfa, 0x0343b220, 0x0156e90d, 0x00094024}}, Y: Field{[10]uint32{0x033afc11, 0x019b87d5, 0x01dec9c4, 0x0000b467, 0x01b78255, 0x02e4ce16, 0x014ed74c, 0x01d8c808, 0x03dc8647, 0x000c9011}}}, + {X: Field{[10]uint32{0x01a3e4ae, 0x02e14e18, 0x00681771, 0x007e588e, 0x02aca501, 0x03531402, 0x030c98d9, 0x0174726e, 0x03e8bbe4, 0x0011739f}}, Y: Field{[10]uint32{0x0392f8b1, 0x0018b908, 0x008327ca, 0x01d804d6, 0x019e41b1, 0x02db1fd9, 0x00725702, 0x02e3c297, 0x02afd1ad, 0x00232f08}}}, + {X: Field{[10]uint32{0x019ec059, 0x020522d8, 0x026834e3, 0x014d0ec4, 0x02b939e9, 0x028a1bbd, 0x03392120, 0x01ff19f7, 0x0107d3a2, 0x001cc955}}, Y: Field{[10]uint32{0x01c35b63, 0x013a4fc9, 0x00e28a35, 0x03b44d13, 0x00eeba10, 0x03b5b233, 0x00f3deda, 0x0008376c, 0x02e6e941, 0x000c5d35}}}, + {X: Field{[10]uint32{0x0011df58, 0x0002b072, 0x03885978, 0x00b68481, 0x03602596, 0x0322eb4f, 0x009a9458, 0x030e787b, 0x02f401c6, 0x0025acb3}}, Y: Field{[10]uint32{0x027fa8cd, 0x009271a2, 0x01a997d1, 0x00b660f7, 0x002fbf9e, 0x003000d7, 0x01ab5b7c, 0x02b498eb, 0x012141b4, 0x003b617b}}}, + {X: Field{[10]uint32{0x02b9c772, 0x00fbbd90, 0x01cdbb98, 0x0324dc09, 0x0357f23c, 0x0244aba1, 0x007bebb0, 0x02ca2a8c, 0x001cd941, 0x0015d906}}, Y: Field{[10]uint32{0x00ac7089, 0x0234afb8, 0x01b8ef2c, 0x0133cf38, 0x01249576, 0x0115e90f, 0x01f64375, 0x0023f76d, 0x034fc239, 0x003a05ce}}}, + {X: Field{[10]uint32{0x03ec1b61, 0x00a7b724, 0x02c60efd, 0x028e0aed, 0x02ea16d2, 0x0356c9e0, 0x031e3145, 0x0141580a, 0x00397e96, 0x000e3b1e}}, Y: Field{[10]uint32{0x018ec96e, 0x0353258c, 0x01089744, 0x00c47354, 0x02f522e6, 0x012fc995, 0x02caa3ba, 0x0378b362, 0x02a4c7b6, 0x002b3c13}}}, + {X: Field{[10]uint32{0x02c0b572, 0x03b55e5d, 0x01eb8b7a, 0x03752ca1, 0x0179c9f7, 0x0023dce2, 0x00439fa1, 0x0071e5d6, 0x038013d0, 0x001bb13b}}, Y: Field{[10]uint32{0x0098be7e, 0x006e8bf2, 0x004df13c, 0x01abd7cf, 0x017a6d26, 0x03adabc5, 0x026560e3, 0x03b37c0e, 0x0242e618, 0x0008ca39}}}, + {X: Field{[10]uint32{0x0377141b, 0x0249127b, 0x027ba884, 0x020713b5, 0x034c40a5, 0x029da1a0, 0x000fc149, 0x01ec6940, 0x036b30c2, 0x00363687}}, Y: Field{[10]uint32{0x01519758, 0x00ecd20b, 0x007dc49a, 0x0385c9ca, 0x03d92464, 0x00e4e1f5, 0x038c3108, 0x024b3c0a, 0x02d6876d, 0x00332d4c}}}, + {X: Field{[10]uint32{0x037ccb90, 0x03b458a3, 0x022b4e5f, 0x01b0ce1c, 0x026894d3, 0x032a1287, 0x02aa9f0e, 0x01c3b259, 0x00027349, 0x00213c95}}, Y: Field{[10]uint32{0x035cd8b1, 0x0308648c, 0x02944983, 0x00df4e51, 0x0109bee1, 0x027c18c6, 0x017d283d, 0x018c0b32, 0x0109f07e, 0x003cb5ff}}}, + {X: Field{[10]uint32{0x029503e3, 0x02cb7733, 0x00038136, 0x03533c02, 0x033adabf, 0x00761bfd, 0x01190e39, 0x010dca16, 0x02b55887, 0x003bd9d4}}, Y: Field{[10]uint32{0x03131c56, 0x00567e0f, 0x010f91e6, 0x0391850e, 0x0273f949, 0x02373e63, 0x03aa6759, 0x02d1e5f2, 0x0250013c, 0x0008f672}}}, + {X: Field{[10]uint32{0x0085ba6d, 0x02f0b004, 0x02a46602, 0x01d3f845, 0x00fe198f, 0x01df1ddb, 0x001cb52c, 0x0399f3d9, 0x01903b3f, 0x003e2361}}, Y: Field{[10]uint32{0x0208742d, 0x001fedee, 0x03a32405, 0x028a39b3, 0x0021da61, 0x0377c539, 0x0295714c, 0x02b5a28d, 0x02bd2178, 0x00162bca}}}, + {X: Field{[10]uint32{0x01b9c01c, 0x037805cb, 0x01354645, 0x03543457, 0x0218cde6, 0x0177b5f4, 0x01daaa8c, 0x02e5719d, 0x01bdd366, 0x0024edce}}, Y: Field{[10]uint32{0x01cf3627, 0x02e21b89, 0x03fb4748, 0x03c71f22, 0x017afea5, 0x02b83f2b, 0x03af5b96, 0x023aa98c, 0x01356c2f, 0x000093b1}}}, + {X: Field{[10]uint32{0x00443394, 0x00fc88c0, 0x00f95d41, 0x02496260, 0x006d313b, 0x02030455, 0x0382f801, 0x03968b6f, 0x0004da7a, 0x001ccb3d}}, Y: Field{[10]uint32{0x01596953, 0x035e2693, 0x01e431b7, 0x021054f2, 0x02e88200, 0x029dded5, 0x02eae580, 0x02e42a40, 0x03261758, 0x002163a0}}}, + {X: Field{[10]uint32{0x01d36e32, 0x0296652a, 0x02f7528e, 0x00ad6f92, 0x0365fc25, 0x006e0e2d, 0x002e024a, 0x0000b4fe, 0x03192c40, 0x003bf781}}, Y: Field{[10]uint32{0x01d9107b, 0x00be034f, 0x01483f0c, 0x02d5a751, 0x03b8dd69, 0x020ea71b, 0x02635851, 0x00d5da46, 0x035c3a15, 0x00227074}}}, + {X: Field{[10]uint32{0x02c90a15, 0x03764307, 0x034a6b42, 0x016e6c69, 0x02f114e6, 0x02a542f6, 0x0020c1cd, 0x00ce49d9, 0x02f28069, 0x0027bb6a}}, Y: Field{[10]uint32{0x03164de2, 0x022e81f4, 0x035337de, 0x03842b0e, 0x0226f427, 0x0134a314, 0x009728da, 0x010334c9, 0x00247fa5, 0x0004e677}}}, + {X: Field{[10]uint32{0x01433195, 0x034f5086, 0x017dd877, 0x031f52e8, 0x03775805, 0x03f6d21f, 0x01eaafeb, 0x028851a7, 0x028d342a, 0x0008fc3a}}, Y: Field{[10]uint32{0x03699b03, 0x02ff5182, 0x0306e4fc, 0x030e79f0, 0x0163444d, 0x0353a4f0, 0x032ca8d1, 0x02071574, 0x0231d2a4, 0x0037071b}}}, + {X: Field{[10]uint32{0x03e060b8, 0x032ddbaa, 0x0052c074, 0x003538cc, 0x02edd47c, 0x01a8c174, 0x0116e827, 0x02798162, 0x027058c2, 0x00003614}}, Y: Field{[10]uint32{0x010cfac8, 0x03f69baf, 0x012583a2, 0x02da2a68, 0x0384d497, 0x027a9264, 0x009e5105, 0x016ee57b, 0x0104e4db, 0x00268392}}}, + {X: Field{[10]uint32{0x009f28b8, 0x02411acc, 0x0363ad4d, 0x00ddeacd, 0x00f7d36b, 0x0033ce18, 0x022d2d19, 0x00481164, 0x015cccf9, 0x0006cd32}}, Y: Field{[10]uint32{0x0151e948, 0x0128478a, 0x0008f6f1, 0x03a246ed, 0x01f7080d, 0x0181f2d3, 0x0078c3d2, 0x0198ead9, 0x020c3f5f, 0x001c308c}}}, + {X: Field{[10]uint32{0x0384b228, 0x02851cd2, 0x028c28fc, 0x00d85263, 0x0289569d, 0x03c41c1e, 0x016d4e20, 0x0165aedd, 0x03dcae5e, 0x000c9563}}, Y: Field{[10]uint32{0x02038d86, 0x0241be45, 0x03cfb501, 0x0381d2db, 0x01fe63f6, 0x0356ab36, 0x03978c43, 0x01d56ec8, 0x00b75ed5, 0x001dd66a}}}, + {X: Field{[10]uint32{0x01984acd, 0x032c7a37, 0x02bf8577, 0x03b3e8f5, 0x016028d7, 0x00102bef, 0x01a38202, 0x02f15ce4, 0x037737d2, 0x00192062}}, Y: Field{[10]uint32{0x01ca2300, 0x001d225c, 0x03e1f057, 0x03b29c99, 0x012cf895, 0x0298c12f, 0x027b8914, 0x01553648, 0x01346ae9, 0x001080ae}}}, + {X: Field{[10]uint32{0x0177b333, 0x00b61f63, 0x031aae57, 0x0015cb86, 0x01bcd337, 0x010a2154, 0x02a23732, 0x01f2d50a, 0x02c6ec2d, 0x0031abda}}, Y: Field{[10]uint32{0x02c78cbf, 0x031f36b7, 0x023529fc, 0x022e17c8, 0x015d5af1, 0x034101fb, 0x02393bcd, 0x028b7c63, 0x01594ae5, 0x003fff95}}}, + {X: Field{[10]uint32{0x00f1cef0, 0x00378fa9, 0x02f13a8b, 0x00d0a3ba, 0x002e7a9e, 0x03ccbf51, 0x022a0317, 0x004be03e, 0x004494ea, 0x00247e3f}}, Y: Field{[10]uint32{0x0154dbcf, 0x03fdb669, 0x02a42481, 0x0097aba8, 0x03e76c22, 0x003309ab, 0x02765f42, 0x007742b1, 0x007ad81b, 0x0001a829}}}, + {X: Field{[10]uint32{0x01c1c017, 0x00ff1084, 0x016c8e35, 0x01848cd7, 0x02dc610a, 0x030056d1, 0x01b081fd, 0x03d5f21e, 0x01fa6a26, 0x0038566a}}, Y: Field{[10]uint32{0x013e8851, 0x0126beaa, 0x010b6bd7, 0x031f2a07, 0x00f1c181, 0x013077cb, 0x01656f9b, 0x0380269d, 0x0243445a, 0x00308271}}}, + {X: Field{[10]uint32{0x00f9330b, 0x02fae969, 0x01813556, 0x01a6e279, 0x031a7051, 0x001b4a0f, 0x011eda9c, 0x00ea5c48, 0x005e135f, 0x003a3a7f}}, Y: Field{[10]uint32{0x01af0abb, 0x02c4353a, 0x01553fe0, 0x02e7cff1, 0x01c88423, 0x03c7912d, 0x03b55fa6, 0x03a3db69, 0x00993b73, 0x003a2e5a}}}, + {X: Field{[10]uint32{0x000edead, 0x010d4daf, 0x035b1642, 0x0062bbbe, 0x0011aa98, 0x004ce12d, 0x0027ec6e, 0x013030db, 0x0129d5ae, 0x003cfd75}}, Y: Field{[10]uint32{0x033d34b9, 0x016f9876, 0x02ae533f, 0x00190f94, 0x021dd1e3, 0x03f1782a, 0x01abbc4f, 0x0304ccd1, 0x02431e40, 0x000fdd01}}}, + {X: Field{[10]uint32{0x00c81159, 0x013db5db, 0x0206a02e, 0x01727285, 0x0209eae6, 0x00505d80, 0x039acffe, 0x02ee6b86, 0x0030f5d8, 0x00316dd9}}, Y: Field{[10]uint32{0x032429c1, 0x03a1b633, 0x00fad0d2, 0x00ce6800, 0x0229b139, 0x02454e02, 0x00875916, 0x02426090, 0x03097008, 0x00201a27}}}, + {X: Field{[10]uint32{0x00fc09b0, 0x01442703, 0x00261e93, 0x0191ca25, 0x00ff2755, 0x03edb6d4, 0x02d30c9f, 0x0241d117, 0x00b434f5, 0x002552a9}}, Y: Field{[10]uint32{0x0072e4ad, 0x01974f43, 0x00ec5832, 0x01ba029c, 0x03a808b7, 0x00ec3f3c, 0x0176be8b, 0x00b095b3, 0x02861bad, 0x002008f2}}}, + {X: Field{[10]uint32{0x023d528b, 0x03c4cd5b, 0x00249d6d, 0x01512eed, 0x021b96ee, 0x002960cd, 0x020c9b93, 0x03cce4c0, 0x00bb4803, 0x0001576a}}, Y: Field{[10]uint32{0x02e5b64c, 0x03bdf38c, 0x02575799, 0x0134d568, 0x002387b1, 0x02805e17, 0x00bb209d, 0x03a7d61b, 0x0388ca06, 0x00373112}}}, + {X: Field{[10]uint32{0x03a1de03, 0x01fe2ee8, 0x0236877a, 0x02f285db, 0x01db59ea, 0x0098ad38, 0x02d48d3d, 0x02ca1ac2, 0x0000d810, 0x0020213a}}, Y: Field{[10]uint32{0x03dc1480, 0x0223f118, 0x00f85e08, 0x02b3acd2, 0x00070d60, 0x02f17e60, 0x0309c129, 0x0197f027, 0x029c59f8, 0x00362fba}}}, + {X: Field{[10]uint32{0x0318b39b, 0x03be9055, 0x00bd7f85, 0x005ec030, 0x03d15e02, 0x00252526, 0x00f49a15, 0x01fe21d2, 0x02c236c8, 0x0006caed}}, Y: Field{[10]uint32{0x01029c74, 0x006b4514, 0x001dc810, 0x00b02c3a, 0x00c3c3f4, 0x01afaa69, 0x03dd0180, 0x03cdbbc6, 0x01956aad, 0x0008592c}}}, + {X: Field{[10]uint32{0x00377872, 0x0368e295, 0x02d84830, 0x03667e46, 0x01de9139, 0x034bfafb, 0x01c65ce3, 0x030dcb97, 0x03e80125, 0x003ee9a1}}, Y: Field{[10]uint32{0x03e001c9, 0x00fb049c, 0x03f83092, 0x03c95fd2, 0x0355aabb, 0x0016a584, 0x00a7a821, 0x02540729, 0x02df03b8, 0x0022513a}}}, + {X: Field{[10]uint32{0x01560cbd, 0x038b7fbf, 0x03a948aa, 0x017bc246, 0x03d21e15, 0x0168b5e5, 0x00699c97, 0x0305bfe7, 0x0380a5f1, 0x002d6392}}, Y: Field{[10]uint32{0x02cec3ec, 0x02944a14, 0x02fec937, 0x01f64097, 0x0304606f, 0x00b5aaa5, 0x031b7f41, 0x02fe9b95, 0x02ba1429, 0x003ffe72}}}, + {X: Field{[10]uint32{0x0026edec, 0x03c5f38d, 0x02900fce, 0x01f2750e, 0x00114fdb, 0x00171af9, 0x0222551e, 0x01b08554, 0x0126da5d, 0x0023af35}}, Y: Field{[10]uint32{0x013aa97e, 0x01f7e194, 0x0021eae9, 0x00d2bbb7, 0x03de11f0, 0x014bd519, 0x02aafb1a, 0x0006d8fa, 0x03986b33, 0x001ce83e}}}, + {X: Field{[10]uint32{0x03ee325e, 0x0159a446, 0x00d2dbb9, 0x00c99010, 0x037354e0, 0x025c5526, 0x01c68f0e, 0x00a7a257, 0x000b924b, 0x003ee915}}, Y: Field{[10]uint32{0x0105ebd4, 0x039bd464, 0x0321b6c9, 0x009c5bd4, 0x02290f3c, 0x0394a10e, 0x02ba0d07, 0x015eb8d0, 0x00c33b98, 0x0014a422}}}, + {X: Field{[10]uint32{0x039c44de, 0x01bd3a2f, 0x025b0ab4, 0x025d946c, 0x02ce014c, 0x01bcfcdb, 0x006301a6, 0x034c91b6, 0x0097a1a7, 0x0022de8b}}, Y: Field{[10]uint32{0x00b247c7, 0x00ca3f69, 0x017b94cb, 0x02110ff0, 0x027c88a6, 0x007a9d4d, 0x006c1f47, 0x00d6cd9e, 0x00ab699c, 0x002e0a15}}}, + {X: Field{[10]uint32{0x02d2279c, 0x00e6963a, 0x0096f40c, 0x01dd2f52, 0x03931796, 0x006ea426, 0x0003bbba, 0x01c5539c, 0x03435adb, 0x00277c45}}, Y: Field{[10]uint32{0x01b884eb, 0x03c866d0, 0x02f8377e, 0x019775e8, 0x01d45668, 0x01eae190, 0x02913d6e, 0x0330db0d, 0x034ea216, 0x0029e48b}}}, + {X: Field{[10]uint32{0x02931cd8, 0x02b6b915, 0x03e9e414, 0x005707e6, 0x02c54b62, 0x01cc5224, 0x02fd9e73, 0x0111320b, 0x0384749b, 0x0016fade}}, Y: Field{[10]uint32{0x03abb95c, 0x0183a6cb, 0x01f7b64f, 0x03f3ad47, 0x03d32b7c, 0x03cc23bf, 0x02753fbf, 0x0029f0a3, 0x025f32cd, 0x00026790}}}, + {X: Field{[10]uint32{0x00788879, 0x004abd93, 0x02f43cd5, 0x01745c19, 0x01c9f8ed, 0x028edec2, 0x005114f4, 0x0012e9e3, 0x00430ff2, 0x000aa0c3}}, Y: Field{[10]uint32{0x02666c84, 0x02588c18, 0x0286561e, 0x00267b90, 0x009ba148, 0x0081fac0, 0x02827fed, 0x00994bae, 0x03a4e888, 0x00004948}}}, + {X: Field{[10]uint32{0x0057486a, 0x02488787, 0x014191b6, 0x00500670, 0x00985a77, 0x0334cb65, 0x00ab408b, 0x00a8639a, 0x02a14c1f, 0x003dc691}}, Y: Field{[10]uint32{0x00534875, 0x01d6db48, 0x00f0aef6, 0x00feca07, 0x034fac44, 0x03303683, 0x00ce36a4, 0x02694d3f, 0x033e0ea7, 0x002b7c66}}}, + {X: Field{[10]uint32{0x029d193b, 0x010da9f1, 0x012fdcb6, 0x02acdb10, 0x00bbad2b, 0x01f58f03, 0x00ae2d9f, 0x00acc59e, 0x01dcaa9c, 0x000ae039}}, Y: Field{[10]uint32{0x022119c3, 0x00875880, 0x00ffa276, 0x00670821, 0x038f3c90, 0x0141891e, 0x001ce04c, 0x00018ada, 0x004d71d6, 0x002f20f8}}}, + {X: Field{[10]uint32{0x023beece, 0x0148d739, 0x01d5bb97, 0x00300f11, 0x0175424a, 0x011124d0, 0x0375b58d, 0x031a71a0, 0x033be521, 0x001272f7}}, Y: Field{[10]uint32{0x0062de7f, 0x01b12697, 0x017a8ae4, 0x03c558e6, 0x0291d260, 0x00e84dab, 0x0356abad, 0x039f3b0d, 0x02eaf0f0, 0x00315857}}}, + {X: Field{[10]uint32{0x029ee1b2, 0x016e8c73, 0x0373979c, 0x00ee72a1, 0x03f7aa66, 0x03741c3d, 0x015e2f31, 0x02c45648, 0x0314b643, 0x00339351}}, Y: Field{[10]uint32{0x02feac38, 0x023f76c7, 0x010aad6f, 0x02d08030, 0x00479745, 0x0188406c, 0x0359ef5e, 0x00ea8d36, 0x0212a2fc, 0x002c7cd7}}}, + {X: Field{[10]uint32{0x01e10054, 0x00b53758, 0x01656299, 0x01e7b5f1, 0x01a8bef4, 0x03562071, 0x013bb1b5, 0x016b0e36, 0x02bbaa90, 0x001a09ed}}, Y: Field{[10]uint32{0x016bb869, 0x03e3b3ca, 0x0064d1af, 0x009dfbc8, 0x0030fc37, 0x016007d5, 0x00484279, 0x00083646, 0x007baf65, 0x0021492a}}}, + {X: Field{[10]uint32{0x0056535f, 0x03d2b460, 0x0112519a, 0x0062c5b7, 0x00ab9472, 0x000e9268, 0x037879aa, 0x035fc71e, 0x00d548f4, 0x00039c79}}, Y: Field{[10]uint32{0x0232f574, 0x006ece03, 0x01c09f0d, 0x01a0f7b4, 0x0383aeed, 0x02d72604, 0x03e3beda, 0x02cf55bd, 0x00617098, 0x00125741}}}, + {X: Field{[10]uint32{0x0200e032, 0x00199f1b, 0x02542632, 0x005a1cf3, 0x00656528, 0x00ffb69a, 0x036aa32a, 0x03ecc350, 0x01797429, 0x003bda0e}}, Y: Field{[10]uint32{0x0134613f, 0x028d8d41, 0x01404fbb, 0x001bc053, 0x0002f175, 0x006229ab, 0x01ed846f, 0x025fa03f, 0x024ade11, 0x002d2c63}}}, + {X: Field{[10]uint32{0x012deaf4, 0x0162c0f9, 0x0245b0a2, 0x00db07b1, 0x01dd557e, 0x038bbb61, 0x008007d0, 0x01fbffa4, 0x01c1ac8f, 0x000031ca}}, Y: Field{[10]uint32{0x021305fe, 0x01fafd15, 0x00f27bde, 0x02242b0e, 0x0312365b, 0x00cd6821, 0x02bade6a, 0x013dab17, 0x01c21858, 0x000ba0fb}}}, + {X: Field{[10]uint32{0x015735ab, 0x031fec44, 0x0288cc1c, 0x03088492, 0x01290d54, 0x02b8b7b4, 0x03c4f2c3, 0x01b54eca, 0x01199a71, 0x0033c74e}}, Y: Field{[10]uint32{0x0100e6e6, 0x02dc35b7, 0x029089b7, 0x03bab550, 0x03c276c8, 0x02ae14e2, 0x0180970d, 0x0100b3a2, 0x01a57ec3, 0x001ad13d}}}, + {X: Field{[10]uint32{0x03ecdeae, 0x03582696, 0x00f55cf9, 0x01ffe0b6, 0x01a9c28a, 0x03a4369d, 0x031f772e, 0x03b8a3cf, 0x03a0266d, 0x001b3cf5}}, Y: Field{[10]uint32{0x01bc58d4, 0x037ebad2, 0x01e14034, 0x02d3113b, 0x00ede5c9, 0x0366a66f, 0x01b9cf94, 0x03338a25, 0x03b31e11, 0x000ef463}}}, + {X: Field{[10]uint32{0x01395542, 0x01d2701f, 0x00be7f28, 0x02bb3e0c, 0x0256393c, 0x0002ba4c, 0x02e4274f, 0x03bb2b37, 0x0032ae63, 0x003692d6}}, Y: Field{[10]uint32{0x01b2210b, 0x03220633, 0x00ec4dfe, 0x038c6da5, 0x02106374, 0x005a12e4, 0x01610c9d, 0x0103c605, 0x023bd2d9, 0x0026aaec}}}, + {X: Field{[10]uint32{0x0330bbfa, 0x0357de90, 0x002d4b8a, 0x0043a561, 0x03407d1a, 0x03a8b1af, 0x0063270c, 0x00385be7, 0x03502321, 0x003e46b8}}, Y: Field{[10]uint32{0x013aa1c2, 0x00421ae4, 0x01e161b5, 0x010ccd94, 0x0153c915, 0x034f46bc, 0x029290ef, 0x0095cd65, 0x01acd196, 0x00007c58}}}, + {X: Field{[10]uint32{0x02f1ac02, 0x021d2cbc, 0x0025556c, 0x01cfe872, 0x02c72e3f, 0x01cca149, 0x0047c862, 0x00a8b916, 0x0352cc3e, 0x001f86fb}}, Y: Field{[10]uint32{0x02f6e6fe, 0x0305e1f9, 0x017f44c4, 0x008fba36, 0x0008ff05, 0x003f13d4, 0x03048fee, 0x03934f6d, 0x037ea706, 0x002f92c3}}}, + {X: Field{[10]uint32{0x03d5998f, 0x03f20534, 0x020ecb27, 0x03c52f9c, 0x03706567, 0x03724bad, 0x00e256cc, 0x00bb8dd2, 0x015d30dc, 0x0003749a}}, Y: Field{[10]uint32{0x032dc74f, 0x000a8668, 0x0396ed1a, 0x0103c3c2, 0x01bba677, 0x01151cad, 0x027cf998, 0x02004e7b, 0x0044f102, 0x0026bccb}}}, + {X: Field{[10]uint32{0x009dbb9d, 0x002ccdd9, 0x037c94d2, 0x02550fec, 0x02125fe3, 0x00ceddb6, 0x02602ba0, 0x018f2344, 0x02507147, 0x001e3eb9}}, Y: Field{[10]uint32{0x03ce3aa6, 0x0388d46f, 0x00ce121d, 0x00c81989, 0x00c3b925, 0x02bc7fa9, 0x01826e5e, 0x03339bd9, 0x000f0726, 0x001e3713}}}, + {X: Field{[10]uint32{0x01c98bd5, 0x02498da3, 0x018dfee6, 0x02e16476, 0x021b6fb6, 0x0005ad16, 0x01d3e00d, 0x01774aa8, 0x021e510e, 0x0007b7d4}}, Y: Field{[10]uint32{0x01311f86, 0x02369055, 0x00a59751, 0x034d8efb, 0x00aeafd8, 0x006ac3c8, 0x034d8177, 0x026e3743, 0x016d9b2e, 0x00268340}}}, + {X: Field{[10]uint32{0x00101d39, 0x01aa8634, 0x02b4d416, 0x0250dd58, 0x007ce286, 0x00f31a79, 0x013272cd, 0x02d82e45, 0x030c5e53, 0x002181ee}}, Y: Field{[10]uint32{0x02eb519a, 0x0159b565, 0x00e988ef, 0x015c9e49, 0x02388707, 0x01922be3, 0x01a294aa, 0x0195070d, 0x031ec83c, 0x00005728}}}, + {X: Field{[10]uint32{0x02d02eab, 0x02d97de5, 0x02df7166, 0x001e44bc, 0x03037f96, 0x010ae6ed, 0x020dbb7c, 0x000fde02, 0x000d9a05, 0x00197f4c}}, Y: Field{[10]uint32{0x02a3b5d9, 0x02e4a2d3, 0x00aa5335, 0x00f3513b, 0x02904caf, 0x03dad0fc, 0x03945401, 0x02a14847, 0x035084fb, 0x003f3454}}}, + {X: Field{[10]uint32{0x0002d148, 0x03c51633, 0x03f99f47, 0x02a4cc24, 0x0336d031, 0x01332fac, 0x01845f03, 0x01f38700, 0x03a76c84, 0x0032462c}}, Y: Field{[10]uint32{0x03728568, 0x00eb7f5f, 0x00eb53ed, 0x02772a17, 0x02059632, 0x03ea9b98, 0x00632700, 0x00b880c8, 0x0003dbbb, 0x003c95bd}}}, + {X: Field{[10]uint32{0x01661817, 0x014ab381, 0x03bb5c13, 0x03536f82, 0x01532e54, 0x0102b783, 0x02cb4291, 0x02e1e42f, 0x00fd02f0, 0x001ab0b7}}, Y: Field{[10]uint32{0x029e2af3, 0x02ab8592, 0x026dccca, 0x038c1811, 0x03784c3d, 0x01c89470, 0x0323074e, 0x00e5b16b, 0x0310abf9, 0x003cb098}}}, + {X: Field{[10]uint32{0x033f3d19, 0x02ffcbf2, 0x0295f5b0, 0x02a517da, 0x02cf8e95, 0x017facac, 0x0239b94b, 0x03ce273b, 0x00ee54ac, 0x00235c71}}, Y: Field{[10]uint32{0x031ce52d, 0x01d611c3, 0x00cb6548, 0x015e26d1, 0x03f0bc88, 0x00cc1840, 0x03a3881e, 0x030711f6, 0x03d95a02, 0x0026110a}}}, + {X: Field{[10]uint32{0x00f583c3, 0x03b84911, 0x03072b3d, 0x01a2a426, 0x002e5d73, 0x01447a1d, 0x000abbb0, 0x01c463cb, 0x00d3fd55, 0x003a2f49}}, Y: Field{[10]uint32{0x03ce6538, 0x02c6fc22, 0x0343a4d4, 0x016b3583, 0x02238028, 0x01c59167, 0x037992a6, 0x008b6d96, 0x03a6e286, 0x003874b0}}}, + {X: Field{[10]uint32{0x00075217, 0x01c9568f, 0x011d032d, 0x0092acab, 0x00483fd0, 0x00c478ed, 0x02c8c516, 0x033e2794, 0x01755cf8, 0x0018b70a}}, Y: Field{[10]uint32{0x000e2a97, 0x0247e3d7, 0x00d1e093, 0x02a523cf, 0x018b3fc8, 0x00255094, 0x0301e9cd, 0x008b6383, 0x0132d80d, 0x0001e678}}}, + {X: Field{[10]uint32{0x004c0e13, 0x014125b5, 0x01451a60, 0x013d9aa5, 0x034d4323, 0x031f4f01, 0x01027099, 0x01f9832c, 0x03aacf72, 0x000df6c4}}, Y: Field{[10]uint32{0x01b1066b, 0x0090cd22, 0x02fb0629, 0x01b7427a, 0x02d3402a, 0x0004e87d, 0x02e9d07e, 0x03bfd065, 0x03be8f8c, 0x00030e0e}}}, + {X: Field{[10]uint32{0x032aa1ab, 0x01d6cc3e, 0x02c39378, 0x00e49a67, 0x01be9dc4, 0x01cbc77c, 0x018e17c4, 0x01c67b21, 0x0365eab7, 0x000defed}}, Y: Field{[10]uint32{0x01721364, 0x014d58f4, 0x00eea23b, 0x017419bc, 0x025cf44b, 0x022be329, 0x0135f4a9, 0x031308be, 0x03fd865d, 0x001c9c62}}}, + {X: Field{[10]uint32{0x005d1b94, 0x02e914aa, 0x0145606d, 0x03f84803, 0x03b5d5c3, 0x01885229, 0x01ba6e1f, 0x02fcd57f, 0x021287fc, 0x0010cfb7}}, Y: Field{[10]uint32{0x0357c20e, 0x01765251, 0x02e60571, 0x01f1ebb9, 0x01137a4c, 0x00f8c1e0, 0x030c9591, 0x0144eca3, 0x0213ad6e, 0x002c9f15}}}, + {X: Field{[10]uint32{0x02671861, 0x02695f4f, 0x03b323af, 0x0342e2c9, 0x02d23295, 0x02adf7d1, 0x021917f6, 0x00379a4a, 0x019fc5ed, 0x0003960b}}, Y: Field{[10]uint32{0x00073154, 0x0077bff5, 0x01fd6557, 0x01cc6de3, 0x01d1c9e0, 0x021b2c74, 0x039faa53, 0x0036f5f9, 0x0385e277, 0x000cfba1}}}, + {X: Field{[10]uint32{0x009442c2, 0x00a18013, 0x0189e4e4, 0x000529a8, 0x02ad8fae, 0x003c1ab7, 0x02d4e5da, 0x03c56bb8, 0x0340634b, 0x00182c1e}}, Y: Field{[10]uint32{0x004b283d, 0x00466c6f, 0x00f37ff2, 0x027295ec, 0x011557f2, 0x02362ab1, 0x034a2cd6, 0x010ee98a, 0x03cd00d2, 0x003fb821}}}, + {X: Field{[10]uint32{0x01e03100, 0x0196b4cb, 0x009b2102, 0x029f38df, 0x02643e6d, 0x01ba23ee, 0x0245e35b, 0x03df2828, 0x027601e5, 0x0012c59c}}, Y: Field{[10]uint32{0x02d8dde7, 0x024324e3, 0x00a6473b, 0x00aed8c5, 0x00cacda0, 0x03547c57, 0x0126c1dc, 0x021f8243, 0x03024768, 0x000a2ab3}}}, + {X: Field{[10]uint32{0x022a3170, 0x034be6ff, 0x027b2a17, 0x03853b53, 0x02fab97d, 0x026a22b8, 0x0003e638, 0x01f9d312, 0x013d6d79, 0x00175584}}, Y: Field{[10]uint32{0x01cd524f, 0x00ac79f6, 0x033abee4, 0x024b8b65, 0x02c65459, 0x03acacd3, 0x02462a27, 0x02cbfe98, 0x02a8534e, 0x000253bc}}}, + {X: Field{[10]uint32{0x0234f828, 0x02cf418e, 0x03a7ee38, 0x0363ca37, 0x03f4a06c, 0x03a3111c, 0x01572878, 0x006b6344, 0x03ae7511, 0x002a740f}}, Y: Field{[10]uint32{0x03517881, 0x0347e54c, 0x0262e4d9, 0x02d31f78, 0x03480c94, 0x01a3daea, 0x02665bf9, 0x0261e4b2, 0x000cc731, 0x00281ccf}}}, + {X: Field{[10]uint32{0x020e1ad5, 0x0157c959, 0x00522508, 0x0058599b, 0x0058fd37, 0x02cfdf9c, 0x00db3b77, 0x02f3a7b5, 0x01712b1a, 0x001d0665}}, Y: Field{[10]uint32{0x00da44db, 0x019ef640, 0x0385f22b, 0x03062ab0, 0x00ea3ef2, 0x009c9800, 0x013b8a32, 0x01d6273f, 0x02a8097f, 0x001c432b}}}, + {X: Field{[10]uint32{0x01918dc8, 0x02ae5bc9, 0x00be7cab, 0x03cab31a, 0x02ba0106, 0x0119cf85, 0x03a1e5f8, 0x0296c7ba, 0x010dbf81, 0x0027c5a6}}, Y: Field{[10]uint32{0x00ebc4f5, 0x01962314, 0x007b0f0b, 0x03c7a996, 0x03135d46, 0x000e01aa, 0x0049d39c, 0x004108d3, 0x007b6232, 0x00035835}}}, + {X: Field{[10]uint32{0x0301d57d, 0x01c302c8, 0x00619b6a, 0x03d322c9, 0x03c99143, 0x02af4569, 0x011c888f, 0x02e69eb6, 0x01bc4f12, 0x000ed41a}}, Y: Field{[10]uint32{0x01dd1a79, 0x020a31ff, 0x035a8979, 0x013aa1ad, 0x02da1854, 0x02cc4759, 0x034ddfd4, 0x02a5127e, 0x00d1ae59, 0x0036ee1f}}}, + {X: Field{[10]uint32{0x02baee90, 0x026e51b6, 0x01c68115, 0x035c26dd, 0x01f90cdc, 0x02feaecc, 0x03bf9afb, 0x028db82e, 0x03a967b5, 0x00277a98}}, Y: Field{[10]uint32{0x02bc4464, 0x019989f1, 0x01e57b8a, 0x03ae5353, 0x0305c7d2, 0x02460348, 0x01a605ce, 0x02e5638c, 0x019b11ba, 0x002c52ee}}}, + {X: Field{[10]uint32{0x01e31e79, 0x0377d215, 0x03a188e0, 0x00b30cf0, 0x0309fe6b, 0x0104798e, 0x025cb534, 0x01aa1095, 0x03921da3, 0x00342c8c}}, Y: Field{[10]uint32{0x0374f8e9, 0x010d7943, 0x02a7515c, 0x01d90fed, 0x02991172, 0x00d42cec, 0x02f1cfcc, 0x01524b72, 0x03ea1a6e, 0x00203b64}}}, + {X: Field{[10]uint32{0x00b03d20, 0x0205ece4, 0x01da552c, 0x0323dc44, 0x03acfe85, 0x03d1078f, 0x00ca7a49, 0x03912fe6, 0x0255966a, 0x0022b725}}, Y: Field{[10]uint32{0x03c0021e, 0x0069b95c, 0x013b4eed, 0x019b6c6e, 0x005dd1d5, 0x024cdd0c, 0x00c80eac, 0x01cc4860, 0x014c6a71, 0x00339c81}}}, + {X: Field{[10]uint32{0x020c1670, 0x0059c987, 0x03fe3ec9, 0x00438b84, 0x02141ac6, 0x00062929, 0x00800b6d, 0x00f7a9c0, 0x03f8cf6d, 0x003dbdda}}, Y: Field{[10]uint32{0x039a302c, 0x0070e54f, 0x01a54e24, 0x03dd9913, 0x0263e4fe, 0x01ace93b, 0x025e2a10, 0x0261da63, 0x00afe1ea, 0x002cb11e}}}, + {X: Field{[10]uint32{0x00b898e5, 0x00f61bc5, 0x039fef87, 0x0235b697, 0x03217638, 0x01cece44, 0x00fcaa18, 0x0368c05d, 0x007d38b7, 0x0003560a}}, Y: Field{[10]uint32{0x02fc8402, 0x00ba7b1a, 0x005ee350, 0x03d58795, 0x03da2b8f, 0x0052b433, 0x018f91d1, 0x00217a0c, 0x013469ed, 0x001e17f2}}}, + {X: Field{[10]uint32{0x01a3661c, 0x02fd9d0e, 0x0354a02f, 0x0047d2e0, 0x01538e3d, 0x0361c0b0, 0x03e810c6, 0x03b9567f, 0x022350c5, 0x001ddcb2}}, Y: Field{[10]uint32{0x006edddb, 0x036690da, 0x00d6c931, 0x02a2b87f, 0x03fe3dd3, 0x00fa6393, 0x008aefb2, 0x0368516d, 0x02de853f, 0x001688c4}}}, + {X: Field{[10]uint32{0x02433ad5, 0x01c177dc, 0x02308069, 0x00f9dab7, 0x0046ce90, 0x03f0fecb, 0x010ac95e, 0x00da1deb, 0x0176c50f, 0x0028be7e}}, Y: Field{[10]uint32{0x00c285f3, 0x03c15bf2, 0x0238a22a, 0x012da2be, 0x01f201dd, 0x03e35d11, 0x0211b22b, 0x0227ccd7, 0x031124c2, 0x003b1594}}}, + {X: Field{[10]uint32{0x038b15f7, 0x0086a013, 0x0211bcb2, 0x019ad4b3, 0x0026fce1, 0x02b49c44, 0x010ec165, 0x03159c93, 0x036585f8, 0x00388365}}, Y: Field{[10]uint32{0x018f33fb, 0x01753766, 0x0031bfc8, 0x008059ab, 0x0321d082, 0x01aaed52, 0x0348b6bc, 0x00e18a62, 0x0133c7f6, 0x0018ed86}}}, + {X: Field{[10]uint32{0x00ecc18f, 0x033b00eb, 0x0093e42d, 0x0222cafc, 0x03659ba6, 0x001b6c77, 0x0298d945, 0x00778b2f, 0x019d00ca, 0x00221a2d}}, Y: Field{[10]uint32{0x00f2fd0e, 0x005760ff, 0x03076e22, 0x0146bed4, 0x02dea562, 0x01493afd, 0x01dbfe84, 0x023ec014, 0x030796b9, 0x003c0ba6}}}, + {X: Field{[10]uint32{0x01fb677c, 0x01606e22, 0x016a43f8, 0x0099e09b, 0x0099c832, 0x029afc3a, 0x005f86b9, 0x004d869e, 0x002fe32a, 0x0004267e}}, Y: Field{[10]uint32{0x0044445b, 0x03cdf627, 0x01aac7fc, 0x01866bfa, 0x02cd2d3e, 0x024bab11, 0x0320cd35, 0x03c9c4b3, 0x03f29aa7, 0x0004fee0}}}, + {X: Field{[10]uint32{0x01cbeea3, 0x00147d0d, 0x01d31ef2, 0x032bb8b5, 0x03deae65, 0x032986c9, 0x03329698, 0x039ecd7d, 0x029677ec, 0x0012be71}}, Y: Field{[10]uint32{0x024e5ef0, 0x00420999, 0x006985b2, 0x025a04c3, 0x00ebfe51, 0x00910229, 0x02e3f80a, 0x02a5dbe5, 0x0196429d, 0x001cc011}}}, + {X: Field{[10]uint32{0x03dab473, 0x00ed50d5, 0x02045edb, 0x022f45bb, 0x01300d1f, 0x01c4f2ae, 0x02d4bbe8, 0x02e2c0c8, 0x03ca5ace, 0x0025a032}}, Y: Field{[10]uint32{0x010df58a, 0x004c766f, 0x02aec0e9, 0x00f09e62, 0x006904ee, 0x0026ccf8, 0x014697c2, 0x02874bb3, 0x0140e36b, 0x000bca4e}}}, + {X: Field{[10]uint32{0x03fae7c2, 0x036e6b89, 0x000ee4e2, 0x03eb5ba7, 0x023eb7fd, 0x00520324, 0x01c37203, 0x011fc17e, 0x003afd63, 0x001fbbf3}}, Y: Field{[10]uint32{0x035cac06, 0x023c42fe, 0x0357e973, 0x0276b3ac, 0x007bb93d, 0x01eec78a, 0x0353e421, 0x017051f1, 0x02754f74, 0x002e3a7e}}}, + {X: Field{[10]uint32{0x039fddb4, 0x0351becb, 0x002fe98f, 0x0016c097, 0x01065e78, 0x02252557, 0x021fbf36, 0x004ae4d1, 0x0156d636, 0x0002e08c}}, Y: Field{[10]uint32{0x00bd465a, 0x02771604, 0x0360cdab, 0x031a8aa3, 0x00d0b537, 0x03a7ab75, 0x03453ebf, 0x03a47917, 0x017a826f, 0x003c8f14}}}, + {X: Field{[10]uint32{0x01bdadd9, 0x005134e1, 0x002b44d5, 0x008ba246, 0x01bfb9de, 0x00b9d96a, 0x0178706e, 0x03f55248, 0x035e2035, 0x003a0074}}, Y: Field{[10]uint32{0x02956a26, 0x0186025d, 0x03478481, 0x0000fea9, 0x011c2162, 0x00678dea, 0x00868e04, 0x039bc206, 0x023427de, 0x00079920}}}, + {X: Field{[10]uint32{0x01c67f3a, 0x0123d4b3, 0x01a1c2f3, 0x01402122, 0x0029fd77, 0x01fa243f, 0x00369e50, 0x0025a4a1, 0x010e56b7, 0x003a7518}}, Y: Field{[10]uint32{0x008e4a0e, 0x02a13fad, 0x02c1f7d9, 0x008895f0, 0x031df0e6, 0x03b9145a, 0x01bfca22, 0x020b868a, 0x02ac357d, 0x002397da}}}, + {X: Field{[10]uint32{0x03b7609b, 0x0206bdb4, 0x028ff4a4, 0x022838d4, 0x00b94bae, 0x011a0021, 0x00d7aa09, 0x0377b8d0, 0x030f51d6, 0x001c70fb}}, Y: Field{[10]uint32{0x015f6b96, 0x03d5f8cc, 0x03ca4544, 0x0351264b, 0x03db6886, 0x02985690, 0x00adc4da, 0x021e8c4e, 0x00dc2f80, 0x0013459d}}}, + {X: Field{[10]uint32{0x027d6f20, 0x02670392, 0x03947ce9, 0x020f055e, 0x0121aadb, 0x00e2aeb1, 0x038b44d9, 0x03107ef7, 0x0243b6f5, 0x002559f3}}, Y: Field{[10]uint32{0x03a35538, 0x0280084c, 0x00fe35e2, 0x0366cb79, 0x011fd0fd, 0x011730d7, 0x0247ca89, 0x028c6029, 0x0317031e, 0x00327618}}}, + {X: Field{[10]uint32{0x02dcc141, 0x02c8ade3, 0x0163eb9d, 0x014c3f62, 0x014f8fc7, 0x00468648, 0x033de850, 0x019ce442, 0x014f8116, 0x000d148f}}, Y: Field{[10]uint32{0x0022ac90, 0x03a43121, 0x01ce77d6, 0x0213c9df, 0x02877bca, 0x009df62e, 0x000a0660, 0x0223ae6e, 0x01fe268b, 0x002403ee}}}, + {X: Field{[10]uint32{0x03c1bd98, 0x002b5e78, 0x01278159, 0x03f2d873, 0x01f2993d, 0x0083973c, 0x034350bf, 0x010f7e8b, 0x037e5f1c, 0x001a7f47}}, Y: Field{[10]uint32{0x0051d7f3, 0x0327ce9b, 0x01615043, 0x008caf37, 0x0302d1c9, 0x0249de5c, 0x0315665a, 0x02502bb6, 0x02cf8b74, 0x0018cdc9}}}, + {X: Field{[10]uint32{0x014a3de7, 0x021e2bfa, 0x03aa2a9f, 0x01d78c5f, 0x02411b2a, 0x02d3f1ae, 0x006dd39b, 0x02e3dcc5, 0x0024c28c, 0x003930b1}}, Y: Field{[10]uint32{0x0321ae89, 0x022a527a, 0x01158fcc, 0x023a6cef, 0x01c86137, 0x00814573, 0x02607398, 0x017bd236, 0x03e8468e, 0x003ee345}}}, + {X: Field{[10]uint32{0x00e32773, 0x035ec78d, 0x019ea5de, 0x004c8984, 0x0398e445, 0x03125218, 0x01feb590, 0x005b4270, 0x019aada9, 0x0015c411}}, Y: Field{[10]uint32{0x023871bc, 0x00fb2939, 0x009f0738, 0x00abccfd, 0x02905bf1, 0x002a0d57, 0x016b4093, 0x00e96139, 0x01bdd2d8, 0x002277bb}}}, + {X: Field{[10]uint32{0x03d48e64, 0x0085e81b, 0x01bc189b, 0x02a642e1, 0x0359a3a8, 0x01c406c9, 0x0017f913, 0x001b856b, 0x02d41718, 0x00355beb}}, Y: Field{[10]uint32{0x00a6652c, 0x00c511cd, 0x038c76d7, 0x01de9221, 0x01ebe439, 0x00da3d52, 0x02f513f5, 0x02cb5ad8, 0x02c33408, 0x003ea1c7}}}, + {X: Field{[10]uint32{0x02599bcb, 0x014976ea, 0x003f7604, 0x004a0134, 0x00cb5cf0, 0x03b7e1f7, 0x0347be8e, 0x02016da2, 0x02ebda0b, 0x0039d05b}}, Y: Field{[10]uint32{0x01a56c19, 0x03d510ae, 0x01185bbc, 0x00dc4ec4, 0x03533d4f, 0x01f90c52, 0x03eb4c77, 0x0159f8c4, 0x0316f11c, 0x00218431}}}, + {X: Field{[10]uint32{0x01fa997d, 0x03c581f5, 0x0175f2d5, 0x0291b980, 0x02a4fbfc, 0x00f38cb1, 0x00606081, 0x00d50647, 0x0062ebdd, 0x00232966}}, Y: Field{[10]uint32{0x037698f4, 0x0355a478, 0x031c6980, 0x03bbeab5, 0x01113dd6, 0x00ac5343, 0x01fa1950, 0x03fab1ab, 0x000fb132, 0x002abcd2}}}, + {X: Field{[10]uint32{0x03243413, 0x02e9bc54, 0x0218172f, 0x0314a30a, 0x036eb8e4, 0x011b1480, 0x015867a8, 0x00ed1464, 0x00451fd4, 0x001925b7}}, Y: Field{[10]uint32{0x004da1f2, 0x01358939, 0x03e87cb1, 0x02f1722c, 0x03153fe2, 0x00a4b3c6, 0x00a281b9, 0x03267b80, 0x00410f85, 0x000113f7}}}, + {X: Field{[10]uint32{0x01925a5d, 0x02cbf064, 0x035d6c9c, 0x008753a3, 0x0067d207, 0x032b3348, 0x00bc248d, 0x0105aa8e, 0x0063aa82, 0x000e9091}}, Y: Field{[10]uint32{0x02fa9fb2, 0x01e11922, 0x03ca9c31, 0x02fea949, 0x00d4857a, 0x01f206fc, 0x00775cb3, 0x0096450d, 0x0063fd24, 0x001c6959}}}, + {X: Field{[10]uint32{0x0178c2e6, 0x01344274, 0x03418157, 0x0079ade1, 0x03881178, 0x02a17f98, 0x03f7985a, 0x014652b6, 0x030551d5, 0x001aa516}}, Y: Field{[10]uint32{0x0357ac44, 0x03a67fe6, 0x01d31924, 0x03c4c989, 0x0380df9a, 0x0099f289, 0x0021fc0d, 0x02a0d8c9, 0x003a1ca3, 0x00061b4d}}}, + {X: Field{[10]uint32{0x02add47f, 0x03f5df4e, 0x008aac9f, 0x003adfe3, 0x0132baac, 0x031704ec, 0x027381b8, 0x0012dedf, 0x0292682d, 0x0004fc7d}}, Y: Field{[10]uint32{0x02e99f0e, 0x02a92b89, 0x03ce2282, 0x00cce311, 0x03433725, 0x01745003, 0x03368528, 0x03fe227a, 0x01e49622, 0x0015ca81}}}, + {X: Field{[10]uint32{0x02804330, 0x0198d2f4, 0x02522a51, 0x001f9533, 0x01a27007, 0x03b6ddfd, 0x018e7b33, 0x03a3c7b6, 0x03c14f0d, 0x001e7e84}}, Y: Field{[10]uint32{0x01987c65, 0x02247bb5, 0x03aa096e, 0x02ad68bb, 0x00cf2484, 0x0183dc66, 0x001e40e0, 0x027b9cfd, 0x0188e196, 0x0028252f}}}, + {X: Field{[10]uint32{0x0133130a, 0x0280f6f9, 0x011019dd, 0x01f6ecf7, 0x01fb0837, 0x029b6acf, 0x033f7350, 0x006fdf09, 0x02dbd2c6, 0x0037c7fd}}, Y: Field{[10]uint32{0x023f886e, 0x02584764, 0x02824fd1, 0x02dd6ac3, 0x00cd0061, 0x023452a5, 0x025c969d, 0x021a264b, 0x03ad68c5, 0x0000bf71}}}, + {X: Field{[10]uint32{0x02cbdb34, 0x021b4a86, 0x032ec51d, 0x006f7de5, 0x032bff65, 0x00204331, 0x00f87760, 0x00e6b460, 0x02805f59, 0x002a088c}}, Y: Field{[10]uint32{0x03c2dfba, 0x013fed45, 0x025b5278, 0x00ab52c4, 0x01e7f2ef, 0x00010dd4, 0x02ea9b44, 0x00d8caca, 0x010f982e, 0x0025a056}}}, + {X: Field{[10]uint32{0x004c7c44, 0x01a9a212, 0x018c479e, 0x02b6e8ff, 0x02b3780f, 0x00f1ce4c, 0x010ada16, 0x02fd61a6, 0x00c049f3, 0x00101ac3}}, Y: Field{[10]uint32{0x036503dd, 0x008205f7, 0x012d31bb, 0x00ca1646, 0x028b2179, 0x0062bb9f, 0x0074fe02, 0x023951e4, 0x00eff250, 0x002aac39}}}, + {X: Field{[10]uint32{0x0116bcc8, 0x00cc033d, 0x014604b7, 0x03ab6eb2, 0x00523c81, 0x031366f2, 0x00f103db, 0x011e70f7, 0x03fd5783, 0x00139c10}}, Y: Field{[10]uint32{0x002d1133, 0x014f5a7a, 0x007fa98f, 0x02d9ce93, 0x0177c859, 0x01b24989, 0x0033ead6, 0x006f47a0, 0x03b73ed0, 0x000658a1}}}, + {X: Field{[10]uint32{0x033e9997, 0x03d003c3, 0x0344e43c, 0x0003a74b, 0x00a7d55b, 0x03c9301c, 0x0175c0ef, 0x0297d641, 0x0271b945, 0x002a68a9}}, Y: Field{[10]uint32{0x020c6285, 0x029636db, 0x014ca5b2, 0x0390ed1b, 0x039ae22c, 0x03dfcbcf, 0x03f957ca, 0x009c5459, 0x0220cb97, 0x001b3517}}}, + {X: Field{[10]uint32{0x003d3c01, 0x028ffca2, 0x0208b22b, 0x031da01d, 0x0312b2de, 0x00c569bb, 0x0247ae49, 0x02ba23ee, 0x039475ff, 0x001a4a84}}, Y: Field{[10]uint32{0x02e46131, 0x0197059b, 0x0340685a, 0x00fc2018, 0x00c83477, 0x029df458, 0x02867321, 0x01295302, 0x034a03c1, 0x001d3756}}}, + {X: Field{[10]uint32{0x022cfad8, 0x02aa3235, 0x016e77dd, 0x02b3d740, 0x01063b44, 0x0003f352, 0x0128e75d, 0x00e2ee22, 0x01fd1566, 0x000dbe45}}, Y: Field{[10]uint32{0x0042e8b9, 0x01fd76fa, 0x00e3c0cf, 0x02c38dff, 0x02991dc8, 0x008b3db7, 0x0217d027, 0x03460d7b, 0x02b616ed, 0x0000fc47}}}, + {X: Field{[10]uint32{0x02a53b31, 0x028e3592, 0x02c8f99a, 0x01f82ece, 0x00a5202a, 0x00d90c51, 0x002fd6ca, 0x00302d51, 0x035a7e01, 0x000fc3db}}, Y: Field{[10]uint32{0x0035c649, 0x027f41c3, 0x01f9ab86, 0x035fc4f3, 0x03ab1f9e, 0x02c3fecf, 0x00099acd, 0x038a6a54, 0x03cf5b33, 0x00095d35}}}, + {X: Field{[10]uint32{0x00b7b067, 0x02559ccd, 0x00cfd26b, 0x03eaff00, 0x03508a9d, 0x024aab3c, 0x01d4258a, 0x019876c8, 0x02ff071f, 0x0023163e}}, Y: Field{[10]uint32{0x03944893, 0x0285359c, 0x0273f694, 0x01c56778, 0x01e9a8a1, 0x002c44c9, 0x03d08a88, 0x013b8a10, 0x0094ea1d, 0x000e347a}}}, + {X: Field{[10]uint32{0x01da78de, 0x021fedf1, 0x03a9c0f2, 0x020219ad, 0x02dbc6f5, 0x036502c4, 0x03918642, 0x0068f192, 0x031a205c, 0x0036019c}}, Y: Field{[10]uint32{0x01d0e05e, 0x030bafb3, 0x02ba8d43, 0x001b4907, 0x03704020, 0x018d497e, 0x01da8318, 0x01eaedcd, 0x00302ff5, 0x0021c2a1}}}, + {X: Field{[10]uint32{0x03848648, 0x0108138a, 0x02741335, 0x00244ae6, 0x03416bde, 0x029f3765, 0x01de1515, 0x02c10693, 0x037e195d, 0x001f6f68}}, Y: Field{[10]uint32{0x00715e71, 0x03ec00c4, 0x00cf3885, 0x006a1ea3, 0x03e1c026, 0x00bd82a7, 0x0284ff13, 0x0001c3f7, 0x007a649d, 0x0020f227}}}, + {X: Field{[10]uint32{0x03ec54a1, 0x0233ba00, 0x0245e58d, 0x0149f52f, 0x03410a1b, 0x02dddb3e, 0x038ee093, 0x02c38b7d, 0x03c0c803, 0x0022bf08}}, Y: Field{[10]uint32{0x012ed76b, 0x03ba270d, 0x035b401b, 0x028ae5fa, 0x02bf7b11, 0x0218e52f, 0x02529573, 0x039282ce, 0x02ce4f4a, 0x002c107b}}}, + {X: Field{[10]uint32{0x0252207b, 0x02e4084d, 0x0211236f, 0x033795e1, 0x031b2531, 0x01588452, 0x0003b4b2, 0x03eac12e, 0x00c22c50, 0x00139109}}, Y: Field{[10]uint32{0x01796e6f, 0x02e74376, 0x02ab57e7, 0x0297052d, 0x03889d5c, 0x02c33c90, 0x03421e4f, 0x01c4603e, 0x01815118, 0x0008afd8}}}, + {X: Field{[10]uint32{0x02e97453, 0x024a5079, 0x023828fd, 0x03bb24ee, 0x02f394b1, 0x038e6cd2, 0x0016e396, 0x002be282, 0x03885a23, 0x00181c5d}}, Y: Field{[10]uint32{0x00dc4b26, 0x03d005c0, 0x016f49f8, 0x03ea278d, 0x03fc0a18, 0x037db6e1, 0x03247620, 0x02906c53, 0x029f2b9d, 0x002a137c}}}, + {X: Field{[10]uint32{0x00af3213, 0x00b28923, 0x022ac602, 0x01a40b70, 0x00a271f1, 0x02b3dc39, 0x03bbf8df, 0x015bb0de, 0x0120384e, 0x00327dcf}}, Y: Field{[10]uint32{0x01fb5437, 0x02897e23, 0x02cb069e, 0x022e5d85, 0x0089070e, 0x02fd6d5e, 0x03c9bfa8, 0x025606dc, 0x03f4c77f, 0x001d88b9}}}, + {X: Field{[10]uint32{0x0245282a, 0x0297b6bb, 0x03c4a81e, 0x02718c2f, 0x01a8b995, 0x023643db, 0x002bfea4, 0x0287630f, 0x01fbdab5, 0x00067a97}}, Y: Field{[10]uint32{0x01f1d56c, 0x03876e3f, 0x00c653b8, 0x0275f5b9, 0x00870a95, 0x03cc1ec7, 0x03a4d62a, 0x02f605f0, 0x015d0014, 0x0003084a}}}, + {X: Field{[10]uint32{0x01617b58, 0x032f9b70, 0x025cb290, 0x01a5c5f7, 0x02047806, 0x02febe14, 0x030e1491, 0x030a4b37, 0x031e30b2, 0x001592f6}}, Y: Field{[10]uint32{0x022b1c0d, 0x013dd39f, 0x01984700, 0x00703aee, 0x0332508c, 0x01dfd777, 0x02841988, 0x02e57e67, 0x00e86fc0, 0x0026a368}}}, + {X: Field{[10]uint32{0x010bf06b, 0x011a54df, 0x023b54bf, 0x00778376, 0x0150b39d, 0x02fb81ce, 0x02e21237, 0x039b3249, 0x00424f3e, 0x0016f24e}}, Y: Field{[10]uint32{0x00fd5d16, 0x0277a908, 0x01e00c11, 0x00eda52d, 0x0032bb00, 0x035d4e94, 0x03f4bd4c, 0x01e2f82d, 0x03a96627, 0x00353a70}}}, + {X: Field{[10]uint32{0x00b7f99e, 0x036e6f17, 0x003a5980, 0x00b68ba3, 0x035b2a5f, 0x02071f5f, 0x02f4fc31, 0x022d5cfb, 0x0294829e, 0x000650cb}}, Y: Field{[10]uint32{0x02bcbcf6, 0x039caee6, 0x003f7a4b, 0x0205715c, 0x032e8607, 0x01b806b3, 0x029316e3, 0x02159eed, 0x019e5c5b, 0x003dd726}}}, + {X: Field{[10]uint32{0x00080b8d, 0x00c33688, 0x01672ea2, 0x0346fbbc, 0x018d0235, 0x002c6d56, 0x02c28bfa, 0x0338668b, 0x001e6196, 0x0034e64a}}, Y: Field{[10]uint32{0x0168aa19, 0x013468d4, 0x03ea9638, 0x03c357b6, 0x03d5483c, 0x017ae90c, 0x02949319, 0x0338e8cf, 0x029520ff, 0x0000729f}}}, + {X: Field{[10]uint32{0x00e73c88, 0x032a3a84, 0x026bae21, 0x025dd2b8, 0x0239372e, 0x000bd995, 0x01f55563, 0x03ea7f95, 0x035ab220, 0x001b2138}}, Y: Field{[10]uint32{0x0101b2b3, 0x02d30084, 0x029b89a7, 0x0195c7bf, 0x0001d154, 0x003a2c8d, 0x01711e7b, 0x00b02b52, 0x032abd44, 0x00262846}}}, + {X: Field{[10]uint32{0x00f8f64b, 0x002a0328, 0x00858118, 0x02dba77d, 0x03ec4205, 0x020ef601, 0x0397f14c, 0x0117b685, 0x018ab1b0, 0x001e0533}}, Y: Field{[10]uint32{0x0115f33b, 0x038e34ed, 0x022841b0, 0x00c106bc, 0x036bf177, 0x03798eb7, 0x03e8b704, 0x02e3ffd4, 0x0240edc8, 0x003be45f}}}, + {X: Field{[10]uint32{0x0196235f, 0x0381b1c2, 0x03993fb6, 0x0035c4e2, 0x02444e71, 0x034a014c, 0x01accfcc, 0x008aa2ff, 0x02831c8e, 0x001e807b}}, Y: Field{[10]uint32{0x001a5519, 0x009f9f0a, 0x00b41045, 0x02606058, 0x00dcb061, 0x024370ef, 0x02f2e080, 0x0170aad8, 0x01091989, 0x003f944b}}}, + {X: Field{[10]uint32{0x039bd908, 0x02085f07, 0x000ce72e, 0x01bcfcf9, 0x01512e85, 0x0352979e, 0x00b56605, 0x0327be46, 0x02bcdf86, 0x001957b9}}, Y: Field{[10]uint32{0x02f87721, 0x0253d8c4, 0x035c3cae, 0x02e848f7, 0x037dfdef, 0x002079a6, 0x0196ea9d, 0x02c217ce, 0x01a691fc, 0x0032fae9}}}, + {X: Field{[10]uint32{0x025219bb, 0x021fb877, 0x01d9e1cf, 0x0051103c, 0x003d4d48, 0x01e045ef, 0x00be25fe, 0x01cba3ac, 0x0009fb03, 0x003af5a0}}, Y: Field{[10]uint32{0x0258814b, 0x039e6d2e, 0x0068bd8c, 0x02dbfd96, 0x036da8cd, 0x02f6dd7c, 0x00aed2d6, 0x037d56fc, 0x02386f96, 0x0023bedf}}}, + {X: Field{[10]uint32{0x01a3865b, 0x0358ed86, 0x039149f1, 0x033c45a3, 0x028b7834, 0x01f56af5, 0x015cf051, 0x016eed3a, 0x00189ac0, 0x0021cd02}}, Y: Field{[10]uint32{0x00480838, 0x00fe4f05, 0x0330cdf6, 0x03eb78af, 0x027d24c0, 0x03eb828f, 0x01d4deed, 0x003c5724, 0x012772ce, 0x0027c7ef}}}, + {X: Field{[10]uint32{0x00513df3, 0x03cb18cc, 0x0368ba12, 0x0136aa5b, 0x035dda3a, 0x0055a432, 0x0262e925, 0x01eed937, 0x0213b02a, 0x00186dac}}, Y: Field{[10]uint32{0x02b6144e, 0x01894230, 0x03d56e01, 0x03994e65, 0x03c42c6c, 0x03000e86, 0x02d29628, 0x020650da, 0x00f24eff, 0x00331c6e}}}, + {X: Field{[10]uint32{0x0125fe37, 0x0028190e, 0x0187298f, 0x0388060b, 0x02ed5e02, 0x02126106, 0x01c9e663, 0x006b8b8e, 0x024d7717, 0x0012e9fb}}, Y: Field{[10]uint32{0x0296dbd6, 0x0371cd23, 0x004f1f1f, 0x03ddd46f, 0x035a9da4, 0x02029c9b, 0x032158eb, 0x013c5b2d, 0x01b4fe34, 0x001736f5}}}, + {X: Field{[10]uint32{0x008badb7, 0x011f9bc8, 0x01de2ee2, 0x01c7fa78, 0x026f9a39, 0x01a24ba6, 0x025bd7a4, 0x037350cb, 0x027fc4d5, 0x0035609e}}, Y: Field{[10]uint32{0x0098e1fa, 0x03c28698, 0x00f18ca0, 0x0298ed4b, 0x002fb667, 0x02c8f183, 0x02fb5349, 0x00303d87, 0x02dc9d0e, 0x003de43e}}}, + {X: Field{[10]uint32{0x03237633, 0x032e6ca4, 0x0098d411, 0x03f72894, 0x01e9086d, 0x027bf9a4, 0x0144d4a8, 0x0033df03, 0x01597f95, 0x00207b14}}, Y: Field{[10]uint32{0x039a1e7f, 0x0182dcfa, 0x000655fa, 0x028aaa0a, 0x000741d3, 0x03e4bed8, 0x0253f28e, 0x03e03251, 0x03ddc9ef, 0x002216c9}}}, + {X: Field{[10]uint32{0x02b6dec7, 0x02e8bf5a, 0x01e684cd, 0x01e762b2, 0x026e7237, 0x03c2bfc7, 0x023e06da, 0x03da01da, 0x01f4a0d4, 0x000a3f10}}, Y: Field{[10]uint32{0x01657225, 0x0328aa92, 0x01f54d80, 0x0236c421, 0x01482c6a, 0x0056c8d7, 0x02b9415c, 0x02af1cfa, 0x031e7aff, 0x002c792b}}}, + {X: Field{[10]uint32{0x03ae4f47, 0x02c62a3d, 0x035d1328, 0x02333d66, 0x036341a8, 0x01fe8be7, 0x00f5b857, 0x01d71f2c, 0x03d6c5bf, 0x003579d4}}, Y: Field{[10]uint32{0x00a1bff9, 0x00315031, 0x013cffaf, 0x003765e5, 0x02fc2f38, 0x03b359ba, 0x018a10c8, 0x0068c894, 0x00b98eb0, 0x00346a95}}}, + {X: Field{[10]uint32{0x0076e836, 0x03521cc5, 0x0286d8ba, 0x00f5d624, 0x01257d41, 0x0130696a, 0x0008fac4, 0x010a5f98, 0x015d8909, 0x0005a08d}}, Y: Field{[10]uint32{0x0309cf4a, 0x001151ba, 0x02a0278d, 0x03677b53, 0x002ec9c2, 0x014fb613, 0x0059b11d, 0x024327a1, 0x0362e29f, 0x0013da71}}}, + {X: Field{[10]uint32{0x03e781db, 0x000902c8, 0x032e7903, 0x006b4089, 0x0273425d, 0x03311b88, 0x03511a78, 0x02b9ccba, 0x005fb64c, 0x0027bdea}}, Y: Field{[10]uint32{0x009ce73c, 0x02ce61f4, 0x0204b03e, 0x027ce9dd, 0x0278a50c, 0x03d7a4b8, 0x035e2f20, 0x01691cfc, 0x016f6f6a, 0x0031c80d}}}, + {X: Field{[10]uint32{0x02e915ec, 0x03b1c280, 0x03612dd7, 0x01a304f3, 0x02021744, 0x03383aaa, 0x031be48a, 0x02694932, 0x03b36f42, 0x0013daba}}, Y: Field{[10]uint32{0x038e761f, 0x0082c473, 0x036c6396, 0x01ba1e03, 0x010b28f9, 0x014adb5f, 0x02d36092, 0x035e400a, 0x014da8b6, 0x00101ab6}}}, + {X: Field{[10]uint32{0x023f8232, 0x01586ec8, 0x01f8e088, 0x03c690ac, 0x037a3cc7, 0x03035fa2, 0x0310dae5, 0x00b99999, 0x020e5ac0, 0x00132b0f}}, Y: Field{[10]uint32{0x03263142, 0x00168232, 0x019318ba, 0x015b0bf9, 0x03dca655, 0x0230a749, 0x03fcb9cd, 0x03cf2013, 0x008eaa96, 0x0024e5bb}}}, + {X: Field{[10]uint32{0x039367b8, 0x0282983d, 0x0193738e, 0x01e18186, 0x02f61fbd, 0x01931d81, 0x00a9dd10, 0x02b15cb1, 0x00633aa2, 0x00021bcd}}, Y: Field{[10]uint32{0x01824f05, 0x008f9609, 0x0312a03f, 0x0186d6b9, 0x03cfb2aa, 0x02d30e2b, 0x0376c9fd, 0x01e76d7d, 0x012b5561, 0x003200bf}}}, + {X: Field{[10]uint32{0x007103a9, 0x0371ffcd, 0x034da318, 0x008ee8f5, 0x000bcd6f, 0x0074e7ea, 0x025ab4cd, 0x03848f9e, 0x01457685, 0x0014c8fc}}, Y: Field{[10]uint32{0x00691cb1, 0x0000de22, 0x028e3461, 0x03c7fb87, 0x0394cab4, 0x02efce3e, 0x01ec977c, 0x02ca784b, 0x0379eccc, 0x000c24be}}}, + {X: Field{[10]uint32{0x03ea74fd, 0x03c45e0c, 0x030e71a7, 0x001a60ff, 0x03f85cf1, 0x02838717, 0x000c45f3, 0x00471f9a, 0x01464027, 0x0034f5c3}}, Y: Field{[10]uint32{0x00d07bad, 0x01bd896a, 0x03c90fdf, 0x03cf855d, 0x01e4f722, 0x03ba9fee, 0x0093b9e0, 0x003cc45a, 0x0373d9b9, 0x00246609}}}, + {X: Field{[10]uint32{0x036d4359, 0x02192ef6, 0x02fdd6fd, 0x03e86ac7, 0x01f8cb89, 0x00d953c7, 0x01b5d714, 0x01d84c0b, 0x013728a8, 0x0037d8ee}}, Y: Field{[10]uint32{0x02ce5510, 0x02b2ded8, 0x012a791b, 0x035212de, 0x02a2c7be, 0x00cbe96c, 0x03930348, 0x00fb2db1, 0x01ca191a, 0x001f0ede}}}, + {X: Field{[10]uint32{0x01b70c74, 0x01afa15c, 0x00ec3974, 0x02531f7b, 0x0328a994, 0x0138898a, 0x0303169a, 0x00d3657c, 0x02228cc3, 0x003c7fa4}}, Y: Field{[10]uint32{0x0351a10e, 0x03944db9, 0x02b6469d, 0x00d630a3, 0x03b67a24, 0x0266bc78, 0x0335f60f, 0x03e9ca8a, 0x03b84e65, 0x0015623c}}}, + {X: Field{[10]uint32{0x0274fd95, 0x0324216e, 0x03c7dcb3, 0x02d7e8a7, 0x00fb0adb, 0x01f2ca34, 0x03ec14cb, 0x028cc3b7, 0x035d918c, 0x00240c39}}, Y: Field{[10]uint32{0x00b427f7, 0x0366768e, 0x004cd71a, 0x0304eef7, 0x035a452d, 0x00e2b7b5, 0x0128821c, 0x02261302, 0x01286169, 0x001f7c80}}}, + {X: Field{[10]uint32{0x03ad641a, 0x01f3d71d, 0x007d5ddd, 0x0218b0f3, 0x03dfa0b5, 0x01d9047a, 0x00f628c5, 0x036e1c4d, 0x013935be, 0x000734f0}}, Y: Field{[10]uint32{0x039a324d, 0x012f7852, 0x02bcf592, 0x03c40c3e, 0x0288264c, 0x03211ec9, 0x013a25e0, 0x02ec22fa, 0x01f25488, 0x0008553b}}}, + {X: Field{[10]uint32{0x0046ad96, 0x03c49f49, 0x01f42202, 0x03feb265, 0x03bd6e91, 0x03b0356e, 0x039f4621, 0x03b1f1e2, 0x0337a19f, 0x00395b81}}, Y: Field{[10]uint32{0x02ad70d7, 0x02226a8f, 0x0177698f, 0x00bd2cbb, 0x011e69b4, 0x01a4fa5d, 0x028d9bbb, 0x01d83902, 0x0027368c, 0x00220c36}}}, + {X: Field{[10]uint32{0x03b6b101, 0x0398fc57, 0x02657587, 0x0219e021, 0x0156fd08, 0x012b6299, 0x026dfeb2, 0x03978d8f, 0x02c458ab, 0x0006c29a}}, Y: Field{[10]uint32{0x035178dc, 0x00b3124c, 0x01926521, 0x01acb87d, 0x029a35e8, 0x03777b97, 0x033e5aab, 0x018e8ac4, 0x03dae642, 0x0034b7db}}}, + {X: Field{[10]uint32{0x03ea22b2, 0x03302048, 0x00679d80, 0x01d9173f, 0x0250bb16, 0x011b58a8, 0x01390a62, 0x0186393b, 0x01468fd4, 0x00042850}}, Y: Field{[10]uint32{0x0140185f, 0x00ce003f, 0x015620b0, 0x0096f0c3, 0x01f9a09b, 0x013aec54, 0x0113dbaf, 0x03746bb3, 0x0068dd7f, 0x000ce0ee}}}, + {X: Field{[10]uint32{0x003f5e35, 0x00f90669, 0x006ac8a7, 0x035e5755, 0x02e357f7, 0x01a2be9c, 0x038837e5, 0x028d45b6, 0x03515378, 0x0027712a}}, Y: Field{[10]uint32{0x0305903f, 0x02359a98, 0x01a06cc6, 0x0386410e, 0x02bfe05c, 0x03a9647b, 0x02422be1, 0x033eff8a, 0x022d9bce, 0x0002376a}}}, + {X: Field{[10]uint32{0x00ed7196, 0x02b1db8f, 0x035de1aa, 0x0264d880, 0x0213539e, 0x0226c82b, 0x038eb19e, 0x0387ef14, 0x035de7a4, 0x002aa4c5}}, Y: Field{[10]uint32{0x02afb9ad, 0x02e192b0, 0x01a05eff, 0x01afb38f, 0x00c18d14, 0x022d2001, 0x03e133ad, 0x0115a27c, 0x0304c134, 0x003b73b6}}}, + {X: Field{[10]uint32{0x022edf7b, 0x03bdbec8, 0x00e27536, 0x03e8d753, 0x0294f3ce, 0x0341b31a, 0x036fcbc6, 0x0366822e, 0x03e4da02, 0x00205c7c}}, Y: Field{[10]uint32{0x01e6dd6b, 0x0272967a, 0x03189749, 0x02de9963, 0x03c32038, 0x00f06993, 0x002b55f7, 0x00aae870, 0x01fcaae6, 0x003a46f9}}}, + {X: Field{[10]uint32{0x02a19ab6, 0x00201606, 0x024b111b, 0x009d0dd1, 0x01893fe6, 0x031e73de, 0x01888c93, 0x00a3998d, 0x0183c891, 0x00147db2}}, Y: Field{[10]uint32{0x0081a067, 0x003c164e, 0x03252a3d, 0x0003578d, 0x00b8cee4, 0x02a37194, 0x001dbf41, 0x0193d483, 0x01494bb1, 0x00174bbc}}}, + {X: Field{[10]uint32{0x03d7d38a, 0x002ae3db, 0x02580950, 0x02b1d36b, 0x03ec34df, 0x036c3769, 0x01016b19, 0x00c371a9, 0x0184766b, 0x0030287c}}, Y: Field{[10]uint32{0x02c6f01e, 0x024d65fa, 0x01490528, 0x007b1a57, 0x01b27f36, 0x009349aa, 0x01410516, 0x036bc4a7, 0x03e2c7b6, 0x002f72b4}}}, + {X: Field{[10]uint32{0x03a0eb02, 0x00e51c8c, 0x00a222bd, 0x026c7ade, 0x02fde927, 0x00d07bee, 0x02b6fe07, 0x0145a412, 0x02cc9543, 0x002c6ec7}}, Y: Field{[10]uint32{0x001689a8, 0x02fead32, 0x021d55a7, 0x02137931, 0x014b1490, 0x01c78325, 0x00dbf0a6, 0x010b8b03, 0x035b5253, 0x0037d48f}}}, + {X: Field{[10]uint32{0x000b5dce, 0x00f79f59, 0x00470180, 0x039da063, 0x023b0891, 0x010dce47, 0x0139ea7e, 0x013b5621, 0x00dc86d0, 0x002d730c}}, Y: Field{[10]uint32{0x02d4ec14, 0x00798bd0, 0x00b65ca4, 0x0077fff9, 0x009f5556, 0x00b80fca, 0x031acc86, 0x00c4b43e, 0x019e45c7, 0x003c7303}}}, + {X: Field{[10]uint32{0x0263ccb6, 0x03a503e4, 0x016b0da8, 0x008d47f8, 0x008cacee, 0x01f56507, 0x0155b3ea, 0x03fd4ca0, 0x01e705f0, 0x00378ad2}}, Y: Field{[10]uint32{0x018de99f, 0x01364fdb, 0x032ab74b, 0x02d5c0d5, 0x024690d5, 0x01e0552b, 0x017c6801, 0x02fd9ec3, 0x002bb12d, 0x000d35e9}}}, + {X: Field{[10]uint32{0x03cc8f51, 0x017cf395, 0x0311ad51, 0x02c3bcbb, 0x00ea5c0d, 0x0161c33f, 0x00984046, 0x03845c3a, 0x00e7c129, 0x0022c63d}}, Y: Field{[10]uint32{0x01111f37, 0x00b80226, 0x00aff884, 0x009f9acb, 0x0372281c, 0x0323b72c, 0x01e9d6cd, 0x012964f1, 0x0086c867, 0x001ac784}}}, + {X: Field{[10]uint32{0x03c86889, 0x0160aa45, 0x03442f9e, 0x0092da97, 0x01822ce4, 0x018aa0c3, 0x00e46f17, 0x03222246, 0x02c027ce, 0x001c9c58}}, Y: Field{[10]uint32{0x03223cca, 0x01bce28b, 0x02e7e841, 0x008f3145, 0x03248656, 0x024f9491, 0x03de5af6, 0x028da79b, 0x02961452, 0x00378d20}}}, + {X: Field{[10]uint32{0x0105058c, 0x0215adcd, 0x016056d0, 0x03f28fd8, 0x02946a75, 0x0309252f, 0x00eb9b81, 0x01d20fc6, 0x001f4dd1, 0x0012b93f}}, Y: Field{[10]uint32{0x032563e7, 0x011a4843, 0x017a39ae, 0x00db8b18, 0x0059999b, 0x0361e11c, 0x0034a05b, 0x03f05f68, 0x0012e901, 0x00361f9e}}}, + {X: Field{[10]uint32{0x03f43cd1, 0x00548197, 0x010bf58b, 0x02e93bda, 0x0272007b, 0x01abff40, 0x0026f016, 0x01cffa46, 0x01ace9e8, 0x003a42f2}}, Y: Field{[10]uint32{0x0164fa87, 0x0398d811, 0x02d58905, 0x00b34b95, 0x0147f076, 0x0196e6ff, 0x009b0c00, 0x03f5a147, 0x00e89acd, 0x0012f208}}}, + {X: Field{[10]uint32{0x011450ba, 0x0101db7d, 0x010209af, 0x0295fc14, 0x0208340b, 0x03a7bdd1, 0x021af7db, 0x00bedbde, 0x02a1db43, 0x002e82b9}}, Y: Field{[10]uint32{0x012be720, 0x021dabe4, 0x02908c58, 0x00630cba, 0x0351019a, 0x0068b0c2, 0x029894c5, 0x0250805c, 0x01b70409, 0x001f4e0e}}}, + {X: Field{[10]uint32{0x03accfeb, 0x020808b4, 0x03a5def8, 0x02fca607, 0x034f9682, 0x035ee5f5, 0x018b403e, 0x0194c476, 0x0381f77c, 0x001c1986}}, Y: Field{[10]uint32{0x02d06387, 0x02f13929, 0x0277e4e5, 0x02497d19, 0x027b4eeb, 0x02c1bf99, 0x024bd7cf, 0x027d366b, 0x01731895, 0x002408ae}}}, + {X: Field{[10]uint32{0x00471a47, 0x038248bf, 0x011d80e5, 0x0056347c, 0x0029451c, 0x0367be8e, 0x0381b817, 0x00e81c47, 0x03472815, 0x003f86de}}, Y: Field{[10]uint32{0x02b0f847, 0x02280d34, 0x01fae19c, 0x037c8d13, 0x0285725b, 0x03930c6a, 0x0115dc05, 0x02df1bec, 0x01cc68cf, 0x0025681d}}}, + {X: Field{[10]uint32{0x02cc3fc0, 0x01c3dfa6, 0x01e867ab, 0x00dfb171, 0x004325bc, 0x009f8e97, 0x0013d04f, 0x02a41ca0, 0x03d2bbae, 0x0022b3ce}}, Y: Field{[10]uint32{0x0216174e, 0x012195cf, 0x00785ee1, 0x03bf6f8b, 0x01b3e2e0, 0x02547e03, 0x01c06a25, 0x009f53ca, 0x03fb36da, 0x003d9e78}}}, + {X: Field{[10]uint32{0x02f395e3, 0x03aa3612, 0x0314f1d6, 0x03443283, 0x00d2db01, 0x03d8ae9f, 0x03fc6a47, 0x01f56ae1, 0x013725fc, 0x00076157}}, Y: Field{[10]uint32{0x020b1b90, 0x037234c0, 0x012a5815, 0x03436a24, 0x019b0a9a, 0x0189a317, 0x0255183f, 0x01953b51, 0x03ac2d41, 0x0033ac98}}}, + {X: Field{[10]uint32{0x012a8cba, 0x009b5c16, 0x0302e039, 0x02601147, 0x03099344, 0x01c3466d, 0x00ec6f6d, 0x01338f21, 0x016630c2, 0x0006aed1}}, Y: Field{[10]uint32{0x00525885, 0x0065521d, 0x01863f4b, 0x024d048a, 0x021778d2, 0x00c91514, 0x01886ef7, 0x01ff5cab, 0x006f6be8, 0x001189dc}}}, + {X: Field{[10]uint32{0x03eac036, 0x03cafaa4, 0x00a5fb86, 0x01992c26, 0x03620e5c, 0x0128fcc2, 0x01d07e24, 0x004bfe59, 0x00fa672c, 0x0006d1e4}}, Y: Field{[10]uint32{0x03edd60e, 0x00634939, 0x012831b0, 0x01c27278, 0x017c19fd, 0x02e0e47f, 0x022a9a06, 0x038b47ca, 0x00fca758, 0x003bb414}}}, + {X: Field{[10]uint32{0x00de3dd3, 0x00dcca9a, 0x01c98a43, 0x0280878f, 0x0344c106, 0x01584d9e, 0x01dcfc12, 0x032238c3, 0x032cfc9c, 0x001861e2}}, Y: Field{[10]uint32{0x02aed78e, 0x000037c7, 0x0229d436, 0x002dac4f, 0x03afc6f5, 0x0262a7be, 0x014cb774, 0x009e746d, 0x00a0037c, 0x003e8915}}}, + {X: Field{[10]uint32{0x0144308a, 0x010042a1, 0x030b5335, 0x006a4c5c, 0x00abc727, 0x0114088e, 0x00c21ecf, 0x03fac5ef, 0x01f02767, 0x00210123}}, Y: Field{[10]uint32{0x0193c32f, 0x03223b3a, 0x00b7c838, 0x02a90e33, 0x02605acc, 0x01dd8f1b, 0x03f9814f, 0x00239751, 0x024a39d6, 0x00351c4b}}}, + {X: Field{[10]uint32{0x02683a94, 0x02eb0cf2, 0x015cf889, 0x0032a201, 0x018ba37d, 0x01fa27e5, 0x031e1e03, 0x005d7b0f, 0x00e56c96, 0x003adeb1}}, Y: Field{[10]uint32{0x0285da8a, 0x00e053d7, 0x030112bc, 0x00ccbd45, 0x03cc07de, 0x004f7f1b, 0x00bfe075, 0x009d2db6, 0x02672ccc, 0x00125078}}}, + {X: Field{[10]uint32{0x02142e91, 0x00656bc8, 0x03eaf1a4, 0x0154e027, 0x014cbce4, 0x000a2370, 0x02b452ba, 0x012f6ad8, 0x02c9877d, 0x001228da}}, Y: Field{[10]uint32{0x0369659c, 0x0143aeaa, 0x02e2530b, 0x027087fd, 0x0027eec3, 0x013a5436, 0x02d88480, 0x018a21b1, 0x018a0125, 0x0038935b}}}, + {X: Field{[10]uint32{0x00cca1b5, 0x00b385af, 0x02a91252, 0x019320b4, 0x02e817b6, 0x02c8e803, 0x029af3b1, 0x028975e1, 0x01d05a62, 0x00270c49}}, Y: Field{[10]uint32{0x01e5afe3, 0x026daf4e, 0x03450a18, 0x0185541a, 0x01385663, 0x03863d7d, 0x00172774, 0x01c5a061, 0x0210f670, 0x0031bb36}}}, + {X: Field{[10]uint32{0x00f80d68, 0x02a479a4, 0x0116bc2c, 0x03b526bc, 0x0310160b, 0x013722f8, 0x033843e0, 0x019c371f, 0x0221dcc7, 0x000cfa07}}, Y: Field{[10]uint32{0x01757b6f, 0x024a4195, 0x01bb8fa5, 0x03a27b01, 0x029ce417, 0x03bf8e2b, 0x01f11678, 0x021b4b9b, 0x01d3a0a3, 0x0039a530}}}, + {X: Field{[10]uint32{0x036a1ad2, 0x00700cc6, 0x03056d8e, 0x012e29a3, 0x035c1d0d, 0x00256609, 0x02b10715, 0x0383f2ff, 0x029e6899, 0x002550dd}}, Y: Field{[10]uint32{0x009b0d7e, 0x01e54d3b, 0x00b163f5, 0x0219fd9a, 0x0301c4be, 0x00bb473a, 0x035f1487, 0x021041d8, 0x03fdafc5, 0x0001c033}}}, + {X: Field{[10]uint32{0x0039efdd, 0x0142099d, 0x00203a0d, 0x018f8877, 0x026ca9b1, 0x02d4201f, 0x0081e6e5, 0x00b0e5f5, 0x00d173e6, 0x0013d073}}, Y: Field{[10]uint32{0x0069f79d, 0x0339df43, 0x011eed95, 0x02ff8563, 0x008fea56, 0x02dd2c95, 0x00b309ba, 0x0065cb62, 0x02d6aa8c, 0x003efe63}}}, + {X: Field{[10]uint32{0x005f12e5, 0x03b3c819, 0x03bd9064, 0x01a91946, 0x00a667fe, 0x023baf0a, 0x03fd9c33, 0x00037ef8, 0x0245584b, 0x00133eda}}, Y: Field{[10]uint32{0x0214652b, 0x006486bd, 0x0312f550, 0x028979ca, 0x00219638, 0x00495640, 0x00fac21d, 0x003a1d1c, 0x02dafe08, 0x000b77f5}}}, + {X: Field{[10]uint32{0x01eca626, 0x005dd5dd, 0x039821f2, 0x0324605f, 0x038e536b, 0x03eb94ce, 0x02217fd8, 0x028cf297, 0x03ecd9bb, 0x0027bee2}}, Y: Field{[10]uint32{0x00658fb4, 0x003e32ac, 0x02f8e944, 0x02e21d78, 0x018e3573, 0x029f70f8, 0x00bcf9c1, 0x03057a46, 0x00ed0529, 0x001984c0}}}, + {X: Field{[10]uint32{0x0030e441, 0x039876b9, 0x02470da9, 0x03e7a143, 0x00f5d3c0, 0x02f9b717, 0x01ab953e, 0x039302e1, 0x01525be7, 0x0030aa02}}, Y: Field{[10]uint32{0x009d9d2d, 0x02713be0, 0x0277b483, 0x018f5434, 0x036be063, 0x03027ef0, 0x026fa221, 0x01a5f1f6, 0x0136bf72, 0x00074b7b}}}, + {X: Field{[10]uint32{0x03baa707, 0x010b808e, 0x0030c0a2, 0x02d006fe, 0x032501a1, 0x031882c4, 0x02162764, 0x0208afd6, 0x036b49ae, 0x0010adff}}, Y: Field{[10]uint32{0x02b71d6d, 0x00288da0, 0x028b0eb9, 0x0254317a, 0x00fb2c75, 0x032ed68e, 0x02de994d, 0x039001c4, 0x005883f0, 0x003907f8}}}, + {X: Field{[10]uint32{0x03b0c28c, 0x007c38aa, 0x0386df78, 0x02d1fb8e, 0x01e00cc3, 0x017de3ce, 0x03e15185, 0x02d904ab, 0x0129d420, 0x003b82ec}}, Y: Field{[10]uint32{0x000aec61, 0x00d0fad7, 0x01099258, 0x015552ba, 0x0154b174, 0x003b6eb7, 0x006204b6, 0x02891d9f, 0x027a5a4f, 0x003dc743}}}, + {X: Field{[10]uint32{0x00ef5b9a, 0x0121f01e, 0x02e789ca, 0x0390a894, 0x0077546c, 0x009b140f, 0x031a7160, 0x00efd499, 0x02079cdb, 0x0007c762}}, Y: Field{[10]uint32{0x03571c20, 0x027a6365, 0x01cfc5c3, 0x02a98f47, 0x00180ee4, 0x03ef0c19, 0x00e8e6f9, 0x0144b7aa, 0x030dae55, 0x00318444}}}, + {X: Field{[10]uint32{0x02a31310, 0x004bfb34, 0x017b8b29, 0x01b97e4c, 0x027cf313, 0x01063c05, 0x026ebe55, 0x027ec564, 0x0006ecdc, 0x0016f6a7}}, Y: Field{[10]uint32{0x005ecad7, 0x02370a01, 0x023feb72, 0x01a285ed, 0x03890761, 0x01cbab6c, 0x03e59d5b, 0x00983203, 0x0370dce1, 0x000d63fe}}}, + {X: Field{[10]uint32{0x03866ea6, 0x011d5137, 0x01be91f8, 0x01cd2018, 0x01edc789, 0x0383bf5c, 0x0252dec8, 0x031c9d99, 0x0103fa50, 0x0030cbd9}}, Y: Field{[10]uint32{0x01fca304, 0x02e71c40, 0x008566de, 0x00a882e0, 0x006a34af, 0x02c4fc2c, 0x0309443c, 0x03b3101e, 0x02267a13, 0x0019c8d2}}}, + {X: Field{[10]uint32{0x0089caed, 0x0337aa25, 0x03069941, 0x01ce25ae, 0x00849bb6, 0x02584990, 0x026c83f2, 0x03ac19c3, 0x0111b71f, 0x001520f5}}, Y: Field{[10]uint32{0x008c1148, 0x034e49f6, 0x03ecfbfe, 0x0141e512, 0x03494d53, 0x03639377, 0x02df0f38, 0x00d0dd02, 0x0262d323, 0x0028269a}}}, + {X: Field{[10]uint32{0x02a322ef, 0x00625603, 0x010472d5, 0x03f6710f, 0x02d5e3c6, 0x029b3091, 0x00b93425, 0x01aae47b, 0x035ff0b8, 0x000f4b63}}, Y: Field{[10]uint32{0x0155b830, 0x027cd936, 0x00509c73, 0x03b28613, 0x00fb45d7, 0x01c75d82, 0x039cf4ab, 0x03381461, 0x008b4c23, 0x0010620d}}}, + {X: Field{[10]uint32{0x01af1dc0, 0x011d5d08, 0x01e9e40b, 0x000eaae2, 0x00735ddf, 0x024daf04, 0x01ffa9df, 0x019e017f, 0x013929ed, 0x000e970e}}, Y: Field{[10]uint32{0x00a7011d, 0x020893a4, 0x0081e0dd, 0x00aea517, 0x0344dcd5, 0x00a5d720, 0x002a7de2, 0x00a458ab, 0x01197675, 0x001d82c6}}}, + {X: Field{[10]uint32{0x00590a83, 0x03752135, 0x01f900e5, 0x0120cdcf, 0x00648869, 0x03892831, 0x039272ef, 0x0301b8fb, 0x02ac7c1c, 0x0028f548}}, Y: Field{[10]uint32{0x021b6be2, 0x007cb13b, 0x00795566, 0x031a4c15, 0x0328c377, 0x000005a5, 0x01684a95, 0x03758486, 0x022cb739, 0x001bd4ee}}}, + {X: Field{[10]uint32{0x00e8180f, 0x01451176, 0x01d42367, 0x021f76e5, 0x02c1437d, 0x00b80aa8, 0x00785836, 0x00806110, 0x01311399, 0x003bc2c2}}, Y: Field{[10]uint32{0x0086c634, 0x03210ae5, 0x019801b9, 0x0029065c, 0x00217352, 0x024be31d, 0x00408cdf, 0x011dc9f4, 0x00078d18, 0x001cefd1}}}, + {X: Field{[10]uint32{0x0115da20, 0x01bd031b, 0x03e070f2, 0x01734728, 0x02a770c1, 0x01846169, 0x02118991, 0x033ae708, 0x03fd1498, 0x0020503b}}, Y: Field{[10]uint32{0x0022a474, 0x03127f40, 0x01c3e45f, 0x0008280b, 0x03051c11, 0x0058bc0e, 0x028b7eb2, 0x02dfc6f9, 0x03df6d2d, 0x00131d3c}}}, + {X: Field{[10]uint32{0x03e122f0, 0x02966f3a, 0x00b74215, 0x03c000de, 0x017603c7, 0x03f5bf59, 0x0132f4d3, 0x027c7e4f, 0x03208e08, 0x000d1175}}, Y: Field{[10]uint32{0x010b6d5b, 0x0388e922, 0x013d4b63, 0x00dfa0a5, 0x0238da06, 0x000db868, 0x03c8626f, 0x013bcce8, 0x035dfdb5, 0x001b5040}}}, + {X: Field{[10]uint32{0x03a58cd7, 0x008f50fd, 0x02b9c72c, 0x01b57f9a, 0x01789a36, 0x00493378, 0x01933f97, 0x00da6874, 0x025a6235, 0x003852ca}}, Y: Field{[10]uint32{0x01fc8f8f, 0x011342fe, 0x013be447, 0x00658954, 0x01d67a9f, 0x022a7962, 0x02fe6ce5, 0x030409b2, 0x02c52f63, 0x00085bc1}}}, + {X: Field{[10]uint32{0x01891e0b, 0x00fa4b8b, 0x00deaf8f, 0x00199cd2, 0x00eec931, 0x0302205c, 0x010b2b33, 0x02f113f3, 0x00bc8389, 0x001b6590}}, Y: Field{[10]uint32{0x0104227d, 0x00af105f, 0x0331a185, 0x02c20586, 0x0068b5d4, 0x010a21ff, 0x0204759a, 0x036d927f, 0x00856e42, 0x0012d305}}}, + {X: Field{[10]uint32{0x019b2916, 0x002bf3bf, 0x0232462a, 0x0016e781, 0x02fd028a, 0x01f00ec6, 0x027cc60d, 0x007c84fd, 0x00045c46, 0x0009cbc5}}, Y: Field{[10]uint32{0x03348416, 0x03350cea, 0x00b1e825, 0x020cc551, 0x03fd6b75, 0x0003ac37, 0x023f78d8, 0x00d4e029, 0x02c0c0b2, 0x002618d7}}}, + {X: Field{[10]uint32{0x033a07e3, 0x00ca7b87, 0x02257681, 0x013b7a45, 0x02415233, 0x0378738e, 0x01250bec, 0x01d1698c, 0x0128eaae, 0x002a3266}}, Y: Field{[10]uint32{0x03351621, 0x03358479, 0x006209f5, 0x02df9879, 0x0124ae51, 0x0058bfb4, 0x01149aa5, 0x00fdfa38, 0x0286abdf, 0x00133309}}}, + {X: Field{[10]uint32{0x00975409, 0x00e18036, 0x01ceffac, 0x01403f4c, 0x011c660d, 0x02c79320, 0x01be6869, 0x03559626, 0x03337f93, 0x003ec092}}, Y: Field{[10]uint32{0x00c7fdb0, 0x01cbd1f1, 0x01e127b0, 0x028a2765, 0x03ee562c, 0x0115e59b, 0x00730c39, 0x00f255fa, 0x02b78bff, 0x000ce5a1}}}, + {X: Field{[10]uint32{0x00562f9c, 0x021c15ca, 0x014f2351, 0x03e73912, 0x00a6cb14, 0x0246e136, 0x03ecfe36, 0x00d525dc, 0x0147aa61, 0x00383921}}, Y: Field{[10]uint32{0x00a7b307, 0x01dbbbf7, 0x03676a6d, 0x03e1a7d1, 0x03778609, 0x00e58012, 0x03488389, 0x01d60149, 0x018b5640, 0x00182db7}}}, + {X: Field{[10]uint32{0x025d16e4, 0x01bbd644, 0x02169807, 0x00f77fb0, 0x03ed9e38, 0x001786c2, 0x0374d296, 0x022d4c27, 0x002d378b, 0x002f5b10}}, Y: Field{[10]uint32{0x01ef2c24, 0x0086c8a7, 0x00f10755, 0x012de544, 0x02a27692, 0x0231b4b0, 0x036a8f8c, 0x0071ecdd, 0x009cbb76, 0x00330eab}}}, + {X: Field{[10]uint32{0x01e451c0, 0x0085eb01, 0x02ef552c, 0x02f78542, 0x01d5886c, 0x03da548d, 0x00e2c554, 0x013d1051, 0x0231eefa, 0x0039a464}}, Y: Field{[10]uint32{0x03b1cfa7, 0x02ea6b18, 0x0346bc2a, 0x03f1a49f, 0x0173a888, 0x00a8473f, 0x0156133c, 0x00984ad3, 0x01d4d34d, 0x0039d3b8}}}, + {X: Field{[10]uint32{0x003d03a9, 0x02e92868, 0x01463f9c, 0x007a3051, 0x02037c48, 0x00a2f6ce, 0x012ac5a3, 0x01e1d136, 0x006a2a48, 0x0006a6b3}}, Y: Field{[10]uint32{0x01f0fb10, 0x01f1623f, 0x01ca126a, 0x0206d26d, 0x02df71fc, 0x01ff87d7, 0x02224224, 0x00d8a3eb, 0x029a960e, 0x0002e981}}}, + {X: Field{[10]uint32{0x02070910, 0x033bd33d, 0x028d536c, 0x0108f5b6, 0x00abfde6, 0x00b6e66e, 0x004e9395, 0x038c07cb, 0x03a92e5f, 0x0016d4ae}}, Y: Field{[10]uint32{0x0347ae29, 0x01bb796d, 0x00341f54, 0x02c0bf9d, 0x02cc1ab1, 0x01c6bb42, 0x00c68f0a, 0x0089f446, 0x03dd901e, 0x00042376}}}, + {X: Field{[10]uint32{0x01e05242, 0x00ce29ac, 0x022860f1, 0x02935fe6, 0x000652b0, 0x00ef8a0a, 0x01a096a7, 0x020aa6c4, 0x03601ebe, 0x0024b04d}}, Y: Field{[10]uint32{0x02449d7c, 0x02b01b02, 0x0027559f, 0x02f74538, 0x0251a588, 0x017db1e6, 0x003dd578, 0x0343e975, 0x03fc2dc6, 0x000b8fa4}}}, + {X: Field{[10]uint32{0x014318b8, 0x03ff97c7, 0x01d69a12, 0x01e7d818, 0x0194b4f2, 0x022550af, 0x021c749e, 0x01305dce, 0x00da7996, 0x000f2dbe}}, Y: Field{[10]uint32{0x03b11956, 0x02e904da, 0x01d54d05, 0x01c5b9ac, 0x0272a777, 0x02bb8a55, 0x023bd02f, 0x016b6370, 0x01a8b4f4, 0x0010b930}}}, + {X: Field{[10]uint32{0x03dbf5db, 0x00545142, 0x0183f664, 0x01366a00, 0x013c60a1, 0x01437839, 0x01a51100, 0x00637444, 0x0351d345, 0x0017fb58}}, Y: Field{[10]uint32{0x0346c3f6, 0x0299621d, 0x036cd056, 0x0078a579, 0x01da77e0, 0x026f60dd, 0x00140b64, 0x029342dd, 0x0190de07, 0x001ade69}}}, + {X: Field{[10]uint32{0x015d3840, 0x0064f8f6, 0x0356e7d3, 0x02c7f43e, 0x00a14132, 0x0301844a, 0x00245d37, 0x0213cadf, 0x00a781c3, 0x000ae23c}}, Y: Field{[10]uint32{0x01a0e10e, 0x021cfe22, 0x02981bd4, 0x02e520e2, 0x00c1632b, 0x0089125d, 0x01b6453c, 0x01b95d95, 0x03a21144, 0x003de1f9}}}, + {X: Field{[10]uint32{0x03293443, 0x02ec0b60, 0x02fd2047, 0x0253a623, 0x0118507f, 0x0368d9c6, 0x030ac3e1, 0x0157ecd6, 0x03b15a3f, 0x0031ec91}}, Y: Field{[10]uint32{0x01b85f4f, 0x01ee341b, 0x00b6799e, 0x03d993cf, 0x00c3c8e5, 0x0309f152, 0x02b6ac8b, 0x017c448d, 0x003734c6, 0x0012ad01}}}, + {X: Field{[10]uint32{0x003647dd, 0x02a8dd78, 0x005344c6, 0x03484875, 0x0045df69, 0x00b04df8, 0x0008a201, 0x02520417, 0x01338dcb, 0x00377f6a}}, Y: Field{[10]uint32{0x03795c1b, 0x02ff96d5, 0x02091bbc, 0x015691be, 0x0095f912, 0x0161c4b4, 0x032e93ac, 0x005af565, 0x01fd02a1, 0x003a57de}}}, + {X: Field{[10]uint32{0x031da7db, 0x013fbe8d, 0x00c29da0, 0x02d99dfe, 0x029d15a6, 0x0091fa1f, 0x03e3233b, 0x02c415b1, 0x02455084, 0x00372369}}, Y: Field{[10]uint32{0x001449c3, 0x00c81211, 0x00c80931, 0x00a198df, 0x018fc66d, 0x022f5da1, 0x0207fea0, 0x03b00fda, 0x01a3fde3, 0x0030a8d1}}}, + {X: Field{[10]uint32{0x01ff5333, 0x015520b4, 0x0395b8e3, 0x0334ea31, 0x02a31547, 0x0190e415, 0x0263bc7a, 0x02fea3c4, 0x0326c5fc, 0x003d4fce}}, Y: Field{[10]uint32{0x02716ac1, 0x022f8eb9, 0x031d1bb6, 0x03b1e662, 0x035249e8, 0x005f13ec, 0x0188f1da, 0x02e72a63, 0x0145e664, 0x000044fb}}}, + {X: Field{[10]uint32{0x0246cae9, 0x0277242d, 0x03a391d8, 0x021a4c4e, 0x027d7546, 0x0365a77d, 0x021d6477, 0x012d793b, 0x03fd0c6d, 0x00192348}}, Y: Field{[10]uint32{0x03e18962, 0x036f8a00, 0x0120615e, 0x01500c98, 0x009b3364, 0x02b81a5f, 0x02ffbd4b, 0x01d74d39, 0x00452393, 0x00340d78}}}, + {X: Field{[10]uint32{0x002839b1, 0x020ff84f, 0x011cb1c4, 0x038ac72a, 0x03bd51bd, 0x035c2cd0, 0x0073f3ed, 0x01603e09, 0x010e5dbe, 0x0024b9b7}}, Y: Field{[10]uint32{0x039577a5, 0x03d1852c, 0x012015dd, 0x007a8432, 0x01a61ab0, 0x02826ce4, 0x02d1a465, 0x01ef4964, 0x03fea544, 0x00336437}}}, + {X: Field{[10]uint32{0x009f687b, 0x013b983d, 0x03b782ef, 0x020daf9b, 0x00eaec05, 0x02505695, 0x0223ec54, 0x03be33e8, 0x018a7616, 0x0004c579}}, Y: Field{[10]uint32{0x03e1431c, 0x016109b5, 0x0280f1ac, 0x0285cdf6, 0x022fe189, 0x036b1caa, 0x00e1fa45, 0x01832f15, 0x0100802d, 0x001ca780}}}, + {X: Field{[10]uint32{0x033e2a3b, 0x0008522a, 0x035e6c94, 0x03579b41, 0x0186b001, 0x00d55394, 0x026b284a, 0x03f61438, 0x03999857, 0x000f22a5}}, Y: Field{[10]uint32{0x00b25977, 0x01a76f4a, 0x012f6d6c, 0x00568410, 0x03a722e9, 0x00140819, 0x0087b3d6, 0x00829565, 0x0092acc7, 0x001193c1}}}, + {X: Field{[10]uint32{0x027591c8, 0x00ba9d84, 0x00879f86, 0x03e3fc0f, 0x010bf3c7, 0x01be6b38, 0x02b37cae, 0x0317d10d, 0x0230cc94, 0x003a905c}}, Y: Field{[10]uint32{0x01a4faa6, 0x01819f61, 0x033ace91, 0x01d5c09a, 0x006f4ec4, 0x02735010, 0x00cff1eb, 0x03542eeb, 0x00cb8d95, 0x0025848e}}}, + {X: Field{[10]uint32{0x021a6ceb, 0x0066854d, 0x0040bceb, 0x0282c316, 0x0348496c, 0x00b262bd, 0x01a8c816, 0x001e78ca, 0x01c2f271, 0x0023b33e}}, Y: Field{[10]uint32{0x017e56af, 0x00f5a1ec, 0x03a5b0b5, 0x00e684cb, 0x01c8ac52, 0x00bcdeca, 0x00c6a7c5, 0x03c6a98c, 0x0219165b, 0x000f8966}}}, + {X: Field{[10]uint32{0x030f296d, 0x00e62d53, 0x0155677f, 0x004e10b3, 0x027bf3d9, 0x0153adaa, 0x033c34ab, 0x00e965a1, 0x0083b350, 0x000cbc3f}}, Y: Field{[10]uint32{0x0381a811, 0x036328be, 0x01e26655, 0x02b73268, 0x00311e50, 0x032d7dec, 0x02da3459, 0x01e2dd8b, 0x016d906f, 0x00351cdb}}}, + {X: Field{[10]uint32{0x00d7accb, 0x00c60db8, 0x00a9f638, 0x0302c985, 0x03e4fa4c, 0x017fdf2f, 0x03c171da, 0x00ea3e90, 0x011077c8, 0x002df58c}}, Y: Field{[10]uint32{0x016be9de, 0x0217af5e, 0x037e35e2, 0x02d30648, 0x008b84a5, 0x0307ae99, 0x02c27ef9, 0x00554aa2, 0x02405644, 0x0018257d}}}, + {X: Field{[10]uint32{0x02536954, 0x009a52ef, 0x02cf06c3, 0x03e35a49, 0x010588b4, 0x0158f95b, 0x00cd74e6, 0x013ec295, 0x004a22df, 0x003bdb24}}, Y: Field{[10]uint32{0x025dbaa4, 0x02568881, 0x00c9fb10, 0x024b83a7, 0x02aa7a04, 0x00dc5788, 0x03c3d3c4, 0x00de9396, 0x00b144cd, 0x000c2244}}}, + {X: Field{[10]uint32{0x02941a6a, 0x00b5eac8, 0x02e27067, 0x0079baaa, 0x02b37524, 0x012385fe, 0x00eebf0b, 0x0096f2b3, 0x03d1e628, 0x0006784e}}, Y: Field{[10]uint32{0x00b613f7, 0x00f2430a, 0x03bbad3e, 0x019b92bc, 0x02855ea6, 0x02fe3330, 0x01308bbd, 0x016f0455, 0x03290700, 0x001bc8b0}}}, + {X: Field{[10]uint32{0x008e9420, 0x02dec447, 0x025df967, 0x02af5e4a, 0x009a98a7, 0x03ca602c, 0x0349ae45, 0x03de41e4, 0x00df10f2, 0x0015f66f}}, Y: Field{[10]uint32{0x0265db68, 0x01a29ca6, 0x0265eb50, 0x03d6ff93, 0x0142ebfd, 0x033009ec, 0x00f8fcb1, 0x0215378d, 0x01e1d9b7, 0x002fd997}}}, + {X: Field{[10]uint32{0x03df06b2, 0x03e1eb80, 0x0057e4e3, 0x0087c4f4, 0x00bb530a, 0x0347b4c9, 0x038874e3, 0x017a2c21, 0x02857c3d, 0x000def19}}, Y: Field{[10]uint32{0x00998539, 0x00711493, 0x02ec83a8, 0x02f5cbd7, 0x0377764a, 0x00729eef, 0x02abbeac, 0x02c4bbc4, 0x03dc764d, 0x00055066}}}, + {X: Field{[10]uint32{0x01c2cec2, 0x01962a7e, 0x021387f3, 0x00729d04, 0x00b572e1, 0x01944b0b, 0x00012a59, 0x024544cf, 0x01d99ca5, 0x0006cc31}}, Y: Field{[10]uint32{0x02f39697, 0x02c16417, 0x0169101d, 0x01445a97, 0x002344f7, 0x01ebe327, 0x004d8421, 0x03343150, 0x020b2a0d, 0x0037108c}}}, + {X: Field{[10]uint32{0x01efd0bf, 0x02d387f0, 0x03e65b8d, 0x008616e4, 0x01e6e89f, 0x016b5297, 0x0329f4f8, 0x0156b374, 0x01b3050c, 0x0025a0c7}}, Y: Field{[10]uint32{0x03d47837, 0x0127b673, 0x00ef455e, 0x035687e3, 0x0082bd8b, 0x01c1cbcb, 0x0275ef61, 0x01ce6b43, 0x0020fd03, 0x0021bd0e}}}, + {X: Field{[10]uint32{0x00e3d8ad, 0x024f3551, 0x0379266b, 0x027a85f2, 0x02bce799, 0x01eb3550, 0x0309f28f, 0x00129560, 0x000faa1f, 0x00334bd4}}, Y: Field{[10]uint32{0x00dd8c29, 0x025011b2, 0x0009e929, 0x00158fbc, 0x0127dd1b, 0x02057de5, 0x00743c24, 0x03abba5f, 0x0080ddfc, 0x0007e5dc}}}, + {X: Field{[10]uint32{0x02d01c08, 0x00af85d2, 0x003e8ff3, 0x0279829e, 0x00802f51, 0x00d54a4a, 0x0318ff9d, 0x02789e8c, 0x027d237c, 0x00180e4a}}, Y: Field{[10]uint32{0x02893fdc, 0x03615bc8, 0x02065663, 0x00714e7f, 0x0088ae9e, 0x03ca5f11, 0x0194afbd, 0x0347e362, 0x0147df91, 0x003adfcc}}}, + {X: Field{[10]uint32{0x0237ee9a, 0x015d3e7e, 0x03c90d22, 0x01e45e6c, 0x03d8abb6, 0x03cf075f, 0x00d68fb9, 0x02adcc08, 0x03ad0df6, 0x003db3dd}}, Y: Field{[10]uint32{0x0042ebd1, 0x031de389, 0x03523280, 0x02e873e6, 0x0177e81e, 0x037dd8c4, 0x01d513b7, 0x03dc59ad, 0x01c33587, 0x0023fe8a}}}, + {X: Field{[10]uint32{0x027cdf7a, 0x001c50b6, 0x00abd018, 0x028b49a9, 0x00944a0e, 0x0046f8bf, 0x01b6f4ff, 0x03145165, 0x015af542, 0x0015f200}}, Y: Field{[10]uint32{0x00b05da9, 0x0319cfaa, 0x03e3d2c9, 0x02ff45b8, 0x00ffb692, 0x028dd537, 0x02b32d33, 0x00f319ed, 0x039e8015, 0x002d9f1d}}}, + {X: Field{[10]uint32{0x034fe462, 0x0390679a, 0x03b4bfa1, 0x01feed90, 0x012f58a1, 0x02ba664c, 0x03d5c51c, 0x01248bfe, 0x0158ac18, 0x001ff821}}, Y: Field{[10]uint32{0x01ec7a11, 0x023ef9de, 0x0079e5a8, 0x01745664, 0x007268cb, 0x03565616, 0x027e9e4c, 0x0162d4db, 0x037d8bbf, 0x001d8011}}}, + {X: Field{[10]uint32{0x01517b75, 0x0367cfb7, 0x0177d87b, 0x017d62f8, 0x023d8109, 0x03639f13, 0x029b87a0, 0x026fbf5c, 0x016e73b3, 0x000b85bd}}, Y: Field{[10]uint32{0x035fcb7a, 0x013905cd, 0x011aa69b, 0x03c1e808, 0x0177aa59, 0x01a3c260, 0x02c950e6, 0x00e836ea, 0x01ef5732, 0x0013389c}}}, + {X: Field{[10]uint32{0x00ffdedb, 0x03ae9886, 0x017ad9c2, 0x039b4b76, 0x0049200d, 0x0328929a, 0x0381f666, 0x01e00af9, 0x000d456d, 0x0029351c}}, Y: Field{[10]uint32{0x026e4532, 0x0350d3f1, 0x036d5efe, 0x0396bc4b, 0x009124aa, 0x02192936, 0x030e7628, 0x0283c3a3, 0x006d0e7b, 0x0030267e}}}, + {X: Field{[10]uint32{0x033fc059, 0x02306676, 0x0145dc04, 0x01d061fc, 0x01a2327e, 0x00795eb9, 0x016c9219, 0x0278fa8c, 0x01505011, 0x002d1d93}}, Y: Field{[10]uint32{0x0398653c, 0x00f55a91, 0x03092c2f, 0x01c13e93, 0x004f1270, 0x0005a862, 0x00831ea9, 0x0084a4fb, 0x00facc27, 0x0038e6fa}}}, + {X: Field{[10]uint32{0x027e2d0e, 0x0064c6c3, 0x02235503, 0x008ebae0, 0x02c29fe1, 0x0213f1a5, 0x015b352e, 0x02afc33b, 0x03a7d291, 0x000f9a1a}}, Y: Field{[10]uint32{0x0185d266, 0x0371306a, 0x02ed88c7, 0x001e6327, 0x005a889b, 0x00c86e6e, 0x00caf9a9, 0x00f207e1, 0x00ab07cc, 0x001ecd70}}}, + {X: Field{[10]uint32{0x024a46c5, 0x02501f34, 0x03346db4, 0x0014a234, 0x03584001, 0x00c488c5, 0x0161e563, 0x01c3bf16, 0x032d1d4c, 0x0035e21b}}, Y: Field{[10]uint32{0x00b9efc8, 0x02501015, 0x023e868d, 0x00fe053c, 0x03c5ef50, 0x0135f6ea, 0x0225903d, 0x018092cb, 0x02e617c4, 0x00369917}}}, + {X: Field{[10]uint32{0x03a17a40, 0x01e643c2, 0x03475d3a, 0x03c8c976, 0x02cea867, 0x038dd519, 0x0257ba71, 0x0135016a, 0x03cc1465, 0x001f2f48}}, Y: Field{[10]uint32{0x02dcbc51, 0x03968774, 0x0303954c, 0x01ffb74d, 0x02088d32, 0x018e3b3a, 0x005541ee, 0x01b6d2e6, 0x01af96e6, 0x003b7739}}}, + {X: Field{[10]uint32{0x03eb9795, 0x02e62505, 0x00a5c5d2, 0x02ed6185, 0x0018f877, 0x00cf0864, 0x00ea0a92, 0x03876bbb, 0x0185c279, 0x00151898}}, Y: Field{[10]uint32{0x00e9b6f8, 0x0342e1b8, 0x0309d928, 0x03c37192, 0x018cfb07, 0x033f1e46, 0x03967305, 0x0211502f, 0x0185dc8f, 0x001941fb}}}, + {X: Field{[10]uint32{0x0163c32e, 0x02170201, 0x00681892, 0x03e78880, 0x0259e68c, 0x0376afbe, 0x02db20aa, 0x030b38af, 0x01551cbe, 0x003b73bc}}, Y: Field{[10]uint32{0x02753179, 0x035e8f6f, 0x00b33b03, 0x03f677da, 0x00bed59e, 0x032e936d, 0x016ab45b, 0x00a14f0a, 0x01437559, 0x002b799c}}}, + {X: Field{[10]uint32{0x023380cd, 0x02342180, 0x02dd99cf, 0x017320d2, 0x036a30bc, 0x032476df, 0x03db47fb, 0x03e74fc9, 0x0153ff6e, 0x003809ea}}, Y: Field{[10]uint32{0x03a2bbf5, 0x00d8b6b2, 0x032e4c7e, 0x02025d61, 0x0162eafc, 0x03114aa0, 0x012d174a, 0x03408239, 0x004de18a, 0x00079ac9}}}, + {X: Field{[10]uint32{0x02e2b2d6, 0x02b1bd9c, 0x00960e17, 0x00b2aa88, 0x0366dbf9, 0x01e1f549, 0x02a251f3, 0x00090953, 0x0168db98, 0x0029401b}}, Y: Field{[10]uint32{0x020b2b9c, 0x00fea95a, 0x01babfa6, 0x037d735b, 0x0372d1e6, 0x003dd1c8, 0x0198766c, 0x03756e53, 0x017ee854, 0x002864e3}}}, + {X: Field{[10]uint32{0x0027be11, 0x039419a1, 0x004e03d5, 0x00943b94, 0x01dbb020, 0x00a65646, 0x029adf73, 0x03f67b69, 0x01f201a1, 0x000c9c1d}}, Y: Field{[10]uint32{0x03c4debb, 0x02ace05a, 0x02df32de, 0x03091466, 0x02611a4e, 0x036157e8, 0x00ee3356, 0x0252fa52, 0x02b1c32e, 0x0010695f}}}, + {X: Field{[10]uint32{0x023363bd, 0x01e567c6, 0x0399ac1c, 0x0013188d, 0x039c87ac, 0x03a57dd2, 0x010cdcd7, 0x012f29ac, 0x01c66669, 0x0025f869}}, Y: Field{[10]uint32{0x00ab5e88, 0x026e49f2, 0x006a948c, 0x02601095, 0x01566894, 0x0359c709, 0x032bb6c4, 0x01587ded, 0x008d1ec7, 0x000f3269}}}, + {X: Field{[10]uint32{0x00c07a21, 0x0243b4ec, 0x01a047f7, 0x01a27dbf, 0x03d0a2d8, 0x013bad2a, 0x01bce28f, 0x01373f44, 0x0240a737, 0x001143e9}}, Y: Field{[10]uint32{0x03a77f4c, 0x00f285bb, 0x0231fc4c, 0x01b1fae8, 0x02aa35a5, 0x0034774d, 0x002a1f17, 0x033e8752, 0x0298dc17, 0x003aba20}}}, + {X: Field{[10]uint32{0x020a6559, 0x007bd2e7, 0x004a8a7a, 0x02461fa5, 0x00d81fad, 0x01025090, 0x0209ce1f, 0x019a84b6, 0x0340fc0a, 0x003d6a9c}}, Y: Field{[10]uint32{0x02eb5017, 0x0367f1ca, 0x022e349a, 0x004276d4, 0x00899d98, 0x02136e9d, 0x02e7738f, 0x024bc718, 0x03da9ef9, 0x0004956c}}}, + {X: Field{[10]uint32{0x0242f1b4, 0x032529e2, 0x02c8c90c, 0x022a2c53, 0x028857ac, 0x01fef5d6, 0x03238419, 0x01e0da9e, 0x01655519, 0x0001a402}}, Y: Field{[10]uint32{0x031b027b, 0x02eb6305, 0x007100f1, 0x02d3a7bd, 0x02952b5b, 0x02f817cc, 0x02271072, 0x025db6d1, 0x01d2038c, 0x00077060}}}, + {X: Field{[10]uint32{0x03f290aa, 0x00b484b0, 0x01e878ff, 0x03e4cd55, 0x03bc3bc0, 0x030dd830, 0x019f377b, 0x0104d9fa, 0x005a8ed8, 0x000ac6a8}}, Y: Field{[10]uint32{0x0013e280, 0x019f9633, 0x00a417b2, 0x002b2f74, 0x0035e900, 0x01fcda2f, 0x01f58965, 0x02f0c645, 0x02f41eb8, 0x0011ec96}}}, + {X: Field{[10]uint32{0x0052d81d, 0x00574974, 0x01a7ab53, 0x00e75320, 0x03454b1e, 0x00017976, 0x013540d3, 0x02bfc366, 0x029ca18c, 0x002939ad}}, Y: Field{[10]uint32{0x015d70c5, 0x02b70068, 0x0182236f, 0x00845f22, 0x00df4fcb, 0x00b9e9bb, 0x02d78edc, 0x01e41290, 0x01039c58, 0x001f3fc8}}}, + {X: Field{[10]uint32{0x039d2582, 0x01a45bec, 0x00fa17a3, 0x02ca029f, 0x01f728e1, 0x02775de5, 0x039cb0fd, 0x03292cf8, 0x0396c74f, 0x002ad12e}}, Y: Field{[10]uint32{0x0026f5c1, 0x01a8b264, 0x00ab7cb7, 0x036079e5, 0x037edc0d, 0x00645659, 0x0373febb, 0x03633279, 0x03a4519f, 0x00167646}}}, + {X: Field{[10]uint32{0x01e332a2, 0x036f08e7, 0x03cc7715, 0x01d5750b, 0x00934729, 0x015108a2, 0x016a31ae, 0x030f9232, 0x005b3fb9, 0x0020ec32}}, Y: Field{[10]uint32{0x01a6da6e, 0x034c07cd, 0x014b1e36, 0x00e4b592, 0x009652d7, 0x03c21a00, 0x0033b342, 0x00160bf6, 0x0240fb62, 0x003a67d5}}}, + {X: Field{[10]uint32{0x03954537, 0x02c856bb, 0x0078841e, 0x03d10381, 0x03e5bd10, 0x01402f03, 0x02911ee0, 0x033e059d, 0x013e624e, 0x003a914c}}, Y: Field{[10]uint32{0x000c7445, 0x0344c4db, 0x0244e81a, 0x0005342d, 0x00d5afb1, 0x027a2915, 0x03bde53b, 0x02733880, 0x000ce235, 0x0012ae2c}}}, + {X: Field{[10]uint32{0x01a3cd4e, 0x033a87d4, 0x03412ac4, 0x0278df3d, 0x03ae6d60, 0x023249f2, 0x03f7a269, 0x00f65a7d, 0x00e4af82, 0x0024db04}}, Y: Field{[10]uint32{0x017b7213, 0x023a37ec, 0x02b60bf6, 0x01ec04f4, 0x00bdb906, 0x000d67db, 0x03e5bdcf, 0x02142e38, 0x03bb10dd, 0x0011bdca}}}, + {X: Field{[10]uint32{0x02e9bfd6, 0x0243583c, 0x0296b36c, 0x00597478, 0x01847bb1, 0x01aa26cc, 0x02cf8e13, 0x030f6ce4, 0x015b61aa, 0x0010da97}}, Y: Field{[10]uint32{0x0336d68d, 0x0155a18b, 0x0247e336, 0x036839cd, 0x025e342b, 0x012a43e7, 0x038559c8, 0x032b3065, 0x008dae67, 0x003e079a}}}, + {X: Field{[10]uint32{0x00b315d7, 0x02136001, 0x0067aabd, 0x0108b986, 0x02d931a4, 0x0153d898, 0x024b929e, 0x022684e8, 0x00273fe7, 0x0027ae55}}, Y: Field{[10]uint32{0x012ef59c, 0x03e568d3, 0x01c60768, 0x012bfb04, 0x02d29f20, 0x03bfea0a, 0x0020fba8, 0x03990002, 0x01927dc0, 0x000e2ff0}}}, + {X: Field{[10]uint32{0x02280d8a, 0x0392e97e, 0x0277a0e6, 0x00342f68, 0x02ecb77a, 0x0003d8f9, 0x02b4328a, 0x02f02b2d, 0x02f587ec, 0x000e09ad}}, Y: Field{[10]uint32{0x024ef271, 0x00cbc10e, 0x016e6572, 0x024e2e8f, 0x01db35e2, 0x03698fe2, 0x03e6eb9e, 0x039a6c84, 0x01fedcef, 0x0003650d}}}, + {X: Field{[10]uint32{0x00a1dde2, 0x03e32881, 0x00a21cd0, 0x02e36cf3, 0x034dbdce, 0x010d92e7, 0x0193bcf8, 0x0286f8fe, 0x0111ae0e, 0x0028d233}}, Y: Field{[10]uint32{0x0083ac75, 0x03522107, 0x001e91d1, 0x02f5b591, 0x0007078e, 0x004ada28, 0x01c202f2, 0x03ebc9a8, 0x01d3db7c, 0x0007f214}}}, + {X: Field{[10]uint32{0x03df7329, 0x03a6818a, 0x002053c4, 0x039cf2dc, 0x025d70d1, 0x01c90993, 0x027646d0, 0x037cf139, 0x0239237f, 0x002ff855}}, Y: Field{[10]uint32{0x035f88e4, 0x03413e4a, 0x023adf12, 0x0373924b, 0x03345488, 0x01dd9d20, 0x03c09d1d, 0x03967670, 0x03e61ec5, 0x00240acd}}}, + {X: Field{[10]uint32{0x003dfa5e, 0x004f3270, 0x02944144, 0x00409c1f, 0x012642ae, 0x02081608, 0x00dc346c, 0x02dbd350, 0x014d81a1, 0x0038bf6c}}, Y: Field{[10]uint32{0x0088fceb, 0x0028f88d, 0x004086c6, 0x02ca6c03, 0x02131e37, 0x01d9d818, 0x026925ae, 0x021545b1, 0x00ed846e, 0x000c046d}}}, + {X: Field{[10]uint32{0x013c7416, 0x0377b1a4, 0x0038a535, 0x03aab09f, 0x02cf1119, 0x02d2b088, 0x0263659d, 0x019d205d, 0x01c68f47, 0x002ef196}}, Y: Field{[10]uint32{0x0154b954, 0x026099de, 0x00c7a477, 0x00825d6e, 0x03482501, 0x034ff84e, 0x01d13a40, 0x0144abeb, 0x02e19fdb, 0x0007e2db}}}, + {X: Field{[10]uint32{0x02505521, 0x0137a368, 0x02056cef, 0x02dbf67b, 0x01ce9141, 0x03e169e2, 0x016f743a, 0x01e26f6f, 0x02029866, 0x00196f4a}}, Y: Field{[10]uint32{0x0378f5a5, 0x017ce74c, 0x0370c6b6, 0x0135c429, 0x02990b18, 0x030f9b15, 0x01644a46, 0x02def175, 0x00301ced, 0x000cb6f8}}}, + {X: Field{[10]uint32{0x0278e981, 0x01645ac8, 0x01406a3a, 0x02427817, 0x00e9318d, 0x0303cdc9, 0x0175a49f, 0x033df093, 0x02eb8382, 0x0007b039}}, Y: Field{[10]uint32{0x0015715a, 0x033f0acd, 0x019fc240, 0x0018cdf3, 0x02fa56ac, 0x01a5f7af, 0x008ade3c, 0x02f2bfab, 0x029cf486, 0x00394384}}}, + {X: Field{[10]uint32{0x03a9eb8c, 0x032c43d8, 0x00d9e10d, 0x0248cd96, 0x00c0399c, 0x0284058a, 0x01aceb1e, 0x02896678, 0x031c203d, 0x001ce42b}}, Y: Field{[10]uint32{0x037c3126, 0x03837c25, 0x02418320, 0x028ce6f3, 0x002c3ada, 0x037af9f6, 0x03cad451, 0x01ec275e, 0x00966064, 0x001f4855}}}, + {X: Field{[10]uint32{0x021a533b, 0x01c7a05a, 0x01eb2b4b, 0x007b624c, 0x01127baf, 0x00267311, 0x03ff7f37, 0x00dd91e0, 0x00697b91, 0x00266945}}, Y: Field{[10]uint32{0x03e2e8e4, 0x022018e9, 0x00d4c8a2, 0x03c23a8e, 0x00809d21, 0x02b9d23f, 0x00bd57db, 0x01dc2c3f, 0x000f7503, 0x00127034}}}, + {X: Field{[10]uint32{0x020394d9, 0x03eb5962, 0x018cbf12, 0x038313f2, 0x02320ba2, 0x03c6dc09, 0x03b7dbfe, 0x00133033, 0x00b13b48, 0x003935b8}}, Y: Field{[10]uint32{0x03761a41, 0x01d74d8e, 0x01b6c750, 0x03760619, 0x03af5fc3, 0x038338be, 0x035ad203, 0x001bf9a9, 0x02ac73a0, 0x002bac3a}}}, + {X: Field{[10]uint32{0x01fe1a04, 0x01445b86, 0x03459d88, 0x0160ad54, 0x031a9aa0, 0x02b48fec, 0x03e1c460, 0x0397ab2c, 0x0141507c, 0x00122290}}, Y: Field{[10]uint32{0x0312bd12, 0x008d7d33, 0x0104f0d7, 0x01ce97f6, 0x00e82f80, 0x02b58ec1, 0x01eaf25e, 0x03e31d33, 0x0066043e, 0x001af5a8}}}, + {X: Field{[10]uint32{0x03babaa1, 0x03057659, 0x028c55d2, 0x011f290b, 0x032cb65b, 0x00b7eeb0, 0x011c2ffd, 0x0295346b, 0x024ded0c, 0x00303ff8}}, Y: Field{[10]uint32{0x027e9289, 0x01f1af5f, 0x0167dbbd, 0x03859d59, 0x03a0a330, 0x037dc047, 0x01bbba88, 0x0137c867, 0x023e29c5, 0x00345731}}}, + {X: Field{[10]uint32{0x027780b1, 0x016e48dd, 0x03fb2830, 0x003fc82f, 0x0131b05d, 0x023f17bc, 0x02dd36dd, 0x01389677, 0x030206c7, 0x000cdb66}}, Y: Field{[10]uint32{0x014e647b, 0x0179fd50, 0x01fd1b05, 0x0184051c, 0x032b1b64, 0x006f6e27, 0x03e6510e, 0x029c1eba, 0x00fc9886, 0x0012bb6b}}}, + {X: Field{[10]uint32{0x02dcf04f, 0x03b38b40, 0x024a706a, 0x016b3a11, 0x019a2a17, 0x031ee1b9, 0x03d3711d, 0x029ef8ee, 0x02b98973, 0x00260d4f}}, Y: Field{[10]uint32{0x02ee767e, 0x01d187ea, 0x0196d980, 0x0290f5b1, 0x028e45b4, 0x00178704, 0x02108873, 0x01290e3d, 0x02c22789, 0x002a1dfe}}}, + {X: Field{[10]uint32{0x02da1e61, 0x01f0d84d, 0x039053f3, 0x01df0e3a, 0x0271c9fb, 0x0153f2c2, 0x0239cecb, 0x03e77d8d, 0x021c17ff, 0x003370d7}}, Y: Field{[10]uint32{0x0094eace, 0x026d9a25, 0x017782bb, 0x0275f58a, 0x0087ae55, 0x030528c7, 0x024f0ccd, 0x01c9837d, 0x02bafe91, 0x002a332d}}}, + {X: Field{[10]uint32{0x00111941, 0x026a4d20, 0x00b5b515, 0x03b149b3, 0x015d7407, 0x02701bc5, 0x00584093, 0x0282c9c5, 0x01c15e62, 0x00244b2c}}, Y: Field{[10]uint32{0x03049bf6, 0x02f561cd, 0x035adbf4, 0x02e60d23, 0x026fa710, 0x031c3769, 0x00cecc86, 0x03111f34, 0x00d51723, 0x00161305}}}, + {X: Field{[10]uint32{0x03bff3bc, 0x0339a4f0, 0x0102b5dd, 0x01a26003, 0x01ffd195, 0x03fd00d0, 0x02ec6e2c, 0x022b3667, 0x017c7c1e, 0x00085178}}, Y: Field{[10]uint32{0x0236356f, 0x02ffd3dd, 0x02b68957, 0x0222bebf, 0x00a5c430, 0x02769eeb, 0x030e9b89, 0x02cdce56, 0x01a240c0, 0x000ee29c}}}, + {X: Field{[10]uint32{0x010b1692, 0x00baa523, 0x004ab3aa, 0x002882ff, 0x0143e091, 0x000f3721, 0x024f7e1d, 0x01c9c888, 0x03367e87, 0x00392824}}, Y: Field{[10]uint32{0x02cf846e, 0x00557df0, 0x00f80328, 0x0372bdf4, 0x02898f48, 0x03e9b8d3, 0x02b8315a, 0x01bc0e3b, 0x00313314, 0x00092c7b}}}, + {X: Field{[10]uint32{0x0328db40, 0x026cdb34, 0x02bb0f57, 0x0361001b, 0x012b1390, 0x01900a1d, 0x03387ed4, 0x01166edf, 0x02dd464d, 0x003f7d49}}, Y: Field{[10]uint32{0x013a3987, 0x011f0379, 0x00963141, 0x026a9d17, 0x01937326, 0x004993b1, 0x02cf7766, 0x005b4774, 0x02c56792, 0x0010e5b9}}}, + {X: Field{[10]uint32{0x00729f86, 0x016fed3b, 0x01da4fab, 0x012539d4, 0x0252ca4c, 0x02b77cfd, 0x01933ebc, 0x01c9cd42, 0x0016b3e3, 0x0001b217}}, Y: Field{[10]uint32{0x03648d6f, 0x019bc5ba, 0x01cf1217, 0x02646e7e, 0x01e592ce, 0x0177a64a, 0x0249040c, 0x0201f979, 0x03c8520b, 0x0026d4c3}}}, + {X: Field{[10]uint32{0x00e28e58, 0x0031e44b, 0x03203feb, 0x02889560, 0x03004e7d, 0x0378033e, 0x0098ce4b, 0x038b0043, 0x023c596e, 0x0013efeb}}, Y: Field{[10]uint32{0x026ff099, 0x00d55fb6, 0x017993e7, 0x01960ef0, 0x02396b8a, 0x03d43f58, 0x02dcfdcf, 0x00d92e57, 0x0104ed0e, 0x003fb3c1}}}, + {X: Field{[10]uint32{0x0378bab8, 0x00d44f81, 0x001fa150, 0x02ef4f0a, 0x0197c1d7, 0x003a7204, 0x0283c2b9, 0x0045e4ed, 0x037b8017, 0x0026f30e}}, Y: Field{[10]uint32{0x01bc0b43, 0x002e45d0, 0x03e9f3b7, 0x00275f62, 0x03a887f0, 0x02166ea8, 0x03825ab9, 0x0227469d, 0x00928782, 0x00368bab}}}, + {X: Field{[10]uint32{0x03635150, 0x0380be5a, 0x03c8a024, 0x0098ed78, 0x00855b0a, 0x01cb44c5, 0x02956956, 0x028ecfd6, 0x00400e70, 0x00110568}}, Y: Field{[10]uint32{0x023986be, 0x02961a76, 0x0223ec58, 0x0158e7cc, 0x016843ac, 0x026bf571, 0x02921603, 0x02a7e207, 0x038fcf55, 0x0036294e}}}, + {X: Field{[10]uint32{0x005b2341, 0x00212dc1, 0x030924d2, 0x00d8b54d, 0x01b617b5, 0x03880e0e, 0x00988fcb, 0x02f3da8e, 0x01c9cdaf, 0x001579d6}}, Y: Field{[10]uint32{0x0131bb95, 0x03e0abfe, 0x015d6cf7, 0x02dd0bae, 0x013c1191, 0x0288c561, 0x01524834, 0x00d01626, 0x03eaca8a, 0x00129a4c}}}, + {X: Field{[10]uint32{0x0140e9c8, 0x018d2215, 0x024b95ed, 0x0162b6f7, 0x018d1153, 0x03720f82, 0x017e072b, 0x00f0bc29, 0x0325bee2, 0x00084087}}, Y: Field{[10]uint32{0x01a8c9f0, 0x02ff8f3e, 0x008d4ba5, 0x0071fe19, 0x034ed8dc, 0x037208a8, 0x002c98f8, 0x003bfdf1, 0x0291a770, 0x0026bbd5}}}, + {X: Field{[10]uint32{0x01b376d1, 0x031e60b3, 0x024a7a28, 0x03bda413, 0x02c70771, 0x003502e2, 0x03f3c641, 0x006bffb7, 0x011ddded, 0x000ad38c}}, Y: Field{[10]uint32{0x0309b05c, 0x02b1cc35, 0x02575d20, 0x034db1e4, 0x0248b25d, 0x015fd6e5, 0x0243d02b, 0x016c1c3f, 0x00f56b25, 0x0005170c}}}, + {X: Field{[10]uint32{0x015378b3, 0x022d7d17, 0x0091e8b9, 0x02be412c, 0x025ed91c, 0x0017496d, 0x00dbf5be, 0x01840324, 0x021c7e16, 0x0014642c}}, Y: Field{[10]uint32{0x02650073, 0x0102d299, 0x01166040, 0x01b085b0, 0x001826d2, 0x02f83550, 0x00e3f268, 0x0317e2d4, 0x02471fbd, 0x002e0f33}}}, + {X: Field{[10]uint32{0x005b56f7, 0x03d00c15, 0x016ae1f2, 0x0025df40, 0x0188b1b0, 0x01d82062, 0x007c7b28, 0x01702cd9, 0x02e454c6, 0x000ac847}}, Y: Field{[10]uint32{0x02854f5c, 0x01c3775d, 0x03506f9b, 0x01a6e18f, 0x00fff746, 0x01e984a2, 0x01a25634, 0x03f0755c, 0x015917d8, 0x001d5d0e}}}, + {X: Field{[10]uint32{0x024134d4, 0x03e52bb9, 0x021b6d4a, 0x013e5063, 0x03a3caad, 0x03dae99b, 0x038ec37f, 0x002bb8d1, 0x0392b41e, 0x0032cc2d}}, Y: Field{[10]uint32{0x028358c5, 0x006aad88, 0x008e771b, 0x00376bac, 0x00914230, 0x003471ca, 0x02b8b4ec, 0x027d2e48, 0x02decb3a, 0x001155c6}}}, + {X: Field{[10]uint32{0x00e4bc6c, 0x00f34c81, 0x012e065c, 0x0149fba8, 0x03e46879, 0x0226f99e, 0x0349d070, 0x02a85ba5, 0x03a8d2fc, 0x003d390d}}, Y: Field{[10]uint32{0x03ba97c4, 0x02798a9d, 0x009c4344, 0x03f0e489, 0x008e7647, 0x03743b8a, 0x01e51f8b, 0x02ba28c3, 0x028b7e81, 0x003ed4b4}}}, + {X: Field{[10]uint32{0x0350d518, 0x0314f377, 0x00080545, 0x012f2d9e, 0x00ce85a9, 0x024f677e, 0x02a726c1, 0x0066cef1, 0x02a76a2a, 0x0028299d}}, Y: Field{[10]uint32{0x03190a71, 0x01ff2223, 0x03fe8e43, 0x01a28f26, 0x0041198d, 0x02b901c0, 0x01816e5a, 0x02f4842e, 0x00c6b1b7, 0x00191ffa}}}, + {X: Field{[10]uint32{0x03ff7b7e, 0x00296eed, 0x0171c786, 0x01745762, 0x0275a2ba, 0x03abbbb9, 0x00544ab1, 0x0250a2c4, 0x03ead7f3, 0x00057753}}, Y: Field{[10]uint32{0x0038445c, 0x00b11c67, 0x02961844, 0x007c6c7e, 0x0253924d, 0x02dcc8b4, 0x02313427, 0x008551f4, 0x01dd5fab, 0x00226557}}}, + {X: Field{[10]uint32{0x030ca522, 0x03d8c864, 0x012b8850, 0x00ffdcb3, 0x0301bdea, 0x035d3767, 0x037a188e, 0x012d1d8d, 0x00004029, 0x002a01ae}}, Y: Field{[10]uint32{0x02b97213, 0x02fb7237, 0x010db9c6, 0x02b18624, 0x0253e49a, 0x02aceee1, 0x03f1fa88, 0x02c6bda5, 0x036547d8, 0x0012db5c}}}, + {X: Field{[10]uint32{0x039f148b, 0x02e8fd56, 0x0006df31, 0x02b3cf01, 0x0058a983, 0x0390c7ba, 0x036ff9f6, 0x01921de8, 0x023dca08, 0x001078dc}}, Y: Field{[10]uint32{0x038392e4, 0x0252074e, 0x02007913, 0x00b37ff2, 0x022753c5, 0x0336a7f4, 0x000b136d, 0x0163406a, 0x02caf27c, 0x0022ac59}}}, + {X: Field{[10]uint32{0x01bba3c4, 0x002f2a19, 0x00953ea0, 0x011fe353, 0x01690e04, 0x00251985, 0x03a3e587, 0x02322766, 0x00f27855, 0x0018ee28}}, Y: Field{[10]uint32{0x03cf787f, 0x0002cc90, 0x03a0c2d3, 0x025dca2c, 0x008c09b2, 0x03c01320, 0x0295da00, 0x022d254e, 0x014185eb, 0x000c87eb}}}, + {X: Field{[10]uint32{0x014c5963, 0x00aa6a6c, 0x0056c894, 0x036b4bfe, 0x01c1ca21, 0x0088a698, 0x01cae5f8, 0x0034e941, 0x037faa8b, 0x00018afa}}, Y: Field{[10]uint32{0x02bffd4b, 0x0275efd5, 0x030451ac, 0x0008bd6d, 0x03a36f4c, 0x00fbf710, 0x01886550, 0x0309fd73, 0x00bd7120, 0x0038f673}}}, + {X: Field{[10]uint32{0x03d20427, 0x03cb1206, 0x0199ac65, 0x033cf2cb, 0x03bc133f, 0x024bc0c4, 0x01d79a90, 0x02e27af9, 0x000af524, 0x002dd686}}, Y: Field{[10]uint32{0x021d2747, 0x02e08952, 0x02d48c39, 0x01918cfb, 0x036a6369, 0x0398b7ec, 0x03094b41, 0x0301534d, 0x0056b11c, 0x0039e154}}}, + {X: Field{[10]uint32{0x024949e9, 0x03bb413f, 0x032f2f03, 0x00f3bbc0, 0x026b51f9, 0x013418e8, 0x01df9cbe, 0x03f1da5f, 0x036d5298, 0x001396ef}}, Y: Field{[10]uint32{0x02a12188, 0x039138c5, 0x00119476, 0x02fa6495, 0x001871fb, 0x0336024c, 0x0114a19e, 0x02771951, 0x028640cd, 0x00199c09}}}, + {X: Field{[10]uint32{0x00173237, 0x02fdb7c3, 0x01200074, 0x039b72d8, 0x02b78e86, 0x0357f06a, 0x02edb836, 0x03c1a4ee, 0x003df509, 0x002a5de3}}, Y: Field{[10]uint32{0x01d0cab7, 0x03804fca, 0x025d690e, 0x0072302f, 0x019230a4, 0x002a1759, 0x03a0e50d, 0x03e44e57, 0x019186a0, 0x000cea72}}}, + {X: Field{[10]uint32{0x03570449, 0x01eed8f3, 0x03c95cdb, 0x039c9b32, 0x00757fb3, 0x02924dab, 0x01790bc1, 0x012f9f12, 0x02ad1666, 0x003c6cea}}, Y: Field{[10]uint32{0x0060cc06, 0x003ed29d, 0x02a3a52b, 0x0098934e, 0x02006434, 0x011899e0, 0x02183981, 0x037040fc, 0x01cbea3f, 0x003477f8}}}, + {X: Field{[10]uint32{0x0349f598, 0x02293164, 0x022d0698, 0x0172bd33, 0x019563a0, 0x0133c067, 0x0036ad6a, 0x035615a9, 0x013ab015, 0x00359b3f}}, Y: Field{[10]uint32{0x011efc4d, 0x033dbe84, 0x01756d07, 0x02fbee54, 0x00d8e91b, 0x036e503e, 0x03b73056, 0x03679598, 0x01b6d097, 0x0017a85e}}}, + {X: Field{[10]uint32{0x020ac7aa, 0x03f8ef36, 0x00470ea8, 0x01bcb036, 0x015d87a1, 0x0260bb7f, 0x030f30aa, 0x01744efb, 0x00f0924b, 0x00294ca9}}, Y: Field{[10]uint32{0x038d5c1c, 0x00aa49c7, 0x017ad553, 0x03eab188, 0x0374fd1e, 0x03d40e1b, 0x003de70d, 0x00d204f3, 0x0019ca4e, 0x0030b98b}}}, + {X: Field{[10]uint32{0x00439b70, 0x0397fd8a, 0x03b3e1a3, 0x03bcff8b, 0x0281ebb3, 0x0381ed8c, 0x03d08c09, 0x0220d7fe, 0x01125df7, 0x002a6ac9}}, Y: Field{[10]uint32{0x01877514, 0x00696d61, 0x00c7e350, 0x02d53a54, 0x01f2eaad, 0x0330d77c, 0x0243698a, 0x0056aa6a, 0x01db56e0, 0x00163fd5}}}, + {X: Field{[10]uint32{0x020466eb, 0x03fd1b11, 0x02521f2c, 0x012907b5, 0x0153df17, 0x024571b5, 0x004dc830, 0x00f7b306, 0x03849081, 0x00338163}}, Y: Field{[10]uint32{0x02f3e745, 0x011acbe2, 0x03d47c76, 0x01065ecd, 0x02282377, 0x013d3dc6, 0x02815a78, 0x01d05016, 0x00c45881, 0x0010534e}}}, + {X: Field{[10]uint32{0x02406299, 0x02faaa5b, 0x003d4737, 0x014e76d8, 0x010afe92, 0x0059137a, 0x0385c7f3, 0x02cdaaac, 0x036530a2, 0x002647ea}}, Y: Field{[10]uint32{0x008eed57, 0x00abe7f9, 0x014df4f8, 0x03edeb6a, 0x005d373c, 0x0136807d, 0x016dc9d4, 0x0112f7c5, 0x017677c5, 0x000a8a6d}}}, + {X: Field{[10]uint32{0x03715d8e, 0x0070fcab, 0x01e140e9, 0x03fa84fc, 0x03ddfdd2, 0x016ad205, 0x00419210, 0x013bbf32, 0x001fbd03, 0x003b9b32}}, Y: Field{[10]uint32{0x0386d8be, 0x00ebcef8, 0x00a3f689, 0x011ea5ef, 0x00df8fd8, 0x02972f01, 0x007358de, 0x03a59487, 0x03fe48c3, 0x002e3de7}}}, + {X: Field{[10]uint32{0x019c5ef2, 0x02b33685, 0x017a3c5d, 0x03fa04cd, 0x0316ff2d, 0x00507800, 0x004d5cc5, 0x01995d55, 0x0372d642, 0x0019a8b4}}, Y: Field{[10]uint32{0x01bc8929, 0x0368fdd3, 0x029a05ba, 0x03416608, 0x00780000, 0x03c99781, 0x01423b9a, 0x03d234e2, 0x016b91c6, 0x002d5f4b}}}, + {X: Field{[10]uint32{0x02421da9, 0x0171a48e, 0x00ac6adf, 0x0396b2d3, 0x037a5798, 0x031fcda8, 0x0043e73f, 0x0378e854, 0x01d9f697, 0x0008280b}}, Y: Field{[10]uint32{0x01cf34f7, 0x00db0c33, 0x02b97338, 0x00e0bf31, 0x02ab4ab5, 0x00478f72, 0x02ab61e7, 0x00d87aa9, 0x0100d162, 0x00079b3c}}}, + {X: Field{[10]uint32{0x037bf552, 0x00e8c0f2, 0x0211092e, 0x026873b6, 0x019f92b7, 0x036894cc, 0x0298b154, 0x03a07daf, 0x02437818, 0x00282e32}}, Y: Field{[10]uint32{0x01543be6, 0x02ff968f, 0x030baa1a, 0x039922d8, 0x02218508, 0x003f38b6, 0x0263ca11, 0x03664141, 0x00ebf447, 0x0011506f}}}, + {X: Field{[10]uint32{0x00c52c63, 0x005d3ac7, 0x00ffb9e4, 0x02376d6e, 0x01e0d501, 0x0172ea73, 0x015c25fb, 0x039221f8, 0x02ad73dc, 0x00145c53}}, Y: Field{[10]uint32{0x03dafebf, 0x024507e6, 0x0309773b, 0x00c6665d, 0x01a5c248, 0x019b7480, 0x02272c7d, 0x01587afb, 0x00a082ef, 0x0011ede5}}}, + {X: Field{[10]uint32{0x02451c59, 0x012b0b35, 0x03a2fba7, 0x02904d05, 0x017da195, 0x026487a4, 0x03c41f6a, 0x03781cf9, 0x03631fe4, 0x00063a89}}, Y: Field{[10]uint32{0x024df316, 0x02bb5435, 0x01e6b106, 0x020cba55, 0x00d31b3b, 0x0235f24f, 0x03e0428e, 0x02eea6cc, 0x0337fff6, 0x000e6282}}}, + {X: Field{[10]uint32{0x03c5a87e, 0x02e415c5, 0x030cd0e8, 0x029675d6, 0x03c3d1f0, 0x033ea617, 0x01ec341a, 0x0060d298, 0x034fc39e, 0x00387562}}, Y: Field{[10]uint32{0x006b3c47, 0x02648967, 0x007f2cf2, 0x00e83767, 0x01af8215, 0x02dfe679, 0x03e2ab3b, 0x03f7b023, 0x020215fd, 0x0006d8bb}}}, + {X: Field{[10]uint32{0x016c5a84, 0x03b0f9dc, 0x039a3bbd, 0x0104472b, 0x032c19c5, 0x02c94f70, 0x03f5ba8e, 0x030495f7, 0x011730d3, 0x000e5e4e}}, Y: Field{[10]uint32{0x01f18015, 0x02a929fd, 0x021e3f78, 0x02f5070a, 0x00be7b4e, 0x021476a3, 0x02cded5c, 0x00db6644, 0x0350189f, 0x0035a87e}}}, + {X: Field{[10]uint32{0x039ede88, 0x003c5e96, 0x02ef1552, 0x002c93ca, 0x021d5736, 0x02c09467, 0x01dbf888, 0x0101b4e0, 0x024b601b, 0x00126d27}}, Y: Field{[10]uint32{0x0169a38d, 0x01f9dcbe, 0x02fadbff, 0x02734390, 0x03a0a76e, 0x00279168, 0x03e7be10, 0x035ecd66, 0x00ca02f2, 0x003f3cf3}}}, + {X: Field{[10]uint32{0x00bdc871, 0x036a914a, 0x024c32bf, 0x02848907, 0x01d64e38, 0x003fc5e8, 0x0188548f, 0x03cdb483, 0x010d0b42, 0x000b3606}}, Y: Field{[10]uint32{0x00259187, 0x03bd66da, 0x02a67077, 0x0034ac5a, 0x022fff78, 0x016affab, 0x0284f45e, 0x0052416a, 0x03692214, 0x003dca70}}}, + {X: Field{[10]uint32{0x0241025a, 0x00218997, 0x006f2308, 0x03a91747, 0x02b5b642, 0x007e7466, 0x020cb2cf, 0x015198b6, 0x03111738, 0x0007f43e}}, Y: Field{[10]uint32{0x029ce0e9, 0x02460791, 0x0008f557, 0x035b6edb, 0x0294e928, 0x031c04b6, 0x007825d1, 0x002082af, 0x0288fec6, 0x000c4da9}}}, + {X: Field{[10]uint32{0x02f3a141, 0x0391101e, 0x0387107d, 0x02ec4834, 0x013f93d5, 0x02f61139, 0x0248a0f5, 0x02d6f861, 0x033bd7f8, 0x003c2397}}, Y: Field{[10]uint32{0x01902fac, 0x01b857f6, 0x0289fa52, 0x02f37c74, 0x01bf7ea1, 0x03253a83, 0x0361bdfc, 0x03ab872a, 0x03259067, 0x0000f761}}}, + {X: Field{[10]uint32{0x005ee207, 0x0172ac47, 0x005a5d3f, 0x03c07fbb, 0x03a0584c, 0x0171af75, 0x03a046bb, 0x03ea58dc, 0x0006b997, 0x002800cf}}, Y: Field{[10]uint32{0x03e268b4, 0x002a36f0, 0x03a17d14, 0x02d8f53f, 0x0039a577, 0x00823503, 0x00c2cda2, 0x039235c2, 0x0131aacb, 0x003bb586}}}, + {X: Field{[10]uint32{0x02c16f70, 0x0246db98, 0x03b1e1ea, 0x01c1109a, 0x0383ff8f, 0x005de469, 0x001e29b1, 0x0299c77c, 0x000868be, 0x001df7bb}}, Y: Field{[10]uint32{0x0264861d, 0x009ac015, 0x024b5dc4, 0x009f0288, 0x00fcc1fe, 0x0067d7a7, 0x031ae7ef, 0x01cfd8c9, 0x0228ba8f, 0x002e4228}}}, + {X: Field{[10]uint32{0x01aa72b1, 0x016a86ea, 0x019605fd, 0x03070623, 0x01994a03, 0x00d41acf, 0x01bd1fc6, 0x0043b468, 0x015ffe2f, 0x000bf37b}}, Y: Field{[10]uint32{0x02bbefc6, 0x02df5d81, 0x0145d3fa, 0x00a13fe7, 0x02b4df66, 0x004a8319, 0x00d7c12e, 0x021bc748, 0x03f6f09a, 0x000556fa}}}, + {X: Field{[10]uint32{0x015db3ad, 0x00438826, 0x02904c83, 0x03fddf0a, 0x018667f8, 0x02e91f02, 0x00add0c9, 0x039cceaf, 0x032dfdf5, 0x0007c302}}, Y: Field{[10]uint32{0x037bc566, 0x035d5995, 0x03e448ef, 0x020a1732, 0x0170f631, 0x00c9a122, 0x039b7613, 0x03d57d44, 0x03cb84ce, 0x002f5c46}}}, + {X: Field{[10]uint32{0x0237dcf8, 0x03aa3e42, 0x005ef465, 0x03b52aa2, 0x03d603fd, 0x03b7d953, 0x01bdf3c5, 0x00b11183, 0x0144e716, 0x0002d2a1}}, Y: Field{[10]uint32{0x003c62b2, 0x00e28f48, 0x0134c139, 0x01bb6f86, 0x0099f8ee, 0x00a4b2ce, 0x032e27b2, 0x03a2c800, 0x0391b3f2, 0x0014f010}}}, + {X: Field{[10]uint32{0x005bd68c, 0x016c2dcb, 0x0221a9d8, 0x0031b650, 0x03d00a90, 0x034c1ce5, 0x0331cdfa, 0x02dcd4e3, 0x0282dcde, 0x0037c3af}}, Y: Field{[10]uint32{0x00decfb2, 0x03d1cce2, 0x001c68a2, 0x038b5c1c, 0x034a1d07, 0x0292b3e2, 0x03b869e3, 0x00b95511, 0x0239e7fe, 0x0030ca65}}}, + {X: Field{[10]uint32{0x03c101c0, 0x032499c0, 0x01576ec7, 0x00396cde, 0x02f9fd46, 0x034a3e27, 0x02ed101f, 0x0230cf87, 0x01b6d1c3, 0x003ac12e}}, Y: Field{[10]uint32{0x01e0ee9e, 0x0363ca3d, 0x024eb008, 0x0120e5d2, 0x00f5ee75, 0x020b5ba7, 0x013cab57, 0x03e02cac, 0x00497f47, 0x0013c9b6}}}, + {X: Field{[10]uint32{0x03294334, 0x03dc7434, 0x01cface9, 0x003ba9ee, 0x017db4ee, 0x032ae619, 0x014b37a0, 0x031b3ab2, 0x03e2197c, 0x001ef27b}}, Y: Field{[10]uint32{0x01a72013, 0x01e0b697, 0x009a37ff, 0x024c7057, 0x01ad8fb4, 0x02d6ce94, 0x001d9404, 0x01e41aa5, 0x00ad5234, 0x00364c6f}}}, + {X: Field{[10]uint32{0x033e0b9b, 0x0106b4ed, 0x00844e0a, 0x01433259, 0x011321dc, 0x01a8fa2d, 0x010c10c6, 0x014b192f, 0x01e8f4bd, 0x002248b4}}, Y: Field{[10]uint32{0x0241c431, 0x00a9e8d2, 0x003182a0, 0x031b57b7, 0x0261c9ee, 0x00cdf714, 0x00e6abd3, 0x03887a24, 0x00f17d23, 0x000ad90f}}}, + {X: Field{[10]uint32{0x02ddcc72, 0x006746bc, 0x00e9acdc, 0x0369df28, 0x030139a7, 0x0311a007, 0x036a842a, 0x004bb48b, 0x01e33a93, 0x0010bcbb}}, Y: Field{[10]uint32{0x0326f99b, 0x038d25e3, 0x0376ac70, 0x0029afd1, 0x02ab9536, 0x037238d0, 0x0260edff, 0x026172e4, 0x03cc715c, 0x00143516}}}, + {X: Field{[10]uint32{0x016761c6, 0x009c1453, 0x02ea2f3b, 0x03ca4a4d, 0x00627549, 0x01c9ad79, 0x00792550, 0x03fac962, 0x03201862, 0x001ef725}}, Y: Field{[10]uint32{0x01a4fa8c, 0x02a1504b, 0x02269f1c, 0x039032b5, 0x0065372e, 0x02101998, 0x026f0bff, 0x02b7d5db, 0x032b7f77, 0x001c03ad}}}, + {X: Field{[10]uint32{0x006314cf, 0x0366385d, 0x023066b6, 0x011f4840, 0x01f79d16, 0x008a3868, 0x002e0d85, 0x0126fd79, 0x03a64bf5, 0x002e6d49}}, Y: Field{[10]uint32{0x020cd93f, 0x00a66aaa, 0x00eb7499, 0x00e71b61, 0x02e35b15, 0x000bcc3a, 0x022a2b68, 0x007d6e4e, 0x00642a72, 0x002386cd}}}, + {X: Field{[10]uint32{0x01e3dda9, 0x02b0961d, 0x02d74978, 0x00c56434, 0x03d187c4, 0x00f3845d, 0x00291929, 0x01dd9407, 0x012934d4, 0x002d9779}}, Y: Field{[10]uint32{0x039fa529, 0x038db58e, 0x014ef324, 0x0027b2f6, 0x03f07555, 0x00c0d915, 0x01c55351, 0x02d73acf, 0x03e74ab9, 0x000f5bf2}}}, + {X: Field{[10]uint32{0x027c6b9b, 0x0198d9b3, 0x02ca5c2e, 0x03a8d016, 0x01a036ed, 0x00fc1584, 0x03604f6a, 0x01d47abc, 0x02320608, 0x00063aad}}, Y: Field{[10]uint32{0x015074c5, 0x00acd942, 0x03dd99d1, 0x001492f5, 0x02ccd426, 0x027e479b, 0x0211f057, 0x004464db, 0x03bc9467, 0x00227ac1}}}, + {X: Field{[10]uint32{0x02d360d5, 0x007183ba, 0x000a14eb, 0x03928c6d, 0x03c7502e, 0x025b4e76, 0x01a16065, 0x02590e42, 0x00664a47, 0x00289844}}, Y: Field{[10]uint32{0x01814901, 0x01fcdc9d, 0x00ac03e8, 0x0207cc8f, 0x0085721a, 0x02066086, 0x022d9fe3, 0x0155d8c9, 0x034d8802, 0x0012d175}}}, + {X: Field{[10]uint32{0x0008a8a7, 0x0250d74f, 0x019595da, 0x03ebd800, 0x01c77ac0, 0x0173c972, 0x019dc583, 0x0214de80, 0x00b12c10, 0x001e2515}}, Y: Field{[10]uint32{0x01829041, 0x02b82fe9, 0x007a2591, 0x000c949a, 0x008841da, 0x0282f5d8, 0x02f43378, 0x0167eb2f, 0x030fed28, 0x001afba1}}}, + {X: Field{[10]uint32{0x02791569, 0x03897518, 0x025ed7cf, 0x03e67d98, 0x01f81570, 0x00b837e5, 0x03683b9c, 0x0197c046, 0x0206fb4f, 0x00065df0}}, Y: Field{[10]uint32{0x03698479, 0x0390d7af, 0x01de467d, 0x02c9d764, 0x019dcc79, 0x02a7af81, 0x03f435e5, 0x0112aa57, 0x01a3c222, 0x00379db7}}}, + {X: Field{[10]uint32{0x01f4222f, 0x02b26199, 0x02585189, 0x03530fd5, 0x01ec3b5a, 0x02b0d35f, 0x03e60861, 0x0354d903, 0x01f7d259, 0x002247c3}}, Y: Field{[10]uint32{0x032de219, 0x002b3a46, 0x0257dba9, 0x02ac1010, 0x025c3293, 0x02a35ac3, 0x027a6011, 0x0228a87b, 0x03f70f53, 0x00331782}}}, + {X: Field{[10]uint32{0x0299530b, 0x02a4dfff, 0x01e55c80, 0x0380f171, 0x0350169d, 0x0104ad34, 0x026c282f, 0x03e07964, 0x03f69262, 0x00214d2e}}, Y: Field{[10]uint32{0x017423b5, 0x0239fad5, 0x01cf9fb0, 0x008d3505, 0x00f70cfc, 0x0395147a, 0x00764c0b, 0x001cdd33, 0x0181e0bb, 0x003efbb9}}}, + {X: Field{[10]uint32{0x006f63fb, 0x012c1faa, 0x001989e4, 0x01f03c04, 0x0158fc89, 0x01516635, 0x034eafa3, 0x037f4dd1, 0x016404e7, 0x00396dbd}}, Y: Field{[10]uint32{0x0118da79, 0x01b38998, 0x00ad0b2c, 0x03242ce0, 0x008e153c, 0x022201e0, 0x01e7d983, 0x00ea2ddb, 0x03fa68a8, 0x0010da2e}}}, + {X: Field{[10]uint32{0x02c2b850, 0x02435381, 0x00e29f7c, 0x03ced38e, 0x0046e184, 0x001c91ea, 0x03dc5e55, 0x03945260, 0x028b11c3, 0x003e5646}}, Y: Field{[10]uint32{0x010ff6b5, 0x025e82b6, 0x032a51fe, 0x024fca7f, 0x02957de3, 0x00d9a87e, 0x024e288a, 0x03d61f32, 0x00362361, 0x00108ed9}}}, + {X: Field{[10]uint32{0x0372384c, 0x02482c7f, 0x038212f2, 0x01655ef1, 0x017c9950, 0x025918de, 0x01eb617c, 0x017a7bbe, 0x01d3252f, 0x000f4c8e}}, Y: Field{[10]uint32{0x02a2e57a, 0x00f2a7c8, 0x03df78f7, 0x0386a6d9, 0x03ef860e, 0x0257ad37, 0x02798bf6, 0x02beb394, 0x03b6fc9b, 0x00070f8d}}}, + {X: Field{[10]uint32{0x00c5dfb8, 0x035719ef, 0x00055201, 0x018707c5, 0x02a0a6ce, 0x002184a8, 0x028e8554, 0x0135da1a, 0x03234b57, 0x003d0225}}, Y: Field{[10]uint32{0x000a56a4, 0x014c8243, 0x03af3c74, 0x029d80bf, 0x03c3a62f, 0x015969e7, 0x02aac242, 0x03f24552, 0x03b73e72, 0x001ae0a0}}}, + {X: Field{[10]uint32{0x02267ccf, 0x02d18a8b, 0x03c64bc4, 0x034ac104, 0x0395058e, 0x0262e2d1, 0x03e65f84, 0x031d17da, 0x02e7aea9, 0x002b381d}}, Y: Field{[10]uint32{0x028b97aa, 0x0076b045, 0x0120a31f, 0x018aa651, 0x02dc58f3, 0x02bcd4f8, 0x032ed6dc, 0x02a797ad, 0x0217377f, 0x0002d8b1}}}, + {X: Field{[10]uint32{0x006ec161, 0x01bf0b42, 0x036af29d, 0x00ced3f7, 0x01b4e63f, 0x02b6c747, 0x030b848e, 0x0181a4c8, 0x03a7408c, 0x001c332e}}, Y: Field{[10]uint32{0x014d6959, 0x020b1ee8, 0x02ec4d77, 0x00e1c7ef, 0x025a4ff3, 0x0152a032, 0x01286776, 0x00398390, 0x01a046d3, 0x003f0736}}}, + {X: Field{[10]uint32{0x0358d372, 0x03798a79, 0x02ede7a8, 0x02ce65c2, 0x019e33fc, 0x02bd6af1, 0x0258d3a4, 0x016c317a, 0x00b27c0c, 0x0039b9ea}}, Y: Field{[10]uint32{0x018d4a66, 0x036cf972, 0x017049a8, 0x0297262f, 0x00b40df3, 0x024f8b20, 0x011fee27, 0x02d69754, 0x01c4c8c8, 0x00350344}}}, + {X: Field{[10]uint32{0x03216346, 0x02c74c88, 0x02739117, 0x029433fd, 0x007910e9, 0x0278b109, 0x01495b71, 0x00b9a0ca, 0x01c7e0a0, 0x00337125}}, Y: Field{[10]uint32{0x001583d4, 0x00816c5a, 0x022f0559, 0x0231b390, 0x00d51fc6, 0x03c77dbb, 0x01ddcd87, 0x0302b3ca, 0x036e9306, 0x0018d993}}}, + {X: Field{[10]uint32{0x022fc5cc, 0x025d741e, 0x02e4f825, 0x0065bcd6, 0x01d0142f, 0x02e09370, 0x022ba333, 0x00878000, 0x009c2fd7, 0x0009e13a}}, Y: Field{[10]uint32{0x003b8cf4, 0x00d7bd77, 0x001db4a3, 0x0113c021, 0x005a391e, 0x00958a3d, 0x00232b9b, 0x019874d5, 0x0266bdfa, 0x0002e962}}}, + {X: Field{[10]uint32{0x001a2390, 0x023b37ac, 0x00d0b9b9, 0x02ffdabd, 0x030c9118, 0x0212e8f3, 0x001dd831, 0x01ce0085, 0x0362ebcb, 0x002ada66}}, Y: Field{[10]uint32{0x00766905, 0x0241128d, 0x03e71a60, 0x01ede611, 0x012be011, 0x02829f33, 0x0142547d, 0x0083db17, 0x0210b714, 0x00179520}}}, + {X: Field{[10]uint32{0x035756ec, 0x00f53c2d, 0x02e08dda, 0x00aa60d6, 0x02220955, 0x01b747aa, 0x03ad6d39, 0x038dfee7, 0x03a567ff, 0x001e07a9}}, Y: Field{[10]uint32{0x02637256, 0x0141683c, 0x034b2af9, 0x001f6b37, 0x000403a5, 0x02e99933, 0x01481744, 0x00ee5f93, 0x007b46f6, 0x000f1db6}}}, + {X: Field{[10]uint32{0x0374029c, 0x002f4fb8, 0x033fd39d, 0x00ef882c, 0x03a0e1ce, 0x023fb968, 0x0004fe7b, 0x002a0a97, 0x0130dd5c, 0x001d6acb}}, Y: Field{[10]uint32{0x01914b9f, 0x0057f358, 0x0121a722, 0x03ead7be, 0x0330536e, 0x0253073d, 0x01f6f8e6, 0x00e4eb2e, 0x0147fdb1, 0x002abd18}}}, + {X: Field{[10]uint32{0x00ddaff0, 0x00433e02, 0x03ced85a, 0x00cf4471, 0x01087124, 0x0212b55b, 0x023caea6, 0x00f6a5b4, 0x02983730, 0x000a52d9}}, Y: Field{[10]uint32{0x0346f7c1, 0x02993de6, 0x00b4222f, 0x03f20be7, 0x01e5861b, 0x00e2fc7c, 0x0007fa8b, 0x00fa7aa5, 0x02f7feb7, 0x002bd35f}}}, + {X: Field{[10]uint32{0x0024c8d6, 0x031b8d2e, 0x02e55ea3, 0x03a4495f, 0x00f290f6, 0x0365c047, 0x0283b06b, 0x018e7f25, 0x02ea7433, 0x003619da}}, Y: Field{[10]uint32{0x03a7456d, 0x0296dc65, 0x0230fd71, 0x00ab79c7, 0x0309017b, 0x01aab04c, 0x00f3e5cd, 0x01551424, 0x007635d4, 0x001c4322}}}, + {X: Field{[10]uint32{0x021270d0, 0x02fb9d05, 0x03544fd8, 0x009ea4ed, 0x00cee714, 0x0361a916, 0x004771c6, 0x03d6b0ab, 0x02030d90, 0x001793b2}}, Y: Field{[10]uint32{0x00c97351, 0x02bc2dd0, 0x03b9ff0c, 0x0293d232, 0x00a93bb4, 0x00d8a225, 0x03a6d603, 0x03e2febf, 0x0143b970, 0x00113f80}}}, + {X: Field{[10]uint32{0x0180097e, 0x03c496e1, 0x021dc157, 0x00f76f1d, 0x01265c3a, 0x026d5521, 0x0308f212, 0x02ea17f9, 0x01aa244f, 0x0024054b}}, Y: Field{[10]uint32{0x03ef2cf7, 0x00d5ce60, 0x03939b94, 0x00b120d5, 0x038a6d39, 0x03f0bd84, 0x01fa3b28, 0x021a42d6, 0x02c9200b, 0x0005a534}}}, + {X: Field{[10]uint32{0x005637b5, 0x02cf2423, 0x020f191f, 0x0265ccbb, 0x00daf3a1, 0x032fcae7, 0x03a953fa, 0x01c7114f, 0x00f096f1, 0x0019f755}}, Y: Field{[10]uint32{0x02de74b1, 0x009e6f13, 0x005dfb36, 0x02914d99, 0x025fd6c4, 0x028ce318, 0x01022365, 0x019db6d9, 0x03432d33, 0x0014c9f6}}}, + {X: Field{[10]uint32{0x036c51ef, 0x037e57ee, 0x00790142, 0x015d57bf, 0x032e7704, 0x01d33d50, 0x020f1447, 0x03fd5d96, 0x02838f95, 0x0031925a}}, Y: Field{[10]uint32{0x00d752a2, 0x0099ff2f, 0x038caca8, 0x0078e8e2, 0x031177b5, 0x022c16d4, 0x0186f01d, 0x0075ce4b, 0x01d6604d, 0x00330010}}}, + {X: Field{[10]uint32{0x00c11c74, 0x03f6dbda, 0x029ad933, 0x02da5187, 0x02425bf4, 0x02043674, 0x01e5e728, 0x00eff51d, 0x030a0b16, 0x0039e675}}, Y: Field{[10]uint32{0x00ba8600, 0x027f0605, 0x02b215ef, 0x0274689c, 0x03e50444, 0x00631b44, 0x00adcf76, 0x03b8fe6c, 0x005fe29b, 0x003f0d1d}}}, + {X: Field{[10]uint32{0x01489d3b, 0x03d16b17, 0x0175acb6, 0x01d30f73, 0x02820c87, 0x0060f60b, 0x032aa221, 0x02404540, 0x03b0151a, 0x001b4f25}}, Y: Field{[10]uint32{0x02d4749f, 0x03356c52, 0x023231c2, 0x03e7b99c, 0x0264b57d, 0x033b767b, 0x0295d438, 0x035dee3d, 0x01013d15, 0x0016aa2f}}}, + {X: Field{[10]uint32{0x02517539, 0x0163bfc2, 0x00165456, 0x030ea0be, 0x03b96d8e, 0x0131a8e6, 0x01cf2d9a, 0x01f79d06, 0x02001c1e, 0x0021b94f}}, Y: Field{[10]uint32{0x0344ad86, 0x01d7c06a, 0x03520ce4, 0x02b099b7, 0x00c24491, 0x00198c45, 0x01da5254, 0x03b3033b, 0x0370f2ef, 0x0003e2c6}}}, + {X: Field{[10]uint32{0x02a9880a, 0x014210d4, 0x0074347c, 0x02407cf2, 0x03075feb, 0x023b6ccf, 0x023267a7, 0x01f33aa6, 0x0339ac87, 0x00299070}}, Y: Field{[10]uint32{0x03982163, 0x029c9583, 0x01009c34, 0x031abf72, 0x01407559, 0x01f5a729, 0x03dc101b, 0x016b14f1, 0x014f2b27, 0x0036229b}}}, + {X: Field{[10]uint32{0x0182511a, 0x004d5a27, 0x00ceb9e0, 0x03550243, 0x00b925aa, 0x0378c5d5, 0x001de436, 0x02099916, 0x03a94d77, 0x000e8054}}, Y: Field{[10]uint32{0x00802035, 0x00cf5e96, 0x0055e35a, 0x00367c2b, 0x0111154b, 0x03fc1b3e, 0x0252df38, 0x017169e8, 0x02489493, 0x00003db2}}}, + {X: Field{[10]uint32{0x032b170f, 0x030a9851, 0x0058c5be, 0x035f18fd, 0x002c2e51, 0x009ba5bd, 0x0126b31d, 0x0326b501, 0x00e8a131, 0x0039e009}}, Y: Field{[10]uint32{0x034e0c53, 0x01fd9627, 0x008eaf19, 0x00125d90, 0x013a3092, 0x036ad977, 0x0093d9ce, 0x02c63c8d, 0x014b1ad7, 0x00315028}}}, + {X: Field{[10]uint32{0x006a5162, 0x004cce2a, 0x007cc7df, 0x01878b76, 0x007f05a1, 0x0064919a, 0x00380fab, 0x03c3b1d0, 0x005e8351, 0x001e1632}}, Y: Field{[10]uint32{0x02a6de1c, 0x035f96cd, 0x03a60928, 0x001969db, 0x037e658e, 0x03111354, 0x002897e7, 0x0281bf0e, 0x03445313, 0x0032b650}}}, + {X: Field{[10]uint32{0x030263e6, 0x01c51eb2, 0x024b82f3, 0x022b5666, 0x00ddb9da, 0x02597ccd, 0x0268c170, 0x037750d6, 0x02281c5b, 0x0001990f}}, Y: Field{[10]uint32{0x032cf79b, 0x022d6229, 0x03f36d72, 0x03e9a513, 0x016f2dc8, 0x02125a35, 0x008f9282, 0x02a82e6f, 0x02368ee1, 0x0027e7e7}}}, + {X: Field{[10]uint32{0x01b2254b, 0x0164b5ae, 0x035e7106, 0x008fa684, 0x02b31325, 0x03a81755, 0x03e8f9e3, 0x03c5325b, 0x0137a286, 0x0017cdb6}}, Y: Field{[10]uint32{0x0056310a, 0x011922e4, 0x02cfc2e5, 0x0070f21a, 0x029adb0e, 0x03cbf4e7, 0x02bf753e, 0x017fcb73, 0x037cc826, 0x0002758d}}}, + {X: Field{[10]uint32{0x023e2224, 0x019dfaf1, 0x0212fb17, 0x01c9187a, 0x02310f91, 0x00a140f0, 0x0226f266, 0x0282a97d, 0x01ae93d3, 0x00084bac}}, Y: Field{[10]uint32{0x036d1b67, 0x033f51d2, 0x02fa51df, 0x03fbd7f5, 0x010bbc5a, 0x03d4a09a, 0x038d9fdc, 0x00805b1c, 0x0233347f, 0x0014795f}}}, + {X: Field{[10]uint32{0x01e9eab4, 0x02175dcd, 0x0277e9a0, 0x024e39bc, 0x01dedb3b, 0x000f3898, 0x00481452, 0x027e4cca, 0x02c8940b, 0x00149a54}}, Y: Field{[10]uint32{0x01a42918, 0x013d3361, 0x0210952e, 0x023c50fe, 0x001d9aa5, 0x006013fe, 0x01fe2fd8, 0x00aabe69, 0x03a356df, 0x002195f3}}}, + {X: Field{[10]uint32{0x001c099f, 0x022f81d3, 0x036ef8f9, 0x00f2e5ea, 0x010419e0, 0x0254e8b4, 0x03a8778c, 0x00a04b92, 0x010def76, 0x00083c5d}}, Y: Field{[10]uint32{0x02cd485e, 0x03a2cc6e, 0x0060ebd8, 0x01396af0, 0x01d9d97b, 0x01a87b0b, 0x020bf881, 0x034a9fec, 0x01f53e7a, 0x0034bfba}}}, + {X: Field{[10]uint32{0x027ee910, 0x024db735, 0x02496da2, 0x0397bed9, 0x01dbc7f5, 0x03c4f1a4, 0x023cfb27, 0x00599708, 0x03b7ea01, 0x00388c68}}, Y: Field{[10]uint32{0x0365d53f, 0x02d7f02f, 0x0011e96e, 0x000bec5c, 0x0345e4f6, 0x0337c4f0, 0x027316c7, 0x0004c7cf, 0x002e18e8, 0x002a9917}}}, + {X: Field{[10]uint32{0x01c702ad, 0x005d2d89, 0x002cbed7, 0x0189a1e8, 0x01d01aa9, 0x014b9ca6, 0x02eac355, 0x009b74f6, 0x01523fd0, 0x001e9393}}, Y: Field{[10]uint32{0x01b965d2, 0x02ccc13f, 0x01b8471e, 0x03047e50, 0x007d2bdf, 0x0335f269, 0x00612044, 0x02396ab9, 0x02b6a739, 0x000d4704}}}, + {X: Field{[10]uint32{0x03f137b3, 0x013471b2, 0x03eaa557, 0x019c6688, 0x039a8589, 0x0000431b, 0x00a5a5ca, 0x0159c19f, 0x007e7696, 0x003f4bdc}}, Y: Field{[10]uint32{0x00315408, 0x01d4c1be, 0x038aa1ae, 0x021e78ef, 0x01df00e2, 0x033957d0, 0x039b1613, 0x0391ccc7, 0x030c1d5a, 0x00311690}}}, + {X: Field{[10]uint32{0x002bb89d, 0x024634fc, 0x01373f3f, 0x0293e099, 0x036c2ac2, 0x034c121d, 0x0011d676, 0x03d3f384, 0x001e8cf2, 0x003141b3}}, Y: Field{[10]uint32{0x01d3118a, 0x019078a9, 0x02f0c058, 0x01b8bd63, 0x01bea33d, 0x03dee982, 0x0247f6d1, 0x026cccbe, 0x03b37402, 0x002379b7}}}, + {X: Field{[10]uint32{0x035c0369, 0x0012dd6a, 0x02eebb82, 0x035f63e1, 0x00ad1bb4, 0x0327378f, 0x02b901c3, 0x03e6661a, 0x0102d9cc, 0x000ba9eb}}, Y: Field{[10]uint32{0x02b0ed43, 0x000c6543, 0x03d9ce40, 0x0189253a, 0x032b2135, 0x02bdda51, 0x03648ddd, 0x000c09d8, 0x03d86d75, 0x0004488a}}}, + {X: Field{[10]uint32{0x02159c5c, 0x00e33467, 0x0279c4c3, 0x00eb77f4, 0x00f8a602, 0x028ab04d, 0x004b421b, 0x039394be, 0x01923555, 0x002ae330}}, Y: Field{[10]uint32{0x0351ee1a, 0x007c8fe1, 0x00ff514d, 0x03ad532a, 0x015a5b54, 0x0311241e, 0x029fbda6, 0x0236f08f, 0x03bdcc26, 0x000b1238}}}, + {X: Field{[10]uint32{0x01dad430, 0x02bd01fd, 0x00e04c54, 0x009fcb3f, 0x02c37784, 0x029c4226, 0x0348e1c2, 0x0107ea46, 0x02e1cc7c, 0x00223fb0}}, Y: Field{[10]uint32{0x033ed80b, 0x02277ae2, 0x02cf3c4b, 0x019bec7f, 0x02dce306, 0x02c0d709, 0x02c7a049, 0x01994d7e, 0x02884f69, 0x00332d17}}}, + {X: Field{[10]uint32{0x034b0d41, 0x034dda1d, 0x0357c011, 0x02871931, 0x02940522, 0x03a83373, 0x02c31272, 0x03d746d0, 0x03ae1acc, 0x00101161}}, Y: Field{[10]uint32{0x030e787b, 0x028e4ffb, 0x01325f96, 0x03ad7395, 0x0163401d, 0x02cd46cd, 0x0368c369, 0x0187d3dc, 0x025b25ae, 0x003a373c}}}, + {X: Field{[10]uint32{0x02b9ab8a, 0x0093469f, 0x01097514, 0x033ef136, 0x0128a377, 0x009d4245, 0x00cf20ab, 0x02a30234, 0x02b9cade, 0x00229c07}}, Y: Field{[10]uint32{0x02ba5a45, 0x02737ab2, 0x0143a454, 0x0099bc0b, 0x01265e8b, 0x02a62d68, 0x0076154c, 0x02b1c30f, 0x018282a9, 0x0013c116}}}, + {X: Field{[10]uint32{0x01ad3d56, 0x00aa9e22, 0x0038929b, 0x001b1b59, 0x0366e15e, 0x00422930, 0x02141fdb, 0x00270a76, 0x01781940, 0x0030a04a}}, Y: Field{[10]uint32{0x035db5c1, 0x024db22d, 0x01afa974, 0x039db952, 0x029c9db5, 0x032c7951, 0x0034255d, 0x03a5a68a, 0x02fb6670, 0x00215027}}}, + {X: Field{[10]uint32{0x031d72fe, 0x03ee0401, 0x021298ad, 0x02d0aea9, 0x000f8ea4, 0x002e0af8, 0x03b04d19, 0x03210e4a, 0x02b1c810, 0x0027ff4d}}, Y: Field{[10]uint32{0x01b38404, 0x028f5a80, 0x03d871ca, 0x0291a997, 0x026f25fd, 0x03ea7f86, 0x002955eb, 0x0037e069, 0x024ba11f, 0x0004789e}}}, + {X: Field{[10]uint32{0x01a48b96, 0x01be1e69, 0x02b25f1c, 0x011d78ff, 0x0239e431, 0x0143bb18, 0x01072107, 0x02c05f2b, 0x0044bc92, 0x002b1280}}, Y: Field{[10]uint32{0x02b8dfe1, 0x02233907, 0x00de2d5f, 0x02fd15ed, 0x03f526bb, 0x011307d4, 0x03498533, 0x000bfc79, 0x03ba7310, 0x001071f0}}}, + {X: Field{[10]uint32{0x0306eb5a, 0x0393a19e, 0x0214224a, 0x01b35d93, 0x0357d808, 0x03467f17, 0x03c83bf9, 0x02a482cf, 0x001c157c, 0x0031e2c4}}, Y: Field{[10]uint32{0x038126c8, 0x00dfc674, 0x001d2deb, 0x033570a7, 0x02b7a9d7, 0x013cee3d, 0x035f533b, 0x0183ffeb, 0x006eb9d6, 0x0006a34b}}}, + {X: Field{[10]uint32{0x03147cd2, 0x0396ba1d, 0x03d13578, 0x02e39b45, 0x01c24b0d, 0x02bb7648, 0x03c1c2db, 0x0122e57c, 0x03055723, 0x003423ce}}, Y: Field{[10]uint32{0x022713cb, 0x0187899d, 0x00696914, 0x02bd77f8, 0x034987df, 0x0028e148, 0x02e3e5c9, 0x01f2eda6, 0x00de0a06, 0x0009ed7f}}}, + {X: Field{[10]uint32{0x01e312f5, 0x02312ca9, 0x004893d0, 0x01471602, 0x001091cf, 0x01f1707f, 0x01db0f1c, 0x03d87ae0, 0x003d5060, 0x00103a81}}, Y: Field{[10]uint32{0x0166b27c, 0x005a8007, 0x01f30848, 0x00fbed96, 0x02043de0, 0x0167c54d, 0x02719be2, 0x00c0bf80, 0x02c42836, 0x000bbc47}}}, + {X: Field{[10]uint32{0x018362e7, 0x0212b40d, 0x02ec39f1, 0x03e76ec7, 0x0117db73, 0x0090bae9, 0x00827b28, 0x02d2cb7a, 0x00bdfb53, 0x003e7441}}, Y: Field{[10]uint32{0x01771877, 0x0333f3d3, 0x03167296, 0x03052bdb, 0x0268f4e3, 0x01f50fc2, 0x02707b6d, 0x006520ae, 0x020b6c37, 0x0035d912}}}, + {X: Field{[10]uint32{0x03f9ddc9, 0x00dde37b, 0x02b6e570, 0x028905c4, 0x00fea5f8, 0x0268176b, 0x02132b40, 0x0120a539, 0x02ee14c3, 0x003749da}}, Y: Field{[10]uint32{0x01ceb7ef, 0x0260d4e9, 0x0066b7bc, 0x0180add0, 0x034803f7, 0x025a4343, 0x02de6553, 0x03bb25ff, 0x017d5d92, 0x00026f98}}}, + {X: Field{[10]uint32{0x01155d49, 0x03a13c18, 0x012f4c8b, 0x035de149, 0x032104c7, 0x03c36e36, 0x03d11f67, 0x01ef4319, 0x0039d5f1, 0x002148be}}, Y: Field{[10]uint32{0x023ea117, 0x00ea5656, 0x00777316, 0x0375667e, 0x02e01f3e, 0x03729256, 0x039b59cd, 0x007e3db2, 0x01518031, 0x002dde46}}}, + {X: Field{[10]uint32{0x02b5b225, 0x000c362d, 0x0264eeb2, 0x01992ff3, 0x02510491, 0x018519ca, 0x0002a624, 0x02fa383f, 0x02bdb4f3, 0x001cca00}}, Y: Field{[10]uint32{0x02a3c6f3, 0x01aadc91, 0x01f8e35a, 0x018b4455, 0x02d9022d, 0x0302c973, 0x0105f92c, 0x03b875a9, 0x01ec590e, 0x001ef533}}}, + {X: Field{[10]uint32{0x0167af62, 0x036d5cd6, 0x02fc68fb, 0x02bf1125, 0x01f5ffcb, 0x022f7a85, 0x0273276b, 0x020d4887, 0x01a12c4f, 0x0006cd90}}, Y: Field{[10]uint32{0x01664048, 0x03619b66, 0x021cef0f, 0x00c81ea3, 0x000b824c, 0x02d33407, 0x01e2e153, 0x00adecbb, 0x02f5e5d1, 0x0000f543}}}, + {X: Field{[10]uint32{0x0301a7ce, 0x0254974f, 0x00c852c7, 0x01576efa, 0x010c8972, 0x02d9b4e4, 0x02cbe60c, 0x0213ffb5, 0x02184e92, 0x0034c0d3}}, Y: Field{[10]uint32{0x01d09e25, 0x03e3e67e, 0x013b48c4, 0x0313bacd, 0x0211172a, 0x017c6e87, 0x0094b058, 0x01439ca8, 0x030416ce, 0x002cd998}}}, + {X: Field{[10]uint32{0x01e9db17, 0x00c9c29a, 0x0176d65c, 0x00aa8eb4, 0x0261c6db, 0x023d3e16, 0x03a44610, 0x03d7bc63, 0x0200bd22, 0x00239ea0}}, Y: Field{[10]uint32{0x03530568, 0x012cec7c, 0x01ceadee, 0x01d466cd, 0x004a4824, 0x01c7d335, 0x03536edc, 0x025e6fe1, 0x03b51cce, 0x002107f8}}}, + {X: Field{[10]uint32{0x00a4027e, 0x02c2d958, 0x009e85da, 0x00f60e40, 0x01c4af5f, 0x005086b8, 0x02aee276, 0x0219c746, 0x00de29ab, 0x003f332d}}, Y: Field{[10]uint32{0x037f993b, 0x02f48b83, 0x01c47fa6, 0x0352fa8a, 0x01a6e269, 0x03a5df9c, 0x036ac069, 0x0226bf56, 0x0396203b, 0x002808a7}}}, + {X: Field{[10]uint32{0x004c8a26, 0x00b001f9, 0x02576925, 0x01d87e67, 0x039e74a4, 0x03ab5c16, 0x00681f0a, 0x02060213, 0x017f4435, 0x0039a33f}}, Y: Field{[10]uint32{0x0028f82e, 0x004874b1, 0x013c1672, 0x01863a7c, 0x01712291, 0x03c343ad, 0x0378d50c, 0x038ab908, 0x00a7b027, 0x002b7670}}}, + {X: Field{[10]uint32{0x006891d8, 0x0381184b, 0x029a8072, 0x0022dc9b, 0x0263bfe0, 0x022ecc94, 0x026de7ac, 0x02b05921, 0x03ad4b81, 0x0022dbc3}}, Y: Field{[10]uint32{0x024bc9ca, 0x03b2bb6e, 0x01288092, 0x023e98a4, 0x0391493e, 0x0289ff84, 0x008d328c, 0x0012de02, 0x0108a8d6, 0x0026eb59}}}, + {X: Field{[10]uint32{0x024b78b1, 0x035266f5, 0x021ba8cf, 0x010d5ea4, 0x02470f89, 0x0019d185, 0x03178cf2, 0x00652498, 0x00aa37ac, 0x00042283}}, Y: Field{[10]uint32{0x0265bf55, 0x0067d928, 0x032a75a8, 0x0149844a, 0x039b7c04, 0x03fd45f1, 0x03e302e1, 0x0255bd7f, 0x0122be05, 0x001a0543}}}, + {X: Field{[10]uint32{0x0357edb6, 0x0100a131, 0x0208b429, 0x02949952, 0x02ab8e13, 0x00dc2971, 0x032daa83, 0x0315e474, 0x03330844, 0x003fb460}}, Y: Field{[10]uint32{0x02457fe5, 0x02707fcd, 0x01e56f83, 0x00bb4fe2, 0x00b1b52c, 0x0254ba8d, 0x0229a976, 0x02ae13ae, 0x03378395, 0x0019ef77}}}, + {X: Field{[10]uint32{0x00170a2f, 0x02cbb824, 0x00da501f, 0x02108d46, 0x00848b2d, 0x02933789, 0x03ed6f10, 0x01b3cd42, 0x039decd5, 0x002fafec}}, Y: Field{[10]uint32{0x03a11573, 0x0350328a, 0x0275197d, 0x036c2987, 0x0005acb2, 0x0051b652, 0x0125fbde, 0x03e21c8a, 0x00b3bb86, 0x0004c0ad}}}, + {X: Field{[10]uint32{0x001e716c, 0x01efca06, 0x0286c9c6, 0x015e74a2, 0x02af8d50, 0x01369ed5, 0x0070d3cb, 0x034edb11, 0x02ed2a58, 0x0019c4d6}}, Y: Field{[10]uint32{0x02fd6664, 0x01202723, 0x03040019, 0x00fc14fa, 0x0230fa2f, 0x03cdd111, 0x00f3e778, 0x038fbf72, 0x02ab2786, 0x0025f102}}}, + {X: Field{[10]uint32{0x0354f90e, 0x024a3950, 0x038b9c37, 0x01782436, 0x03c3dea7, 0x0135b7c0, 0x0309dd41, 0x01b96b36, 0x01bb0956, 0x002c03ad}}, Y: Field{[10]uint32{0x029b1258, 0x03e4fbb9, 0x0164d8ae, 0x01c044b2, 0x02ccc3a6, 0x02666bce, 0x0173aa63, 0x0399d3a6, 0x02411cb6, 0x001b4483}}}, + {X: Field{[10]uint32{0x03bb73a2, 0x03cce13c, 0x03bb8ecd, 0x024b7a7b, 0x01233375, 0x028e6cb6, 0x01db6d3b, 0x00808bc2, 0x026cbe8d, 0x001c86c6}}, Y: Field{[10]uint32{0x0205310f, 0x01632392, 0x020885b4, 0x039e542f, 0x014acbb2, 0x0253e01d, 0x01ae1f2e, 0x003d1c1d, 0x0362631a, 0x00336d06}}}, + {X: Field{[10]uint32{0x038a0837, 0x028f9137, 0x03f71d10, 0x020e5226, 0x0242f60b, 0x02431083, 0x0147cde1, 0x004b2a37, 0x00ac015b, 0x0032e35e}}, Y: Field{[10]uint32{0x0296dbc2, 0x01f33ffa, 0x022d5d17, 0x022c4206, 0x03abdc44, 0x03ecb849, 0x00d3846c, 0x00d9d7a3, 0x01a6a307, 0x00202f8c}}}, + {X: Field{[10]uint32{0x00781920, 0x03b1e15b, 0x0017a0af, 0x00af8bb8, 0x0137e5c5, 0x03450f95, 0x03f3ae66, 0x03621348, 0x03cc4919, 0x0012473e}}, Y: Field{[10]uint32{0x02874189, 0x01fb3115, 0x03ee62b1, 0x0353b706, 0x003ba714, 0x01367cbb, 0x004d29cc, 0x00c2234d, 0x03502628, 0x001d8c86}}}, + {X: Field{[10]uint32{0x02b507b4, 0x01c02cda, 0x0027cfb3, 0x011b17af, 0x038145d1, 0x02088c0e, 0x02ed33ff, 0x00898c8e, 0x03ee4899, 0x0001b28c}}, Y: Field{[10]uint32{0x00b11f4e, 0x00fa34b0, 0x03ec644e, 0x002a7276, 0x038c376a, 0x002548af, 0x00a20cfd, 0x03419078, 0x02b3f189, 0x0025adce}}}, + {X: Field{[10]uint32{0x01d842c7, 0x032aea06, 0x00f8997c, 0x03be6058, 0x001bf602, 0x008b3e9a, 0x03b33d38, 0x025c6db2, 0x03cb3c48, 0x001b47f7}}, Y: Field{[10]uint32{0x03b1713f, 0x01b4a733, 0x0376909c, 0x0311565a, 0x00fa555a, 0x01bc1180, 0x017c0629, 0x02098979, 0x03c46608, 0x00020af1}}}, + {X: Field{[10]uint32{0x02a43554, 0x038fea7f, 0x01b55c88, 0x00f0f87a, 0x02daeb53, 0x01ac8de5, 0x01ac3ca3, 0x00bd069a, 0x02991cf9, 0x0028fa05}}, Y: Field{[10]uint32{0x012855f1, 0x02520c8c, 0x020fa25e, 0x03d5e1b4, 0x0165887d, 0x015014c2, 0x0206b0b4, 0x0119ebe8, 0x029be802, 0x0021e9be}}}, + {X: Field{[10]uint32{0x01d49c70, 0x0230fa1f, 0x03ab571f, 0x013cfcbf, 0x007f570e, 0x0142cab1, 0x02c7438d, 0x030ca53a, 0x03d7cbfb, 0x003f212a}}, Y: Field{[10]uint32{0x03f73dd9, 0x014ddf69, 0x0075b691, 0x00ee959b, 0x02589f6c, 0x0266d905, 0x01b3f1cd, 0x015ac396, 0x02690713, 0x001d11ec}}}, + {X: Field{[10]uint32{0x0355d1b1, 0x02090200, 0x01769539, 0x02a1ce9a, 0x01af4e02, 0x03b28568, 0x00d31252, 0x0056e860, 0x02408fc5, 0x002fac8c}}, Y: Field{[10]uint32{0x019c1459, 0x030d0fd4, 0x01e95b3b, 0x028417ae, 0x00e2bbe6, 0x006dd96c, 0x02deba93, 0x02a6ab97, 0x000d6fa8, 0x0004be92}}}, + {X: Field{[10]uint32{0x0299eb8e, 0x0180d906, 0x00f13df7, 0x00ed810d, 0x010a50e6, 0x02f0094a, 0x02373d71, 0x035fcc66, 0x0279cffa, 0x001a2245}}, Y: Field{[10]uint32{0x00772fb8, 0x01ed6dda, 0x00524da0, 0x0258b9bb, 0x037736ce, 0x01b40540, 0x02a7c1e8, 0x022a8b4b, 0x01b76db2, 0x00102de3}}}, + {X: Field{[10]uint32{0x03068817, 0x0007b8ae, 0x01d96ed4, 0x03350a3a, 0x03b42e2f, 0x023ed754, 0x022f736e, 0x02c103f7, 0x01ad1ae7, 0x0003b10d}}, Y: Field{[10]uint32{0x0096f9f2, 0x02fb23bf, 0x03ac244b, 0x01175943, 0x0126860c, 0x01b13de5, 0x0028a856, 0x010dbd2a, 0x02aa1283, 0x0004efdb}}}, + {X: Field{[10]uint32{0x03de3033, 0x0165341a, 0x0249f374, 0x01d9885a, 0x0060a755, 0x01df9241, 0x03b7ce7f, 0x01a22df7, 0x02fa661f, 0x0019e7d6}}, Y: Field{[10]uint32{0x03617ca1, 0x03ecd71b, 0x017094e0, 0x00ca921f, 0x02c8fddd, 0x023c172d, 0x00f14bfc, 0x013f6956, 0x03d96c25, 0x003fcfff}}}, + {X: Field{[10]uint32{0x0233be60, 0x026994bd, 0x02d68ba8, 0x000bb3ad, 0x011aa2fc, 0x010c1ec8, 0x0348aeb6, 0x009b97ef, 0x00ea05dc, 0x0027faf6}}, Y: Field{[10]uint32{0x02630bee, 0x0390d923, 0x0099272b, 0x0258b1de, 0x033fc5dc, 0x02ef1783, 0x036e785c, 0x00e292b4, 0x03c8ea62, 0x0030219e}}}, + {X: Field{[10]uint32{0x000b1601, 0x00df24d8, 0x03acfe21, 0x02046d64, 0x010347b3, 0x03763e7c, 0x02bed696, 0x02d23b6d, 0x0154c534, 0x003621ac}}, Y: Field{[10]uint32{0x0375d077, 0x02ad7583, 0x03964f10, 0x03064edd, 0x03d74028, 0x03faa8fd, 0x02246c8e, 0x036aa713, 0x0118aa07, 0x002932f0}}}, + {X: Field{[10]uint32{0x006e9d47, 0x03929d11, 0x0349ab7e, 0x009f73b0, 0x01096a8e, 0x03fc85e8, 0x03f6ab68, 0x028e9820, 0x03efc187, 0x002be332}}, Y: Field{[10]uint32{0x03e941f0, 0x01c5b3da, 0x03dc4990, 0x00cc96a3, 0x031662a7, 0x0395539b, 0x025b625b, 0x000e49f6, 0x027c9988, 0x0000fb8c}}}, + {X: Field{[10]uint32{0x01d3d26a, 0x00662f1f, 0x033654a6, 0x0162a65e, 0x0042d334, 0x012952a1, 0x0051d224, 0x0098728d, 0x00e7891c, 0x0007a600}}, Y: Field{[10]uint32{0x01a215d4, 0x0269dcd9, 0x013bd566, 0x03259bdd, 0x03978120, 0x020b9acd, 0x031a321e, 0x03f03757, 0x0186bd6f, 0x000c8be2}}}, + {X: Field{[10]uint32{0x03150044, 0x0193159d, 0x015e415d, 0x029a8b49, 0x00aae4ff, 0x00ea43cc, 0x000dc97f, 0x02002561, 0x02f29f00, 0x00045718}}, Y: Field{[10]uint32{0x02d8af95, 0x035f8cba, 0x01a14a8f, 0x017a2f0b, 0x02cceef9, 0x0393f7c2, 0x03660e01, 0x03397bf5, 0x00127e37, 0x00136513}}}, + {X: Field{[10]uint32{0x02e0178c, 0x01565a0a, 0x02ba2598, 0x017fd0a0, 0x033f5313, 0x0144896f, 0x00d78e8e, 0x01e776cd, 0x039dacbf, 0x000072e7}}, Y: Field{[10]uint32{0x011a4bf5, 0x01a32d2f, 0x0284a50c, 0x03421577, 0x02d7b602, 0x02f3c8d3, 0x01595e20, 0x026f2508, 0x00e37a18, 0x0023f4e9}}}, + {X: Field{[10]uint32{0x03bfe357, 0x01e7b94b, 0x0370b66a, 0x0163e779, 0x01af86d2, 0x0326478e, 0x02b2a5bd, 0x03059d2e, 0x03c463e4, 0x0018a856}}, Y: Field{[10]uint32{0x02f52749, 0x02f792e3, 0x01e9f9f7, 0x0107a3af, 0x02d376fe, 0x01bd1548, 0x02da69fe, 0x01f93495, 0x029fd946, 0x002de3f2}}}, + {X: Field{[10]uint32{0x02df505e, 0x0047a4d7, 0x01ec454b, 0x00a96867, 0x026bd2c8, 0x01cefb53, 0x0170914a, 0x006520c5, 0x00e05bf3, 0x0015d29b}}, Y: Field{[10]uint32{0x00001318, 0x0206a5d7, 0x00b789b2, 0x02ea2ed7, 0x02d02dba, 0x006a6943, 0x02a60b8c, 0x03cce3c3, 0x02cccbd6, 0x0039ecb8}}}, + {X: Field{[10]uint32{0x024084e6, 0x02b47549, 0x023194ad, 0x02ad5839, 0x01c5ae50, 0x027b493f, 0x039cedad, 0x018692eb, 0x037ca3a3, 0x001931b8}}, Y: Field{[10]uint32{0x00116067, 0x025bb59a, 0x008d3f79, 0x003a09c7, 0x004b7a48, 0x00d6b801, 0x0054a07f, 0x02d01027, 0x035656b6, 0x0039b90b}}}, + {X: Field{[10]uint32{0x0100fd84, 0x002041d2, 0x03b11553, 0x011ab79f, 0x0371b277, 0x01d581e9, 0x0246af84, 0x02379555, 0x0297fe4a, 0x00124196}}, Y: Field{[10]uint32{0x030ae7f9, 0x0217c6b5, 0x03342834, 0x01efeed0, 0x0094e721, 0x01ec9d9f, 0x038eb43c, 0x00c2426a, 0x009f67a0, 0x0026175a}}}, + {X: Field{[10]uint32{0x030999cb, 0x02532a8c, 0x009aa443, 0x0079f962, 0x028500c9, 0x03a227cc, 0x02a683b7, 0x0242f61d, 0x03f91857, 0x001bf4cb}}, Y: Field{[10]uint32{0x01d2de3b, 0x025ea321, 0x0278c644, 0x024e3c69, 0x03efbd64, 0x031afc07, 0x013784e9, 0x03c975ea, 0x00841be1, 0x0004bfa0}}}, + {X: Field{[10]uint32{0x02d3b185, 0x02e4ad98, 0x0098b4eb, 0x03109bf7, 0x012d6d12, 0x01c25214, 0x0334812f, 0x027239bf, 0x00da4818, 0x001299f5}}, Y: Field{[10]uint32{0x038150f5, 0x033a945f, 0x01540684, 0x0174e269, 0x033e5009, 0x03e9c6e3, 0x03c668ee, 0x02ddddcd, 0x03f2f6e5, 0x00163aa0}}}, + {X: Field{[10]uint32{0x039f4db2, 0x0386fae9, 0x00c85987, 0x03165708, 0x00edecf4, 0x026b6d19, 0x020752db, 0x009dc174, 0x0131d3a9, 0x003a86b2}}, Y: Field{[10]uint32{0x0322b83e, 0x03dbcd19, 0x008309c3, 0x014da292, 0x03426b57, 0x001bf646, 0x0316597b, 0x02580560, 0x030e25aa, 0x0033da26}}}, + {X: Field{[10]uint32{0x01545c5a, 0x0136fd37, 0x006c12de, 0x03cfc65b, 0x0161414a, 0x02af2672, 0x032663f7, 0x00149f55, 0x026e248a, 0x00232cd6}}, Y: Field{[10]uint32{0x000cfcfa, 0x0254b99a, 0x02a7c4a3, 0x02afcdaf, 0x01c43292, 0x00235403, 0x02dfc3fa, 0x0336d99b, 0x00e047da, 0x0012ccb9}}}, + {X: Field{[10]uint32{0x027f21c8, 0x02673374, 0x008e3c8d, 0x02110c1e, 0x00843186, 0x01160558, 0x02f8dfbf, 0x030bab3f, 0x000cf150, 0x00091f20}}, Y: Field{[10]uint32{0x031d0db6, 0x010ba147, 0x030a7579, 0x01776cf9, 0x02a70839, 0x020a7adf, 0x026462f5, 0x03468398, 0x00dc914f, 0x003320b6}}}, + {X: Field{[10]uint32{0x03426673, 0x012191cc, 0x02482c9f, 0x0133b480, 0x025e0c4a, 0x0040dc23, 0x00f35666, 0x0249f3ec, 0x03c407fb, 0x001950f5}}, Y: Field{[10]uint32{0x0107ebab, 0x023cf51e, 0x0019c88d, 0x00c0ff72, 0x0020bbc7, 0x00c7a9d4, 0x00ae0d16, 0x02b5d605, 0x029a69b4, 0x003894ac}}}, + {X: Field{[10]uint32{0x0388e6d0, 0x0155ad30, 0x026c29b3, 0x036cb840, 0x02d5e759, 0x03d72705, 0x01da4aca, 0x00ce8e82, 0x0255d81c, 0x00313c44}}, Y: Field{[10]uint32{0x00a8fd49, 0x03554747, 0x014f24fc, 0x02ac61ba, 0x0195379e, 0x0123d463, 0x00e5530e, 0x022ad605, 0x02a81af4, 0x0038b98d}}}, + {X: Field{[10]uint32{0x02019eec, 0x0363be57, 0x005981ba, 0x023f2798, 0x01b08284, 0x012bd681, 0x003d92a1, 0x00e6ddce, 0x029d85da, 0x0033c61a}}, Y: Field{[10]uint32{0x0079e3fc, 0x01156f2c, 0x0064248f, 0x01f81873, 0x006b49f3, 0x0100425a, 0x03672a16, 0x03f8214f, 0x021bc860, 0x0032af78}}}, + {X: Field{[10]uint32{0x02ea8f32, 0x02ba40e1, 0x037f6be9, 0x011cf517, 0x00fe9d1d, 0x0222e3f6, 0x015c2c7a, 0x03704f96, 0x0353ad69, 0x0039b0f8}}, Y: Field{[10]uint32{0x00690be1, 0x001f0a2b, 0x02b57021, 0x008357b4, 0x0396b5a9, 0x012617cc, 0x0210800a, 0x01707485, 0x00c94f45, 0x001f4efb}}}, + {X: Field{[10]uint32{0x01060988, 0x029ecbb0, 0x01c118d6, 0x03ddcc34, 0x01d1ba01, 0x033c8a44, 0x0295dc6b, 0x01553551, 0x03a39bcb, 0x000e09ec}}, Y: Field{[10]uint32{0x0225a211, 0x0142bff2, 0x027bfd9f, 0x01890648, 0x00c800a3, 0x02e3d304, 0x0018c5ec, 0x03ba0c6e, 0x0047b7c9, 0x000c904c}}}, + {X: Field{[10]uint32{0x006d24fa, 0x01582373, 0x0013e48f, 0x021446d5, 0x004b55ed, 0x0102c3bd, 0x01ae898c, 0x01268aa3, 0x0138a4b1, 0x003fcdf3}}, Y: Field{[10]uint32{0x01c49048, 0x00cb2b2e, 0x03ceca68, 0x0354810c, 0x01f3ffde, 0x01a14ea5, 0x03a489b8, 0x019995f0, 0x01198f4c, 0x00179856}}}, + {X: Field{[10]uint32{0x020ce509, 0x034fa28c, 0x001def68, 0x01f11545, 0x01d9e53c, 0x03a0edd4, 0x03343229, 0x00beb87b, 0x03c85b49, 0x002f7fd3}}, Y: Field{[10]uint32{0x03de3d20, 0x013f7822, 0x00b8a43b, 0x0139135c, 0x02531f8a, 0x02656784, 0x015088a2, 0x01759985, 0x00649dcc, 0x003a3f66}}}, + {X: Field{[10]uint32{0x03bcd0af, 0x02a6cf0e, 0x02aef625, 0x001c9051, 0x02e59d10, 0x00063c47, 0x032719d9, 0x03cb55fe, 0x029c313f, 0x003f5ae8}}, Y: Field{[10]uint32{0x01c1079d, 0x00fa5f7d, 0x02bf6de7, 0x03a078e2, 0x035018db, 0x0065ae1d, 0x01f584b3, 0x00430c0e, 0x035e9133, 0x00061f6b}}}, + {X: Field{[10]uint32{0x0329ff28, 0x02dc42c6, 0x03b621d0, 0x01e05017, 0x004f4b5f, 0x02b0c05e, 0x032ae1c3, 0x01a4a7bd, 0x022d4860, 0x003a8f10}}, Y: Field{[10]uint32{0x03bf208c, 0x03fbe48c, 0x02af2564, 0x01f3be66, 0x01d10b37, 0x028c5b89, 0x03637eef, 0x0381bf0d, 0x001ec6c3, 0x0039162d}}}, + {X: Field{[10]uint32{0x007b3978, 0x01c14fd2, 0x03c390f8, 0x03b6bc6c, 0x0002ba8a, 0x002d166e, 0x0228924f, 0x03580234, 0x01334982, 0x001194dc}}, Y: Field{[10]uint32{0x01adf3f0, 0x03fd9693, 0x017006bb, 0x0368ee25, 0x023b2444, 0x00850f72, 0x003bb29e, 0x0277bfc9, 0x014c1318, 0x003f6599}}}, + {X: Field{[10]uint32{0x0178d8f5, 0x00dc5da1, 0x039dd996, 0x012a8b43, 0x01b5b29b, 0x03e78414, 0x036227f9, 0x001a6ab1, 0x03f11226, 0x003f6924}}, Y: Field{[10]uint32{0x01d46fa3, 0x02e1b1f8, 0x03a06d8e, 0x02d4958c, 0x02e04e55, 0x02600e98, 0x03a69d7f, 0x004db7d0, 0x013df63d, 0x00168cd6}}}, + {X: Field{[10]uint32{0x01f3e4c1, 0x0185d3ce, 0x000cd096, 0x015f15c8, 0x027ab5e7, 0x03a8dbfb, 0x028e2835, 0x00062951, 0x02e95f09, 0x001d3f10}}, Y: Field{[10]uint32{0x018751f0, 0x02c94848, 0x010b32a8, 0x01d52ff4, 0x033760e0, 0x017e3d75, 0x006204d4, 0x0324536a, 0x03403802, 0x00332a82}}}, + {X: Field{[10]uint32{0x00483d53, 0x022ec6bb, 0x03bafe11, 0x030a0503, 0x030d98f8, 0x0239051d, 0x03818da5, 0x01e68032, 0x004a997b, 0x0002633b}}, Y: Field{[10]uint32{0x02aaec08, 0x01a26b1f, 0x02ae4d81, 0x02782103, 0x01ac422d, 0x020b0675, 0x03b82fa1, 0x017354d9, 0x00581494, 0x000bf398}}}, + {X: Field{[10]uint32{0x03cba60f, 0x00dd2c44, 0x01fc13c2, 0x01025b31, 0x01e4fa15, 0x025ff55d, 0x015119f6, 0x032f7081, 0x01b789a5, 0x0031d0b7}}, Y: Field{[10]uint32{0x02f3532d, 0x02837a91, 0x0168013f, 0x03d3cac7, 0x01b32248, 0x039b6ea8, 0x002474b0, 0x02438750, 0x012834a9, 0x0026c2bc}}}, + {X: Field{[10]uint32{0x0391eb89, 0x0027f479, 0x0019b774, 0x0360ec4e, 0x005b5973, 0x03131c89, 0x00979136, 0x0019aad6, 0x004f9a78, 0x0036e8b8}}, Y: Field{[10]uint32{0x033baf43, 0x03f29798, 0x016a889d, 0x03821c11, 0x03aa0e90, 0x005e3c1d, 0x00240e7a, 0x017dd05a, 0x01223adb, 0x000d1d1e}}}, + {X: Field{[10]uint32{0x02f6538d, 0x0271a710, 0x01fbf106, 0x02183ada, 0x036cc47f, 0x03091cac, 0x0184dcb6, 0x021619ee, 0x02436e59, 0x001b532b}}, Y: Field{[10]uint32{0x01e0a84f, 0x02ec7cf5, 0x01cedb98, 0x019f59fc, 0x02125c2b, 0x00fbfbd4, 0x03c53c92, 0x03df3b75, 0x00c9f0c4, 0x0031fed6}}}, + {X: Field{[10]uint32{0x00523982, 0x005a80ee, 0x0010f9cc, 0x00e5bf65, 0x029ec5b5, 0x02eb8a46, 0x0264ed43, 0x01ec156d, 0x036ed5b6, 0x0013115f}}, Y: Field{[10]uint32{0x00f344eb, 0x007fb548, 0x00e988e9, 0x01ffb086, 0x02a435f4, 0x029ca09e, 0x022ed682, 0x03867d51, 0x03cf20aa, 0x00124b96}}}, + {X: Field{[10]uint32{0x0346eb3f, 0x035107f2, 0x018179cd, 0x030c1933, 0x0151fd8a, 0x01d2b8a5, 0x00033bfd, 0x022907d6, 0x01223477, 0x00135f9a}}, Y: Field{[10]uint32{0x022750c4, 0x024bd1b1, 0x012ad0c0, 0x001ef443, 0x036d7bbd, 0x01eb692e, 0x00538791, 0x0274f0e9, 0x00b2ff5c, 0x001d5bb0}}}, + {X: Field{[10]uint32{0x03d464b2, 0x0311f8c1, 0x0115cfef, 0x027292be, 0x004a4839, 0x02dd3be5, 0x03c565ea, 0x0351e6f6, 0x025069ba, 0x0002b16f}}, Y: Field{[10]uint32{0x02874345, 0x02df3eb7, 0x00381928, 0x02a94a6d, 0x008bad5d, 0x02739176, 0x0322c546, 0x0042d8dd, 0x03febc58, 0x000c91b8}}}, + {X: Field{[10]uint32{0x023995b2, 0x027a1036, 0x002d15d6, 0x002d8362, 0x0224f91e, 0x014d2c96, 0x026a4812, 0x0004e6ff, 0x01412135, 0x001f6a23}}, Y: Field{[10]uint32{0x00b9c587, 0x0080d23c, 0x03eb5cbc, 0x00b262b6, 0x026a2d09, 0x025dc90c, 0x00bb03cf, 0x0293e1c0, 0x018d62a7, 0x0026222b}}}, + {X: Field{[10]uint32{0x01abf149, 0x014af8ec, 0x037d4e8b, 0x00ac1744, 0x015d3b92, 0x034f3ad2, 0x01aa3eb4, 0x02734832, 0x031a6323, 0x000e27fc}}, Y: Field{[10]uint32{0x00fe7c93, 0x03000dce, 0x02d49dc3, 0x03b55456, 0x01042f54, 0x01db0521, 0x022ab22b, 0x002fca28, 0x022fbc84, 0x002c3b0a}}}, + {X: Field{[10]uint32{0x016c4370, 0x009e9756, 0x036f8f3c, 0x012637f3, 0x02a94b2e, 0x00f55cdb, 0x025afaad, 0x00a2cba9, 0x02cf5fb1, 0x00307306}}, Y: Field{[10]uint32{0x034fd38e, 0x010279a4, 0x0153b27c, 0x02a706ec, 0x00ecfec6, 0x028aa233, 0x006bf2da, 0x02b4c5b3, 0x004d1986, 0x002240d6}}}, + {X: Field{[10]uint32{0x03c9aa3a, 0x01462d21, 0x03cf98b3, 0x015fa46c, 0x0002a349, 0x00725b01, 0x0340be83, 0x01a28a91, 0x0252b927, 0x000e66b3}}, Y: Field{[10]uint32{0x00800005, 0x03ac4d12, 0x02869786, 0x030f2812, 0x03fd9af1, 0x035827e8, 0x017ae095, 0x00e91e84, 0x00b3abdb, 0x002420c5}}}, + {X: Field{[10]uint32{0x0206d0a2, 0x020eea6e, 0x03c76d82, 0x001832b6, 0x01470cc6, 0x001694ae, 0x02d98593, 0x000695c0, 0x03fd8c9d, 0x0001a550}}, Y: Field{[10]uint32{0x031057df, 0x03a2865c, 0x01d1b6f4, 0x030e2a40, 0x00404eb1, 0x00ca6022, 0x0348f17b, 0x01cbb4b8, 0x03d9a0c3, 0x003a6639}}}, + {X: Field{[10]uint32{0x00200100, 0x02dabdfa, 0x02d6d400, 0x00f3dc0e, 0x00911e55, 0x01cac70a, 0x01289a58, 0x011bbd68, 0x014fdf9b, 0x00085cb5}}, Y: Field{[10]uint32{0x03687a8c, 0x00625c46, 0x035d9edc, 0x03afd90a, 0x0334a8fb, 0x01cac89b, 0x0020df57, 0x00397832, 0x007d3b79, 0x0008486d}}}, + {X: Field{[10]uint32{0x015e8b56, 0x017df3a7, 0x03f286d4, 0x00e84390, 0x01cc2713, 0x01248e59, 0x026847d2, 0x00939743, 0x03e937a3, 0x003d81bd}}, Y: Field{[10]uint32{0x0286e007, 0x039d5c4f, 0x008d1a30, 0x02024728, 0x03f5b805, 0x024c9284, 0x03379448, 0x00878b44, 0x03b8622a, 0x001c004f}}}, + {X: Field{[10]uint32{0x0040fc99, 0x03639c5f, 0x0214edfc, 0x00b7526a, 0x012f95bb, 0x00d0abcd, 0x0032013b, 0x02d93c7d, 0x00c2dfce, 0x0027c548}}, Y: Field{[10]uint32{0x018e863d, 0x035534e2, 0x001996ca, 0x029040c2, 0x02d53dc0, 0x0192a41f, 0x024fe3b7, 0x03c0123e, 0x0226feb1, 0x003fa3f2}}}, + {X: Field{[10]uint32{0x031eaa08, 0x024dc288, 0x0260518a, 0x00632ca1, 0x0053afe4, 0x01724f4e, 0x00674eb7, 0x019dbbac, 0x036e7587, 0x00199c2b}}, Y: Field{[10]uint32{0x03eb09f3, 0x02933b92, 0x0053734b, 0x03314936, 0x00fb59fc, 0x02ec4bf6, 0x03fcee90, 0x01c7b825, 0x035edfc0, 0x000a64ff}}}, + {X: Field{[10]uint32{0x03898350, 0x0166a52c, 0x0152465f, 0x013ab5b2, 0x0140650a, 0x03a5530b, 0x00a4e2fe, 0x0312f393, 0x018b345c, 0x000571b5}}, Y: Field{[10]uint32{0x0363cf7f, 0x0039de28, 0x02cf3a6b, 0x02a9cf7c, 0x00221b12, 0x014a34b0, 0x020f3adf, 0x01865996, 0x013b4727, 0x00022531}}}, + {X: Field{[10]uint32{0x01389621, 0x00665ddd, 0x024548a9, 0x0082583a, 0x00adfffd, 0x017e1692, 0x0293ef17, 0x03790b24, 0x02bf60db, 0x002f12ad}}, Y: Field{[10]uint32{0x01040e42, 0x00d1d846, 0x01a4437a, 0x01d18552, 0x0100791a, 0x0335c64c, 0x016bb68e, 0x038a9d17, 0x00ba24a4, 0x003f8a28}}}, + {X: Field{[10]uint32{0x013e6ee1, 0x03cb8443, 0x01c8054e, 0x0141001f, 0x0064f20e, 0x031c0eea, 0x015e87f1, 0x03cbdb92, 0x006323fb, 0x00176ac7}}, Y: Field{[10]uint32{0x02695d93, 0x00d2a194, 0x023059c1, 0x0305acc3, 0x03e7f01a, 0x039a2ffe, 0x02db4153, 0x0182f6b9, 0x0200cf44, 0x0007f430}}}, + {X: Field{[10]uint32{0x028acaf2, 0x01f0625a, 0x03bb2dd6, 0x03639c0b, 0x035cea0b, 0x030ce73a, 0x0228dbb0, 0x01f111ef, 0x0157d735, 0x000b7c73}}, Y: Field{[10]uint32{0x02f1b9e8, 0x03d096b8, 0x01741492, 0x019e6577, 0x0186eefa, 0x0136ddbd, 0x039c0319, 0x0323770e, 0x001120cb, 0x000cc648}}}, + {X: Field{[10]uint32{0x00d9ab8d, 0x01377bd8, 0x02fea058, 0x019054d5, 0x023d9f97, 0x034aeb1d, 0x0100585e, 0x036bc20c, 0x00175a02, 0x000b606b}}, Y: Field{[10]uint32{0x01f9a0b7, 0x02060f0b, 0x011c9cd5, 0x00b33a7d, 0x0021052e, 0x039b09b9, 0x0297fd49, 0x0217d5e0, 0x00d13b17, 0x003e6423}}}, + {X: Field{[10]uint32{0x037dc097, 0x0241c090, 0x00db59ef, 0x03d3c47a, 0x0367b1e7, 0x00d5bac5, 0x000d40a5, 0x00b9cc91, 0x0362fb73, 0x0007eb05}}, Y: Field{[10]uint32{0x039b8729, 0x0176569e, 0x031584df, 0x009c04a7, 0x015ae7ce, 0x01d72cc3, 0x01a08ace, 0x01444cad, 0x004ca58d, 0x003b755e}}}, + {X: Field{[10]uint32{0x00c8c98e, 0x00659e0e, 0x01a9cc2b, 0x03c266c5, 0x0245caba, 0x02aa421b, 0x0093e884, 0x02e42e03, 0x035b4694, 0x00341a82}}, Y: Field{[10]uint32{0x0347def3, 0x00833ec1, 0x02da4986, 0x00517de2, 0x0114fcc8, 0x008bfcec, 0x01b391b2, 0x02c93f34, 0x02ba2777, 0x00132b51}}}, + {X: Field{[10]uint32{0x01e53445, 0x0054ac5f, 0x01d6929b, 0x02e33e6c, 0x01870059, 0x02dbc1a5, 0x007928ac, 0x0103e664, 0x03275902, 0x00124a37}}, Y: Field{[10]uint32{0x0300d505, 0x029d468c, 0x00ac53db, 0x0330a1aa, 0x03240b83, 0x01f70cda, 0x00c400f3, 0x00ec39ec, 0x020b655b, 0x002ddcf9}}}, + {X: Field{[10]uint32{0x03a28390, 0x018e7fe1, 0x01dda1b8, 0x01430cc7, 0x03f945d4, 0x00c8a09f, 0x02992617, 0x0060452e, 0x01f9cd54, 0x002986f3}}, Y: Field{[10]uint32{0x00d93a68, 0x03fa01ee, 0x004eeb40, 0x01c3af99, 0x018e61b3, 0x0007f893, 0x0201b2b3, 0x02eca151, 0x016ed6fd, 0x000f9dc7}}}, + {X: Field{[10]uint32{0x01db93c3, 0x0106c544, 0x0093f9f6, 0x013041fc, 0x030fb8e3, 0x00029e5d, 0x031228c0, 0x02deaece, 0x01b93e2f, 0x0014d68d}}, Y: Field{[10]uint32{0x02ff786f, 0x027fb26c, 0x02e96f0c, 0x02d7a354, 0x0292475f, 0x01f0b8f0, 0x0283fba2, 0x033230e0, 0x03355657, 0x00091c7f}}}, + {X: Field{[10]uint32{0x0065d4d0, 0x01e42d31, 0x00acfa5f, 0x00ab442e, 0x00f23ad4, 0x01af9c2c, 0x02888bbc, 0x003ca4dd, 0x012ce014, 0x0039a299}}, Y: Field{[10]uint32{0x001a7385, 0x03e7074f, 0x0094c06c, 0x01f82e03, 0x00ea6e0c, 0x02b54848, 0x034ecb6d, 0x00182cc4, 0x010cc368, 0x001275ce}}}, + {X: Field{[10]uint32{0x03e25fde, 0x03c3a64d, 0x007576b4, 0x01bc22f1, 0x01f5f05f, 0x03a883a6, 0x017855c3, 0x03334fbc, 0x027a74df, 0x003a24e7}}, Y: Field{[10]uint32{0x0261b173, 0x020a7fb5, 0x0388b3e0, 0x015368b0, 0x033773f4, 0x0127930a, 0x00c0fdf4, 0x0156df24, 0x033eff0a, 0x001ad229}}}, + {X: Field{[10]uint32{0x00751543, 0x0003ebd2, 0x01dafbfd, 0x020d9f0c, 0x007fe164, 0x029b9c2b, 0x00fa2930, 0x0061d200, 0x03ea3145, 0x00125804}}, Y: Field{[10]uint32{0x038c4332, 0x00b8bc6a, 0x03f65614, 0x0022e14d, 0x02581e15, 0x020accc4, 0x00001cb2, 0x0155be29, 0x01118790, 0x002d5c54}}}, + {X: Field{[10]uint32{0x004b1e1f, 0x0370f060, 0x0120189d, 0x00a79f31, 0x01bb0f6c, 0x00981342, 0x0157a072, 0x030ea55a, 0x01b0b1ef, 0x001111cd}}, Y: Field{[10]uint32{0x0259d6e4, 0x02f9001f, 0x0321f9ae, 0x027cca96, 0x023e9a43, 0x00143956, 0x0332a857, 0x02eacea5, 0x00a3461a, 0x002c6b58}}}, + {X: Field{[10]uint32{0x02d9511c, 0x02d0450f, 0x02475da3, 0x02279dea, 0x03e88821, 0x02e72630, 0x01a40e74, 0x01f573e1, 0x02c84acd, 0x00016016}}, Y: Field{[10]uint32{0x023c07c0, 0x0204d35a, 0x02363bb4, 0x00882bab, 0x0301ad00, 0x03635a6d, 0x0170dcf0, 0x014cfdef, 0x023bfbba, 0x003254a4}}}, + {X: Field{[10]uint32{0x039a9501, 0x02ddfbc9, 0x00898dca, 0x02f711b2, 0x02c12619, 0x02da4080, 0x01c53a12, 0x031e1578, 0x011830fd, 0x0022b045}}, Y: Field{[10]uint32{0x01ca4fa4, 0x035af52a, 0x0053ad59, 0x02e376cc, 0x00d5deb3, 0x02fec800, 0x0015493a, 0x03e83874, 0x00c77867, 0x000a7edf}}}, + {X: Field{[10]uint32{0x02ab542d, 0x01ed1102, 0x01ec67bd, 0x01bc8bd0, 0x014d7022, 0x031efbfd, 0x03c8a7cc, 0x02632da3, 0x01d3e429, 0x002a91eb}}, Y: Field{[10]uint32{0x003683e9, 0x0079d731, 0x01816f77, 0x013f0656, 0x024f8e8c, 0x03d9d166, 0x034f9e39, 0x036630eb, 0x0081ebef, 0x0033e96b}}}, + {X: Field{[10]uint32{0x0199889a, 0x02236e79, 0x013e419e, 0x026390cf, 0x03d39848, 0x019248ad, 0x0133f753, 0x0053ba48, 0x0127a27a, 0x003cd410}}, Y: Field{[10]uint32{0x001b45df, 0x0337c218, 0x03313c09, 0x008e819a, 0x0256c6d4, 0x01ef2e21, 0x02cdae54, 0x01a2a213, 0x037e9f98, 0x003c6be7}}}, + {X: Field{[10]uint32{0x024bf08d, 0x03bbbb5f, 0x0398c7c6, 0x03964986, 0x02272d3c, 0x026a6269, 0x00870766, 0x039a20d6, 0x0344edcb, 0x000cdcc3}}, Y: Field{[10]uint32{0x01775a6b, 0x0172f9b8, 0x02794860, 0x01fb31c2, 0x01b6fd05, 0x02f4b5e2, 0x02a32d81, 0x005b412c, 0x0128d877, 0x000fe0ce}}}, + {X: Field{[10]uint32{0x02dfb0d6, 0x02d2850f, 0x034786e5, 0x01fef84d, 0x00a33d41, 0x02492730, 0x00bdf072, 0x03d61220, 0x02dc8c06, 0x000c5a75}}, Y: Field{[10]uint32{0x0274ce5f, 0x018fa1aa, 0x037fcea1, 0x0030bf79, 0x00a31160, 0x023d0a32, 0x0382f596, 0x00e0e6e9, 0x022dec56, 0x000aa450}}}, + {X: Field{[10]uint32{0x002a4429, 0x03f331bc, 0x038e980c, 0x0114355f, 0x03c8c43a, 0x02a370fa, 0x007a64d5, 0x02ba073c, 0x0182013a, 0x00363191}}, Y: Field{[10]uint32{0x03822aea, 0x012312a4, 0x02a7be7f, 0x011e1278, 0x02c4773d, 0x027fb8ec, 0x012f195c, 0x018eba32, 0x00519688, 0x003121cc}}}, + {X: Field{[10]uint32{0x002b6f11, 0x007da7d0, 0x03fe1789, 0x03605368, 0x007e59c8, 0x018c6e21, 0x03cb0395, 0x0091bde9, 0x001f307e, 0x002b99c4}}, Y: Field{[10]uint32{0x01ed44cb, 0x007871c4, 0x022aee41, 0x03e5f608, 0x031d3900, 0x027e68d5, 0x02767afa, 0x0027a2e5, 0x03b4a90b, 0x003d7cb6}}}, + {X: Field{[10]uint32{0x01dbd8ee, 0x035fc520, 0x00f0c1a9, 0x010e095d, 0x02b4e2ff, 0x02068b17, 0x00a7dc9c, 0x020ce070, 0x023183ba, 0x002a7a1c}}, Y: Field{[10]uint32{0x02468901, 0x03775be5, 0x023354b7, 0x02b0f5ce, 0x03333153, 0x039a0d13, 0x01fb59be, 0x0038cf5a, 0x019990d9, 0x0025a041}}}, + {X: Field{[10]uint32{0x003376f2, 0x01078d39, 0x0048dad1, 0x01e7ed6f, 0x00694ef8, 0x00cf9a12, 0x014f43aa, 0x03502c9a, 0x021c0ae7, 0x00185afc}}, Y: Field{[10]uint32{0x0080fc77, 0x01772526, 0x02799bf0, 0x016a8f67, 0x024a2772, 0x02d693ea, 0x02451153, 0x0282ea0c, 0x03832aa8, 0x002fb063}}}, + {X: Field{[10]uint32{0x033f5c2d, 0x0144262b, 0x0295f8d3, 0x033dc069, 0x0339be47, 0x03a6f96e, 0x02882b11, 0x00cf51e2, 0x0335601f, 0x000487a0}}, Y: Field{[10]uint32{0x0103b3e8, 0x00a8a613, 0x03659f68, 0x01c11216, 0x03010dd0, 0x02ffe077, 0x005fdfdc, 0x02812df6, 0x013318fa, 0x000ba64a}}}, + {X: Field{[10]uint32{0x009f1141, 0x02325eee, 0x0193325c, 0x00a12a42, 0x003a83cc, 0x03bc6f12, 0x0013948f, 0x032a7025, 0x03973025, 0x002fe211}}, Y: Field{[10]uint32{0x02ad5386, 0x01c4fd9b, 0x0363f0e2, 0x0181aaee, 0x016de247, 0x020e3449, 0x015ae3a7, 0x03475e1b, 0x03263d26, 0x000654e8}}}, + {X: Field{[10]uint32{0x02f811f0, 0x0180295a, 0x02124e86, 0x0383ebb6, 0x00dd1b06, 0x0371d734, 0x0094d4bd, 0x0003e617, 0x01a65a38, 0x001f0a3a}}, Y: Field{[10]uint32{0x02b5c277, 0x005218e2, 0x03863134, 0x035bcb90, 0x002d396f, 0x001d09ed, 0x014cedb7, 0x027c0e24, 0x01b70e33, 0x0028dd5b}}}, + {X: Field{[10]uint32{0x00a66077, 0x024c5ca4, 0x02b9cb8b, 0x0244c6f0, 0x0346be07, 0x02e48e1e, 0x00b5bf6b, 0x00b3d073, 0x01ad45e6, 0x00397b1b}}, Y: Field{[10]uint32{0x004f0e19, 0x00ceaeb9, 0x00eda67c, 0x0249e884, 0x012bacd0, 0x038f1348, 0x014bea4b, 0x000f2be1, 0x02cc7757, 0x00340117}}}, + {X: Field{[10]uint32{0x018c2fed, 0x00d85a44, 0x02043583, 0x00f8d363, 0x00703626, 0x0112965d, 0x031c3525, 0x025517ec, 0x021f9203, 0x001bf25b}}, Y: Field{[10]uint32{0x038a9a51, 0x02eaeb62, 0x0089d9aa, 0x00376434, 0x026ca7c2, 0x010e5f8d, 0x030457f8, 0x037a365a, 0x02871571, 0x00340cb7}}}, + {X: Field{[10]uint32{0x006e4133, 0x0244569d, 0x0149acf4, 0x03738684, 0x021db684, 0x01f04c51, 0x02790914, 0x02711d0b, 0x03511c21, 0x002278f4}}, Y: Field{[10]uint32{0x030c5c90, 0x00be4618, 0x00b03689, 0x02eeec89, 0x0352fde5, 0x000f55fa, 0x00b53d23, 0x0211a361, 0x030b672e, 0x002aaf65}}}, + {X: Field{[10]uint32{0x010d5890, 0x0238628e, 0x01de84ff, 0x011c3fa8, 0x00c043e9, 0x02b6e36a, 0x00eb44ea, 0x01914e1e, 0x00f0b213, 0x000ade98}}, Y: Field{[10]uint32{0x004a5244, 0x02eeadf4, 0x02f41ae8, 0x01b46409, 0x01b80668, 0x02ce2cd9, 0x03407091, 0x00ca8164, 0x03161ba0, 0x000320a6}}}, + {X: Field{[10]uint32{0x009627e7, 0x01c8141b, 0x029d42f8, 0x01e6498e, 0x01bfeb98, 0x021e0bc9, 0x037c3dfa, 0x02badf9b, 0x031ac2c2, 0x001192e7}}, Y: Field{[10]uint32{0x02f7502c, 0x016d6d6d, 0x028aadac, 0x001db2d3, 0x029a23a1, 0x0140e1d7, 0x03761dbe, 0x02f30b7d, 0x03f459e1, 0x001f0982}}}, + {X: Field{[10]uint32{0x019b616f, 0x02d8e89d, 0x035ab268, 0x006a61ba, 0x000b2514, 0x01dd2d9c, 0x0331519e, 0x008a5438, 0x02304357, 0x001e494f}}, Y: Field{[10]uint32{0x027f88e1, 0x000d61b8, 0x03f69100, 0x0363c95d, 0x02ed6467, 0x01a59972, 0x00f5bae9, 0x008d4ec8, 0x017a55b6, 0x00369827}}}, + {X: Field{[10]uint32{0x01399556, 0x010b45b7, 0x02773876, 0x00250d65, 0x01019acb, 0x0154643e, 0x02b1967f, 0x03032d70, 0x007ce900, 0x00018d0a}}, Y: Field{[10]uint32{0x03debead, 0x02d186b0, 0x037581fc, 0x00f8c4af, 0x00223c47, 0x014ccd2b, 0x00042db2, 0x005804c3, 0x01098cf0, 0x00288d42}}}, + {X: Field{[10]uint32{0x021bee98, 0x01fc60d0, 0x00223358, 0x012e4588, 0x02d7ef2f, 0x01a9d6d0, 0x0018557f, 0x03f56e8d, 0x01c38bd8, 0x001d8448}}, Y: Field{[10]uint32{0x02dd530f, 0x025ef6d4, 0x010405c8, 0x00d2bebb, 0x0276070e, 0x02eca489, 0x026eeb01, 0x01d0d443, 0x015ff9c1, 0x0010051c}}}, + {X: Field{[10]uint32{0x01453413, 0x0375819b, 0x034b3e63, 0x03870bc1, 0x0077990f, 0x039428ac, 0x01a30784, 0x037c6967, 0x00c1bfbb, 0x00098632}}, Y: Field{[10]uint32{0x02a48da0, 0x01a7774c, 0x01ab0581, 0x016cc9bf, 0x024bdaf3, 0x03a8f2d1, 0x00e584b4, 0x02daac63, 0x023720f5, 0x002b94e6}}}, + {X: Field{[10]uint32{0x00f685be, 0x007c76e4, 0x0020dab3, 0x02d70266, 0x00d91699, 0x0124c22d, 0x03a57e19, 0x03c097f1, 0x00cc10c6, 0x00350a7f}}, Y: Field{[10]uint32{0x02648edf, 0x026f5396, 0x00964068, 0x00f5bedb, 0x00a8df04, 0x02f945a2, 0x0014ae91, 0x01646379, 0x01c1ee15, 0x00368ac5}}}, + {X: Field{[10]uint32{0x00e8b705, 0x036a3639, 0x00b6d56d, 0x03d8d994, 0x01bf1e0c, 0x028b6bbd, 0x0207625b, 0x0232acdb, 0x03c7c04b, 0x001a8638}}, Y: Field{[10]uint32{0x00e94eec, 0x005762f0, 0x0049ed62, 0x010097f3, 0x0120e754, 0x03149507, 0x039c9dab, 0x025b6faf, 0x0330f56c, 0x00198a44}}}, + {X: Field{[10]uint32{0x00f97756, 0x01e848be, 0x032201a3, 0x03fe906c, 0x01d7ca3e, 0x01a88719, 0x002fa4ad, 0x03cff952, 0x0046d1c9, 0x002616da}}, Y: Field{[10]uint32{0x02a3a92e, 0x03d5102a, 0x01592d56, 0x030234e4, 0x03bb9dc6, 0x03150fe2, 0x022f2c32, 0x023dadda, 0x03dd98e1, 0x000f8ac8}}}, + {X: Field{[10]uint32{0x026e8c64, 0x024a5b27, 0x03f3355c, 0x038e5953, 0x0296fba8, 0x031ef328, 0x02ee3395, 0x00e2918f, 0x01db4ba8, 0x00252283}}, Y: Field{[10]uint32{0x00f5c1d8, 0x010c970f, 0x00d2e12c, 0x03b4bde5, 0x01c7b705, 0x03949f58, 0x03b69b52, 0x0360fad9, 0x0025da19, 0x00316cd3}}}, + {X: Field{[10]uint32{0x00a3de2e, 0x02a903ea, 0x028c4256, 0x0331a521, 0x020a437f, 0x020985ec, 0x0246b47e, 0x02c0fede, 0x002c1332, 0x0010ccb4}}, Y: Field{[10]uint32{0x02aa5289, 0x02f83762, 0x01de1e1b, 0x02adcdd9, 0x00393985, 0x025045e0, 0x00327c03, 0x015576a5, 0x016f5f9c, 0x0039b946}}}, + {X: Field{[10]uint32{0x022a5aa3, 0x0330fedc, 0x01d96a67, 0x0315ac84, 0x02f7e12d, 0x0235a7d6, 0x0150b68a, 0x032257cc, 0x03b92ac1, 0x0017725d}}, Y: Field{[10]uint32{0x0107844d, 0x0342e567, 0x0217d10f, 0x00d0d040, 0x0283260c, 0x0331a5b4, 0x03d29123, 0x03b27872, 0x00a74bf1, 0x00116223}}}, + {X: Field{[10]uint32{0x03d15764, 0x006a078f, 0x022b0c6e, 0x035f418e, 0x00605e3b, 0x00000e49, 0x030cb6df, 0x03c492a6, 0x0134ca94, 0x0016e73d}}, Y: Field{[10]uint32{0x00897458, 0x006f2f00, 0x03d1d0d8, 0x01233a22, 0x03f9ba4b, 0x0282cb59, 0x0248790f, 0x01bffaf6, 0x01c3b051, 0x00113a63}}}, + {X: Field{[10]uint32{0x01372f59, 0x035ffdb5, 0x00a6697f, 0x02c25d1b, 0x02e2feb4, 0x022578b7, 0x026baf9c, 0x01c531f4, 0x00073a63, 0x00210d4c}}, Y: Field{[10]uint32{0x00c7a175, 0x00fcda2c, 0x022d23ca, 0x01f209b1, 0x023f9fea, 0x03cbcd14, 0x037361c0, 0x02751132, 0x029e3768, 0x0035cdce}}}, + {X: Field{[10]uint32{0x021e6a61, 0x000c3eb0, 0x02619804, 0x037fe1d1, 0x008f1a28, 0x00e09b9e, 0x008485fc, 0x026d7227, 0x000e3eef, 0x00273c00}}, Y: Field{[10]uint32{0x0291543c, 0x0184bdff, 0x020a1ac2, 0x01daaa47, 0x002764cd, 0x00801708, 0x021fcb9d, 0x012cb653, 0x033ad868, 0x000acf6a}}}, + {X: Field{[10]uint32{0x00e1235c, 0x01c68913, 0x035e9996, 0x014e0ebf, 0x038ee028, 0x012469d5, 0x0088b25b, 0x00623882, 0x03dc5897, 0x002eca4b}}, Y: Field{[10]uint32{0x012507e5, 0x00bd6690, 0x023a09e0, 0x03dc9f86, 0x00d5e9b8, 0x01624cd2, 0x03839909, 0x01e18ef2, 0x01c350ba, 0x0034edb6}}}, + {X: Field{[10]uint32{0x03b7d680, 0x01c32403, 0x01ced2d7, 0x01afc9f1, 0x03efd2bc, 0x008e6d88, 0x008a21a9, 0x03b55daa, 0x01d89835, 0x002575b4}}, Y: Field{[10]uint32{0x00baf048, 0x02ff819b, 0x02468e40, 0x00e31cb3, 0x02b39e7d, 0x03cf39a4, 0x034ac720, 0x01973bea, 0x01ad39db, 0x0032454d}}}, + {X: Field{[10]uint32{0x01d09a46, 0x01428ea1, 0x00fd89ee, 0x021f7cb2, 0x0115ea37, 0x00328325, 0x02c3fb90, 0x03b08270, 0x020fa164, 0x0032f8fc}}, Y: Field{[10]uint32{0x02fb9a28, 0x00bbfe42, 0x00e8b825, 0x01469962, 0x01734a22, 0x0061b9bb, 0x02222804, 0x00596d23, 0x0354faea, 0x00335625}}}, + {X: Field{[10]uint32{0x039f604a, 0x0278a4ec, 0x020949f3, 0x03d121f5, 0x01002942, 0x0299e0d7, 0x031c215b, 0x02788166, 0x02b99bab, 0x000f8076}}, Y: Field{[10]uint32{0x0123d481, 0x0172d7a1, 0x022670bd, 0x03e7a2da, 0x00d0a556, 0x019e7cfa, 0x03509798, 0x014113b8, 0x00323336, 0x002d0777}}}, + {X: Field{[10]uint32{0x02afef7a, 0x004e991d, 0x03350972, 0x0238578f, 0x01c79891, 0x012d8cc7, 0x031cfd2e, 0x03725857, 0x00c05543, 0x000a625d}}, Y: Field{[10]uint32{0x0299da2f, 0x0360181e, 0x0257de5c, 0x028d8b2d, 0x0222354e, 0x011fd82c, 0x00e02e87, 0x0362fa9d, 0x035555f2, 0x001a0060}}}, + {X: Field{[10]uint32{0x011fdc61, 0x019e4fd4, 0x003dfd93, 0x0322824f, 0x022aabde, 0x0107453d, 0x03764b46, 0x00f25ba8, 0x034d5476, 0x00075c19}}, Y: Field{[10]uint32{0x00dfe632, 0x03ad2f8e, 0x0010e8a4, 0x000588f7, 0x02807741, 0x025d4fd0, 0x024378e5, 0x0112f18c, 0x01ac697e, 0x00259d2b}}}, + {X: Field{[10]uint32{0x000fece1, 0x02c713c1, 0x00fbacc0, 0x02be46ae, 0x0073c47a, 0x023e2d8d, 0x021875ec, 0x02e5c189, 0x0107b43a, 0x001d4880}}, Y: Field{[10]uint32{0x03aeaffb, 0x01580ba8, 0x00b7b088, 0x035670d4, 0x0041bc9a, 0x02d5bbee, 0x02ebf2bf, 0x001f404a, 0x027cc3bf, 0x000a4253}}}, + {X: Field{[10]uint32{0x03779720, 0x039e4883, 0x03df92e7, 0x0232743b, 0x03fc7f4c, 0x002eb20e, 0x01b31aab, 0x013b0c9f, 0x01ffb347, 0x0033eb6e}}, Y: Field{[10]uint32{0x019a09b2, 0x002e64c3, 0x00b06ab0, 0x001b34ae, 0x0297d418, 0x02a67ea0, 0x0322ee02, 0x023315e3, 0x017f6f7b, 0x003fedd9}}}, + {X: Field{[10]uint32{0x01cb828f, 0x03a2daf0, 0x026f464c, 0x03d35ee0, 0x0334a7b4, 0x027612a9, 0x02e46e13, 0x01580eb7, 0x019dbe3c, 0x00093ba4}}, Y: Field{[10]uint32{0x03ff1506, 0x0297a985, 0x03e29364, 0x01dbb55f, 0x01ca6514, 0x00e6e3c4, 0x020b63c5, 0x0151ee4d, 0x0356794b, 0x001100e5}}}, + {X: Field{[10]uint32{0x00b100f4, 0x00c3bfdf, 0x011dd1b5, 0x014ff90e, 0x00c50ddb, 0x02972fbb, 0x016b8f10, 0x01495bd3, 0x02462f75, 0x00166578}}, Y: Field{[10]uint32{0x001dc64a, 0x005875b6, 0x0018ce08, 0x01ac4f74, 0x03fe78ac, 0x010049ff, 0x02d7ba20, 0x01459711, 0x027c7da0, 0x001df776}}}, + {X: Field{[10]uint32{0x034d54dd, 0x035470c8, 0x019c29db, 0x00dc073c, 0x00364f8c, 0x02464f02, 0x029fa205, 0x011e3384, 0x007197dd, 0x0029c8cd}}, Y: Field{[10]uint32{0x01796e68, 0x00bbbc4c, 0x019ad92f, 0x00446874, 0x009cfdd7, 0x006a5999, 0x00a5fa00, 0x00b32ce1, 0x015eec2b, 0x000b139a}}}, + {X: Field{[10]uint32{0x032251a5, 0x015b3404, 0x01c234ed, 0x0358eb50, 0x01a57cfe, 0x037a7f32, 0x0275fcc5, 0x00872f5f, 0x0369d5bc, 0x001919aa}}, Y: Field{[10]uint32{0x01294dc9, 0x0037e909, 0x005d2099, 0x033f12bc, 0x022e0c1e, 0x03da2536, 0x0222f5e5, 0x005b89d9, 0x03896dbb, 0x001db9fb}}}, + {X: Field{[10]uint32{0x01c28e60, 0x02b3683d, 0x014f11e0, 0x02d478cf, 0x017fab8b, 0x03c85851, 0x02fca2ab, 0x0222af79, 0x0390a293, 0x00297b33}}, Y: Field{[10]uint32{0x020e3ac3, 0x0016c998, 0x023f7948, 0x038b2044, 0x03110e74, 0x019a42b7, 0x02886435, 0x0047cdcf, 0x0116468a, 0x002bf5d6}}}, + {X: Field{[10]uint32{0x029c2779, 0x03561c7b, 0x01cdf89e, 0x01813472, 0x006a15d0, 0x00fb6796, 0x02e52a1e, 0x01e367c9, 0x02c74936, 0x0010946e}}, Y: Field{[10]uint32{0x02987aa5, 0x016b62dc, 0x0138d3a1, 0x032437fe, 0x004bb023, 0x01980ef3, 0x0190c60e, 0x01c5b5da, 0x027d92e6, 0x003e877c}}}, + {X: Field{[10]uint32{0x027db30e, 0x00b0a93e, 0x01903f04, 0x03409aa0, 0x030f40c9, 0x006078a0, 0x00f6b973, 0x03308763, 0x02a204c3, 0x001dea79}}, Y: Field{[10]uint32{0x00155aa0, 0x00f79746, 0x03180b6e, 0x0041cacb, 0x03e78d93, 0x02a84333, 0x01b757fa, 0x017336f7, 0x03ef23f2, 0x00287bd3}}}, + {X: Field{[10]uint32{0x03dbea6b, 0x007fdf9b, 0x0239de75, 0x003a667d, 0x02e9c0d2, 0x015dfe8a, 0x02de73c4, 0x01386f5a, 0x0161c40d, 0x000cff9e}}, Y: Field{[10]uint32{0x01f54849, 0x0102e335, 0x03037058, 0x0251c8ca, 0x039a5919, 0x01930c33, 0x016e7c14, 0x00c1b38c, 0x01cd4eeb, 0x00246df5}}}, + {X: Field{[10]uint32{0x01179564, 0x02085c3e, 0x003115b6, 0x00054927, 0x03395357, 0x01216f8b, 0x00a9d8cb, 0x00884692, 0x032e5ee5, 0x0010fd9a}}, Y: Field{[10]uint32{0x01a46a45, 0x03de1d0b, 0x028921db, 0x0265ca39, 0x003555e6, 0x018fd7e2, 0x030cf7fe, 0x03aefc30, 0x015ffec0, 0x0014dc2d}}}, + {X: Field{[10]uint32{0x00b19bfc, 0x0116db0e, 0x0170e1a7, 0x010dcfd6, 0x03ad2f0b, 0x011baa1e, 0x00c7f6b4, 0x0041d35d, 0x021497ef, 0x0012b4d9}}, Y: Field{[10]uint32{0x035cfd39, 0x0133583b, 0x03cfc0cd, 0x0208ca7a, 0x036f9eea, 0x00dbe143, 0x02da00d4, 0x016ff57a, 0x01aa769a, 0x0023d770}}}, + {X: Field{[10]uint32{0x0012754d, 0x035654f0, 0x012f9155, 0x019a6cbc, 0x02593368, 0x016de5ea, 0x0334dc97, 0x013553cd, 0x02ef9520, 0x0025e66a}}, Y: Field{[10]uint32{0x003e6353, 0x016a1d7a, 0x02f3a984, 0x03b3a88d, 0x0044c256, 0x03124b55, 0x025b476b, 0x0385cd0e, 0x00a3d31f, 0x0012dacd}}}, + {X: Field{[10]uint32{0x01d828a1, 0x03275045, 0x00dca0fb, 0x0145be6a, 0x03c1c22f, 0x0038d759, 0x003f2525, 0x018d70b4, 0x01f0c6e4, 0x00321892}}, Y: Field{[10]uint32{0x0295ec73, 0x026519fb, 0x0102586d, 0x024d1a7c, 0x02465238, 0x012f1dac, 0x01260b39, 0x013437d3, 0x030b37dc, 0x0003885d}}}, + {X: Field{[10]uint32{0x0256038d, 0x03370b99, 0x0308e3ac, 0x039824be, 0x0061a08f, 0x033f5018, 0x0282c840, 0x021fbf1c, 0x00c5de56, 0x002d237f}}, Y: Field{[10]uint32{0x00e8927c, 0x02db467f, 0x01566277, 0x0254deb4, 0x01c0b52a, 0x01c51d99, 0x0369c7bc, 0x01c1d1c7, 0x021fec73, 0x00021f8f}}}, + {X: Field{[10]uint32{0x02357fca, 0x000ff353, 0x02da8585, 0x0134d9cc, 0x030146fa, 0x034e0da8, 0x025c828f, 0x0154d718, 0x036c62d6, 0x001df73a}}, Y: Field{[10]uint32{0x00228bd4, 0x00747a86, 0x0367e909, 0x02321fee, 0x024304d0, 0x034dc3b4, 0x01b85213, 0x025c4d49, 0x02005a13, 0x003642c9}}}, + {X: Field{[10]uint32{0x0175e49a, 0x0191d40c, 0x01c17473, 0x00f8ccbd, 0x0069cfb4, 0x0331c2b2, 0x031cd633, 0x00061137, 0x00bf4cda, 0x0016d623}}, Y: Field{[10]uint32{0x02d55cda, 0x022432be, 0x017c0d47, 0x01e11d1a, 0x01a52e19, 0x03e57f39, 0x02b823b2, 0x02792a13, 0x031df9e6, 0x0005093b}}}, + {X: Field{[10]uint32{0x0320b20c, 0x001da164, 0x003b7da1, 0x02944711, 0x032c50ce, 0x03277764, 0x00702518, 0x01082023, 0x03ba8393, 0x003021ee}}, Y: Field{[10]uint32{0x0209d996, 0x00881ee4, 0x02b5f6ec, 0x00f1faf0, 0x00f637c2, 0x032f92cc, 0x030e3455, 0x0157cec0, 0x02697175, 0x001dfc9a}}}, + {X: Field{[10]uint32{0x0031ed94, 0x011d304c, 0x02a3835e, 0x0183c45f, 0x00247d7d, 0x030b1563, 0x00b3e7cf, 0x0020bc82, 0x017b68f8, 0x00234581}}, Y: Field{[10]uint32{0x02ba3eca, 0x01442475, 0x0314fed5, 0x029fbb1a, 0x016ffb8c, 0x02710e78, 0x00f6e0d1, 0x0344f440, 0x01b662ff, 0x000f4c17}}}, + {X: Field{[10]uint32{0x01c184b7, 0x03f7307b, 0x019d9242, 0x02597878, 0x03d17daa, 0x03dcdc7f, 0x03b8cd2a, 0x00af21b6, 0x00a603d3, 0x001d7fb8}}, Y: Field{[10]uint32{0x03efa2f8, 0x03f71924, 0x0040910b, 0x027a6810, 0x01061ee8, 0x020245e5, 0x03c992ff, 0x0025d7f9, 0x00ffabc3, 0x0030ac79}}}, + {X: Field{[10]uint32{0x03368abb, 0x0170789b, 0x007a110d, 0x01d51839, 0x02dda7fb, 0x02a1dc42, 0x00925990, 0x0024f5f4, 0x0159b147, 0x0019768e}}, Y: Field{[10]uint32{0x01862844, 0x01171708, 0x03ce95e3, 0x00a32eb8, 0x00a6f530, 0x0268c08c, 0x032b463d, 0x0307870f, 0x01f52f92, 0x000d6678}}}, + {X: Field{[10]uint32{0x027933d3, 0x0102dbe5, 0x03f4df81, 0x016fd101, 0x005dda1a, 0x01d4e61c, 0x02b787ca, 0x0084975d, 0x00109463, 0x0019587f}}, Y: Field{[10]uint32{0x020e6337, 0x02a6d564, 0x01ad629f, 0x00ddb4e8, 0x02cd083f, 0x02dba200, 0x02e8aeca, 0x00a0a0fa, 0x03cea88e, 0x001301b1}}}, + {X: Field{[10]uint32{0x00c4410e, 0x0179e920, 0x016a35ca, 0x00c19993, 0x03c8a3fc, 0x02748cd0, 0x03041a6a, 0x00dc0548, 0x03807049, 0x0032694f}}, Y: Field{[10]uint32{0x036e4bf9, 0x01128882, 0x02d42183, 0x02b7c8d9, 0x02369d4d, 0x038ec9cd, 0x02f0dd06, 0x003517af, 0x00a9b2e3, 0x0026bd1c}}}, + {X: Field{[10]uint32{0x03b89158, 0x00d165cc, 0x03bf03c7, 0x00517d5d, 0x00c203f8, 0x02e68550, 0x009f45a1, 0x015b76c0, 0x01f3443e, 0x00170549}}, Y: Field{[10]uint32{0x034f4f18, 0x00d24efa, 0x03c02f5b, 0x03eb2e67, 0x0358574a, 0x01895c1e, 0x00f4c803, 0x03646b5d, 0x02f7cb3e, 0x00259e24}}}, + {X: Field{[10]uint32{0x001648ed, 0x024e72d5, 0x01454d69, 0x02a5d7d8, 0x0269bb6e, 0x01cbfb83, 0x00add6d4, 0x005c75c5, 0x00dad87c, 0x000d5973}}, Y: Field{[10]uint32{0x0062aef8, 0x01a8b64d, 0x014edd48, 0x029daa35, 0x034f02d3, 0x00022c65, 0x03d09bbd, 0x018d6176, 0x03bfec2b, 0x0027df61}}}, + {X: Field{[10]uint32{0x010e3614, 0x03799847, 0x01edabd8, 0x03744e2d, 0x004527d3, 0x00a85297, 0x00f29df4, 0x0386a2bf, 0x0334c0f5, 0x001000fb}}, Y: Field{[10]uint32{0x003048c4, 0x0131a093, 0x00e2cd3c, 0x003cd85d, 0x033d3ead, 0x0160e70b, 0x03d0a763, 0x0133bf30, 0x01524489, 0x0019c80c}}}, + {X: Field{[10]uint32{0x012ea57f, 0x01574764, 0x013931cf, 0x0088024a, 0x02138864, 0x02d25689, 0x03b7de39, 0x0141e4fa, 0x035b3796, 0x003d7137}}, Y: Field{[10]uint32{0x01eb3482, 0x0011f80c, 0x02968f30, 0x0295f4c6, 0x03aca34d, 0x028d8434, 0x03672c74, 0x02331168, 0x003e12a9, 0x002c2e4f}}}, + {X: Field{[10]uint32{0x029e213a, 0x0259e4d5, 0x010b397a, 0x0239a73b, 0x01cbe869, 0x019600a2, 0x023533e5, 0x021b36e9, 0x0280e211, 0x0002f27d}}, Y: Field{[10]uint32{0x032e06a3, 0x004fea6c, 0x01d72007, 0x03d6e478, 0x017bf54e, 0x01f48137, 0x03b94ff8, 0x01463543, 0x03788105, 0x001ab7fe}}}, + {X: Field{[10]uint32{0x01a16516, 0x02674ab2, 0x006b055f, 0x011d39c1, 0x01549e83, 0x028f8988, 0x03e15d37, 0x02204514, 0x0397f1fe, 0x001373a1}}, Y: Field{[10]uint32{0x03e668ea, 0x0381d52a, 0x01d4337c, 0x02a1d26a, 0x02fc8a8a, 0x035c35ec, 0x00fd9f37, 0x02096a57, 0x0377cca7, 0x003a979a}}}, + {X: Field{[10]uint32{0x0359b16b, 0x01a74fa5, 0x01eee818, 0x02149944, 0x02af2a4f, 0x000024e0, 0x032a0c04, 0x0255c2f5, 0x02ba1ef2, 0x003d26d6}}, Y: Field{[10]uint32{0x017c7f7d, 0x02391675, 0x01202865, 0x010ed060, 0x021d2fb3, 0x0182af19, 0x02125d0f, 0x03a349a5, 0x0020b996, 0x000b925b}}}, + {X: Field{[10]uint32{0x012125ec, 0x006fb902, 0x03fa054a, 0x001df5f5, 0x00a2d02f, 0x00afca52, 0x00ff7657, 0x038749ed, 0x014a7573, 0x0009a45f}}, Y: Field{[10]uint32{0x03cd8f97, 0x0173a0c1, 0x006780ad, 0x00c02986, 0x017eb125, 0x03e32232, 0x02fd2d5c, 0x019a80a9, 0x037eae9b, 0x002e391f}}}, + {X: Field{[10]uint32{0x0329d290, 0x03eab53e, 0x03cb1cd7, 0x01bb3e2e, 0x007ead77, 0x0084f9b6, 0x00b71daf, 0x00bf9263, 0x00d6285a, 0x0006d252}}, Y: Field{[10]uint32{0x00d3bfd8, 0x00306d09, 0x0227bdd3, 0x0266cbd7, 0x00d56984, 0x00b4a186, 0x0336c7a9, 0x0364966d, 0x001fef87, 0x0006ad02}}}, + {X: Field{[10]uint32{0x01ae64ca, 0x022f55e6, 0x036c7725, 0x03d29a58, 0x00f8b20f, 0x02a6594f, 0x019676fe, 0x02ebde77, 0x02ec8179, 0x000535c4}}, Y: Field{[10]uint32{0x000c6ef0, 0x01b8138e, 0x03ad6d36, 0x00e14eeb, 0x0006f385, 0x01cb38fc, 0x030df37d, 0x0143b0ca, 0x00a64246, 0x000b876e}}}, + {X: Field{[10]uint32{0x01952453, 0x01a53dc7, 0x038134d9, 0x02222d6f, 0x03a11119, 0x01111644, 0x01967e15, 0x01da1278, 0x02204174, 0x0001d9d4}}, Y: Field{[10]uint32{0x0182fd31, 0x01da10fb, 0x01c27377, 0x00f58253, 0x00de1a5c, 0x029c8b79, 0x0155a906, 0x02d80ce8, 0x00636457, 0x000fc7ec}}}, + {X: Field{[10]uint32{0x0149fc63, 0x012e8d37, 0x00937fc8, 0x01be5ac9, 0x020a53b1, 0x002ec789, 0x0016d028, 0x022d9d00, 0x0134a882, 0x0016b239}}, Y: Field{[10]uint32{0x00a1fc73, 0x03881bae, 0x0187a8e5, 0x021c457a, 0x0018568f, 0x0242739c, 0x005a4296, 0x03edec0b, 0x020f68f5, 0x00064f40}}}, + {X: Field{[10]uint32{0x034a14b8, 0x00880b6a, 0x02c43337, 0x0375ab3d, 0x02d618d0, 0x0064d127, 0x01135b60, 0x0158a94c, 0x02b28d16, 0x0021f377}}, Y: Field{[10]uint32{0x03846e2e, 0x01a32ea7, 0x0084be5b, 0x009404d7, 0x01cd7094, 0x038ba44a, 0x011cecbd, 0x022b6650, 0x00e67c95, 0x00170779}}}, + {X: Field{[10]uint32{0x024c84cb, 0x01de2810, 0x02d52f8c, 0x01fbac35, 0x004d4f8b, 0x03ea198c, 0x021dfe7a, 0x03427d23, 0x0225a39e, 0x00310c72}}, Y: Field{[10]uint32{0x0100d825, 0x02b8299c, 0x034292ae, 0x035b8d7f, 0x00489ede, 0x00c4a4cc, 0x00f2d11d, 0x02f9b4d7, 0x03d65b2d, 0x00114181}}}, + {X: Field{[10]uint32{0x00a3dd5a, 0x03cda0e2, 0x02c1d9bf, 0x000970bc, 0x03aaa930, 0x003b7128, 0x03af3d44, 0x0068452f, 0x01e8985c, 0x00231408}}, Y: Field{[10]uint32{0x012fb108, 0x02d82aa8, 0x01db13c2, 0x02bb50c5, 0x02b6d31f, 0x0025bf52, 0x01d74ba6, 0x0360701c, 0x00aa8077, 0x00132e58}}}, + {X: Field{[10]uint32{0x02513d4f, 0x0275c5db, 0x01bb770b, 0x012c99e0, 0x0306e7a1, 0x005df6ef, 0x017c07a0, 0x01d21630, 0x00bb38a4, 0x000ce395}}, Y: Field{[10]uint32{0x00420548, 0x02033e31, 0x026fb92f, 0x03554bb9, 0x02c44a6a, 0x019dd8ee, 0x02951def, 0x033e9308, 0x024e84ca, 0x001e1dab}}}, + {X: Field{[10]uint32{0x031f3c5a, 0x01bba34b, 0x0061bcb0, 0x0385fbfd, 0x013c7b0f, 0x03349a2b, 0x03683abc, 0x00e88645, 0x00a9efbb, 0x0021fcef}}, Y: Field{[10]uint32{0x01229b61, 0x028cfb55, 0x007f8361, 0x03c6845f, 0x00e5cc11, 0x03d7eef2, 0x001f258b, 0x03f15122, 0x02a1eccc, 0x0029e874}}}, + {X: Field{[10]uint32{0x013a3e40, 0x001eeed0, 0x01aad524, 0x037119f2, 0x00de27d6, 0x029a9e36, 0x016a0375, 0x01615a39, 0x03df8ed8, 0x0003d008}}, Y: Field{[10]uint32{0x03e178cc, 0x03e7da87, 0x001615cf, 0x0114f89d, 0x03d5e2c5, 0x03567cdc, 0x0230e566, 0x00e845aa, 0x0142fc4e, 0x002c9264}}}, + {X: Field{[10]uint32{0x006f2d3a, 0x00215927, 0x001a8927, 0x00bcdd38, 0x03453b51, 0x0398ecbe, 0x013d282f, 0x02288a27, 0x03c6d55a, 0x0033ed47}}, Y: Field{[10]uint32{0x0070635d, 0x01ffa724, 0x0125eb56, 0x004872c9, 0x03e4ea53, 0x01879874, 0x02c120e7, 0x0047b4a3, 0x02232838, 0x0023528c}}}, + {X: Field{[10]uint32{0x0243c539, 0x01f3a5ab, 0x00486893, 0x02c45c87, 0x01c45f77, 0x0089258d, 0x03219db2, 0x00051c2f, 0x020b9705, 0x00166912}}, Y: Field{[10]uint32{0x03039afa, 0x0364c781, 0x00efd158, 0x01644ddd, 0x02400ff9, 0x017ae29d, 0x021d0cd5, 0x003cfc77, 0x00a66a91, 0x0000c787}}}, + {X: Field{[10]uint32{0x00a8ee7e, 0x015c3a0a, 0x0386f8ab, 0x01cc67f5, 0x02d8e26d, 0x012ecea3, 0x03446281, 0x01e8ddaa, 0x0256ec27, 0x002e673b}}, Y: Field{[10]uint32{0x023494ad, 0x02c44d70, 0x0223062a, 0x00c74773, 0x00b6be5d, 0x01360305, 0x013b16ab, 0x017535c9, 0x0398dda0, 0x0011b83c}}}, + {X: Field{[10]uint32{0x01172bd2, 0x001eb403, 0x03cb0252, 0x00ad4a51, 0x001c6b92, 0x0369d6ce, 0x00398725, 0x006889b4, 0x036ad96b, 0x0028e784}}, Y: Field{[10]uint32{0x02abb532, 0x00286e6d, 0x023a2d91, 0x01de2bc6, 0x007dbfc9, 0x0258e7ea, 0x010fa717, 0x038238f4, 0x0358074d, 0x001e9701}}}, + {X: Field{[10]uint32{0x03001976, 0x02365d15, 0x039c45b4, 0x0154d7d1, 0x032c23c8, 0x02dd44ad, 0x02dd59ae, 0x02dd3989, 0x01253b2e, 0x001ba2d0}}, Y: Field{[10]uint32{0x012bc88e, 0x02667a33, 0x02b47873, 0x020bb086, 0x020715bc, 0x032e16a8, 0x0004068a, 0x0301157a, 0x00e1e4e8, 0x003302e2}}}, + {X: Field{[10]uint32{0x01abb019, 0x0111e294, 0x024189c4, 0x01bc7263, 0x03cd1fb6, 0x03bf44d0, 0x03b6ec98, 0x010627df, 0x02f5681e, 0x002650ad}}, Y: Field{[10]uint32{0x010e7a9a, 0x01459e63, 0x02430569, 0x01afb499, 0x02d2fe98, 0x01f26278, 0x0211e6ff, 0x00b54a42, 0x02bbb0cc, 0x00080343}}}, + {X: Field{[10]uint32{0x0078506d, 0x0383df94, 0x01744642, 0x03dcbabf, 0x02759636, 0x0122bcd4, 0x0166918b, 0x02e52510, 0x01ec3c57, 0x001ff738}}, Y: Field{[10]uint32{0x03baabd2, 0x004e8ab5, 0x0146b2e3, 0x01e5974f, 0x0353cfb9, 0x038b4b39, 0x03786ed1, 0x01db8dce, 0x02efc19a, 0x0035de16}}}, + {X: Field{[10]uint32{0x03989c57, 0x035381a4, 0x01b04a70, 0x01362065, 0x035f5165, 0x01df1e6a, 0x030906bd, 0x020fc3c5, 0x005c958c, 0x001bc4c8}}, Y: Field{[10]uint32{0x03b55ee0, 0x023c4fdc, 0x02c99e84, 0x02655445, 0x01033deb, 0x0254368d, 0x028d4f1c, 0x03920ec9, 0x015bb386, 0x0022b268}}}, + {X: Field{[10]uint32{0x0297654e, 0x03352d8d, 0x007e6e50, 0x013d6d09, 0x03cd405f, 0x0137fefe, 0x00a0665f, 0x01a6f810, 0x035d833c, 0x003e5568}}, Y: Field{[10]uint32{0x03c9ee44, 0x03e93d62, 0x0183e4e2, 0x02c9f686, 0x00f56e80, 0x0103acdf, 0x02f2407f, 0x020e2692, 0x03ce2246, 0x00227d3e}}}, + {X: Field{[10]uint32{0x02248007, 0x03edaa09, 0x00132e65, 0x0346248e, 0x010b58b8, 0x037e5e63, 0x02257431, 0x011a8d0a, 0x012d6196, 0x0036f345}}, Y: Field{[10]uint32{0x02d8ba13, 0x02d34d8c, 0x01dcec02, 0x038f4086, 0x03e57d23, 0x039a0c3d, 0x0025e9e2, 0x023f4f91, 0x017ec194, 0x0019be9c}}}, + {X: Field{[10]uint32{0x026e8ebe, 0x03a854d7, 0x035cc71e, 0x02ca2cd6, 0x0399f713, 0x00b9e54f, 0x03cfb1da, 0x02427eb1, 0x00e8e57b, 0x003c6baf}}, Y: Field{[10]uint32{0x01d9d516, 0x03d842f9, 0x0157e1b7, 0x0365617f, 0x0288b0bf, 0x00b93d65, 0x01c24d09, 0x0396a983, 0x02143e77, 0x0021d57e}}}, + {X: Field{[10]uint32{0x00b55187, 0x01b92281, 0x005f5fef, 0x016a4754, 0x01c002bc, 0x0010c241, 0x01ceab65, 0x0212ffe2, 0x024d941f, 0x00288085}}, Y: Field{[10]uint32{0x02f057ff, 0x00ecfbf0, 0x004c1bee, 0x0256b7a2, 0x01b6d4b0, 0x02e6f393, 0x0172e978, 0x01a2d479, 0x002b2bc2, 0x00038335}}}, + {X: Field{[10]uint32{0x028ad68a, 0x01011f72, 0x02861e78, 0x02942009, 0x02b1344d, 0x021fe2e6, 0x000eccb2, 0x039f7a52, 0x025746fd, 0x0015cb85}}, Y: Field{[10]uint32{0x01eb5d9f, 0x01a585cc, 0x01170475, 0x01ac283f, 0x0239eda8, 0x00176b5d, 0x02461eb4, 0x02aed234, 0x01e7c066, 0x00305d2b}}}, + {X: Field{[10]uint32{0x03eba31d, 0x0333a696, 0x00dac58a, 0x03296799, 0x00b67047, 0x01db927a, 0x00b1052b, 0x035d4f02, 0x0107fee4, 0x003d38b2}}, Y: Field{[10]uint32{0x0011c42c, 0x02fe1c4b, 0x030f8f41, 0x00d09201, 0x032b76d1, 0x02a3fa25, 0x00b8317c, 0x034b6392, 0x022d3a92, 0x002c90ea}}}, + {X: Field{[10]uint32{0x01f06dd5, 0x0258e97f, 0x00463e06, 0x0207c934, 0x02266987, 0x01a2026c, 0x029e436d, 0x015c5bd7, 0x02ec8445, 0x0029bf1a}}, Y: Field{[10]uint32{0x0018ca8d, 0x02402a86, 0x013d5073, 0x013a4614, 0x00a96b7f, 0x01d2367c, 0x02135fdf, 0x03f461ab, 0x0215548e, 0x003705a9}}}, + {X: Field{[10]uint32{0x0205f026, 0x03378b56, 0x009bcc00, 0x033ac133, 0x00c4ffb3, 0x00dfcb2f, 0x00d8eec9, 0x02594a73, 0x00175fde, 0x002f601a}}, Y: Field{[10]uint32{0x00a26216, 0x008a2cd9, 0x03f76bce, 0x01d1454a, 0x02db0482, 0x02daf771, 0x03e6a0d8, 0x010ca383, 0x02e78e01, 0x002c9e46}}}, + {X: Field{[10]uint32{0x000165ef, 0x021b74d7, 0x0251e163, 0x02c8e976, 0x032d8614, 0x032b9ae3, 0x015e810e, 0x00f482e7, 0x02676f8c, 0x003e2229}}, Y: Field{[10]uint32{0x009a0dea, 0x00f6b724, 0x0223942a, 0x014f7890, 0x03579788, 0x031ec7ae, 0x034bfe39, 0x03cfbfdb, 0x020fe429, 0x003ed3b8}}}, + {X: Field{[10]uint32{0x009ae200, 0x0221df10, 0x02fd23ba, 0x039af69d, 0x01c3182e, 0x034583f3, 0x01023a48, 0x02a9c7b2, 0x02055adb, 0x001f2347}}, Y: Field{[10]uint32{0x03907ceb, 0x0385d90b, 0x00524f16, 0x0293cb23, 0x01c489b9, 0x033a0dde, 0x02936f4f, 0x01548f65, 0x020bec59, 0x00228ee0}}}, + {X: Field{[10]uint32{0x02fabf43, 0x00539d89, 0x0159e75c, 0x02dd48a6, 0x026dfd9b, 0x024eebdc, 0x00ccd715, 0x01c48184, 0x02a4ee25, 0x0006221b}}, Y: Field{[10]uint32{0x0091531d, 0x026361b8, 0x01d31ffa, 0x0210e622, 0x02898a31, 0x01f40ade, 0x033ad3f0, 0x01a2c034, 0x0295f570, 0x00099b19}}}, + {X: Field{[10]uint32{0x03e52cba, 0x03f73e9a, 0x009a3184, 0x0265419e, 0x011242a0, 0x02b00dae, 0x039a44ec, 0x02b6f4cc, 0x031e38c8, 0x003fa9c3}}, Y: Field{[10]uint32{0x039e7915, 0x009bb38e, 0x0046883e, 0x00bf5d17, 0x02076c0e, 0x00d99c2d, 0x0058093a, 0x0306e777, 0x01f50ba8, 0x00277fdb}}}, + {X: Field{[10]uint32{0x03d1365a, 0x0312d28d, 0x00c8fb1d, 0x01eff908, 0x0096dcbf, 0x01e5146e, 0x0199142e, 0x00f241db, 0x038945aa, 0x001378c0}}, Y: Field{[10]uint32{0x0287cba4, 0x0193b634, 0x0316d356, 0x02884ec2, 0x03992ac0, 0x0006ccdd, 0x001eb2e2, 0x03799090, 0x029e9093, 0x0033b9d3}}}, + {X: Field{[10]uint32{0x02104fb2, 0x02220c06, 0x03da3739, 0x01adad6f, 0x028c2d8e, 0x03040a60, 0x03b8c401, 0x02f9e718, 0x01d1eafe, 0x0019f427}}, Y: Field{[10]uint32{0x01360a5f, 0x03ea96ef, 0x0098461f, 0x016367cb, 0x00d4f035, 0x0063e26f, 0x019049e8, 0x00365a3a, 0x01089266, 0x00043ad5}}}, + {X: Field{[10]uint32{0x00e6010f, 0x03f75dd0, 0x01b5af5f, 0x03d3fe8c, 0x01325e55, 0x01c0c735, 0x0396d4d8, 0x00d3e34e, 0x00fe1868, 0x000ad75c}}, Y: Field{[10]uint32{0x0095ed02, 0x029351ea, 0x03b1f7bd, 0x024327d4, 0x00384398, 0x02c8206d, 0x031f54af, 0x028dcde2, 0x025324d2, 0x00191b9f}}}, + {X: Field{[10]uint32{0x017be248, 0x03d8b7f8, 0x00752527, 0x008f2893, 0x005d600b, 0x02bb42b4, 0x03f7b446, 0x029db064, 0x02998700, 0x0032d098}}, Y: Field{[10]uint32{0x0019a8b6, 0x03a4e796, 0x006e65ac, 0x01413086, 0x03bcfd02, 0x03339dc8, 0x01f74eb8, 0x01832439, 0x0213f3eb, 0x0024a10f}}}, + {X: Field{[10]uint32{0x018e4e41, 0x00137b50, 0x00d25f9b, 0x014ff638, 0x0322d0b8, 0x039b7a22, 0x01ce4d01, 0x02f15c4d, 0x037e75b3, 0x000fb9aa}}, Y: Field{[10]uint32{0x034bcc87, 0x0154da06, 0x027689ad, 0x013da03b, 0x006ee1ab, 0x00cfd480, 0x01b6afc9, 0x01466e4c, 0x03984e52, 0x001a720f}}}, + {X: Field{[10]uint32{0x0087e7be, 0x010217f2, 0x01724e90, 0x031ca8e1, 0x016918ac, 0x005f5e0a, 0x0232df6f, 0x01450c5c, 0x00b0a95a, 0x00160ddd}}, Y: Field{[10]uint32{0x007c3e7b, 0x01cdaaa0, 0x0042418c, 0x03f8542d, 0x03f8f047, 0x019970d4, 0x00160730, 0x033c5cc3, 0x02660ee8, 0x000ceec7}}}, + {X: Field{[10]uint32{0x0079dc1a, 0x020e381c, 0x03fcb0a8, 0x000269e8, 0x03eb3341, 0x02990fa8, 0x0082b772, 0x009e1de4, 0x01ef3982, 0x002bccb8}}, Y: Field{[10]uint32{0x0295fd4c, 0x027b2dd3, 0x037f8b3a, 0x00c792d2, 0x03169383, 0x0068d9a5, 0x02ee7e8b, 0x0048f9ce, 0x028dc660, 0x001a6178}}}, + {X: Field{[10]uint32{0x0034d0c4, 0x02b705b8, 0x03f9c948, 0x02737aae, 0x0150f724, 0x03eff0fd, 0x020c740e, 0x01d5466d, 0x03dd3266, 0x001bb7df}}, Y: Field{[10]uint32{0x02f46026, 0x01144f43, 0x016d40bb, 0x0052edf6, 0x0164534f, 0x02c249a4, 0x030de819, 0x01f69d7e, 0x03185def, 0x003c2317}}}, + {X: Field{[10]uint32{0x01f16b42, 0x00293c00, 0x01f0072a, 0x0182cff6, 0x0086257a, 0x02060878, 0x0104120a, 0x023e51b1, 0x02455d26, 0x000ee699}}, Y: Field{[10]uint32{0x00fe7c7b, 0x006f774b, 0x00117e2e, 0x0121916c, 0x023dfa48, 0x01864041, 0x03601090, 0x01b02257, 0x0215aedf, 0x003b560e}}}, + {X: Field{[10]uint32{0x007a1039, 0x00eb429d, 0x03ae2d68, 0x010e0ba2, 0x0327b529, 0x02804ac3, 0x03cbdf07, 0x03f6c345, 0x03082b5c, 0x002f40d6}}, Y: Field{[10]uint32{0x03b2ef54, 0x003e68e6, 0x03f61ac9, 0x030e2d8a, 0x00e94a23, 0x01cafa2b, 0x0135ccd5, 0x035fa2a8, 0x03aded4a, 0x00192532}}}, + {X: Field{[10]uint32{0x015338c3, 0x0116d13c, 0x02ff7a8c, 0x02c50408, 0x024dda59, 0x022780e0, 0x03316ef0, 0x00602eb8, 0x0319fe9b, 0x003897ef}}, Y: Field{[10]uint32{0x034c7cf2, 0x0220d8c5, 0x03be6f63, 0x00467d3e, 0x007c2c8f, 0x0214b9a5, 0x02412581, 0x037548d0, 0x03f658a3, 0x00117b11}}}, + {X: Field{[10]uint32{0x00ffc9b8, 0x01cb993b, 0x02e6c7c0, 0x0170e1c7, 0x01f30f59, 0x00059501, 0x02ebea75, 0x01cd5814, 0x01cd8ffd, 0x000b88c7}}, Y: Field{[10]uint32{0x0359317a, 0x03cc591b, 0x0127d29c, 0x032fb946, 0x027610d4, 0x02892b78, 0x018f3d3e, 0x02586a11, 0x0052db15, 0x00031991}}}, + {X: Field{[10]uint32{0x01338fc8, 0x0161983d, 0x020483b4, 0x01d299a9, 0x01fd2a41, 0x00c5b819, 0x01ae1260, 0x0189bc6c, 0x01c93932, 0x001f03ca}}, Y: Field{[10]uint32{0x01cd037f, 0x008cee9d, 0x00162350, 0x013e6326, 0x01b76e2c, 0x021fd5aa, 0x0255d7a5, 0x0049cb00, 0x033ddf6f, 0x0009fbd4}}}, + {X: Field{[10]uint32{0x00d5bb48, 0x02da881f, 0x019ba31b, 0x0385c2ca, 0x027bd857, 0x01e53ecc, 0x003e0144, 0x027fbfed, 0x021cea6f, 0x0039c0b5}}, Y: Field{[10]uint32{0x023f79c9, 0x0303acc6, 0x02f2112e, 0x02bf298e, 0x00ee5e28, 0x03781de5, 0x0228a712, 0x03b8f9fc, 0x0081c924, 0x00311de6}}}, + {X: Field{[10]uint32{0x02c852a8, 0x02b917d9, 0x026d8cc2, 0x02900d69, 0x01c362c5, 0x030591fb, 0x0275c117, 0x0306d6fb, 0x0044eade, 0x003c5e00}}, Y: Field{[10]uint32{0x029e1c18, 0x01dd5c8c, 0x030f89a6, 0x00121727, 0x01e8b7a3, 0x00e00c43, 0x00f63ac1, 0x00e5dfc2, 0x01f0f31b, 0x0017e37a}}}, + {X: Field{[10]uint32{0x0312dd9e, 0x001c07c7, 0x0369f8d0, 0x02dc5982, 0x011582cc, 0x00999969, 0x0152c533, 0x016c6352, 0x037f22ec, 0x001e906c}}, Y: Field{[10]uint32{0x007fc443, 0x01425458, 0x002b9db7, 0x017890a7, 0x01344886, 0x028bc780, 0x00cd74d2, 0x00967020, 0x02132c57, 0x0021102f}}}, + {X: Field{[10]uint32{0x002db6d3, 0x033342ca, 0x02779ca4, 0x005b5482, 0x02a5ce63, 0x01f0d546, 0x00f4e165, 0x035a7866, 0x037d8111, 0x000253ff}}, Y: Field{[10]uint32{0x005c6fc0, 0x00926f14, 0x03b909c3, 0x00c0ea4c, 0x0342541d, 0x02c763b5, 0x00a75d38, 0x0030155e, 0x0270026c, 0x00120b24}}}, + {X: Field{[10]uint32{0x03f4e9d1, 0x03251005, 0x02560a54, 0x0224bdc3, 0x01d37759, 0x02c1692a, 0x00ac76b1, 0x03eaa55b, 0x004e8a3f, 0x0035a9b5}}, Y: Field{[10]uint32{0x00863e1a, 0x01ee95e4, 0x00b6cdc5, 0x021f78e2, 0x03c7b93e, 0x00ea2815, 0x023bbe78, 0x0277a645, 0x0322cd83, 0x001230ee}}}, + {X: Field{[10]uint32{0x00cdf80c, 0x00813e54, 0x03d53699, 0x024e56e4, 0x02c47c09, 0x00550ee4, 0x01dbc477, 0x03b6ac79, 0x01c08e24, 0x00330389}}, Y: Field{[10]uint32{0x011fb70b, 0x00a0af41, 0x038c8220, 0x015490c6, 0x031a977c, 0x02d29b4e, 0x0376ab2c, 0x033ced0e, 0x00b37170, 0x0008314b}}}, + {X: Field{[10]uint32{0x02f8d827, 0x0095ced8, 0x01be3db7, 0x0291041e, 0x01efddb6, 0x03ee0f2d, 0x025d0eac, 0x0346be84, 0x03684cb7, 0x0033e54f}}, Y: Field{[10]uint32{0x00909c0c, 0x027b76cc, 0x009ac0b8, 0x01406bf2, 0x03b302fa, 0x038f9428, 0x0047a7b8, 0x0046c42a, 0x0366a45d, 0x001c33f8}}}, + {X: Field{[10]uint32{0x0015d5dc, 0x02675ada, 0x0319fbff, 0x01d450ea, 0x02f8ce69, 0x03f57f87, 0x016b7112, 0x02ac1bfc, 0x02942b34, 0x0006b089}}, Y: Field{[10]uint32{0x036539fc, 0x038fe96a, 0x026154d9, 0x0348911d, 0x011bd823, 0x027859a0, 0x01b7fddd, 0x0025d53a, 0x017e02bd, 0x00290f51}}}, + {X: Field{[10]uint32{0x024d65c2, 0x03dc8c9e, 0x029e9bb9, 0x03f6904b, 0x00496349, 0x0256501b, 0x03800bcf, 0x02012bc3, 0x03ff1153, 0x00340aee}}, Y: Field{[10]uint32{0x0002a384, 0x03fff06e, 0x032f2876, 0x02087083, 0x020d41e6, 0x03bc22d5, 0x0344f9b9, 0x00cbdc75, 0x00de3c78, 0x000177a0}}}, + {X: Field{[10]uint32{0x031831a7, 0x021496d3, 0x0204025a, 0x009920de, 0x02d8a603, 0x0312ca67, 0x021cc2b2, 0x013b8d0b, 0x03478d46, 0x000f32b4}}, Y: Field{[10]uint32{0x002691c0, 0x00dac9b4, 0x0035af30, 0x00f926d4, 0x0147492f, 0x033acd00, 0x0079fdd6, 0x0156d82b, 0x024ca59b, 0x000d7a8a}}}, + {X: Field{[10]uint32{0x02033688, 0x01ee90cd, 0x0106b80f, 0x02cc1067, 0x01b3a758, 0x03fe12cf, 0x0362e90f, 0x030f3835, 0x01543e69, 0x003ab135}}, Y: Field{[10]uint32{0x01deacbe, 0x01a84bf4, 0x01dbf17f, 0x01b7250d, 0x02ee00fb, 0x036a8611, 0x00449aad, 0x01d2effa, 0x02dac543, 0x002a993e}}}, + {X: Field{[10]uint32{0x03fca753, 0x02383318, 0x037a9a02, 0x01974f6e, 0x015df624, 0x00cef8a0, 0x026d0c61, 0x00dc4ccc, 0x01b173d9, 0x000f4a1e}}, Y: Field{[10]uint32{0x00d6e0f0, 0x029ca59a, 0x00c9d8f0, 0x0230a9aa, 0x01fd38a0, 0x01336e34, 0x023eecb3, 0x02d7a2a7, 0x024d9b95, 0x0015db39}}}, + {X: Field{[10]uint32{0x0176ca14, 0x0138c11a, 0x03ce4cf7, 0x015a67ae, 0x0272358a, 0x02a31d9a, 0x0137087c, 0x01a0b894, 0x038d56a9, 0x000fd62a}}, Y: Field{[10]uint32{0x0321f29d, 0x010169ec, 0x02315447, 0x00280579, 0x01f6bce2, 0x02d2036b, 0x030f45f1, 0x02a2a07c, 0x03d101a2, 0x000f2414}}}, + {X: Field{[10]uint32{0x03fd12d7, 0x01776c44, 0x01b97314, 0x004d6211, 0x022a4ed9, 0x022bab90, 0x029df0fa, 0x03346506, 0x0289b48d, 0x0013d7c4}}, Y: Field{[10]uint32{0x00dc1428, 0x03e095b8, 0x03e86077, 0x01a968f0, 0x0342ac0d, 0x0288cf77, 0x02286ed0, 0x0195dc0f, 0x032cc40c, 0x002d70f8}}}, + {X: Field{[10]uint32{0x03376a76, 0x00e4b724, 0x03bc5ad0, 0x037fe682, 0x03e4a9dc, 0x028aeb35, 0x00e70ddd, 0x031beb9d, 0x01e2a52d, 0x0029928a}}, Y: Field{[10]uint32{0x018a9590, 0x02c05990, 0x0330b4eb, 0x0332c395, 0x01c776f2, 0x00f770d9, 0x02efe873, 0x02c6ddee, 0x00a6faa9, 0x002b78be}}}, + {X: Field{[10]uint32{0x00480e70, 0x0331f6f2, 0x02f04994, 0x017788d2, 0x00b8694b, 0x0071b4f8, 0x0186f94e, 0x03e22b47, 0x0212c4d6, 0x0037b82a}}, Y: Field{[10]uint32{0x02f93389, 0x01947e18, 0x002193d4, 0x0320034d, 0x02413ae1, 0x00cb4c35, 0x01368df3, 0x00df3ea7, 0x00d4cbda, 0x0032f66b}}}, + {X: Field{[10]uint32{0x01796936, 0x003c6235, 0x01f74f9c, 0x023220bf, 0x01772b95, 0x003ad9bf, 0x013e2948, 0x01ab86d9, 0x019dc8af, 0x00219dea}}, Y: Field{[10]uint32{0x0397232e, 0x03abe07f, 0x029ed783, 0x0075370f, 0x00662115, 0x002187d1, 0x03a24f3a, 0x0012392d, 0x00c8348c, 0x000c719a}}}, + {X: Field{[10]uint32{0x02997fee, 0x005e307d, 0x01d80ed6, 0x0306633b, 0x02f44aed, 0x02f5b59d, 0x0229bc79, 0x029f30ac, 0x013acb73, 0x0014445f}}, Y: Field{[10]uint32{0x01110cd6, 0x0395a30e, 0x01a4d174, 0x01c0c870, 0x0278f207, 0x00258d0f, 0x00651d30, 0x0217045c, 0x0004123f, 0x001718e3}}}, + {X: Field{[10]uint32{0x03141b12, 0x0328e0e7, 0x024689c3, 0x03e0d08f, 0x020a83c9, 0x00ba8490, 0x03585d45, 0x0020a3a1, 0x03646967, 0x0012362b}}, Y: Field{[10]uint32{0x0265e9de, 0x035938d4, 0x0040fdc4, 0x00d6501b, 0x011998dd, 0x00157b41, 0x029843b9, 0x01269f1a, 0x0342f07f, 0x001562a3}}}, + {X: Field{[10]uint32{0x02966d2c, 0x03a03d7d, 0x0317aecb, 0x01f7d6ee, 0x01d4060c, 0x0070593a, 0x003d4574, 0x03bb9685, 0x02c1b0fd, 0x0018aea6}}, Y: Field{[10]uint32{0x01d9450e, 0x01b04629, 0x00aedb58, 0x019cec0d, 0x019329fe, 0x01c2cee6, 0x0096494b, 0x0105b17f, 0x013f2290, 0x00196819}}}, + {X: Field{[10]uint32{0x01febf0d, 0x00a5f492, 0x0004a486, 0x00150fcc, 0x00508d8d, 0x00f1e4c4, 0x02f20580, 0x0295ad43, 0x03cb679d, 0x002f937d}}, Y: Field{[10]uint32{0x01f3ba9b, 0x01b10f35, 0x03a0995f, 0x00183e8f, 0x00ca6973, 0x032a21a5, 0x018cb8ba, 0x00f9fea2, 0x0150dd5f, 0x00306d59}}}, + {X: Field{[10]uint32{0x00c9979d, 0x010d6c0a, 0x010c3a0c, 0x00b33855, 0x02424eac, 0x0211ccc5, 0x02cdf340, 0x0381a016, 0x036ccca2, 0x00392700}}, Y: Field{[10]uint32{0x01609a1b, 0x02264b98, 0x03bcab16, 0x0078ed0a, 0x0121186b, 0x009ebf5f, 0x010d273d, 0x03f7956f, 0x025f0457, 0x00115af0}}}, + {X: Field{[10]uint32{0x03fd58e3, 0x01e9be25, 0x01302705, 0x006ab570, 0x02976e70, 0x02ddd30a, 0x03ddfc9c, 0x017642cf, 0x01eda81d, 0x002b9a11}}, Y: Field{[10]uint32{0x02d755bc, 0x01299d5f, 0x03e11e5b, 0x01b39a6c, 0x00450112, 0x014e694d, 0x026194e7, 0x038d8264, 0x0055322a, 0x0014a6f7}}}, + {X: Field{[10]uint32{0x02a25e1b, 0x03ab8c6f, 0x02d183fb, 0x02652867, 0x004c2744, 0x035c4e19, 0x00717e02, 0x02ddcb32, 0x00f8bcc2, 0x0014a876}}, Y: Field{[10]uint32{0x0189011b, 0x01a79810, 0x001dc9f8, 0x01cf1c0d, 0x03dbb806, 0x00edd4a2, 0x00e77f95, 0x01e25212, 0x032ce7f1, 0x00368a82}}}, + {X: Field{[10]uint32{0x02a2250a, 0x03ce0165, 0x02918425, 0x02724349, 0x010cc552, 0x035692af, 0x0119f50d, 0x01e01357, 0x0301d89a, 0x003feeeb}}, Y: Field{[10]uint32{0x029880e2, 0x00dfb666, 0x0214538c, 0x0043dac6, 0x022d5144, 0x00bf84c8, 0x02a47a6c, 0x018af416, 0x03b7eba6, 0x00222d7d}}}, + {X: Field{[10]uint32{0x038c942e, 0x0296783f, 0x011f9fe5, 0x0323fd81, 0x014473fb, 0x013e15c9, 0x03840eed, 0x006adebe, 0x0038aab5, 0x0001bfe9}}, Y: Field{[10]uint32{0x0202d775, 0x02131fb9, 0x01f8e668, 0x0168ab1f, 0x0350a0e9, 0x02584ef2, 0x0060dc66, 0x028100ce, 0x02dd3b88, 0x0016c089}}}, + {X: Field{[10]uint32{0x00a2fc79, 0x03b250c2, 0x00cb5a45, 0x01eb22f2, 0x00c2c1b7, 0x00749a84, 0x00f5ee59, 0x0311f8c6, 0x0258f92a, 0x00272255}}, Y: Field{[10]uint32{0x001045f9, 0x02b3ea70, 0x0338e516, 0x0057fdd3, 0x00ef4b01, 0x0378963b, 0x0255e286, 0x02f563c5, 0x01e2665e, 0x001c201c}}}, + {X: Field{[10]uint32{0x01861ba9, 0x037dbc30, 0x03bb5df1, 0x0338153e, 0x00a59bb3, 0x03afb38f, 0x01bffd18, 0x00d6c4ff, 0x020defba, 0x0014cb9b}}, Y: Field{[10]uint32{0x02bc5b8a, 0x02d1d52b, 0x027fff61, 0x003e942e, 0x0336f04b, 0x0192d164, 0x0332ed24, 0x02ef0fad, 0x01dad326, 0x0006bd19}}}, + {X: Field{[10]uint32{0x01fff425, 0x01238039, 0x02ea138d, 0x02020f69, 0x038a8a9f, 0x01432d28, 0x01add8eb, 0x01c24833, 0x0321e3f2, 0x0026410c}}, Y: Field{[10]uint32{0x0377ea6f, 0x0347c123, 0x03786ef9, 0x00937ca6, 0x02404ecb, 0x0394b0cd, 0x025b1be8, 0x00943f67, 0x0197325c, 0x00046fa1}}}, + {X: Field{[10]uint32{0x004084f9, 0x02bd1b9f, 0x0217287d, 0x01730cc7, 0x017d7908, 0x008308af, 0x00a6e941, 0x00d2a668, 0x00803a09, 0x00259e64}}, Y: Field{[10]uint32{0x00005e03, 0x011b08e6, 0x02d047dc, 0x02ab5d72, 0x02574903, 0x02ca04bb, 0x0120b5c9, 0x002ff9a9, 0x012d1845, 0x003aa400}}}, + {X: Field{[10]uint32{0x02a0afb9, 0x036b0dce, 0x006ab729, 0x006d3f0e, 0x021f36f7, 0x03bfdd85, 0x02d99819, 0x03f8433d, 0x0157915f, 0x001d3d74}}, Y: Field{[10]uint32{0x01b29eb5, 0x02750846, 0x0009a2c4, 0x02925069, 0x034e4ce4, 0x03323111, 0x02e225cd, 0x02f1d04a, 0x011e4922, 0x00152800}}}, + {X: Field{[10]uint32{0x01927855, 0x0335aa30, 0x0231e3e7, 0x035caa81, 0x0176e5f3, 0x0235e9d4, 0x000ddebe, 0x00e5555c, 0x035381c6, 0x00049a49}}, Y: Field{[10]uint32{0x039ae553, 0x03833070, 0x017b72c5, 0x03f544cd, 0x013eefef, 0x0387442d, 0x00554fa1, 0x000b5513, 0x00768110, 0x002e4b94}}}, + {X: Field{[10]uint32{0x00230d9f, 0x03801ee0, 0x028e11aa, 0x02f37471, 0x00d7cdcf, 0x03c63604, 0x036ae35a, 0x00f5cc16, 0x001b1d14, 0x000213be}}, Y: Field{[10]uint32{0x0175d42a, 0x028bb72d, 0x001bb33c, 0x0116a9b8, 0x02b0dda6, 0x00e28b96, 0x02bcf2c6, 0x033a3087, 0x022ba5b4, 0x0032b8e6}}}, + {X: Field{[10]uint32{0x009037ad, 0x00544b7b, 0x02a62dd7, 0x034a9ccf, 0x01c8d89d, 0x03b58aa1, 0x007af5e0, 0x01ab1d99, 0x01a3326e, 0x000708ab}}, Y: Field{[10]uint32{0x02aab458, 0x00126045, 0x00b64493, 0x03726580, 0x00bc4142, 0x02e79bf5, 0x0246283c, 0x029abe67, 0x00c61562, 0x003d6966}}}, + {X: Field{[10]uint32{0x024aff1b, 0x01c7307e, 0x03f4e736, 0x012142ef, 0x03c00f1f, 0x02781054, 0x00dd35fe, 0x02af56aa, 0x024ff08e, 0x001ae472}}, Y: Field{[10]uint32{0x01b31852, 0x00943f84, 0x039778cb, 0x0069f761, 0x01b3c955, 0x00413d61, 0x0368c8b6, 0x03e6753e, 0x02da85ad, 0x0031b36a}}}, + {X: Field{[10]uint32{0x01f85bc2, 0x01e2573b, 0x0188e23f, 0x02d7a3dc, 0x00b99063, 0x020dcdb9, 0x03f03219, 0x00855d84, 0x01996d2e, 0x0015eed2}}, Y: Field{[10]uint32{0x0347cc3a, 0x036dd96a, 0x0150e94f, 0x0050156d, 0x02d0a1ad, 0x01cea0b6, 0x034b9b20, 0x02a43a49, 0x01c672ee, 0x0024ed1b}}}, + {X: Field{[10]uint32{0x0233ba6e, 0x03d49812, 0x001ccb40, 0x0289e2be, 0x00067c38, 0x018f7e3c, 0x016d9f24, 0x0159b841, 0x0327ebf7, 0x001d5e42}}, Y: Field{[10]uint32{0x009d2045, 0x0267172e, 0x02dac6be, 0x01c66b81, 0x003af8dc, 0x011bab75, 0x025decf3, 0x002976c1, 0x00a3d99b, 0x00328323}}}, + {X: Field{[10]uint32{0x0074ebe9, 0x02f2ed41, 0x00a08f32, 0x03d36e31, 0x028dd7b4, 0x00c01287, 0x032b6fde, 0x01642fdf, 0x01ada90b, 0x00329e9d}}, Y: Field{[10]uint32{0x03fc69e3, 0x037b5a60, 0x03a1efd3, 0x0166b372, 0x00512732, 0x003c7700, 0x00e8a08e, 0x01479efd, 0x019c5c93, 0x002cc9e3}}}, + {X: Field{[10]uint32{0x0390b2d1, 0x013d754b, 0x0365c07a, 0x016bcc61, 0x0147b65a, 0x014aecd9, 0x02a8d6ce, 0x018a50e4, 0x00b93bf4, 0x0029b71a}}, Y: Field{[10]uint32{0x010ad45b, 0x00970cf2, 0x024de8f9, 0x01220648, 0x0237f533, 0x024c7718, 0x033c76a0, 0x01558683, 0x0167fc57, 0x00106e9b}}}, + {X: Field{[10]uint32{0x03b6bba5, 0x036b87da, 0x01b56fe0, 0x0130fd49, 0x002fafed, 0x0030d844, 0x035a0252, 0x03242b1f, 0x01f3f8af, 0x0036884e}}, Y: Field{[10]uint32{0x036349db, 0x001819c6, 0x02c369ad, 0x00743d6e, 0x0271e92c, 0x03968e53, 0x0097522d, 0x03605b70, 0x0388fa9e, 0x00256b72}}}, + {X: Field{[10]uint32{0x013da4de, 0x023893d0, 0x002cdf5a, 0x01ec8fc4, 0x03215935, 0x02aea732, 0x034194bf, 0x00018eb2, 0x00752f0e, 0x0028cac9}}, Y: Field{[10]uint32{0x03e576cc, 0x034c587a, 0x013dbddf, 0x02e0d3c1, 0x03e09f8a, 0x030d40db, 0x0316ffd8, 0x009ff31d, 0x0143bd8b, 0x0015f7d0}}}, + {X: Field{[10]uint32{0x01e9bedc, 0x00e2532b, 0x01392b89, 0x03c8b248, 0x02741718, 0x008cf1ce, 0x0319d8ba, 0x013fcf1c, 0x011d3382, 0x002aba92}}, Y: Field{[10]uint32{0x001a63a7, 0x02d85513, 0x02f4eb24, 0x00cb57e3, 0x01a7ad0d, 0x016bb61b, 0x026a3a1a, 0x0371964e, 0x029184d8, 0x000323ec}}}, + {X: Field{[10]uint32{0x007f2c75, 0x0222b362, 0x015e7ed3, 0x0170ac0c, 0x01ccf75d, 0x01a3ed8e, 0x00f3eb3d, 0x0026f489, 0x00e27a84, 0x000a4d78}}, Y: Field{[10]uint32{0x0168aad4, 0x026a4e31, 0x001640c8, 0x00343f7f, 0x03977e90, 0x00603530, 0x03d00680, 0x02b90260, 0x002462c9, 0x000313fc}}}, + {X: Field{[10]uint32{0x030fe577, 0x0091339d, 0x0218163d, 0x02581419, 0x03fdebbd, 0x02fabfb2, 0x034259aa, 0x01c94d60, 0x00769e2e, 0x001ff2a0}}, Y: Field{[10]uint32{0x01bc3542, 0x0384f355, 0x02ed99a5, 0x02e9f6eb, 0x0369cfec, 0x03f453fe, 0x003b8f6f, 0x03b48b2b, 0x03abf04d, 0x0028f770}}}, + {X: Field{[10]uint32{0x028b483e, 0x02d06457, 0x002a96a7, 0x031c4c59, 0x00bc129e, 0x01ed144d, 0x01e665f5, 0x02929fe9, 0x01c601ca, 0x00316d7c}}, Y: Field{[10]uint32{0x00b538e4, 0x01efeee7, 0x012576d3, 0x019b6332, 0x0173dabb, 0x0098047a, 0x0358fd0c, 0x0263368f, 0x0016da50, 0x0009b2ce}}}, + {X: Field{[10]uint32{0x01a50d88, 0x03eda81e, 0x034f456b, 0x01d33ff6, 0x03d7d5b1, 0x01e400d6, 0x01ecf4bf, 0x019dc993, 0x0274df43, 0x00104368}}, Y: Field{[10]uint32{0x039a6abf, 0x034aefbb, 0x000f88e1, 0x00e56efc, 0x02254a19, 0x01065e7e, 0x002ef1e8, 0x02cd25b7, 0x0168188e, 0x001c7206}}}, + {X: Field{[10]uint32{0x0367769a, 0x01634173, 0x03387540, 0x02b142af, 0x036f7976, 0x00e89a06, 0x036c5a24, 0x032002ae, 0x00ca334d, 0x000f664a}}, Y: Field{[10]uint32{0x01d2beb7, 0x03d3a7e5, 0x0115b2e4, 0x02af137c, 0x0062bf01, 0x00282879, 0x0183cdd8, 0x009ed4f8, 0x01dc7661, 0x0033f300}}}, + {X: Field{[10]uint32{0x00040cec, 0x03d0db32, 0x009192e4, 0x0387ce7f, 0x02d858ea, 0x000028c8, 0x037ce312, 0x0392991d, 0x017bc523, 0x00196a3d}}, Y: Field{[10]uint32{0x01192432, 0x01ff7018, 0x01b323f0, 0x03f30815, 0x03c9df69, 0x008affd8, 0x03f7b0ea, 0x00dd16c7, 0x00b99e95, 0x002081a6}}}, + {X: Field{[10]uint32{0x0192fb79, 0x00f99a97, 0x021531ac, 0x00e4929c, 0x0055f4e5, 0x0189c969, 0x013ef5ca, 0x001b0bff, 0x03ccbaa6, 0x00213954}}, Y: Field{[10]uint32{0x00c5f8d2, 0x03f43ce7, 0x01d674dc, 0x01d4640b, 0x014c0b5f, 0x03004887, 0x01f77311, 0x025197f6, 0x03324aaa, 0x000d35ab}}}, + {X: Field{[10]uint32{0x00773783, 0x03059a80, 0x036ac5f8, 0x02d3de68, 0x00dda3d4, 0x03451b6a, 0x011578d5, 0x00489bce, 0x01582885, 0x000ed29d}}, Y: Field{[10]uint32{0x01a59e53, 0x0021306c, 0x007877d0, 0x02f1335f, 0x021a4249, 0x013534d6, 0x00b3cc14, 0x00f30bad, 0x02fc4de8, 0x0038df25}}}, + {X: Field{[10]uint32{0x00cee6b0, 0x01b67bd4, 0x01db8922, 0x01e1920b, 0x02743395, 0x01ff344b, 0x00898193, 0x013a37a9, 0x012c0616, 0x001b6ef4}}, Y: Field{[10]uint32{0x01e02b90, 0x005845ab, 0x02a70333, 0x03182000, 0x020eed3b, 0x0069a2b3, 0x0247c17e, 0x0345514b, 0x0349b3f5, 0x00227923}}}, + {X: Field{[10]uint32{0x03c441f6, 0x03edcaa5, 0x03e02f0b, 0x0275b307, 0x02f1118e, 0x03e12bdc, 0x020b7431, 0x019205d2, 0x00db3b92, 0x002d9060}}, Y: Field{[10]uint32{0x03b25fd2, 0x03c30b13, 0x004d99e1, 0x036fab1c, 0x0033cc19, 0x03256817, 0x03a4f0f8, 0x00205899, 0x019783d0, 0x002ce53e}}}, + {X: Field{[10]uint32{0x016b5c56, 0x003c0e88, 0x02115b26, 0x02fb91ac, 0x0137e96f, 0x02ed9fca, 0x037fc08e, 0x01df1b65, 0x038cf473, 0x00085cfc}}, Y: Field{[10]uint32{0x012e2abf, 0x008becc8, 0x0136f27e, 0x006939e7, 0x023bd1c6, 0x01afb3d5, 0x008c6df0, 0x029a13f6, 0x027803c4, 0x002f680a}}}, + {X: Field{[10]uint32{0x005c5214, 0x03899b7f, 0x0356a222, 0x029aa289, 0x02ea2b89, 0x033cd781, 0x00df0b48, 0x00bc3619, 0x00d3f373, 0x0027767b}}, Y: Field{[10]uint32{0x03e921fe, 0x035c4b85, 0x0106fa70, 0x0069437b, 0x01dcf00b, 0x01f6e52b, 0x019256a5, 0x0209083b, 0x03202ba6, 0x00390ba9}}}, + {X: Field{[10]uint32{0x03af71a9, 0x004873f9, 0x0136b02a, 0x00c98134, 0x029d3982, 0x03dca424, 0x0149526a, 0x02d8bb75, 0x03ed5ceb, 0x001c17e7}}, Y: Field{[10]uint32{0x010d30a8, 0x00b30a5d, 0x01d2c44d, 0x00028580, 0x002b32c1, 0x01e9e18f, 0x0269a4a5, 0x01cbac4b, 0x017daa44, 0x002ecb2c}}}, + {X: Field{[10]uint32{0x00ef4410, 0x02130acb, 0x031a217b, 0x028a3637, 0x033fbcda, 0x03f04978, 0x037fcd8c, 0x01a6f5fe, 0x00d18071, 0x003c6a42}}, Y: Field{[10]uint32{0x00911512, 0x02a91a2e, 0x02cc14e7, 0x03921e04, 0x02d792bb, 0x0214799e, 0x01cfa759, 0x01b15be0, 0x0008804c, 0x0003a1b3}}}, + {X: Field{[10]uint32{0x01355f57, 0x03370938, 0x00d5fd40, 0x00d1491f, 0x005625e4, 0x02148983, 0x012a4756, 0x00f2071d, 0x01793569, 0x0036c317}}, Y: Field{[10]uint32{0x0283daea, 0x030ba371, 0x02629fe8, 0x0354d533, 0x01d0de9b, 0x014e7af9, 0x0321f1e2, 0x034a54dd, 0x02a9fb00, 0x00048317}}}, + {X: Field{[10]uint32{0x02423ec6, 0x03b652f2, 0x00af59a2, 0x01c1ed4f, 0x02e979d4, 0x010476a1, 0x0158f683, 0x01fa486c, 0x01355600, 0x00179356}}, Y: Field{[10]uint32{0x0272d935, 0x01ddcf98, 0x026dcb94, 0x02824a1d, 0x01c309b5, 0x0339abbf, 0x0062fb37, 0x027b4c9e, 0x03001a0e, 0x001c5622}}}, + {X: Field{[10]uint32{0x03ec7f28, 0x00abd013, 0x02bcd487, 0x0019fb3e, 0x00a264d1, 0x00904059, 0x017fd112, 0x0397e23a, 0x02083c46, 0x00069e7b}}, Y: Field{[10]uint32{0x02349111, 0x03de8c8c, 0x02aacc4d, 0x03536501, 0x0254f94b, 0x0229723f, 0x016289f1, 0x01d54c0d, 0x03fc49bf, 0x003e4a36}}}, + {X: Field{[10]uint32{0x00ac5468, 0x028ebcdb, 0x0346e86c, 0x00492af7, 0x011c3a18, 0x00e8290d, 0x000a2d7f, 0x00311b2d, 0x008be3be, 0x0039a4fe}}, Y: Field{[10]uint32{0x01649cc4, 0x002529b7, 0x00efb78f, 0x0135994e, 0x03fb4f35, 0x022bb16b, 0x032db89d, 0x00a8aebb, 0x03bd24ab, 0x00157c2d}}}, + {X: Field{[10]uint32{0x029ca25e, 0x0315468c, 0x03e581bc, 0x015d7435, 0x0043bb61, 0x017a5b8a, 0x03b12d4f, 0x00f1dbdc, 0x00b1f3c7, 0x001b457a}}, Y: Field{[10]uint32{0x017f069d, 0x030d620b, 0x0365db74, 0x02f9b8ed, 0x01173f8c, 0x0067e296, 0x020d05e4, 0x01909cca, 0x02e18438, 0x003c87cf}}}, + {X: Field{[10]uint32{0x03ddb682, 0x02aab78e, 0x02dc48a5, 0x0393fd4d, 0x0220dd98, 0x01964f45, 0x0303f2cf, 0x012bd254, 0x0127b261, 0x00122e3c}}, Y: Field{[10]uint32{0x03546e3f, 0x0395fb0b, 0x02e99c7c, 0x0075a00e, 0x02a50d19, 0x0175e1b5, 0x027e23b5, 0x01f18944, 0x01baec13, 0x0023b46e}}}, + {X: Field{[10]uint32{0x02eb3028, 0x029f03d6, 0x023d4170, 0x02923fdf, 0x008c29fc, 0x028cb828, 0x0319f291, 0x01144251, 0x0231ee1e, 0x000bb0c9}}, Y: Field{[10]uint32{0x017aa945, 0x015e171a, 0x02c91610, 0x03e04faa, 0x02491572, 0x0341f426, 0x010ee359, 0x014db963, 0x019fe21b, 0x003ae187}}}, + {X: Field{[10]uint32{0x03afce3a, 0x02e3282b, 0x017b6776, 0x019ba861, 0x007ab72f, 0x01573251, 0x012c13fb, 0x0353517b, 0x02cb3b35, 0x003de583}}, Y: Field{[10]uint32{0x0010f08a, 0x0366b9e1, 0x00510cd6, 0x01fe3e1f, 0x03d8f7cf, 0x0280bba9, 0x0140334d, 0x01ad029c, 0x00f8d40f, 0x00240917}}}, + {X: Field{[10]uint32{0x02613ef2, 0x011c496e, 0x035af7a2, 0x02e31f72, 0x01139b29, 0x0163cea8, 0x0385780d, 0x03df9bbc, 0x003e4b22, 0x002a5333}}, Y: Field{[10]uint32{0x02845409, 0x03511768, 0x00c45e94, 0x032e33e9, 0x02782471, 0x02f1a99b, 0x01ba357c, 0x03e836a2, 0x00fadd6a, 0x003bdc14}}}, + {X: Field{[10]uint32{0x01485c38, 0x018bd53d, 0x0239956d, 0x03b45c21, 0x028c42b3, 0x0315bc09, 0x03d6f576, 0x03d0c034, 0x03f86d80, 0x0039229f}}, Y: Field{[10]uint32{0x029a6255, 0x03671697, 0x00231a7b, 0x00091ee6, 0x03e429b7, 0x01ffed0a, 0x01e3c65c, 0x01ec2c8a, 0x0229b499, 0x002c5a54}}}, + {X: Field{[10]uint32{0x0322d2ae, 0x027a6edf, 0x00d9eac7, 0x02efd922, 0x02cccb09, 0x00a98cf5, 0x025b422b, 0x0320eb36, 0x008c7d46, 0x0037e652}}, Y: Field{[10]uint32{0x0345fd4b, 0x01dd58bc, 0x038c3e04, 0x01176468, 0x03aaf83a, 0x02f4f1ca, 0x001a8785, 0x03d17114, 0x0280a958, 0x00225240}}}, + {X: Field{[10]uint32{0x0322fd84, 0x03bd06bb, 0x03770553, 0x00f8a6c9, 0x032bb4e4, 0x02e8d23b, 0x024368eb, 0x03e7d1bd, 0x02c04db9, 0x00285431}}, Y: Field{[10]uint32{0x01c5c201, 0x0193ca46, 0x01ccae1f, 0x01fad121, 0x00e7b539, 0x0038fb47, 0x0122ab02, 0x01683b0e, 0x0274e152, 0x001877ea}}}, + {X: Field{[10]uint32{0x03aa0edd, 0x02a9507c, 0x024e1204, 0x03ff615a, 0x00937392, 0x0326128a, 0x03aa167b, 0x031be475, 0x01fa452e, 0x0026df7b}}, Y: Field{[10]uint32{0x03d2c74a, 0x012a113f, 0x03e7910a, 0x002732b6, 0x03b4262c, 0x0326cc6a, 0x020ef6e7, 0x01a37af2, 0x01122f51, 0x0028dfd2}}}, + {X: Field{[10]uint32{0x00e51904, 0x03b4d60a, 0x01a23d38, 0x00f3e482, 0x02ad1aa8, 0x01e69641, 0x00f75c55, 0x03a9c6c8, 0x02516d0c, 0x0031f5de}}, Y: Field{[10]uint32{0x00a44bd6, 0x0393635d, 0x00e7f56d, 0x02232d7b, 0x0108e5a2, 0x026c36ba, 0x030a7a14, 0x00d980de, 0x007d9e1a, 0x000e669f}}}, + {X: Field{[10]uint32{0x02fe73fd, 0x009e52d0, 0x02e8d806, 0x03b2cee1, 0x02fc1d1d, 0x01cf6604, 0x026c2b0f, 0x0396e685, 0x00298e4d, 0x0034c4ea}}, Y: Field{[10]uint32{0x03708fe4, 0x02a20c07, 0x02a16fc9, 0x027182bd, 0x03b8514c, 0x02ef6d36, 0x03062c5d, 0x01b8bcd3, 0x023a7eb2, 0x00194911}}}, + {X: Field{[10]uint32{0x03211e5f, 0x0181ffa5, 0x038b9787, 0x00f1263c, 0x022e6c2a, 0x00f13c63, 0x0069b8e8, 0x031a4c19, 0x023b4d66, 0x0012efcd}}, Y: Field{[10]uint32{0x011c60c3, 0x01ba301f, 0x025629f2, 0x01670378, 0x0382bb0d, 0x00605dd0, 0x03b64061, 0x01cb1631, 0x024b2438, 0x002790b2}}}, + {X: Field{[10]uint32{0x021e9cf2, 0x0114d7e1, 0x0003e3f8, 0x00ddd19d, 0x01d471bd, 0x0199f3c6, 0x027ef1da, 0x033a1b52, 0x00ed23a0, 0x0000ef84}}, Y: Field{[10]uint32{0x0066d885, 0x02c10cd0, 0x00ead0a7, 0x02432e57, 0x00edfd20, 0x026ee7ea, 0x034748a4, 0x005f0194, 0x03780cb3, 0x002ee564}}}, + {X: Field{[10]uint32{0x01ca2076, 0x02736cd7, 0x01d96b16, 0x026032e9, 0x00946da1, 0x034a7bb1, 0x01074ec8, 0x0258f20a, 0x0080d723, 0x003f347e}}, Y: Field{[10]uint32{0x02a87b01, 0x024674ec, 0x013467c0, 0x02b896fb, 0x02d3b105, 0x03e97f21, 0x00ec2755, 0x018b8713, 0x00e3a313, 0x0025226f}}}, + {X: Field{[10]uint32{0x02b317c4, 0x03009c7e, 0x0217cf0e, 0x02a14b34, 0x01f39f42, 0x023a81a0, 0x027114cd, 0x00d98acb, 0x0358993d, 0x0002d7ec}}, Y: Field{[10]uint32{0x03a71b43, 0x02ceeefc, 0x0334a791, 0x0314537d, 0x0380a653, 0x02c12b09, 0x01bfa828, 0x00b2f3c3, 0x02b8ee62, 0x00227623}}}, + {X: Field{[10]uint32{0x03e274e7, 0x00920563, 0x037c9556, 0x01fd8139, 0x0330fc13, 0x00b32acf, 0x000f39bd, 0x0118291d, 0x02d17fca, 0x002a1aee}}, Y: Field{[10]uint32{0x030753fb, 0x02de8a40, 0x01a0bd03, 0x038498fd, 0x031394ed, 0x01258b01, 0x0294742e, 0x026b1e34, 0x0259ba96, 0x00309b70}}}, + {X: Field{[10]uint32{0x0330d29a, 0x02486004, 0x01467887, 0x025309f4, 0x019dd3fc, 0x024d744a, 0x034bc7ba, 0x02f259f8, 0x01f6348c, 0x0003b4c8}}, Y: Field{[10]uint32{0x03f7c3b5, 0x00349468, 0x021351be, 0x00085400, 0x00fc5ac4, 0x03c1ef72, 0x03b44d6c, 0x0177871d, 0x0360832b, 0x002d01e0}}}, + {X: Field{[10]uint32{0x02d17dea, 0x035c6506, 0x0097996e, 0x023dc07f, 0x022c425b, 0x03825312, 0x01e827ed, 0x02e4dbd5, 0x0275e4dd, 0x003205e4}}, Y: Field{[10]uint32{0x002553a7, 0x03fa6776, 0x02622e16, 0x018f14ac, 0x038ce5e9, 0x019921ab, 0x009b0b92, 0x034597ad, 0x005be241, 0x003667c7}}}, + {X: Field{[10]uint32{0x0284985b, 0x03435f77, 0x02512df1, 0x00b87647, 0x010eeaf8, 0x03e37f3f, 0x02743283, 0x02ce0d24, 0x013f23b9, 0x001bc23c}}, Y: Field{[10]uint32{0x00bd602e, 0x00ff8236, 0x03a76a4a, 0x00788b31, 0x010665d6, 0x000dc2b1, 0x0258ed05, 0x010ce9bb, 0x0029f99f, 0x0025adaa}}}, + {X: Field{[10]uint32{0x038f9d5a, 0x031f99e7, 0x015e4b35, 0x01b28461, 0x03e6ab5d, 0x03ab0f97, 0x01f8b609, 0x02753fbe, 0x03e3410f, 0x002510e9}}, Y: Field{[10]uint32{0x03eded57, 0x003e4d8e, 0x01b538fa, 0x03756847, 0x02ac9b2a, 0x001eaf08, 0x03c93e6d, 0x0230fcc6, 0x03b57818, 0x00363141}}}, + {X: Field{[10]uint32{0x033c502b, 0x01c0fd44, 0x013d2e37, 0x0120378a, 0x01d38c88, 0x01c015bb, 0x03afcfa5, 0x00da06b4, 0x00ca3ed5, 0x0010cbaa}}, Y: Field{[10]uint32{0x03edff71, 0x00ce26da, 0x00118faa, 0x0371909c, 0x010965dd, 0x009b1a98, 0x0266a498, 0x00aec023, 0x028b70b5, 0x00278648}}}, + {X: Field{[10]uint32{0x0182403b, 0x0240ff86, 0x032c130f, 0x03ab8adc, 0x005e22ff, 0x00f1ffb6, 0x02584a3d, 0x00bf6316, 0x009a42f8, 0x000745d6}}, Y: Field{[10]uint32{0x00c39ceb, 0x003d549e, 0x00e9454e, 0x017ef978, 0x03511e96, 0x0117c31a, 0x0164ed02, 0x03482099, 0x03b48f18, 0x0027def3}}}, + {X: Field{[10]uint32{0x018e6b2d, 0x00da87f8, 0x0098b554, 0x03fffdf0, 0x021ab8c6, 0x024104b3, 0x02778ea7, 0x0211bd97, 0x01b5cd84, 0x001d0ce6}}, Y: Field{[10]uint32{0x00b784bc, 0x03d26cb6, 0x03145fb1, 0x02739733, 0x01e84ff4, 0x0006dbf4, 0x0166d3fc, 0x006f9399, 0x001a8280, 0x00371b32}}}, + {X: Field{[10]uint32{0x0110b2a7, 0x0268369e, 0x0071fa27, 0x00cb817e, 0x025330d2, 0x02d7e490, 0x023e80e3, 0x0123058b, 0x01583b28, 0x00390de1}}, Y: Field{[10]uint32{0x01624b68, 0x036b3c15, 0x011f080c, 0x006f41db, 0x01d5e242, 0x005e6862, 0x013f99f8, 0x01e3901f, 0x0171aa49, 0x0030e6d0}}}, + {X: Field{[10]uint32{0x0318d63e, 0x0009acd9, 0x02a10664, 0x033bd7d0, 0x038f8a99, 0x00029918, 0x0355ac7d, 0x00e6a3c5, 0x00a31b16, 0x003bbdda}}, Y: Field{[10]uint32{0x0224a991, 0x01211cc7, 0x01ef5ee6, 0x02e22f8a, 0x01878efc, 0x03a5ec19, 0x030043af, 0x039a186b, 0x01f4cbf4, 0x000aa401}}}, + {X: Field{[10]uint32{0x03c91fe9, 0x0032a86f, 0x0129a180, 0x027ecb7a, 0x00fc2afa, 0x01807612, 0x00dce1bd, 0x0184b3d0, 0x02872504, 0x000576d1}}, Y: Field{[10]uint32{0x027eded8, 0x01c43313, 0x03515f17, 0x002e568b, 0x021e7236, 0x0242e0b2, 0x00678a9d, 0x02366941, 0x024e7d50, 0x002a2db9}}}, + {X: Field{[10]uint32{0x014a4191, 0x015eeb43, 0x022a0c77, 0x00fbf1e3, 0x01d2b330, 0x015a87f6, 0x028d2a04, 0x02a12e74, 0x02cf2529, 0x002b517e}}, Y: Field{[10]uint32{0x0254f069, 0x012a234d, 0x0125aa6b, 0x002583e6, 0x01bf8d81, 0x03ddf56b, 0x02f58678, 0x00c0d45b, 0x0171473f, 0x00069e39}}}, + {X: Field{[10]uint32{0x01151824, 0x02526d6e, 0x03d8958c, 0x01b57e92, 0x021c19b6, 0x0224aeb0, 0x0375050a, 0x01ed33ad, 0x03446e02, 0x0010680d}}, Y: Field{[10]uint32{0x01140317, 0x0150df65, 0x00e74bb4, 0x033590d7, 0x0027c53a, 0x00381ea1, 0x021cb2e6, 0x034e3e9c, 0x00ddfa96, 0x003b5f11}}}, + {X: Field{[10]uint32{0x03217ae0, 0x0047c749, 0x00740560, 0x035836b0, 0x015a70d5, 0x003c410f, 0x03645890, 0x031ffcb3, 0x006958f4, 0x0008082e}}, Y: Field{[10]uint32{0x01c4e9e0, 0x02e53df8, 0x02aa0490, 0x0184a754, 0x02b37f59, 0x0093ac71, 0x01946171, 0x03d0c686, 0x01e22757, 0x00044656}}}, + {X: Field{[10]uint32{0x02bd4ba1, 0x00e0ea7a, 0x00180283, 0x0155c400, 0x0299c5f7, 0x021685a7, 0x033bf27d, 0x01d2a543, 0x0146859f, 0x000be66a}}, Y: Field{[10]uint32{0x0389fc53, 0x0153dd37, 0x039fa128, 0x02753a35, 0x0236ecba, 0x03982164, 0x024ed246, 0x03aa891e, 0x0182d3ca, 0x000f9888}}}, + {X: Field{[10]uint32{0x02369baa, 0x03af7467, 0x03a3c177, 0x01d752a0, 0x010e7c56, 0x03889fca, 0x027688c2, 0x014e4005, 0x018957f6, 0x003773ce}}, Y: Field{[10]uint32{0x034b2431, 0x0077004b, 0x01b873da, 0x0233cac4, 0x01c3c342, 0x02437408, 0x01a3ceea, 0x020ce88e, 0x023f3fa6, 0x0029c031}}}, + {X: Field{[10]uint32{0x011ace4f, 0x03441086, 0x0117b73b, 0x02ab02de, 0x0392df1e, 0x024c6716, 0x022fa9e0, 0x008d8067, 0x03b80425, 0x002618e9}}, Y: Field{[10]uint32{0x003b69e6, 0x018d58b8, 0x02b6a3bf, 0x02b93c6c, 0x023a1fa7, 0x00928c3a, 0x0309f8c7, 0x02ac852f, 0x01a9281d, 0x00126926}}}, + {X: Field{[10]uint32{0x01733886, 0x02a3d637, 0x01d2e467, 0x03bcf1b5, 0x0219cb4d, 0x012e3a4b, 0x033734a6, 0x01645cd3, 0x01f9ea2c, 0x001b1519}}, Y: Field{[10]uint32{0x020e733c, 0x03f110c7, 0x03c8d3da, 0x017e8701, 0x03768f65, 0x00c66acf, 0x02a2616a, 0x03cd7456, 0x02bb179d, 0x00015f88}}}, + {X: Field{[10]uint32{0x00f3fcdd, 0x01e7c514, 0x03a530d9, 0x0153f9c0, 0x0025acb6, 0x02c281a4, 0x00ca387f, 0x00efac34, 0x0113360b, 0x002acdd5}}, Y: Field{[10]uint32{0x0041be4a, 0x01170bdb, 0x027c5464, 0x01d940fb, 0x0157f0f7, 0x030de9bb, 0x03842f43, 0x00b7966d, 0x0149309a, 0x000fa704}}}, + {X: Field{[10]uint32{0x002603d2, 0x00481e93, 0x03111482, 0x02a7a450, 0x00ff0878, 0x0016c8b4, 0x03aee379, 0x03bac2c8, 0x03ea4a72, 0x001ab2f8}}, Y: Field{[10]uint32{0x030d32b9, 0x032c6777, 0x025330ae, 0x00f39256, 0x02ac2ca2, 0x03279a01, 0x023dad76, 0x01365a85, 0x00be9f93, 0x0007b3bf}}}, + {X: Field{[10]uint32{0x02955d89, 0x03e573ce, 0x008c3653, 0x00141fc7, 0x03b4ddd1, 0x01d9b894, 0x00ac9f9c, 0x00310979, 0x014458fd, 0x001e5574}}, Y: Field{[10]uint32{0x0250aaca, 0x00d40925, 0x01245847, 0x00ec0349, 0x0340c672, 0x00e880a1, 0x02892255, 0x021fc252, 0x01f73043, 0x0023ea71}}}, + {X: Field{[10]uint32{0x01ace377, 0x0083360d, 0x0213228c, 0x02ff95e0, 0x02d488eb, 0x01ef4f68, 0x02b25a22, 0x010cfdc0, 0x010c0090, 0x002d65cb}}, Y: Field{[10]uint32{0x02b008fa, 0x035932d0, 0x03212cf3, 0x0211702f, 0x00e3e78f, 0x005d2cbf, 0x01ef70ed, 0x00f7949e, 0x00bf7fbc, 0x0008d51c}}}, + {X: Field{[10]uint32{0x00bcf886, 0x02d22f41, 0x038e4d9c, 0x01f91257, 0x02cc500d, 0x00f31e7c, 0x004f3bc5, 0x03e9a288, 0x001033a5, 0x002899aa}}, Y: Field{[10]uint32{0x015949f8, 0x022def7d, 0x011ecb56, 0x00916c2e, 0x03d52b78, 0x011bcf8d, 0x00390e6a, 0x0056dd99, 0x01a1958d, 0x000c6a2c}}}, + {X: Field{[10]uint32{0x00b9cc15, 0x03908751, 0x03123451, 0x00fdf783, 0x01ae7f4f, 0x03a7df08, 0x03bf47e1, 0x006d8d6e, 0x02ec2119, 0x00071904}}, Y: Field{[10]uint32{0x002c685a, 0x0188a131, 0x0169d82a, 0x006c8bfe, 0x016e7fec, 0x000958c2, 0x0173851d, 0x0313cfd6, 0x022c1111, 0x0020cfe2}}}, + {X: Field{[10]uint32{0x020b7fda, 0x018841cf, 0x01f68a74, 0x01f17989, 0x03817267, 0x03b813fc, 0x019ccbef, 0x016d5e70, 0x02ab1757, 0x003b8d4c}}, Y: Field{[10]uint32{0x027e8718, 0x03d1441b, 0x00f53a9a, 0x02d24acb, 0x0304b704, 0x03123b9a, 0x01ff04dc, 0x0261ee0f, 0x00c8b2fd, 0x003c4b84}}}, + {X: Field{[10]uint32{0x021a3838, 0x011367fb, 0x0115e379, 0x012c0259, 0x0152ef9a, 0x01fd6d2f, 0x012765af, 0x01e4dcbb, 0x03be0486, 0x0017b443}}, Y: Field{[10]uint32{0x00080573, 0x03218ced, 0x028af2a8, 0x01ed7ef1, 0x02a4bffd, 0x00977399, 0x00ac6410, 0x00e493b6, 0x01b49fbe, 0x002313ae}}}, + {X: Field{[10]uint32{0x001378d2, 0x00754d74, 0x0152a15a, 0x0165c208, 0x01b8f6b8, 0x01cd0838, 0x03e7345f, 0x0217b5a7, 0x0221f04c, 0x003f8d22}}, Y: Field{[10]uint32{0x001f2b7b, 0x0273f482, 0x019117fa, 0x00f5f67e, 0x03506947, 0x038e3908, 0x02abd103, 0x02afd173, 0x0046c9f5, 0x00356575}}}, + {X: Field{[10]uint32{0x032436e9, 0x0221d17e, 0x0223dbda, 0x02730245, 0x03b57367, 0x016e8e5c, 0x021e1c0b, 0x012e8021, 0x0369b7b6, 0x0001c500}}, Y: Field{[10]uint32{0x03a12b2d, 0x01da9520, 0x010ad1f3, 0x01881cb1, 0x0240dfa3, 0x003199cb, 0x003bc213, 0x02581ca3, 0x0350f979, 0x003c1dc0}}}, + {X: Field{[10]uint32{0x01dad15d, 0x020855e6, 0x01bd40aa, 0x036ea0e0, 0x020a7465, 0x0048c025, 0x02c6b88b, 0x0078eb9f, 0x00e48e98, 0x001b4531}}, Y: Field{[10]uint32{0x03e0f841, 0x016c1439, 0x0299a50e, 0x023ed6fa, 0x01f9c6de, 0x02d62cb5, 0x02635f6d, 0x0344aa93, 0x02aaa5f2, 0x00097934}}}, + {X: Field{[10]uint32{0x024383da, 0x036c2bc6, 0x0228daea, 0x01c416ed, 0x004dffe0, 0x015413a2, 0x020558e5, 0x01f5f8d8, 0x01c6a683, 0x001e4c6e}}, Y: Field{[10]uint32{0x03e80c0b, 0x033fb7be, 0x002ff9d5, 0x0012108b, 0x0196b7a9, 0x03cef4e3, 0x0112128b, 0x00971b77, 0x02733209, 0x00161b2a}}}, + {X: Field{[10]uint32{0x01cec834, 0x03342f79, 0x03d95b0e, 0x01149eaa, 0x0088dca1, 0x005462e2, 0x00e1f32a, 0x00f50d74, 0x016a35b8, 0x000527a7}}, Y: Field{[10]uint32{0x025606f5, 0x01d316b3, 0x02e1fcbc, 0x03300641, 0x00f87b11, 0x03404bed, 0x01d49b38, 0x033197a4, 0x02a0fd84, 0x0011601e}}}, + {X: Field{[10]uint32{0x01297394, 0x026f49c3, 0x03ff7b80, 0x025b0a12, 0x001bf6e6, 0x01e52404, 0x02f2b59d, 0x0146a088, 0x036eb4b3, 0x00195ac9}}, Y: Field{[10]uint32{0x03763291, 0x01cca05e, 0x025d9b64, 0x034feaa3, 0x03905eb6, 0x0038d624, 0x00ebfa9a, 0x010e8a4a, 0x03095f86, 0x0021d1bc}}}, + {X: Field{[10]uint32{0x031eb02e, 0x012d8283, 0x000a6988, 0x00814e62, 0x033656a7, 0x01e14b87, 0x022370ff, 0x01a627b9, 0x01e36808, 0x00183ce6}}, Y: Field{[10]uint32{0x0044ad59, 0x02cadbf5, 0x0267d4f1, 0x03f937bc, 0x039e5976, 0x0082dde7, 0x0251676d, 0x02f85214, 0x005a8347, 0x00157728}}}, + {X: Field{[10]uint32{0x006eaa13, 0x036f9062, 0x00e0d4ca, 0x016a4063, 0x01034a30, 0x013e6f70, 0x006f4175, 0x02907029, 0x03030a67, 0x00136f68}}, Y: Field{[10]uint32{0x03a48fc4, 0x01616e0f, 0x03970c22, 0x025748f5, 0x01909a3b, 0x010cedd1, 0x01f9fe64, 0x00d16359, 0x0086fec3, 0x003818b3}}}, + {X: Field{[10]uint32{0x010363d1, 0x03ca8037, 0x03111d07, 0x0313d256, 0x03f8c8b1, 0x0360671a, 0x03c10c8f, 0x01336569, 0x01ca04d6, 0x00205ab8}}, Y: Field{[10]uint32{0x02526009, 0x03470619, 0x0366b2df, 0x03c83524, 0x03b12187, 0x03a744ee, 0x02a55208, 0x035bf55b, 0x03ffc331, 0x003027da}}}, + {X: Field{[10]uint32{0x0081b52b, 0x00636be0, 0x020a000f, 0x011305b5, 0x01872029, 0x0178a22b, 0x032b8fae, 0x03829f0e, 0x039c983f, 0x001160e7}}, Y: Field{[10]uint32{0x01dd8649, 0x02169a99, 0x004db2a7, 0x01af3684, 0x01aff40c, 0x0020d6be, 0x01f7beb3, 0x013ad020, 0x02074de7, 0x003e4da3}}}, + {X: Field{[10]uint32{0x00223465, 0x016dba35, 0x00d5063c, 0x01f6c8ef, 0x0244b715, 0x0309153c, 0x004c482e, 0x0080ec78, 0x02483a49, 0x00142b92}}, Y: Field{[10]uint32{0x015f3008, 0x02e8df9f, 0x0065836d, 0x00a170d9, 0x010a6190, 0x0160ef69, 0x032031ec, 0x00b87d97, 0x03d7e7bd, 0x00386e33}}}, + {X: Field{[10]uint32{0x016b72d6, 0x010657d8, 0x039dba69, 0x012fb49b, 0x03c5d8bb, 0x0086b39d, 0x02dde15b, 0x01422467, 0x02316039, 0x0037ddec}}, Y: Field{[10]uint32{0x034344a4, 0x03254022, 0x0303717d, 0x0032ccfc, 0x00c99e27, 0x019cd997, 0x00cff822, 0x02fef2e2, 0x01b89ece, 0x002292dd}}}, + {X: Field{[10]uint32{0x0233277d, 0x02c2e3bc, 0x01345437, 0x02358ecb, 0x016d2d23, 0x0009d01d, 0x00419d67, 0x00bc62dd, 0x0219978e, 0x003b1b03}}, Y: Field{[10]uint32{0x0236e553, 0x018fc2c9, 0x02d8a4a3, 0x01a05cf3, 0x0296bd39, 0x016ff931, 0x0171dc13, 0x03133189, 0x039a02df, 0x003e436a}}}, + {X: Field{[10]uint32{0x017b3329, 0x00640458, 0x03e4ba46, 0x0215214a, 0x005af2a8, 0x029c8886, 0x014eacb1, 0x03f39a9b, 0x016f90e7, 0x000a1d10}}, Y: Field{[10]uint32{0x02eb4466, 0x0374997a, 0x0282d448, 0x01256d36, 0x03b8628e, 0x0244ab5f, 0x024c9af7, 0x0359222e, 0x0275f6ce, 0x0007cc8d}}}, + {X: Field{[10]uint32{0x00ff4247, 0x02b3cfdc, 0x01d2be7d, 0x032e25f2, 0x02529de5, 0x00edb74f, 0x0087f3e8, 0x00ea03e3, 0x03ec586d, 0x0021c8d9}}, Y: Field{[10]uint32{0x02a3ac05, 0x01a144a9, 0x02eeceef, 0x032792d8, 0x017dc571, 0x0109f802, 0x00768b5e, 0x0210ede2, 0x00e0fae0, 0x00396ed8}}}, + {X: Field{[10]uint32{0x024713cc, 0x02368f90, 0x01f4891b, 0x02c84efc, 0x004339a0, 0x00312bcd, 0x0030ce94, 0x03f4c2b9, 0x00040baf, 0x003043c8}}, Y: Field{[10]uint32{0x0231c7ee, 0x00dfef61, 0x02e59c35, 0x01e58d0f, 0x03bf6dbf, 0x00fe0bb7, 0x006d456b, 0x026cdb15, 0x0055f0c3, 0x000defa4}}}, + {X: Field{[10]uint32{0x00d847c5, 0x01b7651c, 0x0059da35, 0x02cee4ef, 0x00733b8b, 0x00cd4fa0, 0x01f0f150, 0x00c015af, 0x02e191c8, 0x0005384b}}, Y: Field{[10]uint32{0x03efcfb2, 0x01438ea6, 0x020dab15, 0x00c80634, 0x01d487f0, 0x019b5c91, 0x0332ba7c, 0x005e044a, 0x038ee00c, 0x003a5c1e}}}, + {X: Field{[10]uint32{0x009fdf36, 0x01e08f12, 0x003057b5, 0x02d2ba01, 0x003687ea, 0x02b414f9, 0x00dd89f6, 0x00de774b, 0x021e2583, 0x0036b0ee}}, Y: Field{[10]uint32{0x03e2c041, 0x011d171b, 0x03fa4761, 0x010bf4de, 0x02d13a69, 0x00b47b13, 0x0020ab1c, 0x00546557, 0x024d8821, 0x001178f6}}}, + {X: Field{[10]uint32{0x03800bf4, 0x01373faf, 0x00b09264, 0x02eff74b, 0x00a2507d, 0x000e968b, 0x039fad0b, 0x021abba1, 0x027a05c0, 0x00366ff1}}, Y: Field{[10]uint32{0x02be6730, 0x00518d00, 0x02ca42fc, 0x023ac8f9, 0x02e5bb4e, 0x024d243d, 0x036c8b1e, 0x03d6f454, 0x014b5a39, 0x00380577}}}, + {X: Field{[10]uint32{0x0196c61e, 0x01861cde, 0x00b34007, 0x00704bdb, 0x028a9a98, 0x03659660, 0x00d7e581, 0x03283c5c, 0x00522f04, 0x00379bcd}}, Y: Field{[10]uint32{0x032a0cc7, 0x00153bbd, 0x00e3b826, 0x0053fc09, 0x012fc6d8, 0x00d3857c, 0x039c251f, 0x013ea50e, 0x033b28d7, 0x0007b05b}}}, + {X: Field{[10]uint32{0x00e30eaf, 0x02fe0a28, 0x00d93f54, 0x00e93ea3, 0x02b35c87, 0x00d94a0f, 0x00a15ef2, 0x005eba21, 0x0355338e, 0x0010caac}}, Y: Field{[10]uint32{0x01447807, 0x00f73fe5, 0x02b9e870, 0x0029f61a, 0x01caa9af, 0x00830429, 0x023e0767, 0x0036fc22, 0x02a10a13, 0x003d5819}}}, + {X: Field{[10]uint32{0x037c4d99, 0x0102359f, 0x02afa35a, 0x0036d6fa, 0x008d9699, 0x02550c75, 0x010f546d, 0x009f0e8d, 0x0107cfa1, 0x000f4b8d}}, Y: Field{[10]uint32{0x035f74f2, 0x015564e8, 0x02ac51b2, 0x0020aef4, 0x017f4a05, 0x003e288d, 0x01655cab, 0x030dcc51, 0x005f4711, 0x00369822}}}, + {X: Field{[10]uint32{0x00ba87ef, 0x01b94609, 0x0183f457, 0x03180646, 0x03f781c7, 0x017cedc6, 0x0029d0a5, 0x0352f8df, 0x031cb96d, 0x001fcfd0}}, Y: Field{[10]uint32{0x00b8bfec, 0x032009d8, 0x021c1695, 0x03093a45, 0x02cfdb08, 0x01c5dee5, 0x00259f6f, 0x034930ae, 0x03457649, 0x003d37d0}}}, + {X: Field{[10]uint32{0x03687143, 0x00129fcb, 0x017163d6, 0x0357c4a3, 0x026f7b67, 0x015639ab, 0x036cdd8b, 0x01c00112, 0x0359f2c8, 0x00109c2f}}, Y: Field{[10]uint32{0x01a99315, 0x023aaf53, 0x0174e0d0, 0x0037b494, 0x006c4a18, 0x01689549, 0x025da0a1, 0x03e465a1, 0x00ef2e8f, 0x00000d63}}}, + {X: Field{[10]uint32{0x03603852, 0x0256e31f, 0x02ebd46f, 0x02ac3af8, 0x01b7931c, 0x0147194e, 0x013af50d, 0x03f27104, 0x022b9930, 0x003198dc}}, Y: Field{[10]uint32{0x025ecfab, 0x01c237a4, 0x0313f719, 0x0231e3e3, 0x020b9476, 0x00f292cc, 0x0132a310, 0x008f63ad, 0x03b32cdf, 0x000d10f9}}}, + {X: Field{[10]uint32{0x006c4e14, 0x023c58b2, 0x0214f21f, 0x03ce56b9, 0x010168e8, 0x019b95fe, 0x03d7b65c, 0x03fc0b3a, 0x0064e396, 0x002c0052}}, Y: Field{[10]uint32{0x002eb876, 0x02f92e86, 0x0272cb7d, 0x027a8381, 0x004a80b6, 0x02d4048c, 0x025007da, 0x02537bb9, 0x01d7e2ec, 0x000fdb26}}}, + {X: Field{[10]uint32{0x0284f41a, 0x00310436, 0x03b2e125, 0x03d34919, 0x03c2d735, 0x032e0b90, 0x03329f0c, 0x02768d74, 0x019398fe, 0x00193273}}, Y: Field{[10]uint32{0x024372e9, 0x02544555, 0x0105ec8d, 0x01e3fd42, 0x01c223ef, 0x033b7c12, 0x0206fc6d, 0x0180cf44, 0x00ab71bf, 0x003492d4}}}, + {X: Field{[10]uint32{0x0129b766, 0x03f676f3, 0x02736ab4, 0x03533cc9, 0x00ecccfa, 0x009f6e58, 0x0359706b, 0x0161893d, 0x001d51e0, 0x003ff821}}, Y: Field{[10]uint32{0x01cf2562, 0x001d245e, 0x00a0177c, 0x0244c2cd, 0x03eb5d83, 0x01360193, 0x02c15952, 0x01b0413f, 0x01c9f695, 0x001af47c}}}, + {X: Field{[10]uint32{0x03ca7432, 0x034fe6dd, 0x020fa47f, 0x01873c3c, 0x034b4518, 0x03103479, 0x0138d630, 0x03165eeb, 0x00c0c053, 0x00034774}}, Y: Field{[10]uint32{0x0055976f, 0x0288ef5b, 0x0103280b, 0x02b77a4a, 0x035c9dc5, 0x02aabd9a, 0x03b5628d, 0x0257c0f9, 0x03fdb594, 0x000d2aa5}}}, + {X: Field{[10]uint32{0x028e5779, 0x03b2916b, 0x01d8df99, 0x00106c61, 0x019153f7, 0x03e65bc7, 0x0249cd3a, 0x035fde8f, 0x02e8c76b, 0x0021e90d}}, Y: Field{[10]uint32{0x011006f3, 0x02f9e5fc, 0x02027b6d, 0x03fdaa26, 0x00369ea4, 0x0287f0db, 0x0105d5b2, 0x00e113fe, 0x03f91255, 0x00234b3c}}}, + {X: Field{[10]uint32{0x0327c379, 0x03a7b2f7, 0x016e4b59, 0x0037354e, 0x00180107, 0x023f58bb, 0x00f707da, 0x031100e1, 0x00a74899, 0x00295140}}, Y: Field{[10]uint32{0x03cb2668, 0x00d15c8c, 0x02cae2f3, 0x00fc4768, 0x005315df, 0x00b249fe, 0x035b5e57, 0x02ec1817, 0x004a6d26, 0x00388591}}}, + {X: Field{[10]uint32{0x03d8187b, 0x02f54695, 0x00a9c88f, 0x01c821a4, 0x0328417b, 0x012358c8, 0x01aea85b, 0x0067d3e9, 0x00f799a3, 0x0024dfa9}}, Y: Field{[10]uint32{0x03dc9d9d, 0x03215533, 0x027bbb24, 0x036a9f4f, 0x00fce77b, 0x00510e2b, 0x01ce4afd, 0x02bb22df, 0x03fc9eb4, 0x000a4c69}}}, + {X: Field{[10]uint32{0x03fa6f36, 0x02c1766d, 0x03f07a1e, 0x018e3525, 0x02c70608, 0x02c13fc9, 0x00dbc96c, 0x012a8c81, 0x0076bb91, 0x00141e4f}}, Y: Field{[10]uint32{0x00bdab21, 0x00ff59c1, 0x03fbdeb1, 0x000daec7, 0x03d963b6, 0x0077a7bc, 0x00940df4, 0x001d8ada, 0x0078b5e3, 0x002beabf}}}, + {X: Field{[10]uint32{0x02d8bb5a, 0x025d9bc1, 0x01bf13a2, 0x02098755, 0x01f8da52, 0x02ff86b5, 0x011c5709, 0x03959373, 0x0230fada, 0x0022d801}}, Y: Field{[10]uint32{0x032916c0, 0x0108481a, 0x01f4dc11, 0x026e7080, 0x01788538, 0x0164dd30, 0x005a7c38, 0x010e6bb1, 0x024a3bd0, 0x003efc6d}}}, + {X: Field{[10]uint32{0x038c8458, 0x03cf40b9, 0x027bd635, 0x010c8ac5, 0x021fc616, 0x03ff062e, 0x03c96500, 0x0057b68d, 0x03dde32a, 0x00053a22}}, Y: Field{[10]uint32{0x036f02c9, 0x007bfa65, 0x009d735b, 0x004dd809, 0x035cc2cd, 0x01d6bf82, 0x02355be4, 0x003ea97e, 0x02c3dc24, 0x00020b07}}}, + {X: Field{[10]uint32{0x011c6c06, 0x00bf3d26, 0x00a30a91, 0x024bbf1c, 0x01975a3d, 0x031e2c72, 0x013dc028, 0x0211cb51, 0x00a324b6, 0x00308079}}, Y: Field{[10]uint32{0x00e2dc08, 0x01a7a73c, 0x00cee624, 0x02334e37, 0x02a82f5f, 0x031e1a84, 0x03f3e503, 0x039b423a, 0x015441d6, 0x000098ea}}}, + {X: Field{[10]uint32{0x019db4fb, 0x03443b82, 0x035a70c5, 0x00b9846c, 0x01409418, 0x0060a337, 0x0061b1e1, 0x022cfdc6, 0x025d319a, 0x001025d9}}, Y: Field{[10]uint32{0x027a506a, 0x02dc3540, 0x027a85dc, 0x0255415c, 0x03322a6b, 0x01bffb80, 0x02cd1ef5, 0x00ac7d5d, 0x00ebb1aa, 0x0032835f}}}, + {X: Field{[10]uint32{0x0027fa92, 0x03aad26d, 0x037a445d, 0x007cde94, 0x01371334, 0x02f814b6, 0x02021a04, 0x00a4fb74, 0x007aeff9, 0x0005cf4a}}, Y: Field{[10]uint32{0x02432548, 0x02691b05, 0x00e541fb, 0x00b34fe7, 0x0172e530, 0x015c9519, 0x03c37b58, 0x00621b09, 0x0204f03a, 0x002589b8}}}, + {X: Field{[10]uint32{0x014d4256, 0x0086911a, 0x039e78f1, 0x031a3c7c, 0x01227fb8, 0x0098a6fb, 0x014b03c9, 0x00453cc3, 0x034d001b, 0x003248f1}}, Y: Field{[10]uint32{0x035b3d29, 0x004d1016, 0x002731f4, 0x000f62b5, 0x00c9f918, 0x03c089e2, 0x00d1e08e, 0x004e0842, 0x026bdd5e, 0x00163b6f}}}, + {X: Field{[10]uint32{0x00b92d46, 0x0312adc3, 0x01a57c88, 0x02f9b2e4, 0x0393e5a8, 0x025b3cc7, 0x03104c51, 0x0170b4f7, 0x0106b1f2, 0x0024be9e}}, Y: Field{[10]uint32{0x0087f307, 0x0185d472, 0x0024079a, 0x017b3962, 0x00ae99a7, 0x02f34367, 0x0374db62, 0x007f07a3, 0x02bd7934, 0x00284858}}}, + {X: Field{[10]uint32{0x00639140, 0x02a8f102, 0x0294c691, 0x024412ba, 0x00976a9c, 0x034c3577, 0x008e17ee, 0x01e30aa7, 0x01f6f51f, 0x000dd1df}}, Y: Field{[10]uint32{0x00089872, 0x0357f0aa, 0x037305c2, 0x019bd419, 0x0325c3da, 0x0142c114, 0x006e15de, 0x0195b193, 0x02ed1955, 0x001a9a89}}}, + {X: Field{[10]uint32{0x010521bf, 0x03682637, 0x0359667a, 0x0090db17, 0x00be9bc7, 0x02fc03ec, 0x034e78ca, 0x03ce37e0, 0x02591195, 0x002d6cbb}}, Y: Field{[10]uint32{0x01ddd5e4, 0x01c1b885, 0x03e44314, 0x02c03f63, 0x00cc8bae, 0x0146afa4, 0x01d276d9, 0x00c0211b, 0x03859523, 0x00043cdb}}}, + {X: Field{[10]uint32{0x02a137bb, 0x0116c0f4, 0x03630948, 0x00d5dbb2, 0x02560393, 0x034c1fbc, 0x02415e90, 0x006ff8da, 0x01b8443f, 0x0002c174}}, Y: Field{[10]uint32{0x01066cbc, 0x01fc189f, 0x02f6465f, 0x01200f87, 0x0054098f, 0x03c358fe, 0x002a4156, 0x002cb0c4, 0x024bddc9, 0x00267fb3}}}, + {X: Field{[10]uint32{0x01d918fd, 0x01aba281, 0x03179de7, 0x0219b342, 0x03d69dcd, 0x025496d6, 0x03d703ae, 0x02cef73b, 0x01bd4778, 0x003975c4}}, Y: Field{[10]uint32{0x01b64248, 0x0070d71b, 0x01327542, 0x0092bce2, 0x009685d5, 0x03fbd5a4, 0x0088e218, 0x016ca683, 0x00ae5aa0, 0x0022bc05}}}, + {X: Field{[10]uint32{0x02fa4f30, 0x007de1a1, 0x03eb9f4f, 0x00471092, 0x001e217d, 0x0344de66, 0x031c6fc4, 0x0120beff, 0x02b8377a, 0x001dc0f2}}, Y: Field{[10]uint32{0x0084e8b3, 0x000d5c7a, 0x03f0a8e9, 0x03b5082b, 0x008dd329, 0x015a324b, 0x02247fd5, 0x02e36f1f, 0x01d13c80, 0x000cc8fb}}}, + {X: Field{[10]uint32{0x014f3cc8, 0x017d8985, 0x03085540, 0x00b3052c, 0x032c87da, 0x00a910d5, 0x02cf7225, 0x02d220d9, 0x0329c18b, 0x003e0d2b}}, Y: Field{[10]uint32{0x015ab248, 0x0007fb6f, 0x015c2820, 0x0311c5d8, 0x026bd8f7, 0x03f56f31, 0x027dc094, 0x01068a78, 0x02c0ca54, 0x000ba282}}}, + {X: Field{[10]uint32{0x03bbaee0, 0x01d0cd92, 0x03a794c7, 0x01f40740, 0x0213bbcd, 0x007614ab, 0x038ee845, 0x00f18076, 0x013d13f3, 0x001e0ec2}}, Y: Field{[10]uint32{0x00ae5b4b, 0x0326e09d, 0x001ab66e, 0x031c105c, 0x036b5fb1, 0x03b0b3be, 0x00dbfb20, 0x01aaffe8, 0x0301cfde, 0x000eaa42}}}, + {X: Field{[10]uint32{0x001c3391, 0x00b69678, 0x022666f9, 0x02087062, 0x033ae42e, 0x023bcb1d, 0x00a243b4, 0x002e6405, 0x0035a777, 0x002f8f31}}, Y: Field{[10]uint32{0x00e4a701, 0x02a49d97, 0x01c51e6a, 0x00149775, 0x00a560f7, 0x0187af16, 0x01fc64de, 0x02316056, 0x01360911, 0x003c34ef}}}, + {X: Field{[10]uint32{0x003b606d, 0x0024a15e, 0x02a08fc9, 0x001a115d, 0x0197f89e, 0x03fb86b8, 0x03624545, 0x0003bbf8, 0x03d7adac, 0x000fa602}}, Y: Field{[10]uint32{0x01c5c228, 0x00ccffba, 0x0088a34d, 0x00c14ff5, 0x0367455e, 0x03824451, 0x00734347, 0x0251b1d1, 0x0241204c, 0x003193c3}}}, + {X: Field{[10]uint32{0x0182b442, 0x02f3ecb5, 0x027c335b, 0x01517757, 0x0291d7b1, 0x025e435c, 0x0159bf12, 0x0079a8d2, 0x0140aa62, 0x0029ac10}}, Y: Field{[10]uint32{0x03cce830, 0x00705a6a, 0x0137f804, 0x0363b90b, 0x03a997f8, 0x010abdb9, 0x021d1515, 0x01765d79, 0x01e29cc0, 0x00272cb2}}}, + {X: Field{[10]uint32{0x03fa721b, 0x02038a91, 0x002e51f2, 0x00b4888e, 0x0229ba43, 0x00a6cb0e, 0x009a6a1b, 0x032e3e84, 0x003fc133, 0x001fa9ea}}, Y: Field{[10]uint32{0x0299d7e8, 0x01f763a9, 0x031b45bb, 0x01d78e15, 0x026aabab, 0x03450c29, 0x01c5562a, 0x01dcc60c, 0x00e88a1f, 0x0032f8e1}}}, + {X: Field{[10]uint32{0x010fa042, 0x00ab2982, 0x026c8d84, 0x03b851aa, 0x008189f9, 0x0052e9b5, 0x002b5fca, 0x027af8be, 0x007ef0fc, 0x0021497a}}, Y: Field{[10]uint32{0x0332c86f, 0x01c39d5a, 0x022a686c, 0x0391f7f8, 0x00192873, 0x028d295c, 0x02a393f2, 0x028f3c60, 0x0278f311, 0x00373c1a}}}, + {X: Field{[10]uint32{0x03d56dce, 0x029ed06e, 0x00fc0952, 0x03cdb341, 0x0316daff, 0x0197fa59, 0x0129c337, 0x0034327b, 0x037dfa05, 0x001d5569}}, Y: Field{[10]uint32{0x03152177, 0x035bc7c5, 0x019cfd0b, 0x024a0c1a, 0x0118dc03, 0x002bcc44, 0x03d0a3cd, 0x03707f62, 0x00a7bdc3, 0x00261530}}}, + {X: Field{[10]uint32{0x02ac296b, 0x03b85f66, 0x02f710be, 0x02eefb98, 0x00972bb3, 0x00cf8031, 0x026f0261, 0x036b0453, 0x02a07a0a, 0x0027b450}}, Y: Field{[10]uint32{0x037a9d08, 0x0142880a, 0x03f6a391, 0x02144709, 0x009f4dca, 0x01a66bd4, 0x00d4006f, 0x038ee349, 0x02416c80, 0x00307aba}}}, + {X: Field{[10]uint32{0x03c56b79, 0x00ec6a37, 0x029d5fb1, 0x0310b805, 0x00c9d761, 0x00463f60, 0x02aa67c8, 0x02333424, 0x00b3784d, 0x0028ff4b}}, Y: Field{[10]uint32{0x007ea755, 0x02ff56fe, 0x01f6d659, 0x03c9e827, 0x02b0d13d, 0x03243562, 0x00fcdd48, 0x0157cb54, 0x034155db, 0x001d7366}}}, + {X: Field{[10]uint32{0x005ad251, 0x014880d8, 0x0142fc99, 0x038a2edb, 0x01554338, 0x02703884, 0x01ad598b, 0x01fba1e6, 0x0205217e, 0x000aad2f}}, Y: Field{[10]uint32{0x0076d853, 0x03d78c55, 0x01dc7bd8, 0x0320f231, 0x03b788af, 0x00f8791e, 0x008c8eb8, 0x01b529ff, 0x0258da06, 0x000b0a86}}}, + {X: Field{[10]uint32{0x0248c383, 0x02959ee1, 0x033592ce, 0x002767e3, 0x0308c95d, 0x019bb33a, 0x02268af5, 0x006ababd, 0x0088af8c, 0x0012bf0a}}, Y: Field{[10]uint32{0x004f5eed, 0x0164cdaa, 0x0005458b, 0x012f8778, 0x03cf3f28, 0x03a671fa, 0x01025797, 0x03a4ba62, 0x03825e69, 0x002c789a}}}, + {X: Field{[10]uint32{0x018e3d4a, 0x00086d4b, 0x0188b548, 0x03236bf6, 0x02f63f5f, 0x02b070ac, 0x0038600a, 0x0274b920, 0x03aa9231, 0x00376003}}, Y: Field{[10]uint32{0x0039ed7d, 0x006a5dc4, 0x0260ce8e, 0x024853fb, 0x028fdbc1, 0x006206f1, 0x02522ac9, 0x01a35d83, 0x00926e04, 0x00167fa0}}}, + {X: Field{[10]uint32{0x02378c91, 0x029d3cf1, 0x017e2af5, 0x0209b7e7, 0x0007bb51, 0x02bec1fe, 0x039bc886, 0x0297e226, 0x03d1daa3, 0x00212abc}}, Y: Field{[10]uint32{0x0035afbb, 0x030a920e, 0x030e8011, 0x021add13, 0x03a04fd5, 0x0333825a, 0x0331218e, 0x0375be98, 0x02b845ea, 0x003d0592}}}, + {X: Field{[10]uint32{0x03c40b2b, 0x02b4ea09, 0x02fcc8ad, 0x0202e233, 0x00d2ffc1, 0x037feda4, 0x02823a3a, 0x0276e2a4, 0x02c39e2e, 0x002ddc3c}}, Y: Field{[10]uint32{0x000d53e6, 0x01667a37, 0x0122e79f, 0x025f29b3, 0x037e319c, 0x01ba9593, 0x01b90a91, 0x01260974, 0x02370989, 0x0003df1b}}}, + {X: Field{[10]uint32{0x02bb2b29, 0x00879fae, 0x0336236a, 0x021c924f, 0x017cb1db, 0x02c41f32, 0x0145c5fb, 0x039559c0, 0x00a8a0d7, 0x00298182}}, Y: Field{[10]uint32{0x0354de5f, 0x009715de, 0x00e1906f, 0x007ed603, 0x01a289c9, 0x03528e06, 0x0006f906, 0x01152259, 0x027c4e41, 0x000d08d4}}}, + {X: Field{[10]uint32{0x03414597, 0x02d926d4, 0x032d921e, 0x03dff2af, 0x0320f6b0, 0x0324469c, 0x02b4e5fc, 0x00e4e979, 0x00f97b7f, 0x00203d1c}}, Y: Field{[10]uint32{0x03d9adc3, 0x033a7c4a, 0x03e4afa1, 0x01392d6d, 0x03770fa1, 0x004f0fce, 0x028faea0, 0x02f8304c, 0x02f96e1b, 0x0015f63c}}}, + {X: Field{[10]uint32{0x015abb6f, 0x032ccea6, 0x017fe261, 0x036c7c0e, 0x0072e4a3, 0x01929ed6, 0x03f0096c, 0x012330ff, 0x03f21f52, 0x00138446}}, Y: Field{[10]uint32{0x02eb2b9f, 0x02b2eda5, 0x02b0f6d5, 0x0050c7ea, 0x00c03af6, 0x0182f64c, 0x01829c1d, 0x00cefd7f, 0x01721027, 0x0009273c}}}, + {X: Field{[10]uint32{0x022844c9, 0x005b1a31, 0x034f0184, 0x0037ce05, 0x00960cb7, 0x0083a17b, 0x0254660a, 0x00763040, 0x00b547fa, 0x001f6303}}, Y: Field{[10]uint32{0x0335a271, 0x00015c57, 0x00743404, 0x02b87daf, 0x0372b0f1, 0x00d633f4, 0x017335bf, 0x0135e685, 0x023c17ec, 0x000b5e6e}}}, + {X: Field{[10]uint32{0x030a0034, 0x00aabe59, 0x013aaf61, 0x02e26d65, 0x0014b132, 0x016a7cbc, 0x023d48fa, 0x01be95fc, 0x00bd9589, 0x002f0353}}, Y: Field{[10]uint32{0x03a0639d, 0x0283d20b, 0x01412480, 0x00fca3a9, 0x0383d756, 0x015dcef2, 0x02410915, 0x019605e9, 0x02707b31, 0x003d7419}}}, + {X: Field{[10]uint32{0x02d37a40, 0x039c3ead, 0x006a42df, 0x029a9f99, 0x015cceb0, 0x024c8785, 0x02ddbe1c, 0x03445657, 0x02aead08, 0x002c5528}}, Y: Field{[10]uint32{0x0216592a, 0x01794fcc, 0x00756c8b, 0x0234278f, 0x0217120d, 0x0257225b, 0x01e586f6, 0x0344af40, 0x0221674d, 0x0026aeb7}}}, + {X: Field{[10]uint32{0x0372e1e4, 0x01729615, 0x03325531, 0x0159f91d, 0x02314be7, 0x0107f8b9, 0x013bc318, 0x001bc9c1, 0x0034a6ce, 0x003bd80f}}, Y: Field{[10]uint32{0x009ad65d, 0x02b965f1, 0x00f5164a, 0x023cef42, 0x0115fced, 0x0206688c, 0x03a7e57d, 0x02c2e648, 0x022896f3, 0x003e7aef}}}, + {X: Field{[10]uint32{0x02aa9376, 0x0388ffa0, 0x016e2c04, 0x03686b12, 0x01014f7b, 0x02b70010, 0x01a05d91, 0x007aeeb5, 0x036c2d90, 0x00298045}}, Y: Field{[10]uint32{0x02e88ab8, 0x0228c0c6, 0x01e68f8c, 0x03e74fab, 0x03d59abc, 0x03a450dd, 0x032fb849, 0x00d924dd, 0x01b7ce0c, 0x003de077}}}, + {X: Field{[10]uint32{0x0031e6a7, 0x00c54e57, 0x007eb273, 0x03bcea40, 0x03b1c7f0, 0x0326a409, 0x03968b9b, 0x00413bea, 0x0147b6b3, 0x002af105}}, Y: Field{[10]uint32{0x017e0ec9, 0x02e28df6, 0x00dce879, 0x034d498a, 0x03594c5b, 0x035e0e66, 0x00a1821d, 0x0075bef6, 0x00a228f2, 0x00334a16}}}, + {X: Field{[10]uint32{0x007f5a81, 0x038e85f6, 0x008a92f2, 0x029b4c6d, 0x02941d1d, 0x009b904e, 0x024c4300, 0x031c86cb, 0x010500c9, 0x0024a240}}, Y: Field{[10]uint32{0x0260a5da, 0x025fca36, 0x03e2bb30, 0x02669f2f, 0x0015c223, 0x004ed1f1, 0x0032e17c, 0x03185c79, 0x007b1bdc, 0x003072b6}}}, + {X: Field{[10]uint32{0x037ca563, 0x01129f70, 0x00228ad1, 0x0201af59, 0x00500a7a, 0x0251da43, 0x02468319, 0x00d7291a, 0x02a69f4b, 0x00394837}}, Y: Field{[10]uint32{0x022a82de, 0x02c34f22, 0x03356638, 0x002b6d9c, 0x01e2330b, 0x02b538b6, 0x0355dda6, 0x023efa40, 0x0366ac3f, 0x001b0035}}}, + {X: Field{[10]uint32{0x017fadc4, 0x00b5c071, 0x03fb3750, 0x005463c3, 0x02ac2e93, 0x035bbc97, 0x03d18a79, 0x03c70695, 0x0223e2b3, 0x00300cde}}, Y: Field{[10]uint32{0x00808b65, 0x00851bd4, 0x021eccdd, 0x00e3db81, 0x017ac7e9, 0x001e95c3, 0x029c3d5b, 0x037cd51c, 0x0073be22, 0x003f3a96}}}, + {X: Field{[10]uint32{0x0181ac04, 0x0049e6ca, 0x0193cfa5, 0x02583d4d, 0x001b796a, 0x00b47589, 0x01fb6a76, 0x00b01dad, 0x02bb6a8e, 0x0009db18}}, Y: Field{[10]uint32{0x021afc1a, 0x00ba85db, 0x0292b73e, 0x01e0223d, 0x00773c45, 0x01a588db, 0x01284d7d, 0x000748fe, 0x025abb6b, 0x001714e9}}}, + {X: Field{[10]uint32{0x01663a5f, 0x00776fa3, 0x01ed4fad, 0x01bd9ea7, 0x00c4a2de, 0x00f23b79, 0x037ccdd4, 0x00770ae0, 0x0287e505, 0x00181387}}, Y: Field{[10]uint32{0x03429bee, 0x001ac9e2, 0x0034902d, 0x01ce670d, 0x02ace4c4, 0x01113618, 0x014d6759, 0x0065ce4f, 0x023ce351, 0x003dc3f8}}}, + {X: Field{[10]uint32{0x0041f6fa, 0x038e21d7, 0x00eec3b6, 0x02bbdf93, 0x024aba16, 0x03a40e6e, 0x00b05be5, 0x02441b56, 0x011f470d, 0x003cbf05}}, Y: Field{[10]uint32{0x01e98de0, 0x02a485b8, 0x037b85d2, 0x01ce705a, 0x00d41887, 0x001da418, 0x027f2d6e, 0x01718f63, 0x02c7f1aa, 0x003d26f4}}}, + {X: Field{[10]uint32{0x000ac560, 0x0240b84d, 0x00315eb0, 0x025359ac, 0x007ee0b2, 0x0391babe, 0x001d9cd7, 0x00d3bcee, 0x03460e9f, 0x002380c4}}, Y: Field{[10]uint32{0x00394296, 0x00517e4b, 0x00dca450, 0x023003b0, 0x02006b02, 0x03b81413, 0x027441c0, 0x00787944, 0x00bda5e2, 0x003fc032}}}, + {X: Field{[10]uint32{0x01a9970b, 0x027d03f9, 0x01a0a96b, 0x02cea174, 0x03d4e26e, 0x02ca553a, 0x021cbe16, 0x01ea3c9e, 0x031ad75b, 0x002a1a03}}, Y: Field{[10]uint32{0x02070c01, 0x0065cef9, 0x024c6950, 0x02fb10a5, 0x02757401, 0x00fd4a25, 0x03281f2a, 0x036b18e5, 0x0341a55b, 0x001831af}}}, + {X: Field{[10]uint32{0x004f4658, 0x039b1bd4, 0x03066128, 0x00035372, 0x0009ca8c, 0x002171e5, 0x03407c05, 0x00ba8780, 0x01e7f4d8, 0x00135a28}}, Y: Field{[10]uint32{0x03d1ce76, 0x009979e8, 0x02af4d36, 0x0028e99c, 0x0126a955, 0x030db75b, 0x0295d2d2, 0x00da44aa, 0x0211e5dd, 0x00217177}}}, + {X: Field{[10]uint32{0x02c2a7a9, 0x02882bb9, 0x024835c6, 0x0306b9e2, 0x01758c0b, 0x0340bace, 0x003cdc1b, 0x021925a6, 0x001c2a6d, 0x000dc23d}}, Y: Field{[10]uint32{0x03ec4152, 0x014febea, 0x039e7f45, 0x01171c2b, 0x023c2b71, 0x02aac64f, 0x01ae0f87, 0x03d77572, 0x019e79b7, 0x000c42de}}}, + {X: Field{[10]uint32{0x0115f059, 0x038de028, 0x01a92f6c, 0x0334eaec, 0x022d1a18, 0x00fd6dcc, 0x03961814, 0x02317fc6, 0x01674502, 0x0023220e}}, Y: Field{[10]uint32{0x020725d8, 0x0229f9d8, 0x00e10b00, 0x01097237, 0x0040128e, 0x019b761f, 0x03441800, 0x01212830, 0x02d4e4ae, 0x0009158e}}}, + {X: Field{[10]uint32{0x018f8fb0, 0x0387fd35, 0x0305d0a0, 0x03098d08, 0x03652e83, 0x0129c98e, 0x010fd1a9, 0x01eb4ef7, 0x036a7b37, 0x00311179}}, Y: Field{[10]uint32{0x03acc89d, 0x033a9872, 0x01b8cc94, 0x039c8c19, 0x02f60ae2, 0x02ab9f71, 0x03bd3c13, 0x036d84eb, 0x001adc8d, 0x0012fd69}}}, + {X: Field{[10]uint32{0x02419f16, 0x03d976a3, 0x02e8deb2, 0x017bb6ab, 0x0236949d, 0x0292e7f5, 0x019f1d4d, 0x00d7f983, 0x013ac8a6, 0x0012b658}}, Y: Field{[10]uint32{0x00b0d7c4, 0x02d2545a, 0x0331642a, 0x01ded2c1, 0x01387458, 0x03c6a06e, 0x0131c83e, 0x0283eceb, 0x03068f67, 0x0016a6d6}}}, + {X: Field{[10]uint32{0x0360c943, 0x0074a7f5, 0x00b0c20d, 0x02f163a4, 0x022e397f, 0x0122a998, 0x0349d776, 0x03f9b26a, 0x02e1958b, 0x002facfa}}, Y: Field{[10]uint32{0x0382c9b8, 0x03bfe200, 0x02678dba, 0x01edaa08, 0x03ec76f2, 0x02a9a36b, 0x01dc6fb5, 0x019eac89, 0x02bef43a, 0x00035691}}}, + {X: Field{[10]uint32{0x0134f397, 0x026867f4, 0x018ab9df, 0x0050f900, 0x034623fc, 0x035281da, 0x03f1daea, 0x0086cef8, 0x02b0bc0e, 0x002aaa6a}}, Y: Field{[10]uint32{0x0342e40b, 0x01c0ee89, 0x0390ed3c, 0x03e2ead9, 0x02d3f094, 0x03e8b6b4, 0x000347e8, 0x00b1969b, 0x03fe1964, 0x000271f5}}}, + {X: Field{[10]uint32{0x0199dc52, 0x035a956b, 0x01356604, 0x01867f57, 0x00d40116, 0x0073e749, 0x017ae86f, 0x03d118bf, 0x028999d6, 0x00154f07}}, Y: Field{[10]uint32{0x0150cebc, 0x002f5bfd, 0x004ed646, 0x0250de4d, 0x013f6fe4, 0x01f17c37, 0x02ba776f, 0x02b169b4, 0x013b8410, 0x0009ad03}}}, + {X: Field{[10]uint32{0x02a1abc8, 0x03afe096, 0x0128ab47, 0x0025567b, 0x00c3d565, 0x01c97581, 0x00dae9c4, 0x023f10e6, 0x01ea3637, 0x00216621}}, Y: Field{[10]uint32{0x000687f5, 0x00c7f3fc, 0x030669e5, 0x02a8f102, 0x020e6e84, 0x02cb458d, 0x02fd9305, 0x02e58eec, 0x02f9fc74, 0x003eb96b}}}, + {X: Field{[10]uint32{0x00368f93, 0x01ef7bbc, 0x0254b0bb, 0x00ca9c31, 0x0189e510, 0x00ee08d1, 0x00bf7c16, 0x01752155, 0x0118679c, 0x0017ec28}}, Y: Field{[10]uint32{0x03c2a2d0, 0x03c6099a, 0x00c70a4c, 0x02b4e765, 0x005b9966, 0x02e5761a, 0x0302111e, 0x005b4efe, 0x01f04a68, 0x0003a355}}}, + {X: Field{[10]uint32{0x00f91dfa, 0x02fa0be5, 0x00302194, 0x0175df39, 0x02bbed44, 0x039c376b, 0x03d737c1, 0x03854f26, 0x034786f3, 0x00029090}}, Y: Field{[10]uint32{0x03beed46, 0x00595239, 0x02496971, 0x02963b04, 0x01a54239, 0x0096da7f, 0x0012f4df, 0x03f6a704, 0x02d6abd9, 0x0009f472}}}, + {X: Field{[10]uint32{0x00c821e7, 0x006e4868, 0x003eef57, 0x0115cac2, 0x00394659, 0x01ca4c43, 0x028213cc, 0x0307ce82, 0x0108063f, 0x0017401d}}, Y: Field{[10]uint32{0x02b2df3a, 0x00744aff, 0x007f939f, 0x0205ac10, 0x02d99bfa, 0x0048e121, 0x00c26056, 0x01681ecb, 0x03c45d05, 0x00394e3e}}}, + {X: Field{[10]uint32{0x002e3db9, 0x00bd7a0a, 0x02a525f8, 0x02a9c737, 0x01e80393, 0x012aadfe, 0x00605a0e, 0x000a1a4d, 0x01b897b1, 0x0028fac9}}, Y: Field{[10]uint32{0x01e7f77d, 0x00f60fdc, 0x00c6f030, 0x022f9a24, 0x036beec5, 0x00a259f1, 0x036baaf1, 0x03117908, 0x00c21430, 0x0038acd5}}}, + {X: Field{[10]uint32{0x0097981b, 0x00b8273a, 0x01f0fff7, 0x01453a8d, 0x021e309e, 0x0043f205, 0x033f51cd, 0x00c80a5b, 0x02208a13, 0x001cfd8c}}, Y: Field{[10]uint32{0x02420179, 0x03b41cc2, 0x01dc4015, 0x01ea286d, 0x02309525, 0x00d26a4b, 0x01f7ded0, 0x03ccbb5b, 0x0159cc78, 0x0010d04a}}}, + {X: Field{[10]uint32{0x00da41af, 0x03b139d2, 0x01bb4ccf, 0x00b7c6ee, 0x00776051, 0x01811992, 0x00d9628f, 0x02d7ce3c, 0x01d1c21b, 0x0017c209}}, Y: Field{[10]uint32{0x025c0cab, 0x0108e7ff, 0x02323b37, 0x02e30925, 0x005becd4, 0x01964a09, 0x031abd5b, 0x03784a13, 0x020e1d95, 0x0037aeb1}}}, + {X: Field{[10]uint32{0x03d84294, 0x00967fbd, 0x0276da10, 0x03ff19a9, 0x02efc26d, 0x03448a53, 0x023f624c, 0x03a7cbeb, 0x02f2b4a8, 0x003310a9}}, Y: Field{[10]uint32{0x03230519, 0x0383850e, 0x016901ba, 0x0385a804, 0x03118a7a, 0x02d7ec5f, 0x03f2adb2, 0x02f417c4, 0x0200f92c, 0x00246c99}}}, + {X: Field{[10]uint32{0x03635a17, 0x0000bb1b, 0x022618f0, 0x035af44d, 0x034de0c5, 0x03bef347, 0x01aad7a8, 0x0384fea0, 0x00e76eeb, 0x001f55b8}}, Y: Field{[10]uint32{0x03fa1ad8, 0x004eb090, 0x01754f7d, 0x03b156a4, 0x00051122, 0x03a9779f, 0x01ca813e, 0x038fb91b, 0x0307fe55, 0x00255189}}}, + {X: Field{[10]uint32{0x03a5be61, 0x015301bd, 0x00dc6add, 0x03f0f1d9, 0x02fba8ca, 0x02b6d5ad, 0x03605b3a, 0x017b12b2, 0x021b4fe8, 0x001e5cad}}, Y: Field{[10]uint32{0x02b8c7d8, 0x0249b24c, 0x037dd9f4, 0x03397516, 0x024764c4, 0x011aa3a4, 0x00f5141c, 0x03e9ba9f, 0x02702642, 0x002e8619}}}, + {X: Field{[10]uint32{0x01025626, 0x00208d75, 0x02e0bbbe, 0x01fcd87e, 0x034344c8, 0x019d3e43, 0x01f63609, 0x00540226, 0x0040347b, 0x003b7229}}, Y: Field{[10]uint32{0x032cd77b, 0x007b3106, 0x024864d0, 0x008a6947, 0x027bf841, 0x034502cb, 0x00c7cefa, 0x02fd666f, 0x03409a14, 0x000be049}}}, + {X: Field{[10]uint32{0x01b16899, 0x021df34f, 0x00d18d54, 0x02fc9558, 0x02d4ea1b, 0x027e6661, 0x0327b571, 0x03d354bd, 0x01c97a8c, 0x002f66d9}}, Y: Field{[10]uint32{0x02fe432d, 0x02638af0, 0x019af7db, 0x00fd77fa, 0x01ee9c8e, 0x02f93e18, 0x00d9e02d, 0x023972fc, 0x01274e87, 0x001673dc}}}, + {X: Field{[10]uint32{0x00f35782, 0x038ab313, 0x02106f3b, 0x00096542, 0x0072d918, 0x01317636, 0x03565714, 0x03a3334d, 0x02381191, 0x0009d8d7}}, Y: Field{[10]uint32{0x00d1ab7d, 0x0264bdc3, 0x00ce9db1, 0x03cdf9ae, 0x00eb5251, 0x03d46eb5, 0x03fa3ab8, 0x021c3401, 0x0247a019, 0x0030d67f}}}, + {X: Field{[10]uint32{0x0321d85c, 0x0377c84e, 0x03261839, 0x03d2577e, 0x00359950, 0x01e803a6, 0x02abad14, 0x014c02a5, 0x00c316c0, 0x001124b7}}, Y: Field{[10]uint32{0x009ad35b, 0x00d3b5f7, 0x02433189, 0x02fe9630, 0x02fafed4, 0x008a7716, 0x03b8c6d2, 0x00790b6f, 0x0371a4e8, 0x0003b7c4}}}, + {X: Field{[10]uint32{0x01f9c67b, 0x02a981bb, 0x03c01279, 0x031b3b8d, 0x0325887f, 0x02f623e3, 0x028a3869, 0x00079637, 0x0040409e, 0x003e0493}}, Y: Field{[10]uint32{0x026fa6bc, 0x01830868, 0x009d3655, 0x0231879d, 0x022b0f00, 0x035fcd98, 0x026269c3, 0x03b82a28, 0x01d1d31f, 0x0003801c}}}, + {X: Field{[10]uint32{0x0205a2b5, 0x0212f0e6, 0x030b1b57, 0x00ce3d57, 0x02ce3aed, 0x03579470, 0x000716ad, 0x03337e8b, 0x0367066e, 0x0033165e}}, Y: Field{[10]uint32{0x00682865, 0x00e9061d, 0x022da74e, 0x039fcfbc, 0x03df52da, 0x00a3a356, 0x0212ec40, 0x010f6747, 0x01fc394a, 0x0004b80c}}}, + {X: Field{[10]uint32{0x005aeda2, 0x034c78a0, 0x022ee6fd, 0x01c698c8, 0x03d4a45f, 0x03549774, 0x01642707, 0x020fef48, 0x02c6bc12, 0x00050b2c}}, Y: Field{[10]uint32{0x02d66ec0, 0x017b7197, 0x02f2e181, 0x03edf1a1, 0x00ed082b, 0x02fb1916, 0x015b7180, 0x0108ab93, 0x0112c72c, 0x002f7a4f}}}, + {X: Field{[10]uint32{0x001d2d3c, 0x03645230, 0x0147968f, 0x01d78fc3, 0x01c33273, 0x02a25dea, 0x016704a1, 0x0165079a, 0x0202dd76, 0x003efd35}}, Y: Field{[10]uint32{0x006afa8d, 0x03c4e5b0, 0x0118d08e, 0x02ca6bdf, 0x00c7b96f, 0x01a3d858, 0x014cae8e, 0x02572e9b, 0x01f799e8, 0x00196d1b}}}, + {X: Field{[10]uint32{0x01bfffb8, 0x0048f863, 0x02bc7c6d, 0x036f3163, 0x01f09436, 0x03053143, 0x0300ea5e, 0x03a3338c, 0x0157bb5f, 0x003bf6d7}}, Y: Field{[10]uint32{0x0203fe01, 0x01ee2900, 0x00deb813, 0x01fb7758, 0x01d444e4, 0x019ef627, 0x019ce931, 0x00318988, 0x0003d9a9, 0x000e420e}}}, + {X: Field{[10]uint32{0x003f35ad, 0x0241d08b, 0x03d74976, 0x03c7ab7a, 0x02921f59, 0x01afcb53, 0x00b36c7b, 0x00155c2d, 0x0334faa3, 0x0016f290}}, Y: Field{[10]uint32{0x021206e3, 0x03489ef0, 0x0345b520, 0x00a8d4fe, 0x0179d27f, 0x03591b6d, 0x03f2fe1c, 0x018fdc8a, 0x02f5e2a6, 0x000f25ee}}}, + {X: Field{[10]uint32{0x01156632, 0x03c7cfd4, 0x00d4c49f, 0x025c69cf, 0x01ff921e, 0x012a9990, 0x018a0f05, 0x03c1956b, 0x03bce90c, 0x0026a876}}, Y: Field{[10]uint32{0x031a4200, 0x00efd00a, 0x012dc651, 0x01eae404, 0x016e0b33, 0x02730449, 0x002f0f0b, 0x03a176e0, 0x001d8bf1, 0x0032fdba}}}, + {X: Field{[10]uint32{0x03c2d408, 0x02a5589c, 0x01b86aba, 0x01bfbfc2, 0x035386e5, 0x037b0a09, 0x01d4d23d, 0x01d9d935, 0x005586ed, 0x000bf1ff}}, Y: Field{[10]uint32{0x01d6285f, 0x0272041a, 0x03f3f54f, 0x01617531, 0x016019a5, 0x000c42d7, 0x037b0c3e, 0x00d2bb91, 0x01e4773c, 0x0016ffda}}}, + {X: Field{[10]uint32{0x034190b2, 0x03332ef4, 0x03f34764, 0x00403cbf, 0x026ef3b2, 0x0037e445, 0x01954878, 0x01bcb10c, 0x0141c3ac, 0x002397ee}}, Y: Field{[10]uint32{0x0110d2ce, 0x026ebaff, 0x02c4b1df, 0x027b73c6, 0x038d29b5, 0x039eccbe, 0x03ae154c, 0x01a38b18, 0x01b15f66, 0x0036f8b0}}}, + {X: Field{[10]uint32{0x033d49c6, 0x006f5842, 0x03690480, 0x001c99a4, 0x02dcfbaa, 0x02a56e36, 0x013389ea, 0x035b7417, 0x03594748, 0x001e96ee}}, Y: Field{[10]uint32{0x034187c0, 0x03b7ab18, 0x03fa7fd4, 0x0073bff8, 0x00ca1386, 0x0048d71a, 0x00b755c6, 0x00cffa36, 0x0043a42d, 0x0030b4a0}}}, + {X: Field{[10]uint32{0x03b76753, 0x03ebc86f, 0x00745f87, 0x0388894d, 0x00917c2f, 0x02d8c738, 0x033ee1b1, 0x00d4c6b9, 0x00bdf0d3, 0x00256fae}}, Y: Field{[10]uint32{0x0064f45b, 0x030bc2c3, 0x00adaa43, 0x020df88c, 0x03b9bd77, 0x01283932, 0x03e269fb, 0x0165d549, 0x0200d9c5, 0x0031b3e1}}}, + {X: Field{[10]uint32{0x02968d25, 0x003488f8, 0x03a32054, 0x0365dae3, 0x03576dbb, 0x002ae5e4, 0x00fa4809, 0x01b700c1, 0x030c6d89, 0x003d13b2}}, Y: Field{[10]uint32{0x0321086a, 0x027cd4f0, 0x038106d1, 0x003d79db, 0x01e20e47, 0x03a91a82, 0x0203c629, 0x010ca5da, 0x00f62964, 0x00151419}}}, + {X: Field{[10]uint32{0x038109de, 0x01274994, 0x01e074fb, 0x0309dc18, 0x01d56d68, 0x03deb899, 0x033ef501, 0x024db985, 0x00d33dbd, 0x002374cb}}, Y: Field{[10]uint32{0x003f1e76, 0x0217dc1f, 0x00851ae9, 0x00968430, 0x00ad158c, 0x011f5b64, 0x012bca8a, 0x02b0814e, 0x025c80da, 0x001ac443}}}, + {X: Field{[10]uint32{0x0237997b, 0x01d77698, 0x01a8c770, 0x00fe2473, 0x010fea5e, 0x01c74113, 0x03bc77eb, 0x03d5e353, 0x0130b0f0, 0x000f52bf}}, Y: Field{[10]uint32{0x018bb9ce, 0x02c7bf01, 0x0093ed83, 0x02af9d21, 0x020ae286, 0x02708eb6, 0x013d4424, 0x03d5fb1e, 0x00e8664d, 0x000a05b8}}}, + {X: Field{[10]uint32{0x01d95ff1, 0x03ff45e1, 0x020200a5, 0x0204b4af, 0x02b83913, 0x01a81ee8, 0x015ccac8, 0x00ec8aca, 0x01fbbeaa, 0x002a6dce}}, Y: Field{[10]uint32{0x03b84f1b, 0x016cabaf, 0x02d401a5, 0x00ae3b5e, 0x00d3c5d4, 0x0310ff7b, 0x016d7323, 0x029abbda, 0x023021d6, 0x00287420}}}, + {X: Field{[10]uint32{0x0203715a, 0x01fd1ae4, 0x03632bb7, 0x019eb3e6, 0x02a37e5d, 0x022d5659, 0x02cc754c, 0x0147aff0, 0x0347e512, 0x003a4025}}, Y: Field{[10]uint32{0x02f9df72, 0x036ad3f3, 0x03907d9c, 0x01e85f38, 0x00756f27, 0x015c6962, 0x03476f25, 0x03e65dc6, 0x01679ea8, 0x000d0962}}}, + {X: Field{[10]uint32{0x021a3f2e, 0x01d90e7c, 0x006c1a83, 0x0104eb13, 0x002108fe, 0x02ccc821, 0x00d09b96, 0x035d3309, 0x00ed55aa, 0x001f8d23}}, Y: Field{[10]uint32{0x00389e5f, 0x033e0fad, 0x020f91ed, 0x00bcd964, 0x01c884c2, 0x010e793d, 0x0065706e, 0x009e5761, 0x038e3b72, 0x000e61d3}}}, + {X: Field{[10]uint32{0x03b1f55a, 0x029d29be, 0x01220aaa, 0x02da2834, 0x038e340f, 0x003f3034, 0x032cdabf, 0x035c055b, 0x02765ec2, 0x0029f759}}, Y: Field{[10]uint32{0x0341d447, 0x029439cb, 0x00e73760, 0x02b5117a, 0x0163710d, 0x02c02efa, 0x02ded9b0, 0x0298f4a4, 0x03f2ab00, 0x002dc246}}}, + {X: Field{[10]uint32{0x03f57025, 0x02354780, 0x03a96a30, 0x00a91a4f, 0x0051c085, 0x01b624d3, 0x0033a481, 0x032fdb70, 0x01e9a8cc, 0x0002e15e}}, Y: Field{[10]uint32{0x0158268b, 0x0337315c, 0x00feca8b, 0x00cdbda5, 0x0242c888, 0x02f046f6, 0x0164a3e0, 0x00546cbc, 0x00df4d79, 0x0039a5bb}}}, + {X: Field{[10]uint32{0x03f57af8, 0x00b0b0af, 0x03cdabb4, 0x007519e1, 0x03184f1c, 0x01ed669f, 0x00c8c72e, 0x002032fe, 0x00459de0, 0x0001eca7}}, Y: Field{[10]uint32{0x03801799, 0x011b7a57, 0x026145dc, 0x02dc97d3, 0x02817578, 0x000ddbb7, 0x0101ca56, 0x0344f506, 0x0367a6d8, 0x001037a0}}}, + {X: Field{[10]uint32{0x02f00f9f, 0x026bf765, 0x0214e017, 0x0276cc7f, 0x030d1c4e, 0x002df940, 0x020e34ef, 0x016f9eb0, 0x026f89b6, 0x00073bfe}}, Y: Field{[10]uint32{0x0276f179, 0x01d12d46, 0x02da979a, 0x03d6f2a9, 0x008e293b, 0x005e4384, 0x018feb78, 0x00c2f7b6, 0x00b1f059, 0x001bf7ba}}}, + {X: Field{[10]uint32{0x01e58d74, 0x0365f645, 0x01e47ca2, 0x03fa8013, 0x0280ba4e, 0x00078bb1, 0x01d01e9a, 0x000715b5, 0x016d11d3, 0x00155b8b}}, Y: Field{[10]uint32{0x0249d711, 0x00b175d4, 0x0096108a, 0x031cbd36, 0x013d66e6, 0x03bb2f26, 0x01ba7eef, 0x035edad5, 0x009bb633, 0x0025620d}}}, + {X: Field{[10]uint32{0x01e51586, 0x02ae45e8, 0x026ba6a7, 0x03d3a7b9, 0x02b97f7b, 0x00ad8ba8, 0x004518a4, 0x00f723b4, 0x028873b9, 0x002cd41b}}, Y: Field{[10]uint32{0x030b3b38, 0x00eb9306, 0x023fd582, 0x027c7e3f, 0x025917a3, 0x02b2ea7f, 0x0293eaa7, 0x03edeff9, 0x01001230, 0x0011d3e0}}}, + {X: Field{[10]uint32{0x012628f3, 0x01d2e5af, 0x00504e97, 0x00e86665, 0x001ba7ff, 0x0243b99f, 0x001a886f, 0x0124236c, 0x02f389cb, 0x0003461a}}, Y: Field{[10]uint32{0x02a2db7d, 0x023dfbbc, 0x0021d5d0, 0x01bfd046, 0x02d01d74, 0x0218bbcd, 0x0378c75a, 0x01f372d1, 0x002bc656, 0x000ece5e}}}, + {X: Field{[10]uint32{0x03987bb7, 0x02215cbb, 0x00d55d67, 0x0200aa04, 0x0119e8c9, 0x018b18e7, 0x02459000, 0x016b08fe, 0x0121e106, 0x003e5476}}, Y: Field{[10]uint32{0x01d7d950, 0x002631fe, 0x0207055d, 0x019aedda, 0x01051abc, 0x03d54ed7, 0x03db2397, 0x03a5d409, 0x01c187f8, 0x00373df7}}}, + {X: Field{[10]uint32{0x00d915ec, 0x00f83eb1, 0x0242ebb5, 0x01d3f20a, 0x038bcbf8, 0x03cd0382, 0x021b75e8, 0x01bf1845, 0x02167bac, 0x002373a3}}, Y: Field{[10]uint32{0x00ae940c, 0x004985f8, 0x03674e32, 0x03d240cb, 0x039c0287, 0x01349bb5, 0x00b410b3, 0x02e7ae6d, 0x03a14a9e, 0x00047394}}}, + {X: Field{[10]uint32{0x01e26e2b, 0x00e7baa6, 0x005dc4f4, 0x016bb56a, 0x02755dfc, 0x0304a9ea, 0x012ed15e, 0x0290f35f, 0x00dda0a7, 0x00338b4f}}, Y: Field{[10]uint32{0x03a5a145, 0x025f1801, 0x0009a36b, 0x0191f886, 0x036a8eed, 0x03160881, 0x035c2853, 0x009d03a9, 0x02bbe7ca, 0x001aa5ab}}}, + {X: Field{[10]uint32{0x00d92092, 0x00e42a37, 0x000f05ea, 0x00295632, 0x00f712c4, 0x020ce492, 0x03367b5c, 0x0353173b, 0x02fcdcc2, 0x0008e519}}, Y: Field{[10]uint32{0x03ac28cd, 0x02157849, 0x0318ed0e, 0x02acedf5, 0x0265d176, 0x023805cd, 0x023ee8e9, 0x03c22f29, 0x023c9b49, 0x003cb388}}}, + {X: Field{[10]uint32{0x0163e033, 0x0297fb8d, 0x0395e0f6, 0x01911d98, 0x034a2f3c, 0x00c7825c, 0x005bcd83, 0x00f02367, 0x0364341d, 0x000882ad}}, Y: Field{[10]uint32{0x02df5011, 0x03360dd5, 0x03f4cf9d, 0x028d5e05, 0x03aa51a9, 0x02d48300, 0x03dc7a42, 0x004fbd19, 0x0060d030, 0x003b0791}}}, + {X: Field{[10]uint32{0x004b469f, 0x03ffa024, 0x03db4ee2, 0x004993e8, 0x02845f0b, 0x00f13443, 0x03ffd81f, 0x01a9b1c3, 0x01fe1640, 0x00355157}}, Y: Field{[10]uint32{0x020aaf9a, 0x00428401, 0x019b8088, 0x03c0abe5, 0x0028a20a, 0x0056125f, 0x01d99e49, 0x00798899, 0x038d257e, 0x00283e4e}}}, + {X: Field{[10]uint32{0x00e60c72, 0x03627ca2, 0x0137e1a9, 0x03e73f07, 0x02f5039c, 0x007bb034, 0x0054665f, 0x03c1777c, 0x0377a1f6, 0x00148d9c}}, Y: Field{[10]uint32{0x02c7bb41, 0x027f1767, 0x01ce6a03, 0x005b663e, 0x00d05e70, 0x038925e8, 0x018d0477, 0x030d4b35, 0x0355430f, 0x001e3627}}}, + {X: Field{[10]uint32{0x03a56395, 0x0377a957, 0x02c9f4c1, 0x03c644b9, 0x01a8e569, 0x01cd9049, 0x023dc886, 0x0250889a, 0x01133ecc, 0x0016e658}}, Y: Field{[10]uint32{0x02436d0a, 0x010abd93, 0x00f19101, 0x02a84226, 0x03f7a0bc, 0x0178bf57, 0x00ac902c, 0x01b2bd76, 0x03641207, 0x002ee75d}}}, + {X: Field{[10]uint32{0x004c13fb, 0x0093ccae, 0x00f0c07c, 0x010f6e5b, 0x03eecd1a, 0x02c299dc, 0x007fa4a5, 0x03479963, 0x035cbfbe, 0x003cdb36}}, Y: Field{[10]uint32{0x018c394c, 0x01b24640, 0x039b9315, 0x039d1e4d, 0x01993744, 0x006d8996, 0x016aee18, 0x03b68a45, 0x02f05ee9, 0x0033f1b4}}}, + {X: Field{[10]uint32{0x0079a6f9, 0x017ee45c, 0x03e44059, 0x00cc43b1, 0x030842ce, 0x014c499b, 0x00bf7545, 0x01ebcace, 0x018e2510, 0x000c8231}}, Y: Field{[10]uint32{0x02c785d7, 0x011d628c, 0x001c645a, 0x028b2220, 0x03653599, 0x0257b0b2, 0x01d9ab58, 0x02db2581, 0x01cb5346, 0x0020c71b}}}, + {X: Field{[10]uint32{0x009927a7, 0x014e4623, 0x025a8c52, 0x020d9406, 0x02472535, 0x01135cd5, 0x0021b80b, 0x00438aa8, 0x02071f85, 0x002981ce}}, Y: Field{[10]uint32{0x0364fec9, 0x03c64698, 0x032462a9, 0x00361600, 0x026fefa3, 0x033f26ee, 0x0318baad, 0x01d84859, 0x03c54c8a, 0x003a4ea7}}}, + {X: Field{[10]uint32{0x01f0d913, 0x00d5d62e, 0x007139e3, 0x01f8d589, 0x00f7ec1a, 0x02a9fffa, 0x00f21476, 0x02bdfc98, 0x0062f79e, 0x000cd42d}}, Y: Field{[10]uint32{0x01152959, 0x01c5c448, 0x00d4e805, 0x02f120a9, 0x03020f33, 0x02a34ba4, 0x03d2341b, 0x0048883e, 0x01b30fce, 0x0007c327}}}, + {X: Field{[10]uint32{0x03073caa, 0x03893380, 0x0344c11d, 0x00f99bd9, 0x00177391, 0x02859433, 0x007c89b5, 0x00a9d248, 0x03170bc8, 0x00295356}}, Y: Field{[10]uint32{0x02cd3ab8, 0x01edec4c, 0x033afcdb, 0x009be4ad, 0x02fe62dc, 0x02488b27, 0x007fe5d4, 0x0374460f, 0x035f5309, 0x000f090e}}}, + {X: Field{[10]uint32{0x00a04cf8, 0x0095ca41, 0x005cae5b, 0x01b558e4, 0x028a7d34, 0x0071e18f, 0x0024f7b0, 0x01e8d285, 0x02bf676a, 0x00196428}}, Y: Field{[10]uint32{0x03e781e7, 0x01419168, 0x02f09396, 0x03b10919, 0x004f8d0c, 0x03a8bdcd, 0x002d972e, 0x0106684e, 0x00030490, 0x00047356}}}, + {X: Field{[10]uint32{0x03cba9a5, 0x025bb271, 0x0159289e, 0x00f7ed6e, 0x01884039, 0x028d9c04, 0x03461a20, 0x03d22f4b, 0x00029fc7, 0x002cf027}}, Y: Field{[10]uint32{0x00f5cfa9, 0x03324ac2, 0x0360ab97, 0x035abcb6, 0x03c6a3e6, 0x0300c38a, 0x03bb1bda, 0x012b4065, 0x026cbce5, 0x0039ed6a}}}, + {X: Field{[10]uint32{0x00fa8bc0, 0x024a4e46, 0x0064426a, 0x03be3f75, 0x02cdc693, 0x022ca65c, 0x03361439, 0x004de9f6, 0x02a8044a, 0x0035e5a3}}, Y: Field{[10]uint32{0x0157a75c, 0x009bb22b, 0x022e5283, 0x01d35d36, 0x0156dd31, 0x004338b9, 0x015dd294, 0x010d3b2f, 0x01892901, 0x00209009}}}, + {X: Field{[10]uint32{0x038e8304, 0x0167c020, 0x0365c6d9, 0x03212d40, 0x033bf6ed, 0x009406b6, 0x02ca172b, 0x03e73347, 0x006c2f98, 0x002295ef}}, Y: Field{[10]uint32{0x03e7d14e, 0x02ff8361, 0x038b992c, 0x00404691, 0x01bf6434, 0x02fe9a30, 0x00b5d67c, 0x0166150e, 0x0062a0f8, 0x000bafd5}}}, + {X: Field{[10]uint32{0x0073fd22, 0x03435418, 0x03b4e551, 0x034dfc3b, 0x011a555d, 0x023218f3, 0x00b8d18f, 0x0142a30f, 0x00416847, 0x0014621a}}, Y: Field{[10]uint32{0x02f3f192, 0x0145f68d, 0x03691f30, 0x0141b14b, 0x006a28ce, 0x00bd660f, 0x00e0f15c, 0x00eb429b, 0x009b9e98, 0x003ac17c}}}, + {X: Field{[10]uint32{0x027c85f3, 0x0124f8bd, 0x037b0ab7, 0x005a6e7a, 0x02d3a026, 0x00575574, 0x02ab8566, 0x01e53ea7, 0x035f27e4, 0x003faa30}}, Y: Field{[10]uint32{0x00148864, 0x012940a3, 0x03c889b5, 0x03d52aa5, 0x03b24158, 0x038ae8b9, 0x01123378, 0x01b8ea61, 0x0297cf0a, 0x0030c977}}}, + {X: Field{[10]uint32{0x01f94b63, 0x01409fb4, 0x0051077b, 0x01a5fbd3, 0x01d79d5f, 0x01707273, 0x01ab955d, 0x009793e3, 0x00ccd7bc, 0x001984b3}}, Y: Field{[10]uint32{0x0057860b, 0x0012668d, 0x0320073d, 0x0200570e, 0x03e9bd6a, 0x0094f7e6, 0x02abab50, 0x02342b9e, 0x02c17a37, 0x00185544}}}, + {X: Field{[10]uint32{0x006f8746, 0x02f5f92a, 0x03533cbd, 0x019e7db4, 0x02f8a7ae, 0x00c66655, 0x009d6983, 0x01676c13, 0x007a4998, 0x0032662c}}, Y: Field{[10]uint32{0x01d17138, 0x0046fc23, 0x038a66af, 0x03a444e0, 0x0137d6b5, 0x03a881ba, 0x019d81b0, 0x01dd7a89, 0x0371919e, 0x00367804}}}, + {X: Field{[10]uint32{0x024cc1e1, 0x003ec30e, 0x004bb052, 0x00551835, 0x00c32e39, 0x00f77242, 0x00fcd0d2, 0x02597e15, 0x0269c5cf, 0x00170391}}, Y: Field{[10]uint32{0x035adea1, 0x02e42719, 0x0055464f, 0x03b722cf, 0x0189f5ed, 0x0343df2e, 0x0335ffac, 0x0269374b, 0x03af7e0f, 0x0033faee}}}, + {X: Field{[10]uint32{0x0158c0fd, 0x036fee1c, 0x0350bcb2, 0x016d93e5, 0x037ab319, 0x01aa74fe, 0x02f6433c, 0x01459fc1, 0x02483038, 0x00343f76}}, Y: Field{[10]uint32{0x031283db, 0x000838fb, 0x03c358f0, 0x0057442a, 0x03f5c6e3, 0x01860cda, 0x02e13598, 0x03d87f20, 0x01776a34, 0x00133795}}}, + {X: Field{[10]uint32{0x024a3e81, 0x01c0617e, 0x00fd37bc, 0x014c66df, 0x0007cab1, 0x0088b39d, 0x01482656, 0x03d96817, 0x030fd78b, 0x00364955}}, Y: Field{[10]uint32{0x03c1924c, 0x0360dc21, 0x00ed1673, 0x03833740, 0x00ff52be, 0x027195d7, 0x021a5c7b, 0x02ea4068, 0x019ac448, 0x00000f0e}}}, + {X: Field{[10]uint32{0x018374c8, 0x030861c2, 0x00f9a1d0, 0x013f5e06, 0x02a023cc, 0x0212c200, 0x037d6074, 0x012eb081, 0x016d81f8, 0x001174ad}}, Y: Field{[10]uint32{0x0019d7f4, 0x01901067, 0x03f05030, 0x007e122e, 0x00982941, 0x009598f3, 0x010506ea, 0x032cdeb5, 0x00d192a9, 0x00053286}}}, + {X: Field{[10]uint32{0x02157400, 0x005c2de7, 0x03fba5b7, 0x01e196a4, 0x00ea8c19, 0x03e6843e, 0x013404dd, 0x0316efde, 0x00118588, 0x001ab4eb}}, Y: Field{[10]uint32{0x011686d7, 0x018bfa60, 0x02c97a87, 0x02b45cc7, 0x02382eb5, 0x035d8a4b, 0x0320e80f, 0x00b0ffb7, 0x001f1e24, 0x003e895d}}}, + {X: Field{[10]uint32{0x02595f52, 0x0387afd2, 0x00bf5028, 0x00a00b77, 0x0026d540, 0x004ac876, 0x03ea9e39, 0x02582de4, 0x0045b6dc, 0x00176891}}, Y: Field{[10]uint32{0x01f16026, 0x01007cd9, 0x005fd01b, 0x03663222, 0x02fabfa0, 0x03e28bf4, 0x015063bf, 0x0329a626, 0x038cad1d, 0x002f063f}}}, + {X: Field{[10]uint32{0x0132b346, 0x0057bf2b, 0x00f445ed, 0x0227549f, 0x03d7b5f1, 0x01975c4c, 0x039b89f8, 0x021b4a4e, 0x006811ce, 0x00377fd9}}, Y: Field{[10]uint32{0x027f5737, 0x03b68d95, 0x0110db1a, 0x019c4fa9, 0x034d236b, 0x004ac070, 0x021ae080, 0x0005af84, 0x0194cb22, 0x001c983a}}}, + {X: Field{[10]uint32{0x0097f029, 0x0279a6fe, 0x012436ad, 0x02637275, 0x02c1030d, 0x02142611, 0x032f50bc, 0x03ea4f43, 0x033b9120, 0x002a2e7f}}, Y: Field{[10]uint32{0x0066c591, 0x01f8cca1, 0x017b2359, 0x03da8ac7, 0x00c866aa, 0x00ec1fbf, 0x01a4c2ca, 0x01a1cbaa, 0x029a4e51, 0x00172fe8}}}, + {X: Field{[10]uint32{0x01dbcafd, 0x03068054, 0x00eb7a2f, 0x01921a3b, 0x02628752, 0x03237bac, 0x03c18eda, 0x0275a9c8, 0x03fb177b, 0x00250c1d}}, Y: Field{[10]uint32{0x00e7eb4e, 0x03d2a546, 0x01442e48, 0x004be97f, 0x03ccb6e3, 0x031f7e4f, 0x038248da, 0x0007274f, 0x01fc41ad, 0x0000866a}}}, + {X: Field{[10]uint32{0x0058b8e3, 0x0043cd99, 0x0174e9e8, 0x027e9593, 0x0382b33f, 0x00917aef, 0x0360f524, 0x0205ebf7, 0x01ac09c9, 0x001d72d8}}, Y: Field{[10]uint32{0x0003c367, 0x02b7f7bb, 0x00fb85b3, 0x01df3563, 0x02664414, 0x0277dae7, 0x00986f5f, 0x00210d18, 0x01bdf66f, 0x002aa04d}}}, + {X: Field{[10]uint32{0x031fccc8, 0x0039f238, 0x010c5075, 0x03cee6eb, 0x02c34fdc, 0x0239fc2b, 0x00922b22, 0x023a152f, 0x017727cb, 0x0006edf8}}, Y: Field{[10]uint32{0x00221ca3, 0x00368e30, 0x023d5238, 0x0030f989, 0x02855ea0, 0x0109737a, 0x01e322c2, 0x0179c2f6, 0x00861e85, 0x002efdca}}}, + {X: Field{[10]uint32{0x03ee8dbb, 0x02a536a2, 0x02a2eafd, 0x01c72638, 0x0087f024, 0x001743cc, 0x034b41cf, 0x036fcd16, 0x004b39e9, 0x002510ce}}, Y: Field{[10]uint32{0x024544ee, 0x0380723e, 0x02504aba, 0x015fdbde, 0x03e7b5da, 0x01f8e4e7, 0x00ac6e22, 0x0047d8e3, 0x0173ccb2, 0x0038d984}}}, + {X: Field{[10]uint32{0x03740d25, 0x033a9dbb, 0x0183961c, 0x015359a4, 0x00b4c27d, 0x0306a59a, 0x011638ae, 0x02aaca35, 0x01d5a68c, 0x00126f45}}, Y: Field{[10]uint32{0x0318c6e4, 0x01d0e7cf, 0x03e579db, 0x0183ab3c, 0x0377563b, 0x02657303, 0x03b9f0bd, 0x0391f7ef, 0x00688760, 0x001923f2}}}, + {X: Field{[10]uint32{0x02cfed85, 0x02517f5e, 0x02f9073f, 0x01e2960c, 0x02c151aa, 0x001e241f, 0x013684fd, 0x027a1613, 0x038e9280, 0x003431ed}}, Y: Field{[10]uint32{0x02970c89, 0x02e56ce3, 0x01d5707a, 0x01d48ab6, 0x03be91e4, 0x030c1480, 0x0129046b, 0x012902d5, 0x01abbe49, 0x002a0365}}}, + {X: Field{[10]uint32{0x02eb9275, 0x01af5f64, 0x00bf0cd9, 0x0361e5d2, 0x027c4c28, 0x033721d6, 0x018f9c75, 0x0088c97a, 0x01463ab2, 0x0037af77}}, Y: Field{[10]uint32{0x02b9799c, 0x02531c42, 0x00754ab5, 0x0192c4af, 0x0150d020, 0x01cebc96, 0x03b3dd7a, 0x03f2c17f, 0x008dc3ff, 0x0003440f}}}, + {X: Field{[10]uint32{0x03f33998, 0x01004bc6, 0x02dc33f6, 0x032152c0, 0x029f9ebc, 0x03681cc4, 0x022d6bf9, 0x01a8563a, 0x017c192a, 0x00075e6c}}, Y: Field{[10]uint32{0x00f60a5e, 0x039aef53, 0x00a12b78, 0x020af102, 0x020c7876, 0x033d91c0, 0x00d986fb, 0x0322a014, 0x00b3dbc1, 0x001bb206}}}, + {X: Field{[10]uint32{0x0281ca1b, 0x03f4db9b, 0x018449ed, 0x015c9931, 0x0374bd3b, 0x03454d7f, 0x009c38d7, 0x011fa5ca, 0x02ebff5d, 0x000bfadd}}, Y: Field{[10]uint32{0x01f93b74, 0x030ceee2, 0x00899378, 0x01d1e267, 0x03bb462e, 0x03e72af1, 0x02e18cd1, 0x02a08f7e, 0x024a7ba3, 0x00116f53}}}, + {X: Field{[10]uint32{0x00682573, 0x00bf82ec, 0x013c0637, 0x00e52619, 0x013eef1b, 0x0393d7bf, 0x0372ab62, 0x0169dfd4, 0x0190faef, 0x00005343}}, Y: Field{[10]uint32{0x02081453, 0x02a4bd8d, 0x0131236b, 0x025dcae8, 0x01601a4f, 0x01c65a0c, 0x0130f51d, 0x02e4c13d, 0x029a80c2, 0x00145fc5}}}, + {X: Field{[10]uint32{0x03313321, 0x008aafff, 0x02476fd5, 0x00dd1b4b, 0x02ad0941, 0x0042ce6c, 0x00bd9adb, 0x02470ce1, 0x03a5728f, 0x001cc1a9}}, Y: Field{[10]uint32{0x03a915a2, 0x005ee06d, 0x02a85a8e, 0x03b496e1, 0x01574c85, 0x0124bc6c, 0x03bd4e4f, 0x03a1ecd6, 0x02aba5b9, 0x00085788}}}, + {X: Field{[10]uint32{0x0255aaba, 0x0134d89a, 0x0171976d, 0x01e9cdfa, 0x00fd2406, 0x0263eb48, 0x02873a06, 0x036e32cc, 0x014f870c, 0x00217611}}, Y: Field{[10]uint32{0x0117e4a2, 0x010d2c4c, 0x033bb951, 0x03b8446b, 0x01539fe7, 0x02e720cf, 0x02a0715c, 0x027a3948, 0x000a36eb, 0x000db58f}}}, + {X: Field{[10]uint32{0x034384c3, 0x0028392c, 0x00dffc1f, 0x00a25b63, 0x0202f7da, 0x0386448a, 0x01b21cb9, 0x019ea896, 0x03829930, 0x0031a3d9}}, Y: Field{[10]uint32{0x0079e94a, 0x030da04c, 0x014ffb7d, 0x024daca6, 0x0308dcd4, 0x026575a8, 0x02484fb0, 0x00ce1dfa, 0x016a331c, 0x001d39ba}}}, + {X: Field{[10]uint32{0x00214dd3, 0x038c6101, 0x0217fe18, 0x0141a1c2, 0x00e29cd8, 0x00d47227, 0x02d5c9c3, 0x01554211, 0x01115dbe, 0x00205120}}, Y: Field{[10]uint32{0x030d19a8, 0x02af2c59, 0x02785210, 0x00f97b75, 0x01540ea3, 0x011e1a27, 0x03740e92, 0x030a71a5, 0x00b3d4cd, 0x001d775e}}}, + {X: Field{[10]uint32{0x00c945f5, 0x00120558, 0x00ebe3e2, 0x006f3d85, 0x0324214e, 0x01c1bc87, 0x0325993a, 0x0351e3d7, 0x0319de24, 0x000c42d6}}, Y: Field{[10]uint32{0x004318c3, 0x00ccc9c4, 0x021a147e, 0x014fc0a8, 0x01bf04cc, 0x03a1035a, 0x01d017e2, 0x03481782, 0x02ca0f01, 0x0022d0b1}}}, + {X: Field{[10]uint32{0x03c4bc3e, 0x0165d302, 0x03420a02, 0x00471a13, 0x01b0a90f, 0x00b9b514, 0x01e4bcab, 0x038ae77f, 0x03c74baf, 0x0033e291}}, Y: Field{[10]uint32{0x034c97d1, 0x00806ef8, 0x01c3d1cc, 0x01a70299, 0x02614d8a, 0x0321d8af, 0x02331e62, 0x021a65e1, 0x0264a9a7, 0x003c2dec}}}, + {X: Field{[10]uint32{0x038650fc, 0x011ebe62, 0x002d33d7, 0x0221a6e6, 0x03ab5533, 0x00f4ed82, 0x00100ec6, 0x02a4139c, 0x02267352, 0x00283f18}}, Y: Field{[10]uint32{0x0385865f, 0x025bcace, 0x02497e2b, 0x02cfe659, 0x03cd162e, 0x00870e67, 0x0388c395, 0x013ad192, 0x014c16b2, 0x002e8eb9}}}, + {X: Field{[10]uint32{0x00ff8bdb, 0x038f08db, 0x03fb07dc, 0x01c29386, 0x032e1eaf, 0x000114cc, 0x00d03391, 0x03751d61, 0x03e2535e, 0x002ab976}}, Y: Field{[10]uint32{0x03a7449b, 0x02554ced, 0x00321911, 0x03168d56, 0x02a51d85, 0x011cdccb, 0x02784392, 0x001adeec, 0x01f6e558, 0x001f3ea9}}}, + {X: Field{[10]uint32{0x0103ae39, 0x0285eec1, 0x01bd50b0, 0x009a1b69, 0x005c3172, 0x009c1686, 0x000792fb, 0x01d5432f, 0x03115b89, 0x002293a4}}, Y: Field{[10]uint32{0x017cef2c, 0x03a48ff4, 0x016922dd, 0x0362a770, 0x022442ae, 0x02a85d5c, 0x011b976d, 0x00231c5d, 0x01c8d85f, 0x000588eb}}}, + {X: Field{[10]uint32{0x03066463, 0x0336b1a1, 0x03f26a51, 0x028332eb, 0x018627e1, 0x02404096, 0x015cd612, 0x002c254a, 0x0135eca9, 0x0032f3bd}}, Y: Field{[10]uint32{0x03212653, 0x01fee35a, 0x03c259d8, 0x005cd18b, 0x02498fee, 0x03143855, 0x00afb9d8, 0x032670ff, 0x03fac2a2, 0x0019470b}}}, + {X: Field{[10]uint32{0x010f8c99, 0x00bab07b, 0x02609990, 0x0134bab5, 0x010bf12c, 0x00ae7210, 0x0290e336, 0x00af42ea, 0x01594d6a, 0x000965c5}}, Y: Field{[10]uint32{0x0075245e, 0x02b4afca, 0x02a8294b, 0x008b4289, 0x01d974dd, 0x00cfa2ec, 0x004002bc, 0x00132e05, 0x036cc974, 0x00127806}}}, + {X: Field{[10]uint32{0x02f1445f, 0x00b34a6d, 0x02a89167, 0x0178fa6c, 0x00a707da, 0x0203c0d9, 0x0389044c, 0x027daeb0, 0x028b2b04, 0x002dd535}}, Y: Field{[10]uint32{0x01e37740, 0x02bb1793, 0x01da1af2, 0x01097d37, 0x02bea555, 0x037f0bd3, 0x0092e3ed, 0x008f459c, 0x03c1625e, 0x0006ca6d}}}, + {X: Field{[10]uint32{0x03084037, 0x02263fd3, 0x0040aafa, 0x022f4a53, 0x02ab0bde, 0x03ce2d68, 0x03ca2fe2, 0x023ce731, 0x01a850e6, 0x00082ba9}}, Y: Field{[10]uint32{0x03f59444, 0x03877c00, 0x00fc20b4, 0x00f0c48c, 0x02ab1e88, 0x03f9f86c, 0x02fd6a56, 0x019bb1aa, 0x02b3f176, 0x001bb55d}}}, + {X: Field{[10]uint32{0x031979a6, 0x017876f8, 0x01e7bf0d, 0x0341f340, 0x02c6939f, 0x025fae16, 0x008cba9a, 0x03a48cca, 0x0202919d, 0x0009a113}}, Y: Field{[10]uint32{0x009ebfb7, 0x03154817, 0x005a16c7, 0x030a0cb1, 0x00cc08a6, 0x0063ed83, 0x026f11e5, 0x03eb4409, 0x028e06a5, 0x0000f7e6}}}, + {X: Field{[10]uint32{0x0028414c, 0x0372a577, 0x033fd485, 0x01ac68e2, 0x00efbe0a, 0x03b37e6d, 0x00fd413b, 0x026abc9f, 0x026133a6, 0x00046bf2}}, Y: Field{[10]uint32{0x03737b1c, 0x007d6b36, 0x0377b212, 0x03eee724, 0x009e4678, 0x0391ed00, 0x0047bbf8, 0x01ff988a, 0x0390c067, 0x002352e1}}}, + {X: Field{[10]uint32{0x00d2a63d, 0x01e37bba, 0x0160df3d, 0x01ec8f9c, 0x00498633, 0x039fa578, 0x03be09fc, 0x017594de, 0x00d52fe2, 0x00311b85}}, Y: Field{[10]uint32{0x01d2b723, 0x01d7563d, 0x017589b1, 0x03bd0fe8, 0x011f04b9, 0x0377d9e9, 0x0008dd77, 0x03a7fcb4, 0x01ab4211, 0x0028803f}}}, + {X: Field{[10]uint32{0x0055e4d7, 0x03673635, 0x02142d31, 0x00f23d63, 0x01241228, 0x00429d81, 0x01f598a2, 0x03f82491, 0x0212578a, 0x00015c2a}}, Y: Field{[10]uint32{0x00c50ac8, 0x00b03c4b, 0x01601b93, 0x02a57429, 0x019a2bed, 0x0144a81c, 0x03439e08, 0x00378750, 0x0361f8e9, 0x0030a3f6}}}, + {X: Field{[10]uint32{0x03c3fa64, 0x00c4237e, 0x00d1f3a3, 0x02b33ec5, 0x02224236, 0x00e15385, 0x0170b84e, 0x033a80a1, 0x035e88a1, 0x0034c4b6}}, Y: Field{[10]uint32{0x0397e1de, 0x0185fdb3, 0x026cf36b, 0x012ba9cb, 0x0064b8aa, 0x000c724c, 0x01fa0aae, 0x00e0f211, 0x00891843, 0x00329794}}}, + {X: Field{[10]uint32{0x02398087, 0x013b022a, 0x00a6d1fe, 0x02e1d889, 0x01c9be5e, 0x009e7c00, 0x01a9ad99, 0x019c3853, 0x00769981, 0x0007b88a}}, Y: Field{[10]uint32{0x02176dcc, 0x00c727c0, 0x034526ff, 0x02896031, 0x00b68603, 0x01511835, 0x0242c650, 0x038deb7f, 0x0114e303, 0x00188404}}}, + {X: Field{[10]uint32{0x03bb81a0, 0x02a6a955, 0x004a94af, 0x035cb530, 0x011700b9, 0x03259300, 0x005511d1, 0x013fd2ba, 0x02cde2b8, 0x0007ee72}}, Y: Field{[10]uint32{0x03737fcb, 0x0159d497, 0x0038ee04, 0x01acb3e8, 0x0115b130, 0x0108050d, 0x019f59f7, 0x017cab5b, 0x03c1295c, 0x0010c2dc}}}, + {X: Field{[10]uint32{0x011c085b, 0x00685d98, 0x01145f19, 0x02e7e913, 0x034a998b, 0x0201f9d0, 0x032934a9, 0x002d1da7, 0x002dd3cf, 0x00341332}}, Y: Field{[10]uint32{0x01be5fa9, 0x00805a40, 0x0392d155, 0x02b32196, 0x018f4c13, 0x03848f75, 0x02cf1cac, 0x03454710, 0x01afb551, 0x001e9286}}}, + {X: Field{[10]uint32{0x03e7e9aa, 0x03a1c133, 0x01e15712, 0x02295237, 0x038a544f, 0x009f7d77, 0x00b97f1f, 0x0345faea, 0x02088bd4, 0x0007932c}}, Y: Field{[10]uint32{0x019b828d, 0x0119b369, 0x03e515e8, 0x025971c6, 0x03db0663, 0x00ff68fc, 0x019930a5, 0x00cfb39e, 0x021eb729, 0x00360171}}}, + {X: Field{[10]uint32{0x0251590d, 0x01b71237, 0x028c717d, 0x01a77cf7, 0x008f769f, 0x02f3f6ae, 0x032bbadc, 0x02168359, 0x0398707a, 0x001482a8}}, Y: Field{[10]uint32{0x02e9ada8, 0x01495513, 0x0052a39a, 0x01366638, 0x013b5472, 0x0045daab, 0x01095e2f, 0x01e88b02, 0x00e4a904, 0x002634d1}}}, + {X: Field{[10]uint32{0x03614ef2, 0x032b1b9e, 0x005d7a79, 0x0325e0c9, 0x00e7080a, 0x001a4ff2, 0x00d45a06, 0x03bdf0b8, 0x03de165b, 0x000ea7f8}}, Y: Field{[10]uint32{0x03038d4a, 0x00187bdc, 0x0398e151, 0x0126a9b5, 0x007607ff, 0x024d3222, 0x02895f52, 0x037bbf1e, 0x0046fd3f, 0x00014625}}}, + {X: Field{[10]uint32{0x02149938, 0x03639cf6, 0x0005665f, 0x00190dcc, 0x018e3c68, 0x02db5a32, 0x0289a3a2, 0x00201790, 0x01ccc26c, 0x002724a7}}, Y: Field{[10]uint32{0x016ba2fa, 0x0285034e, 0x02dd956a, 0x00b6aaf9, 0x02c81edf, 0x00409d8a, 0x039f6bab, 0x024824fc, 0x0140b4c2, 0x001b7efe}}}, + {X: Field{[10]uint32{0x01be419e, 0x005dd222, 0x00a660d1, 0x02af1a6b, 0x03ee22ab, 0x0179e822, 0x02f1e42e, 0x0019462e, 0x00cef4e0, 0x000d56d8}}, Y: Field{[10]uint32{0x002604e2, 0x011bd0ff, 0x031b1ed1, 0x02baed13, 0x034fc01d, 0x02d4fedc, 0x020eaaac, 0x03ec417f, 0x023bb277, 0x001fd1e2}}}, + {X: Field{[10]uint32{0x03f7f37f, 0x039efcf5, 0x01705dfc, 0x02465d0e, 0x01ea9660, 0x00478406, 0x0389bb1c, 0x01110b84, 0x014f21ad, 0x001daffc}}, Y: Field{[10]uint32{0x0289d763, 0x01a95260, 0x0307b93f, 0x03e2488f, 0x02a29a34, 0x0308b80b, 0x034da79b, 0x02ac4ad7, 0x0291376a, 0x000e1568}}}, + {X: Field{[10]uint32{0x0156b454, 0x023e2d98, 0x021dbfa0, 0x02ffe88b, 0x02becbb4, 0x01620ce5, 0x023aadd3, 0x01e8edf8, 0x00df1057, 0x00246ee7}}, Y: Field{[10]uint32{0x00edbb91, 0x0333c965, 0x01a1ef2c, 0x010b0b2a, 0x00a3edea, 0x005846d7, 0x0053e93d, 0x026c0bb7, 0x039e4f14, 0x003b1b2e}}}, + {X: Field{[10]uint32{0x00865562, 0x00c4296a, 0x02537f8c, 0x01f53acc, 0x010a7dde, 0x003116c2, 0x0081204f, 0x01b184d9, 0x010f1ba8, 0x002795ac}}, Y: Field{[10]uint32{0x028aa67c, 0x010d8756, 0x022d516f, 0x02bc3461, 0x028b523e, 0x027ba31a, 0x03ca1a37, 0x0305b122, 0x013d8552, 0x00337cd1}}}, + {X: Field{[10]uint32{0x008e09f9, 0x0125cb66, 0x00af500f, 0x01d53a69, 0x01a11dcb, 0x00e4c15c, 0x02e28a42, 0x01af7939, 0x014daf28, 0x00139cd6}}, Y: Field{[10]uint32{0x018a36e7, 0x02d47c51, 0x02418cd1, 0x014c20a2, 0x01af0d8e, 0x0289d00d, 0x03d812ce, 0x010b3b80, 0x03d070c0, 0x002967c8}}}, + {X: Field{[10]uint32{0x0123d860, 0x02b254ce, 0x01bb1d9f, 0x01cc12c4, 0x00393d59, 0x032cb185, 0x01d3c557, 0x0227e9a4, 0x03f7e92d, 0x00055bf7}}, Y: Field{[10]uint32{0x013b360b, 0x03ac04e8, 0x032ee620, 0x033408c4, 0x00bff653, 0x0199408f, 0x02d68f64, 0x01d833bd, 0x0237c448, 0x0013a4a5}}}, + {X: Field{[10]uint32{0x028ea03b, 0x0029f9eb, 0x0356998b, 0x01487e24, 0x0170d23d, 0x00f4d36e, 0x017a9052, 0x008cd975, 0x0250eb37, 0x003cb22d}}, Y: Field{[10]uint32{0x001a7881, 0x010aa1c6, 0x0183d72f, 0x031d9ce5, 0x00204488, 0x002f7a7b, 0x03422a56, 0x026fda5c, 0x031484a9, 0x002f66b0}}}, + {X: Field{[10]uint32{0x0351e3e3, 0x01399eb1, 0x0316cd4a, 0x028806b8, 0x0288d526, 0x01ee05ae, 0x01bb92ba, 0x01d0c17d, 0x0257a4a3, 0x0009f74d}}, Y: Field{[10]uint32{0x03be3304, 0x019092e0, 0x00e8c022, 0x0007df61, 0x008a756b, 0x03fa5d79, 0x03af3d51, 0x029005ab, 0x01d3c0fa, 0x0022033f}}}, + {X: Field{[10]uint32{0x03b3d1bc, 0x013c58fa, 0x037081c6, 0x020b099c, 0x037a3901, 0x03312dfc, 0x00c5d981, 0x00d5f00f, 0x020c19f7, 0x003db097}}, Y: Field{[10]uint32{0x0289e43d, 0x039f08a3, 0x03c2f183, 0x014ab7cd, 0x01295341, 0x010ecd62, 0x0144d666, 0x0283e8e6, 0x03ea7c05, 0x0023202c}}}, + {X: Field{[10]uint32{0x03fad4f2, 0x02b1fd29, 0x01f45087, 0x0015c5bf, 0x02ae2803, 0x0274dd84, 0x02847d3d, 0x017a87a8, 0x000c7130, 0x00319e20}}, Y: Field{[10]uint32{0x000b63c6, 0x0127a21b, 0x022d92d5, 0x00e7c41b, 0x0055d41d, 0x02fabd76, 0x0349a42e, 0x00ae3376, 0x03f4d2fb, 0x002f97fe}}}, + {X: Field{[10]uint32{0x03f6d560, 0x0244ba04, 0x03d30931, 0x037e816f, 0x02f98177, 0x023c347b, 0x01e2d3a6, 0x01de1bf2, 0x0221e66b, 0x003cd76c}}, Y: Field{[10]uint32{0x003f29fa, 0x01f30039, 0x007c7bb6, 0x0054da9f, 0x0209eccb, 0x03f96c7b, 0x0174ca5a, 0x00810226, 0x00080e6b, 0x0012266a}}}, + {X: Field{[10]uint32{0x03e69de9, 0x00718e64, 0x00debd02, 0x0013101d, 0x035d944f, 0x00ce2230, 0x01843d6c, 0x018cfb6e, 0x037da915, 0x000ae4f8}}, Y: Field{[10]uint32{0x030522f0, 0x034f2212, 0x001676f2, 0x017f1c94, 0x00366a4a, 0x004c83bf, 0x0372a58f, 0x0287324f, 0x0095c6ff, 0x003acf44}}}, + {X: Field{[10]uint32{0x02091b69, 0x02407459, 0x02331060, 0x02522c52, 0x03e4875b, 0x03f6d01b, 0x01913ab0, 0x011c5bd4, 0x03b39045, 0x00206008}}, Y: Field{[10]uint32{0x0227e7b1, 0x039130a8, 0x00990f98, 0x0227e9f6, 0x026fe573, 0x00e393cb, 0x01af3e1f, 0x03911c31, 0x018a6224, 0x002cfd5c}}}, + {X: Field{[10]uint32{0x00662bb6, 0x00fc180f, 0x001fbdb3, 0x01ec84f7, 0x006645ce, 0x016c5061, 0x02e565b6, 0x029a76ca, 0x026a244c, 0x000059db}}, Y: Field{[10]uint32{0x022e0298, 0x028c7ee0, 0x001fdcf4, 0x026c5bb3, 0x01aeb968, 0x034b1f03, 0x03208300, 0x0177049a, 0x03a5deef, 0x00223872}}}, + {X: Field{[10]uint32{0x00298d54, 0x00b2c877, 0x02e4c391, 0x0150c38c, 0x01d96574, 0x008f8bc8, 0x0229d733, 0x00df78e1, 0x01a1a925, 0x0000be4c}}, Y: Field{[10]uint32{0x030ef904, 0x0077eba8, 0x03ccc52e, 0x03442f6e, 0x0195a5b2, 0x015899c4, 0x036fe43f, 0x003ebbbb, 0x01086fbc, 0x0024ca4b}}}, + {X: Field{[10]uint32{0x01fd0279, 0x01cc3228, 0x001af2d1, 0x03044898, 0x02be8a32, 0x013d1521, 0x03f20d9b, 0x0232462f, 0x0212f0dd, 0x001ee935}}, Y: Field{[10]uint32{0x02401179, 0x00d39e34, 0x00310d02, 0x0316f131, 0x013018e3, 0x0334126a, 0x0220af14, 0x0190c6cb, 0x02a1f5b0, 0x0022ab5e}}}, + {X: Field{[10]uint32{0x001d5e78, 0x01aa9872, 0x023d8528, 0x00233323, 0x03d6974d, 0x008de67a, 0x039b2be7, 0x01ea45a9, 0x02b085fe, 0x0003a37e}}, Y: Field{[10]uint32{0x023f926c, 0x02ead01b, 0x0181c37d, 0x00eec637, 0x00fbaec5, 0x01521eee, 0x0195d47a, 0x02d55b99, 0x006e519d, 0x0008485a}}}, + {X: Field{[10]uint32{0x0184ab5e, 0x02432683, 0x0264c94c, 0x028554d6, 0x02ea751d, 0x01facb9a, 0x01071061, 0x01fbd1be, 0x03bcb159, 0x001f5588}}, Y: Field{[10]uint32{0x00ce7575, 0x0372f0a8, 0x037e4204, 0x0351759a, 0x00701b3c, 0x02f8ba2e, 0x0114b70e, 0x031378c5, 0x03318004, 0x003718e7}}}, + {X: Field{[10]uint32{0x00a7ffa3, 0x03213ee2, 0x02ad57b9, 0x005a0778, 0x001e4ac9, 0x00ee0880, 0x0186194b, 0x02fb1d22, 0x022d8074, 0x00023a07}}, Y: Field{[10]uint32{0x019fa890, 0x02052641, 0x03e6cdc7, 0x026a37e4, 0x03fa94e9, 0x018b40fd, 0x016f6cf7, 0x01120329, 0x001df4a3, 0x0010217b}}}, + {X: Field{[10]uint32{0x028da71e, 0x034ea169, 0x0052b53e, 0x0324ad73, 0x0173e68a, 0x01a71a0a, 0x018affd1, 0x03b98978, 0x03e78290, 0x002a7568}}, Y: Field{[10]uint32{0x00805fd6, 0x026f92ad, 0x02536ee8, 0x0083391e, 0x028d6e8b, 0x01e4ce22, 0x009ed298, 0x01622546, 0x016bf9eb, 0x000736ab}}}, + {X: Field{[10]uint32{0x03dba2cd, 0x02c48f15, 0x00497d64, 0x03c391ab, 0x00984985, 0x00c4be12, 0x037b3134, 0x01f0380e, 0x03cabcda, 0x0013df05}}, Y: Field{[10]uint32{0x034a25d7, 0x02d72a28, 0x00f5e888, 0x002a6eaa, 0x00c87701, 0x0141c334, 0x00be7c1d, 0x0030efcf, 0x01d95f47, 0x002182fb}}}, + {X: Field{[10]uint32{0x03a64921, 0x02ec2ae7, 0x025b5b4f, 0x00f14d5c, 0x01034b8c, 0x0155cd3a, 0x01bd016f, 0x029ee6a4, 0x017a9234, 0x0011e3cf}}, Y: Field{[10]uint32{0x00051a1f, 0x02d364ee, 0x021018ff, 0x015360fc, 0x003f2530, 0x0087a69f, 0x02bca05c, 0x00fc63ae, 0x0394f025, 0x0036e5e8}}}, + {X: Field{[10]uint32{0x027963d5, 0x014bac7f, 0x02329f25, 0x02ad87ee, 0x033ea09a, 0x007685e7, 0x037cc01b, 0x01b9f5a7, 0x017b73d9, 0x002b39f9}}, Y: Field{[10]uint32{0x02908918, 0x03bee249, 0x0211b796, 0x013040c1, 0x017e213e, 0x03809659, 0x010f824b, 0x02f413b2, 0x01f22b8d, 0x003e8094}}}, + {X: Field{[10]uint32{0x0108d1fd, 0x001039ea, 0x01f24374, 0x03e28742, 0x034401f2, 0x0337da7b, 0x013757cd, 0x001dc609, 0x0067f517, 0x003355ba}}, Y: Field{[10]uint32{0x03338fe1, 0x012ee89f, 0x03b90a45, 0x02109ded, 0x0183e4bd, 0x03d8831f, 0x02b29a22, 0x002e9228, 0x021652cf, 0x0021e3dc}}}, + {X: Field{[10]uint32{0x024d5329, 0x00f944fb, 0x03e33e92, 0x01cae819, 0x0167a2c6, 0x01ec9769, 0x031dd249, 0x03e26992, 0x025cd9d2, 0x000c10ba}}, Y: Field{[10]uint32{0x0268b1fb, 0x03906cd6, 0x0261281c, 0x021a3817, 0x02d3fa1d, 0x01b489e8, 0x028568cd, 0x01a85282, 0x0144d551, 0x0002e130}}}, + {X: Field{[10]uint32{0x02712ec0, 0x0147b267, 0x03f1bce3, 0x02455ebc, 0x0130a2e2, 0x02be80d1, 0x002b042b, 0x03b49802, 0x008da094, 0x00015782}}, Y: Field{[10]uint32{0x026b33e9, 0x03274bb1, 0x01db2082, 0x037e0b54, 0x0100caca, 0x00531512, 0x00919335, 0x020c9258, 0x017f6439, 0x0031be0a}}}, + {X: Field{[10]uint32{0x03408966, 0x02d1a44e, 0x01875e63, 0x020fbb5c, 0x01e0e0da, 0x0295e83a, 0x03f91817, 0x024ef28d, 0x013a69dd, 0x002f4b6c}}, Y: Field{[10]uint32{0x01b0da2d, 0x029d0a82, 0x00cf8078, 0x0391016e, 0x00187ee6, 0x03d96cfe, 0x03c25d50, 0x026cbc48, 0x0260f948, 0x0011b849}}}, + {X: Field{[10]uint32{0x03d3d210, 0x0158939f, 0x03ecb609, 0x006661a9, 0x00ef7c52, 0x013b4685, 0x02678e62, 0x0211557f, 0x0110cdbb, 0x001f5e94}}, Y: Field{[10]uint32{0x02c6c37c, 0x01d2965a, 0x00867727, 0x03680570, 0x00626a46, 0x02ea9281, 0x019d640a, 0x011493e0, 0x01c3c0a5, 0x003255e3}}}, + {X: Field{[10]uint32{0x037a3fa7, 0x02cc3d24, 0x037825bd, 0x00a406f5, 0x02fd4e6d, 0x013b6af1, 0x01669813, 0x004d50aa, 0x0317513b, 0x0007bc48}}, Y: Field{[10]uint32{0x010e1ade, 0x012276d6, 0x00039909, 0x02651a13, 0x01123198, 0x01aa327e, 0x011cee33, 0x02f3bcd1, 0x0288a391, 0x0038392d}}}, + {X: Field{[10]uint32{0x0206baaf, 0x00c33a85, 0x01d1949d, 0x021a2e68, 0x029f463b, 0x00cb4bc4, 0x02c6b2e3, 0x02e5db6f, 0x0003766f, 0x003bfe81}}, Y: Field{[10]uint32{0x001cb082, 0x00877bef, 0x003c2382, 0x03116d28, 0x03b0cbfd, 0x0280f785, 0x00de1b7d, 0x03e993ce, 0x0083bf3e, 0x002316c7}}}, + {X: Field{[10]uint32{0x0087d65c, 0x03699868, 0x02069df5, 0x0036743a, 0x0320bf78, 0x01cebd6f, 0x025f0222, 0x02810955, 0x01e976a9, 0x0037249c}}, Y: Field{[10]uint32{0x023d6063, 0x033629ad, 0x010c1944, 0x01f18852, 0x0055ce7c, 0x031ceddb, 0x02f11bb1, 0x034c3261, 0x01e7b27b, 0x0037219e}}}, + {X: Field{[10]uint32{0x00264619, 0x02ad052e, 0x031b2384, 0x024c0376, 0x02a1336b, 0x01d54075, 0x00f69462, 0x0280b086, 0x01c21e1c, 0x0002b877}}, Y: Field{[10]uint32{0x01b26b48, 0x03d0881f, 0x0076a01f, 0x0326a21f, 0x0332466b, 0x026a9db5, 0x00e5c8e1, 0x018497b2, 0x039d300b, 0x000871ac}}}, + {X: Field{[10]uint32{0x0282cf5b, 0x0338ead3, 0x00a1285c, 0x0226fcaf, 0x01033dd9, 0x00c5918d, 0x00924808, 0x00d724ae, 0x000ffe58, 0x002ba8b0}}, Y: Field{[10]uint32{0x03dfa97f, 0x0064eca4, 0x029673e8, 0x035014ee, 0x039aad65, 0x019c2c64, 0x0220e84e, 0x0184490a, 0x00cf935a, 0x00185566}}}, + {X: Field{[10]uint32{0x02ebf696, 0x02322fa2, 0x0066b634, 0x00f98db2, 0x01b45e72, 0x02451d9f, 0x01b30b65, 0x00ea1bd5, 0x021634b4, 0x00244f43}}, Y: Field{[10]uint32{0x01971a9f, 0x01e9710e, 0x00305148, 0x00385235, 0x0039c0c1, 0x00c5c809, 0x02574af4, 0x03f69340, 0x020751af, 0x00385319}}}, + {X: Field{[10]uint32{0x03c26fc0, 0x0094b48e, 0x0005a301, 0x00f621e3, 0x0040fc16, 0x02ec3e72, 0x00d61916, 0x02b20178, 0x0354775c, 0x0013c2cc}}, Y: Field{[10]uint32{0x018da1e3, 0x03f0fcef, 0x01ac3fa8, 0x01ddba15, 0x016c0e10, 0x03cf897c, 0x02eb2eb5, 0x03f7e0e9, 0x00863aed, 0x002c2dd5}}}, + {X: Field{[10]uint32{0x0316129d, 0x028f693c, 0x0083b181, 0x02583e02, 0x02f469df, 0x03197ab4, 0x033b2f75, 0x025e3dd9, 0x014073cc, 0x00176886}}, Y: Field{[10]uint32{0x02f311d1, 0x03051663, 0x031eaf3b, 0x036d8a16, 0x030237b1, 0x0067ad50, 0x00d5e63e, 0x0099c15c, 0x0080743d, 0x002145b4}}}, + {X: Field{[10]uint32{0x03e74a23, 0x03bbb45a, 0x0163dd4b, 0x00c89a74, 0x02a8fbc1, 0x00d0134d, 0x0392fb46, 0x03e46b32, 0x0330ca7a, 0x001db86c}}, Y: Field{[10]uint32{0x027f5326, 0x02b83787, 0x02791bca, 0x000000c6, 0x0002ce28, 0x03fe837b, 0x016f2e52, 0x023bcfb2, 0x0253c590, 0x00042ce4}}}, + {X: Field{[10]uint32{0x02393e64, 0x025d743b, 0x01be1d76, 0x015d9c77, 0x018fe8ef, 0x022c8cd6, 0x03912637, 0x003b860b, 0x008b2f21, 0x00312f92}}, Y: Field{[10]uint32{0x0379f449, 0x01389c2e, 0x02aee10d, 0x01c3e01f, 0x00b910cd, 0x02632809, 0x00beadcb, 0x02695120, 0x012fa1a0, 0x002fb04e}}}, + {X: Field{[10]uint32{0x0333ff37, 0x00329724, 0x0254256d, 0x000134da, 0x0025f5be, 0x00f58230, 0x0313848d, 0x03f5dec7, 0x018da141, 0x000151a4}}, Y: Field{[10]uint32{0x01914ac7, 0x008fa3ce, 0x004dcc2d, 0x02920cdc, 0x03b0b82b, 0x033e686f, 0x0300d716, 0x02f86973, 0x00c79684, 0x0000f475}}}, + {X: Field{[10]uint32{0x026078de, 0x03065809, 0x0210a320, 0x02c6719f, 0x002e6df8, 0x023fc3d0, 0x03368b09, 0x03af44b7, 0x03c42c51, 0x00337f1b}}, Y: Field{[10]uint32{0x0189cb0d, 0x02f81a3f, 0x0063c0fe, 0x0046dbdd, 0x03c26894, 0x02cddd3c, 0x03bef456, 0x01499151, 0x0130023e, 0x0016617a}}}, + {X: Field{[10]uint32{0x00f03034, 0x02ef351f, 0x00e99c99, 0x012d1c63, 0x02036f0e, 0x01023851, 0x021eec62, 0x005281bc, 0x00cc593b, 0x001dcc3f}}, Y: Field{[10]uint32{0x02016b72, 0x023e644f, 0x0001ccc2, 0x02ddbe5c, 0x0152beac, 0x024aa9f7, 0x030151b4, 0x03904a70, 0x03e20736, 0x003c5f43}}}, + {X: Field{[10]uint32{0x0141b3ea, 0x01acd51e, 0x03090572, 0x02a57eb7, 0x01d855a7, 0x03e256f1, 0x00c7b559, 0x0023d19d, 0x03de4743, 0x0022a930}}, Y: Field{[10]uint32{0x00b8594d, 0x0357dc57, 0x018be7db, 0x01085432, 0x0278d9da, 0x03d00fb4, 0x034ae9ad, 0x00988c6f, 0x004a0eac, 0x003c9d71}}}, + {X: Field{[10]uint32{0x0325bb79, 0x01534434, 0x0313c5cb, 0x0375e156, 0x01f32d33, 0x02250124, 0x036f87ff, 0x03a49625, 0x01a497a4, 0x0005649b}}, Y: Field{[10]uint32{0x03ce8e51, 0x03c5b619, 0x00d40d35, 0x01e20a20, 0x001aa03c, 0x0327dc6e, 0x031bf67e, 0x02fea3a1, 0x00b65b1e, 0x00056b18}}}, + {X: Field{[10]uint32{0x01b1710d, 0x02bbaf7d, 0x02dbb35f, 0x01175159, 0x02fc99f5, 0x00005a23, 0x0062b48f, 0x0055d1e5, 0x00feaa74, 0x00157d3d}}, Y: Field{[10]uint32{0x0302d15f, 0x01486d2e, 0x03e0f662, 0x02b6db8f, 0x03d015a4, 0x01f7fb0f, 0x027b8945, 0x0132139d, 0x020563f2, 0x00203b3a}}}, + {X: Field{[10]uint32{0x00e93cee, 0x00dfda38, 0x03e0d0b1, 0x035d335c, 0x02f04a60, 0x0136ccdf, 0x0357c4ae, 0x01fccfe8, 0x02cf402f, 0x0025695a}}, Y: Field{[10]uint32{0x036501fd, 0x0086d3bb, 0x021a4bd5, 0x038f396d, 0x01d21c89, 0x00c326b9, 0x034e72ca, 0x02ea105b, 0x01bfb7c9, 0x0039c901}}}, + {X: Field{[10]uint32{0x027a2aac, 0x02206ae3, 0x03cd64b0, 0x03fc1266, 0x03c2a697, 0x00daa5e0, 0x0034b7bc, 0x01eed44c, 0x0190b50d, 0x000a2a7f}}, Y: Field{[10]uint32{0x0394a788, 0x00fea8e5, 0x01720b58, 0x03d453e8, 0x01a37cfa, 0x005421e0, 0x02635968, 0x01fa9268, 0x01b05c7e, 0x001dac54}}}, + {X: Field{[10]uint32{0x0334b672, 0x03e97bf9, 0x0393cb36, 0x034e6736, 0x00b571e2, 0x02b0e3ac, 0x0116b93e, 0x018b1290, 0x01136d64, 0x001901b7}}, Y: Field{[10]uint32{0x01d7fd1e, 0x03a8d617, 0x0274fdef, 0x006a5df6, 0x01b4c5eb, 0x00aa447e, 0x019c9d06, 0x0398514b, 0x037b92b8, 0x000e5d31}}}, + {X: Field{[10]uint32{0x01066529, 0x022d99bc, 0x003c2e3c, 0x01f8dd9c, 0x029d40c3, 0x024cdd1f, 0x03ef9039, 0x03870253, 0x023fcb62, 0x0023f63c}}, Y: Field{[10]uint32{0x014ab5c8, 0x003815c3, 0x02baf310, 0x004c8244, 0x025ba190, 0x016498a5, 0x029099d7, 0x005d6c92, 0x039bde10, 0x0022c2cb}}}, + {X: Field{[10]uint32{0x03a1a24b, 0x03bb0558, 0x023cc3e0, 0x02acb49c, 0x03cc525b, 0x02325390, 0x00679bdc, 0x01cda270, 0x022bd445, 0x00145e02}}, Y: Field{[10]uint32{0x00e01109, 0x000fe8bc, 0x03dfc646, 0x028cd4c3, 0x014b6b08, 0x024e4713, 0x006e5db2, 0x02347b1d, 0x019b0e17, 0x001409b3}}}, + {X: Field{[10]uint32{0x00283561, 0x02d0aa63, 0x01065bee, 0x00d1a123, 0x025b8c85, 0x0364e772, 0x02fe0e5c, 0x03e6fcf4, 0x013ae7c7, 0x002a8052}}, Y: Field{[10]uint32{0x00da82d9, 0x0220440b, 0x030f0e9e, 0x0022cf84, 0x021783e9, 0x006678f4, 0x023af145, 0x02d78d91, 0x03454a42, 0x002823c2}}}, + {X: Field{[10]uint32{0x00ceab70, 0x029814c6, 0x01afb97f, 0x035065b3, 0x010e4456, 0x01a89fa0, 0x001c4fad, 0x039b52b2, 0x0349d4bb, 0x003362ad}}, Y: Field{[10]uint32{0x01f59beb, 0x00bc6e17, 0x01231da3, 0x020ec14a, 0x01ca8621, 0x0335eb4f, 0x01c92493, 0x02883780, 0x0339bd68, 0x003f1b1d}}}, + {X: Field{[10]uint32{0x01fe3e32, 0x02fb1715, 0x027eae00, 0x03871668, 0x02379f56, 0x002ed221, 0x017bc54e, 0x014079e8, 0x02f2e824, 0x0039a737}}, Y: Field{[10]uint32{0x02c41cd4, 0x03616362, 0x03c80f41, 0x0399b12e, 0x013fe735, 0x018a45e4, 0x0125338f, 0x014e6040, 0x01104037, 0x0003a03b}}}, + {X: Field{[10]uint32{0x03ff8a8d, 0x00623836, 0x004a2f30, 0x01a5e406, 0x00f6b6ec, 0x038c6073, 0x0308af19, 0x007dfbbe, 0x02d9182b, 0x0016939c}}, Y: Field{[10]uint32{0x01f9da19, 0x0049408b, 0x00bee2d9, 0x0189ed6c, 0x017b62ea, 0x02b0ce97, 0x031c5885, 0x015f60ec, 0x03f2d5a8, 0x000b473d}}}, + {X: Field{[10]uint32{0x00984a2b, 0x00f46d7e, 0x0330a8f2, 0x01517740, 0x020d78f1, 0x024829e7, 0x00416b03, 0x01884504, 0x005948bd, 0x00278002}}, Y: Field{[10]uint32{0x008e3f62, 0x00459d32, 0x03338db6, 0x01683634, 0x00151ab8, 0x036c37f2, 0x030680ce, 0x03f4f308, 0x00920412, 0x000dab81}}}, + {X: Field{[10]uint32{0x018bc6ff, 0x00bc84c9, 0x00d18ac8, 0x0217c2f2, 0x0399f884, 0x03a90971, 0x02d35d4a, 0x021cd3b2, 0x03aeb12f, 0x001f82e5}}, Y: Field{[10]uint32{0x01f3946e, 0x01902d5a, 0x037bccc7, 0x01011a4b, 0x00ab95fb, 0x02c2db97, 0x003b0b8a, 0x006da8ff, 0x0224a4be, 0x0039dbd3}}}, + {X: Field{[10]uint32{0x01038ee2, 0x00cdb198, 0x00c860b9, 0x039606f8, 0x02b3064b, 0x019e1e3e, 0x0281ff28, 0x03125772, 0x00fb1bdf, 0x00188a17}}, Y: Field{[10]uint32{0x009b5161, 0x013705e1, 0x024f771f, 0x0360869b, 0x00a65ca8, 0x03c56775, 0x0285ea08, 0x03a7cd03, 0x03e45f60, 0x003cb246}}}, + {X: Field{[10]uint32{0x02c82623, 0x03c49aa9, 0x00ac8006, 0x02ebbbcf, 0x00cd3765, 0x01b57067, 0x01870ef3, 0x02d735a6, 0x02812de1, 0x001c08d3}}, Y: Field{[10]uint32{0x01330736, 0x00e6ee10, 0x036ec071, 0x01a43f56, 0x023140f7, 0x0011ce2e, 0x03f3c920, 0x029ddc98, 0x018a0f92, 0x0038b6fe}}}, + {X: Field{[10]uint32{0x015db07d, 0x025e29f3, 0x025e6136, 0x0399fd2f, 0x037dc1b4, 0x010d2c29, 0x0240ef57, 0x035737b7, 0x00618f31, 0x002b9dc1}}, Y: Field{[10]uint32{0x013d16e6, 0x034fa4f6, 0x03b01d46, 0x004a5459, 0x005cc43e, 0x001d00df, 0x0120e420, 0x01121cfd, 0x01646558, 0x00293894}}}, + {X: Field{[10]uint32{0x006f2b53, 0x0126dbc9, 0x026049e3, 0x039f590f, 0x005b7f4c, 0x01a39825, 0x02b78fb7, 0x01a62d22, 0x008fe4db, 0x0033b1eb}}, Y: Field{[10]uint32{0x025fadfb, 0x01b4006d, 0x03c325ca, 0x03d2035a, 0x017f5d3c, 0x0293f20c, 0x03bfd2a7, 0x001a150c, 0x01459933, 0x001246ed}}}, + {X: Field{[10]uint32{0x005eee36, 0x013571df, 0x006658db, 0x033f0bfe, 0x010852e4, 0x01588a5e, 0x02f62e83, 0x03927c9d, 0x0296b051, 0x002009db}}, Y: Field{[10]uint32{0x002f6d9d, 0x035f713d, 0x0330cf06, 0x0394dccf, 0x002c4d4c, 0x03dd44e9, 0x00d526e5, 0x0227c21c, 0x02968825, 0x003d4435}}}, + {X: Field{[10]uint32{0x0285b27d, 0x0110c5f6, 0x02741b89, 0x03260af6, 0x00e9e351, 0x03e3e142, 0x0163934e, 0x03eabb98, 0x03d49d85, 0x002c6409}}, Y: Field{[10]uint32{0x0247a824, 0x02ecdcba, 0x002d6dba, 0x0048815d, 0x028439f8, 0x00bac10b, 0x038443af, 0x039a72cd, 0x01cbdec0, 0x00304918}}}, + {X: Field{[10]uint32{0x030c792c, 0x0016cb95, 0x0308129e, 0x01bfef10, 0x01989c65, 0x02b851fc, 0x013fc78a, 0x0300074f, 0x014acf07, 0x0015d667}}, Y: Field{[10]uint32{0x018514b0, 0x02ef7100, 0x03a23f13, 0x03ce4042, 0x0238b57a, 0x02d2d3c0, 0x00e181b1, 0x02e85b86, 0x020fd215, 0x00173e3a}}}, + {X: Field{[10]uint32{0x02e6e4b7, 0x01b9063a, 0x01490bad, 0x0230ac1f, 0x00306e6f, 0x014f9d8f, 0x03cda2b6, 0x002e0b14, 0x0283fa11, 0x0016add8}}, Y: Field{[10]uint32{0x015e8ea0, 0x00deaead, 0x02884f74, 0x01c9058a, 0x03aebe82, 0x00decfe0, 0x027de95b, 0x01e38c5e, 0x0243cc2a, 0x003fcd95}}}, + {X: Field{[10]uint32{0x019d4a85, 0x000f9fe5, 0x00898649, 0x03910943, 0x0266ea88, 0x02800c77, 0x012dd45f, 0x035edfa9, 0x01e48602, 0x001ee4f6}}, Y: Field{[10]uint32{0x022b52f0, 0x01474cc5, 0x01099a48, 0x01807cab, 0x030f6dd0, 0x03beb5b0, 0x00f50a0f, 0x007fa428, 0x02015ab9, 0x0026732c}}}, + {X: Field{[10]uint32{0x0396ebb6, 0x038b38be, 0x00a9307e, 0x0086e584, 0x011de26a, 0x02cded2e, 0x0101be72, 0x009dd904, 0x00b6af64, 0x000b561e}}, Y: Field{[10]uint32{0x00fc585a, 0x012f5f0b, 0x018f547d, 0x01aedf48, 0x00a88706, 0x019c5bcb, 0x00815d94, 0x00013a08, 0x005ddf4b, 0x0004e3b8}}}, + {X: Field{[10]uint32{0x0160af3b, 0x00c9a739, 0x03ee7ac1, 0x03d4e33e, 0x03cf1ccf, 0x039072d5, 0x00a0fce2, 0x00cb6809, 0x0068eebc, 0x000758dc}}, Y: Field{[10]uint32{0x0276eadb, 0x0333f4b0, 0x009ed1b4, 0x0252dfba, 0x02d589a4, 0x0377282b, 0x005ce542, 0x0191159a, 0x01f1a289, 0x001aa4cb}}}, + {X: Field{[10]uint32{0x027de64c, 0x0273c111, 0x029a3947, 0x03bc3fa4, 0x0326a478, 0x0244ac15, 0x0187a680, 0x0048d7cc, 0x036b460e, 0x0020aeae}}, Y: Field{[10]uint32{0x0345647f, 0x00227844, 0x00faff51, 0x0068c9f4, 0x015de43a, 0x013560da, 0x033c11c9, 0x000e5807, 0x0233603d, 0x000ea7d3}}}, + {X: Field{[10]uint32{0x0348090a, 0x01b72a82, 0x01262c27, 0x00d0306e, 0x00a01c51, 0x036ab984, 0x03d899a9, 0x016ff6d8, 0x031d4e71, 0x002ba1b9}}, Y: Field{[10]uint32{0x00fd7b5e, 0x00778a53, 0x02126a30, 0x020e7271, 0x006f2f9e, 0x02d1619e, 0x02c4df93, 0x023deffa, 0x008bfcae, 0x000d592d}}}, + {X: Field{[10]uint32{0x02a413e8, 0x01d0d90a, 0x0000ef57, 0x02f247d0, 0x02664c50, 0x007accad, 0x02d6ad7f, 0x00730fd2, 0x02fbfc66, 0x000d6970}}, Y: Field{[10]uint32{0x02d6cde5, 0x006f33b2, 0x02752711, 0x0249332b, 0x01b901d6, 0x022a0721, 0x00727826, 0x019920f8, 0x01a2887f, 0x0012940a}}}, + {X: Field{[10]uint32{0x0058e2dc, 0x01ac1a56, 0x0360ecbc, 0x0259b1b5, 0x02763244, 0x03494766, 0x027c29ad, 0x00229d87, 0x007f4dd5, 0x000e1afc}}, Y: Field{[10]uint32{0x02407696, 0x006b61f7, 0x01f41e81, 0x008456a0, 0x020f07c6, 0x023ec52c, 0x0103e196, 0x0280e076, 0x00049c1f, 0x00353c52}}}, + {X: Field{[10]uint32{0x02346f96, 0x0379aa84, 0x00909fab, 0x01f32f5c, 0x03f9c46c, 0x02441361, 0x02c445ec, 0x03d33142, 0x001c9bd6, 0x0037fb0e}}, Y: Field{[10]uint32{0x017553f1, 0x033fc09e, 0x03f2e56c, 0x01da922d, 0x03d1ce0f, 0x0365a516, 0x017ef3ca, 0x01926f7e, 0x00f825b6, 0x00179cd1}}}, + {X: Field{[10]uint32{0x002abbb2, 0x0307aa21, 0x00aaa007, 0x000b48d6, 0x02f8a243, 0x03a82ff0, 0x013e0b70, 0x00133152, 0x00c604db, 0x000d81b7}}, Y: Field{[10]uint32{0x0287301d, 0x011f9e15, 0x025edbb5, 0x02c6f880, 0x0387eea8, 0x03b28d99, 0x03569a1f, 0x026dd2e2, 0x003bbc4d, 0x0029721d}}}, + {X: Field{[10]uint32{0x012b0016, 0x014a0979, 0x012b6660, 0x00e239db, 0x00db0860, 0x007464a8, 0x03025a47, 0x025b8a68, 0x0337e190, 0x000d1079}}, Y: Field{[10]uint32{0x01eef0da, 0x02d83de0, 0x01b9e7db, 0x0128de18, 0x015eb9bd, 0x02c8ce8e, 0x003ad47b, 0x032639cf, 0x037ed5ca, 0x0001b443}}}, + {X: Field{[10]uint32{0x02636e99, 0x01504289, 0x03030002, 0x02fd737f, 0x01b1d902, 0x015aa73d, 0x02a7a5c4, 0x0230d2d7, 0x002e460d, 0x002cb25f}}, Y: Field{[10]uint32{0x02057b7c, 0x0227a8f8, 0x02bfa232, 0x007c9c85, 0x021f151e, 0x03da5cf8, 0x03417b3c, 0x03bcc1d4, 0x0081a8c8, 0x0019c4cc}}}, + {X: Field{[10]uint32{0x03e045fd, 0x03054055, 0x01a973b6, 0x02dcf6d1, 0x019b7932, 0x016409ed, 0x03fdabed, 0x00f773e3, 0x018b59a4, 0x0009d02f}}, Y: Field{[10]uint32{0x03b02a85, 0x01e01fa4, 0x0182e1ea, 0x0392c3af, 0x03987aab, 0x0304ddd4, 0x00787a63, 0x006b50b0, 0x02b1f69f, 0x002041bc}}}, + {X: Field{[10]uint32{0x01b6c21b, 0x01597862, 0x009a69ee, 0x01a76331, 0x00aaa8e2, 0x00fe5003, 0x00b4f400, 0x02530336, 0x03d9bdbd, 0x00286b3f}}, Y: Field{[10]uint32{0x02f0235b, 0x0305afc3, 0x00a66df7, 0x03033065, 0x00bcc4fd, 0x03d393d1, 0x00acfbd4, 0x03d4625d, 0x017e0733, 0x0018bb1f}}}, + {X: Field{[10]uint32{0x03349847, 0x007d05d5, 0x00cff630, 0x02f4ccb6, 0x019a5357, 0x00e34eab, 0x038c0f15, 0x012b30c9, 0x02d68d52, 0x00142eca}}, Y: Field{[10]uint32{0x03acfb32, 0x00d4a1fe, 0x03139b85, 0x039659df, 0x02ba4b33, 0x03bc062e, 0x03d4c6e1, 0x009af6e5, 0x03d5d035, 0x00363f0c}}}, + {X: Field{[10]uint32{0x034fdbd9, 0x03420e17, 0x0132ec9f, 0x02823f43, 0x01948e2c, 0x008a2040, 0x035e8601, 0x02d3eb59, 0x02626031, 0x003af7ec}}, Y: Field{[10]uint32{0x000dbf2e, 0x018a69e9, 0x02a0a9c4, 0x010a2546, 0x034f853a, 0x019b8c66, 0x03964e44, 0x0044f76c, 0x026cc470, 0x002c1e01}}}, + {X: Field{[10]uint32{0x018bd48f, 0x022dd0ba, 0x001f63a4, 0x03e05c55, 0x01d57b35, 0x0023f56b, 0x02f73e82, 0x00a8bef7, 0x00236548, 0x00176bd3}}, Y: Field{[10]uint32{0x0287f967, 0x031d728b, 0x0327db2c, 0x03cb08c0, 0x009cbd11, 0x03e8f7fb, 0x03fc83c4, 0x02181fd7, 0x03cb5a24, 0x0024056f}}}, + {X: Field{[10]uint32{0x028533c7, 0x0147327b, 0x0277d085, 0x017cac4a, 0x01238c90, 0x00d4fe09, 0x0219517f, 0x0020519e, 0x00205d84, 0x0008b6e7}}, Y: Field{[10]uint32{0x006dcdf8, 0x01c0e2ce, 0x0231c85f, 0x00a6d811, 0x027ad19e, 0x02e6b3c3, 0x02192642, 0x00a8a28c, 0x03c82343, 0x001a0286}}}, + {X: Field{[10]uint32{0x00c100ae, 0x01ca1875, 0x00d4f4db, 0x016111a5, 0x019fb446, 0x021b9b95, 0x0225213f, 0x02f94649, 0x01d102e8, 0x0010110d}}, Y: Field{[10]uint32{0x011586d1, 0x0213de1b, 0x00f4cb62, 0x016a5078, 0x02dd734e, 0x03e09246, 0x02047768, 0x03bbeba3, 0x0282b321, 0x0027af39}}}, + {X: Field{[10]uint32{0x0037530f, 0x00994cba, 0x009f260c, 0x027331a7, 0x00fe59df, 0x0354b687, 0x0200d1a3, 0x029b7be1, 0x02ff6831, 0x003730db}}, Y: Field{[10]uint32{0x0377a893, 0x0256b307, 0x014d65b7, 0x03fda643, 0x03b6b385, 0x01e159b2, 0x0298c135, 0x02dfa17a, 0x01e67360, 0x0021826d}}}, + {X: Field{[10]uint32{0x001a1514, 0x014f9e67, 0x019a8b43, 0x0101178b, 0x00e991d1, 0x018cf2d2, 0x004cd04c, 0x00e0f929, 0x03941a1c, 0x003bc37e}}, Y: Field{[10]uint32{0x036f6f42, 0x01721abd, 0x006d461e, 0x02f0f8cd, 0x019c3599, 0x01a4fb41, 0x033afabf, 0x017e6adc, 0x0160f2a7, 0x00009a17}}}, + {X: Field{[10]uint32{0x01766b8a, 0x02f14dc7, 0x01b3086a, 0x02eb6758, 0x02410b0f, 0x03299ac1, 0x012e18f2, 0x03bf5ad3, 0x00fdc6c3, 0x00092213}}, Y: Field{[10]uint32{0x00e2267d, 0x01ec5f6b, 0x0119e465, 0x0066a9a1, 0x0086a786, 0x0288f04c, 0x015c6bf8, 0x036a9f4e, 0x008566f3, 0x001f0737}}}, + {X: Field{[10]uint32{0x02cd8b20, 0x01d18c92, 0x01a450de, 0x00219e36, 0x01485b07, 0x0206dbc1, 0x0207756f, 0x012a04b1, 0x0291c700, 0x001506d9}}, Y: Field{[10]uint32{0x01c609d7, 0x0179d931, 0x0117fc7f, 0x037eba61, 0x00cefff3, 0x008e0de1, 0x009f0d50, 0x010a6b1d, 0x03018a3c, 0x0037733c}}}, + {X: Field{[10]uint32{0x01fa822d, 0x0090b068, 0x03b9a138, 0x0322ee76, 0x02f792cf, 0x03c7e0a5, 0x005eea4f, 0x00b8fea4, 0x01696726, 0x0001518a}}, Y: Field{[10]uint32{0x01e6880e, 0x02b6ff88, 0x0218570d, 0x01c043db, 0x03da2d73, 0x02195967, 0x02d8e7f9, 0x02549d3e, 0x02898e42, 0x0018c048}}}, + {X: Field{[10]uint32{0x00848e83, 0x0200833b, 0x01f6d6e1, 0x01241b3a, 0x003ddfd9, 0x001185bf, 0x0122bb97, 0x004a7734, 0x0112ad2c, 0x002501c2}}, Y: Field{[10]uint32{0x0314017b, 0x02e9b66d, 0x01536d1f, 0x03e0ad5c, 0x00b5d261, 0x0169cca9, 0x0101080b, 0x0327c532, 0x00e56bfa, 0x00270ece}}}, + {X: Field{[10]uint32{0x023ca6c9, 0x02e4a95b, 0x020173ed, 0x0180d94e, 0x02ea73b0, 0x00505ee4, 0x028071cc, 0x01987abe, 0x00e48ddc, 0x000a98cc}}, Y: Field{[10]uint32{0x03fc7d79, 0x01d878f0, 0x016f3d8b, 0x00e1ad54, 0x035802bc, 0x02fd3eea, 0x02d56a3f, 0x030d42e8, 0x01cd4754, 0x002ce314}}}, + {X: Field{[10]uint32{0x03f7424d, 0x02c11eb4, 0x00c39dac, 0x0071fbf1, 0x008c418c, 0x03fd69f5, 0x024078c5, 0x03685d6b, 0x00935f95, 0x002450b9}}, Y: Field{[10]uint32{0x0085cd05, 0x022b732e, 0x02ac0e69, 0x01fd629f, 0x0137d0ab, 0x0293e6c1, 0x0284ea55, 0x00cea7a1, 0x0274c471, 0x00054596}}}, + {X: Field{[10]uint32{0x0285804d, 0x03a995b2, 0x0169ad1e, 0x01c9ff2f, 0x000bb8d3, 0x022351fa, 0x0263ef38, 0x0137bb6e, 0x03295cac, 0x000b8662}}, Y: Field{[10]uint32{0x0380fd52, 0x01ae7b19, 0x02e63067, 0x01a07148, 0x00eb3824, 0x02c720c3, 0x02b0c2b1, 0x03fef854, 0x01b3e700, 0x000c7757}}}, + {X: Field{[10]uint32{0x0272f72d, 0x03d4db2c, 0x0264e5a3, 0x038befc0, 0x0032a671, 0x02f66f16, 0x023e52a7, 0x032bebc4, 0x01e9b2ef, 0x002d138d}}, Y: Field{[10]uint32{0x02a43423, 0x005a9696, 0x02b0871c, 0x0304e4d2, 0x03f80c81, 0x0090f992, 0x032b80a1, 0x027f5098, 0x03e3beb3, 0x00235227}}}, + {X: Field{[10]uint32{0x003a3cd7, 0x037d906e, 0x013beefd, 0x02d6439b, 0x00f609f0, 0x008918f7, 0x02cf365c, 0x012db6d7, 0x0101e132, 0x0037266b}}, Y: Field{[10]uint32{0x0111b682, 0x03f921bb, 0x003decf0, 0x02511e81, 0x03a4c1e7, 0x00e4f021, 0x000ad6a4, 0x02fabccb, 0x02ca2fea, 0x002d2d08}}}, + {X: Field{[10]uint32{0x0162a359, 0x03146ebe, 0x0237648f, 0x03f3a8a1, 0x013029eb, 0x021a3d34, 0x02af89bb, 0x0070b73e, 0x038eeb99, 0x00385d20}}, Y: Field{[10]uint32{0x00e7570b, 0x016b4aa8, 0x01ec70c0, 0x018a086a, 0x000238dc, 0x0369731d, 0x031b60a4, 0x0377252e, 0x008727cb, 0x003e0373}}}, + {X: Field{[10]uint32{0x02583d33, 0x00437ea8, 0x0349765d, 0x0062d5a2, 0x014ca21d, 0x02dce7ad, 0x00d79a48, 0x005b510b, 0x018b15bd, 0x0018900d}}, Y: Field{[10]uint32{0x00ec2d00, 0x00f0375b, 0x0013fa61, 0x005b7ccd, 0x01fc5461, 0x0290db54, 0x02d8caa8, 0x01d543b5, 0x014d724e, 0x001ab2c1}}}, + {X: Field{[10]uint32{0x023f8d70, 0x01a0d0b9, 0x007b2e62, 0x01dcb070, 0x02aa61c0, 0x03f4ebde, 0x03a29b4b, 0x02b03d50, 0x00eb560a, 0x0029d5ff}}, Y: Field{[10]uint32{0x000352da, 0x0031033d, 0x0057b39d, 0x01419d25, 0x02b4c074, 0x02f1a880, 0x00713e27, 0x015743ed, 0x02eff808, 0x00161933}}}, + {X: Field{[10]uint32{0x03777bba, 0x02f5044b, 0x008143a1, 0x02602f1d, 0x01d4b1f4, 0x03942746, 0x02e94162, 0x00527640, 0x007357c3, 0x003cdb84}}, Y: Field{[10]uint32{0x03d1993e, 0x02a5a60e, 0x0025a14a, 0x010de3c3, 0x0045f74b, 0x01b0ff92, 0x00d93967, 0x009a4f90, 0x022d139a, 0x003535f6}}}, + {X: Field{[10]uint32{0x024af99a, 0x01a75648, 0x0020b172, 0x013f3125, 0x004a8e0e, 0x0189dfbc, 0x0134949b, 0x003fdc4e, 0x014b55a4, 0x00213bcb}}, Y: Field{[10]uint32{0x01ea73a6, 0x020c2161, 0x03e3e80a, 0x01d9d53b, 0x0260465e, 0x02c759d4, 0x03f2b7a0, 0x01423d97, 0x00b701d3, 0x0015ebff}}}, + {X: Field{[10]uint32{0x03ce7576, 0x01e1e10f, 0x03f4784f, 0x037d022c, 0x0296b046, 0x03fca2eb, 0x02fdca34, 0x03d9b5f7, 0x024b274f, 0x0004e3bd}}, Y: Field{[10]uint32{0x02e1ecf1, 0x021546ff, 0x03d4ced9, 0x004bb929, 0x01dfe979, 0x000c94bb, 0x02010cbd, 0x01f10d04, 0x00e51d51, 0x003af741}}}, + {X: Field{[10]uint32{0x011f318c, 0x032d820f, 0x0189b435, 0x00a38b66, 0x032d4547, 0x01434c15, 0x02a11455, 0x015a4884, 0x03fe2ba0, 0x003a0bc0}}, Y: Field{[10]uint32{0x0012dcda, 0x017d8fd6, 0x010f2eb2, 0x00dd8099, 0x03613b29, 0x028d3848, 0x02aaf1fe, 0x0162064a, 0x03b9cf29, 0x0006469b}}}, + {X: Field{[10]uint32{0x02afb317, 0x02f4b216, 0x0296be44, 0x02630346, 0x00111170, 0x03cd17b0, 0x035fb3e7, 0x01beb1fa, 0x0000676b, 0x0015a9a1}}, Y: Field{[10]uint32{0x031dfb4e, 0x016c33a7, 0x0194903f, 0x03f33874, 0x02f49ff2, 0x03106067, 0x01dcb5f4, 0x02df316e, 0x027a5ae1, 0x000e9060}}}, + {X: Field{[10]uint32{0x001309f5, 0x028f0cb7, 0x010084ef, 0x006b9029, 0x028f735b, 0x007c9982, 0x02fe255e, 0x00f6d3ce, 0x007f1b35, 0x0020bd5d}}, Y: Field{[10]uint32{0x024a0144, 0x02a64189, 0x03bd7dd5, 0x028a933d, 0x03d05f9e, 0x0055caef, 0x007e4c67, 0x03007dfa, 0x0103f4cc, 0x0010ba2e}}}, + {X: Field{[10]uint32{0x02e0cf13, 0x02b5651d, 0x002bb0bf, 0x03040678, 0x0280ef76, 0x01dacc4d, 0x0389e0c3, 0x00659292, 0x0141c47b, 0x002244da}}, Y: Field{[10]uint32{0x002d3f3b, 0x01d4de8b, 0x0221af6f, 0x01641dfd, 0x01d722e6, 0x005df18d, 0x0071bc50, 0x01593fd2, 0x0385fb6a, 0x002ce8a9}}}, + {X: Field{[10]uint32{0x02238909, 0x018297d0, 0x01df1c73, 0x02ee5d9c, 0x010b9954, 0x03bd7628, 0x030cb51e, 0x03d60003, 0x01690c98, 0x00318942}}, Y: Field{[10]uint32{0x018ec724, 0x01cc68c1, 0x01240219, 0x0365ac7b, 0x01552d5b, 0x0065f83a, 0x013f935e, 0x02ac8937, 0x024c915e, 0x0020f40c}}}, + {X: Field{[10]uint32{0x03c7e3b4, 0x0047f523, 0x00184274, 0x02377439, 0x01ad1293, 0x03aa6761, 0x024a481d, 0x00c80119, 0x02d96391, 0x00388e66}}, Y: Field{[10]uint32{0x03c69d47, 0x01537e24, 0x03298f9b, 0x0287ec43, 0x005d8b1f, 0x02270de0, 0x02836ed3, 0x00a388ba, 0x0162beae, 0x00183fff}}}, + {X: Field{[10]uint32{0x0003d959, 0x03e0870c, 0x007b85a1, 0x035f09f3, 0x020a59c5, 0x032345e5, 0x02383d6c, 0x00a64a69, 0x031c186d, 0x00013402}}, Y: Field{[10]uint32{0x02487640, 0x00c9fa33, 0x01cb4687, 0x0375be35, 0x02dd4aa3, 0x002df1f9, 0x01c8ce7a, 0x0067f527, 0x02d127eb, 0x0021d4ba}}}, + {X: Field{[10]uint32{0x0264121e, 0x025ceba4, 0x003185ea, 0x028d6591, 0x00933cbf, 0x02df8712, 0x02548e98, 0x014b246a, 0x03ef8b8b, 0x000d1198}}, Y: Field{[10]uint32{0x014d9efd, 0x02b9d814, 0x02b06dfe, 0x01738bdc, 0x036fe388, 0x02fa959c, 0x017e6240, 0x023bb2e5, 0x01c89dfe, 0x001cf426}}}, + {X: Field{[10]uint32{0x00de6648, 0x0222ef68, 0x019e35c7, 0x0355f28c, 0x03f411d3, 0x02526d3c, 0x03038d47, 0x00aa60cc, 0x004ddbd2, 0x000dffd2}}, Y: Field{[10]uint32{0x00547c67, 0x02b9aa48, 0x00bfba9a, 0x021a0e60, 0x03a45cf0, 0x03b07d70, 0x03b14554, 0x0236074b, 0x014b5161, 0x0015694e}}}, + {X: Field{[10]uint32{0x03556ca5, 0x0256c185, 0x012e14d7, 0x01c035bc, 0x00d2881f, 0x0331b4f6, 0x01339d14, 0x0019ae42, 0x01db0ad5, 0x0033cef3}}, Y: Field{[10]uint32{0x01678a6f, 0x025e91c4, 0x000b13c1, 0x03dc22df, 0x00b61b90, 0x009d8089, 0x020e4023, 0x003c8188, 0x02bc99e2, 0x003849a1}}}, + {X: Field{[10]uint32{0x01a73402, 0x000bb7d7, 0x00d4149f, 0x02852606, 0x03d35e47, 0x00f5d296, 0x00f91101, 0x0346b28e, 0x02e7db8f, 0x00258740}}, Y: Field{[10]uint32{0x01fed240, 0x0014561c, 0x0282a1db, 0x02b7f8be, 0x01765dc8, 0x03fc85fa, 0x0115ca3b, 0x019df059, 0x02acd698, 0x002518ba}}}, + {X: Field{[10]uint32{0x006ec3ba, 0x02be5fad, 0x0135c5e1, 0x00901169, 0x003648b7, 0x01d2052b, 0x0122ca60, 0x02399497, 0x0390574a, 0x0010f98b}}, Y: Field{[10]uint32{0x01939734, 0x01a8d6cf, 0x033a318f, 0x02167b71, 0x03e141dc, 0x00634140, 0x029e20ed, 0x033c5e4d, 0x025617c1, 0x001b7bc2}}}, + {X: Field{[10]uint32{0x03dfdbb7, 0x02001495, 0x0116033b, 0x02d2a58b, 0x020457e4, 0x0237a4ec, 0x02113cf9, 0x000630d4, 0x03799d79, 0x00279a0a}}, Y: Field{[10]uint32{0x0049041b, 0x00fb1754, 0x001e93f2, 0x0153ba6a, 0x01b29833, 0x010174b2, 0x00468a06, 0x018d0e27, 0x0316bfe9, 0x00276e72}}}, + {X: Field{[10]uint32{0x01a1a8b4, 0x021db935, 0x008f9436, 0x0390800b, 0x025f9682, 0x02148064, 0x0222d130, 0x02d676ca, 0x03a78079, 0x001e4061}}, Y: Field{[10]uint32{0x03fa456e, 0x02564b2b, 0x004de17e, 0x0075a981, 0x02ade0ad, 0x01aa39aa, 0x014381e5, 0x00c600d9, 0x0346f6b4, 0x00009722}}}, + {X: Field{[10]uint32{0x00169583, 0x0339557c, 0x02b1d683, 0x030c356e, 0x01662a0d, 0x016887ff, 0x0222d653, 0x012cce67, 0x038a6c74, 0x0024a292}}, Y: Field{[10]uint32{0x026fcf84, 0x01373266, 0x01eaa75d, 0x03d9a1ff, 0x01323d55, 0x03fb21ea, 0x01af7e45, 0x02552f87, 0x0284c064, 0x000947fb}}}, + {X: Field{[10]uint32{0x02084c88, 0x01b0fd2f, 0x03fde6c1, 0x00fa6efe, 0x03a6ffb7, 0x03262e1b, 0x01872de8, 0x00bcb2b1, 0x00da8118, 0x001a13a2}}, Y: Field{[10]uint32{0x036383fe, 0x03c19173, 0x00bb60bf, 0x02c1abee, 0x03ad179e, 0x01d55eac, 0x01ae45ff, 0x018b5648, 0x019dfc9d, 0x0031146d}}}, + {X: Field{[10]uint32{0x01174343, 0x02defe93, 0x02f6cad7, 0x033aa165, 0x038e8166, 0x02526f3a, 0x00ebfa86, 0x02c335ea, 0x0283a403, 0x0022f74b}}, Y: Field{[10]uint32{0x00177172, 0x032f23ea, 0x03bad08c, 0x0167a7bf, 0x03643bb3, 0x03b24df0, 0x0307b2fe, 0x020be1f5, 0x014797f6, 0x001c8830}}}, + {X: Field{[10]uint32{0x02399543, 0x03a02c2f, 0x008b4b69, 0x01a791a5, 0x03b71958, 0x03e487da, 0x0258ef50, 0x01254a14, 0x03216e3c, 0x0030fe8e}}, Y: Field{[10]uint32{0x02ec1796, 0x03b654c2, 0x0310fc8e, 0x0285d22e, 0x015a519c, 0x0009b0b1, 0x00880503, 0x01986ddc, 0x00ed21f6, 0x003ac811}}}, + {X: Field{[10]uint32{0x037e63a2, 0x028e29eb, 0x02b483d6, 0x034b990a, 0x00195a8b, 0x0034d578, 0x01fb0df5, 0x00a564de, 0x0013eb2d, 0x0007018f}}, Y: Field{[10]uint32{0x030f2abb, 0x03d5cde1, 0x02ed7cfc, 0x01d1fd11, 0x02b00428, 0x0310389a, 0x005005c8, 0x027fd9d7, 0x0392d14c, 0x000814e3}}}, + {X: Field{[10]uint32{0x0331d452, 0x006d7803, 0x0399981f, 0x037841f8, 0x016c6086, 0x009f2d4e, 0x002dc6c2, 0x03063d2e, 0x03977b54, 0x00183019}}, Y: Field{[10]uint32{0x0098429a, 0x0157c637, 0x0013b737, 0x03dc2ab3, 0x02ce0e8b, 0x015ebebf, 0x03d2617b, 0x0046cb9b, 0x02c4e3eb, 0x000fd151}}}, + {X: Field{[10]uint32{0x02a36856, 0x03c022ff, 0x01722c0a, 0x00aebc61, 0x03421cdc, 0x008c7b62, 0x0263e90a, 0x01aaef3c, 0x03999225, 0x003f0573}}, Y: Field{[10]uint32{0x0235d798, 0x00d375f1, 0x0197e276, 0x025fd726, 0x00c01dbd, 0x0268efc9, 0x01d46e46, 0x00214dc3, 0x02a4d9c4, 0x002af8d1}}}, + {X: Field{[10]uint32{0x03249454, 0x023f9109, 0x02ee5c6f, 0x01a99649, 0x001a92b0, 0x0322c1ee, 0x00da262b, 0x00eedd0a, 0x01851817, 0x003d850e}}, Y: Field{[10]uint32{0x0301cf84, 0x00f38635, 0x004aab9f, 0x03a6731e, 0x0011fced, 0x02fa397a, 0x001f06d4, 0x01630835, 0x02ef3a25, 0x002c760c}}}, + {X: Field{[10]uint32{0x0261b5f5, 0x0085b73b, 0x00bc7ad5, 0x010c4275, 0x0301f1fd, 0x01a845aa, 0x02685427, 0x02110907, 0x00a96221, 0x0015e516}}, Y: Field{[10]uint32{0x0053e2d8, 0x0352d84b, 0x03e237bd, 0x01365eba, 0x0021274a, 0x00d6fb5c, 0x00c8d461, 0x015f1857, 0x007468c1, 0x000cf959}}}, + {X: Field{[10]uint32{0x01fe62e7, 0x01479e90, 0x023bd8c0, 0x0007f85f, 0x03abab20, 0x038d57a3, 0x0162678f, 0x0104cad5, 0x03dcb080, 0x0018dd54}}, Y: Field{[10]uint32{0x03572dce, 0x005e4826, 0x00d3c319, 0x025a1d38, 0x036989b2, 0x019ee853, 0x026a9511, 0x01b87fc6, 0x01c2ad58, 0x000a2f5b}}}, + {X: Field{[10]uint32{0x0180e2a3, 0x00dc8bad, 0x028ea66c, 0x036d5dfe, 0x0389e99d, 0x03953d60, 0x01ddb923, 0x02156f88, 0x030f6f64, 0x003baef5}}, Y: Field{[10]uint32{0x02fd4d68, 0x021a09cc, 0x00e1dedc, 0x0260f7d8, 0x007c9866, 0x034eb13b, 0x015606ea, 0x000d1529, 0x017915b5, 0x000f46da}}}, + {X: Field{[10]uint32{0x006c56fb, 0x0143909a, 0x01ddb2e3, 0x022db971, 0x023a6e88, 0x01de448d, 0x011135f3, 0x02c769a2, 0x031f2bf4, 0x0013b224}}, Y: Field{[10]uint32{0x02a09bc7, 0x0277c8d5, 0x019f535d, 0x004155a4, 0x003cbab9, 0x02370f8a, 0x03197704, 0x00c1aaf5, 0x02794c2b, 0x00357db1}}}, + {X: Field{[10]uint32{0x02e9730e, 0x03094eaf, 0x001a735b, 0x01733137, 0x018f4937, 0x03f571dc, 0x004deabf, 0x01f9e9f6, 0x0376fc5b, 0x001ad69f}}, Y: Field{[10]uint32{0x03b58af8, 0x0277d910, 0x00b7af8f, 0x02afdab6, 0x039eafb8, 0x006155d5, 0x02562df1, 0x017daac4, 0x01c48fbf, 0x0007a4d7}}}, + {X: Field{[10]uint32{0x02013af7, 0x0391e227, 0x00f27683, 0x03cc8753, 0x035f5b73, 0x01f8a601, 0x024c7591, 0x02562909, 0x01ebf620, 0x000a8c4a}}, Y: Field{[10]uint32{0x01020da4, 0x006487f4, 0x036c689a, 0x00be9b09, 0x01406673, 0x036e2b1f, 0x0346edef, 0x00a2cfe8, 0x01e4c1fc, 0x003a503d}}}, + {X: Field{[10]uint32{0x0328b5ab, 0x03d458ee, 0x02d124c6, 0x00ef120d, 0x0294a872, 0x02fcb209, 0x0307f345, 0x010fcde0, 0x001ce994, 0x00022ffa}}, Y: Field{[10]uint32{0x00433c71, 0x0192b0fc, 0x01348364, 0x01214b99, 0x0087de98, 0x02345de9, 0x028edc26, 0x017ebe5d, 0x0227857e, 0x00162c5b}}}, + {X: Field{[10]uint32{0x02d61be3, 0x00cdef62, 0x00f831c1, 0x024a8143, 0x01054236, 0x03934d5b, 0x039daf3e, 0x0159b4b4, 0x00d9449c, 0x0011e083}}, Y: Field{[10]uint32{0x0152c2e4, 0x03ca3326, 0x026655e5, 0x0232a6ba, 0x011200d3, 0x00bc9d11, 0x02d069d2, 0x02a04001, 0x02032988, 0x001237eb}}}, + {X: Field{[10]uint32{0x01a934e2, 0x03a64855, 0x01131cd6, 0x0149075f, 0x00f9e8dc, 0x0130fbca, 0x01221d88, 0x00d81627, 0x03ce8e45, 0x000b5fc0}}, Y: Field{[10]uint32{0x03ee9c72, 0x00ae3a2d, 0x0043a57a, 0x01c9b5b2, 0x0116a7b2, 0x00a1813e, 0x014d55fe, 0x03ce387c, 0x03c05a39, 0x0021052c}}}, + {X: Field{[10]uint32{0x01d8e37b, 0x008017a6, 0x0267f1dc, 0x01b2cec7, 0x03f5a5b0, 0x02109416, 0x0150d4ee, 0x02321b08, 0x00ec919d, 0x0020e21f}}, Y: Field{[10]uint32{0x02b4c009, 0x03ba5064, 0x03e327a2, 0x039fe620, 0x03fcea9d, 0x03962117, 0x0134fe12, 0x03ab89e3, 0x03cdf5c9, 0x003fb839}}}, + {X: Field{[10]uint32{0x01ca1e24, 0x037c6474, 0x010f3f37, 0x002469ed, 0x00a9d0b7, 0x01970ff8, 0x028c03f5, 0x02eac836, 0x01e1138b, 0x0001467e}}, Y: Field{[10]uint32{0x0261ba9e, 0x0300da86, 0x039eb367, 0x02a6b79a, 0x01ef6cd6, 0x0207a5bd, 0x0231ec07, 0x033908fd, 0x02fe2bff, 0x001935ae}}}, + {X: Field{[10]uint32{0x028fba61, 0x004eb652, 0x02e6c3cd, 0x03998fb7, 0x023946ff, 0x00a4d854, 0x02de2087, 0x01d3a9a6, 0x038f84bc, 0x0020247d}}, Y: Field{[10]uint32{0x030bda1a, 0x00ea7302, 0x02212fe1, 0x03b0e79e, 0x006765fa, 0x01c02aab, 0x03a5d90d, 0x01a23072, 0x018baf84, 0x0006aaa9}}}, + {X: Field{[10]uint32{0x02db3afc, 0x023a5f9e, 0x01bb49ed, 0x00815b35, 0x018388cf, 0x028dbc43, 0x02a53434, 0x015d21f0, 0x000dd3fe, 0x00142af0}}, Y: Field{[10]uint32{0x01ed25ea, 0x00390763, 0x015d68a8, 0x03640eb7, 0x01670fe0, 0x026e76c0, 0x0064f01d, 0x00103ec7, 0x019514b6, 0x002ae2eb}}}, + {X: Field{[10]uint32{0x02a2f110, 0x001dcacd, 0x0131faa2, 0x00b9b44a, 0x0120e572, 0x010dab9d, 0x024f2533, 0x007d12a7, 0x00bb4da0, 0x002a690a}}, Y: Field{[10]uint32{0x034c0c5f, 0x0321141d, 0x037a0557, 0x02da16d0, 0x00f8c226, 0x03e94f88, 0x00f05822, 0x0289b110, 0x021a1830, 0x002e8144}}}, + {X: Field{[10]uint32{0x007a83ce, 0x026c742b, 0x03ecf64e, 0x0396ddd4, 0x01d6948b, 0x0047a668, 0x03fa11b2, 0x0359ddc9, 0x03d46314, 0x0035ebf6}}, Y: Field{[10]uint32{0x00e21d04, 0x02e8734d, 0x008f480a, 0x03e945ca, 0x03ee9b2a, 0x0272d0aa, 0x010ed9d7, 0x012aee8e, 0x017d748a, 0x002d7e2e}}}, + {X: Field{[10]uint32{0x036de265, 0x00aaff66, 0x03a99d62, 0x006b5462, 0x0113f19b, 0x019cab15, 0x0141694b, 0x01119a8f, 0x034cd2b5, 0x000adae0}}, Y: Field{[10]uint32{0x02b9b0d6, 0x033b141e, 0x01df187c, 0x026e24b6, 0x0174ec84, 0x032facb9, 0x01d52dd3, 0x02cf4ab4, 0x0193ddc0, 0x00306489}}}, + {X: Field{[10]uint32{0x016ac8ea, 0x018326ea, 0x025a2513, 0x012c68fb, 0x03f29c34, 0x0270471a, 0x016ef7ea, 0x00fe8c56, 0x034ad7f9, 0x003ce4f3}}, Y: Field{[10]uint32{0x028133e1, 0x03b6ea9e, 0x027ec41b, 0x02ccd78e, 0x01fbfa56, 0x00341849, 0x02480163, 0x033bae43, 0x00a9de67, 0x0013a047}}}, + {X: Field{[10]uint32{0x008f418a, 0x0235d7a7, 0x03c0e084, 0x02f414be, 0x00bbc546, 0x028922a5, 0x03050120, 0x02c95204, 0x02504e14, 0x002f0ee4}}, Y: Field{[10]uint32{0x02a58223, 0x03bcab69, 0x022d9af0, 0x00e31d86, 0x018f5eca, 0x00475e31, 0x013a911f, 0x021f05d9, 0x03c6f8b4, 0x002694ab}}}, + {X: Field{[10]uint32{0x036055c0, 0x019fbbd7, 0x01cec014, 0x00eefdbe, 0x03e71edc, 0x02af6c7d, 0x021e1704, 0x03ee29cc, 0x0273c601, 0x000bd683}}, Y: Field{[10]uint32{0x0153e393, 0x00fd1099, 0x002ebc5a, 0x033c4f65, 0x02b79a5e, 0x03e01c84, 0x01d97f80, 0x00b2c4ee, 0x010d142d, 0x00362ec7}}}, + {X: Field{[10]uint32{0x03a54ae8, 0x00fb4d1c, 0x0215bfa1, 0x01efd72f, 0x018d8d8d, 0x0245b047, 0x01099b96, 0x01a6b213, 0x01e3b4fc, 0x002e0f94}}, Y: Field{[10]uint32{0x023dda5b, 0x00d970b2, 0x02a78f3f, 0x0211b876, 0x01daeb7a, 0x01f3f094, 0x0018084a, 0x00e48c88, 0x038869c5, 0x0008cb83}}}, + {X: Field{[10]uint32{0x03516377, 0x026902f9, 0x00c0ea24, 0x00c16423, 0x00e90e9b, 0x03ba2416, 0x032b3722, 0x01e8c854, 0x019350b0, 0x000425c6}}, Y: Field{[10]uint32{0x020a1055, 0x025adb96, 0x03f672c7, 0x03e7395b, 0x010dc735, 0x00c21e67, 0x023a3a5e, 0x0168126f, 0x027c7bd5, 0x001a682d}}}, + {X: Field{[10]uint32{0x005c4477, 0x009e88fa, 0x01647dcb, 0x0053051a, 0x02622508, 0x000a6774, 0x0171711a, 0x014063cf, 0x035cc95d, 0x0036fbbd}}, Y: Field{[10]uint32{0x00d66413, 0x01daa422, 0x0175335e, 0x038c72fe, 0x00676311, 0x03148dfe, 0x02a68556, 0x013e38ae, 0x02cd1633, 0x003751c4}}}, + {X: Field{[10]uint32{0x03af114f, 0x0201b55a, 0x00d29d96, 0x02239328, 0x03027238, 0x00ded043, 0x0005f185, 0x03a4e3cd, 0x01992bde, 0x000a32c4}}, Y: Field{[10]uint32{0x001e5aa3, 0x03afd2fa, 0x03fea695, 0x01b30a95, 0x01c3e2ef, 0x00e973a2, 0x029fc1e8, 0x0376078e, 0x03febbe5, 0x00039b18}}}, + {X: Field{[10]uint32{0x029f60ba, 0x02e8b893, 0x02da3790, 0x016b919d, 0x00caef38, 0x0273b175, 0x039f1768, 0x03a67997, 0x030b64ef, 0x003c28b7}}, Y: Field{[10]uint32{0x007a4519, 0x02db4520, 0x01a85713, 0x0081ef3c, 0x02006a25, 0x02a9df69, 0x0098c12a, 0x03d99051, 0x0208b900, 0x0029f29f}}}, + {X: Field{[10]uint32{0x002b0f00, 0x037ff952, 0x01410799, 0x001a6aec, 0x0254fe9b, 0x03d54c41, 0x007ad4f0, 0x010e5837, 0x02eb38e5, 0x00346ed1}}, Y: Field{[10]uint32{0x02ce4214, 0x007e48ba, 0x00b14a03, 0x00b2be4c, 0x00d03bbd, 0x01a09adb, 0x00a54639, 0x00c2d834, 0x019fe088, 0x00052c18}}}, + {X: Field{[10]uint32{0x0369517a, 0x00333807, 0x00a8415c, 0x00083152, 0x0185d740, 0x03074268, 0x01adb31a, 0x0049a97d, 0x02567705, 0x0009ef4b}}, Y: Field{[10]uint32{0x01468d32, 0x01e064a9, 0x0008f655, 0x02b61cd3, 0x03202690, 0x0238c0b5, 0x01ce428a, 0x00734a7e, 0x01d7cba2, 0x0004880f}}}, + {X: Field{[10]uint32{0x03d21d9c, 0x010c806f, 0x003bd61d, 0x0376e36f, 0x0355441a, 0x02cad9db, 0x03835efa, 0x038805a4, 0x03901c72, 0x001acb31}}, Y: Field{[10]uint32{0x02dd7456, 0x016ce8d2, 0x015601bd, 0x0014639d, 0x006690bb, 0x018bfce3, 0x03f90d4b, 0x00124f6b, 0x0006deea, 0x001665cd}}}, + {X: Field{[10]uint32{0x00840f27, 0x0027ed65, 0x012675df, 0x024f981f, 0x01c63c3b, 0x02ff35af, 0x02a8bcc6, 0x014f158c, 0x003f32f9, 0x001d7a17}}, Y: Field{[10]uint32{0x00b6bb30, 0x03c07b5b, 0x01c47723, 0x02832fdb, 0x00bc59ac, 0x0109b99a, 0x0324f89d, 0x031cf65a, 0x03768714, 0x0008bd68}}}, + {X: Field{[10]uint32{0x006d56a7, 0x00802e7e, 0x0268315e, 0x0149a314, 0x02f26e17, 0x038a3c79, 0x000eed57, 0x0054bd07, 0x0071969e, 0x0034de8c}}, Y: Field{[10]uint32{0x02ff6181, 0x0080d59d, 0x036d3abe, 0x030ed1d0, 0x0370e296, 0x025885c8, 0x004b1fbd, 0x00747437, 0x03269875, 0x0014f549}}}, + {X: Field{[10]uint32{0x03414976, 0x014407a9, 0x001d237d, 0x0262538d, 0x02676931, 0x03860eec, 0x01466408, 0x01a5ccd9, 0x03047f5e, 0x001c56ec}}, Y: Field{[10]uint32{0x01a968d4, 0x01827ba8, 0x01acadb7, 0x03ec0f60, 0x02a89dd1, 0x03a570f5, 0x01ea6722, 0x0357a1e9, 0x035f9e82, 0x000a1103}}}, + {X: Field{[10]uint32{0x02c642e8, 0x022b7df6, 0x0013968d, 0x0292c21f, 0x028e4924, 0x01a04bb0, 0x034a52cc, 0x0056569e, 0x002a4f5b, 0x003dcb45}}, Y: Field{[10]uint32{0x021087dd, 0x023e5e9d, 0x007a6537, 0x0333eebd, 0x00585486, 0x03165305, 0x02ab9bbb, 0x0010b3c5, 0x004bb5d8, 0x001406d9}}}, + {X: Field{[10]uint32{0x01284c26, 0x00ee58b0, 0x03f28024, 0x01b363ef, 0x00384084, 0x0291a7cd, 0x003cf020, 0x0228e97f, 0x038fb4ca, 0x001ecfbf}}, Y: Field{[10]uint32{0x01748579, 0x0240ad6c, 0x00522811, 0x01bbf544, 0x023bbf63, 0x03858408, 0x00bc5555, 0x01849294, 0x00fd1539, 0x002f8962}}}, + {X: Field{[10]uint32{0x02113dd8, 0x017f0de2, 0x018a59cc, 0x00d7fcad, 0x03ec2a70, 0x025d3933, 0x03652257, 0x03b29334, 0x00d771fb, 0x0009106a}}, Y: Field{[10]uint32{0x02447981, 0x00a624e0, 0x00fccae1, 0x00b64c5b, 0x00fe035d, 0x02b08cd8, 0x03f4c6a7, 0x019c4d2e, 0x03760531, 0x000152c1}}}, + {X: Field{[10]uint32{0x00cf7591, 0x03a68a85, 0x0024de78, 0x01f2d92e, 0x02512d09, 0x03d2ace1, 0x03916b12, 0x019f2916, 0x024ed054, 0x003083f2}}, Y: Field{[10]uint32{0x00eecc02, 0x008d56b9, 0x0346d02b, 0x022c8e33, 0x03931fc4, 0x036b4439, 0x007e69c9, 0x0101cb2a, 0x00c796ee, 0x0022146b}}}, + {X: Field{[10]uint32{0x009ec8e7, 0x024bac81, 0x01d67634, 0x01b5a437, 0x00a34c6c, 0x035d604c, 0x00e415aa, 0x01498edd, 0x028d0137, 0x000bdac3}}, Y: Field{[10]uint32{0x02f25dbe, 0x01354e36, 0x02868e38, 0x01d7d88d, 0x03adc722, 0x02d327d9, 0x02cb614e, 0x03da9e5d, 0x01f8438c, 0x003431e4}}}, + {X: Field{[10]uint32{0x02b665dd, 0x02e47aac, 0x00762c5a, 0x00f0f763, 0x01fc0037, 0x00dd36c8, 0x00b3ed11, 0x0015b5be, 0x01be426f, 0x002febf0}}, Y: Field{[10]uint32{0x010e2a2e, 0x00d84545, 0x02781684, 0x01429d64, 0x006dc400, 0x02841b69, 0x027b0710, 0x0000e9fe, 0x0297a4cf, 0x0027107c}}}, + {X: Field{[10]uint32{0x01cb4e8c, 0x024c1db3, 0x01be91df, 0x03dc5ca3, 0x03895980, 0x01d675d3, 0x0376f860, 0x0009cdb5, 0x01ca9056, 0x0033dc47}}, Y: Field{[10]uint32{0x034f1cd5, 0x0102a9dc, 0x020124e1, 0x02991fb3, 0x022f91f6, 0x02226c8f, 0x0156defe, 0x0085bf8d, 0x01bfcf25, 0x0014a8de}}}, + {X: Field{[10]uint32{0x03d1384b, 0x0145b26a, 0x0394e1c3, 0x01d46191, 0x03f516fd, 0x00da43cb, 0x0001ec36, 0x03c6630c, 0x01de27aa, 0x002e6fa5}}, Y: Field{[10]uint32{0x02cb6df9, 0x030489c7, 0x013cd27f, 0x0160aea1, 0x001ff85d, 0x02232e3e, 0x029b6144, 0x03710c0f, 0x0397dca1, 0x001a21d7}}}, + {X: Field{[10]uint32{0x00e9638e, 0x014ddcca, 0x03331fff, 0x02cf095f, 0x037bec31, 0x01466b80, 0x0042b377, 0x01aa314d, 0x03e6c4d0, 0x003d7c95}}, Y: Field{[10]uint32{0x03e986dd, 0x03c85950, 0x0169e35f, 0x03b2ed00, 0x02c80bea, 0x03483432, 0x012e3ed0, 0x00c84eed, 0x020a48d0, 0x002da879}}}, + {X: Field{[10]uint32{0x00099ce7, 0x02455799, 0x02bf9df0, 0x00ff2db3, 0x02a5281b, 0x002bdf64, 0x00036033, 0x022a8456, 0x034c17e3, 0x003f0d71}}, Y: Field{[10]uint32{0x0379dae9, 0x00e489f6, 0x0245ac62, 0x02ecbb23, 0x018421fb, 0x0205344c, 0x00c1c589, 0x01a4ed69, 0x004d41e8, 0x001b8be6}}}, + {X: Field{[10]uint32{0x014384dd, 0x00bf33b5, 0x00aa7473, 0x0287338d, 0x02c1bc18, 0x027feb29, 0x005e5a98, 0x01cd8dd0, 0x020149d9, 0x002b04d7}}, Y: Field{[10]uint32{0x02f021d0, 0x00685882, 0x01cb1c47, 0x014d844f, 0x01d8e545, 0x027e35c2, 0x00cbf630, 0x0129adaf, 0x02cdff95, 0x000f8e2e}}}, + {X: Field{[10]uint32{0x035f345d, 0x01d3e4a7, 0x01055f36, 0x015f3d30, 0x01bfd8f6, 0x01e46806, 0x02400c4e, 0x03175e00, 0x03fbefb3, 0x00182804}}, Y: Field{[10]uint32{0x00a1bd97, 0x00817cce, 0x035b2711, 0x019151a2, 0x039907e3, 0x028c8004, 0x00a5138c, 0x03f8f8a8, 0x00483582, 0x001f9d8f}}}, + {X: Field{[10]uint32{0x01a7acb7, 0x03413a86, 0x013a906e, 0x01642fbe, 0x02ceb3a6, 0x029e2664, 0x023d0273, 0x01ea290e, 0x01065d90, 0x00282668}}, Y: Field{[10]uint32{0x03c5a50d, 0x038f5ed6, 0x007db06f, 0x02836c50, 0x02d5cca4, 0x03c326d1, 0x034bb579, 0x008bff00, 0x03fbfe3c, 0x0004dfe7}}}, + {X: Field{[10]uint32{0x00a792ab, 0x03d3f0e5, 0x0107b09e, 0x005c127c, 0x00c6ed70, 0x00472769, 0x03ea5a8c, 0x018f5861, 0x0286d027, 0x0026e876}}, Y: Field{[10]uint32{0x0263f741, 0x00866759, 0x01650c47, 0x029970b6, 0x008716ae, 0x0005d461, 0x03879089, 0x0167156f, 0x02d8ab54, 0x003c6788}}}, + {X: Field{[10]uint32{0x0277ada0, 0x01453269, 0x0134f63a, 0x00e24d42, 0x01b5e022, 0x03ca3643, 0x03e93633, 0x0050c05e, 0x001ad30d, 0x000d909c}}, Y: Field{[10]uint32{0x01aba970, 0x00378efc, 0x02c22344, 0x02613d4a, 0x026432fa, 0x02a2ef61, 0x0279f487, 0x02ef1b13, 0x02b9c76b, 0x000bf7e6}}}, + {X: Field{[10]uint32{0x02941a5b, 0x028e94b5, 0x02c31c2e, 0x003551c4, 0x0106188c, 0x00b261c6, 0x0153012e, 0x01c26363, 0x0058100b, 0x000a7de7}}, Y: Field{[10]uint32{0x022d524b, 0x01a242e6, 0x01bf3721, 0x02dc0b56, 0x02919d5b, 0x021a8a01, 0x00ec42f5, 0x0306ec34, 0x0199eaa6, 0x002fa7b7}}}, + {X: Field{[10]uint32{0x01ba1bbc, 0x034b11e2, 0x03061e5e, 0x0342b17f, 0x0004b470, 0x00ffacd4, 0x02d5030c, 0x00a13e05, 0x02dfbc35, 0x0038046a}}, Y: Field{[10]uint32{0x00c979e3, 0x0030068f, 0x0270055a, 0x02a4fd2c, 0x03021ec1, 0x00a4ef9d, 0x026ee97f, 0x016468db, 0x03934f2b, 0x00382a63}}}, + {X: Field{[10]uint32{0x03d78585, 0x025bb813, 0x02dfb3ed, 0x0145dfff, 0x020ee06a, 0x022e4887, 0x02b54b68, 0x014d58df, 0x016b00fe, 0x00297220}}, Y: Field{[10]uint32{0x01ff8e5f, 0x02f96a32, 0x0076fe03, 0x0076bb59, 0x037d6595, 0x029abb54, 0x00977929, 0x02c46912, 0x037b9d63, 0x000fe198}}}, + {X: Field{[10]uint32{0x03194707, 0x03c5b271, 0x02509abe, 0x038244a8, 0x022e6d49, 0x01c23f39, 0x0207798e, 0x00d42e54, 0x00237e44, 0x000ee54b}}, Y: Field{[10]uint32{0x01d68936, 0x026d676f, 0x02edaff4, 0x00c5af37, 0x02e6ebb6, 0x01e44b99, 0x0141a385, 0x01b22b27, 0x032a419e, 0x003de125}}}, + {X: Field{[10]uint32{0x0157af04, 0x000bc937, 0x02632725, 0x004667e1, 0x02b75dd6, 0x021e92aa, 0x007982a1, 0x0054be03, 0x02bcd9d8, 0x002365e5}}, Y: Field{[10]uint32{0x03e611bd, 0x026080ad, 0x0092c89c, 0x034a63a6, 0x010317c2, 0x035a2654, 0x015695f2, 0x0078e8a3, 0x007994a3, 0x003ee6c5}}}, + {X: Field{[10]uint32{0x0202de40, 0x005dc11a, 0x03f51845, 0x01edbbd9, 0x014fde4d, 0x01e2259a, 0x036f689d, 0x01911454, 0x005b2f4e, 0x0025acaf}}, Y: Field{[10]uint32{0x008e89cc, 0x01712842, 0x0178b214, 0x026cd4b0, 0x01914eee, 0x03eff394, 0x039bbf5a, 0x020b6d40, 0x0126f919, 0x00382ddb}}}, + {X: Field{[10]uint32{0x032e2d79, 0x03bd7490, 0x0103625b, 0x02e68743, 0x034e3ab2, 0x01963be5, 0x028f54d8, 0x0254038a, 0x03109f12, 0x0026fdf3}}, Y: Field{[10]uint32{0x016e8582, 0x0343c652, 0x0020be32, 0x029c66f3, 0x01dd6373, 0x0223af49, 0x038bb521, 0x0071a146, 0x03adf77e, 0x000844f5}}}, + {X: Field{[10]uint32{0x03d4f1b7, 0x0013cabc, 0x00dab11a, 0x00f58756, 0x00c91f85, 0x0366a861, 0x008c7414, 0x016d7abf, 0x03a72037, 0x000434ff}}, Y: Field{[10]uint32{0x03298c90, 0x0043a8c3, 0x0321beeb, 0x002b505b, 0x02c98d75, 0x03e30fc0, 0x015c7046, 0x03d0f2c8, 0x032a8a96, 0x00307e12}}}, + {X: Field{[10]uint32{0x003a5eb6, 0x019e7a03, 0x00e92c0e, 0x01fa210c, 0x030e9257, 0x006da1cc, 0x01636920, 0x007342e3, 0x022b6adf, 0x0015b593}}, Y: Field{[10]uint32{0x02f71cc0, 0x0069badf, 0x0382451b, 0x01f89792, 0x025d4b68, 0x01f579a5, 0x00427c25, 0x02108d22, 0x030efbe9, 0x0000004d}}}, + {X: Field{[10]uint32{0x031528bf, 0x02b70d1c, 0x021c1420, 0x014a95a0, 0x026dbfa3, 0x003091e4, 0x01eddbd2, 0x033c81d7, 0x003e1c83, 0x003fb128}}, Y: Field{[10]uint32{0x01a95509, 0x01f9aa2f, 0x00b2aa78, 0x023bf5ef, 0x031bab78, 0x00e1fa6f, 0x03a0d98f, 0x0390b4ee, 0x02af8670, 0x002854ac}}}, + {X: Field{[10]uint32{0x03ee92eb, 0x030983cb, 0x03001779, 0x036ca6a1, 0x02a45d11, 0x02256796, 0x02e6d53e, 0x02a6b18e, 0x01177cce, 0x0016029d}}, Y: Field{[10]uint32{0x029e8edd, 0x03d3e719, 0x02a06862, 0x02436304, 0x0086733a, 0x0054dd69, 0x008c4111, 0x03193081, 0x029c3263, 0x001e4ef9}}}, + {X: Field{[10]uint32{0x02f636f6, 0x036e5d9a, 0x002f535e, 0x034b437b, 0x02991b46, 0x004de866, 0x017431b1, 0x0073af3e, 0x03e57893, 0x0024a1af}}, Y: Field{[10]uint32{0x0329f516, 0x006d6974, 0x015f28cb, 0x020147b7, 0x00c55fce, 0x0014ede0, 0x00b38fb2, 0x036d0a0f, 0x0130e962, 0x001f9dd3}}}, + {X: Field{[10]uint32{0x00f4890d, 0x008b070a, 0x02041e54, 0x01476982, 0x02803e38, 0x03fbb196, 0x002cf2ee, 0x0099494e, 0x01a99b70, 0x00181b55}}, Y: Field{[10]uint32{0x00eda1a7, 0x02295314, 0x02e5407f, 0x00147d3b, 0x0379ae2c, 0x006e2a85, 0x004a1e03, 0x01904528, 0x026e3c2a, 0x00372256}}}, + {X: Field{[10]uint32{0x01f917f5, 0x001fda5d, 0x00df66e8, 0x03180139, 0x0011387d, 0x033f23b6, 0x03ef2f1b, 0x03073773, 0x0140833e, 0x00285a83}}, Y: Field{[10]uint32{0x022d6527, 0x0246f620, 0x01388ba9, 0x03658c04, 0x037fd281, 0x02203421, 0x01f32a82, 0x01294c54, 0x013713de, 0x0015235f}}}, + {X: Field{[10]uint32{0x039f0329, 0x027430d3, 0x0262d9b7, 0x0057b7d6, 0x004a687a, 0x03881c9b, 0x03e3e7aa, 0x01388e68, 0x01d2be57, 0x00001652}}, Y: Field{[10]uint32{0x005288a9, 0x02a44851, 0x0255f337, 0x01de5c8f, 0x02f7f4e7, 0x01203de3, 0x01d94275, 0x02c970c4, 0x025a167a, 0x001c772c}}}, + {X: Field{[10]uint32{0x0168b240, 0x01f1395e, 0x01536cef, 0x00ce0840, 0x03cd1e23, 0x02707fd3, 0x017b295e, 0x00362927, 0x024ae67b, 0x002107d3}}, Y: Field{[10]uint32{0x031f4161, 0x019c7415, 0x03d5cb56, 0x00de335c, 0x01ccae80, 0x0236f99e, 0x03979f4a, 0x0293b43a, 0x009c265f, 0x0007d587}}}, + {X: Field{[10]uint32{0x02cb7442, 0x00fb0791, 0x0240ddd4, 0x02b80289, 0x03faf680, 0x0109e23f, 0x03d4b831, 0x03a7ca22, 0x01f8c748, 0x0008988f}}, Y: Field{[10]uint32{0x03a55da3, 0x003804e1, 0x03aaad5e, 0x01ed2530, 0x0317d582, 0x033a7de1, 0x024381d0, 0x02d64be5, 0x000adfcd, 0x000e03bc}}}, + {X: Field{[10]uint32{0x005185e4, 0x0319523d, 0x02e2dc88, 0x037aced9, 0x02670083, 0x0298285f, 0x007a21e5, 0x00c07ba8, 0x03c36438, 0x00205819}}, Y: Field{[10]uint32{0x01c4cbf7, 0x020abb93, 0x02647f59, 0x03b11409, 0x022eeedc, 0x00dbf0e7, 0x00f4e8e2, 0x03a7c7c1, 0x011b9a95, 0x0016be8e}}}, + {X: Field{[10]uint32{0x02085c1f, 0x01a49373, 0x02485354, 0x0270b065, 0x017d28af, 0x02a38109, 0x00f6431b, 0x0314c493, 0x01614745, 0x003e3c8d}}, Y: Field{[10]uint32{0x0334750f, 0x0199d4d9, 0x01e7507f, 0x01d6b34a, 0x02bd1012, 0x03f9dad7, 0x008c1b93, 0x006d5695, 0x0067e3b4, 0x00028594}}}, + {X: Field{[10]uint32{0x03f2f57a, 0x00ee4cd5, 0x03e23775, 0x00f77812, 0x0228bb93, 0x01c214ec, 0x01537d4c, 0x02285709, 0x0184e25b, 0x00084c95}}, Y: Field{[10]uint32{0x02e873e2, 0x02dc9fa1, 0x01f53d20, 0x03c566e8, 0x03f627b5, 0x01fc869b, 0x00b00d51, 0x03d5e83c, 0x00f2078e, 0x000dc232}}}, + {X: Field{[10]uint32{0x03dfbda3, 0x0335a98f, 0x01c77845, 0x02b2f245, 0x0188b0ba, 0x03feb050, 0x00c24b37, 0x0066cb00, 0x03fcf485, 0x002cbd3d}}, Y: Field{[10]uint32{0x0157702c, 0x0138a31f, 0x03e171c9, 0x00eb356c, 0x03de4972, 0x03d33cf1, 0x03196bb5, 0x03b90cf9, 0x019e6f52, 0x002c81ad}}}, + {X: Field{[10]uint32{0x027f7265, 0x004bfb3b, 0x02064622, 0x014f6b2b, 0x03fd9c5c, 0x01593e70, 0x0070fd39, 0x00001adf, 0x014f5f42, 0x002d3997}}, Y: Field{[10]uint32{0x016bee0e, 0x01cd41a0, 0x025bffc0, 0x0235a119, 0x0003c75b, 0x020fb0b1, 0x021723ea, 0x00efd3cc, 0x02f2e399, 0x000c1edb}}}, + {X: Field{[10]uint32{0x023a7240, 0x00d4ac77, 0x00bab8f2, 0x007410fd, 0x03aa58b6, 0x01e63ba4, 0x033968e9, 0x0026b497, 0x01939ac6, 0x0013c411}}, Y: Field{[10]uint32{0x038179ae, 0x00887b9f, 0x024bd186, 0x0224fd2a, 0x03ed9d0a, 0x01569424, 0x01698f5c, 0x0257e960, 0x03bb9883, 0x003b6361}}}, + {X: Field{[10]uint32{0x014672fa, 0x01f00592, 0x00738d09, 0x02148e22, 0x0390018e, 0x02b5d4a7, 0x026b2157, 0x0304967e, 0x00ffe515, 0x0026d79d}}, Y: Field{[10]uint32{0x01fece15, 0x00f8ebc8, 0x00bc43db, 0x03610786, 0x01fe2df3, 0x00fecee7, 0x01bf70c4, 0x00c3c5ef, 0x026d4c4e, 0x00075561}}}, + {X: Field{[10]uint32{0x0217e302, 0x0205f21f, 0x02cf510d, 0x030b1da8, 0x0330f8a2, 0x024e1ec6, 0x02968f94, 0x03dc6040, 0x0042ac8c, 0x0001defd}}, Y: Field{[10]uint32{0x032af0e9, 0x039d5bf4, 0x021f26a6, 0x0217dbbb, 0x01e4daaa, 0x01b16fbb, 0x03b1103e, 0x0011ac74, 0x02611d90, 0x002ec3e7}}}, + {X: Field{[10]uint32{0x00c266a9, 0x034e22de, 0x00fe64bc, 0x01a4c20d, 0x00d2f5d4, 0x005aa662, 0x0028f34b, 0x008125ac, 0x025cd49f, 0x0009f784}}, Y: Field{[10]uint32{0x00b54bfe, 0x00f78957, 0x039b81a4, 0x00b4c8e5, 0x0384cdfc, 0x000e6b4a, 0x019dac24, 0x0364a8ab, 0x02a8483d, 0x003d0f61}}}, + {X: Field{[10]uint32{0x03e9c116, 0x00262712, 0x01b13225, 0x03c1fe11, 0x017f026c, 0x03bed6a3, 0x03b60ae4, 0x01d78652, 0x0178ae1d, 0x00086fdc}}, Y: Field{[10]uint32{0x01b8d967, 0x03da26bb, 0x0081d434, 0x02455a59, 0x0076b522, 0x034ed63e, 0x03444664, 0x037c5745, 0x02adbc21, 0x001b2aa0}}}, + {X: Field{[10]uint32{0x0232e234, 0x00916c15, 0x0156a66d, 0x03e6702e, 0x02dc9100, 0x020a2768, 0x0365b7f0, 0x0005a906, 0x025493ee, 0x00000924}}, Y: Field{[10]uint32{0x03c45b3d, 0x01738c41, 0x016f82ed, 0x0119ebb2, 0x00d883ff, 0x013dbe41, 0x004c5367, 0x007e6054, 0x01941cb5, 0x002f28c0}}}, + {X: Field{[10]uint32{0x01867f76, 0x039d4e1f, 0x016fe230, 0x00966e4c, 0x00ea8e94, 0x02e4dc42, 0x02d89b96, 0x00ad3351, 0x00c1e347, 0x0034fd91}}, Y: Field{[10]uint32{0x018cade5, 0x02cb6943, 0x03b7c597, 0x02b8c5af, 0x0202e536, 0x01489e50, 0x0337ed9d, 0x025cca8e, 0x0203fd62, 0x00246089}}}, + {X: Field{[10]uint32{0x0325b261, 0x00dfdeb8, 0x02e89d03, 0x01d51894, 0x01915c26, 0x011fd95b, 0x00e52c81, 0x034532a2, 0x034b0e2b, 0x00321187}}, Y: Field{[10]uint32{0x00dcae06, 0x033bb6a7, 0x02b07e38, 0x016aa2a4, 0x01fa3b61, 0x011bbf7d, 0x0232868e, 0x01e66cfd, 0x018197ac, 0x000625c4}}}, + {X: Field{[10]uint32{0x0395a380, 0x00cd0ab0, 0x0060d913, 0x01aaaa96, 0x01a8c240, 0x01ef5b28, 0x0357e1da, 0x02a4e306, 0x0190be20, 0x002db97d}}, Y: Field{[10]uint32{0x018a04b6, 0x011b579f, 0x02026ff1, 0x0325a9b7, 0x01cf01ee, 0x02d698c1, 0x0186569a, 0x03ab79cb, 0x00f1a2f2, 0x00299ca3}}}, + {X: Field{[10]uint32{0x01eb5d6c, 0x013b2556, 0x008c0312, 0x0237c524, 0x018b7013, 0x017bf043, 0x014eee4b, 0x0007415b, 0x039d4657, 0x000f4945}}, Y: Field{[10]uint32{0x0395980f, 0x00ca9c62, 0x03c8c3e0, 0x028ab155, 0x023b56f7, 0x00f1625e, 0x03e88e2b, 0x035fb18c, 0x03fe1d61, 0x000562de}}}, + {X: Field{[10]uint32{0x02f94d99, 0x026965d1, 0x02927984, 0x004646bd, 0x00d85155, 0x03689fc4, 0x0093425b, 0x00526656, 0x0154c717, 0x0002aed7}}, Y: Field{[10]uint32{0x00b9a161, 0x015108b1, 0x03ad04e4, 0x002b64f5, 0x037012ff, 0x03d08270, 0x0106e89f, 0x0237a8db, 0x03cc3be2, 0x001337fa}}}, + {X: Field{[10]uint32{0x0325c73e, 0x014a41ec, 0x0224c523, 0x0219cfb1, 0x02f12433, 0x038c72ec, 0x00dedaa4, 0x03e70a40, 0x0125115e, 0x00262740}}, Y: Field{[10]uint32{0x00c6c8df, 0x01a081a5, 0x000c8d16, 0x018ca547, 0x00d553df, 0x0109e5d4, 0x01f28ee1, 0x0381c3f0, 0x02e9945d, 0x0034da67}}}, + {X: Field{[10]uint32{0x02013884, 0x03908c97, 0x02af82d0, 0x004f20a8, 0x015e05db, 0x003b7dc3, 0x028bbe4e, 0x0347fc18, 0x01d429c3, 0x00313171}}, Y: Field{[10]uint32{0x03a97eea, 0x02e9f9fb, 0x023ee0f2, 0x003744cc, 0x03ccee86, 0x002b7a5f, 0x029da677, 0x0222a7f0, 0x00b88251, 0x0030b1db}}}, + {X: Field{[10]uint32{0x02c0807b, 0x00552789, 0x01edc360, 0x0047b02e, 0x03be9471, 0x000283a0, 0x035080a9, 0x02d97236, 0x0050c623, 0x002198b6}}, Y: Field{[10]uint32{0x01da840b, 0x03c3db8d, 0x01526b3d, 0x01333e32, 0x03f91e72, 0x0246020e, 0x02a72b32, 0x039e93d9, 0x0277b0c9, 0x00029c75}}}, + {X: Field{[10]uint32{0x01083898, 0x03b6c5c7, 0x02626cbd, 0x031f03aa, 0x00543b73, 0x00eaef51, 0x0309b389, 0x0166fccc, 0x03497e73, 0x00349bfb}}, Y: Field{[10]uint32{0x01851395, 0x00e07e1e, 0x03ad956d, 0x00835236, 0x0004d60c, 0x0141c3e4, 0x0101ea9a, 0x002ce5ad, 0x0209bb09, 0x002b62ec}}}, + {X: Field{[10]uint32{0x029d8d0f, 0x01e17488, 0x009838f8, 0x03d7c5cf, 0x025b4560, 0x02d00844, 0x0342ff85, 0x02da09f5, 0x00e8c584, 0x0015a6fa}}, Y: Field{[10]uint32{0x001b8559, 0x036bf1f5, 0x0235422e, 0x00cd789b, 0x0247c74a, 0x02692754, 0x015581bf, 0x01f626a3, 0x01a4a826, 0x002c24e0}}}, + {X: Field{[10]uint32{0x030116d4, 0x0279e534, 0x02255d4a, 0x02ef256a, 0x03842f82, 0x01658363, 0x0167bc6c, 0x021eceb6, 0x00c34d17, 0x00378d2b}}, Y: Field{[10]uint32{0x021816d3, 0x02cf5de8, 0x00505b6c, 0x002fbc26, 0x00e322c4, 0x0220f4fc, 0x00f4d3e0, 0x02d4a95f, 0x001cb2b6, 0x000bf76d}}}, + {X: Field{[10]uint32{0x01c50b1a, 0x01bea671, 0x003d5544, 0x0101c376, 0x03ece852, 0x01d0a96c, 0x0149b861, 0x02dd89b5, 0x034876db, 0x0011d0c2}}, Y: Field{[10]uint32{0x03200df1, 0x00d5e92b, 0x033e85af, 0x01223771, 0x02b53dd0, 0x0323b1dc, 0x006a0ead, 0x0115cd63, 0x02ba0700, 0x0035d564}}}, + {X: Field{[10]uint32{0x02e9fe13, 0x002c25f5, 0x00fd7914, 0x03fbdb1a, 0x018c2d8f, 0x01aeeadb, 0x017339b7, 0x01c99ae8, 0x00b5e668, 0x003c7478}}, Y: Field{[10]uint32{0x0324e580, 0x0150f56f, 0x0350bb96, 0x013699f6, 0x03a1d849, 0x008c03e5, 0x01c54837, 0x00ce14d2, 0x0226fc23, 0x00002958}}}, + {X: Field{[10]uint32{0x00cdbcd0, 0x0056e17e, 0x004c3c05, 0x03fce0fd, 0x006e8132, 0x025a30dd, 0x03d0426e, 0x003784f6, 0x03357614, 0x0008a9bd}}, Y: Field{[10]uint32{0x03d18d1b, 0x038d157e, 0x01e48e69, 0x0276a101, 0x03430a39, 0x003e5690, 0x00dc0044, 0x0038f8d6, 0x01a89027, 0x00277362}}}, + {X: Field{[10]uint32{0x01a9ada2, 0x019538f8, 0x02867b46, 0x00c30a78, 0x02fc307b, 0x01d10ba3, 0x030c6ea5, 0x0232826e, 0x03280afd, 0x000b7714}}, Y: Field{[10]uint32{0x0087dee4, 0x03b6dcf0, 0x03393b5f, 0x024c665d, 0x0107d077, 0x007fe438, 0x02daa6e3, 0x039ba1ef, 0x010edb84, 0x001ee6ae}}}, + {X: Field{[10]uint32{0x01da0fca, 0x0078b065, 0x03a9e1a0, 0x015151b7, 0x011fb1c8, 0x0162e719, 0x00a116c0, 0x03d4bf4c, 0x0039a60a, 0x00182dbe}}, Y: Field{[10]uint32{0x00d26c40, 0x01360f88, 0x02bcdca5, 0x00187615, 0x03b0e743, 0x011a763a, 0x039b07b2, 0x02d052f8, 0x029f28cf, 0x00179dfd}}}, + {X: Field{[10]uint32{0x01dee53c, 0x009a9f43, 0x02776dcd, 0x00a15f25, 0x022a1f1f, 0x0257a90e, 0x0306bfdf, 0x024b9432, 0x019b9b90, 0x0009e430}}, Y: Field{[10]uint32{0x014e7f64, 0x01767cdc, 0x005b6271, 0x01662caf, 0x00de0677, 0x00085c26, 0x0387afaa, 0x01b9e2c8, 0x0120d04e, 0x003f7ba8}}}, + {X: Field{[10]uint32{0x01113803, 0x03e411bd, 0x037c00d7, 0x028d1453, 0x02db181e, 0x03eb65e0, 0x03576b16, 0x02f22c49, 0x020f9ee8, 0x0039510c}}, Y: Field{[10]uint32{0x00510741, 0x00465cb0, 0x01e0f952, 0x002b89ad, 0x023c7368, 0x03739f0c, 0x01b63dd9, 0x01d1139a, 0x02fb0239, 0x002e4dd8}}}, + {X: Field{[10]uint32{0x0355313d, 0x026abeb6, 0x00cee39f, 0x0335a6ed, 0x038e2706, 0x02f535d3, 0x00a236cb, 0x00a35618, 0x01ae73e4, 0x001b1fc9}}, Y: Field{[10]uint32{0x00dc9121, 0x012d6072, 0x030916a4, 0x012f577f, 0x018db30c, 0x0163aa48, 0x020864be, 0x026c63a6, 0x03c9e33f, 0x003632e3}}}, + {X: Field{[10]uint32{0x0393d4e8, 0x03a94ee6, 0x03499121, 0x00e80c3b, 0x03dd9eaa, 0x00e54bc9, 0x01e9c3ef, 0x00351d34, 0x0328ff71, 0x000a2746}}, Y: Field{[10]uint32{0x02880667, 0x02ce52bb, 0x03e38cf2, 0x00c9dfd2, 0x02642859, 0x0116cf2e, 0x00d5cb72, 0x00b75613, 0x000aaebc, 0x003cdabe}}}, + {X: Field{[10]uint32{0x0110b5aa, 0x028769d6, 0x03476b9f, 0x022b53bd, 0x002a6f4a, 0x0244c306, 0x0287b5d2, 0x0359cc97, 0x0197ac01, 0x003c0aad}}, Y: Field{[10]uint32{0x00e38adb, 0x025902b3, 0x02aaffe8, 0x007d97b2, 0x01d3262d, 0x030d18cf, 0x02c53795, 0x022c4fb3, 0x002aecf2, 0x002ba230}}}, + {X: Field{[10]uint32{0x00a0413a, 0x03e10637, 0x01a8d2d8, 0x01c13b0a, 0x03c625bb, 0x01b531b4, 0x0332c82d, 0x00c4195d, 0x034f71a7, 0x0002a6a5}}, Y: Field{[10]uint32{0x01b372cd, 0x022496e4, 0x01c2126e, 0x02b33f47, 0x01af1497, 0x0183b479, 0x02f222d8, 0x03a5bf57, 0x0033eed4, 0x0030837d}}}, + {X: Field{[10]uint32{0x0177496a, 0x0073d023, 0x0071f4a2, 0x03f05941, 0x024cc392, 0x018d2d57, 0x020e9c78, 0x00226466, 0x010d728e, 0x001e1986}}, Y: Field{[10]uint32{0x000cfd22, 0x004a44eb, 0x01b23035, 0x038ea4da, 0x0029d79d, 0x00d68799, 0x028e265c, 0x008bbf2a, 0x00d95404, 0x0006ed7f}}}, + {X: Field{[10]uint32{0x0333b9ac, 0x004c2920, 0x00773ce0, 0x016a4443, 0x0025cc11, 0x018f6550, 0x00e4e2de, 0x02e3afc0, 0x03e344b3, 0x003229ff}}, Y: Field{[10]uint32{0x02e67b6e, 0x0148ff97, 0x02806dbb, 0x003f6a5f, 0x02ca9128, 0x032a1c91, 0x00141aa5, 0x018ed59d, 0x03e5010c, 0x003287fe}}}, + {X: Field{[10]uint32{0x039208ba, 0x0259b993, 0x033472f9, 0x00cf533c, 0x019cc1e6, 0x01369a1c, 0x0019e84e, 0x01ab4e0d, 0x026a13ff, 0x0001b2ee}}, Y: Field{[10]uint32{0x02214a88, 0x0228a987, 0x011fcfac, 0x02258a9f, 0x03058598, 0x02711986, 0x0392c34e, 0x024fd13e, 0x01820c78, 0x000d4489}}}, + {X: Field{[10]uint32{0x019de719, 0x008ff6bf, 0x03e1287b, 0x020526e8, 0x00ffe9aa, 0x031d976b, 0x01450c82, 0x021847ad, 0x01bd691a, 0x00381fe3}}, Y: Field{[10]uint32{0x00fbc509, 0x02c18763, 0x02bc6894, 0x01b96d49, 0x030acb0c, 0x0384631f, 0x01937994, 0x033fba89, 0x01f08e39, 0x0024cb8d}}}, + {X: Field{[10]uint32{0x02d2c5d4, 0x00ce8b21, 0x029b84b6, 0x00e3f331, 0x0151f3e2, 0x034fcca9, 0x02720d71, 0x02505b37, 0x009832fd, 0x001884da}}, Y: Field{[10]uint32{0x02784e9c, 0x03dc576f, 0x00f68206, 0x01b5a72f, 0x03791f3b, 0x03c79665, 0x016d9684, 0x01f90616, 0x024d6224, 0x0004dfa6}}}, + {X: Field{[10]uint32{0x03a7b9eb, 0x013a3036, 0x004f2325, 0x02e87a9a, 0x0240a318, 0x01c43021, 0x03eb2faf, 0x019c1894, 0x018862de, 0x0022c041}}, Y: Field{[10]uint32{0x01bfd264, 0x008dc686, 0x0348e2ce, 0x00655bc3, 0x03dbd7e4, 0x01e8cfe7, 0x00bf43cf, 0x01b18333, 0x0062dcc5, 0x00152922}}}, + {X: Field{[10]uint32{0x00f213d8, 0x01203aa1, 0x031cfeaf, 0x021f70c2, 0x023fb2ed, 0x015af2eb, 0x03bbbace, 0x020d1bfb, 0x008c14af, 0x0004b4e4}}, Y: Field{[10]uint32{0x0267fdfc, 0x0206a626, 0x0024ecb1, 0x01766396, 0x01fef41e, 0x000b1366, 0x02764210, 0x036b2611, 0x01fbdf7d, 0x003f1185}}}, + {X: Field{[10]uint32{0x01784cd2, 0x018b4580, 0x013dc8da, 0x01bb7df0, 0x02b47428, 0x00a48a64, 0x00e368f6, 0x0331a6ef, 0x01e2a7b8, 0x00086741}}, Y: Field{[10]uint32{0x034c7f5c, 0x00785e28, 0x02de2076, 0x00ec8587, 0x03dd2820, 0x023eeafb, 0x029407de, 0x02c79e3b, 0x03739a7e, 0x0022bb93}}}, + {X: Field{[10]uint32{0x005de204, 0x00016db6, 0x03074852, 0x004f0e32, 0x0049bbe2, 0x034997ce, 0x011fa23a, 0x03ea47da, 0x01599a76, 0x0035f433}}, Y: Field{[10]uint32{0x011ce2fa, 0x023cdf24, 0x019d1e93, 0x018302c7, 0x03ed1a2d, 0x01c9683b, 0x021330ea, 0x0036b97a, 0x032c6075, 0x003cd255}}}, + {X: Field{[10]uint32{0x02bb6c6d, 0x03d25e3a, 0x0042d635, 0x02ecb1dc, 0x009f65cf, 0x03ea3f0f, 0x018b73f6, 0x02408e0f, 0x01f5a04c, 0x0028fe9a}}, Y: Field{[10]uint32{0x03cbdea2, 0x007296b0, 0x03e8372c, 0x035d6665, 0x010accb2, 0x00e268bc, 0x0395b18f, 0x02aac52b, 0x01a89994, 0x0031e628}}}, + {X: Field{[10]uint32{0x03b2d1cd, 0x0322bec4, 0x00e92cc5, 0x01307414, 0x00854073, 0x0176505c, 0x0072e71e, 0x0115f5e6, 0x001a825c, 0x00240ba2}}, Y: Field{[10]uint32{0x01a62d43, 0x020b0c2f, 0x01e338ac, 0x001f33f2, 0x02de099f, 0x018be091, 0x0163cccf, 0x01bee444, 0x013263bf, 0x003fc1d4}}}, + {X: Field{[10]uint32{0x0329c144, 0x03318381, 0x03505d34, 0x01693e32, 0x036923ea, 0x03c64cae, 0x021aa2b3, 0x00155b4d, 0x01f24c47, 0x000c97c6}}, Y: Field{[10]uint32{0x0294bec4, 0x01f11ae7, 0x021782a5, 0x03058665, 0x0173e3e9, 0x006fe3e7, 0x001bf358, 0x028337e6, 0x02b829a6, 0x003d2a6b}}}, + {X: Field{[10]uint32{0x021edd4b, 0x02c1f1be, 0x0024763b, 0x0117ac1e, 0x00bcdf72, 0x033ffeb3, 0x025f8602, 0x033d854f, 0x03b441a6, 0x001a653c}}, Y: Field{[10]uint32{0x0074c174, 0x02c45806, 0x03bd927d, 0x02ae1fdc, 0x02198ee4, 0x00fc1454, 0x00479d8d, 0x02a25ca7, 0x01ea892d, 0x003b0bf1}}}, + {X: Field{[10]uint32{0x02cb2d8c, 0x0284149a, 0x0137f3b7, 0x028ad6eb, 0x005663c5, 0x02307daa, 0x011bd2f0, 0x01e5bff5, 0x00324e8f, 0x00086156}}, Y: Field{[10]uint32{0x01897c2d, 0x03475da8, 0x00cf4b15, 0x0255759f, 0x033b93c4, 0x000d0efd, 0x0290d44b, 0x0300f265, 0x02cb33ce, 0x0039df3b}}}, + {X: Field{[10]uint32{0x0191b099, 0x01d33be7, 0x021b0a56, 0x00fd21ea, 0x01319693, 0x0391dcad, 0x027c312a, 0x02a00695, 0x023b32f2, 0x0024176a}}, Y: Field{[10]uint32{0x01cf369f, 0x0161c710, 0x021d6b69, 0x010d6cb2, 0x0382b648, 0x019ff705, 0x0291d5d7, 0x005c644d, 0x01c36d27, 0x002fd8a1}}}, + {X: Field{[10]uint32{0x025339f1, 0x02547bad, 0x017f5b39, 0x01d8c54e, 0x031b6853, 0x036f839f, 0x03e51613, 0x001491d7, 0x038434b6, 0x0037df3e}}, Y: Field{[10]uint32{0x03558243, 0x00333d37, 0x00d2ee58, 0x00f1be91, 0x010d1beb, 0x03659475, 0x0153393d, 0x039154b6, 0x017e1419, 0x0039c973}}}, + {X: Field{[10]uint32{0x01732491, 0x016f2d39, 0x024a5d8c, 0x01d8a33d, 0x00385cb2, 0x03297ae0, 0x0096b821, 0x00ae7a8f, 0x02fc8884, 0x0039fee7}}, Y: Field{[10]uint32{0x00f22331, 0x00a054de, 0x03d5f5e9, 0x00a3b76a, 0x011353c1, 0x019d6a5f, 0x03b83900, 0x0380dc98, 0x02bca6f9, 0x0032399d}}}, + {X: Field{[10]uint32{0x0124285b, 0x008da773, 0x012fecc1, 0x00575c78, 0x01bad797, 0x029103d6, 0x02ac0a3f, 0x02885879, 0x030c272b, 0x003468d7}}, Y: Field{[10]uint32{0x019edb3c, 0x02e526b2, 0x02ec1806, 0x02a25840, 0x0049dc41, 0x02c55900, 0x02f2f21b, 0x01c5b6e7, 0x00f7d475, 0x0007d6dc}}}, + {X: Field{[10]uint32{0x027b079f, 0x0043694a, 0x032e5551, 0x00a41164, 0x024f4204, 0x01eb98a7, 0x03da74ac, 0x03753385, 0x02e85f2d, 0x00019ae9}}, Y: Field{[10]uint32{0x03a80402, 0x002279c1, 0x03733263, 0x0010d921, 0x02219679, 0x026f7fef, 0x01a4f357, 0x03bef3d3, 0x005beb8e, 0x00363aeb}}}, + {X: Field{[10]uint32{0x00f3a749, 0x03ce682d, 0x01e487b1, 0x008875ee, 0x00c36e7c, 0x01d7e714, 0x03cf8065, 0x00414ad2, 0x029a2688, 0x0001bdfd}}, Y: Field{[10]uint32{0x0331a4c4, 0x00d6a99c, 0x0202b892, 0x016096ed, 0x00bc1835, 0x03058394, 0x00352b9c, 0x02e22ead, 0x03840d89, 0x0004741a}}}, + {X: Field{[10]uint32{0x026c0abd, 0x00308724, 0x01b90eda, 0x03fa132b, 0x0141c23a, 0x017006b1, 0x01699067, 0x0140ec98, 0x016f571d, 0x0012f85b}}, Y: Field{[10]uint32{0x02c1d06d, 0x013f8ca7, 0x011bd9a0, 0x023f2c8c, 0x01d9ede7, 0x034cffb5, 0x02116c5d, 0x03cb7586, 0x02deffa1, 0x00004107}}}, + {X: Field{[10]uint32{0x01e75886, 0x03c142c0, 0x029bd33b, 0x00d43b95, 0x03191603, 0x005a6315, 0x00abbc79, 0x02b2d9d8, 0x005db55e, 0x0022be23}}, Y: Field{[10]uint32{0x01d9a12c, 0x02fd65af, 0x02beaf61, 0x02d74af9, 0x00ca203e, 0x025801f0, 0x02eeb245, 0x02d2c4a6, 0x010b6bf2, 0x0013d6e1}}}, + {X: Field{[10]uint32{0x00ef8672, 0x02d82213, 0x035072e2, 0x00602339, 0x01edb695, 0x00e457a0, 0x03648491, 0x03ae3869, 0x037a3316, 0x002b4cf9}}, Y: Field{[10]uint32{0x037ccd90, 0x0297932b, 0x0313f16c, 0x0227c563, 0x016c4f4f, 0x025431d7, 0x01157fd7, 0x022f6769, 0x01e24bc8, 0x003e8058}}}, + {X: Field{[10]uint32{0x01d8c2bc, 0x037b6cf6, 0x01ba069e, 0x007d808b, 0x01cdb51e, 0x0070d121, 0x0196ee9b, 0x02bf9e47, 0x01ef7620, 0x001112a0}}, Y: Field{[10]uint32{0x0351e2fd, 0x006bc465, 0x03b52e64, 0x00a47beb, 0x02bd2683, 0x02ff366e, 0x02811c7f, 0x013af0bb, 0x03d9a49d, 0x002a2005}}}, + {X: Field{[10]uint32{0x02aa5c51, 0x002d98f3, 0x00aa51d1, 0x034492b2, 0x0377af3a, 0x01940e8b, 0x0387e9d2, 0x03e2d981, 0x03a39530, 0x0016c781}}, Y: Field{[10]uint32{0x037810b9, 0x00311c3d, 0x0013b450, 0x0041eef4, 0x02e87cb5, 0x021aa01a, 0x031e59b6, 0x0383ec9c, 0x00d38d55, 0x003f3d30}}}, + {X: Field{[10]uint32{0x03174309, 0x00cfb45c, 0x02844ba5, 0x01f65897, 0x01b1d42e, 0x00c5f99f, 0x034c4033, 0x01aa195e, 0x00170e98, 0x00000fa3}}, Y: Field{[10]uint32{0x00cd6caa, 0x03d54865, 0x03e5e696, 0x03d70a5b, 0x029db702, 0x00f1fb83, 0x020f3966, 0x028d743a, 0x009ff4f5, 0x0037baf9}}}, + {X: Field{[10]uint32{0x00d112c1, 0x03a0f601, 0x017e5746, 0x0241fc75, 0x036432af, 0x011ad4a2, 0x024c078b, 0x032c6674, 0x02ee5e9b, 0x0028425b}}, Y: Field{[10]uint32{0x02e7c6d4, 0x0229db74, 0x02fc13f0, 0x003f87a4, 0x0097eace, 0x033553cf, 0x02b3019a, 0x00db3595, 0x00fe6994, 0x002f44f9}}}, + {X: Field{[10]uint32{0x0265f2f0, 0x001c6dd9, 0x0093898c, 0x024d37b4, 0x00368610, 0x0269d7ba, 0x000a6d89, 0x0379d76d, 0x01794218, 0x00151d61}}, Y: Field{[10]uint32{0x01174548, 0x0184fd86, 0x021b5c6f, 0x02fca71d, 0x026bcde4, 0x0376a995, 0x00dcd94f, 0x031a25c3, 0x024213e1, 0x000ef555}}}, + {X: Field{[10]uint32{0x01456057, 0x02f1a511, 0x02df7f7b, 0x02417ba6, 0x02a44002, 0x013dd161, 0x0356604f, 0x02f112ff, 0x0192fcb4, 0x0013acca}}, Y: Field{[10]uint32{0x0245c3d4, 0x0185502e, 0x03609216, 0x02319b6d, 0x00e0cc9d, 0x0014400c, 0x0277c673, 0x027c06b6, 0x00f26834, 0x00215daa}}}, + {X: Field{[10]uint32{0x0261a22d, 0x016d322d, 0x01ea269c, 0x008fe4b9, 0x000f2917, 0x026429f0, 0x01428e75, 0x0124cf1b, 0x01efd2eb, 0x000d42cb}}, Y: Field{[10]uint32{0x00de6943, 0x003ec964, 0x0159e354, 0x02a04c83, 0x0370f807, 0x0203bd6f, 0x02126d83, 0x03cd2fcd, 0x0300add9, 0x00186b36}}}, + {X: Field{[10]uint32{0x01f360ff, 0x03f6611d, 0x03017d7a, 0x01ac0c1a, 0x032da3c9, 0x02b284a6, 0x037341ee, 0x0220654c, 0x00bece7f, 0x002453aa}}, Y: Field{[10]uint32{0x01ac7b53, 0x01ca98e1, 0x01213d32, 0x02927f22, 0x03582948, 0x022c90b6, 0x03b563ce, 0x02029d20, 0x0148ebef, 0x003caa95}}}, + {X: Field{[10]uint32{0x03dc0fef, 0x01891ae0, 0x01a33459, 0x03e714f8, 0x03ad6d44, 0x01c38fd7, 0x02baa6bd, 0x0097d2ea, 0x021738da, 0x0003d95b}}, Y: Field{[10]uint32{0x01fd83e5, 0x0076b256, 0x03ef54c3, 0x012c8103, 0x00c742ce, 0x00dcf0b1, 0x025f53cf, 0x024a1c29, 0x00fc3463, 0x00102a2d}}}, + {X: Field{[10]uint32{0x033b618f, 0x0399dc64, 0x00182ce3, 0x008e8849, 0x02d77e10, 0x0036a99b, 0x00310bbc, 0x00f39519, 0x02f0334e, 0x00291f22}}, Y: Field{[10]uint32{0x000c7f08, 0x0254a503, 0x02c4b522, 0x00ba1c57, 0x0341ec5b, 0x0285c4fa, 0x031694ff, 0x01f1d579, 0x0354056d, 0x001b6f32}}}, + {X: Field{[10]uint32{0x00753ca9, 0x01bba74c, 0x02688676, 0x00c47ab3, 0x003b5fde, 0x0085e357, 0x007947f8, 0x0012997a, 0x00625e1d, 0x0002a28a}}, Y: Field{[10]uint32{0x02fc2169, 0x03cbc78b, 0x023ba94d, 0x01d75ce4, 0x021feb3f, 0x03e8426f, 0x039e672e, 0x02813429, 0x02f7483a, 0x003e0ab5}}}, + {X: Field{[10]uint32{0x01c017d0, 0x00fde88c, 0x008371e8, 0x002283d1, 0x034fe062, 0x03f501fb, 0x02903cb3, 0x02e15789, 0x014e5f8e, 0x002807fd}}, Y: Field{[10]uint32{0x032edf92, 0x016cbb83, 0x03ee2f0e, 0x00009d98, 0x009fd59b, 0x01f64945, 0x0018ec07, 0x0069a213, 0x02f9c52f, 0x000891f1}}}, + {X: Field{[10]uint32{0x0142aed1, 0x01f21d63, 0x0072ff2d, 0x038c47d8, 0x0061ef4f, 0x02668c83, 0x02adbd60, 0x03226db2, 0x003a626a, 0x0039ec27}}, Y: Field{[10]uint32{0x00609fdc, 0x02bbf34e, 0x005e2c0f, 0x0285b667, 0x0337c3c5, 0x000f3d68, 0x01c64ace, 0x0143a639, 0x02d36a7b, 0x0023b665}}}, + {X: Field{[10]uint32{0x023ff2fd, 0x016916e1, 0x037173f3, 0x025cdcf2, 0x0196307c, 0x01816410, 0x009fb522, 0x00a81b2a, 0x0253336c, 0x000eeea7}}, Y: Field{[10]uint32{0x03d24799, 0x03a0d049, 0x0160d52a, 0x008dba32, 0x00419d51, 0x0153a6e3, 0x00ccaeae, 0x03f05bd6, 0x01093faf, 0x003cbfa4}}}, + {X: Field{[10]uint32{0x000630a3, 0x0017e70b, 0x00acdaf9, 0x0086d890, 0x0311950c, 0x010cbd4c, 0x01224000, 0x0005d088, 0x02b6dc66, 0x003d8748}}, Y: Field{[10]uint32{0x009ffb05, 0x006915c1, 0x02796142, 0x01405778, 0x00692bb2, 0x0337eac6, 0x02b7e865, 0x00b3ce4f, 0x035a1a66, 0x000181a3}}}, + {X: Field{[10]uint32{0x00a80962, 0x026f9c3a, 0x02d13718, 0x037009c0, 0x01891c45, 0x03cf91c8, 0x0038dcb8, 0x0288b62f, 0x00556b1a, 0x00296d82}}, Y: Field{[10]uint32{0x00b1ddb6, 0x02640cbf, 0x0234a071, 0x01a5f357, 0x023a9b3a, 0x01b060ab, 0x0220b99e, 0x0017287f, 0x03d2d5e3, 0x003ddfe5}}}, + {X: Field{[10]uint32{0x01e1a259, 0x02a97321, 0x02ac1be3, 0x006ca008, 0x02f03030, 0x039bd64b, 0x00ae950b, 0x00958b87, 0x02f900eb, 0x001c30ea}}, Y: Field{[10]uint32{0x00587583, 0x0085ee53, 0x01deb61f, 0x02fa85eb, 0x033f91f2, 0x004eabbd, 0x00626f72, 0x034c6739, 0x03cd31a8, 0x000fcb2d}}}, + {X: Field{[10]uint32{0x0106e530, 0x01744da3, 0x03d93b97, 0x02bf0cf9, 0x01a67952, 0x010f9e44, 0x01fcc4d4, 0x0178dca3, 0x01d1a875, 0x000775c3}}, Y: Field{[10]uint32{0x0190d084, 0x0077f35c, 0x020c4014, 0x01f6dafb, 0x01240e67, 0x03b31cf7, 0x00400742, 0x0253bd1c, 0x01741f58, 0x0011a13e}}}, + {X: Field{[10]uint32{0x0083fcf9, 0x020331a4, 0x035462b1, 0x00f5195c, 0x02f5d37c, 0x034372a0, 0x016bb7f2, 0x03f52f63, 0x018d7aac, 0x0035135a}}, Y: Field{[10]uint32{0x007dc407, 0x026fafc2, 0x03e47281, 0x0104dd02, 0x03c0c940, 0x031056f5, 0x0067b0f4, 0x00a59643, 0x003d0423, 0x00286360}}}, + {X: Field{[10]uint32{0x01b34ca5, 0x02700414, 0x019f9410, 0x00418553, 0x0362730a, 0x02c6f0ee, 0x0122ae74, 0x015d0a15, 0x02e13045, 0x00211626}}, Y: Field{[10]uint32{0x03b3606c, 0x03d88d4d, 0x0390349b, 0x02e8f78e, 0x03de14fc, 0x00be9c1f, 0x02ffce9b, 0x02bd26fd, 0x0208f2a9, 0x002e5e7e}}}, + {X: Field{[10]uint32{0x03724627, 0x034bc122, 0x006f5469, 0x00fff413, 0x01bc84e7, 0x03fc5707, 0x0131c1ef, 0x02265afb, 0x03df8911, 0x000f7b23}}, Y: Field{[10]uint32{0x03eb2c8c, 0x0389c406, 0x0310c16a, 0x028aff50, 0x03daccca, 0x013fe237, 0x011a555f, 0x016f3f6f, 0x03c1e20b, 0x002c50fc}}}, + {X: Field{[10]uint32{0x00cac160, 0x03d0dd02, 0x0012a2f0, 0x037905ed, 0x02023a8d, 0x00339197, 0x01bfcc47, 0x0367180e, 0x03c5519d, 0x000d9e97}}, Y: Field{[10]uint32{0x03f021a6, 0x03eb1729, 0x03cc2dba, 0x00825ea1, 0x03faa648, 0x00f83e3c, 0x011b136a, 0x03f2438a, 0x01df2c6b, 0x0016e3ef}}}, + {X: Field{[10]uint32{0x0063efc1, 0x00c95b25, 0x02cce5fa, 0x03f521ee, 0x031e7c2e, 0x003623a4, 0x03ab6b32, 0x0181bd82, 0x007e7777, 0x0022a956}}, Y: Field{[10]uint32{0x03f091dc, 0x00e7f474, 0x00c1888a, 0x00d11278, 0x0150beeb, 0x02b548a2, 0x02921eca, 0x0284cb05, 0x036c98bf, 0x002b16e9}}}, + {X: Field{[10]uint32{0x0084cae0, 0x01afcf03, 0x038c6a5d, 0x0107b299, 0x02af3aa4, 0x02c34471, 0x00fd9e60, 0x00cba80c, 0x01910ea6, 0x001e7000}}, Y: Field{[10]uint32{0x01dfb899, 0x034b608e, 0x01e85472, 0x037caf46, 0x01ae9c8b, 0x03d0070b, 0x000b659b, 0x02a504eb, 0x00703b19, 0x000fe550}}}, + {X: Field{[10]uint32{0x03a04fc8, 0x03e2fe00, 0x018b3d4e, 0x0292b692, 0x01e858aa, 0x01920c95, 0x01951a06, 0x027a5737, 0x032221a5, 0x00321379}}, Y: Field{[10]uint32{0x02f0a0b9, 0x02f11452, 0x01102158, 0x03483d8e, 0x010548fc, 0x01888112, 0x0011109a, 0x02fca37e, 0x0158915a, 0x001cf37a}}}, + {X: Field{[10]uint32{0x01a9d6d5, 0x01ae24ad, 0x00c218cb, 0x0373f9a5, 0x01fedf74, 0x028f164d, 0x023822b2, 0x01f58781, 0x0050c632, 0x0022c6e3}}, Y: Field{[10]uint32{0x00fe168b, 0x01832c00, 0x037f841f, 0x01ad6d90, 0x00c03676, 0x03fd0c53, 0x03dfc479, 0x0190d7d1, 0x01529f15, 0x0015ef62}}}, + {X: Field{[10]uint32{0x00702c52, 0x00ff5492, 0x03650e78, 0x039dc675, 0x0033a31c, 0x0107e061, 0x0117c4a3, 0x00be6148, 0x008a3ae8, 0x002d17bb}}, Y: Field{[10]uint32{0x020a1c90, 0x0231b867, 0x0046dc98, 0x02167ba4, 0x03254117, 0x0280525e, 0x005d0fce, 0x01ad3c24, 0x035cc708, 0x0033555a}}}, + {X: Field{[10]uint32{0x00757319, 0x001de020, 0x01cd2c57, 0x004e196a, 0x0031ab70, 0x031632f7, 0x034871ea, 0x025b1d9e, 0x00ddd930, 0x0028b577}}, Y: Field{[10]uint32{0x03064547, 0x0351ab92, 0x001a60a6, 0x02a2bd8b, 0x03227ae8, 0x00782d4d, 0x02b5978b, 0x02c8fa79, 0x02b4b130, 0x001ea901}}}, + {X: Field{[10]uint32{0x01ed2b2d, 0x0053066e, 0x025db3d3, 0x0064486b, 0x01e97f6e, 0x01426fb0, 0x0164ea83, 0x0165429d, 0x02b4e5d3, 0x001c480d}}, Y: Field{[10]uint32{0x00a93616, 0x01d0539a, 0x0172a21d, 0x00cbe725, 0x00e3a322, 0x0094d0b2, 0x0298d2f4, 0x0183a811, 0x03f38d05, 0x0009618b}}}, + {X: Field{[10]uint32{0x00bfb392, 0x00ad54bc, 0x02df0756, 0x038c1e56, 0x03dca402, 0x026bf25c, 0x02e58c87, 0x0322ea50, 0x00f7d70f, 0x0016f3bc}}, Y: Field{[10]uint32{0x03af1919, 0x032c2242, 0x0247454c, 0x0391cc95, 0x011a444c, 0x00ff15be, 0x03b0e12c, 0x016ff4fb, 0x024cecb4, 0x001f3216}}}, + {X: Field{[10]uint32{0x01741ada, 0x0076164e, 0x02b0eb5c, 0x00519d9e, 0x03b9e5f2, 0x03d713a6, 0x03ab9f0a, 0x02286c2b, 0x002f9d50, 0x0037355c}}, Y: Field{[10]uint32{0x01cc1fa1, 0x009463b7, 0x0335f9eb, 0x0161bc31, 0x013369d5, 0x00949940, 0x00d40a4a, 0x038e9f73, 0x02d7ea13, 0x003dfaba}}}, + {X: Field{[10]uint32{0x02cb3d9f, 0x02e46ef9, 0x02ec9784, 0x02e4974f, 0x02363bfc, 0x02e2dc5d, 0x01c3ade1, 0x018a7424, 0x00d0004f, 0x000b3a8c}}, Y: Field{[10]uint32{0x01c42624, 0x011825a8, 0x036e3444, 0x0152ce6c, 0x03c48ba4, 0x00f778d2, 0x009a76aa, 0x02c5c73f, 0x03ada42a, 0x002a0fd2}}}, + {X: Field{[10]uint32{0x01c32f8d, 0x01b7f1e8, 0x035d009c, 0x035ba540, 0x01150e54, 0x029064d3, 0x015fcb13, 0x00647b7c, 0x01f2767b, 0x002162d0}}, Y: Field{[10]uint32{0x03de8dd7, 0x03b3e0a7, 0x01358e5c, 0x0277d975, 0x00b34d6e, 0x01200a8a, 0x00a21720, 0x0257d51e, 0x017d76dc, 0x0020602e}}}, + {X: Field{[10]uint32{0x030e81e6, 0x03f40830, 0x01294245, 0x01a034bc, 0x033eb9a6, 0x03d06004, 0x01234e5f, 0x0166e1b4, 0x0002bee3, 0x00357260}}, Y: Field{[10]uint32{0x033781de, 0x02bad256, 0x0376d921, 0x03a47640, 0x03a0b6bc, 0x00bf21ed, 0x01a2e4ee, 0x031e5419, 0x01a4cd2b, 0x0013948b}}}, + {X: Field{[10]uint32{0x0120c1ed, 0x01b0e865, 0x00fb7d4d, 0x01db6a2b, 0x0134002d, 0x00b792df, 0x024ddf58, 0x03aa7dc6, 0x01622f9c, 0x0003afe4}}, Y: Field{[10]uint32{0x02d4e251, 0x02074616, 0x0136ecd4, 0x0126394d, 0x027e43d0, 0x00631d6a, 0x03fb4833, 0x02073638, 0x03223e18, 0x003bb9d4}}}, + {X: Field{[10]uint32{0x0261db4d, 0x01bdb202, 0x01ff6b40, 0x0013cd9a, 0x000acc45, 0x03dd2f9a, 0x002e111a, 0x015bcc23, 0x02a9d087, 0x0000e1fd}}, Y: Field{[10]uint32{0x03cdd28a, 0x02d54ba1, 0x00c4a59d, 0x0288dc89, 0x01ed0bbb, 0x033d73d3, 0x01f96d5d, 0x017e449b, 0x01e3ea1d, 0x000a2165}}}, + {X: Field{[10]uint32{0x03e46714, 0x01d255b7, 0x020df255, 0x03ba7fbc, 0x009aa409, 0x01648051, 0x03a2d70e, 0x0354b8e0, 0x01c0989b, 0x00225ffc}}, Y: Field{[10]uint32{0x01adc9d1, 0x03b3e942, 0x016c6bca, 0x01a4db7f, 0x02de0940, 0x0112a1ce, 0x0295a006, 0x0194a7d3, 0x00c9308c, 0x000f3ef0}}}, + {X: Field{[10]uint32{0x01a395af, 0x01fbc6ad, 0x03eefb57, 0x00ddbe13, 0x03bbcbb3, 0x00b62c93, 0x02bbf21e, 0x02131e2d, 0x00a68e04, 0x000c956a}}, Y: Field{[10]uint32{0x0112aeb3, 0x0089664a, 0x0081fd81, 0x0355107a, 0x0379ef3f, 0x00b5d224, 0x014a426d, 0x012e139b, 0x0002f920, 0x0005ecf0}}}, + {X: Field{[10]uint32{0x01c55599, 0x023be7f7, 0x01b7e277, 0x00079c1c, 0x011fbca1, 0x007b6889, 0x003eeafb, 0x038ec0e5, 0x0152d4d9, 0x000b292a}}, Y: Field{[10]uint32{0x03891e00, 0x00b858c8, 0x016a0989, 0x032d8f28, 0x03e98631, 0x01d231fa, 0x01a2c044, 0x030637e0, 0x02ccdf02, 0x002feb2e}}}, + {X: Field{[10]uint32{0x024383b2, 0x0017dab7, 0x03d73105, 0x03e22936, 0x02046ee5, 0x006dbb2d, 0x03b0410e, 0x00cd2b51, 0x009c478c, 0x0030fa0a}}, Y: Field{[10]uint32{0x02f0f55f, 0x00012cf5, 0x0391fde4, 0x03b89c9e, 0x0000229b, 0x02d3b488, 0x03f4309c, 0x0048e191, 0x02ceb043, 0x0015e4b0}}}, + {X: Field{[10]uint32{0x01119049, 0x02f49f05, 0x019d5f87, 0x02376e4b, 0x0086fb96, 0x01fe6108, 0x03ad63c6, 0x024be619, 0x0360a862, 0x000aef7b}}, Y: Field{[10]uint32{0x00a85362, 0x0219d598, 0x03538802, 0x018953c0, 0x00e75dac, 0x03503534, 0x0099d193, 0x0311e4a4, 0x03623536, 0x003d292d}}}, + {X: Field{[10]uint32{0x032496a9, 0x00cf2e7f, 0x03d2ce03, 0x01ef88ab, 0x01fe3ee4, 0x005292f8, 0x0014ef07, 0x02b2cc60, 0x00909e7d, 0x001de9b8}}, Y: Field{[10]uint32{0x0251065f, 0x01746214, 0x00384381, 0x009f858f, 0x0234461e, 0x00658524, 0x01915d18, 0x0241b347, 0x0075b1a9, 0x00153c39}}}, + {X: Field{[10]uint32{0x00f40ff0, 0x00e79141, 0x00b1145c, 0x0391e4d4, 0x02ea94d5, 0x01e7d935, 0x034f4139, 0x0249537a, 0x016b7871, 0x0034656e}}, Y: Field{[10]uint32{0x00e0636c, 0x01fdca70, 0x0069bd99, 0x02b696bd, 0x00b8245c, 0x002936e2, 0x032d4b2b, 0x0211ba51, 0x0040613c, 0x0008e291}}}, + {X: Field{[10]uint32{0x00815b1f, 0x029866c1, 0x01bd8113, 0x00552369, 0x00ad024d, 0x00213d05, 0x03b0f3c6, 0x029975d6, 0x0336208a, 0x0030e6a8}}, Y: Field{[10]uint32{0x0126fe5a, 0x00cc54c4, 0x012004b2, 0x014db612, 0x02455a00, 0x0395cfb9, 0x0083b226, 0x00775052, 0x02d63274, 0x001eaac7}}}, + {X: Field{[10]uint32{0x01e31f30, 0x01dd933f, 0x028d2296, 0x01c11362, 0x01d6661c, 0x00932ecc, 0x020bd270, 0x020b6f2f, 0x023d0baf, 0x003a0328}}, Y: Field{[10]uint32{0x0197451b, 0x0211d129, 0x017138c4, 0x01091a18, 0x01f67e81, 0x03ae0f97, 0x03c583a5, 0x01e1e2f2, 0x01d47318, 0x002854f4}}}, + {X: Field{[10]uint32{0x0272ef80, 0x032dec0b, 0x00120711, 0x017f82bb, 0x01f3e850, 0x0356569f, 0x016723a4, 0x0308e83e, 0x0265a5a9, 0x000e56de}}, Y: Field{[10]uint32{0x009bf990, 0x026979f9, 0x034b6222, 0x000ca64b, 0x034f88cf, 0x02895950, 0x02d37b19, 0x01b8e4da, 0x01d54747, 0x00164083}}}, + {X: Field{[10]uint32{0x010b495c, 0x03f688a4, 0x02577644, 0x0117ffbc, 0x02e8b495, 0x0144a976, 0x017e2cd9, 0x008f49ed, 0x00dbb83e, 0x0019e9fa}}, Y: Field{[10]uint32{0x00965735, 0x014c0cba, 0x01f15a87, 0x03b9a338, 0x0041fd34, 0x03a02d04, 0x00a89f78, 0x02e7d040, 0x019d3791, 0x001f0052}}}, + {X: Field{[10]uint32{0x01c0c7e7, 0x02cecfdb, 0x03892ac9, 0x00218508, 0x03ecfb4b, 0x032f8b38, 0x01863952, 0x039ec21a, 0x027d76d2, 0x003100e3}}, Y: Field{[10]uint32{0x01e92f3b, 0x0080d459, 0x0229e72f, 0x002d9909, 0x00012946, 0x030d3f23, 0x02a27bab, 0x026df4c9, 0x030d9efc, 0x00186ece}}}, + {X: Field{[10]uint32{0x03a25e5a, 0x0095a630, 0x019a88a5, 0x00201c28, 0x01b9bdda, 0x03f0fd5d, 0x029c52f5, 0x034ebbb9, 0x01e226a4, 0x001dc169}}, Y: Field{[10]uint32{0x03c7a1b7, 0x020f92d4, 0x022073a8, 0x00088901, 0x0244be9e, 0x0071aa60, 0x0026973d, 0x001be309, 0x016cf019, 0x00116382}}}, + {X: Field{[10]uint32{0x00ff48d0, 0x028d1d4d, 0x028759e4, 0x03c6d192, 0x0268a5f1, 0x007f80e5, 0x02994fa0, 0x02d7985a, 0x03c35958, 0x003cf3a2}}, Y: Field{[10]uint32{0x010058fe, 0x02891cf8, 0x00d6b222, 0x02821d40, 0x038dc92a, 0x01ebb18f, 0x008c441f, 0x035e2d9f, 0x0197be3a, 0x00270687}}}, + {X: Field{[10]uint32{0x00a4e0d0, 0x0279fccf, 0x005d7664, 0x02b6bd5a, 0x003ebb94, 0x00075be2, 0x029d764e, 0x033af6e6, 0x0120de69, 0x002417b0}}, Y: Field{[10]uint32{0x00a9d554, 0x039127a7, 0x030e93a8, 0x004b5e6a, 0x024d42ce, 0x01470032, 0x00a75d0e, 0x02a8e9dd, 0x02993974, 0x0024985f}}}, + {X: Field{[10]uint32{0x0321eeed, 0x02b69a26, 0x006b4f15, 0x011ff6c9, 0x0127d484, 0x01993078, 0x02d0edc3, 0x02164a2e, 0x024da357, 0x002c6dd2}}, Y: Field{[10]uint32{0x013206d9, 0x02c9baa7, 0x021328f5, 0x0240cf13, 0x00c14e4d, 0x00c8b134, 0x00e38231, 0x027a3ef3, 0x01c7b84e, 0x00310d4e}}}, + {X: Field{[10]uint32{0x03d8bcf1, 0x03ee58c0, 0x02025bd5, 0x01344b4f, 0x038dcf81, 0x0310b6ad, 0x03a2a471, 0x00b51acb, 0x0165c72f, 0x00035100}}, Y: Field{[10]uint32{0x0343ae3e, 0x001c87d4, 0x0022aca3, 0x01247601, 0x03fabab7, 0x031da0f7, 0x03ad9cff, 0x017eb3a5, 0x0150261f, 0x00382192}}}, + {X: Field{[10]uint32{0x0053b303, 0x00fe4e54, 0x02ed1de0, 0x02bd9602, 0x03fe08d5, 0x0355ce95, 0x03910be6, 0x00669fde, 0x004f722c, 0x003fd493}}, Y: Field{[10]uint32{0x0353bf0d, 0x02ea986d, 0x0391398f, 0x01a18bd7, 0x035b9f13, 0x00c80cd6, 0x0262deab, 0x02aa2ece, 0x014e5b25, 0x0003f52b}}}, + {X: Field{[10]uint32{0x018d091e, 0x017fbc63, 0x01a4463a, 0x02c128eb, 0x038fafa2, 0x02706e90, 0x0376a53c, 0x00420f92, 0x00bd331c, 0x003bff78}}, Y: Field{[10]uint32{0x01947dde, 0x038530c7, 0x02b9aee0, 0x037cad06, 0x02c563bd, 0x01b33bc3, 0x02e54208, 0x0084179a, 0x029ca75c, 0x003f5ea1}}}, + {X: Field{[10]uint32{0x033875e8, 0x03115c4b, 0x01278f40, 0x01939027, 0x021115ba, 0x0160eb6c, 0x034a304b, 0x03667a22, 0x02c099c8, 0x002979d1}}, Y: Field{[10]uint32{0x02934a68, 0x0307bbcb, 0x00c07fd2, 0x00e7767a, 0x02841709, 0x001cfdff, 0x00baba4f, 0x00e0c0b1, 0x0112c2af, 0x001fe0c8}}}, + {X: Field{[10]uint32{0x02ccb431, 0x006424cc, 0x0246a1ba, 0x01d121be, 0x037df5e2, 0x03f91544, 0x00daa722, 0x03a50e76, 0x01e3af5e, 0x001ab32e}}, Y: Field{[10]uint32{0x0328dcae, 0x03277267, 0x01dc443e, 0x00207f3d, 0x01a3faf1, 0x01a3e4b9, 0x03c26a9b, 0x01960141, 0x0258842d, 0x003c3785}}}, + {X: Field{[10]uint32{0x032b6d4e, 0x0225e2bd, 0x023ba1ec, 0x00c7b404, 0x00b86f3d, 0x03be15a6, 0x00e782b3, 0x00cafdba, 0x0055e40d, 0x003204f4}}, Y: Field{[10]uint32{0x01068ca6, 0x01e40463, 0x0128d288, 0x03d0aee5, 0x0047d37e, 0x021318a0, 0x01a41916, 0x0118c713, 0x03572f92, 0x002ebdb5}}}, + {X: Field{[10]uint32{0x03c7aaf9, 0x02a11365, 0x01177038, 0x0398bf7c, 0x03599dfa, 0x02f93561, 0x03baeb58, 0x03f18913, 0x00122cad, 0x0022e208}}, Y: Field{[10]uint32{0x02f7a6a3, 0x00f1e081, 0x00b2d409, 0x0291da02, 0x007867c8, 0x029690aa, 0x016e131f, 0x003693dc, 0x0293ac90, 0x003d79b0}}}, + {X: Field{[10]uint32{0x017310ce, 0x006760cb, 0x017ee096, 0x00d1341c, 0x03bc02ff, 0x03fea910, 0x00a5acc4, 0x03960ad5, 0x0050f49e, 0x0023c1d4}}, Y: Field{[10]uint32{0x01f7fd3f, 0x0284c56d, 0x021c9b99, 0x02a1adc0, 0x01f1f9f9, 0x011e668f, 0x00555c4a, 0x034c95f3, 0x01bb7ab3, 0x0004ee40}}}, + {X: Field{[10]uint32{0x00374c58, 0x035047ec, 0x01f66921, 0x036c8720, 0x0389a456, 0x00bdcb25, 0x025fb1df, 0x00f950f1, 0x02f8cf64, 0x002ef214}}, Y: Field{[10]uint32{0x030a590b, 0x012ee8ac, 0x032cd4c1, 0x00be13c0, 0x03a27e1c, 0x02c922cf, 0x03f604cf, 0x007892ca, 0x02bbe797, 0x002b423a}}}, + {X: Field{[10]uint32{0x0280bc1f, 0x000940c6, 0x009fcffa, 0x0332c795, 0x03009278, 0x03730b72, 0x00edddc9, 0x0156ee1e, 0x004b662b, 0x000b5df7}}, Y: Field{[10]uint32{0x00d058eb, 0x01821c3b, 0x03fffa8e, 0x0282272b, 0x02c07707, 0x01dbbdbb, 0x01a62f4e, 0x03ca86b4, 0x00d84fa7, 0x000a22ec}}}, + {X: Field{[10]uint32{0x03ccbdf9, 0x01e452b5, 0x00b4ffea, 0x02ae7216, 0x00c90945, 0x012ee9b2, 0x03df7d99, 0x02a1bae6, 0x031ff3b4, 0x002f20fd}}, Y: Field{[10]uint32{0x03232292, 0x034f9252, 0x00b30020, 0x018e8ea2, 0x01fa3c25, 0x03446550, 0x01ed4553, 0x01f48e02, 0x03a3e506, 0x00063a47}}}, + {X: Field{[10]uint32{0x00200919, 0x036d0d4b, 0x037b3205, 0x03038aee, 0x0045f83d, 0x011f4149, 0x0211b7e8, 0x02239ac3, 0x02578d9b, 0x001f56e5}}, Y: Field{[10]uint32{0x00515ba9, 0x03d55c24, 0x00d352fa, 0x01caabf5, 0x00b1c9e6, 0x015a6bd3, 0x00e7230c, 0x0304370a, 0x037b8830, 0x00079a27}}}, + {X: Field{[10]uint32{0x000cdc80, 0x03e4a288, 0x03cdc1ba, 0x021f2b30, 0x01516148, 0x01183128, 0x01bab4c7, 0x021a20c7, 0x03648d75, 0x00217a7c}}, Y: Field{[10]uint32{0x01369e27, 0x0239684c, 0x03a9dd5f, 0x03d300ff, 0x035ba5e4, 0x001fdff0, 0x025224cc, 0x01170161, 0x01180d50, 0x001fd339}}}, + {X: Field{[10]uint32{0x02cd0810, 0x00765d12, 0x0065da10, 0x01dd16c7, 0x029c1d10, 0x02ef6dc6, 0x0055816d, 0x0252f4d2, 0x00dfc1c0, 0x001094e4}}, Y: Field{[10]uint32{0x0349bc00, 0x01df53c7, 0x0327d1e2, 0x030c2303, 0x02707547, 0x0027785d, 0x0026d94f, 0x0135c1a4, 0x00dd20ef, 0x00207c53}}}, + {X: Field{[10]uint32{0x013549d7, 0x036bfd90, 0x004194ce, 0x0026fe39, 0x02dbb594, 0x00283dd6, 0x00d00bb6, 0x024eb094, 0x030b66dc, 0x000f31f3}}, Y: Field{[10]uint32{0x00204a58, 0x01307587, 0x0323a066, 0x00668afa, 0x02ae17b7, 0x037dc399, 0x008bcf99, 0x036267da, 0x032fc3db, 0x000cc698}}}, + {X: Field{[10]uint32{0x0270853d, 0x00acfaf3, 0x035f017e, 0x00a8af8e, 0x009d6a0b, 0x03fde276, 0x03c923bc, 0x02f3a023, 0x008db8a1, 0x003f5c82}}, Y: Field{[10]uint32{0x01eaf599, 0x0037b242, 0x03494b71, 0x02a37d91, 0x0193db4a, 0x0282fb76, 0x03296383, 0x0066ebac, 0x0323a388, 0x0034e44a}}}, + {X: Field{[10]uint32{0x03e65060, 0x02cd6b3b, 0x037a6b72, 0x01071f74, 0x01c73185, 0x0282ea89, 0x00940af9, 0x025b6936, 0x038d5e00, 0x000f9563}}, Y: Field{[10]uint32{0x0260e90a, 0x01414f79, 0x00dde769, 0x00c5ffb0, 0x03f78f64, 0x02ea56e1, 0x03bdb3ef, 0x020170fa, 0x017f069d, 0x000a900f}}}, + {X: Field{[10]uint32{0x00694a7e, 0x03c81276, 0x00b01e82, 0x00aa43f4, 0x03721ec3, 0x0386dd17, 0x0000149f, 0x03c8885b, 0x0223f525, 0x001c1c20}}, Y: Field{[10]uint32{0x03d12569, 0x036afafb, 0x0354b410, 0x02218d98, 0x01fce17d, 0x01f650ed, 0x0186ac90, 0x0354fc67, 0x0387f0b4, 0x003bd2b5}}}, + {X: Field{[10]uint32{0x02414f72, 0x03a4452a, 0x012fc6e5, 0x02537be7, 0x02440b4a, 0x007933dd, 0x01eddb71, 0x03ebd92e, 0x0225eabf, 0x003b28a5}}, Y: Field{[10]uint32{0x037618cf, 0x00e2e388, 0x009dcd35, 0x00a0a0e6, 0x03f798b6, 0x03162433, 0x03bb2274, 0x028ff2c8, 0x007575af, 0x003c7e0e}}}, + {X: Field{[10]uint32{0x03297695, 0x00e3d957, 0x00108778, 0x02959b5b, 0x02da7423, 0x02186496, 0x0206db46, 0x03c31311, 0x0350542d, 0x0016df11}}, Y: Field{[10]uint32{0x011f784d, 0x008ae79e, 0x010795f9, 0x00b57a01, 0x01de04db, 0x033669a9, 0x00cb1a24, 0x02227f5b, 0x03661ae1, 0x0010a044}}}, + {X: Field{[10]uint32{0x00012042, 0x026e61af, 0x0038cb37, 0x01a20016, 0x02bd5da1, 0x039e20bf, 0x02982dd1, 0x02cbbb4d, 0x03e6040c, 0x002bc697}}, Y: Field{[10]uint32{0x013e6224, 0x0104856b, 0x00778b7e, 0x023a18f5, 0x02576877, 0x03f3f228, 0x03d12ed1, 0x0298d298, 0x0149305f, 0x001c55c1}}}, + {X: Field{[10]uint32{0x0366b1d2, 0x00659da4, 0x0346a9a3, 0x022c755d, 0x03e1e8b1, 0x00627132, 0x03cd1be1, 0x01f9c3e0, 0x03a24678, 0x001c9d10}}, Y: Field{[10]uint32{0x0116d540, 0x024a341b, 0x03dead68, 0x0303480b, 0x004df56a, 0x01dc396d, 0x02565cc1, 0x00fa2684, 0x00269bba, 0x00218d5e}}}, + {X: Field{[10]uint32{0x02640b8d, 0x03866284, 0x012556c5, 0x00aeafcf, 0x03ae2c9a, 0x004e647d, 0x01e68352, 0x0398a852, 0x0179db34, 0x0000259e}}, Y: Field{[10]uint32{0x019edcc4, 0x0301f07f, 0x03b014d4, 0x009c946c, 0x018547b8, 0x02fcf47b, 0x02e44ac3, 0x015944f3, 0x014f5244, 0x00267707}}}, + {X: Field{[10]uint32{0x03203601, 0x03ee20eb, 0x038b159d, 0x01f6f95e, 0x02be5693, 0x0016c1ac, 0x02f9d739, 0x0124789f, 0x01db08f3, 0x001e5002}}, Y: Field{[10]uint32{0x02da40b6, 0x0329878a, 0x017e750e, 0x009090e4, 0x005db60d, 0x022761ad, 0x026a0872, 0x03873456, 0x024d7ee5, 0x00169ab5}}}, + {X: Field{[10]uint32{0x01851d10, 0x018a5faa, 0x015110cf, 0x00bd41e4, 0x03d2f421, 0x03ec3747, 0x029470b1, 0x02c2436e, 0x02396f90, 0x0021f2f6}}, Y: Field{[10]uint32{0x001b63f0, 0x02480169, 0x013e773a, 0x014b8473, 0x03fb8f79, 0x01561771, 0x01fb4c9c, 0x03e65d40, 0x01f3a2a4, 0x00272825}}}, + {X: Field{[10]uint32{0x0110acb0, 0x0116c06e, 0x01fa84b2, 0x036816e5, 0x02cd1f3a, 0x006f9f84, 0x00207720, 0x005d4963, 0x0303475d, 0x0027b55e}}, Y: Field{[10]uint32{0x03bbd5eb, 0x03ba8da8, 0x0350d324, 0x0112387b, 0x03253106, 0x0032cfa2, 0x0058a7bd, 0x0206be17, 0x005443bd, 0x00356324}}}, + {X: Field{[10]uint32{0x028b0402, 0x00d53980, 0x02be7d5d, 0x0087f499, 0x0335fd95, 0x01844cd8, 0x02c77e38, 0x011260b6, 0x022292ca, 0x003be342}}, Y: Field{[10]uint32{0x00b58b6b, 0x01629d0f, 0x0037ff97, 0x034b8ad0, 0x02f2f547, 0x01df06a6, 0x0223e5b6, 0x02076a92, 0x034a5568, 0x00395712}}}, + {X: Field{[10]uint32{0x0127e3d9, 0x000565f4, 0x01c75abd, 0x0386c4bd, 0x002299f6, 0x03e93b42, 0x02d369f4, 0x03ca7540, 0x01f5a274, 0x001b6e88}}, Y: Field{[10]uint32{0x01a39d94, 0x0369de94, 0x00f3c930, 0x02774b7c, 0x01c951f6, 0x039ba720, 0x00302de3, 0x03907a31, 0x032f0a0c, 0x001da17d}}}, + {X: Field{[10]uint32{0x00399a3d, 0x0111a4f2, 0x032aa6ba, 0x026dfecc, 0x02784196, 0x01bb4a94, 0x001b0f42, 0x0308d5f7, 0x02bf857a, 0x0023370f}}, Y: Field{[10]uint32{0x03f910ca, 0x01dbe92d, 0x02beca58, 0x02ac9d22, 0x03df250d, 0x02da2866, 0x00d87249, 0x031c501b, 0x03c1915a, 0x0008d374}}}, + {X: Field{[10]uint32{0x01eca2da, 0x03f620ad, 0x00de1e88, 0x03e8a4d1, 0x00a9c790, 0x011c1a26, 0x03391b6f, 0x0196d1f8, 0x01c8caa6, 0x0028020a}}, Y: Field{[10]uint32{0x01424110, 0x02d4c5bf, 0x02aa8184, 0x025d81a3, 0x00234862, 0x020c6095, 0x004b1299, 0x01333962, 0x00c71e83, 0x002df23f}}}, + {X: Field{[10]uint32{0x0149ce6a, 0x02007748, 0x005f5640, 0x00bbbfdf, 0x02a4ed5b, 0x0353c8b5, 0x012e54a1, 0x02fac528, 0x0362446c, 0x00161cbd}}, Y: Field{[10]uint32{0x00ee198f, 0x0283070a, 0x01e2ac75, 0x0362eeb3, 0x004c37d5, 0x010d93bd, 0x030c29e2, 0x015fe869, 0x03e88627, 0x0022ab34}}}, + {X: Field{[10]uint32{0x02fd34f2, 0x0331ae40, 0x03b2fec4, 0x02b24674, 0x0353e7ce, 0x016d4cb3, 0x02677d2e, 0x01c543c8, 0x01c05dba, 0x002dc3b5}}, Y: Field{[10]uint32{0x00d28cf8, 0x035120a9, 0x0083126b, 0x026c2158, 0x0376c3d6, 0x006363f2, 0x03cee0b0, 0x005c728b, 0x0128cc74, 0x001f90fd}}}, + {X: Field{[10]uint32{0x0053bb52, 0x00305ae0, 0x027d309d, 0x00169e42, 0x022e8ca5, 0x03ac272e, 0x01a6d7c8, 0x0187431f, 0x02133c61, 0x0012faa8}}, Y: Field{[10]uint32{0x01d4f6d5, 0x02b372a6, 0x03ffadb1, 0x01b30a62, 0x03070349, 0x012cbb84, 0x0226d8fe, 0x0368bb19, 0x003c9cbd, 0x00369302}}}, + {X: Field{[10]uint32{0x01804831, 0x003a07c1, 0x035fc8a1, 0x00d134d3, 0x0108594b, 0x017e6af4, 0x00de363c, 0x0060d29e, 0x02c653ce, 0x002a34c7}}, Y: Field{[10]uint32{0x02c5cff9, 0x0130a1b6, 0x00bce64f, 0x00616529, 0x008c462c, 0x02df22e9, 0x01b5601c, 0x038dc27b, 0x01cd7cbb, 0x002d35aa}}}, +} + +var prec = [64][16]XY{ + { + {X: Field{[10]uint32{0x02f81798, 0x00a056c5, 0x028d959f, 0x036cb738, 0x03029bfc, 0x03a1c2c1, 0x0206295c, 0x02eeb156, 0x027ef9dc, 0x001e6f99}}, Y: Field{[10]uint32{0x0310d4b8, 0x01f423fe, 0x014199c4, 0x01229a15, 0x00fd17b4, 0x0384422a, 0x024fbfc0, 0x03119576, 0x027726a3, 0x00120eb6}}}, + {X: Field{[10]uint32{0x00709ee5, 0x03026e57, 0x03ca7aba, 0x012e33bc, 0x005c778e, 0x01701f36, 0x005406e9, 0x01f5b4c1, 0x039441ed, 0x0031811f}}, Y: Field{[10]uint32{0x00cfe52a, 0x010c6a54, 0x010e1236, 0x0194c99b, 0x02f7f632, 0x019b3abb, 0x00584194, 0x030ce68f, 0x00fea63d, 0x0006b85a}}}, + {X: Field{[10]uint32{0x00e036f9, 0x007c44ef, 0x019b0860, 0x01160dbe, 0x01b531c8, 0x0227548a, 0x0344f85f, 0x030c4124, 0x02019258, 0x003e4c22}}, Y: Field{[10]uint32{0x00b8e672, 0x027f5d61, 0x0231b6cb, 0x0264d308, 0x026500a9, 0x028dfcd5, 0x02337e62, 0x03a0503f, 0x030f632d, 0x000e23de}}}, + {X: Field{[10]uint32{0x00c4cd13, 0x02a52afa, 0x0358474f, 0x02403b81, 0x00cc6c13, 0x00c2c501, 0x01e49049, 0x0203cd60, 0x03f1c10d, 0x003924f6}}, Y: Field{[10]uint32{0x03739922, 0x025ef711, 0x03e40cfe, 0x00cefef7, 0x00d967ae, 0x03a94512, 0x002e2098, 0x0156dd59, 0x013ea0d4, 0x00147b66}}}, + {X: Field{[10]uint32{0x0240efe4, 0x02355a6c, 0x01ab7cba, 0x02f77186, 0x00e88b84, 0x0297144a, 0x034a7250, 0x00824d56, 0x024d1a07, 0x000be2f7}}, Y: Field{[10]uint32{0x02ac62d6, 0x021f4ea9, 0x02840dca, 0x006eac35, 0x02f78827, 0x01b27109, 0x01ba9dda, 0x038f5b53, 0x022636e5, 0x00362b08}}}, + {X: Field{[10]uint32{0x00297556, 0x015e8518, 0x0218b2f0, 0x00be15a2, 0x0382f647, 0x01548d74, 0x0053a143, 0x03ba9081, 0x03d5755e, 0x003ffe5e}}, Y: Field{[10]uint32{0x0075f297, 0x01c30dac, 0x024a03c8, 0x03d9463f, 0x00de80f0, 0x03d17158, 0x03e96017, 0x02d883ce, 0x037aacfb, 0x002b849d}}}, + {X: Field{[10]uint32{0x02c4f9bc, 0x02f77b72, 0x0239ce92, 0x01f80cc3, 0x023d419b, 0x00ba9e83, 0x018f365f, 0x02d3aa8e, 0x00646e5d, 0x00172f7c}}, Y: Field{[10]uint32{0x007264da, 0x02098a02, 0x027b5a50, 0x02e04ff7, 0x03a813d0, 0x01869536, 0x0178d6d8, 0x0165828c, 0x0240ba25, 0x001abaf2}}}, + {X: Field{[10]uint32{0x010a2a01, 0x0213bcf8, 0x0088a677, 0x001796be, 0x030a1bdd, 0x01c3cf0b, 0x033843fb, 0x00d476bf, 0x01e15cca, 0x000bc079}}, Y: Field{[10]uint32{0x00bde904, 0x028b2ddb, 0x03617b5d, 0x035ae96d, 0x00c2e213, 0x00cb44ed, 0x03d082a1, 0x026524a4, 0x00a74153, 0x0017136a}}}, + {X: Field{[10]uint32{0x0027ccbe, 0x03c4437f, 0x02714c35, 0x025d315f, 0x01e09796, 0x03d566af, 0x02d178a9, 0x03d94c26, 0x00e2f0c7, 0x002b3521}}, Y: Field{[10]uint32{0x024f9c37, 0x03098ab1, 0x00e0f05c, 0x0290dd7e, 0x01add888, 0x018ed87a, 0x03809717, 0x0367f590, 0x0121b0a7, 0x00330ce2}}}, + {X: Field{[10]uint32{0x03e247c7, 0x01a38a91, 0x002b752a, 0x026c650f, 0x013442d4, 0x02b9ab97, 0x0077c7b1, 0x032188d5, 0x019e47f3, 0x002810d3}}, Y: Field{[10]uint32{0x037368d7, 0x03b94ec0, 0x021593cb, 0x00bb61de, 0x016f794c, 0x00e8931a, 0x036c7e69, 0x02f09e8e, 0x02425419, 0x00224eae}}}, + {X: Field{[10]uint32{0x01a008cb, 0x0305e257, 0x03891bbe, 0x002f9705, 0x00564998, 0x003196ab, 0x034246b7, 0x0104797b, 0x03f858a9, 0x001dd2b9}}, Y: Field{[10]uint32{0x0153c61b, 0x035d3272, 0x016a8301, 0x038b7fe7, 0x01372db1, 0x01edecd9, 0x003dd56d, 0x01786409, 0x0032eb6b, 0x00366128}}}, + {X: Field{[10]uint32{0x00afe85a, 0x003d1c1c, 0x0095bc5b, 0x01065880, 0x03687cf4, 0x035cd18c, 0x0038f004, 0x01586c57, 0x01d548e7, 0x00340445}}, Y: Field{[10]uint32{0x00062327, 0x0146c4fd, 0x02d526b0, 0x017766a1, 0x0179238c, 0x005ef605, 0x0364537e, 0x03835ea2, 0x03fdc815, 0x002a7cd3}}}, + {X: Field{[10]uint32{0x01405aa8, 0x0377e3c6, 0x018cddee, 0x03198439, 0x01b075fb, 0x00dd2194, 0x011d205c, 0x00a22f1f, 0x03c2d975, 0x003ca1dc}}, Y: Field{[10]uint32{0x0303ed81, 0x0172d4b6, 0x0291f29b, 0x0369487e, 0x033a1a06, 0x01736bd1, 0x00212eb6, 0x002a25d6, 0x002e8d88, 0x0002ac24}}}, + {X: Field{[10]uint32{0x00e823e4, 0x02c90698, 0x009e6e49, 0x018d9e25, 0x0226aa7b, 0x01f4e38c, 0x024e67f0, 0x01c673f5, 0x039e895e, 0x001267f7}}, Y: Field{[10]uint32{0x03a13f5b, 0x03d03500, 0x015bcc65, 0x0309e8fe, 0x00464279, 0x01ecf519, 0x03044e4a, 0x02154643, 0x02c4b54e, 0x0032b0bd}}}, + {X: Field{[10]uint32{0x027e080e, 0x036f3e38, 0x0379e44a, 0x01bcf217, 0x0131e594, 0x0257fd04, 0x0065ae30, 0x03aa5969, 0x014f7d43, 0x0035e493}}, Y: Field{[10]uint32{0x02a26b58, 0x013727fd, 0x013a5c50, 0x00af625b, 0x03ea40af, 0x02331b7b, 0x0042ec22, 0x01ca9a0e, 0x0072a86c, 0x0016078a}}}, + {X: Field{[10]uint32{0x026dec0a, 0x03ba278a, 0x01ae9c44, 0x01a6e1e9, 0x03b2a313, 0x00708fa5, 0x011aabc2, 0x027b14c0, 0x0293b59e, 0x003983f3}}, Y: Field{[10]uint32{0x01616821, 0x00cb339a, 0x03f0be1f, 0x00791348, 0x00129689, 0x015e4dc4, 0x0399f34f, 0x02564a76, 0x007399e5, 0x003df8d4}}}, + }, + { + {X: Field{[10]uint32{0x026dec0a, 0x03ba278a, 0x01ae9c44, 0x01a6e1e9, 0x03b2a313, 0x00708fa5, 0x011aabc2, 0x027b14c0, 0x0293b59e, 0x003983f3}}, Y: Field{[10]uint32{0x01616821, 0x00cb339a, 0x03f0be1f, 0x00791348, 0x00129689, 0x015e4dc4, 0x0399f34f, 0x02564a76, 0x007399e5, 0x003df8d4}}}, + {X: Field{[10]uint32{0x03143e65, 0x0036f501, 0x0261d75d, 0x02e26412, 0x02dacffc, 0x00bcde33, 0x036e054e, 0x0288b51e, 0x01d74fb5, 0x0034c066}}, Y: Field{[10]uint32{0x00106ab9, 0x00ffc7c9, 0x0019605b, 0x030d93b6, 0x011f760c, 0x0260e019, 0x016dec9e, 0x03570ecf, 0x019d0ae3, 0x002540e3}}}, + {X: Field{[10]uint32{0x0118e5c3, 0x021c2a84, 0x02bc19bd, 0x009d14af, 0x03fc579b, 0x013996d2, 0x001656ef, 0x00c1f6d1, 0x035d9645, 0x001bb28c}}, Y: Field{[10]uint32{0x01a08668, 0x028bde01, 0x02c34498, 0x00e8efe3, 0x003a496a, 0x012e1d68, 0x02f57907, 0x001c4164, 0x03b57a7a, 0x00354048}}}, + {X: Field{[10]uint32{0x0074ef8b, 0x024639be, 0x03d81e37, 0x007736eb, 0x00fc4c6f, 0x020ca08f, 0x01051eaf, 0x03aadc2c, 0x01542d16, 0x002fc8f0}}, Y: Field{[10]uint32{0x02831d9f, 0x00dfbf99, 0x02f784dc, 0x01520478, 0x00c522fc, 0x0294e4b9, 0x01928a0b, 0x000dcdeb, 0x026fc330, 0x00172ce1}}}, + {X: Field{[10]uint32{0x0387f62e, 0x034c7853, 0x021270ec, 0x00e18dc5, 0x0010e6e6, 0x00d1967c, 0x03c744ed, 0x0243b035, 0x03bef1bf, 0x003a588e}}, Y: Field{[10]uint32{0x004ee737, 0x004fabe9, 0x0044e530, 0x032775a2, 0x01fe6043, 0x03b6aa4a, 0x03e953a8, 0x0267a783, 0x003b4bc2, 0x000e2a5d}}}, + {X: Field{[10]uint32{0x038cb0e3, 0x00ceb29f, 0x023a4439, 0x00ff87bf, 0x02a22eb5, 0x02cbadcb, 0x0264e044, 0x01b63e3e, 0x00e57445, 0x000fc3a0}}, Y: Field{[10]uint32{0x025f404f, 0x00a278ba, 0x013a4cb0, 0x00ea996d, 0x03950125, 0x0217406c, 0x00b9c084, 0x02f247a4, 0x03d7296c, 0x0032d9b5}}}, + {X: Field{[10]uint32{0x028d733c, 0x02ab7e0a, 0x028f9eb0, 0x02fd8bf2, 0x02ffc274, 0x002035a0, 0x004a36f2, 0x0076e822, 0x0173e516, 0x002f20b7}}, Y: Field{[10]uint32{0x007797f0, 0x0218413d, 0x017301e7, 0x02eb9ce2, 0x03ae93a0, 0x0067c0b7, 0x029b4bf7, 0x0072b152, 0x003a044b, 0x00397ca3}}}, + {X: Field{[10]uint32{0x0369a24e, 0x001dd159, 0x01655647, 0x035c014d, 0x00bcf55c, 0x01f459c7, 0x02c3d09f, 0x01e819a5, 0x03e4033f, 0x000d3fce}}, Y: Field{[10]uint32{0x03cc2f1a, 0x00419e9c, 0x03681849, 0x030fa3e2, 0x0055df16, 0x020c8263, 0x02619d89, 0x01b154fd, 0x01623a23, 0x00176744}}}, + {X: Field{[10]uint32{0x03bc7671, 0x03f88c57, 0x00e32d7e, 0x03214a16, 0x00743f1b, 0x01e63d24, 0x00291ce1, 0x01c84748, 0x0248c765, 0x00238f44}}, Y: Field{[10]uint32{0x00717dec, 0x00771906, 0x0144a7ef, 0x02aa98f8, 0x02b9352b, 0x00e4fa43, 0x00480e19, 0x032e07d9, 0x00e10ecf, 0x00026692}}}, + {X: Field{[10]uint32{0x01b03f6c, 0x030cab54, 0x0184b05e, 0x0048aa6c, 0x02a4d047, 0x03dcfd5d, 0x00776838, 0x036488af, 0x03a27a52, 0x000c2244}}, Y: Field{[10]uint32{0x00fe4c67, 0x02d7bf3a, 0x01f1260a, 0x03aa0af4, 0x01a8333f, 0x01b00dd7, 0x023531f6, 0x02f97e47, 0x009543fe, 0x003d296c}}}, + {X: Field{[10]uint32{0x02b31db2, 0x021d0caf, 0x006a0f32, 0x009e23d4, 0x028fcae8, 0x002228ad, 0x02a193ed, 0x02926225, 0x01aa2234, 0x001e2a24}}, Y: Field{[10]uint32{0x01fa4343, 0x027588ee, 0x0382d306, 0x03376002, 0x0254379b, 0x01cc0b7d, 0x035f2552, 0x00d72ff3, 0x035beb50, 0x001a44a8}}}, + {X: Field{[10]uint32{0x03ce1752, 0x01d43dcc, 0x0204ec7b, 0x025f5f34, 0x02e783c7, 0x026726ba, 0x02ddf64d, 0x0318d604, 0x0258d01d, 0x0035e836}}, Y: Field{[10]uint32{0x0362cef4, 0x0009ce01, 0x03742bbc, 0x02a3018a, 0x010be040, 0x0038a119, 0x03292834, 0x0200cbdb, 0x00e06800, 0x002449dc}}}, + {X: Field{[10]uint32{0x01b0e595, 0x0123dde3, 0x002bb653, 0x02e7ee82, 0x03a7163c, 0x00581dba, 0x00e37658, 0x006c5f5f, 0x001855db, 0x001f619e}}, Y: Field{[10]uint32{0x00733de8, 0x01478eaf, 0x01532999, 0x01383897, 0x00293784, 0x0353e20e, 0x0162e2be, 0x03e1dcb9, 0x02dfec86, 0x0038ae66}}}, + {X: Field{[10]uint32{0x00e6b514, 0x03115c1b, 0x03322609, 0x031e6cd5, 0x01890905, 0x00211352, 0x005c3560, 0x03b45622, 0x01c2f919, 0x00022f22}}, Y: Field{[10]uint32{0x00c95157, 0x00fd33aa, 0x036f06f6, 0x0158449d, 0x01172d30, 0x02d624b0, 0x0376fec3, 0x03305b79, 0x03cdd7cd, 0x0034c4fc}}}, + {X: Field{[10]uint32{0x02060dfc, 0x03fbe145, 0x02a2a008, 0x02108179, 0x0276545f, 0x0106ac21, 0x0094b9dc, 0x00ab2121, 0x010f0058, 0x0037714c}}, Y: Field{[10]uint32{0x03820ca8, 0x03e2adb9, 0x00730fb5, 0x031aaf41, 0x0041dbaf, 0x0323c3a4, 0x011ab6dc, 0x025a4806, 0x033af20d, 0x002e834b}}}, + {X: Field{[10]uint32{0x01f51508, 0x01b88ff5, 0x01ca1064, 0x02af56b0, 0x00d8c39c, 0x01cb788e, 0x02a6e3e1, 0x002767a8, 0x023212c6, 0x0020a089}}, Y: Field{[10]uint32{0x02e26caf, 0x02dbabfd, 0x017bed31, 0x02b0bdec, 0x0262d613, 0x002d82b3, 0x00256e83, 0x037f917a, 0x00098557, 0x00047e2a}}}, + }, + { + {X: Field{[10]uint32{0x01f51508, 0x01b88ff5, 0x01ca1064, 0x02af56b0, 0x00d8c39c, 0x01cb788e, 0x02a6e3e1, 0x002767a8, 0x023212c6, 0x0020a089}}, Y: Field{[10]uint32{0x02e26caf, 0x02dbabfd, 0x017bed31, 0x02b0bdec, 0x0262d613, 0x002d82b3, 0x00256e83, 0x037f917a, 0x00098557, 0x00047e2a}}}, + {X: Field{[10]uint32{0x0334a24d, 0x038b003b, 0x019d0926, 0x01a36785, 0x010adbc9, 0x033e4635, 0x01a857a9, 0x027fce41, 0x00b287a7, 0x001194dc}}, Y: Field{[10]uint32{0x033887f4, 0x023ec82c, 0x03a10a2f, 0x02c8574d, 0x01588e09, 0x037bb0b0, 0x02f8bdaf, 0x03020a92, 0x01b38368, 0x000d794c}}}, + {X: Field{[10]uint32{0x017e8dfa, 0x03032e79, 0x02184fcf, 0x02468f1f, 0x00098091, 0x032a6328, 0x01a30f8a, 0x02713036, 0x032ff079, 0x002098b3}}, Y: Field{[10]uint32{0x03ac376a, 0x03fe363e, 0x0047835c, 0x00ccac53, 0x0057b6ed, 0x016cd3cd, 0x03ee22ec, 0x0279399b, 0x01e20910, 0x0020ff65}}}, + {X: Field{[10]uint32{0x0285131f, 0x02406cb8, 0x03088d5b, 0x0337204e, 0x00aaec6e, 0x01ab5890, 0x024a18f6, 0x02f5df59, 0x03b8e23c, 0x000907fa}}, Y: Field{[10]uint32{0x0350026d, 0x00f99bc9, 0x035afabb, 0x003ef432, 0x00cd50fd, 0x00e6077e, 0x00420bd1, 0x03e34f5b, 0x00d9ff94, 0x00144cde}}}, + {X: Field{[10]uint32{0x026bdb6f, 0x00b922c0, 0x00b94905, 0x0351edcd, 0x037ca41b, 0x033a6721, 0x00105b24, 0x0377545a, 0x008b1da0, 0x00066097}}, Y: Field{[10]uint32{0x009cfc9b, 0x03dc2131, 0x013a6b5d, 0x033233db, 0x00ebe9ee, 0x013d67db, 0x00261cc9, 0x021e3cc8, 0x010f0d4c, 0x0018a50c}}}, + {X: Field{[10]uint32{0x0070620c, 0x03307c9f, 0x008d9d17, 0x02faaf0a, 0x004998c4, 0x02d9c5e0, 0x00dd31a2, 0x008db718, 0x00a48d2c, 0x000594ea}}, Y: Field{[10]uint32{0x015b32cd, 0x00ba074c, 0x01c526ca, 0x01237f4f, 0x00012af7, 0x03be9c07, 0x03a99474, 0x01fdebab, 0x010935af, 0x0000ce0a}}}, + {X: Field{[10]uint32{0x0182824c, 0x0342548f, 0x034e650e, 0x00d17854, 0x02dfa58e, 0x01b0a667, 0x005f56ec, 0x0064510f, 0x006c1160, 0x001bc4b6}}, Y: Field{[10]uint32{0x02eb34d0, 0x0270d201, 0x03c5b857, 0x01042152, 0x01391c92, 0x03588dda, 0x01994f3f, 0x02fe821d, 0x03f44ab3, 0x001713fd}}}, + {X: Field{[10]uint32{0x03920471, 0x02d8c1a6, 0x01e0dedc, 0x0217d08f, 0x01fc318b, 0x00f63e36, 0x024cc298, 0x03e9e7f3, 0x034ea172, 0x001746f6}}, Y: Field{[10]uint32{0x03b83103, 0x00c199bd, 0x02e7b703, 0x02665b15, 0x0279eb1e, 0x02288995, 0x00bb9943, 0x0278b9e5, 0x02677937, 0x000a10e0}}}, + {X: Field{[10]uint32{0x03453629, 0x037700b6, 0x02603076, 0x03703d67, 0x0245cfdc, 0x008eafbd, 0x0262716a, 0x02a97450, 0x006f9a0a, 0x00080ea3}}, Y: Field{[10]uint32{0x03f89f84, 0x0071e14f, 0x01ed4597, 0x009714a1, 0x02686deb, 0x03d04184, 0x00c76d15, 0x0366e4db, 0x0353de5d, 0x000ec3c2}}}, + {X: Field{[10]uint32{0x0147f3d6, 0x011955ec, 0x00b45b94, 0x0085eae3, 0x03553199, 0x01195440, 0x026a3632, 0x02c78467, 0x0332c294, 0x0011d291}}, Y: Field{[10]uint32{0x00628ba4, 0x03a14a0a, 0x01300dce, 0x005c0438, 0x0311fa7f, 0x00e922a8, 0x02cc30cc, 0x03c13bb4, 0x02231206, 0x00251897}}}, + {X: Field{[10]uint32{0x006c7ecb, 0x004c3779, 0x00ce9783, 0x00ff96ed, 0x009d3aed, 0x0219b87b, 0x01ef7334, 0x01060720, 0x02eb3d03, 0x001b8ab2}}, Y: Field{[10]uint32{0x02bc8720, 0x024807bb, 0x0112c844, 0x02e46d9d, 0x02fac706, 0x003ed90e, 0x000c4daf, 0x03b85276, 0x006797ef, 0x00279869}}}, + {X: Field{[10]uint32{0x031dabcd, 0x010ae9b9, 0x00b4f47d, 0x01262797, 0x0354d3fe, 0x002d4dcf, 0x018ae326, 0x03d0f182, 0x00fb6b63, 0x003527b9}}, Y: Field{[10]uint32{0x016603c2, 0x02a433c0, 0x03031e66, 0x024c4bfd, 0x02129c50, 0x0186fcd5, 0x0087ea7a, 0x0124375f, 0x039209a5, 0x00014c78}}}, + {X: Field{[10]uint32{0x00a4147e, 0x00063cfc, 0x03201eb7, 0x022fddd7, 0x002747dd, 0x02924296, 0x021717e8, 0x0055aebd, 0x0092e9e9, 0x003569c1}}, Y: Field{[10]uint32{0x03fb65ff, 0x02cf2e0c, 0x0357f8e4, 0x0211e59f, 0x02f4c4d9, 0x0197814c, 0x00909907, 0x02271bf1, 0x02f5dbab, 0x00276d49}}}, + {X: Field{[10]uint32{0x003841c6, 0x02a3da2d, 0x02fbd63d, 0x03034d0f, 0x0212aa3c, 0x033afd30, 0x03b6b52d, 0x00226526, 0x009e03df, 0x001b3044}}, Y: Field{[10]uint32{0x0154e94d, 0x00ce91ae, 0x02cf5b97, 0x00f8b641, 0x00d79b43, 0x028a7ffb, 0x03d3d6b0, 0x012dd83f, 0x02fe9c09, 0x002bd586}}}, + {X: Field{[10]uint32{0x00edcec6, 0x036d1af6, 0x00f454ed, 0x030b4d8d, 0x02a1061c, 0x000b36b1, 0x023efc63, 0x022ea014, 0x019aabe1, 0x000e3144}}, Y: Field{[10]uint32{0x0133db08, 0x0382fec6, 0x030a6456, 0x0208ad54, 0x0328a16c, 0x01d7ca0b, 0x00cb2da2, 0x01cca99a, 0x012285d9, 0x00399277}}}, + {X: Field{[10]uint32{0x01e5b739, 0x03396d54, 0x022ed73f, 0x00cff488, 0x01e0b938, 0x01bf211b, 0x0399cc6c, 0x021969cb, 0x019f728b, 0x0005d785}}, Y: Field{[10]uint32{0x01fed695, 0x029bffba, 0x0345c6ef, 0x016b7490, 0x02acb595, 0x03fdc7d7, 0x02f97a51, 0x01e7ae93, 0x020d9e3c, 0x0034d41b}}}, + }, + { + {X: Field{[10]uint32{0x01e5b739, 0x03396d54, 0x022ed73f, 0x00cff488, 0x01e0b938, 0x01bf211b, 0x0399cc6c, 0x021969cb, 0x019f728b, 0x0005d785}}, Y: Field{[10]uint32{0x01fed695, 0x029bffba, 0x0345c6ef, 0x016b7490, 0x02acb595, 0x03fdc7d7, 0x02f97a51, 0x01e7ae93, 0x020d9e3c, 0x0034d41b}}}, + {X: Field{[10]uint32{0x02bc47d6, 0x02012791, 0x0121bce7, 0x02d71b68, 0x0130fdfe, 0x004e7188, 0x03fbcc8e, 0x00cb5e97, 0x013f03ff, 0x00108e80}}, Y: Field{[10]uint32{0x03548a34, 0x00db9b62, 0x0009ed12, 0x030d493c, 0x03720d8e, 0x02bdacf1, 0x0179f7bb, 0x0365c284, 0x000fe1e1, 0x002e46b8}}}, + {X: Field{[10]uint32{0x01041216, 0x01fe3c71, 0x0036a65b, 0x03da10ae, 0x023f7335, 0x030bfb54, 0x00b59efd, 0x02b3d04a, 0x017b21f7, 0x00369d4c}}, Y: Field{[10]uint32{0x02708572, 0x034ca61b, 0x00edadae, 0x01eb9deb, 0x02e9aac0, 0x010b5ff1, 0x019e21b3, 0x0357c37c, 0x0046bf72, 0x001cfe28}}}, + {X: Field{[10]uint32{0x0016824a, 0x037dbde1, 0x02741302, 0x00bcecf8, 0x0249df66, 0x0335a1dd, 0x0107a7ab, 0x02e41422, 0x0245ac1f, 0x0004475a}}, Y: Field{[10]uint32{0x0108e9d0, 0x00447508, 0x00a4ca9a, 0x02265b6b, 0x02f07000, 0x03c19654, 0x00d48dbf, 0x02bfeee4, 0x011c478e, 0x0001a5a4}}}, + {X: Field{[10]uint32{0x0065a930, 0x010f9c79, 0x012fdb01, 0x0305ac4d, 0x022587f1, 0x02a0bac7, 0x033c58c4, 0x01275c15, 0x01b48e97, 0x00071c71}}, Y: Field{[10]uint32{0x034638b5, 0x01cfdb30, 0x00d471d8, 0x00fedc5d, 0x0079345e, 0x0092eda3, 0x013f1f28, 0x03e8309c, 0x0334e8f5, 0x0012a470}}}, + {X: Field{[10]uint32{0x0062bac0, 0x014c93cf, 0x02b06950, 0x037d47c2, 0x0219150d, 0x00fa2dc3, 0x024b7d2c, 0x011a704d, 0x00f9023f, 0x00254c3c}}, Y: Field{[10]uint32{0x0218e309, 0x02af6a5d, 0x01c68478, 0x0214bc7f, 0x00e25b32, 0x026cccf8, 0x01d2f7f5, 0x008788d3, 0x005a8f9f, 0x0023cf0c}}}, + {X: Field{[10]uint32{0x02db6ee7, 0x0236b96e, 0x02077e31, 0x010c9d12, 0x007850dd, 0x0026d327, 0x02e837a9, 0x02959a4d, 0x02fc1f31, 0x00361392}}, Y: Field{[10]uint32{0x002ebed2, 0x0155b9b5, 0x0264982d, 0x025d2a8f, 0x01fdd8ac, 0x01597793, 0x0238d58f, 0x01e7384a, 0x009a7c7b, 0x00394960}}}, + {X: Field{[10]uint32{0x03ced775, 0x03b77806, 0x00e56ab5, 0x02297bdd, 0x037290b6, 0x032e773f, 0x0395dbeb, 0x0322e2b5, 0x01c97ac7, 0x0012929b}}, Y: Field{[10]uint32{0x038dd66d, 0x03e3da29, 0x002acb2b, 0x036d091d, 0x031de90c, 0x02703d15, 0x03ef9f73, 0x0079ca50, 0x01b01663, 0x0014a644}}}, + {X: Field{[10]uint32{0x009e6d10, 0x03a7b3e9, 0x019d2394, 0x03cebab2, 0x03f60adf, 0x017fdbb4, 0x0322b928, 0x02053506, 0x004bde66, 0x003cf511}}, Y: Field{[10]uint32{0x0347da3f, 0x00e33014, 0x02c630a0, 0x01433a75, 0x03fc1ada, 0x026292d6, 0x02b95ac1, 0x0058f52e, 0x00dfa6f0, 0x000290c9}}}, + {X: Field{[10]uint32{0x0147b4b3, 0x0246dde9, 0x01411f5e, 0x0347f599, 0x00356929, 0x0026548b, 0x0382efee, 0x013dd477, 0x002f1d8e, 0x003c01b1}}, Y: Field{[10]uint32{0x006aa74b, 0x03d127ea, 0x03ae1b5e, 0x03bb5af9, 0x0275c933, 0x0393df45, 0x007848a4, 0x01482971, 0x00d4a666, 0x003da055}}}, + {X: Field{[10]uint32{0x01d33a07, 0x02cd01ba, 0x03cab48c, 0x0022a8e6, 0x004e72ee, 0x036f7d01, 0x0085520c, 0x007627e4, 0x012c9d9c, 0x002b8c19}}, Y: Field{[10]uint32{0x00a0b2a6, 0x01c303d8, 0x0295c748, 0x03d77f5f, 0x031c9c37, 0x036e3573, 0x00ce7d33, 0x03f95fbf, 0x01c38d63, 0x001b2e76}}}, + {X: Field{[10]uint32{0x003c9c8f, 0x0010e177, 0x027b2067, 0x03b8f90d, 0x00f2816f, 0x02a8ccac, 0x009ff43a, 0x0263f5bc, 0x02dcbe42, 0x0019ef80}}, Y: Field{[10]uint32{0x013652d9, 0x02126616, 0x002be553, 0x03d82e23, 0x03cd993b, 0x020a45a4, 0x00945b60, 0x03be128b, 0x01a73e4d, 0x001ea6d5}}}, + {X: Field{[10]uint32{0x0028caca, 0x01952e43, 0x001da759, 0x02ef320a, 0x021869c7, 0x00ce2326, 0x0217e758, 0x03872057, 0x032a5bd5, 0x00363706}}, Y: Field{[10]uint32{0x03b3ec7a, 0x019dba88, 0x028f6cdb, 0x00b3b204, 0x007d315d, 0x00091f65, 0x02d8da42, 0x031f5631, 0x02d927ce, 0x00233b02}}}, + {X: Field{[10]uint32{0x018b01b5, 0x00be5d14, 0x03adac5c, 0x022e1c42, 0x01ddccc8, 0x0149016c, 0x0250c453, 0x03a21706, 0x0346403d, 0x00039a6c}}, Y: Field{[10]uint32{0x00d965c5, 0x03b8da1e, 0x0283e418, 0x017cf401, 0x03cedf59, 0x01f5f74d, 0x01ed70ab, 0x03914987, 0x02c5fcd7, 0x0002d3be}}}, + {X: Field{[10]uint32{0x03c4416f, 0x007ed98e, 0x00402892, 0x008fcc2c, 0x01a7aefd, 0x000cbcc7, 0x01425a8d, 0x013b3356, 0x0292c5f8, 0x0009d278}}, Y: Field{[10]uint32{0x006bbd8e, 0x022f78bf, 0x021057e9, 0x02d97ba5, 0x02f59e9f, 0x03f2b6cf, 0x03d94990, 0x00af1100, 0x014e3767, 0x0014330b}}}, + {X: Field{[10]uint32{0x03ff4640, 0x02eb63e0, 0x02ffe526, 0x01f95554, 0x0053441c, 0x01898bb8, 0x00eac05b, 0x00327267, 0x00d447b0, 0x000d8f64}}, Y: Field{[10]uint32{0x03ee9de9, 0x000f1fce, 0x01ecb620, 0x02402066, 0x0145b9a8, 0x01fccd8c, 0x03b44539, 0x00888654, 0x03adfc73, 0x0001389c}}}, + }, + { + {X: Field{[10]uint32{0x03ff4640, 0x02eb63e0, 0x02ffe526, 0x01f95554, 0x0053441c, 0x01898bb8, 0x00eac05b, 0x00327267, 0x00d447b0, 0x000d8f64}}, Y: Field{[10]uint32{0x03ee9de9, 0x000f1fce, 0x01ecb620, 0x02402066, 0x0145b9a8, 0x01fccd8c, 0x03b44539, 0x00888654, 0x03adfc73, 0x0001389c}}}, + {X: Field{[10]uint32{0x0392c541, 0x004a972b, 0x0359dd27, 0x0004bb7e, 0x030b62fb, 0x024ec0af, 0x03973c6c, 0x01fa6d54, 0x0066ed9a, 0x001306e6}}, Y: Field{[10]uint32{0x028fe020, 0x013cff71, 0x031ad72c, 0x035f90fa, 0x00c652ea, 0x0395b9a7, 0x03cb753c, 0x02283dfe, 0x02d320be, 0x00307de4}}}, + {X: Field{[10]uint32{0x02e55dc8, 0x024485bd, 0x004394b8, 0x02dbab28, 0x026ff95a, 0x00142510, 0x004a440c, 0x03fecaea, 0x004790c5, 0x00110c50}}, Y: Field{[10]uint32{0x03e323b3, 0x02512bb6, 0x02e5031d, 0x02de7aa8, 0x03a66a29, 0x0190bfb5, 0x019837f5, 0x019be3fa, 0x0142e653, 0x0025ac30}}}, + {X: Field{[10]uint32{0x02aaf3d1, 0x023ca32f, 0x03135e0c, 0x02f068a3, 0x023233ed, 0x01e02d53, 0x01a2f3c0, 0x02c4ad4a, 0x0077ba83, 0x0029020e}}, Y: Field{[10]uint32{0x00b254b9, 0x02d4d37c, 0x02f90b12, 0x015dbb47, 0x022001e7, 0x00d86cf8, 0x03f83d69, 0x02f1e6e2, 0x0212feef, 0x00103a7d}}}, + {X: Field{[10]uint32{0x001b23a8, 0x0252175c, 0x02e0adfe, 0x011c2a1f, 0x01ab7b7d, 0x02484227, 0x02243d5b, 0x02a1f049, 0x028d866c, 0x002788bf}}, Y: Field{[10]uint32{0x0084edae, 0x0104f142, 0x01cecf7a, 0x0127ed44, 0x03c0f7c9, 0x0267054c, 0x03f3f020, 0x00b4405d, 0x00e9ca12, 0x003f4bfc}}}, + {X: Field{[10]uint32{0x03f0e9aa, 0x0178658c, 0x0134b3eb, 0x01dac46f, 0x02681127, 0x01604e34, 0x0124ae0d, 0x009ab6de, 0x03e8575f, 0x00394e03}}, Y: Field{[10]uint32{0x0082720f, 0x02904d90, 0x0318ec4b, 0x0177d1a0, 0x016fb94e, 0x00932380, 0x02913639, 0x02d0756d, 0x00739087, 0x002e5ff6}}}, + {X: Field{[10]uint32{0x031a70e4, 0x01022fc1, 0x03475dd7, 0x007d7d73, 0x01cd5ee5, 0x01c14c1b, 0x01d69e64, 0x00aa34bb, 0x02d503ce, 0x0014237d}}, Y: Field{[10]uint32{0x01950984, 0x0396fdca, 0x02dfedf2, 0x00a3ba2a, 0x014ec032, 0x00cf9271, 0x03304aa7, 0x0310b5dd, 0x039b933b, 0x00055310}}}, + {X: Field{[10]uint32{0x0140d33a, 0x00f6d69e, 0x003b98cd, 0x00291508, 0x036e0d88, 0x03d5b21b, 0x00e3e1a2, 0x0302d4e9, 0x0241d28c, 0x002a0131}}, Y: Field{[10]uint32{0x0146967a, 0x03a57e9b, 0x036a943c, 0x02a273dc, 0x001af18c, 0x005811fa, 0x02c2842c, 0x029b40f7, 0x03252b2f, 0x00256fa0}}}, + {X: Field{[10]uint32{0x021abe11, 0x03f69db3, 0x0220f6ea, 0x0309672c, 0x02dab921, 0x00c0496c, 0x00df5819, 0x025d8cce, 0x03845510, 0x0038f6ff}}, Y: Field{[10]uint32{0x03a8de63, 0x026b5527, 0x01c414b4, 0x0240f1ad, 0x03d3c97d, 0x02e2a3bc, 0x038fa75d, 0x00508590, 0x01099a34, 0x0001bcbe}}}, + {X: Field{[10]uint32{0x023968b6, 0x00a4de2d, 0x03ab2e69, 0x0197b678, 0x02f40261, 0x0224224e, 0x005a9600, 0x01e7ed0f, 0x023dfc65, 0x003de92f}}, Y: Field{[10]uint32{0x00c34882, 0x03768cb4, 0x0105e494, 0x02e34440, 0x0299702f, 0x023294b4, 0x01290303, 0x03185487, 0x036ce823, 0x0035b77b}}}, + {X: Field{[10]uint32{0x03593449, 0x006c8d80, 0x006ffdcf, 0x004b90a9, 0x02f61b7c, 0x001f4052, 0x00d9c13a, 0x0250361e, 0x0064c7de, 0x00066b38}}, Y: Field{[10]uint32{0x01f83631, 0x0052e4eb, 0x0068a3a4, 0x027d0210, 0x02ac710b, 0x02500b11, 0x02bd739d, 0x028cceff, 0x02035268, 0x0038de64}}}, + {X: Field{[10]uint32{0x02bc61d6, 0x034d86fb, 0x002de1ae, 0x029f67fd, 0x018a8fd3, 0x035ac7d4, 0x015f0d15, 0x026bc30e, 0x03e4a3ed, 0x0024e7fc}}, Y: Field{[10]uint32{0x03f5cb70, 0x03a919a8, 0x03f82e75, 0x01bade31, 0x00980bf2, 0x03c05b01, 0x006fc4ee, 0x02a43a75, 0x03cf08b7, 0x0037aace}}}, + {X: Field{[10]uint32{0x00ba6b63, 0x03a624b3, 0x03bb5ee3, 0x01d3f42c, 0x010a0fe6, 0x03aa238c, 0x00c33228, 0x01f6a842, 0x00ec20f8, 0x00361d03}}, Y: Field{[10]uint32{0x0134c5f3, 0x028db01a, 0x0294abee, 0x01730e05, 0x0140104f, 0x000eb0df, 0x00a6ee99, 0x00cafcde, 0x0133c6b9, 0x00191cb0}}}, + {X: Field{[10]uint32{0x028ff2cf, 0x03b5ba22, 0x02094a34, 0x0171ec18, 0x0038ea75, 0x00901469, 0x03a98dba, 0x02b8c1e5, 0x025f1c4c, 0x000066a7}}, Y: Field{[10]uint32{0x030e4352, 0x01f9d9b6, 0x02d353a7, 0x03ba2121, 0x000ce7eb, 0x0004adcc, 0x01062925, 0x02bd7bea, 0x0067ea85, 0x00079987}}}, + {X: Field{[10]uint32{0x033ec038, 0x013fcb06, 0x02b27619, 0x01ab9831, 0x00d9fd51, 0x03ca4294, 0x0083e762, 0x01820d92, 0x03391b50, 0x00162b0c}}, Y: Field{[10]uint32{0x00246279, 0x02a8fc44, 0x03bca16e, 0x00f02d3e, 0x03021904, 0x02647fa5, 0x0379249e, 0x024b65e1, 0x0306d55c, 0x002458f5}}}, + {X: Field{[10]uint32{0x03fdf80c, 0x01e69577, 0x00d1b69f, 0x0206856f, 0x0043e4a7, 0x01d158e2, 0x02244b5b, 0x030afa31, 0x03165df3, 0x0022d2d7}}, Y: Field{[10]uint32{0x03d4fd36, 0x03fc3197, 0x02e56b3e, 0x0151858b, 0x00f9e336, 0x02ac3681, 0x03bd7813, 0x0022d2cf, 0x026f68d3, 0x0012ab42}}}, + }, + { + {X: Field{[10]uint32{0x03fdf80c, 0x01e69577, 0x00d1b69f, 0x0206856f, 0x0043e4a7, 0x01d158e2, 0x02244b5b, 0x030afa31, 0x03165df3, 0x0022d2d7}}, Y: Field{[10]uint32{0x03d4fd36, 0x03fc3197, 0x02e56b3e, 0x0151858b, 0x00f9e336, 0x02ac3681, 0x03bd7813, 0x0022d2cf, 0x026f68d3, 0x0012ab42}}}, + {X: Field{[10]uint32{0x0355e4be, 0x03c99c51, 0x0197abb3, 0x03b905f2, 0x0071af64, 0x020f1844, 0x0217c7ec, 0x0245c633, 0x00e4e132, 0x003b4317}}, Y: Field{[10]uint32{0x007bf42f, 0x027e9ba8, 0x01ab163f, 0x0095d8f7, 0x0049d939, 0x029fa9a0, 0x03dad7f5, 0x0116f6fc, 0x03c7bc23, 0x000886a7}}}, + {X: Field{[10]uint32{0x015812dd, 0x00a960bd, 0x030e2a0a, 0x008d54b4, 0x023d4467, 0x00163de3, 0x02abed6c, 0x00d4bc2d, 0x017a92ff, 0x001c0a6f}}, Y: Field{[10]uint32{0x022d2927, 0x03319ac6, 0x0073c721, 0x01090ecb, 0x0047dae8, 0x00c1a0eb, 0x016544ae, 0x02cf49f7, 0x02dafde8, 0x002c3bbe}}}, + {X: Field{[10]uint32{0x03cec8ab, 0x01b9b201, 0x012ced4b, 0x0159b815, 0x00e53254, 0x00fc7eba, 0x0315c3f8, 0x039a52ce, 0x0013c44c, 0x003ebb2c}}, Y: Field{[10]uint32{0x03155070, 0x0077f66a, 0x02e2e898, 0x021ae178, 0x019c32b2, 0x030bec4f, 0x02e02c6e, 0x032d5ff0, 0x01e90e9e, 0x0033026d}}}, + {X: Field{[10]uint32{0x01486ed1, 0x0395a0ef, 0x01b6a49c, 0x02e92559, 0x005745be, 0x0233dd58, 0x01d4109d, 0x01726402, 0x01caeae6, 0x002733fb}}, Y: Field{[10]uint32{0x01e95d8d, 0x03567b5d, 0x02aa24f6, 0x0165a564, 0x01242167, 0x0002cd04, 0x01224812, 0x00cb3ed8, 0x01713d6a, 0x001f0bd3}}}, + {X: Field{[10]uint32{0x0181fdc2, 0x02affe6c, 0x02364dcd, 0x02ed7318, 0x02dd2f62, 0x0228d39f, 0x02264b81, 0x01b91d2a, 0x002af47e, 0x003d0b04}}, Y: Field{[10]uint32{0x0085d7fd, 0x000024e9, 0x00f2681f, 0x00b668ab, 0x024c1550, 0x021bf88a, 0x03ad05cb, 0x0201b1e3, 0x02b46cfe, 0x0015d40e}}}, + {X: Field{[10]uint32{0x03d0eaca, 0x01ac69d6, 0x00ab7a20, 0x01dae8b5, 0x01d0c745, 0x032937c6, 0x028fde33, 0x01050cd6, 0x03876341, 0x00336692}}, Y: Field{[10]uint32{0x03ff4acc, 0x03ebed6a, 0x0234f6e6, 0x023bb5bd, 0x030127b3, 0x00cfa822, 0x01488ae9, 0x03c8fa05, 0x0079a1e8, 0x003c1156}}}, + {X: Field{[10]uint32{0x02d1b1f7, 0x0193aba6, 0x00d3e07f, 0x02093c8f, 0x01b3b2dd, 0x01f2f2bf, 0x0331a0b3, 0x034bcb21, 0x02132dca, 0x00026ee2}}, Y: Field{[10]uint32{0x03811c80, 0x00c189f0, 0x02d53641, 0x0103d1d4, 0x010f54a8, 0x03e18fa1, 0x039dd284, 0x038ee6db, 0x02b2afee, 0x002516ec}}}, + {X: Field{[10]uint32{0x03bc57c6, 0x0254e8f1, 0x036cbf20, 0x0288fac9, 0x004903d7, 0x00f58c25, 0x00f2d2e9, 0x026faa21, 0x002f88ed, 0x002b4262}}, Y: Field{[10]uint32{0x024a0ab8, 0x00b03b6b, 0x022d3ca3, 0x00dcd643, 0x037b311d, 0x0276af97, 0x00186c72, 0x0294ae8a, 0x008c42fb, 0x001c90f0}}}, + {X: Field{[10]uint32{0x03927dc7, 0x036ad913, 0x018a49e2, 0x00358f50, 0x0337a7a4, 0x019a8508, 0x029ed953, 0x029aef99, 0x00cc082b, 0x00389828}}, Y: Field{[10]uint32{0x02aef35d, 0x03cdbd11, 0x0382da45, 0x02d118b2, 0x00edbcc0, 0x0096fd10, 0x033cb3d7, 0x02759fc1, 0x0344b0da, 0x000dfb99}}}, + {X: Field{[10]uint32{0x03a56302, 0x00c31caa, 0x01862ea8, 0x00debc3c, 0x00f506a9, 0x027eb4b8, 0x02da2d2a, 0x02907c7a, 0x010aeb3c, 0x0036744a}}, Y: Field{[10]uint32{0x00291c29, 0x0376bea2, 0x00f2aeaa, 0x03367e9d, 0x001739ae, 0x0098e1b9, 0x01715c67, 0x00fbb40a, 0x0113ec2d, 0x001fad4c}}}, + {X: Field{[10]uint32{0x02dd7dd6, 0x01b51f7b, 0x0168c386, 0x03899786, 0x0049376f, 0x039f3f7b, 0x01a7840e, 0x01492f29, 0x036a24c7, 0x000cb3f3}}, Y: Field{[10]uint32{0x0208e330, 0x03512bbf, 0x0208b25f, 0x03480d26, 0x027a0d8c, 0x0027d587, 0x008096a4, 0x01dd2188, 0x0234976a, 0x0008611a}}}, + {X: Field{[10]uint32{0x00d1243a, 0x034dc13d, 0x025fdbac, 0x0008fd52, 0x0002b126, 0x018fd561, 0x00d21ac0, 0x01b3be47, 0x01de539d, 0x002f141e}}, Y: Field{[10]uint32{0x015db68a, 0x02545a21, 0x03169f5c, 0x03d6c7d1, 0x035f7ee4, 0x037ff235, 0x02c72b94, 0x0172ee3b, 0x023b3a70, 0x0019418a}}}, + {X: Field{[10]uint32{0x02abf83d, 0x0340ff7d, 0x00596696, 0x0163ecb4, 0x02b8f940, 0x00348b00, 0x00be68f1, 0x03127cfb, 0x02dde85a, 0x0008d72a}}, Y: Field{[10]uint32{0x0133e191, 0x03b27a43, 0x010ae7f4, 0x0358c8d8, 0x013f0518, 0x0324eb62, 0x00232a5b, 0x011fafb9, 0x01c745fd, 0x003704be}}}, + {X: Field{[10]uint32{0x034a3f9f, 0x009139ad, 0x0016908d, 0x01977026, 0x02c287a6, 0x036c9896, 0x03deaae7, 0x031fa244, 0x037e505f, 0x00134c69}}, Y: Field{[10]uint32{0x001e0ba7, 0x02c0904c, 0x00a754fc, 0x0146db80, 0x03cbf6fb, 0x01e009d4, 0x0318f38c, 0x015d6c1a, 0x02c96098, 0x00088907}}}, + {X: Field{[10]uint32{0x0232fcda, 0x00456494, 0x0277bcb6, 0x03fe9b03, 0x03b700db, 0x02f55231, 0x03771c00, 0x0265b5af, 0x02a6e5db, 0x001c8f2e}}, Y: Field{[10]uint32{0x02b39f5f, 0x0301a767, 0x0094801d, 0x0194dde5, 0x022660a0, 0x0220935b, 0x02113748, 0x031262a4, 0x03b5595c, 0x0025ba19}}}, + }, + { + {X: Field{[10]uint32{0x0232fcda, 0x00456494, 0x0277bcb6, 0x03fe9b03, 0x03b700db, 0x02f55231, 0x03771c00, 0x0265b5af, 0x02a6e5db, 0x001c8f2e}}, Y: Field{[10]uint32{0x02b39f5f, 0x0301a767, 0x0094801d, 0x0194dde5, 0x022660a0, 0x0220935b, 0x02113748, 0x031262a4, 0x03b5595c, 0x0025ba19}}}, + {X: Field{[10]uint32{0x00a030d5, 0x00e0f583, 0x009071fd, 0x010c1e61, 0x022d240a, 0x01dce8f1, 0x03d7dc45, 0x01d134d0, 0x0386437b, 0x0015fbe9}}, Y: Field{[10]uint32{0x00b02f9e, 0x02ad109d, 0x0174ab07, 0x00ab97a6, 0x00689b6d, 0x023780fb, 0x03627c92, 0x02146224, 0x030bd1b4, 0x0035c4b6}}}, + {X: Field{[10]uint32{0x00633cb1, 0x01f827a0, 0x02113256, 0x012da740, 0x03575a22, 0x008607f2, 0x00627321, 0x032b5003, 0x00f317aa, 0x001b77a7}}, Y: Field{[10]uint32{0x03ce6b34, 0x03526a99, 0x01ef357d, 0x036b3e16, 0x0080b27f, 0x006e99aa, 0x019ef86a, 0x03907572, 0x03e7a707, 0x0024623e}}}, + {X: Field{[10]uint32{0x00584dd5, 0x03f1ddc3, 0x0012a7fa, 0x01f8c9ec, 0x01108057, 0x01489b2e, 0x01f7e9cd, 0x02f10a8b, 0x01436a28, 0x000992ef}}, Y: Field{[10]uint32{0x0304ab11, 0x0089e4dd, 0x00d8de61, 0x010dc5ee, 0x026a1182, 0x030cef88, 0x0375ce24, 0x024ed353, 0x03a94ee0, 0x00361f1b}}}, + {X: Field{[10]uint32{0x0133f3c5, 0x0294634a, 0x02522419, 0x01c457c4, 0x00085a0f, 0x0391ee14, 0x004bb7f8, 0x0337a04f, 0x032cd5b5, 0x00121be9}}, Y: Field{[10]uint32{0x02fb0f53, 0x0129c6b2, 0x023b79ad, 0x020f3c3c, 0x0362d9b7, 0x03323c67, 0x00c48bae, 0x03750f92, 0x0319f56b, 0x0018b848}}}, + {X: Field{[10]uint32{0x00e5467d, 0x02f5da91, 0x03ace4d0, 0x02e066ef, 0x0140908a, 0x03b25c3a, 0x021f62e0, 0x028488b0, 0x00f0fc69, 0x0025f419}}, Y: Field{[10]uint32{0x029cb3fa, 0x00c03f47, 0x03ccd797, 0x02e153c5, 0x03da5fb3, 0x02142187, 0x037c66fa, 0x000b300f, 0x032ed334, 0x002265d3}}}, + {X: Field{[10]uint32{0x0299f728, 0x01650897, 0x02204ebd, 0x03ef9bc4, 0x03677375, 0x01da94c0, 0x024ff27b, 0x02bd3ed9, 0x0174a894, 0x00091e5a}}, Y: Field{[10]uint32{0x03aaebff, 0x000145ba, 0x022d837a, 0x030255d6, 0x025adbf3, 0x03635992, 0x012e87e7, 0x00c007b1, 0x0144688f, 0x0038f5e3}}}, + {X: Field{[10]uint32{0x032438e8, 0x009af612, 0x02c9d2bf, 0x007f56f7, 0x01a78bc6, 0x008da9e7, 0x0085c056, 0x034aef6b, 0x0124bd40, 0x002a5319}}, Y: Field{[10]uint32{0x018661f4, 0x00b236fc, 0x01b2bc2e, 0x0182838e, 0x027e5d3c, 0x0140678e, 0x03921950, 0x018a03f5, 0x03d992f9, 0x002d4807}}}, + {X: Field{[10]uint32{0x03b0079a, 0x0031b50b, 0x02049c9e, 0x03dc8e49, 0x00916f9e, 0x01ace0c9, 0x01a59ee7, 0x017fc18c, 0x03daa3d5, 0x000bce72}}, Y: Field{[10]uint32{0x005690ba, 0x00a5cc0b, 0x00230fe2, 0x02f220a8, 0x039bfb3f, 0x01e36962, 0x02936d02, 0x00e60d36, 0x03de1386, 0x002afab6}}}, + {X: Field{[10]uint32{0x018086c8, 0x01bca26e, 0x023ff5f4, 0x00d2d899, 0x0040c10e, 0x02aa39bf, 0x01263b70, 0x00af74a2, 0x025baa80, 0x000fa10b}}, Y: Field{[10]uint32{0x02e939a9, 0x012d44e3, 0x03d4ef99, 0x01dadd79, 0x0037b8e5, 0x006c1df0, 0x01370463, 0x039cb86e, 0x03f5fc92, 0x00227c93}}}, + {X: Field{[10]uint32{0x00f7ab73, 0x00c02cb9, 0x003a7793, 0x03aa7511, 0x0262e3d4, 0x014d2bb4, 0x0239e86c, 0x0186e95a, 0x016c327d, 0x003968c7}}, Y: Field{[10]uint32{0x00561f42, 0x00e8ff1c, 0x03a21391, 0x0126a032, 0x01bf8c44, 0x0293b397, 0x0118a977, 0x0275e830, 0x003d8d1e, 0x000dde23}}}, + {X: Field{[10]uint32{0x03613bec, 0x02072e44, 0x03e67cca, 0x02744073, 0x028bb5fc, 0x01d3e5ca, 0x031b33dc, 0x00def7b7, 0x02b8c939, 0x000b73f2}}, Y: Field{[10]uint32{0x02039215, 0x00c24926, 0x01f383e7, 0x02eb4cfd, 0x003732cf, 0x01bdb1bd, 0x03088b7d, 0x02904997, 0x00dd9474, 0x0011b6f1}}}, + {X: Field{[10]uint32{0x014dcd86, 0x024a68f0, 0x031b588f, 0x00825afd, 0x011fc5d4, 0x0014773c, 0x010dd982, 0x00d11f7d, 0x014a0d15, 0x00330e27}}, Y: Field{[10]uint32{0x00f0a873, 0x02db7672, 0x0387468e, 0x0063f9f9, 0x0205c57e, 0x03aa4432, 0x0168bdbb, 0x02efb66d, 0x03d660f6, 0x0024eb93}}}, + {X: Field{[10]uint32{0x03b4f6be, 0x00f5d937, 0x02b64844, 0x03fd3e8f, 0x02b567d5, 0x023c3a2d, 0x004bb042, 0x0208a23b, 0x03d1ae75, 0x0028ab94}}, Y: Field{[10]uint32{0x02eeb9a2, 0x008959d2, 0x00436c04, 0x019f0f50, 0x004c0efa, 0x0306d51f, 0x015679c7, 0x028261f2, 0x014d44b3, 0x001a4cd6}}}, + {X: Field{[10]uint32{0x00819311, 0x0271bade, 0x0314724f, 0x0388421d, 0x030b3e1e, 0x033d7b47, 0x010a17e0, 0x03a408dd, 0x01c89d71, 0x001fe4a4}}, Y: Field{[10]uint32{0x002eb125, 0x03e6d5eb, 0x02174aa9, 0x0102721a, 0x02120aaa, 0x0149056d, 0x010de8c4, 0x00fbc3d7, 0x011063ec, 0x00276803}}}, + {X: Field{[10]uint32{0x027dd7fa, 0x00cfb283, 0x019839a5, 0x0048dea4, 0x01094796, 0x00b0b4ed, 0x01feec81, 0x02fe62e9, 0x00d493be, 0x003bafe9}}, Y: Field{[10]uint32{0x01de8999, 0x0353f6b8, 0x03712ddf, 0x030e9c47, 0x019ae4cd, 0x005e0227, 0x02e7edaf, 0x03c3c9a7, 0x00a3970e, 0x001766a3}}}, + }, + { + {X: Field{[10]uint32{0x027dd7fa, 0x00cfb283, 0x019839a5, 0x0048dea4, 0x01094796, 0x00b0b4ed, 0x01feec81, 0x02fe62e9, 0x00d493be, 0x003bafe9}}, Y: Field{[10]uint32{0x01de8999, 0x0353f6b8, 0x03712ddf, 0x030e9c47, 0x019ae4cd, 0x005e0227, 0x02e7edaf, 0x03c3c9a7, 0x00a3970e, 0x001766a3}}}, + {X: Field{[10]uint32{0x03d297fd, 0x03ba4211, 0x026d676b, 0x03023d9d, 0x03c4ea4b, 0x00461257, 0x01c6031c, 0x01eff698, 0x02d7a7a9, 0x000e0712}}, Y: Field{[10]uint32{0x01493fc5, 0x0338c61f, 0x01c0093a, 0x00cb6e4e, 0x00f04510, 0x026457b3, 0x03e5fa70, 0x03bb923c, 0x013b238e, 0x0024dabd}}}, + {X: Field{[10]uint32{0x037ceceb, 0x019e3fee, 0x03af0f3f, 0x024e225f, 0x0073a59f, 0x03db9a05, 0x03fb8126, 0x035140db, 0x02204276, 0x0010dea1}}, Y: Field{[10]uint32{0x02c181e1, 0x00ef30d5, 0x01782736, 0x033f723e, 0x0387220f, 0x0274a5ff, 0x038feb69, 0x030cbda6, 0x03a13eea, 0x0002e45a}}}, + {X: Field{[10]uint32{0x02de454c, 0x035c108b, 0x008b2448, 0x017fbf74, 0x039cf1d0, 0x0254e311, 0x0210831d, 0x0318ef33, 0x01cd05ad, 0x00387bee}}, Y: Field{[10]uint32{0x00913797, 0x03f48cea, 0x014c6ad9, 0x01129e8b, 0x03464e32, 0x0391dc48, 0x0154c1ff, 0x026f9ec0, 0x0130d8af, 0x0003b2d1}}}, + {X: Field{[10]uint32{0x017f96f2, 0x035ca782, 0x0335cd58, 0x00a74b21, 0x03358235, 0x028f309c, 0x00b7e3b9, 0x0226f20f, 0x0313e2a4, 0x002a7be7}}, Y: Field{[10]uint32{0x02c04be4, 0x03556c15, 0x00702c03, 0x02bd6a6d, 0x01b74f89, 0x03aed84f, 0x016ee160, 0x0275f365, 0x00e59455, 0x003a0533}}}, + {X: Field{[10]uint32{0x00bf00eb, 0x036761f7, 0x002274c9, 0x022f0634, 0x0241b4e9, 0x0068c2f0, 0x03e16f6a, 0x03537126, 0x00ae96ea, 0x002e241c}}, Y: Field{[10]uint32{0x030e664e, 0x03c6f346, 0x02a671b7, 0x001adae5, 0x02cb0d8b, 0x007129d9, 0x02294e4c, 0x03623d1c, 0x00c2c8a2, 0x001bc932}}}, + {X: Field{[10]uint32{0x010cf77e, 0x02ad684d, 0x02b0dbc0, 0x01d152a2, 0x0207dbf5, 0x03ea8190, 0x03827d69, 0x00d6f954, 0x0141ee1d, 0x0019b601}}, Y: Field{[10]uint32{0x00eaa3a6, 0x03e5ebe8, 0x0376d2a5, 0x00eadec6, 0x029444b4, 0x00d584fd, 0x031d4205, 0x03ed0b0f, 0x03e732ff, 0x001473f7}}}, + {X: Field{[10]uint32{0x01eb99a4, 0x03fbacca, 0x03b18d33, 0x027ccf51, 0x00c7e541, 0x02bd1d6a, 0x02c235e9, 0x01c04316, 0x01b1a269, 0x0014c63e}}, Y: Field{[10]uint32{0x0291f92d, 0x009bbbbf, 0x02c652c7, 0x0103478f, 0x00a41f2b, 0x02ed017a, 0x032d93ae, 0x0290655d, 0x03eb4bed, 0x003d1333}}}, + {X: Field{[10]uint32{0x03213a5a, 0x01218a21, 0x0262b935, 0x0129e17e, 0x000b7320, 0x019330f2, 0x03508a1c, 0x00fe8afc, 0x01e13650, 0x0018ab01}}, Y: Field{[10]uint32{0x006a9e45, 0x0348703d, 0x014efc10, 0x000605e6, 0x01e55909, 0x01ea495e, 0x015e79e0, 0x029b934e, 0x01f3a0d1, 0x0008dbef}}}, + {X: Field{[10]uint32{0x03c76ac1, 0x0086cf3b, 0x02c05d6b, 0x02572908, 0x016124c3, 0x0354fa26, 0x021859a7, 0x00de10df, 0x03bfab10, 0x000623bc}}, Y: Field{[10]uint32{0x028f00bc, 0x0180ca94, 0x03875351, 0x03a0f1d8, 0x00e4d66d, 0x03ce638e, 0x005fb18c, 0x02ea6740, 0x017a052f, 0x0039bf26}}}, + {X: Field{[10]uint32{0x03bad12b, 0x03f52619, 0x02e1ec30, 0x0003abd9, 0x0385d5ea, 0x031bcb6c, 0x03613af5, 0x023d6d6f, 0x00497244, 0x003284f1}}, Y: Field{[10]uint32{0x0323b0f2, 0x0267d1a5, 0x03566896, 0x01c44695, 0x026370ab, 0x02ab68f5, 0x015fa64e, 0x021f22b0, 0x018361c2, 0x0020ea82}}}, + {X: Field{[10]uint32{0x02fbe7b2, 0x01bfe6ad, 0x025a3b9d, 0x03051635, 0x005eaded, 0x00aa2118, 0x036bbb1b, 0x0107e3cc, 0x03669cb4, 0x00099221}}, Y: Field{[10]uint32{0x01bc2a34, 0x029e2f08, 0x03603932, 0x0205a83a, 0x005638d9, 0x000b77c6, 0x02f2dcad, 0x0112623c, 0x02b4b201, 0x00278576}}}, + {X: Field{[10]uint32{0x0080414e, 0x03b97e57, 0x00f7fdda, 0x0218b59b, 0x0114ef8a, 0x01182792, 0x0011c4f4, 0x00aba16b, 0x0101a705, 0x00073b2c}}, Y: Field{[10]uint32{0x02169a3b, 0x03a524b4, 0x031d0dca, 0x039511c8, 0x02907557, 0x017b6b45, 0x01aa3283, 0x01f3ed39, 0x00669609, 0x003cd0d8}}}, + {X: Field{[10]uint32{0x0320907d, 0x00793462, 0x0051c50d, 0x0358581e, 0x003b15b2, 0x012143fd, 0x002f4589, 0x03089ec0, 0x01bc3e54, 0x003e62d7}}, Y: Field{[10]uint32{0x00c926af, 0x004c66d7, 0x00e35835, 0x038096a4, 0x0241fcd9, 0x02ea7327, 0x0139b706, 0x004fe90a, 0x00bd4f4a, 0x0038b542}}}, + {X: Field{[10]uint32{0x02d810a9, 0x016f2313, 0x00155c4f, 0x00fcf1c0, 0x024f889d, 0x0077c8e4, 0x010daf5f, 0x023e7325, 0x007504d7, 0x000a9a64}}, Y: Field{[10]uint32{0x029b4728, 0x01ace23e, 0x005c7cf8, 0x03a5fb05, 0x00667d47, 0x013ec13f, 0x02c58695, 0x03ff6b0f, 0x039b6c3d, 0x00153e40}}}, + {X: Field{[10]uint32{0x01a48db0, 0x01e0d6ce, 0x003bfefd, 0x028a6cf0, 0x019f1215, 0x02def791, 0x011d0a09, 0x01c59c9e, 0x00da696e, 0x000403d1}}, Y: Field{[10]uint32{0x03c65a09, 0x0357358a, 0x015ac0fb, 0x0063fd46, 0x02b7ff4a, 0x03024199, 0x008f3300, 0x002ddcbb, 0x013192a0, 0x00337678}}}, + }, + { + {X: Field{[10]uint32{0x01a48db0, 0x01e0d6ce, 0x003bfefd, 0x028a6cf0, 0x019f1215, 0x02def791, 0x011d0a09, 0x01c59c9e, 0x00da696e, 0x000403d1}}, Y: Field{[10]uint32{0x03c65a09, 0x0357358a, 0x015ac0fb, 0x0063fd46, 0x02b7ff4a, 0x03024199, 0x008f3300, 0x002ddcbb, 0x013192a0, 0x00337678}}}, + {X: Field{[10]uint32{0x024df706, 0x014a13c7, 0x008084b0, 0x03e48df4, 0x01d8d9c8, 0x02d31066, 0x0015dff2, 0x031dc6a1, 0x01f2ceb5, 0x00230262}}, Y: Field{[10]uint32{0x0172fa98, 0x02b168d7, 0x011aa736, 0x03d45594, 0x0060de6b, 0x0277259b, 0x012172cb, 0x0080d3ff, 0x01044f43, 0x003ed36f}}}, + {X: Field{[10]uint32{0x01bc15b4, 0x02684d25, 0x02ee69cb, 0x02391968, 0x01927502, 0x03b5f2a3, 0x0058ee9c, 0x02b727b6, 0x022e51ee, 0x00043a43}}, Y: Field{[10]uint32{0x00aa258d, 0x02f98256, 0x02a8834e, 0x018c0aed, 0x014ca589, 0x01ab47dd, 0x017a8c61, 0x03810935, 0x030380d5, 0x0031a28d}}}, + {X: Field{[10]uint32{0x0047bffd, 0x018f0cf7, 0x03c1bb1e, 0x00e6f256, 0x019c5285, 0x0098b009, 0x02481743, 0x019c1312, 0x013c5e26, 0x003ee3c5}}, Y: Field{[10]uint32{0x0149b095, 0x02917776, 0x02613090, 0x0226b150, 0x031dde13, 0x012f3354, 0x03a11d9b, 0x0188605b, 0x029dc5e0, 0x001b289e}}}, + {X: Field{[10]uint32{0x03e75269, 0x00ff0c0f, 0x033182dd, 0x033014f4, 0x01a377a3, 0x0052df73, 0x035b90b7, 0x0058e115, 0x0342da54, 0x003dd08b}}, Y: Field{[10]uint32{0x03e49bd5, 0x0203a1c5, 0x018e0189, 0x00dfd28e, 0x037fb3a2, 0x027d8d65, 0x00ce7dcb, 0x0024ff46, 0x031a3313, 0x00101b0b}}}, + {X: Field{[10]uint32{0x021c0a80, 0x00aaf21e, 0x01c740f6, 0x0163196a, 0x034d6251, 0x000bfe70, 0x03c9be70, 0x033296c5, 0x0268a614, 0x002dac56}}, Y: Field{[10]uint32{0x01ce0a03, 0x03404410, 0x016eeb6c, 0x02cc20b8, 0x009c9a12, 0x03d94db5, 0x00e223ee, 0x02d87a95, 0x0214d6cd, 0x003eb98b}}}, + {X: Field{[10]uint32{0x01a7175f, 0x02d9a5bd, 0x0342a653, 0x01c74c73, 0x03edb8e7, 0x00b577ae, 0x0079a558, 0x00f3fdca, 0x010417d4, 0x000b632b}}, Y: Field{[10]uint32{0x039d592a, 0x01eee46e, 0x025e0cf3, 0x03f672d7, 0x037a846b, 0x004b274d, 0x03232fa6, 0x02a529ee, 0x0383318c, 0x0031cfce}}}, + {X: Field{[10]uint32{0x03b2629a, 0x0286e2d2, 0x027b8b8f, 0x0161dcde, 0x0065a02c, 0x01ca1c21, 0x00cc9f0a, 0x0145d568, 0x033fd75d, 0x0039d1cc}}, Y: Field{[10]uint32{0x0146f6d6, 0x0365869a, 0x0169a9f8, 0x02a9b86a, 0x01c88376, 0x00130960, 0x00436038, 0x00304533, 0x02014507, 0x003cabff}}}, + {X: Field{[10]uint32{0x00b51045, 0x0326f0e5, 0x025b3e34, 0x025bcc70, 0x03bbc6c8, 0x007a33dc, 0x0273d4eb, 0x01ba962b, 0x011db98a, 0x0007b2ff}}, Y: Field{[10]uint32{0x02c70026, 0x019c4040, 0x0022d53a, 0x011ad0d9, 0x00b19006, 0x0126a6ce, 0x03d0bb18, 0x030e9911, 0x02308b99, 0x00073db8}}}, + {X: Field{[10]uint32{0x0013e439, 0x016d5b19, 0x02f674a3, 0x03bf7757, 0x02f92f69, 0x01fb6d92, 0x00b1bfeb, 0x038a5abe, 0x03b8b477, 0x00265d06}}, Y: Field{[10]uint32{0x0032cd5b, 0x015f609a, 0x026e43e6, 0x0325a5d1, 0x02b17c15, 0x01638f9e, 0x035aa562, 0x0326979c, 0x01b07bd9, 0x003791fa}}}, + {X: Field{[10]uint32{0x01358533, 0x0335d9ba, 0x00b9df7a, 0x03e753ed, 0x0010a933, 0x0074caa3, 0x02955a29, 0x01d4a20f, 0x00c5fe57, 0x00268225}}, Y: Field{[10]uint32{0x0360ba08, 0x03871770, 0x01dadfb3, 0x02f6ee03, 0x0165a6e5, 0x0153f0c8, 0x0117d5f9, 0x023f0c7e, 0x03c4201b, 0x0029e620}}}, + {X: Field{[10]uint32{0x02b062d4, 0x02a942a4, 0x02141a7c, 0x03966eda, 0x027a5ce7, 0x00fa889e, 0x03b17128, 0x03ab281b, 0x02a43256, 0x000d658f}}, Y: Field{[10]uint32{0x03b25302, 0x02a9346e, 0x019b1a10, 0x02e59379, 0x02d04082, 0x027022a5, 0x00ce196f, 0x039726ff, 0x01454951, 0x003d96f8}}}, + {X: Field{[10]uint32{0x018ef7f6, 0x01017586, 0x00f9f694, 0x03dde81e, 0x025923f3, 0x00ee2ba9, 0x019c8527, 0x034b8d6f, 0x0049db4f, 0x00199376}}, Y: Field{[10]uint32{0x011eac94, 0x025bfcd7, 0x02ecee74, 0x02cc6e39, 0x03fc3d3a, 0x03411633, 0x0048ce5d, 0x01e4ca85, 0x001717f2, 0x002b5448}}}, + {X: Field{[10]uint32{0x019334f0, 0x02d9bcc4, 0x011b60d0, 0x03ece82b, 0x0174728e, 0x0170a790, 0x020e8248, 0x030c871a, 0x037b02cf, 0x0033aede}}, Y: Field{[10]uint32{0x01e45191, 0x0142f494, 0x036cb167, 0x0276e780, 0x004765a2, 0x0374b8dc, 0x01ec0f74, 0x0128cae8, 0x0243633b, 0x003f8f7c}}}, + {X: Field{[10]uint32{0x03c934b3, 0x0029adf0, 0x022c4e0c, 0x02016c2b, 0x022b31f5, 0x020469c0, 0x031d9669, 0x02e18e08, 0x029377d0, 0x0020844e}}, Y: Field{[10]uint32{0x002c6a0f, 0x01798ab1, 0x0280377e, 0x009a6911, 0x00aa1f7c, 0x0168318a, 0x0066cf2b, 0x00d99821, 0x00dac9ae, 0x0023686e}}}, + {X: Field{[10]uint32{0x0134fd2d, 0x02b379b9, 0x033852c8, 0x011193ce, 0x03a77f8d, 0x02813005, 0x009227a4, 0x03b46c77, 0x03e262c7, 0x003840c6}}, Y: Field{[10]uint32{0x0056a00d, 0x03c63ca5, 0x02d79a44, 0x01067873, 0x02f292dd, 0x0165d4d6, 0x036a4176, 0x010179ae, 0x01928940, 0x00275c18}}}, + }, + { + {X: Field{[10]uint32{0x0134fd2d, 0x02b379b9, 0x033852c8, 0x011193ce, 0x03a77f8d, 0x02813005, 0x009227a4, 0x03b46c77, 0x03e262c7, 0x003840c6}}, Y: Field{[10]uint32{0x0056a00d, 0x03c63ca5, 0x02d79a44, 0x01067873, 0x02f292dd, 0x0165d4d6, 0x036a4176, 0x010179ae, 0x01928940, 0x00275c18}}}, + {X: Field{[10]uint32{0x015c8356, 0x009f8daa, 0x0185784e, 0x03177a53, 0x01028a6a, 0x03ca6cb2, 0x0395dcd0, 0x0227aae7, 0x03224c80, 0x003d2e4f}}, Y: Field{[10]uint32{0x02001fd3, 0x02186e6f, 0x0209abd5, 0x00d12455, 0x00c37ef1, 0x0103bba4, 0x025f6a7a, 0x018b7ec3, 0x02ec0629, 0x00299ea4}}}, + {X: Field{[10]uint32{0x03028d83, 0x0188ebbb, 0x03961579, 0x01b6e9d0, 0x03619592, 0x01779a76, 0x01abe5a1, 0x0217b1a9, 0x03c4e3c7, 0x0029fafd}}, Y: Field{[10]uint32{0x01d0bed1, 0x000e4ae6, 0x03919964, 0x009d2c14, 0x0347a389, 0x00112012, 0x019c7377, 0x018b573f, 0x012fbfe3, 0x00188145}}}, + {X: Field{[10]uint32{0x03160e8a, 0x018bf85e, 0x0296c20d, 0x004be5f9, 0x00d51e85, 0x0096c22c, 0x01622ea0, 0x0148dac6, 0x00a1fce5, 0x0002746b}}, Y: Field{[10]uint32{0x00a04c44, 0x0014315f, 0x035e534e, 0x03ba484a, 0x026fe9e0, 0x0036309f, 0x016692ce, 0x03c318f9, 0x008f5101, 0x000454c6}}}, + {X: Field{[10]uint32{0x03dd5cfa, 0x00390089, 0x014b5bae, 0x004dfc27, 0x036a89c5, 0x0098d18c, 0x01c6a534, 0x013d3073, 0x008dcb02, 0x0016d728}}, Y: Field{[10]uint32{0x0248e98c, 0x0129be67, 0x029d3e66, 0x0332bcc9, 0x00bfd067, 0x0221a425, 0x011f0cea, 0x016097a6, 0x02f70aa1, 0x000fb32d}}}, + {X: Field{[10]uint32{0x03b61ee5, 0x021104de, 0x00c13f28, 0x038bec7c, 0x02da4f04, 0x025d2b9b, 0x02638cd8, 0x0086e198, 0x0230cc87, 0x003524cc}}, Y: Field{[10]uint32{0x01d694a8, 0x03693439, 0x00ddc662, 0x0231690e, 0x021ad12c, 0x03b2bed7, 0x00c5e9d1, 0x02748fb7, 0x01abf51a, 0x00008702}}}, + {X: Field{[10]uint32{0x03531f82, 0x014a38c8, 0x02c9f2b9, 0x01aec430, 0x01ff5132, 0x02708b0a, 0x02f3e748, 0x012ed733, 0x02acc111, 0x00011bc9}}, Y: Field{[10]uint32{0x03ceda07, 0x017f22c2, 0x01c7fa50, 0x01736ad5, 0x01d02594, 0x03f0c95e, 0x02370ac2, 0x020bab38, 0x0331635b, 0x001ae012}}}, + {X: Field{[10]uint32{0x01ba7fc2, 0x035f411d, 0x01562e97, 0x024eff0e, 0x03518b3a, 0x02087379, 0x022ad793, 0x00ae7862, 0x01cc454c, 0x00319b16}}, Y: Field{[10]uint32{0x035f5956, 0x00f1a73d, 0x015977ec, 0x0376c565, 0x02f00a60, 0x02b0432c, 0x024f3cea, 0x003f3efa, 0x03e2bfb3, 0x0036564b}}}, + {X: Field{[10]uint32{0x00432711, 0x00550dc4, 0x02b9060b, 0x00bf7645, 0x02cf140b, 0x02265916, 0x0396f0f0, 0x03bed4d7, 0x02d931e0, 0x00304649}}, Y: Field{[10]uint32{0x03e2610c, 0x009878bb, 0x00055e49, 0x00b283cd, 0x0383ab92, 0x01b331b3, 0x0094bf18, 0x02da2461, 0x00cc7d25, 0x0022f87e}}}, + {X: Field{[10]uint32{0x02be316c, 0x01b1b348, 0x03ad0f83, 0x00fc9e39, 0x016bf404, 0x0097bd7c, 0x017cef5b, 0x00deccac, 0x01aa4a0b, 0x00156735}}, Y: Field{[10]uint32{0x03e04013, 0x02ae7267, 0x000e71a6, 0x0074d81e, 0x038a389a, 0x01d31a4b, 0x01ba9298, 0x0101dbcb, 0x009c08d4, 0x002ab551}}}, + {X: Field{[10]uint32{0x01257963, 0x0261d3e8, 0x02861c17, 0x014b0d2a, 0x005b018d, 0x00e25e71, 0x01bb54b5, 0x023cb9b3, 0x02e9eb68, 0x001a4211}}, Y: Field{[10]uint32{0x026f9835, 0x01d96651, 0x02b253a5, 0x02a08724, 0x036cbc3c, 0x024beedf, 0x0017024f, 0x03af16d0, 0x03cb7f3f, 0x00389217}}}, + {X: Field{[10]uint32{0x0004554a, 0x03772f3b, 0x00ffe530, 0x02ed1a23, 0x00aadcff, 0x028428bb, 0x00652c27, 0x0346811d, 0x03c89873, 0x00225bcd}}, Y: Field{[10]uint32{0x029138df, 0x03e7f864, 0x017dcd68, 0x0186b310, 0x01e6085b, 0x03a046fc, 0x0222bb04, 0x0312b369, 0x03e7224a, 0x000e0108}}}, + {X: Field{[10]uint32{0x02e23ace, 0x004e52f7, 0x012fd2d1, 0x0196d537, 0x01dec87c, 0x0128ca45, 0x027552df, 0x0082eaee, 0x03fb8c92, 0x003ecf7d}}, Y: Field{[10]uint32{0x0322e8de, 0x037bd325, 0x03f5ee09, 0x010bfb49, 0x029e7271, 0x036ead62, 0x02251540, 0x00f1594a, 0x01bc11c7, 0x0014438a}}}, + {X: Field{[10]uint32{0x00d36f89, 0x003c4c17, 0x00b925f9, 0x031b9c03, 0x031e4754, 0x00a403b8, 0x01d68b87, 0x0148e594, 0x03176915, 0x00120adb}}, Y: Field{[10]uint32{0x00a4f423, 0x0328dc9c, 0x01a68467, 0x00d10b52, 0x0219ee07, 0x035ffa4b, 0x018c23e6, 0x03316b2c, 0x011df9a5, 0x003a30f0}}}, + {X: Field{[10]uint32{0x00272351, 0x01f3fbd4, 0x03109860, 0x00f7e67f, 0x0170734b, 0x02ac7350, 0x038a3eb3, 0x01462cfa, 0x02c24f5c, 0x001b7617}}, Y: Field{[10]uint32{0x03c7664b, 0x01fe8adf, 0x0017c9b0, 0x03df0f82, 0x03877c6f, 0x03d7106d, 0x01407f9a, 0x0109f827, 0x03f4121f, 0x0005ba99}}}, + {X: Field{[10]uint32{0x0094696d, 0x039a2364, 0x02af52d5, 0x019a9075, 0x005cf8b2, 0x010ef5fb, 0x002839f1, 0x016d4c2b, 0x00ae46d5, 0x003fba9b}}, Y: Field{[10]uint32{0x00090088, 0x0177afc6, 0x0042d315, 0x015f3105, 0x00981c89, 0x03cfb357, 0x02e4e12b, 0x0386eac1, 0x036c97dc, 0x00395f1a}}}, + }, + { + {X: Field{[10]uint32{0x0094696d, 0x039a2364, 0x02af52d5, 0x019a9075, 0x005cf8b2, 0x010ef5fb, 0x002839f1, 0x016d4c2b, 0x00ae46d5, 0x003fba9b}}, Y: Field{[10]uint32{0x00090088, 0x0177afc6, 0x0042d315, 0x015f3105, 0x00981c89, 0x03cfb357, 0x02e4e12b, 0x0386eac1, 0x036c97dc, 0x00395f1a}}}, + {X: Field{[10]uint32{0x02752b08, 0x010102bb, 0x021870aa, 0x0382ccc6, 0x01141eca, 0x036cb85e, 0x03261af9, 0x021f8714, 0x03621adb, 0x00134002}}, Y: Field{[10]uint32{0x00302cea, 0x00a147d2, 0x0293a3e7, 0x03c4671c, 0x00cb7df5, 0x00b65cb3, 0x02d82558, 0x0349572d, 0x038f18e0, 0x001a8356}}}, + {X: Field{[10]uint32{0x00dfd587, 0x00d86ed2, 0x02656079, 0x00e326c0, 0x015ec4ba, 0x033d684b, 0x0067aaa2, 0x01422cd2, 0x001bacf4, 0x0014212d}}, Y: Field{[10]uint32{0x01470e89, 0x027a5fe4, 0x035606e7, 0x0181a247, 0x035db6f5, 0x014a49d1, 0x01aa6c85, 0x0034c586, 0x031a1d98, 0x000d2a58}}}, + {X: Field{[10]uint32{0x035c58ef, 0x0258bf51, 0x01b77f89, 0x0100f87c, 0x00d657a0, 0x011c5c4a, 0x02a26211, 0x0281775a, 0x00ca203d, 0x001c7d5c}}, Y: Field{[10]uint32{0x035d420e, 0x01269cb4, 0x03e7df86, 0x00030cd8, 0x01f2445d, 0x02f256e3, 0x01557345, 0x02203749, 0x015b95dc, 0x003ad090}}}, + {X: Field{[10]uint32{0x02b34cc6, 0x008c985e, 0x00a12d08, 0x01d9f3cc, 0x00c80c29, 0x00635c4a, 0x03b3f1fd, 0x0357a94f, 0x003e0642, 0x0013c530}}, Y: Field{[10]uint32{0x007e681f, 0x03094be6, 0x01d0225e, 0x033a3a07, 0x00b9de3c, 0x00e98950, 0x013a70f4, 0x03a25319, 0x00a8caa4, 0x001ed4f4}}}, + {X: Field{[10]uint32{0x00953fa9, 0x01655b5b, 0x003db4d0, 0x00a7c2e3, 0x0228ab26, 0x02f46301, 0x01f485d4, 0x024c8ce9, 0x010eaaab, 0x002927b4}}, Y: Field{[10]uint32{0x02fb4c72, 0x00af4891, 0x0181b67b, 0x00d25a38, 0x035ae875, 0x0037f77e, 0x03476c0a, 0x014e6380, 0x0094660f, 0x00331cae}}}, + {X: Field{[10]uint32{0x0241d90d, 0x01dc4044, 0x004f8342, 0x01076c91, 0x03e81cf1, 0x03b774d8, 0x01436095, 0x027b4750, 0x007e49c7, 0x0029d36e}}, Y: Field{[10]uint32{0x037adad4, 0x01462e0f, 0x02313f32, 0x024d1282, 0x00a9ee50, 0x02205c72, 0x03dd08a5, 0x03bbcc9f, 0x01cdaf23, 0x003de1a4}}}, + {X: Field{[10]uint32{0x03ff8359, 0x022c1810, 0x03651604, 0x00771979, 0x0046b482, 0x00876805, 0x01282b5c, 0x03494edf, 0x03629f7b, 0x0028adec}}, Y: Field{[10]uint32{0x0286fec2, 0x025ffb3f, 0x03835a23, 0x00d411bc, 0x0110d108, 0x01c78a72, 0x02937a3f, 0x0048b55e, 0x00941695, 0x001a4c0e}}}, + {X: Field{[10]uint32{0x01c1ae1f, 0x0332888c, 0x000b2a5e, 0x031a2b35, 0x00456e58, 0x02e8d596, 0x00dcd44e, 0x028b3e6b, 0x025744ba, 0x001a407e}}, Y: Field{[10]uint32{0x022838b0, 0x00cc1974, 0x03a930f8, 0x0297971d, 0x01d79f3b, 0x00a72403, 0x01b5380c, 0x03084918, 0x00882273, 0x000d7797}}}, + {X: Field{[10]uint32{0x01f1f366, 0x002404e6, 0x036be34f, 0x01e8f401, 0x004a7905, 0x01265364, 0x015f216b, 0x01fdee92, 0x025c5da4, 0x001744d3}}, Y: Field{[10]uint32{0x00990f2c, 0x0034fa71, 0x00b39e2b, 0x005882a2, 0x03cf02d6, 0x00ea0adc, 0x03e2a4ae, 0x011410b6, 0x034d3e08, 0x0000ec7b}}}, + {X: Field{[10]uint32{0x027a4bdb, 0x00c4206c, 0x00cac4b0, 0x0010d525, 0x01046a6d, 0x006ee8d7, 0x004b643f, 0x02049e89, 0x002d1d43, 0x00234f36}}, Y: Field{[10]uint32{0x029a8a2c, 0x00d31f39, 0x01296c3d, 0x01f4dc2b, 0x02d4e380, 0x001d88db, 0x00fbf9d0, 0x0107d1c3, 0x016180ee, 0x0026f509}}}, + {X: Field{[10]uint32{0x03a1d916, 0x025b4ff9, 0x01f3a3c0, 0x00e5747c, 0x00315b0a, 0x0176ec1c, 0x006158a6, 0x027432eb, 0x01acb6d5, 0x001943be}}, Y: Field{[10]uint32{0x0068387b, 0x0127299c, 0x026ba858, 0x00229db0, 0x0158bb46, 0x01e6e0b1, 0x029c0b92, 0x02c461c3, 0x01f21162, 0x00021744}}}, + {X: Field{[10]uint32{0x00ec1d2d, 0x0334f1ad, 0x00f45440, 0x0171b9f6, 0x03d9099f, 0x019eda47, 0x029d6729, 0x011ce6bf, 0x0363d606, 0x003abe60}}, Y: Field{[10]uint32{0x00838452, 0x039d5813, 0x00b53fcf, 0x01515fa1, 0x02a9f52d, 0x01ac666a, 0x01228a0e, 0x023489dd, 0x003a7fe7, 0x00394606}}}, + {X: Field{[10]uint32{0x03d98ee1, 0x0323a022, 0x012bed42, 0x01ea4226, 0x03579df3, 0x023ee865, 0x027c924a, 0x00860ffa, 0x02ce0ceb, 0x00075dc2}}, Y: Field{[10]uint32{0x0138ffca, 0x02e05e47, 0x017ecf9f, 0x029038f5, 0x0237f61c, 0x01954aa1, 0x0163038b, 0x03d779e2, 0x0005f46e, 0x0009e3e2}}}, + {X: Field{[10]uint32{0x005ae767, 0x00d6fdc1, 0x0371cbcb, 0x032e7a25, 0x00c273a9, 0x0301b976, 0x0340e052, 0x02d8d19b, 0x01163aed, 0x003ee56f}}, Y: Field{[10]uint32{0x03bf0e11, 0x00fa82be, 0x03134185, 0x01c62967, 0x03b816f4, 0x01a089d6, 0x0004d9d3, 0x0376f148, 0x00d811a8, 0x00199305}}}, + {X: Field{[10]uint32{0x01ec6cb1, 0x02a5e2f0, 0x003de33f, 0x01f60216, 0x00feed65, 0x01bff28f, 0x027be4be, 0x027372cd, 0x011d9104, 0x003699ea}}, Y: Field{[10]uint32{0x0268be1d, 0x03aa389e, 0x000a17e9, 0x031423dd, 0x01dec7ad, 0x0325e039, 0x03463f7e, 0x010af107, 0x02354816, 0x0026eb2a}}}, + }, + { + {X: Field{[10]uint32{0x01ec6cb1, 0x02a5e2f0, 0x003de33f, 0x01f60216, 0x00feed65, 0x01bff28f, 0x027be4be, 0x027372cd, 0x011d9104, 0x003699ea}}, Y: Field{[10]uint32{0x0268be1d, 0x03aa389e, 0x000a17e9, 0x031423dd, 0x01dec7ad, 0x0325e039, 0x03463f7e, 0x010af107, 0x02354816, 0x0026eb2a}}}, + {X: Field{[10]uint32{0x03e741c9, 0x00f32087, 0x01a835ee, 0x00d733a9, 0x018bbd9f, 0x03c0361c, 0x00c0cfaa, 0x03bd61f0, 0x01365fa1, 0x00136eb3}}, Y: Field{[10]uint32{0x038eb623, 0x03843e0c, 0x0135f60b, 0x02827f01, 0x010cc384, 0x020e0a67, 0x01cfd59e, 0x0224b9ff, 0x000e8a51, 0x0005b0d5}}}, + {X: Field{[10]uint32{0x01bc8a44, 0x03741945, 0x011a19ef, 0x01df2f85, 0x03684101, 0x029697f1, 0x00565a4b, 0x03b68f4e, 0x00583cfc, 0x00134060}}, Y: Field{[10]uint32{0x02dbc09e, 0x03e53246, 0x01a362f1, 0x011a160b, 0x03969420, 0x01f58e04, 0x029ba800, 0x03d74d9f, 0x02c18cb4, 0x000e8cf1}}}, + {X: Field{[10]uint32{0x00e218da, 0x036a2ead, 0x0205087e, 0x03c549a1, 0x010f4c85, 0x03d07096, 0x00f17d8f, 0x026fbb9a, 0x03c48150, 0x0004f47f}}, Y: Field{[10]uint32{0x03191c19, 0x02d06776, 0x01127e0d, 0x0081b56f, 0x01a4ad01, 0x006dd62f, 0x00b9337b, 0x0258773b, 0x011fa991, 0x0018020e}}}, + {X: Field{[10]uint32{0x01daeb00, 0x02ad4a19, 0x01f76bc1, 0x00933991, 0x015923eb, 0x00edba74, 0x02cb6a27, 0x03e55c20, 0x0107df5c, 0x000bd985}}, Y: Field{[10]uint32{0x033992c0, 0x01d9e260, 0x0308c122, 0x009c6574, 0x006ecdee, 0x00802b74, 0x039537a8, 0x02ccfdbb, 0x02136f52, 0x003f5704}}}, + {X: Field{[10]uint32{0x035b4eb8, 0x0084f924, 0x01a3cf52, 0x03c6ae2d, 0x0207f557, 0x032bcb73, 0x03f54a3c, 0x00895bc3, 0x00e43adf, 0x0030465a}}, Y: Field{[10]uint32{0x03911add, 0x01265b5b, 0x0149b704, 0x02504a9c, 0x0242f8b4, 0x019d9be0, 0x039d81fe, 0x01163e0d, 0x02937786, 0x002ffd79}}}, + {X: Field{[10]uint32{0x016aa6d9, 0x02a42824, 0x02dcf182, 0x02d91dc0, 0x003662c8, 0x0060d68e, 0x00f174da, 0x011f4895, 0x017d05fe, 0x003d6504}}, Y: Field{[10]uint32{0x032e50cf, 0x001a5baf, 0x01b86c7d, 0x0220f9ad, 0x037a9277, 0x00252f3a, 0x025dbdab, 0x006c4b3d, 0x01a56e97, 0x0032a9d8}}}, + {X: Field{[10]uint32{0x02e96db8, 0x02d032a8, 0x01bff133, 0x005b38a7, 0x033cc9d9, 0x016c14ce, 0x019c79c4, 0x018001d9, 0x039cef6c, 0x000866d3}}, Y: Field{[10]uint32{0x013b6bc7, 0x03c069e3, 0x0176527d, 0x0314fa41, 0x02394f8a, 0x000dca9b, 0x0244180c, 0x03bfabd6, 0x0205d959, 0x00093671}}}, + {X: Field{[10]uint32{0x02c6f4c0, 0x0380e55e, 0x01c4ccaa, 0x03a3312f, 0x01da4e8d, 0x01a59c47, 0x021c38be, 0x02737b13, 0x017f1f4d, 0x0003cb53}}, Y: Field{[10]uint32{0x02339b58, 0x01eeeb5c, 0x02656e7e, 0x029e4090, 0x028f6a10, 0x00e079c7, 0x03b27fdf, 0x0379345f, 0x03857e93, 0x000fb227}}}, + {X: Field{[10]uint32{0x00284327, 0x0347e6bd, 0x02facc56, 0x02c0e0e9, 0x03ac4020, 0x001a8d05, 0x003ebdd8, 0x02d17375, 0x00bdcd64, 0x0003da10}}, Y: Field{[10]uint32{0x01e2ab72, 0x0349d691, 0x01eb7400, 0x029dc4ae, 0x03b68dab, 0x02d8452b, 0x01e8bff4, 0x0069dd25, 0x037f100f, 0x003cc134}}}, + {X: Field{[10]uint32{0x03428cb2, 0x01414ff7, 0x02b55d85, 0x03f59a88, 0x01233822, 0x0256343c, 0x037a1815, 0x012ef47a, 0x02c2e2a1, 0x00075773}}, Y: Field{[10]uint32{0x015b189b, 0x03b44022, 0x004a51e5, 0x00be1d81, 0x00bd3e91, 0x021bc2e2, 0x00787824, 0x03231434, 0x0083b142, 0x001b9710}}}, + {X: Field{[10]uint32{0x01dffc96, 0x02e84256, 0x01857295, 0x0296beb1, 0x019228cd, 0x0205fac0, 0x039b395c, 0x00f7abdb, 0x00bee148, 0x0005871b}}, Y: Field{[10]uint32{0x03492de4, 0x02f3d846, 0x00621c93, 0x0324babe, 0x019b9634, 0x032c60c1, 0x01259391, 0x03fe616f, 0x0292a6b9, 0x002289b2}}}, + {X: Field{[10]uint32{0x00381273, 0x03aa23ea, 0x01ae5fb0, 0x02581a4f, 0x02d84376, 0x031049b3, 0x01ea9b2c, 0x019d0e7f, 0x02fd3009, 0x00227668}}, Y: Field{[10]uint32{0x0309773d, 0x03acfbb4, 0x03324a03, 0x0202b449, 0x018f61d6, 0x01b3d8bd, 0x03aaf207, 0x01bd40dd, 0x01b451d6, 0x0037f289}}}, + {X: Field{[10]uint32{0x010a683f, 0x018557e0, 0x031be4cf, 0x00c6fdba, 0x005248bd, 0x00626aa3, 0x02c7285f, 0x035283f9, 0x02cc3f64, 0x001e0f43}}, Y: Field{[10]uint32{0x00f54c4c, 0x019b38b8, 0x01ee9dfd, 0x0221c8e5, 0x02b5de92, 0x01fcb547, 0x02b74572, 0x03d28c05, 0x01029073, 0x0008029b}}}, + {X: Field{[10]uint32{0x01c71d91, 0x00cacb2d, 0x00fd21cc, 0x00b8aa25, 0x0223945e, 0x0056bfb3, 0x02a1c131, 0x002b8714, 0x038783a5, 0x0020c646}}, Y: Field{[10]uint32{0x02148a61, 0x027b0238, 0x005ee70b, 0x0145d411, 0x0217a11f, 0x005f2ba2, 0x006de13d, 0x006dc278, 0x03157380, 0x00382b1f}}}, + {X: Field{[10]uint32{0x0237b7c0, 0x01173306, 0x0069f575, 0x03deec44, 0x01ec08d0, 0x03bc8854, 0x02000935, 0x0133769b, 0x03aa0b33, 0x0014e413}}, Y: Field{[10]uint32{0x022771c8, 0x02c25ac0, 0x034699dc, 0x02078510, 0x00139999, 0x00834f07, 0x009eccac, 0x0041b623, 0x03d0bc80, 0x0016f021}}}, + }, + { + {X: Field{[10]uint32{0x0237b7c0, 0x01173306, 0x0069f575, 0x03deec44, 0x01ec08d0, 0x03bc8854, 0x02000935, 0x0133769b, 0x03aa0b33, 0x0014e413}}, Y: Field{[10]uint32{0x022771c8, 0x02c25ac0, 0x034699dc, 0x02078510, 0x00139999, 0x00834f07, 0x009eccac, 0x0041b623, 0x03d0bc80, 0x0016f021}}}, + {X: Field{[10]uint32{0x00a47ca9, 0x0343c7ce, 0x005ad57c, 0x02aab43e, 0x012a6ee7, 0x00c5a657, 0x03991196, 0x0119d4f3, 0x01af9d41, 0x0000695d}}, Y: Field{[10]uint32{0x03ebcdb7, 0x0177cb9d, 0x03ea667c, 0x01767d35, 0x00bdb93c, 0x006ee1a6, 0x015fc52e, 0x00370f31, 0x01cb8ab2, 0x000c0e3c}}}, + {X: Field{[10]uint32{0x00a2050e, 0x0310bf92, 0x00a6771a, 0x015d857e, 0x01742ef5, 0x0391e6e2, 0x03769cc6, 0x01cc625a, 0x00fd24bc, 0x0019cdc9}}, Y: Field{[10]uint32{0x021d3d70, 0x03269241, 0x01cc2b90, 0x03f50cd2, 0x01be6bac, 0x02a21adb, 0x03482c09, 0x01288080, 0x0257896a, 0x003933e0}}}, + {X: Field{[10]uint32{0x0315565b, 0x0275d578, 0x00c6ee30, 0x020f4f08, 0x02d3a61a, 0x01d85575, 0x031f5c1b, 0x0350e729, 0x00437621, 0x003d7c38}}, Y: Field{[10]uint32{0x012ecc82, 0x010c2bf7, 0x0240a678, 0x02fcfb5f, 0x02a5bf61, 0x037dc406, 0x02189160, 0x0014afd8, 0x0262be5a, 0x001ae7d3}}}, + {X: Field{[10]uint32{0x02de63bf, 0x01b920e0, 0x01c66cbf, 0x00ca1c98, 0x00e03af5, 0x03d859aa, 0x0198a631, 0x0130c279, 0x03a472df, 0x0010d9bb}}, Y: Field{[10]uint32{0x017924cd, 0x01a90238, 0x02d6b02c, 0x01496aa9, 0x02f33b0c, 0x00c09a3a, 0x022537e1, 0x035f38bb, 0x0109bee2, 0x000b9f76}}}, + {X: Field{[10]uint32{0x01a78179, 0x03d807ea, 0x02afe34c, 0x00149835, 0x036b50e9, 0x00827b67, 0x01a47336, 0x02e37241, 0x03f37081, 0x00265729}}, Y: Field{[10]uint32{0x03ec1f47, 0x03eed32b, 0x00e52931, 0x015a6ad9, 0x02bbcc85, 0x0124a18e, 0x0234d880, 0x015cead7, 0x01e95553, 0x00366816}}}, + {X: Field{[10]uint32{0x02f96190, 0x0149ffc1, 0x0125ef10, 0x03a41f25, 0x03d1f02d, 0x019ea9d7, 0x03e55696, 0x02ac7e5e, 0x03627991, 0x001ef5d4}}, Y: Field{[10]uint32{0x03da00f6, 0x005c812a, 0x02695a3d, 0x0170783a, 0x02ce0fcc, 0x010e09f5, 0x02d64749, 0x018c2757, 0x02b3dbba, 0x0020cdbc}}}, + {X: Field{[10]uint32{0x01362d33, 0x01e0767d, 0x03642cbe, 0x00851889, 0x0347cbc9, 0x01c32938, 0x027f36d9, 0x01ba695e, 0x030b6c0b, 0x0023d41b}}, Y: Field{[10]uint32{0x03fa243f, 0x021f4321, 0x00eaf304, 0x01750eee, 0x0048cf92, 0x03c70cda, 0x030c5424, 0x0185c654, 0x015d2afa, 0x0011a7e5}}}, + {X: Field{[10]uint32{0x02ad41ed, 0x0054c555, 0x0352433b, 0x00d7d3c0, 0x020308ac, 0x02463724, 0x023419e8, 0x035706be, 0x027bddaa, 0x0013dfa4}}, Y: Field{[10]uint32{0x02642d57, 0x00d5e19f, 0x0375bdf4, 0x01c53abd, 0x022e7314, 0x00ea3da9, 0x02980df5, 0x022c4154, 0x005156a8, 0x0037f9dd}}}, + {X: Field{[10]uint32{0x025e6618, 0x010e868f, 0x03cb4c18, 0x03d6763f, 0x03166d65, 0x03904918, 0x02017141, 0x01f6fe1f, 0x007338b9, 0x003ef084}}, Y: Field{[10]uint32{0x0230c860, 0x01536808, 0x00cf20ed, 0x00fc772f, 0x017f3c4f, 0x03ce6c47, 0x0160c1a6, 0x025052d2, 0x0059185c, 0x0027e6c2}}}, + {X: Field{[10]uint32{0x03748690, 0x01814499, 0x00b01cfa, 0x0137618c, 0x007d5790, 0x0374cf40, 0x03452b1e, 0x00733252, 0x03867d29, 0x0008d572}}, Y: Field{[10]uint32{0x0089582b, 0x011d4c53, 0x0139147c, 0x01633472, 0x00582868, 0x016a9f16, 0x01b85ec1, 0x0387e3d5, 0x018a5a71, 0x000870bc}}}, + {X: Field{[10]uint32{0x009135d3, 0x02361761, 0x031fc13d, 0x03404b90, 0x0274203c, 0x004c2c5a, 0x00134294, 0x02a16997, 0x03c7ef82, 0x00016502}}, Y: Field{[10]uint32{0x022255d2, 0x035d1465, 0x02391d02, 0x00a32640, 0x02f12863, 0x02ad9a1e, 0x035b0c7a, 0x02ad84bd, 0x0185eb4f, 0x002414de}}}, + {X: Field{[10]uint32{0x02de7f16, 0x03a88582, 0x0028c6da, 0x03a4f2f8, 0x00ae9cba, 0x0309d749, 0x03592ab6, 0x0295b004, 0x025b9b3d, 0x0002d9a0}}, Y: Field{[10]uint32{0x00c56217, 0x01109a12, 0x00d2bd94, 0x0037cf9f, 0x03b7243c, 0x02d5ea5f, 0x03a76ba8, 0x026cffbc, 0x00b818e0, 0x00287ee8}}}, + {X: Field{[10]uint32{0x00d2374d, 0x00c1c059, 0x02b2bc63, 0x025a133f, 0x00dcf38a, 0x02cffda9, 0x025a9f71, 0x03274976, 0x02d8b5e5, 0x0005bba3}}, Y: Field{[10]uint32{0x00865998, 0x016f2d3f, 0x01dd980e, 0x003b9b53, 0x02075513, 0x016dbfd8, 0x026b843e, 0x03c44228, 0x03f0546f, 0x003d4039}}}, + {X: Field{[10]uint32{0x01060d5b, 0x01ac08a6, 0x03a7c290, 0x02c470e8, 0x03904613, 0x027e5472, 0x0109b2fd, 0x0008b2d8, 0x003cf0bd, 0x003d8081}}, Y: Field{[10]uint32{0x02f88f13, 0x01bd42c6, 0x01a3f76f, 0x034adf74, 0x0237aa56, 0x0313defa, 0x01a8f64a, 0x033c6620, 0x0306c1f0, 0x003c0dad}}}, + {X: Field{[10]uint32{0x02d86047, 0x02567d0e, 0x00bcaeff, 0x0010ea6e, 0x0379b53a, 0x0132a419, 0x01cca776, 0x020e9dc6, 0x010bd359, 0x00239ef3}}, Y: Field{[10]uint32{0x0060372a, 0x00011fa1, 0x028b3ea1, 0x00b91ff5, 0x0179e88e, 0x032a5451, 0x00310420, 0x0292ce50, 0x030b2a3d, 0x00042ddd}}}, + }, + { + {X: Field{[10]uint32{0x02d86047, 0x02567d0e, 0x00bcaeff, 0x0010ea6e, 0x0379b53a, 0x0132a419, 0x01cca776, 0x020e9dc6, 0x010bd359, 0x00239ef3}}, Y: Field{[10]uint32{0x0060372a, 0x00011fa1, 0x028b3ea1, 0x00b91ff5, 0x0179e88e, 0x032a5451, 0x00310420, 0x0292ce50, 0x030b2a3d, 0x00042ddd}}}, + {X: Field{[10]uint32{0x013f0351, 0x00a022fc, 0x009e777d, 0x0234f40e, 0x033bc15b, 0x025a5437, 0x010f3199, 0x01ca770d, 0x03aa195e, 0x000cecd6}}, Y: Field{[10]uint32{0x038d7418, 0x0140f332, 0x01b702bc, 0x03bef222, 0x00aa6560, 0x012354af, 0x00640362, 0x02fe1fe5, 0x0185640a, 0x00296280}}}, + {X: Field{[10]uint32{0x001ead4b, 0x0221e681, 0x003c1ffe, 0x03eda46c, 0x023a75ed, 0x02bf9daf, 0x014734ef, 0x00cdfb1c, 0x000c8c8f, 0x002ff243}}, Y: Field{[10]uint32{0x02fedaed, 0x00b1bc21, 0x02e3e745, 0x03fccb82, 0x02fb468e, 0x01410b4d, 0x03a718dd, 0x037b4936, 0x01b1e09c, 0x001ea520}}}, + {X: Field{[10]uint32{0x0014bb36, 0x0371ec91, 0x03ca6d71, 0x00272b5e, 0x0256f6e1, 0x01c7df88, 0x0383ad20, 0x00fe5572, 0x02ae22c9, 0x000dd37b}}, Y: Field{[10]uint32{0x01af734a, 0x016faa63, 0x00321787, 0x018c0395, 0x013828d6, 0x0201bdca, 0x0032c06f, 0x013e6458, 0x01b64fcd, 0x0005c459}}}, + {X: Field{[10]uint32{0x01bb3b3e, 0x01ef41dd, 0x033cb26e, 0x005fbe7d, 0x03507536, 0x030b4fd6, 0x025993e8, 0x02aa9372, 0x011cbe3f, 0x001ccb7c}}, Y: Field{[10]uint32{0x03366693, 0x01df87b5, 0x00436cc5, 0x01b59316, 0x02e69dad, 0x00094e45, 0x03e25584, 0x0265df2d, 0x003ede8f, 0x001fd064}}}, + {X: Field{[10]uint32{0x01b7ad0d, 0x03215bb9, 0x011d3694, 0x01f2a743, 0x0076ee76, 0x01b45b11, 0x010d8a49, 0x0380370b, 0x010dabb5, 0x000e955a}}, Y: Field{[10]uint32{0x02e8c407, 0x0261e42c, 0x01218d6c, 0x022b2b0c, 0x0301cacb, 0x01fbe67c, 0x021fbac9, 0x0195efec, 0x021975a0, 0x0030f8a3}}}, + {X: Field{[10]uint32{0x008dc3b9, 0x016cf062, 0x00c99c5f, 0x0093a5dd, 0x0019a669, 0x0325fbd8, 0x01a8840c, 0x011ed0a3, 0x00b96039, 0x00133825}}, Y: Field{[10]uint32{0x01c0de52, 0x013dedb9, 0x006502c1, 0x008327a8, 0x0216205b, 0x029dab28, 0x03b4d80c, 0x026cfb55, 0x03babf1a, 0x00014e43}}}, + {X: Field{[10]uint32{0x02e7d616, 0x02992b5a, 0x01f0c5e8, 0x03cad8aa, 0x00944dba, 0x016bac37, 0x006e0739, 0x03ab95f1, 0x009c7f3a, 0x0008e030}}, Y: Field{[10]uint32{0x021bbc1a, 0x026f9205, 0x02756009, 0x00523e11, 0x0293af92, 0x01426c26, 0x0198aefd, 0x0255abc5, 0x02193464, 0x001be3a1}}}, + {X: Field{[10]uint32{0x02aafe5a, 0x01d782c2, 0x02edd4c3, 0x02ce9426, 0x00e25470, 0x02c08ff4, 0x018a6a95, 0x019f7a5b, 0x02b76fc6, 0x0026a5a3}}, Y: Field{[10]uint32{0x02d975c0, 0x02ff5093, 0x00cc0ce6, 0x0029979c, 0x02e7b588, 0x03618743, 0x03c66d03, 0x02e8a553, 0x0307a6d3, 0x002afdbe}}}, + {X: Field{[10]uint32{0x03a32402, 0x018b453b, 0x025348d9, 0x0184f19a, 0x025e659c, 0x000e00d3, 0x037db3bb, 0x03aaaf83, 0x02ced74c, 0x00060293}}, Y: Field{[10]uint32{0x00894b4e, 0x00de0371, 0x0118b320, 0x024dff73, 0x01a602c5, 0x013fafa1, 0x03bfc2f2, 0x035f8ab6, 0x015747ba, 0x00126293}}}, + {X: Field{[10]uint32{0x034c6397, 0x0072fe7c, 0x00d09375, 0x02d401d3, 0x0107dd3d, 0x014dac88, 0x00aef802, 0x0186553c, 0x03ed0171, 0x0034f1be}}, Y: Field{[10]uint32{0x00cb3f9c, 0x0323415a, 0x00e00b1f, 0x00224178, 0x028a0c77, 0x00baad91, 0x018394d9, 0x00abc651, 0x02c55e5e, 0x00128374}}}, + {X: Field{[10]uint32{0x01b2df82, 0x0291ec26, 0x00fb1927, 0x00591c41, 0x00ec5e7a, 0x0338cb01, 0x012d18ec, 0x02e4b332, 0x005c62bf, 0x00101699}}, Y: Field{[10]uint32{0x01307dbf, 0x00a0d282, 0x0062b5da, 0x02cb3b71, 0x022ffa9d, 0x008df9c4, 0x00aca61e, 0x025b83d7, 0x0014f44d, 0x002f0f2d}}}, + {X: Field{[10]uint32{0x02c3137e, 0x020964c2, 0x0244619b, 0x018a96bd, 0x03fe925b, 0x02aace54, 0x02f06a76, 0x010ee380, 0x03981292, 0x00132f78}}, Y: Field{[10]uint32{0x02c02fe6, 0x023c573b, 0x02d60c00, 0x02b9623a, 0x00d193a7, 0x02e530dc, 0x0092a134, 0x01856540, 0x00608f13, 0x001b3955}}}, + {X: Field{[10]uint32{0x010ce56e, 0x006788f9, 0x014a3c71, 0x03c35de4, 0x02c8293a, 0x032f9e05, 0x00590fca, 0x006bcf9a, 0x00d3ce53, 0x002a9b71}}, Y: Field{[10]uint32{0x01edd739, 0x03ce8d1f, 0x010a8b9d, 0x036be3dc, 0x03c11984, 0x03997998, 0x01f6edc5, 0x0394a5b8, 0x018fa241, 0x003af1e6}}}, + {X: Field{[10]uint32{0x00fbf84b, 0x008c1b38, 0x00b8a47a, 0x032ef0fc, 0x0303c48f, 0x030533ae, 0x03d9c730, 0x01891ee2, 0x033c82b1, 0x0012e74c}}, Y: Field{[10]uint32{0x036c3c48, 0x03b92d28, 0x035e6239, 0x010f8bd6, 0x036766d5, 0x019e6dfa, 0x0313d982, 0x03054954, 0x03fbe24c, 0x003f5ff1}}}, + {X: Field{[10]uint32{0x01c43862, 0x01078566, 0x026690a8, 0x03c60e5f, 0x0271a7f4, 0x026e06f7, 0x01081868, 0x03fc879b, 0x0134c1cd, 0x000e17bb}}, Y: Field{[10]uint32{0x002e5453, 0x0163f955, 0x01c8cc04, 0x03b0821b, 0x036b304e, 0x027afd15, 0x001de19e, 0x008fd59c, 0x03c3e8ea, 0x000a0efa}}}, + }, + { + {X: Field{[10]uint32{0x01c43862, 0x01078566, 0x026690a8, 0x03c60e5f, 0x0271a7f4, 0x026e06f7, 0x01081868, 0x03fc879b, 0x0134c1cd, 0x000e17bb}}, Y: Field{[10]uint32{0x002e5453, 0x0163f955, 0x01c8cc04, 0x03b0821b, 0x036b304e, 0x027afd15, 0x001de19e, 0x008fd59c, 0x03c3e8ea, 0x000a0efa}}}, + {X: Field{[10]uint32{0x00f2827c, 0x00e89c1e, 0x01ce2dc8, 0x010afbf0, 0x0147c826, 0x0357d9f4, 0x016be134, 0x01520011, 0x02083daf, 0x003dbd88}}, Y: Field{[10]uint32{0x00aaa102, 0x02c82d48, 0x01bf6d15, 0x01d120c8, 0x03e657ca, 0x00d9f3b9, 0x02c5715b, 0x00e83ebc, 0x02817de7, 0x0006f353}}}, + {X: Field{[10]uint32{0x02e2d9b3, 0x034c1aad, 0x0163514b, 0x020c6ce3, 0x0241db92, 0x0273e115, 0x012ea613, 0x00179d78, 0x00f397c7, 0x000668c5}}, Y: Field{[10]uint32{0x03aaaf33, 0x00bb8972, 0x03e56d55, 0x00749012, 0x03a5021d, 0x01fd4a2c, 0x00965f88, 0x00a3748d, 0x00f5dac7, 0x001b2b36}}}, + {X: Field{[10]uint32{0x015adcb6, 0x024c825c, 0x02f369d8, 0x0339f631, 0x01cd91c3, 0x0347f095, 0x030cb3c3, 0x00f78af5, 0x01188f95, 0x003ec9b9}}, Y: Field{[10]uint32{0x00ba68f3, 0x02f28ed6, 0x02b5449d, 0x00c6e2de, 0x0116d2cb, 0x027405da, 0x02846a71, 0x028d3563, 0x00811012, 0x003cf84a}}}, + {X: Field{[10]uint32{0x02f00480, 0x0161fac4, 0x01cee7d8, 0x00128403, 0x01203588, 0x013d9c86, 0x01c98636, 0x036a8d57, 0x014b95a8, 0x0016103b}}, Y: Field{[10]uint32{0x0222cf9e, 0x00b578af, 0x03872159, 0x01514ab8, 0x02ba7522, 0x00577636, 0x0168deaa, 0x03c5041e, 0x026b220b, 0x0019c336}}}, + {X: Field{[10]uint32{0x03a52264, 0x01cdf658, 0x00b3752e, 0x000c5500, 0x03d0adfc, 0x02b9473f, 0x006e2a9a, 0x01ffa6a0, 0x000de818, 0x00217ff7}}, Y: Field{[10]uint32{0x02da2082, 0x01f4a6a0, 0x01d0498c, 0x0324ac5e, 0x00678182, 0x01551c1b, 0x02568f50, 0x0252342f, 0x00187ae2, 0x000ffb8c}}}, + {X: Field{[10]uint32{0x03f54c42, 0x0137ba08, 0x03dc8e48, 0x00f09a68, 0x0145dc1a, 0x03b394c9, 0x0058c1f4, 0x0063ec77, 0x01a53469, 0x0027d5c0}}, Y: Field{[10]uint32{0x03eb6a21, 0x0387124b, 0x02527860, 0x012ac867, 0x0189ee78, 0x01ca6ff7, 0x0395b6b5, 0x02795efe, 0x03b8801d, 0x00339ee3}}}, + {X: Field{[10]uint32{0x00788c1e, 0x0136dd58, 0x011d7ed4, 0x00183a2f, 0x03d18c37, 0x018f3aad, 0x035c6bc7, 0x004cb4a3, 0x025911b9, 0x00226448}}, Y: Field{[10]uint32{0x028f0ef1, 0x031088a3, 0x01e11635, 0x0213f7be, 0x0236969c, 0x026c4dbe, 0x03876355, 0x02b26c9e, 0x01987cc9, 0x0036a2d3}}}, + {X: Field{[10]uint32{0x0122461a, 0x0104cca5, 0x018327e9, 0x00996f1c, 0x00bcb30a, 0x019fbe68, 0x03b87010, 0x0233f006, 0x0169235a, 0x0009fd84}}, Y: Field{[10]uint32{0x03301a2d, 0x0132be71, 0x039446aa, 0x00836a18, 0x00e4981b, 0x01d0a3ba, 0x008c5612, 0x01ab4ba9, 0x01a9900a, 0x003944bc}}}, + {X: Field{[10]uint32{0x02ddd3ac, 0x03662579, 0x006516db, 0x00ce8bc0, 0x037bf8f6, 0x0338b568, 0x012d90d6, 0x00b82561, 0x03e6732a, 0x0025bb94}}, Y: Field{[10]uint32{0x029b6fde, 0x0096cd9c, 0x01c06fbf, 0x025db19b, 0x02ef0d07, 0x03afc783, 0x004c9711, 0x00a7cb63, 0x02eae4b6, 0x000e6e72}}}, + {X: Field{[10]uint32{0x014f36b9, 0x00b26cb4, 0x03390cce, 0x02ed8ee7, 0x012598ca, 0x017d2a60, 0x01bf2f43, 0x03e50498, 0x01856cee, 0x001901de}}, Y: Field{[10]uint32{0x00b4b50a, 0x02c7ba79, 0x02eb2894, 0x01c12673, 0x008cda08, 0x02169edb, 0x010d75fd, 0x01bbebbe, 0x028f44e5, 0x00369864}}}, + {X: Field{[10]uint32{0x02a88c9c, 0x03fd692d, 0x01f069c1, 0x0198c527, 0x02a37b68, 0x01cb2a8a, 0x021d9ac9, 0x0244e62c, 0x0081e547, 0x001e1964}}, Y: Field{[10]uint32{0x01a7d19b, 0x0164d15d, 0x02a155e0, 0x026c0ead, 0x0112cf91, 0x017a0658, 0x028fa722, 0x0034ada7, 0x007792a3, 0x0016688c}}}, + {X: Field{[10]uint32{0x00d6b76f, 0x018f7e65, 0x015dbcef, 0x03eed320, 0x027fe5a9, 0x00277fab, 0x02f708bc, 0x019a7d14, 0x00e31c85, 0x00288dd4}}, Y: Field{[10]uint32{0x01cca8da, 0x024b3323, 0x008d141d, 0x0047f6e1, 0x03e7707c, 0x03504444, 0x032fa3e4, 0x0379b6b0, 0x0314a6e7, 0x003dcce6}}}, + {X: Field{[10]uint32{0x00c13079, 0x0336c4f4, 0x01688d4f, 0x00055374, 0x026f3e5a, 0x036bcc05, 0x01fea76e, 0x003aee02, 0x010b6e1f, 0x001794ad}}, Y: Field{[10]uint32{0x00e1296f, 0x00f1239c, 0x00e1cc10, 0x0344f58f, 0x004a3829, 0x01280fab, 0x02987853, 0x012c326d, 0x02e73a35, 0x000667b7}}}, + {X: Field{[10]uint32{0x00eee475, 0x03a7193f, 0x0382b12e, 0x00a103b5, 0x01ab6ac8, 0x00f2bfd0, 0x013c021f, 0x00de357b, 0x0007a3f2, 0x002efc6b}}, Y: Field{[10]uint32{0x03fe5067, 0x008a8021, 0x001d6846, 0x02250e2d, 0x0324eb9d, 0x01ac57f8, 0x0083cc83, 0x01839842, 0x00deead4, 0x002d2fee}}}, + {X: Field{[10]uint32{0x03fac3a7, 0x01bb61b0, 0x03bc9c60, 0x0129651f, 0x000fddf8, 0x004f7e86, 0x03c73a44, 0x03c6458d, 0x01b803ec, 0x0001be76}}, Y: Field{[10]uint32{0x02842160, 0x0224180e, 0x01002d86, 0x00bd70a0, 0x007ea4dd, 0x03917135, 0x038e2a30, 0x0166e9a6, 0x028e6030, 0x001f2031}}}, + }, + { + {X: Field{[10]uint32{0x03fac3a7, 0x01bb61b0, 0x03bc9c60, 0x0129651f, 0x000fddf8, 0x004f7e86, 0x03c73a44, 0x03c6458d, 0x01b803ec, 0x0001be76}}, Y: Field{[10]uint32{0x02842160, 0x0224180e, 0x01002d86, 0x00bd70a0, 0x007ea4dd, 0x03917135, 0x038e2a30, 0x0166e9a6, 0x028e6030, 0x001f2031}}}, + {X: Field{[10]uint32{0x037fd72d, 0x03489d12, 0x01a175c9, 0x03969f93, 0x01da1745, 0x01120a4e, 0x01c36c28, 0x01047073, 0x02ea252b, 0x002ba1bb}}, Y: Field{[10]uint32{0x02ee38bc, 0x0132de93, 0x03728233, 0x015451cb, 0x018d9211, 0x0227fc3a, 0x02b0ace5, 0x000be58a, 0x03c97073, 0x00067a64}}}, + {X: Field{[10]uint32{0x021ce204, 0x035d7a34, 0x023d524e, 0x0239099d, 0x03b2a725, 0x0329bdcb, 0x0374d859, 0x03193ee0, 0x01d162b3, 0x0010f290}}, Y: Field{[10]uint32{0x034a8f6b, 0x014113a4, 0x02468e52, 0x02ccfa92, 0x039ab6c7, 0x0236e8c7, 0x0250f921, 0x008fe871, 0x0282e370, 0x00373a96}}}, + {X: Field{[10]uint32{0x00169290, 0x011d099f, 0x032ee7a1, 0x01d73cdb, 0x008718be, 0x01b70b12, 0x01d2f8c5, 0x03fd5798, 0x01f90bbf, 0x00089232}}, Y: Field{[10]uint32{0x003ea257, 0x036284a2, 0x02be2369, 0x0008d768, 0x00e16375, 0x010d6e86, 0x006bb55b, 0x03bb5e94, 0x00692d21, 0x003e8165}}}, + {X: Field{[10]uint32{0x03e6efda, 0x033a4b3a, 0x0005964f, 0x03cfe1ca, 0x01922d4f, 0x0216941b, 0x026f7237, 0x00afd6d9, 0x02ef2289, 0x00270f81}}, Y: Field{[10]uint32{0x03aefc7d, 0x0103cca9, 0x03df7df1, 0x01a1ecdb, 0x01d43bc8, 0x03389bf5, 0x030b2d44, 0x0248f62b, 0x01e5e762, 0x0029edc2}}}, + {X: Field{[10]uint32{0x00978583, 0x0290c805, 0x0213f5b3, 0x02bbc185, 0x00cdd6e9, 0x003e4885, 0x03841999, 0x00c4dd25, 0x009b9cf2, 0x000c2afe}}, Y: Field{[10]uint32{0x01c75777, 0x00600d47, 0x004ac446, 0x0288eed6, 0x0063120e, 0x00386ae0, 0x037b4f2d, 0x01d26337, 0x0115477f, 0x0012c0d4}}}, + {X: Field{[10]uint32{0x02c88be2, 0x009ead71, 0x025e2791, 0x008341bb, 0x03ea2c78, 0x020c1dd6, 0x0372759d, 0x003c0cee, 0x02a313e2, 0x00175be2}}, Y: Field{[10]uint32{0x017ad75d, 0x03954fc3, 0x012c2892, 0x023a9afe, 0x00edab6f, 0x02c22f08, 0x01aaf33a, 0x0353a31c, 0x018d8d56, 0x002b712c}}}, + {X: Field{[10]uint32{0x010964e3, 0x036b12ed, 0x02f76fd0, 0x01df7471, 0x00a99f08, 0x02502174, 0x0011b48d, 0x01101d2b, 0x0216e05c, 0x0038469b}}, Y: Field{[10]uint32{0x0282bfc8, 0x03efe2c1, 0x00c6f767, 0x0384e0c6, 0x0017adc6, 0x01bc2bc9, 0x02d5e259, 0x0350c386, 0x025b87a2, 0x0021f581}}}, + {X: Field{[10]uint32{0x02d1b844, 0x024d46e4, 0x02484f28, 0x020b05cf, 0x01c69c03, 0x004e22f1, 0x02b15c3c, 0x00357f21, 0x01c304a6, 0x003d5f4d}}, Y: Field{[10]uint32{0x01266837, 0x02eaef58, 0x01c6a464, 0x0080c245, 0x00700697, 0x027918d3, 0x004d3f5a, 0x03d365e4, 0x019ea98e, 0x001c1fcf}}}, + {X: Field{[10]uint32{0x021f51d3, 0x01c591ec, 0x03df8739, 0x0118b0e7, 0x0011f80d, 0x036842ea, 0x00d419b9, 0x02a5573a, 0x03216726, 0x001a9cfe}}, Y: Field{[10]uint32{0x01224b17, 0x00937669, 0x03774018, 0x011a2d82, 0x022db482, 0x025c844c, 0x02a7d294, 0x03cf09ff, 0x02fca1ed, 0x0013cf3b}}}, + {X: Field{[10]uint32{0x00c7cb09, 0x03401fcf, 0x03435234, 0x01a28746, 0x023bc7eb, 0x00f61c51, 0x016e1fee, 0x025297d6, 0x007a3a65, 0x0004f9d8}}, Y: Field{[10]uint32{0x00079160, 0x01d6a282, 0x036411be, 0x02ed9ad5, 0x0165eae2, 0x02cd0a67, 0x025fdd85, 0x02e2c78c, 0x008de8fb, 0x000a1372}}}, + {X: Field{[10]uint32{0x00288015, 0x00df98fb, 0x019cc39a, 0x014fbb72, 0x024673f8, 0x0016daa9, 0x01fac61a, 0x0379bda0, 0x02aad936, 0x002a8053}}, Y: Field{[10]uint32{0x02c1006f, 0x00539991, 0x00ad9df8, 0x001d0f3b, 0x03ef4b9b, 0x03dec3d8, 0x032a7e43, 0x02fa6b0f, 0x03c04636, 0x000f7a44}}}, + {X: Field{[10]uint32{0x00cdee05, 0x00338496, 0x003b9006, 0x02c85cbb, 0x01a8761f, 0x02c1a407, 0x000250b1, 0x020b9890, 0x03225681, 0x000a6fa8}}, Y: Field{[10]uint32{0x022651c8, 0x0280d669, 0x018e39e4, 0x02db231a, 0x03f9fc31, 0x021c17b1, 0x0009b3fb, 0x02683aa4, 0x01a2690e, 0x001f1036}}}, + {X: Field{[10]uint32{0x011d45f9, 0x02155e3c, 0x026144cf, 0x0379b1e5, 0x02ba4c1c, 0x01f6de5b, 0x022ef2c7, 0x0144ad3a, 0x03d35337, 0x000dabb8}}, Y: Field{[10]uint32{0x00febad4, 0x02eacfdf, 0x036069d3, 0x0342b11c, 0x00004b35, 0x01f263d5, 0x00b95470, 0x018271e7, 0x0235cd69, 0x0032ab76}}}, + {X: Field{[10]uint32{0x02f18ada, 0x01b1d584, 0x01bcc11b, 0x024eef6f, 0x01d460bd, 0x00cf5296, 0x0036faff, 0x02239f67, 0x006d2382, 0x003d485e}}, Y: Field{[10]uint32{0x03953516, 0x01a2bf48, 0x030981dd, 0x028db16f, 0x02aa5ef4, 0x03347475, 0x0026102b, 0x036d5fb3, 0x03bf6038, 0x00381a1b}}}, + {X: Field{[10]uint32{0x02d0e6bd, 0x01f839d0, 0x01e5313b, 0x018f6c3d, 0x03f774d1, 0x00135bb2, 0x022147c1, 0x0138960a, 0x0001243c, 0x000cc8b5}}, Y: Field{[10]uint32{0x0028b2a0, 0x00e8ba5b, 0x03af624f, 0x00fa8a1c, 0x032805f6, 0x0376be6d, 0x03019bc4, 0x013bd6fe, 0x0397e966, 0x0015b9c1}}}, + }, + { + {X: Field{[10]uint32{0x02d0e6bd, 0x01f839d0, 0x01e5313b, 0x018f6c3d, 0x03f774d1, 0x00135bb2, 0x022147c1, 0x0138960a, 0x0001243c, 0x000cc8b5}}, Y: Field{[10]uint32{0x0028b2a0, 0x00e8ba5b, 0x03af624f, 0x00fa8a1c, 0x032805f6, 0x0376be6d, 0x03019bc4, 0x013bd6fe, 0x0397e966, 0x0015b9c1}}}, + {X: Field{[10]uint32{0x00ade462, 0x025b4cb0, 0x00f29fc6, 0x0323ab6f, 0x010d4cdd, 0x01320335, 0x00ef31b0, 0x02f6b848, 0x000250ce, 0x00234988}}, Y: Field{[10]uint32{0x0326470c, 0x002a2e43, 0x00b3ad8e, 0x0139c99e, 0x021d4afb, 0x00fb8dae, 0x01f6f2dc, 0x03d0df4c, 0x03b4715b, 0x003afb4e}}}, + {X: Field{[10]uint32{0x019ab499, 0x0274fc81, 0x00330abd, 0x0271b9cf, 0x000b1329, 0x019fc06f, 0x02196b3c, 0x0016e974, 0x03f3015c, 0x001e2eab}}, Y: Field{[10]uint32{0x02e097fd, 0x0348c63f, 0x01199681, 0x03ba3449, 0x0291632e, 0x0360820b, 0x00a84e0e, 0x0302bebf, 0x00dbdb06, 0x002b52f7}}}, + {X: Field{[10]uint32{0x0116e633, 0x01190f85, 0x01c8b916, 0x00341cb6, 0x038ed493, 0x0165340e, 0x00068a1f, 0x02faa739, 0x00766eae, 0x00048e30}}, Y: Field{[10]uint32{0x037b7805, 0x036dca31, 0x0022805c, 0x00b731d0, 0x03094625, 0x0070f705, 0x00979e2d, 0x004d675b, 0x002dbb27, 0x0022a76c}}}, + {X: Field{[10]uint32{0x0106ace6, 0x00f85b3f, 0x020ca449, 0x00dbe0e8, 0x0223709b, 0x024a6ac6, 0x00b84984, 0x038f5308, 0x0211a14a, 0x001bdc3c}}, Y: Field{[10]uint32{0x0202d5de, 0x02fb4d2d, 0x005ee048, 0x019af96b, 0x00753295, 0x01ee67d4, 0x015d8f34, 0x01edcdbe, 0x02309402, 0x001e47a2}}}, + {X: Field{[10]uint32{0x01cd5379, 0x018ccc29, 0x03cadc30, 0x00e161c2, 0x032db794, 0x02a93488, 0x002481b8, 0x004e0a9e, 0x02d56bdd, 0x0005f01c}}, Y: Field{[10]uint32{0x0108cd25, 0x02b8146c, 0x02d0df7c, 0x01d8996e, 0x038959ac, 0x03c740d3, 0x03c1247a, 0x0281939d, 0x01f4283d, 0x0036406f}}}, + {X: Field{[10]uint32{0x00ee1b40, 0x03b8fb98, 0x02247dc8, 0x016dc7a5, 0x008ced48, 0x0040f335, 0x00949f19, 0x029057e0, 0x01b29d6a, 0x00385667}}, Y: Field{[10]uint32{0x038f93a6, 0x018997b5, 0x0199de1d, 0x01d2f0ca, 0x03a6363a, 0x028bf1f3, 0x02f894aa, 0x035283be, 0x02232a81, 0x001e4cd8}}}, + {X: Field{[10]uint32{0x008e7a66, 0x0005549e, 0x0021619b, 0x00a0ac3b, 0x01cddcd7, 0x029a846e, 0x032ea758, 0x0270579e, 0x030770cb, 0x0009c756}}, Y: Field{[10]uint32{0x003c9727, 0x035c9638, 0x0024e7a8, 0x038d422a, 0x03e2a065, 0x026b21df, 0x017d0994, 0x03d24791, 0x005834e7, 0x00174ea9}}}, + {X: Field{[10]uint32{0x01c00c3e, 0x037e8a12, 0x008e2f81, 0x000f2448, 0x01f00e8f, 0x03514616, 0x02562d33, 0x01a5590d, 0x00970440, 0x002ec2c1}}, Y: Field{[10]uint32{0x01955a35, 0x02a60b44, 0x0090a799, 0x013a4177, 0x02fe6704, 0x02ac6c14, 0x01d2fa17, 0x027d8d95, 0x005853af, 0x001019f9}}}, + {X: Field{[10]uint32{0x00a923b7, 0x03a1f62a, 0x01b30da1, 0x03bb6071, 0x02aef650, 0x020ce099, 0x00708ab6, 0x0269c150, 0x039b2199, 0x002b0ab2}}, Y: Field{[10]uint32{0x03cd20a6, 0x030492b5, 0x03a4fa2d, 0x02fc4b49, 0x0360b0d0, 0x004f67ac, 0x01afa0df, 0x01c93472, 0x028511c1, 0x001da110}}}, + {X: Field{[10]uint32{0x01dd32e6, 0x01d6e701, 0x01ee7e0e, 0x0146d4f9, 0x03c663b5, 0x01d697ef, 0x0249dbe0, 0x01e27a6d, 0x01554195, 0x00371690}}, Y: Field{[10]uint32{0x014a99b9, 0x01f6de9d, 0x01bcf80e, 0x0241db92, 0x002ff2ee, 0x006fd651, 0x00ea5e20, 0x019e9db7, 0x00a63f9f, 0x0012bcea}}}, + {X: Field{[10]uint32{0x022d8dae, 0x00f00632, 0x01ea9579, 0x03e47f49, 0x02ac32a5, 0x032c895b, 0x02b25ef9, 0x024be6e9, 0x00026211, 0x002209c7}}, Y: Field{[10]uint32{0x021e77d9, 0x009b03cf, 0x01099fb4, 0x01b71c5f, 0x00c30087, 0x016afd6b, 0x01c8b3ae, 0x01daa900, 0x01535071, 0x0035c677}}}, + {X: Field{[10]uint32{0x0144e7cb, 0x0116eb11, 0x020359ed, 0x0096d4a5, 0x01a10642, 0x004053a6, 0x03354a57, 0x00ee76f8, 0x01703987, 0x00055b86}}, Y: Field{[10]uint32{0x01250a37, 0x00e4b02b, 0x039cd6d5, 0x02357ad0, 0x009496d5, 0x00e0d2fa, 0x039572a6, 0x0241f6a4, 0x019f8f31, 0x001af023}}}, + {X: Field{[10]uint32{0x0089240f, 0x02eb7267, 0x03b858f5, 0x02ebe8b9, 0x0274f8c4, 0x01f8385d, 0x00ee0919, 0x01cce386, 0x010d652d, 0x00056e0e}}, Y: Field{[10]uint32{0x0326f04a, 0x03e7be38, 0x033352e2, 0x02ad7068, 0x01b30367, 0x01e967e6, 0x03dd7ccc, 0x023420ea, 0x020c8efe, 0x001e1b3c}}}, + {X: Field{[10]uint32{0x019853ca, 0x02f0a731, 0x03f54dbf, 0x01ae7c66, 0x0348e962, 0x0239c584, 0x00a76a22, 0x010e09af, 0x00cecb68, 0x00109a6f}}, Y: Field{[10]uint32{0x01b8d367, 0x0163bd4d, 0x028a3da9, 0x0297e796, 0x01fd3940, 0x010c6902, 0x0084ca9c, 0x005adc8f, 0x001a82c0, 0x003b4ac7}}}, + {X: Field{[10]uint32{0x0134ab83, 0x035d34a0, 0x03397721, 0x026bdd90, 0x00741b3f, 0x0259961a, 0x011770d8, 0x02df68af, 0x007d2de0, 0x002159cb}}, Y: Field{[10]uint32{0x010313a6, 0x00c253de, 0x00f44c8e, 0x03f314a6, 0x01e77f17, 0x0298b0b9, 0x034049bf, 0x02cbad8d, 0x039b5b43, 0x001f1206}}}, + }, + { + {X: Field{[10]uint32{0x0134ab83, 0x035d34a0, 0x03397721, 0x026bdd90, 0x00741b3f, 0x0259961a, 0x011770d8, 0x02df68af, 0x007d2de0, 0x002159cb}}, Y: Field{[10]uint32{0x010313a6, 0x00c253de, 0x00f44c8e, 0x03f314a6, 0x01e77f17, 0x0298b0b9, 0x034049bf, 0x02cbad8d, 0x039b5b43, 0x001f1206}}}, + {X: Field{[10]uint32{0x0317fc25, 0x02e42f07, 0x02d96998, 0x011b7cb9, 0x033b89ea, 0x01722987, 0x00186121, 0x027b00db, 0x036b740f, 0x0014d333}}, Y: Field{[10]uint32{0x03e86e76, 0x031fdbb3, 0x028ddd71, 0x01deff74, 0x010ae3d2, 0x00b550d5, 0x02ae3dd3, 0x00b76d18, 0x00b09c8b, 0x00355c57}}}, + {X: Field{[10]uint32{0x03ba9000, 0x001c8ea0, 0x028b6fdf, 0x0271a097, 0x01c4872f, 0x0210050f, 0x00876075, 0x036305a1, 0x00f9fff1, 0x002b0e1d}}, Y: Field{[10]uint32{0x0310cf0a, 0x00f1f65b, 0x029fa4da, 0x0035fd9b, 0x03085e35, 0x01045fe4, 0x022dde89, 0x0301a6e1, 0x012308a1, 0x002a997a}}}, + {X: Field{[10]uint32{0x00bee8b6, 0x01c248fa, 0x008d2c71, 0x011fb3ef, 0x0179020d, 0x023e2abb, 0x01e14201, 0x02dfcc20, 0x035cee87, 0x002a4747}}, Y: Field{[10]uint32{0x010644c1, 0x0345aa90, 0x03225003, 0x027d8a32, 0x02f80056, 0x0376b4ec, 0x03189c8d, 0x023b8569, 0x024ee2df, 0x001d228c}}}, + {X: Field{[10]uint32{0x0106dbd4, 0x001bd9bb, 0x00d081a6, 0x0215e288, 0x01ec0e3f, 0x0268f9ca, 0x0114075e, 0x01c04e6b, 0x00e7aa68, 0x0015c357}}, Y: Field{[10]uint32{0x011ed495, 0x016fb3af, 0x00bed5a6, 0x01b71918, 0x03b683a3, 0x007406ee, 0x0366e671, 0x000bd816, 0x0349420e, 0x0029ab94}}}, + {X: Field{[10]uint32{0x03ba402e, 0x0358c2c5, 0x02989ae5, 0x0170b410, 0x03c3b81a, 0x021238f0, 0x03ead0c4, 0x0280a962, 0x035cd18f, 0x0023a246}}, Y: Field{[10]uint32{0x00fad9e0, 0x02d89e71, 0x027ee8e1, 0x0090855e, 0x02af650c, 0x013ca8c1, 0x038d0e40, 0x0319a02c, 0x020e6a9e, 0x003974c3}}}, + {X: Field{[10]uint32{0x012d230e, 0x0307e482, 0x03928434, 0x02834a4c, 0x01daee32, 0x000d9bbd, 0x03c229ee, 0x022edbe1, 0x00702826, 0x001d6d7e}}, Y: Field{[10]uint32{0x011570b8, 0x032f7ef5, 0x038fb037, 0x02c01447, 0x020267a4, 0x01377ea3, 0x01787455, 0x02148d8f, 0x0221e3a7, 0x00149f33}}}, + {X: Field{[10]uint32{0x0184cf74, 0x02870956, 0x01f10aa1, 0x0116fbd8, 0x000735ae, 0x00b50e0f, 0x02214dde, 0x0238d706, 0x0023d90c, 0x00305723}}, Y: Field{[10]uint32{0x01ccb000, 0x0123360e, 0x015a2c4a, 0x00b542c0, 0x0247bf77, 0x0097f5ee, 0x01c6f45e, 0x0088d723, 0x00d82852, 0x000aea55}}}, + {X: Field{[10]uint32{0x034fcc0e, 0x01afdab0, 0x0084c47b, 0x0290af8e, 0x00927f10, 0x01f49672, 0x025b80e2, 0x037b0ac2, 0x02fae1ed, 0x00113f23}}, Y: Field{[10]uint32{0x019c420a, 0x03c0c79c, 0x0089d9cf, 0x0292f341, 0x03720e94, 0x020cf4f5, 0x01267e78, 0x004d9f92, 0x0294ba9b, 0x0034b1f7}}}, + {X: Field{[10]uint32{0x0142dea9, 0x004fc3a2, 0x03130584, 0x0232e2df, 0x02ab35a9, 0x0182a1ff, 0x006ad8ba, 0x0176d9e5, 0x02133428, 0x000559a1}}, Y: Field{[10]uint32{0x027be3df, 0x0151bc0d, 0x02dcbf92, 0x01a22c8f, 0x02de4828, 0x02c83f48, 0x02894eff, 0x03c14413, 0x03aa0e82, 0x0013cd65}}}, + {X: Field{[10]uint32{0x03b69991, 0x01207f22, 0x03175d5a, 0x028b0cc1, 0x01fffb3f, 0x0380bd4d, 0x02a16620, 0x01ef1a19, 0x0247bace, 0x0037a8ae}}, Y: Field{[10]uint32{0x016fe2df, 0x01d0aa7c, 0x019bc706, 0x02cd887b, 0x03229dcd, 0x013dee79, 0x01cbfec8, 0x00a392b1, 0x03d6d90c, 0x002b8a2f}}}, + {X: Field{[10]uint32{0x036bcfe8, 0x03b58794, 0x03bb3e61, 0x027b5a6d, 0x020e0c17, 0x001acc66, 0x02ca8f23, 0x02666d1c, 0x00bc1cc6, 0x0004ccbe}}, Y: Field{[10]uint32{0x02e78402, 0x00374b36, 0x0021451b, 0x009356a3, 0x01ba93b4, 0x017701a0, 0x0367c453, 0x00bb5c4f, 0x03ee2960, 0x0030e771}}}, + {X: Field{[10]uint32{0x014fc9cc, 0x01034094, 0x021658c2, 0x02f0a691, 0x0226d00a, 0x012e2a0d, 0x001cf6cc, 0x01a35bbf, 0x0098a6e1, 0x000e5a3f}}, Y: Field{[10]uint32{0x03ad37dd, 0x00e52257, 0x03334019, 0x01dbfe23, 0x011a1465, 0x02ab4cb2, 0x037982d1, 0x0164a048, 0x03d0db4b, 0x001e272e}}}, + {X: Field{[10]uint32{0x00cc84bf, 0x00ebcf85, 0x01f27c02, 0x01b7bae8, 0x0380bf1d, 0x030a9254, 0x00e37159, 0x00205a0c, 0x01364e54, 0x002d775a}}, Y: Field{[10]uint32{0x0374750c, 0x01485f38, 0x01a90c78, 0x037b75ac, 0x01353110, 0x01635051, 0x0118733c, 0x032dadaf, 0x005853c7, 0x0012cdbb}}}, + {X: Field{[10]uint32{0x020c85f1, 0x0308646b, 0x03a250ae, 0x014d80e8, 0x01a6a52e, 0x015e5175, 0x0325df09, 0x01a8a49a, 0x010698e0, 0x001a25a4}}, Y: Field{[10]uint32{0x01c1de21, 0x01208ccb, 0x003922c7, 0x02768354, 0x011f40c1, 0x021175cb, 0x03305c1d, 0x025e495b, 0x03b4b38c, 0x002bbf4f}}}, + {X: Field{[10]uint32{0x00c82a0a, 0x02566bd8, 0x00832ffd, 0x03183d9a, 0x010f9226, 0x006504ec, 0x006c9f19, 0x022291ac, 0x03809b19, 0x0002522f}}, Y: Field{[10]uint32{0x00c8e589, 0x02dfe236, 0x012bed4c, 0x002325f3, 0x006d4dff, 0x0070d063, 0x02b74c5d, 0x01991b71, 0x02856dcb, 0x0014e958}}}, + }, + { + {X: Field{[10]uint32{0x00c82a0a, 0x02566bd8, 0x00832ffd, 0x03183d9a, 0x010f9226, 0x006504ec, 0x006c9f19, 0x022291ac, 0x03809b19, 0x0002522f}}, Y: Field{[10]uint32{0x00c8e589, 0x02dfe236, 0x012bed4c, 0x002325f3, 0x006d4dff, 0x0070d063, 0x02b74c5d, 0x01991b71, 0x02856dcb, 0x0014e958}}}, + {X: Field{[10]uint32{0x028b000a, 0x03ac115f, 0x01e51396, 0x00cc7a09, 0x02ef16c1, 0x00a47c2d, 0x01ce4c66, 0x0164d835, 0x007f372e, 0x0009a54b}}, Y: Field{[10]uint32{0x01ef705a, 0x035007c1, 0x027318c3, 0x023d94f5, 0x02debe39, 0x035a2108, 0x03c893d2, 0x029a218a, 0x024c5800, 0x003d44fa}}}, + {X: Field{[10]uint32{0x00c8ac7f, 0x00bf97ee, 0x02a52728, 0x03b9978a, 0x01641242, 0x0015be12, 0x003396d2, 0x00aef2d7, 0x02fbe382, 0x0026516c}}, Y: Field{[10]uint32{0x01aea3b0, 0x0250e85a, 0x00dfa96d, 0x008fbb6b, 0x01282f7a, 0x02ca3bfd, 0x03db44ff, 0x00a0b581, 0x01824b0f, 0x000fbbfb}}}, + {X: Field{[10]uint32{0x02134f96, 0x0096225d, 0x030e9f10, 0x0195cb5a, 0x03f52119, 0x00c7fc90, 0x032be8b1, 0x0316f6fb, 0x00e6fc23, 0x00318b96}}, Y: Field{[10]uint32{0x014cf97e, 0x01dfb534, 0x01c3e822, 0x00d58dcc, 0x01bcfb85, 0x00c507f1, 0x03d67675, 0x02859e30, 0x027d45b1, 0x0010e5e0}}}, + {X: Field{[10]uint32{0x029e353a, 0x035e78e5, 0x021f6ed1, 0x00214aef, 0x0210a044, 0x0041f57f, 0x01f82227, 0x01c3988d, 0x006b2058, 0x000a8c53}}, Y: Field{[10]uint32{0x01746067, 0x0249b879, 0x018bfc25, 0x02ab6c99, 0x00138a54, 0x02ea86e8, 0x0063e476, 0x009eb069, 0x000bf35a, 0x0005692b}}}, + {X: Field{[10]uint32{0x02fccf64, 0x02926624, 0x0318e3ba, 0x03789604, 0x033bd278, 0x01f2576f, 0x028772c7, 0x018df6c1, 0x015c0eb4, 0x00031f44}}, Y: Field{[10]uint32{0x0078fee0, 0x01b4ecca, 0x0268d53f, 0x020e566b, 0x0148785d, 0x01e2bc51, 0x02424b84, 0x02c111ea, 0x007b1925, 0x0012aa1d}}}, + {X: Field{[10]uint32{0x01b84966, 0x00bd27ba, 0x03ff989e, 0x001b75fc, 0x011b4f41, 0x029adb24, 0x00b6faf3, 0x03f0b526, 0x0100b703, 0x00165669}}, Y: Field{[10]uint32{0x03473a6a, 0x0198c861, 0x0242640a, 0x030233f8, 0x009100dc, 0x03720a9c, 0x00312820, 0x02a25fe5, 0x02741f5c, 0x0000dc39}}}, + {X: Field{[10]uint32{0x03188cbb, 0x01be2002, 0x01e97368, 0x0080201f, 0x00b81c03, 0x005988ac, 0x003329a7, 0x0171d05a, 0x00520eec, 0x00041d18}}, Y: Field{[10]uint32{0x03272124, 0x01ed8d87, 0x03da601d, 0x01d23738, 0x01242e0d, 0x033d5284, 0x0326b9b9, 0x016630d4, 0x00c09a21, 0x002af975}}}, + {X: Field{[10]uint32{0x03c6b173, 0x0326e48a, 0x03feb3b0, 0x00f1fbb4, 0x017dd862, 0x0016d7e7, 0x0160c463, 0x00bfa384, 0x01393722, 0x0027bacc}}, Y: Field{[10]uint32{0x0323a71d, 0x02588365, 0x00c4b953, 0x02fb439c, 0x030ea71a, 0x02ee86b8, 0x02aabfdb, 0x03563654, 0x01e0110e, 0x0038487c}}}, + {X: Field{[10]uint32{0x02d2cf25, 0x03a6f24a, 0x03a94457, 0x0136f249, 0x037ba49b, 0x009ecf0b, 0x011e80ba, 0x02a72c63, 0x029bf3da, 0x00148366}}, Y: Field{[10]uint32{0x0285181f, 0x02db20e8, 0x030c7610, 0x019446fd, 0x022bab0b, 0x012ea5c1, 0x030ae71b, 0x007ab923, 0x009b1027, 0x003949bd}}}, + {X: Field{[10]uint32{0x02c805f3, 0x00910fdf, 0x01591577, 0x01d42766, 0x007de40f, 0x001ba5e2, 0x02bb2388, 0x0063d45b, 0x03e4c7f7, 0x000e7313}}, Y: Field{[10]uint32{0x023c48d3, 0x0068304e, 0x012e4d19, 0x00dcff24, 0x01bbb957, 0x03d0b79f, 0x01e6693c, 0x03e3cc54, 0x032c5a46, 0x003b2c51}}}, + {X: Field{[10]uint32{0x008d5622, 0x02baeb15, 0x03d2e8b5, 0x03bde946, 0x03e1db07, 0x02fcce06, 0x01586a81, 0x0254d68e, 0x011e6168, 0x0017f1b0}}, Y: Field{[10]uint32{0x01ac1683, 0x03610040, 0x03f300d0, 0x00239b1e, 0x030e05ad, 0x000d9eb2, 0x019ba2db, 0x03676e70, 0x02549aa1, 0x00043a03}}}, + {X: Field{[10]uint32{0x0222580e, 0x018bed73, 0x0388793d, 0x025b4b5b, 0x02c71328, 0x0136f534, 0x012ffde6, 0x0371a5a2, 0x007466ec, 0x003e5320}}, Y: Field{[10]uint32{0x0127db82, 0x0148fd9c, 0x01d4e81e, 0x0114c8dc, 0x029887ec, 0x02d6a07d, 0x014bff6a, 0x00896a46, 0x03dc6785, 0x0017a71f}}}, + {X: Field{[10]uint32{0x00a3d8a5, 0x02ad81f0, 0x02f99123, 0x01a115cf, 0x0126d77d, 0x00fb426b, 0x031274a3, 0x035ba4d0, 0x03e5d872, 0x0016a90c}}, Y: Field{[10]uint32{0x013c2ba7, 0x03dfbddb, 0x02ef4fb5, 0x03d4b675, 0x0116475c, 0x01ca2958, 0x02394aec, 0x039e6866, 0x01fc682a, 0x003773a8}}}, + {X: Field{[10]uint32{0x00c4f21f, 0x0102eb44, 0x01a7a6be, 0x0165340f, 0x025024a9, 0x02c66674, 0x0002068d, 0x03458bf3, 0x006c6ad5, 0x0023332e}}, Y: Field{[10]uint32{0x029dfea0, 0x0049ba9c, 0x03e28f7f, 0x02b20992, 0x014b92dc, 0x0321d629, 0x01bef549, 0x00710da6, 0x02586275, 0x0015fe25}}}, + {X: Field{[10]uint32{0x038fd8e8, 0x0336067c, 0x0352acce, 0x0137f1a5, 0x00f1b0e4, 0x000a1cea, 0x0067ce0f, 0x00070d3c, 0x027f4618, 0x00189833}}, Y: Field{[10]uint32{0x02b4ae17, 0x0213a56c, 0x00198c1a, 0x008e0147, 0x03ecd292, 0x01da87bd, 0x03090497, 0x02d5c69f, 0x002b6fa5, 0x002f0b6a}}}, + }, + { + {X: Field{[10]uint32{0x038fd8e8, 0x0336067c, 0x0352acce, 0x0137f1a5, 0x00f1b0e4, 0x000a1cea, 0x0067ce0f, 0x00070d3c, 0x027f4618, 0x00189833}}, Y: Field{[10]uint32{0x02b4ae17, 0x0213a56c, 0x00198c1a, 0x008e0147, 0x03ecd292, 0x01da87bd, 0x03090497, 0x02d5c69f, 0x002b6fa5, 0x002f0b6a}}}, + {X: Field{[10]uint32{0x01477c2d, 0x019d1bcf, 0x0127e076, 0x01465aab, 0x0316e65c, 0x0213c684, 0x008409be, 0x0069cf7b, 0x024748ad, 0x00217636}}, Y: Field{[10]uint32{0x03d1dd70, 0x02605bf1, 0x015a6207, 0x0080cf13, 0x0094b0a0, 0x007bf1ef, 0x02b53653, 0x019a4161, 0x0353665c, 0x00162522}}}, + {X: Field{[10]uint32{0x01136602, 0x02e91950, 0x03a5bbb0, 0x01203678, 0x0138c46f, 0x008ccecf, 0x0058937f, 0x037f0cf4, 0x03280482, 0x0021f449}}, Y: Field{[10]uint32{0x00af6aac, 0x020f1076, 0x03f7c4f6, 0x01d1bf4e, 0x0387a884, 0x03d9dd14, 0x02a276cf, 0x000f7a49, 0x00870a5a, 0x001c7389}}}, + {X: Field{[10]uint32{0x000b80d9, 0x000c4b5b, 0x007f0485, 0x00403f71, 0x024d1e7e, 0x030fb8fb, 0x00892e9c, 0x012e5a30, 0x0166e7ec, 0x00238a9c}}, Y: Field{[10]uint32{0x02b29f50, 0x0187cab5, 0x0349a49c, 0x02235c18, 0x005297b6, 0x005aa752, 0x02dd29b7, 0x02f964b3, 0x03a9ae2c, 0x003ab6c2}}}, + {X: Field{[10]uint32{0x00c5a916, 0x00175cd2, 0x010f25b2, 0x00354d58, 0x013f5c44, 0x02ad52a8, 0x00acc63d, 0x03a5d1ac, 0x013fe261, 0x003f575f}}, Y: Field{[10]uint32{0x02db8bda, 0x02cdec1e, 0x02faab14, 0x0052f73d, 0x03e5d738, 0x0271ed4b, 0x0343ca67, 0x016c1f4a, 0x02d0eeb5, 0x0003760f}}}, + {X: Field{[10]uint32{0x00e74459, 0x028d722c, 0x036dd674, 0x018e1f76, 0x01fef237, 0x004f22a4, 0x00f46587, 0x015a0164, 0x001d4ec0, 0x000a37de}}, Y: Field{[10]uint32{0x035e656f, 0x001f303b, 0x02f0a8de, 0x029406b9, 0x00a3795b, 0x003c89e5, 0x00db1789, 0x003c5f2c, 0x02a66a13, 0x003c5267}}}, + {X: Field{[10]uint32{0x01f7529c, 0x0264258d, 0x011dd45d, 0x0262d6f5, 0x0138765b, 0x034d10e0, 0x02453c32, 0x009848ae, 0x0010981c, 0x00378375}}, Y: Field{[10]uint32{0x00cd88fe, 0x008300b9, 0x0374063c, 0x031a226d, 0x00178924, 0x035e8d5c, 0x02109822, 0x00517e6c, 0x029d10a2, 0x0035c29b}}}, + {X: Field{[10]uint32{0x004561be, 0x007e8f4b, 0x0190f992, 0x03a04d67, 0x00ee4ab2, 0x01e3e254, 0x00366ecd, 0x03d63b72, 0x035842bf, 0x001da6f1}}, Y: Field{[10]uint32{0x00d9685f, 0x0082ffec, 0x033add59, 0x01d9ede1, 0x0341a177, 0x01cfd751, 0x01ce4cef, 0x020eeb23, 0x03362fe7, 0x0012fe05}}}, + {X: Field{[10]uint32{0x00f76d11, 0x00bd234e, 0x015573c8, 0x003efe14, 0x02151100, 0x0270a4a8, 0x005befc3, 0x03d139a7, 0x008ada4c, 0x002c9b08}}, Y: Field{[10]uint32{0x03b7356b, 0x03002c78, 0x0224bdc1, 0x01967609, 0x03050030, 0x0033590c, 0x004e87d9, 0x034cf3c3, 0x00820949, 0x0007c73e}}}, + {X: Field{[10]uint32{0x008e129e, 0x00e76825, 0x01b10312, 0x02cb00a2, 0x032bd1df, 0x0394f0b7, 0x00f8de28, 0x0133debc, 0x00efb7b2, 0x0019b8ff}}, Y: Field{[10]uint32{0x02e7bbea, 0x02f0d80b, 0x03b5172b, 0x027b4694, 0x035fd7d9, 0x0337e032, 0x00b5bf34, 0x0303d966, 0x034fb770, 0x00082fe2}}}, + {X: Field{[10]uint32{0x029e22db, 0x038ec199, 0x00933f94, 0x03d67e72, 0x02ac993f, 0x00630a53, 0x023bd290, 0x03d48e9f, 0x00b8fc7f, 0x003f3ac5}}, Y: Field{[10]uint32{0x002260a1, 0x01cb6c97, 0x03e4cbf5, 0x01e4e93a, 0x00ad550e, 0x0097c249, 0x018a5a75, 0x02e347f3, 0x033a40d6, 0x00192a9a}}}, + {X: Field{[10]uint32{0x01c71143, 0x0367714a, 0x017ea346, 0x02b113c1, 0x012e7ead, 0x0008fe8d, 0x027ccf90, 0x03a840f2, 0x039622bb, 0x0003ad17}}, Y: Field{[10]uint32{0x0370b136, 0x02336882, 0x01bf4c8a, 0x03a9a8ac, 0x03d65969, 0x00078a15, 0x03601f59, 0x02f43d5c, 0x03585838, 0x0014b10b}}}, + {X: Field{[10]uint32{0x038a2755, 0x02105e68, 0x005506f0, 0x01c59527, 0x0253721a, 0x02d41fea, 0x00175774, 0x0172b157, 0x02623ccd, 0x0013a426}}, Y: Field{[10]uint32{0x03cca3de, 0x02927d88, 0x0000caf7, 0x025348a6, 0x03b6cd53, 0x001d5676, 0x03246dd5, 0x00d6bb3b, 0x02878cce, 0x002b95b6}}}, + {X: Field{[10]uint32{0x0007d7c8, 0x0345234f, 0x0232f00c, 0x01d7e0a7, 0x01e0f196, 0x03cf5226, 0x0070411b, 0x02dcf5a1, 0x008ab230, 0x000f3e48}}, Y: Field{[10]uint32{0x024cee08, 0x02a476b6, 0x0059c0c4, 0x032356e3, 0x009d4684, 0x017059c8, 0x02ce6ca6, 0x02197547, 0x024c15af, 0x003780f1}}}, + {X: Field{[10]uint32{0x003ba64d, 0x01625666, 0x015a3a82, 0x01de2316, 0x02bde60f, 0x02e39038, 0x030a145e, 0x01300efe, 0x015c22e0, 0x0030d9d1}}, Y: Field{[10]uint32{0x022181fd, 0x03323e5a, 0x00f14614, 0x02b285de, 0x0342626a, 0x01365931, 0x00e0e6e8, 0x0180cc20, 0x02d069cb, 0x000e9482}}}, + {X: Field{[10]uint32{0x0037fa2d, 0x00f32348, 0x01c43295, 0x03d5d6ff, 0x03043ec8, 0x02efd040, 0x00348414, 0x036350f6, 0x01e0afc1, 0x003940df}}, Y: Field{[10]uint32{0x01755bda, 0x01772107, 0x01f10e0e, 0x000fb120, 0x01bd5f5b, 0x02e642f7, 0x0398d09f, 0x034ed7e7, 0x034baa94, 0x00115c54}}}, + }, + { + {X: Field{[10]uint32{0x0037fa2d, 0x00f32348, 0x01c43295, 0x03d5d6ff, 0x03043ec8, 0x02efd040, 0x00348414, 0x036350f6, 0x01e0afc1, 0x003940df}}, Y: Field{[10]uint32{0x01755bda, 0x01772107, 0x01f10e0e, 0x000fb120, 0x01bd5f5b, 0x02e642f7, 0x0398d09f, 0x034ed7e7, 0x034baa94, 0x00115c54}}}, + {X: Field{[10]uint32{0x023d34ef, 0x00f231e7, 0x02ddb8c6, 0x01f1e4a8, 0x02c3ab21, 0x00b586cf, 0x00b6cf7d, 0x015253d0, 0x01a467fd, 0x00297803}}, Y: Field{[10]uint32{0x037adb4c, 0x0171738b, 0x000acb85, 0x03f9e424, 0x025b60dc, 0x026fd0f4, 0x01726fe9, 0x02155508, 0x01f5e560, 0x000263f9}}}, + {X: Field{[10]uint32{0x037e7775, 0x02a29b85, 0x015f6388, 0x024e23b6, 0x02b5e155, 0x03d4a46b, 0x00543bac, 0x00cf3b96, 0x023aff96, 0x0027625a}}, Y: Field{[10]uint32{0x02056691, 0x03db4eae, 0x0253befc, 0x01fb8a64, 0x01e899cd, 0x0094249f, 0x02964ed7, 0x02fc2e53, 0x01e43f49, 0x0037646a}}}, + {X: Field{[10]uint32{0x03b91252, 0x00dc5835, 0x0172ae67, 0x00b911dd, 0x006d4afd, 0x0326fef1, 0x019f4bb1, 0x00ad00d4, 0x01f5ef3a, 0x002a6505}}, Y: Field{[10]uint32{0x03edc264, 0x00ddeb12, 0x00ddd73a, 0x02b5643d, 0x02899a16, 0x013dbdad, 0x022f10f2, 0x03e12ee7, 0x024cae81, 0x0020b439}}}, + {X: Field{[10]uint32{0x002a3293, 0x0381378f, 0x0076c5fd, 0x01bba40d, 0x015688b8, 0x00a0bd33, 0x02b0a573, 0x00de4b43, 0x00ee7116, 0x0020c9ee}}, Y: Field{[10]uint32{0x020df9bd, 0x02153863, 0x02a416bc, 0x02d3b8c9, 0x0096afda, 0x009e5c21, 0x03b3ea66, 0x02a63862, 0x02266ee0, 0x0001265f}}}, + {X: Field{[10]uint32{0x00904ed3, 0x015fc7a3, 0x01784159, 0x01624161, 0x00df2a74, 0x0049c8e1, 0x03f8e643, 0x00637fe5, 0x002d2db8, 0x000033e3}}, Y: Field{[10]uint32{0x016f77c1, 0x02658ede, 0x02827b00, 0x01e74cbd, 0x0122991d, 0x0146f604, 0x01d5c1bd, 0x03510467, 0x000ea781, 0x002aab40}}}, + {X: Field{[10]uint32{0x0162c042, 0x006c9b11, 0x03b1a242, 0x008d2e37, 0x02092d23, 0x03e6a3b5, 0x016661d8, 0x02c5a25f, 0x02aa2a6d, 0x0016b90a}}, Y: Field{[10]uint32{0x0379269c, 0x017337e3, 0x018dbf90, 0x025441f3, 0x0294e0db, 0x000e2752, 0x01c1ddc6, 0x00147aad, 0x027c05ff, 0x0026764e}}}, + {X: Field{[10]uint32{0x02540f17, 0x01196d9a, 0x0132bd8c, 0x01c17c30, 0x004c750d, 0x023e4d7e, 0x00edde09, 0x0347f1f6, 0x029f9e4f, 0x002d5bd3}}, Y: Field{[10]uint32{0x0200102d, 0x00bf2b80, 0x0285446a, 0x018f2f32, 0x0121d429, 0x00160b47, 0x01c11adf, 0x02a15b4f, 0x013429cc, 0x000cba39}}}, + {X: Field{[10]uint32{0x0285af61, 0x02204a17, 0x02766b34, 0x008b752b, 0x034e8ed7, 0x01b086c3, 0x02eb68ff, 0x0323ad66, 0x02e426a1, 0x0024b08e}}, Y: Field{[10]uint32{0x036a2b09, 0x008d9a70, 0x02fed4e7, 0x020ad8a1, 0x012d23ad, 0x01ce355e, 0x03217d5c, 0x006ed027, 0x008f0155, 0x0010533e}}}, + {X: Field{[10]uint32{0x01e5d1b3, 0x02a92096, 0x02a3e280, 0x0227f5b2, 0x0048c9b7, 0x003f36cc, 0x027e4c6f, 0x0120ef47, 0x0151caf6, 0x000eae94}}, Y: Field{[10]uint32{0x02f30087, 0x02d9e350, 0x02ee6a85, 0x01674b79, 0x01e18463, 0x01f5cb32, 0x024ec804, 0x01474241, 0x0223bff2, 0x0023079c}}}, + {X: Field{[10]uint32{0x03b5eba8, 0x02bc6cb1, 0x02a36ce2, 0x031fe463, 0x022dabed, 0x02be37d0, 0x010f4176, 0x037c4223, 0x008c76af, 0x003fb958}}, Y: Field{[10]uint32{0x010b9b5c, 0x00574da3, 0x014793f5, 0x010afe41, 0x02e380ff, 0x00a1f053, 0x01402f99, 0x0162bec4, 0x019134fe, 0x000e01d6}}}, + {X: Field{[10]uint32{0x00f8cffd, 0x02d66223, 0x01ae61b2, 0x0056de91, 0x01432e6b, 0x01e6f762, 0x01afb88f, 0x02306f51, 0x037f1fe7, 0x00002026}}, Y: Field{[10]uint32{0x01b5f32f, 0x03516863, 0x01f93d91, 0x03eb64ae, 0x0112a340, 0x0394bf72, 0x008c836d, 0x02a18c0a, 0x0022bf41, 0x003e05f8}}}, + {X: Field{[10]uint32{0x0063caf4, 0x00ee92cf, 0x03d5281e, 0x02aca3d4, 0x00a28ff3, 0x018a9abf, 0x02113b4c, 0x019f9882, 0x00eb92e6, 0x0010b951}}, Y: Field{[10]uint32{0x029c29c8, 0x02bb0265, 0x005f1187, 0x01edafbf, 0x0073a50e, 0x01d0579e, 0x01f220c1, 0x0319c7dc, 0x00e0f91c, 0x0027fe15}}}, + {X: Field{[10]uint32{0x03ed9ef9, 0x006417bd, 0x0063d6c6, 0x02803bc3, 0x02ad2ba5, 0x01ff064a, 0x01f78494, 0x03529d07, 0x02ddd352, 0x000cb779}}, Y: Field{[10]uint32{0x031fb871, 0x02e11a00, 0x034b21ab, 0x00de7263, 0x0059ec1b, 0x0356307d, 0x036a4f94, 0x019ef388, 0x03dc3420, 0x0010745e}}}, + {X: Field{[10]uint32{0x020f09a1, 0x00af6617, 0x0328380a, 0x03c6e500, 0x02f0a109, 0x011c03bf, 0x0196ed2a, 0x00b38e0e, 0x03b66553, 0x001ebb60}}, Y: Field{[10]uint32{0x01857d73, 0x036337a1, 0x00a54045, 0x00c03cfd, 0x02d88b2f, 0x0040cb63, 0x01afd0ab, 0x03bdf1f7, 0x005f9a31, 0x003d6e15}}}, + {X: Field{[10]uint32{0x00fce725, 0x019a82b9, 0x005b7258, 0x03471a9b, 0x00e7e8db, 0x03c5dc6d, 0x02a905e8, 0x001eb7d7, 0x02b0f4a2, 0x003818dc}}, Y: Field{[10]uint32{0x02ee31dd, 0x000d3e53, 0x00870b27, 0x01de1c41, 0x00d7484a, 0x03569223, 0x0227bb2a, 0x0233f84a, 0x0174bce1, 0x001ea422}}}, + }, + { + {X: Field{[10]uint32{0x00fce725, 0x019a82b9, 0x005b7258, 0x03471a9b, 0x00e7e8db, 0x03c5dc6d, 0x02a905e8, 0x001eb7d7, 0x02b0f4a2, 0x003818dc}}, Y: Field{[10]uint32{0x02ee31dd, 0x000d3e53, 0x00870b27, 0x01de1c41, 0x00d7484a, 0x03569223, 0x0227bb2a, 0x0233f84a, 0x0174bce1, 0x001ea422}}}, + {X: Field{[10]uint32{0x02d2ff3e, 0x026bb90f, 0x02d3cfe0, 0x036d3b1b, 0x00045ebf, 0x03eb4fcf, 0x00dbd304, 0x01ae3e72, 0x034ca204, 0x0003ab04}}, Y: Field{[10]uint32{0x01210988, 0x0081881f, 0x01376e17, 0x025adfc8, 0x01ac19f6, 0x00ac45e6, 0x03f103bf, 0x026d0916, 0x01be7935, 0x001258c3}}}, + {X: Field{[10]uint32{0x02328d6a, 0x02a06236, 0x0018bdba, 0x00ea56b7, 0x03b24d77, 0x016c23e9, 0x00689918, 0x0138028d, 0x005ba623, 0x003198f0}}, Y: Field{[10]uint32{0x02c9b8c0, 0x002edaaf, 0x039cc23b, 0x03a944af, 0x03dd8551, 0x01d5c4c5, 0x01afdcf2, 0x0070e34e, 0x018d5f72, 0x000ccc7a}}}, + {X: Field{[10]uint32{0x03bfa4dc, 0x01c1b937, 0x01b17476, 0x01e01321, 0x03f5948a, 0x02b6ed07, 0x012119d7, 0x03a8660e, 0x0190731f, 0x00359e21}}, Y: Field{[10]uint32{0x013b5406, 0x02f35aef, 0x0207cca7, 0x03137726, 0x026206f1, 0x008704ea, 0x00ef5c6d, 0x018f1250, 0x00c89d50, 0x000a3aaa}}}, + {X: Field{[10]uint32{0x0196de2f, 0x0072120e, 0x01114bc9, 0x00bb82c9, 0x0177cedf, 0x0283f93a, 0x02b30dee, 0x01a91673, 0x0282dfb8, 0x0034ff09}}, Y: Field{[10]uint32{0x00526f8c, 0x02489075, 0x03f168c4, 0x02637dea, 0x024e59b4, 0x013de076, 0x00b4754d, 0x002863da, 0x0399a45f, 0x00313c37}}}, + {X: Field{[10]uint32{0x02143fb0, 0x00d69958, 0x005dd6dc, 0x020c2f08, 0x03a9fb92, 0x011e6565, 0x03aff339, 0x020de433, 0x001c33af, 0x000a4ab7}}, Y: Field{[10]uint32{0x036ad01c, 0x036d8f38, 0x01d4d8a9, 0x00b5cd7a, 0x02d83e66, 0x03313b3d, 0x031968a0, 0x02d91fcf, 0x021bcee0, 0x00281c99}}}, + {X: Field{[10]uint32{0x03e697ea, 0x03123440, 0x003e85c6, 0x03ee617e, 0x019ce678, 0x028feaf4, 0x00a1fec9, 0x03008df7, 0x0343feb2, 0x00305e92}}, Y: Field{[10]uint32{0x02dc6c87, 0x00ee1f77, 0x002ab0ee, 0x02d5fe7c, 0x0296e1a1, 0x025807eb, 0x02178f71, 0x0165532b, 0x002d55ab, 0x000e4d57}}}, + {X: Field{[10]uint32{0x008ff9b3, 0x017ed039, 0x0301a727, 0x00815666, 0x03c7b1a6, 0x00adc752, 0x03f210f1, 0x01025d2a, 0x00cbd9a0, 0x001a4c3f}}, Y: Field{[10]uint32{0x02e96a4e, 0x036ad7e3, 0x0051acfd, 0x004f92b3, 0x00090f9b, 0x01d7db5e, 0x030fcdb8, 0x0007ab68, 0x0294b947, 0x001fc0ab}}}, + {X: Field{[10]uint32{0x0163da1b, 0x00b0c08c, 0x0231182d, 0x03983e4e, 0x029a0ede, 0x03f047f7, 0x009349d7, 0x0242d1a3, 0x037ca267, 0x0023d862}}, Y: Field{[10]uint32{0x03bdd76e, 0x00c48440, 0x036e7c7f, 0x01a8c926, 0x026450c6, 0x01eb1690, 0x03bda74d, 0x03adbad7, 0x0325f08b, 0x001e08cf}}}, + {X: Field{[10]uint32{0x010cec10, 0x02c26d53, 0x016b084f, 0x03f2ab7b, 0x02ba25f0, 0x00b4f39c, 0x02b0e61b, 0x0079a6ba, 0x029ca332, 0x0013654a}}, Y: Field{[10]uint32{0x03d06932, 0x00dac4ee, 0x014da8ee, 0x037f213d, 0x02ba4aa2, 0x01ed72d3, 0x002aec78, 0x009e7915, 0x004a66dd, 0x002c5e06}}}, + {X: Field{[10]uint32{0x02c8ae90, 0x01643f83, 0x005deee8, 0x024ba2ef, 0x00cfb26b, 0x0320fc6e, 0x02d5b8da, 0x0079bae1, 0x00f15b7a, 0x0025e630}}, Y: Field{[10]uint32{0x012844d3, 0x02b0bab9, 0x008e27a9, 0x016f40c6, 0x02e2e496, 0x03e71cef, 0x02ec9494, 0x00bb4f74, 0x02aa75a4, 0x002e9038}}}, + {X: Field{[10]uint32{0x00b90e0b, 0x03079b0c, 0x00a4589e, 0x00e7ec25, 0x03d6ff1d, 0x02719d6c, 0x01c804a5, 0x019f4ffb, 0x03f9ad54, 0x00290d41}}, Y: Field{[10]uint32{0x021fdc20, 0x0002e64e, 0x01b5a3f0, 0x00d94d66, 0x00dc2a20, 0x0102fa30, 0x02d07ccb, 0x035c6850, 0x01c94c3f, 0x001f23cb}}}, + {X: Field{[10]uint32{0x01d66b7f, 0x0065e3c4, 0x01c8105a, 0x0141461f, 0x017aa692, 0x0224a11d, 0x00f1b90b, 0x00b59d1f, 0x02e3fb5a, 0x003f7e9b}}, Y: Field{[10]uint32{0x00e5178b, 0x023e019e, 0x00de9daa, 0x03744f5e, 0x00d846f9, 0x00f68631, 0x000c1c9a, 0x02636e4f, 0x031e2249, 0x0013673c}}}, + {X: Field{[10]uint32{0x01c0d7ad, 0x01ad6196, 0x0093ab83, 0x036de8ad, 0x011ddb64, 0x01d2799c, 0x0211ca1a, 0x03eeebbf, 0x02cd4b7b, 0x001cac13}}, Y: Field{[10]uint32{0x0323cd97, 0x039bfd19, 0x034fb2ef, 0x01a0771b, 0x0196265d, 0x0364d340, 0x01d452d6, 0x028d633b, 0x03ea0e64, 0x001a196c}}}, + {X: Field{[10]uint32{0x0265bcf0, 0x01d5e124, 0x03d30b80, 0x01e10471, 0x0269ce2b, 0x0073c883, 0x01ea9a46, 0x02790eb7, 0x0238de22, 0x003f5633}}, Y: Field{[10]uint32{0x03996292, 0x039ea73a, 0x00d1df33, 0x03f8a3c7, 0x0387261b, 0x0121793e, 0x0382ab9a, 0x00856f54, 0x01e53763, 0x003ff829}}}, + {X: Field{[10]uint32{0x00559754, 0x035a4234, 0x0358540a, 0x03778a8f, 0x0204b10b, 0x03033808, 0x010bbf9d, 0x03514d63, 0x02715cd5, 0x00084f1e}}, Y: Field{[10]uint32{0x00b458f2, 0x00b09d4d, 0x03eeddff, 0x03d7cda9, 0x00bb4850, 0x0116e864, 0x013ad062, 0x018941c0, 0x010b5ae4, 0x0012db6b}}}, + }, + { + {X: Field{[10]uint32{0x00559754, 0x035a4234, 0x0358540a, 0x03778a8f, 0x0204b10b, 0x03033808, 0x010bbf9d, 0x03514d63, 0x02715cd5, 0x00084f1e}}, Y: Field{[10]uint32{0x00b458f2, 0x00b09d4d, 0x03eeddff, 0x03d7cda9, 0x00bb4850, 0x0116e864, 0x013ad062, 0x018941c0, 0x010b5ae4, 0x0012db6b}}}, + {X: Field{[10]uint32{0x02c87fac, 0x00e25783, 0x03cf0899, 0x01d188b9, 0x020d1ab9, 0x00c8d203, 0x02e9fed8, 0x0269fd9a, 0x008132b4, 0x00071795}}, Y: Field{[10]uint32{0x03c2d4ef, 0x035ecf57, 0x0324c555, 0x03ac9bf8, 0x03a3deac, 0x03530ab4, 0x03959fa1, 0x011a3cae, 0x020f837f, 0x0013ff3d}}}, + {X: Field{[10]uint32{0x0205dccc, 0x03600467, 0x0293e532, 0x03b53066, 0x02ae3fa3, 0x0254f45c, 0x006e096b, 0x0280c255, 0x02e1753d, 0x002e33bd}}, Y: Field{[10]uint32{0x006d5750, 0x012833f3, 0x02813301, 0x030da9ad, 0x01df757f, 0x0134af66, 0x00d4a74e, 0x026efda9, 0x0260a6cc, 0x000c0ae2}}}, + {X: Field{[10]uint32{0x00531dbc, 0x03f2e875, 0x00970e20, 0x0067fb57, 0x021f901c, 0x002ef1f3, 0x036e9421, 0x019a377b, 0x010602c5, 0x001189db}}, Y: Field{[10]uint32{0x0286b8e2, 0x01cc0265, 0x03c99af8, 0x03efff86, 0x01498bad, 0x01c37b66, 0x02922875, 0x01d6e128, 0x0324d44c, 0x000383df}}}, + {X: Field{[10]uint32{0x033bb31a, 0x037fb84d, 0x017b485b, 0x01ad7f6e, 0x01701f7b, 0x03aed7d2, 0x02a0bde2, 0x01ce1780, 0x03e779b4, 0x0000fecc}}, Y: Field{[10]uint32{0x01215c9e, 0x032f9a5f, 0x000d4e34, 0x01db11d9, 0x03c65a7c, 0x02eed5ca, 0x00c161aa, 0x03f8a078, 0x0152548e, 0x003cdab6}}}, + {X: Field{[10]uint32{0x006df50d, 0x03bb405a, 0x012bd0c4, 0x00a871be, 0x00cd5e79, 0x03020818, 0x03d87442, 0x007c0b5b, 0x0230935c, 0x000e95c5}}, Y: Field{[10]uint32{0x0059679b, 0x0162ca3a, 0x01a11d21, 0x007aede0, 0x01e0aaf8, 0x015c2837, 0x02f3ff2e, 0x03ccbd45, 0x0073b599, 0x0021784e}}}, + {X: Field{[10]uint32{0x019a4ab4, 0x01457af7, 0x037c0a5b, 0x0306156e, 0x02717c36, 0x0343de8d, 0x0316f7b4, 0x00f84587, 0x00d109ec, 0x0012c5df}}, Y: Field{[10]uint32{0x035ab6f7, 0x0377f918, 0x01f558aa, 0x0157c5d0, 0x006e37e2, 0x00d89ad2, 0x028f6729, 0x03e997f6, 0x02e9a5e2, 0x000fb259}}}, + {X: Field{[10]uint32{0x022f001d, 0x013bc4d4, 0x01899611, 0x02b371e3, 0x036850e0, 0x030c6458, 0x025eb211, 0x03093d39, 0x00eca7a6, 0x003bfa9a}}, Y: Field{[10]uint32{0x03bc4415, 0x021067dc, 0x00771c12, 0x027ece12, 0x03e41395, 0x00dc6685, 0x0150307a, 0x00f05368, 0x03869d58, 0x002aae11}}}, + {X: Field{[10]uint32{0x001c23a4, 0x01beca6c, 0x01cf56f4, 0x01611e92, 0x01c22a41, 0x026e735d, 0x0203829b, 0x01e81b0a, 0x035206a2, 0x0017a1c0}}, Y: Field{[10]uint32{0x00d986f9, 0x01e65ac4, 0x00fda121, 0x021d2933, 0x01a2171d, 0x038b1b8b, 0x01755d1a, 0x0248879c, 0x004efb9c, 0x0016e599}}}, + {X: Field{[10]uint32{0x0291dc6e, 0x007bc8b0, 0x01fbd8b4, 0x02a537ca, 0x02661fa8, 0x028f8e3c, 0x03136c23, 0x016c9171, 0x0347a3f1, 0x0033c2f7}}, Y: Field{[10]uint32{0x037a8196, 0x00f05136, 0x032a99c7, 0x03f4aed7, 0x02b4fc6c, 0x015e463d, 0x00523b4e, 0x03d44693, 0x001c6e61, 0x000e30b8}}}, + {X: Field{[10]uint32{0x007b0c66, 0x03cd7480, 0x006fb1f3, 0x039195b2, 0x0034a7fe, 0x002b3add, 0x032244f6, 0x01a02911, 0x0301930d, 0x00395170}}, Y: Field{[10]uint32{0x01f2d470, 0x03d5f49c, 0x0239dd87, 0x02386d68, 0x0397e582, 0x02566f2f, 0x01c6fda3, 0x025579f9, 0x000e8c62, 0x00381a8d}}}, + {X: Field{[10]uint32{0x008f7e09, 0x028ad9fe, 0x012cde2a, 0x01e6e9f6, 0x02b3a037, 0x0117702f, 0x00e12e5a, 0x017f2ef6, 0x023d4f20, 0x00179aa1}}, Y: Field{[10]uint32{0x00dfca97, 0x018a19d2, 0x00fe3bbd, 0x00dc8ed3, 0x00a68e50, 0x01a5008d, 0x004a8d1f, 0x023b7f11, 0x02078a38, 0x003095c6}}}, + {X: Field{[10]uint32{0x03648bba, 0x020642e0, 0x007444a5, 0x02c1a70f, 0x0082a0f0, 0x03c06ce6, 0x033ee225, 0x03d60284, 0x02157a54, 0x002ca910}}, Y: Field{[10]uint32{0x00fb6452, 0x03ead280, 0x017bb246, 0x00547270, 0x01c0d855, 0x03ef5f8c, 0x01fbc978, 0x0199867a, 0x03c2b693, 0x003f93d7}}}, + {X: Field{[10]uint32{0x0304ab91, 0x039d78ac, 0x01557679, 0x00650914, 0x0325a40c, 0x02de0470, 0x02383063, 0x00452e29, 0x03ea8fe5, 0x0001e87f}}, Y: Field{[10]uint32{0x0397e554, 0x03d18ed9, 0x01d9d35a, 0x03a86402, 0x01287e5d, 0x00d12965, 0x010437c4, 0x01f151a4, 0x0021b0fd, 0x00384301}}}, + {X: Field{[10]uint32{0x03ab27d0, 0x03748bba, 0x0103fcf6, 0x03e8b114, 0x03f70b41, 0x02365c01, 0x02970191, 0x00e1946e, 0x020f3d45, 0x0006e423}}, Y: Field{[10]uint32{0x00d3d110, 0x0219d790, 0x011b571e, 0x024d61f9, 0x02b5bbca, 0x005f12e6, 0x0357c918, 0x01ad79bc, 0x025eec46, 0x0026db58}}}, + {X: Field{[10]uint32{0x00fbd53c, 0x030e8ec2, 0x02cddf0c, 0x01c2b718, 0x03e2838c, 0x015066a1, 0x03b9352a, 0x02cd3a36, 0x032a7af4, 0x00139f09}}, Y: Field{[10]uint32{0x03dcaae6, 0x00e50605, 0x01d33e0b, 0x0052ffdf, 0x03530b96, 0x037bda06, 0x02fd09f6, 0x002c6385, 0x00766c9d, 0x0005dd27}}}, + }, + { + {X: Field{[10]uint32{0x00fbd53c, 0x030e8ec2, 0x02cddf0c, 0x01c2b718, 0x03e2838c, 0x015066a1, 0x03b9352a, 0x02cd3a36, 0x032a7af4, 0x00139f09}}, Y: Field{[10]uint32{0x03dcaae6, 0x00e50605, 0x01d33e0b, 0x0052ffdf, 0x03530b96, 0x037bda06, 0x02fd09f6, 0x002c6385, 0x00766c9d, 0x0005dd27}}}, + {X: Field{[10]uint32{0x006e1b4d, 0x00879b9f, 0x00790e28, 0x01686fbe, 0x009b11f2, 0x038e1767, 0x00a269f4, 0x02223c9a, 0x03b02696, 0x00226405}}, Y: Field{[10]uint32{0x0014ab2b, 0x02baf6b6, 0x03212009, 0x0303e4ca, 0x02e4e51b, 0x018d62fe, 0x00579833, 0x00d3c2ed, 0x00dab5b3, 0x0010eb8b}}}, + {X: Field{[10]uint32{0x0121b3ff, 0x02611939, 0x0350cee2, 0x005fa6a9, 0x01233c07, 0x026b8929, 0x0244d2be, 0x011571d7, 0x023010c9, 0x00009213}}, Y: Field{[10]uint32{0x0269da7e, 0x02b92e40, 0x008bbcc1, 0x037a48eb, 0x03ad7006, 0x02cb43ba, 0x02c2b3c2, 0x038c341f, 0x00a0aa23, 0x00258674}}}, + {X: Field{[10]uint32{0x025f712f, 0x018d685f, 0x003a8af2, 0x02fe46d6, 0x022831f5, 0x00c89fc3, 0x034728e6, 0x017f52a3, 0x00f76e90, 0x0019fd91}}, Y: Field{[10]uint32{0x007160e5, 0x02b2d79c, 0x02198d68, 0x0223df4d, 0x005e0e14, 0x0161b3de, 0x01adeb7b, 0x017413c1, 0x028f6644, 0x002e0cf5}}}, + {X: Field{[10]uint32{0x004ba7b9, 0x02de7ea0, 0x01751f96, 0x01c0c1d0, 0x0220d6a4, 0x01cb2553, 0x039b70d6, 0x03395fbd, 0x0126cfb6, 0x0005b071}}, Y: Field{[10]uint32{0x005bd741, 0x02f8e947, 0x029cc475, 0x0006f726, 0x02ec755c, 0x0322a537, 0x02627459, 0x0050e418, 0x037c3403, 0x0036c55f}}}, + {X: Field{[10]uint32{0x00692fd1, 0x01825850, 0x00dfe2b2, 0x01b32f64, 0x02dcf43c, 0x02c7c643, 0x00aadef4, 0x03fe0038, 0x00b49901, 0x001394f2}}, Y: Field{[10]uint32{0x028625e0, 0x024c39cc, 0x01753934, 0x03695ff2, 0x01a87a50, 0x01c86768, 0x02cd709a, 0x02807861, 0x024f4d41, 0x00375b8f}}}, + {X: Field{[10]uint32{0x036683fa, 0x01921ea8, 0x00825e83, 0x014e03b0, 0x0295821b, 0x01149ed9, 0x0289ce77, 0x00c6be1e, 0x00d753f9, 0x0000e5cf}}, Y: Field{[10]uint32{0x034a577f, 0x03ecaddf, 0x001dedf5, 0x03863fa6, 0x00d77884, 0x00ad689b, 0x03e12b63, 0x028e8d90, 0x022cc30c, 0x000e33d6}}}, + {X: Field{[10]uint32{0x0389a762, 0x0098fb4e, 0x02b8dc10, 0x00c04bb9, 0x02930dc9, 0x01a2d1c4, 0x000a0549, 0x009557ea, 0x036c9365, 0x000c9fe1}}, Y: Field{[10]uint32{0x01203301, 0x03f6566e, 0x03dfe9c9, 0x01c3faf5, 0x01755350, 0x038665ee, 0x01969255, 0x01009ac2, 0x00eab352, 0x002cb501}}}, + {X: Field{[10]uint32{0x00bf6f06, 0x02ce6670, 0x03b57180, 0x00c89410, 0x01713c13, 0x000815d9, 0x02c04f4b, 0x03c54470, 0x03ba72ec, 0x002e9aa6}}, Y: Field{[10]uint32{0x001db551, 0x02fbdc1e, 0x03aafe32, 0x03deb1a5, 0x029e5d14, 0x01562f63, 0x0020bf2e, 0x0046c0c8, 0x0238b34a, 0x0004ddc7}}}, + {X: Field{[10]uint32{0x01637b39, 0x03c46655, 0x01fa2799, 0x02617b1d, 0x026c52b9, 0x0300c05a, 0x015b9286, 0x02b1730f, 0x01da6b99, 0x00033cf1}}, Y: Field{[10]uint32{0x02852a40, 0x01e8f5e8, 0x01c3cd24, 0x00148f09, 0x0137acd3, 0x00600929, 0x00671adc, 0x026d904d, 0x012fd9f3, 0x0000b3ed}}}, + {X: Field{[10]uint32{0x01231a43, 0x03be7c1c, 0x003b9fd1, 0x035996b5, 0x0344d514, 0x0137910b, 0x02ed9506, 0x01374b62, 0x00cc27cc, 0x000d716f}}, Y: Field{[10]uint32{0x0220c8f6, 0x01cb9145, 0x030ae7db, 0x033018f3, 0x014cf7a4, 0x01be9627, 0x00e5820b, 0x011b39cd, 0x01723b97, 0x00038d9d}}}, + {X: Field{[10]uint32{0x0149827b, 0x038d5f6d, 0x03d6148c, 0x03cf8486, 0x01fcc4f7, 0x038b38c4, 0x0212e06d, 0x01d7cea0, 0x00f5e0d3, 0x003391f4}}, Y: Field{[10]uint32{0x03aed097, 0x032697fb, 0x029df43c, 0x00bfc15d, 0x0329e659, 0x016e6b43, 0x009139fe, 0x00352756, 0x00fb9963, 0x000571a6}}}, + {X: Field{[10]uint32{0x01d40609, 0x002f15bf, 0x00d76bf4, 0x02603607, 0x02c74190, 0x01620d5a, 0x022f12fc, 0x021af284, 0x00245c55, 0x003f51e7}}, Y: Field{[10]uint32{0x0264ca53, 0x00bc4d9a, 0x024739de, 0x035c9872, 0x019113ae, 0x0326107f, 0x00ad7a43, 0x02bfbfcb, 0x03b52694, 0x000c1a73}}}, + {X: Field{[10]uint32{0x0148be00, 0x03f9c55f, 0x03e13b38, 0x03a85a63, 0x03f60682, 0x03e550f1, 0x030e2207, 0x010bcd3a, 0x00bd4a8e, 0x0024c6fe}}, Y: Field{[10]uint32{0x0344f452, 0x01aa44c7, 0x01df5158, 0x01aacccf, 0x026a43ee, 0x00503afb, 0x03388e61, 0x00820f46, 0x03f0489c, 0x003c454e}}}, + {X: Field{[10]uint32{0x03799a7f, 0x01c0bd4a, 0x028424db, 0x03354ee3, 0x004f18b6, 0x03cb1f55, 0x02d8eb9a, 0x036192f7, 0x002a3acc, 0x001b1000}}, Y: Field{[10]uint32{0x03c81e32, 0x03320b34, 0x003f68b5, 0x01320812, 0x01c07abd, 0x0387772f, 0x00b836a0, 0x00d6f9a4, 0x001530b6, 0x002570b7}}}, + {X: Field{[10]uint32{0x00fb27b6, 0x009f8a10, 0x00576324, 0x02caf90c, 0x01c76e3d, 0x005a1aa9, 0x03238ad6, 0x022c6c43, 0x023dbe77, 0x003fa9d3}}, Y: Field{[10]uint32{0x023cb96f, 0x034f6dfc, 0x03b77701, 0x01ae5cfd, 0x03126b59, 0x032dabe4, 0x03674dec, 0x004ca5f3, 0x00db9b0b, 0x001b815a}}}, + }, + { + {X: Field{[10]uint32{0x00fb27b6, 0x009f8a10, 0x00576324, 0x02caf90c, 0x01c76e3d, 0x005a1aa9, 0x03238ad6, 0x022c6c43, 0x023dbe77, 0x003fa9d3}}, Y: Field{[10]uint32{0x023cb96f, 0x034f6dfc, 0x03b77701, 0x01ae5cfd, 0x03126b59, 0x032dabe4, 0x03674dec, 0x004ca5f3, 0x00db9b0b, 0x001b815a}}}, + {X: Field{[10]uint32{0x039756e4, 0x025f2587, 0x030488fd, 0x039778dc, 0x02bb570e, 0x003a3343, 0x00e03d85, 0x0203fc60, 0x01c83042, 0x003b6510}}, Y: Field{[10]uint32{0x033abfae, 0x03827e4f, 0x0298bff0, 0x01d3f937, 0x0209f237, 0x02c4e447, 0x02176128, 0x03e866be, 0x029efe8b, 0x000f6fa7}}}, + {X: Field{[10]uint32{0x02889756, 0x0206ba6f, 0x00bb25dd, 0x0265ec01, 0x03f27b64, 0x01c6267c, 0x02cd97b2, 0x03faa089, 0x03c33211, 0x001d8ba2}}, Y: Field{[10]uint32{0x00a6b774, 0x0096781f, 0x03a5e25e, 0x00c52213, 0x031972db, 0x0260b8d1, 0x03cc4f14, 0x03a5f0f1, 0x00260af3, 0x00300a25}}}, + {X: Field{[10]uint32{0x011cf119, 0x02b40cf5, 0x00d3015b, 0x03613ead, 0x015b10bd, 0x012d21d4, 0x03ed3f62, 0x01f0ff27, 0x018ee67a, 0x000a765a}}, Y: Field{[10]uint32{0x01056339, 0x021d015d, 0x002963c8, 0x003a4e9f, 0x03b89c94, 0x013c725b, 0x03a12540, 0x00ad149d, 0x00517dc8, 0x001ff40b}}}, + {X: Field{[10]uint32{0x0175d2ea, 0x01d7a5c2, 0x028ea26f, 0x03e84053, 0x011e52ac, 0x00c23d2a, 0x019bdbb2, 0x0254d238, 0x0147df60, 0x0037c1df}}, Y: Field{[10]uint32{0x01936f95, 0x030b678c, 0x01277aa3, 0x02e13ef7, 0x008a1ec5, 0x0228949f, 0x008425c9, 0x01fd1093, 0x028800ef, 0x003e185e}}}, + {X: Field{[10]uint32{0x02714560, 0x01602969, 0x006c2875, 0x0009f95b, 0x00247f21, 0x00696a17, 0x007ef64f, 0x034dae75, 0x0275579a, 0x000e2e0a}}, Y: Field{[10]uint32{0x0374299e, 0x021ccd29, 0x02284ada, 0x00efbdc5, 0x017d94f2, 0x00590d16, 0x03f56346, 0x007bd0a2, 0x02976f26, 0x003e7629}}}, + {X: Field{[10]uint32{0x004c92d7, 0x01247eef, 0x011b45b8, 0x01bb950e, 0x0135db4d, 0x00d2c50a, 0x017dea83, 0x03680cb8, 0x01758bd3, 0x0027cf9f}}, Y: Field{[10]uint32{0x014906dd, 0x02eff3ec, 0x021186cb, 0x000f5a53, 0x02452a23, 0x02eac540, 0x0062b21c, 0x0119ad62, 0x001ea77d, 0x003b34a1}}}, + {X: Field{[10]uint32{0x03422491, 0x031114df, 0x00cff467, 0x012a1818, 0x01fd453e, 0x00d6028c, 0x03fb7bd3, 0x024db5bc, 0x03d05013, 0x00049ad5}}, Y: Field{[10]uint32{0x01a3ef84, 0x00c7c667, 0x01347afa, 0x030c2fce, 0x00e148ba, 0x00afcfec, 0x004a3eba, 0x018b0b8f, 0x00130616, 0x003069f7}}}, + {X: Field{[10]uint32{0x02a8c483, 0x0035ccac, 0x00ac35ae, 0x02231410, 0x01174b0c, 0x03be54a0, 0x038c3d22, 0x033e7b70, 0x015d7b5c, 0x0028331e}}, Y: Field{[10]uint32{0x02cc6ba9, 0x019d1564, 0x03605509, 0x006f7da4, 0x006b348f, 0x008c77de, 0x0374fc97, 0x021cfb88, 0x0122f8b3, 0x002af0c0}}}, + {X: Field{[10]uint32{0x02faf403, 0x01588e8e, 0x03576051, 0x03ee5eb5, 0x0338a0ae, 0x02282d6f, 0x00faffac, 0x007d59c3, 0x0179b9e8, 0x00068904}}, Y: Field{[10]uint32{0x00d79a16, 0x02db9039, 0x0360d590, 0x03d05e37, 0x002c8177, 0x02416ddb, 0x03f27493, 0x01030b12, 0x00c0a867, 0x00238728}}}, + {X: Field{[10]uint32{0x01dd3aee, 0x03c6daf1, 0x012f2170, 0x022a3e5b, 0x0213153a, 0x01aa5db2, 0x0222a9ac, 0x031f3383, 0x00a51553, 0x001b4714}}, Y: Field{[10]uint32{0x01f597f7, 0x00d5393f, 0x013adfee, 0x002aa3b5, 0x00851e31, 0x00a1f51d, 0x03272002, 0x037f725d, 0x008e06ab, 0x002bffc5}}}, + {X: Field{[10]uint32{0x03720b26, 0x00bac126, 0x03cd0762, 0x017e6333, 0x0026f283, 0x004e4188, 0x006bbed4, 0x01a3b87d, 0x01ae9ac9, 0x000f8431}}, Y: Field{[10]uint32{0x01d92db5, 0x03a631eb, 0x01e43346, 0x02936f82, 0x00e2ff79, 0x01c8578a, 0x00665b28, 0x0222456a, 0x02cffe42, 0x0031cd71}}}, + {X: Field{[10]uint32{0x00a6d0bb, 0x032a6df9, 0x02fdc678, 0x008bd686, 0x03659d31, 0x02299063, 0x011a6d8a, 0x03e7cfcc, 0x01618b97, 0x001797c7}}, Y: Field{[10]uint32{0x0033eaf9, 0x00e11e44, 0x0253a168, 0x00b941bd, 0x0272555f, 0x0139c876, 0x00f6bcd0, 0x039bdcd6, 0x002b06a7, 0x0035ec54}}}, + {X: Field{[10]uint32{0x01543cb4, 0x020e9f59, 0x00299e00, 0x02db08b4, 0x003c4529, 0x0203aa28, 0x03684d05, 0x02152a2a, 0x03ae9734, 0x001cfe1e}}, Y: Field{[10]uint32{0x00856cdd, 0x03761cb1, 0x02d7a3d2, 0x03d4d5fc, 0x019d5c42, 0x028500a2, 0x03fbfc11, 0x03e1bfba, 0x00f03a87, 0x000df19b}}}, + {X: Field{[10]uint32{0x03005e3f, 0x026d7913, 0x01bd2dda, 0x00c6fb0e, 0x015af68e, 0x03806852, 0x013cb9ac, 0x0109ffff, 0x026b3c16, 0x003e04e2}}, Y: Field{[10]uint32{0x03357eb7, 0x01f8080b, 0x0221342d, 0x02f5552f, 0x01f4ec41, 0x02a972d4, 0x01015e57, 0x03af67e7, 0x033befb4, 0x00329d63}}}, + {X: Field{[10]uint32{0x03bdde39, 0x000a9105, 0x0032952c, 0x01e6dd81, 0x031544e1, 0x02665a34, 0x022570d5, 0x033c3842, 0x0113f677, 0x001db990}}, Y: Field{[10]uint32{0x0101ac01, 0x005d4b46, 0x02032b4b, 0x034ad5b4, 0x035e2a33, 0x01a07c34, 0x03066d70, 0x02573d5d, 0x038dee4e, 0x00324377}}}, + }, + { + {X: Field{[10]uint32{0x03bdde39, 0x000a9105, 0x0032952c, 0x01e6dd81, 0x031544e1, 0x02665a34, 0x022570d5, 0x033c3842, 0x0113f677, 0x001db990}}, Y: Field{[10]uint32{0x0101ac01, 0x005d4b46, 0x02032b4b, 0x034ad5b4, 0x035e2a33, 0x01a07c34, 0x03066d70, 0x02573d5d, 0x038dee4e, 0x00324377}}}, + {X: Field{[10]uint32{0x021187a5, 0x02666a0e, 0x02e691cf, 0x0188b0a6, 0x00005d57, 0x00587204, 0x007c9d88, 0x031cefba, 0x030e9e52, 0x001c2294}}, Y: Field{[10]uint32{0x033db9c0, 0x013c66d1, 0x03e8a58a, 0x00f1b4d4, 0x003ecda7, 0x02db4e0a, 0x01656dcb, 0x02a25fea, 0x0011e1f9, 0x0026e212}}}, + {X: Field{[10]uint32{0x0078ee8d, 0x01424730, 0x019442f0, 0x033941a4, 0x024ebf20, 0x02a6d3fd, 0x03f7263a, 0x02a6f897, 0x03ad859d, 0x00342395}}, Y: Field{[10]uint32{0x01a63e86, 0x01fd370b, 0x02d9de99, 0x033e508b, 0x00123ef7, 0x015f9b7d, 0x02172ee7, 0x02235cb5, 0x03984ab4, 0x00214ba5}}}, + {X: Field{[10]uint32{0x01e4f5be, 0x02c5b1b3, 0x0359e2e1, 0x01b61aca, 0x039f374b, 0x017918b3, 0x03d64839, 0x00ef8866, 0x034fc48b, 0x000673c0}}, Y: Field{[10]uint32{0x03321af2, 0x0054cadb, 0x01c0c0a9, 0x0324fc3c, 0x03ef91d1, 0x02c60651, 0x034be68a, 0x02d19b0e, 0x0306a15a, 0x000a38ca}}}, + {X: Field{[10]uint32{0x029129ec, 0x00519c10, 0x02548159, 0x033c7920, 0x000cae3a, 0x0334c742, 0x018be80e, 0x01349d7d, 0x0085e4d4, 0x001f69b0}}, Y: Field{[10]uint32{0x00d9ff0e, 0x002bb8ab, 0x0186aeb5, 0x02195329, 0x030448c0, 0x024589ef, 0x01d02074, 0x00615d44, 0x006bb9f4, 0x003d2605}}}, + {X: Field{[10]uint32{0x029c22bc, 0x02b950c3, 0x0042fd43, 0x035a46f3, 0x0201da67, 0x026f1ef9, 0x01b3444d, 0x03ac8dd9, 0x02a5e99e, 0x0014cd73}}, Y: Field{[10]uint32{0x03dacb60, 0x03099cb2, 0x0319b3c2, 0x008db287, 0x02c8c30c, 0x0033ae1a, 0x027f080f, 0x01489281, 0x0020769c, 0x000efe34}}}, + {X: Field{[10]uint32{0x01654f22, 0x00f52554, 0x02ee94f8, 0x02508c6a, 0x03b2f7f3, 0x039a7653, 0x03e9001b, 0x02f9b886, 0x00cff5c1, 0x00243424}}, Y: Field{[10]uint32{0x001a43e1, 0x037815d8, 0x038740f5, 0x0194f68f, 0x036dd635, 0x01afdc0c, 0x03f021e0, 0x03d86a54, 0x021d2bac, 0x003355a6}}}, + {X: Field{[10]uint32{0x017cf3e8, 0x02f08274, 0x02219e3a, 0x000d2fa8, 0x02ee93bd, 0x00e5fd5d, 0x0319c2f8, 0x017c35f1, 0x00a078cb, 0x002bdb11}}, Y: Field{[10]uint32{0x0351baea, 0x03741805, 0x01435b8a, 0x03a9f283, 0x03ec362a, 0x032c91b7, 0x01e73153, 0x012cc2be, 0x016fe85d, 0x0001e102}}}, + {X: Field{[10]uint32{0x036b19fa, 0x03bd9471, 0x019d71b6, 0x01b41a20, 0x02d9d6e0, 0x02084a4b, 0x0322c310, 0x0347b31c, 0x00587cf1, 0x003691e6}}, Y: Field{[10]uint32{0x026f5af7, 0x009bbacc, 0x03c206aa, 0x00fa554f, 0x02a67bd1, 0x038595a7, 0x03369077, 0x02bc0745, 0x03789bcc, 0x003aec75}}}, + {X: Field{[10]uint32{0x02569044, 0x03e47b75, 0x02ef96d2, 0x01b3e833, 0x0033c039, 0x017163cc, 0x002bafe9, 0x01894e75, 0x020d6f7d, 0x002a8871}}, Y: Field{[10]uint32{0x02f37766, 0x00931070, 0x00334c19, 0x03044e4a, 0x02ee5aba, 0x0106b7d3, 0x01d26add, 0x01aba9b4, 0x0086fc4e, 0x002cab9a}}}, + {X: Field{[10]uint32{0x01135dbd, 0x00bed96e, 0x0231ecd9, 0x02bce761, 0x00f0c087, 0x00ba625f, 0x017aaf58, 0x03b9ab60, 0x0104a8dd, 0x0038f91d}}, Y: Field{[10]uint32{0x0348045d, 0x01abcf91, 0x01da9690, 0x03fd7b25, 0x02a5a202, 0x00ae0fff, 0x018c8195, 0x031b102e, 0x03f809cb, 0x0024c296}}}, + {X: Field{[10]uint32{0x03f4de54, 0x00798853, 0x002be5bc, 0x0247a74f, 0x00a5cabd, 0x00528a16, 0x034031cf, 0x000a8b0e, 0x00355df2, 0x0015c5b7}}, Y: Field{[10]uint32{0x00100fa5, 0x0293f554, 0x02417d3e, 0x0333411f, 0x01ebf3fe, 0x0264c931, 0x02aa661a, 0x020fce47, 0x00400a5b, 0x002617db}}}, + {X: Field{[10]uint32{0x01ee455f, 0x002e7973, 0x00075cbf, 0x039ba339, 0x02ff67ff, 0x0202f6d2, 0x0345338f, 0x02a6c291, 0x016fe870, 0x001fa319}}, Y: Field{[10]uint32{0x031b9cba, 0x037a6605, 0x02627173, 0x019d1bd1, 0x034aa2d1, 0x0200e94e, 0x03f760f4, 0x01d03ca8, 0x0232ca30, 0x002f7771}}}, + {X: Field{[10]uint32{0x0369b57c, 0x00540365, 0x03c7b1e6, 0x02f0e78b, 0x01da5033, 0x02f8fc13, 0x008f1925, 0x00a0ad4d, 0x01cb592d, 0x0000c194}}, Y: Field{[10]uint32{0x033236e3, 0x00e9417c, 0x038057ff, 0x0061ce7d, 0x03192a4d, 0x0215a0b0, 0x00e2423e, 0x030262b1, 0x0033bb7a, 0x00094822}}}, + {X: Field{[10]uint32{0x0298b59e, 0x025ae6d9, 0x007a4377, 0x009624d1, 0x020a3359, 0x00f8f1c9, 0x02b035ab, 0x017ac56f, 0x01f891a9, 0x000f7e10}}, Y: Field{[10]uint32{0x0392baf5, 0x02399e5a, 0x009f8bcf, 0x01ec8525, 0x027bfc86, 0x00473ce1, 0x002bae8f, 0x02430768, 0x02df98b0, 0x002ce3f9}}}, + {X: Field{[10]uint32{0x03cbb891, 0x0054090a, 0x00bee3ab, 0x010f7c9b, 0x028f7cc6, 0x010fe3e6, 0x0281baa7, 0x02af87a0, 0x016b03b2, 0x0031ce31}}, Y: Field{[10]uint32{0x019a84c3, 0x01cd765a, 0x00fe917e, 0x03bde203, 0x0382314e, 0x032feeee, 0x0318f2ea, 0x03494dfd, 0x0178951a, 0x00224fed}}}, + }, + { + {X: Field{[10]uint32{0x03cbb891, 0x0054090a, 0x00bee3ab, 0x010f7c9b, 0x028f7cc6, 0x010fe3e6, 0x0281baa7, 0x02af87a0, 0x016b03b2, 0x0031ce31}}, Y: Field{[10]uint32{0x019a84c3, 0x01cd765a, 0x00fe917e, 0x03bde203, 0x0382314e, 0x032feeee, 0x0318f2ea, 0x03494dfd, 0x0178951a, 0x00224fed}}}, + {X: Field{[10]uint32{0x0262ab1b, 0x02ac1e11, 0x009e4dda, 0x03a926e3, 0x00647197, 0x00b9eaa5, 0x0332a699, 0x000dd0d6, 0x005ecd7c, 0x00155e21}}, Y: Field{[10]uint32{0x016f3511, 0x03463cc1, 0x024de316, 0x01d1a975, 0x03f653a7, 0x034a9014, 0x026d0a51, 0x038b0f3a, 0x03978b6d, 0x00398741}}}, + {X: Field{[10]uint32{0x0361d58d, 0x02abcce1, 0x00e2f34b, 0x03902358, 0x02ca4c9b, 0x01c837de, 0x02240a35, 0x01851842, 0x0127823f, 0x002e3118}}, Y: Field{[10]uint32{0x011051a4, 0x03a82ea7, 0x03c5b638, 0x01e17841, 0x013f7504, 0x01fcf141, 0x02458f69, 0x038df452, 0x016c5170, 0x0023e7b6}}}, + {X: Field{[10]uint32{0x008b6c29, 0x021a6e25, 0x0196094f, 0x0153f38e, 0x0122f123, 0x03433b33, 0x03fa3bc1, 0x0193312a, 0x003888a3, 0x0011fcce}}, Y: Field{[10]uint32{0x02537ef9, 0x03b84483, 0x014a81ed, 0x025623e6, 0x0118bb49, 0x02d05b1c, 0x00e48675, 0x00a4dc64, 0x028d0f03, 0x001232a6}}}, + {X: Field{[10]uint32{0x010b0040, 0x002cc101, 0x00adc2db, 0x02e7c04d, 0x01f3f47d, 0x03a68d9c, 0x010c993f, 0x01c7de8d, 0x029f7102, 0x0002355b}}, Y: Field{[10]uint32{0x033fd0a1, 0x03899e96, 0x002beb58, 0x01c8385e, 0x01f6d7c4, 0x035e6ca1, 0x03d150a8, 0x026a887f, 0x01aebd0a, 0x00284861}}}, + {X: Field{[10]uint32{0x0166ff40, 0x037a8684, 0x0336da14, 0x012907ff, 0x02caeebf, 0x0392028b, 0x038125d8, 0x0234adf1, 0x00331881, 0x001ac010}}, Y: Field{[10]uint32{0x0171b847, 0x0104c3a7, 0x02de9eb7, 0x03db9fcf, 0x00076883, 0x0242fcbc, 0x00943a05, 0x03eb265a, 0x033ae8aa, 0x00107346}}}, + {X: Field{[10]uint32{0x03573b7f, 0x0158f7c4, 0x02270f56, 0x017b4c2d, 0x03889a1c, 0x02f9968d, 0x0220f977, 0x03398d07, 0x0232d42f, 0x003704fc}}, Y: Field{[10]uint32{0x001f2ba6, 0x03348a13, 0x00b1c42a, 0x01c05d01, 0x02704554, 0x012a429d, 0x03410da8, 0x00d030f1, 0x0280429e, 0x0032426e}}}, + {X: Field{[10]uint32{0x01ff4adb, 0x029b23c1, 0x03768a81, 0x035bf2fb, 0x0214f570, 0x01a9757d, 0x026b4c9c, 0x02e33f91, 0x0334ae41, 0x00303007}}, Y: Field{[10]uint32{0x00351065, 0x03bfdceb, 0x01b85fc4, 0x0345c345, 0x02cdbc43, 0x001d6e33, 0x0137a0b4, 0x01fd71f2, 0x01bee435, 0x0002e13d}}}, + {X: Field{[10]uint32{0x03ae9ceb, 0x03d642e1, 0x02d14b02, 0x03a9c3bc, 0x00226c21, 0x02c8466a, 0x0319565d, 0x01fc1ceb, 0x01e601df, 0x0009700b}}, Y: Field{[10]uint32{0x03c6e275, 0x024344d2, 0x00726470, 0x037c2996, 0x0137c641, 0x03eb4475, 0x0084e0dc, 0x00e0f032, 0x02d2c812, 0x0022a7fa}}}, + {X: Field{[10]uint32{0x032c1a1c, 0x000675e4, 0x01d6e365, 0x006808af, 0x03a2f32b, 0x002d8ee4, 0x0229ea40, 0x032f6cf4, 0x03bc468e, 0x000ea4cb}}, Y: Field{[10]uint32{0x01343540, 0x02a49a5f, 0x028b684a, 0x0055d268, 0x02c0417e, 0x03720742, 0x009547d4, 0x015ea007, 0x00540f34, 0x002b4f60}}}, + {X: Field{[10]uint32{0x005a3c34, 0x00263dbb, 0x009fe1f8, 0x0300a565, 0x00aece82, 0x01eb8f96, 0x02b9f4ca, 0x039273a2, 0x011b2cf8, 0x003fb767}}, Y: Field{[10]uint32{0x013d7714, 0x0152fd38, 0x0029762b, 0x011a66fe, 0x00adaeb5, 0x0323d2c0, 0x03e85312, 0x02e382c2, 0x00c31853, 0x00294b89}}}, + {X: Field{[10]uint32{0x00d6bf1f, 0x00841ae0, 0x03cbb045, 0x00fa6093, 0x0146bd03, 0x01acd1ae, 0x0121e927, 0x02e0f28d, 0x0343451c, 0x0030ccdc}}, Y: Field{[10]uint32{0x00b01f48, 0x0396108f, 0x02162f95, 0x01083899, 0x0198ba36, 0x01cb0c55, 0x01ff31af, 0x00b3684f, 0x01391b81, 0x000bbbfa}}}, + {X: Field{[10]uint32{0x02b6a396, 0x0395346a, 0x020769b4, 0x0246844d, 0x0373021b, 0x03a1222c, 0x02e2d7f5, 0x029230b7, 0x0286bc6e, 0x000f838c}}, Y: Field{[10]uint32{0x0180e27e, 0x00c79236, 0x00f6a2eb, 0x0107cd1a, 0x026ab010, 0x02d14ff1, 0x031fe1de, 0x00de593c, 0x0172fa3b, 0x00329120}}}, + {X: Field{[10]uint32{0x02f027e9, 0x03d31236, 0x0277e27b, 0x036fb951, 0x03d7ca75, 0x01fb5b45, 0x03c7cd53, 0x00f894f0, 0x033d3ea8, 0x001698a1}}, Y: Field{[10]uint32{0x004c68b4, 0x02764161, 0x035fb319, 0x00c27299, 0x03988af4, 0x03b15e90, 0x02409cfe, 0x01abf69d, 0x0079a5bf, 0x003db651}}}, + {X: Field{[10]uint32{0x001023ec, 0x00d6188d, 0x03570aaf, 0x03ddbfb3, 0x035645d8, 0x0260ae6b, 0x002e0200, 0x00b4a126, 0x013080c3, 0x000d12ae}}, Y: Field{[10]uint32{0x021eeb87, 0x02260a47, 0x015d704f, 0x01abf0e6, 0x03fc4e97, 0x02945317, 0x038f2d1e, 0x0118a9cf, 0x03042b24, 0x001b870a}}}, + {X: Field{[10]uint32{0x00f6c14b, 0x03a7d962, 0x01014372, 0x017cea49, 0x03d1d72e, 0x0325ca1d, 0x024c7637, 0x016e0789, 0x026548b6, 0x00362558}}, Y: Field{[10]uint32{0x017d991f, 0x018fb5d7, 0x027e1793, 0x018caec1, 0x0303428d, 0x0230d03a, 0x00ec6081, 0x01fab9ca, 0x0238f2bc, 0x003fafea}}}, + }, + { + {X: Field{[10]uint32{0x00f6c14b, 0x03a7d962, 0x01014372, 0x017cea49, 0x03d1d72e, 0x0325ca1d, 0x024c7637, 0x016e0789, 0x026548b6, 0x00362558}}, Y: Field{[10]uint32{0x017d991f, 0x018fb5d7, 0x027e1793, 0x018caec1, 0x0303428d, 0x0230d03a, 0x00ec6081, 0x01fab9ca, 0x0238f2bc, 0x003fafea}}}, + {X: Field{[10]uint32{0x03078424, 0x02d652dd, 0x00c3fba5, 0x01e83b10, 0x0303ecaf, 0x0000e899, 0x03a43622, 0x00113a28, 0x02ef8971, 0x003f44db}}, Y: Field{[10]uint32{0x0271ddf1, 0x007bbbf1, 0x01fa8cd6, 0x03de28ab, 0x017cf2b1, 0x01717be9, 0x021d191b, 0x014b319e, 0x0034f3c6, 0x0008636a}}}, + {X: Field{[10]uint32{0x0127b756, 0x02a1ffd8, 0x0170480b, 0x0392ae82, 0x0203428b, 0x00182d05, 0x01362da5, 0x03c499cb, 0x002f716d, 0x001b631e}}, Y: Field{[10]uint32{0x03172571, 0x007dd2af, 0x01cca655, 0x0368b5f3, 0x034e3aa6, 0x01b4d36b, 0x019a82d3, 0x02e44451, 0x030896fd, 0x00266bb7}}}, + {X: Field{[10]uint32{0x01b1cb3c, 0x03613b23, 0x0024a5f1, 0x028350fc, 0x021b7003, 0x01d467e1, 0x01cca536, 0x0234503a, 0x029dd963, 0x003667a3}}, Y: Field{[10]uint32{0x038637a7, 0x028a78da, 0x0365cd88, 0x03e3ff21, 0x026286fe, 0x02f3ae9b, 0x005bb321, 0x028e9ea5, 0x01ad1cc0, 0x000db706}}}, + {X: Field{[10]uint32{0x018cf17a, 0x03869cdd, 0x023524de, 0x032e9620, 0x00f1f85d, 0x02d025fe, 0x0059aef1, 0x01eb2a34, 0x02dd95bf, 0x003af2af}}, Y: Field{[10]uint32{0x00aa0ccd, 0x033717d7, 0x0295c446, 0x004b42b3, 0x0310fad2, 0x01f0cb9a, 0x0000a1b6, 0x02e72c0b, 0x020f8f22, 0x0011f4f3}}}, + {X: Field{[10]uint32{0x01a3c43c, 0x012cb154, 0x02258e4c, 0x032a3b3b, 0x000df701, 0x02ab99c5, 0x00c1f2b4, 0x03356d23, 0x029467ca, 0x0015b276}}, Y: Field{[10]uint32{0x00d7c9ed, 0x0362df48, 0x00aa1824, 0x03e4cbb7, 0x0241d40f, 0x0372da14, 0x03c7964d, 0x027b0bcc, 0x02cb42c7, 0x000e351a}}}, + {X: Field{[10]uint32{0x00855c5b, 0x03b9456b, 0x00afbbce, 0x006805f2, 0x00118562, 0x0385ff0a, 0x0331a369, 0x03389114, 0x012e4bd4, 0x003a37d3}}, Y: Field{[10]uint32{0x02465650, 0x0179cb0b, 0x00d7d59d, 0x017c7879, 0x019663b5, 0x027bccb1, 0x004db4f5, 0x026c9911, 0x0170c47f, 0x001b15ff}}}, + {X: Field{[10]uint32{0x00385172, 0x01bda34f, 0x02636fd4, 0x00781103, 0x01d20335, 0x016c2464, 0x03d8a54e, 0x020c5e86, 0x01619a19, 0x0000ff7c}}, Y: Field{[10]uint32{0x00cb9794, 0x0319fc3f, 0x0232b79a, 0x027a439c, 0x015b9b92, 0x03215cdd, 0x0070c7d3, 0x004b0ff9, 0x02c06e5c, 0x00102340}}}, + {X: Field{[10]uint32{0x02e7e454, 0x03d6f694, 0x02150d08, 0x03bc3c39, 0x02fe32ef, 0x02a60598, 0x02486023, 0x02a0ca44, 0x03d718ec, 0x00101a34}}, Y: Field{[10]uint32{0x00ef191e, 0x02b37976, 0x03332779, 0x03b44f0d, 0x01988d21, 0x03674e34, 0x02c14597, 0x011eaae7, 0x03b7254a, 0x00233614}}}, + {X: Field{[10]uint32{0x01d8247e, 0x0307fd4d, 0x011eb400, 0x0309445a, 0x00cd4780, 0x03e82de8, 0x02101f9a, 0x0157395b, 0x01bba2c3, 0x000cfab2}}, Y: Field{[10]uint32{0x033da9bf, 0x005aac2b, 0x0007f372, 0x00dedfa9, 0x0184f8cf, 0x03457bcb, 0x0061f2af, 0x01f10751, 0x0173e4e1, 0x000d65cc}}}, + {X: Field{[10]uint32{0x02c5d939, 0x01eb7e11, 0x033de085, 0x021deea4, 0x02a475a2, 0x0032809f, 0x01bf32e6, 0x009782d5, 0x02cdb1d8, 0x00049543}}, Y: Field{[10]uint32{0x01e757c9, 0x01d3f156, 0x0143192a, 0x007fb363, 0x02838b74, 0x01dc929c, 0x008e43c1, 0x035e9d51, 0x0334f872, 0x001ee3e0}}}, + {X: Field{[10]uint32{0x01f771c8, 0x0092740b, 0x00c87b9e, 0x0047b825, 0x00335a52, 0x0007e1d4, 0x032c2b3c, 0x03240a74, 0x006d922d, 0x002dc795}}, Y: Field{[10]uint32{0x03f48c51, 0x00e89be4, 0x02286245, 0x00ad56ee, 0x0026bd52, 0x0338a23d, 0x0112a4cc, 0x03e401e2, 0x03a8cec9, 0x0039f33b}}}, + {X: Field{[10]uint32{0x02c8a56f, 0x002ab195, 0x0342138d, 0x0150d3cd, 0x0385093c, 0x02beb423, 0x01bb7b53, 0x0217531a, 0x031ac3b5, 0x00251359}}, Y: Field{[10]uint32{0x027be289, 0x01371976, 0x0117eb9f, 0x01d37419, 0x0167d4c1, 0x00ceb186, 0x01439361, 0x007ffd30, 0x01977b50, 0x0029c419}}}, + {X: Field{[10]uint32{0x03194444, 0x01cc24b4, 0x03ea268f, 0x0252ea9f, 0x02850fea, 0x0361e867, 0x02239666, 0x009ae184, 0x0196ba15, 0x003eb3d7}}, Y: Field{[10]uint32{0x00bad676, 0x02fd2211, 0x0100b552, 0x0116e51f, 0x02be72b2, 0x024b76b1, 0x01b77563, 0x0113da4d, 0x007bb8ad, 0x001f3ae4}}}, + {X: Field{[10]uint32{0x0208f15a, 0x02e2862b, 0x0100baee, 0x01b7204a, 0x01fd69e5, 0x02b4f0c1, 0x02b03655, 0x026833f9, 0x0291cd09, 0x0021a953}}, Y: Field{[10]uint32{0x01388308, 0x013479f0, 0x0254d352, 0x00496cd4, 0x0377129d, 0x035d5a19, 0x032a8d06, 0x021180e9, 0x014837a7, 0x0033fb98}}}, + {X: Field{[10]uint32{0x03676e03, 0x01429593, 0x00edd491, 0x00da4fa1, 0x01ceffc7, 0x01c7a1d8, 0x00f64335, 0x01d463ac, 0x00032a95, 0x002e36a5}}, Y: Field{[10]uint32{0x02fdf6e7, 0x023939d3, 0x03b51148, 0x013657fc, 0x0092cc58, 0x018a022c, 0x0099cc97, 0x0287935f, 0x03a44805, 0x000a0137}}}, + }, + { + {X: Field{[10]uint32{0x03676e03, 0x01429593, 0x00edd491, 0x00da4fa1, 0x01ceffc7, 0x01c7a1d8, 0x00f64335, 0x01d463ac, 0x00032a95, 0x002e36a5}}, Y: Field{[10]uint32{0x02fdf6e7, 0x023939d3, 0x03b51148, 0x013657fc, 0x0092cc58, 0x018a022c, 0x0099cc97, 0x0287935f, 0x03a44805, 0x000a0137}}}, + {X: Field{[10]uint32{0x01af726a, 0x00fd0531, 0x036e6d41, 0x0172c96f, 0x01469a3e, 0x02ad883e, 0x032cb698, 0x0317394f, 0x0105ed8c, 0x001b4db4}}, Y: Field{[10]uint32{0x03f9fc7d, 0x00124684, 0x00a35c57, 0x00dad042, 0x01dcc599, 0x0171400a, 0x018c66c9, 0x019a79cb, 0x0034e377, 0x00392e97}}}, + {X: Field{[10]uint32{0x02e1346b, 0x02612771, 0x031c5ea1, 0x0040e16b, 0x005abe7b, 0x013454b0, 0x00c761f1, 0x03442f95, 0x00ff0982, 0x0001a41a}}, Y: Field{[10]uint32{0x03226c13, 0x01629535, 0x0026e7bb, 0x00e65318, 0x02a4f689, 0x0021910a, 0x005db2bd, 0x03789b6a, 0x03e090bf, 0x002e18f8}}}, + {X: Field{[10]uint32{0x0140db99, 0x00a8c329, 0x0012286e, 0x03014d2e, 0x03eb1309, 0x01bc2c38, 0x02883fa6, 0x02b03341, 0x01e10cd3, 0x000eadaf}}, Y: Field{[10]uint32{0x03da78a3, 0x01cff8c6, 0x00043e68, 0x02c38da7, 0x0038d137, 0x0284fa67, 0x03117a96, 0x01c75ff0, 0x02079be8, 0x002eb298}}}, + {X: Field{[10]uint32{0x00a1f6a1, 0x01a47f37, 0x03f1a30e, 0x0050d233, 0x01068cbd, 0x007a1b38, 0x006dc5cb, 0x025d854a, 0x0093cb25, 0x0022630d}}, Y: Field{[10]uint32{0x024f647c, 0x037083c5, 0x0179ca4a, 0x025e7caf, 0x03b2a7cf, 0x00ab1ba4, 0x00454245, 0x02955276, 0x0186ab56, 0x001d7dd6}}}, + {X: Field{[10]uint32{0x0235c795, 0x038aef1c, 0x001d7584, 0x0163af55, 0x030b0d89, 0x03472275, 0x03b05b37, 0x025d2ce4, 0x022435ef, 0x00018f11}}, Y: Field{[10]uint32{0x03110258, 0x00b70256, 0x029bd3f3, 0x02b3e926, 0x029e4acb, 0x00c7216d, 0x01f660d9, 0x0210110c, 0x03b91303, 0x00389fe6}}}, + {X: Field{[10]uint32{0x011e3998, 0x02780f0f, 0x00328aa6, 0x02e45e81, 0x025e56c8, 0x008a89d3, 0x01299d70, 0x022fc069, 0x02fed291, 0x002c84f8}}, Y: Field{[10]uint32{0x025fb81e, 0x032f718c, 0x01175ec2, 0x016faf7b, 0x03d53416, 0x00e90ef0, 0x0161ebf8, 0x00f04b0f, 0x02c20f2d, 0x0008a7e3}}}, + {X: Field{[10]uint32{0x031048da, 0x01efc9e7, 0x013ba777, 0x03cdcf77, 0x02ba2fd4, 0x0341ef38, 0x03a069d9, 0x015bc3f6, 0x00e3f1ad, 0x001e598d}}, Y: Field{[10]uint32{0x0106cf01, 0x026f8928, 0x00862e8f, 0x03633f5d, 0x02532576, 0x029e49fc, 0x01e74735, 0x002e255b, 0x02b6cfb2, 0x001363b8}}}, + {X: Field{[10]uint32{0x025be234, 0x0387fb28, 0x0350700b, 0x039c377c, 0x020e83e3, 0x00581b81, 0x01d0ba69, 0x03e4f974, 0x02d816c7, 0x0012cece}}, Y: Field{[10]uint32{0x020e8362, 0x02df80e4, 0x01b84063, 0x024b3c84, 0x0041e7fd, 0x03633013, 0x035e96df, 0x02f271e1, 0x023b85da, 0x0017bb00}}}, + {X: Field{[10]uint32{0x005201e1, 0x0026b270, 0x0377dab2, 0x016ba0da, 0x01d264cb, 0x03a8d7e6, 0x02bd55cd, 0x01e2ba14, 0x02b06e6c, 0x0030a671}}, Y: Field{[10]uint32{0x00f51ba3, 0x00cc4e94, 0x02ae9add, 0x03d60eb0, 0x03bd74dc, 0x035dd335, 0x0084f24f, 0x02016ce2, 0x01923611, 0x0016a9ce}}}, + {X: Field{[10]uint32{0x0289f55e, 0x018d29f8, 0x02707b96, 0x03c38b1d, 0x022976b0, 0x01e2596f, 0x00251b02, 0x013e5808, 0x00b6ddb0, 0x0027dee2}}, Y: Field{[10]uint32{0x021e4bde, 0x034ed97f, 0x022b1b3c, 0x0383ac42, 0x03c0e536, 0x0263f1c7, 0x03146b42, 0x0043def8, 0x0384c704, 0x000cbe7d}}}, + {X: Field{[10]uint32{0x001cbaab, 0x01e9fc5b, 0x0164cfd3, 0x01e40cf5, 0x001acab8, 0x029c18d7, 0x00ab6c18, 0x0181c566, 0x0298fb35, 0x00340c6b}}, Y: Field{[10]uint32{0x01116b26, 0x02411fe1, 0x01fdc4c3, 0x013f6f59, 0x036dfb4a, 0x0372d373, 0x02e4c06a, 0x01613a39, 0x02b4e954, 0x00105465}}}, + {X: Field{[10]uint32{0x01fe1d2b, 0x01272307, 0x038e5165, 0x002795a1, 0x00c493f5, 0x00fedce9, 0x02ccadfd, 0x01238f9d, 0x03e9cb74, 0x00356290}}, Y: Field{[10]uint32{0x00d50922, 0x009e56e3, 0x02fbffcf, 0x008572f5, 0x0354d9ba, 0x020a09da, 0x02729132, 0x020f3c42, 0x026ba058, 0x003f05e1}}}, + {X: Field{[10]uint32{0x007996c0, 0x03ef5611, 0x0269a626, 0x01c9dae8, 0x016e2eed, 0x02fb743a, 0x03979577, 0x00d590e6, 0x02d86a95, 0x0005ba16}}, Y: Field{[10]uint32{0x00151d48, 0x022f192e, 0x01d54488, 0x02b6715a, 0x0221b642, 0x0003b556, 0x0217e5ce, 0x0124fbec, 0x00aeb424, 0x001d022c}}}, + {X: Field{[10]uint32{0x009c795e, 0x00546f89, 0x0005e124, 0x02aa673a, 0x02ed4406, 0x0309fa93, 0x02d969c3, 0x020c4335, 0x01397111, 0x0008749c}}, Y: Field{[10]uint32{0x01208ece, 0x004bb0e6, 0x03761b00, 0x01292b7e, 0x03d67194, 0x008aed30, 0x0335b855, 0x02b3a85d, 0x01b4b075, 0x0025317e}}}, + {X: Field{[10]uint32{0x03c0df5d, 0x0045de38, 0x02792f1a, 0x03ed455a, 0x032019ef, 0x01d75fea, 0x00adab94, 0x02cce9f6, 0x0214441f, 0x003a03fa}}, Y: Field{[10]uint32{0x02c9ec78, 0x010a46da, 0x02ea9fcb, 0x0202bcc8, 0x032d155e, 0x00f2a511, 0x009768ca, 0x0001dc7a, 0x027f638e, 0x003bb477}}}, + }, + { + {X: Field{[10]uint32{0x03c0df5d, 0x0045de38, 0x02792f1a, 0x03ed455a, 0x032019ef, 0x01d75fea, 0x00adab94, 0x02cce9f6, 0x0214441f, 0x003a03fa}}, Y: Field{[10]uint32{0x02c9ec78, 0x010a46da, 0x02ea9fcb, 0x0202bcc8, 0x032d155e, 0x00f2a511, 0x009768ca, 0x0001dc7a, 0x027f638e, 0x003bb477}}}, + {X: Field{[10]uint32{0x0383cd58, 0x0039e2c3, 0x039162db, 0x00e1df4b, 0x03122dcc, 0x03bf9e8d, 0x01ac4ed1, 0x00499660, 0x01f08ea4, 0x00110328}}, Y: Field{[10]uint32{0x008a3f4b, 0x02f01a6e, 0x02260b07, 0x0109a702, 0x02a21e4d, 0x03538bc0, 0x00954dc9, 0x03848abe, 0x00d2cd5e, 0x0029b22c}}}, + {X: Field{[10]uint32{0x03592d55, 0x00d67b35, 0x010192c0, 0x011d038d, 0x0106d5b9, 0x00cf38ec, 0x02fef696, 0x00149822, 0x02dbc4a1, 0x00174bb1}}, Y: Field{[10]uint32{0x035183a7, 0x039743ab, 0x01174266, 0x0336b445, 0x010e2a7b, 0x01a335a5, 0x03710fa2, 0x0117ad63, 0x01f89c6e, 0x0002a4b3}}}, + {X: Field{[10]uint32{0x02998b10, 0x02f689c4, 0x029d9e81, 0x02f306c8, 0x019bc70e, 0x00ea41e0, 0x037f829d, 0x01b07317, 0x03af2b96, 0x003da532}}, Y: Field{[10]uint32{0x00f05e51, 0x0222c5c0, 0x02a47f67, 0x030c60f0, 0x02eb6c64, 0x0311b60a, 0x03c5ffac, 0x03c0f58c, 0x02ba61be, 0x0010298f}}}, + {X: Field{[10]uint32{0x028f9f5c, 0x03d2d27f, 0x00a51991, 0x03856620, 0x017361f1, 0x0057d013, 0x02cae342, 0x03dd0bf8, 0x01c3b11b, 0x002b0dc7}}, Y: Field{[10]uint32{0x025a503c, 0x020ffccc, 0x01e1d17a, 0x0163b9d4, 0x01229534, 0x009539cd, 0x02101e73, 0x0291dffc, 0x02c18709, 0x00314585}}}, + {X: Field{[10]uint32{0x015bf84c, 0x012e3e39, 0x01027a74, 0x03b55c36, 0x03d964c6, 0x008f2b93, 0x01d3c252, 0x01b32397, 0x0099ceb9, 0x00189e0a}}, Y: Field{[10]uint32{0x0315fa2a, 0x0073ead7, 0x036ed6f5, 0x039f7745, 0x039a020d, 0x025c99e0, 0x00549722, 0x028a2407, 0x00a40911, 0x00359c2b}}}, + {X: Field{[10]uint32{0x01e33446, 0x00723546, 0x0385df4a, 0x03114abc, 0x0240893b, 0x0088a85e, 0x008c0bd0, 0x0210324d, 0x003a14f1, 0x00225080}}, Y: Field{[10]uint32{0x02387689, 0x00e28039, 0x00f9840d, 0x00d9e79d, 0x006bfd77, 0x03bf7938, 0x00b2d6d0, 0x001de936, 0x039595a5, 0x002a7f40}}}, + {X: Field{[10]uint32{0x01d553fd, 0x0284cd63, 0x02414f95, 0x0257022d, 0x0047abf6, 0x02689654, 0x036d4f43, 0x01a12142, 0x022a3556, 0x0022dba1}}, Y: Field{[10]uint32{0x029be5ed, 0x00f6b4cf, 0x003d0d80, 0x016860ce, 0x0124ac3c, 0x013ae7e8, 0x010bc2df, 0x0072d034, 0x00910ed1, 0x003a9782}}}, + {X: Field{[10]uint32{0x0113cb26, 0x00a3256e, 0x016d03d7, 0x027004ef, 0x0099eb41, 0x01541726, 0x00da44ff, 0x010aa28b, 0x026b30a3, 0x0009dc09}}, Y: Field{[10]uint32{0x0348a7a2, 0x01c5ccfc, 0x01bebbfe, 0x006f3205, 0x00e940c9, 0x01fcacc9, 0x012d24d0, 0x036c6955, 0x005e79b0, 0x003d926f}}}, + {X: Field{[10]uint32{0x030c58bd, 0x010912b3, 0x024ce23f, 0x0137d911, 0x0228d49f, 0x01aabb3d, 0x019e1005, 0x013024cb, 0x006e2484, 0x0034eb7c}}, Y: Field{[10]uint32{0x03c89387, 0x0392ae4d, 0x00c9ce52, 0x027e92e6, 0x02aee386, 0x03fd8e2e, 0x03b2febc, 0x0181def7, 0x01b4fc2a, 0x0015fa67}}}, + {X: Field{[10]uint32{0x015e8247, 0x02a80856, 0x00d1af0a, 0x01155a1b, 0x0097bfdc, 0x033e2ea4, 0x025e6e01, 0x03b485e3, 0x00d383cb, 0x001d7934}}, Y: Field{[10]uint32{0x01982d22, 0x00ff6756, 0x01893ca2, 0x02dbaa6b, 0x007ddab5, 0x01edc9b5, 0x01f970ec, 0x002641d0, 0x02a17541, 0x0007f390}}}, + {X: Field{[10]uint32{0x039715c2, 0x011c743c, 0x0129a399, 0x0087e629, 0x01690065, 0x028cffb7, 0x011f78ce, 0x00f616d0, 0x0288f19a, 0x000bc627}}, Y: Field{[10]uint32{0x0171dfea, 0x018d6110, 0x014f066a, 0x038b0da1, 0x03eb3333, 0x03443e7d, 0x0308475e, 0x035f3f7d, 0x01f8f3c5, 0x0032468e}}}, + {X: Field{[10]uint32{0x02333323, 0x027d1369, 0x02bf4747, 0x0071a3d2, 0x009cbbbc, 0x026136a1, 0x0020d605, 0x02efc0fc, 0x02383361, 0x000fb46d}}, Y: Field{[10]uint32{0x01d61ba3, 0x00ff122d, 0x037294b1, 0x02842de3, 0x02a9b728, 0x0223e4a7, 0x017c9896, 0x013b9d76, 0x01a48b5b, 0x003613cb}}}, + {X: Field{[10]uint32{0x023eb3fc, 0x018bb73e, 0x02398875, 0x02513643, 0x0277ee68, 0x02229bdf, 0x0246b408, 0x01aedddf, 0x00bb0a1b, 0x0034b372}}, Y: Field{[10]uint32{0x02d37564, 0x021f6cf7, 0x00927442, 0x02e4c42d, 0x02c1f217, 0x033e49bb, 0x01e95362, 0x018411b7, 0x02f9e5c5, 0x003154e2}}}, + {X: Field{[10]uint32{0x033980bf, 0x0015f52c, 0x000baf25, 0x00b94374, 0x0368a370, 0x00d23750, 0x006fd772, 0x020606e1, 0x02f06a75, 0x001c3f74}}, Y: Field{[10]uint32{0x00b75785, 0x03aa33a8, 0x00a5612e, 0x020e175d, 0x030a1035, 0x007b965a, 0x03a410d1, 0x021a5a55, 0x02c0d0d5, 0x0017b7f2}}}, + {X: Field{[10]uint32{0x00e16070, 0x001eef31, 0x02915ddc, 0x000c7bf5, 0x03f2a182, 0x03559d50, 0x03a48e51, 0x01c10c4e, 0x017bdfcd, 0x0028c05a}}, Y: Field{[10]uint32{0x02177ea1, 0x03468107, 0x01a130c0, 0x03df0284, 0x031735db, 0x017503e6, 0x01809fa2, 0x0393d420, 0x011cfb67, 0x001cdc3e}}}, + }, + { + {X: Field{[10]uint32{0x00e16070, 0x001eef31, 0x02915ddc, 0x000c7bf5, 0x03f2a182, 0x03559d50, 0x03a48e51, 0x01c10c4e, 0x017bdfcd, 0x0028c05a}}, Y: Field{[10]uint32{0x02177ea1, 0x03468107, 0x01a130c0, 0x03df0284, 0x031735db, 0x017503e6, 0x01809fa2, 0x0393d420, 0x011cfb67, 0x001cdc3e}}}, + {X: Field{[10]uint32{0x024ba5ae, 0x0080c5bc, 0x035d8114, 0x000130d2, 0x00b43965, 0x0382ffdd, 0x028d2419, 0x03c127cf, 0x019cff79, 0x0009f879}}, Y: Field{[10]uint32{0x003a45b3, 0x016ffba2, 0x023f784a, 0x029a6be9, 0x01df48a1, 0x031e77c1, 0x01b5e3cf, 0x038827b8, 0x02a6c804, 0x000c42c9}}}, + {X: Field{[10]uint32{0x038011fc, 0x0049c004, 0x00562670, 0x019eb5ca, 0x0183596a, 0x00880293, 0x02b13308, 0x03ac4455, 0x03a30815, 0x001ba0c4}}, Y: Field{[10]uint32{0x0315ab7d, 0x02da7e8f, 0x01f9a6ac, 0x016ba714, 0x0026af91, 0x0076b0c1, 0x0212db20, 0x03c81306, 0x018bdc24, 0x003051e0}}}, + {X: Field{[10]uint32{0x00aed7ae, 0x0245d727, 0x03b4f996, 0x037a13ef, 0x035a39ad, 0x024b5f93, 0x0188ec38, 0x012bb859, 0x03a5f686, 0x0031c4b9}}, Y: Field{[10]uint32{0x02156294, 0x00522a91, 0x0263784d, 0x01512c33, 0x01380d8e, 0x00477679, 0x02d4b823, 0x018ecd97, 0x01075163, 0x00125910}}}, + {X: Field{[10]uint32{0x000e6ba7, 0x01d26e34, 0x02f7f53a, 0x016d1245, 0x003d36ec, 0x0136786d, 0x011e038a, 0x02147caf, 0x01099784, 0x003e54aa}}, Y: Field{[10]uint32{0x0175e4c1, 0x02bbb940, 0x022b98db, 0x01ed318a, 0x02555716, 0x009fe83d, 0x01376a2e, 0x033afe18, 0x025b08ab, 0x00362a4e}}}, + {X: Field{[10]uint32{0x015b6f7e, 0x0127d716, 0x02021f95, 0x014f4e2c, 0x01beb32b, 0x00261db3, 0x02053aad, 0x028c320e, 0x011d04cd, 0x00296b1f}}, Y: Field{[10]uint32{0x02b19c84, 0x02edcc22, 0x00a4848d, 0x0183d606, 0x0399e391, 0x01f67b86, 0x00c3c924, 0x03d56cdb, 0x020ab540, 0x0037c2e2}}}, + {X: Field{[10]uint32{0x03aa0e93, 0x001968a0, 0x01f62690, 0x010ebbec, 0x028f2e39, 0x0367a24e, 0x00031a19, 0x03fb9d41, 0x015e31d3, 0x0025005b}}, Y: Field{[10]uint32{0x03addac2, 0x03b49a21, 0x0307a38e, 0x00eea95e, 0x03f48437, 0x03bb9bf5, 0x0355d354, 0x01365900, 0x02ee5c45, 0x0019d40c}}}, + {X: Field{[10]uint32{0x00a6db03, 0x00f87f91, 0x01d791b4, 0x01bd609d, 0x00b2c85d, 0x02e19d7f, 0x01c0d426, 0x008d7419, 0x0104a4b3, 0x0002ff01}}, Y: Field{[10]uint32{0x024b8542, 0x03234691, 0x00f0558a, 0x025cd175, 0x02374271, 0x0129b264, 0x038ec7f9, 0x03cd14fe, 0x027a6c34, 0x00065551}}}, + {X: Field{[10]uint32{0x0266b17b, 0x01218b80, 0x03b32b0f, 0x0288098a, 0x02023568, 0x02a7c270, 0x03978846, 0x02ca246e, 0x0174d59f, 0x003bc8b4}}, Y: Field{[10]uint32{0x01dac83e, 0x01b810de, 0x001b732a, 0x01bdc70d, 0x033ee727, 0x038d2841, 0x039ccc3a, 0x0131d5a3, 0x00c97ab2, 0x002f15e1}}}, + {X: Field{[10]uint32{0x034318b5, 0x00b150ba, 0x0045657f, 0x0204bd6e, 0x0272ed5c, 0x03c815fb, 0x0388a38d, 0x02343d55, 0x01fbe194, 0x0026217d}}, Y: Field{[10]uint32{0x0199175c, 0x01509505, 0x004af2fe, 0x03b59da4, 0x027c82ad, 0x01a33ae3, 0x012c4677, 0x0263e65b, 0x02f69ef1, 0x0004d7f5}}}, + {X: Field{[10]uint32{0x02d382a0, 0x00c056a4, 0x019ae231, 0x02f38bb3, 0x03f28dcb, 0x02cb7e49, 0x00acc780, 0x0224b4e7, 0x03ce4ceb, 0x002d7dfb}}, Y: Field{[10]uint32{0x01b4b532, 0x03c2aee9, 0x038c5ba2, 0x01b4a6b3, 0x0371fb09, 0x0032f774, 0x00957c6e, 0x03c8d4f0, 0x005b51c3, 0x001a10d5}}}, + {X: Field{[10]uint32{0x0281c1bc, 0x0292b933, 0x01b33b93, 0x03962aed, 0x03d25365, 0x01a339d9, 0x01815b8d, 0x00118d6b, 0x0305465c, 0x0000cd83}}, Y: Field{[10]uint32{0x026cbedd, 0x034a2595, 0x0150176d, 0x03ad7204, 0x03231728, 0x004c19d4, 0x0369c425, 0x0140053f, 0x01f90c57, 0x001f922d}}}, + {X: Field{[10]uint32{0x012cffa5, 0x02491910, 0x005c47e6, 0x00219a33, 0x0389ed42, 0x02f51890, 0x00754d8f, 0x0041d902, 0x03d2b2e7, 0x00073770}}, Y: Field{[10]uint32{0x0121954e, 0x01b62735, 0x03528ade, 0x0109acda, 0x02c41c98, 0x0250ac22, 0x01b126bf, 0x03e298ff, 0x020cb2f1, 0x000791da}}}, + {X: Field{[10]uint32{0x008993f7, 0x027dcd01, 0x03ce1150, 0x008fe09c, 0x02962552, 0x0322eb90, 0x034fbe1b, 0x0214458c, 0x006a56a3, 0x00021d4d}}, Y: Field{[10]uint32{0x02b9dcc2, 0x030b205c, 0x0018e601, 0x03c6c498, 0x03c9f4d4, 0x01d7e8a1, 0x02994e6e, 0x022c0c43, 0x00a8a2ef, 0x0001939b}}}, + {X: Field{[10]uint32{0x00a9f22f, 0x03f90e4d, 0x00e2ad35, 0x031485ea, 0x00cc0819, 0x01220d6c, 0x01f8b8b9, 0x03a4e7c8, 0x0359f25c, 0x000ab32c}}, Y: Field{[10]uint32{0x035c4927, 0x01772ced, 0x0150b7b7, 0x02fb16e9, 0x01154bd7, 0x037c3b7c, 0x0213a37e, 0x034b9464, 0x00e9588a, 0x00354629}}}, + {X: Field{[10]uint32{0x03b04ed4, 0x02b18f8f, 0x03fffab7, 0x002c44c1, 0x0208cc33, 0x0099e378, 0x03f9d051, 0x02e4d918, 0x01b389d6, 0x00242b61}}, Y: Field{[10]uint32{0x036ef150, 0x03535232, 0x0094d991, 0x02f8560a, 0x0039aefa, 0x009c88ae, 0x03dcbd94, 0x020986bf, 0x023620a3, 0x0003941e}}}, + }, + { + {X: Field{[10]uint32{0x03b04ed4, 0x02b18f8f, 0x03fffab7, 0x002c44c1, 0x0208cc33, 0x0099e378, 0x03f9d051, 0x02e4d918, 0x01b389d6, 0x00242b61}}, Y: Field{[10]uint32{0x036ef150, 0x03535232, 0x0094d991, 0x02f8560a, 0x0039aefa, 0x009c88ae, 0x03dcbd94, 0x020986bf, 0x023620a3, 0x0003941e}}}, + {X: Field{[10]uint32{0x03dc0151, 0x022c3b69, 0x03bad281, 0x039919c1, 0x017e125b, 0x0210978f, 0x00b1d154, 0x0101dfd1, 0x000ef8c9, 0x001f8b35}}, Y: Field{[10]uint32{0x00721ec7, 0x02f14e48, 0x0082c9a3, 0x0102bbb8, 0x01889bee, 0x0087be57, 0x0261a8b3, 0x03eace0a, 0x01082adc, 0x002416dd}}}, + {X: Field{[10]uint32{0x00b7b678, 0x0176ccec, 0x03816627, 0x0046f3d8, 0x02f13c43, 0x009adb1d, 0x0186bca4, 0x008c6e86, 0x017334e4, 0x00061b92}}, Y: Field{[10]uint32{0x00d91fc1, 0x001dbcbe, 0x035dca7a, 0x00951254, 0x02110772, 0x002df99f, 0x03fc825c, 0x02f612a9, 0x00e49807, 0x00303518}}}, + {X: Field{[10]uint32{0x0345e597, 0x000eb904, 0x03cf90e1, 0x03e76e14, 0x039c636b, 0x007bd4a9, 0x00975bbd, 0x036b3887, 0x012195be, 0x002851bd}}, Y: Field{[10]uint32{0x005a770a, 0x0159dabd, 0x014b0767, 0x02c887c2, 0x00ea67a5, 0x02ecc6d0, 0x0295dd2d, 0x03fac26b, 0x030ab053, 0x00296a66}}}, + {X: Field{[10]uint32{0x03421fb8, 0x01b972ec, 0x015d0cf0, 0x03cbbd69, 0x02984971, 0x00edc904, 0x0206b34c, 0x02fd8b9f, 0x01834f6d, 0x00018723}}, Y: Field{[10]uint32{0x023ccd80, 0x03bd9a13, 0x00dd2995, 0x012ce9bf, 0x00806713, 0x03817ad7, 0x01392590, 0x02d2deea, 0x02d99003, 0x001b7f1a}}}, + {X: Field{[10]uint32{0x03b9dc8f, 0x03226e12, 0x01333d08, 0x00fbd7b7, 0x01aba9e9, 0x0149e1f4, 0x00f70353, 0x01a19092, 0x01cee1c2, 0x003f6650}}, Y: Field{[10]uint32{0x019780d5, 0x03ab94f9, 0x0138d743, 0x03f7bbfa, 0x027872b2, 0x02221679, 0x0297e057, 0x039bd1b7, 0x0075bd40, 0x001e907b}}}, + {X: Field{[10]uint32{0x036b35a4, 0x012f862b, 0x03b48712, 0x029aac9f, 0x01889f37, 0x00ce9a2b, 0x03632407, 0x03944edc, 0x023a208e, 0x003da9ad}}, Y: Field{[10]uint32{0x01f422a6, 0x02dbfb20, 0x01862cae, 0x01b9d7b8, 0x0319d575, 0x0158061b, 0x02d3704f, 0x004e2c72, 0x00a8002d, 0x000f7df2}}}, + {X: Field{[10]uint32{0x00e45444, 0x02d4ff13, 0x004e20cb, 0x007bfb33, 0x00dbde42, 0x0096a045, 0x03bf9dab, 0x024ee6f3, 0x01a1cf19, 0x0034931d}}, Y: Field{[10]uint32{0x03dd4a57, 0x00c91a61, 0x02524cb9, 0x03d267c7, 0x02bf7593, 0x003969e2, 0x00b7d181, 0x0307473f, 0x012de84d, 0x00163f87}}}, + {X: Field{[10]uint32{0x02954c11, 0x0208fa29, 0x01018b96, 0x00f05583, 0x037fa8a4, 0x0141de3f, 0x00d1b0f1, 0x030dd888, 0x0028c286, 0x0021e8bf}}, Y: Field{[10]uint32{0x032a8b45, 0x038ccb89, 0x0124b756, 0x00fca9e0, 0x02cc4893, 0x00349d4c, 0x031948da, 0x03b3be5e, 0x018b45aa, 0x000ceb54}}}, + {X: Field{[10]uint32{0x03a43ddc, 0x006bfa61, 0x02e4aeeb, 0x0286a655, 0x0124282c, 0x039ef7d5, 0x001eb85e, 0x02b1b684, 0x03864946, 0x002a2c22}}, Y: Field{[10]uint32{0x03a2a6b8, 0x000720b7, 0x036c3870, 0x0114ac41, 0x00a325b4, 0x03c3a3b7, 0x01591ffd, 0x01a807cc, 0x028bc8a3, 0x001fc03f}}}, + {X: Field{[10]uint32{0x02706ab6, 0x01d1cab8, 0x03c0dae4, 0x00774b94, 0x023c0b34, 0x030e133f, 0x0156efcb, 0x02069a11, 0x02046e78, 0x003851cb}}, Y: Field{[10]uint32{0x0158de05, 0x021a85a7, 0x0127536e, 0x015514f3, 0x00aa589d, 0x0321887e, 0x03691978, 0x023f1a0f, 0x02aa47c5, 0x0020b364}}}, + {X: Field{[10]uint32{0x03963645, 0x0250cb0e, 0x031f8e3e, 0x0201f9c7, 0x032dcdb2, 0x038c4cbe, 0x034781a2, 0x0298f9b9, 0x014fb1b8, 0x00317c25}}, Y: Field{[10]uint32{0x008be2dd, 0x0221d3c0, 0x03e4edbf, 0x00ac011e, 0x02a33050, 0x009835f9, 0x023cb440, 0x02dbec62, 0x031021b0, 0x003554b4}}}, + {X: Field{[10]uint32{0x03a84fb6, 0x02b95081, 0x01021ebf, 0x01d43e85, 0x03c42368, 0x03922e7a, 0x00b4d601, 0x02bbd77a, 0x02c804f8, 0x00072be4}}, Y: Field{[10]uint32{0x03149109, 0x00606409, 0x0267616b, 0x01a5a8b3, 0x02ec1cc1, 0x03c40588, 0x01a64f8f, 0x0394e920, 0x005ac976, 0x002f092e}}}, + {X: Field{[10]uint32{0x01c8381f, 0x024c48fa, 0x011a753a, 0x0358e0f0, 0x000ed3d6, 0x013f8404, 0x02beb463, 0x025f38d3, 0x0355bc6d, 0x0037ceb3}}, Y: Field{[10]uint32{0x0347de3a, 0x03f5a588, 0x009e61af, 0x01f99f8e, 0x03b10195, 0x036b347a, 0x0099c1de, 0x01e9d698, 0x00ca5190, 0x001acf76}}}, + {X: Field{[10]uint32{0x02955911, 0x0233f852, 0x0152db76, 0x0289837b, 0x03107e16, 0x00f5e0e5, 0x009efe9b, 0x01943496, 0x0169af09, 0x001c16ff}}, Y: Field{[10]uint32{0x03d200e4, 0x01f1a4ff, 0x0272d8bb, 0x0148a90b, 0x02297f3b, 0x0150147e, 0x0263d81f, 0x03e6429f, 0x00130b73, 0x003852a9}}}, + {X: Field{[10]uint32{0x02c4c0da, 0x02d11327, 0x023351b7, 0x01e1c8fa, 0x02e88c56, 0x0207c58b, 0x039c1ad9, 0x017cce48, 0x01d2f63b, 0x0023da2e}}, Y: Field{[10]uint32{0x001fff82, 0x032fde54, 0x00bfdf23, 0x03fa5544, 0x01bbea2c, 0x01af8857, 0x01d90c2b, 0x00e61b78, 0x032dba06, 0x00198aa7}}}, + }, + { + {X: Field{[10]uint32{0x02c4c0da, 0x02d11327, 0x023351b7, 0x01e1c8fa, 0x02e88c56, 0x0207c58b, 0x039c1ad9, 0x017cce48, 0x01d2f63b, 0x0023da2e}}, Y: Field{[10]uint32{0x001fff82, 0x032fde54, 0x00bfdf23, 0x03fa5544, 0x01bbea2c, 0x01af8857, 0x01d90c2b, 0x00e61b78, 0x032dba06, 0x00198aa7}}}, + {X: Field{[10]uint32{0x00f27076, 0x011f7e13, 0x03eaee68, 0x02b79d89, 0x01d89858, 0x03f66bd6, 0x02febe77, 0x020563f2, 0x02fd784e, 0x0013526b}}, Y: Field{[10]uint32{0x03aa781e, 0x002d9880, 0x018466b9, 0x0069f7d3, 0x006e0f2d, 0x016729bc, 0x023f2103, 0x0344d79c, 0x0059a10d, 0x00334cbf}}}, + {X: Field{[10]uint32{0x023809fa, 0x00ae3b74, 0x014be18e, 0x02cd4765, 0x00fd845c, 0x009147c2, 0x0293363f, 0x027c8a2e, 0x01be2e50, 0x000e0e07}}, Y: Field{[10]uint32{0x031fed52, 0x001d460c, 0x0324dbd7, 0x032ccb63, 0x003681fc, 0x0083ac73, 0x01405a55, 0x005f72c2, 0x010a0fb9, 0x003928cb}}}, + {X: Field{[10]uint32{0x01b62026, 0x02f2d5ca, 0x01d4ee8d, 0x03822274, 0x038d2a3d, 0x03d716a9, 0x016619e1, 0x01be14df, 0x039e85d5, 0x001d5914}}, Y: Field{[10]uint32{0x02ce0cf3, 0x00b23eb6, 0x01f33417, 0x036552de, 0x01684aac, 0x029c8a49, 0x031df524, 0x02cf1948, 0x01413749, 0x003075a1}}}, + {X: Field{[10]uint32{0x03c2a310, 0x01099225, 0x026303ea, 0x02950048, 0x01f186ae, 0x0291a668, 0x0121b82a, 0x00ab9bda, 0x0324e437, 0x00124989}}, Y: Field{[10]uint32{0x0227ded0, 0x006da057, 0x038ce0c4, 0x004a9d7f, 0x036d1636, 0x01c50c0e, 0x02cfa569, 0x02afe568, 0x0373bca7, 0x0004cdf9}}}, + {X: Field{[10]uint32{0x03663da4, 0x019b0640, 0x00b81f81, 0x02467d74, 0x03a5a362, 0x03112a8a, 0x008a6ed7, 0x01c179a0, 0x02356aa5, 0x001a9992}}, Y: Field{[10]uint32{0x03fc22c4, 0x00c4fecc, 0x004c9c28, 0x0049f9b0, 0x01089916, 0x01afc335, 0x0386ec19, 0x03a62ca7, 0x025954fd, 0x00112684}}}, + {X: Field{[10]uint32{0x02bd2d31, 0x012c1e73, 0x01b8d138, 0x015bfc1b, 0x004dcc1a, 0x011df8be, 0x02253b3e, 0x00324357, 0x028c1a24, 0x0038c195}}, Y: Field{[10]uint32{0x02546e44, 0x02d020e4, 0x03826692, 0x010af8dc, 0x02ffbc80, 0x03df436d, 0x00f2b107, 0x01098222, 0x03e37893, 0x0003ab1b}}}, + {X: Field{[10]uint32{0x03b4a278, 0x0136b355, 0x0082b536, 0x017c7fd0, 0x0078f61a, 0x02b67332, 0x006ff301, 0x009de59d, 0x017ad9df, 0x000842a4}}, Y: Field{[10]uint32{0x007b2231, 0x01c4ff43, 0x00bfc7f2, 0x006abfc8, 0x013789e6, 0x02359cdf, 0x039be81f, 0x0395ede8, 0x035450b5, 0x0019c386}}}, + {X: Field{[10]uint32{0x023136b0, 0x0030e78d, 0x01dd9c53, 0x0366aad0, 0x0374ebf8, 0x00fef58c, 0x01b0e762, 0x033bf09c, 0x000e2428, 0x000ee784}}, Y: Field{[10]uint32{0x00dbbc8a, 0x03b05bdb, 0x01f81953, 0x028ceb4c, 0x02a2ae28, 0x03d1d6c9, 0x01533eb8, 0x02edc77c, 0x00152d16, 0x003ebee6}}}, + {X: Field{[10]uint32{0x0190124e, 0x023ad4f7, 0x0085dea9, 0x01a14a07, 0x02c1e802, 0x036ce055, 0x029a1946, 0x015505df, 0x0293c06c, 0x001ebab2}}, Y: Field{[10]uint32{0x02021e31, 0x001e0408, 0x0104b3f5, 0x03e6e42a, 0x0159bc1b, 0x01b07654, 0x02caff04, 0x0243c13e, 0x03190c13, 0x0037eca6}}}, + {X: Field{[10]uint32{0x03485d3f, 0x023c11cb, 0x03eee960, 0x01a2041e, 0x0317ca07, 0x0177b7bd, 0x036ca80f, 0x0326a4ad, 0x0149712a, 0x002ec2ab}}, Y: Field{[10]uint32{0x00a2f975, 0x00e4940f, 0x00bffe79, 0x03e8c59c, 0x00895a5a, 0x00a5f68d, 0x00d201f7, 0x0151e63b, 0x0053c583, 0x003a9a67}}}, + {X: Field{[10]uint32{0x01ed815e, 0x01c0b541, 0x017b470f, 0x02af0700, 0x0166f440, 0x02551eb4, 0x035fad21, 0x0128cbae, 0x02c679f7, 0x00155a36}}, Y: Field{[10]uint32{0x00602df0, 0x02fd9300, 0x02151d9b, 0x03bb8960, 0x03eb05f7, 0x0341cfca, 0x00d6fe01, 0x02e99160, 0x00742788, 0x001ea17e}}}, + {X: Field{[10]uint32{0x02718dc9, 0x03b4ce8d, 0x023de4ae, 0x0136c044, 0x03e1e58b, 0x02bf8044, 0x028eb197, 0x03f30353, 0x02c8e4ee, 0x001e4242}}, Y: Field{[10]uint32{0x00fae7c5, 0x00c8ac47, 0x0008b963, 0x02dc2ea4, 0x02dd36af, 0x0366aa95, 0x01816cbc, 0x016e3c4f, 0x022b9190, 0x003aaadc}}}, + {X: Field{[10]uint32{0x0244a0c8, 0x0306f70b, 0x01932abe, 0x0100bb8a, 0x032c9be7, 0x031d0db0, 0x01bae600, 0x0250f2f2, 0x02884807, 0x001807a7}}, Y: Field{[10]uint32{0x0200e557, 0x024d04ae, 0x02659547, 0x0169ad1b, 0x01424e0c, 0x03feaeec, 0x00b8cfa9, 0x023b31c5, 0x02aa6fdc, 0x00169e88}}}, + {X: Field{[10]uint32{0x0360c7d1, 0x025a531f, 0x01ad2a26, 0x039f35dd, 0x028dd71d, 0x01526e99, 0x003dbbce, 0x01ed5470, 0x01ade9f9, 0x0039df20}}, Y: Field{[10]uint32{0x02d72449, 0x01607ca0, 0x006d34ec, 0x03dc70a6, 0x03631470, 0x03aa0550, 0x03c3b323, 0x004c8717, 0x0078eef8, 0x000eb3c5}}}, + {X: Field{[10]uint32{0x03231e11, 0x01bf5414, 0x01e3e668, 0x01940da0, 0x011f48e8, 0x02630d82, 0x0399ff91, 0x0217597f, 0x030176af, 0x00393cfe}}, Y: Field{[10]uint32{0x03eb73bc, 0x030e15db, 0x011c9822, 0x013b2547, 0x006cc7e7, 0x0280adca, 0x021a6d0e, 0x013c7059, 0x033ad0ef, 0x000798d8}}}, + }, + { + {X: Field{[10]uint32{0x03231e11, 0x01bf5414, 0x01e3e668, 0x01940da0, 0x011f48e8, 0x02630d82, 0x0399ff91, 0x0217597f, 0x030176af, 0x00393cfe}}, Y: Field{[10]uint32{0x03eb73bc, 0x030e15db, 0x011c9822, 0x013b2547, 0x006cc7e7, 0x0280adca, 0x021a6d0e, 0x013c7059, 0x033ad0ef, 0x000798d8}}}, + {X: Field{[10]uint32{0x03cdaf2f, 0x03b888ce, 0x032953bf, 0x02096e85, 0x0388531a, 0x02f6cd8b, 0x0064110a, 0x01cf807b, 0x03b76867, 0x0012cc32}}, Y: Field{[10]uint32{0x0126b5b7, 0x00cf518f, 0x00575680, 0x020790d2, 0x011fdf3c, 0x01f0f12a, 0x01e2c577, 0x018a6dbe, 0x010265bb, 0x001d318d}}}, + {X: Field{[10]uint32{0x03f05bd6, 0x027c139a, 0x01946539, 0x000c84aa, 0x00a2f56e, 0x02d1c37b, 0x032f51fe, 0x013fa420, 0x0241bee4, 0x0024030c}}, Y: Field{[10]uint32{0x000d358b, 0x00ab4efc, 0x03b15de5, 0x0160f13b, 0x01d69853, 0x01c2c90e, 0x01c72045, 0x03c3d7e5, 0x01e8e8b1, 0x001b0c7e}}}, + {X: Field{[10]uint32{0x0273059f, 0x03a70a69, 0x03a192ff, 0x01414383, 0x03ec1171, 0x01d19205, 0x015b20b1, 0x01c03734, 0x00aa7ae1, 0x0032ed0d}}, Y: Field{[10]uint32{0x027c070c, 0x02a59088, 0x03845b7d, 0x013c2b57, 0x0141d45e, 0x022d77eb, 0x02d49233, 0x02f45d58, 0x000ab4da, 0x00128688}}}, + {X: Field{[10]uint32{0x03105c50, 0x030a3327, 0x005257a7, 0x03bdec4e, 0x0182e0de, 0x00f08cf3, 0x028cc340, 0x0242ab58, 0x0362ab05, 0x0016a340}}, Y: Field{[10]uint32{0x00a4cde9, 0x02c8060e, 0x013c35c9, 0x02299b40, 0x00a605f6, 0x0050ffdd, 0x02a6b724, 0x0394da4d, 0x02b113d4, 0x0030167a}}}, + {X: Field{[10]uint32{0x032e294d, 0x03ecbde9, 0x00dd5be6, 0x028fc034, 0x02f158eb, 0x037dfb71, 0x02289eae, 0x00d2e469, 0x00805cd5, 0x000a77f9}}, Y: Field{[10]uint32{0x00469b52, 0x00dc983b, 0x02e69441, 0x0070e4a7, 0x01d1f196, 0x02281793, 0x0034e758, 0x01cb866d, 0x0026d006, 0x002fd9b6}}}, + {X: Field{[10]uint32{0x02d64feb, 0x03862e6c, 0x0292c647, 0x02964a48, 0x003772f8, 0x01b2e93a, 0x02f3a577, 0x03d82923, 0x01031232, 0x00364fd3}}, Y: Field{[10]uint32{0x00698359, 0x03ef564d, 0x00da37b0, 0x002fbb24, 0x0193e043, 0x01372313, 0x037311c5, 0x009cce88, 0x015d45cb, 0x001e4955}}}, + {X: Field{[10]uint32{0x02de12c0, 0x01e1b841, 0x010e94d4, 0x03161d18, 0x006d9cda, 0x0155c913, 0x02d7b1e7, 0x00b07341, 0x016d9c10, 0x003d1e01}}, Y: Field{[10]uint32{0x025361fe, 0x01db39b2, 0x012d769a, 0x03d826ae, 0x0026c17e, 0x001a1a53, 0x00095e01, 0x00e51b9a, 0x0210f33e, 0x001fc279}}}, + {X: Field{[10]uint32{0x039fbc84, 0x00813350, 0x02016722, 0x0245815e, 0x037e7062, 0x018ab196, 0x014e2bc6, 0x00a1106c, 0x01c6e36f, 0x000bc1da}}, Y: Field{[10]uint32{0x00201bec, 0x0240b787, 0x015d73fb, 0x01a93137, 0x01cca79b, 0x02438852, 0x01df0079, 0x02f777e9, 0x03724d73, 0x002d0d3c}}}, + {X: Field{[10]uint32{0x0026dea2, 0x02cbf4b4, 0x005d8928, 0x0114b167, 0x0187c84c, 0x0269b758, 0x01a1e26d, 0x02efef5c, 0x0248d561, 0x0007773e}}, Y: Field{[10]uint32{0x003de522, 0x0121cf46, 0x0273406f, 0x02314701, 0x00666fd6, 0x0100b008, 0x03ea34d6, 0x00e9f507, 0x001fa992, 0x0031be90}}}, + {X: Field{[10]uint32{0x02a758ea, 0x01fab321, 0x019c4d53, 0x006249fc, 0x01911883, 0x01505b8e, 0x006895a1, 0x000c2656, 0x0380559e, 0x003f9f99}}, Y: Field{[10]uint32{0x037ab649, 0x008b6576, 0x020d1e4f, 0x001d10c4, 0x033b8017, 0x02124947, 0x0008e169, 0x0372e623, 0x0167a281, 0x000e2a9a}}}, + {X: Field{[10]uint32{0x033773f7, 0x03c011b0, 0x019953c7, 0x034d16d6, 0x0150d44f, 0x0278dca8, 0x01410c00, 0x008db4f8, 0x0226f5dd, 0x000d56cc}}, Y: Field{[10]uint32{0x0087c182, 0x00f0ffc6, 0x01109005, 0x01e33389, 0x001e25df, 0x03487f2e, 0x0310eedd, 0x000eb527, 0x00807047, 0x00023b29}}}, + {X: Field{[10]uint32{0x00fffefa, 0x005589a3, 0x01afade7, 0x013dc194, 0x01101804, 0x0030ebe1, 0x01f6f915, 0x00c49f5b, 0x01ca7538, 0x00246ebd}}, Y: Field{[10]uint32{0x037f6faf, 0x00dbcd37, 0x0303dc7d, 0x00439bf4, 0x02f4bef3, 0x01f74f64, 0x01969f12, 0x02f3af97, 0x03119347, 0x00013973}}}, + {X: Field{[10]uint32{0x00785491, 0x037d01a4, 0x025d1dd3, 0x01792baa, 0x035291de, 0x00be19ad, 0x019f43cb, 0x002eb958, 0x00f17f26, 0x0024ac78}}, Y: Field{[10]uint32{0x00be555b, 0x0234d816, 0x00d7b9c9, 0x01df88a2, 0x003985fb, 0x00d396b4, 0x027c1d10, 0x02798f85, 0x00028d8d, 0x00207b11}}}, + {X: Field{[10]uint32{0x0133c546, 0x00245fa3, 0x01af32fc, 0x02cca17b, 0x0382575f, 0x003d7775, 0x02c5373e, 0x01e29f2c, 0x0121cb3f, 0x00111610}}, Y: Field{[10]uint32{0x000b4fd4, 0x01b461c0, 0x0273660a, 0x00f3ecb2, 0x00852f0a, 0x0246b688, 0x0225eae3, 0x01d4e9dc, 0x0377f3f8, 0x000c2364}}}, + {X: Field{[10]uint32{0x00eae29e, 0x02dbab88, 0x01d0716f, 0x00bc3538, 0x02c7034f, 0x01169099, 0x0161537a, 0x03ccc7ae, 0x029b18eb, 0x0023003e}}, Y: Field{[10]uint32{0x0302414b, 0x00a93199, 0x02c54e7d, 0x03ea078d, 0x00c2fada, 0x01cdb25d, 0x01c343a3, 0x008686a7, 0x0267fea5, 0x003be91c}}}, + }, + { + {X: Field{[10]uint32{0x00eae29e, 0x02dbab88, 0x01d0716f, 0x00bc3538, 0x02c7034f, 0x01169099, 0x0161537a, 0x03ccc7ae, 0x029b18eb, 0x0023003e}}, Y: Field{[10]uint32{0x0302414b, 0x00a93199, 0x02c54e7d, 0x03ea078d, 0x00c2fada, 0x01cdb25d, 0x01c343a3, 0x008686a7, 0x0267fea5, 0x003be91c}}}, + {X: Field{[10]uint32{0x018ada5f, 0x0326ac30, 0x02fb3e84, 0x01fca448, 0x03fd7e29, 0x00daf87b, 0x03b5bf96, 0x02d1bea2, 0x00176da2, 0x000933f0}}, Y: Field{[10]uint32{0x038a586b, 0x02984e65, 0x014f268f, 0x028693e0, 0x03ed959c, 0x037b6a49, 0x028714d5, 0x01869a61, 0x03bb079c, 0x003affe3}}}, + {X: Field{[10]uint32{0x03fd913d, 0x025580fa, 0x009eac3f, 0x039bb953, 0x0050a680, 0x030aa348, 0x0107a084, 0x0377e1d3, 0x02a7e907, 0x000d8d8a}}, Y: Field{[10]uint32{0x012e243d, 0x03e6bab1, 0x03aafc44, 0x00435acb, 0x02d830bb, 0x00368aa0, 0x01624437, 0x02bf54d0, 0x00676cb8, 0x00123c9e}}}, + {X: Field{[10]uint32{0x00679da2, 0x00c62565, 0x017edf10, 0x01ff1fc1, 0x0216ddd6, 0x004a4bb1, 0x02ded72a, 0x02f20ba8, 0x0158d4b9, 0x0000129f}}, Y: Field{[10]uint32{0x039ffe26, 0x01fd211d, 0x0228a487, 0x025258fe, 0x0371c3b4, 0x03b1c6ce, 0x031d8147, 0x032dd79a, 0x01b76702, 0x002e62b1}}}, + {X: Field{[10]uint32{0x01132896, 0x02eafe6b, 0x02c967ca, 0x02eadef1, 0x01fcb1e3, 0x03764803, 0x015ad962, 0x00780bca, 0x036df32a, 0x001121e5}}, Y: Field{[10]uint32{0x03685248, 0x0006c4ab, 0x02a7a48c, 0x016989da, 0x0306b40d, 0x0115868c, 0x009a9077, 0x02bf87bf, 0x0060d115, 0x0009ef56}}}, + {X: Field{[10]uint32{0x035732c0, 0x021934dd, 0x037aa859, 0x039c8cdd, 0x02202fe5, 0x032c425b, 0x00a5d1b7, 0x012e6d89, 0x0331f8b7, 0x0023cf33}}, Y: Field{[10]uint32{0x01b9415b, 0x02f79799, 0x00825e73, 0x01dd5216, 0x00a90e68, 0x01f394f6, 0x02f46d99, 0x0394c627, 0x013e2d39, 0x0019fc73}}}, + {X: Field{[10]uint32{0x03a2670c, 0x0055bdaf, 0x033e6e08, 0x00ae8189, 0x007400f8, 0x00cd40c9, 0x02a9caa8, 0x020de22d, 0x02c28bcb, 0x0012934e}}, Y: Field{[10]uint32{0x02c1764d, 0x02e7ff75, 0x03eed808, 0x0132fca6, 0x01493059, 0x03bc0ae7, 0x027711dd, 0x01693c5f, 0x011c0184, 0x001c2aee}}}, + {X: Field{[10]uint32{0x007c4b65, 0x00d3ab72, 0x032a9ccf, 0x0228781e, 0x0196f880, 0x0019b392, 0x036c5e2c, 0x00071ff1, 0x01c4cbd0, 0x003b9f5a}}, Y: Field{[10]uint32{0x0136a95a, 0x023d13b4, 0x002e523e, 0x0266eba5, 0x02c33e89, 0x00c3cbb8, 0x0192abf0, 0x004e0868, 0x026ec1a4, 0x003b3218}}}, + {X: Field{[10]uint32{0x00b24aa7, 0x01abf893, 0x01c530d9, 0x0318e4d1, 0x00903108, 0x03fe3f86, 0x02e6fd89, 0x00600b0e, 0x01190ae9, 0x0017decb}}, Y: Field{[10]uint32{0x02693d7d, 0x0201d0d2, 0x01d0c6d7, 0x01c24f20, 0x03ce8deb, 0x03399f11, 0x023f80a3, 0x03caccc2, 0x0200c4fd, 0x0001dc0d}}}, + {X: Field{[10]uint32{0x03004130, 0x018cb5ff, 0x02b09842, 0x00ce070d, 0x0249fd86, 0x01532d6a, 0x02a14e52, 0x0061ac99, 0x01b5f72d, 0x001435dd}}, Y: Field{[10]uint32{0x036e406d, 0x02e31937, 0x024c3456, 0x0117bbda, 0x032975d9, 0x0004018f, 0x01724346, 0x02955f14, 0x023b0f4e, 0x000d007b}}}, + {X: Field{[10]uint32{0x037fb8bd, 0x006f17cb, 0x0090a419, 0x02857f90, 0x007bc464, 0x025221b6, 0x02c24e6d, 0x024340ab, 0x0051339d, 0x00144e5d}}, Y: Field{[10]uint32{0x03908c0f, 0x012b0b60, 0x00d5a809, 0x034f8fe6, 0x03fafc32, 0x03a05711, 0x008fefda, 0x00efcd2e, 0x003e4764, 0x003f35c5}}}, + {X: Field{[10]uint32{0x00889f3f, 0x007e0e4d, 0x01da7f2a, 0x022d1425, 0x03c4feb2, 0x005a6c3a, 0x02a3469b, 0x00465887, 0x0026f1b2, 0x0021e644}}, Y: Field{[10]uint32{0x03bb792b, 0x00b7e6f0, 0x0037b49e, 0x006fca18, 0x01e932f6, 0x005fc9e7, 0x032f2cb7, 0x00765884, 0x014ca5a9, 0x00377aae}}}, + {X: Field{[10]uint32{0x0236ca73, 0x01d2457b, 0x033ede2b, 0x034daeef, 0x03eac864, 0x03c05221, 0x0029112b, 0x037ee2a9, 0x02d62bfb, 0x0033e0c5}}, Y: Field{[10]uint32{0x02c25534, 0x0248650b, 0x0310f5b4, 0x02636235, 0x001c9615, 0x0037329a, 0x00445089, 0x0275cf8e, 0x018deb5d, 0x00027fad}}}, + {X: Field{[10]uint32{0x019c8f0a, 0x036611af, 0x00e64afc, 0x00b22f61, 0x00af3e9f, 0x0300ea1f, 0x0126603b, 0x02913f0e, 0x00ed297b, 0x001b8845}}, Y: Field{[10]uint32{0x016a2c9b, 0x02452374, 0x0195ebd7, 0x01d743e5, 0x01090bec, 0x00317647, 0x026d50f8, 0x001b89f6, 0x020cc26f, 0x00015646}}}, + {X: Field{[10]uint32{0x0352f97d, 0x024df5ad, 0x036613c8, 0x031d7cd1, 0x025a2efb, 0x0233e985, 0x039d2866, 0x02d27794, 0x029a4c4b, 0x00218437}}, Y: Field{[10]uint32{0x031b1af2, 0x01f73507, 0x003e0805, 0x027d5155, 0x0257ab4d, 0x014cfe67, 0x03cd99b2, 0x002ef24d, 0x03a02b63, 0x0034c665}}}, + {X: Field{[10]uint32{0x00cb3e41, 0x03f77f18, 0x012c0997, 0x013cc22e, 0x03143d08, 0x027a63b4, 0x010cec0a, 0x020a7cf8, 0x00e69dd4, 0x0039e89b}}, Y: Field{[10]uint32{0x032cfd51, 0x02a50873, 0x003e20e8, 0x0301083a, 0x00d0a6b2, 0x02abeec6, 0x01b006a1, 0x02612d1c, 0x02300fa7, 0x000a9d63}}}, + }, + { + {X: Field{[10]uint32{0x00cb3e41, 0x03f77f18, 0x012c0997, 0x013cc22e, 0x03143d08, 0x027a63b4, 0x010cec0a, 0x020a7cf8, 0x00e69dd4, 0x0039e89b}}, Y: Field{[10]uint32{0x032cfd51, 0x02a50873, 0x003e20e8, 0x0301083a, 0x00d0a6b2, 0x02abeec6, 0x01b006a1, 0x02612d1c, 0x02300fa7, 0x000a9d63}}}, + {X: Field{[10]uint32{0x034ae861, 0x0396e45e, 0x02fa9d97, 0x03935b8c, 0x01203c35, 0x01c8227d, 0x038bfb67, 0x03e34034, 0x02ba036b, 0x003d72be}}, Y: Field{[10]uint32{0x0182239c, 0x0308e703, 0x005f3cc9, 0x027154bc, 0x019b3b2a, 0x01020e45, 0x03f99046, 0x01b605ef, 0x038a022a, 0x00067a0e}}}, + {X: Field{[10]uint32{0x02ee42db, 0x027f4afe, 0x0314a70f, 0x016d1cc1, 0x01d9bbbc, 0x007b2ff0, 0x03b6edb9, 0x024543f1, 0x03e7d9b5, 0x00330d09}}, Y: Field{[10]uint32{0x01d87bdb, 0x00a70045, 0x0022dc62, 0x02b639c9, 0x0010e5cb, 0x02c85480, 0x01e3fd3f, 0x031a8621, 0x0041a521, 0x003a8926}}}, + {X: Field{[10]uint32{0x012a9651, 0x035335ef, 0x0182084f, 0x02712532, 0x028f9e50, 0x01fa0150, 0x01f5156d, 0x00fc7c4b, 0x0024ceb6, 0x003a4e24}}, Y: Field{[10]uint32{0x02786824, 0x0378add7, 0x00bfefef, 0x033b19dc, 0x018d7110, 0x019c6abc, 0x0287abaf, 0x019657e4, 0x00872372, 0x0021921a}}}, + {X: Field{[10]uint32{0x02d4a086, 0x00d9b19f, 0x0010eff4, 0x00563a71, 0x00b1d75c, 0x02f2d73d, 0x003c585f, 0x011177b2, 0x01bacd98, 0x002523c1}}, Y: Field{[10]uint32{0x022bca4b, 0x006003e7, 0x022d1a2a, 0x029c70fe, 0x011c2328, 0x00044e50, 0x03450a66, 0x00a8ce0b, 0x009ffb5a, 0x0021932a}}}, + {X: Field{[10]uint32{0x0296e4f1, 0x029c594b, 0x00030cb0, 0x01802ba0, 0x02ff5f01, 0x00d7bf32, 0x01777083, 0x0065f880, 0x008f0198, 0x0015aec5}}, Y: Field{[10]uint32{0x02b0582e, 0x027c067b, 0x030eb588, 0x0348012b, 0x037313d1, 0x038c3aa7, 0x0303ed8b, 0x0028cefa, 0x00a56130, 0x00282561}}}, + {X: Field{[10]uint32{0x03542c21, 0x02fa9b2d, 0x00c15c0c, 0x034a3a99, 0x03ae19f4, 0x01475b50, 0x016fc454, 0x026b2419, 0x01629291, 0x00096106}}, Y: Field{[10]uint32{0x032bfabf, 0x02f8c659, 0x02d7b3be, 0x021b930a, 0x01f3e3a1, 0x031d44f5, 0x025daa4c, 0x00912007, 0x031f1cdb, 0x003f2cd6}}}, + {X: Field{[10]uint32{0x00ddab8b, 0x03506b9f, 0x00e6fcf2, 0x00494f1a, 0x039f0e4d, 0x020b430d, 0x0116900d, 0x0095afb4, 0x01d87829, 0x00099156}}, Y: Field{[10]uint32{0x001de473, 0x0192d140, 0x031e6c9f, 0x02bce72b, 0x037a8631, 0x00d01cb5, 0x03bc6370, 0x0144b3bd, 0x011926d3, 0x001e796f}}}, + {X: Field{[10]uint32{0x001ecbf8, 0x01187d03, 0x017ca43c, 0x037a6bbb, 0x036489f0, 0x007a1087, 0x029754cc, 0x0314948a, 0x01c41373, 0x001f84b3}}, Y: Field{[10]uint32{0x00bed615, 0x016e336c, 0x019f59d4, 0x00763f87, 0x01c969f6, 0x03934496, 0x03f94dab, 0x0320dc50, 0x0388888d, 0x001c4a13}}}, + {X: Field{[10]uint32{0x018a26c1, 0x028a3ee2, 0x0304ae2d, 0x0285ce4e, 0x019a954f, 0x0309b871, 0x02351579, 0x014aedba, 0x00fd373b, 0x002da832}}, Y: Field{[10]uint32{0x0278217c, 0x0143b6a2, 0x01a06f55, 0x03a162ad, 0x00fc94a5, 0x02f69feb, 0x0101e3fe, 0x01d2526a, 0x03bfda03, 0x0017bc64}}}, + {X: Field{[10]uint32{0x00557d86, 0x01994705, 0x03ff417e, 0x011e3999, 0x031cfeec, 0x028169b3, 0x02b91ca7, 0x010a99dc, 0x02ff2a37, 0x0012e3b0}}, Y: Field{[10]uint32{0x01167eb9, 0x026c646d, 0x03692bdd, 0x03bc3f0f, 0x0328d5f2, 0x0149eb17, 0x024072de, 0x015eac52, 0x03ff04c1, 0x003f79b0}}}, + {X: Field{[10]uint32{0x01f23d1f, 0x015fd660, 0x036d8a4c, 0x035c8300, 0x02b6b25f, 0x03f62829, 0x03d489e1, 0x002eeef4, 0x00153d67, 0x002ce63a}}, Y: Field{[10]uint32{0x032ff3fc, 0x00faffe0, 0x016cd158, 0x022b4985, 0x02ea791d, 0x02c02e94, 0x037feb2f, 0x03d1fc1f, 0x0022572d, 0x001a7d67}}}, + {X: Field{[10]uint32{0x0380763c, 0x020b4ed1, 0x0291d52b, 0x017a4995, 0x025f8a6d, 0x025eb01f, 0x02436dc6, 0x00e9094c, 0x01073396, 0x003f3570}}, Y: Field{[10]uint32{0x00e851cb, 0x039d080e, 0x023a4b54, 0x00b9c591, 0x00b119b2, 0x03dcb8e3, 0x0320db35, 0x00b118ed, 0x03e2e552, 0x0006376a}}}, + {X: Field{[10]uint32{0x03e9fc8d, 0x0311e98c, 0x028ad2b1, 0x0026093c, 0x0348b848, 0x0118c69c, 0x00d0b205, 0x0177fe9b, 0x01c1bb42, 0x0018d283}}, Y: Field{[10]uint32{0x033f87b6, 0x01fcc2c9, 0x00616958, 0x02863b57, 0x03519ad5, 0x03792a73, 0x0205a657, 0x012db2bf, 0x021fe75a, 0x0035d6f8}}}, + {X: Field{[10]uint32{0x018ef686, 0x00ef8c17, 0x02e66bce, 0x03d0089c, 0x03f68e48, 0x02099b94, 0x038a5daf, 0x032f9488, 0x00ee5843, 0x002403cb}}, Y: Field{[10]uint32{0x0121a8cf, 0x029259f8, 0x016d5073, 0x03d0f245, 0x00596cdf, 0x00d27444, 0x01c551b1, 0x01096b58, 0x0155ec60, 0x001ccab0}}}, + {X: Field{[10]uint32{0x026b80ef, 0x00a7acf7, 0x0024f3cf, 0x0259f5e5, 0x0171cbcb, 0x00ef2f71, 0x03540c22, 0x00bb2348, 0x020ee366, 0x002d9167}}, Y: Field{[10]uint32{0x0271ba45, 0x02fc2d86, 0x01b2ff30, 0x01b5238d, 0x03c4b3ae, 0x0159876c, 0x01adf16e, 0x0381b787, 0x036d06f3, 0x00019f21}}}, + }, + { + {X: Field{[10]uint32{0x026b80ef, 0x00a7acf7, 0x0024f3cf, 0x0259f5e5, 0x0171cbcb, 0x00ef2f71, 0x03540c22, 0x00bb2348, 0x020ee366, 0x002d9167}}, Y: Field{[10]uint32{0x0271ba45, 0x02fc2d86, 0x01b2ff30, 0x01b5238d, 0x03c4b3ae, 0x0159876c, 0x01adf16e, 0x0381b787, 0x036d06f3, 0x00019f21}}}, + {X: Field{[10]uint32{0x033eb51f, 0x03bcdd40, 0x00211253, 0x01daf9e7, 0x03b68905, 0x007d0564, 0x0136f730, 0x00f22393, 0x00f0d982, 0x0039763a}}, Y: Field{[10]uint32{0x0262a2d9, 0x016f6596, 0x0354979d, 0x011b67c3, 0x00e509dc, 0x023fbbbc, 0x0316a57d, 0x00f812ae, 0x01b7861e, 0x0013707a}}}, + {X: Field{[10]uint32{0x019888e9, 0x033c9e4c, 0x00a8b439, 0x01afc912, 0x033d12ba, 0x0259a059, 0x0260d302, 0x029b8b77, 0x02773ac3, 0x0007e43a}}, Y: Field{[10]uint32{0x03113b79, 0x037f25fb, 0x022e656f, 0x03fb9654, 0x00213751, 0x007ae5aa, 0x00153d27, 0x02843a56, 0x027c15da, 0x00226f8d}}}, + {X: Field{[10]uint32{0x03155e64, 0x019d9203, 0x0011737a, 0x013ea28c, 0x01ab66be, 0x006eb837, 0x02b0f732, 0x0230f715, 0x03f77dbc, 0x002a7289}}, Y: Field{[10]uint32{0x021b3297, 0x03cccf15, 0x030ae1f3, 0x02086f2b, 0x00875d41, 0x0300b401, 0x017d2246, 0x00535346, 0x035678fb, 0x003d2ecc}}}, + {X: Field{[10]uint32{0x0162222c, 0x03bedbcd, 0x032c6085, 0x01e6479b, 0x02de0344, 0x00d2d4ae, 0x0302bad3, 0x0382b5b9, 0x014dedff, 0x0004e939}}, Y: Field{[10]uint32{0x00200145, 0x0059a32a, 0x004c08cb, 0x01deb724, 0x02d4f9c5, 0x03582694, 0x00ac2f81, 0x03a04ecb, 0x014e5816, 0x0032759f}}}, + {X: Field{[10]uint32{0x01bf6c42, 0x02acf770, 0x0075393e, 0x026c4662, 0x02f7793d, 0x01b3b9d3, 0x03465481, 0x00171fb9, 0x033cd6c1, 0x00340b86}}, Y: Field{[10]uint32{0x03bc54cc, 0x018ca3e1, 0x02aac133, 0x026e4c6d, 0x02bca587, 0x00349149, 0x0332270d, 0x00896049, 0x00f3ca8e, 0x002682dd}}}, + {X: Field{[10]uint32{0x003b46bb, 0x0393703d, 0x02525437, 0x018feb24, 0x0112ed3a, 0x0211576f, 0x0007c05d, 0x02ab7475, 0x02bf233c, 0x00186647}}, Y: Field{[10]uint32{0x0020a848, 0x03d64073, 0x00d8ef48, 0x027294bb, 0x011ca872, 0x01beeb7c, 0x02f38716, 0x03924a54, 0x0308f3fd, 0x00007178}}}, + {X: Field{[10]uint32{0x02ee247c, 0x02f18a75, 0x00ee06d4, 0x0211fd47, 0x011f478e, 0x0073f9d6, 0x03a10561, 0x035fc97a, 0x01800686, 0x001a3edc}}, Y: Field{[10]uint32{0x0201865d, 0x03e08b46, 0x03c9dae1, 0x002c131c, 0x039a8d58, 0x0006c301, 0x03354275, 0x0258d9cd, 0x023462dd, 0x003344b4}}}, + {X: Field{[10]uint32{0x021add3b, 0x02f8f774, 0x03d8f7e5, 0x013d15c9, 0x018b9a94, 0x03458984, 0x0039cdb0, 0x034e1d24, 0x02a4b787, 0x003a89eb}}, Y: Field{[10]uint32{0x028ce7dd, 0x038a476d, 0x01be71b5, 0x035a3938, 0x0278b212, 0x00970bd8, 0x023ceb23, 0x005f795c, 0x01e6e42a, 0x0031c3fc}}}, + {X: Field{[10]uint32{0x02da1f54, 0x016af6f8, 0x025df934, 0x03088c50, 0x021b2b52, 0x024d1445, 0x03550ab1, 0x0183ae61, 0x03b23df2, 0x001c4dfd}}, Y: Field{[10]uint32{0x01c3edbc, 0x02350db3, 0x01bb84af, 0x03551b3f, 0x03ebf081, 0x03c98029, 0x00dacb17, 0x0201d397, 0x02d80435, 0x0017f9e2}}}, + {X: Field{[10]uint32{0x011ff757, 0x02be2ed8, 0x0226e6e8, 0x01d07130, 0x029b4ce9, 0x01b8adb6, 0x01010f8b, 0x03f552ea, 0x01356b7f, 0x00165194}}, Y: Field{[10]uint32{0x014d031a, 0x019bb2a2, 0x03e3b28a, 0x01edfeff, 0x01961bbc, 0x017101be, 0x02038d01, 0x009d4010, 0x020ce5df, 0x000d844d}}}, + {X: Field{[10]uint32{0x036c15c2, 0x03d1fc63, 0x00f1ca1e, 0x005323ce, 0x003de764, 0x027450d2, 0x01739813, 0x01d5ffa8, 0x0052bca1, 0x002115aa}}, Y: Field{[10]uint32{0x03174134, 0x03bf0ca2, 0x03671ff1, 0x002615be, 0x034cc90f, 0x0041e79f, 0x0349ec37, 0x00b37bf4, 0x0246d484, 0x00386e76}}}, + {X: Field{[10]uint32{0x036160b5, 0x009628d8, 0x02bc0676, 0x0091c39f, 0x00ccc53f, 0x000247b0, 0x003af797, 0x00ca43a1, 0x023915f7, 0x0005ac9b}}, Y: Field{[10]uint32{0x00a1dc0e, 0x0097efd6, 0x03ef8146, 0x02b1c2e8, 0x00e1363a, 0x018d9535, 0x03643524, 0x03be2ed8, 0x025a6302, 0x000183d5}}}, + {X: Field{[10]uint32{0x021b793e, 0x0077a4e3, 0x025183d6, 0x028ac34b, 0x01d36aee, 0x033eab93, 0x002eccf2, 0x00739970, 0x017c9835, 0x0013c545}}, Y: Field{[10]uint32{0x03ba9889, 0x03307f70, 0x007aab4f, 0x012cd529, 0x02c0daff, 0x03352833, 0x01da9db9, 0x02e4e7f2, 0x0366079d, 0x00302538}}}, + {X: Field{[10]uint32{0x03b32db8, 0x0134a24d, 0x0391f396, 0x0127d91d, 0x01c91ed7, 0x010b3aa1, 0x02a143c8, 0x027e4c6f, 0x0295c455, 0x000092d4}}, Y: Field{[10]uint32{0x0264f760, 0x0153eaaa, 0x001a9594, 0x0044816e, 0x0062ab68, 0x031796fa, 0x02e2821c, 0x00c271ed, 0x038f5bff, 0x001827fb}}}, + {X: Field{[10]uint32{0x016943e8, 0x0283d6d2, 0x005a5ded, 0x0319f9cf, 0x031d6f1f, 0x0063c188, 0x03234aa1, 0x02e101e4, 0x00c8280b, 0x0035a2a0}}, Y: Field{[10]uint32{0x03133120, 0x0321099a, 0x0295a294, 0x023de114, 0x035b0e7b, 0x01ec38a2, 0x00b1f917, 0x021b4031, 0x01fff4b5, 0x0036e2ea}}}, + }, + { + {X: Field{[10]uint32{0x016943e8, 0x0283d6d2, 0x005a5ded, 0x0319f9cf, 0x031d6f1f, 0x0063c188, 0x03234aa1, 0x02e101e4, 0x00c8280b, 0x0035a2a0}}, Y: Field{[10]uint32{0x03133120, 0x0321099a, 0x0295a294, 0x023de114, 0x035b0e7b, 0x01ec38a2, 0x00b1f917, 0x021b4031, 0x01fff4b5, 0x0036e2ea}}}, + {X: Field{[10]uint32{0x0012b6fd, 0x02888b29, 0x02b828bd, 0x00f1bdc0, 0x00aced05, 0x01d48dcf, 0x02f8efb3, 0x0102f900, 0x009c677a, 0x003c5a90}}, Y: Field{[10]uint32{0x00a052da, 0x036b9dfb, 0x03ca4268, 0x0164927a, 0x02165406, 0x0138c393, 0x026a75a7, 0x009e675e, 0x01171453, 0x000a904c}}}, + {X: Field{[10]uint32{0x00a1c4f9, 0x010aa863, 0x0228235b, 0x00d32adf, 0x004f4efe, 0x0187c5bd, 0x000b83da, 0x01ca3131, 0x038f22bd, 0x001e057d}}, Y: Field{[10]uint32{0x0378bc15, 0x007a8dad, 0x011e19ab, 0x039855df, 0x015cb42d, 0x011630d7, 0x0193cf31, 0x02bda9f7, 0x01e8cd39, 0x00307180}}}, + {X: Field{[10]uint32{0x026dd4e4, 0x0282db8c, 0x018325c1, 0x00bdafb6, 0x01b89f4f, 0x025dbe13, 0x0237f699, 0x01bd0bef, 0x0106ab76, 0x0010552d}}, Y: Field{[10]uint32{0x035ded1c, 0x0164a541, 0x02dd46c8, 0x03674788, 0x02414ea9, 0x004097fd, 0x006e44d6, 0x02622253, 0x035043c5, 0x0008eb41}}}, + {X: Field{[10]uint32{0x028c8530, 0x01b870fb, 0x00d8e6d2, 0x0207be3d, 0x01512df6, 0x005a9b1b, 0x0377c640, 0x01005db8, 0x03cda0ec, 0x0030e49c}}, Y: Field{[10]uint32{0x018446c7, 0x00c3c3de, 0x01715c40, 0x02f68bbb, 0x0050edfc, 0x0070c666, 0x001d3944, 0x00f23a74, 0x02425743, 0x0023106f}}}, + {X: Field{[10]uint32{0x03ed5996, 0x0133a2d0, 0x02f53bde, 0x01664d82, 0x006831fe, 0x00a06e49, 0x02fbc903, 0x0293a924, 0x03e9fe99, 0x000691ad}}, Y: Field{[10]uint32{0x00c85cae, 0x013b447a, 0x0345c2ee, 0x02a7bd49, 0x01508794, 0x0018fafd, 0x03ee084a, 0x03715c38, 0x001ea3f1, 0x001a0f3a}}}, + {X: Field{[10]uint32{0x037a26c1, 0x00902ec8, 0x036a531f, 0x0163036f, 0x01166c6e, 0x00740ec9, 0x0122431c, 0x0046c09d, 0x0047f584, 0x00368c5d}}, Y: Field{[10]uint32{0x00f74d6f, 0x020dbb3b, 0x01525f51, 0x03175ea0, 0x03d36836, 0x0096762d, 0x0384167c, 0x0231a748, 0x03b87f5d, 0x001d4ee5}}}, + {X: Field{[10]uint32{0x037f0246, 0x0069e98f, 0x03ddf4c5, 0x0127f1c9, 0x0293e86e, 0x02d655ba, 0x00a8d4d0, 0x02570420, 0x012769cc, 0x002dcf19}}, Y: Field{[10]uint32{0x022a407b, 0x0394593a, 0x014e5597, 0x03931b95, 0x021a0d72, 0x016db07a, 0x0135893c, 0x032a752d, 0x03107174, 0x002699f6}}}, + {X: Field{[10]uint32{0x0339dc49, 0x018a2a4d, 0x01603d2b, 0x03699bd5, 0x02239392, 0x02ffc8c6, 0x024ac508, 0x0039b041, 0x02cb02af, 0x001a92f9}}, Y: Field{[10]uint32{0x02edd5cf, 0x028ae77c, 0x00a4d3e6, 0x0132c529, 0x00ab7e2b, 0x003ea016, 0x00166e36, 0x001d65f7, 0x03aa2a89, 0x003c5763}}}, + {X: Field{[10]uint32{0x00f8fb8c, 0x026fe776, 0x01e148ad, 0x026ea96f, 0x014cdc2b, 0x031cc044, 0x012facb5, 0x00803254, 0x027060d8, 0x000d966e}}, Y: Field{[10]uint32{0x00c8a3d1, 0x011ae31f, 0x0313575e, 0x0353912e, 0x031e142e, 0x031d261f, 0x01725f8e, 0x00685c4e, 0x01e806e0, 0x0013b9ea}}}, + {X: Field{[10]uint32{0x02987fac, 0x03a28311, 0x02f6798b, 0x021902a1, 0x008bc90f, 0x03b2628f, 0x02982603, 0x01fc4d13, 0x029f13ae, 0x00007df1}}, Y: Field{[10]uint32{0x01174c68, 0x0079ce06, 0x03c263f9, 0x038867da, 0x01cb7f5d, 0x00a6adbe, 0x031036e3, 0x0288b796, 0x003f36fd, 0x002753b3}}}, + {X: Field{[10]uint32{0x022e607b, 0x034d673b, 0x036aa1f4, 0x03b1b03c, 0x0388aa1e, 0x015ff74a, 0x01111f56, 0x01dcb083, 0x0367fd31, 0x0001dccf}}, Y: Field{[10]uint32{0x00614763, 0x03cc4773, 0x017d26a2, 0x03816f80, 0x0089e3bd, 0x02ec55bd, 0x0263a8c5, 0x020a17ab, 0x00fbac17, 0x003f67fa}}}, + {X: Field{[10]uint32{0x02daba4d, 0x00e86f5d, 0x016261d3, 0x003880c6, 0x039c65fb, 0x023e8af2, 0x03062edd, 0x034e072d, 0x0001761f, 0x00155fa5}}, Y: Field{[10]uint32{0x03a52316, 0x01d286ed, 0x0190a513, 0x03d7e90d, 0x02c5e9b8, 0x01732f21, 0x0135cfa1, 0x029f811b, 0x033a601f, 0x001e9fa3}}}, + {X: Field{[10]uint32{0x0005fbdd, 0x00b6734f, 0x001396e2, 0x0149d392, 0x0279589d, 0x01abe80c, 0x0120654b, 0x003120e2, 0x010a0031, 0x0038f91d}}, Y: Field{[10]uint32{0x0135b883, 0x0088c745, 0x02ffbcba, 0x02ff173e, 0x00b46587, 0x01868481, 0x02350499, 0x00964014, 0x0301abad, 0x0003e9e5}}}, + {X: Field{[10]uint32{0x01f5341a, 0x03d4bfca, 0x036b8038, 0x00b19a58, 0x019cc7a3, 0x01ec4050, 0x029d40ea, 0x0216a4ec, 0x02821998, 0x000eb6b6}}, Y: Field{[10]uint32{0x0186c6cc, 0x016024d9, 0x00fbcb51, 0x0396d17a, 0x03e9d6d2, 0x01aac405, 0x02e35bf3, 0x00da7d54, 0x02228999, 0x002ffa87}}}, + {X: Field{[10]uint32{0x028d3d5d, 0x016603f0, 0x01cea409, 0x02e5cd12, 0x009612ae, 0x001e8c2c, 0x01c02709, 0x0201094b, 0x017df65c, 0x000c92bb}}, Y: Field{[10]uint32{0x02ab7c84, 0x00892be5, 0x02843967, 0x0031f8cc, 0x0319213b, 0x02bb07d3, 0x030c0c35, 0x007cbfc4, 0x025774b6, 0x0019228d}}}, + }, + { + {X: Field{[10]uint32{0x028d3d5d, 0x016603f0, 0x01cea409, 0x02e5cd12, 0x009612ae, 0x001e8c2c, 0x01c02709, 0x0201094b, 0x017df65c, 0x000c92bb}}, Y: Field{[10]uint32{0x02ab7c84, 0x00892be5, 0x02843967, 0x0031f8cc, 0x0319213b, 0x02bb07d3, 0x030c0c35, 0x007cbfc4, 0x025774b6, 0x0019228d}}}, + {X: Field{[10]uint32{0x02919749, 0x00e0e06c, 0x01b1fa8f, 0x012a3783, 0x03f72b3e, 0x02035c80, 0x01326818, 0x012408a3, 0x031ea26f, 0x000cb24c}}, Y: Field{[10]uint32{0x0290b5e3, 0x03a5ec3c, 0x02b09631, 0x02f6b8e6, 0x00268a4a, 0x01bcf6ee, 0x01a2f02b, 0x0272d5a5, 0x032b3420, 0x0035f349}}}, + {X: Field{[10]uint32{0x03d53ed3, 0x0245d60b, 0x02ccef5c, 0x03ee7695, 0x01163f74, 0x0077df12, 0x00f60b93, 0x01cab56e, 0x03d59967, 0x00082102}}, Y: Field{[10]uint32{0x027a7132, 0x010ff946, 0x00899871, 0x01ce539c, 0x025487c4, 0x01aebeb0, 0x03bd476a, 0x02090d21, 0x0097cec1, 0x003ca64d}}}, + {X: Field{[10]uint32{0x039795e4, 0x0308949e, 0x02b8e1e1, 0x02db8611, 0x0069c161, 0x03fb1ac7, 0x002f6a70, 0x00de1528, 0x033b3b98, 0x003aca4b}}, Y: Field{[10]uint32{0x0253a0fe, 0x03a74beb, 0x01c6f5b7, 0x01d42444, 0x0357131d, 0x005160d6, 0x016634af, 0x02fa005a, 0x025a96ee, 0x002310f0}}}, + {X: Field{[10]uint32{0x00a35b35, 0x00b2ed62, 0x0121edbd, 0x02297028, 0x011ab5d8, 0x01623aff, 0x013d029e, 0x00e6eef4, 0x03f60eb3, 0x0039adaf}}, Y: Field{[10]uint32{0x001007bd, 0x00a4f6e7, 0x019c7c57, 0x0274efa6, 0x01fe3b6c, 0x00d65877, 0x02f43e38, 0x034bcc99, 0x02bd3300, 0x000697fc}}}, + {X: Field{[10]uint32{0x0032f9a2, 0x02e38a48, 0x006ccc48, 0x0143e87f, 0x03ce566f, 0x007fe3d8, 0x02374cb3, 0x009903b4, 0x02bd9a6b, 0x00096ab1}}, Y: Field{[10]uint32{0x0351d4f0, 0x008c284a, 0x033d9e76, 0x02ef1067, 0x02559883, 0x013c643d, 0x0332f54f, 0x0151b05b, 0x023ba644, 0x003d69b1}}}, + {X: Field{[10]uint32{0x00360dd3, 0x03be34b0, 0x022090d4, 0x00db6143, 0x0347a8a8, 0x038338ee, 0x030b8086, 0x0266ca22, 0x03745be4, 0x003814c5}}, Y: Field{[10]uint32{0x0024f87b, 0x03b3644f, 0x03dc2b2a, 0x037a6040, 0x0061b987, 0x016da805, 0x0009582b, 0x00bce736, 0x0371a5d9, 0x0037070e}}}, + {X: Field{[10]uint32{0x01303fdd, 0x00e755e2, 0x02d35aea, 0x01fc6747, 0x014d7145, 0x00127ef8, 0x020d4310, 0x017bcb98, 0x0201df3b, 0x0029968e}}, Y: Field{[10]uint32{0x02e68703, 0x0112a340, 0x013cadad, 0x00093ebb, 0x0286861d, 0x003b4b1d, 0x0343d8d9, 0x0171bee3, 0x00940cff, 0x001e63a8}}}, + {X: Field{[10]uint32{0x0098dfea, 0x011998b4, 0x038797c1, 0x0324ba99, 0x03fadcb3, 0x020e9795, 0x018e5d2a, 0x01b16780, 0x033a7788, 0x002a054e}}, Y: Field{[10]uint32{0x026d892f, 0x026a77db, 0x034158a4, 0x03dd0b6b, 0x03b1b5e0, 0x01e14f80, 0x018db9c5, 0x0183f14f, 0x016461d0, 0x000a91ce}}}, + {X: Field{[10]uint32{0x024c9489, 0x00c354b4, 0x00a98616, 0x039b8539, 0x00c0aef4, 0x01ba754a, 0x027887ff, 0x019f0a68, 0x0315d9d5, 0x0018a06e}}, Y: Field{[10]uint32{0x01f42bc6, 0x01fc9ae7, 0x033ad918, 0x01374c86, 0x0145fd96, 0x01ba6efd, 0x02738f45, 0x02a19648, 0x01a0908d, 0x000bf4f1}}}, + {X: Field{[10]uint32{0x03cecfa5, 0x039de922, 0x03b020a7, 0x03686c5a, 0x032a0d62, 0x00e3b68e, 0x034695c6, 0x02b76b7a, 0x03b30fec, 0x0013c170}}, Y: Field{[10]uint32{0x01d37b53, 0x034092a5, 0x008cd2ec, 0x00c7c06d, 0x01447ee4, 0x01654d2e, 0x01632361, 0x0109beb7, 0x01ea603d, 0x0014e926}}}, + {X: Field{[10]uint32{0x00445a7a, 0x00c72ea5, 0x01ec5901, 0x03c2073c, 0x01df9535, 0x01807235, 0x02f11b6c, 0x031afec4, 0x03bc9f06, 0x003e0bfb}}, Y: Field{[10]uint32{0x002a7a98, 0x02b38619, 0x011e5963, 0x02d91903, 0x00b51c83, 0x02502d29, 0x003942c1, 0x01ad9d54, 0x03bdc6fb, 0x00252ecd}}}, + {X: Field{[10]uint32{0x004b96aa, 0x039d9642, 0x03cce461, 0x00d548aa, 0x02d02986, 0x028ee603, 0x02405e1a, 0x02a46f89, 0x02b99f67, 0x00364c26}}, Y: Field{[10]uint32{0x02b28a86, 0x0313cdf0, 0x02978f26, 0x03eebf3f, 0x03d3b6c9, 0x009d32d7, 0x0210f066, 0x03155f5f, 0x032a9b4e, 0x001bbe66}}}, + {X: Field{[10]uint32{0x02b7d2d5, 0x03750ac5, 0x02a66f6f, 0x0134755b, 0x022637b8, 0x00bbd40b, 0x030f3d32, 0x01080f20, 0x03aa9783, 0x0028a16a}}, Y: Field{[10]uint32{0x0001f99c, 0x01754be4, 0x013e9c40, 0x0086dadd, 0x02d86573, 0x0042cb8a, 0x03952dfe, 0x01eb1a4a, 0x0292cd1b, 0x00395ba5}}}, + {X: Field{[10]uint32{0x038fcf0e, 0x02e34167, 0x026facf7, 0x03f79f12, 0x01d65b6f, 0x03aa8d04, 0x01c3446d, 0x00b4d6ea, 0x00a13856, 0x001f561f}}, Y: Field{[10]uint32{0x00bc9459, 0x03068276, 0x0380a501, 0x002b4c8d, 0x00c46390, 0x033f5ab4, 0x023400b6, 0x0131849c, 0x00038830, 0x0029ca57}}}, + {X: Field{[10]uint32{0x01054c96, 0x02f4dcff, 0x00a888e8, 0x00eea347, 0x00eec414, 0x017fb977, 0x011dfdbe, 0x03987db5, 0x014919cd, 0x00137e70}}, Y: Field{[10]uint32{0x02d10d5d, 0x02eb01b2, 0x0090192e, 0x03370a21, 0x00b5d506, 0x02876175, 0x00974c23, 0x021ca014, 0x0051092d, 0x00000d7b}}}, + }, + { + {X: Field{[10]uint32{0x01054c96, 0x02f4dcff, 0x00a888e8, 0x00eea347, 0x00eec414, 0x017fb977, 0x011dfdbe, 0x03987db5, 0x014919cd, 0x00137e70}}, Y: Field{[10]uint32{0x02d10d5d, 0x02eb01b2, 0x0090192e, 0x03370a21, 0x00b5d506, 0x02876175, 0x00974c23, 0x021ca014, 0x0051092d, 0x00000d7b}}}, + {X: Field{[10]uint32{0x01a49e04, 0x01ac3f07, 0x00d70c0c, 0x015395ea, 0x00e9de45, 0x012e1c22, 0x01317d4e, 0x02663349, 0x02d8d2cc, 0x003b4cb2}}, Y: Field{[10]uint32{0x001db9e0, 0x0048345f, 0x02b7db63, 0x02b2d27e, 0x0352da9f, 0x02167482, 0x001ca375, 0x00081295, 0x035f1d03, 0x0004a7fb}}}, + {X: Field{[10]uint32{0x01ef001d, 0x00897697, 0x0227ef4f, 0x035a626e, 0x0321f9bb, 0x0278ed92, 0x020bd1c0, 0x00b2bc83, 0x032db27e, 0x00295268}}, Y: Field{[10]uint32{0x00624783, 0x036c69fc, 0x0305add5, 0x00a98b25, 0x02eb141e, 0x02296515, 0x00cc30ed, 0x019b2f7d, 0x027906d9, 0x001e66de}}}, + {X: Field{[10]uint32{0x0083f855, 0x0106353a, 0x00016cb7, 0x032d8f0d, 0x0228c36d, 0x031c0d9b, 0x009e4111, 0x0183c601, 0x03724d63, 0x003a086a}}, Y: Field{[10]uint32{0x01852ddf, 0x03831a96, 0x023efed4, 0x031853b0, 0x018b3b19, 0x0105b3d6, 0x010d4115, 0x00f38d9f, 0x03f863f5, 0x002b7bf2}}}, + {X: Field{[10]uint32{0x012ed4cb, 0x03bc7971, 0x02c5a05a, 0x03ecf027, 0x02c954de, 0x00d4cb9b, 0x0308bd98, 0x03b3448f, 0x0330da07, 0x001f9e63}}, Y: Field{[10]uint32{0x00bb9462, 0x005981e5, 0x037a1257, 0x006ffe7c, 0x03b17357, 0x03bcbc15, 0x01a9549d, 0x02b20c10, 0x00c4a24d, 0x00348f73}}}, + {X: Field{[10]uint32{0x0206e37a, 0x01de2b10, 0x00731a24, 0x02523141, 0x034d8c18, 0x02d689d3, 0x00e83f46, 0x02000b3d, 0x0387f286, 0x002d49aa}}, Y: Field{[10]uint32{0x00c5ccab, 0x019e3ffc, 0x0392abf3, 0x026c03e8, 0x0128ce53, 0x0029bc63, 0x00aaced6, 0x00363b57, 0x01d77810, 0x001907cd}}}, + {X: Field{[10]uint32{0x03630834, 0x00e83ef4, 0x00067fdf, 0x00a18f6b, 0x008463f1, 0x02a32042, 0x01b9e96b, 0x011e0eb5, 0x02003151, 0x000893e8}}, Y: Field{[10]uint32{0x007a2272, 0x0311cdf1, 0x00f75cd3, 0x013b0294, 0x013d6292, 0x0247427d, 0x00b70fa3, 0x036970f1, 0x0232bb3e, 0x002ef953}}}, + {X: Field{[10]uint32{0x0041742e, 0x03d67bad, 0x006e9fbf, 0x011ebce0, 0x032f14a5, 0x0325a4e9, 0x015452fb, 0x03484bd1, 0x0194e51a, 0x000fc362}}, Y: Field{[10]uint32{0x03ecadbe, 0x014d8ef3, 0x03d958c6, 0x00b0eb44, 0x031e205e, 0x011e9b82, 0x025cb0e8, 0x00f71117, 0x0023f28c, 0x003ef5db}}}, + {X: Field{[10]uint32{0x003c19d7, 0x01927456, 0x0357bb67, 0x0116b0b3, 0x02bbbb5e, 0x0108a3bc, 0x01a25cce, 0x00e7904a, 0x00cc600a, 0x0030b528}}, Y: Field{[10]uint32{0x0107928d, 0x00a2e0b1, 0x01c9772f, 0x020c5cd1, 0x0126804a, 0x03d04983, 0x0183b5f7, 0x018a5350, 0x00f9c080, 0x00196b68}}}, + {X: Field{[10]uint32{0x01848116, 0x01507957, 0x027bba04, 0x0003f278, 0x001cc9b1, 0x03a52115, 0x0072ce10, 0x034ef814, 0x019abb39, 0x0005a4de}}, Y: Field{[10]uint32{0x027198b3, 0x03d9b080, 0x012e483d, 0x03971366, 0x02c03193, 0x01b1837b, 0x02af60f1, 0x03631539, 0x033b9cb2, 0x00312710}}}, + {X: Field{[10]uint32{0x00940c9a, 0x0202b52f, 0x0233084c, 0x0384ebd0, 0x0113cf3c, 0x01137708, 0x01585e27, 0x03cc6439, 0x027ec305, 0x000bb08a}}, Y: Field{[10]uint32{0x011e7a4d, 0x0253f661, 0x01bdacd1, 0x020f668d, 0x03124051, 0x00a71ffa, 0x02e24f50, 0x01e5a130, 0x0068de33, 0x0022c769}}}, + {X: Field{[10]uint32{0x01d9123f, 0x00e0c7ae, 0x03a7d7e9, 0x006c7e22, 0x0129fc79, 0x03ef47a4, 0x015f8eca, 0x01a9bcbe, 0x038f72aa, 0x000d06d4}}, Y: Field{[10]uint32{0x00bb9a40, 0x0282abc6, 0x026ed19e, 0x029c14a8, 0x0072dee6, 0x0049366b, 0x02f2f041, 0x03167ae9, 0x024719c1, 0x00161604}}}, + {X: Field{[10]uint32{0x01683eeb, 0x003b97f7, 0x03133aa7, 0x00e28234, 0x033e36eb, 0x00212e3c, 0x01af6525, 0x0233b2ac, 0x01738f9a, 0x002bf19a}}, Y: Field{[10]uint32{0x00cd4509, 0x00a72acc, 0x01fdc91e, 0x015497b7, 0x02570bab, 0x0288e705, 0x0359c7fc, 0x009d4af0, 0x01976dd2, 0x00000b08}}}, + {X: Field{[10]uint32{0x03aad77f, 0x001ec731, 0x03b7fa7d, 0x037c3d69, 0x006d4ebb, 0x01da659c, 0x004afc3a, 0x02e378ca, 0x033ec68e, 0x0013c3aa}}, Y: Field{[10]uint32{0x00e6eea8, 0x00fc4773, 0x0092ce6c, 0x0234096b, 0x00adaa07, 0x00ab0bca, 0x008de306, 0x02dd5d68, 0x027176eb, 0x002ca3a8}}}, + {X: Field{[10]uint32{0x036f4293, 0x0007e1ed, 0x01139ea2, 0x02d594f1, 0x0210e978, 0x01c2ca0b, 0x01bc8cf3, 0x00cc2448, 0x035a9f34, 0x0034955e}}, Y: Field{[10]uint32{0x0282740a, 0x0061e894, 0x01a5f1db, 0x00e37901, 0x03e34b68, 0x02d2b487, 0x0282f06e, 0x009fc049, 0x034355e4, 0x0029e1ec}}}, + {X: Field{[10]uint32{0x001f98cd, 0x0326722b, 0x00308cbf, 0x001535fc, 0x01523489, 0x03319808, 0x02d8a9c1, 0x0121c3eb, 0x01a84a47, 0x00270e46}}, Y: Field{[10]uint32{0x00fc599d, 0x039780f5, 0x008e6be7, 0x03ddb193, 0x01905326, 0x00983990, 0x00f044bf, 0x03755d61, 0x030f4a4d, 0x00376e13}}}, + }, + { + {X: Field{[10]uint32{0x001f98cd, 0x0326722b, 0x00308cbf, 0x001535fc, 0x01523489, 0x03319808, 0x02d8a9c1, 0x0121c3eb, 0x01a84a47, 0x00270e46}}, Y: Field{[10]uint32{0x00fc599d, 0x039780f5, 0x008e6be7, 0x03ddb193, 0x01905326, 0x00983990, 0x00f044bf, 0x03755d61, 0x030f4a4d, 0x00376e13}}}, + {X: Field{[10]uint32{0x014a09ec, 0x03bededa, 0x035f0435, 0x0294fa14, 0x000cd326, 0x01724aa9, 0x002fc69d, 0x03603c29, 0x01326255, 0x000b8f01}}, Y: Field{[10]uint32{0x00c7327e, 0x0121a062, 0x02651253, 0x00f1c1ed, 0x03e048a5, 0x020bf06a, 0x01ae240b, 0x01bed6f7, 0x0091656c, 0x000007fe}}}, + {X: Field{[10]uint32{0x03b64db3, 0x026354e3, 0x0138417b, 0x0328e775, 0x02a7ede4, 0x0394ee35, 0x03bb83fb, 0x0332dd02, 0x039229bd, 0x00304508}}, Y: Field{[10]uint32{0x000259be, 0x0033a7ff, 0x027d1e23, 0x02413515, 0x01a87580, 0x03a5e2f4, 0x00ecde4f, 0x01bf0a97, 0x02dc5b48, 0x00048dfd}}}, + {X: Field{[10]uint32{0x039c7ce6, 0x03c668aa, 0x00934205, 0x005a8642, 0x00337103, 0x03893769, 0x015fb7e3, 0x00561eb8, 0x024ccfa4, 0x003a38a8}}, Y: Field{[10]uint32{0x0036267c, 0x0007ada2, 0x03a73b2c, 0x000ed709, 0x016e09e6, 0x02fb8816, 0x02f2b2b3, 0x01746d32, 0x03ce0c6f, 0x0011b260}}}, + {X: Field{[10]uint32{0x03081e46, 0x03b60d00, 0x019ea1ed, 0x02315515, 0x013a5221, 0x02498d1c, 0x02d9c2c1, 0x01c89020, 0x03f831a7, 0x001b16d2}}, Y: Field{[10]uint32{0x03fbcd70, 0x03e72e02, 0x02a62ed1, 0x0209ab08, 0x0041d0cf, 0x038af91e, 0x0347863c, 0x0350bec8, 0x03714926, 0x0032c144}}}, + {X: Field{[10]uint32{0x011349e2, 0x00cab77c, 0x00c05808, 0x03d05d49, 0x0160e3ec, 0x0106b5e3, 0x02147e9a, 0x030b9f98, 0x0324c6b9, 0x003e0160}}, Y: Field{[10]uint32{0x032025fc, 0x0311a796, 0x0288d5fa, 0x02d589b7, 0x03509498, 0x03a84488, 0x0281aa60, 0x015b3737, 0x025a0a88, 0x00257183}}}, + {X: Field{[10]uint32{0x024dcd4b, 0x0396bb11, 0x00124dca, 0x03566447, 0x010c30c7, 0x02ac4291, 0x0270665c, 0x02b792d5, 0x0056670c, 0x00387a6a}}, Y: Field{[10]uint32{0x03041f2c, 0x02d897ae, 0x02b292d0, 0x026ab285, 0x027f44d1, 0x02c95de4, 0x02c43599, 0x0314c6de, 0x02954455, 0x00158ac2}}}, + {X: Field{[10]uint32{0x02c7b3c2, 0x034e59a2, 0x01b5f5b0, 0x0248e0f5, 0x0212acaf, 0x01c00ca8, 0x030a38b1, 0x01cf0acb, 0x02ac5d85, 0x0029d526}}, Y: Field{[10]uint32{0x0287eaef, 0x03245c64, 0x016dffa0, 0x00554dc4, 0x035d6b51, 0x00651f4a, 0x01a1d70c, 0x009054cd, 0x01b90d1c, 0x002f45f4}}}, + {X: Field{[10]uint32{0x03add73c, 0x021dbf8a, 0x00b7d005, 0x03640a99, 0x008fd9cd, 0x03b70508, 0x00a74e42, 0x02c265de, 0x0257ad11, 0x00146c86}}, Y: Field{[10]uint32{0x0336d8d1, 0x0352b87a, 0x034ba6f7, 0x003ca31c, 0x026c2013, 0x034b073e, 0x00a07f01, 0x034f9755, 0x0010001f, 0x00001e4c}}}, + {X: Field{[10]uint32{0x017e2c95, 0x037265af, 0x00d82ab7, 0x02852e1e, 0x036f3f2b, 0x02b15055, 0x019a12a8, 0x034697b7, 0x03fbb24a, 0x003281f2}}, Y: Field{[10]uint32{0x0150dfa2, 0x0266eb23, 0x00cbf05e, 0x03ccedf8, 0x013ac306, 0x030419b2, 0x00a2267b, 0x003b7d2a, 0x011032df, 0x002bb70c}}}, + {X: Field{[10]uint32{0x0309f34b, 0x01742dce, 0x026ce6d7, 0x03982331, 0x01e58873, 0x00fce758, 0x02b6296f, 0x02de6186, 0x03a63b1c, 0x0025c07c}}, Y: Field{[10]uint32{0x00df5793, 0x03214330, 0x00794acd, 0x00e5ff73, 0x037104bc, 0x0055a0cd, 0x03031b53, 0x003b4575, 0x03bb8caf, 0x000f7512}}}, + {X: Field{[10]uint32{0x02548418, 0x01c7446b, 0x03923173, 0x01f62260, 0x02dce488, 0x00de8d06, 0x03072b05, 0x01f8a4be, 0x00c9e481, 0x000b9b6c}}, Y: Field{[10]uint32{0x00a2b918, 0x01e4b004, 0x035f1e69, 0x01cf870f, 0x004b8e1d, 0x022a4459, 0x01314897, 0x01befe88, 0x02411d77, 0x001d3ada}}}, + {X: Field{[10]uint32{0x031e2f46, 0x039888ef, 0x0383015c, 0x007a1c9d, 0x035270f7, 0x00358f15, 0x01592e04, 0x019b3111, 0x001d2c9e, 0x00280dad}}, Y: Field{[10]uint32{0x02ffb349, 0x00789a57, 0x031f4f73, 0x020b3fc2, 0x010680e2, 0x01e7ac23, 0x031f6aa4, 0x01acf5f7, 0x01a003e9, 0x0030efe4}}}, + {X: Field{[10]uint32{0x03db2a09, 0x00154580, 0x01bbf096, 0x021f7080, 0x01f63142, 0x029d9b68, 0x01638800, 0x0030d4af, 0x0004d9c3, 0x002c2773}}, Y: Field{[10]uint32{0x00b1a093, 0x01f6cea0, 0x014e7aed, 0x035305ab, 0x026a951b, 0x02bab403, 0x008d1635, 0x009037dc, 0x006481cf, 0x00229fcc}}}, + {X: Field{[10]uint32{0x004cea08, 0x022e40e3, 0x0221dbcd, 0x02e8383a, 0x02654b58, 0x01001194, 0x00a61153, 0x023141bd, 0x02dbaa4e, 0x001aa17e}}, Y: Field{[10]uint32{0x0062f4f3, 0x037b3966, 0x021b6a19, 0x012d0f5c, 0x00b4271a, 0x023f988c, 0x01933c14, 0x0196754c, 0x0204bae4, 0x00002d91}}}, + {X: Field{[10]uint32{0x00a959e5, 0x004e0848, 0x014cc5a2, 0x00ea2e47, 0x0391e149, 0x036381ae, 0x0205f281, 0x00bf7e37, 0x030b1dd1, 0x001815c5}}, Y: Field{[10]uint32{0x0385a2a8, 0x026fa4c8, 0x00c65e89, 0x02f0fb89, 0x02465152, 0x01c77c98, 0x019a2daf, 0x01201eb7, 0x00b26a6a, 0x002686bc}}}, + }, + { + {X: Field{[10]uint32{0x00a959e5, 0x004e0848, 0x014cc5a2, 0x00ea2e47, 0x0391e149, 0x036381ae, 0x0205f281, 0x00bf7e37, 0x030b1dd1, 0x001815c5}}, Y: Field{[10]uint32{0x0385a2a8, 0x026fa4c8, 0x00c65e89, 0x02f0fb89, 0x02465152, 0x01c77c98, 0x019a2daf, 0x01201eb7, 0x00b26a6a, 0x002686bc}}}, + {X: Field{[10]uint32{0x02fd545c, 0x02729760, 0x00e66189, 0x0237528a, 0x037c133f, 0x01b72177, 0x014110a4, 0x0381900e, 0x01677c52, 0x0019dcff}}, Y: Field{[10]uint32{0x007eb1ae, 0x01fc0d25, 0x00f98e8c, 0x03d6871b, 0x03ead780, 0x034ac91a, 0x00f25c9d, 0x0194bc3c, 0x02d8cd97, 0x001113ad}}}, + {X: Field{[10]uint32{0x031c032b, 0x036858a5, 0x01c980d4, 0x02285ebf, 0x01ff6b66, 0x03f1d9b1, 0x0111b5fd, 0x000980f7, 0x00fcd6e0, 0x001c7aea}}, Y: Field{[10]uint32{0x0268359f, 0x02d6a385, 0x00755e7a, 0x0345dd2d, 0x0371931a, 0x01532edf, 0x0260516f, 0x034e77bd, 0x02624b61, 0x0034bfc4}}}, + {X: Field{[10]uint32{0x0386f021, 0x03185ac2, 0x00050373, 0x00e0411a, 0x020374e4, 0x038321f0, 0x03c79aac, 0x0395948d, 0x0194d17c, 0x00383e1b}}, Y: Field{[10]uint32{0x01bf325a, 0x02de732d, 0x0045b3b6, 0x0300457f, 0x009a80bc, 0x0072268b, 0x011e832f, 0x02f3d1ea, 0x0073730a, 0x000315c7}}}, + {X: Field{[10]uint32{0x0203a61c, 0x0391d14a, 0x00574d06, 0x03d1a41c, 0x00507868, 0x02aaa774, 0x0217442b, 0x02748cb2, 0x0305b324, 0x002157b0}}, Y: Field{[10]uint32{0x025dfc07, 0x031baab1, 0x004965df, 0x013a85f9, 0x02d332f7, 0x02d0bed3, 0x003cbff9, 0x00705fd5, 0x012ec5f0, 0x00037617}}}, + {X: Field{[10]uint32{0x02aa138b, 0x00367dce, 0x02cd66df, 0x002fbde1, 0x0363efba, 0x03119c7f, 0x003ebc18, 0x02b8a1e5, 0x0249d3c3, 0x00105ff8}}, Y: Field{[10]uint32{0x021ae869, 0x0246ccd2, 0x026afd1c, 0x037b0155, 0x03c19daf, 0x003ea795, 0x00a5d29f, 0x00f8e308, 0x01d7bcd2, 0x00008d62}}}, + {X: Field{[10]uint32{0x0332d706, 0x03029207, 0x00678b00, 0x0291d1a8, 0x020618cc, 0x00256fe8, 0x010d29a3, 0x03efc7c5, 0x006abab3, 0x000f3912}}, Y: Field{[10]uint32{0x007fd9e4, 0x01cd8dff, 0x0289f40b, 0x010f3587, 0x02edd156, 0x00425241, 0x02fd046b, 0x01e14a23, 0x008daae3, 0x0039dd50}}}, + {X: Field{[10]uint32{0x02da6e03, 0x001dcb00, 0x016038ad, 0x03e4232b, 0x034c277d, 0x035a5bd3, 0x0191e193, 0x0141073a, 0x01ab9f24, 0x0010b285}}, Y: Field{[10]uint32{0x00347793, 0x02227ea3, 0x03ea7836, 0x029a041a, 0x02d66e85, 0x032e003b, 0x03ce4d1f, 0x015f2591, 0x0326c81c, 0x001a34bb}}}, + {X: Field{[10]uint32{0x011cd3fb, 0x01032ede, 0x03e686db, 0x03f65ca6, 0x034a2a33, 0x03e2113a, 0x02e03218, 0x00dfebc0, 0x01143f4e, 0x00047331}}, Y: Field{[10]uint32{0x01160d86, 0x01c5ae95, 0x03472a93, 0x03f4b374, 0x01fa0b1e, 0x00e3308e, 0x028e2449, 0x00477ad4, 0x032a902b, 0x0012a95a}}}, + {X: Field{[10]uint32{0x01583a3e, 0x02ebc10a, 0x02808108, 0x02662c55, 0x00b15205, 0x036521c7, 0x0275dbbe, 0x03df955c, 0x033f16d0, 0x00162255}}, Y: Field{[10]uint32{0x025b124f, 0x016632df, 0x029cf8f1, 0x01335331, 0x0096fe29, 0x0269ad39, 0x00f5df8a, 0x015bf811, 0x0062c558, 0x0006be8a}}}, + {X: Field{[10]uint32{0x018f7552, 0x02e44658, 0x00fac387, 0x022e6015, 0x01bd4113, 0x0208e0b7, 0x0397774f, 0x0271bd0e, 0x0317e514, 0x0000942e}}, Y: Field{[10]uint32{0x0110b14d, 0x0212588d, 0x02f1e3f0, 0x00f0ccf5, 0x03da006f, 0x03fa7605, 0x02d7df75, 0x020208d0, 0x00fc9bbe, 0x001cc64c}}}, + {X: Field{[10]uint32{0x0307e636, 0x0162d040, 0x011d97e1, 0x039cc858, 0x00b4a77d, 0x028844b2, 0x01bc29bd, 0x01d910f7, 0x01601638, 0x0008867c}}, Y: Field{[10]uint32{0x01f15109, 0x0286cb5c, 0x02f55e07, 0x0034fdce, 0x016dd723, 0x02e08c2f, 0x0006d4f1, 0x028bd86e, 0x00ac5cb6, 0x00012a61}}}, + {X: Field{[10]uint32{0x03725d12, 0x004fa4e7, 0x0347505d, 0x02ef72d7, 0x03d94642, 0x02808bef, 0x00a39ce0, 0x01ff4ead, 0x0088b346, 0x00069d27}}, Y: Field{[10]uint32{0x03ac56e4, 0x01945348, 0x01aa7013, 0x01a62643, 0x03607208, 0x00abcf63, 0x018be75c, 0x0038b3d1, 0x019573ec, 0x001fa474}}}, + {X: Field{[10]uint32{0x02c704c0, 0x00b59c2d, 0x0394f5d2, 0x0183b378, 0x00560446, 0x00d41e09, 0x027f8a6e, 0x0099d285, 0x0107c92f, 0x0029deaa}}, Y: Field{[10]uint32{0x02dfea48, 0x02f1c11f, 0x01462af8, 0x0311d056, 0x014c921f, 0x030af56a, 0x01e188e5, 0x033f93c8, 0x02e5bf35, 0x002e2206}}}, + {X: Field{[10]uint32{0x01fae458, 0x0012394a, 0x0097fd61, 0x0109d9bb, 0x028b0a5c, 0x037edecc, 0x01d156a5, 0x00863042, 0x005be0f8, 0x0031d41a}}, Y: Field{[10]uint32{0x0357b598, 0x01a10655, 0x011a2b01, 0x0140cd65, 0x000a5dca, 0x019cb1ed, 0x012f414c, 0x007817ed, 0x01f8cf92, 0x003ab5e5}}}, + {X: Field{[10]uint32{0x00b94266, 0x01a5cfbb, 0x01f12b1a, 0x03ee9f53, 0x0080cef0, 0x006368c6, 0x01439a45, 0x02104508, 0x038e23a0, 0x00295db7}}, Y: Field{[10]uint32{0x01b28ec8, 0x02f846b8, 0x019f3ee8, 0x029fd453, 0x00432e10, 0x0163360b, 0x02b97afe, 0x0102cb24, 0x0320e766, 0x001029af}}}, + }, + { + {X: Field{[10]uint32{0x00b94266, 0x01a5cfbb, 0x01f12b1a, 0x03ee9f53, 0x0080cef0, 0x006368c6, 0x01439a45, 0x02104508, 0x038e23a0, 0x00295db7}}, Y: Field{[10]uint32{0x01b28ec8, 0x02f846b8, 0x019f3ee8, 0x029fd453, 0x00432e10, 0x0163360b, 0x02b97afe, 0x0102cb24, 0x0320e766, 0x001029af}}}, + {X: Field{[10]uint32{0x02704896, 0x015c96f6, 0x03b8dcec, 0x018f26b3, 0x026f3ba0, 0x02f9c6eb, 0x02520867, 0x0168ed51, 0x0062ef3b, 0x00279773}}, Y: Field{[10]uint32{0x0282c835, 0x009da772, 0x0351248f, 0x006180c3, 0x0279605d, 0x0131d848, 0x03d3a215, 0x017cfa97, 0x012ddb92, 0x001bfb74}}}, + {X: Field{[10]uint32{0x019ed6c1, 0x02bad633, 0x013d6b68, 0x016f0f56, 0x02c24e74, 0x0017b743, 0x03fc1877, 0x03d4fa02, 0x036dcb74, 0x0000ca0c}}, Y: Field{[10]uint32{0x00fafeee, 0x01baf9be, 0x0094adec, 0x037c972d, 0x00265bf4, 0x00835f23, 0x02d5943a, 0x027ca311, 0x003812fd, 0x001c6a26}}}, + {X: Field{[10]uint32{0x00bf7ea0, 0x03b561d1, 0x01833953, 0x028173bd, 0x00e33625, 0x01bc0ec8, 0x016e9f97, 0x0116b7e3, 0x00375b87, 0x0029f782}}, Y: Field{[10]uint32{0x03bcabaa, 0x030154e6, 0x01aa2e04, 0x0303faf1, 0x02645a47, 0x012223a6, 0x004a0b33, 0x02979484, 0x02b057ad, 0x00298f65}}}, + {X: Field{[10]uint32{0x0235983a, 0x02a6a34c, 0x00eb2919, 0x00dc04ef, 0x01e38a10, 0x003f854c, 0x023926d7, 0x00715371, 0x02ae8b91, 0x003393d3}}, Y: Field{[10]uint32{0x013cdecf, 0x035ac643, 0x0340aecf, 0x008a3afd, 0x03526c65, 0x039c1d50, 0x02de0249, 0x03eeecfa, 0x0173c390, 0x003cf27e}}}, + {X: Field{[10]uint32{0x02da57e4, 0x01592299, 0x019f86b7, 0x01bbf737, 0x0298c499, 0x018c6f07, 0x01ea2a74, 0x0062e76f, 0x02e39839, 0x001a4336}}, Y: Field{[10]uint32{0x033f33bb, 0x00656d24, 0x023d42b6, 0x03ef3a56, 0x01f863d8, 0x01656253, 0x01fd91bf, 0x01e691ea, 0x0079677b, 0x002102b7}}}, + {X: Field{[10]uint32{0x01b0e6c9, 0x02aad995, 0x00c89a6d, 0x033de1b9, 0x01db5ff9, 0x037e2f2f, 0x0228fb36, 0x018889e3, 0x03a54b98, 0x00136faf}}, Y: Field{[10]uint32{0x02b2cc25, 0x029e1557, 0x00efae94, 0x02caf141, 0x03589311, 0x03888a7c, 0x01a626e6, 0x00ebb7d1, 0x03b03c91, 0x00043fb9}}}, + {X: Field{[10]uint32{0x02d916fb, 0x023e8412, 0x024a3a9f, 0x03f7a527, 0x03e68065, 0x0073fd32, 0x03c35ac0, 0x02032704, 0x018e6890, 0x00309999}}, Y: Field{[10]uint32{0x00887814, 0x03bd4ae8, 0x0138856a, 0x037fad84, 0x036b8fec, 0x009189ea, 0x0398170b, 0x036aac3d, 0x013854e7, 0x0039fa16}}}, + {X: Field{[10]uint32{0x01857295, 0x00068469, 0x03f0164e, 0x01fc0d0c, 0x0069c8e4, 0x02872848, 0x02e118fc, 0x0170862c, 0x000bfef4, 0x00290a89}}, Y: Field{[10]uint32{0x027eb9c1, 0x00ddffb2, 0x0139556b, 0x00b34546, 0x0027a1c2, 0x01376931, 0x026b22b2, 0x0175159e, 0x03f26100, 0x000ea82c}}}, + {X: Field{[10]uint32{0x005c5b40, 0x02f3f580, 0x03d1e269, 0x021e6ee7, 0x03150b96, 0x023330f7, 0x01ed382e, 0x0334536b, 0x00c8bf53, 0x00292d4f}}, Y: Field{[10]uint32{0x01c61bfd, 0x017b45b4, 0x019e3d1f, 0x026fdd49, 0x03199cca, 0x037f6961, 0x015ca003, 0x016e0112, 0x00ce8300, 0x0033bbc2}}}, + {X: Field{[10]uint32{0x03cdc098, 0x003fd55b, 0x02803222, 0x003dab91, 0x01550ae0, 0x00312670, 0x03f1f86c, 0x008899e9, 0x032f96fb, 0x000d384a}}, Y: Field{[10]uint32{0x027474e2, 0x02c6b79a, 0x003f664c, 0x00c3c662, 0x0304df51, 0x005e5cb6, 0x034cbc84, 0x034c8b65, 0x02ddd7b5, 0x002992b0}}}, + {X: Field{[10]uint32{0x00fb8036, 0x02262a97, 0x035085f9, 0x024b0368, 0x033ad09a, 0x03f59fa0, 0x02117dd1, 0x011ed22b, 0x0351fb16, 0x0033fd89}}, Y: Field{[10]uint32{0x00f59de0, 0x03ced689, 0x02825843, 0x0363d80c, 0x0278a589, 0x021850f1, 0x03e34b58, 0x00b46b17, 0x0126bd54, 0x00337d3b}}}, + {X: Field{[10]uint32{0x03173b92, 0x01bad7a3, 0x037611cd, 0x03d05a7e, 0x003b7e72, 0x03d3595a, 0x0231a218, 0x0247ca6f, 0x0240d9bb, 0x00043d34}}, Y: Field{[10]uint32{0x033146c2, 0x00801b58, 0x02db7c90, 0x0274521a, 0x0290bb76, 0x00ce422e, 0x01b25a5a, 0x014eb484, 0x01950917, 0x0021438b}}}, + {X: Field{[10]uint32{0x004393d7, 0x01983b74, 0x01de1ee6, 0x00959dd2, 0x03869dff, 0x008d5cf8, 0x017f8936, 0x03cee10c, 0x00018a78, 0x0037a87f}}, Y: Field{[10]uint32{0x01710ccd, 0x01f53be5, 0x00cbdbf9, 0x0268ade7, 0x03af6def, 0x01b59b80, 0x03f134ff, 0x0171434e, 0x01cc942e, 0x0013d952}}}, + {X: Field{[10]uint32{0x00d84958, 0x03f4766a, 0x005caee6, 0x02c5b2b3, 0x026a11de, 0x03503321, 0x0319b976, 0x01df9d27, 0x000b69b6, 0x003a11ba}}, Y: Field{[10]uint32{0x0082cf9f, 0x01191ede, 0x001a640c, 0x00d9c783, 0x03ad51a3, 0x01e62ddb, 0x01bd9104, 0x01f89507, 0x00fc894c, 0x0028a72e}}}, + {X: Field{[10]uint32{0x0258ad71, 0x018e226f, 0x03a208f7, 0x03d73e68, 0x00bb30d1, 0x0277a30e, 0x005fe962, 0x030f8c28, 0x038c28de, 0x001dde29}}, Y: Field{[10]uint32{0x019f43ac, 0x004ff07f, 0x02c563b5, 0x0047fc92, 0x0087b384, 0x00bfd600, 0x0098e12f, 0x02c8bfdc, 0x019ab5a5, 0x000d189b}}}, + }, + { + {X: Field{[10]uint32{0x0258ad71, 0x018e226f, 0x03a208f7, 0x03d73e68, 0x00bb30d1, 0x0277a30e, 0x005fe962, 0x030f8c28, 0x038c28de, 0x001dde29}}, Y: Field{[10]uint32{0x019f43ac, 0x004ff07f, 0x02c563b5, 0x0047fc92, 0x0087b384, 0x00bfd600, 0x0098e12f, 0x02c8bfdc, 0x019ab5a5, 0x000d189b}}}, + {X: Field{[10]uint32{0x0073e879, 0x02870944, 0x02ea7a7e, 0x016b8413, 0x032cf16a, 0x03c3f8e4, 0x02f482d7, 0x001b458c, 0x016b5ca0, 0x0039ee5e}}, Y: Field{[10]uint32{0x02a89d98, 0x01c4226e, 0x00af338e, 0x0097b6a6, 0x029cb5bf, 0x00df3072, 0x002102a7, 0x0278bf7d, 0x008c1916, 0x0004ae26}}}, + {X: Field{[10]uint32{0x0319c869, 0x031bab8c, 0x032702f7, 0x0175d87a, 0x0018a9f9, 0x03f32b37, 0x01839022, 0x00ff2340, 0x005d9817, 0x000c0601}}, Y: Field{[10]uint32{0x02b856f0, 0x031db274, 0x01a7bfc0, 0x032928f6, 0x03ca2a84, 0x03588b8e, 0x02624320, 0x02dedbe1, 0x01782503, 0x002b17f1}}}, + {X: Field{[10]uint32{0x02628f0f, 0x035c8afc, 0x02919865, 0x02abcabb, 0x0365423d, 0x02f8269c, 0x00915a24, 0x01880f0b, 0x00185087, 0x0001c6fc}}, Y: Field{[10]uint32{0x01a1c334, 0x03172f51, 0x000bbb57, 0x01a88c72, 0x02098f9c, 0x03021338, 0x03600bc1, 0x033d2b8c, 0x015d504d, 0x00149ea8}}}, + {X: Field{[10]uint32{0x01ed29b5, 0x01a61be9, 0x01d1b4c6, 0x0181c4ab, 0x01f5830b, 0x0298f221, 0x02b67db9, 0x01fbcd0e, 0x01b61ee5, 0x000c8a20}}, Y: Field{[10]uint32{0x00d15ad2, 0x03c49b9f, 0x03604ef4, 0x02ae53b9, 0x01ca83ae, 0x01054c78, 0x010b19df, 0x00d13ac4, 0x028417a0, 0x00059dc0}}}, + {X: Field{[10]uint32{0x00953133, 0x01f726c6, 0x021ae647, 0x00a9d21c, 0x017fb3b4, 0x03f337ea, 0x012806c0, 0x03748e20, 0x034fed0d, 0x000282ca}}, Y: Field{[10]uint32{0x00af0fc9, 0x00928dcd, 0x00ba94bc, 0x03a2c3b5, 0x016fa384, 0x01916323, 0x001c6ca8, 0x02fcbc0f, 0x002cfb5a, 0x00336846}}}, + {X: Field{[10]uint32{0x02c96100, 0x02a101e1, 0x008e63bf, 0x006a9ba7, 0x00a16301, 0x037cf6f3, 0x003dd9b2, 0x006e7fed, 0x033ac0fb, 0x000fce11}}, Y: Field{[10]uint32{0x02624707, 0x00ab06fc, 0x031bcf1e, 0x01f02dd7, 0x0166571c, 0x03c1e739, 0x034c4462, 0x000e5494, 0x0055f5d4, 0x001c31a7}}}, + {X: Field{[10]uint32{0x039620e1, 0x00ddb7e8, 0x013786f6, 0x03214048, 0x025b1911, 0x0300f0e7, 0x0232e594, 0x0395a0ce, 0x003acb9b, 0x0000860d}}, Y: Field{[10]uint32{0x006998b5, 0x00667d94, 0x009ec5e0, 0x0290bd0f, 0x00443299, 0x000beff0, 0x03f24fd6, 0x0142fabc, 0x0148970a, 0x002faa07}}}, + {X: Field{[10]uint32{0x0122d2ac, 0x031bb1bf, 0x02ce0234, 0x0049b72a, 0x0310ddfe, 0x01e177cb, 0x003c0e09, 0x029db72d, 0x03c5fd27, 0x000a2044}}, Y: Field{[10]uint32{0x0342a268, 0x03ad57e3, 0x008fd081, 0x01285523, 0x03ddc3d4, 0x0325d84d, 0x00777260, 0x031723c8, 0x030158fb, 0x002869fa}}}, + {X: Field{[10]uint32{0x02e515dd, 0x0284ebbf, 0x024228c1, 0x008cd0ea, 0x029d0453, 0x012f7f8b, 0x035866ab, 0x0306083b, 0x02fee6ee, 0x0028afe6}}, Y: Field{[10]uint32{0x02c30212, 0x02a5ac01, 0x018745c3, 0x02aa6a3a, 0x0000f2e3, 0x03017a8a, 0x00a5e2ab, 0x02adece8, 0x0071c55c, 0x0016846f}}}, + {X: Field{[10]uint32{0x005f8ea8, 0x02a03749, 0x02900d4b, 0x038e5934, 0x01d17248, 0x01c467f9, 0x03f4d95d, 0x00e8a954, 0x0200c846, 0x003e58e8}}, Y: Field{[10]uint32{0x01bc99eb, 0x0157ec16, 0x020824bc, 0x00d6762d, 0x008bb8f2, 0x03fd09c8, 0x03722301, 0x020f028e, 0x00268c7f, 0x00272165}}}, + {X: Field{[10]uint32{0x030a2a53, 0x03c3b037, 0x0211e7ea, 0x02cfe059, 0x02d51dca, 0x00ea6e24, 0x00394574, 0x0265f0ea, 0x018d07c3, 0x001be194}}, Y: Field{[10]uint32{0x033bfeb2, 0x02695d1c, 0x01f35113, 0x01cbaa81, 0x00bf54f7, 0x029c265a, 0x0376ea95, 0x020bca6d, 0x0216fd45, 0x003542bd}}}, + {X: Field{[10]uint32{0x0206a315, 0x02a20c49, 0x023ad9e1, 0x01cbc9a5, 0x02407260, 0x0243825f, 0x00d8b2a5, 0x03669fe6, 0x024cff70, 0x00297648}}, Y: Field{[10]uint32{0x023b68d1, 0x0184cd67, 0x027c9d35, 0x00d1f446, 0x01ed4d0d, 0x01e6037a, 0x03306abd, 0x03696cd0, 0x03003b20, 0x0021cca2}}}, + {X: Field{[10]uint32{0x00d52891, 0x027abd36, 0x01f52af1, 0x03620fae, 0x0339a0f7, 0x02c5ffe9, 0x0244de90, 0x02378d19, 0x03c9cbc5, 0x000ef092}}, Y: Field{[10]uint32{0x0105b79c, 0x03478a13, 0x032d1386, 0x00a02921, 0x004da845, 0x02fed23d, 0x02bed840, 0x00f629ff, 0x00a48a78, 0x003c238c}}}, + {X: Field{[10]uint32{0x02231493, 0x02ded501, 0x00d469cd, 0x020c3331, 0x0096411a, 0x003979a9, 0x034e41d0, 0x030d813a, 0x002e1b73, 0x003c7fa6}}, Y: Field{[10]uint32{0x018848c1, 0x02a6699d, 0x030d0196, 0x00d1b97f, 0x03f173fb, 0x03df6674, 0x02d3c205, 0x01377085, 0x01eaed9a, 0x000b8806}}}, + {X: Field{[10]uint32{0x02d903ac, 0x03b6a701, 0x03e5cb09, 0x01d396b5, 0x02d5f962, 0x039ebf4b, 0x0329fd30, 0x02a1118d, 0x015ee637, 0x00024a25}}, Y: Field{[10]uint32{0x03cd091f, 0x0203a4d6, 0x0183fc51, 0x03bea2a3, 0x02ac3d26, 0x024ea57b, 0x0378a130, 0x010aa09e, 0x01003d3f, 0x00309588}}}, + }, + { + {X: Field{[10]uint32{0x02d903ac, 0x03b6a701, 0x03e5cb09, 0x01d396b5, 0x02d5f962, 0x039ebf4b, 0x0329fd30, 0x02a1118d, 0x015ee637, 0x00024a25}}, Y: Field{[10]uint32{0x03cd091f, 0x0203a4d6, 0x0183fc51, 0x03bea2a3, 0x02ac3d26, 0x024ea57b, 0x0378a130, 0x010aa09e, 0x01003d3f, 0x00309588}}}, + {X: Field{[10]uint32{0x0359dd9e, 0x0011e983, 0x030e7231, 0x03156d63, 0x027ce5e9, 0x032c62b5, 0x01163b04, 0x034d436b, 0x01ee3771, 0x0013e26f}}, Y: Field{[10]uint32{0x0156b049, 0x01ab8c80, 0x01f5c101, 0x014198e3, 0x031e4882, 0x010eec91, 0x00baf4c0, 0x007da571, 0x02d5227a, 0x00329e54}}}, + {X: Field{[10]uint32{0x0074b839, 0x004a1d5e, 0x02b41811, 0x02ce54f4, 0x02be4115, 0x008c2dab, 0x03df0dfb, 0x0396a014, 0x001fc0e1, 0x000f80ee}}, Y: Field{[10]uint32{0x000594ba, 0x0073959f, 0x01b8da0c, 0x03c3f6ad, 0x027de5c5, 0x01c663d9, 0x00f66075, 0x01fd0b11, 0x0163dff0, 0x00344eb8}}}, + {X: Field{[10]uint32{0x03f01197, 0x030c533f, 0x005bf529, 0x03c1e689, 0x0194b668, 0x00b0f132, 0x0396baca, 0x0316a030, 0x0304cae3, 0x0032e7a0}}, Y: Field{[10]uint32{0x03989c1d, 0x01381d8e, 0x00a24c33, 0x02300578, 0x0341b2d1, 0x03c22245, 0x03258cdf, 0x0039a849, 0x02801eb8, 0x0018b1f4}}}, + {X: Field{[10]uint32{0x0357a513, 0x03de39a0, 0x0023f3a3, 0x004d16cc, 0x01f151bd, 0x028a48b1, 0x02fa283a, 0x0124b358, 0x00b7a2f4, 0x003998b0}}, Y: Field{[10]uint32{0x0017d07e, 0x02880728, 0x00d89192, 0x0358954e, 0x01d8035c, 0x00486906, 0x01ae208a, 0x01148c17, 0x013ce612, 0x002ac2c6}}}, + {X: Field{[10]uint32{0x01a7d197, 0x03a434ee, 0x019459ba, 0x030623a9, 0x035e83a8, 0x008b08d2, 0x038ffe0a, 0x03d8e51d, 0x0254280d, 0x0030b162}}, Y: Field{[10]uint32{0x01eeb5e9, 0x00732fe2, 0x002484e4, 0x011516b6, 0x020a47ec, 0x00bb4e69, 0x03041ab6, 0x00249d5c, 0x0288366e, 0x001cba8c}}}, + {X: Field{[10]uint32{0x0337d242, 0x017dfbf7, 0x014b0499, 0x02981e70, 0x01c29fec, 0x02f8d61f, 0x03862c7c, 0x03db2e10, 0x00b1c94c, 0x00102fe0}}, Y: Field{[10]uint32{0x02405088, 0x03609e69, 0x035583d1, 0x02e90af4, 0x0274321e, 0x02c9bf84, 0x013fe9b1, 0x02abc13d, 0x0135d856, 0x002d5e77}}}, + {X: Field{[10]uint32{0x008d2cc2, 0x027ff094, 0x0058c15f, 0x0351c123, 0x018e0bee, 0x001cc371, 0x00cf2a41, 0x01a6f4f2, 0x01b0f89c, 0x0038bcd2}}, Y: Field{[10]uint32{0x00d4c04f, 0x011ef638, 0x03db37e3, 0x03a38272, 0x0242344b, 0x0180856e, 0x0060aec7, 0x01c8de06, 0x03280f82, 0x0007facb}}}, + {X: Field{[10]uint32{0x015a3558, 0x00acd916, 0x027f2baf, 0x021788d2, 0x02ac071f, 0x0236d67d, 0x02f97813, 0x0329c201, 0x0297601d, 0x000f453f}}, Y: Field{[10]uint32{0x0043df4c, 0x036ceb19, 0x01727c6a, 0x03851f07, 0x0082e0a2, 0x02fd5b85, 0x029a931d, 0x0207be3c, 0x01d6e846, 0x0005b1af}}}, + {X: Field{[10]uint32{0x00ea4178, 0x031c0905, 0x03cd510f, 0x0153931d, 0x03782e03, 0x01dd2532, 0x00453c6a, 0x018da1a0, 0x0072d175, 0x00011c2a}}, Y: Field{[10]uint32{0x00098bd6, 0x01127c6e, 0x01aea079, 0x01c1a613, 0x0319b568, 0x034e7032, 0x02145e9f, 0x026b359d, 0x03a9c110, 0x00022669}}}, + {X: Field{[10]uint32{0x02b1fc24, 0x027d6b60, 0x03570ede, 0x0071f8fd, 0x012528d8, 0x03249219, 0x001ac4d2, 0x01949473, 0x0140e82e, 0x00375be9}}, Y: Field{[10]uint32{0x029b74ca, 0x00c71183, 0x022304a4, 0x01afb5cc, 0x03ec10de, 0x00595f9d, 0x026f1ebf, 0x0061bf8d, 0x037eb1d3, 0x0019f98a}}}, + {X: Field{[10]uint32{0x03369217, 0x0379b658, 0x011ead74, 0x01a40198, 0x01ca1c39, 0x01013ab3, 0x01a278f5, 0x03589288, 0x00ffcba4, 0x0010b714}}, Y: Field{[10]uint32{0x022dbc57, 0x0025f88f, 0x01e841c3, 0x03b2a380, 0x03a7a139, 0x0182ea14, 0x0178f5f1, 0x016c75fb, 0x021f6638, 0x00296ea6}}}, + {X: Field{[10]uint32{0x01d08e02, 0x02a4564f, 0x0302881e, 0x02dff6b7, 0x00108547, 0x028f47a0, 0x0069499a, 0x0175e03e, 0x01a82de5, 0x0004fe8b}}, Y: Field{[10]uint32{0x00b03410, 0x0150770f, 0x02b97da5, 0x02ec6690, 0x03e644af, 0x02ed0cb1, 0x03356206, 0x0369c8c4, 0x00b04555, 0x0004d8ce}}}, + {X: Field{[10]uint32{0x0246a9e9, 0x006b3a45, 0x03b0423f, 0x029f62b9, 0x015dcbb7, 0x03329d77, 0x01f82bb9, 0x03bdd5f4, 0x039c4b0a, 0x002560ad}}, Y: Field{[10]uint32{0x0256a698, 0x035d24ea, 0x002ffbc4, 0x0317c4ee, 0x0001cbb5, 0x02be39a9, 0x02c6acee, 0x009bbb53, 0x01800ed4, 0x0008819f}}}, + {X: Field{[10]uint32{0x004ee41a, 0x00ceae65, 0x029a6ac2, 0x0374edf5, 0x02879b56, 0x00b1a0a0, 0x03c10b67, 0x002910fd, 0x0051d3c7, 0x00341b12}}, Y: Field{[10]uint32{0x03295e6f, 0x03e13a62, 0x02e252f1, 0x00d1858b, 0x019b7b84, 0x013d8c24, 0x030acd4f, 0x0342b6ee, 0x014c0584, 0x0016057f}}}, + {X: Field{[10]uint32{0x03d82751, 0x02b9d458, 0x0354527a, 0x02a41eb4, 0x015645b4, 0x0038eca1, 0x01064f3a, 0x02c424e6, 0x02f3ec6d, 0x0021743f}}, Y: Field{[10]uint32{0x02b1f962, 0x008de893, 0x0331582c, 0x03a5a1dc, 0x023e8751, 0x020b3d59, 0x01d496e5, 0x02302f8a, 0x008413a3, 0x0007c0d9}}}, + }, + { + {X: Field{[10]uint32{0x03d82751, 0x02b9d458, 0x0354527a, 0x02a41eb4, 0x015645b4, 0x0038eca1, 0x01064f3a, 0x02c424e6, 0x02f3ec6d, 0x0021743f}}, Y: Field{[10]uint32{0x02b1f962, 0x008de893, 0x0331582c, 0x03a5a1dc, 0x023e8751, 0x020b3d59, 0x01d496e5, 0x02302f8a, 0x008413a3, 0x0007c0d9}}}, + {X: Field{[10]uint32{0x015fcade, 0x015b4507, 0x01ff7563, 0x038025c4, 0x0068b482, 0x034477c1, 0x007a6cfc, 0x0313d3d8, 0x034b19a4, 0x001ade43}}, Y: Field{[10]uint32{0x0338d3ff, 0x03fe1bf0, 0x02b0ab6f, 0x02d1ef89, 0x03a83fa5, 0x032b8272, 0x016661f9, 0x03acfbca, 0x001b2ff9, 0x00340ea6}}}, + {X: Field{[10]uint32{0x00de4cf3, 0x0154187b, 0x0066ab99, 0x00d51e28, 0x039340e5, 0x005766b9, 0x03c2d26d, 0x008b0ef9, 0x034ac114, 0x000e136a}}, Y: Field{[10]uint32{0x012d0566, 0x01e5ac89, 0x03a73b7c, 0x00ce5d46, 0x001f430a, 0x00ad31bc, 0x034ed6da, 0x03290efe, 0x01bcd1b9, 0x0035b8f1}}}, + {X: Field{[10]uint32{0x03a3e0cb, 0x03336af8, 0x00be0bb0, 0x037a165e, 0x023d2479, 0x03313e3f, 0x022c367a, 0x02fb4f05, 0x032c2d7e, 0x00104526}}, Y: Field{[10]uint32{0x039033a8, 0x024ba60c, 0x00f2470e, 0x0017bd24, 0x00b3ec78, 0x0240b3ca, 0x0015c9b9, 0x00c150ad, 0x0392db7c, 0x00324356}}}, + {X: Field{[10]uint32{0x025238c2, 0x03cfa487, 0x00b8b98a, 0x0170e03b, 0x0040355f, 0x03a0bb52, 0x031610b4, 0x0056a906, 0x000eb7d4, 0x00053c3b}}, Y: Field{[10]uint32{0x02f07922, 0x01a8d1e4, 0x0139d6e8, 0x03600c12, 0x03d25c00, 0x02109d1f, 0x01fc73e3, 0x01760248, 0x013dd483, 0x002ac4b5}}}, + {X: Field{[10]uint32{0x02972627, 0x00d9a822, 0x01e1f8a4, 0x00100948, 0x00e19216, 0x02f11068, 0x018c1efc, 0x03857206, 0x030949bf, 0x00228c61}}, Y: Field{[10]uint32{0x02bb8af9, 0x011ed591, 0x00bcce7b, 0x016b0fbf, 0x00174436, 0x0161eea9, 0x0177ed28, 0x02993425, 0x008768f7, 0x00192edf}}}, + {X: Field{[10]uint32{0x0143e94d, 0x00d4bbf5, 0x00e188f6, 0x029d5be6, 0x02dd1302, 0x02968376, 0x01c34678, 0x00a1fb10, 0x03bb782c, 0x003ad0bc}}, Y: Field{[10]uint32{0x01924d89, 0x01677911, 0x02d42405, 0x02379835, 0x034cd846, 0x03f37edd, 0x020dd572, 0x0364b726, 0x01074f25, 0x0008d29b}}}, + {X: Field{[10]uint32{0x03f3d3fc, 0x03774a38, 0x01cebf8d, 0x0208170a, 0x02664a9b, 0x021ca9ee, 0x02c3dfe2, 0x021277eb, 0x00fa4e7c, 0x00347eb5}}, Y: Field{[10]uint32{0x00f3704d, 0x008d0f14, 0x03326ed2, 0x00c7bfcd, 0x00bad371, 0x0162de06, 0x033f70e8, 0x03f7f951, 0x0314a348, 0x0023f865}}}, + {X: Field{[10]uint32{0x0219aaed, 0x01396d5f, 0x03327032, 0x037a3199, 0x00459bac, 0x0381aa48, 0x02ec02f6, 0x008366a7, 0x00ca5168, 0x00073c4e}}, Y: Field{[10]uint32{0x012f400e, 0x01ba975a, 0x03ffbc13, 0x023fbf1d, 0x03479eef, 0x02db7785, 0x00372a66, 0x018e197d, 0x02f3171c, 0x0035bff6}}}, + {X: Field{[10]uint32{0x00ba68dd, 0x01cee8b8, 0x02d65374, 0x010e31fa, 0x02bca7c9, 0x0076b4c4, 0x0266838c, 0x01d049fc, 0x02abfe2b, 0x000172fa}}, Y: Field{[10]uint32{0x01d03959, 0x00a7cc9f, 0x033b5942, 0x01c17794, 0x007f3d96, 0x0141bbe8, 0x01386665, 0x0055baba, 0x03b6fa90, 0x0004f288}}}, + {X: Field{[10]uint32{0x02a8aa39, 0x0303a7ed, 0x03ac55f6, 0x01ed29e3, 0x0137a663, 0x01266436, 0x035a0968, 0x03504b21, 0x02be5f40, 0x002d61a1}}, Y: Field{[10]uint32{0x03493c1f, 0x01e4d74a, 0x0347b8fc, 0x02639b6c, 0x01abbdaf, 0x01302a47, 0x01478d45, 0x0230b052, 0x014324c7, 0x00158cb5}}}, + {X: Field{[10]uint32{0x023a1550, 0x011319f2, 0x01f279a5, 0x027e3bff, 0x01801da9, 0x007e2dd4, 0x0130976e, 0x015d04b7, 0x01ab3405, 0x003aff1a}}, Y: Field{[10]uint32{0x01362f6e, 0x010afd90, 0x00b1951f, 0x00639a30, 0x037983c8, 0x01fd3f41, 0x01f199db, 0x02d5028f, 0x00cdb99c, 0x0038bffa}}}, + {X: Field{[10]uint32{0x003b4cc5, 0x007af8ec, 0x037c2ee9, 0x02e96871, 0x02572831, 0x01fcea00, 0x035bc4fe, 0x0330ad9e, 0x01b06b8b, 0x0017f067}}, Y: Field{[10]uint32{0x01b57c28, 0x00e7ee19, 0x03ec4a3b, 0x000f3021, 0x009276f5, 0x028e97bd, 0x022138f9, 0x031f19bb, 0x00c0ec98, 0x003b23a1}}}, + {X: Field{[10]uint32{0x028d319f, 0x02fce397, 0x018e948b, 0x0185b510, 0x00e66aa5, 0x01eab260, 0x010b6533, 0x02a19841, 0x0350ce93, 0x001b3970}}, Y: Field{[10]uint32{0x01cf513f, 0x031af5e5, 0x0378308a, 0x03803b14, 0x012da8f2, 0x02ef88fc, 0x013e3e8c, 0x00f216fb, 0x0026e250, 0x00254340}}}, + {X: Field{[10]uint32{0x00b38cb5, 0x02e15f53, 0x00948bb4, 0x037d34e2, 0x03e10b7f, 0x034fba86, 0x03a8a40f, 0x038a277a, 0x030d42ed, 0x002e23ed}}, Y: Field{[10]uint32{0x0165f3d7, 0x03e9d596, 0x00c7197b, 0x00489ebe, 0x024d4f3e, 0x02cd6a38, 0x034bb994, 0x00ca0180, 0x02ad46ea, 0x0035b1cd}}}, + {X: Field{[10]uint32{0x0126087e, 0x01012091, 0x020308f5, 0x02220b68, 0x01fdfb6d, 0x01e62e17, 0x009b6041, 0x033a5f07, 0x01ce97ee, 0x003fcac3}}, Y: Field{[10]uint32{0x00c29907, 0x0147807c, 0x02ceb2c9, 0x01bee438, 0x02c7b7ed, 0x01341e4d, 0x034c4dc5, 0x02e8622b, 0x03fef524, 0x00124f44}}}, + }, + { + {X: Field{[10]uint32{0x0126087e, 0x01012091, 0x020308f5, 0x02220b68, 0x01fdfb6d, 0x01e62e17, 0x009b6041, 0x033a5f07, 0x01ce97ee, 0x003fcac3}}, Y: Field{[10]uint32{0x00c29907, 0x0147807c, 0x02ceb2c9, 0x01bee438, 0x02c7b7ed, 0x01341e4d, 0x034c4dc5, 0x02e8622b, 0x03fef524, 0x00124f44}}}, + {X: Field{[10]uint32{0x0149f8ef, 0x00ea6bcc, 0x034583bd, 0x013b98e2, 0x023deb5c, 0x032c6ec8, 0x0229ebbe, 0x01b27de3, 0x03bc5f36, 0x000a60b6}}, Y: Field{[10]uint32{0x02c7a248, 0x01c9ac05, 0x02d8456e, 0x02504b8f, 0x01095db9, 0x01ed6f27, 0x03a5339c, 0x00882ae7, 0x03e9af66, 0x002986d6}}}, + {X: Field{[10]uint32{0x01d681f9, 0x00153f9e, 0x02b9fc59, 0x03beb23f, 0x0066ce0e, 0x000b252c, 0x037ff25e, 0x008c2222, 0x01f2775f, 0x0031d17f}}, Y: Field{[10]uint32{0x03bb1247, 0x005cd0de, 0x005c7603, 0x00d719f5, 0x038cdbd3, 0x003a0619, 0x031394c7, 0x03979e29, 0x02f2f6b9, 0x00164088}}}, + {X: Field{[10]uint32{0x0380441b, 0x0227d848, 0x03658852, 0x01160385, 0x0060011f, 0x0125f6d6, 0x036eb590, 0x0303dad0, 0x01042af0, 0x00068a39}}, Y: Field{[10]uint32{0x0052af25, 0x03d81aa1, 0x027aeb05, 0x016d1bb9, 0x0104b3e7, 0x025dbc3b, 0x038329a8, 0x0276adf1, 0x027996c5, 0x00155de6}}}, + {X: Field{[10]uint32{0x01cd0ea3, 0x0133bb4d, 0x004815e0, 0x03a0832b, 0x02b34478, 0x019cb9fc, 0x0259e5eb, 0x00142c9e, 0x01f3a975, 0x002aec9e}}, Y: Field{[10]uint32{0x00307bce, 0x024c4cdf, 0x033b6470, 0x0016780b, 0x007c9769, 0x00c1e3b5, 0x034be0c0, 0x025c367e, 0x003bbf17, 0x00177b84}}}, + {X: Field{[10]uint32{0x009a2115, 0x03f54d19, 0x025ebe77, 0x00245e95, 0x02ec7960, 0x01902606, 0x006aca9d, 0x031b1b75, 0x0052b194, 0x003f5cf0}}, Y: Field{[10]uint32{0x02ba6cda, 0x032adee9, 0x0021f049, 0x0158ba75, 0x0104f601, 0x01bdf5b6, 0x00abab02, 0x02211008, 0x00c1c817, 0x001881da}}}, + {X: Field{[10]uint32{0x03c9ee3e, 0x038bcfc6, 0x0382c5c2, 0x02a58f9c, 0x01ea9fa1, 0x0099fb44, 0x03aeaa74, 0x01a0a09f, 0x010b59fc, 0x000fe045}}, Y: Field{[10]uint32{0x019aae06, 0x02b6c316, 0x001603ce, 0x0373f36a, 0x027623b2, 0x011e5598, 0x031beb3c, 0x02a0b519, 0x0268fdbf, 0x00067222}}}, + {X: Field{[10]uint32{0x021e30a7, 0x03c38e58, 0x003242ee, 0x02de6176, 0x002edd5e, 0x034fc805, 0x0250cc0b, 0x00c18074, 0x03e9535f, 0x000322e0}}, Y: Field{[10]uint32{0x03f688de, 0x03defae7, 0x0134dbeb, 0x00dee61c, 0x00aacad2, 0x03bf7215, 0x010e3f17, 0x036b1ee1, 0x0077065f, 0x0003731c}}}, + {X: Field{[10]uint32{0x00e4a007, 0x006fbebe, 0x0358b617, 0x033c22ec, 0x0015ecee, 0x0295b1fb, 0x014ba33a, 0x00b79a56, 0x032dd008, 0x00173e04}}, Y: Field{[10]uint32{0x0068b883, 0x00fc2424, 0x03fe8ce6, 0x025b1e71, 0x02c8946f, 0x01230f7d, 0x02d41588, 0x03e837d2, 0x025c0d61, 0x002d16bb}}}, + {X: Field{[10]uint32{0x003c18e1, 0x00fbf313, 0x03230300, 0x03eeeab5, 0x00ba4ae5, 0x012eb1fd, 0x02267110, 0x0035ae44, 0x01458351, 0x002cfe81}}, Y: Field{[10]uint32{0x02aa2b4f, 0x007efb84, 0x02542cb1, 0x0267c433, 0x01aa55a4, 0x0193f9bf, 0x02182980, 0x03d5adee, 0x00759340, 0x002a1709}}}, + {X: Field{[10]uint32{0x02c2d4a7, 0x01bf9ec9, 0x03fb1095, 0x024cef3f, 0x021bc36f, 0x031013b4, 0x03e33973, 0x02925194, 0x024d0d4b, 0x002db57f}}, Y: Field{[10]uint32{0x02e86371, 0x03739f8e, 0x03cc8118, 0x0139bd78, 0x02745b7e, 0x037fff63, 0x03cf9209, 0x035b0537, 0x03a13abb, 0x0011fcdc}}}, + {X: Field{[10]uint32{0x03816b2f, 0x021b0d46, 0x02e11fdb, 0x021048a3, 0x01ee0cb7, 0x009b1757, 0x00165fe1, 0x00699dba, 0x02dd6595, 0x00169351}}, Y: Field{[10]uint32{0x03e86c60, 0x01ebae1c, 0x00cebaf9, 0x0317ecfb, 0x02b50e6c, 0x03cf7f35, 0x003e27f8, 0x0182ac0a, 0x0396ca0e, 0x001df248}}}, + {X: Field{[10]uint32{0x0066dd33, 0x00cd88bf, 0x036dc509, 0x023fc771, 0x02ea8fbc, 0x000a6c08, 0x03b1b150, 0x01621c1a, 0x03c066cf, 0x0018722e}}, Y: Field{[10]uint32{0x02f10bfa, 0x02ea7ced, 0x00c8ca3b, 0x03ab0a08, 0x036a5106, 0x026174fe, 0x0269994b, 0x03dc0d11, 0x02239e54, 0x0024d667}}}, + {X: Field{[10]uint32{0x035cacbb, 0x019233cc, 0x01b26fce, 0x00a2f58d, 0x0118ac30, 0x0318899c, 0x0177e5bd, 0x003335ee, 0x01b12c72, 0x0013f5a6}}, Y: Field{[10]uint32{0x021ad839, 0x00bbea23, 0x03e6133b, 0x02cba088, 0x00aa998e, 0x036d878b, 0x0079dbfc, 0x0282bb65, 0x02f3f511, 0x0031b243}}}, + {X: Field{[10]uint32{0x016b2ff8, 0x016df337, 0x008fa980, 0x0305ca1b, 0x01876336, 0x03b0ef7c, 0x009f5373, 0x01e1461f, 0x03a57426, 0x002538ca}}, Y: Field{[10]uint32{0x00e1af3e, 0x0121554b, 0x03e13add, 0x010949af, 0x00b33af0, 0x018b67a3, 0x031e4886, 0x0013864b, 0x008b43da, 0x000346d1}}}, + {X: Field{[10]uint32{0x0056e241, 0x03978b3e, 0x01d28780, 0x0052335b, 0x0357f1ee, 0x0006c84a, 0x012b2e63, 0x0203aa7b, 0x03e4b1e8, 0x00209fee}}, Y: Field{[10]uint32{0x02c293ec, 0x016da2eb, 0x03166d60, 0x00c61a40, 0x007ff7a6, 0x0347449a, 0x03ef2c67, 0x01ec2dc6, 0x00923c72, 0x003183e7}}}, + }, + { + {X: Field{[10]uint32{0x0056e241, 0x03978b3e, 0x01d28780, 0x0052335b, 0x0357f1ee, 0x0006c84a, 0x012b2e63, 0x0203aa7b, 0x03e4b1e8, 0x00209fee}}, Y: Field{[10]uint32{0x02c293ec, 0x016da2eb, 0x03166d60, 0x00c61a40, 0x007ff7a6, 0x0347449a, 0x03ef2c67, 0x01ec2dc6, 0x00923c72, 0x003183e7}}}, + {X: Field{[10]uint32{0x00b1815d, 0x03912dc3, 0x03461ef6, 0x024862e1, 0x0260470a, 0x01db9acd, 0x02d7c8d5, 0x01ae5cf8, 0x02a7dce5, 0x002ddfc4}}, Y: Field{[10]uint32{0x0257dbc5, 0x00f4af23, 0x0016d6ba, 0x03e46912, 0x014c42f0, 0x00f30b99, 0x00cefb37, 0x02b310fc, 0x01b14f86, 0x0012dbe1}}}, + {X: Field{[10]uint32{0x03b80fa7, 0x012172ce, 0x01388634, 0x01aedc10, 0x033aa7da, 0x00c82067, 0x011a06bd, 0x030bef03, 0x031f6308, 0x000215f8}}, Y: Field{[10]uint32{0x01366b2d, 0x020847c2, 0x0016abd9, 0x0010f35c, 0x03172e37, 0x0372dc51, 0x017cc9d1, 0x005c824b, 0x03423ae0, 0x003d90e4}}}, + {X: Field{[10]uint32{0x005565ec, 0x0176b4b1, 0x005970fe, 0x037d25df, 0x02d858d8, 0x02de7e55, 0x03308b2c, 0x02fc491e, 0x03943018, 0x001225ce}}, Y: Field{[10]uint32{0x02ed07e9, 0x01e41d7e, 0x037b83b8, 0x02596011, 0x01511b35, 0x005116bc, 0x037bb3a0, 0x03706d90, 0x01684f3c, 0x001d87dd}}}, + {X: Field{[10]uint32{0x01c70e63, 0x000b0e82, 0x01496f5d, 0x01e39d4f, 0x029cbb8b, 0x019299cb, 0x005c6557, 0x018010d5, 0x00ea56bd, 0x000a2ab3}}, Y: Field{[10]uint32{0x0057da4e, 0x000e20bc, 0x021e8b9f, 0x03391136, 0x03f5fc59, 0x01da3aed, 0x0289667c, 0x0038559e, 0x022ef81a, 0x000ada4c}}}, + {X: Field{[10]uint32{0x036d6cd3, 0x0002af9e, 0x0378833a, 0x00740e24, 0x03341661, 0x015948e5, 0x0269b870, 0x02061206, 0x02167f2b, 0x003a8499}}, Y: Field{[10]uint32{0x00f450be, 0x018a497d, 0x01a88aae, 0x00b7aef8, 0x01b1c975, 0x00451789, 0x00e112bf, 0x038ff6ab, 0x02e5078e, 0x00086938}}}, + {X: Field{[10]uint32{0x03e674b5, 0x03714bdc, 0x00aac601, 0x02739c18, 0x0392d8f6, 0x033ae293, 0x01db2c9b, 0x02998517, 0x0225a055, 0x0028bced}}, Y: Field{[10]uint32{0x02937941, 0x00e32383, 0x03a53b09, 0x00c5f0cf, 0x039222fa, 0x00ca9f12, 0x0044a90f, 0x01a2ba00, 0x0159614c, 0x001883a8}}}, + {X: Field{[10]uint32{0x03fd71fa, 0x0135d0ae, 0x027d4a4d, 0x00996d14, 0x030b775a, 0x029c1305, 0x02972728, 0x015671b5, 0x018e8eb5, 0x003a4c49}}, Y: Field{[10]uint32{0x034d3307, 0x02f434c5, 0x035f33d9, 0x0386ed78, 0x00b3946c, 0x032552d0, 0x01eb4169, 0x037b83a1, 0x03364c3f, 0x003ec78c}}}, + {X: Field{[10]uint32{0x011eb056, 0x00058c76, 0x01386c76, 0x036e3b3f, 0x01a002ef, 0x00fd457d, 0x018b5c6a, 0x01648c76, 0x03c9eaae, 0x000f13e0}}, Y: Field{[10]uint32{0x005cecab, 0x01624f68, 0x02b87742, 0x0112073d, 0x001982b5, 0x00ec9e20, 0x02d6573c, 0x022da8ce, 0x0007514a, 0x002511e4}}}, + {X: Field{[10]uint32{0x008fadf1, 0x00f632d5, 0x01f9de64, 0x021e9c4b, 0x0300359b, 0x0224605e, 0x0365f8de, 0x01091270, 0x00387f7f, 0x003b7ce1}}, Y: Field{[10]uint32{0x00415fb6, 0x010db3db, 0x03d2879c, 0x004f7a8d, 0x030f4e88, 0x0082a9ad, 0x01802351, 0x0214037b, 0x01b0a189, 0x001cb4ed}}}, + {X: Field{[10]uint32{0x0186dfa9, 0x0187f6ef, 0x013a7190, 0x029026e6, 0x02dc38b4, 0x02040eea, 0x01c1e03e, 0x019f538a, 0x01288a99, 0x002bfe38}}, Y: Field{[10]uint32{0x01d12681, 0x000f0db0, 0x039c7071, 0x02a51067, 0x00f9116d, 0x03f3d4fd, 0x013ebaa1, 0x01f0ff4f, 0x03b32137, 0x002362d2}}}, + {X: Field{[10]uint32{0x00ff55c5, 0x008f5097, 0x01ec9771, 0x00a0689d, 0x035f4efd, 0x020ad2d8, 0x0012c1e7, 0x0110b29b, 0x01fdfb25, 0x0033cdab}}, Y: Field{[10]uint32{0x01a0228e, 0x009e2148, 0x02706aca, 0x03097034, 0x03a7547e, 0x02f67c81, 0x002f58b3, 0x01da1927, 0x02166ae0, 0x00345a84}}}, + {X: Field{[10]uint32{0x009ba9c1, 0x009cdae6, 0x0338e28f, 0x02968274, 0x01e40f7c, 0x03b3b95e, 0x0058262a, 0x0002cfa1, 0x004528dc, 0x0034fede}}, Y: Field{[10]uint32{0x0351b267, 0x02e237fa, 0x02de0061, 0x03570046, 0x02341ced, 0x022dc3f9, 0x03ca0575, 0x02d39f29, 0x0034efa6, 0x003e2535}}}, + {X: Field{[10]uint32{0x0181f79b, 0x015032f0, 0x02db4fe8, 0x01943392, 0x02e045d8, 0x01a97289, 0x01f82e7c, 0x037ebb8b, 0x00a26c63, 0x000c7203}}, Y: Field{[10]uint32{0x01225400, 0x027949b5, 0x025f1f0b, 0x03abd444, 0x01622ff9, 0x023cc364, 0x014e4d36, 0x009b7cc2, 0x02c12029, 0x0024ad67}}}, + {X: Field{[10]uint32{0x032bb909, 0x025b0743, 0x00d999da, 0x01f14d66, 0x03639102, 0x02461f5f, 0x00729883, 0x02aa23fd, 0x000e0ac9, 0x0013b24c}}, Y: Field{[10]uint32{0x00cf4071, 0x028e0fe9, 0x03827b88, 0x020836b0, 0x02d52e16, 0x0213126e, 0x000dc451, 0x00137172, 0x0106be1b, 0x001e0ae8}}}, + {X: Field{[10]uint32{0x0120e2b3, 0x02d63e88, 0x039aa7f3, 0x0339fd1f, 0x017a58fd, 0x0339b948, 0x03e4ae34, 0x02f6eb9e, 0x01f21f51, 0x003aa992}}, Y: Field{[10]uint32{0x025ad93d, 0x0294c16e, 0x03e59d47, 0x0197c4fd, 0x0201a6b9, 0x021e6a96, 0x01a80f89, 0x02c0eb1a, 0x01ed5bbb, 0x002f8c9e}}}, + }, + { + {X: Field{[10]uint32{0x0120e2b3, 0x02d63e88, 0x039aa7f3, 0x0339fd1f, 0x017a58fd, 0x0339b948, 0x03e4ae34, 0x02f6eb9e, 0x01f21f51, 0x003aa992}}, Y: Field{[10]uint32{0x025ad93d, 0x0294c16e, 0x03e59d47, 0x0197c4fd, 0x0201a6b9, 0x021e6a96, 0x01a80f89, 0x02c0eb1a, 0x01ed5bbb, 0x002f8c9e}}}, + {X: Field{[10]uint32{0x03c9b0a8, 0x02f07307, 0x03db453d, 0x0171c17c, 0x029e337b, 0x00089e7a, 0x0223ea50, 0x025fbb09, 0x01b3beb9, 0x000eb6e7}}, Y: Field{[10]uint32{0x005bbdda, 0x039e5d7c, 0x026cc61a, 0x03e61c09, 0x02aad9c8, 0x030257fd, 0x0374de07, 0x0139c4f1, 0x016daee7, 0x000dd38b}}}, + {X: Field{[10]uint32{0x032e070d, 0x00ff4e8f, 0x02a98f58, 0x007314a9, 0x0229aab7, 0x021411f8, 0x00731c3b, 0x012affd2, 0x01e9042f, 0x0012dca9}}, Y: Field{[10]uint32{0x016dd780, 0x02ea0bba, 0x00c3de44, 0x03774a52, 0x00b0b465, 0x0343cf04, 0x0277bb36, 0x03873d80, 0x014e1d6a, 0x00166787}}}, + {X: Field{[10]uint32{0x00ae86f9, 0x03a78324, 0x03caf054, 0x015a58f9, 0x01fefdff, 0x01b17f1a, 0x010955e5, 0x0272edf8, 0x03ac428e, 0x0004a794}}, Y: Field{[10]uint32{0x0289c85d, 0x03bf7347, 0x0201b822, 0x03f45acf, 0x03b2a232, 0x01c4860f, 0x01a2115b, 0x0268a6cb, 0x03958aee, 0x001057b2}}}, + {X: Field{[10]uint32{0x0202591c, 0x039ff612, 0x025a1e9c, 0x02596144, 0x013ef549, 0x01787f58, 0x026bfbeb, 0x03238a16, 0x03fc6539, 0x002a7f24}}, Y: Field{[10]uint32{0x01bec2dc, 0x02b77bda, 0x03253790, 0x01057f3d, 0x01ca888c, 0x02a45979, 0x004c17a1, 0x021c5cfa, 0x0339dc53, 0x00270b39}}}, + {X: Field{[10]uint32{0x005912ec, 0x01c0283e, 0x01113428, 0x00139182, 0x0327f9ca, 0x02abc150, 0x03499694, 0x016de1aa, 0x01d4e3fb, 0x002a9c48}}, Y: Field{[10]uint32{0x02e35978, 0x0132c992, 0x02cbdb11, 0x02a33815, 0x03fee134, 0x01a8bb7a, 0x005266b9, 0x02542714, 0x0077dad0, 0x0031a43c}}}, + {X: Field{[10]uint32{0x01968b59, 0x001b838b, 0x03c2e110, 0x02b84f2e, 0x0309a28b, 0x0026c09d, 0x03d7ac12, 0x027c29a9, 0x017c1a6f, 0x00325000}}, Y: Field{[10]uint32{0x01e572fb, 0x035d9023, 0x009c8fef, 0x02d90e43, 0x00e2842c, 0x016d5d0b, 0x038a1bfa, 0x0218804e, 0x02500c9b, 0x000e7648}}}, + {X: Field{[10]uint32{0x0055b8da, 0x0090f57a, 0x00711922, 0x01f44a25, 0x02c75626, 0x03b84255, 0x005ecb6a, 0x0251216e, 0x0094c8f6, 0x00180511}}, Y: Field{[10]uint32{0x034e4bbd, 0x0001643c, 0x02a4bad5, 0x0309f8fc, 0x03543955, 0x004cb996, 0x00be1fd9, 0x03991a7a, 0x0269f681, 0x0022ed75}}}, + {X: Field{[10]uint32{0x026b3332, 0x01cccd5c, 0x01de6a28, 0x0341cfb9, 0x00310388, 0x01c2fe38, 0x02793a5f, 0x000093b1, 0x039d7eed, 0x0007e12e}}, Y: Field{[10]uint32{0x00e8d52e, 0x010a28c5, 0x003a2554, 0x00b50db7, 0x00c2bcce, 0x016e7b7c, 0x007c27f7, 0x027b3095, 0x01072bca, 0x003b9c9b}}}, + {X: Field{[10]uint32{0x01972bcb, 0x02565e6c, 0x00ceb9dd, 0x00f8907b, 0x02c2f22e, 0x03b685dd, 0x028e0213, 0x027c0a3d, 0x0057c8bb, 0x000f7cb4}}, Y: Field{[10]uint32{0x025d09df, 0x008b34f5, 0x00771b28, 0x025a0065, 0x031b9144, 0x011a9a12, 0x026b23b0, 0x01bbab5b, 0x01c640c8, 0x00371fac}}}, + {X: Field{[10]uint32{0x01efa98e, 0x02a952b3, 0x027995cd, 0x01a046b0, 0x03724844, 0x02647a71, 0x028157b3, 0x03f341b2, 0x00890945, 0x0003c4f8}}, Y: Field{[10]uint32{0x02286767, 0x029dda6f, 0x02ccdc08, 0x01785b3a, 0x03287e70, 0x01ecd8b6, 0x023f8b0a, 0x01f140d7, 0x01f1764e, 0x002b7548}}}, + {X: Field{[10]uint32{0x03d292dc, 0x001a893f, 0x014ce1b8, 0x0202c5dc, 0x01775e26, 0x01ef5e76, 0x008070d3, 0x03e4d2e9, 0x01533720, 0x0012e645}}, Y: Field{[10]uint32{0x03095ca6, 0x0297ff95, 0x02afd433, 0x03116cdd, 0x03938323, 0x017c07d5, 0x03c0a74b, 0x00e889b7, 0x01496110, 0x0038c9dd}}}, + {X: Field{[10]uint32{0x01f59b6b, 0x00700efa, 0x00e2fa5e, 0x018f0622, 0x03e9b38c, 0x035609b4, 0x0328a1d2, 0x03b1f6cd, 0x01a551dd, 0x00377864}}, Y: Field{[10]uint32{0x02cb1410, 0x03658a49, 0x00fecf6a, 0x02ef9c55, 0x028b5738, 0x0314b853, 0x02757d61, 0x01d72f82, 0x03780282, 0x0016cafe}}}, + {X: Field{[10]uint32{0x03b43eeb, 0x0346cd08, 0x0184feee, 0x0006fe04, 0x00181c94, 0x03cd6717, 0x024825ff, 0x017a4dfa, 0x03979eb9, 0x0020f100}}, Y: Field{[10]uint32{0x0084fb51, 0x00d021b5, 0x03b40aff, 0x032ad54f, 0x0295b6bf, 0x0003586c, 0x03c1e46d, 0x03b8f42f, 0x03f2437c, 0x000a55d7}}}, + {X: Field{[10]uint32{0x01c6b699, 0x03157f72, 0x02871b68, 0x00d5af91, 0x02a86f57, 0x01ed05a0, 0x016d7bf9, 0x01bde968, 0x012eed83, 0x0017eac0}}, Y: Field{[10]uint32{0x01c6c3aa, 0x00c854b0, 0x03519b17, 0x01ffaa20, 0x0390ab11, 0x00358bde, 0x02bb4113, 0x034513a7, 0x0270a3c3, 0x000b66fe}}}, + {X: Field{[10]uint32{0x0234d24f, 0x00d8cb76, 0x037401e2, 0x03c32684, 0x0141b6d8, 0x033d0bb9, 0x011df6de, 0x005a764e, 0x0143c5cf, 0x0039290b}}, Y: Field{[10]uint32{0x02ba9414, 0x03dc4c77, 0x024f13a7, 0x037ea363, 0x00e886ee, 0x02e2b4d3, 0x03c99ccf, 0x031cd49b, 0x02e716d1, 0x001367e4}}}, + }, + { + {X: Field{[10]uint32{0x0234d24f, 0x00d8cb76, 0x037401e2, 0x03c32684, 0x0141b6d8, 0x033d0bb9, 0x011df6de, 0x005a764e, 0x0143c5cf, 0x0039290b}}, Y: Field{[10]uint32{0x02ba9414, 0x03dc4c77, 0x024f13a7, 0x037ea363, 0x00e886ee, 0x02e2b4d3, 0x03c99ccf, 0x031cd49b, 0x02e716d1, 0x001367e4}}}, + {X: Field{[10]uint32{0x028f62bb, 0x03cba8cf, 0x00d2a303, 0x018bdeb9, 0x010553c5, 0x01b13bd3, 0x030acf85, 0x02c634fb, 0x01fb84cf, 0x003f5914}}, Y: Field{[10]uint32{0x032c0911, 0x03642184, 0x0283fd0a, 0x024b4803, 0x00fa2ab4, 0x02f0d133, 0x03e7a5c1, 0x0055e2db, 0x02b2b187, 0x0039d173}}}, + {X: Field{[10]uint32{0x03ea0c68, 0x01042bce, 0x0392b5c8, 0x008d9dec, 0x03094301, 0x034e5beb, 0x009bc8e8, 0x028e8925, 0x0234e156, 0x000f9065}}, Y: Field{[10]uint32{0x0245edb6, 0x02dbfdc6, 0x01a1abcb, 0x0118c0f3, 0x022fa119, 0x01c1a4c1, 0x033cbfe3, 0x0087dfcd, 0x019d924b, 0x000048f1}}}, + {X: Field{[10]uint32{0x01fe696b, 0x0347ee75, 0x007a1fa1, 0x035773cf, 0x030042e2, 0x03e7b6ee, 0x02e81a06, 0x021af1c5, 0x007cb240, 0x0007bb88}}, Y: Field{[10]uint32{0x0029337b, 0x0159c39d, 0x0294ebb4, 0x00b82bf5, 0x037a0206, 0x01187257, 0x03196d12, 0x009a734a, 0x0119aef6, 0x00194b2f}}}, + {X: Field{[10]uint32{0x039824d7, 0x01748f24, 0x01897af7, 0x0130d472, 0x036eb7b6, 0x03dfc2d5, 0x014a3e62, 0x01d423bb, 0x00f5455d, 0x0023650e}}, Y: Field{[10]uint32{0x0366489f, 0x0013d224, 0x0063d8a0, 0x02e0c9ac, 0x038fb9e2, 0x02adbbdb, 0x0260bd31, 0x01b0a8b2, 0x00734fee, 0x000c9878}}}, + {X: Field{[10]uint32{0x03d4b84a, 0x02053105, 0x033e69a9, 0x0123c7d0, 0x00621ddf, 0x00a141c1, 0x022a492d, 0x00bf2c31, 0x01e58dc7, 0x003c4ea6}}, Y: Field{[10]uint32{0x03fd1c81, 0x0243f154, 0x01962859, 0x011c43cb, 0x02b6e37d, 0x038ff81b, 0x02b91cd1, 0x03a656a9, 0x00cd0f0b, 0x000cf0b2}}}, + {X: Field{[10]uint32{0x00d713de, 0x0201c6a6, 0x026208e4, 0x03edd0a3, 0x039360c2, 0x03f95150, 0x00a912a2, 0x01510835, 0x00c558ee, 0x002dc949}}, Y: Field{[10]uint32{0x038350e9, 0x03f94966, 0x01fcb76f, 0x01bf9129, 0x010482d2, 0x0275a505, 0x002d182e, 0x00f91441, 0x039a8a28, 0x0013146c}}}, + {X: Field{[10]uint32{0x0394c0d5, 0x0103c67b, 0x0257908d, 0x0005f15c, 0x01e1c0fc, 0x011b8844, 0x025ab2c3, 0x03ac5351, 0x033ea8a9, 0x003303a8}}, Y: Field{[10]uint32{0x03452fe6, 0x02f965eb, 0x03543dea, 0x0099844f, 0x03f6074f, 0x017ef998, 0x03dd203b, 0x0228bec8, 0x023b711c, 0x003e641e}}}, + {X: Field{[10]uint32{0x023b2cb4, 0x01b0a4ff, 0x010402cc, 0x016fcdc8, 0x023049f3, 0x00484527, 0x01c76e38, 0x0049466b, 0x035a216d, 0x000f7917}}, Y: Field{[10]uint32{0x007eb02f, 0x038ceb0c, 0x0044cf61, 0x03996a1c, 0x02823e28, 0x025f2441, 0x0208aa4a, 0x02b77143, 0x0198405e, 0x002e8aa1}}}, + {X: Field{[10]uint32{0x020c0222, 0x02f5d44a, 0x00b559cc, 0x03e720ba, 0x0016937e, 0x005c03cb, 0x00a18bfc, 0x0228111b, 0x024d9ca5, 0x002792b1}}, Y: Field{[10]uint32{0x00fdc9bb, 0x03dd9ce9, 0x0104e16c, 0x003cf6ae, 0x001c6203, 0x00ecc034, 0x000e8df6, 0x039d34c2, 0x011d9fe4, 0x0033a917}}}, + {X: Field{[10]uint32{0x00e4e5bf, 0x011d9bdb, 0x005b1723, 0x021a8240, 0x029b67ca, 0x012241ab, 0x023fce37, 0x02fa1f07, 0x01c68959, 0x0021447c}}, Y: Field{[10]uint32{0x01789c08, 0x024a5130, 0x025262fc, 0x0226f14d, 0x032da878, 0x01aa8008, 0x01ddf7ec, 0x03521d30, 0x01cf91bc, 0x003b37fd}}}, + {X: Field{[10]uint32{0x02735a1e, 0x030ec513, 0x01fa05f0, 0x0259af98, 0x004003e0, 0x018480bf, 0x038cddad, 0x015b2d1a, 0x03c0799b, 0x0019e2b1}}, Y: Field{[10]uint32{0x02f7c055, 0x00e97dc4, 0x01457a36, 0x02ccf4dc, 0x02597fff, 0x01c417a3, 0x030ff3d5, 0x00a16de9, 0x0233d9a5, 0x00021453}}}, + {X: Field{[10]uint32{0x013258ab, 0x0159a28f, 0x014dc31b, 0x02062af0, 0x0157d242, 0x03852ad6, 0x03a1c72e, 0x018088b3, 0x012e81cf, 0x00231681}}, Y: Field{[10]uint32{0x022d0f8f, 0x038214c0, 0x004ade57, 0x03e70365, 0x0246dae8, 0x00130230, 0x01a80c79, 0x02f6841e, 0x034bb443, 0x001a0476}}}, + {X: Field{[10]uint32{0x022aa9b8, 0x03a5dc20, 0x02f8ed7b, 0x00a4cd41, 0x0300006e, 0x0316b517, 0x026895d9, 0x003db375, 0x0114d868, 0x00192ea5}}, Y: Field{[10]uint32{0x02163565, 0x0347ee6d, 0x03b35e93, 0x01bda0c1, 0x025fef1b, 0x0066f927, 0x0207728c, 0x006f6edf, 0x0322a643, 0x002049cf}}}, + {X: Field{[10]uint32{0x0391bcee, 0x030a82af, 0x00d84158, 0x023c7830, 0x03f5cf1d, 0x015afc4d, 0x0063cec5, 0x00d582f7, 0x0016debd, 0x0033bdfe}}, Y: Field{[10]uint32{0x01966b33, 0x0136a7e0, 0x036ac6bb, 0x000a85cb, 0x03a63e4b, 0x00074917, 0x023b339c, 0x021c0491, 0x00836374, 0x0019f9d3}}}, + {X: Field{[10]uint32{0x0300bf19, 0x01cee750, 0x02a49471, 0x01daa23f, 0x0392b535, 0x02cd4ada, 0x0160fada, 0x02f76550, 0x03ef360c, 0x0007b203}}, Y: Field{[10]uint32{0x0107cefd, 0x03370730, 0x0207b671, 0x01fd8a56, 0x020146e7, 0x01eaefd7, 0x03a4958a, 0x00d034bc, 0x013756b5, 0x002bbbfa}}}, + }, + { + {X: Field{[10]uint32{0x0300bf19, 0x01cee750, 0x02a49471, 0x01daa23f, 0x0392b535, 0x02cd4ada, 0x0160fada, 0x02f76550, 0x03ef360c, 0x0007b203}}, Y: Field{[10]uint32{0x0107cefd, 0x03370730, 0x0207b671, 0x01fd8a56, 0x020146e7, 0x01eaefd7, 0x03a4958a, 0x00d034bc, 0x013756b5, 0x002bbbfa}}}, + {X: Field{[10]uint32{0x014ff9e4, 0x03a01750, 0x010560da, 0x03dbaf62, 0x038e8462, 0x013f242e, 0x02eaa034, 0x012f1b2f, 0x023519f0, 0x0016f9fa}}, Y: Field{[10]uint32{0x03e0bdbb, 0x002c1e11, 0x02309403, 0x00c08466, 0x020e99c6, 0x0156adff, 0x03f890f6, 0x0398151d, 0x02c3f638, 0x000cbccb}}}, + {X: Field{[10]uint32{0x02fea1f9, 0x01f2ef14, 0x012b94b1, 0x01423011, 0x01c4ff0b, 0x01c4194c, 0x00fddab6, 0x03cba0ef, 0x000a55d1, 0x0029b722}}, Y: Field{[10]uint32{0x03c345e9, 0x0305391e, 0x037e63b1, 0x036df9a3, 0x00057b89, 0x01ab2f14, 0x00683a11, 0x019f0c0e, 0x00547dc3, 0x001fbc6a}}}, + {X: Field{[10]uint32{0x01db7bb8, 0x02d517d3, 0x03991e3f, 0x01927e14, 0x00d50028, 0x0237dfd7, 0x013fc869, 0x01399420, 0x01116eae, 0x00163c26}}, Y: Field{[10]uint32{0x025b2d6e, 0x031cd60b, 0x00302bde, 0x0018b45d, 0x02507ee4, 0x0118e019, 0x022ff761, 0x00446835, 0x002aaffe, 0x001f81c0}}}, + {X: Field{[10]uint32{0x02d6c9b3, 0x01030fc1, 0x01637c8d, 0x03a1d219, 0x028c6c4c, 0x0229206e, 0x01c229c7, 0x011664af, 0x013fea42, 0x003f9aea}}, Y: Field{[10]uint32{0x0148bdfb, 0x031e23ea, 0x029b00c2, 0x02fc170b, 0x02d980f1, 0x01504ed5, 0x03b41b34, 0x0261cada, 0x00d74053, 0x001fba46}}}, + {X: Field{[10]uint32{0x007985c4, 0x004f9dc7, 0x02b108b6, 0x01256e78, 0x00134bfc, 0x00bdd30d, 0x00284280, 0x026df395, 0x01caf7b5, 0x0008c82d}}, Y: Field{[10]uint32{0x002c6d44, 0x013c77d3, 0x02b8d4ff, 0x00847367, 0x03d96f10, 0x03e6f2a4, 0x00721b81, 0x03a50c63, 0x003dc88b, 0x0031e7e5}}}, + {X: Field{[10]uint32{0x00f95151, 0x03c41cc3, 0x00b64422, 0x01b910b1, 0x01b96480, 0x030237b4, 0x020c8c2d, 0x0262fec0, 0x02f146fc, 0x00057578}}, Y: Field{[10]uint32{0x03f8ecf2, 0x0281f30b, 0x000f9482, 0x02e5f763, 0x01bb204f, 0x022408fe, 0x010e1097, 0x0353b1fe, 0x0231915f, 0x00296dcb}}}, + {X: Field{[10]uint32{0x009a8e2c, 0x030581b3, 0x021c1413, 0x00693306, 0x03823d8d, 0x021832c3, 0x03cc04fd, 0x0242d8ce, 0x00b9b297, 0x002c3e79}}, Y: Field{[10]uint32{0x033d0db4, 0x0019b137, 0x00ee76c2, 0x000b05c7, 0x003350cc, 0x01bf78fc, 0x00bb0b90, 0x0379b507, 0x03f1843a, 0x00127a0a}}}, + {X: Field{[10]uint32{0x016a5658, 0x02042e4a, 0x025643d7, 0x014907bd, 0x023814b2, 0x01eb8a6f, 0x007e0092, 0x0111eb63, 0x00725688, 0x0021303a}}, Y: Field{[10]uint32{0x001b80d1, 0x019ca6f6, 0x01fd22d9, 0x02607d3c, 0x02d3a61a, 0x0194dc97, 0x007e3190, 0x008b1282, 0x0380c160, 0x00099660}}}, + {X: Field{[10]uint32{0x01d6fad4, 0x000bca76, 0x0124c5aa, 0x033c7268, 0x0094b357, 0x004f567d, 0x02d04ce2, 0x0247b23e, 0x0280670a, 0x0015b6d8}}, Y: Field{[10]uint32{0x019e0836, 0x02703f4d, 0x01cc867a, 0x02868c79, 0x03f5b8b2, 0x035a0c31, 0x03591016, 0x009c9143, 0x0394db57, 0x0036834e}}}, + {X: Field{[10]uint32{0x00dc6a0f, 0x02ed7225, 0x01575375, 0x02450bf8, 0x02744341, 0x00b01df0, 0x01264e7a, 0x01cc7559, 0x01c71a93, 0x003fb5ac}}, Y: Field{[10]uint32{0x036fc7e0, 0x0235cb65, 0x00409ccb, 0x024c28ff, 0x031374d5, 0x0134eb88, 0x039181ae, 0x03fc2a11, 0x03e6b0ff, 0x002378aa}}}, + {X: Field{[10]uint32{0x023a809c, 0x0382c2f2, 0x0346d79f, 0x03d75e60, 0x02dab662, 0x00952a27, 0x03cf97e4, 0x037d5afe, 0x02c83933, 0x0004979f}}, Y: Field{[10]uint32{0x009e70d9, 0x032402a5, 0x00a3dda8, 0x00bbc1ff, 0x031e4e3b, 0x015c868d, 0x03747caf, 0x032ce221, 0x02ede254, 0x003834fd}}}, + {X: Field{[10]uint32{0x00e29355, 0x02217c46, 0x00d86db3, 0x024ce5c8, 0x002f1c8e, 0x0008ee76, 0x00ef8604, 0x032f1c3f, 0x01d992d3, 0x000a9a93}}, Y: Field{[10]uint32{0x01cc2872, 0x00f803ed, 0x0076c005, 0x00e99313, 0x01fe905a, 0x009a3e43, 0x00fdc81e, 0x01f831d8, 0x03ba7c4a, 0x00219df7}}}, + {X: Field{[10]uint32{0x03681028, 0x00a54479, 0x01bb47f5, 0x017abf2e, 0x03196e23, 0x036bcf63, 0x033ce97d, 0x008386fc, 0x03f1185d, 0x00286b2c}}, Y: Field{[10]uint32{0x00a11c9d, 0x02918f85, 0x017881f1, 0x009c7e83, 0x0266eecb, 0x0223c316, 0x00475882, 0x02ca6da8, 0x03a61abb, 0x00156a20}}}, + {X: Field{[10]uint32{0x0148dabf, 0x03ea23f8, 0x038eb1f9, 0x02e4d275, 0x01c1add2, 0x017eb9cd, 0x0364ec23, 0x01d51b65, 0x03026c92, 0x00390b64}}, Y: Field{[10]uint32{0x011e1361, 0x00b1d5a0, 0x03eb9d77, 0x01c0679d, 0x00327275, 0x037ce14c, 0x0338cebf, 0x0212c362, 0x022c6e2d, 0x001904e1}}}, + {X: Field{[10]uint32{0x026642be, 0x02d64a0d, 0x03a889dd, 0x01c5f562, 0x03ce3490, 0x02037ea2, 0x0300af46, 0x0030be46, 0x038c0467, 0x00051a9d}}, Y: Field{[10]uint32{0x0183efd0, 0x00a5d20f, 0x01ed1d0b, 0x0074bdf9, 0x030aaa97, 0x02752ca1, 0x0269827f, 0x000a2b75, 0x00ec3354, 0x002cc638}}}, + }, + { + {X: Field{[10]uint32{0x026642be, 0x02d64a0d, 0x03a889dd, 0x01c5f562, 0x03ce3490, 0x02037ea2, 0x0300af46, 0x0030be46, 0x038c0467, 0x00051a9d}}, Y: Field{[10]uint32{0x0183efd0, 0x00a5d20f, 0x01ed1d0b, 0x0074bdf9, 0x030aaa97, 0x02752ca1, 0x0269827f, 0x000a2b75, 0x00ec3354, 0x002cc638}}}, + {X: Field{[10]uint32{0x01de5cac, 0x008d955e, 0x0261911b, 0x00f1fb2c, 0x03eefc98, 0x02f34533, 0x0270b5c0, 0x01f89395, 0x00ce8a59, 0x0015d3bc}}, Y: Field{[10]uint32{0x035a4805, 0x026ba9b1, 0x0008cae5, 0x01efbc40, 0x011a260a, 0x01a6de11, 0x016ada05, 0x00671cef, 0x0130281f, 0x00026e66}}}, + {X: Field{[10]uint32{0x03315443, 0x00e1ce09, 0x027299d9, 0x03552ba1, 0x013d79bb, 0x002850a8, 0x02c89982, 0x024d7fd0, 0x00040660, 0x003f1a5b}}, Y: Field{[10]uint32{0x03d28960, 0x003582d5, 0x011b1749, 0x0218426f, 0x01487ff4, 0x01a59ded, 0x030e1cdd, 0x01624aef, 0x03ebf83b, 0x00383389}}}, + {X: Field{[10]uint32{0x020966d3, 0x030b5d09, 0x00645808, 0x0306bbfe, 0x0110a770, 0x026320d7, 0x0109397b, 0x03e7e176, 0x02799d8b, 0x0034f65f}}, Y: Field{[10]uint32{0x033c2e52, 0x03ae1420, 0x004eebdd, 0x0046fa37, 0x03b5e487, 0x03500eb4, 0x02a89275, 0x032579aa, 0x006376ba, 0x002376ed}}}, + {X: Field{[10]uint32{0x02fdb4eb, 0x02cbd705, 0x02a79d1b, 0x01e718b9, 0x028fa3dd, 0x00afac24, 0x0256a356, 0x03cab46b, 0x0221ff4f, 0x0025d2bc}}, Y: Field{[10]uint32{0x01f6f484, 0x0270f7ea, 0x00234840, 0x00a8efff, 0x01111c57, 0x00b0243b, 0x011e43d0, 0x000f2993, 0x007d5350, 0x0015548e}}}, + {X: Field{[10]uint32{0x006b5b56, 0x01857f5f, 0x00b607f3, 0x02abb622, 0x014185c8, 0x02fc8039, 0x03587ed3, 0x010ce337, 0x025700ef, 0x00283a21}}, Y: Field{[10]uint32{0x021d7518, 0x02f7944e, 0x00a51a16, 0x0075c216, 0x01526b87, 0x0214f7ab, 0x01a6b89b, 0x02b542e6, 0x02839fa9, 0x003d6e91}}}, + {X: Field{[10]uint32{0x015aeee3, 0x0012b6d7, 0x00813739, 0x030d9963, 0x01e8284b, 0x01a49c31, 0x0121b3a6, 0x00e62c24, 0x019b49de, 0x0016eaad}}, Y: Field{[10]uint32{0x00f69717, 0x00a6bedc, 0x01eed82d, 0x0276af4c, 0x03215ddc, 0x007ff6bd, 0x01a00866, 0x01fa15b9, 0x03617c0f, 0x002295df}}}, + {X: Field{[10]uint32{0x028c6d4b, 0x003ee4e5, 0x00c12004, 0x033e3d25, 0x02b2be78, 0x032efb82, 0x0174e782, 0x006261ee, 0x013288b3, 0x002c6a99}}, Y: Field{[10]uint32{0x0091ac51, 0x02798aba, 0x03cc383d, 0x02427588, 0x03100a1d, 0x0358ea0e, 0x004aa8e2, 0x0035c49a, 0x031c6081, 0x001fb581}}}, + {X: Field{[10]uint32{0x01726890, 0x02c7913d, 0x03d15851, 0x03fab20d, 0x02e59025, 0x03e44283, 0x0032fceb, 0x0310f404, 0x03a7eb49, 0x003eda17}}, Y: Field{[10]uint32{0x0035783a, 0x03aa3cee, 0x039b2606, 0x004ba439, 0x014fa6cb, 0x02192e82, 0x01ca16d9, 0x0178ba1a, 0x0322c98e, 0x0035d437}}}, + {X: Field{[10]uint32{0x02c6e5bb, 0x03b6bb18, 0x03e6ab7e, 0x03b8d5b3, 0x0324fdff, 0x024a965f, 0x00ab0b83, 0x00417cd6, 0x004108c7, 0x0009445b}}, Y: Field{[10]uint32{0x037e1321, 0x011cca83, 0x0272d4dc, 0x037d4730, 0x0377c508, 0x02057763, 0x037406dc, 0x01df807a, 0x0113e771, 0x0018361a}}}, + {X: Field{[10]uint32{0x00bca48a, 0x012fc4ea, 0x0362f546, 0x03d3a0f7, 0x0178b4d5, 0x00a1fdc7, 0x0327b91c, 0x0265682a, 0x03f659e2, 0x00177963}}, Y: Field{[10]uint32{0x02fd41cd, 0x0253a034, 0x00aa9587, 0x0271383e, 0x003fe5bd, 0x014b4f21, 0x01a623c2, 0x026d54c2, 0x033d8035, 0x001a168e}}}, + {X: Field{[10]uint32{0x00cedd26, 0x01977dd4, 0x015541d7, 0x0277a95c, 0x023cc8b9, 0x0258e78a, 0x01d8100f, 0x03aec984, 0x00372961, 0x002be212}}, Y: Field{[10]uint32{0x00e43f7f, 0x039eb4ec, 0x001708b6, 0x01219ea9, 0x0254549e, 0x02fb4be5, 0x00cbb88e, 0x01c0c34a, 0x03f97b16, 0x003715fe}}}, + {X: Field{[10]uint32{0x01ef63b6, 0x00e0d139, 0x0182ebde, 0x0059cc6c, 0x005ab4d0, 0x02d3f072, 0x01b7fda3, 0x0062febc, 0x01cdead6, 0x001bc609}}, Y: Field{[10]uint32{0x01c655f3, 0x0211b3d1, 0x0145412c, 0x019009fe, 0x013c895a, 0x020ccd15, 0x034204d7, 0x02446e63, 0x027dd591, 0x003fc25f}}}, + {X: Field{[10]uint32{0x02a50e2d, 0x02796c7e, 0x00bdc39f, 0x03b3dab9, 0x00b5a275, 0x00206b74, 0x0256e3ea, 0x0200d96c, 0x02605b88, 0x00148435}}, Y: Field{[10]uint32{0x02fda8ee, 0x026a24d6, 0x0286eb02, 0x03371909, 0x035a273d, 0x03fd9622, 0x0013c0e7, 0x034c04e7, 0x034a5dec, 0x000d7d99}}}, + {X: Field{[10]uint32{0x00a63f3b, 0x0011fb7d, 0x039727b5, 0x000665e3, 0x0183203b, 0x039db1d9, 0x007115f5, 0x028ddad6, 0x0095f762, 0x00317b2e}}, Y: Field{[10]uint32{0x01005024, 0x03cdd1a1, 0x03ee5b53, 0x03b978c2, 0x008beb65, 0x03e48cfb, 0x02a4058f, 0x0207cdd3, 0x01181978, 0x00088949}}}, + {X: Field{[10]uint32{0x0180eef9, 0x01aa1e4c, 0x039776d7, 0x008268a2, 0x028d0012, 0x02a81ec4, 0x03acebb1, 0x0397c1f8, 0x00f61d22, 0x003e9430}}, Y: Field{[10]uint32{0x034f2811, 0x03635f4f, 0x0213b38c, 0x024e95e8, 0x025e6832, 0x00a069a2, 0x02cd2872, 0x03aea6dc, 0x02922397, 0x001ae131}}}, + }, + { + {X: Field{[10]uint32{0x0180eef9, 0x01aa1e4c, 0x039776d7, 0x008268a2, 0x028d0012, 0x02a81ec4, 0x03acebb1, 0x0397c1f8, 0x00f61d22, 0x003e9430}}, Y: Field{[10]uint32{0x034f2811, 0x03635f4f, 0x0213b38c, 0x024e95e8, 0x025e6832, 0x00a069a2, 0x02cd2872, 0x03aea6dc, 0x02922397, 0x001ae131}}}, + {X: Field{[10]uint32{0x007f5048, 0x016f88c6, 0x006d459c, 0x0349120e, 0x02e72328, 0x00ba420d, 0x00140fe0, 0x01d381e0, 0x02ee6190, 0x0018e593}}, Y: Field{[10]uint32{0x01309df8, 0x028a1362, 0x02c84383, 0x024d3779, 0x013d580b, 0x00d2fef2, 0x01ff9b1c, 0x033d068e, 0x033a6b89, 0x000edb3e}}}, + {X: Field{[10]uint32{0x01da5e12, 0x03838ce4, 0x00b2971e, 0x0100572b, 0x02a9c60a, 0x028728ad, 0x02329f93, 0x038c6f36, 0x023c4379, 0x003dd40b}}, Y: Field{[10]uint32{0x0385f4eb, 0x02e717a0, 0x00ebc7a4, 0x00bbdc97, 0x007b86d3, 0x00f59c81, 0x0170945c, 0x03ebf566, 0x01edd67c, 0x000f15fd}}}, + {X: Field{[10]uint32{0x02db2a65, 0x012e87ae, 0x01a31f81, 0x00ab4f2f, 0x01afd7f1, 0x003f27dd, 0x01469ddf, 0x02df88b4, 0x025b4d15, 0x00168f38}}, Y: Field{[10]uint32{0x01327f1d, 0x005c33c7, 0x03e8ed8b, 0x030f6097, 0x033ee28b, 0x03cfe66b, 0x03a6dbfb, 0x017d8e1c, 0x025b92e0, 0x0022cd04}}}, + {X: Field{[10]uint32{0x00b7d105, 0x0124cc44, 0x03c9f207, 0x012e5395, 0x03f4ca5c, 0x038d156c, 0x024f6624, 0x01618a8e, 0x00f983ae, 0x0004bf9e}}, Y: Field{[10]uint32{0x03794a60, 0x02b1bee7, 0x010b8458, 0x01975bba, 0x031dece2, 0x0269f2dd, 0x02b5aa19, 0x02f3dde1, 0x01a338d6, 0x000818bc}}}, + {X: Field{[10]uint32{0x0232478e, 0x00c481cf, 0x027ed237, 0x023caa6e, 0x0024ab31, 0x03cccac8, 0x02c6b7f3, 0x004e203f, 0x01d60106, 0x00350804}}, Y: Field{[10]uint32{0x004e88d4, 0x0015a074, 0x00cc31ce, 0x00bcd542, 0x036fb24b, 0x012fe11e, 0x02d5f5f4, 0x0138306c, 0x00e9a37d, 0x002eb975}}}, + {X: Field{[10]uint32{0x020c5d05, 0x00760ce7, 0x02daff62, 0x0142a95c, 0x02480e6c, 0x020212c6, 0x004bb102, 0x011cf563, 0x031347df, 0x001daab0}}, Y: Field{[10]uint32{0x01ece63e, 0x01866dd4, 0x02ee3556, 0x033c0579, 0x034b1225, 0x00809897, 0x02f32c83, 0x01c3beaf, 0x02ef0d5c, 0x003bd55d}}}, + {X: Field{[10]uint32{0x029f44d0, 0x01ccdd52, 0x03a0016a, 0x01b9a6a3, 0x0385dbcb, 0x0037907f, 0x010be34f, 0x00fb69a4, 0x01af98f9, 0x00173981}}, Y: Field{[10]uint32{0x01d30105, 0x0017cd22, 0x00cc6c0d, 0x02fe8cbb, 0x00ab3cb1, 0x0071db16, 0x0256bd03, 0x01aff9ee, 0x039bec22, 0x00133773}}}, + {X: Field{[10]uint32{0x0053c086, 0x01bd217f, 0x01aec9e2, 0x00d27268, 0x00c6b55c, 0x017a2041, 0x0260c314, 0x0173321f, 0x025bbe5c, 0x002998ff}}, Y: Field{[10]uint32{0x01016201, 0x03140ca9, 0x00fc0e69, 0x0295ce65, 0x03991ecc, 0x02608f70, 0x01b102c8, 0x007efd74, 0x017f6b21, 0x002d5066}}}, + {X: Field{[10]uint32{0x01f40840, 0x0035a472, 0x0359eaa2, 0x010a7954, 0x03a71df4, 0x00e290d1, 0x00eaa239, 0x03dd07f9, 0x0121121f, 0x00380d1b}}, Y: Field{[10]uint32{0x03d7ce72, 0x0286abfc, 0x033edc39, 0x0269baf4, 0x02269cd3, 0x03b9ee8a, 0x016d4a97, 0x02255b5d, 0x03713c99, 0x000fb9a0}}}, + {X: Field{[10]uint32{0x03758574, 0x02007b52, 0x01c6e9ad, 0x02250d3e, 0x03d83266, 0x02b8af7c, 0x03ca1027, 0x0336096d, 0x027a0206, 0x0037a554}}, Y: Field{[10]uint32{0x0367232a, 0x037c7f3e, 0x02deb4b7, 0x00145568, 0x03bae6a1, 0x03c5a7b5, 0x021dc847, 0x03453938, 0x0056ac93, 0x001334f8}}}, + {X: Field{[10]uint32{0x016ddcd3, 0x01c8dee8, 0x0003556a, 0x000087a8, 0x03044b11, 0x02e1d86b, 0x035beb6c, 0x0267b7de, 0x0136f64e, 0x0006b86b}}, Y: Field{[10]uint32{0x027eb2b7, 0x0118674b, 0x0213c7cc, 0x0377f2ed, 0x0159616a, 0x00841122, 0x0074f775, 0x02488167, 0x014987a0, 0x001c0581}}}, + {X: Field{[10]uint32{0x0185474f, 0x026e2aff, 0x00668d77, 0x00ae258d, 0x02894c4a, 0x011e16ba, 0x02dccbe4, 0x00ab76ff, 0x00e066d3, 0x002369af}}, Y: Field{[10]uint32{0x017b4ef7, 0x03e71f4f, 0x01d7a5fd, 0x024c176f, 0x010b1cc5, 0x01c77ffc, 0x03ddf5d0, 0x0353fe13, 0x006af31e, 0x0004ff1b}}}, + {X: Field{[10]uint32{0x029de533, 0x03ffe242, 0x02e3c80f, 0x019c08d5, 0x002a9bb5, 0x0191c49d, 0x02979f6a, 0x0243e483, 0x01123337, 0x00044e2b}}, Y: Field{[10]uint32{0x01332573, 0x02dc253f, 0x040006a8, 0x002d1528, 0x03f679bd, 0x03e569f7, 0x030dc3e9, 0x0076521b, 0x01b75875, 0x002cd549}}}, + {X: Field{[10]uint32{0x01d042ea, 0x0350959f, 0x02fd06b5, 0x0299163a, 0x02ebfa26, 0x00cf24ef, 0x03d6649e, 0x02e8e6c6, 0x00c7cfb3, 0x001cca6b}}, Y: Field{[10]uint32{0x035c94a1, 0x0233fb0b, 0x034f0ada, 0x01cc77ea, 0x02184897, 0x03eada3b, 0x0284e794, 0x01bc5224, 0x013541b7, 0x00249c92}}}, + {X: Field{[10]uint32{0x03067ec2, 0x00f4cad7, 0x025220e5, 0x02d756ee, 0x021a288a, 0x03623a10, 0x025bf6b7, 0x006846c6, 0x01d0ca72, 0x00368758}}, Y: Field{[10]uint32{0x02d836f1, 0x03ee83c6, 0x0348a655, 0x026749e6, 0x0166a738, 0x0072478a, 0x00076616, 0x00c1b1e7, 0x015a7c99, 0x002055fd}}}, + }, + { + {X: Field{[10]uint32{0x03067ec2, 0x00f4cad7, 0x025220e5, 0x02d756ee, 0x021a288a, 0x03623a10, 0x025bf6b7, 0x006846c6, 0x01d0ca72, 0x00368758}}, Y: Field{[10]uint32{0x02d836f1, 0x03ee83c6, 0x0348a655, 0x026749e6, 0x0166a738, 0x0072478a, 0x00076616, 0x00c1b1e7, 0x015a7c99, 0x002055fd}}}, + {X: Field{[10]uint32{0x00d3c369, 0x0084348b, 0x02934b3c, 0x020f87e3, 0x02236054, 0x03704a0e, 0x005d5f61, 0x0311137e, 0x000b4ef4, 0x00271ef8}}, Y: Field{[10]uint32{0x02329515, 0x038ffae8, 0x01cbd29e, 0x00e859da, 0x003e3115, 0x03390052, 0x0226d455, 0x0034814a, 0x00de74b2, 0x00248830}}}, + {X: Field{[10]uint32{0x0295a8db, 0x021dccbe, 0x036f615d, 0x03111e74, 0x03b83ec0, 0x0246c5c8, 0x02966469, 0x03741067, 0x01a46303, 0x0038fa43}}, Y: Field{[10]uint32{0x030d1cf9, 0x01b3dfc6, 0x00d3d101, 0x025f3261, 0x02fbb1ef, 0x01c0b9da, 0x00faa90c, 0x005e2ec0, 0x03c0056c, 0x003ef94e}}}, + {X: Field{[10]uint32{0x03b8c9e3, 0x03364b5e, 0x0178e76b, 0x029c1504, 0x0174dd06, 0x02333124, 0x01664b23, 0x0098eed5, 0x03f42825, 0x0003f360}}, Y: Field{[10]uint32{0x034aa9ad, 0x03557ef7, 0x03bf4e86, 0x0337c589, 0x03adbeae, 0x017f6da0, 0x018232de, 0x03ef3b47, 0x01cfeac5, 0x001b02f0}}}, + {X: Field{[10]uint32{0x012ee214, 0x02bf5904, 0x0154017a, 0x025e564c, 0x00782a4e, 0x01703007, 0x03650dfd, 0x035dd6a2, 0x02c732e3, 0x0027d3ff}}, Y: Field{[10]uint32{0x0085f37a, 0x01108894, 0x000283ef, 0x024c2f22, 0x019719b6, 0x035d71a7, 0x0296682f, 0x00bcb983, 0x02e1318e, 0x0018e738}}}, + {X: Field{[10]uint32{0x001d0ce6, 0x030f72d5, 0x00d41f4f, 0x028b3d66, 0x02748992, 0x00e817ec, 0x0214cce3, 0x02a504bb, 0x022937f1, 0x00050a56}}, Y: Field{[10]uint32{0x0338bb86, 0x0206a2b5, 0x0241a52a, 0x01806d74, 0x01310895, 0x011020ec, 0x0031c448, 0x0141c46c, 0x0363df11, 0x003fa9d4}}}, + {X: Field{[10]uint32{0x0361a0a5, 0x01a05147, 0x00e3ef8b, 0x0386cf05, 0x004b1253, 0x03d102cb, 0x031a0a41, 0x012b06c5, 0x022d4113, 0x0010c7d8}}, Y: Field{[10]uint32{0x00cef899, 0x01edff9e, 0x0177246b, 0x0010d559, 0x0241baaa, 0x01c8ea9c, 0x02de6519, 0x010e3db5, 0x027fe7aa, 0x0028a60c}}}, + {X: Field{[10]uint32{0x026b64f1, 0x00e6512c, 0x02d995cf, 0x00a3d51d, 0x01b7edcf, 0x01447967, 0x00da4c62, 0x03c04353, 0x007f1b58, 0x001c5d50}}, Y: Field{[10]uint32{0x024234d5, 0x039fbeac, 0x01d2a426, 0x02ddd11c, 0x02b01fe8, 0x00d3321b, 0x02d34011, 0x035543cd, 0x014344e3, 0x0010ed15}}}, + {X: Field{[10]uint32{0x03748503, 0x0099f559, 0x028e7cac, 0x011dcc4c, 0x000e6e0e, 0x03e284ab, 0x0362ef39, 0x023ee1b2, 0x02ddece7, 0x00264f6e}}, Y: Field{[10]uint32{0x02b0cee2, 0x01cd84df, 0x01aa49ba, 0x03da6e2b, 0x0217f87b, 0x01e87d46, 0x01f78478, 0x03bbade1, 0x01ee8569, 0x0029486a}}}, + {X: Field{[10]uint32{0x03421e21, 0x0136ea65, 0x022f4e46, 0x0288f3bf, 0x003aca86, 0x010633eb, 0x00289212, 0x005dcaea, 0x006b84e5, 0x0003083a}}, Y: Field{[10]uint32{0x01aa6a45, 0x020f5928, 0x01349dfc, 0x03d96f42, 0x0386ee76, 0x0386696d, 0x01237a11, 0x02b6b068, 0x01bf76d0, 0x003d587a}}}, + {X: Field{[10]uint32{0x02d23d80, 0x02889d69, 0x00d478de, 0x007c991d, 0x00e10bd1, 0x024258b0, 0x039431cb, 0x017a968c, 0x02ba06ad, 0x001d7c5e}}, Y: Field{[10]uint32{0x000dd57e, 0x02a16c0a, 0x02590986, 0x03b6ed3a, 0x02372ffb, 0x0066d8a4, 0x03c7d0bf, 0x026a031f, 0x02fe1563, 0x00281e98}}}, + {X: Field{[10]uint32{0x03344f7f, 0x0233e712, 0x020c4c71, 0x03f52339, 0x00ee8b89, 0x0349b504, 0x017e32cb, 0x0382b83a, 0x004bd972, 0x000d5332}}, Y: Field{[10]uint32{0x01db82d6, 0x02c46ba9, 0x020ec7e4, 0x0006180b, 0x018e36c6, 0x026ea215, 0x010b493f, 0x01ad759d, 0x0329291c, 0x0027012f}}}, + {X: Field{[10]uint32{0x01ad3413, 0x02e6db58, 0x01684ae2, 0x00100c9f, 0x028db9c0, 0x032e1ede, 0x0295f485, 0x03d2829b, 0x015e11d9, 0x00199e15}}, Y: Field{[10]uint32{0x02bca672, 0x0204081f, 0x02660124, 0x0054eb71, 0x02a6ce2d, 0x01f2f7e7, 0x01266d92, 0x03d91a49, 0x023de278, 0x00144376}}}, + {X: Field{[10]uint32{0x0102b4b1, 0x01ed7e0d, 0x00a44748, 0x01535b02, 0x01c4af25, 0x018884ea, 0x0086c0f2, 0x0250a101, 0x0018da0f, 0x002b3bc5}}, Y: Field{[10]uint32{0x02e85bfc, 0x007e9e59, 0x0078c6f8, 0x0242b7c6, 0x012a3f62, 0x03625c73, 0x00017b53, 0x01e93781, 0x019fd7e8, 0x003134d5}}}, + {X: Field{[10]uint32{0x02cc8563, 0x002bd6c1, 0x001eaac0, 0x016fff84, 0x009224df, 0x00658da2, 0x02c82bd8, 0x01dd22b6, 0x02362cda, 0x003af712}}, Y: Field{[10]uint32{0x0394ccfa, 0x005ef3a8, 0x00f9249b, 0x02492481, 0x03bec407, 0x033753c1, 0x01ee35e6, 0x034d7e6c, 0x0144e856, 0x0019668c}}}, + {X: Field{[10]uint32{0x01064e13, 0x00ec1843, 0x01e062a7, 0x038111bc, 0x0215311d, 0x023f5059, 0x015ff98e, 0x001a41c8, 0x02ff0c97, 0x002a38a0}}, Y: Field{[10]uint32{0x01f4cc0c, 0x01f1cc44, 0x02bd6cef, 0x00f94375, 0x008b679a, 0x02c94562, 0x03b7f3c5, 0x007026af, 0x015b8db8, 0x001fe5cd}}}, + }, + { + {X: Field{[10]uint32{0x01064e13, 0x00ec1843, 0x01e062a7, 0x038111bc, 0x0215311d, 0x023f5059, 0x015ff98e, 0x001a41c8, 0x02ff0c97, 0x002a38a0}}, Y: Field{[10]uint32{0x01f4cc0c, 0x01f1cc44, 0x02bd6cef, 0x00f94375, 0x008b679a, 0x02c94562, 0x03b7f3c5, 0x007026af, 0x015b8db8, 0x001fe5cd}}}, + {X: Field{[10]uint32{0x037653a1, 0x03ae7a9f, 0x027c1c15, 0x02a9d4f5, 0x03efbe9e, 0x03a99b98, 0x0076f805, 0x02bb2f2e, 0x02e7e27f, 0x0032b1bc}}, Y: Field{[10]uint32{0x02c5e556, 0x0042b43f, 0x003a068c, 0x0395a204, 0x0081e83a, 0x010a8d14, 0x01b65d9a, 0x01bc6533, 0x02e5e2aa, 0x003df505}}}, + {X: Field{[10]uint32{0x023979b5, 0x00666c2e, 0x0029e22a, 0x023799fa, 0x00ba288f, 0x03b90394, 0x0337f0b1, 0x03898c9f, 0x03c5cdad, 0x002b8881}}, Y: Field{[10]uint32{0x0050fa6f, 0x00f359a1, 0x0388968f, 0x01f4df53, 0x00fca87b, 0x00eb5c18, 0x00c92452, 0x027dc6b5, 0x02510c07, 0x003aa47f}}}, + {X: Field{[10]uint32{0x0224003d, 0x03d2ac21, 0x00b11cc9, 0x00a508e3, 0x014ab767, 0x016390c9, 0x03c5932e, 0x03481bbe, 0x0246ee37, 0x0039b7f7}}, Y: Field{[10]uint32{0x0216b93b, 0x02194388, 0x017dd754, 0x03a949ff, 0x003b1ce5, 0x0223e488, 0x02f48f7b, 0x00e5263c, 0x03b7be91, 0x0021c9ec}}}, + {X: Field{[10]uint32{0x02fca824, 0x00064403, 0x024fae41, 0x013fa885, 0x01e0be0c, 0x01961518, 0x02c54100, 0x02b39673, 0x010cad72, 0x0032e37b}}, Y: Field{[10]uint32{0x03227361, 0x002f4163, 0x01742f14, 0x037f1e4c, 0x0096ad1f, 0x028b32f1, 0x0316c487, 0x0223216c, 0x008f740d, 0x000ce940}}}, + {X: Field{[10]uint32{0x00e4dd6a, 0x0384787b, 0x01cef559, 0x02728c88, 0x020a00e4, 0x02359311, 0x01eca37e, 0x00ad92f2, 0x00f7b279, 0x001276f9}}, Y: Field{[10]uint32{0x029e3eae, 0x02dca90a, 0x03b69b13, 0x00bf2816, 0x021c3855, 0x01a48956, 0x01fe33db, 0x02071cb1, 0x02984704, 0x002e2d5c}}}, + {X: Field{[10]uint32{0x03cbd327, 0x006d368e, 0x02aee941, 0x01488792, 0x02b04e08, 0x01f9dbb5, 0x0294900d, 0x020d9c23, 0x03298af1, 0x002c314e}}, Y: Field{[10]uint32{0x017be436, 0x01af128b, 0x02a0f161, 0x0031d18d, 0x03d82a22, 0x02d9acab, 0x00f6a601, 0x01fa858e, 0x03401fbd, 0x003b8aa5}}}, + {X: Field{[10]uint32{0x00dce109, 0x00440d52, 0x011d3b0e, 0x005273c8, 0x02e250e3, 0x02b25820, 0x0240cfc7, 0x0208f59a, 0x009cd9a6, 0x000f1382}}, Y: Field{[10]uint32{0x0219aeea, 0x03d9648e, 0x02697e2b, 0x010b65ff, 0x039579e1, 0x015d934d, 0x0357bca1, 0x0246d201, 0x02669fe1, 0x0010feef}}}, + {X: Field{[10]uint32{0x03b836a1, 0x03bed8e5, 0x01ef7de6, 0x017fdd9e, 0x02c80640, 0x039dfd49, 0x018862ec, 0x02e48353, 0x033f329d, 0x001bdae9}}, Y: Field{[10]uint32{0x02832b84, 0x037cbec1, 0x03f934db, 0x014a2387, 0x00d8990c, 0x016fba70, 0x030b8a40, 0x030638f6, 0x0217ff5f, 0x00371de2}}}, + {X: Field{[10]uint32{0x025d5241, 0x015adfe0, 0x012f6680, 0x032a482f, 0x02563ed7, 0x002cfaa2, 0x00277d34, 0x019d394d, 0x01ada779, 0x003e3307}}, Y: Field{[10]uint32{0x0070e10a, 0x02bc0e3c, 0x00bd4960, 0x01b187ac, 0x0052c2d7, 0x01459bc1, 0x03e892fa, 0x01c3facc, 0x024410b1, 0x0004f793}}}, + {X: Field{[10]uint32{0x02b39ede, 0x038d0827, 0x012d42ae, 0x00cb5c18, 0x00310880, 0x004090d8, 0x00ff467e, 0x00abd2ef, 0x027dc742, 0x001f51c6}}, Y: Field{[10]uint32{0x03f6607e, 0x02f3652a, 0x028fd0c9, 0x01f4708a, 0x027795cf, 0x03ff21be, 0x0382231e, 0x0215941e, 0x0319f3a6, 0x0000129e}}}, + {X: Field{[10]uint32{0x00e5f03a, 0x022d6f7d, 0x006d54fe, 0x03ac7858, 0x0196565f, 0x035f7f8d, 0x03dcfb33, 0x02f8cdcd, 0x03dd0289, 0x002030d3}}, Y: Field{[10]uint32{0x023ca504, 0x03d151bf, 0x005cb117, 0x03bc7cc9, 0x03d30b2a, 0x01f72680, 0x02db5700, 0x007b3557, 0x0056a78c, 0x00091f82}}}, + {X: Field{[10]uint32{0x025eb1c1, 0x03527895, 0x01c5aa56, 0x019f36b9, 0x027fcd75, 0x0260bc25, 0x030fcc31, 0x00feb1c1, 0x0163f9b7, 0x003c0094}}, Y: Field{[10]uint32{0x01de2ae0, 0x01f5c11b, 0x011e57da, 0x01735b34, 0x018576ff, 0x0289abfb, 0x026b4a5d, 0x00837d31, 0x01e8883d, 0x000153aa}}}, + {X: Field{[10]uint32{0x0214f422, 0x00281872, 0x00deca61, 0x03b67931, 0x00b383e4, 0x0136f1ef, 0x03e80221, 0x037cf52b, 0x02e897a9, 0x001b3b46}}, Y: Field{[10]uint32{0x004fc091, 0x00f690f6, 0x00932ae7, 0x0321e6a7, 0x008ca102, 0x02f9ae6e, 0x0095a728, 0x0239eaed, 0x02eb1b0f, 0x00096222}}}, + {X: Field{[10]uint32{0x02c32c64, 0x00d424f6, 0x00bf84cf, 0x000fb2b9, 0x020e36fe, 0x03d1dc57, 0x0304e950, 0x008ea83d, 0x000001ed, 0x002b0485}}, Y: Field{[10]uint32{0x02b1a867, 0x00ab6eb7, 0x03089881, 0x00e9694f, 0x03ed5a5d, 0x00c12668, 0x030b6957, 0x022ebc61, 0x00cbac33, 0x0033a3af}}}, + {X: Field{[10]uint32{0x0319497c, 0x00e0b7a0, 0x008c022f, 0x03e94494, 0x015d59b1, 0x0244f2ac, 0x039e56e6, 0x02161cb4, 0x03b9c9a2, 0x0005d294}}, Y: Field{[10]uint32{0x039afa73, 0x0284eb01, 0x0054383d, 0x007632e6, 0x02646b3a, 0x0311fe79, 0x034155f2, 0x0270595e, 0x0037abfc, 0x00333277}}}, + }, + { + {X: Field{[10]uint32{0x0319497c, 0x00e0b7a0, 0x008c022f, 0x03e94494, 0x015d59b1, 0x0244f2ac, 0x039e56e6, 0x02161cb4, 0x03b9c9a2, 0x0005d294}}, Y: Field{[10]uint32{0x039afa73, 0x0284eb01, 0x0054383d, 0x007632e6, 0x02646b3a, 0x0311fe79, 0x034155f2, 0x0270595e, 0x0037abfc, 0x00333277}}}, + {X: Field{[10]uint32{0x000dd273, 0x0368dbe1, 0x001115f5, 0x00383914, 0x03d53d28, 0x006e4ba8, 0x007071ef, 0x01aed8c3, 0x02e79694, 0x000839b8}}, Y: Field{[10]uint32{0x0346b593, 0x033f456e, 0x0293cc07, 0x01e4f6a1, 0x01811ec9, 0x01e1d195, 0x00ba1ad9, 0x01679128, 0x02fe4f15, 0x0034eb5e}}}, + {X: Field{[10]uint32{0x014b8367, 0x0201cf5d, 0x006bfe94, 0x01f59f54, 0x01b775b7, 0x0210da97, 0x00aa5d45, 0x0149b903, 0x014ae446, 0x00179682}}, Y: Field{[10]uint32{0x01ce85ca, 0x00a6a764, 0x03fa4453, 0x03bcf797, 0x02796aa9, 0x01ca92de, 0x00901f15, 0x0178170b, 0x00c9a479, 0x002ba2be}}}, + {X: Field{[10]uint32{0x02077674, 0x0153cc06, 0x00ca3e7b, 0x004db309, 0x0035ae68, 0x039c76dc, 0x00280a07, 0x01476ea0, 0x0024d7a3, 0x0023832a}}, Y: Field{[10]uint32{0x02b7ed98, 0x0132fb04, 0x010290b8, 0x00674be4, 0x03cff604, 0x0298b3d5, 0x0169d24d, 0x00b50771, 0x02075919, 0x00013b15}}}, + {X: Field{[10]uint32{0x03b10d9d, 0x0215e4e5, 0x00fcaf19, 0x0062747e, 0x01e6a52f, 0x00432e0b, 0x02ccb833, 0x00ba1677, 0x00adb970, 0x00003538}}, Y: Field{[10]uint32{0x0140dced, 0x0040121c, 0x01923e82, 0x0325e38b, 0x030b5898, 0x00c8a1fd, 0x012f8464, 0x0190251f, 0x01981837, 0x0021ee00}}}, + {X: Field{[10]uint32{0x00bcad59, 0x017a0d83, 0x02aa07b0, 0x00169382, 0x017c845a, 0x017e40bc, 0x0217c85a, 0x00d801ea, 0x001152ac, 0x000bb5db}}, Y: Field{[10]uint32{0x00ea66fe, 0x031ea271, 0x0394114a, 0x0004c29f, 0x015f72c6, 0x0205d9fb, 0x01a6eaec, 0x017c88b3, 0x014043b8, 0x0018e7d3}}}, + {X: Field{[10]uint32{0x009caee8, 0x00469827, 0x030bb208, 0x0116c689, 0x03632e20, 0x03b12999, 0x037a19ae, 0x01d303db, 0x021368ef, 0x0000d994}}, Y: Field{[10]uint32{0x0372b711, 0x03b1a8ed, 0x03a7f0a9, 0x0224ca56, 0x0101cba9, 0x02e9a511, 0x009fc681, 0x037b6665, 0x032b2a93, 0x0007c630}}}, + {X: Field{[10]uint32{0x00192441, 0x02bf17aa, 0x034afe96, 0x00868c86, 0x01afdb58, 0x038f59b0, 0x03a63553, 0x020b4717, 0x00da51c9, 0x003deed4}}, Y: Field{[10]uint32{0x005165ae, 0x0103a875, 0x0074bbc6, 0x007eef13, 0x01b1cfdc, 0x03799217, 0x01bc63bd, 0x029498c4, 0x03e30334, 0x0024f30e}}}, + {X: Field{[10]uint32{0x0046c85c, 0x03e5d465, 0x0006353f, 0x00239807, 0x02de37de, 0x00fdb1ba, 0x00676c45, 0x023c7ea8, 0x01056fdb, 0x00039624}}, Y: Field{[10]uint32{0x0148972e, 0x031df9c8, 0x01add5f6, 0x013a0337, 0x00f49023, 0x03d20626, 0x007418ba, 0x01ef683b, 0x005f11fa, 0x0038e692}}}, + {X: Field{[10]uint32{0x015ae087, 0x01240401, 0x00a57e03, 0x01be8d25, 0x00c671b9, 0x010e8544, 0x03945fb7, 0x029660b4, 0x03155b6e, 0x0028d199}}, Y: Field{[10]uint32{0x02887627, 0x03cd98c8, 0x030bccb3, 0x01bc8e53, 0x01c53eab, 0x028a8c14, 0x02fe9a1a, 0x0316f637, 0x03a5e56b, 0x00087297}}}, + {X: Field{[10]uint32{0x022e1259, 0x022b7cf0, 0x0362aff1, 0x02901a04, 0x01931739, 0x0001dddc, 0x02cf5faa, 0x0118fcad, 0x026d26f1, 0x0029d004}}, Y: Field{[10]uint32{0x034a5f43, 0x01c5c90c, 0x02dad5f7, 0x01d4ec75, 0x0117865e, 0x019f1fb9, 0x005f174a, 0x03c7fc6c, 0x03baf194, 0x00016a7f}}}, + {X: Field{[10]uint32{0x00b84b48, 0x03d15c79, 0x017ea830, 0x031e67a0, 0x0091adf4, 0x03505fdc, 0x0110f577, 0x0293d506, 0x030e7d45, 0x0017ec77}}, Y: Field{[10]uint32{0x03be8eb8, 0x037a9a8d, 0x021ad77e, 0x02421cfc, 0x020629c3, 0x039b4960, 0x00f4646f, 0x013527ef, 0x03bcbc3c, 0x000854be}}}, + {X: Field{[10]uint32{0x0308f1fe, 0x0285e8f2, 0x007bfd88, 0x039c2e82, 0x03d7ce7e, 0x0360b45d, 0x01405765, 0x01d39299, 0x00216d94, 0x0021f92e}}, Y: Field{[10]uint32{0x02d5e2ec, 0x01d2b26b, 0x02d9d75f, 0x036f59e1, 0x006e2f23, 0x00be30b3, 0x03d7f8ea, 0x01233b35, 0x02c07663, 0x003dd38e}}}, + {X: Field{[10]uint32{0x01b8f255, 0x01b661fe, 0x00d21114, 0x039d24a8, 0x01e77d43, 0x02aa0bfa, 0x022e4608, 0x02e29058, 0x017478e1, 0x00256ef6}}, Y: Field{[10]uint32{0x00361439, 0x038ffa0a, 0x03fc1010, 0x02bbf1dd, 0x00f2ba72, 0x003cb436, 0x032c208f, 0x031dff7b, 0x02d129e3, 0x002fb50e}}}, + {X: Field{[10]uint32{0x01c4d15c, 0x01c039a8, 0x0274b9a8, 0x02fc1f03, 0x00105ea7, 0x00495291, 0x02c22c0c, 0x01e696a4, 0x03463fea, 0x000d7a86}}, Y: Field{[10]uint32{0x033fe1ea, 0x00e6ebdf, 0x0095edc9, 0x0280c194, 0x005d633a, 0x01d34ec6, 0x008fa5fd, 0x034b35e2, 0x01651b9e, 0x002b4864}}}, + {X: Field{[10]uint32{0x0075b7ba, 0x03f7fc25, 0x00b3d884, 0x00c39246, 0x03e039e7, 0x01406336, 0x03e57edf, 0x01e170f4, 0x02981943, 0x002564e5}}, Y: Field{[10]uint32{0x0124f2fd, 0x022afe1d, 0x01385e9b, 0x019321c2, 0x009c653f, 0x02e735a1, 0x020386a4, 0x00c7762e, 0x012888c3, 0x000b9f95}}}, + }, + { + {X: Field{[10]uint32{0x0075b7ba, 0x03f7fc25, 0x00b3d884, 0x00c39246, 0x03e039e7, 0x01406336, 0x03e57edf, 0x01e170f4, 0x02981943, 0x002564e5}}, Y: Field{[10]uint32{0x0124f2fd, 0x022afe1d, 0x01385e9b, 0x019321c2, 0x009c653f, 0x02e735a1, 0x020386a4, 0x00c7762e, 0x012888c3, 0x000b9f95}}}, + {X: Field{[10]uint32{0x03c8f53b, 0x01d6a502, 0x007c7072, 0x01ace45d, 0x02d70222, 0x035cf657, 0x0232ca7d, 0x029f7abf, 0x0005ff0d, 0x0032fb85}}, Y: Field{[10]uint32{0x00c87f45, 0x00b9ac9e, 0x03728292, 0x03da049b, 0x030d9ff4, 0x02e0a533, 0x01f3e689, 0x03e40ad4, 0x034f4e75, 0x003d8847}}}, + {X: Field{[10]uint32{0x03d69985, 0x03177643, 0x032aea09, 0x032db77d, 0x009f309c, 0x02f333c5, 0x00f690df, 0x00bdf9e2, 0x0275ceb7, 0x0002ba5d}}, Y: Field{[10]uint32{0x0009a003, 0x023ad045, 0x01aff89c, 0x0105ebb8, 0x01d0b99d, 0x01469531, 0x038dfee0, 0x023453a6, 0x0173f6e4, 0x00244866}}}, + {X: Field{[10]uint32{0x00b311dd, 0x01f222c5, 0x01b9cf37, 0x02bbef5c, 0x003de3be, 0x02e894b8, 0x0180bfa0, 0x03d6b375, 0x02d28faa, 0x002b756e}}, Y: Field{[10]uint32{0x01d6c38d, 0x0260bcd2, 0x01b8902f, 0x039d9a6e, 0x0352d4e1, 0x00d66053, 0x00e434f8, 0x030e965d, 0x00f4da3d, 0x003a710f}}}, + {X: Field{[10]uint32{0x01262b90, 0x0064f7f6, 0x0029a9dc, 0x0307f8f3, 0x03b723c4, 0x02009747, 0x0365f177, 0x0184bb26, 0x022a5ac1, 0x000ac561}}, Y: Field{[10]uint32{0x003d7557, 0x0265b992, 0x009a4991, 0x01c3e652, 0x026f5349, 0x02a1d241, 0x0230d52d, 0x00cfea9e, 0x013daa0a, 0x000bac01}}}, + {X: Field{[10]uint32{0x0078afb0, 0x016b9e58, 0x021974e7, 0x031b1049, 0x0314ff12, 0x019b45c1, 0x00d4468c, 0x018ed492, 0x03cd7661, 0x0008275a}}, Y: Field{[10]uint32{0x0340b310, 0x006ddd69, 0x023e385d, 0x024ce7d3, 0x0301edb7, 0x02626296, 0x0165baba, 0x00ca0282, 0x03429e7b, 0x00068bc4}}}, + {X: Field{[10]uint32{0x00e7be40, 0x025c532a, 0x00ee593f, 0x02524410, 0x02f2d2c8, 0x01b91da6, 0x0295c161, 0x03b99dfb, 0x02ed1a96, 0x001abe7a}}, Y: Field{[10]uint32{0x02387e1c, 0x005b809b, 0x01569fa4, 0x019a83d6, 0x0145e3f6, 0x00d1f720, 0x009ea428, 0x0199259c, 0x02116900, 0x002ce04a}}}, + {X: Field{[10]uint32{0x017c0979, 0x01900283, 0x00c96f5f, 0x0052f16a, 0x024a29b3, 0x03d073b4, 0x029df3df, 0x005c50fe, 0x032ba817, 0x0014fc90}}, Y: Field{[10]uint32{0x037b36a2, 0x01fa4314, 0x03845f9f, 0x03d727a2, 0x024bd5a4, 0x0046c1f7, 0x014e3e09, 0x01e6df33, 0x03fbc1f0, 0x002f54bb}}}, + {X: Field{[10]uint32{0x0082801e, 0x02dbe83d, 0x00155d26, 0x022f16f5, 0x0140794f, 0x032e35be, 0x03aab424, 0x00513bac, 0x00ee0444, 0x0016599a}}, Y: Field{[10]uint32{0x00870c37, 0x01c523c1, 0x0135ad47, 0x032d8f4d, 0x028db6c1, 0x01dc4c13, 0x008f9608, 0x03bd7c7b, 0x00a85bba, 0x002526a8}}}, + {X: Field{[10]uint32{0x00977063, 0x00102962, 0x00c4fef4, 0x022fec4c, 0x0365bf6f, 0x019f83f6, 0x0150f838, 0x0269bd87, 0x029e047f, 0x0029d8b9}}, Y: Field{[10]uint32{0x014f6ef1, 0x00da7e0a, 0x00e62a06, 0x028e5b7f, 0x01958b48, 0x00cdcaa2, 0x021732d9, 0x00455e06, 0x0157cbed, 0x001ae637}}}, + {X: Field{[10]uint32{0x032c19fd, 0x026cb9f0, 0x028c3e4c, 0x03a41600, 0x034acab8, 0x02d5c2d6, 0x01f4d17a, 0x0141d8bf, 0x01881b50, 0x002fa134}}, Y: Field{[10]uint32{0x02f1281f, 0x025294dc, 0x01c37676, 0x03d57943, 0x007955a7, 0x00c20e65, 0x01e65f48, 0x01425134, 0x00cb32dc, 0x003bfe58}}}, + {X: Field{[10]uint32{0x0355a9bf, 0x02c0a637, 0x01bf8ebc, 0x03bca7a9, 0x00f6b015, 0x0075f15e, 0x00307f60, 0x00c60604, 0x00eb9c6e, 0x001c98a6}}, Y: Field{[10]uint32{0x003accae, 0x01be2c2f, 0x033b4e11, 0x032f0019, 0x00be797b, 0x00f42678, 0x0035a2ef, 0x026ff6a6, 0x0001a9de, 0x000e3522}}}, + {X: Field{[10]uint32{0x02c69482, 0x02dd7f55, 0x02167bd1, 0x01004cbe, 0x00cbeab5, 0x02bcaf22, 0x0357274c, 0x01fb9507, 0x00314c0d, 0x002619e8}}, Y: Field{[10]uint32{0x03792cd7, 0x0018451b, 0x028a916f, 0x033d4558, 0x039e6245, 0x006ea658, 0x0392d55b, 0x020d3e71, 0x015a3b10, 0x00340b98}}}, + {X: Field{[10]uint32{0x01a7e7d2, 0x01fcb610, 0x03d85995, 0x0230fbea, 0x03a4c90e, 0x0251b791, 0x03af7555, 0x039229a4, 0x030f1339, 0x002e4d04}}, Y: Field{[10]uint32{0x00653d39, 0x02646a26, 0x00c41a4a, 0x036f9c37, 0x03ffd381, 0x02fde347, 0x00929a5f, 0x0015daa8, 0x036b9b2d, 0x002548cf}}}, + {X: Field{[10]uint32{0x01557aa1, 0x008e7647, 0x03c2978a, 0x03fb3407, 0x03df1d92, 0x002675aa, 0x027f2ea0, 0x02056964, 0x024540d8, 0x002a19bc}}, Y: Field{[10]uint32{0x01430634, 0x006eed30, 0x01a4b798, 0x0319f184, 0x0161eb69, 0x036c384e, 0x013d8fa5, 0x00ad135e, 0x01f6a802, 0x002d61ce}}}, + {X: Field{[10]uint32{0x0182b151, 0x004d0327, 0x03a2dbb5, 0x00f5587e, 0x03cca0a4, 0x02c426a3, 0x005a1153, 0x00795b59, 0x0250ae40, 0x0034a98e}}, Y: Field{[10]uint32{0x00f89405, 0x01085d37, 0x00a52d41, 0x002bd213, 0x00a70f75, 0x00a52088, 0x01aee58b, 0x03f2dd59, 0x02fb6443, 0x003a0b61}}}, + }, + { + {X: Field{[10]uint32{0x0182b151, 0x004d0327, 0x03a2dbb5, 0x00f5587e, 0x03cca0a4, 0x02c426a3, 0x005a1153, 0x00795b59, 0x0250ae40, 0x0034a98e}}, Y: Field{[10]uint32{0x00f89405, 0x01085d37, 0x00a52d41, 0x002bd213, 0x00a70f75, 0x00a52088, 0x01aee58b, 0x03f2dd59, 0x02fb6443, 0x003a0b61}}}, + {X: Field{[10]uint32{0x0272da5f, 0x0312eb32, 0x013497c6, 0x01acdb10, 0x0122b9cd, 0x00cdc97e, 0x03c72020, 0x0149788e, 0x03a76100, 0x002ebc60}}, Y: Field{[10]uint32{0x00f2a0cf, 0x03398a2a, 0x01361377, 0x031729ce, 0x018e2336, 0x035a6c74, 0x008bd58d, 0x0134cd5a, 0x03be9ccb, 0x0037ab27}}}, + {X: Field{[10]uint32{0x024b3ba0, 0x027d8d7b, 0x031f1785, 0x03d7c62f, 0x035c2abe, 0x006fc917, 0x03e170f3, 0x03edcefb, 0x0105221f, 0x00104204}}, Y: Field{[10]uint32{0x03525595, 0x02587705, 0x02455486, 0x02159681, 0x00133649, 0x035ae126, 0x00a65ae1, 0x0159a3cb, 0x036976ff, 0x00370dfc}}}, + {X: Field{[10]uint32{0x016c3943, 0x02b29631, 0x02a5ffa5, 0x00b55add, 0x015adbd0, 0x03923dbf, 0x01332906, 0x01008e3e, 0x00a7e384, 0x003debbe}}, Y: Field{[10]uint32{0x00f442f1, 0x03d89feb, 0x01003431, 0x0212a373, 0x03eec301, 0x00eacff3, 0x0042bbdc, 0x0369e5f1, 0x0344d5ff, 0x00138ec2}}}, + {X: Field{[10]uint32{0x03d98ded, 0x02726e24, 0x00218462, 0x020cee28, 0x02dbdf22, 0x014c7597, 0x00f22990, 0x03032323, 0x0210a16c, 0x0018e8a8}}, Y: Field{[10]uint32{0x00d1cfc2, 0x0065f538, 0x0073a519, 0x0280271e, 0x021fabf6, 0x013b6511, 0x02503325, 0x031dbf41, 0x02e2e7fe, 0x00220ad0}}}, + {X: Field{[10]uint32{0x000e5485, 0x02799a80, 0x01df0208, 0x022fd769, 0x02451306, 0x01cc83c4, 0x02c70862, 0x02f7fe38, 0x02d793a2, 0x0007349d}}, Y: Field{[10]uint32{0x005fbd7f, 0x033c1462, 0x024ecca5, 0x01c2c826, 0x0399d0e2, 0x014ba5df, 0x00b34d45, 0x02bdce35, 0x01d18b2e, 0x0019856f}}}, + {X: Field{[10]uint32{0x00045445, 0x0186942e, 0x00d7eea8, 0x01c6407a, 0x0080ff73, 0x0355efbc, 0x0312e2e5, 0x019f28f7, 0x015d449d, 0x00030560}}, Y: Field{[10]uint32{0x0054a206, 0x03e1f550, 0x00ea3214, 0x0390d963, 0x00ba3054, 0x0198f34a, 0x0293c3b6, 0x01045742, 0x020a3ae9, 0x000bcc35}}}, + {X: Field{[10]uint32{0x01924459, 0x032515c4, 0x0278c1fa, 0x00968f1e, 0x037af2fa, 0x03776ec7, 0x022e29f0, 0x0240db16, 0x03cb1001, 0x0037ed51}}, Y: Field{[10]uint32{0x0065fd9e, 0x00178373, 0x031dcfa2, 0x00c39700, 0x0022af09, 0x03721933, 0x00389ce9, 0x011c222e, 0x02a9ba0f, 0x0026b334}}}, + {X: Field{[10]uint32{0x03857faf, 0x0048e730, 0x019701e9, 0x03787a58, 0x03882fca, 0x020a3bdf, 0x017ba8f4, 0x022a7035, 0x036b89ae, 0x0031d5fa}}, Y: Field{[10]uint32{0x00584ca4, 0x0276c328, 0x014c101d, 0x00344062, 0x03627d31, 0x022fb186, 0x03369f20, 0x03fcd895, 0x01cfcd23, 0x003c0e96}}}, + {X: Field{[10]uint32{0x02f8b517, 0x02ecd463, 0x01bac9a8, 0x00691c5c, 0x0177c277, 0x02845789, 0x01bc8064, 0x036c9257, 0x02f7ccc4, 0x001c4808}}, Y: Field{[10]uint32{0x009da1ac, 0x01f7ca09, 0x01d7748b, 0x037cef5e, 0x01a3603e, 0x00251d50, 0x03101f9b, 0x03a4a2b9, 0x0338de4d, 0x002f55e0}}}, + {X: Field{[10]uint32{0x0059225d, 0x034613d5, 0x018d10e4, 0x01f8b621, 0x0244faf7, 0x006700a8, 0x015d4099, 0x028343e0, 0x03aeadaf, 0x003ea018}}, Y: Field{[10]uint32{0x02ce1507, 0x02df8edf, 0x0059c3a2, 0x00db401f, 0x000a2b6c, 0x00931097, 0x00de2208, 0x0301a458, 0x039057c0, 0x0002e9c7}}}, + {X: Field{[10]uint32{0x010bc03e, 0x014f566a, 0x015e33c7, 0x024d4780, 0x0084b0f3, 0x011143e0, 0x01a925f7, 0x001cba79, 0x00ed2c82, 0x000b3bb6}}, Y: Field{[10]uint32{0x02b82adc, 0x01cae2de, 0x03cd01cb, 0x033c8354, 0x034a1df9, 0x03f1f6ba, 0x0050eb7a, 0x0378fb36, 0x0380e9b9, 0x002909da}}}, + {X: Field{[10]uint32{0x02f0d044, 0x027fa505, 0x021a7967, 0x03524279, 0x01aaba9f, 0x018bb829, 0x02f69cf8, 0x015ea278, 0x03c59d02, 0x00196328}}, Y: Field{[10]uint32{0x03cb872d, 0x007ccbbd, 0x00e89add, 0x018f1063, 0x0255a167, 0x004ef4dd, 0x0165d627, 0x0095183c, 0x01377aea, 0x002b9730}}}, + {X: Field{[10]uint32{0x02aa2494, 0x03538c50, 0x00c9a50c, 0x03f9f744, 0x027bdcdd, 0x013aef20, 0x01136e7c, 0x03a3b374, 0x009a4539, 0x000de71d}}, Y: Field{[10]uint32{0x02c86c63, 0x03ea7a33, 0x016435be, 0x029edfa1, 0x011364f6, 0x019e0fc4, 0x01c0ef1d, 0x0300c4f2, 0x03848bf9, 0x00289518}}}, + {X: Field{[10]uint32{0x0296756d, 0x02b255cd, 0x01417ab5, 0x01815958, 0x00676af1, 0x034fcc17, 0x00c19835, 0x03caeb39, 0x034aaf91, 0x000c7252}}, Y: Field{[10]uint32{0x0208ae78, 0x0117a377, 0x01070abc, 0x032b9ab4, 0x0283aedf, 0x02bd0581, 0x00b8b59a, 0x020ea6fd, 0x004b556e, 0x003e03e2}}}, + {X: Field{[10]uint32{0x0217e073, 0x01be6d15, 0x0317b343, 0x02f4e0e4, 0x026bacbd, 0x01f3f721, 0x02e7896d, 0x007ae243, 0x02233547, 0x0019161f}}, Y: Field{[10]uint32{0x03af6589, 0x026797a7, 0x02ab3582, 0x00e44ceb, 0x0185b90a, 0x01f0a668, 0x016dd644, 0x000b8aba, 0x01d5bf69, 0x003667f3}}}, + }, + { + {X: Field{[10]uint32{0x0217e073, 0x01be6d15, 0x0317b343, 0x02f4e0e4, 0x026bacbd, 0x01f3f721, 0x02e7896d, 0x007ae243, 0x02233547, 0x0019161f}}, Y: Field{[10]uint32{0x03af6589, 0x026797a7, 0x02ab3582, 0x00e44ceb, 0x0185b90a, 0x01f0a668, 0x016dd644, 0x000b8aba, 0x01d5bf69, 0x003667f3}}}, + {X: Field{[10]uint32{0x0384480d, 0x03362310, 0x032ef44b, 0x0288aa47, 0x0294e0b6, 0x024bc304, 0x0328b54c, 0x02503cb3, 0x02b142df, 0x002e19b5}}, Y: Field{[10]uint32{0x004cafa8, 0x0166d1c3, 0x006d60e6, 0x02012c76, 0x0024e522, 0x02a6b5eb, 0x02278d7e, 0x03adc226, 0x00b3426a, 0x0006452c}}}, + {X: Field{[10]uint32{0x02103dd6, 0x01c51c83, 0x00859adf, 0x0301f001, 0x02c34604, 0x0164a85e, 0x02213cfc, 0x000fe0da, 0x03d55a42, 0x002f11de}}, Y: Field{[10]uint32{0x02f7c343, 0x0020b635, 0x004ac639, 0x01cb18ed, 0x015d2935, 0x01b7a98e, 0x03ac552c, 0x037549b2, 0x022429a8, 0x0038c787}}}, + {X: Field{[10]uint32{0x01b20d6c, 0x02736a07, 0x02455d22, 0x0393b53f, 0x03e2d52a, 0x0040aea1, 0x019d1646, 0x02067b13, 0x009085de, 0x003b0aee}}, Y: Field{[10]uint32{0x029cf4a0, 0x02671358, 0x03a98a0e, 0x012fa1fb, 0x0233a236, 0x01425031, 0x02f66f06, 0x004e84cc, 0x017661e0, 0x00333b30}}}, + {X: Field{[10]uint32{0x004eab31, 0x0370ec35, 0x034907d0, 0x00501398, 0x000ac5af, 0x019efe3a, 0x003b4232, 0x02e0e00c, 0x00fe5a6b, 0x0016276d}}, Y: Field{[10]uint32{0x01361f6a, 0x02baf9d4, 0x038db941, 0x01548523, 0x031f610e, 0x012f643c, 0x00706202, 0x028a93d8, 0x005c108a, 0x00189551}}}, + {X: Field{[10]uint32{0x02695f94, 0x0202c60d, 0x03fa592d, 0x031a4589, 0x0362a169, 0x02be6a73, 0x00cb8683, 0x023d7f43, 0x0151b455, 0x002c7497}}, Y: Field{[10]uint32{0x02e32736, 0x01fae697, 0x03edca5b, 0x0236ae18, 0x0360f6f1, 0x026aea05, 0x03ea0ac1, 0x0242c7de, 0x0272030e, 0x001c1b76}}}, + {X: Field{[10]uint32{0x020c2c41, 0x02585ca6, 0x036c67bf, 0x0071580c, 0x0042831c, 0x035bb6df, 0x00a1860a, 0x00be8baa, 0x0337d16e, 0x0004ce6c}}, Y: Field{[10]uint32{0x01f1bc2b, 0x03c152ea, 0x023a4185, 0x03e1f7a4, 0x006b1227, 0x0044e8d0, 0x023240fd, 0x02b96e9e, 0x016362c7, 0x0027e6ca}}}, + {X: Field{[10]uint32{0x03b09d0f, 0x0183b2c8, 0x03ecf38a, 0x01903d42, 0x01e50050, 0x03951641, 0x01d75ef5, 0x025b3b4e, 0x03e389e2, 0x001c7129}}, Y: Field{[10]uint32{0x020ddb62, 0x02c7c05c, 0x03fc7637, 0x0021298b, 0x02786f2b, 0x00be042a, 0x033e0a29, 0x03cee82b, 0x02db737a, 0x0004c4fe}}}, + {X: Field{[10]uint32{0x00fc47af, 0x012c7e16, 0x00dec370, 0x0320cb03, 0x00a8ddfe, 0x00006d5a, 0x010329b5, 0x033c5f31, 0x03a11363, 0x001ffcee}}, Y: Field{[10]uint32{0x01ba43a7, 0x0185933e, 0x02c297f8, 0x006b462e, 0x0317a53b, 0x011cd11a, 0x03c891b7, 0x0298a682, 0x03ae8018, 0x0007dae9}}}, + {X: Field{[10]uint32{0x0241e20e, 0x03132ea7, 0x03864d1d, 0x00f5e34c, 0x0138a87a, 0x00e934fa, 0x030f7f00, 0x013722f2, 0x01c4a511, 0x003f0e57}}, Y: Field{[10]uint32{0x03cf42ee, 0x036330b9, 0x00e2b77a, 0x0169a179, 0x02022147, 0x02f76db5, 0x02b81a98, 0x01f42533, 0x009108d0, 0x000e19b8}}}, + {X: Field{[10]uint32{0x01213775, 0x01358025, 0x02a99018, 0x00ec8f50, 0x0100b429, 0x03fb1fd8, 0x001e9395, 0x0182ed85, 0x00463ceb, 0x0023b19c}}, Y: Field{[10]uint32{0x0041ffff, 0x0043cf9e, 0x011e90e0, 0x0282f33d, 0x0271da98, 0x033b7b83, 0x02643415, 0x016f8c1b, 0x026fa0da, 0x0023d629}}}, + {X: Field{[10]uint32{0x02f83231, 0x01c4062d, 0x025e3499, 0x0239d810, 0x00b7c30d, 0x016cff74, 0x01158276, 0x02e89aa3, 0x00c53502, 0x002143e3}}, Y: Field{[10]uint32{0x032e8373, 0x00c6a757, 0x0177f4a0, 0x0285dc8b, 0x010a85bf, 0x020b31e2, 0x03f7086b, 0x02414f42, 0x01be02a7, 0x002f12a7}}}, + {X: Field{[10]uint32{0x0052abbb, 0x00ffe34d, 0x01c2e3cb, 0x00bf8ae5, 0x01ae6aa7, 0x03657525, 0x01bac3fe, 0x0006ee27, 0x01b441e7, 0x0020f798}}, Y: Field{[10]uint32{0x014eb66e, 0x0145dac1, 0x002918a0, 0x00daef39, 0x03d79c5f, 0x03138558, 0x03fb6af8, 0x01827e9a, 0x0334a34c, 0x000cbc38}}}, + {X: Field{[10]uint32{0x032e6ffa, 0x00441937, 0x0176388b, 0x00dedc55, 0x0246be9f, 0x011d4351, 0x005bb6a9, 0x0067ec51, 0x02f98f94, 0x0014ffa2}}, Y: Field{[10]uint32{0x00e92eb5, 0x03acdc99, 0x030c22a1, 0x03980ef5, 0x005fb5f8, 0x01193797, 0x000cf6c4, 0x01518859, 0x017e7b51, 0x0024ca20}}}, + {X: Field{[10]uint32{0x019276f1, 0x022309bd, 0x03b15e96, 0x02ca4a85, 0x0033ae25, 0x03df361a, 0x00bb5c00, 0x03076c6a, 0x03898f50, 0x000f5d98}}, Y: Field{[10]uint32{0x019cbcb3, 0x012996e1, 0x0178601e, 0x008066c6, 0x02f32198, 0x02b60ccf, 0x0176e34d, 0x01f76d82, 0x01737a18, 0x0034dd9a}}}, + {X: Field{[10]uint32{0x0145e458, 0x035b21b7, 0x027fd358, 0x033a8943, 0x002f0aa6, 0x01527781, 0x02546d3e, 0x036216ce, 0x01e0e4e4, 0x0021206f}}, Y: Field{[10]uint32{0x0379057e, 0x012c6d65, 0x02e556d6, 0x0310ac98, 0x02900a79, 0x033b2cb2, 0x0225bf39, 0x00137612, 0x038cba54, 0x000e3b9e}}}, + }, + { + {X: Field{[10]uint32{0x0145e458, 0x035b21b7, 0x027fd358, 0x033a8943, 0x002f0aa6, 0x01527781, 0x02546d3e, 0x036216ce, 0x01e0e4e4, 0x0021206f}}, Y: Field{[10]uint32{0x0379057e, 0x012c6d65, 0x02e556d6, 0x0310ac98, 0x02900a79, 0x033b2cb2, 0x0225bf39, 0x00137612, 0x038cba54, 0x000e3b9e}}}, + {X: Field{[10]uint32{0x00e9f114, 0x010cd49b, 0x021dde54, 0x0014a655, 0x03392ed6, 0x007524af, 0x0143c6cd, 0x00ea2e7f, 0x0050bd38, 0x00258a69}}, Y: Field{[10]uint32{0x024aa391, 0x025cb128, 0x02f8dca3, 0x00f9715a, 0x01b92559, 0x0033bd93, 0x02befd22, 0x02db5d5d, 0x03280c5f, 0x002fd0e6}}}, + {X: Field{[10]uint32{0x012da17d, 0x0283e905, 0x0246b160, 0x036c2341, 0x0011dc13, 0x03f802f2, 0x014e6b05, 0x02317c22, 0x011e0f51, 0x000efabb}}, Y: Field{[10]uint32{0x00c768d2, 0x0012617b, 0x00416ce7, 0x01ee37fb, 0x0154cde7, 0x03a0386d, 0x034a8beb, 0x01eb37fb, 0x03f55aff, 0x0030ec35}}}, + {X: Field{[10]uint32{0x02ca6cc3, 0x00e36589, 0x0218383d, 0x011f861f, 0x031477d7, 0x033224f7, 0x01730da7, 0x011a23ac, 0x0047ef1e, 0x002dcec7}}, Y: Field{[10]uint32{0x014fdba3, 0x00d75da9, 0x03f5afac, 0x014825d5, 0x017322a2, 0x03320142, 0x017d64bb, 0x008aa429, 0x01cb2949, 0x001610c5}}}, + {X: Field{[10]uint32{0x024edcc5, 0x03e85f6e, 0x011b7234, 0x0085080c, 0x03e74e32, 0x0249d665, 0x012dfc03, 0x0275861d, 0x03a0cbdc, 0x001b9cf6}}, Y: Field{[10]uint32{0x019da0e4, 0x007df375, 0x039037b3, 0x0369c019, 0x03278a77, 0x0220a1a4, 0x02455088, 0x033122fa, 0x01fc49ee, 0x003b82b0}}}, + {X: Field{[10]uint32{0x0063e1be, 0x026b4134, 0x01a75c1b, 0x028bdf8e, 0x03a92429, 0x036f3c09, 0x02615253, 0x00ac51c8, 0x01d11d60, 0x0004c590}}, Y: Field{[10]uint32{0x01fec890, 0x007fcf88, 0x01b77fdd, 0x0303e5d1, 0x03bd0fae, 0x036f4afa, 0x002e30fc, 0x00e7c1a9, 0x02617960, 0x00130ef6}}}, + {X: Field{[10]uint32{0x0280b979, 0x03131092, 0x03b31409, 0x03e8ca6a, 0x000490f5, 0x0291f0c4, 0x027d97ea, 0x02d649d8, 0x018937e5, 0x001dc1b7}}, Y: Field{[10]uint32{0x0126cfde, 0x03d20410, 0x03e3214c, 0x00d3f5fb, 0x0117fa0a, 0x007aa71c, 0x038dd799, 0x02dc51dd, 0x01827d5b, 0x002280aa}}}, + {X: Field{[10]uint32{0x038f93e0, 0x038864b4, 0x0099f9c6, 0x00eed9da, 0x03d05b2a, 0x01e8bfbd, 0x03989200, 0x00600c47, 0x02b2db40, 0x003b7f85}}, Y: Field{[10]uint32{0x029405ad, 0x005e4f78, 0x0227e3d0, 0x000311b8, 0x025b3d51, 0x02c17434, 0x0174faa4, 0x036cda53, 0x02f1fca5, 0x003b9a40}}}, + {X: Field{[10]uint32{0x026fe285, 0x02e712dc, 0x03127dcd, 0x00a504fb, 0x02a45bac, 0x007e781a, 0x02f3c7a4, 0x0303e034, 0x02c5929b, 0x0005b508}}, Y: Field{[10]uint32{0x0155b441, 0x003ff9b0, 0x00d4233e, 0x0044dcd9, 0x01e93f0c, 0x018d4c6c, 0x02b7e69a, 0x009906a2, 0x00fa51e2, 0x00037e22}}}, + {X: Field{[10]uint32{0x01e306a5, 0x004cae1a, 0x007f15d3, 0x00931309, 0x02b8b5f6, 0x017cb971, 0x027129b3, 0x0030cd24, 0x0363f9f3, 0x0025cb2c}}, Y: Field{[10]uint32{0x02e86295, 0x007f502d, 0x00f35d06, 0x03b732b5, 0x01b85702, 0x02f1941e, 0x01e77fe5, 0x024aa97e, 0x0304e2df, 0x002b98d1}}}, + {X: Field{[10]uint32{0x02cfa513, 0x0042f2ae, 0x023aeae3, 0x027e6983, 0x004e2407, 0x003d5aa7, 0x01a34475, 0x01b58ea9, 0x0247eec7, 0x0007f303}}, Y: Field{[10]uint32{0x007afc9c, 0x01d6e904, 0x03918750, 0x03459260, 0x004beded, 0x00ce7e6d, 0x00e38754, 0x0151e2d2, 0x01a041e3, 0x00059770}}}, + {X: Field{[10]uint32{0x0046e079, 0x0280d49f, 0x0078dd12, 0x002e17a7, 0x00ab6693, 0x000ae8dd, 0x02f75adb, 0x02b14c3f, 0x02ad2acf, 0x002ae1b0}}, Y: Field{[10]uint32{0x0236ffe1, 0x00a2f05d, 0x017c0ec4, 0x03a12143, 0x01ce7728, 0x01cc8032, 0x01c46d4d, 0x00a6af3d, 0x0286019f, 0x00048270}}}, + {X: Field{[10]uint32{0x02dc69b2, 0x009c1f3f, 0x0371721a, 0x0226c9ad, 0x02a50a60, 0x0172a8e1, 0x00643043, 0x02e285cc, 0x0073ad6c, 0x00304ae4}}, Y: Field{[10]uint32{0x00dd41dd, 0x02ba6c08, 0x032a0032, 0x02f8f49e, 0x02b8ee1d, 0x03e2525d, 0x0372dc89, 0x0337c765, 0x003fe534, 0x000c5cf1}}}, + {X: Field{[10]uint32{0x02341142, 0x031ef3a7, 0x02760d3e, 0x03add91c, 0x007ae684, 0x0268459a, 0x021bd217, 0x028ec06e, 0x00110c2d, 0x00319c07}}, Y: Field{[10]uint32{0x020f4dad, 0x01318567, 0x03e57892, 0x02e96f26, 0x015d07fc, 0x03867d68, 0x03869bbd, 0x0376654b, 0x02b38d6c, 0x000a8083}}}, + {X: Field{[10]uint32{0x0161fe4d, 0x03d6177e, 0x03197ab6, 0x01be2c41, 0x028a1488, 0x004b29cf, 0x033e9313, 0x01ea3e8f, 0x0385dc32, 0x0034166f}}, Y: Field{[10]uint32{0x02e823c2, 0x00d6c19a, 0x0364cb99, 0x0287d36a, 0x00fd388b, 0x0212556d, 0x020765dc, 0x014978ff, 0x0260c08b, 0x0011441e}}}, + {X: Field{[10]uint32{0x00af666b, 0x018c0fdb, 0x00e30bcd, 0x034f12c7, 0x037ffcfe, 0x0205fd18, 0x036979ae, 0x000aa98a, 0x0257a781, 0x0004d192}}, Y: Field{[10]uint32{0x036ecc27, 0x0256a41f, 0x002e13f4, 0x02a07425, 0x0248f300, 0x00f32c32, 0x03e43345, 0x011603bd, 0x01900461, 0x001a6f85}}}, + }, + { + {X: Field{[10]uint32{0x00af666b, 0x018c0fdb, 0x00e30bcd, 0x034f12c7, 0x037ffcfe, 0x0205fd18, 0x036979ae, 0x000aa98a, 0x0257a781, 0x0004d192}}, Y: Field{[10]uint32{0x036ecc27, 0x0256a41f, 0x002e13f4, 0x02a07425, 0x0248f300, 0x00f32c32, 0x03e43345, 0x011603bd, 0x01900461, 0x001a6f85}}}, + {X: Field{[10]uint32{0x025084ae, 0x02127181, 0x02577c75, 0x01f73aaf, 0x019182be, 0x017f84b4, 0x005c88c8, 0x014d8bb0, 0x00f53224, 0x003acf3e}}, Y: Field{[10]uint32{0x016b9480, 0x01f07ffe, 0x012a66f6, 0x03179f6f, 0x01f52b45, 0x03f72928, 0x03e63dce, 0x035c010f, 0x038222d9, 0x00320cf1}}}, + {X: Field{[10]uint32{0x02ca5f51, 0x01ac8263, 0x01aebf21, 0x006e53f2, 0x03ddea17, 0x03c16d73, 0x02ed6b2b, 0x039a58b1, 0x0114dd9e, 0x00377a75}}, Y: Field{[10]uint32{0x00c638f7, 0x01a69cf4, 0x0171f9ad, 0x03a37a25, 0x0150feeb, 0x029fe3c2, 0x011f34b0, 0x02044762, 0x01133ce2, 0x002e139a}}}, + {X: Field{[10]uint32{0x02e9a5d0, 0x016f2f30, 0x001d9f8e, 0x03e61288, 0x02a576fc, 0x0211466c, 0x03a60f21, 0x02665d3d, 0x027d092d, 0x002f7c69}}, Y: Field{[10]uint32{0x0162ff7b, 0x013dc061, 0x02461cdb, 0x01879589, 0x02a6280b, 0x01afdeea, 0x00be54a8, 0x0286aaa0, 0x002bab65, 0x00102564}}}, + {X: Field{[10]uint32{0x019c88e4, 0x001ac166, 0x006ec2f9, 0x00f882b5, 0x039aed51, 0x004812c5, 0x01f406eb, 0x024dcdba, 0x02102369, 0x003f4698}}, Y: Field{[10]uint32{0x015bc8df, 0x02324596, 0x000f299c, 0x03525730, 0x02dc6b71, 0x0125dde0, 0x013c0695, 0x03082fec, 0x0354b9c8, 0x0006b25e}}}, + {X: Field{[10]uint32{0x009b0cca, 0x031a9568, 0x016f01cc, 0x02249293, 0x01a34575, 0x028a3696, 0x00454f68, 0x03d32357, 0x00b1dbb0, 0x000354e3}}, Y: Field{[10]uint32{0x00929e05, 0x02c51f83, 0x034c9731, 0x02676244, 0x038534cd, 0x003bb5f3, 0x00a8d5c4, 0x0304432c, 0x03ac7a3e, 0x0032065a}}}, + {X: Field{[10]uint32{0x038018ce, 0x0056d6d7, 0x02d68bd5, 0x01ce3624, 0x03cf2da5, 0x00b21b71, 0x03ffce4f, 0x025ae7c4, 0x0131d8c2, 0x0013b921}}, Y: Field{[10]uint32{0x0248381f, 0x016986c7, 0x006013c3, 0x01c6d3a0, 0x02710749, 0x0031f179, 0x03b4408d, 0x03e2d7f1, 0x02d4810b, 0x002da3e7}}}, + {X: Field{[10]uint32{0x0327e771, 0x017f05ce, 0x0262abde, 0x02591df6, 0x008c3b41, 0x019120ed, 0x01be267b, 0x03b0a735, 0x026eddc4, 0x001a215a}}, Y: Field{[10]uint32{0x03bbdab6, 0x02358a81, 0x0333a611, 0x03ca4ec1, 0x02331d22, 0x0067ded2, 0x036fd49c, 0x0287ec4e, 0x01f14f79, 0x001de8cf}}}, + {X: Field{[10]uint32{0x01473678, 0x014ba47c, 0x012f7028, 0x0254250e, 0x00cba057, 0x016e301c, 0x01e314c5, 0x00036ffd, 0x009c34c4, 0x003f5db3}}, Y: Field{[10]uint32{0x01144f4f, 0x0193baa3, 0x008437e1, 0x03b85007, 0x0260628e, 0x0340cb35, 0x03ee0a73, 0x010f6b83, 0x01437871, 0x003c8119}}}, + {X: Field{[10]uint32{0x02e66b24, 0x00014cb3, 0x00366b5f, 0x003fb5ee, 0x02e8b9c6, 0x03c6b7b4, 0x0244d99b, 0x031ee203, 0x00cfb9e9, 0x00133576}}, Y: Field{[10]uint32{0x000932fd, 0x03bf6ebd, 0x03aed221, 0x01784b4b, 0x03ca61e4, 0x0335b440, 0x024e8c39, 0x012d567f, 0x0282deb9, 0x0015dbab}}}, + {X: Field{[10]uint32{0x017a2193, 0x002dc523, 0x0146edf0, 0x0113c65d, 0x012c691e, 0x012d3a88, 0x026ce827, 0x02d00867, 0x03a33123, 0x002168aa}}, Y: Field{[10]uint32{0x00cdcf3a, 0x0320f52c, 0x012427f0, 0x037e70ec, 0x03e1c6da, 0x007300a7, 0x02c6082d, 0x00145b60, 0x0057eb2b, 0x002704a6}}}, + {X: Field{[10]uint32{0x01d7e577, 0x00c0f3bb, 0x004d56ae, 0x015a14db, 0x03d3a0f2, 0x003a8841, 0x00604727, 0x03dec96b, 0x010f8828, 0x0030d4b5}}, Y: Field{[10]uint32{0x00d9b570, 0x013fe23e, 0x017063ca, 0x02cad848, 0x0300a8ab, 0x02f39e7e, 0x03d53145, 0x02e6e5aa, 0x0038ba76, 0x002f9dca}}}, + {X: Field{[10]uint32{0x037568b0, 0x000c16cd, 0x03b0535b, 0x03406780, 0x0335ae8d, 0x01e0d943, 0x00b6d6c5, 0x03f9d110, 0x03fc73cf, 0x00349776}}, Y: Field{[10]uint32{0x0339929c, 0x004e49b7, 0x03f0060a, 0x022078f0, 0x03832273, 0x0379f64a, 0x02aef74c, 0x01224e2f, 0x037593f8, 0x001e8ebf}}}, + {X: Field{[10]uint32{0x02712536, 0x0158fa07, 0x03e71a33, 0x03d5bfd7, 0x02a85051, 0x02d8d7a7, 0x006de71a, 0x00ea7f82, 0x0286b0a4, 0x0001a453}}, Y: Field{[10]uint32{0x001128f1, 0x011dc4e0, 0x029da2a2, 0x01ac2bde, 0x00896c22, 0x016b0a30, 0x018aceae, 0x02f4149f, 0x012852d9, 0x000adf9e}}}, + {X: Field{[10]uint32{0x031d7c13, 0x03944629, 0x03a3855f, 0x03dfe83f, 0x01641ab5, 0x01eab201, 0x0307e9a9, 0x0129c957, 0x013143e9, 0x0011604d}}, Y: Field{[10]uint32{0x02ff63cf, 0x022f154e, 0x016b9963, 0x01550af6, 0x01702006, 0x01f75a72, 0x03f50f17, 0x026b62d5, 0x00ec1497, 0x0027d616}}}, + {X: Field{[10]uint32{0x0183f366, 0x028e834b, 0x00588cad, 0x03b78bca, 0x020cd9cc, 0x0307725e, 0x02f430bc, 0x03f8ba6b, 0x01f5b713, 0x002f12a7}}, Y: Field{[10]uint32{0x001f33c1, 0x02359996, 0x03b16d75, 0x03efe951, 0x02a6e8a9, 0x012de632, 0x03937adf, 0x017018e0, 0x01ca6e78, 0x00034ea0}}}, + }, + { + {X: Field{[10]uint32{0x0183f366, 0x028e834b, 0x00588cad, 0x03b78bca, 0x020cd9cc, 0x0307725e, 0x02f430bc, 0x03f8ba6b, 0x01f5b713, 0x002f12a7}}, Y: Field{[10]uint32{0x001f33c1, 0x02359996, 0x03b16d75, 0x03efe951, 0x02a6e8a9, 0x012de632, 0x03937adf, 0x017018e0, 0x01ca6e78, 0x00034ea0}}}, + {X: Field{[10]uint32{0x03fceb19, 0x0379517c, 0x00409282, 0x0087de17, 0x002e89b2, 0x0339eead, 0x005c7626, 0x033302af, 0x015e11ce, 0x003690cf}}, Y: Field{[10]uint32{0x02f5cc64, 0x039c4829, 0x03277684, 0x00b6489e, 0x018e77fc, 0x03e57948, 0x02bbdc4a, 0x0040c077, 0x03d321a8, 0x00392636}}}, + {X: Field{[10]uint32{0x0312be3c, 0x028b8cbd, 0x02a66b06, 0x023b6851, 0x007295f1, 0x02c0054d, 0x00725dba, 0x02cde34f, 0x009d9331, 0x000e75cd}}, Y: Field{[10]uint32{0x006ff65c, 0x00067d07, 0x01644cc3, 0x0297b290, 0x00ef5ef7, 0x019a04ba, 0x0127554c, 0x00efdfec, 0x034f56ef, 0x0023e4a6}}}, + {X: Field{[10]uint32{0x02cf692a, 0x0389d716, 0x03e0654d, 0x0229c881, 0x01bcc483, 0x00705bbf, 0x01c11698, 0x031fb070, 0x021ee9e8, 0x0000c7a3}}, Y: Field{[10]uint32{0x016f667a, 0x00aa13ac, 0x033b09cc, 0x009f16fd, 0x03706498, 0x00359d0e, 0x01097029, 0x00d4f767, 0x035b465b, 0x002b5f9f}}}, + {X: Field{[10]uint32{0x0377f22b, 0x0393ef37, 0x02e035aa, 0x00e653e0, 0x02c69972, 0x02656bc9, 0x011cd6c2, 0x00774279, 0x0217f7dc, 0x003c32e9}}, Y: Field{[10]uint32{0x0109a03c, 0x0238b1d6, 0x015661fc, 0x01fa4282, 0x0004f18c, 0x0145b410, 0x03326c36, 0x037e627b, 0x034313f9, 0x0006896a}}}, + {X: Field{[10]uint32{0x03829372, 0x002a929d, 0x00553dec, 0x003222e9, 0x03c49b30, 0x00e15e5a, 0x03626ae5, 0x0034ecc4, 0x00c90f3e, 0x002d0c67}}, Y: Field{[10]uint32{0x02dd5427, 0x02733002, 0x011bb772, 0x005728f8, 0x02707b12, 0x03087168, 0x037afe09, 0x0140affe, 0x00499a6f, 0x0011c1f5}}}, + {X: Field{[10]uint32{0x02509c12, 0x03373531, 0x0347658a, 0x008d6f47, 0x018d6bfe, 0x021c9a3b, 0x01170e8d, 0x01534c87, 0x02b9db21, 0x000e075e}}, Y: Field{[10]uint32{0x02b46102, 0x010aa38b, 0x02af7546, 0x0161b39b, 0x03205828, 0x02996079, 0x01d24573, 0x00f6a7ad, 0x035b7fda, 0x00291eaa}}}, + {X: Field{[10]uint32{0x01f488b6, 0x02f5ffe0, 0x0291592b, 0x00d8ff1e, 0x03e9c9bf, 0x00995fdc, 0x03e00d86, 0x01845574, 0x0207a88d, 0x002a61e1}}, Y: Field{[10]uint32{0x031dab1d, 0x029eeec0, 0x01c6d495, 0x006592b5, 0x0239d0f0, 0x00855f08, 0x0063e7c8, 0x02575870, 0x01abd588, 0x00346068}}}, + {X: Field{[10]uint32{0x004fe955, 0x00ed358e, 0x03ce48db, 0x0296818e, 0x03f69956, 0x02532294, 0x013b73e6, 0x021f991e, 0x005467ab, 0x0029c0fc}}, Y: Field{[10]uint32{0x021344bd, 0x02cbbef5, 0x0277fa26, 0x00a7165c, 0x03539e16, 0x02c64666, 0x02a792d6, 0x011eb703, 0x0135a2b0, 0x0035403e}}}, + {X: Field{[10]uint32{0x038a8cc6, 0x0024edb0, 0x038fbe64, 0x007a7da7, 0x00ba2e12, 0x03b5fcf7, 0x02279ff6, 0x0105f923, 0x00c750b3, 0x000cc649}}, Y: Field{[10]uint32{0x02587810, 0x02383ed1, 0x01b54c4e, 0x026b3a7a, 0x017fb99e, 0x038bfecc, 0x025b601b, 0x03c060ae, 0x01411b33, 0x0032a3de}}}, + {X: Field{[10]uint32{0x02eace58, 0x02595b01, 0x0211d349, 0x018e8bcc, 0x031b7e45, 0x0014e80f, 0x006ad0d7, 0x01435d1b, 0x03c5aad5, 0x001cf1ac}}, Y: Field{[10]uint32{0x02f8654e, 0x002a45ca, 0x01291717, 0x0236eee3, 0x02aa6a87, 0x019b6471, 0x02909913, 0x013dd06e, 0x00a4733a, 0x000e8bed}}}, + {X: Field{[10]uint32{0x01cbcb9e, 0x03c449b3, 0x03c3df4b, 0x02277360, 0x01d6fa56, 0x03f50dd8, 0x00c32447, 0x00cdea7b, 0x02d7119d, 0x003372c4}}, Y: Field{[10]uint32{0x0161cfd1, 0x029616b2, 0x03340a08, 0x0090d637, 0x01a199af, 0x01b7a652, 0x02fbea09, 0x03c47eff, 0x02e17bb9, 0x0039a678}}}, + {X: Field{[10]uint32{0x00181d5e, 0x00e22fc0, 0x02f2054b, 0x02a6e56a, 0x00de71b3, 0x0303b76e, 0x0100d3a1, 0x011ff687, 0x03e7506d, 0x003189fc}}, Y: Field{[10]uint32{0x029f886d, 0x0240298d, 0x022c3927, 0x0015272f, 0x028ef6b0, 0x02287df5, 0x01696013, 0x00a98ecb, 0x01d71e44, 0x0035e3e7}}}, + {X: Field{[10]uint32{0x025fe9cc, 0x011f3dcc, 0x008db1d7, 0x02ecd276, 0x03fbb883, 0x00b52b08, 0x00411084, 0x00c6c4dc, 0x026328ec, 0x0031bb57}}, Y: Field{[10]uint32{0x028fd94b, 0x02f38712, 0x02cf10c0, 0x00ad83c8, 0x02844f97, 0x031fdeca, 0x032ee125, 0x03e0c0a4, 0x005b49d7, 0x003791d0}}}, + {X: Field{[10]uint32{0x03828b16, 0x00a367ed, 0x0047f34e, 0x023ca292, 0x03a04795, 0x03c1b794, 0x025f40a6, 0x0348cfe8, 0x02be0edf, 0x002ee23e}}, Y: Field{[10]uint32{0x02ea5df7, 0x011ce882, 0x02969c51, 0x01d38e87, 0x03ec4a81, 0x00456458, 0x01dc5960, 0x03a374d1, 0x02b304f5, 0x002dcd9d}}}, + {X: Field{[10]uint32{0x01324caa, 0x02acc3f9, 0x032a3954, 0x038c2a51, 0x02694b65, 0x0114a8cb, 0x03d8c749, 0x022f0348, 0x017bf829, 0x00230a2a}}, Y: Field{[10]uint32{0x03ef9482, 0x00771cf2, 0x039459e7, 0x03c11472, 0x037ae784, 0x03df303a, 0x00fedf31, 0x01464cde, 0x0063a330, 0x001028c1}}}, + }, + { + {X: Field{[10]uint32{0x01324caa, 0x02acc3f9, 0x032a3954, 0x038c2a51, 0x02694b65, 0x0114a8cb, 0x03d8c749, 0x022f0348, 0x017bf829, 0x00230a2a}}, Y: Field{[10]uint32{0x03ef9482, 0x00771cf2, 0x039459e7, 0x03c11472, 0x037ae784, 0x03df303a, 0x00fedf31, 0x01464cde, 0x0063a330, 0x001028c1}}}, + {X: Field{[10]uint32{0x0211d8e2, 0x02c807dd, 0x03c4d5df, 0x03a37927, 0x02c8130f, 0x011fc368, 0x03ed5a60, 0x028bc65a, 0x01872a38, 0x002ac6b0}}, Y: Field{[10]uint32{0x0029d15b, 0x01607cf1, 0x0145f01a, 0x034cf879, 0x02f7ef93, 0x02da90ad, 0x02a5f39d, 0x005e87a6, 0x037a324d, 0x0004fd28}}}, + {X: Field{[10]uint32{0x0354dd40, 0x03a1c551, 0x026cf863, 0x00c7f0d1, 0x01a24226, 0x035cbdba, 0x034841fc, 0x037f3d16, 0x007032c0, 0x0025ca49}}, Y: Field{[10]uint32{0x02a36143, 0x02d24bca, 0x02f49384, 0x014956b2, 0x0290dae8, 0x02f537cd, 0x015c75dc, 0x03a87734, 0x0244265f, 0x00247468}}}, + {X: Field{[10]uint32{0x0251b3fa, 0x02bb9909, 0x03434226, 0x0195dcb7, 0x038ea1b3, 0x014fcc7b, 0x003a6072, 0x03e0b4dc, 0x029b5bee, 0x0009593f}}, Y: Field{[10]uint32{0x01e5122d, 0x00b9a8c0, 0x0016edb8, 0x02adade6, 0x0314f37d, 0x0080e497, 0x03a14ae1, 0x00e24257, 0x03a60678, 0x0022b67d}}}, + {X: Field{[10]uint32{0x002ca7ff, 0x0360bae3, 0x0021a3c2, 0x0176577c, 0x03180364, 0x028bc9eb, 0x00791ad5, 0x01e5b814, 0x0397580a, 0x002258df}}, Y: Field{[10]uint32{0x00493e68, 0x0105785c, 0x02ab7bed, 0x028e390b, 0x01f87bc6, 0x010d5d22, 0x03b9cf15, 0x02109355, 0x01248c88, 0x000b47f8}}}, + {X: Field{[10]uint32{0x007a89ee, 0x030d4cc3, 0x014f8057, 0x0271eadb, 0x024bdbc5, 0x03261962, 0x0060b88f, 0x01e7844a, 0x00e26a41, 0x001c7be9}}, Y: Field{[10]uint32{0x01366a2e, 0x0224ca70, 0x01a0b4f4, 0x02e2397a, 0x022aaafa, 0x005ca528, 0x03b2c32b, 0x0092ba7b, 0x001f8bb6, 0x000517ea}}}, + {X: Field{[10]uint32{0x00a8dd7f, 0x01b58e83, 0x0381a618, 0x000d5a84, 0x021bc728, 0x0354d5d0, 0x01c9da03, 0x017824bf, 0x00e71be2, 0x000c204e}}, Y: Field{[10]uint32{0x0292c7f2, 0x017c91e2, 0x01915e41, 0x01190d2b, 0x00c81656, 0x00502386, 0x039ec45d, 0x03f24978, 0x02d28828, 0x000a3478}}}, + {X: Field{[10]uint32{0x02180068, 0x0238f4eb, 0x03103b17, 0x01b082f4, 0x027ea3d5, 0x00c37006, 0x006c5c0c, 0x016c32ff, 0x0136ffac, 0x003fcf58}}, Y: Field{[10]uint32{0x008c6077, 0x01aedb86, 0x035e670a, 0x03c90007, 0x01547676, 0x0365ab70, 0x010372cd, 0x00003903, 0x01be84e4, 0x0004cc8e}}}, + {X: Field{[10]uint32{0x026a3fb1, 0x03315a21, 0x02206c0d, 0x00a0664b, 0x036ec009, 0x016da18b, 0x025750c8, 0x03ad9747, 0x00e82a6d, 0x0015d7f1}}, Y: Field{[10]uint32{0x002655ad, 0x023a42a4, 0x02f2f09b, 0x01cf1a8e, 0x02ed33b5, 0x01e3a1f6, 0x031dbc29, 0x03f28b59, 0x039042a6, 0x001bdbb6}}}, + {X: Field{[10]uint32{0x0121250a, 0x039ff72f, 0x00ad4954, 0x01d60e66, 0x03df45e1, 0x010d5579, 0x01e342ba, 0x022b494c, 0x01480bab, 0x000fea45}}, Y: Field{[10]uint32{0x02a76731, 0x021b00be, 0x01fb791c, 0x01680cad, 0x002e45e5, 0x00eec49f, 0x01bdf960, 0x02c0c33d, 0x02905499, 0x002fe6d9}}}, + {X: Field{[10]uint32{0x010117df, 0x01aa291e, 0x0102921b, 0x02ef3880, 0x03da253b, 0x03ba8aa3, 0x03f26f81, 0x02ade889, 0x0036b64e, 0x00297b24}}, Y: Field{[10]uint32{0x006462fe, 0x00a04cfe, 0x02363d81, 0x03c15852, 0x031c8461, 0x0347e83d, 0x0197983a, 0x01010031, 0x02625ec1, 0x002de771}}}, + {X: Field{[10]uint32{0x01e0545f, 0x0008d263, 0x0074f5cb, 0x0368841b, 0x0080e625, 0x02cd422b, 0x035ea004, 0x01c4928d, 0x03cc58e0, 0x00148116}}, Y: Field{[10]uint32{0x006c3d91, 0x028d3014, 0x01af236e, 0x003caa3f, 0x03793b9d, 0x00338c4a, 0x030ed9c2, 0x0048eb50, 0x01fcebe3, 0x0006cfcc}}}, + {X: Field{[10]uint32{0x032ad712, 0x03e5d705, 0x007290b0, 0x02c37841, 0x015a398c, 0x0118d26e, 0x01e79761, 0x002c2527, 0x03e91331, 0x002854f7}}, Y: Field{[10]uint32{0x0148fdd2, 0x017d94e3, 0x03329c8a, 0x00a16bc2, 0x02bd053f, 0x007c6e26, 0x00318d5f, 0x016cbf12, 0x00413fb0, 0x003f6536}}}, + {X: Field{[10]uint32{0x0220479f, 0x004f430c, 0x0338a89f, 0x02579796, 0x035de47b, 0x00dd80d8, 0x0162c8d2, 0x00bf6e00, 0x036ebe47, 0x00162d50}}, Y: Field{[10]uint32{0x027db17a, 0x01cdd795, 0x0334144a, 0x03120a6e, 0x0396af27, 0x00bdb7a0, 0x02913a25, 0x019cb138, 0x02b055cd, 0x002175ed}}}, + {X: Field{[10]uint32{0x01cf5b3a, 0x030dc044, 0x02781030, 0x020ef6d6, 0x00c4433a, 0x023b7209, 0x01c34d08, 0x0118564d, 0x02c6af79, 0x00269506}}, Y: Field{[10]uint32{0x02a44ae4, 0x0155d7cd, 0x0252d63f, 0x0389487a, 0x035548fe, 0x0223d1d7, 0x03e1af36, 0x01aadf2b, 0x00c1cb10, 0x002d9852}}}, + {X: Field{[10]uint32{0x03accae0, 0x012e8447, 0x0333748c, 0x0031692e, 0x023c8b35, 0x03c1c7f4, 0x01d94ce4, 0x009ea307, 0x02661395, 0x00023aa5}}, Y: Field{[10]uint32{0x0262b945, 0x03cd28c3, 0x038e955a, 0x02fa73c3, 0x0335b783, 0x02e57175, 0x00e7c0cf, 0x009e0b89, 0x02bbc8ee, 0x001883be}}}, + }, + { + {X: Field{[10]uint32{0x03accae0, 0x012e8447, 0x0333748c, 0x0031692e, 0x023c8b35, 0x03c1c7f4, 0x01d94ce4, 0x009ea307, 0x02661395, 0x00023aa5}}, Y: Field{[10]uint32{0x0262b945, 0x03cd28c3, 0x038e955a, 0x02fa73c3, 0x0335b783, 0x02e57175, 0x00e7c0cf, 0x009e0b89, 0x02bbc8ee, 0x001883be}}}, + {X: Field{[10]uint32{0x0190b632, 0x00c4c768, 0x01ab9a29, 0x008e92ad, 0x0263cf2a, 0x01556760, 0x0266df31, 0x003367ce, 0x03717622, 0x003097d8}}, Y: Field{[10]uint32{0x009590cf, 0x02fcf5bf, 0x03a1d6ee, 0x03fe7809, 0x000a9f04, 0x020275e6, 0x01049903, 0x00a1ce62, 0x03ede94d, 0x0014c553}}}, + {X: Field{[10]uint32{0x02a06f5e, 0x0102d659, 0x0037021a, 0x0145ba82, 0x02a34192, 0x0098edc5, 0x03b0d421, 0x0094eb0d, 0x00fbea14, 0x000e0ec9}}, Y: Field{[10]uint32{0x03c6e772, 0x03d1e1b4, 0x02b04089, 0x01d2ee30, 0x01e8f6ae, 0x013a9686, 0x00f566d5, 0x02e88113, 0x006ac4ed, 0x001533dc}}}, + {X: Field{[10]uint32{0x0066d561, 0x032cedf5, 0x00b4de2c, 0x0370c65e, 0x000c7b55, 0x01a21513, 0x002d82a5, 0x01aeacfa, 0x01fe3cce, 0x000aa7a3}}, Y: Field{[10]uint32{0x02e76373, 0x0333d494, 0x02182f96, 0x03b05e80, 0x035e01ea, 0x0022e5b3, 0x007b5ad6, 0x01947eeb, 0x01a5c16e, 0x000077fb}}}, + {X: Field{[10]uint32{0x0238a136, 0x01d70751, 0x00195c79, 0x038cda0e, 0x002b0d1c, 0x01835e43, 0x01e59c6b, 0x03b5b5e2, 0x02d03e02, 0x0039a10c}}, Y: Field{[10]uint32{0x006c2584, 0x03460423, 0x03336aaf, 0x03af6cd5, 0x032e09e3, 0x02807991, 0x012a7303, 0x01699893, 0x001398e3, 0x003296f9}}}, + {X: Field{[10]uint32{0x03cf2dce, 0x026d0236, 0x006c0213, 0x00417077, 0x0068114a, 0x00bfe660, 0x009e4c99, 0x018862f5, 0x014292e4, 0x0025798b}}, Y: Field{[10]uint32{0x00c86594, 0x0377f7d6, 0x0120e62b, 0x0180dc13, 0x025e7b30, 0x010a354b, 0x03a26e2b, 0x00a1d460, 0x0184296c, 0x0001ada0}}}, + {X: Field{[10]uint32{0x02e8c10c, 0x021f1105, 0x016807ce, 0x017ce46f, 0x03b47298, 0x01cc1b9f, 0x02fbdece, 0x0170a83b, 0x0159e2fe, 0x000e5775}}, Y: Field{[10]uint32{0x01fe638e, 0x035b64c1, 0x0122cbc3, 0x0013719a, 0x034c909c, 0x03fe9389, 0x0013e87a, 0x00ab1741, 0x00d4b459, 0x003f58b7}}}, + {X: Field{[10]uint32{0x038be384, 0x034c810f, 0x036c3e8b, 0x02b68c76, 0x0271ec0a, 0x03f7bc1c, 0x01ad6c94, 0x00f86c94, 0x00a42be6, 0x002c8de4}}, Y: Field{[10]uint32{0x0319880e, 0x0291cf7a, 0x00b58d10, 0x03d0527b, 0x0117f004, 0x02a07e51, 0x0150f88a, 0x017b6fa3, 0x014919d5, 0x003f1ada}}}, + {X: Field{[10]uint32{0x016c14ef, 0x01936c83, 0x03c8f516, 0x01d41be4, 0x000858fc, 0x03b89920, 0x02eed5be, 0x01772e7d, 0x02dc3552, 0x001e9452}}, Y: Field{[10]uint32{0x033fbd13, 0x00f861c2, 0x0224f7ad, 0x03dcaa9b, 0x0329beae, 0x0323d70d, 0x017f0b94, 0x039363a2, 0x01fed152, 0x0015bb74}}}, + {X: Field{[10]uint32{0x017ec94b, 0x03c14f42, 0x01c2dff9, 0x02472356, 0x0127ed70, 0x02b9a060, 0x02215aa8, 0x03bfb47b, 0x03cb7b4a, 0x002c844e}}, Y: Field{[10]uint32{0x007831ad, 0x03efff1a, 0x010fdbd5, 0x002c8d5f, 0x03094322, 0x01532d3a, 0x01a0b534, 0x03b9cc41, 0x027399e8, 0x0024efa7}}}, + {X: Field{[10]uint32{0x036d65eb, 0x0118f413, 0x021524a9, 0x01dd5100, 0x035a9910, 0x012423c8, 0x028ef3bf, 0x0364363a, 0x01584325, 0x0007b87f}}, Y: Field{[10]uint32{0x0122941c, 0x00dae497, 0x002b11e0, 0x03a618d6, 0x02ca32f4, 0x03d0bf3e, 0x03ab9fc4, 0x031cf073, 0x0091bdd6, 0x002eda4a}}}, + {X: Field{[10]uint32{0x03a6257f, 0x01499165, 0x02c40b80, 0x02c689e9, 0x011873c3, 0x02c1f9e2, 0x0024274a, 0x013c9699, 0x01c8e1f5, 0x001c7a4d}}, Y: Field{[10]uint32{0x01b1e582, 0x005d1874, 0x00f7a5b2, 0x015033dc, 0x02ef2523, 0x01eb8a94, 0x02d86ba4, 0x008944f7, 0x0259f47c, 0x001e364f}}}, + {X: Field{[10]uint32{0x0236cb44, 0x02543bc3, 0x020191f1, 0x01b23728, 0x01617e8b, 0x0220cd5f, 0x0058fd0d, 0x02aaa2f0, 0x0234d38f, 0x00055455}}, Y: Field{[10]uint32{0x03495a68, 0x02bd1947, 0x001e5329, 0x01d7c083, 0x01a8c371, 0x0118c817, 0x030e3f0b, 0x0148578d, 0x03c75557, 0x002ad3ff}}}, + {X: Field{[10]uint32{0x01ca950e, 0x0211c91e, 0x03bacbf0, 0x01d8aec4, 0x0139e015, 0x03b8b118, 0x02f8be79, 0x02572b14, 0x01ca4ee7, 0x002af114}}, Y: Field{[10]uint32{0x029490d2, 0x039f6326, 0x013ec07c, 0x00033a95, 0x02526840, 0x00b24515, 0x01dfb80c, 0x0029676c, 0x00befe82, 0x002b89c6}}}, + {X: Field{[10]uint32{0x0027bacc, 0x0251841d, 0x022e151f, 0x019374b5, 0x029e7331, 0x0163712a, 0x0358eb09, 0x014804d8, 0x006446bf, 0x000ef1af}}, Y: Field{[10]uint32{0x02d6fda6, 0x00cff57a, 0x02b4714c, 0x02948a2f, 0x03d71b75, 0x01b5b00a, 0x0362ee22, 0x030c1736, 0x00c07176, 0x00238c17}}}, + {X: Field{[10]uint32{0x039a9787, 0x01db313a, 0x0168092f, 0x02056566, 0x0189bdde, 0x02f4de23, 0x0269716b, 0x028181d1, 0x01faef5b, 0x00374d89}}, Y: Field{[10]uint32{0x0244a573, 0x01a34031, 0x0395937f, 0x0260a20c, 0x02941461, 0x0115cc72, 0x01a25010, 0x00c35187, 0x03a3520e, 0x001e8623}}}, + }, +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_init.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_init.go new file mode 100644 index 000000000..051b8d1bf --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_init.go @@ -0,0 +1,113 @@ +package secp256k1go + +/* +import ( + "os" + "fmt" + "time" +) + + +var ( + pre_g, pre_g_128 []XY + prec [64][16]XY + fin XY +) + + +func ecmult_start() { + return + sta := time.Now() + + g := TheCurve.G + + // calculate 2^128*generator + var g_128j XYZ + g_128j.SetXY(&g) + + for i := 0; i < 128; i++ { + g_128j.Double(&g_128j) + } + + var g_128 XY + g_128.SetXYZ(&g_128j) + + // precompute the tables with odd multiples + pre_g = g.precomp(WINDOW_G) + pre_g_128 = g_128.precomp(WINDOW_G) + + // compute prec and fin + var gg XYZ + gg.SetXY(&g) + ad := g + var fn XYZ + fn.Infinity = true + for j:=0; j<64; j++ { + prec[j][0].SetXYZ(&gg) + fn.Add(&fn, &gg) + for i:=1; i<16; i++ { + gg.AddXY(&gg, &ad) + prec[j][i].SetXYZ(&gg) + } + ad = prec[j][15] + } + fin.SetXYZ(&fn) + fin.Neg(&fin) + + if false { + f, _ := os.Create("z_prec.go") + fmt.Fprintln(f, "package secp256k1\n\nvar prec = [64][16]XY {") + for j:=0; j<64; j++ { + fmt.Fprintln(f, " {") + for i:=0; i<16; i++ { + fmt.Fprintln(f, "{X:" + fe2str(&prec[j][i].X) + ", Y:" + fe2str(&prec[j][i].Y) + "},") + } + fmt.Fprintln(f, "},") + } + fmt.Fprintln(f, "}") + f.Close() + } + + if false { + f, _ := os.Create("z_pre_g.go") + fmt.Fprintln(f, "package secp256k1\n\nvar pre_g = []XY {") + for i := range pre_g { + fmt.Fprintln(f, "{X:" + fe2str(&pre_g[i].X) + ", Y:" + fe2str(&pre_g[i].Y) + "},") + } + fmt.Fprintln(f, "}") + f.Close() + } + + if false { + f, _ := os.Create("z_pre_g_128.go") + fmt.Fprintln(f, "package secp256k1\n\nvar pre_g_128 = []XY {") + for i := range pre_g_128 { + fmt.Fprintln(f, "{X:" + fe2str(&pre_g_128[i].X) + ", Y:" + fe2str(&pre_g_128[i].Y) + "},") + } + fmt.Fprintln(f, "}") + f.Close() + } + + if false { + f, _ := os.Create("z_fin.go") + fmt.Fprintln(f, "package secp256k1\n\nvar fim = XY {") + fmt.Fprintln(f, "X:" + fe2str(&fin.X) + ", Y:" + fe2str(&fin.Y) + ",") + fmt.Fprintln(f, "}") + f.Close() + } + + println("start done in", time.Now().Sub(sta).String()) +} + + +func fe2str(f *Field) (s string) { + s = fmt.Sprintf("Field{[10]uint32{0x%08x", f.n[0]) + for i:=1; i= 0 { + nonce = newRandomNonceNumber() + } + return nonce +} + +// Sign sign hash, returns a compact recoverable signature +func Sign(msg []byte, seckey []byte) []byte { + if len(seckey) != 32 { + log.Panic("Sign, Invalid seckey length") + } + if secp.SeckeyIsValid(seckey) != 1 { + log.Panic("Attempting to sign with invalid seckey") + } + if len(msg) == 0 { + log.Panic("Sign, message nil") + } + if len(msg) != 32 { + log.Panic("Sign, message must be 32 bytes") + } + + nonce := newSigningNonce() + sig := make([]byte, 65) + var recid int // recovery byte, used to recover pubkey from sig + + var cSig secp.Signature + + var seckey1 secp.Number + var msg1 secp.Number + + seckey1.SetBytes(seckey) + msg1.SetBytes(msg) + + if msg1.Sign() == 0 { + log.Panic("Sign: message is 0") + } + + ret := cSig.Sign(&seckey1, &msg1, &nonce, &recid) + + if ret != 1 { + log.Panic("Secp25k1-go, Sign, signature operation failed") + } + + sigBytes := cSig.Bytes() + for i := 0; i < 64; i++ { + sig[i] = sigBytes[i] + } + if len(sigBytes) != 64 { + log.Panicf("Invalid signature byte count: %d", len(sigBytes)) + } + sig[64] = byte(recid) + + if recid > 4 { + log.Panic("invalid recovery id") + } + + return sig +} + +// VerifySeckey verifies a secret key +// Returns 1 on success +func VerifySeckey(seckey []byte) int { + if len(seckey) != 32 { + return -1 + } + + //does conversion internally if less than order of curve + if secp.SeckeyIsValid(seckey) != 1 { + return -2 + } + + //seckey is just 32 bit integer + //assume all seckey are valid + //no. must be less than order of curve + //note: converts internally + return 1 +} + +// VerifyPubkey verifies a public key +// Returns 1 on success +func VerifyPubkey(pubkey []byte) int { + if len(pubkey) != 33 { + return -2 + } + + if secp.PubkeyIsValid(pubkey) != 1 { + return -1 // tests parse and validity + } + + return 1 //valid +} + +// VerifySignatureValidity verifies a signature is well formed and not malleable +// Returns 1 on success +func VerifySignatureValidity(sig []byte) int { + //64+1 + if len(sig) != 65 { + log.Panic("VerifySignatureValidity: sig len is not 65 bytes") + return 0 + } + //malleability check: + //highest bit of 32nd byte must be 1 + //0x7f is 126 or 0b01111111 + if (sig[32] >> 7) == 1 { + return 0 // signature is malleable + } + //recovery id check + if sig[64] >= 4 { + return 0 // recovery id invalid + } + return 1 +} + +// VerifySignature for compressed signatures, does not need pubkey +// Returns 1 on success +func VerifySignature(msg []byte, sig []byte, pubkey1 []byte) int { + if msg == nil || len(sig) == 0 || len(pubkey1) == 0 { + log.Panic("VerifySignature, ERROR: invalid input, empty slices") + } + if len(sig) != 65 { + log.Panic("VerifySignature, invalid signature length") + } + if len(pubkey1) != 33 { + log.Panic("VerifySignature, invalid pubkey length") + } + + if len(msg) == 0 { + return 0 // empty message + } + + // malleability check: + // to enforce malleability, highest bit of S must be 1 + // S starts at 32nd byte + // 0x80 is 0b10000000 or 128 and masks highest bit + if (sig[32] >> 7) == 1 { + return 0 // valid signature, but fails malleability + } + + if sig[64] >= 4 { + return 0 // recovery byte invalid + } + + pubkey2 := RecoverPubkey(msg, sig) + if pubkey2 == nil { + return 0 // pubkey could not be recovered, signature is invalid + } + + if len(pubkey2) != 33 { + log.Panic("recovered pubkey length invalid") // sanity check + } + + if !bytes.Equal(pubkey1, pubkey2) { + return 0 // pubkeys do not match + } + + return 1 // valid signature +} + +// RecoverPubkey recovers the public key from the signature +func RecoverPubkey(msg []byte, sig []byte) []byte { + if len(sig) != 65 { + log.Panic("sig length must be 65 bytes") + } + + var recid = int(sig[64]) + + pubkey, ret := secp.RecoverPublicKey(sig[0:64], msg, recid) + + if ret != 1 { + if DebugPrint { + log.Printf("RecoverPubkey: code %d", ret) + } + return nil + } + + if pubkey == nil { + log.Panic("ERROR: impossible, pubkey nil and ret == 1") + } + if secp.PubkeyIsValid(pubkey) != 1 { + log.Panicf("secp.RecoverPublicKey returned invalid pubkey %s", hex.EncodeToString(pubkey)) + } + + return pubkey +} + +// ECDH raise a pubkey to the power of a seckey +func ECDH(pub, sec []byte) []byte { + if len(sec) != 32 { + log.Panic("secret key must be 32 bytes") + } + + if len(pub) != 33 { + log.Panic("public key must be 33 bytes") + } + + if VerifySeckey(sec) != 1 { + if DebugPrint { + log.Printf("Invalid Seckey") + } + return nil + } + + if ret := VerifyPubkey(pub); ret != 1 { + if DebugPrint { + log.Printf("Invalid Pubkey, %d", ret) + } + return nil + } + + pubkeyOut := secp.Multiply(pub, sec) + if pubkeyOut == nil { + return nil + } + if len(pubkeyOut) != 33 { + log.Panic("ERROR: impossible, invalid pubkey length") + } + return pubkeyOut +} diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/testsuite/testsuite.go b/vendor/github.com/skycoin/skycoin/src/cipher/testsuite/testsuite.go new file mode 100644 index 000000000..b15fe3d43 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cipher/testsuite/testsuite.go @@ -0,0 +1,527 @@ +/* +Package testsuite is the cipher testdata testsuite +*/ +package testsuite + +import ( + "bytes" + "encoding/base64" + "encoding/hex" + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/base58" + "github.com/skycoin/skycoin/src/cipher/bip32" + secp256k1 "github.com/skycoin/skycoin/src/cipher/secp256k1-go" +) + +// InputTestDataJSON contains hashes to be signed +type InputTestDataJSON struct { + Hashes []string `json:"hashes"` +} + +// KeysTestDataJSON contains address, public key, secret key and list of signatures +type KeysTestDataJSON struct { + Address string `json:"address"` + BitcoinAddress string `json:"bitcoin_address"` + Secret string `json:"secret"` + Public string `json:"public"` + Signatures []string `json:"signatures,omitempty"` +} + +// SeedTestDataJSON contains data generated by Seed +type SeedTestDataJSON struct { + Seed string `json:"seed"` + Keys []KeysTestDataJSON `json:"keys"` +} + +// Bip32KeysTestDataJSON contains address, public key, secret key and list of signatures +type Bip32KeysTestDataJSON struct { + Path string `json:"path"` + XPriv string `json:"xpriv"` + XPub string `json:"xpub"` + Identifier string `json:"identifier"` + Depth byte `json:"depth"` + ChildNumber uint32 `json:"child_number"` + + KeysTestDataJSON +} + +// Bip32SeedTestDataJSON contains data generated by Seed +type Bip32SeedTestDataJSON struct { + Seed string `json:"seed"` + BasePath string `json:"base_path"` + ChildNumbers []uint32 `json:"child_numbers"` + Keys []Bip32KeysTestDataJSON `json:"keys"` +} + +// InputTestData contains hashes to be signed +type InputTestData struct { + Hashes []cipher.SHA256 +} + +// ToJSON converts InputTestData to InputTestDataJSON +func (d *InputTestData) ToJSON() *InputTestDataJSON { + hashes := make([]string, len(d.Hashes)) + for i, h := range d.Hashes { + hashes[i] = h.Hex() + } + + return &InputTestDataJSON{ + Hashes: hashes, + } +} + +// InputTestDataFromJSON converts InputTestDataJSON to InputTestData +func InputTestDataFromJSON(d *InputTestDataJSON) (*InputTestData, error) { + hashes := make([]cipher.SHA256, len(d.Hashes)) + for i, h := range d.Hashes { + var err error + hashes[i], err = cipher.SHA256FromHex(h) + if err != nil { + return nil, err + } + } + + return &InputTestData{ + Hashes: hashes, + }, nil +} + +// KeysTestData contains address, public key, secret key and list of signatures +type KeysTestData struct { + Address cipher.Address + BitcoinAddress cipher.BitcoinAddress + Secret cipher.SecKey + Public cipher.PubKey + Signatures []cipher.Sig +} + +// ToJSON converts KeysTestData to KeysTestDataJSON +func (k *KeysTestData) ToJSON() *KeysTestDataJSON { + sigs := make([]string, len(k.Signatures)) + for i, s := range k.Signatures { + sigs[i] = s.Hex() + } + + return &KeysTestDataJSON{ + Address: k.Address.String(), + BitcoinAddress: k.BitcoinAddress.String(), + Secret: k.Secret.Hex(), + Public: k.Public.Hex(), + Signatures: sigs, + } +} + +// KeysTestDataFromJSON converts KeysTestDataJSON to KeysTestData +func KeysTestDataFromJSON(d *KeysTestDataJSON) (*KeysTestData, error) { + addr, err := cipher.DecodeBase58Address(d.Address) + if err != nil { + return nil, err + } + + btcAddr, err := cipher.DecodeBase58BitcoinAddress(d.BitcoinAddress) + if err != nil { + return nil, err + } + + s, err := cipher.SecKeyFromHex(d.Secret) + if err != nil { + return nil, err + } + + p, err := cipher.PubKeyFromHex(d.Public) + if err != nil { + return nil, err + } + + var sigs []cipher.Sig + if d.Signatures != nil { + sigs = make([]cipher.Sig, len(d.Signatures)) + for i, s := range d.Signatures { + var err error + sigs[i], err = cipher.SigFromHex(s) + if err != nil { + return nil, err + } + } + } + + return &KeysTestData{ + Address: addr, + BitcoinAddress: btcAddr, + Secret: s, + Public: p, + Signatures: sigs, + }, nil +} + +// SeedTestData contains data generated by Seed +type SeedTestData struct { + Seed []byte + Keys []KeysTestData +} + +// ToJSON converts SeedTestData to SeedTestDataJSON +func (s *SeedTestData) ToJSON() *SeedTestDataJSON { + keys := make([]KeysTestDataJSON, len(s.Keys)) + for i, k := range s.Keys { + kj := k.ToJSON() + keys[i] = *kj + } + + return &SeedTestDataJSON{ + Seed: base64.StdEncoding.EncodeToString(s.Seed), + Keys: keys, + } +} + +// SeedTestDataFromJSON converts SeedTestDataJSON to SeedTestData +func SeedTestDataFromJSON(d *SeedTestDataJSON) (*SeedTestData, error) { + seed, err := base64.StdEncoding.DecodeString(d.Seed) + if err != nil { + return nil, err + } + + keys := make([]KeysTestData, len(d.Keys)) + for i, kj := range d.Keys { + k, err := KeysTestDataFromJSON(&kj) + if err != nil { + return nil, err + } + keys[i] = *k + } + + return &SeedTestData{ + Seed: seed, + Keys: keys, + }, nil +} + +// ValidateSeedData validates the provided SeedTestData against the current cipher library. +// inputData is required if SeedTestData contains signatures +func ValidateSeedData(seedData *SeedTestData, inputData *InputTestData) error { + keys := cipher.MustGenerateDeterministicKeyPairs(seedData.Seed, len(seedData.Keys)) + if len(seedData.Keys) != len(keys) { + return errors.New("cipher.GenerateDeterministicKeyPairs generated an unexpected number of keys") + } + + for i, s := range keys { + if err := validateKeyTestData(inputData, s, seedData.Keys[i]); err != nil { + return err + } + } + + return nil +} + +func validateKeyTestData(inputData *InputTestData, s cipher.SecKey, data KeysTestData) error { + if s == (cipher.SecKey{}) { + return errors.New("secret key is null") + } + if data.Secret != s { + return errors.New("generated secret key does not match provided secret key") + } + + p := cipher.MustPubKeyFromSecKey(s) + if p == (cipher.PubKey{}) { + return errors.New("public key is null") + } + if data.Public != p { + return errors.New("derived public key does not match provided public key") + } + + addr1 := cipher.AddressFromPubKey(p) + if addr1 == (cipher.Address{}) { + return errors.New("address is null") + } + if data.Address != addr1 { + return errors.New("derived address does not match provided address") + } + + addr2 := cipher.MustAddressFromSecKey(s) + if addr1 != addr2 { + return errors.New("cipher.AddressFromPubKey and cipher.AddressFromSecKey generated different addresses") + } + + btcAddr1 := cipher.BitcoinAddressFromPubKey(p) + if btcAddr1 == (cipher.BitcoinAddress{}) { + return errors.New("bitcoin address is null") + } + if data.BitcoinAddress != btcAddr1 { + return errors.New("derived bitcoin address does not match provided bitcoin address") + } + + btcAddr2 := cipher.MustBitcoinAddressFromSecKey(s) + if btcAddr1 != btcAddr2 { + return errors.New("cipher.BitcoinAddressFromPubKey and cipher.BitcoinAddressFromSecKey generated different addresses") + } + + validSec := secp256k1.VerifySeckey(s[:]) + if validSec != 1 { + return errors.New("secp256k1.VerifySeckey failed") + } + + validPub := secp256k1.VerifyPubkey(p[:]) + if validPub != 1 { + return errors.New("secp256k1.VerifyPubkey failed") + } + + if inputData == nil && len(data.Signatures) != 0 { + return errors.New("seed data contains signatures but input data was not provided") + } + + if inputData != nil { + if len(data.Signatures) != len(inputData.Hashes) { + return errors.New("Number of signatures in seed data does not match number of hashes in input data") + } + + for j, h := range inputData.Hashes { + sig := data.Signatures[j] + if sig == (cipher.Sig{}) { + return errors.New("provided signature is null") + } + + err := cipher.VerifyPubKeySignedHash(p, sig, h) + if err != nil { + return fmt.Errorf("cipher.VerifyPubKeySignedHash failed: %v", err) + } + + err = cipher.VerifyAddressSignedHash(addr1, sig, h) + if err != nil { + return fmt.Errorf("cipher.VerifyAddressSignedHash failed: %v", err) + } + + err = cipher.VerifySignatureRecoverPubKey(sig, h) + if err != nil { + return fmt.Errorf("cipher.VerifySignatureRecoverPubKey failed: %v", err) + } + + p2, err := cipher.PubKeyFromSig(sig, h) + if err != nil { + return fmt.Errorf("cipher.PubKeyFromSig failed: %v", err) + } + + if p != p2 { + return errors.New("public key derived from signature does not match public key derived from secret") + } + + sig2 := cipher.MustSignHash(h, s) + if sig2 == (cipher.Sig{}) { + return errors.New("created signature is null") + } + + // NOTE: signatures are not deterministic, they use a nonce, + // so we don't compare the generated sig to the provided sig + } + } + + return nil +} + +// Bip32KeysTestData contains address, public key, secret key and list of signatures +type Bip32KeysTestData struct { + Path string + XPriv *bip32.PrivateKey + KeysTestData +} + +// ToJSON converts Bip32KeysTestData to Bip32KeysTestDataJSON +func (k *Bip32KeysTestData) ToJSON() *Bip32KeysTestDataJSON { + sigs := make([]string, len(k.Signatures)) + for i, s := range k.Signatures { + sigs[i] = s.Hex() + } + + return &Bip32KeysTestDataJSON{ + Path: k.Path, + XPriv: k.XPriv.String(), + XPub: k.XPriv.PublicKey().String(), + Identifier: hex.EncodeToString(k.XPriv.Identifier()), + Depth: k.XPriv.Depth, + ChildNumber: k.XPriv.ChildNumber(), + + KeysTestDataJSON: KeysTestDataJSON{ + Address: k.Address.String(), + BitcoinAddress: k.BitcoinAddress.String(), + Secret: k.Secret.Hex(), + Public: k.Public.Hex(), + Signatures: sigs, + }, + } +} + +// Bip32KeysTestDataFromJSON converts Bip32KeysTestDataJSON to Bip32KeysTestData +func Bip32KeysTestDataFromJSON(d *Bip32KeysTestDataJSON) (*Bip32KeysTestData, error) { + addr, err := cipher.DecodeBase58Address(d.Address) + if err != nil { + return nil, err + } + + btcAddr, err := cipher.DecodeBase58BitcoinAddress(d.BitcoinAddress) + if err != nil { + return nil, err + } + + s, err := cipher.SecKeyFromHex(d.Secret) + if err != nil { + return nil, err + } + + p, err := cipher.PubKeyFromHex(d.Public) + if err != nil { + return nil, err + } + + var sigs []cipher.Sig + if d.Signatures != nil { + sigs = make([]cipher.Sig, len(d.Signatures)) + for i, s := range d.Signatures { + var err error + sigs[i], err = cipher.SigFromHex(s) + if err != nil { + return nil, err + } + } + } + + xPrivBytes, err := base58.Decode(d.XPriv) + if err != nil { + return nil, err + } + + xPriv, err := bip32.DeserializePrivateKey(xPrivBytes) + if err != nil { + return nil, err + } + + identifier, err := hex.DecodeString(d.Identifier) + if err != nil { + return nil, err + } + + if !bytes.Equal(xPriv.Identifier(), identifier) { + return nil, errors.New("xpriv identifier does not match identifier") + } + + if xPriv.Depth != d.Depth { + return nil, errors.New("xpriv depth does not match depth") + } + + if xPriv.PublicKey().String() != d.XPub { + return nil, errors.New("xpub derived from xpriv does not match xpub") + } + + if xPriv.ChildNumber() != d.ChildNumber { + return nil, errors.New("xpriv child number does not match child number") + } + + return &Bip32KeysTestData{ + Path: d.Path, + XPriv: xPriv, + + KeysTestData: KeysTestData{ + Address: addr, + BitcoinAddress: btcAddr, + Secret: s, + Public: p, + Signatures: sigs, + }, + }, nil +} + +// Bip32SeedTestData contains data generated by Seed +type Bip32SeedTestData struct { + Seed []byte + BasePath string + ChildNumbers []uint32 + Keys []Bip32KeysTestData +} + +// ToJSON converts Bip32SeedTestData to Bip32SeedTestDataJSON +func (s *Bip32SeedTestData) ToJSON() *Bip32SeedTestDataJSON { + keys := make([]Bip32KeysTestDataJSON, len(s.Keys)) + for i, k := range s.Keys { + kj := k.ToJSON() + keys[i] = *kj + } + + return &Bip32SeedTestDataJSON{ + Seed: base64.StdEncoding.EncodeToString(s.Seed), + BasePath: s.BasePath, + ChildNumbers: s.ChildNumbers, + Keys: keys, + } +} + +// Bip32SeedTestDataFromJSON converts Bip32SeedTestDataJSON to Bip32SeedTestData +func Bip32SeedTestDataFromJSON(d *Bip32SeedTestDataJSON) (*Bip32SeedTestData, error) { + seed, err := base64.StdEncoding.DecodeString(d.Seed) + if err != nil { + return nil, err + } + + keys := make([]Bip32KeysTestData, len(d.Keys)) + for i, kj := range d.Keys { + k, err := Bip32KeysTestDataFromJSON(&kj) + if err != nil { + return nil, err + } + keys[i] = *k + } + + return &Bip32SeedTestData{ + Seed: seed, + BasePath: d.BasePath, + ChildNumbers: d.ChildNumbers, + Keys: keys, + }, nil +} + +// ValidateBip32SeedData validates the provided Bip32SeedTestData against the current cipher library. +// inputData is required if Bip32SeedTestData contains signatures +func ValidateBip32SeedData(seedData *Bip32SeedTestData, inputData *InputTestData) error { + mk, err := bip32.NewPrivateKeyFromPath(seedData.Seed, seedData.BasePath) + if err != nil { + return err + } + + if len(seedData.ChildNumbers) != len(seedData.Keys) { + return errors.New("len(seedData.ChildNumbers) must equal len(seedData.Keys)") + } + + for i, n := range seedData.ChildNumbers { + k, err := mk.NewPrivateChildKey(n) + if err != nil { + return err + } + + if err := validateBip32KeyTestData(inputData, seedData.BasePath, seedData.Seed, k, n, seedData.Keys[i]); err != nil { + return err + } + } + + return nil +} + +func validateBip32KeyTestData(inputData *InputTestData, basePath string, seed []byte, s *bip32.PrivateKey, childNumber uint32, data Bip32KeysTestData) error { + path := fmt.Sprintf("%s/%d", basePath, childNumber) + pathXPriv, err := bip32.NewPrivateKeyFromPath(seed, path) + if err != nil { + return err + } + + if s.String() != pathXPriv.String() { + return errors.New("xpriv generated with NewPrivateChildKey differs from xpriv generated with NewPrivateKeyFromPath") + } + + pubKey := cipher.MustNewPubKey(s.PublicKey().Key) + secKey := cipher.MustNewSecKey(s.Key) + + if cipher.MustPubKeyFromSecKey(secKey) != pubKey { + return errors.New("pubkey derived from bip32 key does not match pubkey derived from bip32 key converted to cipher key") + } + + return validateKeyTestData(inputData, secKey, data.KeysTestData) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/add_private_key.go b/vendor/github.com/skycoin/skycoin/src/cli/add_private_key.go new file mode 100644 index 000000000..e07ec9ce5 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/add_private_key.go @@ -0,0 +1,140 @@ +package cli + +import ( + "fmt" + "io/ioutil" + "path/filepath" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/wallet" + "github.com/skycoin/skycoin/src/wallet/collection" +) + +func addPrivateKeyCmd() *cobra.Command { + // TODO -- allow private key to be entered privately, same as the password can be + addPrivateKeyCmd := &cobra.Command{ + Short: "Add a private key to wallet", + Use: "addPrivateKey [wallet] [private key]", + Long: `Add a private key to wallet. + + This method only works on "collection" type wallets. + Use "skycoin-cli walletCreate -t collection" to create a "collection" type wallet. + + Use caution when using this from your shell. The private key will be recorded + if your shell's history file, unless you disable the shell history. + + Use caution when using the "-p" command. If you have command + history enabled your wallet encryption password can be recovered from the + history log. If you do not include the "-p" option you will be prompted to + enter your password after you enter your command.`, + SilenceUsage: true, + Args: cobra.ExactArgs(2), + DisableFlagsInUseLine: true, + RunE: func(c *cobra.Command, args []string) error { + walletFile := args[0] + skStr := args[1] + + password, err := c.Flags().GetString("password") + if err != nil { + return err + } + pr := NewPasswordReader([]byte(password)) + + err = AddPrivateKeyToFile(walletFile, skStr, pr) + + switch err.(type) { + case nil: + fmt.Println("success") + return nil + case WalletLoadError: + printHelp(c) + return err + default: + return err + } + }, + } + + addPrivateKeyCmd.Flags().StringP("password", "p", "", "wallet password") + + return addPrivateKeyCmd +} + +// AddPrivateKey adds a private key to a wallet.Wallet. Caller should save the wallet afterwards +func AddPrivateKey(wlt *collection.Wallet, key string) error { + sk, err := cipher.SecKeyFromHex(key) + if err != nil { + return fmt.Errorf("invalid private key: %s, must be a hex string of length 64", key) + } + + pk, err := cipher.PubKeyFromSecKey(sk) + if err != nil { + return err + } + + addr := wallet.AddressConstructor(wlt.Meta)(pk) + + entry := wallet.Entry{ + Address: addr, + Public: pk, + Secret: sk, + } + + return wlt.AddEntry(entry) +} + +// AddPrivateKeyToFile adds a private key to a wallet based on filename. +// Will save the wallet after modifying. +func AddPrivateKeyToFile(walletFile, key string, pr PasswordReader) error { + data, err := ioutil.ReadFile(walletFile) + if err != nil { + return WalletLoadError{err} + } + + wlt := &collection.Wallet{} + if err := wlt.Deserialize(data); err != nil { + return WalletLoadError{err} + } + + if wlt.Type() != collection.WalletType { + return fmt.Errorf("only %q type wallets can have keypairs added manually", collection.WalletType) + } + + if pr == nil && wlt.IsEncrypted() { + return wallet.ErrMissingPassword + } + + addKey := func(w *collection.Wallet, key string) error { + return AddPrivateKey(w, key) + } + + if wlt.IsEncrypted() { + addKey = func(w *collection.Wallet, key string) error { + password, err := pr.Password() + if err != nil { + return err + } + + return wallet.GuardUpdate(w, password, func(wlt wallet.Wallet) error { + return AddPrivateKey(wlt.(*collection.Wallet), key) + }) + } + } + + if err := addKey(wlt, key); err != nil { + return err + } + + dir, err := filepath.Abs(filepath.Dir(walletFile)) + if err != nil { + return err + } + + if err := wallet.Save(wlt, dir); err != nil { + return WalletSaveError{err} + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/address_gen.go b/vendor/github.com/skycoin/skycoin/src/cli/address_gen.go new file mode 100644 index 000000000..71ebf9c50 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/address_gen.go @@ -0,0 +1,342 @@ +package cli + +import ( + "errors" + "fmt" + "os" + "strings" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip39" + "github.com/skycoin/skycoin/src/cipher/crypto" + "github.com/skycoin/skycoin/src/wallet" +) + +func addressGenCmd() *cobra.Command { + addressGenCmd := &cobra.Command{ + Short: "Generate skycoin or bitcoin addresses", + Use: "addressGen", + Long: `Use caution when using the "-p" command. If you have command history enabled + your wallet encryption password can be recovered from the history log. If you + do not include the "-p" option you will be prompted to enter your password + after you enter your command.`, + SilenceUsage: true, + RunE: func(c *cobra.Command, _ []string) error { + numAddresses, err := c.Flags().GetInt("num") + if err != nil { + return err + } + if numAddresses <= 0 { + return errors.New("num must be > 0") + } + + coinName, err := c.Flags().GetString("coin") + if err != nil { + return err + } + + coinType, err := wallet.ResolveCoinType(coinName) + if err != nil { + return err + } + + encrypt, err := c.Flags().GetBool("encrypt") + if err != nil { + return err + } + + mode, err := c.Flags().GetString("mode") + if err != nil { + return nil + } + + // default label + label, err := c.Flags().GetString("label") + if err != nil { + return nil + } + if label == "" { + label = "default" + } + + hideSecrets, err := c.Flags().GetBool("hide-secrets") + if err != nil { + return nil + } + + seed, err := resolveSeed(c) + if err != nil { + return err + } + + var password []byte + if encrypt { + switch strings.ToLower(mode) { + case "json", "wallet": + default: + return errors.New("Encrypt flag requires -mode to be json") + } + + var err error + password, err = PasswordFromTerm{}.Password() + if err != nil { + return err + } + } + + w, err := wallet.NewWallet(wallet.NewWalletFilename(), label, seed, wallet.Options{ + Coin: coinType, + Encrypt: encrypt, + Password: password, + CryptoType: crypto.DefaultCryptoType, + GenerateN: uint64(numAddresses), + Type: wallet.WalletTypeDeterministic, + }) + if err != nil { + return err + } + + if hideSecrets { + w.Erase() + } + + //rw := w.ToReadable() + + switch strings.ToLower(mode) { + case "json", "wallet": + output, err := w.Serialize() + if err != nil { + return err + } + + fmt.Println(string(output)) + case "addrs", "addresses": + es, err := w.GetEntries() + if err != nil { + return err + } + for _, e := range es { + fmt.Println(e.Address) + } + case "secrets": + if hideSecrets { + return errors.New("secrets mode selected but hideSecrets enabled") + } + es, err := w.GetEntries() + if err != nil { + return err + } + + for _, e := range es { + switch coinType { + case wallet.CoinTypeSkycoin: + fmt.Println(e.Secret.Hex()) + case wallet.CoinTypeBitcoin: + fmt.Println(cipher.BitcoinWalletImportFormatFromSeckey(e.Secret)) + } + } + default: + return errors.New("invalid mode") + } + + return nil + }, + } + + addressGenCmd.Flags().IntP("num", "n", 1, "Number of addresses to generate") + addressGenCmd.Flags().StringP("coin", "c", "skycoin", "Coin type. Must be skycoin or bitcoin. If bitcoin, secret keys are in Wallet Import Format instead of hex.") + addressGenCmd.Flags().StringP("label", "l", "", "Wallet label to use when printing or writing a wallet file") + addressGenCmd.Flags().Bool("hex", false, "Use hex(sha256sum(rand(1024))) (CSPRNG-generated) as the seed if not seed is not provided") + addressGenCmd.Flags().StringP("seed", "s", "", "Seed for deterministic key generation. Will use bip39 as the seed if not provided.") + addressGenCmd.Flags().BoolP("strict-seed", `t`, false, "Seed should be a valid bip39 mnemonic seed.") + addressGenCmd.Flags().IntP("entropy", "e", 128, "Entropy of the autogenerated bip39 seed, when the seed is not provided. Can be 128 or 256") + addressGenCmd.Flags().BoolP("hide-secrets", "i", false, "Hide the secret key and seed from the output when printing a JSON wallet file") + addressGenCmd.Flags().StringP("mode", "m", "wallet", "Output mode. Options are wallet (prints a full JSON wallet), addresses (prints addresses in plain text), secrets (prints secret keys in plain text)") + addressGenCmd.Flags().BoolP("encrypt", "x", false, "Encrypt the wallet when printing a JSON wallet") + + return addressGenCmd +} + +func resolveSeed(c *cobra.Command) (string, error) { + entropy, err := c.Flags().GetInt("entropy") + if err != nil { + return "", nil + } + + switch entropy { + case 128, 256: + default: + return "", errors.New("entropy must be 128 or 256") + } + + seed, err := c.Flags().GetString("seed") + if err != nil { + return "", nil + } + + strictSeed, err := c.Flags().GetBool("strict-seed") + if err != nil { + return "", nil + } + + if seed != "" { + if strictSeed { + if err := bip39.ValidateMnemonic(seed); err != nil { + return "", fmt.Errorf("seed is not a valid bip39 seed: %v", err) + } + } + + return seed, nil + } + + useHex, err := c.Flags().GetBool("hex") + if err != nil { + return "", nil + } + + if useHex { + seed = cipher.SumSHA256(cipher.RandByte(1024)).Hex() + } else { + e, err := bip39.NewEntropy(entropy) + if err != nil { + return "", err + } + + seed, err = bip39.NewMnemonic(e) + if err != nil { + return "", err + } + } + + return seed, nil +} + +func fiberAddressGenCmd() *cobra.Command { + fiberAddressGenCmd := &cobra.Command{ + Use: "fiberAddressGen", + Short: "Generate addresses and seeds for a new fiber coin", + Long: `Addresses are written in a format that can be copied into fiber.toml + for configuring distribution addresses. Addresses along with their seeds are written to a csv file, + these seeds can be imported into the wallet to access distribution coins.`, + SilenceUsage: true, + RunE: func(c *cobra.Command, args []string) (err error) { + if len(args) > 0 { + return errors.New("this command does not take any positional arguments") + } + + fiberNumAddresses, err := c.Flags().GetInt("num") + if err != nil { + return nil + } + + entropy, err := c.Flags().GetInt("entropy") + if err != nil { + return nil + } + + addrsFilename, err := c.Flags().GetString("addrs-file") + if err != nil { + return nil + } + + seedsFilename, err := c.Flags().GetString("seeds-file") + if err != nil { + return nil + } + + overwrite, err := c.Flags().GetBool("overwrite") + if err != nil { + return nil + } + + if fiberNumAddresses < 1 { + return errors.New("num must be > 0") + } + + switch entropy { + case 128, 256: + default: + return errors.New("entropy must be 128 or 256") + } + + addrs := make([]cipher.Address, fiberNumAddresses) + seeds := make([]string, fiberNumAddresses) + + for i := 0; i < fiberNumAddresses; i++ { + e, err := bip39.NewEntropy(entropy) + if err != nil { + return err + } + + seed, err := bip39.NewMnemonic(e) + if err != nil { + return err + } + + _, seckey, err := cipher.GenerateDeterministicKeyPair([]byte(seed)) + if err != nil { + return err + } + addr := cipher.MustAddressFromSecKey(seckey) + + seeds[i] = seed + addrs[i] = addr + } + + _, err = os.Stat(addrsFilename) + if err != nil { + if !os.IsNotExist(err) { + return err + } + } else if !overwrite { + return fmt.Errorf("-addrs-file %q already exists. Use -overwrite to force writing", addrsFilename) + } + + _, err = os.Stat(seedsFilename) + if err != nil { + if !os.IsNotExist(err) { + return err + } + } else if !overwrite { + return fmt.Errorf("-seeds-file %q already exists. Use -overwrite to force writing", seedsFilename) + } + + addrsF, err := os.Create(addrsFilename) + if err != nil { + return err + } + defer addrsF.Close() + + seedsF, err := os.Create(seedsFilename) + if err != nil { + return err + } + defer seedsF.Close() + + for i, a := range addrs { + if _, err := fmt.Fprintf(addrsF, "\"%s\",\n", a); err != nil { + return err + } + if _, err := fmt.Fprintf(seedsF, "\"%s\",\"%s\"\n", a, seeds[i]); err != nil { + return err + } + } + + if err := addrsF.Sync(); err != nil { + return err + } + + return seedsF.Sync() + }, + } + + fiberAddressGenCmd.Flags().IntP("num", "n", 100, "Number of addresses to generate") + fiberAddressGenCmd.Flags().IntP("entropy", "e", 128, "Entropy of the autogenerated bip39 seeds. Can be 128 or 256") + fiberAddressGenCmd.Flags().StringP("addrs-file", "a", "addresses.txt", "Output file for the generated addresses in fiber.toml format") + fiberAddressGenCmd.Flags().StringP("seeds-file", "s", "seeds.csv", "Output file for the generated addresses and seeds in a csv") + fiberAddressGenCmd.Flags().BoolP("overwrite", "o", false, "Allow overwriting any existing addrs-file or seeds-file") + + return fiberAddressGenCmd +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/addresscount.go b/vendor/github.com/skycoin/skycoin/src/cli/addresscount.go new file mode 100644 index 000000000..92769127d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/addresscount.go @@ -0,0 +1,26 @@ +package cli + +import ( + "github.com/spf13/cobra" +) + +func addresscountCmd() *cobra.Command { + return &cobra.Command{ + Short: "Get the count of addresses with unspent outputs (coins)", + Long: "Returns the count of all addresses that currently have unspent outputs (coins) associated with them.", + Use: "addresscount", + Args: cobra.NoArgs, + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: getAddresscount, + } +} + +func getAddresscount(_ *cobra.Command, _ []string) error { + addresscount, err := apiClient.AddressCount() + if err != nil { + return err + } + + return printJSON(addresscount) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/blocks.go b/vendor/github.com/skycoin/skycoin/src/cli/blocks.go new file mode 100644 index 000000000..8015304d5 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/blocks.go @@ -0,0 +1,49 @@ +package cli + +import ( + "fmt" + "strconv" + + "github.com/spf13/cobra" +) + +func blocksCmd() *cobra.Command { + blocksCmd := &cobra.Command{ + Short: "Lists the content of a single block or a range of blocks", + Use: "blocks [starting block or single block seq] [ending block seq]", + Args: cobra.RangeArgs(1, 2), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: getBlocks, + } + + return blocksCmd +} + +func getBlocks(_ *cobra.Command, args []string) error { + var start, end string + start = args[0] + + if len(args) == 1 { + end = start + } else { + end = args[1] + } + + s, err := strconv.ParseUint(start, 10, 64) + if err != nil { + return fmt.Errorf("invalid block seq: %v, must be unsigned integer", start) + } + + e, err := strconv.ParseUint(end, 10, 64) + if err != nil { + return fmt.Errorf("invalid block seq: %v, must be unsigned integer", end) + } + + rlt, err := apiClient.BlocksInRange(s, e) + if err != nil { + return err + } + + return printJSON(rlt) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/broadcast_rawtx.go b/vendor/github.com/skycoin/skycoin/src/cli/broadcast_rawtx.go new file mode 100644 index 000000000..8ad1a6be1 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/broadcast_rawtx.go @@ -0,0 +1,29 @@ +package cli + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +func broadcastTxCmd() *cobra.Command { + return &cobra.Command{ + Short: "Broadcast a raw transaction to the network", + Use: "broadcastTransaction [raw transaction]", + Args: cobra.ExactArgs(1), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: func(_ *cobra.Command, args []string) error { + rawtx := args[0] + + txid, err := apiClient.InjectEncodedTransaction(rawtx) + if err != nil { + return err + } + + fmt.Println(txid) + return nil + }, + } + +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/check_balance.go b/vendor/github.com/skycoin/skycoin/src/cli/check_balance.go new file mode 100644 index 000000000..facd57840 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/check_balance.go @@ -0,0 +1,258 @@ +package cli + +import ( + "fmt" + "strconv" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/wallet" +) + +// Balance represents an coin and hours balance +type Balance struct { + Coins string `json:"coins"` + Hours string `json:"hours"` +} + +// AddressBalances represents an address's balance +type AddressBalances struct { + Confirmed Balance `json:"confirmed"` + Spendable Balance `json:"spendable"` + Expected Balance `json:"expected"` + Address string `json:"address"` +} + +// BalanceResult represents an set of addresses' balances +type BalanceResult struct { + Confirmed Balance `json:"confirmed"` + Spendable Balance `json:"spendable"` + Expected Balance `json:"expected"` + Addresses []AddressBalances `json:"addresses"` +} + +func walletBalanceCmd() *cobra.Command { + return &cobra.Command{ + Short: "Check the balance of a wallet", + Use: "walletBalance [wallet]", + Args: cobra.ExactArgs(1), + DisableFlagsInUseLine: true, + RunE: checkWltBalance, + } +} + +func addressBalanceCmd() *cobra.Command { + return &cobra.Command{ + Short: "Check the balance of specific addresses", + Use: "addressBalance [addresses]", + Long: `Check balance of specific addresses, join multiple addresses with space. + example: addressBalance "$addr1 $addr2 $addr3"`, + Args: cobra.MinimumNArgs(1), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: addrBalance, + } +} + +func checkWltBalance(c *cobra.Command, args []string) error { + w := args[0] + balRlt, err := CheckWalletBalance(apiClient, w) + switch err.(type) { + case nil: + case WalletLoadError: + printHelp(c) + return err + default: + return err + } + + return printJSON(balRlt) +} + +func addrBalance(_ *cobra.Command, args []string) error { + numArgs := len(args) + + addrs := make([]string, numArgs) + + var err error + for i := 0; i < numArgs; i++ { + addrs[i] = args[i] + if _, err = cipher.DecodeBase58Address(addrs[i]); err != nil { + return fmt.Errorf("invalid address: %v, err: %v", addrs[i], err) + } + } + + balRlt, err := GetBalanceOfAddresses(apiClient, addrs) + if err != nil { + return err + } + + return printJSON(balRlt) +} + +// PUBLIC + +// CheckWalletBalance returns the total and individual balances of addresses in a wallet file +func CheckWalletBalance(c GetOutputser, id string) (*BalanceResult, error) { + wlt, err := apiClient.Wallet(id) + if err != nil { + return nil, err + } + + var addrs []string + for _, e := range wlt.Entries { + addrs = append(addrs, e.Address) + } + + return GetBalanceOfAddresses(c, addrs) +} + +// GetBalanceOfAddresses returns the total and individual balances of a set of addresses +func GetBalanceOfAddresses(c GetOutputser, addrs []string) (*BalanceResult, error) { + outs, err := c.OutputsForAddresses(addrs) + if err != nil { + return nil, err + } + + return getBalanceOfAddresses(outs, addrs) +} + +func getBalanceOfAddresses(outs *readable.UnspentOutputsSummary, addrs []string) (*BalanceResult, error) { + addrsMap := make(map[string]struct{}, len(addrs)) + for _, a := range addrs { + addrsMap[a] = struct{}{} + } + + addrBalances := make(map[string]struct { + confirmed, spendable, expected wallet.Balance + }, len(addrs)) + + // Count confirmed balances + for _, o := range outs.HeadOutputs { + if _, ok := addrsMap[o.Address]; !ok { + return nil, fmt.Errorf("Found address %s in GetUnspentOutputs result, but this address wasn't requested", o.Address) + } + + amt, err := droplet.FromString(o.Coins) + if err != nil { + return nil, fmt.Errorf("droplet.FromString failed: %v", err) + } + + b := addrBalances[o.Address] + b.confirmed.Coins += amt + b.confirmed.Hours += o.CalculatedHours + + addrBalances[o.Address] = b + } + + // Count spendable balances + for _, o := range outs.SpendableOutputs() { + if _, ok := addrsMap[o.Address]; !ok { + return nil, fmt.Errorf("Found address %s in GetUnspentOutputs result, but this address wasn't requested", o.Address) + } + + amt, err := droplet.FromString(o.Coins) + if err != nil { + return nil, fmt.Errorf("droplet.FromString failed: %v", err) + } + + b := addrBalances[o.Address] + b.spendable.Coins += amt + b.spendable.Hours += o.CalculatedHours + + addrBalances[o.Address] = b + } + + // Count predicted balances + for _, o := range outs.ExpectedOutputs() { + if _, ok := addrsMap[o.Address]; !ok { + return nil, fmt.Errorf("Found address %s in GetUnspentOutputs result, but this address wasn't requested", o.Address) + } + + amt, err := droplet.FromString(o.Coins) + if err != nil { + return nil, fmt.Errorf("droplet.FromString failed: %v", err) + } + + b := addrBalances[o.Address] + b.expected.Coins += amt + b.expected.Hours += o.CalculatedHours + + addrBalances[o.Address] = b + } + + toBalance := func(b wallet.Balance) (Balance, error) { + coins, err := droplet.ToString(b.Coins) + if err != nil { + return Balance{}, err + } + + return Balance{ + Coins: coins, + Hours: strconv.FormatUint(b.Hours, 10), + }, nil + } + + var totalConfirmed, totalSpendable, totalExpected wallet.Balance + balRlt := &BalanceResult{ + Addresses: make([]AddressBalances, len(addrs)), + } + + for i, a := range addrs { + b := addrBalances[a] + var err error + + balRlt.Addresses[i].Address = a + + totalConfirmed, err = totalConfirmed.Add(b.confirmed) + if err != nil { + return nil, err + } + + totalSpendable, err = totalSpendable.Add(b.spendable) + if err != nil { + return nil, err + } + + totalExpected, err = totalExpected.Add(b.expected) + if err != nil { + return nil, err + } + + balRlt.Addresses[i].Confirmed, err = toBalance(b.confirmed) + if err != nil { + return nil, err + } + + balRlt.Addresses[i].Spendable, err = toBalance(b.spendable) + if err != nil { + return nil, err + } + + balRlt.Addresses[i].Expected, err = toBalance(b.expected) + if err != nil { + return nil, err + } + } + + var err error + balRlt.Confirmed, err = toBalance(totalConfirmed) + if err != nil { + return nil, err + } + + balRlt.Spendable, err = toBalance(totalSpendable) + if err != nil { + return nil, err + } + + balRlt.Expected, err = toBalance(totalExpected) + if err != nil { + return nil, err + } + + return balRlt, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/checkdb.go b/vendor/github.com/skycoin/skycoin/src/cli/checkdb.go new file mode 100644 index 000000000..070f7b50d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/checkdb.go @@ -0,0 +1,141 @@ +package cli + +import ( + "fmt" + "os" + "time" + + "github.com/boltdb/bolt" + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/util/apputil" + "github.com/skycoin/skycoin/src/visor" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +const ( + blockchainPubkey = "0328c576d3f420e7682058a981173a4b374c7cc5ff55bf394d3cf57059bbe6456a" +) + +// wrapDB calls dbutil.WrapDB and disables all logging +func wrapDB(db *bolt.DB) *dbutil.DB { + wdb := dbutil.WrapDB(db) + wdb.ViewLog = false + wdb.ViewTrace = false + wdb.UpdateLog = false + wdb.UpdateTrace = false + wdb.DurationLog = false + return wdb +} + +func checkDBCmd() *cobra.Command { + return &cobra.Command{ + Short: "Verify the database", + Use: "checkdb [db path]", + Long: `Checks if the given database file contains valid skycoin blockchain data. + If no argument is specificed, the default data.db in $HOME/.$COIN/ will be checked.`, + Args: cobra.MaximumNArgs(1), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: checkDB, + } +} + +func checkDB(_ *cobra.Command, args []string) error { + // get db path + dbPath := "" + if len(args) > 0 { + dbPath = args[0] + } + dbPath, err := resolveDBPath(cliConfig, dbPath) + if err != nil { + return err + } + + // check if this file exists + if _, err := os.Stat(dbPath); os.IsNotExist(err) { + return fmt.Errorf("db file: %v does not exist", dbPath) + } + + db, err := bolt.Open(dbPath, 0600, &bolt.Options{ + Timeout: 5 * time.Second, + ReadOnly: true, + }) + + if err != nil { + return fmt.Errorf("open db failed: %v", err) + } + pubkey, err := cipher.PubKeyFromHex(blockchainPubkey) + if err != nil { + return fmt.Errorf("decode blockchain pubkey failed: %v", err) + } + + go func() { + apputil.CatchInterrupt(quitChan) + }() + + if err := visor.CheckDatabase(wrapDB(db), pubkey, quitChan); err != nil { + if err == visor.ErrVerifyStopped { + return nil + } + return fmt.Errorf("checkdb failed: %v", err) + } + + fmt.Println("check db success") + return nil +} + +func checkDBEncodingCmd() *cobra.Command { + return &cobra.Command{ + Short: "Verify the database data encoding", + Use: "checkDBDecoding [db path]", + Long: `Verify the generated binary encoders match the dynamic encoders for database data. + If no argument is specificed, the default data.db in $HOME/.$COIN/ will be checked.`, + Args: cobra.MaximumNArgs(1), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: checkDBDecoding, + } +} + +func checkDBDecoding(_ *cobra.Command, args []string) error { + // get db path + dbPath := "" + if len(args) > 0 { + dbPath = args[0] + } + dbPath, err := resolveDBPath(cliConfig, dbPath) + if err != nil { + return err + } + + // check if this file exists + if _, err := os.Stat(dbPath); os.IsNotExist(err) { + return fmt.Errorf("db file: %v does not exist", dbPath) + } + + db, err := bolt.Open(dbPath, 0600, &bolt.Options{ + Timeout: 5 * time.Second, + ReadOnly: true, + }) + + if err != nil { + return fmt.Errorf("open db failed: %v", err) + } + + go func() { + apputil.CatchInterrupt(quitChan) + }() + + if err := visor.VerifyDBSkyencoderSafe(wrapDB(db), quitChan); err != nil { + if err == visor.ErrVerifyStopped { + return nil + } + return fmt.Errorf("checkDBDecoding failed: %v", err) + } + + fmt.Println("check db decoding success") + return nil + +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/cli.go b/vendor/github.com/skycoin/skycoin/src/cli/cli.go new file mode 100644 index 000000000..ecbea9d00 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/cli.go @@ -0,0 +1,323 @@ +/* +Package cli implements the CLI cmd's methods. + +Includes methods for manipulating wallets files and interacting with the +REST API to query a skycoin node's status. +*/ +package cli + +import ( + "encoding/json" + "errors" + "flag" + "fmt" + "net/url" + "path/filepath" + "syscall" + + "os" + + "github.com/spf13/cobra" + "github.com/spf13/pflag" + "golang.org/x/crypto/ssh/terminal" + + "github.com/skycoin/skycoin/src/api" + "github.com/skycoin/skycoin/src/util/file" + "github.com/skycoin/skycoin/src/wallet" +) + +var ( + // Version is the CLI Version + Version = "0.27.1" +) + +const ( + walletExt = "." + wallet.WalletExt + defaultCoin = "skycoin" + defaultRPCAddress = "http://127.0.0.1:6420" + defaultDataDir = "$HOME/.$COIN/" +) + +var ( + envVarsHelp = fmt.Sprintf(`ENVIRONMENT VARIABLES: + RPC_ADDR: Address of RPC node. Must be in scheme://host format. Default "%s" + RPC_USER: Username for RPC API, if enabled in the RPC. + RPC_PASS: Password for RPC API, if enabled in the RPC. + COIN: Name of the coin. Default "%s" + DATA_DIR: Directory where everything is stored. Default "%s"`, defaultRPCAddress, defaultCoin, defaultDataDir) + + helpTemplate = fmt.Sprintf(`USAGE:{{if .Runnable}} + {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}} + {{.CommandPath}} [command] [flags] [arguments...]{{end}}{{with (or .Long .Short)}} + +DESCRIPTION: + {{. | trimTrailingWhitespaces}}{{end}}{{if .HasExample}} + +EXAMPLES: +{{.Example}}{{end}}{{if .HasAvailableSubCommands}} + +COMMANDS:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name "help"))}} + {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}} + +FLAGS: +{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}} + +GLOBAL FLAGS: +{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}} + +Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}} + {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}} + +Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}} + +%s +`, envVarsHelp) + + // ErrWalletName is returned if the wallet file name is invalid + ErrWalletName = fmt.Errorf("error wallet file name, must have %s extension", walletExt) + // ErrAddress is returned if an address is invalid + ErrAddress = errors.New("invalid address") + // ErrJSONMarshal is returned if JSON marshaling failed + ErrJSONMarshal = errors.New("json marshal failed") +) + +var ( + cliConfig Config + apiClient *api.Client + quitChan = make(chan struct{}) +) + +// Config cli's configuration struct +type Config struct { + DataDir string `json:"data_directory"` + Coin string `json:"coin"` + RPCAddress string `json:"rpc_address"` + RPCUsername string `json:"-"` + RPCPassword string `json:"-"` +} + +// LoadConfig loads config from environment, prior to parsing CLI flags +func LoadConfig() (Config, error) { + // get coin name from env + coin := os.Getenv("COIN") + if coin == "" { + coin = defaultCoin + } + + // get rpc address from env + rpcAddr := os.Getenv("RPC_ADDR") + if rpcAddr == "" { + rpcAddr = defaultRPCAddress + } + + if _, err := url.Parse(rpcAddr); err != nil { + return Config{}, errors.New("RPC_ADDR must be in scheme://host format") + } + + rpcUser := os.Getenv("RPC_USER") + rpcPass := os.Getenv("RPC_PASS") + + home := file.UserHome() + + // get data dir dir from env + dataDir := os.Getenv("DATA_DIR") + if dataDir == "" { + dataDir = filepath.Join(home, fmt.Sprintf(".%s", coin)) + } + + if os.Getenv("WALLET_DIR") != "" { + return Config{}, errors.New("the envvar WALLET_DIR is no longer recognized by the CLI tool. Please review the updated CLI docs to learn how to specify the wallet file for your desired action") + } + if os.Getenv("WALLET_NAME") != "" { + return Config{}, errors.New("the envvar WALLET_NAME is no longer recognized by the CLI tool. Please review the updated CLI docs to learn how to specify the wallet file for your desired action") + } + + return Config{ + DataDir: dataDir, + Coin: coin, + RPCAddress: rpcAddr, + RPCUsername: rpcUser, + RPCPassword: rpcPass, + }, nil +} + +// FullDBPath returns the joined data directory and db file name path +func (c Config) FullDBPath() string { + return filepath.Join(c.DataDir, "data.db") +} + +func resolveDBPath(cfg Config, db string) (string, error) { + if db == "" { + db = cfg.FullDBPath() + } + + // If db is only the basename, use the default data dir + if filepath.Base(db) == db { + db = filepath.Join(cfg.DataDir, db) + } + + absDB, err := filepath.Abs(db) + if err != nil { + return "", fmt.Errorf("Invalid data path %s: %v", db, err) + } + return absDB, nil +} + +// NewCLI creates a cli instance +func NewCLI(cfg Config) (*cobra.Command, error) { + apiClient = api.NewClient(cfg.RPCAddress) + apiClient.SetAuth(cfg.RPCUsername, cfg.RPCPassword) + + cliConfig = cfg + + skyCLI := &cobra.Command{ + Short: fmt.Sprintf("The %s command line interface", cfg.Coin), + Use: fmt.Sprintf("%s-cli", cfg.Coin), + } + + commands := []*cobra.Command{ + addPrivateKeyCmd(), + addressBalanceCmd(), + addressGenCmd(), + fiberAddressGenCmd(), + addressOutputsCmd(), + blocksCmd(), + broadcastTxCmd(), + checkDBCmd(), + checkDBEncodingCmd(), + createRawTxnCmd(), + createRawTxnV2Cmd(), + signTxnCmd(), + decodeRawTxnCmd(), + encodeJSONTxnCmd(), + decryptWalletCmd(), + encryptWalletCmd(), + lastBlocksCmd(), + listAddressesCmd(), + listWalletsCmd(), + sendCmd(), + showConfigCmd(), + showSeedCmd(), + statusCmd(), + transactionCmd(), + verifyTransactionCmd(), + verifyAddressCmd(), + versionCmd(), + walletCreateCmd(), + walletCreateTempCmd(), + walletAddAddressesCmd(), + walletScanAddressesCmd(), + walletKeyExportCmd(), + walletBalanceCmd(), + walletHisCmd(), + walletOutputsCmd(), + richlistCmd(), + addressTransactionsCmd(), + pendingTransactionsCmd(), + addresscountCmd(), + distributeGenesisCmd(), + } + + skyCLI.Version = Version + skyCLI.SuggestionsMinimumDistance = 1 + skyCLI.SilenceUsage = true + skyCLI.AddCommand(commands...) + + skyCLI.SetHelpTemplate(helpTemplate) + skyCLI.SetUsageTemplate(helpTemplate) + pflag.CommandLine.AddGoFlagSet(flag.CommandLine) + + return skyCLI, nil +} + +func printHelp(c *cobra.Command) { + c.Printf("See '%s %s --help'\n", c.Parent().Name(), c.Name()) +} + +func formatJSON(obj interface{}) ([]byte, error) { + d, err := json.MarshalIndent(obj, "", " ") + if err != nil { + return nil, ErrJSONMarshal + } + return d, nil +} + +func printJSON(obj interface{}) error { + d, err := formatJSON(obj) + if err != nil { + return err + } + + fmt.Println(string(d)) + + return nil +} + +// readPasswordFromTerminal promotes user to enter password and read it. +func readPasswordFromTerminal() ([]byte, error) { + // Promotes to enter the wallet password + fmt.Fprint(os.Stdout, "enter password:") + bp, err := terminal.ReadPassword(int(syscall.Stdin)) //nolint:unconvert + if err != nil { + return nil, err + } + fmt.Fprintln(os.Stdout, "") + return bp, nil +} + +// PUBLIC + +// WalletLoadError is returned if a wallet could not be loaded +type WalletLoadError struct { + error +} + +func (e WalletLoadError) Error() string { + return fmt.Sprintf("Load wallet failed: %v", e.error) +} + +// WalletSaveError is returned if a wallet could not be saved +type WalletSaveError struct { + error +} + +func (e WalletSaveError) Error() string { + return fmt.Sprintf("Save wallet failed: %v", e.error) +} + +// PasswordReader is an interface for getting password +type PasswordReader interface { + Password() ([]byte, error) +} + +// PasswordFromBytes represents an implementation of PasswordReader, +// which reads password from the bytes itself. +type PasswordFromBytes []byte + +// Password implements the PasswordReader's Password method +func (p PasswordFromBytes) Password() ([]byte, error) { + return p, nil +} + +// PasswordFromTerm reads password from terminal +type PasswordFromTerm struct{} + +// Password implements the PasswordReader's Password method +func (p PasswordFromTerm) Password() ([]byte, error) { + v, err := readPasswordFromTerminal() + if err != nil { + return nil, err + } + + return v, nil +} + +// NewPasswordReader creats a PasswordReader instance, +// reads password from the input bytes first, if it's empty, then read from terminal. +func NewPasswordReader(p []byte) PasswordReader { + if len(p) != 0 { + return PasswordFromBytes(p) + } + + return PasswordFromTerm{} +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/create_rawtx.go b/vendor/github.com/skycoin/skycoin/src/cli/create_rawtx.go new file mode 100644 index 000000000..06641e96d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/create_rawtx.go @@ -0,0 +1,1011 @@ +package cli + +import ( + "encoding/csv" + "encoding/json" + "errors" + "fmt" + "os" + "strings" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/api" + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/transaction" + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/util/fee" + "github.com/skycoin/skycoin/src/util/mathutil" + "github.com/skycoin/skycoin/src/wallet" +) + +var ( + // ErrTemporaryInsufficientBalance is returned if a wallet does not have enough balance for a spend, but will have enough after unconfirmed transactions confirm + ErrTemporaryInsufficientBalance = errors.New("balance is not sufficient. Balance will be sufficient after unconfirmed transactions confirm") +) + +// SendAmount represents an amount to send to an address +type SendAmount struct { + Addr string + Coins uint64 +} + +type sendAmountJSON struct { + Addr string `json:"addr"` + Coins string `json:"coins"` +} + +func createRawTxnCmd() *cobra.Command { + createRawTxnCmd := &cobra.Command{ + Short: "Create a raw transaction that can be broadcast to the network later", + Use: "createRawTransaction [wallet] [to address] [amount]", + Long: `Create a raw transaction that can be broadcast to the network later. + + Note: The [amount] argument is the coins you will spend, with decimal formatting, e.g. 1, 1.001 or 1.000000. + + The [to address] and [amount] arguments can be replaced with the --many/-m or the --csv option. + + Use caution when using the "-p" command. If you have command history enabled + your wallet encryption password can be recovered from the history log. If you + do not include the "-p" option you will be prompted to enter your password + after you enter your command.`, + SilenceUsage: true, + Args: cobra.MinimumNArgs(1), + RunE: func(c *cobra.Command, args []string) error { + jsonOutput, err := c.Flags().GetBool("json") + if err != nil { + return err + } + + txn, err := createRawTxnCmdHandler(c, args) + switch err.(type) { + case nil: + case WalletLoadError: + printHelp(c) + return err + default: + return err + } + + rawTxn, err := txn.SerializeHex() + if err != nil { + return err + } + + if jsonOutput { + return printJSON(struct { + RawTx string `json:"rawtx"` + }{ + RawTx: rawTxn, + }) + } + + fmt.Println(rawTxn) + + return nil + }, + } + + createRawTxnCmd.Flags().StringP("from-address", "a", "", "From address in wallet") + createRawTxnCmd.Flags().StringP("change-address", "c", "", `Specify the change address. +Defaults to one of the spending addresses (deterministic wallets) or to a new change address (bip44 wallets).`) + createRawTxnCmd.Flags().StringP("many", "m", "", `use JSON string to set multiple receive addresses and coins, +example: -m '[{"addr":"$addr1", "coins": "10.2"}, {"addr":"$addr2", "coins": "20"}]'`) + createRawTxnCmd.Flags().StringP("password", "p", "", "Wallet password") + createRawTxnCmd.Flags().BoolP("json", "j", false, "Returns the results in JSON format.") + createRawTxnCmd.Flags().String("csv", "", "CSV file containing addresses and amounts to send") + + return createRawTxnCmd +} + +func createRawTxnV2Cmd() *cobra.Command { + createRawTxnCmd := &cobra.Command{ + Short: "Create a raw transaction that can be broadcast to the network later", + Use: "createRawTransactionV2 [wallet] [to address] [amount]", + Long: `Create a raw transaction that can be broadcast to the network later. + + Note: The [amount] argument is the coins you will spend, with decimal formatting, e.g. 1, 1.001 or 1.000000. + + The [to address] and [amount] arguments can be replaced with the --csv option., + + Use caution when using the "-p" command. If you have command history enabled + your wallet encryption password can be recovered from the history log. If you + do not include the "-p" option you will be prompted to enter your password + after you enter your command.`, + SilenceUsage: true, + Args: cobra.MinimumNArgs(1), + RunE: func(c *cobra.Command, args []string) error { + jsonOutput, err := c.Flags().GetBool("json") + if err != nil { + return err + } + + req, err := makeWalletCreateTxnRequest(c, args) + if err != nil { + return err + } + + rsp, err := apiClient.WalletCreateTransaction(*req) + if err != nil { + return err + } + + if jsonOutput { + return printJSON(rsp) + } + + fmt.Println(rsp.EncodedTransaction) + + return nil + }, + } + + createRawTxnCmd.Flags().StringP("from-address", "a", "", "From address in wallet") + createRawTxnCmd.Flags().StringP("change-address", "c", "", `Specify the change address. + Defaults to one of the spending addresses (deterministic wallets) or to a new change address (bip44 wallets).`) + createRawTxnCmd.Flags().String("csv", "", "CSV file containing addresses and amounts to send") + createRawTxnCmd.Flags().StringP("password", "p", "", "Wallet password") + createRawTxnCmd.Flags().BoolP("unsign", "", false, "Do not sign the transaction") + createRawTxnCmd.Flags().BoolP("json", "j", false, "Returns the results in JSON format.") + + createRawTxnCmd.Flags().BoolP("ignore-unconfirmed", "", false, "Ignore unconfirmed transactions") + createRawTxnCmd.Flags().StringP("hours-selection-type", "", transaction.HoursSelectionTypeAuto, "Hours selection type") + createRawTxnCmd.Flags().StringP("hours-selection-mode", "", transaction.HoursSelectionModeShare, "Hours selection mode") + createRawTxnCmd.Flags().StringP("hours-selection-share-factor", "", "0.5", "Hour selection share factor") + + return createRawTxnCmd +} + +func makeWalletCreateTxnRequest(c *cobra.Command, args []string) (*api.WalletCreateTransactionRequest, error) { + unsign, err := c.Flags().GetBool("unsign") + if err != nil { + return nil, err + } + + walletFile := args[0] + w, err := apiClient.Wallet(walletFile) + if err != nil { + return nil, err + } + + wltAddr, err := fromWalletOrAddress(c, walletFile) + if err != nil { + return nil, err + } + + var addrs []string + if wltAddr.Address != "" { + addrs = append(addrs, wltAddr.Address) + } else { + for _, e := range w.Entries { + addrs = append(addrs, e.Address) + } + } + + ctr, err := makeCreateTransactionRequest(c, args, addrs) + if err != nil { + return nil, err + } + + req := api.WalletCreateTransactionRequest{ + Unsigned: unsign, + WalletID: w.Meta.Filename, + CreateTransactionRequest: *ctr, + } + + if w.Meta.Encrypted && !unsign { + p, err := getPassword(c) + if err != nil { + return nil, err + } + defer func() { + p = nil + }() + req.Password = string(p) + } + return &req, nil +} + +func getPassword(c *cobra.Command) ([]byte, error) { + p, err := c.Flags().GetString("password") + if err != nil { + return nil, err + } + defer func() { + p = "" + }() + + return NewPasswordReader([]byte(p)).Password() +} + +func makeCreateTransactionRequest(c *cobra.Command, args []string, fromAddrs []string) (*api.CreateTransactionRequest, error) { + hoursSelection, err := getHoursSelection(c) + if err != nil { + return nil, err + } + + iu, err := c.Flags().GetBool("ignore-unconfirmed") + if err != nil { + return nil, err + } + + var changeAddr *string + ca, err := c.Flags().GetString("change-address") + if err != nil { + return nil, err + } + if ca != "" { + changeAddr = &ca + } + + to, err := getToAddressesV2(c, args[1:]) + if err != nil { + return nil, err + } + + return &api.CreateTransactionRequest{ + IgnoreUnconfirmed: iu, + HoursSelection: *hoursSelection, + ChangeAddress: changeAddr, + Addresses: fromAddrs, + To: to, + }, nil +} + +func getToAddressesV2(c *cobra.Command, args []string) ([]api.Receiver, error) { + csvFile, err := c.Flags().GetString("csv") + if err != nil { + return nil, err + } + + if csvFile != "" { + fields, err := openCSV(csvFile) + if err != nil { + return nil, err + } + return parseReceiversFromCSV(fields) + } + + if len(args) < 2 { + return nil, fmt.Errorf("requires at least 2 arg(s), only received %d", len(args)) + } + + toAddr := args[0] + if _, err := cipher.DecodeBase58Address(toAddr); err != nil { + return nil, err + } + + coins := args[1] + if _, err := droplet.FromString(coins); err != nil { + return nil, err + } + + return []api.Receiver{{ + Address: toAddr, + Coins: coins, + }}, nil +} +func getHoursSelection(c *cobra.Command) (*api.HoursSelection, error) { + hst, err := c.Flags().GetString("hours-selection-type") + if err != nil { + return nil, err + } + + hsm, err := c.Flags().GetString("hours-selection-mode") + if err != nil { + return nil, err + } + + sf, err := c.Flags().GetString("hours-selection-share-factor") + if err != nil { + return nil, err + } + + return &api.HoursSelection{ + Type: hst, + Mode: hsm, + ShareFactor: sf, + }, nil +} + +type walletAddress struct { + Wallet string + Address string +} + +func fromWalletOrAddress(c *cobra.Command, walletFile string) (walletAddress, error) { + address, err := c.Flags().GetString("from-address") + if err != nil { + return walletAddress{}, err + } + + wltAddr := walletAddress{ + Wallet: walletFile, + } + + wltAddr.Address = address + if wltAddr.Address == "" { + return wltAddr, nil + } + + if _, err := cipher.DecodeBase58Address(wltAddr.Address); err != nil { + return walletAddress{}, fmt.Errorf("invalid address: %s", wltAddr.Address) + } + + return wltAddr, nil +} + +func getChangeAddress(wltAddr walletAddress, chgAddr string) (string, error) { + if chgAddr == "" { + switch { + case wltAddr.Address != "": + // use the from address as change address + chgAddr = wltAddr.Address + case wltAddr.Wallet != "": + // get the default wallet's coin base address + wlt, err := wallet.Load(wltAddr.Wallet) + if err != nil { + return "", WalletLoadError{err} + } + es, err := wlt.GetEntries() + if err != nil { + return "", err + } + + if len(es) > 0 { + chgAddr = es[0].Address.String() + } else { + return "", errors.New("no change address was found") + } + default: + return "", errors.New("wallet file, from address and change address are empty") + } + } + + // validate the address + _, err := cipher.DecodeBase58Address(chgAddr) + if err != nil { + return "", fmt.Errorf("invalid change address: %s", chgAddr) + } + + return chgAddr, nil +} + +func getToAddresses(c *cobra.Command, args []string) ([]SendAmount, error) { + csvFile, err := c.Flags().GetString("csv") + if err != nil { + return nil, err + } + many, err := c.Flags().GetString("many") + if err != nil { + return nil, err + } + + if csvFile != "" && many != "" { + return nil, errors.New("-csv and -m cannot be combined") + } + + if many != "" { + return parseSendAmountsFromJSON(many) + } else if csvFile != "" { + fields, err := openCSV(csvFile) + if err != nil { + return nil, err + } + return parseSendAmountsFromCSV(fields) + } + + if len(args) < 2 { + return nil, fmt.Errorf("requires at least 2 arg(s), only received %d", len(args)) + } + + toAddr := args[0] + + if _, err := cipher.DecodeBase58Address(toAddr); err != nil { + return nil, err + } + + amt, err := getAmount(args) + if err != nil { + return nil, err + } + + return []SendAmount{{ + Addr: toAddr, + Coins: amt, + }}, nil +} + +func openCSV(csvFile string) ([][]string, error) { + f, err := os.Open(csvFile) + if err != nil { + return nil, err + } + defer f.Close() + + r := csv.NewReader(f) + return r.ReadAll() +} + +func parseSendAmountsFromCSV(fields [][]string) ([]SendAmount, error) { + var sends []SendAmount + var errs []error + for i, f := range fields { + addr := f[0] + + addr = strings.TrimSpace(addr) + + if _, err := cipher.DecodeBase58Address(addr); err != nil { + err = fmt.Errorf("[row %d] Invalid address %s: %v", i, addr, err) + errs = append(errs, err) + continue + } + + coins, err := droplet.FromString(f[1]) + if err != nil { + err = fmt.Errorf("[row %d] Invalid amount %s: %v", i, f[1], err) + errs = append(errs, err) + continue + } + + sends = append(sends, SendAmount{ + Addr: addr, + Coins: coins, + }) + } + + if len(errs) > 0 { + errMsgs := make([]string, len(errs)) + for i, err := range errs { + errMsgs[i] = err.Error() + } + + errMsg := strings.Join(errMsgs, "\n") + + return nil, errors.New(errMsg) + } + + return sends, nil +} + +func parseReceiversFromCSV(fields [][]string) ([]api.Receiver, error) { + var sends []api.Receiver + var errs []error + for i, f := range fields { + addr := f[0] + + addr = strings.TrimSpace(addr) + + if _, err := cipher.DecodeBase58Address(addr); err != nil { + err = fmt.Errorf("[row %d] Invalid address %s: %v", i, addr, err) + errs = append(errs, err) + continue + } + + _, err := droplet.FromString(f[1]) + if err != nil { + err = fmt.Errorf("[row %d] Invalid amount %s: %v", i, f[1], err) + errs = append(errs, err) + continue + } + + sends = append(sends, api.Receiver{ + Address: addr, + Coins: f[1], + }) + } + + if len(errs) > 0 { + errMsgs := make([]string, len(errs)) + for i, err := range errs { + errMsgs[i] = err.Error() + } + + errMsg := strings.Join(errMsgs, "\n") + + return nil, errors.New(errMsg) + } + + return sends, nil +} + +func parseSendAmountsFromJSON(m string) ([]SendAmount, error) { + sas := []sendAmountJSON{} + + if err := json.NewDecoder(strings.NewReader(m)).Decode(&sas); err != nil { + return nil, fmt.Errorf("invalid -m flag string, err: %v", err) + } + + sendAmts := make([]SendAmount, 0, len(sas)) + + for _, sa := range sas { + amt, err := droplet.FromString(sa.Coins) + if err != nil { + return nil, fmt.Errorf("invalid coins value in -m flag string: %v", err) + } + + sendAmts = append(sendAmts, SendAmount{ + Addr: sa.Addr, + Coins: amt, + }) + } + + return sendAmts, nil +} + +func getAmount(args []string) (uint64, error) { + amount := args[1] + amt, err := droplet.FromString(amount) + if err != nil { + return 0, fmt.Errorf("invalid amount: %v", err) + } + + return amt, nil +} + +// createRawTxnArgs are encapsulated arguments for creating a transaction +type createRawTxnArgs struct { + WalletID string + Address string + ChangeAddress string + SendAmounts []SendAmount + Password PasswordReader +} + +func parseCreateRawTxnArgs(c *cobra.Command, args []string) (*createRawTxnArgs, error) { + wltAddr, err := fromWalletOrAddress(c, args[0]) + if err != nil { + return nil, err + } + + changeAddress, err := c.Flags().GetString("change-address") + if err != nil { + return nil, err + } + chgAddr, err := getChangeAddress(wltAddr, changeAddress) + if err != nil { + return nil, err + } + + toAddrs, err := getToAddresses(c, args[1:]) + if err != nil { + return nil, err + } + if err := validateSendAmounts(toAddrs); err != nil { + return nil, err + } + + password, err := c.Flags().GetString("password") + if err != nil { + return nil, err + } + pr := NewPasswordReader([]byte(password)) + + return &createRawTxnArgs{ + WalletID: wltAddr.Wallet, + Address: wltAddr.Address, + ChangeAddress: chgAddr, + SendAmounts: toAddrs, + Password: pr, + }, nil +} + +func createRawTxnCmdHandler(c *cobra.Command, args []string) (*coin.Transaction, error) { + parsedArgs, err := parseCreateRawTxnArgs(c, args) + if err != nil { + return nil, err + } + + // TODO -- load distribution params from config? Need to allow fiber chains to be used easily + // There's too many distribution parameters to put them in command line, but we could read them from a file. + // We could also have multiple hardcoded known distribution parameters for fiber coins, in the source, + // but this wouldn't work for new fiber coins that hadn't been hardcoded yet. + if parsedArgs.Address == "" { + return CreateRawTxnFromWallet(apiClient, parsedArgs.WalletID, + parsedArgs.ChangeAddress, parsedArgs.SendAmounts, + parsedArgs.Password, params.MainNetDistribution) + } + + return CreateRawTxnFromAddress(apiClient, parsedArgs.Address, + parsedArgs.WalletID, parsedArgs.ChangeAddress, parsedArgs.SendAmounts, + parsedArgs.Password, params.MainNetDistribution) +} + +func validateSendAmounts(toAddrs []SendAmount) error { + for _, arg := range toAddrs { + // validate to address + _, err := cipher.DecodeBase58Address(arg.Addr) + if err != nil { + return ErrAddress + } + + if arg.Coins == 0 { + return errors.New("Cannot send 0 coins") + } + } + + if len(toAddrs) == 0 { + return errors.New("No destination addresses") + } + + return nil +} + +// PUBLIC + +// CreateRawTxnFromWallet creates a transaction from any address or combination of addresses in a wallet +func CreateRawTxnFromWallet(c GetOutputser, walletFile, chgAddr string, toAddrs []SendAmount, pr PasswordReader, distParams params.Distribution) (*coin.Transaction, error) { + // check change address + cAddr, err := cipher.DecodeBase58Address(chgAddr) + if err != nil { + return nil, ErrAddress + } + + // check if the change address is in wallet. + wlt, err := wallet.Load(walletFile) + if err != nil { + return nil, err + } + + if _, err := wlt.GetEntry(cAddr); err != nil { + if err == wallet.ErrEntryNotFound { + return nil, fmt.Errorf("change address %v is not in wallet", chgAddr) + } + return nil, err + } + + switch pr.(type) { + case nil: + if wlt.IsEncrypted() { + return nil, wallet.ErrWalletEncrypted + } + case PasswordFromBytes: + p, err := pr.Password() + if err != nil { + return nil, err + } + + if !wlt.IsEncrypted() && len(p) != 0 { + return nil, wallet.ErrWalletNotEncrypted + } + } + + var password []byte + if wlt.IsEncrypted() { + var err error + password, err = pr.Password() + if err != nil { + return nil, err + } + } + + // get all address in the wallet + totalAddrs, err := wlt.GetAddresses() + if err != nil { + return nil, err + } + + addrStrArray := make([]string, len(totalAddrs)) + for i, a := range totalAddrs { + addrStrArray[i] = a.String() + } + + return CreateRawTxn(c, wlt, addrStrArray, chgAddr, toAddrs, password, distParams) +} + +// CreateRawTxnFromAddress creates a transaction from a specific address in a wallet +func CreateRawTxnFromAddress(c GetOutputser, addr, walletFile, chgAddr string, toAddrs []SendAmount, pr PasswordReader, distParams params.Distribution) (*coin.Transaction, error) { + // check if the address is in the default wallet. + wlt, err := wallet.Load(walletFile) + if err != nil { + return nil, err + } + + srcAddr, err := cipher.DecodeBase58Address(addr) + if err != nil { + return nil, ErrAddress + } + + if _, err := wlt.GetEntry(srcAddr); err != nil { + if err == wallet.ErrEntryNotFound { + return nil, fmt.Errorf("%v address is not in wallet", addr) + } + return nil, err + } + + // validate change address + cAddr, err := cipher.DecodeBase58Address(chgAddr) + if err != nil { + return nil, ErrAddress + } + + if _, err := wlt.GetEntry(cAddr); err != nil { + if err == wallet.ErrEntryNotFound { + return nil, fmt.Errorf("change address %v is not in wallet", chgAddr) + } + return nil, err + } + + switch pr.(type) { + case nil: + if wlt.IsEncrypted() { + return nil, wallet.ErrWalletEncrypted + } + case PasswordFromBytes: + p, err := pr.Password() + if err != nil { + return nil, err + } + + if !wlt.IsEncrypted() && len(p) != 0 { + return nil, wallet.ErrWalletNotEncrypted + } + } + + var password []byte + if wlt.IsEncrypted() { + var err error + password, err = pr.Password() + if err != nil { + return nil, err + } + } + + return CreateRawTxn(c, wlt, []string{addr}, chgAddr, toAddrs, password, distParams) +} + +// GetOutputser implements unspent output querying +type GetOutputser interface { + OutputsForAddresses([]string) (*readable.UnspentOutputsSummary, error) +} + +// CreateRawTxn creates a transaction from a set of addresses contained in a loaded wallet.Wallet +func CreateRawTxn(c GetOutputser, wlt wallet.Wallet, inAddrs []string, chgAddr string, toAddrs []SendAmount, password []byte, distParams params.Distribution) (*coin.Transaction, error) { + if err := validateSendAmounts(toAddrs); err != nil { + return nil, err + } + + // Get unspent outputs of those addresses + outputs, err := c.OutputsForAddresses(inAddrs) + if err != nil { + return nil, err + } + + inUxs, err := outputs.SpendableOutputs().ToUxArray() + if err != nil { + return nil, err + } + + txn, err := createRawTxn(outputs, wlt, chgAddr, toAddrs, password) + if err != nil { + return nil, err + } + + // filter out unspents which are not used in transaction + var inUxsFiltered coin.UxArray + for _, h := range txn.In { + for _, u := range inUxs { + if h == u.Hash() { + inUxsFiltered = append(inUxsFiltered, u) + } + } + } + + head, err := outputs.Head.ToCoinBlockHeader() + if err != nil { + return nil, err + } + + if err := transaction.VerifySingleTxnSoftConstraints(*txn, head.Time, inUxsFiltered, distParams, params.UserVerifyTxn); err != nil { + return nil, err + } + if err := transaction.VerifySingleTxnHardConstraints(*txn, head, inUxsFiltered, transaction.TxnSigned); err != nil { + return nil, err + } + if err := transaction.VerifySingleTxnUserConstraints(*txn); err != nil { + return nil, err + } + + return txn, nil +} + +func createRawTxn(uxouts *readable.UnspentOutputsSummary, wlt wallet.Wallet, chgAddr string, toAddrs []SendAmount, password []byte) (*coin.Transaction, error) { + // Calculate total required coins + var totalCoins uint64 + for _, arg := range toAddrs { + var err error + totalCoins, err = mathutil.AddUint64(totalCoins, arg.Coins) + if err != nil { + return nil, err + } + } + + spendOutputs, err := chooseSpends(uxouts, totalCoins) + if err != nil { + return nil, err + } + + txOuts, err := makeChangeOut(spendOutputs, chgAddr, toAddrs) + if err != nil { + return nil, err + } + + f := func(w wallet.Wallet) (*coin.Transaction, error) { + keys, err := getKeys(w, spendOutputs) + if err != nil { + return nil, err + } + + return NewTransaction(spendOutputs, keys, txOuts) + } + + makeTxn := func() (*coin.Transaction, error) { + return f(wlt) + } + + if wlt.IsEncrypted() { + makeTxn = func() (*coin.Transaction, error) { + var tx *coin.Transaction + if err := wallet.GuardView(wlt, password, func(w wallet.Wallet) error { + var err error + tx, err = f(w) + return err + }); err != nil { + return nil, err + } + + return tx, nil + } + } + + return makeTxn() +} + +func chooseSpends(uxouts *readable.UnspentOutputsSummary, coins uint64) ([]transaction.UxBalance, error) { + // Convert spendable unspent outputs to []transaction.UxBalance + spendableOutputs, err := readable.OutputsToUxBalances(uxouts.SpendableOutputs()) + if err != nil { + return nil, err + } + + // Choose which unspent outputs to spend + // Use the MinimizeUxOuts strategy, since this is most likely used by + // application that may need to send frequently. + // Using fewer UxOuts will leave more available for other transactions, + // instead of waiting for confirmation. + outs, err := transaction.ChooseSpendsMinimizeUxOuts(spendableOutputs, coins, 0) + if err != nil { + // If there is not enough balance in the spendable outputs, + // see if there is enough balance when including incoming outputs + if err == transaction.ErrInsufficientBalance { + expectedOutputs, otherErr := readable.OutputsToUxBalances(uxouts.ExpectedOutputs()) + if otherErr != nil { + return nil, otherErr + } + + if _, otherErr := transaction.ChooseSpendsMinimizeUxOuts(expectedOutputs, coins, 0); otherErr != nil { + return nil, err + } + + return nil, ErrTemporaryInsufficientBalance + } + + return nil, err + } + + return outs, nil +} + +func makeChangeOut(outs []transaction.UxBalance, chgAddr string, toAddrs []SendAmount) ([]coin.TransactionOutput, error) { + var totalInCoins, totalInHours, totalOutCoins uint64 + + for _, o := range outs { + totalInCoins += o.Coins + totalInHours += o.Hours + } + + if totalInHours == 0 { + return nil, fee.ErrTxnNoFee + } + + for _, to := range toAddrs { + totalOutCoins += to.Coins + } + + if totalInCoins < totalOutCoins { + return nil, transaction.ErrInsufficientBalance + } + + outAddrs := []coin.TransactionOutput{} + changeAmount := totalInCoins - totalOutCoins + + haveChange := changeAmount > 0 + nAddrs := uint64(len(toAddrs)) + changeHours, addrHours, totalOutHours := transaction.DistributeSpendHours(totalInHours, nAddrs, haveChange) + + if err := fee.VerifyTransactionFeeForHours(totalOutHours, totalInHours-totalOutHours, params.UserVerifyTxn.BurnFactor); err != nil { + return nil, err + } + + for i, to := range toAddrs { + // check if changeHours > 0, we do not need to cap addrHours when changeHours is zero + // changeHours is zero when there is no change left or all the coinhours were used in fees + // 1) if there is no change then the remaining coinhours are evenly distributed among the destination addresses + // 2) if all the coinhours are burned in fees then all addrHours are zero by default + if changeHours > 0 { + // the coinhours are capped to a maximum of incoming coins for the address + // if incoming coins < 1 then the cap is set to 1 coinhour + + spendCoinsAmt := to.Coins / 1e6 + if spendCoinsAmt == 0 { + spendCoinsAmt = 1 + } + + // allow addrHours to be less than the incoming coins of the address but not more + if addrHours[i] > spendCoinsAmt { + // cap the addrHours, move the difference to changeHours + changeHours += addrHours[i] - spendCoinsAmt + addrHours[i] = spendCoinsAmt + } + } + + outAddrs = append(outAddrs, mustMakeUtxoOutput(to.Addr, to.Coins, addrHours[i])) + } + + if haveChange { + outAddrs = append(outAddrs, mustMakeUtxoOutput(chgAddr, changeAmount, changeHours)) + } + + return outAddrs, nil +} + +func mustMakeUtxoOutput(addr string, coins, hours uint64) coin.TransactionOutput { + uo := coin.TransactionOutput{} + uo.Address = cipher.MustDecodeBase58Address(addr) + uo.Coins = coins + uo.Hours = hours + return uo +} + +func getKeys(wlt wallet.Wallet, outs []transaction.UxBalance) ([]cipher.SecKey, error) { + keys := make([]cipher.SecKey, len(outs)) + for i, o := range outs { + entry, err := wlt.GetEntry(o.Address) + if err != nil { + if err == wallet.ErrEntryNotFound { + return nil, fmt.Errorf("%v is not in wallet", o.Address.String()) + } + return nil, err + } + keys[i] = entry.Secret + } + return keys, nil +} + +// NewTransaction creates a transaction. The transaction should be validated against hard and soft constraints before transmission. +func NewTransaction(utxos []transaction.UxBalance, keys []cipher.SecKey, outs []coin.TransactionOutput) (*coin.Transaction, error) { + txn := coin.Transaction{} + for _, u := range utxos { + if err := txn.PushInput(u.Hash); err != nil { + return nil, err + } + } + + for _, o := range outs { + if err := txn.PushOutput(o.Address, o.Coins, o.Hours); err != nil { + return nil, err + } + } + + txn.SignInputs(keys) + + err := txn.UpdateHeader() + if err != nil { + return nil, err + } + + return &txn, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/decrypt_wallet.go b/vendor/github.com/skycoin/skycoin/src/cli/decrypt_wallet.go new file mode 100644 index 000000000..b3efa1d95 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/decrypt_wallet.go @@ -0,0 +1,59 @@ +package cli + +import ( + "github.com/skycoin/skycoin/src/wallet" + "github.com/spf13/cobra" +) + +func decryptWalletCmd() *cobra.Command { + decryptWalletCmd := &cobra.Command{ + Args: cobra.ExactArgs(1), + Use: "decryptWallet [wallet]", + Short: "Decrypt a wallet", + Long: `Decrypt an encrypted wallet. The decrypted wallet will be written + on the filesystem in place of the encrypted wallet. + + Use caution when using the "-p" command. If you have command history enabled + your wallet encryption password can be recovered from the history log. If you + do not include the "-p" option you will be prompted to enter your password + after you enter your command.`, + SilenceUsage: true, + RunE: func(c *cobra.Command, args []string) error { + w := args[0] + pr := NewPasswordReader([]byte(c.Flag("password").Value.String())) + + return decryptWallet(w, pr) + }, + } + + decryptWalletCmd.Flags().StringP("password", "p", "", "wallet password") + + return decryptWalletCmd +} + +func decryptWallet(id string, pr PasswordReader) error { + wlt, err := apiClient.Wallet(id) + if err != nil { + return err + } + + if !wlt.Meta.Encrypted { + return wallet.ErrWalletNotEncrypted + } + + if pr == nil { + return wallet.ErrMissingPassword + } + + pwd, err := pr.Password() + if err != nil { + return err + } + + wlt, err = apiClient.DecryptWallet(id, string(pwd)) + if err != nil { + return err + } + + return printJSON(wlt) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/distribute_genesis.go b/vendor/github.com/skycoin/skycoin/src/cli/distribute_genesis.go new file mode 100644 index 000000000..dcf6b5fa5 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/distribute_genesis.go @@ -0,0 +1,147 @@ +package cli + +import ( + "errors" + "fmt" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/util/droplet" +) + +func distributeGenesisCmd() *cobra.Command { + cmd := &cobra.Command{ + Args: cobra.ExactArgs(1), + Use: "distributeGenesis [genesis address secret key]", + Short: "Distributes the genesis block coins into the configured distribution addresses", + Long: `Distributes the genesis block coins into the configured distribution addresses. + + The genesis block contains a single transaction with a single output that creates all coins + in existence. Skycoin expects the second block to be a "distribution" transaction, where + the genesis coins are split into N distribution addresses, each holding an equal amount. + + RPC_ADDR must be set, to communicate with a running Skycoin node.`, + RunE: distributeGenesisHandler, + } + + cmd.Flags().StringP("genesis-seckey", "s", "", "Genesis address secret key") + + return cmd +} + +func distributeGenesisHandler(c *cobra.Command, args []string) error { + sk, err := cipher.SecKeyFromHex(args[0]) + if err != nil { + return errors.New("invalid genesis secret key") + } + + // Obtain the genesis uxid from the node + uxID, err := getGenesisUxID() + if err != nil { + return err + } + + txn, err := createDistributionTransaction(uxID, sk, params.MainNetDistribution) + if err != nil { + return err + } + + health, err := apiClient.Health() + if err != nil { + return err + } + + // If the node is a block publisher node, we can skip the broadcast and + // avoid any broadcast related errors. Otherwise, InjectTransaction would + // require that the block publisher node be connected to another peer. + // Otherwise, inject the transaction normally, which requires the node + // to be connected to peers, or else an error is returned. + // This allows the user to use this command against a block publisher node + // during setup, or against a local node, after setting up a block publisher + // node elsewhere. + if health.BlockPublisher { + if _, err := apiClient.InjectTransactionNoBroadcast(txn); err != nil { + return err + } + } else { + if _, err := apiClient.InjectTransaction(txn); err != nil { + return err + } + } + + return nil +} + +func getGenesisUxID() (string, error) { + // Check that the only block is the genesis block + bm, err := apiClient.BlockchainMetadata() + if err != nil { + return "", err + } + if bm.Head.BkSeq != 0 { + return "", errors.New("genesis output has already been distributed") + } + + b, err := apiClient.BlockBySeq(0) + if err != nil { + return "", err + } + + // Sanity checks + if len(b.Body.Transactions) != 1 { + return "", errors.New("genesis block has multiple transactions") + } + if len(b.Body.Transactions[0].Out) != 1 { + return "", errors.New("genesis block has multiple outputs") + } + + return b.Body.Transactions[0].Out[0].Hash, nil +} + +func createDistributionTransaction(uxID string, genesisSecKey cipher.SecKey, p params.Distribution) (*coin.Transaction, error) { + // Sanity check + addrs := p.AddressesDecoded() + if p.MaxCoinSupply%uint64(len(addrs)) != 0 { + return nil, errors.New("the number of distribution addresses must divide MaxCoinSupply exactly") + } + + var txn coin.Transaction + + output, err := cipher.SHA256FromHex(uxID) + if err != nil { + return nil, fmt.Errorf("invalid uxid") + } + + if err := txn.PushInput(output); err != nil { + return nil, err + } + + coins := (p.MaxCoinSupply / uint64(len(addrs))) * droplet.Multiplier + hours := uint64(1000) + + for _, addr := range addrs { + if err := txn.PushOutput(addr, coins, hours); err != nil { + return nil, err + } + } + + seckeys := make([]cipher.SecKey, 1) + seckey := genesisSecKey.Hex() + seckeys[0] = cipher.MustSecKeyFromHex(seckey) + txn.SignInputs([]cipher.SecKey{ + genesisSecKey, + }) + + if err := txn.UpdateHeader(); err != nil { + return nil, err + } + + if err := txn.Verify(); err != nil { + return nil, err + } + + return &txn, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/encrypt_wallet.go b/vendor/github.com/skycoin/skycoin/src/cli/encrypt_wallet.go new file mode 100644 index 000000000..b2b9a36dc --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/encrypt_wallet.go @@ -0,0 +1,63 @@ +package cli + +import ( + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/wallet" +) + +func encryptWalletCmd() *cobra.Command { + encryptWalletCmd := &cobra.Command{ + Args: cobra.ExactArgs(1), + Short: "Encrypt wallet", + Use: "encryptWallet [wallet]", + Long: `Encrypt a decrypted wallet. The encrypted wallet file + will be written on the filesystem in place of the decrypted wallet. + + Use caution when using the "-p" command. If you have command history enabled + your wallet encryption password can be recovered from the history log. If you + do not include the "-p" option you will be prompted to enter your password + after you enter your command.`, + SilenceUsage: true, + RunE: func(c *cobra.Command, args []string) error { + w := args[0] + pr := NewPasswordReader([]byte(c.Flag("password").Value.String())) + + return encryptWallet(w, pr) + }, + } + + encryptWalletCmd.Flags().StringP("password", "p", "", "wallet password") + return encryptWalletCmd +} + +func encryptWallet(id string, pr PasswordReader) error { + wlt, err := apiClient.Wallet(id) + if err != nil { + return err + } + + if wlt.Meta.Encrypted { + return wallet.ErrWalletEncrypted + } + + if wlt.Meta.Temp { + return wallet.ErrEncryptTempWallet + } + + if pr == nil { + return wallet.ErrMissingPassword + } + + pwd, err := pr.Password() + if err != nil { + return err + } + + wlt, err = apiClient.EncryptWallet(id, string(pwd)) + if err != nil { + return err + } + + return printJSON(wlt) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/generate_addrs.go b/vendor/github.com/skycoin/skycoin/src/cli/generate_addrs.go new file mode 100644 index 000000000..c76da748e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/generate_addrs.go @@ -0,0 +1,208 @@ +package cli + +import ( + "errors" + "fmt" + "path/filepath" + "strings" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/wallet" +) + +func walletAddAddressesCmd() *cobra.Command { + walletAddAddressesCmd := &cobra.Command{ + Args: cobra.ExactArgs(1), + Use: "walletAddAddresses [wallet]", + Short: "Generate additional addresses for a deterministic, bip44 or xpub wallet", + Long: `Generate additional addresses for a deterministic, bip44 or xpub wallet. + Addresses are generated according to the wallet type's generation mechanism. + + Warning: if you generate long (over 20) sequences of empty addresses and use + a later address this can cause the wallet history scanner to miss your addresses, + if you load the wallet from seed elsewhere. In that case, you'll have to manually + generate addresses to cover the gap of unused addresses in the sequence. + + BIP44 wallets generate their addresses on the external (0'/0) chain. + + Use caution when using the "-p" command. If you have command + history enabled your wallet encryption password can be recovered from the + history log. If you do not include the "-p" option you will be prompted to + enter your password after you enter your command.`, + RunE: generateAddrs, + } + + walletAddAddressesCmd.Flags().Uint64P("num", "n", 1, "Number of addresses to generate") + walletAddAddressesCmd.Flags().StringP("password", "p", "", "wallet password") + walletAddAddressesCmd.Flags().BoolP("json", "j", false, "Returns the results in JSON format") + walletAddAddressesCmd.Flags().StringP("private-keys", "", "", "wallet private keys for collection wallet") + + return walletAddAddressesCmd +} + +func generateAddrs(c *cobra.Command, args []string) error { + // get number of address that are need to be generated. + var opts []wallet.Option + jsonFmt, err := c.Flags().GetBool("json") + if err != nil { + return err + } + + wltID := args[0] + + // get the wallet to check if it is encrypted + wlt, err := apiClient.Wallet(wltID) + if err != nil { + return err + } + + switch wlt.Meta.Type { + case wallet.WalletTypeCollection: + s, err := c.Flags().GetString("private-keys") + if err != nil { + return err + } + privateKeys, err := wallet.ParsePrivateKeys(s) + if err != nil { + return err + } + opts = append(opts, wallet.OptionCollectionPrivateKeys(privateKeys)) + default: + num, err := c.Flags().GetUint64("num") + if err != nil { + return err + } + + if num == 0 { + return errors.New("-n must > 0") + } + + opts = append(opts, wallet.OptionGenerateN(num)) + } + + var pwd []byte + pr := NewPasswordReader([]byte(c.Flag("password").Value.String())) + if wlt.Meta.Encrypted && wlt.Meta.Type != wallet.WalletTypeBip44 { + pwd, err = pr.Password() + if err != nil { + return err + } + } + + addrs, err := apiClient.NewWalletAddress(wltID, string(pwd), opts...) + if err != nil { + return err + } + + if jsonFmt { + s, err := FormatAddressesAsJSON(addrs) + if err != nil { + return err + } + fmt.Println(s) + } else { + fmt.Println(FormatAddressesAsJoinedArray(addrs)) + } + + return nil +} + +// GenerateAddressesInFile generates addresses in given wallet file +func GenerateAddressesInFile(walletFile string, num uint64, pr PasswordReader) ([]cipher.Addresser, error) { + wlt, err := wallet.Load(walletFile) + if err != nil { + return nil, WalletLoadError{err} + } + + switch pr.(type) { + case nil: + if wlt.IsEncrypted() { + return nil, wallet.ErrWalletEncrypted + } + case PasswordFromBytes: + p, err := pr.Password() + if err != nil { + return nil, err + } + + if !wlt.IsEncrypted() && len(p) != 0 { + return nil, wallet.ErrWalletNotEncrypted + } + } + + genAddrsInWallet := func(w wallet.Wallet, n uint64) ([]cipher.Addresser, error) { + return w.GenerateAddresses(wallet.OptionGenerateN(n)) + } + + if wlt.IsEncrypted() { + genAddrsInWallet = func(w wallet.Wallet, n uint64) ([]cipher.Addresser, error) { + password, err := pr.Password() + if err != nil { + return nil, err + } + + var addrs []cipher.Addresser + if err := wallet.GuardUpdate(w, password, func(wlt wallet.Wallet) error { + var err error + addrs, err = wlt.GenerateAddresses(wallet.OptionGenerateN(n)) + return err + }); err != nil { + return nil, err + } + + return addrs, nil + } + } + + addrs, err := genAddrsInWallet(wlt, num) + if err != nil { + return nil, err + } + + dir, err := filepath.Abs(filepath.Dir(walletFile)) + if err != nil { + return nil, err + } + + if err := wallet.Save(wlt, dir); err != nil { + return nil, WalletSaveError{err} + } + + return addrs, nil +} + +// FormatAddressesAsJSON converts []cipher.Address to strings and formats the array into a standard JSON object wrapper +func FormatAddressesAsJSON(addrs []string) (string, error) { + d, err := formatJSON(struct { + Addresses []string `json:"addresses"` + }{ + Addresses: addrs, + }) + + if err != nil { + return "", err + } + + return string(d), nil +} + +// FormatAddressesAsJoinedArray converts []cipher.Address to strings and concatenates them with a comma +func FormatAddressesAsJoinedArray(addrs []string) string { + return strings.Join(addrs, ",") +} + +// AddressesToStrings converts []cipher.Address to []string +func AddressesToStrings(addrs []cipher.Addresser) []string { + if addrs == nil { + return nil + } + + addrsStr := make([]string, len(addrs)) + for i, a := range addrs { + addrsStr[i] = a.String() + } + + return addrsStr +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/generate_wallet.go b/vendor/github.com/skycoin/skycoin/src/cli/generate_wallet.go new file mode 100644 index 000000000..ed2563b27 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/generate_wallet.go @@ -0,0 +1,523 @@ +package cli + +import ( + "encoding/hex" + "errors" + "fmt" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/api" + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip39" + "github.com/skycoin/skycoin/src/cipher/bip44" + secp256k1 "github.com/skycoin/skycoin/src/cipher/secp256k1-go" + "github.com/skycoin/skycoin/src/wallet" +) + +const ( + // AlphaNumericSeedLength is the size of generated alphanumeric seeds, in bytes + AlphaNumericSeedLength = 64 +) + +func walletCreateCmd() *cobra.Command { + walletCreateCmd := &cobra.Command{ + Use: "walletCreate [label]", + Short: "Create a new wallet", + Long: `Create a new wallet. + + Use caution when using the "-p" command. If you have command + history enabled your wallet encryption password can be recovered + from the history log. If you do not include the "-p" option you will + be prompted to enter your password after you enter your command. + + All results are returned in JSON format in addition to being written to the specified filename.`, + SilenceUsage: true, + RunE: generateWalletHandler, + } + + walletCreateCmd.Flags().StringP("label", "l", "", "Wallet label used to identify your wallet") + walletCreateCmd.Flags().BoolP("random", "r", false, "A random alpha numeric seed will be generated.") + walletCreateCmd.Flags().BoolP("mnemonic", "m", false, "A mnemonic seed consisting of 12 dictionary words will be generated") + walletCreateCmd.Flags().Uint64P("wordcount", "w", 12, "Number of seed words to use for mnemonic. Must be 12, 15, 18, 21 or 24") + walletCreateCmd.Flags().StringP("seed", "s", "", "Your seed") + walletCreateCmd.Flags().StringP("seed-passphrase", "", "", "Seed passphrase (bip44 wallets only)") + walletCreateCmd.Flags().Uint32P("bip44-coin", "", uint32(bip44.CoinTypeSkycoin), "BIP44 coin type") + walletCreateCmd.Flags().Uint64P("num", "n", 1, `Number of addresses to generate.`) + walletCreateCmd.Flags().Uint64P("scan", "", 1, `Number of addresses to scan ahead for balances.`) + walletCreateCmd.Flags().StringP("type", "t", wallet.WalletTypeDeterministic, "Wallet type. Types are \"collection\", \"deterministic\", \"bip44\" or \"xpub\"") + walletCreateCmd.Flags().BoolP("encrypt", "e", true, "Create encrypted wallet.") + walletCreateCmd.Flags().StringP("password", "p", "", "Wallet password") + walletCreateCmd.Flags().StringP("xpub", "", "", "xpub key for \"xpub\" type wallets") + walletCreateCmd.Flags().StringP("private-keys", "", "", "Collection private keys") + + return walletCreateCmd +} + +func generateWalletHandler(c *cobra.Command, _ []string) error { + label, err := c.Flags().GetString("label") + if err != nil { + return err + } + + if label == "" { + return errors.New("label must not be empty") + } + + scan, err := c.Flags().GetUint64("scan") + if err != nil { + return err + } + if scan == 0 { + return errors.New("scan must be > 0") + } + + // get number of address that are need to be generated + num, err := c.Flags().GetUint64("num") + if err != nil { + return err + } + if num == 0 { + return errors.New("-n must > 0") + } + + // set scan number to 1 when generate num is greater than scan number to avoid + // unnecessary addresses scanning. + if num >= scan { + scan = 1 + } + + s := c.Flag("seed").Value.String() + random, err := c.Flags().GetBool("random") + if err != nil { + return err + } + + mnemonic, err := c.Flags().GetBool("mnemonic") + if err != nil { + return err + } + + wordCount, err := c.Flags().GetUint64("wordcount") + if err != nil { + return err + } + + if !mnemonic && c.Flags().Changed("wordcount") { + return errors.New("-m must also be set when using -wordcount") + } + + encrypt, err := c.Flags().GetBool("encrypt") + if err != nil { + return err + } + + walletType, err := c.Flags().GetString("type") + if err != nil { + return err + } + if !wallet.IsValidWalletType(walletType) { + return wallet.ErrInvalidWalletType + } + + var bip44Coin *bip44.CoinType + if c.Flags().Changed("bip44-coin") { + bip44CoinInt, err := c.Flags().GetUint32("bip44-coin") + if err != nil { + return err + } + + c := bip44.CoinType(bip44CoinInt) + bip44Coin = &c + } + + xpub, err := c.Flags().GetString("xpub") + if err != nil { + return err + } + + var ( + sd string + collectionPrivateKeys string + ) + switch walletType { + case wallet.WalletTypeBip44: + var err error + sd, err = parseBip44WalletSeedOptions(s, random, mnemonic, wordCount) + if err != nil { + return err + } + + case wallet.WalletTypeDeterministic: + var err error + sd, err = parseDeterministicWalletSeedOptions(s, random, mnemonic, wordCount) + if err != nil { + return err + } + + case wallet.WalletTypeCollection: + if s != "" || random || mnemonic { + return fmt.Errorf("%q type wallets do not use seeds", walletType) + } + if c.Flags().Changed("num") { + return fmt.Errorf("%q type wallets do not support address generation", walletType) + } + num = 0 + + // try to get private keys + var err error + collectionPrivateKeys, err = c.Flags().GetString("private-keys") + if err != nil { + return err + } + _, err = wallet.ParsePrivateKeys(collectionPrivateKeys) + if err != nil { + return wallet.ErrInvalidPrivateKeys + } + + case wallet.WalletTypeXPub: + // xpub wallet does not support encryption + encrypt = false + if s != "" || random || mnemonic { + return fmt.Errorf("%q type wallets do not use seeds", walletType) + } + + default: + return fmt.Errorf("unhandled wallet type %q", walletType) + } + + seedPassphrase, err := c.Flags().GetString("seed-passphrase") + if err != nil { + return err + } + + var password []byte + if encrypt { + pr := NewPasswordReader([]byte(c.Flag("password").Value.String())) + var err error + password, err = pr.Password() + if err != nil { + return err + } + } + + opts := api.CreateWalletOptions{ + Label: label, + Seed: sd, + SeedPassphrase: seedPassphrase, + Encrypt: encrypt, + Password: string(password), + Type: walletType, + Bip44Coin: bip44Coin, + ScanN: scan, + XPub: xpub, + CollectionPrivateKeys: collectionPrivateKeys, + } + + wlt, err := apiClient.CreateWallet(opts) + if err != nil { + return err + } + + id := wlt.Meta.Filename + + // check the address num + addrN := len(wlt.Entries) + if walletType == wallet.WalletTypeBip44 { + for _, e := range wlt.Entries { + if *e.Change == 1 { + addrN-- + } + } + } + + n := num - uint64(addrN) + if n > 0 { + _, err := apiClient.NewWalletAddress(id, string(password), wallet.OptionGenerateN(n)) + if err != nil { + return err + } + } + + wlt, err = apiClient.Wallet(id) + if err != nil { + return err + } + + return printJSON(wlt) +} + +func walletCreateTempCmd() *cobra.Command { + walletCreateTempCmd := &cobra.Command{ + Use: "walletCreateTemp", + Short: "Create a new temporary wallet", + Long: `Create a new temporary wallet. + + All results are returned in JSON format in addition to being written to the specified filename.`, + SilenceUsage: true, + RunE: generateWalletTempHandler, + } + + walletCreateTempCmd.Flags().StringP("label", "l", "", "Wallet label used to identify your wallet") + walletCreateTempCmd.Flags().BoolP("random", "r", false, "A random alpha numeric seed will be generated.") + walletCreateTempCmd.Flags().BoolP("mnemonic", "m", false, "A mnemonic seed consisting of 12 dictionary words will be generated") + walletCreateTempCmd.Flags().Uint64P("wordcount", "w", 12, "Number of seed words to use for mnemonic. Must be 12, 15, 18, 21 or 24") + walletCreateTempCmd.Flags().StringP("seed", "s", "", "Your seed") + walletCreateTempCmd.Flags().Uint32P("bip44-coin", "", uint32(bip44.CoinTypeSkycoin), "BIP44 coin type") + walletCreateTempCmd.Flags().Uint64P("num", "n", 1, `Number of addresses to generate.`) + walletCreateTempCmd.Flags().Uint64P("scan", "", 1, `Number of addresses to scan ahead for balances.`) + walletCreateTempCmd.Flags().StringP("type", "t", wallet.WalletTypeDeterministic, "Wallet type. Types are \"collection\", \"deterministic\", \"bip44\" or \"xpub\"") + walletCreateTempCmd.Flags().StringP("xpub", "", "", "xpub key for \"xpub\" type wallets") + walletCreateTempCmd.Flags().StringP("private-keys", "", "", "Collection private keys") + + return walletCreateTempCmd +} + +func generateWalletTempHandler(c *cobra.Command, _ []string) error { + label, err := c.Flags().GetString("label") + if err != nil { + return err + } + + if label == "" { + return errors.New("label must not be empty") + } + + scan, err := c.Flags().GetUint64("scan") + if err != nil { + return err + } + if scan == 0 { + return errors.New("scan must be > 0") + } + + // get number of address that are need to be generated + num, err := c.Flags().GetUint64("num") + if err != nil { + return err + } + if num == 0 { + return errors.New("-n must > 0") + } + + // set scan number as 1 when generate num is greater than scan number to avoid + // unnecessary addresses scanning for API. + if num >= scan { + scan = 1 + } + + s := c.Flag("seed").Value.String() + random, err := c.Flags().GetBool("random") + if err != nil { + return err + } + + mnemonic, err := c.Flags().GetBool("mnemonic") + if err != nil { + return err + } + + wordCount, err := c.Flags().GetUint64("wordcount") + if err != nil { + return err + } + + if !mnemonic && c.Flags().Changed("wordcount") { + return errors.New("-m must also be set when using -wordcount") + } + + walletType, err := c.Flags().GetString("type") + if err != nil { + return err + } + if !wallet.IsValidWalletType(walletType) { + return wallet.ErrInvalidWalletType + } + + var bip44Coin *bip44.CoinType + if c.Flags().Changed("bip44-coin") { + bip44CoinInt, err := c.Flags().GetUint32("bip44-coin") + if err != nil { + return err + } + + c := bip44.CoinType(bip44CoinInt) + bip44Coin = &c + } + + xpub, err := c.Flags().GetString("xpub") + if err != nil { + return err + } + + var ( + sd string + collectionPrivateKeys string + ) + + switch walletType { + case wallet.WalletTypeBip44: + var err error + sd, err = parseBip44WalletSeedOptions(s, random, mnemonic, wordCount) + if err != nil { + return err + } + + case wallet.WalletTypeDeterministic: + var err error + sd, err = parseDeterministicWalletSeedOptions(s, random, mnemonic, wordCount) + if err != nil { + return err + } + + case wallet.WalletTypeCollection: + if s != "" || random || mnemonic { + return fmt.Errorf("%q type wallets do not use seeds", walletType) + } + if c.Flags().Changed("num") { + return fmt.Errorf("%q type wallets do not support address generation", walletType) + } + num = 0 + + var err error + collectionPrivateKeys, err = c.Flags().GetString("private-keys") + if err != nil { + return err + } + case wallet.WalletTypeXPub: + if s != "" || random || mnemonic { + return fmt.Errorf("%q type wallets do not use seeds", walletType) + } + + default: + return fmt.Errorf("unhandled wallet type %q", walletType) + } + + opts := api.CreateWalletOptions{ + Label: label, + Seed: sd, + Type: walletType, + Bip44Coin: bip44Coin, + ScanN: scan, + XPub: xpub, + CollectionPrivateKeys: collectionPrivateKeys, + } + + wlt, err := apiClient.CreateWalletTemp(opts) + if err != nil { + return err + } + + id := wlt.Meta.Filename + + // check the address num + addrN := len(wlt.Entries) + if walletType == wallet.WalletTypeBip44 { + for _, e := range wlt.Entries { + if *e.Change == 1 { + addrN-- + } + } + } + + n := num - uint64(addrN) + if n > 0 { + _, err := apiClient.NewWalletAddress(id, "", wallet.OptionGenerateN(n)) + if err != nil { + return err + } + } + + wlt, err = apiClient.Wallet(id) + if err != nil { + return err + } + + return printJSON(wlt) +} + +// wordCountToEntropy maps a mnemonic word count to its entropy size in bits +func wordCountToEntropy(wc uint64) (int, error) { + switch wc { + case 12: + return 128, nil + case 15: + return 160, nil + case 18: + return 192, nil + case 21: + return 224, nil + case 24: + return 256, nil + default: + return 0, errors.New("word count must be 12, 15, 18, 21 or 24") + } +} + +func newMnemomic(wc uint64) (string, error) { + entropySize, err := wordCountToEntropy(wc) + if err != nil { + return "", err + } + e, err := bip39.NewEntropy(entropySize) + if err != nil { + return "", err + } + return bip39.NewMnemonic(e) +} + +func parseBip44WalletSeedOptions(s string, r, m bool, wc uint64) (string, error) { + if s != "" && (r || m) { + return "", errors.New("-r and -m can't be used with -s") + } + + if r { + return "", errors.New("-r can't be used for bip44 wallets") + } + + if m || s == "" { + var err error + s, err = newMnemomic(wc) + if err != nil { + return "", err + } + } + + if err := bip39.ValidateMnemonic(s); err != nil { + return "", fmt.Errorf("seed must be a valid bip39 mnemonic: %v", err) + } + + return s, nil +} + +func parseDeterministicWalletSeedOptions(s string, r, m bool, wc uint64) (string, error) { + if s != "" { + // 111, 101, 110 + if r || m { + return "", errors.New("seed already specified, must not use -r or -m again") + } + // 100 + return s, nil + } + + // 011 + if r && m { + return "", errors.New("for -r and -m, only one option can be used") + } + + // 010 + if r { + return MakeAlphanumericSeed(), nil + } + + // 001, 000 + return newMnemomic(wc) +} + +// PUBLIC + +// MakeAlphanumericSeed creates a random seed with AlphaNumericSeedLength bytes and hex encodes it +func MakeAlphanumericSeed() string { + seedRaw := cipher.SumSHA256(secp256k1.RandByte(AlphaNumericSeedLength)) + return hex.EncodeToString(seedRaw[:]) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/last_blocks.go b/vendor/github.com/skycoin/skycoin/src/cli/last_blocks.go new file mode 100644 index 000000000..947d8f826 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/last_blocks.go @@ -0,0 +1,37 @@ +package cli + +import ( + "fmt" + "strconv" + + "github.com/spf13/cobra" +) + +func lastBlocksCmd() *cobra.Command { + return &cobra.Command{ + Short: "Displays the content of the most recently N generated blocks", + Use: "lastBlocks [numberOfBlocks]", + Args: cobra.MaximumNArgs(1), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: getLastBlocks, + } +} + +func getLastBlocks(_ *cobra.Command, args []string) error { + n := uint64(1) + if len(args) > 0 { + var err error + n, err = strconv.ParseUint(args[0], 10, 64) + if err != nil { + return fmt.Errorf("invalid block number, %s", err) + } + } + + blocks, err := apiClient.LastBlocks(n) + if err != nil { + return err + } + + return printJSON(blocks) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/list_addrs.go b/vendor/github.com/skycoin/skycoin/src/cli/list_addrs.go new file mode 100644 index 000000000..a53cbebe3 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/list_addrs.go @@ -0,0 +1,47 @@ +package cli + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +func listAddressesCmd() *cobra.Command { + return &cobra.Command{ + Short: "Lists all addresses in a given wallet", + Use: "listAddresses [wallet]", + Args: cobra.ExactArgs(1), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: listAddresses, + } +} + +func listAddresses(_ *cobra.Command, args []string) error { + addrs, err := getWalletAddresses(args[0]) + if err != nil { + return err + } + + s, err := FormatAddressesAsJSON(addrs) + if err != nil { + return err + } + + fmt.Println(s) + + return nil +} + +func getWalletAddresses(id string) ([]string, error) { + wlt, err := apiClient.Wallet(id) + if err != nil { + return nil, err + } + + var addrs []string + for _, e := range wlt.Entries { + addrs = append(addrs, e.Address) + } + return addrs, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/list_wallets.go b/vendor/github.com/skycoin/skycoin/src/cli/list_wallets.go new file mode 100644 index 000000000..03f51419a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/list_wallets.go @@ -0,0 +1,56 @@ +package cli + +import ( + "github.com/spf13/cobra" +) + +// WalletEntry represents an entry in a wallet file +type WalletEntry struct { + Name string `json:"name"` + Label string `json:"label"` + AddressNum int `json:"address_num"` +} + +func listWalletsCmd() *cobra.Command { + return &cobra.Command{ + Short: "Lists all wallets stored in the wallet directory", + Use: "listWallets", + Long: `Lists all wallets stored in the wallet directory. + + The [wallet dir] argument is optional. If not provided, defaults to $DATA_DIR/wallets`, + DisableFlagsInUseLine: true, + SilenceUsage: true, + Args: cobra.MaximumNArgs(0), + RunE: listWallets, + } +} + +func listWallets(_ *cobra.Command, _ []string) error { + fdn, err := apiClient.WalletFolderName() + if err != nil { + return err + } + + var wlts = struct { + Directory string `json:"directory"` + Wallets []WalletEntry `json:"wallets"` + }{ + Directory: fdn.Address, + Wallets: []WalletEntry{}, + } + + wltsRsp, err := apiClient.Wallets() + if err != nil { + return err + } + + for _, w := range wltsRsp { + wlts.Wallets = append(wlts.Wallets, WalletEntry{ + Name: w.Meta.Filename, + Label: w.Meta.Label, + AddressNum: len(w.Entries), + }) + } + + return printJSON(wlts) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/outputs.go b/vendor/github.com/skycoin/skycoin/src/cli/outputs.go new file mode 100644 index 000000000..445fddafa --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/outputs.go @@ -0,0 +1,76 @@ +package cli + +import ( + "fmt" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/readable" +) + +func walletOutputsCmd() *cobra.Command { + return &cobra.Command{ + Short: "Display outputs of specific wallet", + Use: "walletOutputs [wallet]", + DisableFlagsInUseLine: true, + SilenceUsage: true, + Args: cobra.ExactArgs(1), + RunE: getWalletOutputsCmd, + } +} + +func addressOutputsCmd() *cobra.Command { + return &cobra.Command{ + Short: "Display outputs of specific addresses", + Use: "addressOutputs [address list]", + Long: `Display outputs of specific addresses, join multiple addresses with space, + example: addressOutputs $addr1 $addr2 $addr3`, + Args: cobra.MinimumNArgs(1), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: getAddressOutputsCmd, + } +} + +// OutputsResult the output json format +type OutputsResult struct { + Outputs readable.UnspentOutputsSummary `json:"outputs"` +} + +func getWalletOutputsCmd(_ *cobra.Command, args []string) error { + addrs, err := getWalletAddresses(args[0]) + if err != nil { + return err + } + + outputs, err := apiClient.OutputsForAddresses(addrs) + if err != nil { + return err + } + + return printJSON(OutputsResult{ + Outputs: *outputs, + }) +} + +func getAddressOutputsCmd(_ *cobra.Command, args []string) error { + addrs := make([]string, len(args)) + + var err error + for i := 0; i < len(args); i++ { + addrs[i] = args[i] + if _, err = cipher.DecodeBase58Address(addrs[i]); err != nil { + return fmt.Errorf("invalid address: %v, err: %v", addrs[i], err) + } + } + + outputs, err := apiClient.OutputsForAddresses(addrs) + if err != nil { + return err + } + + return printJSON(OutputsResult{ + Outputs: *outputs, + }) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/richlist.go b/vendor/github.com/skycoin/skycoin/src/cli/richlist.go new file mode 100644 index 000000000..71ffeb73f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/richlist.go @@ -0,0 +1,58 @@ +package cli + +import ( + "fmt" + "strconv" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/api" +) + +func richlistCmd() *cobra.Command { + return &cobra.Command{ + Short: "Get skycoin richlist", + Long: "Returns top N address (default 20) balances (based on unspent outputs). Optionally include distribution addresses (exluded by default).", + Use: "richlist [top N addresses (20 default)] [include distribution addresses (false default)]", + Args: cobra.MaximumNArgs(2), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: getRichlist, + } +} + +func getRichlist(_ *cobra.Command, args []string) error { + // default values + num := "20" + dist := "false" + + switch len(args) { + case 1: + num = args[0] + case 2: + num = args[0] + dist = args[1] + } + + n, err := strconv.Atoi(num) + if err != nil { + return fmt.Errorf("invalid number of addresses, %s", err) + } + + d, err := strconv.ParseBool(dist) + if err != nil { + return fmt.Errorf("invalid (bool) flag for include distribution addresses, %s", err) + } + + params := &api.RichlistParams{ + N: n, + IncludeDistribution: d, + } + + richlist, err := apiClient.Richlist(params) + if err != nil { + return err + } + + return printJSON(richlist) +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/scan_addrs.go b/vendor/github.com/skycoin/skycoin/src/cli/scan_addrs.go new file mode 100644 index 000000000..82c1899b8 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/scan_addrs.go @@ -0,0 +1,109 @@ +package cli + +import ( + "errors" + "fmt" + "os" + "path/filepath" + + "github.com/skycoin/skycoin/src/wallet" + "github.com/spf13/cobra" +) + +func walletScanAddressesCmd() *cobra.Command { + walletScanAddressesCmd := &cobra.Command{ + Args: cobra.ExactArgs(1), + Use: "walletScanAddresses [wallet]", + Short: "Scan addresses ahead for deterministic, bip44 or xpub wallet", + Long: `Scan addresses ahead for deterministic, bip44 or xpub wallet. + + The argument of [wallet] could be a wallet file name or a fullpath of the wallet + file. For example, both foo.wlt and $HOME/.skycoin/wallets/foo.wlt could be resolved. + + Warning: if you generate long (over 20) sequences of empty addresses and use + a later address this can cause the wallet history scanner to miss your addresses, + if you load the wallet from seed elsewhere. In that case, you'll have to manually + generate addresses to cover the gap of unused addresses in the sequence. + + BIP44 wallets generate their addresses on the external (0'/0) chain. + + Use caution when using the "-p" command. If you have command + history enabled your wallet encryption password can be recovered from the + history log. If you do not include the "-p" option you will be prompted to + enter your password after you enter your command.`, + RunE: runScanAddresses, + SilenceUsage: true, + } + + walletScanAddressesCmd.Flags().Uint64P("num", "n", 20, "Number of addresses to scan ahead") + walletScanAddressesCmd.Flags().StringP("password", "p", "", "wallet password") + walletScanAddressesCmd.Flags().BoolP("json", "j", false, "Returns the results in json format") + + return walletScanAddressesCmd +} + +func runScanAddresses(c *cobra.Command, args []string) error { + // get the number of addresses to scan ahead + num, err := c.Flags().GetUint64("num") + if err != nil { + return err + } + + if num == 0 { + return errors.New("--num or -n must be > 0") + } + + jsonFmt, err := c.Flags().GetBool("json") + if err != nil { + return err + } + + wltFile := args[0] + dir, id := filepath.Split(wltFile) + if dir != "" { + if _, err := os.Stat(wltFile); os.IsNotExist(err) { + return fmt.Errorf("wallet file %s does not exist", wltFile) + } + } + + rsp, err := apiClient.Wallet(id) + if err != nil { + return err + } + + var password []byte + // bip44 can add new addresses without unlocking. + if rsp.Meta.Type != wallet.WalletTypeBip44 { + pr := NewPasswordReader([]byte(c.Flag("password").Value.String())) + if rsp.Meta.Encrypted { + var err error + password, err = pr.Password() + if err != nil { + return err + } + defer func() { + password = []byte("") + }() + } + } + + addrs, err := apiClient.ScanWalletAddresses(id, int(num), string(password)) + if err != nil { + return err + } + + if jsonFmt { + var obj = struct { + Addresses []string `json:"addresses"` + }{ + Addresses: addrs, + } + + return printJSON(obj) + } + + for _, addr := range addrs { + fmt.Println(addr) + } + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/send.go b/vendor/github.com/skycoin/skycoin/src/cli/send.go new file mode 100644 index 000000000..a4a90578d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/send.go @@ -0,0 +1,67 @@ +package cli + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +func sendCmd() *cobra.Command { + sendCmd := &cobra.Command{ + Args: cobra.MinimumNArgs(1), + Short: "Send skycoin from a wallet or an address to a recipient address", + Use: "send [wallet] [to address] [amount]", + Long: `Send skycoin from a wallet or an address to a recipient address. + + Note: the [amount] argument is the coins you will spend, 1 coins = 1e6 droplets. + + The [to address] and [amount] arguments can be replaced with the --many/-m option. + + If you are sending from a wallet without specifying an address, + the transaction will use one or more of the addresses within the wallet. + + Use caution when using the “-p” command. If you have command history enabled + your wallet encryption password can be recovered from the history log. + If you do not include the “-p” option you will be prompted to enter your password + after you enter your command.`, + SilenceUsage: true, + RunE: func(c *cobra.Command, args []string) error { + rawTxn, err := createRawTxnCmdHandler(c, args) + if err != nil { + printHelp(c) + return err + } + + txid, err := apiClient.InjectTransaction(rawTxn) + if err != nil { + return err + } + + jsonOutput, err := c.Flags().GetBool("json") + if err != nil { + return err + } + if jsonOutput { + return printJSON(struct { + Txid string `json:"txid"` + }{ + Txid: txid, + }) + } + + fmt.Printf("txid:%s\n", txid) + return nil + }, + } + + sendCmd.Flags().StringP("from-address", "a", "", "From address in wallet") + sendCmd.Flags().StringP("change-address", "c", "", `Specify the change address. +Defaults to one of the spending addresses (deterministic wallets) or to a new change address (bip44 wallets).`) + sendCmd.Flags().StringP("many", "m", "", `use JSON string to set multiple receive addresses and coins, +example: -m '[{"addr":"$addr1", "coins": "10.2"}, {"addr":"$addr2", "coins": "20"}]'`) + sendCmd.Flags().StringP("password", "p", "", "Wallet password") + sendCmd.Flags().BoolP("json", "j", false, "Returns the results in JSON format.") + sendCmd.Flags().String("csv", "", "CSV file containing addresses and amounts to send") + + return sendCmd +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/show_seed.go b/vendor/github.com/skycoin/skycoin/src/cli/show_seed.go new file mode 100644 index 000000000..dcd8db3eb --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/show_seed.go @@ -0,0 +1,91 @@ +package cli + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +func showSeedCmd() *cobra.Command { + showSeedCmd := &cobra.Command{ + Args: cobra.ExactArgs(1), + Use: "showSeed [wallet]", + Short: "Show wallet seed and seed passphrase", + Long: `Print the seed and seed passphrase from a wallet. + + Use caution when using the "-p" command. If you have command history enabled + your wallet encryption password can be recovered from the history log. If you + do not include the "-p" option you will be prompted to enter your password + after you enter your command.`, + SilenceUsage: true, + RunE: func(c *cobra.Command, args []string) error { + w := args[0] + + password, err := c.Flags().GetString("password") + if err != nil { + return err + } + + jsonOutput, err := c.Flags().GetBool("json") + if err != nil { + return err + } + + pr := NewPasswordReader([]byte(password)) + seed, seedPassphrase, err := getSeed(w, pr) + switch err.(type) { + case nil: + case WalletLoadError: + printHelp(c) + return err + default: + return err + } + + if jsonOutput { + v := struct { + Seed string `json:"seed"` + SeedPassphrase string `json:"seed_passphrase,omitempty"` + }{ + Seed: seed, + SeedPassphrase: seedPassphrase, + } + + return printJSON(v) + } + + fmt.Println(seed) + if seedPassphrase != "" { + fmt.Println(seedPassphrase) + } + return nil + }, + } + + showSeedCmd.Flags().StringP("password", "p", "", "Wallet password") + showSeedCmd.Flags().BoolP("json", "j", false, "Returns the results in JSON format.") + + return showSeedCmd +} + +func getSeed(walletID string, pr PasswordReader) (string, string, error) { + wlt, err := apiClient.Wallet(walletID) + if err != nil { + return "", "", err + } + + var pwd []byte + if wlt.Meta.Encrypted { + pwd, err = pr.Password() + if err != nil { + return "", "", err + } + } + + sr, err := apiClient.WalletSeed(walletID, string(pwd)) + if err != nil { + return "", "", err + } + + return sr.Seed, sr.SeedPassphrase, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/status.go b/vendor/github.com/skycoin/skycoin/src/cli/status.go new file mode 100644 index 000000000..fd93d202d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/status.go @@ -0,0 +1,52 @@ +package cli + +import ( + cobra "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/api" +) + +// StatusResult is printed by cli status command +type StatusResult struct { + Status api.HealthResponse `json:"status"` + Config ConfigStatus `json:"cli_config"` +} + +// ConfigStatus contains the configuration parameters loaded by the cli +type ConfigStatus struct { + RPCAddress string `json:"webrpc_address"` +} + +func statusCmd() *cobra.Command { + return &cobra.Command{ + Use: "status", + Short: "Check the status of current Skycoin node", + DisableFlagsInUseLine: true, + SilenceUsage: true, + Args: cobra.NoArgs, + RunE: func(_ *cobra.Command, _ []string) error { + status, err := apiClient.Health() + if err != nil { + return err + } + + return printJSON(StatusResult{ + Status: *status, + Config: ConfigStatus{ + RPCAddress: cliConfig.RPCAddress, + }, + }) + }, + } +} + +func showConfigCmd() *cobra.Command { + return &cobra.Command{ + Use: "showConfig", + Short: "Show cli configuration", + DisableFlagsInUseLine: true, + RunE: func(_ *cobra.Command, _ []string) error { + return printJSON(cliConfig) + }, + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/transaction.go b/vendor/github.com/skycoin/skycoin/src/cli/transaction.go new file mode 100644 index 000000000..08596ffab --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/transaction.go @@ -0,0 +1,405 @@ +package cli + +import ( + "encoding/json" + "errors" + "fmt" + "os" + "strconv" + + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/wallet" + + "github.com/skycoin/skycoin/src/api" + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/readable" + + "github.com/spf13/cobra" +) + +// TxnResult wraps readable.TransactionWithStatus +type TxnResult struct { + Transaction *readable.TransactionWithStatus `json:"transaction"` +} + +func transactionCmd() *cobra.Command { + return &cobra.Command{ + Short: "Show detail info of specific transaction", + Use: "transaction [transaction id]", + DisableFlagsInUseLine: true, + SilenceUsage: true, + Args: cobra.ExactArgs(1), + RunE: func(_ *cobra.Command, args []string) error { + txid := args[0] + if txid == "" { + return errors.New("txid is empty") + } + + // validate the txid + _, err := cipher.SHA256FromHex(txid) + if err != nil { + return errors.New("invalid txid") + } + + txn, err := apiClient.Transaction(txid) + if err != nil { + return err + } + + return printJSON(TxnResult{ + Transaction: txn, + }) + }, + } +} + +func decodeRawTxnCmd() *cobra.Command { + return &cobra.Command{ + Short: "Decode raw transaction", + Use: "decodeRawTransaction [raw transaction]", + DisableFlagsInUseLine: true, + SilenceUsage: true, + Args: cobra.ExactArgs(1), + RunE: func(_ *cobra.Command, args []string) error { + txn, err := coin.DeserializeTransactionHex(args[0]) + if err != nil { + return fmt.Errorf("invalid raw transaction: %v", err) + } + + // Assume the transaction is not malformed and if it has no inputs + // that it is the genesis block's transaction + isGenesis := len(txn.In) == 0 + rTxn, err := readable.NewTransaction(txn, isGenesis) + if err != nil { + return err + } + + return printJSON(rTxn) + }, + } +} + +func encodeJSONTxnCmd() *cobra.Command { + cmd := &cobra.Command{ + Short: "Encode JSON transaction", + Use: "encodeJsonTransaction [file path or -]", + DisableFlagsInUseLine: true, + SilenceUsage: true, + Args: cobra.ExactArgs(1), + RunE: func(c *cobra.Command, args []string) error { + jsonOutput, err := c.Flags().GetBool("json") + if err != nil { + return err + } + + jsonFilePath := args[0] + var jsonFile *os.File + if jsonFilePath == "-" { + jsonFile = os.Stdin + err = nil + jsonFilePath = "" + } else { + jsonFile, err = os.Open(jsonFilePath) + } + if err != nil { + return fmt.Errorf("open file failed %s: %v", jsonFilePath, err) + } + var rTxn readable.Transaction + err = json.NewDecoder(jsonFile).Decode(&rTxn) + if err != nil { + return fmt.Errorf("invalid JSON transaction: %v", err) + } + + // fixHashes recomputes the txn hashes + // the recomputation of hash is needed when txn info for e.g. the sig is changed + fixHashes, err := c.Flags().GetBool("fix") + if err != nil { + return err + } + + if fixHashes { + err = recomputeHashes(&rTxn) + if err != nil { + return err + } + } + + txn, err := readableToCreatedTransaction(&rTxn).ToTransaction() + if err != nil { + return err + } + rawTxn, err := txn.SerializeHex() + if err != nil { + return err + } + if jsonOutput { + return printJSON(struct { + RawTx string `json:"rawtx"` + }{ + RawTx: rawTxn, + }) + } + fmt.Println(rawTxn) + return nil + }, + } + cmd.Flags().BoolP("json", "j", false, "Returns the results in JSON format.") + cmd.Flags().BoolP("fix", "f", false, "Recompute transaction inner and outer hashes") + return cmd +} + +func readableToCreatedTransaction(rTxn *readable.Transaction) *api.CreatedTransaction { + inputs := make([]api.CreatedTransactionInput, len(rTxn.In)) + outputs := make([]api.CreatedTransactionOutput, len(rTxn.Out)) + for i, rIn := range rTxn.In { + inputs[i] = api.CreatedTransactionInput{ + UxID: rIn, + } + } + for i, rOut := range rTxn.Out { + outputs[i] = api.CreatedTransactionOutput{ + UxID: rOut.Hash, + Address: rOut.Address, + Coins: rOut.Coins, + Hours: strconv.FormatUint(rOut.Hours, 10), + } + } + cTxn := api.CreatedTransaction{ + Length: rTxn.Length, + Type: rTxn.Type, + TxID: rTxn.Hash, + InnerHash: rTxn.InnerHash, + Fee: "", + Sigs: rTxn.Sigs[:], + In: inputs, + Out: outputs, + } + return &cTxn +} + +func recomputeHashes(rTxn *readable.Transaction) error { + t := coin.Transaction{} + + t.Length = rTxn.Length + t.Type = rTxn.Type + + var err error + + sigs := make([]cipher.Sig, len(rTxn.Sigs)) + for i, s := range rTxn.Sigs { + sigs[i], err = cipher.SigFromHex(s) + if err != nil { + return err + } + } + + t.Sigs = sigs + + in := make([]cipher.SHA256, len(rTxn.In)) + for i, UxID := range rTxn.In { + in[i], err = cipher.SHA256FromHex(UxID) + if err != nil { + return err + } + } + + t.In = in + + out := make([]coin.TransactionOutput, len(rTxn.Out)) + for i, o := range rTxn.Out { + addr, err := cipher.DecodeBase58Address(o.Address) + if err != nil { + return err + } + + coins, err := droplet.FromString(o.Coins) + if err != nil { + return err + } + + out[i] = coin.TransactionOutput{ + Address: addr, + Coins: coins, + Hours: o.Hours, + } + } + + t.Out = out + + // recompute inner hash + rTxn.InnerHash = t.HashInner().Hex() + t.InnerHash, err = cipher.SHA256FromHex(rTxn.InnerHash) + if err != nil { + return err + } + + // recompute txid + rTxn.Hash = t.Hash().Hex() + + return nil +} + +func addressTransactionsCmd() *cobra.Command { + return &cobra.Command{ + Short: "Show detail for transaction associated with one or more specified addresses", + Use: "addressTransactions [address list]", + Long: `Display transactions for specific addresses, separate multiple addresses with a space, + example: addressTransactions addr1 addr2 addr3`, + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: getAddressTransactionsCmd, + } +} + +func getAddressTransactionsCmd(c *cobra.Command, args []string) error { + // Build the list of addresses from the command line arguments + addrs := make([]string, len(args)) + var err error + for i := 0; i < len(args); i++ { + addrs[i] = args[i] + if _, err = cipher.DecodeBase58Address(addrs[i]); err != nil { + return fmt.Errorf("invalid address: %v, err: %v", addrs[i], err) + } + } + + // If one or more addresses have been provided, request their transactions - otherwise report an error + if len(addrs) > 0 { + outputs, err := apiClient.TransactionsVerbose(addrs) + if err != nil { + return err + } + + return printJSON(outputs) + } + + return fmt.Errorf("at least one address must be specified. Example: %s addr1 addr2 addr3", c.Name()) +} + +func verifyTransactionCmd() *cobra.Command { + return &cobra.Command{ + Short: "Verify if the specific transaction is spendable", + Use: "verifyTransaction [encoded transaction]", + DisableFlagsInUseLine: true, + SilenceUsage: true, + Args: cobra.MaximumNArgs(1), + RunE: func(_ *cobra.Command, args []string) error { + encodedTxn := args[0] + if encodedTxn == "" { + return errors.New("transaction is empty") + } + + _, err := apiClient.VerifyTransaction(api.VerifyTransactionRequest{ + EncodedTransaction: encodedTxn, + }) + if err != nil { + return err + } + + fmt.Println("transaction is spendable") + + return nil + }, + } +} + +func pendingTransactionsCmd() *cobra.Command { + pendingTxnsCmd := &cobra.Command{ + Short: "Get all unconfirmed transactions", + Use: "pendingTransactions", + DisableFlagsInUseLine: true, + SilenceUsage: true, + Args: cobra.NoArgs, + RunE: func(c *cobra.Command, _ []string) error { + isVerbose, err := c.Flags().GetBool("verbose") + if err != nil { + return err + } + + if isVerbose { + pendingTxns, err := apiClient.PendingTransactionsVerbose() + if err != nil { + return err + } + + return printJSON(pendingTxns) + } + + pendingTxns, err := apiClient.PendingTransactions() + if err != nil { + return err + } + + return printJSON(pendingTxns) + }, + } + + pendingTxnsCmd.Flags().BoolP("verbose", "v", false, + `Require the transaction inputs to include the owner address, coins, hours and calculated hours. + The hours are the original hours the output was created with. + The calculated hours are calculated based upon the current system time, and provide an approximate + coin hour value of the output if it were to be confirmed at that instant.`) + + return pendingTxnsCmd +} + +func signTxnCmd() *cobra.Command { + signTxnCmd := &cobra.Command{ + Short: "Sign an unsigned transaction with specific wallet", + Use: "signTransaction [wallet] [raw transaction]", + DisableFlagsInUseLine: true, + SilenceUsage: true, + Args: cobra.ExactArgs(2), + RunE: func(c *cobra.Command, args []string) error { + id := args[0] + rawTxn := args[1] + + // Decode the raw transaction to see if the transaction already signed + txn, err := coin.DeserializeTransactionHex(rawTxn) + if err != nil { + return err + } + + emptySig := cipher.Sig{} + if len(txn.Sigs) > 0 && txn.Sigs[0] != emptySig { + return fmt.Errorf("Transaction already signed") + } + + // Check if wallet is encrypted + req := api.WalletSignTransactionRequest{ + WalletID: id, + EncodedTransaction: rawTxn, + } + + // Load wallet to check if the wallet is encrypted + w, err := wallet.Load(id) + if err != nil { + return err + } + + // Read wallet password from terminal if it is encrypted + if w.IsEncrypted() { + v, err := readPasswordFromTerminal() + if err != nil { + return err + } + req.Password = string(v) + defer func() { + // Wipe out the password from memory + v = []byte{} + req.Password = "" + }() + } + + // Send transaction signing request + signedTxn, err := apiClient.WalletSignTransaction(req) + if err != nil { + return err + } + + return printJSON(signedTxn) + }, + } + + return signTxnCmd +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/verify_address.go b/vendor/github.com/skycoin/skycoin/src/cli/verify_address.go new file mode 100644 index 000000000..72cba32dc --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/verify_address.go @@ -0,0 +1,21 @@ +package cli + +import ( + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/cipher" +) + +func verifyAddressCmd() *cobra.Command { + return &cobra.Command{ + Short: "Verify a skycoin address", + Use: "verifyAddress [skycoin address]", + Args: cobra.ExactArgs(1), + DisableFlagsInUseLine: true, + SilenceUsage: true, + RunE: func(_ *cobra.Command, args []string) error { + _, err := cipher.DecodeBase58Address(args[0]) + return err + }, + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/version.go b/vendor/github.com/skycoin/skycoin/src/cli/version.go new file mode 100644 index 000000000..7cb5af175 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/version.go @@ -0,0 +1,50 @@ +package cli + +import ( + "fmt" + "reflect" + + "github.com/spf13/cobra" +) + +func versionCmd() *cobra.Command { + versionCmd := &cobra.Command{ + Use: "version", + Short: "List the current version of Skycoin components", + Args: cobra.NoArgs, + SilenceUsage: true, + RunE: func(c *cobra.Command, _ []string) error { + var ver = struct { + Skycoin string `json:"skycoin"` + Cli string `json:"cli"` + RPC string `json:"rpc"` + Wallet string `json:"wallet"` + }{ + Version, + Version, + Version, + Version, + } + + jsonOutput, err := c.Flags().GetBool("json") + if err != nil { + return err + } + if jsonOutput { + return printJSON(ver) + } + + v := reflect.ValueOf(ver) + t := reflect.TypeOf(ver) + for i := 0; i < v.NumField(); i++ { + fmt.Printf("%s:%v\n", t.Field(i).Tag.Get("json"), v.Field(i).Interface()) + } + + return nil + }, + } + + versionCmd.Flags().BoolP("json", "j", false, "Returns the results in JSON format") + + return versionCmd +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/wallet_history.go b/vendor/github.com/skycoin/skycoin/src/cli/wallet_history.go new file mode 100644 index 000000000..6963ece9d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/wallet_history.go @@ -0,0 +1,229 @@ +package cli + +import ( + "errors" + "fmt" + + "time" + + "sort" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/api" + "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/util/droplet" +) + +// AddrHistory represents a transactional event for an address +type AddrHistory struct { + BlockSeq uint64 `json:"-"` + Txid string `json:"txid"` + Address string `json:"address"` + Amount string `json:"amount"` + Timestamp time.Time `json:"timestamp"` + Status int `json:"status"` + + coins uint64 +} + +type byTime []AddrHistory + +func (obt byTime) Less(i, j int) bool { + return obt[i].Timestamp.Unix() < obt[j].Timestamp.Unix() +} + +func (obt byTime) Swap(i, j int) { + obt[i], obt[j] = obt[j], obt[i] +} + +func (obt byTime) Len() int { + return len(obt) +} + +func walletHisCmd() *cobra.Command { + walletHisCmd := &cobra.Command{ + Short: "Display the transaction history of specific wallet. Requires skycoin node rpc.", + Use: "walletHistory [wallet]", + SilenceUsage: true, + Args: cobra.ExactArgs(1), + RunE: walletHistoryAction, + } + + return walletHisCmd +} + +func walletHistoryAction(_ *cobra.Command, args []string) error { + addrs, err := getWalletAddresses(args[0]) + if err != nil { + return err + } + + if len(addrs) == 0 { + return errors.New("Wallet is empty") + } + + // Get all the addresses' historical uxouts + var totalAddrHis []AddrHistory + for _, addr := range addrs { + uxouts, err := apiClient.AddressUxOuts(addr) + if err != nil { + return err + } + + addrHis, err := makeAddrHisArray(apiClient, addr, uxouts) + if err != nil { + return err + } + totalAddrHis = append(totalAddrHis, addrHis...) + } + + // Sort the uxouts by time ascending + sort.Sort(byTime(totalAddrHis)) + + return printJSON(totalAddrHis) +} + +func makeAddrHisArray(c *api.Client, addr string, uxOuts []readable.SpentOutput) ([]AddrHistory, error) { + if len(uxOuts) == 0 { + return nil, nil + } + + var addrHis, spentHis, realHis []AddrHistory + var spentBlkSeqMap = map[uint64]bool{} + + for _, u := range uxOuts { + amount, err := droplet.ToString(u.Coins) + if err != nil { + return nil, err + } + + addrHis = append(addrHis, AddrHistory{ + BlockSeq: u.SrcBkSeq, + Txid: u.SrcTx, + Address: addr, + Amount: amount, + Timestamp: time.Unix(int64(u.Time), 0).UTC(), + Status: 1, + coins: u.Coins, + }) + + // the SpentBlockSeq will be 0 if the uxout has not been spent yet. + if u.SpentBlockSeq != 0 { + spentBlkSeqMap[u.SpentBlockSeq] = true + spentHis = append(spentHis, AddrHistory{ + BlockSeq: u.SpentBlockSeq, + Address: addr, + Txid: u.SpentTxnID, + Amount: "-" + amount, + Status: 1, + coins: u.Coins, + }) + } + } + + if len(spentBlkSeqMap) > 0 { + spentBlkSeq := make([]uint64, 0, len(spentBlkSeqMap)) + for seq := range spentBlkSeqMap { + spentBlkSeq = append(spentBlkSeq, seq) + } + + getBlkTime, err := createBlkTimeFinder(c, spentBlkSeq) + if err != nil { + return nil, err + } + + for i, his := range spentHis { + spentHis[i].Timestamp = time.Unix(getBlkTime(his.BlockSeq), 0).UTC() + } + } + + type historyRecord struct { + received []AddrHistory + spent []AddrHistory + } + + // merge history in the same transaction. + hisMap := map[string]historyRecord{} + for _, his := range addrHis { + hr := hisMap[his.Txid] + hr.received = append(hr.received, his) + hisMap[his.Txid] = hr + } + for _, his := range spentHis { + hr := hisMap[his.Txid] + hr.spent = append(hr.spent, his) + hisMap[his.Txid] = hr + } + + for txid, hs := range hisMap { + var receivedCoins, spentCoins, coins uint64 + for _, h := range hs.received { + receivedCoins += h.coins + } + for _, h := range hs.spent { + spentCoins += h.coins + } + + isNegative := spentCoins > receivedCoins + + if spentCoins > receivedCoins { + coins = spentCoins - receivedCoins + } else { + coins = receivedCoins - spentCoins + } + + amount, err := droplet.ToString(coins) + if err != nil { + return nil, err + } + + if isNegative { + amount = "-" + amount + } + + var his AddrHistory + if len(hs.received) > 0 { + his = hs.received[0] + } else { + his = hs.spent[0] + } + + realHis = append(realHis, AddrHistory{ + BlockSeq: his.BlockSeq, + Txid: txid, + Address: addr, + Amount: amount, + Timestamp: his.Timestamp, + Status: 1, + }) + } + + return realHis, nil +} + +func createBlkTimeFinder(c *api.Client, ss []uint64) (func(uint64) int64, error) { + // get spent blocks + blocks := make([]*readable.Block, 0, len(ss)) + for _, s := range ss { + block, err := c.BlockBySeq(s) + if err != nil { + return nil, err + } + + blocks = append(blocks, block) + } + + if len(blocks) == 0 { + return nil, fmt.Errorf("found no block") + } + + return func(seq uint64) int64 { + for _, b := range blocks { + if seq == b.Head.BkSeq { + return int64(b.Head.Time) + } + } + panic("block not found") + }, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/cli/wallet_key_export.go b/vendor/github.com/skycoin/skycoin/src/cli/wallet_key_export.go new file mode 100644 index 000000000..7a063fa1e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/cli/wallet_key_export.go @@ -0,0 +1,180 @@ +package cli + +import ( + "errors" + "fmt" + "strconv" + "strings" + + "github.com/spf13/cobra" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip32" + "github.com/skycoin/skycoin/src/cipher/bip39" + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/wallet" +) + +func walletKeyExportCmd() *cobra.Command { + walletKeyExportCmd := &cobra.Command{ + Args: cobra.ExactArgs(1), + RunE: walletKeyExportHandler, + Use: "walletKeyExport [wallet]", + Short: "Export a specific key from an HD wallet", + Long: `This command prints the xpub or xprv key for a given + HDNode in a bip44 wallet. The HDNode path is specified with --path. + This path is the portion of the bip44 path. + + Please make sure that the node has wallet seed API enabled (--enable-api-sets="INSECURE_WALLET_SEED"). + + Example: -k xpub --path=0 prints the account 0 xpub + Example: -k xpub --path=0/0 prints the account 0, external chain xpub + Example: -k xprv --path=0/1 prints the account 0, change chain xprv + Example: -k pub --path=0/0/9 prints the account 0, external chain child 9 public key + Example: -k prv --path=0/1/8 prints the account 0, change chain child 8 private key + + The bip32 path node apostrophe is implicit for the first element of the path. + + Use caution when using the "-p" command. If you have command + history enabled your wallet encryption password can be recovered + from the history log. If you do not include the "-p" option you will + be prompted to enter your password after you enter your command.`, + } + + walletKeyExportCmd.Flags().StringP("key", "k", "xpub", "key type (\"xpub\", \"xprv\", \"pub\", \"prv\")") + walletKeyExportCmd.Flags().StringP("path", "", "0/0", "bip44 account'/change subpath") + walletKeyExportCmd.Flags().StringP("password", "p", "", "wallet password") + + return walletKeyExportCmd +} + +func walletKeyExportHandler(c *cobra.Command, args []string) error { + keyType, err := c.Flags().GetString("key") + if err != nil { + return err + } + if err := validateKeyType(keyType); err != nil { + return err + } + + id := args[0] + wlt, err := apiClient.Wallet(id) + if err != nil { + return err + } + + if wlt.Meta.Type != wallet.WalletTypeBip44 { + return errors.New("unsupported wallet type for key export command") + } + + var password []byte + if wlt.Meta.Encrypted { + pr := NewPasswordReader([]byte(c.Flag("password").Value.String())) + var err error + password, err = pr.Password() + if err != nil { + return err + } + } + rsp, err := apiClient.WalletSeed(id, string(password)) + if err != nil { + return err + } + + seed, err := bip39.NewSeed(rsp.Seed, rsp.SeedPassphrase) + if err != nil { + return err + } + + coin, err := bip44.NewCoin(seed, *wlt.Meta.Bip44Coin) + if err != nil { + return err + } + + path, err := c.Flags().GetString("path") + if err != nil { + return err + } + + nodes, err := parsePath(path) + if err != nil { + return err + } + if len(nodes) > 3 { + return errors.New("path can have at most 3 elements") + } + + acct, err := coin.Account(nodes[0]) + if err != nil { + return err + } + + if len(nodes) == 1 { + return printKey(keyType, acct.PrivateKey) + } + + change, err := acct.NewPrivateChildKey(nodes[1]) + if err != nil { + return err + } + + if len(nodes) == 2 { + return printKey(keyType, change) + } + + child, err := change.NewPrivateChildKey(nodes[2]) + if err != nil { + return err + } + + if len(nodes) == 3 { + return printKey(keyType, child) + } + + return nil +} + +func validateKeyType(kt string) error { + switch kt { + case "xpub", "xprv", "pub", "prv": + default: + return errors.New("key must be \"xpub\", \"xprv\", \"pub\" or \"prv\"") + } + + return nil +} + +func printKey(kt string, k *bip32.PrivateKey) error { + if err := validateKeyType(kt); err != nil { + return err + } + + switch kt { + case "xpub": + fmt.Println(k.PublicKey().String()) + case "xprv": + fmt.Println(k.String()) + case "pub": + fmt.Println(cipher.MustNewPubKey(k.PublicKey().Key).Hex()) + case "prv": + fmt.Println(cipher.MustNewSecKey(k.Key).Hex()) + default: + panic("unhandled key type") + } + + return nil +} + +func parsePath(p string) ([]uint32, error) { + pts := strings.Split(p, "/") + idx := make([]uint32, len(pts)) + for i, c := range pts { + x, err := strconv.ParseUint(c, 10, 32) + if err != nil { + return nil, fmt.Errorf("invalid path node number %q at position %d", c, i) + } + idx[i] = uint32(x) + } + + return idx, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/block.go b/vendor/github.com/skycoin/skycoin/src/coin/block.go new file mode 100644 index 000000000..006dd1235 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/block.go @@ -0,0 +1,236 @@ +/* +Package coin defines the core blockchain datastructures. + +This package should not have any dependencies except for go stdlib and cipher. +*/ +package coin + +import ( + "fmt" + "log" + + "github.com/skycoin/skycoin/src/cipher" +) + +//go:generate skyencoder -struct BlockHeader -unexported +//go:generate skyencoder -struct BlockBody -unexported + +// MaxBlockTransactions is the maximum number of transactions in a block (see the maxlen struct tag value applied to BlockBody.Transactions) +const MaxBlockTransactions = 65535 + +// Block represents the block struct +type Block struct { + Head BlockHeader + Body BlockBody +} + +// HashPair including current block hash and previous block hash. +type HashPair struct { + Hash cipher.SHA256 + PrevHash cipher.SHA256 +} + +// BlockHeader records the block header +type BlockHeader struct { + Version uint32 + + Time uint64 + BkSeq uint64 // Increment every block + Fee uint64 // Fee in block + + PrevHash cipher.SHA256 // Hash of header of previous block + BodyHash cipher.SHA256 // Hash of transaction block + + UxHash cipher.SHA256 // XOR of sha256 of elements in unspent output set +} + +// BlockBody represents the block body +type BlockBody struct { + Transactions Transactions `enc:",maxlen=65535"` +} + +// SignedBlock signed block +type SignedBlock struct { + Block + Sig cipher.Sig +} + +// VerifySignature verifies that the block is signed by pubkey +func (b SignedBlock) VerifySignature(pubkey cipher.PubKey) error { + return cipher.VerifyPubKeySignedHash(pubkey, b.Sig, b.HashHeader()) +} + +// NewBlock creates new block. +func NewBlock(prev Block, currentTime uint64, uxHash cipher.SHA256, txns Transactions, calc FeeCalculator) (*Block, error) { + if len(txns) == 0 { + return nil, fmt.Errorf("Refusing to create block with no transactions") + } + + fee, err := txns.Fees(calc) + if err != nil { + // This should have been caught earlier + return nil, fmt.Errorf("Invalid transaction fees: %v", err) + } + + body := BlockBody{txns} + head := NewBlockHeader(prev.Head, uxHash, currentTime, fee, body) + return &Block{ + Head: head, + Body: body, + }, nil +} + +// NewGenesisBlock creates genesis block +func NewGenesisBlock(genesisAddr cipher.Address, genesisCoins, timestamp uint64) (*Block, error) { + txn := Transaction{} + if err := txn.PushOutput(genesisAddr, genesisCoins, genesisCoins); err != nil { + return nil, err + } + body := BlockBody{Transactions: Transactions{txn}} + prevHash := cipher.SHA256{} + bodyHash := body.Hash() + head := BlockHeader{ + Time: timestamp, + BodyHash: bodyHash, + PrevHash: prevHash, + BkSeq: 0, + Version: 0, + Fee: 0, + UxHash: cipher.SHA256{}, + } + b := &Block{ + Head: head, + Body: body, + } + + return b, nil +} + +// HashHeader return hash of block head. +func (b Block) HashHeader() cipher.SHA256 { + return b.Head.Hash() +} + +// Time return the head time of the block. +func (b Block) Time() uint64 { + return b.Head.Time +} + +// Seq return the head seq of the block. +func (b Block) Seq() uint64 { + return b.Head.BkSeq +} + +// Size returns the size of the Block's Transactions, in bytes +func (b Block) Size() (uint32, error) { + return b.Body.Size() +} + +// NewBlockHeader creates block header +func NewBlockHeader(prev BlockHeader, uxHash cipher.SHA256, currentTime, fee uint64, body BlockBody) BlockHeader { + if currentTime <= prev.Time { + log.Panic("Time can only move forward") + } + bodyHash := body.Hash() + prevHash := prev.Hash() + return BlockHeader{ + BodyHash: bodyHash, + Version: prev.Version, + PrevHash: prevHash, + Time: currentTime, + BkSeq: prev.BkSeq + 1, + Fee: fee, + UxHash: uxHash, + } +} + +// Hash return hash of block header +func (bh *BlockHeader) Hash() cipher.SHA256 { + return cipher.SumSHA256(bh.Bytes()) +} + +// Bytes serialize the blockheader and return the byte value. +func (bh *BlockHeader) Bytes() []byte { + buf, err := encodeBlockHeader(bh) + if err != nil { + log.Panicf("encodeBlockHeader failed: %v", err) + } + return buf +} + +// Hash returns the merkle hash of contained transactions +func (bb BlockBody) Hash() cipher.SHA256 { + hashes := make([]cipher.SHA256, len(bb.Transactions)) + for i := range bb.Transactions { + hashes[i] = bb.Transactions[i].Hash() + } + // Merkle hash of transactions + return cipher.Merkle(hashes) +} + +// Size returns the size of Transactions, in bytes +func (bb BlockBody) Size() (uint32, error) { + // We can't use length of self.Bytes() because it has a length prefix + // Need only the sum of transaction sizes + return bb.Transactions.Size() +} + +// Bytes serialize block body, and return the byte value. +func (bb *BlockBody) Bytes() []byte { + buf, err := encodeBlockBody(bb) + if err != nil { + log.Panicf("encodeBlockBody failed: %v", err) + } + return buf +} + +// CreateUnspents creates the expected outputs for a transaction. +func CreateUnspents(bh BlockHeader, txn Transaction) UxArray { + var h cipher.SHA256 + // The genesis block uses the null hash as the SrcTransaction [FIXME hardfork] + if bh.BkSeq != 0 { + h = txn.Hash() + } + uxo := make(UxArray, len(txn.Out)) + for i := range txn.Out { + uxo[i] = UxOut{ + Head: UxHead{ + Time: bh.Time, + BkSeq: bh.BkSeq, + }, + Body: UxBody{ + SrcTransaction: h, + Address: txn.Out[i].Address, + Coins: txn.Out[i].Coins, + Hours: txn.Out[i].Hours, + }, + } + } + return uxo +} + +// CreateUnspent creates single unspent output +func CreateUnspent(bh BlockHeader, txn Transaction, outIndex int) (UxOut, error) { + if outIndex < 0 || outIndex >= len(txn.Out) { + return UxOut{}, fmt.Errorf("Transaction out index overflows transaction outputs") + } + + var h cipher.SHA256 + // The genesis block uses the null hash as the SrcTransaction [FIXME hardfork] + if bh.BkSeq != 0 { + h = txn.Hash() + } + + return UxOut{ + Head: UxHead{ + Time: bh.Time, + BkSeq: bh.BkSeq, + }, + Body: UxBody{ + SrcTransaction: h, + Address: txn.Out[outIndex].Address, + Coins: txn.Out[outIndex].Coins, + Hours: txn.Out[outIndex].Hours, + }, + }, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/block_body_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/coin/block_body_skyencoder.go new file mode 100644 index 000000000..7a98caa99 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/block_body_skyencoder.go @@ -0,0 +1,407 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package coin + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeBlockBody computes the size of an encoded object of type BlockBody +func encodeSizeBlockBody(obj *BlockBody) uint64 { + i0 := uint64(0) + + // obj.Transactions + i0 += 4 + for _, x1 := range obj.Transactions { + i1 := uint64(0) + + // x1.Length + i1 += 4 + + // x1.Type + i1++ + + // x1.InnerHash + i1 += 32 + + // x1.Sigs + i1 += 4 + { + i2 := uint64(0) + + // x2 + i2 += 65 + + i1 += uint64(len(x1.Sigs)) * i2 + } + + // x1.In + i1 += 4 + { + i2 := uint64(0) + + // x2 + i2 += 32 + + i1 += uint64(len(x1.In)) * i2 + } + + // x1.Out + i1 += 4 + { + i2 := uint64(0) + + // x2.Address.Version + i2++ + + // x2.Address.Key + i2 += 20 + + // x2.Coins + i2 += 8 + + // x2.Hours + i2 += 8 + + i1 += uint64(len(x1.Out)) * i2 + } + + i0 += i1 + } + + return i0 +} + +// encodeBlockBody encodes an object of type BlockBody to a buffer allocated to the exact size +// required to encode the object. +func encodeBlockBody(obj *BlockBody) ([]byte, error) { + n := encodeSizeBlockBody(obj) + buf := make([]byte, n) + + if err := encodeBlockBodyToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeBlockBodyToBuffer encodes an object of type BlockBody to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeBlockBodyToBuffer(buf []byte, obj *BlockBody) error { + if uint64(len(buf)) < encodeSizeBlockBody(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Transactions maxlen check + if len(obj.Transactions) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Transactions length check + if uint64(len(obj.Transactions)) > math.MaxUint32 { + return errors.New("obj.Transactions length exceeds math.MaxUint32") + } + + // obj.Transactions length + e.Uint32(uint32(len(obj.Transactions))) + + // obj.Transactions + for _, x := range obj.Transactions { + + // x.Length + e.Uint32(x.Length) + + // x.Type + e.Uint8(x.Type) + + // x.InnerHash + e.CopyBytes(x.InnerHash[:]) + + // x.Sigs maxlen check + if len(x.Sigs) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Sigs length check + if uint64(len(x.Sigs)) > math.MaxUint32 { + return errors.New("x.Sigs length exceeds math.MaxUint32") + } + + // x.Sigs length + e.Uint32(uint32(len(x.Sigs))) + + // x.Sigs + for _, x := range x.Sigs { + + // x + e.CopyBytes(x[:]) + + } + + // x.In maxlen check + if len(x.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.In length check + if uint64(len(x.In)) > math.MaxUint32 { + return errors.New("x.In length exceeds math.MaxUint32") + } + + // x.In length + e.Uint32(uint32(len(x.In))) + + // x.In + for _, x := range x.In { + + // x + e.CopyBytes(x[:]) + + } + + // x.Out maxlen check + if len(x.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Out length check + if uint64(len(x.Out)) > math.MaxUint32 { + return errors.New("x.Out length exceeds math.MaxUint32") + } + + // x.Out length + e.Uint32(uint32(len(x.Out))) + + // x.Out + for _, x := range x.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + } + + return nil +} + +// decodeBlockBody decodes an object of type BlockBody from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeBlockBody(buf []byte, obj *BlockBody) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Transactions + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions = make([]Transaction, length) + + for z1 := range obj.Transactions { + { + // obj.Transactions[z1].Length + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Transactions[z1].Length = i + } + + { + // obj.Transactions[z1].Type + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Transactions[z1].Type = i + } + + { + // obj.Transactions[z1].InnerHash + if len(d.Buffer) < len(obj.Transactions[z1].InnerHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1].InnerHash[:], d.Buffer[:len(obj.Transactions[z1].InnerHash)]) + d.Buffer = d.Buffer[len(obj.Transactions[z1].InnerHash):] + } + + { + // obj.Transactions[z1].Sigs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions[z1].Sigs = make([]cipher.Sig, length) + + for z3 := range obj.Transactions[z1].Sigs { + { + // obj.Transactions[z1].Sigs[z3] + if len(d.Buffer) < len(obj.Transactions[z1].Sigs[z3]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1].Sigs[z3][:], d.Buffer[:len(obj.Transactions[z1].Sigs[z3])]) + d.Buffer = d.Buffer[len(obj.Transactions[z1].Sigs[z3]):] + } + + } + } + } + + { + // obj.Transactions[z1].In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions[z1].In = make([]cipher.SHA256, length) + + for z3 := range obj.Transactions[z1].In { + { + // obj.Transactions[z1].In[z3] + if len(d.Buffer) < len(obj.Transactions[z1].In[z3]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1].In[z3][:], d.Buffer[:len(obj.Transactions[z1].In[z3])]) + d.Buffer = d.Buffer[len(obj.Transactions[z1].In[z3]):] + } + + } + } + } + + { + // obj.Transactions[z1].Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions[z1].Out = make([]TransactionOutput, length) + + for z3 := range obj.Transactions[z1].Out { + { + // obj.Transactions[z1].Out[z3].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Transactions[z1].Out[z3].Address.Version = i + } + + { + // obj.Transactions[z1].Out[z3].Address.Key + if len(d.Buffer) < len(obj.Transactions[z1].Out[z3].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1].Out[z3].Address.Key[:], d.Buffer[:len(obj.Transactions[z1].Out[z3].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Transactions[z1].Out[z3].Address.Key):] + } + + { + // obj.Transactions[z1].Out[z3].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Transactions[z1].Out[z3].Coins = i + } + + { + // obj.Transactions[z1].Out[z3].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Transactions[z1].Out[z3].Hours = i + } + + } + } + } + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeBlockBodyExact decodes an object of type BlockBody from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeBlockBodyExact(buf []byte, obj *BlockBody) error { + if n, err := decodeBlockBody(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/block_header_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/coin/block_header_skyencoder.go new file mode 100644 index 000000000..1fb3df5c8 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/block_header_skyencoder.go @@ -0,0 +1,168 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package coin + +import "github.com/skycoin/skycoin/src/cipher/encoder" + +// encodeSizeBlockHeader computes the size of an encoded object of type BlockHeader +func encodeSizeBlockHeader(obj *BlockHeader) uint64 { + i0 := uint64(0) + + // obj.Version + i0 += 4 + + // obj.Time + i0 += 8 + + // obj.BkSeq + i0 += 8 + + // obj.Fee + i0 += 8 + + // obj.PrevHash + i0 += 32 + + // obj.BodyHash + i0 += 32 + + // obj.UxHash + i0 += 32 + + return i0 +} + +// encodeBlockHeader encodes an object of type BlockHeader to a buffer allocated to the exact size +// required to encode the object. +func encodeBlockHeader(obj *BlockHeader) ([]byte, error) { + n := encodeSizeBlockHeader(obj) + buf := make([]byte, n) + + if err := encodeBlockHeaderToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeBlockHeaderToBuffer encodes an object of type BlockHeader to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeBlockHeaderToBuffer(buf []byte, obj *BlockHeader) error { + if uint64(len(buf)) < encodeSizeBlockHeader(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Version + e.Uint32(obj.Version) + + // obj.Time + e.Uint64(obj.Time) + + // obj.BkSeq + e.Uint64(obj.BkSeq) + + // obj.Fee + e.Uint64(obj.Fee) + + // obj.PrevHash + e.CopyBytes(obj.PrevHash[:]) + + // obj.BodyHash + e.CopyBytes(obj.BodyHash[:]) + + // obj.UxHash + e.CopyBytes(obj.UxHash[:]) + + return nil +} + +// decodeBlockHeader decodes an object of type BlockHeader from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeBlockHeader(buf []byte, obj *BlockHeader) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Version + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Version = i + } + + { + // obj.Time + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Time = i + } + + { + // obj.BkSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.BkSeq = i + } + + { + // obj.Fee + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Fee = i + } + + { + // obj.PrevHash + if len(d.Buffer) < len(obj.PrevHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.PrevHash[:], d.Buffer[:len(obj.PrevHash)]) + d.Buffer = d.Buffer[len(obj.PrevHash):] + } + + { + // obj.BodyHash + if len(d.Buffer) < len(obj.BodyHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.BodyHash[:], d.Buffer[:len(obj.BodyHash)]) + d.Buffer = d.Buffer[len(obj.BodyHash):] + } + + { + // obj.UxHash + if len(d.Buffer) < len(obj.UxHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.UxHash[:], d.Buffer[:len(obj.UxHash)]) + d.Buffer = d.Buffer[len(obj.UxHash):] + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeBlockHeaderExact decodes an object of type BlockHeader from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeBlockHeaderExact(buf []byte, obj *BlockHeader) error { + if n, err := decodeBlockHeader(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/outputs.go b/vendor/github.com/skycoin/skycoin/src/coin/outputs.go new file mode 100644 index 000000000..db2c26b9b --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/outputs.go @@ -0,0 +1,327 @@ +package coin + +import ( + "bytes" + "errors" + "fmt" + "log" + "sort" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/util/mathutil" +) + +/* + Unspent Outputs +*/ + +/* +- hash must only depend on factors known to sender +-- hash cannot depend on block executed +-- hash cannot depend on sequence number +-- hash may depend on nonce + +- hash must depend only on factors known to sender +-- needed to minimize divergence during block chain forks +- it should be difficult to create outputs with duplicate ids + +- Uxhash cannot depend on time or block it was created +- time is still needed for +*/ + +/* + For each transaction, keep track of + - order created + - order spent (for rollbacks) +*/ + +//go:generate skyencoder -struct UxHead -unexported +//go:generate skyencoder -struct UxBody -unexported + +// UxOut represents uxout +type UxOut struct { + Head UxHead + Body UxBody //hashed part + //Meta UxMeta +} + +// UxHead metadata (not hashed) +type UxHead struct { + Time uint64 //time of block it was created in + BkSeq uint64 //block it was created in, used to calculate depth + // SpSeq uint64 //block it was spent in +} + +// UxBody uxbody +type UxBody struct { + SrcTransaction cipher.SHA256 // Inner Hash of Transaction + Address cipher.Address // Address of receiver + Coins uint64 // Number of coins + Hours uint64 // Coin hours +} + +// Hash returns the hash of UxBody +func (uo *UxOut) Hash() cipher.SHA256 { + return uo.Body.Hash() +} + +// SnapshotHash returns hash of UxBody + UxHead +func (uo *UxOut) SnapshotHash() cipher.SHA256 { + n1 := encodeSizeUxBody(&uo.Body) + n2 := encodeSizeUxHead(&uo.Head) + buf := make([]byte, n1+n2) + + if err := encodeUxBodyToBuffer(buf[:n1], &uo.Body); err != nil { + log.Panicf("encodeUxBodyToBuffer failed: %v", err) + } + if err := encodeUxHeadToBuffer(buf[n1:], &uo.Head); err != nil { + log.Panicf("encodeUxHeadToBuffer failed: %v", err) + } + + return cipher.SumSHA256(buf) +} + +// Hash returns hash of uxbody +func (ub *UxBody) Hash() cipher.SHA256 { + buf, err := encodeUxBody(ub) + if err != nil { + log.Panicf("encodeUxBody failed: %v", err) + } + return cipher.SumSHA256(buf) +} + +/* + Make independent of block rate? + Then need creation time of output + Creation time of transaction cant be hashed +*/ + +// ErrAddEarnedCoinHoursAdditionOverflow is returned by UxOut.CoinHours() if during the addition of base coin +// hours to additional earned coin hours, the value would overflow a uint64. +// Callers may choose to ignore this errors and use 0 as the coinhours value instead. +// This affects one existing spent output, spent in block 13277. +var ErrAddEarnedCoinHoursAdditionOverflow = errors.New("UxOut.CoinHours addition of earned coin hours overflow") + +// CoinHours Calculate coinhour balance of output. t is the current unix utc time. +func (uo *UxOut) CoinHours(t uint64) (uint64, error) { + if t < uo.Head.Time { + log.Printf("Calculating coin hours with t < head time") + return uo.Body.Hours, nil + } + + seconds := t - uo.Head.Time // number of seconds + + // Calculate whole coin seconds + wholeCoins := uo.Body.Coins / 1e6 + wholeCoinSeconds, err := mathutil.MultUint64(seconds, wholeCoins) + if err != nil { + err := fmt.Errorf("UxOut.CoinHours: Calculating whole coin seconds overflows uint64 seconds=%d coins=%d uxid=%s", seconds, wholeCoins, uo.Hash().Hex()) + log.Printf("%v", err) + return 0, err + } + + // Calculate remainder droplet seconds + remainderDroplets := uo.Body.Coins % 1e6 + dropletSeconds, err := mathutil.MultUint64(seconds, remainderDroplets) + if err != nil { + err := fmt.Errorf("UxOut.CoinHours: Calculating droplet seconds overflows uint64 seconds=%d droplets=%d uxid=%s", seconds, remainderDroplets, uo.Hash().Hex()) + log.Printf("%v", err) + return 0, err + } + + // Add coinSeconds and seconds earned by droplets, rounded off + coinSeconds := wholeCoinSeconds + dropletSeconds/1e6 + + coinHours := coinSeconds / 3600 // coin hours + totalHours, err := mathutil.AddUint64(uo.Body.Hours, coinHours) // starting+earned + if err != nil { + log.Printf("%v uxid=%s", ErrAddEarnedCoinHoursAdditionOverflow, uo.Hash().Hex()) + return 0, ErrAddEarnedCoinHoursAdditionOverflow + } + return totalHours, nil +} + +// UxHashSet set mapping from UxHash to a placeholder value +type UxHashSet map[cipher.SHA256]struct{} + +// UxArray Array of Outputs +// Used by unspent output pool, spent tests +type UxArray []UxOut + +// Hashes returns Array of hashes for the Ux in the UxArray +func (ua UxArray) Hashes() []cipher.SHA256 { + hashes := make([]cipher.SHA256, len(ua)) + for i, ux := range ua { + hashes[i] = ux.Hash() + } + return hashes +} + +// HasDupes checks the UxArray for outputs which have the same hash +func (ua UxArray) HasDupes() bool { + m := make(UxHashSet, len(ua)) + for i := range ua { + h := ua[i].Hash() + if _, ok := m[h]; ok { + return true + } + m[h] = struct{}{} + } + return false +} + +// Set returns the UxArray as a hash to struct{} map to be used as a set. +// Should only be used for membership detection +func (ua UxArray) Set() UxHashSet { + m := make(UxHashSet, len(ua)) + for i := range ua { + m[ua[i].Hash()] = struct{}{} + } + return m +} + +// Sort sorts UxArray +func (ua UxArray) Sort() { + sort.Sort(ua) +} + +// Len returns length of UxArray +func (ua UxArray) Len() int { + return len(ua) +} + +// Less checks if UxArray[i] < UxArray[j] +func (ua UxArray) Less(i, j int) bool { + hash1 := ua[i].Hash() + hash2 := ua[j].Hash() + return bytes.Compare(hash1[:], hash2[:]) < 0 +} + +// Swap swaps value of UxArray[i] and UxArray[j] +func (ua UxArray) Swap(i, j int) { + ua[i], ua[j] = ua[j], ua[i] +} + +// Coins returns the total coins +func (ua UxArray) Coins() (uint64, error) { + var coins uint64 + for _, ux := range ua { + var err error + coins, err = mathutil.AddUint64(coins, ux.Body.Coins) + if err != nil { + return 0, errors.New("UxArray.Coins addition overflow") + } + } + + return coins, nil +} + +// CoinHours returns the total coin hours +func (ua UxArray) CoinHours(headTime uint64) (uint64, error) { + var hours uint64 + for _, ux := range ua { + uxHours, err := ux.CoinHours(headTime) + if err != nil { + return 0, err + } + + hours, err = mathutil.AddUint64(hours, uxHours) + if err != nil { + return 0, errors.New("UxArray.CoinHours addition overflow") + } + } + return hours, nil +} + +// AddressUxOuts maps address with uxarray +type AddressUxOuts map[cipher.Address]UxArray + +// NewAddressUxOuts creates address uxouts map +func NewAddressUxOuts(uxs UxArray) AddressUxOuts { + uxo := make(AddressUxOuts) + for _, ux := range uxs { + uxo[ux.Body.Address] = append(uxo[ux.Body.Address], ux) + } + return uxo +} + +// Keys returns the Address keys +func (auo AddressUxOuts) Keys() []cipher.Address { + addrs := make([]cipher.Address, len(auo)) + i := 0 + for k := range auo { + addrs[i] = k + i++ + } + return addrs +} + +// Flatten converts an AddressUxOuts map to a UxArray +func (auo AddressUxOuts) Flatten() UxArray { + oxs := make(UxArray, 0, len(auo)) + for _, uxs := range auo { + for i := range uxs { + oxs = append(oxs, uxs[i]) + } + } + return oxs +} + +// Sub returns a new set of unspents, with unspents found in other removed. +// No address's unspent set will be empty +// Depreciate this: only visor uses it +func (auo AddressUxOuts) Sub(other AddressUxOuts) AddressUxOuts { + ox := make(AddressUxOuts, len(auo)) + for a, uxs := range auo { + if suxs, ok := other[a]; ok { + ouxs := uxs.Sub(suxs) + if len(ouxs) > 0 { + ox[a] = ouxs + } + } else { + ox[a] = uxs + } + } + return ox +} + +// Add returns a new unspents, with merged unspents +func (auo AddressUxOuts) Add(other AddressUxOuts) AddressUxOuts { + ox := make(AddressUxOuts, len(auo)) + for a, o := range auo { + ox[a] = o + } + + for a, uxs := range other { + if suxs, ok := ox[a]; ok { + ox[a] = suxs.Add(uxs) + } else { + ox[a] = uxs + } + } + return ox +} + +// Sub returns a new UxArray with elements in other removed from self +// Deprecate +func (ua UxArray) Sub(other UxArray) UxArray { + uxa := make(UxArray, 0) + m := other.Set() + for i := range ua { + if _, ok := m[ua[i].Hash()]; !ok { + uxa = append(uxa, ua[i]) + } + } + return uxa +} + +// Add returns a new UxArray with merged elements +func (ua UxArray) Add(other UxArray) UxArray { + m := ua.Set() + for i := range other { + if _, ok := m[other[i].Hash()]; !ok { + ua = append(ua, other[i]) + } + } + return ua +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/transaction_inputs_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/coin/transaction_inputs_skyencoder.go new file mode 100644 index 000000000..ae7daca9b --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/transaction_inputs_skyencoder.go @@ -0,0 +1,135 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package coin + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeTransactionInputs computes the size of an encoded object of type transactionInputs +func encodeSizeTransactionInputs(obj *transactionInputs) uint64 { + i0 := uint64(0) + + // obj.In + i0 += 4 + { + i1 := uint64(0) + + // x1 + i1 += 32 + + i0 += uint64(len(obj.In)) * i1 + } + + return i0 +} + +// encodeTransactionInputs encodes an object of type transactionInputs to a buffer allocated to the exact size +// required to encode the object. +func encodeTransactionInputs(obj *transactionInputs) ([]byte, error) { + n := encodeSizeTransactionInputs(obj) + buf := make([]byte, n) + + if err := encodeTransactionInputsToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeTransactionInputsToBuffer encodes an object of type transactionInputs to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeTransactionInputsToBuffer(buf []byte, obj *transactionInputs) error { + if uint64(len(buf)) < encodeSizeTransactionInputs(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.In maxlen check + if len(obj.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.In length check + if uint64(len(obj.In)) > math.MaxUint32 { + return errors.New("obj.In length exceeds math.MaxUint32") + } + + // obj.In length + e.Uint32(uint32(len(obj.In))) + + // obj.In + for _, x := range obj.In { + + // x + e.CopyBytes(x[:]) + + } + + return nil +} + +// decodeTransactionInputs decodes an object of type transactionInputs from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeTransactionInputs(buf []byte, obj *transactionInputs) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.In = make([]cipher.SHA256, length) + + for z1 := range obj.In { + { + // obj.In[z1] + if len(d.Buffer) < len(obj.In[z1]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.In[z1][:], d.Buffer[:len(obj.In[z1])]) + d.Buffer = d.Buffer[len(obj.In[z1]):] + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeTransactionInputsExact decodes an object of type transactionInputs from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeTransactionInputsExact(buf []byte, obj *transactionInputs) error { + if n, err := decodeTransactionInputs(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/transaction_outputs_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/coin/transaction_outputs_skyencoder.go new file mode 100644 index 000000000..8ddacd4ae --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/transaction_outputs_skyencoder.go @@ -0,0 +1,179 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package coin + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeTransactionOutputs computes the size of an encoded object of type transactionOutputs +func encodeSizeTransactionOutputs(obj *transactionOutputs) uint64 { + i0 := uint64(0) + + // obj.Out + i0 += 4 + { + i1 := uint64(0) + + // x1.Address.Version + i1++ + + // x1.Address.Key + i1 += 20 + + // x1.Coins + i1 += 8 + + // x1.Hours + i1 += 8 + + i0 += uint64(len(obj.Out)) * i1 + } + + return i0 +} + +// encodeTransactionOutputs encodes an object of type transactionOutputs to a buffer allocated to the exact size +// required to encode the object. +func encodeTransactionOutputs(obj *transactionOutputs) ([]byte, error) { + n := encodeSizeTransactionOutputs(obj) + buf := make([]byte, n) + + if err := encodeTransactionOutputsToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeTransactionOutputsToBuffer encodes an object of type transactionOutputs to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeTransactionOutputsToBuffer(buf []byte, obj *transactionOutputs) error { + if uint64(len(buf)) < encodeSizeTransactionOutputs(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Out maxlen check + if len(obj.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Out length check + if uint64(len(obj.Out)) > math.MaxUint32 { + return errors.New("obj.Out length exceeds math.MaxUint32") + } + + // obj.Out length + e.Uint32(uint32(len(obj.Out))) + + // obj.Out + for _, x := range obj.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + return nil +} + +// decodeTransactionOutputs decodes an object of type transactionOutputs from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeTransactionOutputs(buf []byte, obj *transactionOutputs) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Out = make([]TransactionOutput, length) + + for z1 := range obj.Out { + { + // obj.Out[z1].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Out[z1].Address.Version = i + } + + { + // obj.Out[z1].Address.Key + if len(d.Buffer) < len(obj.Out[z1].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Out[z1].Address.Key[:], d.Buffer[:len(obj.Out[z1].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Out[z1].Address.Key):] + } + + { + // obj.Out[z1].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out[z1].Coins = i + } + + { + // obj.Out[z1].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out[z1].Hours = i + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeTransactionOutputsExact decodes an object of type transactionOutputs from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeTransactionOutputsExact(buf []byte, obj *transactionOutputs) error { + if n, err := decodeTransactionOutputs(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/transaction_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/coin/transaction_skyencoder.go new file mode 100644 index 000000000..33d4d53df --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/transaction_skyencoder.go @@ -0,0 +1,357 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package coin + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeTransaction computes the size of an encoded object of type Transaction +func encodeSizeTransaction(obj *Transaction) uint64 { + i0 := uint64(0) + + // obj.Length + i0 += 4 + + // obj.Type + i0++ + + // obj.InnerHash + i0 += 32 + + // obj.Sigs + i0 += 4 + { + i1 := uint64(0) + + // x1 + i1 += 65 + + i0 += uint64(len(obj.Sigs)) * i1 + } + + // obj.In + i0 += 4 + { + i1 := uint64(0) + + // x1 + i1 += 32 + + i0 += uint64(len(obj.In)) * i1 + } + + // obj.Out + i0 += 4 + { + i1 := uint64(0) + + // x1.Address.Version + i1++ + + // x1.Address.Key + i1 += 20 + + // x1.Coins + i1 += 8 + + // x1.Hours + i1 += 8 + + i0 += uint64(len(obj.Out)) * i1 + } + + return i0 +} + +// encodeTransaction encodes an object of type Transaction to a buffer allocated to the exact size +// required to encode the object. +func encodeTransaction(obj *Transaction) ([]byte, error) { + n := encodeSizeTransaction(obj) + buf := make([]byte, n) + + if err := encodeTransactionToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeTransactionToBuffer encodes an object of type Transaction to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeTransactionToBuffer(buf []byte, obj *Transaction) error { + if uint64(len(buf)) < encodeSizeTransaction(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Length + e.Uint32(obj.Length) + + // obj.Type + e.Uint8(obj.Type) + + // obj.InnerHash + e.CopyBytes(obj.InnerHash[:]) + + // obj.Sigs maxlen check + if len(obj.Sigs) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Sigs length check + if uint64(len(obj.Sigs)) > math.MaxUint32 { + return errors.New("obj.Sigs length exceeds math.MaxUint32") + } + + // obj.Sigs length + e.Uint32(uint32(len(obj.Sigs))) + + // obj.Sigs + for _, x := range obj.Sigs { + + // x + e.CopyBytes(x[:]) + + } + + // obj.In maxlen check + if len(obj.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.In length check + if uint64(len(obj.In)) > math.MaxUint32 { + return errors.New("obj.In length exceeds math.MaxUint32") + } + + // obj.In length + e.Uint32(uint32(len(obj.In))) + + // obj.In + for _, x := range obj.In { + + // x + e.CopyBytes(x[:]) + + } + + // obj.Out maxlen check + if len(obj.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Out length check + if uint64(len(obj.Out)) > math.MaxUint32 { + return errors.New("obj.Out length exceeds math.MaxUint32") + } + + // obj.Out length + e.Uint32(uint32(len(obj.Out))) + + // obj.Out + for _, x := range obj.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + return nil +} + +// decodeTransaction decodes an object of type Transaction from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeTransaction(buf []byte, obj *Transaction) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Length + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Length = i + } + + { + // obj.Type + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Type = i + } + + { + // obj.InnerHash + if len(d.Buffer) < len(obj.InnerHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.InnerHash[:], d.Buffer[:len(obj.InnerHash)]) + d.Buffer = d.Buffer[len(obj.InnerHash):] + } + + { + // obj.Sigs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Sigs = make([]cipher.Sig, length) + + for z1 := range obj.Sigs { + { + // obj.Sigs[z1] + if len(d.Buffer) < len(obj.Sigs[z1]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Sigs[z1][:], d.Buffer[:len(obj.Sigs[z1])]) + d.Buffer = d.Buffer[len(obj.Sigs[z1]):] + } + + } + } + } + + { + // obj.In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.In = make([]cipher.SHA256, length) + + for z1 := range obj.In { + { + // obj.In[z1] + if len(d.Buffer) < len(obj.In[z1]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.In[z1][:], d.Buffer[:len(obj.In[z1])]) + d.Buffer = d.Buffer[len(obj.In[z1]):] + } + + } + } + } + + { + // obj.Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Out = make([]TransactionOutput, length) + + for z1 := range obj.Out { + { + // obj.Out[z1].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Out[z1].Address.Version = i + } + + { + // obj.Out[z1].Address.Key + if len(d.Buffer) < len(obj.Out[z1].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Out[z1].Address.Key[:], d.Buffer[:len(obj.Out[z1].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Out[z1].Address.Key):] + } + + { + // obj.Out[z1].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out[z1].Coins = i + } + + { + // obj.Out[z1].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out[z1].Hours = i + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeTransactionExact decodes an object of type Transaction from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeTransactionExact(buf []byte, obj *Transaction) error { + if n, err := decodeTransaction(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/transactions.go b/vendor/github.com/skycoin/skycoin/src/coin/transactions.go new file mode 100644 index 000000000..49f1f6638 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/transactions.go @@ -0,0 +1,788 @@ +package coin + +import ( + "bytes" + "encoding/hex" + "errors" + "fmt" + "log" + "math" + "sort" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/util/mathutil" +) + +var ( + // DebugLevel1 checks for extremely unlikely conditions (10e-40) + DebugLevel1 = true + // DebugLevel2 enable checks for impossible conditions + DebugLevel2 = true +) + +//go:generate skyencoder -struct Transaction -unexported +//go:generate skyencoder -struct transactionInputs +//go:generate skyencoder -struct transactionOutputs + +type transactionInputs struct { + In []cipher.SHA256 `enc:",maxlen=65535"` +} + +type transactionOutputs struct { + Out []TransactionOutput `enc:",maxlen=65535"` +} + +/* +Transaction with N inputs, M ouputs is +- 32 bytes constant +- 32+65 bytes per input +- 21+8+8 bytes per output + +Skycoin Transactions are +- 97 bytes per input + 37 bytes per output + 37 bytes +Bitcoin Transactions are +- 180 bytes per input + 34 bytes per output + 10 bytes + +Sigs is the array of signatures +- the Nth signature is the authorization to spend the Nth output consumed in transaction +- the hash signed is SHA256sum of transaction inner hash and the hash of output being spent + +The inner hash is SHA256 hash of the serialization of Input and Output array +The outer hash is the hash of the whole transaction serialization +*/ + +// Transaction transaction struct +type Transaction struct { + Length uint32 // length prefix + Type uint8 // transaction type + InnerHash cipher.SHA256 // inner hash SHA256 of In[],Out[] + + Sigs []cipher.Sig `enc:",maxlen=65535"` // list of signatures, 64+1 bytes each + In []cipher.SHA256 `enc:",maxlen=65535"` // ouputs being spent + Out []TransactionOutput `enc:",maxlen=65535"` // ouputs being created +} + +// TransactionOutput hash output/name is function of Hash +type TransactionOutput struct { + Address cipher.Address // address to send to + Coins uint64 // amount to be sent in coins + Hours uint64 // amount to be sent in coin hours +} + +// Verify attempts to determine if the transaction is well formed. +// Verify cannot check transaction signatures, it needs the address from unspents +// Verify cannot check if outputs being spent exist +// Verify cannot check if the transaction would create or destroy coins +// or if the inputs have the required coin base +func (txn *Transaction) Verify() error { + return txn.verify(true) +} + +// VerifyUnsigned attempts to determine if the transaction is well formed, +// but requires the transaction to have at least one null signature. +// Verify cannot check transaction signatures, it needs the address from unspents +// Verify cannot check if outputs being spent exist +// Verify cannot check if the transaction would create or destroy coins +// or if the inputs have the required coin base +func (txn *Transaction) VerifyUnsigned() error { + return txn.verify(false) +} + +func (txn *Transaction) verify(signed bool) error { + if len(txn.In) == 0 { + return errors.New("No inputs") + } + if len(txn.Out) == 0 { + return errors.New("No outputs") + } + + // Check signature index fields + if len(txn.Sigs) != len(txn.In) { + return errors.New("Invalid number of signatures") + } + if len(txn.Sigs) > math.MaxUint16 { + return errors.New("Too many signatures and inputs") + } + + if len(txn.Out) > math.MaxUint16 { + return errors.New("Too many ouptuts") + } + + // Check duplicate inputs + uxOuts := make(map[cipher.SHA256]struct{}, len(txn.In)) + for i := range txn.In { + uxOuts[txn.In[i]] = struct{}{} + } + if len(uxOuts) != len(txn.In) { + return errors.New("Duplicate spend") + } + + if txn.Type != 0 { + return errors.New("transaction type invalid") + } + + // Prevent zero coin outputs + // Artificial restriction to prevent spam + for _, txo := range txn.Out { + if txo.Coins == 0 { + return errors.New("Zero coin output") + } + } + + // Check output coin integer overflow + coins := uint64(0) + for _, to := range txn.Out { + var err error + coins, err = mathutil.AddUint64(coins, to.Coins) + if err != nil { + return errors.New("Output coins overflow") + } + } + + // Check that Size and Hash can be computed + txnSize, txnHash, err := txn.SizeHash() + if err != nil { + return err + } + + // Check txn Size set correctly + if txn.Length != txnSize { + return errors.New("Incorrect transaction length") + } + + // Check for duplicate potential outputs + outputs := make(map[cipher.SHA256]struct{}, len(txn.Out)) + uxb := UxBody{ + SrcTransaction: txnHash, + } + for _, to := range txn.Out { + uxb.Coins = to.Coins + uxb.Hours = to.Hours + uxb.Address = to.Address + outputs[uxb.Hash()] = struct{}{} + } + if len(outputs) != len(txn.Out) { + return errors.New("Duplicate output in transaction") + } + + // Check inner hash + innerHash, err := txn.hashInner() + if err != nil { + return fmt.Errorf("HashInner failed: %v", err) + } + + if innerHash != txn.InnerHash { + return errors.New("InnerHash does not match computed hash") + } + + // Validate signatures + for i, sig := range txn.Sigs { + if sig.Null() { + // Check that signed transactions do not have any null signatures + if signed { + return errors.New("Unsigned input in transaction") + } + // Ignore null signatures if the transaction is unsigned + continue + } + + hash := cipher.AddSHA256(txn.InnerHash, txn.In[i]) + if err := cipher.VerifySignatureRecoverPubKey(sig, hash); err != nil { + return err + } + } + + // Check that unsigned transactions have at least one non-null signature + if !signed { + if !txn.hasNullSignature() { + return errors.New("Unsigned transaction must contain a null signature") + } + } + + return nil +} + +func (txn Transaction) verifyInputSignaturesPrelude(uxIn UxArray) error { + if len(txn.In) != len(uxIn) { + return errors.New("txn.In != uxIn") + } + if len(txn.In) != len(txn.Sigs) { + return errors.New("txn.In != txn.Sigs") + } + if txn.InnerHash != txn.HashInner() { + return errors.New("Invalid Tx Inner Hash") + } + for i := range txn.In { + if txn.In[i] != uxIn[i].Hash() { + return errors.New("Ux hash mismatch") + } + } + return nil +} + +// VerifyInputSignatures verifies the inputs and signatures +func (txn Transaction) VerifyInputSignatures(uxIn UxArray) error { + if err := txn.verifyInputSignaturesPrelude(uxIn); err != nil { + if DebugLevel2 { + log.Panic(err) + } + return err + } + + // Check signatures against unspent address + for i := range txn.In { + if txn.Sigs[i].Null() { + return errors.New("Unsigned input in transaction") + } + + hash := cipher.AddSHA256(txn.InnerHash, txn.In[i]) // use inner hash, not outer hash + err := cipher.VerifyAddressSignedHash(uxIn[i].Body.Address, txn.Sigs[i], hash) + if err != nil { + return errors.New("Signature not valid for output being spent") + } + } + + return nil +} + +// VerifyPartialInputSignatures verifies the inputs and signatures for signatures that are not null +func (txn Transaction) VerifyPartialInputSignatures(uxIn UxArray) error { + if err := txn.verifyInputSignaturesPrelude(uxIn); err != nil { + if DebugLevel2 { + log.Panic(err) + } + return err + } + + // Check signatures against unspent address for signatures that are not null + for i := range txn.In { + if txn.Sigs[i].Null() { + continue + } + hash := cipher.AddSHA256(txn.InnerHash, txn.In[i]) // use inner hash, not outer hash + err := cipher.VerifyAddressSignedHash(uxIn[i].Body.Address, txn.Sigs[i], hash) + if err != nil { + return errors.New("Signature not valid for output being spent") + } + } + + return nil +} + +// PushInput adds a unspent output hash to the inputs of a Transaction. +func (txn *Transaction) PushInput(uxOut cipher.SHA256) error { + if len(txn.In) >= math.MaxUint16 { + return errors.New("Max transaction inputs reached") + } + txn.In = append(txn.In, uxOut) + return nil +} + +// UxID compute transaction output id +func (txOut TransactionOutput) UxID(txID cipher.SHA256) cipher.SHA256 { + var x UxBody + x.Coins = txOut.Coins + x.Hours = txOut.Hours + x.Address = txOut.Address + x.SrcTransaction = txID + return x.Hash() +} + +// PushOutput Adds a TransactionOutput, sending coins & hours to an Address +func (txn *Transaction) PushOutput(dst cipher.Address, coins, hours uint64) error { + if len(txn.Out) >= math.MaxUint16 { + return errors.New("Max transaction outputs reached") + } + txn.Out = append(txn.Out, TransactionOutput{ + Address: dst, + Coins: coins, + Hours: hours, + }) + return nil +} + +// SignInput signs a specific input in the transaction. +// InnerHash should already be set to a valid value. +// Returns an error if the input is already signed +func (txn *Transaction) SignInput(key cipher.SecKey, index int) error { + if index < 0 || index >= len(txn.In) { + return errors.New("Signature index out of range") + } + + if len(txn.Sigs) == 0 { + txn.Sigs = make([]cipher.Sig, len(txn.In)) + } + if len(txn.In) != len(txn.Sigs) { + return errors.New("Number of signatures does not match number of inputs") + } + + if !txn.Sigs[index].Null() { + return errors.New("Input already signed") + } + + h := cipher.AddSHA256(txn.InnerHash, txn.In[index]) + txn.Sigs[index] = cipher.MustSignHash(h, key) + + return nil +} + +// SignInputs signs all inputs in the transaction +func (txn *Transaction) SignInputs(keys []cipher.SecKey) { + if len(keys) != len(txn.In) { + log.Panic("Invalid number of keys") + } + if len(keys) > math.MaxUint16 { + log.Panic("Too many keys") + } + if len(keys) == 0 { + log.Panic("No keys") + } + if len(txn.Sigs) > 0 && txn.hasNonNullSignature() { + log.Panic("Transaction has been signed") + } + + txn.InnerHash = txn.HashInner() // update hash + + sigs := make([]cipher.Sig, len(txn.In)) + for i, k := range keys { + h := cipher.AddSHA256(txn.InnerHash, txn.In[i]) // hash to sign + sigs[i] = cipher.MustSignHash(h, k) + } + txn.Sigs = sigs +} + +// Size returns the encoded byte size of the transaction +func (txn *Transaction) Size() (uint32, error) { + buf, err := txn.Serialize() + if err != nil { + return 0, err + } + return mathutil.IntToUint32(len(buf)) +} + +// IsFullyUnsigned returns true if the transaction is not signed for any input. +// Unsigned transactions have a full signature array, but the signatures are null. +// Returns true if the signatures array is empty. +func (txn *Transaction) IsFullyUnsigned() bool { + for _, s := range txn.Sigs { + if !s.Null() { + return false + } + } + + return true +} + +// IsFullySigned returns true if the transaction is fully signed. +// Returns true if the signatures array is empty. +func (txn *Transaction) IsFullySigned() bool { + if len(txn.Sigs) == 0 { + return false + } + + for _, s := range txn.Sigs { + if s.Null() { + return false + } + } + + return true +} + +// hasNonNullSignature returns true if the transaction has at least one non-null signature +func (txn *Transaction) hasNonNullSignature() bool { + for _, s := range txn.Sigs { + if !s.Null() { + return true + } + } + + return false +} + +// hasNullSignature returns true if the transaction has at least one null signature +func (txn *Transaction) hasNullSignature() bool { + for _, s := range txn.Sigs { + if s.Null() { + return true + } + } + + return false +} + +// Hash an entire Transaction struct, including the TransactionHeader +func (txn *Transaction) Hash() cipher.SHA256 { + b, err := txn.Serialize() + if err != nil { + log.Panicf("Hash: txn.Serialize failed: %v", err) + } + return cipher.SumSHA256(b) +} + +// SizeHash returns the encoded size and the hash of it (avoids duplicate encoding) +func (txn *Transaction) SizeHash() (uint32, cipher.SHA256, error) { + b, err := txn.Serialize() + if err != nil { + return 0, cipher.SHA256{}, err + } + s, err := mathutil.IntToUint32(len(b)) + if err != nil { + return 0, cipher.SHA256{}, err + } + return s, cipher.SumSHA256(b), nil +} + +// UpdateHeader saves the txn body hash to TransactionHeader.Hash +func (txn *Transaction) UpdateHeader() error { + s, err := txn.Size() + if err != nil { + return err + } + txn.Length = s + txn.Type = byte(0x00) + txn.InnerHash = txn.HashInner() + return nil +} + +// HashInner hashes only the Transaction Inputs & Outputs +// This is what is signed +// Client hashes the inner hash with hash of output being spent and signs it with private key +func (txn *Transaction) HashInner() cipher.SHA256 { + h, err := txn.hashInner() + if err != nil { + log.Panicf("hashInner failed: %v", err) + } + return h +} + +func (txn *Transaction) hashInner() (cipher.SHA256, error) { + txnInputs := &transactionInputs{ + In: txn.In, + } + txnOutputs := &transactionOutputs{ + Out: txn.Out, + } + n1 := encodeSizeTransactionInputs(txnInputs) + n2 := encodeSizeTransactionOutputs(txnOutputs) + buf := make([]byte, n1+n2) + + if err := encodeTransactionInputsToBuffer(buf[:n1], txnInputs); err != nil { + return cipher.SHA256{}, fmt.Errorf("encodeTransactionInputsToBuffer failed: %v", err) + } + + if err := encodeTransactionOutputsToBuffer(buf[n1:], txnOutputs); err != nil { + return cipher.SHA256{}, fmt.Errorf("encodeTransactionOutputsToBuffer failed: %v", err) + } + + return cipher.SumSHA256(buf), nil +} + +// MustSerialize serializes the transaction to bytes, panics on error. +// Serialization can fail if the transaction has too many elements in its arrays +func (txn *Transaction) MustSerialize() []byte { + b, err := encodeTransaction(txn) + if err != nil { + log.Panicf("encodeTransaction failed: %v", err) + } + return b +} + +// Serialize serializes the transaction to bytes. +// Serialization can fail if the transaction has too many elements in its arrays +func (txn *Transaction) Serialize() ([]byte, error) { + return encodeTransaction(txn) +} + +// MustSerializeHex serializes the transaction to a hex string, panics on error. +// Serialization can fail if the transaction has too many elements in its arrays +func (txn *Transaction) MustSerializeHex() string { + return hex.EncodeToString(txn.MustSerialize()) +} + +// SerializeHex serializes the transaction to a hex string. +// Serialization can fail if the transaction has too many elements in its arrays +func (txn *Transaction) SerializeHex() (string, error) { + b, err := txn.Serialize() + if err != nil { + return "", err + } + return hex.EncodeToString(b), nil +} + +// MustDeserializeTransaction deserializes a transaction, panics on error +func MustDeserializeTransaction(b []byte) Transaction { + txn, err := DeserializeTransaction(b) + if err != nil { + log.Panicf("Failed to deserialize transaction: %v", err) + } + return txn +} + +// DeserializeTransaction deserializes a transaction +func DeserializeTransaction(b []byte) (Transaction, error) { + txn := Transaction{} + if err := decodeTransactionExact(b, &txn); err != nil { + return Transaction{}, fmt.Errorf("Invalid transaction: %v", err) + } + return txn, nil +} + +// MustDeserializeTransactionHex deserializes a transaction hex string, panics on error +func MustDeserializeTransactionHex(s string) Transaction { + txn, err := DeserializeTransactionHex(s) + if err != nil { + log.Panicf("Failed to deserialize transaction: %v", err) + } + return txn +} + +// DeserializeTransactionHex deserializes a transaction hex string +func DeserializeTransactionHex(s string) (Transaction, error) { + b, err := hex.DecodeString(s) + if err != nil { + return Transaction{}, err + } + return DeserializeTransaction(b) +} + +// OutputHours returns the coin hours sent as outputs. This does not include the fee. +func (txn *Transaction) OutputHours() (uint64, error) { + hours := uint64(0) + for i := range txn.Out { + var err error + hours, err = mathutil.AddUint64(hours, txn.Out[i].Hours) + if err != nil { + return 0, errors.New("Transaction output hours overflow") + } + } + return hours, nil +} + +// Transactions transaction slice +type Transactions []Transaction + +// Fees calculates all the fees in Transactions +func (txns Transactions) Fees(calc FeeCalculator) (uint64, error) { + total := uint64(0) + for i := range txns { + fee, err := calc(&txns[i]) + if err != nil { + return 0, err + } + + total, err = mathutil.AddUint64(total, fee) + if err != nil { + return 0, errors.New("Transactions fee totals overflow") + } + } + return total, nil +} + +// Hashes caculate transactions hashes +func (txns Transactions) Hashes() []cipher.SHA256 { + hashes := make([]cipher.SHA256, len(txns)) + for i := range txns { + hashes[i] = txns[i].Hash() + } + return hashes +} + +// Size returns the sum of contained Transactions' sizes. It is not the size if +// serialized, since that would have a length prefix. +func (txns Transactions) Size() (uint32, error) { + var size uint32 + for i := range txns { + s, err := txns[i].Size() + if err != nil { + return 0, err + } + + size, err = mathutil.AddUint32(size, s) + if err != nil { + return 0, err + } + } + + return size, nil +} + +// TruncateBytesTo returns the first n transactions whose total size is less than or equal to size +func (txns Transactions) TruncateBytesTo(size uint32) (Transactions, error) { + var total uint32 + for i := range txns { + pending, err := txns[i].Size() + if err != nil { + return nil, err + } + + pendingTotal, err := mathutil.AddUint32(total, pending) + if err != nil { + return txns[:i], nil + } + + if pendingTotal > size { + return txns[:i], nil + } + + total = pendingTotal + } + + return txns, nil +} + +// SortableTransactions allows sorting transactions by fee & hash +type SortableTransactions struct { + Transactions Transactions + Fees []uint64 + Hashes []cipher.SHA256 +} + +// FeeCalculator given a transaction, return its fee or an error if the fee cannot be calculated +type FeeCalculator func(*Transaction) (uint64, error) + +// SortTransactions returns transactions sorted by fee per kB, and sorted by lowest hash if tied. +// Transactions that fail in fee computation are excluded +func SortTransactions(txns Transactions, feeCalc FeeCalculator) (Transactions, error) { + sorted, err := NewSortableTransactions(txns, feeCalc) + if err != nil { + return nil, err + } + sorted.Sort() + return sorted.Transactions, nil +} + +// NewSortableTransactions returns an array of txns that can be sorted by fee. +// On creation, fees are calculated, and if any txns have invalid fee, there are removed from consideration +func NewSortableTransactions(txns Transactions, feeCalc FeeCalculator) (*SortableTransactions, error) { + newTxns := make(Transactions, len(txns)) + fees := make([]uint64, len(txns)) + hashes := make([]cipher.SHA256, len(txns)) + j := 0 + for i := range txns { + fee, err := feeCalc(&txns[i]) + if err != nil { + continue + } + + size, hash, err := txns[i].SizeHash() + if err != nil { + return nil, err + } + + // Calculate fee priority based on fee per kb + feeKB, err := mathutil.MultUint64(fee, 1024) + + // If the fee * 1024 would exceed math.MaxUint64, set it to math.MaxUint64 so that + // this transaction can still be processed + if err != nil { + feeKB = math.MaxUint64 + } + + newTxns[j] = txns[i] + hashes[j] = hash + fees[j] = feeKB / uint64(size) + j++ + } + + return &SortableTransactions{ + Transactions: newTxns[:j], + Fees: fees[:j], + Hashes: hashes[:j], + }, nil +} + +// Sort sorts by tx fee, and then by hash if fee equal +func (txns SortableTransactions) Sort() { + sort.Sort(txns) +} + +// Len returns length of transactions +func (txns SortableTransactions) Len() int { + return len(txns.Transactions) +} + +// Less default sorting is fees descending, hash ascending if fees equal +func (txns SortableTransactions) Less(i, j int) bool { + if txns.Fees[i] == txns.Fees[j] { + // If fees match, hashes are sorted ascending + return bytes.Compare(txns.Hashes[i][:], txns.Hashes[j][:]) < 0 + } + // Fees are sorted descending + return txns.Fees[i] > txns.Fees[j] +} + +// Swap swaps txns +func (txns SortableTransactions) Swap(i, j int) { + txns.Transactions[i], txns.Transactions[j] = txns.Transactions[j], txns.Transactions[i] + txns.Fees[i], txns.Fees[j] = txns.Fees[j], txns.Fees[i] + txns.Hashes[i], txns.Hashes[j] = txns.Hashes[j], txns.Hashes[i] +} + +// VerifyTransactionCoinsSpending checks that coins are not destroyed or created by the transaction +func VerifyTransactionCoinsSpending(uxIn UxArray, uxOut UxArray) error { + coinsIn := uint64(0) + for i := range uxIn { + var err error + coinsIn, err = mathutil.AddUint64(coinsIn, uxIn[i].Body.Coins) + if err != nil { + return errors.New("Transaction input coins overflow") + } + } + + coinsOut := uint64(0) + for i := range uxOut { + var err error + coinsOut, err = mathutil.AddUint64(coinsOut, uxOut[i].Body.Coins) + if err != nil { + return errors.New("Transaction output coins overflow") + } + } + + if coinsIn < coinsOut { + return errors.New("Insufficient coins") + } + if coinsIn > coinsOut { + return errors.New("Transactions may not destroy coins") + } + + return nil +} + +// VerifyTransactionHoursSpending checks that hours are not created by the transaction +func VerifyTransactionHoursSpending(headTime uint64, uxIn UxArray, uxOut UxArray) error { + hoursIn := uint64(0) + for i := range uxIn { + uxHours, err := uxIn[i].CoinHours(headTime) + if err != nil { + // If the error was specifically an overflow when adding the + // earned coin hours to the base coin hours, treat the uxHours as 0. + // Block 13277 spends an input which overflows in this way, + // so the block will not sync if an error is returned. + if err == ErrAddEarnedCoinHoursAdditionOverflow { + uxHours = 0 + } else { + return err + } + } + + hoursIn, err = mathutil.AddUint64(hoursIn, uxHours) + if err != nil { + return errors.New("Transaction input hours overflow") + } + } + + hoursOut := uint64(0) + for i := range uxOut { + // NOTE: addition of hours is not checked for overflow here because + // this would invalidate existing blocks which had overflowed hours. + // Hours overflow checks are handled as a "soft" constraint in the network + // until those blocks are repaired. + hoursOut += uxOut[i].Body.Hours + } + + if hoursIn < hoursOut { + return errors.New("Insufficient coin hours") + } + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/ux_body_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/coin/ux_body_skyencoder.go new file mode 100644 index 000000000..af5fba4c0 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/ux_body_skyencoder.go @@ -0,0 +1,138 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package coin + +import "github.com/skycoin/skycoin/src/cipher/encoder" + +// encodeSizeUxBody computes the size of an encoded object of type UxBody +func encodeSizeUxBody(obj *UxBody) uint64 { + i0 := uint64(0) + + // obj.SrcTransaction + i0 += 32 + + // obj.Address.Version + i0++ + + // obj.Address.Key + i0 += 20 + + // obj.Coins + i0 += 8 + + // obj.Hours + i0 += 8 + + return i0 +} + +// encodeUxBody encodes an object of type UxBody to a buffer allocated to the exact size +// required to encode the object. +func encodeUxBody(obj *UxBody) ([]byte, error) { + n := encodeSizeUxBody(obj) + buf := make([]byte, n) + + if err := encodeUxBodyToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeUxBodyToBuffer encodes an object of type UxBody to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeUxBodyToBuffer(buf []byte, obj *UxBody) error { + if uint64(len(buf)) < encodeSizeUxBody(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.SrcTransaction + e.CopyBytes(obj.SrcTransaction[:]) + + // obj.Address.Version + e.Uint8(obj.Address.Version) + + // obj.Address.Key + e.CopyBytes(obj.Address.Key[:]) + + // obj.Coins + e.Uint64(obj.Coins) + + // obj.Hours + e.Uint64(obj.Hours) + + return nil +} + +// decodeUxBody decodes an object of type UxBody from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeUxBody(buf []byte, obj *UxBody) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.SrcTransaction + if len(d.Buffer) < len(obj.SrcTransaction) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.SrcTransaction[:], d.Buffer[:len(obj.SrcTransaction)]) + d.Buffer = d.Buffer[len(obj.SrcTransaction):] + } + + { + // obj.Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Address.Version = i + } + + { + // obj.Address.Key + if len(d.Buffer) < len(obj.Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Address.Key[:], d.Buffer[:len(obj.Address.Key)]) + d.Buffer = d.Buffer[len(obj.Address.Key):] + } + + { + // obj.Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Coins = i + } + + { + // obj.Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Hours = i + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeUxBodyExact decodes an object of type UxBody from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeUxBodyExact(buf []byte, obj *UxBody) error { + if n, err := decodeUxBody(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/coin/ux_head_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/coin/ux_head_skyencoder.go new file mode 100644 index 000000000..97547af3d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/coin/ux_head_skyencoder.go @@ -0,0 +1,93 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package coin + +import "github.com/skycoin/skycoin/src/cipher/encoder" + +// encodeSizeUxHead computes the size of an encoded object of type UxHead +func encodeSizeUxHead(obj *UxHead) uint64 { + i0 := uint64(0) + + // obj.Time + i0 += 8 + + // obj.BkSeq + i0 += 8 + + return i0 +} + +// encodeUxHead encodes an object of type UxHead to a buffer allocated to the exact size +// required to encode the object. +func encodeUxHead(obj *UxHead) ([]byte, error) { + n := encodeSizeUxHead(obj) + buf := make([]byte, n) + + if err := encodeUxHeadToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeUxHeadToBuffer encodes an object of type UxHead to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeUxHeadToBuffer(buf []byte, obj *UxHead) error { + if uint64(len(buf)) < encodeSizeUxHead(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Time + e.Uint64(obj.Time) + + // obj.BkSeq + e.Uint64(obj.BkSeq) + + return nil +} + +// decodeUxHead decodes an object of type UxHead from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeUxHead(buf []byte, obj *UxHead) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Time + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Time = i + } + + { + // obj.BkSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.BkSeq = i + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeUxHeadExact decodes an object of type UxHead from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeUxHeadExact(buf []byte, obj *UxHead) error { + if n, err := decodeUxHead(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/announce_blocks_message_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/announce_blocks_message_skyencoder.go new file mode 100644 index 000000000..1a24adfed --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/announce_blocks_message_skyencoder.go @@ -0,0 +1,78 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import "github.com/skycoin/skycoin/src/cipher/encoder" + +// encodeSizeAnnounceBlocksMessage computes the size of an encoded object of type AnnounceBlocksMessage +func encodeSizeAnnounceBlocksMessage(obj *AnnounceBlocksMessage) uint64 { + i0 := uint64(0) + + // obj.MaxBkSeq + i0 += 8 + + return i0 +} + +// encodeAnnounceBlocksMessage encodes an object of type AnnounceBlocksMessage to a buffer allocated to the exact size +// required to encode the object. +func encodeAnnounceBlocksMessage(obj *AnnounceBlocksMessage) ([]byte, error) { + n := encodeSizeAnnounceBlocksMessage(obj) + buf := make([]byte, n) + + if err := encodeAnnounceBlocksMessageToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeAnnounceBlocksMessageToBuffer encodes an object of type AnnounceBlocksMessage to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeAnnounceBlocksMessageToBuffer(buf []byte, obj *AnnounceBlocksMessage) error { + if uint64(len(buf)) < encodeSizeAnnounceBlocksMessage(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.MaxBkSeq + e.Uint64(obj.MaxBkSeq) + + return nil +} + +// decodeAnnounceBlocksMessage decodes an object of type AnnounceBlocksMessage from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeAnnounceBlocksMessage(buf []byte, obj *AnnounceBlocksMessage) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.MaxBkSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.MaxBkSeq = i + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeAnnounceBlocksMessageExact decodes an object of type AnnounceBlocksMessage from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeAnnounceBlocksMessageExact(buf []byte, obj *AnnounceBlocksMessage) error { + if n, err := decodeAnnounceBlocksMessage(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/announce_txns_message_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/announce_txns_message_skyencoder.go new file mode 100644 index 000000000..826b5a812 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/announce_txns_message_skyencoder.go @@ -0,0 +1,135 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeAnnounceTxnsMessage computes the size of an encoded object of type AnnounceTxnsMessage +func encodeSizeAnnounceTxnsMessage(obj *AnnounceTxnsMessage) uint64 { + i0 := uint64(0) + + // obj.Transactions + i0 += 4 + { + i1 := uint64(0) + + // x1 + i1 += 32 + + i0 += uint64(len(obj.Transactions)) * i1 + } + + return i0 +} + +// encodeAnnounceTxnsMessage encodes an object of type AnnounceTxnsMessage to a buffer allocated to the exact size +// required to encode the object. +func encodeAnnounceTxnsMessage(obj *AnnounceTxnsMessage) ([]byte, error) { + n := encodeSizeAnnounceTxnsMessage(obj) + buf := make([]byte, n) + + if err := encodeAnnounceTxnsMessageToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeAnnounceTxnsMessageToBuffer encodes an object of type AnnounceTxnsMessage to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeAnnounceTxnsMessageToBuffer(buf []byte, obj *AnnounceTxnsMessage) error { + if uint64(len(buf)) < encodeSizeAnnounceTxnsMessage(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Transactions maxlen check + if len(obj.Transactions) > 256 { + return encoder.ErrMaxLenExceeded + } + + // obj.Transactions length check + if uint64(len(obj.Transactions)) > math.MaxUint32 { + return errors.New("obj.Transactions length exceeds math.MaxUint32") + } + + // obj.Transactions length + e.Uint32(uint32(len(obj.Transactions))) + + // obj.Transactions + for _, x := range obj.Transactions { + + // x + e.CopyBytes(x[:]) + + } + + return nil +} + +// decodeAnnounceTxnsMessage decodes an object of type AnnounceTxnsMessage from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeAnnounceTxnsMessage(buf []byte, obj *AnnounceTxnsMessage) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Transactions + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 256 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions = make([]cipher.SHA256, length) + + for z1 := range obj.Transactions { + { + // obj.Transactions[z1] + if len(d.Buffer) < len(obj.Transactions[z1]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1][:], d.Buffer[:len(obj.Transactions[z1])]) + d.Buffer = d.Buffer[len(obj.Transactions[z1]):] + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeAnnounceTxnsMessageExact decodes an object of type AnnounceTxnsMessage from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeAnnounceTxnsMessageExact(buf []byte, obj *AnnounceTxnsMessage) error { + if n, err := decodeAnnounceTxnsMessage(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/announced_txns.go b/vendor/github.com/skycoin/skycoin/src/daemon/announced_txns.go new file mode 100644 index 000000000..b6ca110f6 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/announced_txns.go @@ -0,0 +1,44 @@ +package daemon + +import ( + "sync" + "time" + + "github.com/skycoin/skycoin/src/cipher" +) + +type announcedTxnsCache struct { + sync.Mutex + cache map[cipher.SHA256]int64 +} + +func newAnnouncedTxnsCache() *announcedTxnsCache { + return &announcedTxnsCache{ + cache: make(map[cipher.SHA256]int64), + } +} + +func (c *announcedTxnsCache) add(txns []cipher.SHA256) { + c.Lock() + defer c.Unlock() + + t := time.Now().UTC().UnixNano() + for _, txn := range txns { + c.cache[txn] = t + } +} + +func (c *announcedTxnsCache) flush() map[cipher.SHA256]int64 { + c.Lock() + defer c.Unlock() + + if len(c.cache) == 0 { + return nil + } + + cache := c.cache + + c.cache = make(map[cipher.SHA256]int64) + + return cache +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/connections.go b/vendor/github.com/skycoin/skycoin/src/daemon/connections.go new file mode 100644 index 000000000..cdb5735e7 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/connections.go @@ -0,0 +1,554 @@ +package daemon + +import ( + "errors" + "fmt" + "sync" + "time" + + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/util/iputil" + "github.com/skycoin/skycoin/src/util/useragent" +) + +// ConnectionState connection state in the state machine +// Connections have three states: "pending", "connected" and "introduced" +// A connection in the "pending" state has been selected to establish a TCP connection, +// but the connection has not been established yet. +// Only outgoing connections will ever be in the "pending" state; +// incoming connections begin at the "connected" state. +// A connection in the "connected" state has established a TCP connection, +// but has not completed the introduction handshake. +// A connection in the "introduced" state has completed the introduction handshake. +type ConnectionState string + +const ( + // ConnectionStatePending prior to establishing a connection + ConnectionStatePending ConnectionState = "pending" + // ConnectionStateConnected connected, but not introduced + ConnectionStateConnected ConnectionState = "connected" + // ConnectionStateIntroduced connection has introduced itself + ConnectionStateIntroduced ConnectionState = "introduced" +) + +var ( + // ErrConnectionNotExist connection does not exist when performing an operation that requires it to exist + ErrConnectionNotExist = errors.New("Connection does not exist") + // ErrConnectionExists connection exists in Connections + ErrConnectionExists = errors.New("Connection exists") + // ErrConnectionIPMirrorExists connection exists for a given base IP and mirror + ErrConnectionIPMirrorExists = errors.New("Connection exists with this base IP and mirror") + // ErrConnectionStateNotConnected connect state is not "connected" + ErrConnectionStateNotConnected = errors.New("Connection state is not \"connected\"") + // ErrConnectionGnetIDMismatch gnet ID in argument does not match gnet ID on record + ErrConnectionGnetIDMismatch = errors.New("Connection gnet ID does not match") + // ErrConnectionAlreadyIntroduced attempted to make invalid state transition from introduced state + ErrConnectionAlreadyIntroduced = errors.New("Connection is already in introduced state") + // ErrConnectionAlreadyConnected attempted to make invalid state transition from connected state + ErrConnectionAlreadyConnected = errors.New("Connection is already in connected state") + // ErrInvalidGnetID invalid gnet ID value used as argument + ErrInvalidGnetID = errors.New("Invalid gnet ID") +) + +// ConnectionDetails connection data managed by daemon +type ConnectionDetails struct { + State ConnectionState + Outgoing bool + ConnectedAt time.Time + Mirror uint32 + ListenPort uint16 + ProtocolVersion int32 + Height uint64 + UserAgent useragent.Data + UnconfirmedVerifyTxn params.VerifyTxn + GenesisHash cipher.SHA256 +} + +// HasIntroduced returns true if the connection has introduced +func (c ConnectionDetails) HasIntroduced() bool { + switch c.State { + case ConnectionStateIntroduced: + return true + default: + return false + } +} + +type connection struct { + Addr string + ConnectionDetails + gnetID uint64 +} + +// ListenAddr returns the addr that connection listens on, if available +func (c *connection) ListenAddr() string { + if c.ListenPort == 0 { + return "" + } + + ip, _, err := iputil.SplitAddr(c.Addr) + if err != nil { + logger.Critical().WithError(err).WithField("addr", c.Addr).Error("connection.ListenAddr addr could not be split") + return "" + } + + return fmt.Sprintf("%s:%d", ip, c.ListenPort) +} + +// Connections manages a collection of Connection +type Connections struct { + conns map[string]*connection + mirrors map[uint32]map[string]uint16 + ipCounts map[string]int + gnetIDs map[uint64]string + listenAddrs map[string][]string + sync.Mutex +} + +// NewConnections creates Connections +func NewConnections() *Connections { + return &Connections{ + conns: make(map[string]*connection, 32), + mirrors: make(map[uint32]map[string]uint16, 32), + ipCounts: make(map[string]int, 32), + gnetIDs: make(map[uint64]string, 32), + listenAddrs: make(map[string][]string, 32), + } +} + +// pending adds a new pending outgoing connection +func (c *Connections) pending(addr string) (*connection, error) { + c.Lock() + defer c.Unlock() + + ip, port, err := iputil.SplitAddr(addr) + if err != nil { + logger.Critical().WithField("addr", addr).WithError(err).Error("Connections.pending called with invalid addr") + return nil, err + } + + if _, ok := c.conns[addr]; ok { + return nil, ErrConnectionExists + } + + c.ipCounts[ip]++ + + conn := &connection{ + Addr: addr, + ConnectionDetails: ConnectionDetails{ + State: ConnectionStatePending, + Outgoing: true, + ListenPort: port, + }, + } + + c.conns[addr] = conn + c.listenAddrs[addr] = append(c.listenAddrs[addr], addr) + + logger.WithField("addr", addr).Debug("Connections.pending") + + return c.conns[addr], nil +} + +// connected the connection has connected +func (c *Connections) connected(addr string, gnetID uint64) (*connection, error) { + c.Lock() + defer c.Unlock() + + fields := logrus.Fields{ + "addr": addr, + "gnetID": gnetID, + } + + if gnetID == 0 { + logger.Critical().WithFields(fields).WithError(ErrInvalidGnetID).Error("Connections.connected called with invalid gnetID") + return nil, ErrInvalidGnetID + } + + ip, _, err := iputil.SplitAddr(addr) + if err != nil { + logger.Critical().WithFields(fields).WithError(err).Error("Connections.connected called with invalid addr") + return nil, err + } + + conn := c.conns[addr] + + if conn == nil { + c.ipCounts[ip]++ + + conn = &connection{ + Addr: addr, + } + + c.conns[addr] = conn + } else { + fields := logrus.Fields{ + "addr": addr, + "gnetID": gnetID, + "state": conn.State, + "outgoing": conn.Outgoing, + "connGnetID": conn.gnetID, + } + + switch conn.State { + case ConnectionStatePending: + case ConnectionStateConnected: + logger.Critical().WithFields(fields).Error("Connections.connected called on already connected connection") + return nil, ErrConnectionAlreadyConnected + case ConnectionStateIntroduced: + logger.Critical().WithFields(fields).Error("Connections.connected called on already introduced connection") + return nil, ErrConnectionAlreadyIntroduced + default: + logger.WithFields(fields).Panic("Connection state invalid") + } + } + + c.gnetIDs[gnetID] = addr + conn.gnetID = gnetID + conn.ConnectedAt = time.Now().UTC() + conn.State = ConnectionStateConnected + + fields["outgoing"] = conn.Outgoing + + logger.WithFields(fields).Debug("Connections.connected") + + return conn, nil +} + +// introduced the connection has introduced itself +func (c *Connections) introduced(addr string, gnetID uint64, m *IntroductionMessage) (*connection, error) { + c.Lock() + defer c.Unlock() + + fields := logrus.Fields{ + "addr": addr, + "gnetID": gnetID, + } + + if gnetID == 0 { + logger.Critical().WithFields(fields).WithError(ErrInvalidGnetID).Error("Connections.introduced called with invalid gnetID") + return nil, ErrInvalidGnetID + } + + ip, _, err := iputil.SplitAddr(addr) + if err != nil { + logger.Critical().WithFields(fields).WithError(err).Error("Connections.introduced called with invalid addr") + return nil, err + } + + conn := c.conns[addr] + if conn == nil { + return nil, ErrConnectionNotExist + } + + fields["outgoing"] = conn.Outgoing + + errorFields := logrus.Fields{ + "state": conn.State, + "connGnetID": conn.gnetID, + } + + switch conn.State { + case ConnectionStatePending: + logger.Critical().WithFields(fields).WithFields(errorFields).Error("Connections.introduced called on pending connection") + return nil, ErrConnectionStateNotConnected + case ConnectionStateConnected: + if gnetID != conn.gnetID { + logger.Critical().WithFields(fields).WithFields(errorFields).Error("Connections.introduced called with different gnet ID") + return nil, ErrConnectionGnetIDMismatch + } + case ConnectionStateIntroduced: + logger.Critical().WithFields(fields).WithFields(errorFields).Error("Connections.introduced called on already introduced connection") + return nil, ErrConnectionAlreadyIntroduced + default: + logger.WithFields(fields).WithFields(errorFields).Panic("invalid connection state") + } + + if err := c.canUpdateMirror(ip, m.Mirror); err != nil { + logger.WithFields(fields).WithFields(errorFields).WithField("mirror", m.Mirror).WithError(err).Debug("canUpdateMirror failed") + return nil, err + } + + // For outgoing connections, which are created by pending, + // the listen port is set from the addr's port number. + // Since we are connecting to it, it is presumed to be that peer's open listening port. + // A misbehaving peer could report a different ListenPort in their IntroductionMessage, + // but it shouldn't affect our records. + if conn.Outgoing && conn.ListenPort != m.ListenPort { + logger.Critical().WithFields(fields).WithFields(logrus.Fields{ + "connListenPort": conn.ListenPort, + "introListenPort": m.ListenPort, + }).Warning("Outgoing connection's ListenPort does not match reported IntroductionMessage ListenPort") + } + + listenPort := conn.ListenPort + if !conn.Outgoing { + listenPort = m.ListenPort + } + + if err := c.updateMirror(ip, m.Mirror, listenPort); err != nil { + logger.WithFields(fields).WithField("mirror", m.Mirror).WithError(err).Panic("updateMirror failed, but shouldn't") + } + + conn.State = ConnectionStateIntroduced + conn.Mirror = m.Mirror + conn.ProtocolVersion = m.ProtocolVersion + conn.ListenPort = listenPort + conn.UserAgent = m.UserAgent + conn.UnconfirmedVerifyTxn = m.UnconfirmedVerifyTxn + conn.GenesisHash = m.GenesisHash + + if !conn.Outgoing { + listenAddr := conn.ListenAddr() + c.listenAddrs[listenAddr] = append(c.listenAddrs[listenAddr], addr) + } + + logger.WithFields(fields).Debug("Connections.introduced") + + return conn, nil +} + +// get returns a connection by address +func (c *Connections) get(addr string) *connection { + c.Lock() + defer c.Unlock() + + return c.conns[addr] +} + +func (c *Connections) getByListenAddr(listenAddr string) []*connection { + c.Lock() + defer c.Unlock() + + addrs := c.listenAddrs[listenAddr] + if len(addrs) == 0 { + return nil + } + + conns := make([]*connection, len(addrs)) + for i, a := range addrs { + conns[i] = c.conns[a] + } + + return conns +} + +func (c *Connections) getByGnetID(gnetID uint64) *connection { + c.Lock() + defer c.Unlock() + + if gnetID == 0 { + return nil + } + + addr := c.gnetIDs[gnetID] + if addr == "" { + return nil + } + + return c.conns[addr] +} + +// modify modifies a connection. +// It is unsafe to modify the Mirror value with this method +func (c *Connections) modify(addr string, gnetID uint64, f func(c *ConnectionDetails)) error { + conn := c.conns[addr] + if conn == nil { + return ErrConnectionNotExist + } + + if conn.gnetID != gnetID { + return ErrConnectionGnetIDMismatch + } + + // copy and modify + cd := conn.ConnectionDetails + + f(&cd) + + // compare to original + if cd.Mirror != conn.ConnectionDetails.Mirror { + logger.WithFields(logrus.Fields{ + "addr": addr, + "gnetID": gnetID, + }).Panic("Connections.modify connection Mirror was changed") + } + + if cd.ListenPort != conn.ConnectionDetails.ListenPort { + logger.WithFields(logrus.Fields{ + "addr": addr, + "gnetID": gnetID, + }).Panic("Connections.modify connection ListenPort was changed") + } + + conn.ConnectionDetails = cd + + return nil +} + +// SetHeight sets the height for a connection +func (c *Connections) SetHeight(addr string, gnetID uint64, height uint64) error { + c.Lock() + defer c.Unlock() + + return c.modify(addr, gnetID, func(c *ConnectionDetails) { + c.Height = height + }) +} + +func (c *Connections) updateMirror(ip string, mirror uint32, port uint16) error { + x := c.mirrors[mirror] + if x == nil { + x = make(map[string]uint16, 2) + } + + if _, ok := x[ip]; ok { + return ErrConnectionIPMirrorExists + } + + x[ip] = port + c.mirrors[mirror] = x + + return nil +} + +// canUpdateMirror returns false if a connection already exists with the same base IP and mirror value. +// This prevents duplicate connections to/from a single client. +func (c *Connections) canUpdateMirror(ip string, mirror uint32) error { + x := c.mirrors[mirror] + if x == nil { + return nil + } + + if _, ok := x[ip]; ok { + return ErrConnectionIPMirrorExists + } + + return nil +} + +// IPCount returns the number of connections for a given base IP (without port) +func (c *Connections) IPCount(ip string) int { + c.Lock() + defer c.Unlock() + return c.ipCounts[ip] +} + +// Len returns number of connections +func (c *Connections) Len() int { + c.Lock() + defer c.Unlock() + return len(c.conns) +} + +// OutgoingLen returns number of outgoing connections +func (c *Connections) OutgoingLen() int { + c.Lock() + defer c.Unlock() + n := 0 + for _, conn := range c.conns { + if conn.Outgoing { + n++ + } + } + return n +} + +// PendingLen returns the number of status pending connections +func (c *Connections) PendingLen() int { + c.Lock() + defer c.Unlock() + n := 0 + for _, conn := range c.conns { + if conn.State == ConnectionStatePending { + n++ + } + } + return n +} + +// remove removes connection. Returns an error if the addr is invalid. +// If a connection with this address does not exist, nothing happens. +func (c *Connections) remove(addr string, gnetID uint64) error { + c.Lock() + defer c.Unlock() + + ip, _, err := iputil.SplitAddr(addr) + if err != nil { + logger.Critical().WithError(err).Error("Connections.remove called with invalid addr") + return err + } + + conn := c.conns[addr] + if conn == nil { + return ErrConnectionNotExist + } + + fields := logrus.Fields{ + "addr": addr, + "connGnetID": conn.gnetID, + "gnetID": gnetID, + "listenPort": conn.ListenPort, + } + + if conn.gnetID != gnetID { + logger.Critical().WithFields(fields).Warning("Connections.remove gnetID does not match") + return ErrConnectionGnetIDMismatch + } + + x, ok := c.mirrors[conn.Mirror] + if ok { + if x[ip] != conn.ListenPort { + logger.Critical().WithFields(fields).Warning("Indexed IP+Mirror value found but the ListenPort doesn't match") + } + + delete(x, ip) + } + + if len(x) == 0 { + delete(c.mirrors, conn.Mirror) + } + + if c.ipCounts[ip] > 0 { + c.ipCounts[ip]-- + } else { + logger.Critical().WithFields(fields).Warning("ipCount was already 0 when removing existing address") + } + + listenAddr := conn.ListenAddr() + if listenAddr != "" { + addrs := c.listenAddrs[listenAddr] + for i, a := range addrs { + if a == conn.Addr { + addrs = append(addrs[:i], addrs[i+1:]...) + break + } + } + if len(addrs) == 0 { + delete(c.listenAddrs, listenAddr) + } else { + c.listenAddrs[listenAddr] = addrs + } + } + + delete(c.gnetIDs, conn.gnetID) + delete(c.conns, addr) + + return nil +} + +// all returns a copy of all connections +func (c *Connections) all() []connection { + c.Lock() + defer c.Unlock() + + conns := make([]connection, 0, len(c.conns)) + for _, c := range c.conns { + conns = append(conns, *c) + } + + return conns +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/daemon.go b/vendor/github.com/skycoin/skycoin/src/daemon/daemon.go new file mode 100644 index 000000000..4ee1c3756 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/daemon.go @@ -0,0 +1,1786 @@ +/* +Package daemon controls the networking layer of the skycoin daemon +*/ +package daemon + +import ( + "errors" + "fmt" + "math/rand" + "reflect" + "sort" + "strings" + "sync" + "time" + + "github.com/sirupsen/logrus" + "github.com/skycoin/skycoin/src/transaction" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/daemon/gnet" + "github.com/skycoin/skycoin/src/daemon/pex" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/util/elapse" + "github.com/skycoin/skycoin/src/util/fee" + "github.com/skycoin/skycoin/src/util/iputil" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/util/useragent" + "github.com/skycoin/skycoin/src/visor" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + // ErrNetworkingDisabled is returned if networking is disabled + ErrNetworkingDisabled = errors.New("Networking is disabled") + // ErrNoPeerAcceptsTxn is returned if no peer will propagate a transaction broadcasted with BroadcastUserTransaction + ErrNoPeerAcceptsTxn = errors.New("No peer will propagate this transaction") + + logger = logging.MustGetLogger("daemon") +) + +// IsBroadcastFailure returns true if an error indicates that a broadcast operation failed +func IsBroadcastFailure(err error) bool { + switch err { + case ErrNetworkingDisabled, + gnet.ErrPoolEmpty, + gnet.ErrNoMatchingConnections, + gnet.ErrNoReachableConnections, + gnet.ErrNoAddresses: + return true + default: + return false + } +} + +const ( + daemonRunDurationThreshold = time.Millisecond * 200 +) + +// Config subsystem configurations +type Config struct { + Daemon DaemonConfig + Messages MessagesConfig + Pool PoolConfig + Pex pex.Config +} + +// NewConfig returns a Config with defaults set +func NewConfig() Config { + return Config{ + Daemon: NewDaemonConfig(), + Pool: NewPoolConfig(), + Pex: pex.NewConfig(), + Messages: NewMessagesConfig(), + } +} + +// preprocess preprocess for config +func (cfg *Config) preprocess() (Config, error) { + config := *cfg + if config.Daemon.LocalhostOnly { + if config.Daemon.Address == "" { + local, err := iputil.LocalhostIP() + if err != nil { + logger.WithError(err).Panic("Failed to obtain localhost IP") + } + config.Daemon.Address = local + } else { + if !iputil.IsLocalhost(config.Daemon.Address) { + logger.WithField("addr", config.Daemon.Address).Panic("Invalid address for localhost-only") + } + } + config.Pex.AllowLocalhost = true + } + config.Pool.port = config.Daemon.Port + config.Pool.address = config.Daemon.Address + + if config.Daemon.DisableNetworking { + logger.Info("Networking is disabled") + config.Pex.Disabled = true + config.Daemon.DisableIncomingConnections = true + config.Daemon.DisableOutgoingConnections = true + } else { + if config.Daemon.DisableIncomingConnections { + logger.Info("Incoming connections are disabled.") + } + if config.Daemon.DisableOutgoingConnections { + logger.Info("Outgoing connections are disabled.") + } + } + + if config.Daemon.MaxConnections < config.Daemon.MaxOutgoingConnections { + return Config{}, errors.New("MaxOutgoingConnections cannot be more than MaxConnections") + } + + if config.Daemon.MaxPendingConnections > config.Daemon.MaxOutgoingConnections { + config.Daemon.MaxPendingConnections = config.Daemon.MaxOutgoingConnections + } + + // MaxOutgoingMessageLength must be able to fit a GiveBlocksMessage with at least one maximum-sized block, + // otherwise it cannot send certain blocks. + // Blocks are the largest object sent over the network, so MaxBlockTransactionsSize is used as an upper limit + maxSizeGBM := maxSizeGiveBlocksMessage(config.Daemon.MaxBlockTransactionsSize) + if config.Daemon.MaxOutgoingMessageLength < maxSizeGBM { + return Config{}, fmt.Errorf("MaxOutgoingMessageLength must be >= %d", maxSizeGBM) + } + + userAgent, err := config.Daemon.UserAgent.Build() + if err != nil { + return Config{}, err + } + if userAgent == "" { + return Config{}, errors.New("user agent is required") + } + config.Daemon.userAgent = userAgent + + return config, nil +} + +// maxSizeGiveBlocksMessage return the encoded size of a GiveBlocksMessage +// with a single signed block of the largest possible size +func maxSizeGiveBlocksMessage(maxBlockSize uint32) uint64 { + size := uint64(4) // message type prefix + size += encodeSizeGiveBlocksMessage(&GiveBlocksMessage{}) // size of an empty GiveBlocksMessage + size += encodeSizeSignedBlock(&coin.SignedBlock{}) // size of an empty SignedBlock + size += uint64(maxBlockSize) // maximum size of all transactions in a block + return size +} + +// DaemonConfig configuration for the Daemon +type DaemonConfig struct { //nolint:golint + // Protocol version. TODO -- manage version better + ProtocolVersion int32 + // Minimum accepted protocol version + MinProtocolVersion int32 + // IP Address to serve on. Leave empty for automatic assignment + Address string + // BlockchainPubkey blockchain pubkey string + BlockchainPubkey cipher.PubKey + // GenesisHash genesis block hash + GenesisHash cipher.SHA256 + // TCP/UDP port for connections + Port int + // Directory where application data is stored + DataDirectory string + // How often to check and initiate an outgoing connection to a trusted connection if needed + OutgoingTrustedRate time.Duration + // How often to check and initiate an outgoing connection if needed + OutgoingRate time.Duration + // Maximum number of connections + MaxConnections int + // Number of outgoing connections to maintain + MaxOutgoingConnections int + // Maximum number of connections to try at once + MaxPendingConnections int + // How long to wait for a version packet + IntroductionWait time.Duration + // How often to check for peers that have decided to stop communicating + CullInvalidRate time.Duration + // How often to update the database with transaction announcement timestamps + FlushAnnouncedTxnsRate time.Duration + // How many connections are allowed from the same base IP + IPCountsMax int + // Disable all networking activity + DisableNetworking bool + // Don't make outgoing connections + DisableOutgoingConnections bool + // Don't allow incoming connections + DisableIncomingConnections bool + // Run on localhost and only connect to localhost peers + LocalhostOnly bool + // Log ping and pong messages + LogPings bool + // How often to request blocks from peers + BlocksRequestRate time.Duration + // How often to announce our blocks to peers + BlocksAnnounceRate time.Duration + // How many blocks to request in a GetBlocksMessage + GetBlocksRequestCount uint64 + // Maximum number of blocks to respond with to a GetBlocksMessage + MaxGetBlocksResponseCount uint64 + // Max announce txns hash number + MaxTxnAnnounceNum int + // How often new blocks are created by the signing node, in seconds + BlockCreationInterval uint64 + // How often to check the unconfirmed pool for transactions that become valid + UnconfirmedRefreshRate time.Duration + // How often to remove transactions that become permanently invalid from the unconfirmed pool + UnconfirmedRemoveInvalidRate time.Duration + // Default "trusted" peers + DefaultConnections []string + // User agent (sent in introduction messages) + UserAgent useragent.Data + userAgent string // parsed from UserAgent in preprocess() + // Transaction verification parameters for unconfirmed transactions + UnconfirmedVerifyTxn params.VerifyTxn + // Random nonce value for detecting self-connection in introduction messages + Mirror uint32 + // Maximum size of incoming messages + MaxIncomingMessageLength uint64 + // Maximum size of incoming messages + MaxOutgoingMessageLength uint64 + // Maximum total size of transactions in a block + MaxBlockTransactionsSize uint32 + // Maximum number of blocks to response on /api/v1/last_blocks API + MaxLastBlocksCount uint64 +} + +// NewDaemonConfig creates daemon config +func NewDaemonConfig() DaemonConfig { + return DaemonConfig{ + ProtocolVersion: 2, + MinProtocolVersion: 2, + Address: "", + Port: 6677, + OutgoingRate: time.Second * 5, + OutgoingTrustedRate: time.Millisecond * 100, + MaxConnections: 128, + MaxOutgoingConnections: 8, + MaxPendingConnections: 8, + IntroductionWait: time.Second * 30, + CullInvalidRate: time.Second * 3, + FlushAnnouncedTxnsRate: time.Second * 3, + IPCountsMax: 3, + DisableNetworking: false, + DisableOutgoingConnections: false, + DisableIncomingConnections: false, + LocalhostOnly: false, + LogPings: true, + BlocksRequestRate: time.Second * 60, + BlocksAnnounceRate: time.Second * 60, + GetBlocksRequestCount: 20, + MaxGetBlocksResponseCount: 20, + MaxTxnAnnounceNum: 16, + BlockCreationInterval: 10, + UnconfirmedRefreshRate: time.Minute, + UnconfirmedRemoveInvalidRate: time.Minute, + Mirror: rand.New(rand.NewSource(time.Now().UTC().UnixNano())).Uint32(), + UnconfirmedVerifyTxn: params.UserVerifyTxn, + MaxOutgoingMessageLength: 256 * 1024, + MaxIncomingMessageLength: 1024 * 1024, + MaxBlockTransactionsSize: 32768, + } +} + +//go:generate mockery -name daemoner -case underscore -inpkg -testonly + +// daemoner Daemon interface +type daemoner interface { + Disconnect(addr string, r gnet.DisconnectReason) error + DaemonConfig() DaemonConfig + sendMessage(addr string, msg gnet.Message) error + broadcastMessage(msg gnet.Message) ([]uint64, error) + disconnectNow(addr string, r gnet.DisconnectReason) error + addPeers(addrs []string) int + recordPeerHeight(addr string, gnetID, height uint64) + getSignedBlocksSince(seq, count uint64) ([]coin.SignedBlock, error) + headBkSeq() (uint64, bool, error) + executeSignedBlock(b coin.SignedBlock) error + filterKnownUnconfirmed(txns []cipher.SHA256) ([]cipher.SHA256, error) + getKnownUnconfirmed(txns []cipher.SHA256) (coin.Transactions, error) + requestBlocksFromAddr(addr string) error + announceAllValidTxns() error + pexConfig() pex.Config + injectTransaction(txn coin.Transaction) (bool, *transaction.ErrTxnViolatesSoftConstraint, error) + recordMessageEvent(m asyncMessage, c *gnet.MessageContext) error + connectionIntroduced(addr string, gnetID uint64, m *IntroductionMessage) (*connection, error) + sendRandomPeers(addr string) error +} + +// Daemon stateful properties of the daemon +type Daemon struct { + // Daemon configuration + config DaemonConfig + + // Components + Messages *Messages + pool *Pool + pex *pex.Pex + visor *visor.Visor + + // Cache of announced transactions that are flushed to the database periodically + announcedTxns *announcedTxnsCache + // Cache of connection metadata + connections *Connections + // connect, disconnect, message, error events channel + events chan interface{} + // quit channel + quit chan struct{} + // done channel + done chan struct{} +} + +// New returns a Daemon with primitives allocated +func New(config Config, v *visor.Visor) (*Daemon, error) { + config, err := config.preprocess() + if err != nil { + return nil, err + } + + pex, err := pex.New(config.Pex) + if err != nil { + return nil, err + } + + messages := NewMessages(config.Messages) + messages.Config.Register() + + d := &Daemon{ + config: config.Daemon, + Messages: messages, + pex: pex, + visor: v, + + announcedTxns: newAnnouncedTxnsCache(), + connections: NewConnections(), + events: make(chan interface{}, config.Pool.EventChannelSize), + quit: make(chan struct{}), + done: make(chan struct{}), + } + + d.pool, err = NewPool(config.Pool, d) + if err != nil { + return nil, err + } + + return d, nil +} + +// ConnectEvent generated when a client connects +type ConnectEvent struct { + GnetID uint64 + Addr string + Solicited bool +} + +// DisconnectEvent generated when a connection terminated +type DisconnectEvent struct { + GnetID uint64 + Addr string + Reason gnet.DisconnectReason +} + +// ConnectFailureEvent represent a failure to connect/dial a connection, with context +type ConnectFailureEvent struct { + Addr string + Solicited bool + Error error +} + +// messageEvent encapsulates a deserialized message from the network +type messageEvent struct { + Message asyncMessage + Context *gnet.MessageContext +} + +// Shutdown terminates all subsystems safely +func (dm *Daemon) Shutdown() { + defer logger.Info("Daemon shutdown complete") + + // close daemon run loop first to avoid creating new connection after + // the connection pool is shutdown. + logger.Info("Stopping the daemon run loop") + close(dm.quit) + + logger.Info("Shutting down Pool") + dm.pool.Shutdown() + + logger.Info("Shutting down Pex") + dm.pex.Shutdown() + + <-dm.done +} + +// Run main loop for peer/connection management +func (dm *Daemon) Run() error { + defer logger.Info("Daemon closed") + defer close(dm.done) + + logger.Infof("Daemon UserAgent is %s", dm.config.userAgent) + logger.Infof("Daemon unconfirmed BurnFactor is %d", dm.config.UnconfirmedVerifyTxn.BurnFactor) + logger.Infof("Daemon unconfirmed MaxTransactionSize is %d", dm.config.UnconfirmedVerifyTxn.MaxTransactionSize) + logger.Infof("Daemon unconfirmed MaxDropletPrecision is %d", dm.config.UnconfirmedVerifyTxn.MaxDropletPrecision) + + errC := make(chan error, 5) + var wg sync.WaitGroup + wg.Add(1) + go dm.startPex(&wg, errC) + wg.Add(1) + go dm.startConnPool(&wg, errC) + + blockInterval := time.Duration(dm.config.BlockCreationInterval) + blockCreationTicker := time.NewTicker(time.Second * blockInterval) + if !dm.visor.Config.IsBlockPublisher { + blockCreationTicker.Stop() + } + + blocksRequestTicker := time.NewTicker(dm.config.BlocksRequestRate) + defer blocksRequestTicker.Stop() + blocksAnnounceTicker := time.NewTicker(dm.config.BlocksAnnounceRate) + defer blocksAnnounceTicker.Stop() + + flushAnnouncedTxnsTicker := time.NewTicker(dm.config.FlushAnnouncedTxnsRate) + defer flushAnnouncedTxnsTicker.Stop() + + // Try to connect to limited trusted public peers + if !dm.config.DisableOutgoingConnections { + wg.Add(1) + go func() { + defer wg.Done() + if err := dm.maybeConnectToTrustedPeer(); err != nil { + logger.WithError(err).Error("Try to connect to trusted peer failed") + } + }() + } + + var setupErr error + elapser := elapse.NewElapser(daemonRunDurationThreshold, logger) + wg.Add(1) + go dm.startMessageSendResultProcess(&wg) + wg.Add(1) + go dm.startUnconfirmedTxnsProcess(&wg) + +loop: + for { + elapser.CheckForDone() + select { + case <-dm.quit: + break loop + + case r := <-dm.events: + elapser.Register("dm.event") + if dm.config.DisableNetworking { + logger.Critical().Error("Networking is disabled, there should be no events") + } else { + dm.handleEvent(r) + } + + case <-flushAnnouncedTxnsTicker.C: + elapser.Register("flushAnnouncedTxnsTicker") + txns := dm.announcedTxns.flush() + + if err := dm.visor.SetTransactionsAnnounced(txns); err != nil { + logger.WithError(err).Error("Failed to set unconfirmed txn announce time") + } + + case <-blockCreationTicker.C: + // Create blocks, if block publisher + elapser.Register("blockCreationTicker.C") + if dm.visor.Config.IsBlockPublisher { + sb, err := dm.createAndPublishBlock() + if err != nil { + logger.WithError(err).Error("Failed to create and publish block") + continue + } + + // Not a critical error, but we want it visible in logs + head := sb.Block.Head + logger.Critical().WithFields(logrus.Fields{ + "version": head.Version, + "seq": head.BkSeq, + "time": head.Time, + }).Info("Created and published a new block") + } + + case <-blocksRequestTicker.C: + elapser.Register("blocksRequestTicker") + if err := dm.requestBlocks(); err != nil { + logger.WithError(err).Warning("requestBlocks failed") + } + + case <-blocksAnnounceTicker.C: + elapser.Register("blocksAnnounceTicker") + if err := dm.announceBlocks(); err != nil { + logger.WithError(err).Warning("announceBlocks failed") + } + + case setupErr = <-errC: + logger.WithError(setupErr).Error("read from errc") + break loop + } + } + + if setupErr != nil { + return setupErr + } + + wg.Wait() + + return nil +} + +func (dm *Daemon) startPex(wg *sync.WaitGroup, errC chan error) { + defer wg.Done() + go func() { + if err := dm.pex.Run(); err != nil { + logger.WithError(err).Error("daemon.Pex.Run failed") + errC <- err + } + }() + + elapser := elapse.NewElapser(daemonRunDurationThreshold, logger) + requestPeersTicker := time.NewTicker(dm.pex.Config.RequestRate) + defer requestPeersTicker.Stop() + + for { + select { + case <-dm.quit: + return + case <-requestPeersTicker.C: + // Request peers via PEX + elapser.Register("requestPeersTicker") + if dm.pex.Config.Disabled { + continue + } + + if dm.pex.IsFull() { + continue + } + + m := NewGetPeersMessage() + if _, err := dm.broadcastMessage(m); err != nil { + logger.WithError(err).Error("Broadcast GetPeersMessage failed") + continue + } + } + } +} + +func (dm *Daemon) startConnPool(wg *sync.WaitGroup, errC chan error) { + defer wg.Done() + go func() { + if dm.config.DisableIncomingConnections { + if err := dm.pool.RunOffline(); err != nil { + logger.WithError(err).Error("daemon.Pool.RunOffline failed") + errC <- err + } + } else { + if err := dm.pool.Run(); err != nil { + logger.WithError(err).Error("daemon.Pool.Run failed") + errC <- err + } + } + }() + + elapser := elapse.NewElapser(daemonRunDurationThreshold, logger) + + idleCheckTicker := time.NewTicker(dm.pool.Config.IdleCheckRate) + defer idleCheckTicker.Stop() + cullInvalidTicker := time.NewTicker(dm.config.CullInvalidRate) + defer cullInvalidTicker.Stop() + clearStaleConnectionsTicker := time.NewTicker(dm.pool.Config.ClearStaleRate) + defer clearStaleConnectionsTicker.Stop() + + // outgoingTrustedConnectionsTicker is used to maintain at least two connections to trusted peers. + // This may be configured at a very frequent rate, so if no trusted connections could be reached, + // there could be a lot of churn. + // The additional outgoingTrustedConnectionsTicker parameters are used to + // skip ticks of the outgoingTrustedConnectionsTicker in the event of total failure. + // outgoingTrustedConnectionsTickerSkipDuration is the minimum time to wait between + // ticks in the event of total failure. + outgoingTrustedConnectionsTicker := time.NewTicker(dm.config.OutgoingTrustedRate) + defer outgoingTrustedConnectionsTicker.Stop() + outgoingTrustedConnectionsTickerSkipDuration := time.Second * 5 + outgoingTrustedConnectionsTickerSkip := false + var outgoingTrustedConnectionsTickerSkipStart time.Time + + outgoingConnectionsTicker := time.NewTicker(dm.config.OutgoingRate) + defer outgoingConnectionsTicker.Stop() + for { + select { + case <-dm.quit: + return + case <-outgoingConnectionsTicker.C: + // Fill up our outgoing connections + elapser.Register("outgoingConnectionsTicker") + dm.connectToRandomPeer() + + case <-outgoingTrustedConnectionsTicker.C: + // Try to maintain at least one trusted connection + elapser.Register("outgoingTrustedConnectionsTicker") + // If connecting to a trusted peer totally fails, make sure to wait longer between further attempts + if outgoingTrustedConnectionsTickerSkip { + if time.Since(outgoingTrustedConnectionsTickerSkipStart) < outgoingTrustedConnectionsTickerSkipDuration { + continue + } + } + + if err := dm.maybeConnectToTrustedPeer(); err != nil && err != ErrNetworkingDisabled { + logger.Critical().WithError(err).Error("maybeConnectToTrustedPeer") + outgoingTrustedConnectionsTickerSkip = true + outgoingTrustedConnectionsTickerSkipStart = time.Now() + } else { + outgoingTrustedConnectionsTickerSkip = false + } + + case <-idleCheckTicker.C: + // Sends pings as needed + elapser.Register("idleCheckTicker") + if !dm.config.DisableNetworking { + dm.pool.sendPings() + } + case <-cullInvalidTicker.C: + // Remove connections that failed to complete the handshake + elapser.Register("cullInvalidTicker") + if !dm.config.DisableNetworking { + dm.cullInvalidConnections() + } + + case <-clearStaleConnectionsTicker.C: + // Remove connections that haven't said anything in a while + elapser.Register("clearStaleConnectionsTicker") + if !dm.config.DisableNetworking { + conns, err := dm.pool.getStaleConnections() + if err != nil { + logger.WithError(err).Error("getStaleConnections failed") + continue + } + + for _, addr := range conns { + if err := dm.Disconnect(addr, ErrDisconnectIdle); err != nil { + logger.WithError(err).WithField("addr", addr).Error("Disconnect") + } + } + } + } + } +} + +// Process SendResults in a separate goroutine, otherwise SendResults +// will fill up much faster than can be processed by the daemon run loop +// dm.handleMessageSendResult must take care not to perform any operation +// that would violate thread safety, since it is not serialized by the daemon run loop +func (dm *Daemon) startMessageSendResultProcess(wg *sync.WaitGroup) { + defer wg.Done() + elapser := elapse.NewElapser(daemonRunDurationThreshold, logger) + for { + elapser.CheckForDone() + select { + case <-dm.quit: + return + + case r := <-dm.pool.Pool.SendResults: + // Process message sending results + elapser.Register("dm.Pool.Pool.SendResults") + if dm.config.DisableNetworking { + logger.Error("There should be nothing in SendResults") + return + } + dm.handleMessageSendResult(r) + } + } +} + +func (dm *Daemon) startUnconfirmedTxnsProcess(wg *sync.WaitGroup) { + unconfirmedRefreshTicker := time.NewTicker(dm.config.UnconfirmedRefreshRate) + defer unconfirmedRefreshTicker.Stop() + unconfirmedRemoveInvalidTicker := time.NewTicker(dm.config.UnconfirmedRemoveInvalidRate) + defer unconfirmedRemoveInvalidTicker.Stop() + elapser := elapse.NewElapser(daemonRunDurationThreshold, logger) + defer wg.Done() + for { + select { + case <-dm.quit: + return + case <-unconfirmedRefreshTicker.C: + elapser.Register("unconfirmedRefreshTicker") + // Get the transactions that turn to valid + validTxns, err := dm.visor.RefreshUnconfirmed() + if err != nil { + logger.WithError(err).Error("dm.Visor.RefreshUnconfirmed failed") + continue + } + // Announce these transactions + if err := dm.announceTxnHashes(validTxns); err != nil { + logger.WithError(err).Warning("announceTxnHashes failed") + } + case <-unconfirmedRemoveInvalidTicker.C: + elapser.Register("unconfirmedRemoveInvalidTicker") + // Remove transactions that become invalid (violating hard constraints) + removedTxns, err := dm.visor.RemoveInvalidUnconfirmed() + if err != nil { + logger.WithError(err).Error("dm.Visor.RemoveInvalidUnconfirmed failed") + continue + } + if len(removedTxns) > 0 { + logger.Infof("Remove %d txns from pool that began violating hard constraints", len(removedTxns)) + } + } + } +} + +// Connects to a given peer. Returns an error if no connection attempt was +// made. If the connection attempt itself fails, the error is sent to +// the connectionErrors channel. +func (dm *Daemon) connectToPeer(p pex.Peer) error { + if dm.config.DisableOutgoingConnections { + return errors.New("Outgoing connections disabled") + } + + a, _, err := iputil.SplitAddr(p.Addr) + if err != nil { + logger.Critical().WithField("addr", p.Addr).WithError(err).Warning("PEX gave us an invalid peer") + return errors.New("Invalid peer") + } + + if dm.config.LocalhostOnly && !iputil.IsLocalhost(a) { + return errors.New("Not localhost") + } + + if c := dm.connections.get(p.Addr); c != nil { + return errors.New("Already connected to this peer") + } + + cnt := dm.connections.IPCount(a) + if !dm.config.LocalhostOnly && cnt != 0 { + return errors.New("Already connected to a peer with this base IP") + } + + logger.WithField("addr", p.Addr).Debug("Establishing outgoing connection") + + if _, err := dm.connections.pending(p.Addr); err != nil { + logger.Critical().WithError(err).WithField("addr", p.Addr).Error("dm.connections.pending failed") + return err + } + + go func() { + if err := dm.pool.Pool.Connect(p.Addr); err != nil { + dm.events <- ConnectFailureEvent{ + Addr: p.Addr, + Solicited: true, + Error: err, + } + } + }() + return nil +} + +// maybeConnectToTrustedPeer tries to connect to limited number of trusted peer +func (dm *Daemon) maybeConnectToTrustedPeer() error { + if dm.config.DisableOutgoingConnections { + return ErrNetworkingDisabled + } + + if dm.pool.IsMaxOutgoingDefaultConnectionsReached() { + return nil + } + + var triedPeers int + peers := dm.pex.Trusted() + for _, p := range peers { + if err := dm.connectToPeer(p); err != nil { + logger.WithError(err).WithField("addr", p.Addr).Warning("maybeConnectToTrustedPeer: connectToPeer failed") + continue + } + triedPeers++ + if triedPeers >= dm.maxDefaultOutgoingConnections() { + break + } + } + + if triedPeers == 0 { + return errors.New("Could not connect to any trusted peer") + } + + return nil +} + +func (dm Daemon) maxDefaultOutgoingConnections() int { + return dm.pool.Config.MaxDefaultPeerOutgoingConnections +} + +// connectToRandomPeer attempts to connect to a random peer. If it fails, the peer is removed. +func (dm *Daemon) connectToRandomPeer() { + if dm.config.DisableOutgoingConnections { + return + } + if dm.connections.OutgoingLen() >= dm.config.MaxOutgoingConnections { + return + } + if dm.connections.PendingLen() >= dm.config.MaxPendingConnections { + return + } + if dm.connections.Len() >= dm.config.MaxConnections { + return + } + + // Make a connection to a random (public) peer + peers := dm.pex.Random(dm.config.MaxOutgoingConnections - dm.connections.OutgoingLen()) + for _, p := range peers { + if err := dm.connectToPeer(p); err != nil { + logger.WithError(err).WithField("addr", p.Addr).Warning("connectToPeer failed") + } + } + + // TODO -- don't reset if not needed? + if len(peers) == 0 { + dm.pex.ResetAllRetryTimes() + } +} + +// Removes connections who haven't sent a version after connecting +func (dm *Daemon) cullInvalidConnections() { + now := time.Now().UTC() + for _, c := range dm.connections.all() { + if c.State != ConnectionStateConnected { + continue + } + + if c.ConnectedAt.Add(dm.config.IntroductionWait).Before(now) { + logger.WithField("addr", c.Addr).Info("Disconnecting peer for not sending a version") + if err := dm.Disconnect(c.Addr, ErrDisconnectIntroductionTimeout); err != nil { + logger.WithError(err).WithField("addr", c.Addr).Error("Disconnect") + } + } + } +} + +func (dm *Daemon) isTrustedPeer(addr string) bool { + peer, ok := dm.pex.GetPeer(addr) + if !ok { + return false + } + + return peer.Trusted +} + +// recordMessageEvent records an asyncMessage to the messageEvent chan. Do not access +// messageEvent directly. +func (dm *Daemon) recordMessageEvent(m asyncMessage, c *gnet.MessageContext) error { + dm.events <- messageEvent{ + Message: m, + Context: c, + } + return nil +} + +func (dm *Daemon) handleEvent(e interface{}) { + switch x := e.(type) { + case messageEvent: + dm.onMessageEvent(x) + case ConnectEvent: + dm.onConnectEvent(x) + case DisconnectEvent: + dm.onDisconnectEvent(x) + case ConnectFailureEvent: + dm.onConnectFailure(x) + default: + logger.WithFields(logrus.Fields{ + "type": fmt.Sprintf("%T", e), + "value": fmt.Sprintf("%+v", e), + }).Panic("Invalid object in events queue") + } +} + +func (dm *Daemon) onMessageEvent(e messageEvent) { + // If the connection does not exist or the gnet ID is different, abort message processing + // This can occur because messageEvents for a given connection may occur + // after that connection has disconnected. + c := dm.connections.get(e.Context.Addr) + if c == nil { + logger.WithFields(logrus.Fields{ + "addr": e.Context.Addr, + "messageType": fmt.Sprintf("%T", e.Message), + }).Info("onMessageEvent no connection found") + return + } + + if c.gnetID != e.Context.ConnID { + logger.WithFields(logrus.Fields{ + "addr": e.Context.Addr, + "connGnetID": c.gnetID, + "contextGnetID": e.Context.ConnID, + "messageType": fmt.Sprintf("%T", e.Message), + }).Info("onMessageEvent connection gnetID does not match") + return + } + + // The first message received must be INTR, DISC or GIVP + if !c.HasIntroduced() { + switch e.Message.(type) { + case *IntroductionMessage, *DisconnectMessage, *GivePeersMessage: + default: + logger.WithFields(logrus.Fields{ + "addr": e.Context.Addr, + "messageType": fmt.Sprintf("%T", e.Message), + }).Info("needsIntro but first message is not INTR, DISC or GIVP") + if err := dm.Disconnect(e.Context.Addr, ErrDisconnectNoIntroduction); err != nil { + logger.WithError(err).WithField("addr", e.Context.Addr).Error("Disconnect") + } + return + } + } + + e.Message.process(dm) +} + +func (dm *Daemon) onConnectEvent(e ConnectEvent) { + fields := logrus.Fields{ + "addr": e.Addr, + "outgoing": e.Solicited, + "gnetID": e.GnetID, + } + logger.WithFields(fields).Info("onConnectEvent") + + // Update the connections state machine first + c, err := dm.connections.connected(e.Addr, e.GnetID) + if err != nil { + logger.Critical().WithError(err).WithFields(fields).Error("connections.Connected failed") + if err := dm.Disconnect(e.Addr, ErrDisconnectUnexpectedError); err != nil { + logger.WithError(err).WithFields(fields).Error("Disconnect") + } + return + } + + // The connection should already be known as outgoing/solicited due to an earlier connections.pending call. + // If they do not match, there is e.Addr flaw in the concept or implementation of the state machine. + if c.Outgoing != e.Solicited { + logger.Critical().WithFields(fields).Warning("Connection.Outgoing does not match ConnectEvent.Solicited state") + } + + if dm.ipCountMaxed(e.Addr) { + logger.WithFields(fields).Info("Max connections for this IP address reached, disconnecting") + if err := dm.Disconnect(e.Addr, ErrDisconnectIPLimitReached); err != nil { + logger.WithError(err).WithFields(fields).Error("Disconnect") + } + return + } + + logger.WithFields(fields).Debug("Sending introduction message") + + if err := dm.sendMessage(e.Addr, NewIntroductionMessage( + dm.config.Mirror, + dm.config.ProtocolVersion, + dm.pool.Pool.Config.Port, + dm.config.BlockchainPubkey, + dm.config.userAgent, + dm.config.UnconfirmedVerifyTxn, + dm.config.GenesisHash, + )); err != nil { + logger.WithFields(fields).WithError(err).Error("Send IntroductionMessage failed") + return + } +} + +func (dm *Daemon) onDisconnectEvent(e DisconnectEvent) { + fields := logrus.Fields{ + "addr": e.Addr, + "reason": e.Reason, + "gnetID": e.GnetID, + } + logger.WithFields(fields).Info("onDisconnectEvent") + + if err := dm.connections.remove(e.Addr, e.GnetID); err != nil { + logger.WithError(err).WithFields(fields).Error("connections.Remove failed") + return + } + + // TODO -- blacklist peer for certain reasons, not just remove + switch e.Reason { + case ErrDisconnectIntroductionTimeout, + ErrDisconnectBlockchainPubkeyNotMatched, + ErrDisconnectInvalidExtraData, + ErrDisconnectInvalidUserAgent: + if !dm.isTrustedPeer(e.Addr) { + dm.pex.RemovePeer(e.Addr) + } + case ErrDisconnectNoIntroduction, + ErrDisconnectVersionNotSupported, + ErrDisconnectSelf: + dm.pex.IncreaseRetryTimes(e.Addr) + default: + switch e.Reason.Error() { + case "read failed: EOF": + dm.pex.IncreaseRetryTimes(e.Addr) + } + } +} + +func (dm *Daemon) onConnectFailure(c ConnectFailureEvent) { + // Remove the pending connection from connections and update the retry times in pex + logger.WithField("addr", c.Addr).WithError(c.Error).Debug("onConnectFailure") + + // onConnectFailure should only trigger for "pending" connections which have gnet ID 0; + // connections in any other state will have a nonzero gnet ID. + // if the connection is in a different state, the gnet ID will not match, the connection + // won't be removed and we'll receive an error. + // If this happens, it is a bug, and the connections state may be corrupted. + if err := dm.connections.remove(c.Addr, 0); err != nil { + logger.Critical().WithField("addr", c.Addr).WithError(err).Error("connections.remove") + } + + if strings.HasSuffix(c.Error.Error(), "connect: connection refused") { + dm.pex.IncreaseRetryTimes(c.Addr) + } +} + +// onGnetDisconnect triggered when a gnet.Connection terminates +func (dm *Daemon) onGnetDisconnect(addr string, gnetID uint64, reason gnet.DisconnectReason) { + dm.events <- DisconnectEvent{ + GnetID: gnetID, + Addr: addr, + Reason: reason, + } +} + +// onGnetConnect Triggered when a gnet.Connection connects +func (dm *Daemon) onGnetConnect(addr string, gnetID uint64, solicited bool) { + dm.events <- ConnectEvent{ + GnetID: gnetID, + Addr: addr, + Solicited: solicited, + } +} + +// onGnetConnectFailure triggered when a gnet.Connection fails to connect +func (dm *Daemon) onGnetConnectFailure(addr string, solicited bool, err error) { + dm.events <- ConnectFailureEvent{ + Addr: addr, + Solicited: solicited, + Error: err, + } +} + +// Returns whether the ipCount maximum has been reached. +// Always false when using LocalhostOnly config. +func (dm *Daemon) ipCountMaxed(addr string) bool { + ip, _, err := iputil.SplitAddr(addr) + if err != nil { + logger.Critical().WithField("addr", addr).Error("ipCountMaxed called with invalid addr") + return true + } + + return !dm.config.LocalhostOnly && dm.connections.IPCount(ip) >= dm.config.IPCountsMax +} + +// When an async message send finishes, its result is handled by this. +// This method must take care to perform only thread-safe actions, since it is called +// outside of the daemon run loop +func (dm *Daemon) handleMessageSendResult(r gnet.SendResult) { + if r.Error != nil { + var lg logrus.FieldLogger + if r.Error == gnet.ErrMsgExceedsMaxLen { + lg = logger.Critical() + } else { + lg = logger + } + + lg.WithError(r.Error).WithFields(logrus.Fields{ + "addr": r.Addr, + "msgType": reflect.TypeOf(r.Message), + }).Warning("Failed to send message") + return + } + + if m, ok := r.Message.(SendingTxnsMessage); ok { + dm.announcedTxns.add(m.GetFiltered()) + } + + if m, ok := r.Message.(*DisconnectMessage); ok { + if err := dm.disconnectNow(r.Addr, m.reason); err != nil { + logger.WithError(err).WithField("addr", r.Addr).Warning("disconnectNow") + } + } +} + +// requestBlocks sends a GetBlocksMessage to all connections +func (dm *Daemon) requestBlocks() error { + if dm.config.DisableNetworking { + return ErrNetworkingDisabled + } + + headSeq, ok, err := dm.visor.HeadBkSeq() + if err != nil { + return err + } + if !ok { + return errors.New("Cannot request blocks, there is no head block") + } + + m := NewGetBlocksMessage(headSeq, dm.config.GetBlocksRequestCount) + + if _, err := dm.broadcastMessage(m); err != nil { + logger.WithError(err).Debug("Broadcast GetBlocksMessage failed") + return err + } + + return nil +} + +// announceBlocks sends an AnnounceBlocksMessage to all connections +func (dm *Daemon) announceBlocks() error { + if dm.config.DisableNetworking { + return ErrNetworkingDisabled + } + + headSeq, ok, err := dm.visor.HeadBkSeq() + if err != nil { + return err + } + if !ok { + return errors.New("Cannot announce blocks, there is no head block") + } + + m := NewAnnounceBlocksMessage(headSeq) + + if _, err := dm.broadcastMessage(m); err != nil { + logger.WithError(err).Debug("Broadcast AnnounceBlocksMessage failed") + return err + } + + return nil +} + +// createAndPublishBlock creates a block from unconfirmed transactions and sends it to the network. +// Will panic if not running as a block publisher. +// Will not create a block if outgoing connections are disabled. +// If the block was created but the broadcast failed, the error will be non-nil but the +// SignedBlock value will not be empty. +// TODO -- refactor this method -- it should either always create a block and maybe broadcast it, +// or use a database transaction to rollback block publishing if broadcast failed (however, this will cause a slow DB write) +func (dm *Daemon) createAndPublishBlock() (*coin.SignedBlock, error) { + if dm.config.DisableNetworking { + return nil, ErrNetworkingDisabled + } + + sb, err := dm.visor.CreateAndExecuteBlock() + if err != nil { + return nil, err + } + + err = dm.broadcastBlock(sb) + + return &sb, err +} + +// ResendUnconfirmedTxns resends all unconfirmed transactions and returns the hashes that were successfully rebroadcast. +// It does not return an error if broadcasting fails. +func (dm *Daemon) ResendUnconfirmedTxns() ([]cipher.SHA256, error) { + if dm.config.DisableNetworking { + return nil, ErrNetworkingDisabled + } + + txns, err := dm.visor.GetAllUnconfirmedTransactions() + if err != nil { + return nil, err + } + + var txids []cipher.SHA256 + for i := range txns { + txnHash := txns[i].Transaction.Hash() + logger.WithField("txid", txnHash.Hex()).Debug("Rebroadcast transaction") + if _, err := dm.BroadcastTransaction(txns[i].Transaction); err == nil { + txids = append(txids, txnHash) + } + } + + return txids, nil +} + +// BroadcastTransaction broadcasts a single transaction to all peers. +func (dm *Daemon) BroadcastTransaction(txn coin.Transaction) ([]uint64, error) { + if dm.config.DisableNetworking { + return nil, ErrNetworkingDisabled + } + + m := NewGiveTxnsMessage(coin.Transactions{txn}, dm.config.MaxOutgoingMessageLength) + if len(m.Transactions) != 1 { + logger.Critical().Error("NewGiveTxnsMessage truncated its only transaction") + } + + ids, err := dm.broadcastMessage(m) + if err != nil { + logger.WithError(err).Error("Broadcast GiveTxnsMessage failed") + return nil, err + } + + logger.Debugf("BroadcastTransaction to %d conns", len(ids)) + + return ids, nil +} + +// BroadcastUserTransaction broadcasts a single transaction to all peers. +// Returns an error if no peers that would propagate the transaction could be reached. +func (dm *Daemon) BroadcastUserTransaction(txn coin.Transaction, head *coin.SignedBlock, inputs coin.UxArray) error { + ids, err := dm.BroadcastTransaction(txn) + if err != nil { + return err + } + + accepts, err := checkBroadcastTxnRecipients(dm.connections, ids, txn, head, inputs) + if err != nil { + logger.WithError(err).Error("BroadcastUserTransaction") + return err + } + + logger.Debugf("BroadcastUserTransaction transaction propagated by %d/%d conns", accepts, len(ids)) + + return nil +} + +// checkBroadcastTxnRecipients checks whether or not the recipients of a txn broadcast would accept the transaction as valid, +// based upon their reported txn verification parameters. +// If no recipient would accept the txn, an error is returned. +// The number of recipients that claim to accept the transaction is returned. +func checkBroadcastTxnRecipients(connections *Connections, ids []uint64, txn coin.Transaction, head *coin.SignedBlock, inputs coin.UxArray) (int, error) { + // Check if the connections will accept our transaction as valid. + // Clients v24 and earlier do not propagate soft-invalid transactions. + // Clients v24 and earlier do not advertise a user agent. + // Clients v24 and earlier do not advertise their transaction verification parameters, + // but will use defaults of BurnFactor=2, MaxTransactionSize=32768, MaxDropletPrecision=3. + // If none of the connections will propagate our transaction, return an error. + accepts := 0 + + for _, id := range ids { + c := connections.getByGnetID(id) + if c == nil { + continue + } + + if !c.HasIntroduced() { + continue + } + + // If the peer has not set their user agent, they are v24 or earlier. + // v24 and earlier will not propagate a transaction that does not pass soft-validation. + // Check if our transaction would pass their soft-validation, using the hardcoded defaults + // that are used by v24 and earlier. + if c.UserAgent.Empty() { + if err := verifyUserTxnAgainstPeer(txn, head, inputs, params.VerifyTxn{ + BurnFactor: 2, + MaxTransactionSize: 32 * 1024, + MaxDropletPrecision: 3, + }); err != nil { + logger.WithFields(logrus.Fields{ + "addr": c.Addr, + "gnetID": c.gnetID, + }).Debug("Peer will not propagate this transaction") + continue + } + } + + accepts++ + } + + if accepts == 0 { + return 0, ErrNoPeerAcceptsTxn + } + + return accepts, nil +} + +// verifyUserTxnAgainstPeer returns an error if a user-created transaction would not pass soft-validation +// according to a peer's reported verification parameters +func verifyUserTxnAgainstPeer(txn coin.Transaction, head *coin.SignedBlock, inputs coin.UxArray, verifyParams params.VerifyTxn) error { + // Check the droplet precision + for _, o := range txn.Out { + if err := params.DropletPrecisionCheck(verifyParams.MaxDropletPrecision, o.Coins); err != nil { + return err + } + } + + // Check the txn size + txnSize, err := txn.Size() + if err != nil { + logger.Critical().WithError(err).Error("txn.Size failed unexpectedly") + return err + } + + if txnSize > verifyParams.MaxTransactionSize { + return transaction.ErrTxnExceedsMaxBlockSize + } + + // Check the coinhour burn fee + f, err := fee.TransactionFee(&txn, head.Time(), inputs) + if err != nil { + return err + } + + if err := fee.VerifyTransactionFee(&txn, f, verifyParams.BurnFactor); err != nil { + return err + } + + return nil +} + +// Disconnect sends a DisconnectMessage to a peer. After the DisconnectMessage is sent, the peer is disconnected. +// This allows all pending messages to be sent. Any message queued after a DisconnectMessage is unlikely to be sent +// to the peer (but possible). +func (dm *Daemon) Disconnect(addr string, r gnet.DisconnectReason) error { + logger.WithFields(logrus.Fields{ + "addr": addr, + "reason": r, + }).Debug("Sending DisconnectMessage") + return dm.sendMessage(addr, NewDisconnectMessage(r)) +} + +// Implements private daemoner interface methods: + +// requestBlocksFromAddr sends a GetBlocksMessage to one connected address +func (dm *Daemon) requestBlocksFromAddr(addr string) error { + if dm.config.DisableNetworking { + return ErrNetworkingDisabled + } + + headSeq, ok, err := dm.visor.HeadBkSeq() + if err != nil { + return err + } + if !ok { + return errors.New("Cannot request blocks from addr, there is no head block") + } + + m := NewGetBlocksMessage(headSeq, dm.config.GetBlocksRequestCount) + return dm.sendMessage(addr, m) +} + +// broadcastBlock sends a signed block to all connections +func (dm *Daemon) broadcastBlock(sb coin.SignedBlock) error { + if dm.config.DisableNetworking { + return ErrNetworkingDisabled + } + + m := NewGiveBlocksMessage([]coin.SignedBlock{sb}, dm.config.MaxOutgoingMessageLength) + if len(m.Blocks) != 1 { + logger.Critical().Error("NewGiveBlocksMessage truncated its only block") + } + + _, err := dm.broadcastMessage(m) + return err +} + +// DaemonConfig returns the daemon config +func (dm *Daemon) DaemonConfig() DaemonConfig { + return dm.config +} + +// connectionIntroduced transfers a connection to the "introduced" state in the connections state machine +// and updates other state +func (dm *Daemon) connectionIntroduced(addr string, gnetID uint64, m *IntroductionMessage) (*connection, error) { + c, err := dm.connections.introduced(addr, gnetID, m) + if err != nil { + return nil, err + } + + listenAddr := c.ListenAddr() + + fields := logrus.Fields{ + "addr": addr, + "gnetID": m.c.ConnID, + "connGnetID": c.gnetID, + "listenPort": m.ListenPort, + "listenAddr": listenAddr, + } + + if c.Outgoing { + // For successful outgoing connections, mark the peer as having an incoming port in the pex peerlist + // The peer should already be in the peerlist, since we use the peerlist to choose an outgoing connection to make + if err := dm.pex.SetHasIncomingPort(listenAddr, true); err != nil { + logger.Critical().WithError(err).WithFields(fields).Error("pex.SetHasIncomingPort failed") + return nil, err + } + } else { + // For successful incoming connections, add the peer to the peer list, with their self-reported listen port + if err := dm.pex.AddPeer(listenAddr); err != nil { + logger.Critical().WithError(err).WithFields(fields).Error("pex.AddPeer failed") + return nil, err + } + } + + if err := dm.pex.SetUserAgent(listenAddr, c.UserAgent); err != nil { + logger.Critical().WithError(err).WithFields(fields).Error("pex.SetUserAgent failed") + return nil, err + } + + dm.pex.ResetRetryTimes(listenAddr) + + return c, nil +} + +// sendRandomPeers sends a random sample of peers to another peer +func (dm *Daemon) sendRandomPeers(addr string) error { + peers := dm.pex.RandomExchangeable(dm.pex.Config.ReplyCount) + if len(peers) == 0 { + logger.Debug("sendRandomPeers: no peers to send in reply") + return errors.New("No peers available") + } + + m := NewGivePeersMessage(peers, dm.config.MaxOutgoingMessageLength) + + return dm.sendMessage(addr, m) +} + +// announceAllValidTxns broadcasts valid unconfirmed transactions +func (dm *Daemon) announceAllValidTxns() error { + if dm.config.DisableNetworking { + return ErrNetworkingDisabled + } + + // Get valid unconfirmed transaction hashes + hashes, err := dm.visor.GetAllValidUnconfirmedTxHashes() + if err != nil { + return err + } + + return dm.announceTxnHashes(hashes) +} + +// announceTxnHashes announces transaction hashes, splitting them into chunks if they exceed MaxTxnAnnounceNum +func (dm *Daemon) announceTxnHashes(hashes []cipher.SHA256) error { + if dm.config.DisableNetworking { + return ErrNetworkingDisabled + } + + // Divide hashes into multiple sets of max size + hashesSet := divideHashes(hashes, dm.config.MaxTxnAnnounceNum) + + for _, hs := range hashesSet { + m := NewAnnounceTxnsMessage(hs, dm.config.MaxOutgoingMessageLength) + if len(m.Transactions) != len(hs) { + logger.Critical().Error("NewAnnounceTxnsMessage truncated hashes that were already split up") + } + if _, err := dm.broadcastMessage(m); err != nil { + logger.WithError(err).Debug("Broadcast AnnounceTxnsMessage failed") + return err + } + } + + return nil +} + +func divideHashes(hashes []cipher.SHA256, n int) [][]cipher.SHA256 { + if len(hashes) == 0 { + return [][]cipher.SHA256{} + } + + var j int + var hashesArray [][]cipher.SHA256 + + if len(hashes) > n { + for i := range hashes { + if len(hashes[j:i]) == n { + hs := make([]cipher.SHA256, n) + copy(hs, hashes[j:i]) + hashesArray = append(hashesArray, hs) + j = i + } + } + } + + hs := make([]cipher.SHA256, len(hashes)-j) + copy(hs, hashes[j:]) + hashesArray = append(hashesArray, hs) + return hashesArray +} + +// sendMessage sends a Message to a Connection and pushes the result onto the SendResults channel. +func (dm *Daemon) sendMessage(addr string, msg gnet.Message) error { + return dm.pool.Pool.SendMessage(addr, msg) +} + +// broadcastMessage sends a Message to all introduced connections in the Pool. +// Returns the gnet IDs of connections that broadcast succeeded for. +// Note that a connection could still fail to receive the message under certain network conditions, +// there is no guarantee that a message was broadcast. +func (dm *Daemon) broadcastMessage(msg gnet.Message) ([]uint64, error) { + if dm.config.DisableNetworking { + return nil, ErrNetworkingDisabled + } + + conns := dm.connections.all() + var addrs []string + for _, c := range conns { + if c.HasIntroduced() { + addrs = append(addrs, c.Addr) + } + } + + return dm.pool.Pool.BroadcastMessage(msg, addrs) +} + +// disconnectNow disconnects from a peer immediately without sending a DisconnectMessage. Any pending messages +// will not be sent to the peer. +func (dm *Daemon) disconnectNow(addr string, r gnet.DisconnectReason) error { + return dm.pool.Pool.Disconnect(addr, r) +} + +// pexConfig returns the pex config +func (dm *Daemon) pexConfig() pex.Config { + return dm.pex.Config +} + +// addPeers adds peers to the pex +func (dm *Daemon) addPeers(addrs []string) int { + return dm.pex.AddPeers(addrs) +} + +// recordPeerHeight records the height of specific peer +func (dm *Daemon) recordPeerHeight(addr string, gnetID, height uint64) { + if err := dm.connections.SetHeight(addr, gnetID, height); err != nil { + logger.Critical().WithError(err).WithField("addr", addr).Error("connections.SetHeight failed") + } +} + +// getSignedBlocksSince returns N signed blocks since given seq +func (dm *Daemon) getSignedBlocksSince(seq, count uint64) ([]coin.SignedBlock, error) { + return dm.visor.GetSignedBlocksSince(seq, count) +} + +// headBkSeq returns the head block sequence +func (dm *Daemon) headBkSeq() (uint64, bool, error) { + return dm.visor.HeadBkSeq() +} + +// executeSignedBlock executes the signed block +func (dm *Daemon) executeSignedBlock(b coin.SignedBlock) error { + return dm.visor.ExecuteSignedBlock(b) +} + +// filterKnownUnconfirmed returns unconfirmed txn hashes with known ones removed +func (dm *Daemon) filterKnownUnconfirmed(txns []cipher.SHA256) ([]cipher.SHA256, error) { + return dm.visor.FilterKnownUnconfirmed(txns) +} + +// getKnownUnconfirmed returns unconfirmed txn hashes with known ones removed +func (dm *Daemon) getKnownUnconfirmed(txns []cipher.SHA256) (coin.Transactions, error) { + return dm.visor.GetKnownUnconfirmed(txns) +} + +// injectTransaction records a coin.Transaction to the UnconfirmedTxnPool if the txn is not +// already in the blockchain. +// The bool return value is whether or not the transaction was already in the pool. +// If the transaction violates hard constraints, it is rejected, and error will not be nil. +// If the transaction only violates soft constraints, it is still injected, and the soft constraint violation is returned. +func (dm *Daemon) injectTransaction(txn coin.Transaction) (bool, *transaction.ErrTxnViolatesSoftConstraint, error) { + return dm.visor.InjectForeignTransaction(txn) +} + +/* Connection management API */ + +// Connection a connection's state within the daemon +type Connection struct { + Addr string + Pex pex.Peer + Gnet GnetConnectionDetails + ConnectionDetails +} + +// GnetConnectionDetails connection data from gnet +type GnetConnectionDetails struct { + ID uint64 + LastSent time.Time + LastReceived time.Time +} + +func newConnection(dc *connection, gc *gnet.Connection, pp *pex.Peer) Connection { + c := Connection{} + + if dc != nil { + c.Addr = dc.Addr + c.ConnectionDetails = dc.ConnectionDetails + } + + if gc != nil { + c.Gnet = GnetConnectionDetails{ + ID: gc.ID, + LastSent: gc.LastSent, + LastReceived: gc.LastReceived, + } + } + + if pp != nil { + c.Pex = *pp + } + + return c +} + +// newConnection creates a Connection from daemon.connection, gnet.Connection and pex.Peer +func (dm *Daemon) newConnection(c *connection) (*Connection, error) { + if c == nil { + return nil, nil + } + + gc, err := dm.pool.Pool.GetConnection(c.Addr) + if err != nil { + return nil, err + } + + var pp *pex.Peer + listenAddr := c.ListenAddr() + if listenAddr != "" { + p, ok := dm.pex.GetPeer(listenAddr) + if ok { + pp = &p + } + } + + cc := newConnection(c, gc, pp) + return &cc, nil +} + +// GetConnections returns solicited (outgoing) connections +func (dm *Daemon) GetConnections(f func(c Connection) bool) ([]Connection, error) { + if dm.pool.Pool == nil { + return nil, nil + } + + cs := dm.connections.all() + + conns := make([]Connection, 0) + + for _, c := range cs { + cc, err := dm.newConnection(&c) + if err != nil { + return nil, err + } + + ccc := *cc + + if !f(ccc) { + continue + } + + conns = append(conns, ccc) + } + + // Sort connnections by IP address + sort.Slice(conns, func(i, j int) bool { + return strings.Compare(conns[i].Addr, conns[j].Addr) < 0 + }) + + return conns, nil +} + +// GetDefaultConnections returns the default hardcoded connection addresses +func (dm *Daemon) GetDefaultConnections() []string { + conns := make([]string, len(dm.config.DefaultConnections)) + copy(conns[:], dm.config.DefaultConnections[:]) + return conns +} + +// GetConnection returns a *Connection of specific address +func (dm *Daemon) GetConnection(addr string) (*Connection, error) { + c := dm.connections.get(addr) + if c == nil { + return nil, nil + } + + return dm.newConnection(c) +} + +// DisconnectByGnetID disconnects a connection by gnet ID +func (dm *Daemon) DisconnectByGnetID(gnetID uint64) error { + c := dm.connections.getByGnetID(gnetID) + if c == nil { + return ErrConnectionNotExist + } + + return dm.Disconnect(c.Addr, ErrDisconnectRequestedByOperator) +} + +// GetTrustConnections returns all trusted connections +func (dm *Daemon) GetTrustConnections() []string { + return dm.pex.AllTrusted().ToAddrs() +} + +// GetExchgConnection returns all connections to peers found through peer exchange +func (dm *Daemon) GetExchgConnection() []string { + return dm.pex.RandomExchangeable(0).ToAddrs() +} + +/* Peer Blockchain Status API */ + +// BlockchainProgress is the current blockchain syncing status +type BlockchainProgress struct { + // Our current blockchain length + Current uint64 + // Our best guess at true blockchain length + Highest uint64 + // Individual blockchain length reports from peers + Peers []PeerBlockchainHeight +} + +// newBlockchainProgress creates BlockchainProgress from the local head blockchain sequence number +// and a list of remote peers +func newBlockchainProgress(headSeq uint64, conns []connection) *BlockchainProgress { + peers := newPeerBlockchainHeights(conns) + + return &BlockchainProgress{ + Current: headSeq, + Highest: EstimateBlockchainHeight(headSeq, peers), + Peers: peers, + } +} + +// PeerBlockchainHeight records blockchain height for an address +type PeerBlockchainHeight struct { + Address string + Height uint64 +} + +func newPeerBlockchainHeights(conns []connection) []PeerBlockchainHeight { + peers := make([]PeerBlockchainHeight, 0, len(conns)) + for _, c := range conns { + if c.State != ConnectionStatePending { + peers = append(peers, PeerBlockchainHeight{ + Address: c.Addr, + Height: c.Height, + }) + } + } + return peers +} + +// EstimateBlockchainHeight estimates the blockchain sync height. +// The highest height reported amongst all peers, and including the node itself, is returned. +func EstimateBlockchainHeight(headSeq uint64, peers []PeerBlockchainHeight) uint64 { + for _, c := range peers { + if c.Height > headSeq { + headSeq = c.Height + } + } + return headSeq +} + +// GetBlockchainProgress returns a *BlockchainProgress +func (dm *Daemon) GetBlockchainProgress(headSeq uint64) *BlockchainProgress { + conns := dm.connections.all() + return newBlockchainProgress(headSeq, conns) +} + +// InjectBroadcastTransaction injects transaction to the unconfirmed pool and broadcasts it. +// If the transaction violates either hard or soft constraints, it is neither injected nor broadcast. +// If the broadcast fails (due to no connections), the transaction is not injected. +// However, the broadcast may fail in practice, without returning an error, +// so this is not foolproof. +// This method is to be used by user-initiated transaction injections. +// For transactions received over the network, use daemon.injectTransaction and check the result to +// decide on repropagation. +func (dm *Daemon) InjectBroadcastTransaction(txn coin.Transaction) error { + return dm.visor.WithUpdateTx("daemon.InjectBroadcastTransaction", func(tx *dbutil.Tx) error { + _, head, inputs, err := dm.visor.InjectUserTransactionTx(tx, txn) + if err != nil { + logger.WithError(err).Error("InjectUserTransactionTx failed") + return err + } + + if err := dm.BroadcastUserTransaction(txn, head, inputs); err != nil { + logger.WithError(err).Error("BroadcastUserTransaction failed") + return err + } + + return nil + }) +} + +// InjectTransaction injects transaction to the unconfirmed pool but does not broadcast it. +// If the transaction violates either hard or soft constraints, it is not injected. +// This method is to be used by user-initiated transaction injections. +// For transactions received over the network, use daemon.injectTransaction and check the result to +// decide on repropagation. +func (dm *Daemon) InjectTransaction(txn coin.Transaction) error { + _, _, _, err := dm.visor.InjectUserTransaction(txn) + return err +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/disconnect_message_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/disconnect_message_skyencoder.go new file mode 100644 index 000000000..53d79bf9b --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/disconnect_message_skyencoder.go @@ -0,0 +1,118 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeDisconnectMessage computes the size of an encoded object of type DisconnectMessage +func encodeSizeDisconnectMessage(obj *DisconnectMessage) uint64 { + i0 := uint64(0) + + // obj.ReasonCode + i0 += 2 + + // obj.Reserved + i0 += 4 + uint64(len(obj.Reserved)) + + return i0 +} + +// encodeDisconnectMessage encodes an object of type DisconnectMessage to a buffer allocated to the exact size +// required to encode the object. +func encodeDisconnectMessage(obj *DisconnectMessage) ([]byte, error) { + n := encodeSizeDisconnectMessage(obj) + buf := make([]byte, n) + + if err := encodeDisconnectMessageToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeDisconnectMessageToBuffer encodes an object of type DisconnectMessage to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeDisconnectMessageToBuffer(buf []byte, obj *DisconnectMessage) error { + if uint64(len(buf)) < encodeSizeDisconnectMessage(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.ReasonCode + e.Uint16(obj.ReasonCode) + + // obj.Reserved length check + if uint64(len(obj.Reserved)) > math.MaxUint32 { + return errors.New("obj.Reserved length exceeds math.MaxUint32") + } + + // obj.Reserved length + e.Uint32(uint32(len(obj.Reserved))) + + // obj.Reserved copy + e.CopyBytes(obj.Reserved) + + return nil +} + +// decodeDisconnectMessage decodes an object of type DisconnectMessage from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeDisconnectMessage(buf []byte, obj *DisconnectMessage) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.ReasonCode + i, err := d.Uint16() + if err != nil { + return 0, err + } + obj.ReasonCode = i + } + + { + // obj.Reserved + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length != 0 { + obj.Reserved = make([]byte, length) + + copy(obj.Reserved[:], d.Buffer[:length]) + d.Buffer = d.Buffer[length:] + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeDisconnectMessageExact decodes an object of type DisconnectMessage from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeDisconnectMessageExact(buf []byte, obj *DisconnectMessage) error { + if n, err := decodeDisconnectMessage(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/errors.go b/vendor/github.com/skycoin/skycoin/src/daemon/errors.go new file mode 100644 index 000000000..8e228d48f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/errors.go @@ -0,0 +1,112 @@ +package daemon + +import ( + "errors" + + "github.com/skycoin/skycoin/src/daemon/gnet" +) + +var ( + // ErrDisconnectVersionNotSupported version is below minimum supported version + ErrDisconnectVersionNotSupported gnet.DisconnectReason = errors.New("Version is below minimum supported version") + // ErrDisconnectIntroductionTimeout timeout + ErrDisconnectIntroductionTimeout gnet.DisconnectReason = errors.New("Introduction timeout") + // ErrDisconnectIsBlacklisted is blacklisted + ErrDisconnectIsBlacklisted gnet.DisconnectReason = errors.New("Blacklisted") + // ErrDisconnectSelf self connnect + ErrDisconnectSelf gnet.DisconnectReason = errors.New("Self connect") + // ErrDisconnectConnectedTwice connect twice + ErrDisconnectConnectedTwice gnet.DisconnectReason = errors.New("Already connected") + // ErrDisconnectIdle idle + ErrDisconnectIdle gnet.DisconnectReason = errors.New("Idle") + // ErrDisconnectNoIntroduction no introduction + ErrDisconnectNoIntroduction gnet.DisconnectReason = errors.New("First message was not an Introduction") + // ErrDisconnectIPLimitReached ip limit reached + ErrDisconnectIPLimitReached gnet.DisconnectReason = errors.New("Maximum number of connections for this IP was reached") + // ErrDisconnectUnexpectedError this is returned when a seemingly impossible error is encountered, e.g. net.Conn.Addr() returns an invalid ip:port + ErrDisconnectUnexpectedError gnet.DisconnectReason = errors.New("Unexpected error") + // ErrDisconnectMaxOutgoingConnectionsReached is returned when connection pool size is greater than the maximum allowed + ErrDisconnectMaxOutgoingConnectionsReached gnet.DisconnectReason = errors.New("Maximum outgoing connections was reached") + // ErrDisconnectBlockchainPubkeyNotMatched is returned when the blockchain pubkey in introduction does not match + ErrDisconnectBlockchainPubkeyNotMatched gnet.DisconnectReason = errors.New("Blockchain pubkey does not match") + // ErrDisconnectBlockchainPubkeyNotProvided is returned when the blockchain pubkey in introduction is not provided + ErrDisconnectBlockchainPubkeyNotProvided gnet.DisconnectReason = errors.New("Blockchain pubkey is not provided") + // ErrDisconnectInvalidExtraData is returned when extra field can't be parsed + ErrDisconnectInvalidExtraData gnet.DisconnectReason = errors.New("Invalid extra data in message") + // ErrDisconnectReceivedDisconnect received a DisconnectMessage + ErrDisconnectReceivedDisconnect gnet.DisconnectReason = errors.New("Received DisconnectMessage") + // ErrDisconnectInvalidUserAgent is returned if the peer provides an invalid user agent + ErrDisconnectInvalidUserAgent gnet.DisconnectReason = errors.New("Invalid user agent") + // ErrDisconnectRequestedByOperator the operator of the node requested a disconnect + ErrDisconnectRequestedByOperator gnet.DisconnectReason = errors.New("Disconnect requested by the node operator") + // ErrDisconnectPeerlistFull the peerlist is full + ErrDisconnectPeerlistFull gnet.DisconnectReason = errors.New("Peerlist is full") + // ErrDisconnectInvalidBurnFactor invalid burn factor in introduction message + ErrDisconnectInvalidBurnFactor gnet.DisconnectReason = errors.New("Invalid burn factor in introduction message") + // ErrDisconnectInvalidMaxTransactionSize invalid max transaction size in introduction message + ErrDisconnectInvalidMaxTransactionSize gnet.DisconnectReason = errors.New("Invalid max transaction size in introduction message") + // ErrDisconnectInvalidMaxDropletPrecision invalid max droplet precision in introduction message + ErrDisconnectInvalidMaxDropletPrecision gnet.DisconnectReason = errors.New("Invalid max droplet precision in introduction message") + + // ErrDisconnectUnknownReason used when mapping an unknown reason code to an error. Is not sent over the network. + ErrDisconnectUnknownReason gnet.DisconnectReason = errors.New("Unknown DisconnectReason") + + disconnectReasonCodes = map[gnet.DisconnectReason]uint16{ + ErrDisconnectUnknownReason: 0, + + ErrDisconnectVersionNotSupported: 1, + ErrDisconnectIntroductionTimeout: 2, + ErrDisconnectIsBlacklisted: 3, + ErrDisconnectSelf: 4, + ErrDisconnectConnectedTwice: 5, + ErrDisconnectIdle: 6, + ErrDisconnectNoIntroduction: 7, + ErrDisconnectIPLimitReached: 8, + ErrDisconnectUnexpectedError: 9, + ErrDisconnectMaxOutgoingConnectionsReached: 10, + ErrDisconnectBlockchainPubkeyNotMatched: 11, + ErrDisconnectInvalidExtraData: 12, + ErrDisconnectReceivedDisconnect: 13, + ErrDisconnectInvalidUserAgent: 14, + ErrDisconnectRequestedByOperator: 15, + ErrDisconnectPeerlistFull: 16, + ErrDisconnectInvalidBurnFactor: 17, + ErrDisconnectInvalidMaxTransactionSize: 18, + ErrDisconnectInvalidMaxDropletPrecision: 19, + + // gnet codes are registered here, but they are not sent in a DISC + // message by gnet. Only daemon sends a DISC packet. + // If gnet chooses to disconnect it will not send a DISC packet. + gnet.ErrDisconnectSetReadDeadlineFailed: 1001, + gnet.ErrDisconnectInvalidMessageLength: 1002, + gnet.ErrDisconnectMalformedMessage: 1003, + gnet.ErrDisconnectUnknownMessage: 1004, + gnet.ErrDisconnectShutdown: 1005, + gnet.ErrDisconnectMessageDecodeUnderflow: 1006, + gnet.ErrDisconnectTruncatedMessageID: 1007, + } + + disconnectCodeReasons map[uint16]gnet.DisconnectReason +) + +func init() { + disconnectCodeReasons = make(map[uint16]gnet.DisconnectReason, len(disconnectReasonCodes)) + + for r, c := range disconnectReasonCodes { + disconnectCodeReasons[c] = r + } +} + +// DisconnectReasonToCode maps a gnet.DisconnectReason to a 16-byte code +func DisconnectReasonToCode(r gnet.DisconnectReason) uint16 { + return disconnectReasonCodes[r] +} + +// DisconnectCodeToReason maps a disconnect code to a gnet.DisconnectReason +func DisconnectCodeToReason(c uint16) gnet.DisconnectReason { + r, ok := disconnectCodeReasons[c] + if !ok { + return ErrDisconnectUnknownReason + } + return r +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/get_blocks_message_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/get_blocks_message_skyencoder.go new file mode 100644 index 000000000..b07c856bb --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/get_blocks_message_skyencoder.go @@ -0,0 +1,93 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import "github.com/skycoin/skycoin/src/cipher/encoder" + +// encodeSizeGetBlocksMessage computes the size of an encoded object of type GetBlocksMessage +func encodeSizeGetBlocksMessage(obj *GetBlocksMessage) uint64 { + i0 := uint64(0) + + // obj.LastBlock + i0 += 8 + + // obj.RequestedBlocks + i0 += 8 + + return i0 +} + +// encodeGetBlocksMessage encodes an object of type GetBlocksMessage to a buffer allocated to the exact size +// required to encode the object. +func encodeGetBlocksMessage(obj *GetBlocksMessage) ([]byte, error) { + n := encodeSizeGetBlocksMessage(obj) + buf := make([]byte, n) + + if err := encodeGetBlocksMessageToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeGetBlocksMessageToBuffer encodes an object of type GetBlocksMessage to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeGetBlocksMessageToBuffer(buf []byte, obj *GetBlocksMessage) error { + if uint64(len(buf)) < encodeSizeGetBlocksMessage(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.LastBlock + e.Uint64(obj.LastBlock) + + // obj.RequestedBlocks + e.Uint64(obj.RequestedBlocks) + + return nil +} + +// decodeGetBlocksMessage decodes an object of type GetBlocksMessage from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeGetBlocksMessage(buf []byte, obj *GetBlocksMessage) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.LastBlock + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.LastBlock = i + } + + { + // obj.RequestedBlocks + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.RequestedBlocks = i + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeGetBlocksMessageExact decodes an object of type GetBlocksMessage from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeGetBlocksMessageExact(buf []byte, obj *GetBlocksMessage) error { + if n, err := decodeGetBlocksMessage(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/get_txns_message_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/get_txns_message_skyencoder.go new file mode 100644 index 000000000..1d023a63a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/get_txns_message_skyencoder.go @@ -0,0 +1,135 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeGetTxnsMessage computes the size of an encoded object of type GetTxnsMessage +func encodeSizeGetTxnsMessage(obj *GetTxnsMessage) uint64 { + i0 := uint64(0) + + // obj.Transactions + i0 += 4 + { + i1 := uint64(0) + + // x1 + i1 += 32 + + i0 += uint64(len(obj.Transactions)) * i1 + } + + return i0 +} + +// encodeGetTxnsMessage encodes an object of type GetTxnsMessage to a buffer allocated to the exact size +// required to encode the object. +func encodeGetTxnsMessage(obj *GetTxnsMessage) ([]byte, error) { + n := encodeSizeGetTxnsMessage(obj) + buf := make([]byte, n) + + if err := encodeGetTxnsMessageToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeGetTxnsMessageToBuffer encodes an object of type GetTxnsMessage to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeGetTxnsMessageToBuffer(buf []byte, obj *GetTxnsMessage) error { + if uint64(len(buf)) < encodeSizeGetTxnsMessage(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Transactions maxlen check + if len(obj.Transactions) > 256 { + return encoder.ErrMaxLenExceeded + } + + // obj.Transactions length check + if uint64(len(obj.Transactions)) > math.MaxUint32 { + return errors.New("obj.Transactions length exceeds math.MaxUint32") + } + + // obj.Transactions length + e.Uint32(uint32(len(obj.Transactions))) + + // obj.Transactions + for _, x := range obj.Transactions { + + // x + e.CopyBytes(x[:]) + + } + + return nil +} + +// decodeGetTxnsMessage decodes an object of type GetTxnsMessage from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeGetTxnsMessage(buf []byte, obj *GetTxnsMessage) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Transactions + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 256 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions = make([]cipher.SHA256, length) + + for z1 := range obj.Transactions { + { + // obj.Transactions[z1] + if len(d.Buffer) < len(obj.Transactions[z1]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1][:], d.Buffer[:len(obj.Transactions[z1])]) + d.Buffer = d.Buffer[len(obj.Transactions[z1]):] + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeGetTxnsMessageExact decodes an object of type GetTxnsMessage from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeGetTxnsMessageExact(buf []byte, obj *GetTxnsMessage) error { + if n, err := decodeGetTxnsMessage(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/give_blocks_message_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/give_blocks_message_skyencoder.go new file mode 100644 index 000000000..620542256 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/give_blocks_message_skyencoder.go @@ -0,0 +1,579 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeGiveBlocksMessage computes the size of an encoded object of type GiveBlocksMessage +func encodeSizeGiveBlocksMessage(obj *GiveBlocksMessage) uint64 { + i0 := uint64(0) + + // obj.Blocks + i0 += 4 + for _, x1 := range obj.Blocks { + i1 := uint64(0) + + // x1.Block.Head.Version + i1 += 4 + + // x1.Block.Head.Time + i1 += 8 + + // x1.Block.Head.BkSeq + i1 += 8 + + // x1.Block.Head.Fee + i1 += 8 + + // x1.Block.Head.PrevHash + i1 += 32 + + // x1.Block.Head.BodyHash + i1 += 32 + + // x1.Block.Head.UxHash + i1 += 32 + + // x1.Block.Body.Transactions + i1 += 4 + for _, x2 := range x1.Block.Body.Transactions { + i2 := uint64(0) + + // x2.Length + i2 += 4 + + // x2.Type + i2++ + + // x2.InnerHash + i2 += 32 + + // x2.Sigs + i2 += 4 + { + i3 := uint64(0) + + // x3 + i3 += 65 + + i2 += uint64(len(x2.Sigs)) * i3 + } + + // x2.In + i2 += 4 + { + i3 := uint64(0) + + // x3 + i3 += 32 + + i2 += uint64(len(x2.In)) * i3 + } + + // x2.Out + i2 += 4 + { + i3 := uint64(0) + + // x3.Address.Version + i3++ + + // x3.Address.Key + i3 += 20 + + // x3.Coins + i3 += 8 + + // x3.Hours + i3 += 8 + + i2 += uint64(len(x2.Out)) * i3 + } + + i1 += i2 + } + + // x1.Sig + i1 += 65 + + i0 += i1 + } + + return i0 +} + +// encodeGiveBlocksMessage encodes an object of type GiveBlocksMessage to a buffer allocated to the exact size +// required to encode the object. +func encodeGiveBlocksMessage(obj *GiveBlocksMessage) ([]byte, error) { + n := encodeSizeGiveBlocksMessage(obj) + buf := make([]byte, n) + + if err := encodeGiveBlocksMessageToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeGiveBlocksMessageToBuffer encodes an object of type GiveBlocksMessage to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeGiveBlocksMessageToBuffer(buf []byte, obj *GiveBlocksMessage) error { + if uint64(len(buf)) < encodeSizeGiveBlocksMessage(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Blocks maxlen check + if len(obj.Blocks) > 128 { + return encoder.ErrMaxLenExceeded + } + + // obj.Blocks length check + if uint64(len(obj.Blocks)) > math.MaxUint32 { + return errors.New("obj.Blocks length exceeds math.MaxUint32") + } + + // obj.Blocks length + e.Uint32(uint32(len(obj.Blocks))) + + // obj.Blocks + for _, x := range obj.Blocks { + + // x.Block.Head.Version + e.Uint32(x.Block.Head.Version) + + // x.Block.Head.Time + e.Uint64(x.Block.Head.Time) + + // x.Block.Head.BkSeq + e.Uint64(x.Block.Head.BkSeq) + + // x.Block.Head.Fee + e.Uint64(x.Block.Head.Fee) + + // x.Block.Head.PrevHash + e.CopyBytes(x.Block.Head.PrevHash[:]) + + // x.Block.Head.BodyHash + e.CopyBytes(x.Block.Head.BodyHash[:]) + + // x.Block.Head.UxHash + e.CopyBytes(x.Block.Head.UxHash[:]) + + // x.Block.Body.Transactions maxlen check + if len(x.Block.Body.Transactions) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Block.Body.Transactions length check + if uint64(len(x.Block.Body.Transactions)) > math.MaxUint32 { + return errors.New("x.Block.Body.Transactions length exceeds math.MaxUint32") + } + + // x.Block.Body.Transactions length + e.Uint32(uint32(len(x.Block.Body.Transactions))) + + // x.Block.Body.Transactions + for _, x := range x.Block.Body.Transactions { + + // x.Length + e.Uint32(x.Length) + + // x.Type + e.Uint8(x.Type) + + // x.InnerHash + e.CopyBytes(x.InnerHash[:]) + + // x.Sigs maxlen check + if len(x.Sigs) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Sigs length check + if uint64(len(x.Sigs)) > math.MaxUint32 { + return errors.New("x.Sigs length exceeds math.MaxUint32") + } + + // x.Sigs length + e.Uint32(uint32(len(x.Sigs))) + + // x.Sigs + for _, x := range x.Sigs { + + // x + e.CopyBytes(x[:]) + + } + + // x.In maxlen check + if len(x.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.In length check + if uint64(len(x.In)) > math.MaxUint32 { + return errors.New("x.In length exceeds math.MaxUint32") + } + + // x.In length + e.Uint32(uint32(len(x.In))) + + // x.In + for _, x := range x.In { + + // x + e.CopyBytes(x[:]) + + } + + // x.Out maxlen check + if len(x.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Out length check + if uint64(len(x.Out)) > math.MaxUint32 { + return errors.New("x.Out length exceeds math.MaxUint32") + } + + // x.Out length + e.Uint32(uint32(len(x.Out))) + + // x.Out + for _, x := range x.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + } + + // x.Sig + e.CopyBytes(x.Sig[:]) + + } + + return nil +} + +// decodeGiveBlocksMessage decodes an object of type GiveBlocksMessage from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeGiveBlocksMessage(buf []byte, obj *GiveBlocksMessage) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Blocks + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 128 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Blocks = make([]coin.SignedBlock, length) + + for z1 := range obj.Blocks { + { + // obj.Blocks[z1].Block.Head.Version + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Blocks[z1].Block.Head.Version = i + } + + { + // obj.Blocks[z1].Block.Head.Time + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Blocks[z1].Block.Head.Time = i + } + + { + // obj.Blocks[z1].Block.Head.BkSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Blocks[z1].Block.Head.BkSeq = i + } + + { + // obj.Blocks[z1].Block.Head.Fee + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Blocks[z1].Block.Head.Fee = i + } + + { + // obj.Blocks[z1].Block.Head.PrevHash + if len(d.Buffer) < len(obj.Blocks[z1].Block.Head.PrevHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Blocks[z1].Block.Head.PrevHash[:], d.Buffer[:len(obj.Blocks[z1].Block.Head.PrevHash)]) + d.Buffer = d.Buffer[len(obj.Blocks[z1].Block.Head.PrevHash):] + } + + { + // obj.Blocks[z1].Block.Head.BodyHash + if len(d.Buffer) < len(obj.Blocks[z1].Block.Head.BodyHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Blocks[z1].Block.Head.BodyHash[:], d.Buffer[:len(obj.Blocks[z1].Block.Head.BodyHash)]) + d.Buffer = d.Buffer[len(obj.Blocks[z1].Block.Head.BodyHash):] + } + + { + // obj.Blocks[z1].Block.Head.UxHash + if len(d.Buffer) < len(obj.Blocks[z1].Block.Head.UxHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Blocks[z1].Block.Head.UxHash[:], d.Buffer[:len(obj.Blocks[z1].Block.Head.UxHash)]) + d.Buffer = d.Buffer[len(obj.Blocks[z1].Block.Head.UxHash):] + } + + { + // obj.Blocks[z1].Block.Body.Transactions + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Blocks[z1].Block.Body.Transactions = make([]coin.Transaction, length) + + for z5 := range obj.Blocks[z1].Block.Body.Transactions { + { + // obj.Blocks[z1].Block.Body.Transactions[z5].Length + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Blocks[z1].Block.Body.Transactions[z5].Length = i + } + + { + // obj.Blocks[z1].Block.Body.Transactions[z5].Type + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Blocks[z1].Block.Body.Transactions[z5].Type = i + } + + { + // obj.Blocks[z1].Block.Body.Transactions[z5].InnerHash + if len(d.Buffer) < len(obj.Blocks[z1].Block.Body.Transactions[z5].InnerHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Blocks[z1].Block.Body.Transactions[z5].InnerHash[:], d.Buffer[:len(obj.Blocks[z1].Block.Body.Transactions[z5].InnerHash)]) + d.Buffer = d.Buffer[len(obj.Blocks[z1].Block.Body.Transactions[z5].InnerHash):] + } + + { + // obj.Blocks[z1].Block.Body.Transactions[z5].Sigs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Blocks[z1].Block.Body.Transactions[z5].Sigs = make([]cipher.Sig, length) + + for z7 := range obj.Blocks[z1].Block.Body.Transactions[z5].Sigs { + { + // obj.Blocks[z1].Block.Body.Transactions[z5].Sigs[z7] + if len(d.Buffer) < len(obj.Blocks[z1].Block.Body.Transactions[z5].Sigs[z7]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Blocks[z1].Block.Body.Transactions[z5].Sigs[z7][:], d.Buffer[:len(obj.Blocks[z1].Block.Body.Transactions[z5].Sigs[z7])]) + d.Buffer = d.Buffer[len(obj.Blocks[z1].Block.Body.Transactions[z5].Sigs[z7]):] + } + + } + } + } + + { + // obj.Blocks[z1].Block.Body.Transactions[z5].In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Blocks[z1].Block.Body.Transactions[z5].In = make([]cipher.SHA256, length) + + for z7 := range obj.Blocks[z1].Block.Body.Transactions[z5].In { + { + // obj.Blocks[z1].Block.Body.Transactions[z5].In[z7] + if len(d.Buffer) < len(obj.Blocks[z1].Block.Body.Transactions[z5].In[z7]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Blocks[z1].Block.Body.Transactions[z5].In[z7][:], d.Buffer[:len(obj.Blocks[z1].Block.Body.Transactions[z5].In[z7])]) + d.Buffer = d.Buffer[len(obj.Blocks[z1].Block.Body.Transactions[z5].In[z7]):] + } + + } + } + } + + { + // obj.Blocks[z1].Block.Body.Transactions[z5].Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Blocks[z1].Block.Body.Transactions[z5].Out = make([]coin.TransactionOutput, length) + + for z7 := range obj.Blocks[z1].Block.Body.Transactions[z5].Out { + { + // obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Address.Version = i + } + + { + // obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Address.Key + if len(d.Buffer) < len(obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Address.Key[:], d.Buffer[:len(obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Address.Key):] + } + + { + // obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Coins = i + } + + { + // obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Blocks[z1].Block.Body.Transactions[z5].Out[z7].Hours = i + } + + } + } + } + } + } + } + + { + // obj.Blocks[z1].Sig + if len(d.Buffer) < len(obj.Blocks[z1].Sig) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Blocks[z1].Sig[:], d.Buffer[:len(obj.Blocks[z1].Sig)]) + d.Buffer = d.Buffer[len(obj.Blocks[z1].Sig):] + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeGiveBlocksMessageExact decodes an object of type GiveBlocksMessage from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeGiveBlocksMessageExact(buf []byte, obj *GiveBlocksMessage) error { + if n, err := decodeGiveBlocksMessage(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/give_peers_message_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/give_peers_message_skyencoder.go new file mode 100644 index 000000000..f27a31427 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/give_peers_message_skyencoder.go @@ -0,0 +1,149 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeGivePeersMessage computes the size of an encoded object of type GivePeersMessage +func encodeSizeGivePeersMessage(obj *GivePeersMessage) uint64 { + i0 := uint64(0) + + // obj.Peers + i0 += 4 + { + i1 := uint64(0) + + // x1.IP + i1 += 4 + + // x1.Port + i1 += 2 + + i0 += uint64(len(obj.Peers)) * i1 + } + + return i0 +} + +// encodeGivePeersMessage encodes an object of type GivePeersMessage to a buffer allocated to the exact size +// required to encode the object. +func encodeGivePeersMessage(obj *GivePeersMessage) ([]byte, error) { + n := encodeSizeGivePeersMessage(obj) + buf := make([]byte, n) + + if err := encodeGivePeersMessageToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeGivePeersMessageToBuffer encodes an object of type GivePeersMessage to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeGivePeersMessageToBuffer(buf []byte, obj *GivePeersMessage) error { + if uint64(len(buf)) < encodeSizeGivePeersMessage(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Peers maxlen check + if len(obj.Peers) > 512 { + return encoder.ErrMaxLenExceeded + } + + // obj.Peers length check + if uint64(len(obj.Peers)) > math.MaxUint32 { + return errors.New("obj.Peers length exceeds math.MaxUint32") + } + + // obj.Peers length + e.Uint32(uint32(len(obj.Peers))) + + // obj.Peers + for _, x := range obj.Peers { + + // x.IP + e.Uint32(x.IP) + + // x.Port + e.Uint16(x.Port) + + } + + return nil +} + +// decodeGivePeersMessage decodes an object of type GivePeersMessage from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeGivePeersMessage(buf []byte, obj *GivePeersMessage) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Peers + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 512 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Peers = make([]IPAddr, length) + + for z1 := range obj.Peers { + { + // obj.Peers[z1].IP + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Peers[z1].IP = i + } + + { + // obj.Peers[z1].Port + i, err := d.Uint16() + if err != nil { + return 0, err + } + obj.Peers[z1].Port = i + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeGivePeersMessageExact decodes an object of type GivePeersMessage from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeGivePeersMessageExact(buf []byte, obj *GivePeersMessage) error { + if n, err := decodeGivePeersMessage(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/give_txns_message_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/give_txns_message_skyencoder.go new file mode 100644 index 000000000..21f6a0128 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/give_txns_message_skyencoder.go @@ -0,0 +1,408 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeGiveTxnsMessage computes the size of an encoded object of type GiveTxnsMessage +func encodeSizeGiveTxnsMessage(obj *GiveTxnsMessage) uint64 { + i0 := uint64(0) + + // obj.Transactions + i0 += 4 + for _, x1 := range obj.Transactions { + i1 := uint64(0) + + // x1.Length + i1 += 4 + + // x1.Type + i1++ + + // x1.InnerHash + i1 += 32 + + // x1.Sigs + i1 += 4 + { + i2 := uint64(0) + + // x2 + i2 += 65 + + i1 += uint64(len(x1.Sigs)) * i2 + } + + // x1.In + i1 += 4 + { + i2 := uint64(0) + + // x2 + i2 += 32 + + i1 += uint64(len(x1.In)) * i2 + } + + // x1.Out + i1 += 4 + { + i2 := uint64(0) + + // x2.Address.Version + i2++ + + // x2.Address.Key + i2 += 20 + + // x2.Coins + i2 += 8 + + // x2.Hours + i2 += 8 + + i1 += uint64(len(x1.Out)) * i2 + } + + i0 += i1 + } + + return i0 +} + +// encodeGiveTxnsMessage encodes an object of type GiveTxnsMessage to a buffer allocated to the exact size +// required to encode the object. +func encodeGiveTxnsMessage(obj *GiveTxnsMessage) ([]byte, error) { + n := encodeSizeGiveTxnsMessage(obj) + buf := make([]byte, n) + + if err := encodeGiveTxnsMessageToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeGiveTxnsMessageToBuffer encodes an object of type GiveTxnsMessage to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeGiveTxnsMessageToBuffer(buf []byte, obj *GiveTxnsMessage) error { + if uint64(len(buf)) < encodeSizeGiveTxnsMessage(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Transactions maxlen check + if len(obj.Transactions) > 256 { + return encoder.ErrMaxLenExceeded + } + + // obj.Transactions length check + if uint64(len(obj.Transactions)) > math.MaxUint32 { + return errors.New("obj.Transactions length exceeds math.MaxUint32") + } + + // obj.Transactions length + e.Uint32(uint32(len(obj.Transactions))) + + // obj.Transactions + for _, x := range obj.Transactions { + + // x.Length + e.Uint32(x.Length) + + // x.Type + e.Uint8(x.Type) + + // x.InnerHash + e.CopyBytes(x.InnerHash[:]) + + // x.Sigs maxlen check + if len(x.Sigs) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Sigs length check + if uint64(len(x.Sigs)) > math.MaxUint32 { + return errors.New("x.Sigs length exceeds math.MaxUint32") + } + + // x.Sigs length + e.Uint32(uint32(len(x.Sigs))) + + // x.Sigs + for _, x := range x.Sigs { + + // x + e.CopyBytes(x[:]) + + } + + // x.In maxlen check + if len(x.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.In length check + if uint64(len(x.In)) > math.MaxUint32 { + return errors.New("x.In length exceeds math.MaxUint32") + } + + // x.In length + e.Uint32(uint32(len(x.In))) + + // x.In + for _, x := range x.In { + + // x + e.CopyBytes(x[:]) + + } + + // x.Out maxlen check + if len(x.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Out length check + if uint64(len(x.Out)) > math.MaxUint32 { + return errors.New("x.Out length exceeds math.MaxUint32") + } + + // x.Out length + e.Uint32(uint32(len(x.Out))) + + // x.Out + for _, x := range x.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + } + + return nil +} + +// decodeGiveTxnsMessage decodes an object of type GiveTxnsMessage from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeGiveTxnsMessage(buf []byte, obj *GiveTxnsMessage) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Transactions + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 256 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions = make([]coin.Transaction, length) + + for z1 := range obj.Transactions { + { + // obj.Transactions[z1].Length + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Transactions[z1].Length = i + } + + { + // obj.Transactions[z1].Type + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Transactions[z1].Type = i + } + + { + // obj.Transactions[z1].InnerHash + if len(d.Buffer) < len(obj.Transactions[z1].InnerHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1].InnerHash[:], d.Buffer[:len(obj.Transactions[z1].InnerHash)]) + d.Buffer = d.Buffer[len(obj.Transactions[z1].InnerHash):] + } + + { + // obj.Transactions[z1].Sigs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions[z1].Sigs = make([]cipher.Sig, length) + + for z3 := range obj.Transactions[z1].Sigs { + { + // obj.Transactions[z1].Sigs[z3] + if len(d.Buffer) < len(obj.Transactions[z1].Sigs[z3]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1].Sigs[z3][:], d.Buffer[:len(obj.Transactions[z1].Sigs[z3])]) + d.Buffer = d.Buffer[len(obj.Transactions[z1].Sigs[z3]):] + } + + } + } + } + + { + // obj.Transactions[z1].In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions[z1].In = make([]cipher.SHA256, length) + + for z3 := range obj.Transactions[z1].In { + { + // obj.Transactions[z1].In[z3] + if len(d.Buffer) < len(obj.Transactions[z1].In[z3]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1].In[z3][:], d.Buffer[:len(obj.Transactions[z1].In[z3])]) + d.Buffer = d.Buffer[len(obj.Transactions[z1].In[z3]):] + } + + } + } + } + + { + // obj.Transactions[z1].Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transactions[z1].Out = make([]coin.TransactionOutput, length) + + for z3 := range obj.Transactions[z1].Out { + { + // obj.Transactions[z1].Out[z3].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Transactions[z1].Out[z3].Address.Version = i + } + + { + // obj.Transactions[z1].Out[z3].Address.Key + if len(d.Buffer) < len(obj.Transactions[z1].Out[z3].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transactions[z1].Out[z3].Address.Key[:], d.Buffer[:len(obj.Transactions[z1].Out[z3].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Transactions[z1].Out[z3].Address.Key):] + } + + { + // obj.Transactions[z1].Out[z3].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Transactions[z1].Out[z3].Coins = i + } + + { + // obj.Transactions[z1].Out[z3].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Transactions[z1].Out[z3].Hours = i + } + + } + } + } + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeGiveTxnsMessageExact decodes an object of type GiveTxnsMessage from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeGiveTxnsMessageExact(buf []byte, obj *GiveTxnsMessage) error { + if n, err := decodeGiveTxnsMessage(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/gnet/README.md b/vendor/github.com/skycoin/skycoin/src/daemon/gnet/README.md new file mode 100644 index 000000000..df4377425 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/gnet/README.md @@ -0,0 +1,7 @@ +gnet +==== + +[![GoDoc](http://godoc.org/github.com//skycoin/gnet?status.png)](http://godoc.org/github.com/skycoin/gnet) + +[Godoc generated documentation](https://godoc.org/github.com/skycoin/gnet) + diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/gnet/dispatcher.go b/vendor/github.com/skycoin/skycoin/src/daemon/gnet/dispatcher.go new file mode 100644 index 000000000..c11c0a32d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/gnet/dispatcher.go @@ -0,0 +1,209 @@ +package gnet + +import ( + "errors" + "fmt" + "math" + "net" + "reflect" + "time" + + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/util/mathutil" +) + +var ( + // ErrMsgExceedsMaxLen is returned if trying to send a message that exceeds the configured max length + ErrMsgExceedsMaxLen = errors.New("Message exceeds max message length") +) + +// SendResult result of a single message send +type SendResult struct { + Addr string + Message Message + Error error +} + +func newSendResult(addr string, m Message, err error) SendResult { + return SendResult{ + Addr: addr, + Message: m, + Error: err, + } +} + +// Serializes a Message over a net.Conn +func sendMessage(conn net.Conn, msg Message, timeout time.Duration, maxMsgLength int) error { + m, err := EncodeMessage(msg) + if err != nil { + return err + } + if len(m) > maxMsgLength { + return ErrMsgExceedsMaxLen + } + return sendByteMessage(conn, m, timeout) +} + +// msgIDStringSafe formats msgID bytes to a string that is safe for logging (e.g. not impacted by ascii control chars) +func msgIDStringSafe(msgID [4]byte) string { + x := fmt.Sprintf("%q", msgID) + return x[1 : len(x)-1] // trim quotes that are added by %q formatting +} + +// Event handler that is called after a Connection sends a complete message +func convertToMessage(id uint64, msg []byte, debugPrint bool) (Message, error) { + msgID := [4]byte{} + if len(msg) < len(msgID) { + logger.WithError(ErrDisconnectTruncatedMessageID).WithField("connID", id).Warning() + return nil, ErrDisconnectTruncatedMessageID + } + + copy(msgID[:], msg[:len(msgID)]) + + if debugPrint { + logger.WithField("msgID", msgIDStringSafe(msgID)).Debug("Received message") + } + + msg = msg[len(msgID):] + t, ok := MessageIDReverseMap[msgID] + if !ok { + logger.WithError(ErrDisconnectUnknownMessage).WithFields(logrus.Fields{ + "msgID": msgIDStringSafe(msgID), + "connID": id, + }).Warning() + return nil, ErrDisconnectUnknownMessage + } + + if debugPrint { + logger.WithFields(logrus.Fields{ + "connID": id, + "messageType": fmt.Sprintf("%v", t), + }).Debugf("convertToMessage") + } + + v := reflect.New(t) + m, ok := (v.Interface()).(Message) + if !ok { + // This occurs only when the user registers an interface that does not + // match the Message interface. They should have known about this + // earlier via a call to VerifyMessages + logger.Panic("Message obtained from map does not match Message interface") + return nil, errors.New("MessageIdMaps contain non-Message") + } + + used, err := deserializeMessage(msg, v) + if err != nil { + logger.Critical().WithError(err).WithFields(logrus.Fields{ + "connID": id, + "messageType": fmt.Sprintf("%v", t), + }).Warning("deserializeMessage failed") + return nil, ErrDisconnectMalformedMessage + } + + if used != uint64(len(msg)) { + logger.WithError(ErrDisconnectMessageDecodeUnderflow).WithFields(logrus.Fields{ + "connID": id, + "messageType": fmt.Sprintf("%v", t), + }).Warning() + return nil, ErrDisconnectMessageDecodeUnderflow + } + + return m, nil +} + +// Wraps Serializer.Decode and traps panics as an error +func deserializeMessage(msg []byte, v reflect.Value) (n uint64, err error) { + defer func() { + if r := recover(); r != nil { + logger.Critical().Warningf("Recovering from deserializer panic: %v", r) + switch x := r.(type) { + case string: + err = errors.New(x) + case error: + err = x + default: + err = errors.New("Message deserialization failed") + } + } + }() + + iface := v.Interface() + x, ok := iface.(Serializer) + if !ok { + return 0, errors.New("deserializeMessage object does not have Serializer interface") + } + + return x.Decode(msg) +} + +// EncodeMessage packs a Message into []byte containing length, id and data +func EncodeMessage(msg Serializer) ([]byte, error) { + t := reflect.ValueOf(msg).Elem().Type() + + // Lookup message ID + msgID, succ := MessageIDMap[t] + if !succ { + logger.Panicf("Attempted to serialize message struct not in MessageIDMap: %v", msg) + } + if uint64(len(msgID)) > math.MaxUint32 { + return nil, errors.New("Message ID length exceeds math.MaxUint32") + } + + // Compute size of encoded Message object + bMsgLen := msg.EncodeSize() + if bMsgLen > math.MaxUint32 { + return nil, errors.New("Message length exceeds math.MaxUint32") + } + + // Compute message + message ID length + bLen, err := mathutil.AddUint32(uint32(bMsgLen), uint32(len(msgID))) + if err != nil { + return nil, err + } + + // Serialize total message length + bLenPrefix := encoder.SerializeUint32(bLen) + if uint64(len(bLenPrefix)) > math.MaxUint32 { + return nil, errors.New("Message length prefix length exceeds math.MaxUint32") + } + + mLen, err := mathutil.AddUint32(bLen, uint32(len(bLenPrefix))) + if err != nil { + return nil, err + } + + // Allocate message bytes + m := make([]byte, mLen) + + // Write the total message length to the buffer + copy(m[:], bLenPrefix[:]) + + // Write the message ID to the buffer + copy(m[len(bLenPrefix):], msgID[:]) + + // Encode the message into the message buffer + if err := msg.Encode(m[len(bLenPrefix)+len(msgID):]); err != nil { + return nil, err + } + + return m, nil +} + +// Sends []byte over a net.Conn +var sendByteMessage = func(conn net.Conn, msg []byte, timeout time.Duration) error { + deadline := time.Time{} + if timeout != 0 { + deadline = time.Now().Add(timeout) + } + if err := conn.SetWriteDeadline(deadline); err != nil { + return err + } + if _, err := conn.Write(msg); err != nil { + return &WriteError{ + Err: err, + } + } + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/gnet/message.go b/vendor/github.com/skycoin/skycoin/src/daemon/gnet/message.go new file mode 100644 index 000000000..a67aa39da --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/gnet/message.go @@ -0,0 +1,140 @@ +package gnet + +import ( + "reflect" +) + +const messagePrefixLength = 4 + +// MessagePrefix message prefix identifies a message +type MessagePrefix [messagePrefixLength]byte + +// MessagePrefixFromString creates MessagePrefix from string +func MessagePrefixFromString(prefix string) MessagePrefix { + if len(prefix) == 0 || len(prefix) > 4 { + logger.Panicf("Invalid prefix %s", prefix) + } + p := MessagePrefix{} + for i, c := range prefix { + p[i] = byte(c) + } + for i := len(prefix); i < 4; i++ { + p[i] = 0x00 + } + return p +} + +// Serializer serialization interface +type Serializer interface { + EncodeSize() uint64 + Encode([]byte) error + Decode([]byte) (uint64, error) +} + +// Handler message handler interface +type Handler interface { + // State is user-defined application state that is attached to the Dispatcher. + // If a non-nil error is returned, the connection will be disconnected. + Handle(context *MessageContext, state interface{}) error +} + +// Message message interface +type Message interface { + Handler + Serializer +} + +// MessageContext message context +type MessageContext struct { + ConnID uint64 // connection message was received from + Addr string +} + +// NewMessageContext creates MessageContext +func NewMessageContext(conn *Connection) *MessageContext { + if conn.Conn != nil { + return &MessageContext{ConnID: conn.ID, Addr: conn.Addr()} + } + return &MessageContext{ConnID: conn.ID} +} + +// MessageIDMap maps message types to their ids +var MessageIDMap = make(map[reflect.Type]MessagePrefix) + +// MessageIDReverseMap maps message ids to their types +var MessageIDReverseMap = make(map[MessagePrefix]reflect.Type) + +var registeredMsgsCount = 0 + +// RegisterMessage registers a message struct for recognition by the message handlers. +func RegisterMessage(prefix MessagePrefix, msg interface{}) { + t := reflect.TypeOf(msg) + id := MessagePrefix{} + copy(id[:], prefix[:]) + _, exists := MessageIDReverseMap[id] + if exists { + logger.Panicf("Attempted to register message prefix %s twice", string(id[:])) + } + _, exists = MessageIDMap[t] + if exists { + logger.Panicf("Attempts to register message type %v twice", t) + } + MessageIDMap[t] = id + MessageIDReverseMap[id] = t + + registeredMsgsCount++ +} + +// VerifyMessages calls logger.Panic if message registration violates sanity checks +func VerifyMessages() { + if registeredMsgsCount != len(MessageIDMap) { + logger.Panic("MessageIDMap was altered without using RegisterMessage") + } + if registeredMsgsCount != len(MessageIDReverseMap) { + logger.Panic("MessageIDReverseMap was altered without using RegisterMessage") + } + + for t, k := range MessageIDMap { + // No empty prefixes allowed + if k[0] == 0x00 { + logger.Panic("No empty message prefixes allowed") + } + // No non-null bytes allowed after a nul byte + hasEmpty := false + for _, b := range k { + if b == 0x00 { + hasEmpty = true + } else if hasEmpty { + logger.Panic("No non-null bytes allowed after a nul byte") + } + } + // All characters must be non-whitespace printable ascii chars/digits + // No punctation + for _, b := range k { + if !((b >= '0' && b <= '9') || (b >= 'A' && b <= 'Z') || + (b >= 'a' && b <= 'z') || b == 0x00) { + logger.Panicf("Invalid prefix byte %v", b) + } + } + + // Confirm that all registered messages support the Message interface + // This should only be untrue if the user modified the message map + // directly + mptr := reflect.PtrTo(t) + if !mptr.Implements(reflect.TypeOf((*Message)(nil)).Elem()) { + logger.Panicf("Invalid message at ID %s: Message must implement the gnet.Message interface", string(k[:])) + } + } + if len(MessageIDMap) != len(MessageIDReverseMap) { + logger.Panic("MessageIdMap mismatch") + } + // No empty prefixes + // All prefixes must be 0 padded +} + +// EraseMessages wipes all recorded message types +func EraseMessages() { + MessageIDMap = make(map[reflect.Type]MessagePrefix) + MessageIDReverseMap = make(map[MessagePrefix]reflect.Type) + registeredMsgsCount = 0 +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/gnet/pool.go b/vendor/github.com/skycoin/skycoin/src/daemon/gnet/pool.go new file mode 100644 index 000000000..99ca2008e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/gnet/pool.go @@ -0,0 +1,1076 @@ +/* +Package gnet is the core networking library +*/ +package gnet + +import ( + "bufio" + "bytes" + "errors" + "fmt" + "net" + "reflect" + "sync" + "time" + + "io" + + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/daemon/strand" + "github.com/skycoin/skycoin/src/util/elapse" + "github.com/skycoin/skycoin/src/util/logging" +) + +// DisconnectReason is passed to ConnectionPool's DisconnectCallback +type DisconnectReason error + +const ( + receiveMessageDurationThreshold = 500 * time.Millisecond + readLoopDurationThreshold = 10 * time.Second + sendInMsgChanDurationThreshold = 5 * time.Second + sendLoopDurationThreshold = 500 * time.Millisecond +) + +var ( + // ErrDisconnectSetReadDeadlineFailed set read deadline failed + ErrDisconnectSetReadDeadlineFailed DisconnectReason = errors.New("SetReadDeadline failed") + // ErrDisconnectInvalidMessageLength invalid message length + ErrDisconnectInvalidMessageLength DisconnectReason = errors.New("Invalid message length") + // ErrDisconnectMalformedMessage malformed message + ErrDisconnectMalformedMessage DisconnectReason = errors.New("Malformed message body") + // ErrDisconnectUnknownMessage unknown message + ErrDisconnectUnknownMessage DisconnectReason = errors.New("Unknown message ID") + // ErrDisconnectShutdown shutting down the client + ErrDisconnectShutdown DisconnectReason = errors.New("Shutdown") + // ErrDisconnectMessageDecodeUnderflow message data did not fully decode to a message object + ErrDisconnectMessageDecodeUnderflow DisconnectReason = errors.New("Message data did not fully decode to a message object") + // ErrDisconnectTruncatedMessageID message data was too short to contain a message ID + ErrDisconnectTruncatedMessageID DisconnectReason = errors.New("Message data was too short to contain a message ID") + + // ErrConnectionPoolClosed error message indicates the connection pool is closed + ErrConnectionPoolClosed = errors.New("Connection pool is closed") + // ErrWriteQueueFull write queue is full + ErrWriteQueueFull = errors.New("Write queue full") + // ErrNoReachableConnections when broadcasting a message, no connections were available to send a message to + ErrNoReachableConnections = errors.New("All pool connections are unreachable at this time") + // ErrNoMatchingConnections when broadcasting a message, no connections were found for the provided addresses + ErrNoMatchingConnections = errors.New("No connections found for broadcast addresses") + // ErrPoolEmpty when broadcasting a message, the connection pool was empty + ErrPoolEmpty = errors.New("Connection pool is empty after filtering connections") + // ErrConnectionExists connection exists + ErrConnectionExists = errors.New("Connection exists") + // ErrMaxIncomingConnectionsReached max incoming connections reached + ErrMaxIncomingConnectionsReached = errors.New("Max incoming connections reached") + // ErrMaxOutgoingConnectionsReached max outgoing connections reached + ErrMaxOutgoingConnectionsReached = errors.New("Max outgoing connections reached") + // ErrMaxOutgoingDefaultConnectionsReached max outgoing default connections reached + ErrMaxOutgoingDefaultConnectionsReached = errors.New("Max outgoing default connections reached") + // ErrNoAddresses no addresses were provided to BroadcastMessage + ErrNoAddresses = errors.New("No addresses provided") + + // Logger + logger = logging.MustGetLogger("gnet") +) + +// ReadError connection read error +type ReadError struct { + Err error +} + +func (e ReadError) Error() string { + return fmt.Sprintf("read failed: %v", e.Err) +} + +// WriteError connection read error +type WriteError struct { + Err error +} + +func (e WriteError) Error() string { + return fmt.Sprintf("write failed: %v", e.Err) +} + +// Config gnet config +type Config struct { + // Address to listen on. Leave empty for arbitrary assignment + Address string + // Port to listen on. Set to 0 for arbitrary assignment + Port uint16 + // Maximum total connections. Must be >= MaxOutgoingConnections + MaxIncomingConnections. + MaxConnections int + // Maximum outgoing connections + MaxOutgoingConnections int + // Maximum incoming connections + MaxIncomingConnections int + // Maximum allowed default outgoing connection number + MaxDefaultPeerOutgoingConnections int + // Messages greater than length are rejected and the sender disconnected + MaxIncomingMessageLength int + // Messages greater than length are not sent and an error is reported in a SendResult + MaxOutgoingMessageLength int + // Timeout is the timeout for dialing new connections. Use a + // timeout of 0 to ignore timeout. + DialTimeout time.Duration + // Timeout for reading from a connection. Set to 0 to default to the + // system's timeout + ReadTimeout time.Duration + // Timeout for writing to a connection. Set to 0 to default to the + // system's timeout + WriteTimeout time.Duration + // Message sent event buffers + SendResultsSize int + // Individual connections' send queue size. This should be increased + // if send volume per connection is high, so as not to block + ConnectionWriteQueueSize int + // Triggered on client disconnect + DisconnectCallback DisconnectCallback + // Triggered on client connect + ConnectCallback ConnectCallback + // Triggered on client connect failure + ConnectFailureCallback ConnectFailureCallback + // Print debug logs + DebugPrint bool + // Default "trusted" peers + DefaultConnections []string + // Default connections map + defaultConnections map[string]struct{} +} + +// NewConfig returns a Config with defaults set +func NewConfig() Config { + return Config{ + Address: "", + Port: 0, + MaxConnections: 128, + MaxOutgoingConnections: 8, + MaxIncomingConnections: 120, + MaxDefaultPeerOutgoingConnections: 2, + MaxOutgoingMessageLength: 256 * 1024, + MaxIncomingMessageLength: 1024 * 1024, + DialTimeout: time.Second * 30, + ReadTimeout: time.Second * 30, + WriteTimeout: time.Second * 30, + SendResultsSize: 2048, + ConnectionWriteQueueSize: 128, + DisconnectCallback: nil, + ConnectCallback: nil, + DebugPrint: false, + defaultConnections: make(map[string]struct{}), + } +} + +const ( + // Byte size of the length prefix in message, sizeof(int32) + messageLengthPrefixSize = 4 +) + +// Connection is stored by the ConnectionPool +type Connection struct { + // Key in ConnectionPool.Pool + ID uint64 + // TCP connection + Conn net.Conn + // Message buffer + Buffer *bytes.Buffer + // Reference back to ConnectionPool container + ConnectionPool *ConnectionPool + // Last time a message was fully parsed and handled + LastReceived time.Time + // Last time a message was sent to the connection + LastSent time.Time + // Message send queue. + WriteQueue chan Message + Solicited bool +} + +// NewConnection creates a new Connection tied to a ConnectionPool +func NewConnection(pool *ConnectionPool, id uint64, conn net.Conn, writeQueueSize int, solicited bool) *Connection { + return &Connection{ + ID: id, + Conn: conn, + Buffer: &bytes.Buffer{}, + ConnectionPool: pool, + LastReceived: Now(), + LastSent: Now(), + WriteQueue: make(chan Message, writeQueueSize), + Solicited: solicited, + } +} + +// Addr returns remote address +func (conn *Connection) Addr() string { + return conn.Conn.RemoteAddr().String() +} + +// String returns connection address +func (conn *Connection) String() string { + return conn.Addr() +} + +// Close close the connection and write queue +func (conn *Connection) Close() error { + err := conn.Conn.Close() + close(conn.WriteQueue) + conn.Buffer = &bytes.Buffer{} + return err +} + +// DisconnectCallback triggered on client disconnect +type DisconnectCallback func(addr string, id uint64, reason DisconnectReason) + +// ConnectCallback triggered on client connect +type ConnectCallback func(addr string, id uint64, solicited bool) + +// ConnectFailureCallback trigger on client connect failure +type ConnectFailureCallback func(addr string, solicited bool, err error) + +// ConnectionPool connection pool +type ConnectionPool struct { + // Configuration parameters + Config Config + // Channel for async message sending + SendResults chan SendResult + // All connections, indexed by ConnId + pool map[uint64]*Connection + // All connections, indexed by address + addresses map[string]*Connection + // connected default peer connections + defaultOutgoingConnections map[string]struct{} + // connected outgoing connections + outgoingConnections map[string]struct{} + // connected incoming connections + incomingConnections map[string]struct{} + // User-defined state to be passed into message handlers + messageState interface{} + // Connection ID counter + connID uint64 + // Listening connection + listener net.Listener + listenerLock sync.Mutex + // operations channel + reqC chan strand.Request + // quit channel + quit chan struct{} + done chan struct{} + strandDone chan struct{} + wg sync.WaitGroup +} + +// NewConnectionPool creates a new ConnectionPool that will listen on +// Config.Port upon StartListen. State is an application defined object that +// will be passed to a Message's Handle(). +func NewConnectionPool(c Config, state interface{}) (*ConnectionPool, error) { + for _, p := range c.DefaultConnections { + c.defaultConnections[p] = struct{}{} + } + if c.MaxConnections < c.MaxOutgoingConnections+c.MaxIncomingConnections { + return nil, errors.New("MaxConnections must be >= MaxOutgoingConnections + MaxIncomingConnections") + } + + return &ConnectionPool{ + Config: c, + pool: make(map[uint64]*Connection), + addresses: make(map[string]*Connection), + defaultOutgoingConnections: make(map[string]struct{}), + outgoingConnections: make(map[string]struct{}), + incomingConnections: make(map[string]struct{}), + SendResults: make(chan SendResult, c.SendResultsSize), + messageState: state, + quit: make(chan struct{}), + done: make(chan struct{}), + strandDone: make(chan struct{}), + reqC: make(chan strand.Request), + }, nil +} + +// Run starts the connection pool +func (pool *ConnectionPool) Run() error { + defer close(pool.done) + defer logger.Info("Connection pool closed") + + // The strand processing goroutine must be started before any error can be + // returned from Run(), otherwise the Shutdown() call will block if an error occurred + pool.wg.Add(1) + go func() { + defer pool.wg.Done() + pool.processStrand() + }() + + // start the connection accept loop + addr := fmt.Sprintf("%s:%v", pool.Config.Address, pool.Config.Port) + logger.Infof("Listening for connections on %s...", addr) + + ln, err := net.Listen("tcp", addr) + if err != nil { + return err + } + + pool.listenerLock.Lock() + pool.listener = ln + pool.listenerLock.Unlock() + +loop: + for { + conn, err := ln.Accept() + if err != nil { + // When Accept() returns with a non-nil error, we check the quit + // channel to see if we should continue or quit + select { + case <-pool.quit: + break loop + default: + // without the default case the select will block. + logger.Error(err.Error()) + continue + } + } + + pool.wg.Add(1) + go func() { + defer pool.wg.Done() + if err := pool.handleConnection(conn, false); err != nil { + logger.WithFields(logrus.Fields{ + "addr": conn.RemoteAddr(), + "outgoing": false, + }).WithError(err).Error("pool.handleConnection") + } + }() + } + pool.wg.Wait() + return nil +} + +// RunOffline runs the pool in offline mode. No connections will be accepted, +// but strand requests are processed. +func (pool *ConnectionPool) RunOffline() error { + defer close(pool.done) + pool.processStrand() + return nil +} + +func (pool *ConnectionPool) processStrand() { + defer close(pool.strandDone) + for { + select { + case <-pool.quit: + return + case req := <-pool.reqC: + if err := req.Func(); err != nil { + logger.WithField("operation", req.Name).WithError(err).Error("strand req.Func failed") + } + } + } +} + +// Shutdown gracefully shutdown the connection pool +func (pool *ConnectionPool) Shutdown() { + logger.Info("ConnectionPool.Shutdown called") + close(pool.quit) + logger.Info("ConnectionPool.Shutdown closed pool.quit") + + // Wait for all strand() calls to finish + logger.Info("ConnectionPool.Shutdown waiting for strandDone") + <-pool.strandDone + + logger.Info("ConnectionPool.Shutdown closing the listener") + + // Close to listener to prevent new connections + pool.listenerLock.Lock() + if pool.listener != nil { + if err := pool.listener.Close(); err != nil { + logger.WithError(err).Warning("pool.listener.Close error") + } + } + pool.listener = nil + pool.listenerLock.Unlock() + + logger.Info("ConnectionPool.Shutdown disconnecting all connections") + + // In readData, reader.Read() sometimes blocks instead of returning an error when the + // listener is closed. + // Directly close all connections before closing the listener. + // TODO -- could conn.Close() block too? + pool.disconnectAll() + + if len(pool.pool) != 0 { + logger.Critical().Warning("pool.pool is not empty after calling pool.disconnectAll()") + } + if len(pool.addresses) != 0 { + logger.Critical().Warning("pool.addresses is not empty after calling pool.disconnectAll()") + } + + logger.Info("ConnectionPool.Shutdown waiting for done") + + <-pool.done +} + +// strand ensures all read and write action of pool's member variable are in one thread +func (pool *ConnectionPool) strand(name string, f func() error) error { + name = fmt.Sprintf("daemon.gnet.ConnectionPool.%s", name) + return strand.Strand(logger, pool.reqC, name, f, pool.quit, ErrConnectionPoolClosed) +} + +// ListeningAddress returns the address on which the ConnectionPool listens on +func (pool *ConnectionPool) ListeningAddress() (net.Addr, error) { + if pool.listener == nil { + return nil, errors.New("Not listening, call StartListen first") + } + return pool.listener.Addr(), nil +} + +func (pool *ConnectionPool) canConnect(a string, solicited bool) error { + if pool.isConnExist(a) { + return ErrConnectionExists + } + + if solicited { + if _, ok := pool.Config.defaultConnections[a]; ok && pool.IsMaxOutgoingDefaultConnectionsReached() { + return ErrMaxOutgoingDefaultConnectionsReached + } else if pool.isMaxOutgoingConnectionsReached() { + return ErrMaxOutgoingConnectionsReached + } + } else if pool.isMaxIncomingConnectionsReached() { + return ErrMaxIncomingConnectionsReached + } + + return nil +} + +// newConnection creates a new Connection around a net.Conn. Trying to make a connection +// to an address that is already connected will failed. +func (pool *ConnectionPool) newConnection(conn net.Conn, solicited bool) (*Connection, error) { + a := conn.RemoteAddr().String() + + if err := pool.canConnect(a, solicited); err != nil { + return nil, err + } + + if solicited { + pool.outgoingConnections[a] = struct{}{} + + if _, ok := pool.Config.defaultConnections[a]; ok { + pool.defaultOutgoingConnections[a] = struct{}{} + l := len(pool.defaultOutgoingConnections) + logger.WithField("addr", a).Debugf("%d/%d outgoing default connections in use", l, pool.Config.MaxDefaultPeerOutgoingConnections) + } + } else { + pool.incomingConnections[a] = struct{}{} + } + + // ID must start at 1; in case connID overflows back to 0, force it to 1 + pool.connID++ + if pool.connID == 0 { + pool.connID = 1 + } + + nc := NewConnection(pool, pool.connID, conn, pool.Config.ConnectionWriteQueueSize, solicited) + + pool.pool[nc.ID] = nc + pool.addresses[a] = nc + + return nc, nil +} + +// Creates a Connection and begins its read and write loop +func (pool *ConnectionPool) handleConnection(conn net.Conn, solicited bool) error { + defer logger.WithField("addr", conn.RemoteAddr()).Debug("Connection closed") + addr := conn.RemoteAddr().String() + + c, err := func() (c *Connection, err error) { + // TODO -- when limits in newConnection() are reached, should we allow the peer + // to be added anyway, so that we can disconnect it normally and send a disconnect packet? + // It would have to allowed to complete the handshake, otherwise the DISC packet will be ignored + // Or we would have to permit a DISC packet before an INTR + // But the read/write loop would still need to be started + // A ConnectEvent would need to be triggered, or else the DisconnectEvent gnet ID will not match the + // pending connection's zero gnet ID. + defer func() { + if err != nil { + if closeErr := conn.Close(); closeErr != nil { + logger.WithError(closeErr).WithField("addr", addr).Error("handleConnection conn.Close") + } + } + }() + + err = pool.strand("handleConnection", func() error { + var err error + c, err = pool.newConnection(conn, solicited) + if err != nil { + return err + } + + if pool.Config.ConnectCallback != nil { + pool.Config.ConnectCallback(c.Addr(), c.ID, solicited) + } + + return nil + }) + + return + }() + + // TODO -- this error is not fully propagated back to a caller of Connect() so the daemon state + // can get stuck in pending + if err != nil { + logger.WithError(err).WithField("addr", conn.RemoteAddr()).Debug("handleConnection: newConnection failed") + if pool.Config.ConnectFailureCallback != nil { + pool.Config.ConnectFailureCallback(addr, solicited, err) + } + return err + } + + msgC := make(chan []byte, 32) + + type methodErr struct { + method string + err error + } + errC := make(chan methodErr, 3) + + var wg sync.WaitGroup + wg.Add(1) + qc := make(chan struct{}) + go func() { + defer wg.Done() + if err := pool.readLoop(c, msgC, qc); err != nil { + errC <- methodErr{ + method: "readLoop", + err: err, + } + } + }() + + wg.Add(1) + go func() { + defer wg.Done() + if err := pool.sendLoop(c, pool.Config.WriteTimeout, pool.Config.MaxOutgoingMessageLength, qc); err != nil { + errC <- methodErr{ + method: "sendLoop", + err: err, + } + } + }() + + wg.Add(1) + go func() { + defer wg.Done() + elapser := elapse.NewElapser(receiveMessageDurationThreshold, logger) + defer elapser.CheckForDone() + + for msg := range msgC { + elapser.Register(fmt.Sprintf("pool.receiveMessage address=%s", addr)) + if err := pool.receiveMessage(c, msg); err != nil { + errC <- methodErr{ + method: "receiveMessage", + err: err, + } + return + } + elapser.CheckForDone() + } + }() + + select { + case <-pool.quit: + if err := conn.Close(); err != nil { + logger.WithError(err).WithField("addr", addr).Error("conn.Close") + } + case mErr := <-errC: + err = mErr.err + logger.WithError(mErr.err).WithFields(logrus.Fields{ + "addr": addr, + "method": mErr.method, + }).Error("handleConnection failure") + + // This Disconnect does not send a DISC packet because it is inside gnet. + // A DISC packet is not useful at this point, because the error is most likely + // that the connection is unreachable. + // However, it may also be that the connection sent data that could not be deserialized + // to a message. + if err := pool.Disconnect(c.Addr(), mErr.err); err != nil { + logger.WithError(err).WithField("addr", addr).Error("Disconnect") + } + } + close(qc) + + wg.Wait() + + return err +} + +func (pool *ConnectionPool) readLoop(conn *Connection, msgChan chan []byte, qc chan struct{}) error { + defer close(msgChan) + // read data from connection + reader := bufio.NewReader(conn.Conn) + buf := make([]byte, 1024) + + elapser := elapse.NewElapser(readLoopDurationThreshold, logger) + sendInMsgChanElapser := elapse.NewElapser(sendInMsgChanDurationThreshold, logger) + + defer elapser.CheckForDone() + defer sendInMsgChanElapser.CheckForDone() + + for { + elapser.Register(fmt.Sprintf("readLoop addr=%s", conn.Addr())) + deadline := time.Time{} + if pool.Config.ReadTimeout != 0 { + deadline = time.Now().Add(pool.Config.ReadTimeout) + } + if err := conn.Conn.SetReadDeadline(deadline); err != nil { + return ErrDisconnectSetReadDeadlineFailed + } + data, err := readData(reader, buf) + if err != nil { + return err + } + + if data == nil { + continue + } + + // write data to buffer + if _, err := conn.Buffer.Write(data); err != nil { + return err + } + // decode data + datas, err := decodeData(conn.Buffer, pool.Config.MaxIncomingMessageLength) + if err != nil { + return err + } + for _, d := range datas { + // use select to avoid the goroutine leak, + // because if msgChan has no receiver this goroutine will leak + select { + case <-qc: + return nil + case <-pool.quit: + return nil + case msgChan <- d: + default: + return errors.New("readLoop msgChan is closed or full") + } + } + sendInMsgChanElapser.CheckForDone() + } +} + +func (pool *ConnectionPool) sendLoop(conn *Connection, timeout time.Duration, maxMsgLength int, qc chan struct{}) error { + elapser := elapse.NewElapser(sendLoopDurationThreshold, logger) + defer elapser.CheckForDone() + + for { + elapser.CheckForDone() + select { + case <-pool.quit: + return nil + case <-qc: + return nil + case m := <-conn.WriteQueue: + elapser.Register(fmt.Sprintf("conn.WriteQueue address=%s", conn.Addr())) + if m == nil { + continue + } + + err := sendMessage(conn.Conn, m, timeout, maxMsgLength) + + // Update last sent before writing to SendResult, + // this allows a write to SendResult to be used as a sync marker, + // since no further action in this block will happen after the write. + if err == nil { + if err := pool.updateLastSent(conn.Addr(), Now()); err != nil { + logger.WithField("addr", conn.Addr()).WithError(err).Warning("updateLastSent failed") + } + } + + sr := newSendResult(conn.Addr(), m, err) + select { + case <-qc: + return nil + case pool.SendResults <- sr: + default: + logger.WithField("addr", conn.Addr()).Warning("SendResults queue full") + } + + if err != nil { + return err + } + } + } +} + +func readData(reader io.Reader, buf []byte) ([]byte, error) { + c, err := reader.Read(buf) + if err != nil { + return nil, &ReadError{ + Err: err, + } + } + if c == 0 { + return nil, nil + } + data := make([]byte, c) + copy(data, buf) + return data, nil +} + +// decode data from buffer. +func decodeData(buf *bytes.Buffer, maxMsgLength int) ([][]byte, error) { + dataArray := [][]byte{} + for buf.Len() > messageLengthPrefixSize { + prefix := buf.Bytes()[:messageLengthPrefixSize] + // decode message length + tmpLength, _, err := encoder.DeserializeUint32(prefix) + if err != nil { + // encoder.DeserializeAtomic should only return an error if there wasn't + // enough data in buf to read the integer, but the prefix buf length + // is already ensured to be long enough + logger.Panicf("encoder.DeserializeUint32 failed unexpectedly: %v", err) + } + + length := int(tmpLength) + + // Disconnect if we received an invalid length + if length < messagePrefixLength { + logger.WithFields(logrus.Fields{ + "length": length, + "messagePrefixLength": messagePrefixLength, + }).Warningf("decodeData: length < messagePrefixLength") + return [][]byte{}, ErrDisconnectInvalidMessageLength + } + + if length > maxMsgLength { + logger.WithFields(logrus.Fields{ + "length": length, + "maxMsgLength": maxMsgLength, + }).Warning("decodeData: length > maxMsgLength") + return [][]byte{}, ErrDisconnectInvalidMessageLength + } + + if buf.Len()-messageLengthPrefixSize < length { + return [][]byte{}, nil + } + + buf.Next(messageLengthPrefixSize) // strip the length prefix + data := make([]byte, length) + _, err = buf.Read(data) + if err != nil { + return [][]byte{}, err + } + + dataArray = append(dataArray, data) + } + return dataArray, nil +} + +// isConnExist check if the connection of address does exist +func (pool *ConnectionPool) isConnExist(addr string) bool { + _, ok := pool.addresses[addr] + return ok +} + +func (pool *ConnectionPool) isMaxIncomingConnectionsReached() bool { + return len(pool.incomingConnections) >= pool.Config.MaxIncomingConnections +} + +func (pool *ConnectionPool) isMaxOutgoingConnectionsReached() bool { + return len(pool.outgoingConnections) >= pool.Config.MaxOutgoingConnections +} + +// IsMaxOutgoingDefaultConnectionsReached checks whether the max outgoing default connections reached +func (pool *ConnectionPool) IsMaxOutgoingDefaultConnectionsReached() bool { + return len(pool.defaultOutgoingConnections) >= pool.Config.MaxDefaultPeerOutgoingConnections +} + +func (pool *ConnectionPool) updateLastSent(addr string, t time.Time) error { + return pool.strand("updateLastSent", func() error { + if conn, ok := pool.addresses[addr]; ok { + conn.LastSent = t + } + return nil + }) +} + +func (pool *ConnectionPool) updateLastRecv(addr string, t time.Time) error { + return pool.strand("updateLastRecv", func() error { + if conn, ok := pool.addresses[addr]; ok { + conn.LastReceived = t + } + return nil + }) +} + +// GetConnection returns a connection copy if exist +func (pool *ConnectionPool) GetConnection(addr string) (*Connection, error) { + var conn *Connection + if err := pool.strand("GetConnection", func() error { + if c, ok := pool.addresses[addr]; ok { + // copy connection + cc := *c + conn = &cc + } + return nil + }); err != nil { + return nil, err + } + + return conn, nil +} + +// Connect to an address +func (pool *ConnectionPool) Connect(address string) error { + if err := pool.strand("canConnect", func() error { + return pool.canConnect(address, true) + }); err != nil { + return err + } + + logger.WithField("addr", address).Debugf("Making TCP connection") + conn, err := net.DialTimeout("tcp", address, pool.Config.DialTimeout) + if err != nil { + return err + } + + pool.wg.Add(1) + go func() { + defer pool.wg.Done() + if err := pool.handleConnection(conn, true); err != nil { + logger.WithFields(logrus.Fields{ + "addr": conn.RemoteAddr(), + "outgoing": true, + }).WithError(err).Error("pool.handleConnection") + } + }() + return nil +} + +// Disconnect removes a connection from the pool by address and invokes DisconnectCallback +func (pool *ConnectionPool) Disconnect(addr string, r DisconnectReason) error { + return pool.strand("Disconnect", func() error { + logger.WithFields(logrus.Fields{ + "addr": addr, + "reason": r, + }).Debug("Disconnecting") + + // checks if the address is default node address + isDefaultOutgoingConn := false + if _, ok := pool.Config.defaultConnections[addr]; ok { + if _, ok := pool.outgoingConnections[addr]; ok { + isDefaultOutgoingConn = true + } + } + + conn := pool.disconnect(addr, r) + + if conn == nil { + return errors.New("Disconnect: connection does not exist") + } + + if isDefaultOutgoingConn { + l := len(pool.defaultOutgoingConnections) + logger.Debugf("%d/%d default connections in use", l, pool.Config.MaxDefaultPeerOutgoingConnections) + } + + if pool.Config.DisconnectCallback != nil { + pool.Config.DisconnectCallback(addr, conn.ID, r) + } + + return nil + }) +} + +func (pool *ConnectionPool) disconnect(addr string, r DisconnectReason) *Connection { + conn, ok := pool.addresses[addr] + if !ok { + return nil + } + + fields := logrus.Fields{ + "addr": addr, + "id": conn.ID, + } + + delete(pool.pool, conn.ID) + delete(pool.addresses, addr) + delete(pool.defaultOutgoingConnections, addr) + delete(pool.outgoingConnections, addr) + delete(pool.incomingConnections, addr) + if err := conn.Close(); err != nil { + logger.WithError(err).WithFields(fields).Error("conn.Close") + } + + logger.WithFields(fields).WithField("reason", r).Debug("Closed connection and removed from pool") + + return conn +} + +// disconnectAll disconnects all connections. Only safe to call in Shutdown() +func (pool *ConnectionPool) disconnectAll() { + for _, conn := range pool.pool { + addr := conn.Addr() + pool.disconnect(addr, ErrDisconnectShutdown) + } +} + +// GetConnections returns an copy of pool connections +func (pool *ConnectionPool) GetConnections() ([]Connection, error) { + conns := []Connection{} + if err := pool.strand("GetConnections", func() error { + for _, conn := range pool.pool { + conns = append(conns, *conn) + } + return nil + }); err != nil { + return nil, err + } + return conns, nil +} + +// Size returns the pool size +func (pool *ConnectionPool) Size() (l int, err error) { + err = pool.strand("Size", func() error { + l = len(pool.pool) + return nil + }) + return +} + +// SendMessage sends a Message to a Connection +func (pool *ConnectionPool) SendMessage(addr string, msg Message) error { + if pool.Config.DebugPrint { + logger.WithField("msgType", reflect.TypeOf(msg)).Debug("SendMessage") + } + + return pool.strand("SendMessage", func() error { + if conn, ok := pool.addresses[addr]; ok { + select { + case conn.WriteQueue <- msg: + default: + logger.Critical().WithField("addr", addr).Info("Write queue full") + return ErrWriteQueueFull + } + } else { + return fmt.Errorf("Tried to send %T to %s, but we are not connected", msg, addr) + } + return nil + }) +} + +// BroadcastMessage sends a Message to all connections specified in addrs. +// If a connection does not exist for a given address, it is skipped. +// If no messages were written to any connection, an error is returned. +// Returns the gnet IDs of connections that the message was queued for sending to. +// Note that actual sending can still fail later, if the connection drops before the message is sent. +func (pool *ConnectionPool) BroadcastMessage(msg Message, addrs []string) ([]uint64, error) { + if pool.Config.DebugPrint { + logger.WithField("msgType", reflect.TypeOf(msg)).Debug("BroadcastMessage") + } + + if len(addrs) == 0 { + return nil, ErrNoAddresses + } + + queuedConns := make([]uint64, 0, len(addrs)) + + if err := pool.strand("BroadcastMessage", func() error { + if len(pool.pool) == 0 { + return ErrPoolEmpty + } + + fullWriteQueue := 0 + foundConns := 0 + + for _, addr := range addrs { + if conn, ok := pool.addresses[addr]; ok { + foundConns++ + select { + case conn.WriteQueue <- msg: + queuedConns = append(queuedConns, conn.ID) + default: + logger.Critical().WithFields(logrus.Fields{ + "addr": conn.Addr(), + "id": conn.ID, + }).Info("Write queue full") + fullWriteQueue++ + } + } + } + + if foundConns == 0 { + return ErrNoMatchingConnections + } + + if fullWriteQueue == foundConns { + return ErrNoReachableConnections + } + + return nil + }); err != nil { + return nil, err + } + + return queuedConns, nil +} + +// Unpacks incoming bytes to a Message and calls the message handler. If +// the bytes cannot be converted to a Message, the error is returned as the +// first return value. Otherwise, error will be nil and DisconnectReason will +// be the value returned from the message handler. +func (pool *ConnectionPool) receiveMessage(c *Connection, msg []byte) error { + m, err := convertToMessage(c.ID, msg, pool.Config.DebugPrint) + if err != nil { + return err + } + if err := pool.updateLastRecv(c.Addr(), Now()); err != nil { + return err + } + return m.Handle(NewMessageContext(c), pool.messageState) +} + +// SendPings sends a ping if our last message sent was over pingRate ago +func (pool *ConnectionPool) SendPings(rate time.Duration, msg Message) error { + now := time.Now().UTC() + var addrs []string + if err := pool.strand("SendPings", func() error { + for _, conn := range pool.pool { + if conn.LastSent.Add(rate).Before(now) { + addrs = append(addrs, conn.Addr()) + } + } + return nil + }); err != nil { + return err + } + + for _, a := range addrs { + if err := pool.SendMessage(a, msg); err != nil { + return err + } + } + + return nil +} + +// GetStaleConnections returns connections that have been idle for longer than idleLimit +func (pool *ConnectionPool) GetStaleConnections(idleLimit time.Duration) ([]string, error) { + now := Now() + var idleConns []string + if err := pool.strand("GetStaleConnections", func() error { + for _, conn := range pool.pool { + if conn.LastReceived.Add(idleLimit).Before(now) { + idleConns = append(idleConns, conn.Addr()) + } + } + return nil + }); err != nil { + return nil, err + } + + return idleConns, nil +} + +// Now returns the current UTC time +func Now() time.Time { + return time.Now().UTC() +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/introduction_message_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/introduction_message_skyencoder.go new file mode 100644 index 000000000..61d0ce663 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/introduction_message_skyencoder.go @@ -0,0 +1,162 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeIntroductionMessage computes the size of an encoded object of type IntroductionMessage +func encodeSizeIntroductionMessage(obj *IntroductionMessage) uint64 { + i0 := uint64(0) + + // obj.Mirror + i0 += 4 + + // obj.ListenPort + i0 += 2 + + // obj.ProtocolVersion + i0 += 4 + + // omitempty + if len(obj.Extra) != 0 { + + // obj.Extra + i0 += 4 + uint64(len(obj.Extra)) + + } + + return i0 +} + +// encodeIntroductionMessage encodes an object of type IntroductionMessage to a buffer allocated to the exact size +// required to encode the object. +func encodeIntroductionMessage(obj *IntroductionMessage) ([]byte, error) { + n := encodeSizeIntroductionMessage(obj) + buf := make([]byte, n) + + if err := encodeIntroductionMessageToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeIntroductionMessageToBuffer encodes an object of type IntroductionMessage to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeIntroductionMessageToBuffer(buf []byte, obj *IntroductionMessage) error { + if uint64(len(buf)) < encodeSizeIntroductionMessage(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Mirror + e.Uint32(obj.Mirror) + + // obj.ListenPort + e.Uint16(obj.ListenPort) + + // obj.ProtocolVersion + e.Int32(obj.ProtocolVersion) + + // omitempty + if len(obj.Extra) != 0 { + + // obj.Extra length check + if uint64(len(obj.Extra)) > math.MaxUint32 { + return errors.New("obj.Extra length exceeds math.MaxUint32") + } + + // obj.Extra length + e.Uint32(uint32(len(obj.Extra))) + + // obj.Extra copy + e.CopyBytes(obj.Extra) + + } + + return nil +} + +// decodeIntroductionMessage decodes an object of type IntroductionMessage from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeIntroductionMessage(buf []byte, obj *IntroductionMessage) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Mirror + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Mirror = i + } + + { + // obj.ListenPort + i, err := d.Uint16() + if err != nil { + return 0, err + } + obj.ListenPort = i + } + + { + // obj.ProtocolVersion + i, err := d.Int32() + if err != nil { + return 0, err + } + obj.ProtocolVersion = i + } + + { + // obj.Extra + + if len(d.Buffer) == 0 { + return uint64(len(buf) - len(d.Buffer)), nil + } + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length != 0 { + obj.Extra = make([]byte, length) + + copy(obj.Extra[:], d.Buffer[:length]) + d.Buffer = d.Buffer[length:] + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeIntroductionMessageExact decodes an object of type IntroductionMessage from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeIntroductionMessageExact(buf []byte, obj *IntroductionMessage) error { + if n, err := decodeIntroductionMessage(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/ip_addr_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/ip_addr_skyencoder.go new file mode 100644 index 000000000..73f6dbaf2 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/ip_addr_skyencoder.go @@ -0,0 +1,93 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import "github.com/skycoin/skycoin/src/cipher/encoder" + +// encodeSizeIPAddr computes the size of an encoded object of type IPAddr +func encodeSizeIPAddr(obj *IPAddr) uint64 { + i0 := uint64(0) + + // obj.IP + i0 += 4 + + // obj.Port + i0 += 2 + + return i0 +} + +// encodeIPAddr encodes an object of type IPAddr to a buffer allocated to the exact size +// required to encode the object. +func encodeIPAddr(obj *IPAddr) ([]byte, error) { + n := encodeSizeIPAddr(obj) + buf := make([]byte, n) + + if err := encodeIPAddrToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeIPAddrToBuffer encodes an object of type IPAddr to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeIPAddrToBuffer(buf []byte, obj *IPAddr) error { + if uint64(len(buf)) < encodeSizeIPAddr(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.IP + e.Uint32(obj.IP) + + // obj.Port + e.Uint16(obj.Port) + + return nil +} + +// decodeIPAddr decodes an object of type IPAddr from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeIPAddr(buf []byte, obj *IPAddr) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.IP + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.IP = i + } + + { + // obj.Port + i, err := d.Uint16() + if err != nil { + return 0, err + } + obj.Port = i + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeIPAddrExact decodes an object of type IPAddr from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeIPAddrExact(buf []byte, obj *IPAddr) error { + if n, err := decodeIPAddr(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/messages.go b/vendor/github.com/skycoin/skycoin/src/daemon/messages.go new file mode 100644 index 000000000..1a146566a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/messages.go @@ -0,0 +1,1390 @@ +package daemon + +import ( + "encoding/binary" + "errors" + "fmt" + "net" + "strings" + + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/daemon/gnet" + "github.com/skycoin/skycoin/src/daemon/pex" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/util/iputil" + "github.com/skycoin/skycoin/src/util/useragent" +) + +// Message represent a packet to be serialized over the network by +// the gnet encoder. +// They must implement the gnet.Message interface +// All concurrent daemon write operations are synchronized by the daemon's +// DaemonLoop(). +// Message do this by caching the gnet.MessageContext received in Handle() +// and placing itself on the messageEvent channel. +// When the message is retrieved from the messageEvent channel, its process() +// method is called. + +// MessageConfig config contains a gnet.Message's 4byte prefix and a +// reference interface +type MessageConfig struct { + Prefix gnet.MessagePrefix + Message interface{} +} + +// NewMessageConfig creates message config +func NewMessageConfig(prefix string, m interface{}) MessageConfig { + return MessageConfig{ + Message: m, + Prefix: gnet.MessagePrefixFromString(prefix), + } +} + +//go:generate skyencoder -unexported -struct IntroductionMessage +//go:generate skyencoder -unexported -struct GivePeersMessage +//go:generate skyencoder -unexported -struct GetBlocksMessage +//go:generate skyencoder -unexported -struct GiveBlocksMessage +//go:generate skyencoder -unexported -struct AnnounceBlocksMessage +//go:generate skyencoder -unexported -struct GetTxnsMessage +//go:generate skyencoder -unexported -struct GiveTxnsMessage +//go:generate skyencoder -unexported -struct AnnounceTxnsMessage +//go:generate skyencoder -unexported -struct DisconnectMessage +//go:generate skyencoder -unexported -struct IPAddr +//go:generate skyencoder -unexported -output-path . -package daemon -struct SignedBlock github.com/skycoin/skycoin/src/coin +//go:generate skyencoder -unexported -output-path . -package daemon -struct Transaction github.com/skycoin/skycoin/src/coin + +// Creates and populates the message configs +func getMessageConfigs() []MessageConfig { + return []MessageConfig{ + NewMessageConfig("INTR", IntroductionMessage{}), + NewMessageConfig("GETP", GetPeersMessage{}), + NewMessageConfig("GIVP", GivePeersMessage{}), + NewMessageConfig("PING", PingMessage{}), + NewMessageConfig("PONG", PongMessage{}), + NewMessageConfig("GETB", GetBlocksMessage{}), + NewMessageConfig("GIVB", GiveBlocksMessage{}), + NewMessageConfig("ANNB", AnnounceBlocksMessage{}), + NewMessageConfig("GETT", GetTxnsMessage{}), + NewMessageConfig("GIVT", GiveTxnsMessage{}), + NewMessageConfig("ANNT", AnnounceTxnsMessage{}), + NewMessageConfig("DISC", DisconnectMessage{}), + } +} + +// MessagesConfig slice of MessageConfig +type MessagesConfig struct { + // Message ID prefices + Messages []MessageConfig +} + +// NewMessagesConfig creates messages config +func NewMessagesConfig() MessagesConfig { + return MessagesConfig{ + Messages: getMessageConfigs(), + } +} + +// Register registers our Messages with gnet +func (msc *MessagesConfig) Register() { + for _, mc := range msc.Messages { + gnet.RegisterMessage(mc.Prefix, mc.Message) + } + gnet.VerifyMessages() +} + +// Messages messages struct +type Messages struct { + Config MessagesConfig +} + +// NewMessages creates Messages +func NewMessages(c MessagesConfig) *Messages { + return &Messages{ + Config: c, + } +} + +// IPAddr compact representation of IP:Port +type IPAddr struct { + IP uint32 + Port uint16 +} + +// NewIPAddr returns an IPAddr from an ip:port string. +func NewIPAddr(addr string) (ipaddr IPAddr, err error) { + ips, port, err := iputil.SplitAddr(addr) + if err != nil { + return + } + + // TODO -- support ipv6 + ipb := net.ParseIP(ips).To4() + if ipb == nil { + err = errors.New("Ignoring IPv6 address") + return + } + + ip := binary.BigEndian.Uint32(ipb) + ipaddr.IP = ip + ipaddr.Port = port + return +} + +// String returns IPAddr as "ip:port" +func (ipa IPAddr) String() string { + ipb := make([]byte, 4) + binary.BigEndian.PutUint32(ipb, ipa.IP) + return fmt.Sprintf("%s:%d", net.IP(ipb).String(), ipa.Port) +} + +// asyncMessage messages that perform an action when received must implement this interface. +// process() is called after the message is pulled off of messageEvent channel. +// Messages should place themselves on the messageEvent channel in their +// Handle() method required by gnet. +type asyncMessage interface { + process(d daemoner) +} + +// GetPeersMessage sent to request peers +type GetPeersMessage struct { + addr string `enc:"-"` +} + +// NewGetPeersMessage creates GetPeersMessage +func NewGetPeersMessage() *GetPeersMessage { + return &GetPeersMessage{} +} + +// EncodeSize implements gnet.Serializer +func (gpm *GetPeersMessage) EncodeSize() uint64 { + return 0 +} + +// Encode implements gnet.Serializer +func (gpm *GetPeersMessage) Encode(buf []byte) error { + return nil +} + +// Decode implements gnet.Serializer +func (gpm *GetPeersMessage) Decode(buf []byte) (uint64, error) { + return 0, nil +} + +// Handle handles message +func (gpm *GetPeersMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + gpm.addr = mc.Addr + return daemon.(daemoner).recordMessageEvent(gpm, mc) +} + +// process Notifies the Pex instance that peers were requested +func (gpm *GetPeersMessage) process(d daemoner) { + if d.pexConfig().Disabled { + return + } + + if err := d.sendRandomPeers(gpm.addr); err != nil { + logger.WithField("addr", gpm.addr).WithError(err).Error("SendRandomPeers failed") + } +} + +// GivePeersMessage sent in response to GetPeersMessage +type GivePeersMessage struct { + Peers []IPAddr `enc:",maxlen=512"` + c *gnet.MessageContext `enc:"-"` +} + +// NewGivePeersMessage []*pex.Peer is converted to []IPAddr for binary transmission +// If the size of the message would exceed maxMsgLength, the IPAddr slice is truncated. +func NewGivePeersMessage(peers []pex.Peer, maxMsgLength uint64) *GivePeersMessage { + if len(peers) > 512 { + peers = peers[:512] + } + + ipaddrs := make([]IPAddr, 0, len(peers)) + for _, ps := range peers { + ipaddr, err := NewIPAddr(ps.Addr) + if err != nil { + logger.WithError(err).WithField("addr", ps.Addr).Warning("GivePeersMessage skipping invalid address") + continue + } + ipaddrs = append(ipaddrs, ipaddr) + } + + m := &GivePeersMessage{ + Peers: ipaddrs, + } + truncateGivePeersMessage(m, maxMsgLength) + return m +} + +// truncateGivePeersMessage truncates the blocks in GivePeersMessage to fit inside of MaxOutgoingMessageLength +func truncateGivePeersMessage(m *GivePeersMessage, maxMsgLength uint64) { + // The message length will include a 4 byte message type prefix. + // Panic if the prefix can't fit, otherwise we can't adjust the uint64 safely + if maxMsgLength < 4 { + logger.Panic("maxMsgLength must be >= 4") + } + + maxMsgLength -= 4 + + // Measure the current message size, if it fits, return + n := m.EncodeSize() + if n <= maxMsgLength { + return + } + + // Measure the size of an empty message + var mm GivePeersMessage + size := mm.EncodeSize() + + // Measure the size of the peers, advancing the slice index until it reaches capacity + index := -1 + for i, ip := range m.Peers { + x := encodeSizeIPAddr(&ip) + if size+x > maxMsgLength { + break + } + size += x + index = i + } + + m.Peers = m.Peers[:index+1] + + if len(m.Peers) == 0 { + logger.Critical().Error("truncateGivePeersMessage truncated peers to an empty slice") + } +} + +// EncodeSize implements gnet.Serializer +func (gpm *GivePeersMessage) EncodeSize() uint64 { + return encodeSizeGivePeersMessage(gpm) +} + +// Encode implements gnet.Serializer +func (gpm *GivePeersMessage) Encode(buf []byte) error { + return encodeGivePeersMessageToBuffer(buf, gpm) +} + +// Decode implements gnet.Serializer +func (gpm *GivePeersMessage) Decode(buf []byte) (uint64, error) { + return decodeGivePeersMessage(buf, gpm) +} + +// GetPeers is required by the pex.GivePeersMessage interface. +// It returns the peers contained in the message as an array of "ip:port" +// strings. +func (gpm *GivePeersMessage) GetPeers() []string { + peers := make([]string, len(gpm.Peers)) + for i, ipaddr := range gpm.Peers { + peers[i] = ipaddr.String() + } + return peers +} + +// Handle handle message +func (gpm *GivePeersMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + gpm.c = mc + return daemon.(daemoner).recordMessageEvent(gpm, mc) +} + +// process Notifies the Pex instance that peers were received +func (gpm *GivePeersMessage) process(d daemoner) { + if d.pexConfig().Disabled { + return + } + + peers := gpm.GetPeers() + + if len(peers) == 0 { + return + } + + // Cap the number of peers printed in the log to prevent log spam abuse + peersToFmt := peers + if len(peersToFmt) > 30 { + peersToFmt = peersToFmt[:30] + } + peersStr := strings.Join(peersToFmt, ", ") + if len(peers) != len(peersToFmt) { + peersStr += fmt.Sprintf(" and %d more", len(peers)-len(peersToFmt)) + } + + logger.WithFields(logrus.Fields{ + "addr": gpm.c.Addr, + "gnetID": gpm.c.ConnID, + "peers": peersStr, + "count": len(peers), + }).Debug("Received peers via PEX") + + d.addPeers(peers) +} + +// IntroductionMessage is sent on first connect by both parties +type IntroductionMessage struct { + c *gnet.MessageContext `enc:"-"` + UserAgent useragent.Data `enc:"-"` + UnconfirmedVerifyTxn params.VerifyTxn `enc:"-"` + GenesisHash cipher.SHA256 `enc:"-"` + + // Mirror is a random value generated on client startup that is used to identify self-connections + Mirror uint32 + // ListenPort is the port that this client is listening on + ListenPort uint16 + // Protocol version + ProtocolVersion int32 + + // Extra is extra bytes added to the struct to accommodate multiple versions of this packet. + // Currently it contains the blockchain pubkey and user agent but will accept a client that does not provide it. + // If any of this data is provided, it must include a valid blockchain pubkey and a valid user agent string (maxlen=256). + // Contents of extra: + // ExtraByte uint32 // length prefix of []byte + // Pubkey cipher.Pubkey // blockchain pubkey + // BurnFactor uint32 // burn factor for announced txns + // MaxTxnSize uint32 // max txn size for announced txns + // MaxDropletPrecision uint8 // maximum number of decimal places for announced txns + // UserAgent string `enc:",maxlen=256"` + // GenesisHash cipher.SHA256 // genesis block hash + Extra []byte `enc:",omitempty"` +} + +// NewIntroductionMessage creates introduction message +func NewIntroductionMessage(mirror uint32, version int32, port uint16, pubkey cipher.PubKey, userAgent string, verifyParams params.VerifyTxn, genesisHash cipher.SHA256) *IntroductionMessage { + return &IntroductionMessage{ + Mirror: mirror, + ProtocolVersion: version, + ListenPort: port, + Extra: newIntroductionMessageExtra(pubkey, userAgent, verifyParams, genesisHash), + } +} + +func newIntroductionMessageExtra(pubkey cipher.PubKey, userAgent string, verifyParams params.VerifyTxn, genesisHash cipher.SHA256) []byte { + if len(userAgent) > useragent.MaxLen { + logger.WithFields(logrus.Fields{ + "userAgent": userAgent, + "maxLen": useragent.MaxLen, + }).Panic("user agent exceeds max len") + } + if userAgent == "" { + logger.Panic("user agent is required") + } + useragent.MustParse(userAgent) + + if err := verifyParams.Validate(); err != nil { + logger.Panic(err) + } + + userAgentSerialized := encoder.SerializeString(userAgent) + verifyParamsSerialized := encoder.Serialize(verifyParams) + + extra := make([]byte, len(pubkey)+len(userAgentSerialized)+len(verifyParamsSerialized)+len(genesisHash)) + + copy(extra[:len(pubkey)], pubkey[:]) + i := len(pubkey) + copy(extra[i:], verifyParamsSerialized) + i += len(verifyParamsSerialized) + copy(extra[i:], userAgentSerialized) + i += len(userAgentSerialized) + copy(extra[i:i+len(genesisHash)], genesisHash[:]) + + return extra +} + +// EncodeSize implements gnet.Serializer +func (intro *IntroductionMessage) EncodeSize() uint64 { + return encodeSizeIntroductionMessage(intro) +} + +// Encode implements gnet.Serializer +func (intro *IntroductionMessage) Encode(buf []byte) error { + return encodeIntroductionMessageToBuffer(buf, intro) +} + +// Decode implements gnet.Serializer +func (intro *IntroductionMessage) Decode(buf []byte) (uint64, error) { + return decodeIntroductionMessage(buf, intro) +} + +// Handle records message event in daemon +func (intro *IntroductionMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + intro.c = mc + return daemon.(daemoner).recordMessageEvent(intro, mc) +} + +// process an event queued by Handle() +func (intro *IntroductionMessage) process(d daemoner) { + addr := intro.c.Addr + + fields := logrus.Fields{ + "addr": addr, + "gnetID": intro.c.ConnID, + "listenPort": intro.ListenPort, + } + + logger.WithFields(fields).Debug("IntroductionMessage.process") + + if err := intro.Verify(d.DaemonConfig(), logrus.Fields{ + "addr": addr, + "gnetID": intro.c.ConnID, + }); err != nil { + if err := d.Disconnect(addr, err); err != nil { + logger.WithError(err).WithFields(fields).Warning("Disconnect") + } + return + } + + if _, err := d.connectionIntroduced(addr, intro.c.ConnID, intro); err != nil { + logger.WithError(err).WithFields(fields).Warning("connectionIntroduced failed") + var reason gnet.DisconnectReason + switch err { + // It is hypothetically possible that a message would get processed after + // a disconnect event for a given connection. + // In this case, drop the packet. + // Do not perform a disconnect, since this would operate on the new connection. + // This should be prevented by an earlier check in daemon.onMessageEvent() + case ErrConnectionGnetIDMismatch, ErrConnectionStateNotConnected, ErrConnectionAlreadyIntroduced: + logger.Critical().WithError(err).WithFields(fields).Warning("IntroductionMessage.process connection state out of order") + return + case ErrConnectionNotExist: + return + case ErrConnectionIPMirrorExists: + reason = ErrDisconnectConnectedTwice + case pex.ErrPeerlistFull: + reason = ErrDisconnectPeerlistFull + // Send more peers before disconnecting + logger.WithFields(fields).Debug("Sending peers before disconnecting due to peer list full") + if err := d.sendRandomPeers(addr); err != nil { + logger.WithError(err).WithFields(fields).Warning("sendRandomPeers failed") + } + default: + reason = ErrDisconnectUnexpectedError + } + + if err := d.Disconnect(addr, reason); err != nil { + logger.WithError(err).WithFields(fields).Warning("Disconnect") + } + + return + } + + // Request blocks immediately after they're confirmed + if err := d.requestBlocksFromAddr(addr); err != nil { + logger.WithError(err).WithFields(fields).Warning("requestBlocksFromAddr") + } else { + logger.WithFields(fields).Debug("Requested blocks") + } + + // Announce unconfirmed txns + if err := d.announceAllValidTxns(); err != nil { + logger.WithError(err).Warning("announceAllValidTxns failed") + } +} + +// Verify checks if the introduction message is valid returning the appropriate error +func (intro *IntroductionMessage) Verify(dc DaemonConfig, logFields logrus.Fields) error { + // Disconnect if this is a self connection (we have the same mirror value) + if intro.Mirror == dc.Mirror { + logger.WithFields(logFields).WithField("mirror", intro.Mirror).Info("Remote mirror value matches ours") + return ErrDisconnectSelf + } + + // Disconnect if peer version is not within the supported range + if intro.ProtocolVersion < dc.MinProtocolVersion { + logger.WithFields(logFields).WithFields(logrus.Fields{ + "protocolVersion": intro.ProtocolVersion, + "minProtocolVersion": dc.MinProtocolVersion, + }).Info("protocol version below minimum supported protocol version") + return ErrDisconnectVersionNotSupported + } + + logger.WithFields(logFields).WithField("protocolVersion", intro.ProtocolVersion).Debug("Peer protocol version accepted") + + // v24 does not send blockchain pubkey or user agent + // v25 sends blockchain pubkey and user agent + // v24 and v25 check the blockchain pubkey and user agent, would accept message with no Pubkey and user agent + // v26 would check the blockchain pubkey and reject if not matched or not provided, and parses a user agent + // v26 adds genesis hash + // v27 would require and check the genesis hash + extraLen := len(intro.Extra) + if extraLen == 0 { + logger.WithFields(logFields).Warning("Blockchain pubkey is not provided") + return ErrDisconnectBlockchainPubkeyNotProvided + } + + var bcPubKey cipher.PubKey + if extraLen < len(bcPubKey) { + logger.WithFields(logFields).Warning("Extra data length does not meet the minimum requirement") + return ErrDisconnectInvalidExtraData + } + copy(bcPubKey[:], intro.Extra[:len(bcPubKey)]) + + if dc.BlockchainPubkey != bcPubKey { + logger.WithFields(logFields).WithFields(logrus.Fields{ + "pubkey": bcPubKey.Hex(), + "daemonPubkey": dc.BlockchainPubkey.Hex(), + }).Warning("Blockchain pubkey does not match") + return ErrDisconnectBlockchainPubkeyNotMatched + } + + i := len(bcPubKey) + if extraLen < i+9 { + logger.WithFields(logFields).Warning("IntroductionMessage transaction verification parameters could not be deserialized: not enough data") + return ErrDisconnectInvalidExtraData + } + if err := encoder.DeserializeRawExact(intro.Extra[i:i+9], &intro.UnconfirmedVerifyTxn); err != nil { + // This should not occur due to the previous length check + logger.Critical().WithError(err).WithFields(logFields).Warning("unconfirmedVerifyTxn params could not be deserialized") + return ErrDisconnectInvalidExtraData + } + i += 9 + + if err := intro.UnconfirmedVerifyTxn.Validate(); err != nil { + logger.WithError(err).WithFields(logFields).WithFields(logrus.Fields{ + "burnFactor": intro.UnconfirmedVerifyTxn.BurnFactor, + "maxTransactionSize": intro.UnconfirmedVerifyTxn.MaxTransactionSize, + "maxDropletPrecision": intro.UnconfirmedVerifyTxn.MaxDropletPrecision, + }).Warning("Invalid unconfirmedVerifyTxn params") + switch err { + case params.ErrInvalidBurnFactor: + return ErrDisconnectInvalidBurnFactor + case params.ErrInvalidMaxTransactionSize: + return ErrDisconnectInvalidMaxTransactionSize + case params.ErrInvalidMaxDropletPrecision: + return ErrDisconnectInvalidMaxDropletPrecision + default: + return ErrDisconnectUnexpectedError + } + } + + userAgentSerialized := intro.Extra[i:] + userAgent, userAgentLen, err := encoder.DeserializeString(userAgentSerialized, useragent.MaxLen) + if err != nil { + logger.WithError(err).WithFields(logFields).Warning("Extra data user agent string could not be deserialized") + return ErrDisconnectInvalidExtraData + } + + intro.UserAgent, err = useragent.Parse(useragent.Sanitize(userAgent)) + if err != nil { + logger.WithError(err).WithFields(logFields).WithField("userAgent", userAgent).Warning("User agent is invalid") + return ErrDisconnectInvalidUserAgent + } + i += int(userAgentLen) + + remainingLen := extraLen - i + if remainingLen > 0 && remainingLen < len(intro.GenesisHash) { + logger.WithFields(logFields).Warning("Extra data genesis hash could not be deserialized: not enough data") + return ErrDisconnectInvalidExtraData + } + copy(intro.GenesisHash[:], intro.Extra[i:]) + + return nil +} + +// PingMessage Sent to keep a connection alive. A PongMessage is sent in reply. +type PingMessage struct { + c *gnet.MessageContext `enc:"-"` +} + +// EncodeSize implements gnet.Serializer +func (ping *PingMessage) EncodeSize() uint64 { + return 0 +} + +// Encode implements gnet.Serializer +func (ping *PingMessage) Encode(buf []byte) error { + return nil +} + +// Decode implements gnet.Serializer +func (ping *PingMessage) Decode(buf []byte) (uint64, error) { + return 0, nil +} + +// Handle implements the Messager interface +func (ping *PingMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + ping.c = mc + return daemon.(daemoner).recordMessageEvent(ping, mc) +} + +// process Sends a PongMessage to the sender of PingMessage +func (ping *PingMessage) process(d daemoner) { + fields := logrus.Fields{ + "addr": ping.c.Addr, + "gnetID": ping.c.ConnID, + } + + if d.DaemonConfig().LogPings { + logger.WithFields(fields).Debug("Replying to ping") + } + if err := d.sendMessage(ping.c.Addr, &PongMessage{}); err != nil { + logger.WithFields(fields).WithError(err).Error("Send PongMessage failed") + } +} + +// PongMessage Sent in reply to a PingMessage. No action is taken when this is received. +type PongMessage struct { +} + +// EncodeSize implements gnet.Serializer +func (pong *PongMessage) EncodeSize() uint64 { + return 0 +} + +// Encode implements gnet.Serializer +func (pong *PongMessage) Encode(buf []byte) error { + return nil +} + +// Decode implements gnet.Serializer +func (pong *PongMessage) Decode(buf []byte) (uint64, error) { + return 0, nil +} + +// Handle handles message +func (pong *PongMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + // There is nothing to do; gnet updates Connection.LastMessage internally + // when this is received + if daemon.(daemoner).DaemonConfig().LogPings { + logger.WithFields(logrus.Fields{ + "addr": mc.Addr, + "gnetID": mc.ConnID, + }).Debug("Received pong") + } + return nil +} + +// DisconnectMessage sent to a peer before disconnecting, indicating the reason for disconnect +type DisconnectMessage struct { + c *gnet.MessageContext `enc:"-"` + reason gnet.DisconnectReason `enc:"-"` + + // Error code + ReasonCode uint16 + + // Reserved for future use + Reserved []byte +} + +// NewDisconnectMessage creates message sent to reject previously received message +func NewDisconnectMessage(reason gnet.DisconnectReason) *DisconnectMessage { + return &DisconnectMessage{ + reason: reason, + ReasonCode: DisconnectReasonToCode(reason), + Reserved: nil, + } +} + +// EncodeSize implements gnet.Serializer +func (dm *DisconnectMessage) EncodeSize() uint64 { + return encodeSizeDisconnectMessage(dm) +} + +// Encode implements gnet.Serializer +func (dm *DisconnectMessage) Encode(buf []byte) error { + return encodeDisconnectMessageToBuffer(buf, dm) +} + +// Decode implements gnet.Serializer +func (dm *DisconnectMessage) Decode(buf []byte) (uint64, error) { + return decodeDisconnectMessage(buf, dm) +} + +// Handle an event queued by Handle() +func (dm *DisconnectMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + dm.c = mc + return daemon.(daemoner).recordMessageEvent(dm, mc) +} + +// process disconnect message by reflexively disconnecting +func (dm *DisconnectMessage) process(d daemoner) { + logger.WithFields(logrus.Fields{ + "addr": dm.c.Addr, + "gnetID": dm.c.ConnID, + "code": dm.ReasonCode, + "reason": DisconnectCodeToReason(dm.ReasonCode), + }).Infof("DisconnectMessage received") + + if err := d.disconnectNow(dm.c.Addr, ErrDisconnectReceivedDisconnect); err != nil { + logger.WithError(err).WithField("addr", dm.c.Addr).Warning("disconnectNow") + } +} + +// GetBlocksMessage sent to request blocks since LastBlock +type GetBlocksMessage struct { + LastBlock uint64 + RequestedBlocks uint64 + c *gnet.MessageContext `enc:"-"` +} + +// NewGetBlocksMessage creates GetBlocksMessage +func NewGetBlocksMessage(lastBlock, requestedBlocks uint64) *GetBlocksMessage { + return &GetBlocksMessage{ + LastBlock: lastBlock, + RequestedBlocks: requestedBlocks, + } +} + +// EncodeSize implements gnet.Serializer +func (gbm *GetBlocksMessage) EncodeSize() uint64 { + return encodeSizeGetBlocksMessage(gbm) +} + +// Encode implements gnet.Serializer +func (gbm *GetBlocksMessage) Encode(buf []byte) error { + return encodeGetBlocksMessageToBuffer(buf, gbm) +} + +// Decode implements gnet.Serializer +func (gbm *GetBlocksMessage) Decode(buf []byte) (uint64, error) { + return decodeGetBlocksMessage(buf, gbm) +} + +// Handle handles message +func (gbm *GetBlocksMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + gbm.c = mc + return daemon.(daemoner).recordMessageEvent(gbm, mc) +} + +// process should send number to be requested, with request +func (gbm *GetBlocksMessage) process(d daemoner) { + dc := d.DaemonConfig() + if dc.DisableNetworking { + return + } + + fields := logrus.Fields{ + "addr": gbm.c.Addr, + "gnetID": gbm.c.ConnID, + } + + // Record this as this peer's highest block + d.recordPeerHeight(gbm.c.Addr, gbm.c.ConnID, gbm.LastBlock) + + // Cap the number of requested blocks (TODO - necessary since we have size limits enforced later?) + requestedBlocks := gbm.RequestedBlocks + if requestedBlocks > dc.MaxGetBlocksResponseCount { + logger.WithFields(logrus.Fields{ + "requestedBlocks": requestedBlocks, + "maxRequestedBlocks": dc.MaxGetBlocksResponseCount, + }).WithFields(fields).Debug("GetBlocksMessage.RequestedBlocks value exceeds configured limit, reducing") + requestedBlocks = dc.MaxGetBlocksResponseCount + } + + // Fetch and return signed blocks since LastBlock + blocks, err := d.getSignedBlocksSince(gbm.LastBlock, requestedBlocks) + if err != nil { + logger.WithFields(fields).WithError(err).Error("getSignedBlocksSince failed") + return + } + + if len(blocks) == 0 { + return + } + + logger.WithFields(fields).Debugf("GetBlocksMessage: replying with %d blocks after block %d", len(blocks), gbm.LastBlock) + + m := NewGiveBlocksMessage(blocks, dc.MaxOutgoingMessageLength) + if len(m.Blocks) != len(blocks) { + logger.WithField("startBlockSeq", blocks[0].Head.BkSeq).WithFields(fields).Warningf("NewGiveBlocksMessage truncated %d blocks to %d blocks", len(blocks), len(m.Blocks)) + } + + if err := d.sendMessage(gbm.c.Addr, m); err != nil { + logger.WithFields(fields).WithError(err).Error("Send GiveBlocksMessage failed") + } +} + +// GiveBlocksMessage sent in response to GetBlocksMessage, or unsolicited +type GiveBlocksMessage struct { + Blocks []coin.SignedBlock `enc:",maxlen=128"` + c *gnet.MessageContext `enc:"-"` +} + +// NewGiveBlocksMessage creates GiveBlocksMessage. +// If the size of message would exceed maxMsgLength, the block slice is truncated. +func NewGiveBlocksMessage(blocks []coin.SignedBlock, maxMsgLength uint64) *GiveBlocksMessage { + if len(blocks) > 128 { + blocks = blocks[:128] + } + m := &GiveBlocksMessage{ + Blocks: blocks, + } + truncateGiveBlocksMessage(m, maxMsgLength) + return m +} + +// truncateGiveBlocksMessage truncates the blocks in GiveBlocksMessage to fit inside of MaxOutgoingMessageLength +func truncateGiveBlocksMessage(m *GiveBlocksMessage, maxMsgLength uint64) { + // The message length will include a 4 byte message type prefix. + // Panic if the prefix can't fit, otherwise we can't adjust the uint64 safely + if maxMsgLength < 4 { + logger.Panic("maxMsgLength must be >= 4") + } + + maxMsgLength -= 4 + + // Measure the current message size, if it fits, return + n := m.EncodeSize() + if n <= maxMsgLength { + return + } + + // Measure the size of an empty message + var mm GiveBlocksMessage + size := mm.EncodeSize() + + // Measure the size of the blocks, advancing the slice index until it reaches capacity + index := -1 + for i, b := range m.Blocks { + x := encodeSizeSignedBlock(&b) + if size+x > maxMsgLength { + break + } + size += x + index = i + } + + m.Blocks = m.Blocks[:index+1] + + if len(m.Blocks) == 0 { + logger.Critical().Error("truncateGiveBlocksMessage truncated blocks to an empty slice") + } +} + +// EncodeSize implements gnet.Serializer +func (m *GiveBlocksMessage) EncodeSize() uint64 { + return encodeSizeGiveBlocksMessage(m) +} + +// Encode implements gnet.Serializer +func (m *GiveBlocksMessage) Encode(buf []byte) error { + return encodeGiveBlocksMessageToBuffer(buf, m) +} + +// Decode implements gnet.Serializer +func (m *GiveBlocksMessage) Decode(buf []byte) (uint64, error) { + return decodeGiveBlocksMessage(buf, m) +} + +// Handle handle message +func (m *GiveBlocksMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + m.c = mc + return daemon.(daemoner).recordMessageEvent(m, mc) +} + +// process process message +func (m *GiveBlocksMessage) process(d daemoner) { + if d.DaemonConfig().DisableNetworking { + logger.Critical().Info("Visor disabled, ignoring GiveBlocksMessage") + return + } + + // These DB queries are not performed in a transaction for performance reasons. + // It is not necessary that the blocks be executed together in a single transaction. + + processed := 0 + maxSeq, ok, err := d.headBkSeq() + if err != nil { + logger.WithError(err).Error("d.headBkSeq failed") + return + } + if !ok { + logger.Error("No HeadBkSeq found, cannot execute blocks") + return + } + + for _, b := range m.Blocks { + // To minimize waste when receiving multiple responses from peers + // we only break out of the loop if the block itself is invalid. + // E.g. if we request 20 blocks since 0 from 2 peers, and one peer + // replies with 15 and the other 20, if we did not do this check and + // the reply with 15 was received first, we would toss the one with 20 + // even though we could process it at the time. + if b.Seq() <= maxSeq { + continue + } + + err := d.executeSignedBlock(b) + if err == nil { + logger.Critical().WithField("seq", b.Block.Head.BkSeq).Info("Added new block") + processed++ + } else { + logger.Critical().WithError(err).WithField("seq", b.Block.Head.BkSeq).Error("Failed to execute received block") + // Blocks must be received in order, so if one fails its assumed + // the rest are failing + break + } + } + if processed == 0 { + return + } + + headBkSeq, ok, err := d.headBkSeq() + if err != nil { + logger.WithError(err).Error("d.headBkSeq failed") + return + } + if !ok { + logger.Error("No HeadBkSeq found after executing blocks, will not announce blocks") + return + } + + if headBkSeq < maxSeq { + logger.Critical().Warning("HeadBkSeq decreased after executing blocks") + } else if headBkSeq-maxSeq != uint64(processed) { + logger.Critical().Warning("HeadBkSeq increased by %d but we processed %s blocks", headBkSeq-maxSeq, processed) + } + + // Announce our new blocks to peers + abm := NewAnnounceBlocksMessage(headBkSeq) + if _, err := d.broadcastMessage(abm); err != nil { + logger.WithError(err).Warning("Broadcast AnnounceBlocksMessage failed") + } + + // Request more blocks + gbm := NewGetBlocksMessage(headBkSeq, d.DaemonConfig().GetBlocksRequestCount) + if _, err := d.broadcastMessage(gbm); err != nil { + logger.WithError(err).Warning("Broadcast GetBlocksMessage failed") + } +} + +// AnnounceBlocksMessage tells a peer our highest known BkSeq. The receiving peer can choose +// to send GetBlocksMessage in response +type AnnounceBlocksMessage struct { + MaxBkSeq uint64 + c *gnet.MessageContext `enc:"-"` +} + +// NewAnnounceBlocksMessage creates message +func NewAnnounceBlocksMessage(seq uint64) *AnnounceBlocksMessage { + return &AnnounceBlocksMessage{ + MaxBkSeq: seq, + } +} + +// EncodeSize implements gnet.Serializer +func (abm *AnnounceBlocksMessage) EncodeSize() uint64 { + return encodeSizeAnnounceBlocksMessage(abm) +} + +// Encode implements gnet.Serializer +func (abm *AnnounceBlocksMessage) Encode(buf []byte) error { + return encodeAnnounceBlocksMessageToBuffer(buf, abm) +} + +// Decode implements gnet.Serializer +func (abm *AnnounceBlocksMessage) Decode(buf []byte) (uint64, error) { + return decodeAnnounceBlocksMessage(buf, abm) +} + +// Handle handles message +func (abm *AnnounceBlocksMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + abm.c = mc + return daemon.(daemoner).recordMessageEvent(abm, mc) +} + +// process process message +func (abm *AnnounceBlocksMessage) process(d daemoner) { + if d.DaemonConfig().DisableNetworking { + return + } + + fields := logrus.Fields{ + "addr": abm.c.Addr, + "gnetID": abm.c.ConnID, + } + + headBkSeq, ok, err := d.headBkSeq() + if err != nil { + logger.WithError(err).Error("AnnounceBlocksMessage d.headBkSeq failed") + return + } + if !ok { + logger.Error("AnnounceBlocksMessage no head block, cannot process AnnounceBlocksMessage") + return + } + + if headBkSeq >= abm.MaxBkSeq { + return + } + + // TODO: Should this be block get request for current sequence? + // If client is not caught up, won't attempt to get block + m := NewGetBlocksMessage(headBkSeq, d.DaemonConfig().GetBlocksRequestCount) + if err := d.sendMessage(abm.c.Addr, m); err != nil { + logger.WithError(err).WithFields(fields).Error("Send GetBlocksMessage") + } +} + +// SendingTxnsMessage send transaction message interface +type SendingTxnsMessage interface { + GetFiltered() []cipher.SHA256 +} + +// AnnounceTxnsMessage tells a peer that we have these transactions +type AnnounceTxnsMessage struct { + Transactions []cipher.SHA256 `enc:",maxlen=256"` + c *gnet.MessageContext `enc:"-"` +} + +// NewAnnounceTxnsMessage creates announce txns message. +// If the size of the message would exceed maxMsgLength, the hashes slice is truncated. +func NewAnnounceTxnsMessage(txns []cipher.SHA256, maxMsgLength uint64) *AnnounceTxnsMessage { + if len(txns) > 256 { + txns = txns[:256] + } + m := &AnnounceTxnsMessage{ + Transactions: txns, + } + hashes := truncateAnnounceTxnsHashes(m, maxMsgLength) + m.Transactions = hashes + return m +} + +// truncateAnnounceTxnsHashes truncates the hashes in AnnounceTxnsMessage to fit inside of MaxOutgoingMessageLength +func truncateAnnounceTxnsHashes(m *AnnounceTxnsMessage, maxMsgLength uint64) []cipher.SHA256 { + // The message length will include a 4 byte message type prefix. + // Panic if the prefix can't fit, otherwise we can't adjust the uint64 safely + if maxMsgLength < 4 { + logger.Panic("maxMsgLength must be >= 4") + } + + maxMsgLength -= 4 + + // Measure the current message size, if it fits, return + n := m.EncodeSize() + if n <= maxMsgLength { + return m.Transactions + } + + // Measure the size of an empty message + var mm AnnounceTxnsMessage + size := mm.EncodeSize() + + if maxMsgLength < size { + logger.Panic("maxMsgLength must be <= 4 + sizeof(empty AnnounceTxnsMessage)") + } + + maxMsgLength -= size + + hashes := truncateSHA256Slice(m.Transactions, maxMsgLength) + + if len(hashes) == 0 { + logger.Critical().Error("truncateAnnounceTxnsHashes truncated hashes to an empty slice") + } + + return hashes +} + +func truncateSHA256Slice(hashes []cipher.SHA256, maxLength uint64) []cipher.SHA256 { + if len(hashes) == 0 { + return hashes + } + + size := len(hashes[0]) + + n := maxLength / uint64(size) + + if n > uint64(len(hashes)) { + return hashes + } + + return hashes[:n] +} + +// EncodeSize implements gnet.Serializer +func (atm *AnnounceTxnsMessage) EncodeSize() uint64 { + return encodeSizeAnnounceTxnsMessage(atm) +} + +// Encode implements gnet.Serializer +func (atm *AnnounceTxnsMessage) Encode(buf []byte) error { + return encodeAnnounceTxnsMessageToBuffer(buf, atm) +} + +// Decode implements gnet.Serializer +func (atm *AnnounceTxnsMessage) Decode(buf []byte) (uint64, error) { + return decodeAnnounceTxnsMessage(buf, atm) +} + +// GetFiltered returns txns +func (atm *AnnounceTxnsMessage) GetFiltered() []cipher.SHA256 { + return atm.Transactions +} + +// Handle handle message +func (atm *AnnounceTxnsMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + atm.c = mc + return daemon.(daemoner).recordMessageEvent(atm, mc) +} + +// process process message +func (atm *AnnounceTxnsMessage) process(d daemoner) { + dc := d.DaemonConfig() + if dc.DisableNetworking { + return + } + + fields := logrus.Fields{ + "addr": atm.c.Addr, + "gnetID": atm.c.ConnID, + } + + unknown, err := d.filterKnownUnconfirmed(atm.Transactions) + if err != nil { + logger.WithError(err).Error("AnnounceTxnsMessage d.filterKnownUnconfirmed failed") + return + } + + if len(unknown) == 0 { + return + } + + m := NewGetTxnsMessage(unknown, dc.MaxOutgoingMessageLength) + if len(m.Transactions) != len(unknown) { + logger.Warningf("NewGetTxnsMessage truncated %d hashes to %d hashes", len(unknown), len(m.Transactions)) + } + + if err := d.sendMessage(atm.c.Addr, m); err != nil { + logger.WithFields(fields).WithError(err).Error("Send GetTxnsMessage failed") + } +} + +// GetTxnsMessage request transactions of given hash +type GetTxnsMessage struct { + Transactions []cipher.SHA256 `enc:",maxlen=256"` + c *gnet.MessageContext `enc:"-"` +} + +// NewGetTxnsMessage creates GetTxnsMessage. +// If the size of the message would exceed maxMsgLength, the hashes slice is truncated. +func NewGetTxnsMessage(txns []cipher.SHA256, maxMsgLength uint64) *GetTxnsMessage { + if len(txns) > 256 { + txns = txns[:256] + } + m := &GetTxnsMessage{ + Transactions: txns, + } + hashes := truncateGetTxnsHashes(m, maxMsgLength) + m.Transactions = hashes + return m +} + +// truncateGetTxnsHashes truncates the hashes in GetTxnsMessage to fit inside of MaxOutgoingMessageLength +func truncateGetTxnsHashes(m *GetTxnsMessage, maxMsgLength uint64) []cipher.SHA256 { + // The message length will include a 4 byte message type prefix. + // Panic if the prefix can't fit, otherwise we can't adjust the uint64 safely + if maxMsgLength < 4 { + logger.Panic("maxMsgLength must be >= 4") + } + + maxMsgLength -= 4 + + // Measure the current message size, if it fits, return + n := m.EncodeSize() + if n <= maxMsgLength { + return m.Transactions + } + + // Measure the size of an empty message + var mm GetTxnsMessage + size := mm.EncodeSize() + + if maxMsgLength < size { + logger.Panic("maxMsgLength must be <= 4 + sizeof(empty GetTxnsMessage)") + } + + maxMsgLength -= size + + hashes := truncateSHA256Slice(m.Transactions, maxMsgLength) + + if len(hashes) == 0 { + logger.Critical().Error("truncateGetTxnsHashes truncated hashes to an empty slice") + } + + return hashes +} + +// EncodeSize implements gnet.Serializer +func (gtm *GetTxnsMessage) EncodeSize() uint64 { + return encodeSizeGetTxnsMessage(gtm) +} + +// Encode implements gnet.Serializer +func (gtm *GetTxnsMessage) Encode(buf []byte) error { + return encodeGetTxnsMessageToBuffer(buf, gtm) +} + +// Decode implements gnet.Serializer +func (gtm *GetTxnsMessage) Decode(buf []byte) (uint64, error) { + return decodeGetTxnsMessage(buf, gtm) +} + +// Handle handle message +func (gtm *GetTxnsMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + gtm.c = mc + return daemon.(daemoner).recordMessageEvent(gtm, mc) +} + +// process process message +func (gtm *GetTxnsMessage) process(d daemoner) { + dc := d.DaemonConfig() + if dc.DisableNetworking { + return + } + + fields := logrus.Fields{ + "addr": gtm.c.Addr, + "gnetID": gtm.c.ConnID, + } + + // Locate all txns from the unconfirmed pool + known, err := d.getKnownUnconfirmed(gtm.Transactions) + if err != nil { + logger.WithError(err).Error("GetTxnsMessage d.getKnownUnconfirmed failed") + return + } + if len(known) == 0 { + return + } + + // Reply to sender with GiveTxnsMessage + m := NewGiveTxnsMessage(known, dc.MaxOutgoingMessageLength) + if len(m.Transactions) != len(known) { + logger.Warningf("NewGiveTxnsMessage truncated %d hashes to %d hashes", len(known), len(m.Transactions)) + } + + if err := d.sendMessage(gtm.c.Addr, m); err != nil { + logger.WithError(err).WithFields(fields).Error("Send GiveTxnsMessage") + } +} + +// GiveTxnsMessage tells the transaction of given hashes +type GiveTxnsMessage struct { + Transactions []coin.Transaction `enc:",maxlen=256"` + c *gnet.MessageContext `enc:"-"` +} + +// NewGiveTxnsMessage creates GiveTxnsMessage. +// If the size of the message would exceed maxMsgLength, the transactions slice is truncated. +func NewGiveTxnsMessage(txns []coin.Transaction, maxMsgLength uint64) *GiveTxnsMessage { + if len(txns) > 256 { + txns = txns[:256] + } + m := &GiveTxnsMessage{ + Transactions: txns, + } + truncateGiveTxnsMessage(m, maxMsgLength) + return m +} + +// truncateGiveTxnsMessage truncates the transactions in GiveTxnsMessage to fit inside of MaxOutgoingMessageLength +func truncateGiveTxnsMessage(m *GiveTxnsMessage, maxMsgLength uint64) { + // The message length will include a 4 byte message type prefix. + // Panic if the prefix can't fit, otherwise we can't adjust the uint64 safely + if maxMsgLength < 4 { + logger.Panic("maxMsgLength must be >= 4") + } + + maxMsgLength -= 4 + + // Measure the current message size, if it fits, return + n := m.EncodeSize() + if n <= maxMsgLength { + return + } + + // Measure the size of an empty message + var mm GiveTxnsMessage + size := mm.EncodeSize() + + // Measure the size of the txns, advancing the slice index until it reaches capacity + index := -1 + for i, txn := range m.Transactions { + x := encodeSizeTransaction(&txn) + if size+x > maxMsgLength { + break + } + size += x + index = i + } + + m.Transactions = m.Transactions[:index+1] + + if len(m.Transactions) == 0 { + logger.Critical().Error("truncateGiveTxnsMessage truncated txns to an empty slice") + } +} + +// EncodeSize implements gnet.Serializer +func (gtm *GiveTxnsMessage) EncodeSize() uint64 { + return encodeSizeGiveTxnsMessage(gtm) +} + +// Encode implements gnet.Serializer +func (gtm *GiveTxnsMessage) Encode(buf []byte) error { + return encodeGiveTxnsMessageToBuffer(buf, gtm) +} + +// Decode implements gnet.Serializer +func (gtm *GiveTxnsMessage) Decode(buf []byte) (uint64, error) { + return decodeGiveTxnsMessage(buf, gtm) +} + +// GetFiltered returns transactions hashes +func (gtm *GiveTxnsMessage) GetFiltered() []cipher.SHA256 { + return coin.Transactions(gtm.Transactions).Hashes() +} + +// Handle handle message +func (gtm *GiveTxnsMessage) Handle(mc *gnet.MessageContext, daemon interface{}) error { + gtm.c = mc + return daemon.(daemoner).recordMessageEvent(gtm, mc) +} + +// process process message +func (gtm *GiveTxnsMessage) process(d daemoner) { + dc := d.DaemonConfig() + if dc.DisableNetworking { + return + } + + hashes := make([]cipher.SHA256, 0, len(gtm.Transactions)) + // Update unconfirmed pool with these transactions + for _, txn := range gtm.Transactions { + // Only announce transactions that are new to us, so that peers can't spam relays + // It is not necessary to inject all of the transactions inside a database transaction, + // since each is independent + known, softErr, err := d.injectTransaction(txn) + if err != nil { + logger.WithError(err).WithField("txid", txn.Hash().Hex()).Warning("Failed to record transaction") + continue + } else if softErr != nil { + logger.WithError(softErr).WithField("txid", txn.Hash().Hex()).Warning("Transaction soft violation") + // Allow soft txn violations to rebroadcast + } else if known { + logger.WithField("txid", txn.Hash().Hex()).Debug("Duplicate transaction") + continue + } + + hashes = append(hashes, txn.Hash()) + } + + if len(hashes) == 0 { + return + } + + // Announce these transactions to peers + m := NewAnnounceTxnsMessage(hashes, dc.MaxOutgoingMessageLength) + if len(m.Transactions) != len(hashes) { + logger.Warningf("NewAnnounceTxnsMessage truncated %d hashes to %d hashes", len(hashes), len(m.Transactions)) + } + + if ids, err := d.broadcastMessage(m); err != nil { + logger.WithError(err).Warning("Broadcast AnnounceTxnsMessage failed") + } else { + logger.Debugf("Announced %d transactions to %d peers", len(hashes), len(ids)) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/pex/README.md b/vendor/github.com/skycoin/skycoin/src/daemon/pex/README.md new file mode 100644 index 000000000..ffaf675a0 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/pex/README.md @@ -0,0 +1,8 @@ +pex +=== + +Tools for implementing peer exchange (PEX) with Go + +[![GoDoc](http://godoc.org/github.com//skycoin/pex?status.png)](http://godoc.org/github.com/skycoin/skycoin/src/daemon/pex) + +[Godoc generated documentation](http://godoc.org/github.com/skycoin/skycoin/src/daemon/pex) diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/pex/peerlist.go b/vendor/github.com/skycoin/skycoin/src/daemon/pex/peerlist.go new file mode 100644 index 000000000..1fcc48c30 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/pex/peerlist.go @@ -0,0 +1,396 @@ +package pex + +import ( + "encoding/json" + "fmt" + "io" + "math/rand" + "os" + "time" + + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/util/file" + "github.com/skycoin/skycoin/src/util/useragent" +) + +// Peers peer list +type Peers []Peer + +// ToAddrs returns the address list +func (ps Peers) ToAddrs() []string { + addrs := make([]string, 0, len(ps)) + for _, p := range ps { + addrs = append(addrs, p.Addr) + } + return addrs +} + +// peerlist is a map of addresses to *PeerStates +type peerlist struct { + peers map[string]*Peer +} + +func newPeerlist() peerlist { + return peerlist{ + peers: make(map[string]*Peer), + } +} + +// Filter peers filter +type Filter func(peer Peer) bool + +// loadCachedPeersFile loads peers from the cached peers.json file +func loadCachedPeersFile(path string) (map[string]*Peer, error) { + peersJSON := make(map[string]PeerJSON) + err := file.LoadJSON(path, &peersJSON) + + if os.IsNotExist(err) { + logger.WithField("path", path).Info("File does not exist") + return nil, nil + } else if err == io.EOF { + logger.WithField("path", path).Error("Corrupt or empty file") + return nil, nil + } + + if err != nil { + logger.WithField("path", path).WithError(err).Error("Failed to load peers file") + return nil, err + } + + peers := make(map[string]*Peer, len(peersJSON)) + for addr, peerJSON := range peersJSON { + fields := logrus.Fields{ + "addr": addr, + "path": path, + } + + a, err := validateAddress(addr, true) + + if err != nil { + logger.WithError(err).WithFields(fields).Error("Invalid address in peers JSON file") + continue + } + + peer, err := newPeerFromJSON(peerJSON) + if err != nil { + logger.WithError(err).WithFields(fields).Error("newPeerFromJSON failed") + continue + } + + if a != peer.Addr { + fields["peerAddr"] = peer.Addr + logger.WithFields(fields).Error("Address key does not match Peer.Addr") + continue + } + + peers[a] = peer + } + + return peers, nil +} + +func (pl *peerlist) setPeers(peers []Peer) { + for _, p := range peers { + np := p + pl.peers[p.Addr] = &np + } +} + +func (pl *peerlist) hasPeer(addr string) bool { + p, ok := pl.peers[addr] + return ok && p != nil +} + +func (pl *peerlist) addPeer(addr string) { + if p, ok := pl.peers[addr]; ok && p != nil { + p.Seen() + return + } + + peer := NewPeer(addr) + pl.peers[addr] = peer +} + +func (pl *peerlist) addPeers(addrs []string) { + for _, addr := range addrs { + pl.addPeer(addr) + } +} + +func (pl *peerlist) seen(addr string) { + if p, ok := pl.peers[addr]; ok && p != nil { + p.Seen() + } +} + +// getCanTryPeers returns all peers that are triable(retried times blew exponential backoff times) +// and are able to pass the filters. +func (pl *peerlist) getCanTryPeers(flts []Filter) Peers { + ps := make(Peers, 0) + flts = append([]Filter{canTry}, flts...) +loop: + for _, p := range pl.peers { + for i := range flts { + if !flts[i](*p) { + continue loop + } + } + + ps = append(ps, *p) + } + + return ps +} + +// getPeers returns all peers that can pass the filters. +func (pl *peerlist) getPeers(flts []Filter) Peers { + ps := make(Peers, 0) +loop: + for _, p := range pl.peers { + for i := range flts { + if !flts[i](*p) { + continue loop + } + } + + ps = append(ps, *p) + } + + return ps +} + +func isTrusted(p Peer) bool { + return p.Trusted +} + +func hasIncomingPort(p Peer) bool { + return p.HasIncomingPort +} + +func canTry(p Peer) bool { + return p.CanTry() +} + +// isExchangeable filters exchangeable peers +var isExchangeable = []Filter{hasIncomingPort} + +// removePeer removes peer +func (pl *peerlist) removePeer(addr string) { + delete(pl.peers, addr) +} + +// setTrusted sets peer as trusted peer +func (pl *peerlist) setTrusted(addr string, trusted bool) error { + if p, ok := pl.peers[addr]; ok { + p.Trusted = trusted + return nil + } + + return fmt.Errorf("set peer.Trusted failed: %v does not exist in peer list", addr) +} + +// setAllUntrusted unsets the trusted field on all peers +func (pl *peerlist) setAllUntrusted() { + for _, p := range pl.peers { + p.Trusted = false + } +} + +// setHasIncomingPort marks the peer's port as being publicly accessible +func (pl *peerlist) setHasIncomingPort(addr string, hasIncomingPort bool) error { + if p, ok := pl.peers[addr]; ok { + p.HasIncomingPort = hasIncomingPort + p.Seen() + return nil + } + + return fmt.Errorf("set peer.HasIncomingPort failed: %v does not exist in peer list", addr) +} + +// setUserAgent sets a peer's user agent +func (pl *peerlist) setUserAgent(addr string, userAgent useragent.Data) error { + if p, ok := pl.peers[addr]; ok { + p.UserAgent = userAgent + p.Seen() + return nil + } + + return fmt.Errorf("set peer.UserAgent failed: %v does not exist in peer list", addr) +} + +// len returns number of peers +func (pl *peerlist) len() int { + return len(pl.peers) +} + +// getPeer returns peer for a given address +func (pl *peerlist) getPeer(addr string) (Peer, bool) { + p, ok := pl.peers[addr] + if ok { + return *p, true + } + return Peer{}, false +} + +// clearOld removes public, untrusted peers that haven't been seen in timeAgo seconds +func (pl *peerlist) clearOld(timeAgo time.Duration) { + t := time.Now().UTC() + for addr, peer := range pl.peers { + lastSeen := time.Unix(peer.LastSeen, 0) + if !peer.Trusted && t.Sub(lastSeen) > timeAgo { + delete(pl.peers, addr) + } + } +} + +// Returns n random peers, or all of the peers, whichever is lower. +// If count is 0, all of the peers are returned, shuffled. +func (pl *peerlist) random(count int, flts []Filter) Peers { + keys := pl.getCanTryPeers(flts).ToAddrs() + if len(keys) == 0 { + return Peers{} + } + + max := count + if max == 0 || max > len(keys) { + max = len(keys) + } + + ps := make(Peers, max) + perm := rand.Perm(len(keys)) + for i, j := range perm[:max] { + ps[i] = *pl.peers[keys[j]] + } + return ps +} + +// save saves known peers to disk as a newline delimited list of addresses to +// +func (pl *peerlist) save(fn string) error { + // filter the peers that has retrytime > MaxPeerRetryTimes + peers := make(map[string]PeerJSON) + for k, p := range pl.peers { + if p.RetryTimes <= MaxPeerRetryTimes { + peers[k] = newPeerJSON(*p) + } + } + + if err := file.SaveJSON(fn, peers, 0600); err != nil { + return fmt.Errorf("save peer list failed: %s", err) + } + return nil +} + +// increaseRetryTimes increases retry times +func (pl *peerlist) increaseRetryTimes(addr string) { + if p, ok := pl.peers[addr]; ok { + p.IncreaseRetryTimes() + p.Seen() + } +} + +// resetRetryTimes reset retry times +func (pl *peerlist) resetRetryTimes(addr string) { + if p, ok := pl.peers[addr]; ok { + p.ResetRetryTimes() + p.Seen() + } +} + +// resetAllRetryTimes reset all peers' retry times +func (pl *peerlist) resetAllRetryTimes() { + logger.Info("Reset all peer's retry times") + for _, p := range pl.peers { + p.ResetRetryTimes() + } +} + +func (pl *peerlist) findOldestUntrustedPeer() *Peer { + var oldest *Peer + + for _, p := range pl.peers { + if p.Trusted { + continue + } + + if oldest == nil || p.LastSeen < oldest.LastSeen { + oldest = p + } + } + + if oldest != nil { + p := *oldest + return &p + } + + return nil +} + +// PeerJSON is for saving and loading peers to disk. Some fields are strange, +// to be backwards compatible due to variable name changes +type PeerJSON struct { + Addr string // An address of the form ip:port + // Unix timestamp when this peer was last seen. + // This could be a time.Time string or an int64 timestamp + LastSeen interface{} + Private bool // Whether it should omitted from public requests + Trusted bool // Whether this peer is trusted + HasIncomePort *bool `json:"HasIncomePort,omitempty"` // Whether this peer has incoming port [DEPRECATED] + HasIncomingPort *bool // Whether this peer has incoming port + UserAgent useragent.Data +} + +// newPeerJSON returns a PeerJSON from a Peer +func newPeerJSON(p Peer) PeerJSON { + return PeerJSON{ + Addr: p.Addr, + LastSeen: p.LastSeen, + Trusted: p.Trusted, + HasIncomingPort: &p.HasIncomingPort, + UserAgent: p.UserAgent, + } +} + +// newPeerFromJSON converts a PeerJSON to a Peer +func newPeerFromJSON(p PeerJSON) (*Peer, error) { + hasIncomingPort := false + if p.HasIncomingPort != nil { + hasIncomingPort = *p.HasIncomingPort + } else if p.HasIncomePort != nil { + hasIncomingPort = *p.HasIncomePort + } + + // LastSeen could be a RFC3339Nano timestamp or an int64 unix timestamp + var lastSeen int64 + switch p.LastSeen.(type) { + case string: + lastSeenTime, err := time.Parse(time.RFC3339Nano, p.LastSeen.(string)) + if err != nil { + return nil, err + } + lastSeen = lastSeenTime.Unix() + case json.Number: + lastSeenNum := p.LastSeen.(json.Number) + var err error + lastSeen, err = lastSeenNum.Int64() + if err != nil { + return nil, err + } + default: + return nil, fmt.Errorf("Invalid type %T for LastSeen field", p.LastSeen) + } + + addr, err := validateAddress(p.Addr, true) + if err != nil { + return nil, err + } + + return &Peer{ + Addr: addr, + LastSeen: lastSeen, + Trusted: p.Trusted, + HasIncomingPort: hasIncomingPort, + UserAgent: p.UserAgent, + }, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/pex/pex.go b/vendor/github.com/skycoin/skycoin/src/daemon/pex/pex.go new file mode 100644 index 000000000..1a9e1c054 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/pex/pex.go @@ -0,0 +1,738 @@ +// Package pex is a toolkit for implementing a peer exchange system +package pex + +import ( + "errors" + "fmt" + "io/ioutil" + "math" + "math/rand" + "net" + "net/http" + "os" + "path/filepath" + "regexp" + "strconv" + "strings" + "sync" + "time" + + "github.com/cenkalti/backoff" + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/util/useragent" +) + +//TODO: +// - keep track of last time the peer was connected to +// - last time peer was connected to is more important than "seen" +// - peer "seen" means something else than use here +// - save last time connected to, use 0 for never +// - only transmit peers that have active or recent connections + +const ( + // DefaultPeerListURL is the default URL to download remote peers list from, if enabled + DefaultPeerListURL = "https://downloads.skycoin.com/blockchain/peers.txt" + // PeerCacheFilename filename for disk-cached peers + PeerCacheFilename = "peers.json" + // oldPeerCacheFilename previous filename for disk-cached peers. The cache loader will fall back onto this filename if it can't load peers.json + oldPeerCacheFilename = "peers.txt" + // MaxPeerRetryTimes is the maximum number of times to retry a peer + MaxPeerRetryTimes = 10 +) + +var ( + // ErrPeerlistFull is returned when the Pex is at a maximum + ErrPeerlistFull = errors.New("Peer list full") + // ErrInvalidAddress is returned when an address appears malformed + ErrInvalidAddress = errors.New("Invalid address") + // ErrNoLocalhost is returned if a localhost addresses are not allowed + ErrNoLocalhost = errors.New("Localhost address is not allowed") + // ErrNotExternalIP is returned if an IP address is not a global unicast address + ErrNotExternalIP = errors.New("IP is not a valid external IP") + // ErrPortTooLow is returned if a port is less than 1024 + ErrPortTooLow = errors.New("Port must be >= 1024") + // ErrBlacklistedAddress returned when attempting to add a blacklisted peer + ErrBlacklistedAddress = errors.New("Blacklisted address") + + // Logging. See http://godoc.org/github.com/op/go-logging for + // instructions on how to include this log's output + logger = logging.MustGetLogger("pex") + // Default rng + rnum = rand.New(rand.NewSource(time.Now().Unix())) + // For removing inadvertent whitespace from addresses + whitespaceFilter = regexp.MustCompile(`\s`) +) + +// validateAddress returns a sanitized address if valid, otherwise an error +func validateAddress(ipPort string, allowLocalhost bool) (string, error) { + ipPort = whitespaceFilter.ReplaceAllString(ipPort, "") + pts := strings.Split(ipPort, ":") + if len(pts) != 2 { + return "", ErrInvalidAddress + } + + ip := net.ParseIP(pts[0]) + if ip == nil { + return "", ErrInvalidAddress + } else if ip.IsLoopback() { + if !allowLocalhost { + return "", ErrNoLocalhost + } + } else if !ip.IsGlobalUnicast() { + return "", ErrNotExternalIP + } + + port, err := strconv.ParseUint(pts[1], 10, 16) + if err != nil { + return "", ErrInvalidAddress + } + + if port < 1024 { + return "", ErrPortTooLow + } + + return ipPort, nil +} + +// Peer represents a known peer +type Peer struct { + Addr string // An address of the form ip:port + LastSeen int64 // Unix timestamp when this peer was last seen + Trusted bool // Whether this peer is trusted + HasIncomingPort bool // Whether this peer has accessible public port + UserAgent useragent.Data // Peer's last reported user agent + RetryTimes int `json:"-"` // records the retry times +} + +// NewPeer returns a *Peer initialized by an address string of the form ip:port +func NewPeer(address string) *Peer { + p := &Peer{ + Addr: address, + Trusted: false, + } + p.Seen() + return p +} + +// Seen marks the peer as seen +func (peer *Peer) Seen() { + peer.LastSeen = time.Now().UTC().Unix() +} + +// IncreaseRetryTimes adds the retry times +func (peer *Peer) IncreaseRetryTimes() { + peer.RetryTimes++ + logger.WithFields(logrus.Fields{ + "addr": peer.Addr, + "retryTimes": peer.RetryTimes, + }).Debug("Increase retry times") +} + +// ResetRetryTimes resets the retry time +func (peer *Peer) ResetRetryTimes() { + peer.RetryTimes = 0 +} + +// CanTry returns whether this peer is triable base on the exponential backoff algorithm +func (peer *Peer) CanTry() bool { + // Exponential backoff + mod := (math.Exp2(float64(peer.RetryTimes)) - 1) * 5 + if mod == 0 { + return true + } + + // Random time elapsed + now := time.Now().UTC().Unix() + t := rnum.Int63n(int64(mod)) + return now-peer.LastSeen > t +} + +// String returns the peer address +func (peer *Peer) String() string { + return peer.Addr +} + +// Config pex config +type Config struct { + // Folder where peers database should be saved + DataDirectory string + // Maximum number of peers to keep account of in the PeerList + Max int + // Cull peers after they havent been seen in this much time + Expiration time.Duration + // Cull expired peers on this interval + CullRate time.Duration + // clear old peers on this interval + ClearOldRate time.Duration + // How often to clear expired blacklist entries + UpdateBlacklistRate time.Duration + // How often to request peers via PEX + RequestRate time.Duration + // How many peers to send back in response to a peers request + ReplyCount int + // Localhost peers are allowed in the peerlist + AllowLocalhost bool + // Disable exchanging of peers. Peers are still loaded from disk + Disabled bool + // Whether the network is disabled + NetworkDisabled bool + // Download peers list from remote host + DownloadPeerList bool + // Download peers list from this URL + PeerListURL string + // Set all peers as untrusted (even if loaded from DefaultConnections) + DisableTrustedPeers bool + // Load peers from this file on disk. NOTE: this is different from the peers file cache in the data directory + CustomPeersFile string + // Default "trusted" connections + DefaultConnections []string +} + +// NewConfig creates default pex config. +func NewConfig() Config { + return Config{ + DataDirectory: "./", + Max: 65535, + Expiration: time.Hour * 24 * 7, + CullRate: time.Minute * 10, + ClearOldRate: time.Minute * 10, + UpdateBlacklistRate: time.Minute, + RequestRate: time.Minute, + ReplyCount: 30, + AllowLocalhost: false, + Disabled: false, + NetworkDisabled: false, + DownloadPeerList: false, + PeerListURL: DefaultPeerListURL, + DisableTrustedPeers: false, + CustomPeersFile: "", + } +} + +// Pex manages a set of known peers and controls peer acquisition +type Pex struct { + sync.RWMutex + // All known peers + peerlist peerlist + Config Config + quit chan struct{} + done chan struct{} +} + +// New creates pex +func New(cfg Config) (*Pex, error) { + pex := &Pex{ + Config: cfg, + peerlist: newPeerlist(), + quit: make(chan struct{}), + done: make(chan struct{}), + } + + // Load peers from disk + if err := pex.loadCache(); err != nil { + logger.Critical().WithError(err).Error("pex.loadCache failed") + return nil, err + } + + // Unset trusted status from any existing peers, regenerate + // them from the DefaultConnections + pex.setAllUntrusted() + + // Load default hardcoded peers, mark them as trusted + for _, addr := range cfg.DefaultConnections { + // Default peers will mark as trusted peers. + if err := pex.AddPeer(addr); err != nil { + logger.Critical().WithError(err).Error("Add default peer failed") + return nil, err + } + if err := pex.setTrusted(addr); err != nil { + logger.Critical().WithError(err).Error("pex.setTrusted for default peer failed") + return nil, err + } + } + + if cfg.DisableTrustedPeers { + // Unset trusted status from any existing peers + pex.setAllUntrusted() + } + + // Add custom peers + if cfg.CustomPeersFile != "" { + if err := pex.loadCustom(cfg.CustomPeersFile); err != nil { + logger.Critical().WithError(err).WithField("file", cfg.CustomPeersFile).Error("Failed to load custom peers file") + return nil, err + } + } + + // Save peers to disk + if err := pex.save(); err != nil { + return nil, err + } + + // Download peers from remote peers list if networking is enabled + if pex.Config.DownloadPeerList && !pex.Config.NetworkDisabled { + go func() { + if err := pex.downloadPeers(); err != nil { + logger.WithError(err).Error("Failed to download peers list") + } + }() + } + + return pex, nil +} + +// Run starts the pex service +func (px *Pex) Run() error { + logger.Info("Pex.Run started") + defer logger.Info("Pex.Run stopped") + defer close(px.done) + + defer func() { + // Save the peerlist + logger.Info("Save peerlist") + if err := px.save(); err != nil { + logger.WithError(err).Error("Save peerlist failed") + } + }() + + clearOldTicker := time.NewTicker(px.Config.ClearOldRate) + + for { + select { + case <-clearOldTicker.C: + // Remove peers we haven't seen in a while + if !px.Config.Disabled && !px.Config.NetworkDisabled { + func() { + px.Lock() + defer px.Unlock() + px.peerlist.clearOld(px.Config.Expiration) + }() + } + case <-px.quit: + return nil + } + } +} + +// Shutdown notifies the pex service to exist +func (px *Pex) Shutdown() { + logger.Info("Shutting down pex") + defer logger.Info("Pex shutdown") + close(px.quit) + <-px.done +} + +func (px *Pex) downloadPeers() error { + body, err := backoffDownloadText(px.Config.PeerListURL) + if err != nil { + logger.WithError(err).WithField("url", px.Config.PeerListURL).Error("Failed to download peers") + return err + } + + peers := parseRemotePeerList(body) + logger.WithField("url", px.Config.PeerListURL).Infof("Downloaded peers list, got %d peers", len(peers)) + + n := px.AddPeers(peers) + logger.WithField("url", px.Config.PeerListURL).Infof("Added %d/%d peers from downloaded peers list", n, len(peers)) + + return nil +} + +func (px *Pex) loadCache() error { + px.Lock() + defer px.Unlock() + + fp := filepath.Join(px.Config.DataDirectory, PeerCacheFilename) + peers, err := loadCachedPeersFile(fp) + + if err != nil { + return err + } + + // If the PeerCacheFilename peers.json file does not exist, try to load the old peers.txt file + if peers == nil { + logger.Infof("Peer cache %s not found, falling back on %s", PeerCacheFilename, oldPeerCacheFilename) + + fp := filepath.Join(px.Config.DataDirectory, oldPeerCacheFilename) + peers, err = loadCachedPeersFile(fp) + if err != nil { + return err + } + + if peers == nil { + logger.Infof("Fallback peer cache %s not found", oldPeerCacheFilename) + return nil + } + } + + // remove invalid peers and limit the max number of peers to pex.Config.Max + var validPeers []Peer + for addr, p := range peers { + if _, err := validateAddress(addr, px.Config.AllowLocalhost); err != nil { + logger.WithError(err).Error("Invalid peer address") + continue + } + + validPeers = append(validPeers, *p) + if px.Config.Max > 0 && len(validPeers) >= px.Config.Max { + break + } + } + + px.peerlist.setPeers(validPeers) + return nil +} + +func (px *Pex) loadCustom(fn string) error { + px.Lock() + defer px.Unlock() + + f, err := os.Open(fn) + if err != nil { + return err + } + + defer f.Close() + + data, err := ioutil.ReadAll(f) + if err != nil { + return err + } + + peers, err := parseLocalPeerList(string(data), px.Config.AllowLocalhost) + if err != nil { + return err + } + + logger.Infof("Loaded %d peers from %s", len(peers), fn) + + px.peerlist.addPeers(peers) + return nil +} + +// SavePeers persists the peerlist +func (px *Pex) save() error { + px.Lock() + defer px.Unlock() + + fn := filepath.Join(px.Config.DataDirectory, PeerCacheFilename) + return px.peerlist.save(fn) +} + +// AddPeer adds a peer to the peer list, given an address. If the peer list is +// full, it will try to remove an old peer to make room. +// If no room can be made, ErrPeerlistFull is returned +func (px *Pex) AddPeer(addr string) error { + px.Lock() + defer px.Unlock() + + cleanAddr, err := validateAddress(addr, px.Config.AllowLocalhost) + if err != nil { + logger.WithError(err).WithField("addr", addr).Error("Invalid address") + return ErrInvalidAddress + } + + if px.peerlist.hasPeer(cleanAddr) { + px.peerlist.seen(cleanAddr) + return nil + } + + if px.isFull() { + oldestPeer := px.peerlist.findOldestUntrustedPeer() + if oldestPeer == nil || time.Now().UTC().Unix()-oldestPeer.LastSeen < 60*60*24 { + return ErrPeerlistFull + } + + px.peerlist.removePeer(oldestPeer.Addr) + + if px.isFull() { + // This can happen if the node is run with a peers.json file that has more peers + // than the max peerlist size, then the peers.json file isn't truncated to the max peerlist size. + // It is not an error. + // The max is a soft limit; exceeding the max will not crash the program. + logger.Critical().Error("AddPeer: after removing the worst peer, the peerlist was still full") + } + } + + px.peerlist.addPeer(cleanAddr) + return nil +} + +// AddPeers add multiple peers at once. Any errors will be logged, but not returned +// Returns the number of peers that were added without error. Note that +// adding a duplicate peer will not cause an error. +func (px *Pex) AddPeers(addrs []string) int { + px.Lock() + defer px.Unlock() + + if px.Config.Max > 0 && px.peerlist.len() >= px.Config.Max { + logger.Warning("Add peers failed, peer list is full") + return 0 + } + + // validate the addresses + var validAddrs []string + for _, addr := range addrs { + a, err := validateAddress(addr, px.Config.AllowLocalhost) + if err != nil { + logger.WithField("addr", addr).WithError(err).Info("Add peers sees an invalid address") + continue + } + validAddrs = append(validAddrs, a) + } + addrs = validAddrs + + // Shuffle the addresses before capping them + rand.Shuffle(len(addrs), func(i, j int) { + addrs[i], addrs[j] = addrs[j], addrs[i] + }) + + if px.Config.Max > 0 { + rcap := px.Config.Max - px.peerlist.len() + if len(addrs) > rcap { + addrs = addrs[:rcap] + } + } + + px.peerlist.addPeers(addrs) + return len(addrs) +} + +// setTrusted marks a peer as a default peer by setting its trusted flag to true +func (px *Pex) setTrusted(addr string) error { + px.Lock() + defer px.Unlock() + + cleanAddr, err := validateAddress(addr, px.Config.AllowLocalhost) + if err != nil { + logger.WithError(err).WithField("addr", addr).Error("Invalid address") + return ErrInvalidAddress + } + + return px.peerlist.setTrusted(cleanAddr, true) +} + +// setAllUntrusted unsets the trusted field on all peers +func (px *Pex) setAllUntrusted() { + px.Lock() + defer px.Unlock() + + px.peerlist.setAllUntrusted() +} + +// SetHasIncomingPort sets if the peer has public port +func (px *Pex) SetHasIncomingPort(addr string, hasPublicPort bool) error { + px.Lock() + defer px.Unlock() + + cleanAddr, err := validateAddress(addr, px.Config.AllowLocalhost) + if err != nil { + logger.WithError(err).WithField("addr", addr).Error("Invalid address") + return ErrInvalidAddress + } + + return px.peerlist.setHasIncomingPort(cleanAddr, hasPublicPort) +} + +// SetUserAgent sets the peer's user agent +func (px *Pex) SetUserAgent(addr string, userAgent useragent.Data) error { + px.Lock() + defer px.Unlock() + + if !userAgent.Empty() { + if _, err := userAgent.Build(); err != nil { + return err + } + } + + cleanAddr, err := validateAddress(addr, px.Config.AllowLocalhost) + if err != nil { + logger.WithError(err).WithField("addr", addr).Error("Invalid address") + return ErrInvalidAddress + } + + return px.peerlist.setUserAgent(cleanAddr, userAgent) +} + +// RemovePeer removes peer +func (px *Pex) RemovePeer(addr string) { + px.Lock() + defer px.Unlock() + px.peerlist.removePeer(addr) +} + +// GetPeer returns peer of given address +func (px *Pex) GetPeer(addr string) (Peer, bool) { + px.RLock() + defer px.RUnlock() + return px.peerlist.getPeer(addr) +} + +// AllTrusted returns all trusted peers +func (px *Pex) AllTrusted() Peers { + px.RLock() + defer px.RUnlock() + return px.peerlist.getPeers([]Filter{isTrusted}) +} + +// Trusted returns trusted triable peers +func (px *Pex) Trusted() Peers { + px.RLock() + defer px.RUnlock() + return px.peerlist.getCanTryPeers([]Filter{isTrusted}) +} + +// Random returns N random untrusted peers +func (px *Pex) Random(n int) Peers { + px.RLock() + defer px.RUnlock() + return px.peerlist.random(n, []Filter{func(p Peer) bool { + return !p.Trusted + }}) +} + +// RandomExchangeable returns N random exchangeable peers +func (px *Pex) RandomExchangeable(n int) Peers { + px.RLock() + defer px.RUnlock() + return px.peerlist.random(n, isExchangeable) +} + +// IncreaseRetryTimes increases retry times +func (px *Pex) IncreaseRetryTimes(addr string) { + px.Lock() + defer px.Unlock() + px.peerlist.increaseRetryTimes(addr) +} + +// ResetRetryTimes reset retry times +func (px *Pex) ResetRetryTimes(addr string) { + px.Lock() + defer px.Unlock() + px.peerlist.resetRetryTimes(addr) +} + +// ResetAllRetryTimes reset all peers' retry times +func (px *Pex) ResetAllRetryTimes() { + px.Lock() + defer px.Unlock() + px.peerlist.resetAllRetryTimes() +} + +// IsFull returns whether the peer list is full +func (px *Pex) IsFull() bool { + px.RLock() + defer px.RUnlock() + return px.isFull() +} + +func (px *Pex) isFull() bool { + return px.Config.Max > 0 && px.peerlist.len() >= px.Config.Max +} + +// downloadText downloads a text format file from url. +// Returns the raw response body as a string. +// TODO -- move to util, add backoff options +func downloadText(url string) (string, error) { + resp, err := http.Get(url) //nolint:gosec + if err != nil { + return "", err + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return "", err + } + + return string(body), nil +} + +func backoffDownloadText(url string) (string, error) { + var body string + + b := backoff.NewExponentialBackOff() + + notify := func(err error, wait time.Duration) { + logger.WithError(err).WithField("waitTime", wait).Error("waiting to retry downloadText") + } + + operation := func() error { + logger.WithField("url", url).Info("Trying to download peers list") + var err error + body, err = downloadText(url) + return err + } + + if err := backoff.RetryNotify(operation, b, notify); err != nil { + logger.WithField("url", url).WithError(err).Info("Gave up downloading peers list") + return "", err + } + + logger.WithField("url", url).Info("Peers list downloaded") + + return body, nil +} + +// parseRemotePeerList parses a remote peers.txt file +// The peers list format is newline separated list of ip:port strings +// Any lines that don't parse to an ip:port are skipped, otherwise they return an error +// Localhost ip:port addresses are ignored +// NOTE: this does not parse the cached peers.json file in the data directory, which is a JSON file +// and is loaded by loadCachedPeersFile +func parseRemotePeerList(body string) []string { + var peers []string + for _, addr := range strings.Split(body, "\n") { + addr = whitespaceFilter.ReplaceAllString(addr, "") + if addr == "" { + continue + } + + // Never allow localhost addresses from the remote peers list + a, err := validateAddress(addr, false) + if err != nil { + err = fmt.Errorf("Peers list has invalid address %s: %v", addr, err) + logger.WithError(err).Error() + continue + } + + peers = append(peers, a) + } + + return peers +} + +// parseLocalPeerList parses a local peers.txt file +// The peers list format is newline separated list of ip:port strings +// Empty lines and lines that begin with # are treated as comment lines +// Otherwise, the line is parsed as an ip:port +// If the line fails to parse, an error is returned +// Localhost addresses are allowed if allowLocalhost is true +// NOTE: this does not parse the cached peers.json file in the data directory, which is a JSON file +// and is loaded by loadCachedPeersFile +func parseLocalPeerList(body string, allowLocalhost bool) ([]string, error) { + var peers []string + for _, addr := range strings.Split(body, "\n") { + addr = whitespaceFilter.ReplaceAllString(addr, "") + if addr == "" { + continue + } + + if strings.HasPrefix(addr, "#") { + continue + } + + a, err := validateAddress(addr, allowLocalhost) + if err != nil { + err = fmt.Errorf("Peers list has invalid address %s: %v", addr, err) + logger.WithError(err).Error() + return nil, err + } + + peers = append(peers, a) + } + + return peers, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/pool.go b/vendor/github.com/skycoin/skycoin/src/daemon/pool.go new file mode 100644 index 000000000..36d37a5fa --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/pool.go @@ -0,0 +1,133 @@ +package daemon + +import ( + "time" + + "github.com/skycoin/skycoin/src/daemon/gnet" +) + +// PoolConfig pool config +type PoolConfig struct { + // Timeout when trying to connect to new peers through the pool + DialTimeout time.Duration + // How often to process message buffers and generate events + MessageHandlingRate time.Duration + // How long to wait before sending another ping + PingRate time.Duration + // How long a connection can idle before considered stale + IdleLimit time.Duration + // How often to check for needed pings + IdleCheckRate time.Duration + // How often to check for stale connections + ClearStaleRate time.Duration + // Buffer size for gnet.ConnectionPool's network Read events + EventChannelSize int + // Maximum number of connections + MaxConnections int + // Maximum number of outgoing connections + MaxOutgoingConnections int + // Maximum number of incoming connections + MaxIncomingConnections int + // Maximum number of outgoing connections to peers in the DefaultConnections list to maintain + MaxDefaultPeerOutgoingConnections int + // Default "trusted" peers + DefaultConnections []string + // Maximum length of incoming messages in bytes + MaxIncomingMessageLength int + // Maximum length of outgoing messages in bytes + MaxOutgoingMessageLength int + // These should be assigned by the controlling daemon + address string + port int +} + +// NewPoolConfig creates pool config +func NewPoolConfig() PoolConfig { + return PoolConfig{ + port: 6677, + address: "", + DialTimeout: time.Second * 30, + MessageHandlingRate: time.Millisecond * 50, + PingRate: 5 * time.Second, + IdleLimit: 60 * time.Second, + IdleCheckRate: 1 * time.Second, + ClearStaleRate: 1 * time.Second, + EventChannelSize: 4096, + MaxConnections: 128, + MaxOutgoingConnections: 8, + MaxIncomingConnections: 120, + MaxDefaultPeerOutgoingConnections: 2, + MaxOutgoingMessageLength: 256 * 1024, + MaxIncomingMessageLength: 1024 * 1024, + } +} + +// Pool maintains config and pool +type Pool struct { + Config PoolConfig + Pool *gnet.ConnectionPool +} + +// NewPool creates pool +func NewPool(cfg PoolConfig, d *Daemon) (*Pool, error) { + gnetCfg := gnet.NewConfig() + gnetCfg.DialTimeout = cfg.DialTimeout + gnetCfg.Port = uint16(cfg.port) + gnetCfg.Address = cfg.address + gnetCfg.ConnectCallback = d.onGnetConnect + gnetCfg.DisconnectCallback = d.onGnetDisconnect + gnetCfg.ConnectFailureCallback = d.onGnetConnectFailure + gnetCfg.MaxConnections = cfg.MaxConnections + gnetCfg.MaxOutgoingConnections = cfg.MaxOutgoingConnections + gnetCfg.MaxIncomingConnections = cfg.MaxIncomingConnections + gnetCfg.MaxDefaultPeerOutgoingConnections = cfg.MaxDefaultPeerOutgoingConnections + gnetCfg.DefaultConnections = cfg.DefaultConnections + gnetCfg.MaxIncomingMessageLength = cfg.MaxIncomingMessageLength + gnetCfg.MaxOutgoingMessageLength = cfg.MaxOutgoingMessageLength + + pool, err := gnet.NewConnectionPool(gnetCfg, d) + if err != nil { + return nil, err + } + + return &Pool{ + Config: cfg, + Pool: pool, + }, nil +} + +// Shutdown closes all connections and stops listening +func (pool *Pool) Shutdown() { + if pool == nil { + return + } + pool.Pool.Shutdown() +} + +// Run starts listening on the configured Port +func (pool *Pool) Run() error { + logger.Infof("daemon.Pool listening on port %d", pool.Config.port) + return pool.Pool.Run() +} + +// RunOffline runs the pool without a listener. This is necessary to process strand requests. +func (pool *Pool) RunOffline() error { + return pool.Pool.RunOffline() +} + +// sendPings send a ping if our last message sent was over pingRate ago +func (pool *Pool) sendPings() { + if err := pool.Pool.SendPings(pool.Config.PingRate, &PingMessage{}); err != nil { + logger.WithError(err).Error("sendPings failed") + } +} + +// getStaleConnections returns connections that have been idle for longer than idleLimit +func (pool *Pool) getStaleConnections() ([]string, error) { + return pool.Pool.GetStaleConnections(pool.Config.IdleLimit) +} + +// IsMaxOutgoingDefaultConnectionsReached returns whether max outgoing default connections reached +func (pool *Pool) IsMaxOutgoingDefaultConnectionsReached() bool { + return pool.Pool.IsMaxOutgoingDefaultConnectionsReached() +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/signed_block_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/signed_block_skyencoder.go new file mode 100644 index 000000000..3cc4c5222 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/signed_block_skyencoder.go @@ -0,0 +1,528 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeSignedBlock computes the size of an encoded object of type SignedBlock +func encodeSizeSignedBlock(obj *coin.SignedBlock) uint64 { + i0 := uint64(0) + + // obj.Block.Head.Version + i0 += 4 + + // obj.Block.Head.Time + i0 += 8 + + // obj.Block.Head.BkSeq + i0 += 8 + + // obj.Block.Head.Fee + i0 += 8 + + // obj.Block.Head.PrevHash + i0 += 32 + + // obj.Block.Head.BodyHash + i0 += 32 + + // obj.Block.Head.UxHash + i0 += 32 + + // obj.Block.Body.Transactions + i0 += 4 + for _, x1 := range obj.Block.Body.Transactions { + i1 := uint64(0) + + // x1.Length + i1 += 4 + + // x1.Type + i1++ + + // x1.InnerHash + i1 += 32 + + // x1.Sigs + i1 += 4 + { + i2 := uint64(0) + + // x2 + i2 += 65 + + i1 += uint64(len(x1.Sigs)) * i2 + } + + // x1.In + i1 += 4 + { + i2 := uint64(0) + + // x2 + i2 += 32 + + i1 += uint64(len(x1.In)) * i2 + } + + // x1.Out + i1 += 4 + { + i2 := uint64(0) + + // x2.Address.Version + i2++ + + // x2.Address.Key + i2 += 20 + + // x2.Coins + i2 += 8 + + // x2.Hours + i2 += 8 + + i1 += uint64(len(x1.Out)) * i2 + } + + i0 += i1 + } + + // obj.Sig + i0 += 65 + + return i0 +} + +// encodeSignedBlock encodes an object of type SignedBlock to a buffer allocated to the exact size +// required to encode the object. +func encodeSignedBlock(obj *coin.SignedBlock) ([]byte, error) { + n := encodeSizeSignedBlock(obj) + buf := make([]byte, n) + + if err := encodeSignedBlockToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeSignedBlockToBuffer encodes an object of type SignedBlock to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeSignedBlockToBuffer(buf []byte, obj *coin.SignedBlock) error { + if uint64(len(buf)) < encodeSizeSignedBlock(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Block.Head.Version + e.Uint32(obj.Block.Head.Version) + + // obj.Block.Head.Time + e.Uint64(obj.Block.Head.Time) + + // obj.Block.Head.BkSeq + e.Uint64(obj.Block.Head.BkSeq) + + // obj.Block.Head.Fee + e.Uint64(obj.Block.Head.Fee) + + // obj.Block.Head.PrevHash + e.CopyBytes(obj.Block.Head.PrevHash[:]) + + // obj.Block.Head.BodyHash + e.CopyBytes(obj.Block.Head.BodyHash[:]) + + // obj.Block.Head.UxHash + e.CopyBytes(obj.Block.Head.UxHash[:]) + + // obj.Block.Body.Transactions maxlen check + if len(obj.Block.Body.Transactions) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Block.Body.Transactions length check + if uint64(len(obj.Block.Body.Transactions)) > math.MaxUint32 { + return errors.New("obj.Block.Body.Transactions length exceeds math.MaxUint32") + } + + // obj.Block.Body.Transactions length + e.Uint32(uint32(len(obj.Block.Body.Transactions))) + + // obj.Block.Body.Transactions + for _, x := range obj.Block.Body.Transactions { + + // x.Length + e.Uint32(x.Length) + + // x.Type + e.Uint8(x.Type) + + // x.InnerHash + e.CopyBytes(x.InnerHash[:]) + + // x.Sigs maxlen check + if len(x.Sigs) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Sigs length check + if uint64(len(x.Sigs)) > math.MaxUint32 { + return errors.New("x.Sigs length exceeds math.MaxUint32") + } + + // x.Sigs length + e.Uint32(uint32(len(x.Sigs))) + + // x.Sigs + for _, x := range x.Sigs { + + // x + e.CopyBytes(x[:]) + + } + + // x.In maxlen check + if len(x.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.In length check + if uint64(len(x.In)) > math.MaxUint32 { + return errors.New("x.In length exceeds math.MaxUint32") + } + + // x.In length + e.Uint32(uint32(len(x.In))) + + // x.In + for _, x := range x.In { + + // x + e.CopyBytes(x[:]) + + } + + // x.Out maxlen check + if len(x.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Out length check + if uint64(len(x.Out)) > math.MaxUint32 { + return errors.New("x.Out length exceeds math.MaxUint32") + } + + // x.Out length + e.Uint32(uint32(len(x.Out))) + + // x.Out + for _, x := range x.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + } + + // obj.Sig + e.CopyBytes(obj.Sig[:]) + + return nil +} + +// decodeSignedBlock decodes an object of type SignedBlock from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeSignedBlock(buf []byte, obj *coin.SignedBlock) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Block.Head.Version + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Block.Head.Version = i + } + + { + // obj.Block.Head.Time + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Block.Head.Time = i + } + + { + // obj.Block.Head.BkSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Block.Head.BkSeq = i + } + + { + // obj.Block.Head.Fee + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Block.Head.Fee = i + } + + { + // obj.Block.Head.PrevHash + if len(d.Buffer) < len(obj.Block.Head.PrevHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Block.Head.PrevHash[:], d.Buffer[:len(obj.Block.Head.PrevHash)]) + d.Buffer = d.Buffer[len(obj.Block.Head.PrevHash):] + } + + { + // obj.Block.Head.BodyHash + if len(d.Buffer) < len(obj.Block.Head.BodyHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Block.Head.BodyHash[:], d.Buffer[:len(obj.Block.Head.BodyHash)]) + d.Buffer = d.Buffer[len(obj.Block.Head.BodyHash):] + } + + { + // obj.Block.Head.UxHash + if len(d.Buffer) < len(obj.Block.Head.UxHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Block.Head.UxHash[:], d.Buffer[:len(obj.Block.Head.UxHash)]) + d.Buffer = d.Buffer[len(obj.Block.Head.UxHash):] + } + + { + // obj.Block.Body.Transactions + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Block.Body.Transactions = make([]coin.Transaction, length) + + for z3 := range obj.Block.Body.Transactions { + { + // obj.Block.Body.Transactions[z3].Length + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Block.Body.Transactions[z3].Length = i + } + + { + // obj.Block.Body.Transactions[z3].Type + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Block.Body.Transactions[z3].Type = i + } + + { + // obj.Block.Body.Transactions[z3].InnerHash + if len(d.Buffer) < len(obj.Block.Body.Transactions[z3].InnerHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Block.Body.Transactions[z3].InnerHash[:], d.Buffer[:len(obj.Block.Body.Transactions[z3].InnerHash)]) + d.Buffer = d.Buffer[len(obj.Block.Body.Transactions[z3].InnerHash):] + } + + { + // obj.Block.Body.Transactions[z3].Sigs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Block.Body.Transactions[z3].Sigs = make([]cipher.Sig, length) + + for z5 := range obj.Block.Body.Transactions[z3].Sigs { + { + // obj.Block.Body.Transactions[z3].Sigs[z5] + if len(d.Buffer) < len(obj.Block.Body.Transactions[z3].Sigs[z5]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Block.Body.Transactions[z3].Sigs[z5][:], d.Buffer[:len(obj.Block.Body.Transactions[z3].Sigs[z5])]) + d.Buffer = d.Buffer[len(obj.Block.Body.Transactions[z3].Sigs[z5]):] + } + + } + } + } + + { + // obj.Block.Body.Transactions[z3].In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Block.Body.Transactions[z3].In = make([]cipher.SHA256, length) + + for z5 := range obj.Block.Body.Transactions[z3].In { + { + // obj.Block.Body.Transactions[z3].In[z5] + if len(d.Buffer) < len(obj.Block.Body.Transactions[z3].In[z5]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Block.Body.Transactions[z3].In[z5][:], d.Buffer[:len(obj.Block.Body.Transactions[z3].In[z5])]) + d.Buffer = d.Buffer[len(obj.Block.Body.Transactions[z3].In[z5]):] + } + + } + } + } + + { + // obj.Block.Body.Transactions[z3].Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Block.Body.Transactions[z3].Out = make([]coin.TransactionOutput, length) + + for z5 := range obj.Block.Body.Transactions[z3].Out { + { + // obj.Block.Body.Transactions[z3].Out[z5].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Block.Body.Transactions[z3].Out[z5].Address.Version = i + } + + { + // obj.Block.Body.Transactions[z3].Out[z5].Address.Key + if len(d.Buffer) < len(obj.Block.Body.Transactions[z3].Out[z5].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Block.Body.Transactions[z3].Out[z5].Address.Key[:], d.Buffer[:len(obj.Block.Body.Transactions[z3].Out[z5].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Block.Body.Transactions[z3].Out[z5].Address.Key):] + } + + { + // obj.Block.Body.Transactions[z3].Out[z5].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Block.Body.Transactions[z3].Out[z5].Coins = i + } + + { + // obj.Block.Body.Transactions[z3].Out[z5].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Block.Body.Transactions[z3].Out[z5].Hours = i + } + + } + } + } + } + } + } + + { + // obj.Sig + if len(d.Buffer) < len(obj.Sig) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Sig[:], d.Buffer[:len(obj.Sig)]) + d.Buffer = d.Buffer[len(obj.Sig):] + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeSignedBlockExact decodes an object of type SignedBlock from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeSignedBlockExact(buf []byte, obj *coin.SignedBlock) error { + if n, err := decodeSignedBlock(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/strand/strand.go b/vendor/github.com/skycoin/skycoin/src/daemon/strand/strand.go new file mode 100644 index 000000000..629960f2b --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/strand/strand.go @@ -0,0 +1,135 @@ +/* +Package strand is a utility for linearizing method calls, similar to locking. + +The strand method is functionally similar to a lock, but operates on a queue +of method calls. +*/ +package strand + +import ( + "time" + + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/util/logging" +) + +const ( + // logDurationThreshold is how long to wait before reporting a function call's time + logDurationThreshold = time.Millisecond * 100 + // writeWait is how long to wait to write to a request channel before logging the delay + logQueueRequestWaitThreshold = time.Second * 1 +) + +var ( + // Debug enables debug logging + Debug = false +) + +// Request is sent to the channel provided to Strand +type Request struct { + Name string + Func func() error +} + +// Strand linearizes concurrent method calls through a single channel, +// to avoid concurrency issues when conflicting methods are called from +// multiple goroutines. +// Methods passed to Strand() will block until completed. +// Strand accepts a quit channel and will return quitErr if the quit +// channel closes. +func Strand(logger *logging.Logger, c chan Request, name string, f func() error, quit chan struct{}, quitErr error) error { + if Debug { + logger.WithField("operation", name).Debug("Strand precall") + } + + done := make(chan struct{}) + var err error + + req := Request{ + Name: name, + Func: func() error { + defer close(done) + + // TODO: record time statistics in a data structure and expose stats via an API + // logger.Debugf("%s begin", name) + + t := time.Now() + + // Log function duration at an exponential time interval, + // this will notify us of any long running functions to look at. + go func() { + threshold := logDurationThreshold + t := time.NewTimer(threshold) + defer t.Stop() + + for { + t0 := time.Now() + select { + case <-quit: + return + case <-done: + return + case <-t.C: + logger.WithFields(logrus.Fields{ + "operation": name, + "threshold": threshold, + }).Warning("Strand operation exceeded threshold") + threshold *= 10 + t.Reset(threshold) + } + t1 := time.Now() + logger.WithField("elapsed", t1.Sub(t0)).Info() + } + }() + + if Debug { + logger.WithField("operation", name).Debug("Stranding") + } + + err = f() + + // Notify us if the function call took too long + elapsed := time.Since(t) + if elapsed > logDurationThreshold { + logger.WithFields(logrus.Fields{ + "operation": name, + "elapsed": elapsed, + }).Warning() + } else if Debug { + logger.WithFields(logrus.Fields{ + "operation": name, + "elapsed": elapsed, + }).Debug() + } + + return err + }, + } + + // Log a message if waiting too long to write due to a full queue + t := time.Now() +loop: + for { + select { + case <-quit: + return quitErr + case c <- req: + break loop + case <-time.After(logQueueRequestWaitThreshold): + logger.Warningf("Waited %s while trying to write %s to the strand request channel", time.Since(t), req.Name) + } + } + + t = time.Now() + for { + select { + case <-quit: + return quitErr + case <-done: + return err + case <-time.After(logQueueRequestWaitThreshold): + logger.Warningf("Waited %s while waiting for %s to be done or quit", time.Since(t), req.Name) + } + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/daemon/transaction_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/daemon/transaction_skyencoder.go new file mode 100644 index 000000000..53281f8a9 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/daemon/transaction_skyencoder.go @@ -0,0 +1,358 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package daemon + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeTransaction computes the size of an encoded object of type Transaction +func encodeSizeTransaction(obj *coin.Transaction) uint64 { + i0 := uint64(0) + + // obj.Length + i0 += 4 + + // obj.Type + i0++ + + // obj.InnerHash + i0 += 32 + + // obj.Sigs + i0 += 4 + { + i1 := uint64(0) + + // x1 + i1 += 65 + + i0 += uint64(len(obj.Sigs)) * i1 + } + + // obj.In + i0 += 4 + { + i1 := uint64(0) + + // x1 + i1 += 32 + + i0 += uint64(len(obj.In)) * i1 + } + + // obj.Out + i0 += 4 + { + i1 := uint64(0) + + // x1.Address.Version + i1++ + + // x1.Address.Key + i1 += 20 + + // x1.Coins + i1 += 8 + + // x1.Hours + i1 += 8 + + i0 += uint64(len(obj.Out)) * i1 + } + + return i0 +} + +// encodeTransaction encodes an object of type Transaction to a buffer allocated to the exact size +// required to encode the object. +func encodeTransaction(obj *coin.Transaction) ([]byte, error) { + n := encodeSizeTransaction(obj) + buf := make([]byte, n) + + if err := encodeTransactionToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeTransactionToBuffer encodes an object of type Transaction to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeTransactionToBuffer(buf []byte, obj *coin.Transaction) error { + if uint64(len(buf)) < encodeSizeTransaction(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Length + e.Uint32(obj.Length) + + // obj.Type + e.Uint8(obj.Type) + + // obj.InnerHash + e.CopyBytes(obj.InnerHash[:]) + + // obj.Sigs maxlen check + if len(obj.Sigs) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Sigs length check + if uint64(len(obj.Sigs)) > math.MaxUint32 { + return errors.New("obj.Sigs length exceeds math.MaxUint32") + } + + // obj.Sigs length + e.Uint32(uint32(len(obj.Sigs))) + + // obj.Sigs + for _, x := range obj.Sigs { + + // x + e.CopyBytes(x[:]) + + } + + // obj.In maxlen check + if len(obj.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.In length check + if uint64(len(obj.In)) > math.MaxUint32 { + return errors.New("obj.In length exceeds math.MaxUint32") + } + + // obj.In length + e.Uint32(uint32(len(obj.In))) + + // obj.In + for _, x := range obj.In { + + // x + e.CopyBytes(x[:]) + + } + + // obj.Out maxlen check + if len(obj.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Out length check + if uint64(len(obj.Out)) > math.MaxUint32 { + return errors.New("obj.Out length exceeds math.MaxUint32") + } + + // obj.Out length + e.Uint32(uint32(len(obj.Out))) + + // obj.Out + for _, x := range obj.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + return nil +} + +// decodeTransaction decodes an object of type Transaction from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeTransaction(buf []byte, obj *coin.Transaction) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Length + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Length = i + } + + { + // obj.Type + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Type = i + } + + { + // obj.InnerHash + if len(d.Buffer) < len(obj.InnerHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.InnerHash[:], d.Buffer[:len(obj.InnerHash)]) + d.Buffer = d.Buffer[len(obj.InnerHash):] + } + + { + // obj.Sigs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Sigs = make([]cipher.Sig, length) + + for z1 := range obj.Sigs { + { + // obj.Sigs[z1] + if len(d.Buffer) < len(obj.Sigs[z1]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Sigs[z1][:], d.Buffer[:len(obj.Sigs[z1])]) + d.Buffer = d.Buffer[len(obj.Sigs[z1]):] + } + + } + } + } + + { + // obj.In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.In = make([]cipher.SHA256, length) + + for z1 := range obj.In { + { + // obj.In[z1] + if len(d.Buffer) < len(obj.In[z1]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.In[z1][:], d.Buffer[:len(obj.In[z1])]) + d.Buffer = d.Buffer[len(obj.In[z1]):] + } + + } + } + } + + { + // obj.Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Out = make([]coin.TransactionOutput, length) + + for z1 := range obj.Out { + { + // obj.Out[z1].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Out[z1].Address.Version = i + } + + { + // obj.Out[z1].Address.Key + if len(d.Buffer) < len(obj.Out[z1].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Out[z1].Address.Key[:], d.Buffer[:len(obj.Out[z1].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Out[z1].Address.Key):] + } + + { + // obj.Out[z1].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out[z1].Coins = i + } + + { + // obj.Out[z1].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out[z1].Hours = i + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeTransactionExact decodes an object of type Transaction from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeTransactionExact(buf []byte, obj *coin.Transaction) error { + if n, err := decodeTransaction(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/fiber/config.go b/vendor/github.com/skycoin/skycoin/src/fiber/config.go new file mode 100644 index 000000000..df31ab291 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/fiber/config.go @@ -0,0 +1,180 @@ +/* +Package fiber provides configuration definitions and utilities for managing fiber coins +*/ +package fiber + +import ( + "fmt" + "strings" + + "github.com/spf13/viper" + + "github.com/skycoin/skycoin/src/cipher/bip44" +) + +// Config records fiber coin parameters +type Config struct { + Node NodeConfig `mapstructure:"node"` + Params ParamsConfig `mapstructure:"params"` +} + +// NodeConfig configures the default CLI options for the skycoin node. +// These parameters are loaded via cmd/skycoin/skycoin.go into src/skycoin/skycoin.go. +type NodeConfig struct { + // Port is the default port that the wire protocol communicates over + Port int `mapstructure:"port"` + // WebInterfacePort is the default port that the web/gui interface serves on + WebInterfacePort int `mapstructure:"web_interface_port"` + // GenesisSignatureStr is a hex-encoded signature of the genesis block input + GenesisSignatureStr string `mapstructure:"genesis_signature_str"` + // GenesisAddressStr is the skycoin address that the genesis coins were sent to in the genesis block + GenesisAddressStr string `mapstructure:"genesis_address_str"` + // BlockchainPubkeyStr is a hex-encoded public key used to validate published blocks + BlockchainPubkeyStr string `mapstructure:"blockchain_pubkey_str"` + // BlockchainSeckey is a hex-encoded secret key required for block publishing. + // It must correspond to BlockchainPubkeyStr + BlockchainSeckeyStr string `mapstructure:"blockchain_seckey_str"` + // GenesisTimestamp is the timestamp of the genesis block + GenesisTimestamp uint64 `mapstructure:"genesis_timestamp"` + // GenesisCoinVolume is the total number of coins in the genesis block + GenesisCoinVolume uint64 `mapstructure:"genesis_coin_volume"` + // DefaultConnections are the default "trusted" connections a node will try to connect to for bootstrapping + DefaultConnections []string `mapstructure:"default_connections"` + // PeerlistURL is a URL pointing to a newline-separated list of ip:ports that are used for bootstrapping (but they are not "trusted") + PeerListURL string `mapstructure:"peer_list_url"` + + // UnconfirmedBurnFactor is the burn factor to apply when verifying unconfirmed transactions + UnconfirmedBurnFactor uint32 `mapstructure:"unconfirmed_burn_factor"` + // UnconfirmedMaxTransactionSize is the maximum size of an unconfirmed transaction + UnconfirmedMaxTransactionSize uint32 `mapstructure:"unconfirmed_max_transaction_size"` + // UnconfirmedMaxDropletPrecision is the maximum number of decimals allowed in an unconfirmed transaction + UnconfirmedMaxDropletPrecision uint8 `mapstructure:"unconfirmed_max_decimals"` + // CreateBlockBurnFactor is the burn factor to apply to transactions when publishing blocks + CreateBlockBurnFactor uint32 `mapstructure:"create_block_burn_factor"` + // CreateBlockMaxTransactionSize is the maximum size of an transaction when publishing blocks + CreateBlockMaxTransactionSize uint32 `mapstructure:"create_block_max_transaction_size"` + // CreateBlockMaxDropletPrecision is the maximum number of decimals allowed in a transaction when publishing blocks + CreateBlockMaxDropletPrecision uint8 `mapstructure:"create_block_max_decimals"` + // MaxBlockTransactionsSize is the maximum total size of transactions in a block when publishing a block + MaxBlockTransactionsSize uint32 `mapstructure:"max_block_transactions_size"` + + // DisplayName is the display name of the coin in the wallet e.g. Skycoin + DisplayName string `mapstructure:"display_name"` + // Ticker is the coin's price ticker, e.g. SKY + Ticker string `mapstructure:"ticker"` + // CoinHoursName is the name of the coinhour asset type, e.g. Coin Hours + CoinHoursName string `mapstructure:"coin_hours_display_name"` + // CoinHoursNameSingular is the singular form of the name of the coinhour asset type, e.g. Coin Hour + CoinHoursNameSingular string `mapstructure:"coin_hours_display_name_singular"` + // CoinHoursTicker is the name of the coinhour asset type's price ticker, e.g. SCH (Skycoin Coin Hours) + CoinHoursTicker string `mapstructure:"coin_hours_ticker"` + // QrURIPrefix is the prefix name of a QR url, e.g. skycoin:[address], the skycoin is the prefix. + QrURIPrefix string `mapstructure:"qr_uri_prefix"` + // ExplorerURL is the URL of the public explorer + ExplorerURL string `mapstructure:"explorer_url"` + // VersionURL is the URL for wallet to check the latest version number + VersionURL string `mapstructure:"version_url"` + // Bip44Coin is the default "coin" value of the bip44 path + Bip44Coin bip44.CoinType `mapstructure:"bip44_coin"` + + // These fields are set by cmd/newcoin and are not configured in the fiber.toml file + CoinName string + DataDirectory string +} + +// ParamsConfig are the parameters used to generate params/params.go. +// These parameters are exposed in an importable package `params` because they +// may need to be imported by libraries that would not know the node's configured CLI options. +type ParamsConfig struct { + // MaxCoinSupply is the maximum supply of coins + MaxCoinSupply uint64 `mapstructure:"max_coin_supply"` + // InitialUnlockedCount is the initial number of unlocked addresses + InitialUnlockedCount uint64 `mapstructure:"initial_unlocked_count"` + // UnlockAddressRate is the number of addresses to unlock per unlock time interval + UnlockAddressRate uint64 `mapstructure:"unlock_address_rate"` + // UnlockTimeInterval is the distribution address unlock time interval, measured in seconds. + // Once the InitialUnlockedCount is exhausted, UnlockAddressRate addresses will be unlocked per UnlockTimeInterval + UnlockTimeInterval uint64 `mapstructure:"unlock_time_interval"` + // UserMaxDropletPrecision represents the decimal precision of droplets + UserMaxDropletPrecision uint64 `mapstructure:"user_max_decimals"` + // UserMaxTransactionSize is max size of a user-created transaction (typically equal to the max size of a block) + UserMaxTransactionSize int `mapstructure:"user_max_transaction_size"` + // DistributionAddresses are addresses that received coins from the genesis address in the first block, + // used to calculate current and max supply and do distribution timelocking + DistributionAddresses []string `mapstructure:"distribution_addresses"` + // UserBurnFactor inverse fraction of coinhours that must be burned, this value is used when creating transactions + UserBurnFactor uint64 `mapstructure:"user_burn_factor"` +} + +// NewConfig loads blockchain config parameters from a config file +// default file is: fiber.toml in the project root +// JSON, toml or yaml file can be used (toml preferred). +func NewConfig(configName, appDir string) (Config, error) { + // set viper parameters + // check that file is of supported type + confNameSplit := strings.Split(configName, ".") + fileType := confNameSplit[len(confNameSplit)-1] + switch fileType { + case "toml", "json", "yaml", "yml": + viper.SetConfigType(confNameSplit[len(confNameSplit)-1]) + default: + return Config{}, fmt.Errorf("invalid blockchain config file type: %s", fileType) + } + + configName = configName[:len(configName)-(len(fileType)+1)] + viper.SetConfigName(configName) + + viper.AddConfigPath(appDir) + viper.AddConfigPath(".") + + // set defaults + setDefaults() + + params := Config{} + + if err := viper.ReadInConfig(); err != nil { + return params, err + } + + if err := viper.Unmarshal(¶ms); err != nil { + return params, err + } + + return params, nil +} + +func setDefaults() { + // node defaults + viper.SetDefault("node.genesis_coin_volume", 100e12) + viper.SetDefault("node.port", 6000) + viper.SetDefault("node.web_interface_port", 6420) + viper.SetDefault("node.unconfirmed_burn_factor", 10) + viper.SetDefault("node.unconfirmed_max_transaction_size", 32*1024) + viper.SetDefault("node.unconfirmed_max_decimals", 3) + viper.SetDefault("node.create_block_burn_factor", 10) + viper.SetDefault("node.create_block_max_transaction_size", 32*1024) + viper.SetDefault("node.create_block_max_decimals", 3) + viper.SetDefault("node.max_block_transactions_size", 32*1024) + viper.SetDefault("node.display_name", "Skycoin") + viper.SetDefault("node.ticker", "SKY") + viper.SetDefault("node.coin_hours_display_name", "Coin Hours") + viper.SetDefault("node.coin_hours_display_name_singular", "Coin Hour") + viper.SetDefault("node.coin_hours_ticker", "SCH") + viper.SetDefault("node.qr_uri_prefix", "skycoin") + viper.SetDefault("node.explorer_url", "https://explorer.skycoin.com") + viper.SetDefault("node.version_url", "https://version.skycoin.com/skycoin/version.txt") + viper.SetDefault("node.bip44_coin", bip44.CoinTypeSkycoin) + + // build defaults + viper.SetDefault("build.commit", "") + viper.SetDefault("build.branch", "") + + // params defaults + viper.SetDefault("params.max_coin_supply", 1e8) + viper.SetDefault("params.initial_unlocked_count", 25) + viper.SetDefault("params.unlock_address_rate", 5) + viper.SetDefault("params.unlock_time_interval", 60*60*24*365) + viper.SetDefault("params.user_max_decimals", 3) + viper.SetDefault("params.user_burn_factor", 10) + viper.SetDefault("params.user_max_transaction_size", 32*1024) +} diff --git a/vendor/github.com/skycoin/skycoin/src/kvstorage/empty.go b/vendor/github.com/skycoin/skycoin/src/kvstorage/empty.go new file mode 100644 index 000000000..d93f2e3f4 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/kvstorage/empty.go @@ -0,0 +1,5 @@ +// Package kvstorage contains the implementation for a +// key-value storage of arbitrary data. `Manager` is used to +// access the storage contents. Each storage is presented by its own `KVStorageType` +// and each type has its own associated file to persist data +package kvstorage diff --git a/vendor/github.com/skycoin/skycoin/src/kvstorage/error.go b/vendor/github.com/skycoin/skycoin/src/kvstorage/error.go new file mode 100644 index 000000000..ef634dbad --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/kvstorage/error.go @@ -0,0 +1,16 @@ +package kvstorage + +// Error wraps key-value storage related errors. +// It wraps errors caused by user input, but not errors caused by +// programmer input or internal issues. +type Error struct { + error +} + +// NewError creates an Error +func NewError(err error) error { + if err == nil { + return nil + } + return Error{err} +} diff --git a/vendor/github.com/skycoin/skycoin/src/kvstorage/kvstorage.go b/vendor/github.com/skycoin/skycoin/src/kvstorage/kvstorage.go new file mode 100644 index 000000000..4165dd12e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/kvstorage/kvstorage.go @@ -0,0 +1,162 @@ +package kvstorage + +import ( + "crypto/sha256" + "encoding/base64" + "errors" + "fmt" + "io" + "os" + "path/filepath" + "sync" + + "github.com/skycoin/skycoin/src/util/file" +) + +var ( + // ErrNoSuchKey is returned when the specified key does not exist + // in the storage instance + ErrNoSuchKey = NewError(errors.New("no such key exists in the storage")) +) + +// kvStorage is a key-value storage for storing arbitrary data +type kvStorage struct { + fn string + data map[string]string + sync.RWMutex +} + +// newKVStorage constructs new storage instance using the file with the filename +// to persist data +func newKVStorage(fn string) (*kvStorage, error) { + storage := kvStorage{ + fn: fn, + } + + if err := file.LoadJSON(fn, &storage.data); err != nil { + logger.Warningf("newKVStorage LoadJSON(%s) failed: %v", fn, err) + cfp, err := makeCorruptFilePath(fn) + if err != nil { + return nil, fmt.Errorf("Failed to make corrupt file path: %v", err) + } + if err := os.Rename(fn, cfp); err != nil { + return nil, fmt.Errorf("Rename %s to %s failed: %v", fn, cfp, err) + } + logger.Infof("Backup the corrupted file from: %s to %s", fn, cfp) + if err := initEmptyStorage(fn); err != nil { + return nil, err + } + storage.data = make(map[string]string) + } + + return &storage, nil +} + +// makeCorruptFilePath creates a $FILE.corrupt.$HASH string based on file path, +// where $HASH is truncated SHA1 of $FILE. +func makeCorruptFilePath(path string) (string, error) { + fileHash, err := shaFileID(path) + if err != nil { + return "", err + } + + dir, file := filepath.Split(path) + newFile := fmt.Sprintf("%s.corrupt.%s", file, fileHash) + newPath := filepath.Join(dir, newFile) + + return newPath, nil +} + +// shaFileID return the first 8 bytes of the SHA1 hash of the file, +// hex-encoded +func shaFileID(path string) (string, error) { + fi, err := os.Open(path) + if err != nil { + return "", err + } + defer fi.Close() + + h := sha256.New() + if _, err := io.Copy(h, fi); err != nil { + return "", err + } + + sum := h.Sum(nil) + encodedSum := base64.RawURLEncoding.EncodeToString(sum[:8]) + return encodedSum, nil +} + +// get gets the value associated with the `key`. Returns `ErrNoSuchKey` +func (s *kvStorage) get(key string) (string, error) { + s.RLock() + defer s.RUnlock() + + val, ok := s.data[key] + if !ok { + return "", ErrNoSuchKey + } + + return val, nil +} + +// getAll gets the snapshot of the current storage contents +func (s *kvStorage) getAll() map[string]string { + s.RLock() + defer s.RUnlock() + + return copyMap(s.data) +} + +// add adds the `val` value to the storage with the specified `key`. Replaces the +// original value if `key` already exists +func (s *kvStorage) add(key, val string) error { + s.Lock() + defer s.Unlock() + + // save original data + oldVal, oldOk := s.data[key] + + s.data[key] = val + + // try to persist data, fall back to original data on error + if err := s.flush(); err != nil { + if !oldOk { + delete(s.data, key) + } else { + s.data[key] = oldVal + } + + return err + } + + return nil +} + +// remove removes the value associated with the `key`. Returns `ErrNoSuchKey` +func (s *kvStorage) remove(key string) error { + s.Lock() + defer s.Unlock() + + if _, ok := s.data[key]; !ok { + return ErrNoSuchKey + } + + // save original data + oldVal := s.data[key] + + delete(s.data, key) + + // try to persist data, fall back to original data on error + if err := s.flush(); err != nil { + s.data[key] = oldVal + + return err + } + + return nil +} + +// flush persists data to file +func (s *kvStorage) flush() error { + return file.SaveJSON(s.fn, s.data, 0600) +} diff --git a/vendor/github.com/skycoin/skycoin/src/kvstorage/manager.go b/vendor/github.com/skycoin/skycoin/src/kvstorage/manager.go new file mode 100644 index 000000000..5508fc986 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/kvstorage/manager.go @@ -0,0 +1,252 @@ +package kvstorage + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "strings" + "sync" + + "github.com/skycoin/skycoin/src/util/file" + "github.com/skycoin/skycoin/src/util/logging" +) + +// Type is a type of a key-value storage +type Type string + +const ( + // TypeTxIDNotes is a type of storage containing transaction notes + TypeTxIDNotes Type = "txid" + // TypeGeneral is a type of storage for general user data + TypeGeneral Type = "client" +) + +const storageFileExtension = ".json" + +var ( + // ErrStorageAPIDisabled is returned while trying to do storage actions while + // the EnableStorageAPI option is false + ErrStorageAPIDisabled = NewError(errors.New("Storage API is disabled")) + // ErrNoSuchStorage is returned if no storage with the specified storage type loaded + ErrNoSuchStorage = NewError(errors.New("Storage with such type is not loaded")) + // ErrStorageAlreadyLoaded is returned while trying to load already loaded storage + ErrStorageAlreadyLoaded = NewError(errors.New("Storage with such type is already loaded")) + // ErrUnknownKVStorageType is returned while trying to access the storage of the unknown type + ErrUnknownKVStorageType = NewError(errors.New("Unknown storage type")) + + logger = logging.MustGetLogger("kvstorage") +) + +// Manager is a manager for key-value storage instances +type Manager struct { + config Config + storages map[Type]*kvStorage + sync.Mutex +} + +// NewManager constructs new manager according to the config +func NewManager(c Config) (*Manager, error) { + logger.Info("Creating new KVStorage manager") + + m := &Manager{ + config: c, + storages: make(map[Type]*kvStorage), + } + + if !strings.HasSuffix(m.config.StorageDir, "/") { + m.config.StorageDir += "/" + } + + if !m.config.EnableStorageAPI { + logger.Info("KVStorage is disabled") + return m, nil + } + + if err := os.MkdirAll(m.config.StorageDir, os.FileMode(0700)); err != nil { + return nil, fmt.Errorf("failed to create kvstorage directory %s: %v", m.config.StorageDir, err) + } + + for _, t := range m.config.EnabledStorages { + if err := m.LoadStorage(t); err != nil { + return nil, err + } + } + + return m, nil +} + +// LoadStorage loads a new storage instance for the `storageType` +// into the manager. Returns `ErrStorageAlreadyLoaded`, `ErrStorageAPIDisabled`, +// `ErrUnknownKVStorageType` +func (m *Manager) LoadStorage(storageType Type) error { + if !isStorageTypeValid(storageType) { + return ErrUnknownKVStorageType + } + + m.Lock() + defer m.Unlock() + + if !m.config.EnableStorageAPI { + return ErrStorageAPIDisabled + } + + if m.storageExists(storageType) { + return ErrStorageAlreadyLoaded + } + + fn := m.getStorageFilePath(storageType) + + exists, err := file.Exists(fn) + if err != nil { + return fmt.Errorf("Manager.LoadStorage file.Exists failed: %v", err) + } + if !exists { + if err := initEmptyStorage(fn); err != nil { + return fmt.Errorf("Manager.LoadStorage initEmptyStorage failed: %v", err) + } + } + + storage, err := newKVStorage(fn) + if err != nil { + return err + } + + m.storages[storageType] = storage + + return nil +} + +// UnloadStorage unloads the storage instance for the given `storageType` from the manager. +// Returns `ErrNoSuchStorage`, `ErrStorageAPIDisabled`, `ErrUnknownKVStorageType` +func (m *Manager) UnloadStorage(storageType Type) error { + if !isStorageTypeValid(storageType) { + return ErrUnknownKVStorageType + } + + m.Lock() + defer m.Unlock() + + if !m.config.EnableStorageAPI { + return ErrStorageAPIDisabled + } + + if !m.storageExists(storageType) { + return ErrNoSuchStorage + } + + delete(m.storages, storageType) + + return nil +} + +// GetStorageValue gets the value associated with the `key` from the storage of `storageType. +// Returns `ErrNoSuchStorage`, `ErrStorageAPIDisabled`, `ErrUnknownKVStorageType` +func (m *Manager) GetStorageValue(storageType Type, key string) (string, error) { + if !isStorageTypeValid(storageType) { + return "", ErrUnknownKVStorageType + } + + m.Lock() + defer m.Unlock() + + if !m.config.EnableStorageAPI { + return "", ErrStorageAPIDisabled + } + + if !m.storageExists(storageType) { + return "", ErrNoSuchStorage + } + + return m.storages[storageType].get(key) +} + +// GetAllStorageValues gets the snapshot of the current contents from storage of `storageType`. +// Returns `ErrNoSuchStorage`, `ErrStorageAPIDisabled`, `ErrUnknownKVStorageType` +func (m *Manager) GetAllStorageValues(storageType Type) (map[string]string, error) { + if !isStorageTypeValid(storageType) { + return nil, ErrUnknownKVStorageType + } + + m.Lock() + defer m.Unlock() + + if !m.config.EnableStorageAPI { + return nil, ErrStorageAPIDisabled + } + + if !m.storageExists(storageType) { + return nil, ErrNoSuchStorage + } + + return m.storages[storageType].getAll(), nil +} + +// AddStorageValue adds the `val` with the associated `key` to the storage of `storageType`. +// Returns `ErrNoSuchStorage`, `ErrStorageAPIDisabled`, `ErrUnknownKVStorageType` +func (m *Manager) AddStorageValue(storageType Type, key, val string) error { + if !isStorageTypeValid(storageType) { + return ErrUnknownKVStorageType + } + + m.Lock() + defer m.Unlock() + + if !m.config.EnableStorageAPI { + return ErrStorageAPIDisabled + } + + if !m.storageExists(storageType) { + return ErrNoSuchStorage + } + + return m.storages[storageType].add(key, val) +} + +// RemoveStorageValue removes the value with the associated `key` from the storage of `storageType`. +// Returns `ErrNoSuchStorage`, `ErrStorageAPIDisabled`, `ErrUnknownKVStorageType` +func (m *Manager) RemoveStorageValue(storageType Type, key string) error { + if !isStorageTypeValid(storageType) { + return ErrUnknownKVStorageType + } + + m.Lock() + defer m.Unlock() + + if !m.config.EnableStorageAPI { + return ErrStorageAPIDisabled + } + + if !m.storageExists(storageType) { + return ErrNoSuchStorage + } + + return m.storages[storageType].remove(key) +} + +// storageExists checks whether the storage of `storageType` exists in the manager +func (m *Manager) storageExists(storageType Type) bool { + _, ok := m.storages[storageType] + + return ok +} + +// getStorageFilePath creates the path to the storage of `storageType` in file system +func (m *Manager) getStorageFilePath(storageType Type) string { + return filepath.Join(m.config.StorageDir, fmt.Sprintf("%s%s", storageType, storageFileExtension)) +} + +// isStorageTypeValid validates the given `storageType` against the predefined available types +func isStorageTypeValid(storageType Type) bool { + switch storageType { + case TypeTxIDNotes, TypeGeneral: + return true + } + + return false +} + +// initEmptyStorage creates a file to persist data +func initEmptyStorage(fn string) error { + return file.SaveJSON(fn, map[string]string{}, 0600) +} diff --git a/vendor/github.com/skycoin/skycoin/src/kvstorage/manager_config.go b/vendor/github.com/skycoin/skycoin/src/kvstorage/manager_config.go new file mode 100644 index 000000000..82c68a9ff --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/kvstorage/manager_config.go @@ -0,0 +1,15 @@ +package kvstorage + +// Config is a configuration for storage manager +type Config struct { + StorageDir string + EnabledStorages []Type + EnableStorageAPI bool +} + +// NewConfig creates a default config. +func NewConfig() Config { + return Config{ + StorageDir: "./data/", + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/kvstorage/map.go b/vendor/github.com/skycoin/skycoin/src/kvstorage/map.go new file mode 100644 index 000000000..3df52771a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/kvstorage/map.go @@ -0,0 +1,12 @@ +package kvstorage + +// Copy copies the map contents to the new map +func copyMap(data map[string]string) map[string]string { + copied := make(map[string]string, len(data)) + + for k, v := range data { + copied[k] = v + } + + return copied +} diff --git a/vendor/github.com/skycoin/skycoin/src/params/distribution.go b/vendor/github.com/skycoin/skycoin/src/params/distribution.go new file mode 100644 index 000000000..b0cf58985 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/params/distribution.go @@ -0,0 +1,153 @@ +package params + +import ( + "errors" + + "github.com/skycoin/skycoin/src/cipher" +) + +// Distribution parameters define the initial coin distribution and unlocking schedule +type Distribution struct { + // MaxCoinSupply is the maximum supply of coins + MaxCoinSupply uint64 + // InitialUnlockedCount is the initial number of unlocked addresses + InitialUnlockedCount uint64 + // UnlockAddressRate is the number of addresses to unlock per unlock time interval + UnlockAddressRate uint64 + // UnlockTimeInterval is the distribution address unlock time interval, measured in seconds + // Once the InitialUnlockedCount is exhausted, + // UnlockAddressRate addresses will be unlocked per UnlockTimeInterval + UnlockTimeInterval uint64 + + // Addresses are the distribution addresses that received coins in the + // first block after the genesis block + Addresses []string + addressesDecoded []cipher.Address +} + +// MustValidate validates Distribution parameters, panics on error +func (d *Distribution) MustValidate() { + if err := d.Validate(); err != nil { + panic(err) + } +} + +// Validate validates Distribution parameters +func (d *Distribution) Validate() error { + if d.InitialUnlockedCount > uint64(len(d.Addresses)) { + return errors.New("unlocked addresses > total distribution addresses") + } + + if d.MaxCoinSupply%uint64(len(d.Addresses)) != 0 { + return errors.New("MaxCoinSupply should be perfectly divisible by len(addresses)") + } + + if err := d.decodeAddresses(); err != nil { + return err + } + + return nil +} + +// AddressInitialBalance is the initial balance of each distribution address +func (d *Distribution) AddressInitialBalance() uint64 { + return d.MaxCoinSupply / uint64(len(d.Addresses)) +} + +// UnlockedAddresses returns distribution addresses that are unlocked, i.e. they have spendable outputs +func (d *Distribution) UnlockedAddresses() []string { + // The first InitialUnlockedCount (25) addresses are unlocked by default. + // Subsequent addresses will be unlocked at a rate of UnlockAddressRate (5) per year, + // after the InitialUnlockedCount (25) addresses have no remaining balance. + // The unlock timer will be enabled manually once the + // InitialUnlockedCount (25) addresses are distributed. + + // NOTE: To have automatic unlocking, transaction verification would have + // to be handled in visor rather than in coin.Transactions.Visor(), because + // the coin package is agnostic to the state of the blockchain and cannot reference it. + // Instead of automatic unlocking, we can hardcode the timestamp at which the first 30% + // is distributed, then compute the unlocked addresses easily here. + + addrs := make([]string, d.InitialUnlockedCount) + copy(addrs[:], d.Addresses[:d.InitialUnlockedCount]) + return addrs +} + +// LockedAddresses returns distribution addresses that are locked, i.e. they have unspendable outputs +func (d *Distribution) LockedAddresses() []string { + // TODO -- once we reach 30% distribution, we can hardcode the + // initial timestamp for releasing more coins + addrs := make([]string, d.numLocked()) + copy(addrs, d.Addresses[d.InitialUnlockedCount:]) + return addrs +} + +// AddressesDecoded returns a copy of the hardcoded distribution addresses array. +// Each address has 1,000,000 coins. There are 100 addresses. +func (d *Distribution) AddressesDecoded() []cipher.Address { + d.mustDecodeAddresses() + addrs := make([]cipher.Address, len(d.addressesDecoded)) + copy(addrs, d.addressesDecoded) + return addrs +} + +// UnlockedAddressesDecoded returns distribution addresses that are unlocked, i.e. they have spendable outputs +func (d *Distribution) UnlockedAddressesDecoded() []cipher.Address { + // The first d.InitialUnlockedCount (25) addresses are unlocked by default. + // Subsequent addresses will be unlocked at a rate of UnlockAddressRate (5) per year, + // after the d.InitialUnlockedCount (25) addresses have no remaining balance. + // The unlock timer will be enabled manually once the + // d.InitialUnlockedCount (25) addresses are distributed. + + // NOTE: To have automatic unlocking, transaction verification would have + // to be handled in visor rather than in coin.Transactions.Visor(), because + // the coin package is agnostic to the state of the blockchain and cannot reference it. + // Instead of automatic unlocking, we can hardcode the timestamp at which the first 30% + // is distributed, then compute the unlocked addresses easily here. + d.mustDecodeAddresses() + addrs := make([]cipher.Address, d.InitialUnlockedCount) + copy(addrs[:], d.addressesDecoded[:d.InitialUnlockedCount]) + return addrs +} + +// LockedAddressesDecoded returns distribution addresses that are locked, i.e. they have unspendable outputs +func (d *Distribution) LockedAddressesDecoded() []cipher.Address { + // TODO -- once we reach 30% distribution, we can hardcode the + // initial timestamp for releasing more coins + d.mustDecodeAddresses() + addrs := make([]cipher.Address, d.numLocked()) + copy(addrs, d.addressesDecoded[d.InitialUnlockedCount:]) + return addrs +} + +func (d *Distribution) numLocked() uint64 { + n := uint64(len(d.Addresses)) + if n < d.InitialUnlockedCount { + panic("number of distribution addresses is less than InitialUnlockedCount") + } + return n - d.InitialUnlockedCount +} + +func (d *Distribution) decodeAddresses() error { + if len(d.addressesDecoded) == len(d.Addresses) { + return nil + } + + decodedAddrs := make([]cipher.Address, len(d.Addresses)) + for i, a := range d.Addresses { + var err error + decodedAddrs[i], err = cipher.DecodeBase58Address(a) + if err != nil { + return err + } + } + + d.addressesDecoded = decodedAddrs + return nil +} + +func (d *Distribution) mustDecodeAddresses() { + if err := d.decodeAddresses(); err != nil { + panic(err) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/params/droplet.go b/vendor/github.com/skycoin/skycoin/src/params/droplet.go new file mode 100644 index 000000000..577a9ed6a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/params/droplet.go @@ -0,0 +1,34 @@ +package params + +import ( + "errors" + + "github.com/skycoin/skycoin/src/util/droplet" +) + +var ( + // ErrInvalidDecimals is returned by DropletPrecisionCheck if a coin amount has an invalid number of decimal places + ErrInvalidDecimals = errors.New("invalid amount, too many decimal places") +) + +// DropletPrecisionToDivisor converts number of allowed decimal places to the modulus divisor used when checking droplet precision rules +func DropletPrecisionToDivisor(precision uint8) uint64 { + if precision > droplet.Exponent { + panic("precision must be <= droplet.Exponent") + } + + n := droplet.Exponent - precision + var i uint64 = 1 + for k := uint8(0); k < n; k++ { + i = i * 10 + } + return i +} + +// DropletPrecisionCheck checks if an amount of coins is valid given decimal place restrictions +func DropletPrecisionCheck(precision uint8, amount uint64) error { + if amount%DropletPrecisionToDivisor(precision) != 0 { + return ErrInvalidDecimals + } + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/params/init.go b/vendor/github.com/skycoin/skycoin/src/params/init.go new file mode 100644 index 000000000..7ff9b2ae2 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/params/init.go @@ -0,0 +1,78 @@ +package params + +import ( + "fmt" + "os" + "strconv" + + "github.com/skycoin/skycoin/src/util/droplet" +) + +func init() { + loadUserBurnFactor() + loadUserMaxTransactionSize() + loadUserMaxDecimals() + sanityCheck() +} + +func sanityCheck() { + if err := UserVerifyTxn.Validate(); err != nil { + panic(err) + } + + MainNetDistribution.MustValidate() +} + +func loadUserBurnFactor() { + xs := os.Getenv("USER_BURN_FACTOR") + if xs == "" { + return + } + + x, err := strconv.ParseUint(xs, 10, 32) + if err != nil { + panic(fmt.Sprintf("Invalid USER_BURN_FACTOR %q: %v", xs, err)) + } + + if x < uint64(MinBurnFactor) { + panic(fmt.Sprintf("USER_BURN_FACTOR must be >= %d", MinBurnFactor)) + } + + UserVerifyTxn.BurnFactor = uint32(x) +} + +func loadUserMaxTransactionSize() { + xs := os.Getenv("USER_MAX_TXN_SIZE") + if xs == "" { + return + } + + x, err := strconv.ParseUint(xs, 10, 32) + if err != nil { + panic(fmt.Sprintf("Invalid USER_MAX_TXN_SIZE %q: %v", xs, err)) + } + + if x < uint64(MinTransactionSize) { + panic(fmt.Sprintf("USER_MAX_TXN_SIZE must be >= %d", MinTransactionSize)) + } + + UserVerifyTxn.MaxTransactionSize = uint32(x) +} + +func loadUserMaxDecimals() { + xs := os.Getenv("USER_MAX_DECIMALS") + if xs == "" { + return + } + + x, err := strconv.ParseUint(xs, 10, 8) + if err != nil { + panic(fmt.Sprintf("Invalid USER_MAX_DECIMALS %q: %v", xs, err)) + } + + if x > uint64(droplet.Exponent) { + panic(fmt.Sprintf("USER_MAX_DECIMALS must be <= %d", droplet.Exponent)) + } + + UserVerifyTxn.MaxDropletPrecision = uint8(x) +} diff --git a/vendor/github.com/skycoin/skycoin/src/params/params.go b/vendor/github.com/skycoin/skycoin/src/params/params.go new file mode 100644 index 000000000..7ae26c12d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/params/params.go @@ -0,0 +1,128 @@ +package params + +/* +CODE GENERATED AUTOMATICALLY WITH FIBER COIN CREATOR +AVOID EDITING THIS MANUALLY +*/ + +var ( + // MainNetDistribution Skycoin mainnet coin distribution parameters + MainNetDistribution = Distribution{ + MaxCoinSupply: 100000000, + InitialUnlockedCount: 25, + UnlockAddressRate: 5, + UnlockTimeInterval: 31536000, + Addresses: []string{ + "R6aHqKWSQfvpdo2fGSrq4F1RYXkBWR9HHJ", + "2EYM4WFHe4Dgz6kjAdUkM6Etep7ruz2ia6h", + "25aGyzypSA3T9K6rgPUv1ouR13efNPtWP5m", + "ix44h3cojvN6nqGcdpy62X7Rw6Ahnr3Thk", + "AYV8KEBEAPCg8a59cHgqHMqYHP9nVgQDyW", + "2Nu5Jv5Wp3RYGJU1EkjWFFHnebxMx1GjfkF", + "2THDupTBEo7UqB6dsVizkYUvkKq82Qn4gjf", + "tWZ11Nvor9parjg4FkwxNVcby59WVTw2iL", + "m2joQiJRZnj3jN6NsoKNxaxzUTijkdRoSR", + "8yf8PAQqU2cDj8Yzgz3LgBEyDqjvCh2xR7", + "sgB3n11ZPUYHToju6TWMpUZTUcKvQnoFMJ", + "2UYPbDBnHUEc67e7qD4eXtQQ6zfU2cyvAvk", + "wybwGC9rhm8ZssBuzpy5goXrAdE31MPdsj", + "JbM25o7kY7hqJZt3WGYu9pHZFCpA9TCR6t", + "2efrft5Lnwjtk7F1p9d7BnPd72zko2hQWNi", + "Syzmb3MiMoiNVpqFdQ38hWgffHg86D2J4e", + "2g3GUmTQooLrNHaRDhKtLU8rWLz36Beow7F", + "D3phtGr9iv6238b3zYXq6VgwrzwvfRzWZQ", + "gpqsFSuMCZmsjPc6Rtgy1FmLx424tH86My", + "2EUF3GPEUmfocnUc1w6YPtqXVCy3UZA4rAq", + "TtAaxB3qGz5zEAhhiGkBY9VPV7cekhvRYS", + "2fM5gVpi7XaiMPm4i29zddTNkmrKe6TzhVZ", + "ix3NDKgxfYYANKAb5kbmwBYXPrkAsha7uG", + "2RkPshpFFrkuaP98GprLtgHFTGvPY5e6wCK", + "Ak1qCDNudRxZVvcW6YDAdD9jpYNNStAVqm", + "2eZYSbzBKJ7QCL4kd5LSqV478rJQGb4UNkf", + "KPfqM6S96WtRLMuSy4XLfVwymVqivdcDoM", + "5B98bU1nsedGJBdRD5wLtq7Z8t8ZXio8u5", + "2iZWk5tmBynWxj2PpAFyiZzEws9qSnG3a6n", + "XUGdPaVnMh7jtzPe3zkrf9FKh5nztFnQU5", + "hSNgHgewJme8uaHrEuKubHYtYSDckD6hpf", + "2DeK765jLgnMweYrMp1NaYHfzxumfR1PaQN", + "orrAssY5V2HuQAbW9K6WktFrGieq2m23pr", + "4Ebf4PkG9QEnQTm4MVvaZvJV6Y9av3jhgb", + "7Uf5xJ3GkiEKaLxC2WmJ1t6SeekJeBdJfu", + "oz4ytDKbCqpgjW3LPc52pW2CaK2gxCcWmL", + "2ex5Z7TufQ5Z8xv5mXe53fSQRfUr35SSo7Q", + "WV2ap7ZubTxeDdmEZ1Xo7ufGMkekLWikJu", + "ckCTV4r1pNuz6j2VBRHhaJN9HsCLY7muLV", + "MXJx96ZJVSjktgeYZpVK8vn1H3xWP8ooq5", + "wyQVmno9aBJZmQ99nDSLoYWwp7YDJCWsrH", + "2cc9wKxCsFNRkoAQDAoHke3ZoyL1mSV14cj", + "29k9g3F5AYfVaa1joE1PpZjBED6hQXes8Mm", + "2XPLzz4ZLf1A9ykyTCjW5gEmVjnWa8CuatH", + "iH7DqqojTgUn2JxmY9hgFp165Nk7wKfan9", + "RJzzwUs3c9C8Y7NFYzNfFoqiUKeBhBfPki", + "2W2cGyiCRM4nwmmiGPgMuGaPGeBzEm7VZPn", + "ALJVNKYL7WGxFBSriiZuwZKWD4b7fbV1od", + "tBaeg9zE2sgmw5ZQENaPPYd6jfwpVpGTzS", + "2hdTw5Hk3rsgpZjvk8TyKcCZoRVXU5QVrUt", + "A1QU6jKq8YgTP79M8fwZNHUZc7hConFKmy", + "q9RkXoty3X1fuaypDDRUi78rWgJWYJMmpJ", + "2Xvm6is5cAPA85xnSYXDuAqiRyoXiky5RaD", + "4CW2CPJEzxhn2PS4JoSLoWGL5QQ7dL2eji", + "24EG6uTzL7DHNzcwsygYGRR1nfu5kco7AZ1", + "KghGnWw5fppTrqHSERXZf61yf7GkuQdCnV", + "2WojewRA3LbpyXTP9ANy8CZqJMgmyNm3MDr", + "2BsMfywmGV3M2CoDA112Rs7ZBkiMHfy9X11", + "kK1Q4gPyYfVVMzQtAPRzL8qXMqJ67Y7tKs", + "28J4mx8xfUtM92DbQ6i2Jmqw5J7dNivfroN", + "gQvgyG1djgtftoCVrSZmsRxr7okD4LheKw", + "3iFGBKapAWWzbiGFSr5ScbhrEPm6Esyvia", + "NFW2akQH2vu7AqkQXxFz2P5vkXTWkSqrSm", + "2MQJjLnWRp9eHh6MpCwpiUeshhtmri12mci", + "2QjRQUMyL6iodtHP9zKmxCNYZ7k3jxtk49C", + "USdfKy7B6oFNoauHWMmoCA7ND9rHqYw2Mf", + "cA49et9WtptYHf6wA1F8qqVgH3kS5jJ9vK", + "qaJT9TjcMi46sTKcgwRQU8o5Lw2Ea1gC4N", + "22pyn5RyhqtTQu4obYjuWYRNNw4i54L8xVr", + "22dkmukC6iH4FFLBmHne6modJZZQ3MC9BAT", + "z6CJZfYLvmd41GRVE8HASjRcy5hqbpHZvE", + "GEBWJ2KpRQDBTCCtvnaAJV2cYurgXS8pta", + "oS8fbEm82cprmAeineBeDkaKd7QownDZQh", + "rQpAs1LVQdphyj9ipEAuukAoj9kNpSP8cM", + "6NSJKsPxmqipGAfFFhUKbkopjrvEESTX3j", + "cuC68ycVXmD2EBzYFNYQ6akhKGrh3FGjSf", + "bw4wtYU8toepomrhWP2p8UFYfHBbvEV425", + "HvgNmDz5jD39Gwmi9VfDY1iYMhZUpZ8GKz", + "SbApuZAYquWP3Q6iD51BcMBQjuApYEkRVf", + "2Ugii5yxJgLzC59jV1vF8GK7UBZdvxwobeJ", + "21N2iJ1qnQRiJWcEqNRxXwfNp8QcmiyhtPy", + "9TC4RGs6AtFUsbcVWnSoCdoCpSfM66ALAc", + "oQzn55UWG4iMcY9bTNb27aTnRdfiGHAwbD", + "2GCdwsRpQhcf8SQcynFrMVDM26Bbj6sgv9M", + "2NRFe7REtSmaM2qAgZeG45hC8EtVGV2QjeB", + "25RGnhN7VojHUTvQBJA9nBT5y1qTQGULMzR", + "26uCBDfF8E2PJU2Dzz2ysgKwv9m4BhodTz9", + "Wkvima5cF7DDFdmJQqcdq8Syaq9DuAJJRD", + "286hSoJYxvENFSHwG51ZbmKaochLJyq4ERQ", + "FEGxF3HPoM2HCWHn82tyeh9o7vEQq5ySGE", + "h38DxNxGhWGTq9p5tJnN5r4Fwnn85Krrb6", + "2c1UU8J6Y3kL4cmQh21Tj8wkzidCiZxwdwd", + "2bJ32KuGmjmwKyAtzWdLFpXNM6t83CCPLq5", + "2fi8oLC9zfVVGnzzQtu3Y3rffS65Hiz6QHo", + "TKD93RxFr2Am44TntLiJQus4qcEwTtvEEQ", + "zMDywYdGEDtTSvWnCyc3qsYHWwj9ogws74", + "25NbotTka7TwtbXUpSCQD8RMgHKspyDubXJ", + "2ayCELBERubQWH5QxUr3cTxrYpidvUAzsSw", + "RMTCwLiYDKEAiJu5ekHL1NQ8UKHi5ozCPg", + "ejJjiCwp86ykmFr5iTJ8LxQXJ2wJPTYmkm", + }, + } + + // UserVerifyTxn transaction verification parameters for user-created transactions + UserVerifyTxn = VerifyTxn{ + // BurnFactor can be overriden with `USER_BURN_FACTOR` env var + BurnFactor: 10, + // MaxTransactionSize can be overriden with `USER_MAX_TXN_SIZE` env var + MaxTransactionSize: 32768, // in bytes + // MaxDropletPrecision can be overriden with `USER_MAX_DECIMALS` env var + MaxDropletPrecision: 3, + } +) diff --git a/vendor/github.com/skycoin/skycoin/src/params/verify_txn.go b/vendor/github.com/skycoin/skycoin/src/params/verify_txn.go new file mode 100644 index 000000000..4d5030f3f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/params/verify_txn.go @@ -0,0 +1,55 @@ +package params + +import ( + "errors" + + "github.com/skycoin/skycoin/src/util/droplet" +) + +const ( + // MinBurnFactor minimum value for BurnFactor + MinBurnFactor uint32 = 2 + // MinTransactionSize minimum value for MaxTransactionSize + MinTransactionSize uint32 = 1024 +) + +var ( + // ErrInvalidBurnFactor BurnFactor value is out of range + ErrInvalidBurnFactor = errors.New("BurnFactor value is out of range") + // ErrInvalidMaxTransactionSize MaxTransactionSize value is out of range + ErrInvalidMaxTransactionSize = errors.New("MaxTransactionSize value is out of range") + // ErrInvalidMaxDropletPrecision MaxDropletPrecision value is out of range + ErrInvalidMaxDropletPrecision = errors.New("MaxDropletPrecision value is out of range") +) + +// VerifyTxn are parameters for verifying a transaction +type VerifyTxn struct { + // BurnFactor inverse fraction of coinhours that must be burned + BurnFactor uint32 + // MaxTransactionSize maximum size of a transaction in bytes + MaxTransactionSize uint32 + // MaxDropletPrecision maximum decimal precision of droplets + MaxDropletPrecision uint8 +} + +// MaxDropletDivisor return the modulus divisor used when checking droplet precision rules +func (v VerifyTxn) MaxDropletDivisor() uint64 { + return DropletPrecisionToDivisor(v.MaxDropletPrecision) +} + +// Validate validates the configured parameters +func (v VerifyTxn) Validate() error { + if v.BurnFactor < MinBurnFactor { + return ErrInvalidBurnFactor + } + + if v.MaxTransactionSize < MinTransactionSize { + return ErrInvalidMaxTransactionSize + } + + if v.MaxDropletPrecision > droplet.Exponent { + return ErrInvalidMaxDropletPrecision + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/block.go b/vendor/github.com/skycoin/skycoin/src/readable/block.go new file mode 100644 index 000000000..560b7ac5c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/block.go @@ -0,0 +1,145 @@ +/* +Package readable defines JSON-tagged struct representations of internal binary data structures, +for use by the API and CLI. +*/ +package readable + +import ( + "errors" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" +) + +// BlockHeader represents the readable block header +type BlockHeader struct { + BkSeq uint64 `json:"seq"` + Hash string `json:"block_hash"` + PreviousHash string `json:"previous_block_hash"` + Time uint64 `json:"timestamp"` + Fee uint64 `json:"fee"` + Version uint32 `json:"version"` + BodyHash string `json:"tx_body_hash"` + UxHash string `json:"ux_hash"` +} + +// NewBlockHeader creates a readable block header +func NewBlockHeader(b coin.BlockHeader) BlockHeader { + return BlockHeader{ + BkSeq: b.BkSeq, + Hash: b.Hash().Hex(), + PreviousHash: b.PrevHash.Hex(), + Time: b.Time, + Fee: b.Fee, + Version: b.Version, + BodyHash: b.BodyHash.Hex(), + UxHash: b.UxHash.Hex(), + } +} + +// ToCoinBlockHeader converts BlockHeader back to coin.BlockHeader +func (bh BlockHeader) ToCoinBlockHeader() (coin.BlockHeader, error) { + prevHash, err := cipher.SHA256FromHex(bh.PreviousHash) + if err != nil { + return coin.BlockHeader{}, err + } + + bodyHash, err := cipher.SHA256FromHex(bh.BodyHash) + if err != nil { + return coin.BlockHeader{}, err + } + + uxHash, err := cipher.SHA256FromHex(bh.UxHash) + if err != nil { + return coin.BlockHeader{}, err + } + + headHash, err := cipher.SHA256FromHex(bh.Hash) + if err != nil { + return coin.BlockHeader{}, err + } + + cbh := coin.BlockHeader{ + Version: bh.Version, + Time: bh.Time, + BkSeq: bh.BkSeq, + Fee: bh.Fee, + PrevHash: prevHash, + BodyHash: bodyHash, + UxHash: uxHash, + } + + if cbh.Hash() != headHash { + return coin.BlockHeader{}, errors.New("readable.BlockHeader.Hash != recovered coin.BlockHeader.Hash()") + } + + return cbh, nil +} + +// BlockBody represents a readable block body +type BlockBody struct { + Transactions []Transaction `json:"txns"` +} + +// NewBlockBody creates a readable block body +func NewBlockBody(b coin.Block) (*BlockBody, error) { + txns := make([]Transaction, len(b.Body.Transactions)) + isGenesis := b.Head.BkSeq == 0 + for i := range b.Body.Transactions { + txn, err := NewTransaction(b.Body.Transactions[i], isGenesis) + if err != nil { + return nil, err + } + txns[i] = *txn + } + + return &BlockBody{ + Transactions: txns, + }, nil +} + +// Block represents a readable block +type Block struct { + Head BlockHeader `json:"header"` + Body BlockBody `json:"body"` + Size uint32 `json:"size"` +} + +// NewBlock creates a readable block +func NewBlock(b coin.Block) (*Block, error) { + body, err := NewBlockBody(b) + if err != nil { + return nil, err + } + + size, err := b.Size() + if err != nil { + return nil, err + } + + return &Block{ + Head: NewBlockHeader(b.Head), + Body: *body, + Size: size, + }, nil +} + +// Blocks an array of readable blocks. +type Blocks struct { + Blocks []Block `json:"blocks"` +} + +// NewBlocks converts []coin.SignedBlock to Blocks +func NewBlocks(blocks []coin.SignedBlock) (*Blocks, error) { + rbs := make([]Block, 0, len(blocks)) + for _, b := range blocks { + rb, err := NewBlock(b.Block) + if err != nil { + return nil, err + } + rbs = append(rbs, *rb) + } + return &Blocks{ + Blocks: rbs, + }, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/blockchain.go b/vendor/github.com/skycoin/skycoin/src/readable/blockchain.go new file mode 100644 index 000000000..baca02f9e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/blockchain.go @@ -0,0 +1,58 @@ +package readable + +import ( + "github.com/skycoin/skycoin/src/daemon" + "github.com/skycoin/skycoin/src/visor" +) + +// BlockchainMetadata encapsulates useful information from the coin.Blockchain +type BlockchainMetadata struct { + // Most recent block's header + Head BlockHeader `json:"head"` + // Number of unspent outputs in the coin.Blockchain + Unspents uint64 `json:"unspents"` + // Number of known unconfirmed txns + Unconfirmed uint64 `json:"unconfirmed"` +} + +// NewBlockchainMetadata creates blockchain metadata +func NewBlockchainMetadata(bm visor.BlockchainMetadata) BlockchainMetadata { + return BlockchainMetadata{ + Head: NewBlockHeader(bm.HeadBlock.Head), + Unspents: bm.Unspents, + Unconfirmed: bm.Unconfirmed, + } +} + +// BlockchainProgress is the current blockchain syncing status +type BlockchainProgress struct { + // Our current blockchain length + Current uint64 `json:"current"` + // Our best guess at true blockchain length + Highest uint64 `json:"highest"` + // Individual blockchain length reports from peers + Peers []PeerBlockchainHeight `json:"peers"` +} + +// PeerBlockchainHeight is a peer's IP address with their reported blockchain height +type PeerBlockchainHeight struct { + Address string `json:"address"` + Height uint64 `json:"height"` +} + +// NewBlockchainProgress copies daemon.BlockchainProgress to a struct with json tags +func NewBlockchainProgress(bp *daemon.BlockchainProgress) BlockchainProgress { + peers := make([]PeerBlockchainHeight, len(bp.Peers)) + for i, p := range bp.Peers { + peers[i] = PeerBlockchainHeight{ + Address: p.Address, + Height: p.Height, + } + } + + return BlockchainProgress{ + Current: bp.Current, + Highest: bp.Highest, + Peers: peers, + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/fiber.go b/vendor/github.com/skycoin/skycoin/src/readable/fiber.go new file mode 100644 index 000000000..cf4399eaf --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/fiber.go @@ -0,0 +1,17 @@ +package readable + +import "github.com/skycoin/skycoin/src/cipher/bip44" + +// FiberConfig is fiber configuration parameters +type FiberConfig struct { + Name string `json:"name"` + DisplayName string `json:"display_name"` + Ticker string `json:"ticker"` + CoinHoursName string `json:"coin_hours_display_name"` + CoinHoursNameSingular string `json:"coin_hours_display_name_singular"` + CoinHoursTicker string `json:"coin_hours_ticker"` + QrURIPrefix string `json:"qr_uri_prefix"` + ExplorerURL string `json:"explorer_url"` + VersionURL string `json:"version_url"` + Bip44Coin bip44.CoinType `json:"bip44_coin"` +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/network.go b/vendor/github.com/skycoin/skycoin/src/readable/network.go new file mode 100644 index 000000000..117632b5d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/network.go @@ -0,0 +1,73 @@ +package readable + +import ( + "github.com/skycoin/skycoin/src/daemon" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/util/useragent" +) + +// Connection a connection's state within the daemon +type Connection struct { + GnetID uint64 `json:"id"` + Addr string `json:"address"` + LastSent int64 `json:"last_sent"` + LastReceived int64 `json:"last_received"` + ConnectedAt int64 `json:"connected_at"` + Outgoing bool `json:"outgoing"` + State daemon.ConnectionState `json:"state"` + Mirror uint32 `json:"mirror"` + ListenPort uint16 `json:"listen_port"` + Height uint64 `json:"height"` + UserAgent useragent.Data `json:"user_agent"` + IsTrustedPeer bool `json:"is_trusted_peer"` + UnconfirmedVerifyTxn VerifyTxn `json:"unconfirmed_verify_transaction"` +} + +// NewConnection copies daemon.Connection to a struct with json tags +func NewConnection(c *daemon.Connection) Connection { + var lastSent int64 + var lastReceived int64 + var connectedAt int64 + + if !c.Gnet.LastSent.IsZero() { + lastSent = c.Gnet.LastSent.Unix() + } + if !c.Gnet.LastReceived.IsZero() { + lastReceived = c.Gnet.LastReceived.Unix() + } + if !c.ConnectedAt.IsZero() { + connectedAt = c.ConnectedAt.Unix() + } + + return Connection{ + GnetID: c.Gnet.ID, + Addr: c.Addr, + LastSent: lastSent, + LastReceived: lastReceived, + ConnectedAt: connectedAt, + Outgoing: c.Outgoing, + State: c.State, + Mirror: c.Mirror, + ListenPort: c.ListenPort, + Height: c.Height, + UserAgent: c.UserAgent, + IsTrustedPeer: c.Pex.Trusted, + UnconfirmedVerifyTxn: NewVerifyTxn(c.UnconfirmedVerifyTxn), + } +} + +// VerifyTxn transaction verification parameters +type VerifyTxn struct { + BurnFactor uint32 `json:"burn_factor"` + MaxTransactionSize uint32 `json:"max_transaction_size"` + MaxDropletPrecision uint8 `json:"max_decimals"` +} + +// NewVerifyTxn converts params.VerifyTxn to VerifyTxn +func NewVerifyTxn(p params.VerifyTxn) VerifyTxn { + return VerifyTxn{ + BurnFactor: p.BurnFactor, + MaxTransactionSize: p.MaxTransactionSize, + MaxDropletPrecision: p.MaxDropletPrecision, + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/output.go b/vendor/github.com/skycoin/skycoin/src/readable/output.go new file mode 100644 index 000000000..ab5e5580e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/output.go @@ -0,0 +1,298 @@ +package readable + +import ( + "errors" + "fmt" + "sort" + "strings" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/transaction" + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/util/mathutil" + "github.com/skycoin/skycoin/src/visor" + "github.com/skycoin/skycoin/src/visor/historydb" + "github.com/skycoin/skycoin/src/wallet" +) + +// UnspentOutput represents a readable output +type UnspentOutput struct { + Hash string `json:"hash"` + Time uint64 `json:"time"` + BkSeq uint64 `json:"block_seq"` + SourceTransaction string `json:"src_tx"` + Address string `json:"address"` + Coins string `json:"coins"` + Hours uint64 `json:"hours"` + CalculatedHours uint64 `json:"calculated_hours"` +} + +// NewUnspentOutput creates a readable output +func NewUnspentOutput(uxOut visor.UnspentOutput) (UnspentOutput, error) { + coinStr, err := droplet.ToString(uxOut.Body.Coins) + if err != nil { + return UnspentOutput{}, err + } + + return UnspentOutput{ + Hash: uxOut.Hash().Hex(), + Time: uxOut.Head.Time, + BkSeq: uxOut.Head.BkSeq, + SourceTransaction: uxOut.Body.SrcTransaction.Hex(), + Address: uxOut.Body.Address.String(), + Coins: coinStr, + Hours: uxOut.Body.Hours, + CalculatedHours: uxOut.CalculatedHours, + }, nil +} + +// UnspentOutputs slice of UnspentOutput +type UnspentOutputs []UnspentOutput + +// NewUnspentOutputs converts unspent outputs to a readable output +func NewUnspentOutputs(uxs []visor.UnspentOutput) (UnspentOutputs, error) { + rxReadables := make(UnspentOutputs, len(uxs)) + for i, ux := range uxs { + out, err := NewUnspentOutput(ux) + if err != nil { + return UnspentOutputs{}, err + } + + rxReadables[i] = out + } + + // Sort UnspentOutputs newest to oldest, using hash to break ties + sort.Slice(rxReadables, func(i, j int) bool { + if rxReadables[i].Time == rxReadables[j].Time { + return strings.Compare(rxReadables[i].Hash, rxReadables[j].Hash) < 0 + } + return rxReadables[i].Time > rxReadables[j].Time + }) + + return rxReadables, nil +} + +// Balance returns the balance in droplets +func (ros UnspentOutputs) Balance() (wallet.Balance, error) { + var bal wallet.Balance + for _, out := range ros { + coins, err := droplet.FromString(out.Coins) + if err != nil { + return wallet.Balance{}, err + } + + bal.Coins, err = mathutil.AddUint64(bal.Coins, coins) + if err != nil { + return wallet.Balance{}, err + } + + bal.Hours, err = mathutil.AddUint64(bal.Hours, out.CalculatedHours) + if err != nil { + return wallet.Balance{}, err + } + } + + return bal, nil +} + +// ToUxArray converts UnspentOutputs to coin.UxArray +func (ros UnspentOutputs) ToUxArray() (coin.UxArray, error) { + var uxs coin.UxArray + for _, o := range ros { + coins, err := droplet.FromString(o.Coins) + if err != nil { + return nil, err + } + + addr, err := cipher.DecodeBase58Address(o.Address) + if err != nil { + return nil, err + } + + srcTx, err := cipher.SHA256FromHex(o.SourceTransaction) + if err != nil { + return nil, err + } + + uxs = append(uxs, coin.UxOut{ + Head: coin.UxHead{ + Time: o.Time, + BkSeq: o.BkSeq, + }, + Body: coin.UxBody{ + SrcTransaction: srcTx, + Address: addr, + Coins: coins, + Hours: o.Hours, + }, + }) + } + + return uxs, nil +} + +// OutputsToUxBalances converts UnspentOutputs to []transaction.UxBalance +func OutputsToUxBalances(ros UnspentOutputs) ([]transaction.UxBalance, error) { + uxb := make([]transaction.UxBalance, len(ros)) + for i, ro := range ros { + if ro.Hash == "" { + return nil, errors.New("UnspentOutput missing hash") + } + + hash, err := cipher.SHA256FromHex(ro.Hash) + if err != nil { + return nil, fmt.Errorf("UnspentOutput hash is invalid: %v", err) + } + + coins, err := droplet.FromString(ro.Coins) + if err != nil { + return nil, fmt.Errorf("UnspentOutput coins is invalid: %v", err) + } + + addr, err := cipher.DecodeBase58Address(ro.Address) + if err != nil { + return nil, fmt.Errorf("UnspentOutput address is invalid: %v", err) + } + + srcTx, err := cipher.SHA256FromHex(ro.SourceTransaction) + if err != nil { + return nil, fmt.Errorf("UnspentOutput src_tx is invalid: %v", err) + } + + b := transaction.UxBalance{ + Hash: hash, + Time: ro.Time, + BkSeq: ro.BkSeq, + SrcTransaction: srcTx, + Address: addr, + Coins: coins, + Hours: ro.CalculatedHours, + InitialHours: ro.Hours, + } + + uxb[i] = b + } + + return uxb, nil +} + +// UnspentOutputsSummary records unspent outputs in different status. +type UnspentOutputsSummary struct { + Head BlockHeader `json:"head"` + // HeadOutputs are unspent outputs confirmed in the blockchain + HeadOutputs UnspentOutputs `json:"head_outputs"` + // OutgoingOutputs are unspent outputs being spent in unconfirmed transactions + OutgoingOutputs UnspentOutputs `json:"outgoing_outputs"` + // IncomingOutputs are unspent outputs being created by unconfirmed transactions + IncomingOutputs UnspentOutputs `json:"incoming_outputs"` +} + +// NewUnspentOutputsSummary creates an UnspentOutputsSummary from visor.UnspentOutputsSummary +func NewUnspentOutputsSummary(summary *visor.UnspentOutputsSummary) (*UnspentOutputsSummary, error) { + headOutputs, err := NewUnspentOutputs(summary.Confirmed) + if err != nil { + return nil, err + } + + outgoingOutputs, err := NewUnspentOutputs(summary.Outgoing) + if err != nil { + return nil, err + } + + incomingOutputs, err := NewUnspentOutputs(summary.Incoming) + if err != nil { + return nil, err + } + + return &UnspentOutputsSummary{ + Head: NewBlockHeader(summary.HeadBlock.Head), + HeadOutputs: headOutputs, + OutgoingOutputs: outgoingOutputs, + IncomingOutputs: incomingOutputs, + }, nil +} + +// SpendableOutputs subtracts OutgoingOutputs from HeadOutputs +func (os UnspentOutputsSummary) SpendableOutputs() UnspentOutputs { + if len(os.OutgoingOutputs) == 0 { + return os.HeadOutputs + } + + spending := make(map[string]struct{}, len(os.OutgoingOutputs)) + for _, u := range os.OutgoingOutputs { + spending[u.Hash] = struct{}{} + } + + var outs UnspentOutputs + for i := range os.HeadOutputs { + if _, ok := spending[os.HeadOutputs[i].Hash]; !ok { + outs = append(outs, os.HeadOutputs[i]) + } + } + return outs +} + +// ExpectedOutputs adds IncomingOutputs to SpendableOutputs +func (os UnspentOutputsSummary) ExpectedOutputs() UnspentOutputs { + return append(os.SpendableOutputs(), os.IncomingOutputs...) +} + +// SpentOutput is an unspent output that was spent +type SpentOutput struct { + Uxid string `json:"uxid"` + Time uint64 `json:"time"` + SrcBkSeq uint64 `json:"src_block_seq"` + SrcTx string `json:"src_tx"` + OwnerAddress string `json:"owner_address"` + Coins uint64 `json:"coins"` + Hours uint64 `json:"hours"` + CalculatedHours uint64 `json:"calculated_hours"` + SpentBlockSeq uint64 `json:"spent_block_seq"` // block seq that spent the output. + SpentTxnID string `json:"spent_tx"` // id of tx which spent this output. +} + +// NewSpentOutput creates a SpentOutput from historydb.UxOut +func NewSpentOutput(out *historydb.UxOut, t uint64) (*SpentOutput, error) { + calculatedHours := out.Out.Body.Hours + // calculate the coin hour if the uxout has not been used. + if out.SpentTxnID.Null() { + var err error + calculatedHours, err = out.Out.CoinHours(t) + // Treat overflowing coin hours calculations as a non-error and force hours to 0 + // This affects bad spent outputs which had overflowed hours, spent in knownBadBlockSeqs. + switch err { + case nil: + case coin.ErrAddEarnedCoinHoursAdditionOverflow: + calculatedHours = 0 + default: + return nil, err + } + } + + return &SpentOutput{ + Uxid: out.Hash().Hex(), + Time: out.Out.Head.Time, + SrcBkSeq: out.Out.Head.BkSeq, + SrcTx: out.Out.Body.SrcTransaction.Hex(), + OwnerAddress: out.Out.Body.Address.String(), + Coins: out.Out.Body.Coins, + CalculatedHours: calculatedHours, + Hours: out.Out.Body.Hours, + SpentBlockSeq: out.SpentBlockSeq, + SpentTxnID: out.SpentTxnID.Hex(), + }, nil +} + +// NewSpentOutputs creates []SpentOutput from []historydb.UxOut +func NewSpentOutputs(outs []historydb.UxOut, t uint64) ([]SpentOutput, error) { + spents := make([]SpentOutput, len(outs)) + for i, o := range outs { + spent, err := NewSpentOutput(&o, t) + if err != nil { + return nil, err + } + spents[i] = *spent + } + return spents, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/page.go b/vendor/github.com/skycoin/skycoin/src/readable/page.go new file mode 100644 index 000000000..c9f3e7cfb --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/page.go @@ -0,0 +1,8 @@ +package readable + +// PageInfo represents the pagination info +type PageInfo struct { + TotalPages uint64 `json:"total_pages"` + PageSize uint64 `json:"page_size"` + CurrentPage uint64 `json:"current_page"` +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/richlist.go b/vendor/github.com/skycoin/skycoin/src/readable/richlist.go new file mode 100644 index 000000000..4f87547da --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/richlist.go @@ -0,0 +1,32 @@ +package readable + +import ( + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/visor" +) + +// RichlistBalance holds info an address balance holder +type RichlistBalance struct { + Address string `json:"address"` + Coins string `json:"coins"` + Locked bool `json:"locked"` +} + +// NewRichlistBalances copies from visor.Richlist +func NewRichlistBalances(visorRichlist visor.Richlist) ([]RichlistBalance, error) { + richlist := make([]RichlistBalance, len(visorRichlist)) + for i, v := range visorRichlist { + coins, err := droplet.ToString(v.Coins) + if err != nil { + return nil, err + } + + richlist[i] = RichlistBalance{ + Address: v.Address.String(), + Coins: coins, + Locked: v.Locked, + } + } + + return richlist, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/transaction.go b/vendor/github.com/skycoin/skycoin/src/readable/transaction.go new file mode 100644 index 000000000..e5a2e0ed3 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/transaction.go @@ -0,0 +1,254 @@ +package readable + +import ( + "errors" + "fmt" + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/util/timeutil" + "github.com/skycoin/skycoin/src/visor" +) + +var logger = logging.MustGetLogger("readable") + +// TransactionStatus represents the transaction status +type TransactionStatus struct { + Confirmed bool `json:"confirmed"` + Unconfirmed bool `json:"unconfirmed"` + // If confirmed, how many blocks deep in the chain it is. Will be at least 1 if confirmed + Height uint64 `json:"height"` + // If confirmed, the sequence of the block in which the transaction was executed + BlockSeq uint64 `json:"block_seq"` +} + +// NewTransactionStatus creates TransactionStatus from visor.TransactionStatus +func NewTransactionStatus(status visor.TransactionStatus) TransactionStatus { + return TransactionStatus{ + Unconfirmed: !status.Confirmed, + Confirmed: status.Confirmed, + Height: status.Height, + BlockSeq: status.BlockSeq, + } +} + +// TransactionOutput readable transaction output +type TransactionOutput struct { + Hash string `json:"uxid"` + Address string `json:"dst"` + Coins string `json:"coins"` + Hours uint64 `json:"hours"` +} + +// TransactionInput readable transaction input +type TransactionInput struct { + Hash string `json:"uxid"` + Address string `json:"owner"` + Coins string `json:"coins"` + SrcTxid string `json:"src_txid"` + Hours uint64 `json:"hours"` + CalculatedHours uint64 `json:"calculated_hours"` +} + +// NewTransactionOutput creates a TransactionOutput +func NewTransactionOutput(txn *coin.TransactionOutput, txid cipher.SHA256) (*TransactionOutput, error) { + coinStr, err := droplet.ToString(txn.Coins) + if err != nil { + return nil, err + } + + return &TransactionOutput{ + Hash: txn.UxID(txid).Hex(), + Address: txn.Address.String(), + Coins: coinStr, + Hours: txn.Hours, + }, nil +} + +// NewTransactionInput creates a TransactionInput from a visor.TransactionInput +func NewTransactionInput(input visor.TransactionInput) (TransactionInput, error) { + coinStr, err := droplet.ToString(input.UxOut.Body.Coins) + if err != nil { + logger.Errorf("Failed to convert coins to string: %v", err) + return TransactionInput{}, err + } + + return TransactionInput{ + Hash: input.UxOut.Hash().Hex(), + Address: input.UxOut.Body.Address.String(), + Coins: coinStr, + Hours: input.UxOut.Body.Hours, + SrcTxid: input.UxOut.Body.SrcTransaction.Hex(), + CalculatedHours: input.CalculatedHours, + }, nil +} + +// Transaction represents a readable transaction +type Transaction struct { + Timestamp uint64 `json:"timestamp,omitempty"` + Length uint32 `json:"length"` + Type uint8 `json:"type"` + Hash string `json:"txid"` + InnerHash string `json:"inner_hash"` + + Sigs []string `json:"sigs"` + In []string `json:"inputs"` + Out []TransactionOutput `json:"outputs"` +} + +// NewTransaction creates a readable transaction +func NewTransaction(txn coin.Transaction, isGenesis bool) (*Transaction, error) { + if isGenesis && len(txn.In) != 0 { + return nil, errors.New("NewTransaction: isGenesis=true but Transaction.In is not empty") + } + if !isGenesis && len(txn.In) == 0 { + return nil, errors.New("NewTransaction: isGenesis=false but Transaction.In is empty") + } + + // Genesis transaction uses empty SHA256 as the txid for its outputs [FIXME: requires hardfork] + txID := txn.Hash() + txnOutputTxID := cipher.SHA256{} + if !isGenesis { + txnOutputTxID = txID + } + + sigs := make([]string, len(txn.Sigs)) + for i := range txn.Sigs { + sigs[i] = txn.Sigs[i].Hex() + } + + in := make([]string, len(txn.In)) + for i := range txn.In { + in[i] = txn.In[i].Hex() + } + + out := make([]TransactionOutput, len(txn.Out)) + for i := range txn.Out { + o, err := NewTransactionOutput(&txn.Out[i], txnOutputTxID) + if err != nil { + return nil, err + } + + out[i] = *o + } + + return &Transaction{ + Length: txn.Length, + Type: txn.Type, + Hash: txID.Hex(), + InnerHash: txn.InnerHash.Hex(), + + Sigs: sigs, + In: in, + Out: out, + }, nil +} + +// NewTransactionWithTimestamp creates a readable transaction with its timestamp set +func NewTransactionWithTimestamp(txn coin.Transaction, isGenesis bool, timestamp uint64) (*Transaction, error) { + newTxn, err := NewTransaction(txn, isGenesis) + if err != nil { + return nil, err + } + newTxn.Timestamp = timestamp + return newTxn, nil +} + +// UnconfirmedTransactions represents a readable unconfirmed transaction +type UnconfirmedTransactions struct { + Transaction Transaction `json:"transaction"` + Received time.Time `json:"received"` + Checked time.Time `json:"checked"` + Announced time.Time `json:"announced"` + IsValid bool `json:"is_valid"` +} + +// NewUnconfirmedTransaction creates a readable unconfirmed transaction +func NewUnconfirmedTransaction(unconfirmed *visor.UnconfirmedTransaction) (*UnconfirmedTransactions, error) { + isGenesis := false // unconfirmed transactions are never the genesis transaction + txn, err := NewTransaction(unconfirmed.Transaction, isGenesis) + if err != nil { + return nil, err + } + return &UnconfirmedTransactions{ + Transaction: *txn, + Received: timeutil.NanoToTime(unconfirmed.Received), + Checked: timeutil.NanoToTime(unconfirmed.Checked), + Announced: timeutil.NanoToTime(unconfirmed.Announced), + IsValid: unconfirmed.IsValid == 1, + }, nil +} + +// NewUnconfirmedTransactions converts []visor.UnconfirmedTransaction to []UnconfirmedTransactions +func NewUnconfirmedTransactions(txns []visor.UnconfirmedTransaction) ([]UnconfirmedTransactions, error) { + rut := make([]UnconfirmedTransactions, len(txns)) + for i := range txns { + txn, err := NewUnconfirmedTransaction(&txns[i]) + if err != nil { + return []UnconfirmedTransactions{}, err + } + rut[i] = *txn + } + return rut, nil +} + +// TransactionWithStatus represents transaction result +type TransactionWithStatus struct { + Status TransactionStatus `json:"status"` + Time uint64 `json:"time"` + Transaction Transaction `json:"txn"` +} + +// NewTransactionWithStatus converts visor.Transaction to TransactionWithStatus +func NewTransactionWithStatus(txn *visor.Transaction) (*TransactionWithStatus, error) { + if txn == nil { + return nil, nil + } + + isGenesis := txn.Status.BlockSeq == 0 && txn.Status.Confirmed + rbTxn, err := NewTransactionWithTimestamp(txn.Transaction, isGenesis, txn.Time) + if err != nil { + return nil, err + } + + return &TransactionWithStatus{ + Transaction: *rbTxn, + Status: NewTransactionStatus(txn.Status), + Time: txn.Time, + }, nil +} + +// TransactionWithStatusVerbose represents verbose transaction result +type TransactionWithStatusVerbose struct { + Status TransactionStatus `json:"status"` + Time uint64 `json:"time"` + Transaction TransactionVerbose `json:"txn"` +} + +// NewTransactionWithStatusVerbose converts visor.Transaction to TransactionWithStatusVerbose +func NewTransactionWithStatusVerbose(txn *visor.Transaction, inputs []visor.TransactionInput) (*TransactionWithStatusVerbose, error) { + if txn == nil { + return nil, nil + } + + if len(txn.Transaction.In) != len(inputs) { + return nil, fmt.Errorf("NewTransactionWithStatusVerbose: len(txn.In) != len(inputs) [%d != %d]", len(txn.Transaction.In), len(inputs)) + } + + rbTxn, err := NewTransactionVerbose(*txn, inputs) + if err != nil { + return nil, err + } + + // Force the Status field to be hidden on the inner transaction, to maintain API compatibility + rbTxn.Status = nil + + return &TransactionWithStatusVerbose{ + Transaction: rbTxn, + Status: NewTransactionStatus(txn.Status), + Time: txn.Time, + }, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/verbose.go b/vendor/github.com/skycoin/skycoin/src/readable/verbose.go new file mode 100644 index 000000000..073e8e2ce --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/verbose.go @@ -0,0 +1,258 @@ +package readable + +import ( + "errors" + "fmt" + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/util/mathutil" + "github.com/skycoin/skycoin/src/util/timeutil" + "github.com/skycoin/skycoin/src/visor" +) + +// BlockBodyVerbose represents a verbose readable block body +type BlockBodyVerbose struct { + Transactions []BlockTransactionVerbose `json:"txns"` +} + +// BlockVerbose represents a readable block with verbose data +type BlockVerbose struct { + Head BlockHeader `json:"header"` + Body BlockBodyVerbose `json:"body"` + Size uint32 `json:"size"` +} + +// NewBlockBodyVerbose creates a verbose readable block body +func NewBlockBodyVerbose(b coin.Block, inputs [][]visor.TransactionInput) (*BlockBodyVerbose, error) { + if len(inputs) != len(b.Body.Transactions) { + return nil, fmt.Errorf("NewBlockBodyVerbose: len(inputs) != len(b.Body.Transactions) (seq=%d)", b.Head.BkSeq) + } + + txns := make([]BlockTransactionVerbose, len(b.Body.Transactions)) + for i := range b.Body.Transactions { + t := b.Body.Transactions[i] + + txn, err := NewBlockTransactionVerbose(t, inputs[i], b.Head.BkSeq == 0) + if err != nil { + return nil, err + } + txns[i] = txn + } + + return &BlockBodyVerbose{ + Transactions: txns, + }, nil +} + +// NewBlockVerbose creates a verbose readable block +func NewBlockVerbose(b coin.Block, inputs [][]visor.TransactionInput) (*BlockVerbose, error) { + body, err := NewBlockBodyVerbose(b, inputs) + if err != nil { + return nil, err + } + + size, err := b.Size() + if err != nil { + return nil, err + } + + return &BlockVerbose{ + Head: NewBlockHeader(b.Head), + Body: *body, + Size: size, + }, nil +} + +// BlocksVerbose an array of verbose readable blocks. +type BlocksVerbose struct { + Blocks []BlockVerbose `json:"blocks"` +} + +// NewBlocksVerbose creates BlocksVerbose from []BlockVerbose +func NewBlocksVerbose(blocks []coin.SignedBlock, inputs [][][]visor.TransactionInput) (*BlocksVerbose, error) { + bs := make([]BlockVerbose, len(blocks)) + for i := range blocks { + if i >= len(inputs) { + return nil, errors.New("NewBlocksVerbose: not enough inputs for blocks") + } + + b, err := NewBlockVerbose(blocks[i].Block, inputs[i]) + if err != nil { + return nil, err + } + + bs[i] = *b + } + + return &BlocksVerbose{ + Blocks: bs, + }, nil +} + +// BlockTransactionVerbose has readable transaction data for transactions inside a block. It differs from Transaction +// in that it includes metadata for transaction inputs and the calculated coinhour fee spent by the block +type BlockTransactionVerbose struct { + Length uint32 `json:"length"` + Type uint8 `json:"type"` + Hash string `json:"txid"` + InnerHash string `json:"inner_hash"` + Fee uint64 `json:"fee"` + + Sigs []string `json:"sigs"` + In []TransactionInput `json:"inputs"` + Out []TransactionOutput `json:"outputs"` +} + +// NewBlockTransactionVerbose creates BlockTransactionVerbose +func NewBlockTransactionVerbose(txn coin.Transaction, inputs []visor.TransactionInput, isGenesis bool) (BlockTransactionVerbose, error) { + if len(inputs) != len(txn.In) { + return BlockTransactionVerbose{}, errors.New("NewBlockTransactionVerbose: len(inputs) != len(txn.In)") + } + + // Genesis transaction uses empty SHA256 as txid + // FIXME: If/when the blockchain is regenerated, use a real hash as the txID for the genesis block. The bkSeq argument can be removed then. + txID := cipher.SHA256{} + if !isGenesis { + txID = txn.Hash() + } + + sigs := make([]string, len(txn.Sigs)) + for i, s := range txn.Sigs { + sigs[i] = s.Hex() + } + + out := make([]TransactionOutput, len(txn.Out)) + for i := range txn.Out { + o, err := NewTransactionOutput(&txn.Out[i], txID) + if err != nil { + return BlockTransactionVerbose{}, err + } + + out[i] = *o + } + + var hoursIn uint64 + for _, i := range inputs { + if _, err := mathutil.AddUint64(hoursIn, i.CalculatedHours); err != nil { + logger.Critical().Warningf("Ignoring NewBlockTransactionVerbose summing txn %s input hours error: %v", txID.Hex(), err) + } + hoursIn += i.CalculatedHours + } + + var hoursOut uint64 + for _, o := range txn.Out { + if _, err := mathutil.AddUint64(hoursOut, o.Hours); err != nil { + logger.Critical().Warningf("Ignoring NewBlockTransactionVerbose summing txn %s outputs hours error: %v", txID.Hex(), err) + } + + hoursOut += o.Hours + } + + var fee uint64 + if isGenesis { + if hoursIn != 0 { + err := errors.New("NewBlockTransactionVerbose genesis block should have 0 input hours") + return BlockTransactionVerbose{}, err + } + + fee = 0 + } else { + if hoursIn < hoursOut { + err := fmt.Errorf("NewBlockTransactionVerbose input hours is less than output hours, txid=%s", txID.Hex()) + return BlockTransactionVerbose{}, err + } + + fee = hoursIn - hoursOut + } + + txnInputs := make([]TransactionInput, len(inputs)) + for i, input := range inputs { + var err error + txnInputs[i], err = NewTransactionInput(input) + if err != nil { + return BlockTransactionVerbose{}, err + } + } + + return BlockTransactionVerbose{ + Length: txn.Length, + Type: txn.Type, + Hash: txn.Hash().Hex(), + InnerHash: txn.InnerHash.Hex(), + Fee: fee, + + Sigs: sigs, + In: txnInputs, + Out: out, + }, nil +} + +// TransactionVerbose has readable transaction data. It adds TransactionStatus to a BlockTransactionVerbose +type TransactionVerbose struct { + Status *TransactionStatus `json:"status,omitempty"` + Timestamp uint64 `json:"timestamp,omitempty"` + BlockTransactionVerbose +} + +// NewTransactionVerbose creates TransactionVerbose +func NewTransactionVerbose(txn visor.Transaction, inputs []visor.TransactionInput) (TransactionVerbose, error) { + rb, err := NewBlockTransactionVerbose(txn.Transaction, inputs, txn.Status.BlockSeq == 0 && txn.Status.Confirmed) + if err != nil { + return TransactionVerbose{}, err + } + + status := NewTransactionStatus(txn.Status) + + return TransactionVerbose{ + Status: &status, + Timestamp: txn.Time, + BlockTransactionVerbose: rb, + }, nil +} + +// UnconfirmedTransactionVerbose represents a verbose readable unconfirmed transaction +type UnconfirmedTransactionVerbose struct { + Transaction BlockTransactionVerbose `json:"transaction"` + Received time.Time `json:"received"` + Checked time.Time `json:"checked"` + Announced time.Time `json:"announced"` + IsValid bool `json:"is_valid"` +} + +// NewUnconfirmedTransactionVerbose creates a verbose readable unconfirmed transaction +func NewUnconfirmedTransactionVerbose(unconfirmed *visor.UnconfirmedTransaction, inputs []visor.TransactionInput) (*UnconfirmedTransactionVerbose, error) { + isGenesis := false // The genesis transaction is never unconfirmed + txn, err := NewBlockTransactionVerbose(unconfirmed.Transaction, inputs, isGenesis) + if err != nil { + return nil, err + } + + return &UnconfirmedTransactionVerbose{ + Transaction: txn, + Received: timeutil.NanoToTime(unconfirmed.Received), + Checked: timeutil.NanoToTime(unconfirmed.Checked), + Announced: timeutil.NanoToTime(unconfirmed.Announced), + IsValid: unconfirmed.IsValid == 1, + }, nil +} + +// NewUnconfirmedTransactionsVerbose creates []UnconfirmedTransactions from []UnconfirmedTransaction and their readable transaction inputs +func NewUnconfirmedTransactionsVerbose(txns []visor.UnconfirmedTransaction, inputs [][]visor.TransactionInput) ([]UnconfirmedTransactionVerbose, error) { + if len(inputs) != len(txns) { + return nil, fmt.Errorf("NewUnconfirmedTransactionsVerbose: len(inputs) != len(txns)") + } + + rTxns := make([]UnconfirmedTransactionVerbose, len(txns)) + for i, txn := range txns { + rTxn, err := NewUnconfirmedTransactionVerbose(&txn, inputs[i]) + if err != nil { + return nil, err + } + + rTxns[i] = *rTxn + } + + return rTxns, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/version.go b/vendor/github.com/skycoin/skycoin/src/readable/version.go new file mode 100644 index 000000000..d85b1976d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/version.go @@ -0,0 +1,20 @@ +package readable + +import "github.com/blang/semver" + +// BuildInfo represents the build info +type BuildInfo struct { + Version string `json:"version"` // version number + Commit string `json:"commit"` // git commit id + Branch string `json:"branch"` // git branch name +} + +// Semver returns the parsed semver.Version of the configured Version string +func (b BuildInfo) Semver() (*semver.Version, error) { + sv, err := semver.Make(b.Version) + if err != nil { + return nil, err + } + + return &sv, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/readable/wallet.go b/vendor/github.com/skycoin/skycoin/src/readable/wallet.go new file mode 100644 index 000000000..0c482425e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/readable/wallet.go @@ -0,0 +1,70 @@ +package readable + +import ( + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/cipher/crypto" + "github.com/skycoin/skycoin/src/wallet" +) + +// Balance has coins and hours +type Balance struct { + Coins uint64 `json:"coins"` + Hours uint64 `json:"hours"` +} + +// NewBalance copies from wallet.Balance +func NewBalance(b wallet.Balance) Balance { + return Balance{ + Coins: b.Coins, + Hours: b.Hours, + } +} + +// BalancePair records the confirmed and predicted balance of an address +type BalancePair struct { + Confirmed Balance `json:"confirmed"` + Predicted Balance `json:"predicted"` // TODO rename "pending" +} + +// NewBalancePair copies from wallet.BalancePair +func NewBalancePair(bp wallet.BalancePair) BalancePair { + return BalancePair{ + Confirmed: NewBalance(bp.Confirmed), + Predicted: NewBalance(bp.Predicted), + } +} + +// AddressBalances represents a map of address balances +type AddressBalances map[string]BalancePair + +// NewAddressBalances copies from wallet.AddressBalances +func NewAddressBalances(wab wallet.AddressBalances) AddressBalances { + ab := make(AddressBalances, len(wab)) + for k, v := range wab { + ab[k] = NewBalancePair(v) + } + return ab +} + +// WalletEntry the wallet entry struct +type WalletEntry struct { + Address string `json:"address"` + Public string `json:"public_key"` + ChildNumber *uint32 `json:"child_number,omitempty"` // For bip32/44 + Change *uint32 `json:"change,omitempty"` // For bip44 +} + +// WalletMeta the wallet meta struct +type WalletMeta struct { + Coin wallet.CoinType `json:"coin"` + Filename string `json:"filename"` + Label string `json:"label"` + Type string `json:"type"` + Version string `json:"version"` + CryptoType crypto.CryptoType `json:"crypto_type"` + Timestamp int64 `json:"timestamp"` + Temp bool `json:"temp"` + Encrypted bool `json:"encrypted"` + Bip44Coin *bip44.CoinType `json:"bip44_coin,omitempty"` // For bip44 + XPub string `json:"xpub,omitempty"` // For xpub +} diff --git a/vendor/github.com/skycoin/skycoin/src/skycoin/config.go b/vendor/github.com/skycoin/skycoin/src/skycoin/config.go new file mode 100644 index 000000000..94eea79db --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/skycoin/config.go @@ -0,0 +1,773 @@ +package skycoin + +import ( + "errors" + "flag" + "fmt" + "math" + "os" + "path/filepath" + "runtime" + "strings" + "time" + + "github.com/skycoin/skycoin/src/cipher/crypto" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/fiber" + "github.com/skycoin/skycoin/src/kvstorage" + + "log" + + "github.com/skycoin/skycoin/src/api" + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/util/file" + "github.com/skycoin/skycoin/src/util/useragent" +) + +var ( + help = false +) + +// Config records skycoin node and build config +type Config struct { + Node NodeConfig + Build readable.BuildInfo +} + +// NodeConfig records the node's configuration +type NodeConfig struct { + // Name of the coin + CoinName string + + // Disable peer exchange + DisablePEX bool + // Download peer list + DownloadPeerList bool + // Download the peers list from this URL + PeerListURL string + // Don't make any outgoing connections + DisableOutgoingConnections bool + // Don't allowing incoming connections + DisableIncomingConnections bool + // Disables networking altogether + DisableNetworking bool + // Enable GUI + EnableGUI bool + // Disable CSRF check in the wallet API + DisableCSRF bool + // Disable Host, Origin and Referer header check in the wallet API + DisableHeaderCheck bool + // Disable CSP disable content-security-policy in http response + DisableCSP bool + // Comma separated list of API sets enabled on the remote web interface + EnabledAPISets string + // Comma separated list of API sets disabled on the remote web interface + DisabledAPISets string + // Enable all of API sets. Applies before disabling individual sets + EnableAllAPISets bool + + enabledAPISets map[string]struct{} + // Comma separate list of hostnames to accept in the Host header, used to bypass the Host header check which only applies to localhost addresses + HostWhitelist string + hostWhitelist []string + + // Only run on localhost and only connect to others on localhost + LocalhostOnly bool + // Which address to serve on. Leave blank to automatically assign to a + // public interface + Address string + // gnet uses this for TCP incoming and outgoing + Port int + // MaxConnections is the maximum number of total connections allowed + MaxConnections int + // Maximum outgoing connections to maintain + MaxOutgoingConnections int + // Maximum incoming connections to maintain + MaxIncomingConnections int + // Maximum default outgoing connections + MaxDefaultPeerOutgoingConnections int + // How often to make outgoing connections + OutgoingConnectionsRate time.Duration + // MaxOutgoingMessageLength maximum size of outgoing messages + MaxOutgoingMessageLength int + // MaxIncomingMessageLength maximum size of incoming messages + MaxIncomingMessageLength int + // MaxLastBlocksCount maximum number of blocks to response to API /api/v1/last_blocks + MaxLastBlocksCount uint64 + // PeerlistSize represents the maximum number of peers that the pex would maintain + PeerlistSize int + // Wallet Address Version + // AddressVersion string + // Remote web interface + WebInterface bool + // Remote web interface port + WebInterfacePort int + // Remote web interface address + WebInterfaceAddr string + // Remote web interface certificate + WebInterfaceCert string + // Remote web interface key + WebInterfaceKey string + // Remote web interface HTTPS support + WebInterfaceHTTPS bool + // Remote web interface username and password + WebInterfaceUsername string + WebInterfacePassword string + // Allow web interface auth without HTTPS + WebInterfacePlaintextAuth bool + + // Launch System Default Browser after client startup + LaunchBrowser bool + + // Data directory holds app data -- defaults to ~/.skycoin + DataDirectory string + // GUI directory contains assets for the HTML interface + GUIDirectory string + + // Timeouts for the HTTP listener + HTTPReadTimeout time.Duration + HTTPWriteTimeout time.Duration + HTTPIdleTimeout time.Duration + + // Remark to include in user agent sent in the wire protocol introduction + UserAgentRemark string + userAgent useragent.Data + + // Logging + ColorLog bool + // This is the value registered with flag, it is converted to LogLevel after parsing + LogLevel string + // Disable "Reply to ping", "Received pong" log messages + DisablePingPong bool + + // Verify the database integrity after loading + VerifyDB bool + // Reset the database if integrity checks fail, and continue running + ResetCorruptDB bool + + // Transaction verification parameters for unconfirmed transactions + UnconfirmedVerifyTxn params.VerifyTxn + // Transaction verification parameters for transactions when creating blocks + CreateBlockVerifyTxn params.VerifyTxn + // Maximum total size of transactions in a block + MaxBlockTransactionsSize uint32 + + unconfirmedBurnFactor uint64 + maxUnconfirmedTransactionSize uint64 + unconfirmedMaxDropletPrecision uint64 + createBlockBurnFactor uint64 + createBlockMaxTransactionSize uint64 + createBlockMaxDropletPrecision uint64 + maxBlockSize uint64 + + // Wallets + // Defaults to ${DataDirectory}/wallets/ + WalletDirectory string + // Wallet crypto type + WalletCryptoType string + + // Key-value storage + // Default to ${DataDirectory}/data + KVStorageDirectory string + EnabledStorageTypes []kvstorage.Type + + // Disable the hardcoded default peers + DisableDefaultPeers bool + // Load custom peers from disk + CustomPeersFile string + + RunBlockPublisher bool + + /* Developer options */ + + // Enable cpu profiling + ProfileCPU bool + // Where the file is written to + ProfileCPUFile string + // Enable HTTP profiling interface (see http://golang.org/pkg/net/http/pprof/) + HTTPProf bool + // Expose HTTP profiling on this interface + HTTPProfHost string + + DBPath string + DBReadOnly bool + LogToFile bool + Version bool // show node version + + GenesisSignatureStr string + GenesisAddressStr string + BlockchainPubkeyStr string + BlockchainSeckeyStr string + GenesisTimestamp uint64 + GenesisCoinVolume uint64 + DefaultConnections []string + + genesisSignature cipher.Sig + genesisAddress cipher.Address + genesisHash cipher.SHA256 + + blockchainPubkey cipher.PubKey + blockchainSeckey cipher.SecKey + + Fiber readable.FiberConfig +} + +// NewNodeConfig returns a new node config instance +func NewNodeConfig(mode string, node fiber.NodeConfig) NodeConfig { + nodeConfig := NodeConfig{ + CoinName: node.CoinName, + GenesisSignatureStr: node.GenesisSignatureStr, + GenesisAddressStr: node.GenesisAddressStr, + GenesisCoinVolume: node.GenesisCoinVolume, + GenesisTimestamp: node.GenesisTimestamp, + BlockchainPubkeyStr: node.BlockchainPubkeyStr, + BlockchainSeckeyStr: node.BlockchainSeckeyStr, + DefaultConnections: node.DefaultConnections, + // Disable peer exchange + DisablePEX: false, + // Don't make any outgoing connections + DisableOutgoingConnections: false, + // Don't allowing incoming connections + DisableIncomingConnections: false, + // Disables networking altogether + DisableNetworking: false, + // Enable GUI + EnableGUI: false, + // Disable CSRF check in the wallet API + DisableCSRF: false, + // Disable Host, Origin and Referer header check in the wallet API + DisableHeaderCheck: false, + // DisableCSP disable content-security-policy in http response + DisableCSP: false, + // Only run on localhost and only connect to others on localhost + LocalhostOnly: false, + // Which address to serve on. Leave blank to automatically assign to a + // public interface + Address: "", + // gnet uses this for TCP incoming and outgoing + Port: node.Port, + // MaxConnections is the maximum number of total connections allowed + MaxConnections: 128, + // MaxOutgoingConnections is the maximum outgoing connections allowed + MaxOutgoingConnections: 8, + // MaxIncomingConnections is the maximum incoming connections allowed + MaxIncomingConnections: 120, + // MaxDefaultOutgoingConnections is the maximum default outgoing connections allowed + MaxDefaultPeerOutgoingConnections: 2, + DownloadPeerList: true, + PeerListURL: node.PeerListURL, + // How often to make outgoing connections, in seconds + OutgoingConnectionsRate: time.Second * 5, + MaxOutgoingMessageLength: 256 * 1024, + MaxIncomingMessageLength: 1024 * 1024, + MaxLastBlocksCount: 256, + PeerlistSize: 65535, + // Wallet Address Version + // AddressVersion: "test", + // Remote web interface + WebInterface: true, + WebInterfacePort: node.WebInterfacePort, + WebInterfaceAddr: "127.0.0.1", + WebInterfaceCert: "", + WebInterfaceKey: "", + WebInterfaceHTTPS: false, + EnabledAPISets: strings.Join([]string{ + api.EndpointsRead, + api.EndpointsTransaction, + }, ","), + DisabledAPISets: "", + EnableAllAPISets: false, + + LaunchBrowser: false, + // Data directory holds app data + DataDirectory: node.DataDirectory, + // Web GUI static resources + GUIDirectory: "./src/gui/static/", + // Logging + ColorLog: true, + LogLevel: "INFO", + LogToFile: false, + DisablePingPong: false, + + VerifyDB: false, + ResetCorruptDB: false, + + // Blockchain/transaction validation + UnconfirmedVerifyTxn: params.VerifyTxn{ + BurnFactor: node.UnconfirmedBurnFactor, + MaxTransactionSize: node.UnconfirmedMaxTransactionSize, + MaxDropletPrecision: node.UnconfirmedMaxDropletPrecision, + }, + CreateBlockVerifyTxn: params.VerifyTxn{ + BurnFactor: node.CreateBlockBurnFactor, + MaxTransactionSize: node.CreateBlockMaxTransactionSize, + MaxDropletPrecision: node.CreateBlockMaxDropletPrecision, + }, + MaxBlockTransactionsSize: node.MaxBlockTransactionsSize, + + // Wallets + WalletDirectory: "", + WalletCryptoType: string(crypto.DefaultCryptoType), + + // Key-value storage + KVStorageDirectory: "", + EnabledStorageTypes: []kvstorage.Type{ + kvstorage.TypeTxIDNotes, + kvstorage.TypeGeneral, + }, + + // Timeout settings for http.Server + // https://blog.cloudflare.com/the-complete-guide-to-golang-net-http-timeouts/ + HTTPReadTimeout: time.Second * 10, + HTTPWriteTimeout: time.Second * 60, + HTTPIdleTimeout: time.Second * 120, + + RunBlockPublisher: false, + + // Enable cpu profiling + ProfileCPU: false, + // Where the file is written to + ProfileCPUFile: "cpu.prof", + // HTTP profiling interface (see http://golang.org/pkg/net/http/pprof/) + HTTPProf: false, + HTTPProfHost: "localhost:6060", + + Fiber: readable.FiberConfig{ + Name: node.CoinName, + DisplayName: node.DisplayName, + Ticker: node.Ticker, + CoinHoursName: node.CoinHoursName, + CoinHoursNameSingular: node.CoinHoursNameSingular, + CoinHoursTicker: node.CoinHoursTicker, + QrURIPrefix: node.QrURIPrefix, + ExplorerURL: node.ExplorerURL, + VersionURL: node.VersionURL, + Bip44Coin: node.Bip44Coin, + }, + } + + nodeConfig.applyConfigMode(mode) + + return nodeConfig +} + +func (c *Config) postProcess() error { + if help { + flag.Usage() + os.Exit(0) + } + + var err error + if c.Node.GenesisSignatureStr != "" { + c.Node.genesisSignature, err = cipher.SigFromHex(c.Node.GenesisSignatureStr) + panicIfError(err, "Invalid Signature") + } + + if c.Node.GenesisAddressStr != "" { + c.Node.genesisAddress, err = cipher.DecodeBase58Address(c.Node.GenesisAddressStr) + panicIfError(err, "Invalid Address") + } + + // Compute genesis block hash + gb, err := coin.NewGenesisBlock(c.Node.genesisAddress, c.Node.GenesisCoinVolume, c.Node.GenesisTimestamp) + if err != nil { + panicIfError(err, "Create genesis hash failed") + } + c.Node.genesisHash = gb.HashHeader() + + if c.Node.BlockchainPubkeyStr != "" { + c.Node.blockchainPubkey, err = cipher.PubKeyFromHex(c.Node.BlockchainPubkeyStr) + panicIfError(err, "Invalid Pubkey") + } + if c.Node.BlockchainSeckeyStr != "" { + c.Node.blockchainSeckey, err = cipher.SecKeyFromHex(c.Node.BlockchainSeckeyStr) + panicIfError(err, "Invalid Seckey") + c.Node.BlockchainSeckeyStr = "" + } + if c.Node.BlockchainSeckeyStr != "" { + c.Node.blockchainSeckey = cipher.SecKey{} + } + + home := file.UserHome() + c.Node.DataDirectory, err = file.InitDataDir(replaceHome(c.Node.DataDirectory, home)) + panicIfError(err, "Invalid DataDirectory") + + if c.Node.WebInterfaceCert == "" { + c.Node.WebInterfaceCert = filepath.Join(c.Node.DataDirectory, "skycoind.cert") + } else { + c.Node.WebInterfaceCert = replaceHome(c.Node.WebInterfaceCert, home) + } + + if c.Node.WebInterfaceKey == "" { + c.Node.WebInterfaceKey = filepath.Join(c.Node.DataDirectory, "skycoind.key") + } else { + c.Node.WebInterfaceKey = replaceHome(c.Node.WebInterfaceKey, home) + } + + if c.Node.WalletDirectory == "" { + c.Node.WalletDirectory = filepath.Join(c.Node.DataDirectory, "wallets") + } else { + c.Node.WalletDirectory = replaceHome(c.Node.WalletDirectory, home) + } + + if c.Node.KVStorageDirectory == "" { + c.Node.KVStorageDirectory = filepath.Join(c.Node.DataDirectory, "data") + } else { + c.Node.KVStorageDirectory = replaceHome(c.Node.KVStorageDirectory, home) + } + if len(c.Node.EnabledStorageTypes) == 0 { + c.Node.EnabledStorageTypes = []kvstorage.Type{ + kvstorage.TypeGeneral, + kvstorage.TypeTxIDNotes, + } + } + + if c.Node.DBPath == "" { + c.Node.DBPath = filepath.Join(c.Node.DataDirectory, "data.db") + } else { + c.Node.DBPath = replaceHome(c.Node.DBPath, home) + } + + userAgentData := useragent.Data{ + Coin: c.Node.CoinName, + Version: c.Build.Version, + Remark: c.Node.UserAgentRemark, + } + + if _, err := userAgentData.Build(); err != nil { + return err + } + + c.Node.userAgent = userAgentData + + apiSets, err := buildAPISets(c.Node) + if err != nil { + return err + } + + // Don't open browser to load wallets if wallet apis are disabled. + c.Node.enabledAPISets = apiSets + if _, ok := c.Node.enabledAPISets[api.EndpointsWallet]; !ok { + c.Node.EnableGUI = false + c.Node.LaunchBrowser = false + } + + if c.Node.EnableGUI { + c.Node.GUIDirectory = file.ResolveResourceDirectory(c.Node.GUIDirectory) + } + + if c.Node.DisableDefaultPeers { + c.Node.DefaultConnections = nil + } + + if c.Node.HostWhitelist != "" { + if c.Node.DisableHeaderCheck { + return errors.New("host whitelist should be empty when header check is disabled") + } + c.Node.hostWhitelist = strings.Split(c.Node.HostWhitelist, ",") + } + + httpAuthEnabled := c.Node.WebInterfaceUsername != "" || c.Node.WebInterfacePassword != "" + if httpAuthEnabled && !c.Node.WebInterfaceHTTPS && !c.Node.WebInterfacePlaintextAuth { + return errors.New("Web interface auth enabled but HTTPS is not enabled. Use -web-interface-plaintext-auth=true if this is desired") + } + + if c.Node.MaxConnections < c.Node.MaxOutgoingConnections+c.Node.MaxIncomingConnections { + return errors.New("-max-connections must be >= -max-outgoing-connections + -max-incoming-connections") + } + + if c.Node.MaxOutgoingConnections > c.Node.MaxConnections { + return errors.New("-max-outgoing-connections cannot be higher than -max-connections") + } + + if c.Node.MaxIncomingConnections > c.Node.MaxConnections { + return errors.New("-max-incoming-connections cannot be higher than -max-connections") + } + + if c.Node.maxBlockSize > math.MaxUint32 { + return errors.New("-max-block-size exceeds MaxUint32") + } + if c.Node.maxUnconfirmedTransactionSize > math.MaxUint32 { + return errors.New("-max-txn-size-unconfirmed exceeds MaxUint32") + } + if c.Node.unconfirmedBurnFactor > math.MaxUint32 { + return errors.New("-burn-factor-unconfirmed exceeds MaxUint32") + } + if c.Node.createBlockBurnFactor > math.MaxUint32 { + return errors.New("-burn-factor-create-block exceeds MaxUint32") + } + + if c.Node.unconfirmedMaxDropletPrecision > math.MaxUint8 { + return errors.New("-max-decimals-unconfirmed exceeds MaxUint8") + } + if c.Node.createBlockMaxDropletPrecision > math.MaxUint8 { + return errors.New("-max-decimals-create-block exceeds MaxUint8") + } + + if c.Node.MaxLastBlocksCount > math.MaxUint64 { + return fmt.Errorf("-max-last-blocks-count exceeds math.MaxUint64") + } + + c.Node.UnconfirmedVerifyTxn.BurnFactor = uint32(c.Node.unconfirmedBurnFactor) + c.Node.UnconfirmedVerifyTxn.MaxTransactionSize = uint32(c.Node.maxUnconfirmedTransactionSize) + c.Node.UnconfirmedVerifyTxn.MaxDropletPrecision = uint8(c.Node.unconfirmedMaxDropletPrecision) + c.Node.CreateBlockVerifyTxn.BurnFactor = uint32(c.Node.createBlockBurnFactor) + c.Node.CreateBlockVerifyTxn.MaxTransactionSize = uint32(c.Node.createBlockMaxTransactionSize) + c.Node.CreateBlockVerifyTxn.MaxDropletPrecision = uint8(c.Node.createBlockMaxDropletPrecision) + c.Node.MaxBlockTransactionsSize = uint32(c.Node.maxBlockSize) + + if c.Node.UnconfirmedVerifyTxn.MaxTransactionSize < params.MinTransactionSize { + return fmt.Errorf("-max-txn-size-unconfirmed must be >= params.MinTransactionSize (%d)", params.MinTransactionSize) + } + if c.Node.UnconfirmedVerifyTxn.MaxTransactionSize < params.UserVerifyTxn.MaxTransactionSize { + return fmt.Errorf("-max-txn-size-unconfirmed must be >= params.UserVerifyTxn.MaxTransactionSize (%d)", params.UserVerifyTxn.MaxTransactionSize) + } + if c.Node.CreateBlockVerifyTxn.MaxTransactionSize < params.MinTransactionSize { + return fmt.Errorf("-max-txn-size-create-block must be >= params.MinTransactionSize (%d)", params.MinTransactionSize) + } + if c.Node.CreateBlockVerifyTxn.MaxTransactionSize < params.UserVerifyTxn.MaxTransactionSize { + return fmt.Errorf("-max-txn-size-create-block must be >= params.UserVerifyTxn.MaxTransactionSize (%d)", params.UserVerifyTxn.MaxTransactionSize) + } + + if c.Node.MaxBlockTransactionsSize < params.MinTransactionSize { + return fmt.Errorf("-max-block-size must be >= params.MinTransactionSize (%d)", params.MinTransactionSize) + } + if c.Node.MaxBlockTransactionsSize < params.UserVerifyTxn.MaxTransactionSize { + return fmt.Errorf("-max-block-size must be >= params.UserVerifyTxn.MaxTransactionSize (%d)", params.UserVerifyTxn.MaxTransactionSize) + } + if c.Node.MaxBlockTransactionsSize < c.Node.UnconfirmedVerifyTxn.MaxTransactionSize { + return errors.New("-max-block-size must be >= -max-txn-size-unconfirmed") + } + if c.Node.MaxBlockTransactionsSize < c.Node.CreateBlockVerifyTxn.MaxTransactionSize { + return errors.New("-max-block-size must be >= -max-txn-size-create-block") + } + + if c.Node.UnconfirmedVerifyTxn.BurnFactor < params.MinBurnFactor { + return fmt.Errorf("-burn-factor-unconfirmed must be >= params.MinBurnFactor (%d)", params.MinBurnFactor) + } + if c.Node.UnconfirmedVerifyTxn.BurnFactor < params.UserVerifyTxn.BurnFactor { + return fmt.Errorf("-burn-factor-unconfirmed must be >= params.UserVerifyTxn.BurnFactor (%d)", params.UserVerifyTxn.BurnFactor) + } + + if c.Node.CreateBlockVerifyTxn.BurnFactor < params.MinBurnFactor { + return fmt.Errorf("-burn-factor-create-block must be >= params.MinBurnFactor (%d)", params.MinBurnFactor) + } + if c.Node.CreateBlockVerifyTxn.BurnFactor < params.UserVerifyTxn.BurnFactor { + return fmt.Errorf("-burn-factor-create-block must be >= params.UserVerifyTxn.BurnFactor (%d)", params.UserVerifyTxn.BurnFactor) + } + + if c.Node.UnconfirmedVerifyTxn.MaxDropletPrecision > droplet.Exponent { + return fmt.Errorf("-max-decimals-unconfirmed must be <= droplet.Exponent (%d)", droplet.Exponent) + } + if c.Node.UnconfirmedVerifyTxn.MaxDropletPrecision < params.UserVerifyTxn.MaxDropletPrecision { + return fmt.Errorf("-max-decimals-unconfirmed must be >= params.UserVerifyTxn.MaxDropletPrecision (%d)", params.UserVerifyTxn.MaxDropletPrecision) + } + + if c.Node.CreateBlockVerifyTxn.MaxDropletPrecision > droplet.Exponent { + return fmt.Errorf("-max-decimals-create-block must be <= droplet.Exponent (%d)", droplet.Exponent) + } + if c.Node.CreateBlockVerifyTxn.MaxDropletPrecision < params.UserVerifyTxn.MaxDropletPrecision { + return fmt.Errorf("-max-decimals-create-block must be >= params.UserVerifyTxn.MaxDropletPrecision (%d)", params.UserVerifyTxn.MaxDropletPrecision) + } + + return nil +} + +// buildAPISets builds the set of enable APIs by the following rules: +// * If EnableAll, all API sets are added +// * For each api set in EnabledAPISets, add +// * For each api set in DisabledAPISets, remove +func buildAPISets(c NodeConfig) (map[string]struct{}, error) { + enabledAPISets := strings.Split(c.EnabledAPISets, ",") + if err := validateAPISets("-enable-api-sets", enabledAPISets); err != nil { + return nil, err + } + + disabledAPISets := strings.Split(c.DisabledAPISets, ",") + if err := validateAPISets("-disable-api-sets", disabledAPISets); err != nil { + return nil, err + } + + apiSets := make(map[string]struct{}) + + allAPISets := []string{ + api.EndpointsRead, + api.EndpointsStatus, + api.EndpointsWallet, + api.EndpointsTransaction, + api.EndpointsNetCtrl, + api.EndpointsStorage, + // Do not include insecure or deprecated API sets, they must always + // be explicitly enabled through -enable-api-sets + } + + if c.EnableAllAPISets { + for _, s := range allAPISets { + apiSets[s] = struct{}{} + } + } + + // Add the enabled API sets + for _, k := range enabledAPISets { + apiSets[k] = struct{}{} + } + + // Remove the disabled API sets + for _, k := range disabledAPISets { + delete(apiSets, k) + } + + return apiSets, nil +} + +func validateAPISets(opt string, apiSets []string) error { + for _, k := range apiSets { + k = strings.ToUpper(strings.TrimSpace(k)) + switch k { + case api.EndpointsRead, + api.EndpointsStatus, + api.EndpointsTransaction, + api.EndpointsWallet, + api.EndpointsInsecureWalletSeed, + api.EndpointsNetCtrl, + api.EndpointsStorage: + case "": + continue + default: + return fmt.Errorf("Invalid value in %s: %q", opt, k) + } + } + return nil +} + +// RegisterFlags binds CLI flags to config values +func (c *NodeConfig) RegisterFlags() { + flag.BoolVar(&help, "help", false, "Show help") + flag.BoolVar(&c.DisablePEX, "disable-pex", c.DisablePEX, "disable PEX peer discovery") + flag.BoolVar(&c.DownloadPeerList, "download-peerlist", c.DownloadPeerList, "download a peers.txt from -peerlist-url") + flag.StringVar(&c.PeerListURL, "peerlist-url", c.PeerListURL, "with -download-peerlist=true, download a peers.txt file from this url") + flag.BoolVar(&c.DisableOutgoingConnections, "disable-outgoing", c.DisableOutgoingConnections, "Don't make outgoing connections") + flag.BoolVar(&c.DisableIncomingConnections, "disable-incoming", c.DisableIncomingConnections, "Don't allow incoming connections") + flag.BoolVar(&c.DisableNetworking, "disable-networking", c.DisableNetworking, "Disable all network activity") + flag.BoolVar(&c.EnableGUI, "enable-gui", c.EnableGUI, "Enable GUI") + flag.BoolVar(&c.DisableCSRF, "disable-csrf", c.DisableCSRF, "disable CSRF check") + flag.BoolVar(&c.DisableHeaderCheck, "disable-header-check", c.DisableHeaderCheck, "disables the host, origin and referer header checks.") + flag.BoolVar(&c.DisableCSP, "disable-csp", c.DisableCSP, "disable content-security-policy in http response") + flag.StringVar(&c.Address, "address", c.Address, "IP Address to run application on. Leave empty to default to a public interface") + flag.IntVar(&c.Port, "port", c.Port, "Port to run application on") + + flag.BoolVar(&c.WebInterface, "web-interface", c.WebInterface, "enable the web interface") + flag.IntVar(&c.WebInterfacePort, "web-interface-port", c.WebInterfacePort, "port to serve web interface on") + flag.StringVar(&c.WebInterfaceAddr, "web-interface-addr", c.WebInterfaceAddr, "addr to serve web interface on") + flag.StringVar(&c.WebInterfaceCert, "web-interface-cert", c.WebInterfaceCert, "skycoind.cert file for web interface HTTPS. If not provided, will autogenerate or use skycoind.cert in --data-dir") + flag.StringVar(&c.WebInterfaceKey, "web-interface-key", c.WebInterfaceKey, "skycoind.key file for web interface HTTPS. If not provided, will autogenerate or use skycoind.key in --data-dir") + flag.BoolVar(&c.WebInterfaceHTTPS, "web-interface-https", c.WebInterfaceHTTPS, "enable HTTPS for web interface") + flag.StringVar(&c.HostWhitelist, "host-whitelist", c.HostWhitelist, "Hostnames to whitelist in the Host header check. Only applies when the web interface is bound to localhost.") + + allAPISets := []string{ + api.EndpointsRead, + api.EndpointsStatus, + api.EndpointsWallet, + api.EndpointsTransaction, + api.EndpointsNetCtrl, + api.EndpointsInsecureWalletSeed, + api.EndpointsStorage, + } + flag.StringVar(&c.EnabledAPISets, "enable-api-sets", c.EnabledAPISets, fmt.Sprintf("enable API set. Options are %s. Multiple values should be separated by comma", strings.Join(allAPISets, ", "))) + flag.StringVar(&c.DisabledAPISets, "disable-api-sets", c.DisabledAPISets, fmt.Sprintf("disable API set. Options are %s. Multiple values should be separated by comma", strings.Join(allAPISets, ", "))) + flag.BoolVar(&c.EnableAllAPISets, "enable-all-api-sets", c.EnableAllAPISets, "enable all API sets, except for deprecated or insecure sets. This option is applied before -disable-api-sets.") + + flag.StringVar(&c.WebInterfaceUsername, "web-interface-username", c.WebInterfaceUsername, "username for the web interface") + flag.StringVar(&c.WebInterfacePassword, "web-interface-password", c.WebInterfacePassword, "password for the web interface") + flag.BoolVar(&c.WebInterfacePlaintextAuth, "web-interface-plaintext-auth", c.WebInterfacePlaintextAuth, "allow web interface auth without https") + + flag.BoolVar(&c.LaunchBrowser, "launch-browser", c.LaunchBrowser, "launch system default webbrowser at client startup") + flag.StringVar(&c.DataDirectory, "data-dir", c.DataDirectory, "directory to store app data (defaults to ~/.skycoin)") + flag.StringVar(&c.DBPath, "db-path", c.DBPath, "path of database file (defaults to ~/.skycoin/data.db)") + flag.BoolVar(&c.DBReadOnly, "db-read-only", c.DBReadOnly, "open bolt db read-only") + flag.BoolVar(&c.ProfileCPU, "profile-cpu", c.ProfileCPU, "enable cpu profiling") + flag.StringVar(&c.ProfileCPUFile, "profile-cpu-file", c.ProfileCPUFile, "where to write the cpu profile file") + flag.BoolVar(&c.HTTPProf, "http-prof", c.HTTPProf, "run the HTTP profiling interface") + flag.StringVar(&c.HTTPProfHost, "http-prof-host", c.HTTPProfHost, "hostname to bind the HTTP profiling interface to") + flag.StringVar(&c.LogLevel, "log-level", c.LogLevel, "Choices are: debug, info, warn, error, fatal, panic") + flag.BoolVar(&c.ColorLog, "color-log", c.ColorLog, "Add terminal colors to log output") + flag.BoolVar(&c.DisablePingPong, "no-ping-log", c.DisablePingPong, `disable "reply to ping" and "received pong" debug log messages`) + flag.BoolVar(&c.LogToFile, "logtofile", c.LogToFile, "log to file") + flag.StringVar(&c.GUIDirectory, "gui-dir", c.GUIDirectory, "static content directory for the HTML interface") + + flag.BoolVar(&c.VerifyDB, "verify-db", c.VerifyDB, "check the database for corruption") + flag.BoolVar(&c.ResetCorruptDB, "reset-corrupt-db", c.ResetCorruptDB, "reset the database if corrupted, and continue running instead of exiting") + + flag.BoolVar(&c.DisableDefaultPeers, "disable-default-peers", c.DisableDefaultPeers, "disable the hardcoded default peers") + flag.StringVar(&c.CustomPeersFile, "custom-peers-file", c.CustomPeersFile, "load custom peers from a newline separate list of ip:port in a file. Note that this is different from the peers.json file in the data directory") + + flag.StringVar(&c.UserAgentRemark, "user-agent-remark", c.UserAgentRemark, "additional remark to include in the user agent sent over the wire protocol") + + flag.Uint64Var(&c.maxUnconfirmedTransactionSize, "max-txn-size-unconfirmed", uint64(c.UnconfirmedVerifyTxn.MaxTransactionSize), "maximum size of an unconfirmed transaction") + flag.Uint64Var(&c.unconfirmedBurnFactor, "burn-factor-unconfirmed", uint64(c.UnconfirmedVerifyTxn.BurnFactor), "coinhour burn factor applied to unconfirmed transactions") + flag.Uint64Var(&c.unconfirmedMaxDropletPrecision, "max-decimals-unconfirmed", uint64(c.UnconfirmedVerifyTxn.MaxDropletPrecision), "max number of decimal places applied to unconfirmed transactions") + flag.Uint64Var(&c.createBlockBurnFactor, "burn-factor-create-block", uint64(c.CreateBlockVerifyTxn.BurnFactor), "coinhour burn factor applied when creating blocks") + flag.Uint64Var(&c.createBlockMaxTransactionSize, "max-txn-size-create-block", uint64(c.CreateBlockVerifyTxn.MaxTransactionSize), "maximum size of a transaction applied when creating blocks") + flag.Uint64Var(&c.createBlockMaxDropletPrecision, "max-decimals-create-block", uint64(c.CreateBlockVerifyTxn.MaxDropletPrecision), "max number of decimal places applied when creating blocks") + flag.Uint64Var(&c.maxBlockSize, "max-block-size", uint64(c.MaxBlockTransactionsSize), "maximum total size of transactions in a block") + flag.Uint64Var(&c.MaxLastBlocksCount, "max-last-blocks-count", c.MaxLastBlocksCount, "Maximum number of blocks to response for API /api/v1/last_blocks") + + flag.BoolVar(&c.RunBlockPublisher, "block-publisher", c.RunBlockPublisher, "run the daemon as a block publisher") + flag.StringVar(&c.BlockchainPubkeyStr, "blockchain-public-key", c.BlockchainPubkeyStr, "public key of the blockchain") + flag.StringVar(&c.BlockchainSeckeyStr, "blockchain-secret-key", c.BlockchainSeckeyStr, "secret key of the blockchain") + + flag.StringVar(&c.GenesisAddressStr, "genesis-address", c.GenesisAddressStr, "genesis address") + flag.StringVar(&c.GenesisSignatureStr, "genesis-signature", c.GenesisSignatureStr, "genesis block signature") + flag.Uint64Var(&c.GenesisTimestamp, "genesis-timestamp", c.GenesisTimestamp, "genesis block timestamp") + + flag.StringVar(&c.WalletDirectory, "wallet-dir", c.WalletDirectory, "location of the wallet files. Defaults to ~/.skycoin/wallet/") + flag.StringVar(&c.KVStorageDirectory, "storage-dir", c.KVStorageDirectory, "location of the storage data files. Defaults to ~/.skycoin/data/") + flag.IntVar(&c.MaxConnections, "max-connections", c.MaxConnections, "Maximum number of total connections allowed") + flag.IntVar(&c.MaxOutgoingConnections, "max-outgoing-connections", c.MaxOutgoingConnections, "Maximum number of outgoing connections allowed") + flag.IntVar(&c.MaxIncomingConnections, "max-incoming-connections", c.MaxIncomingConnections, "Maximum number of incoming connections allowd") + flag.IntVar(&c.MaxDefaultPeerOutgoingConnections, "max-default-peer-outgoing-connections", c.MaxDefaultPeerOutgoingConnections, "The maximum default peer outgoing connections allowed") + flag.IntVar(&c.PeerlistSize, "peerlist-size", c.PeerlistSize, "Max number of peers to track in peerlist") + flag.DurationVar(&c.OutgoingConnectionsRate, "connection-rate", c.OutgoingConnectionsRate, "How often to make an outgoing connection") + flag.IntVar(&c.MaxOutgoingMessageLength, "max-out-msg-len", c.MaxOutgoingMessageLength, "Maximum length of outgoing wire messages") + flag.IntVar(&c.MaxIncomingMessageLength, "max-in-msg-len", c.MaxIncomingMessageLength, "Maximum length of incoming wire messages") + flag.BoolVar(&c.LocalhostOnly, "localhost-only", c.LocalhostOnly, "Run on localhost and only connect to localhost peers") + flag.StringVar(&c.WalletCryptoType, "wallet-crypto-type", c.WalletCryptoType, "wallet crypto type. Can be sha256-xor or scrypt-chacha20poly1305") + flag.BoolVar(&c.Version, "version", false, "show node version") +} + +func (c *NodeConfig) applyConfigMode(configMode string) { + if runtime.GOOS == "windows" { + c.ColorLog = false + } + switch configMode { + case "": + case "STANDALONE_CLIENT": + c.EnableAllAPISets = true + c.EnabledAPISets = api.EndpointsInsecureWalletSeed + c.EnableGUI = true + c.LaunchBrowser = true + c.DisableCSRF = false + c.DisableHeaderCheck = false + c.DisableCSP = false + c.DownloadPeerList = true + c.WebInterface = true + c.LogToFile = false + c.ResetCorruptDB = true + c.WebInterfacePort = 0 // randomize web interface port + default: + panic("Invalid ConfigMode") + } +} + +func panicIfError(err error, msg string, args ...interface{}) { //nolint:unparam + if err != nil { + log.Panicf(msg+": %v", append(args, err)...) + } +} + +func replaceHome(path, home string) string { + return strings.Replace(path, "$HOME", home, 1) +} diff --git a/vendor/github.com/skycoin/skycoin/src/skycoin/db_check.go b/vendor/github.com/skycoin/skycoin/src/skycoin/db_check.go new file mode 100644 index 000000000..4fb33daf2 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/skycoin/db_check.go @@ -0,0 +1,165 @@ +package skycoin + +import ( + "fmt" + + "github.com/blang/semver" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/visor" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +type dbAction uint + +const ( + doNothing dbAction = iota + doCheckDB + doResetCorruptDB +) + +// dbCheckConfig contains the parameters for verifying db +type dbCheckConfig struct { + // ForceVerify force verify DB + ForceVerify bool + // ResetCorruptDB reset the DB if it is corrupted + ResetCorruptDB bool + // AppVersion is the current wallet version + AppVersion *semver.Version + // DBCheckpointVersion is the check point db version + DBCheckpointVersion *semver.Version +} + +//go:generate mockery -name dbCheckCorruptResetter -case underscore -inpkg -testonly +type dbCheckCorruptResetter interface { + CheckDatabase(db *dbutil.DB) error + ResetCorruptDB(db *dbutil.DB) (*dbutil.DB, error) + GetDBVersion(db *dbutil.DB) (*semver.Version, error) + SetDBVersion(db *dbutil.DB, v *semver.Version) error +} + +type dbVerify struct { + blockchainPubkey cipher.PubKey + logger *logging.Logger + quit chan struct{} +} + +func (dv dbVerify) CheckDatabase(db *dbutil.DB) error { + if err := visor.CheckDatabase(db, dv.blockchainPubkey, dv.quit); err != nil { + if err != visor.ErrVerifyStopped { + dv.logger.WithError(err).Error("visor.CheckDatabase failed") + } + return err + } + return nil +} + +func (dv *dbVerify) ResetCorruptDB(db *dbutil.DB) (*dbutil.DB, error) { + dv.logger.Info("Checking database and resetting if corrupted") + newDB, err := visor.ResetCorruptDB(db, dv.blockchainPubkey, dv.quit) + if err != nil { + if err != visor.ErrVerifyStopped { + dv.logger.WithError(err).Error("visor.ResetCorruptDB failed") + } + return nil, err + } + + return newDB, nil +} + +func (dv *dbVerify) SetDBVersion(db *dbutil.DB, v *semver.Version) error { + if err := visor.SetDBVersion(db, *v); err != nil { + if err != visor.ErrVerifyStopped { + dv.logger.WithError(err).Error("visor.ResetCorruptDB failed") + } + return err + } + return nil +} + +func (dv dbVerify) GetDBVersion(db *dbutil.DB) (*semver.Version, error) { + dbVersion, err := visor.GetDBVersion(db) + if err != nil { + dv.logger.WithError(err).Error("visor.GetDBVersion failed") + return nil, err + } + + if dbVersion == nil { + dv.logger.Info("DB version not found in DB") + } else { + dv.logger.Infof("DB version: %s", dbVersion) + } + return dbVersion, nil +} + +func checkAndUpdateDB(db *dbutil.DB, c dbCheckConfig, dv dbCheckCorruptResetter) (*dbutil.DB, error) { + dbVersion, err := dv.GetDBVersion(db) + if err != nil { + return nil, err + } + + action, err := checkDB(c, dbVersion) + if err != nil { + return nil, err + } + + switch action { + case doCheckDB: + if err := dv.CheckDatabase(db); err != nil { + return nil, err + } + case doResetCorruptDB: + // Check the database integrity and recreate it if necessary + newDB, err := dv.ResetCorruptDB(db) + if err != nil { + return nil, err + } + db = newDB + } + + // DB version won't be downgraded + if !db.IsReadOnly() { + if err := dv.SetDBVersion(db, c.AppVersion); err != nil { + return nil, err + } + } + + return db, nil +} + +// checkDB checks whether need to verify or reset the DB version +func checkDB(c dbCheckConfig, dbVersion *semver.Version) (dbAction, error) { + // If the saved DB version is higher than the app version, abort. + // Otherwise DB corruption could occur. + if dbVersion != nil && dbVersion.GT(*c.AppVersion) { + return doNothing, fmt.Errorf("Cannot use newer DB version=%v with older software version=%v", dbVersion, c.AppVersion) + } + + // Verify the DB if the version detection says to, or if it was requested on the command line + if shouldVerifyDB(c.AppVersion, dbVersion, c.DBCheckpointVersion) || c.ForceVerify { + if c.ResetCorruptDB { + return doResetCorruptDB, nil + } + + return doCheckDB, nil + } + + return doNothing, nil +} + +func shouldVerifyDB(appVersion, dbVersion, checkpointVersion *semver.Version) bool { + // If the dbVersion is not set, verify + if dbVersion == nil { + return true + } + + // If the dbVersion is less than the verification checkpoint version + // and the appVersion is greater than or equal to the checkpoint version, + // verify + if dbVersion.LT(*checkpointVersion) && appVersion.GTE(*checkpointVersion) { + return true + } + + return false +} diff --git a/vendor/github.com/skycoin/skycoin/src/skycoin/skycoin.go b/vendor/github.com/skycoin/skycoin/src/skycoin/skycoin.go new file mode 100644 index 000000000..bce47c704 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/skycoin/skycoin.go @@ -0,0 +1,617 @@ +/* +Package skycoin implements the main daemon cmd's configuration and setup +*/ +package skycoin + +import ( + "errors" + "fmt" + "io/ioutil" + "log" + "net/http" + "os" + "path/filepath" + "runtime" + "runtime/pprof" + "sync" + "time" + + "github.com/blang/semver" + "github.com/toqueteos/webbrowser" + + "github.com/skycoin/skycoin/src/api" + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/crypto" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/daemon" + "github.com/skycoin/skycoin/src/kvstorage" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/util/apputil" + "github.com/skycoin/skycoin/src/util/certutil" + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/visor" + "github.com/skycoin/skycoin/src/visor/dbutil" + "github.com/skycoin/skycoin/src/wallet" +) + +var ( + // DBVerifyCheckpointVersion is a checkpoint for determining if DB verification should be run. + // Any DB upgrading from less than this version to equal or higher than this version will be forced to verify. + // Update this version checkpoint if a newer version requires a new verification run. + DBVerifyCheckpointVersion = "0.27.1" + dbVerifyCheckpointVersionParsed semver.Version +) + +// Coin represents a fiber coin instance +type Coin struct { + config Config + logger *logging.Logger +} + +// Run starts the node +func (c *Coin) Run() error { + var db *dbutil.DB + var w *wallet.Service + var v *visor.Visor + var d *daemon.Daemon + var s *kvstorage.Manager + var gw *api.Gateway + var webInterface *api.Server + var retErr error + errC := make(chan error, 10) + + if c.config.Node.Version { + fmt.Println(c.config.Build.Version) + return nil + } + + logLevel, err := logging.LevelFromString(c.config.Node.LogLevel) + if err != nil { + err = fmt.Errorf("Invalid -log-level: %v", err) + c.logger.Error(err) + return err + } + + logging.SetLevel(logLevel) + + if c.config.Node.ColorLog { + logging.EnableColors() + } else { + logging.DisableColors() + } + + var logFile *os.File + if c.config.Node.LogToFile { + var err error + logFile, err = c.initLogFile() + if err != nil { + c.logger.Error(err) + return err + } + } + + var fullAddress string + scheme := "http" + if c.config.Node.WebInterfaceHTTPS { + scheme = "https" + } + host := fmt.Sprintf("%s:%d", c.config.Node.WebInterfaceAddr, c.config.Node.WebInterfacePort) + + if c.config.Node.ProfileCPU { + f, err := os.Create(c.config.Node.ProfileCPUFile) + if err != nil { + c.logger.Error(err) + return err + } + + if err := pprof.StartCPUProfile(f); err != nil { + c.logger.Error(err) + return err + } + defer pprof.StopCPUProfile() + } + + if c.config.Node.HTTPProf { + go func() { + if err := http.ListenAndServe(c.config.Node.HTTPProfHost, nil); err != nil { + c.logger.WithError(err).Errorf("Listen on HTTP profiling interface %s failed", c.config.Node.HTTPProfHost) + } + }() + } + + var wg sync.WaitGroup + + quit := make(chan struct{}) + + // Catch SIGINT (CTRL-C) (closes the quit channel) + go apputil.CatchInterrupt(quit) + + // Catch SIGUSR1 (prints runtime stack to stdout) + go apputil.CatchDebug() + + // Parse the current app version + appVersion, err := c.config.Build.Semver() + if err != nil { + c.logger.WithError(err).Errorf("Version %s is not a valid semver", c.config.Build.Version) + return err + } + + c.logger.Infof("App version: %s", appVersion) + c.logger.Infof("OS: %s", runtime.GOOS) + c.logger.Infof("Arch: %s", runtime.GOARCH) + + wconf := c.ConfigureWallet() + dconf := c.ConfigureDaemon() + vconf := c.ConfigureVisor() + sconf := c.ConfigureStorage() + + // Open the database + c.logger.Infof("Opening database %s", c.config.Node.DBPath) + db, err = visor.OpenDB(c.config.Node.DBPath, c.config.Node.DBReadOnly) + if err != nil { + c.logger.Errorf("Database failed to open: %v. Is another skycoin instance running?", err) + return err + } + + defer func() { + if db != nil { + c.logger.Info("Closing database") + if err := db.Close(); err != nil { + c.logger.WithError(err).Error("Failed to close DB") + } + } + + c.logger.Info("Goodbye") + + if logFile != nil { + if err := logFile.Close(); err != nil { + fmt.Println("Failed to close log file") + } + } + }() + + cf := dbCheckConfig{ + ForceVerify: c.config.Node.VerifyDB, + ResetCorruptDB: c.config.Node.ResetCorruptDB, + AppVersion: appVersion, + DBCheckpointVersion: &dbVerifyCheckpointVersionParsed, + } + + dv := dbVerify{ + blockchainPubkey: c.config.Node.blockchainPubkey, + logger: c.logger, + quit: quit, + } + + db, err = checkAndUpdateDB(db, cf, &dv) + if err != nil { + return err + } + + c.logger.Infof("Coinhour burn factor for user transactions is %d", params.UserVerifyTxn.BurnFactor) + c.logger.Infof("Max transaction size for user transactions is %d", params.UserVerifyTxn.MaxTransactionSize) + c.logger.Infof("Max decimals for user transactions is %d", params.UserVerifyTxn.MaxDropletPrecision) + + c.logger.Info("wallet.NewService") + w, err = wallet.NewService(wconf) + if err != nil { + c.logger.WithError(err).Error("wallet.NewService failed") + return err + } + + c.logger.Info("visor.New") + v, err = visor.New(vconf, db, w) + if err != nil { + c.logger.WithError(err).Error("visor.New failed") + return err + } + + c.logger.Info("daemon.New") + d, err = daemon.New(dconf, v) + if err != nil { + c.logger.WithError(err).Error("daemon.New failed") + return err + } + + c.logger.Info("kvstorage.NewManager") + s, err = kvstorage.NewManager(sconf) + if err != nil { + c.logger.WithError(err).Error("kvstorage.NewManager failed") + return err + } + + c.logger.Info("api.NewGateway") + gw = api.NewGateway(d, v, w, s) + + if c.config.Node.WebInterface { + webInterface, err = c.createGUI(gw, host) + if err != nil { + c.logger.WithError(err).Error("c.createGUI failed") + return err + } + + fullAddress = fmt.Sprintf("%s://%s", scheme, webInterface.Addr()) + c.logger.Critical().Infof("Full address: %s", fullAddress) + } + + c.logger.Info("visor.Init") + if err := v.Init(); err != nil { + c.logger.WithError(err).Error("visor.Init failed") + return err + } + + wg.Add(1) + go func() { + defer wg.Done() + + c.logger.Info("daemon.Run") + if err := d.Run(); err != nil { + c.logger.WithError(err).Error("daemon.Run failed") + errC <- err + } + }() + + if c.config.Node.WebInterface { + cancelLaunchBrowser := make(chan struct{}) + + wg.Add(1) + go func() { + defer wg.Done() + + c.logger.Info("webInterface.Serve") + if err := webInterface.Serve(); err != nil { + close(cancelLaunchBrowser) + c.logger.WithError(err).Error("webInterface.Serve failed") + errC <- err + } + }() + + if c.config.Node.LaunchBrowser { + go func() { + select { + case <-cancelLaunchBrowser: + c.logger.Warning("Browser launching canceled") + + // Wait a moment just to make sure the http interface is up + case <-time.After(time.Millisecond * 100): + c.logger.Infof("Launching System Browser with %s", fullAddress) + if err := webbrowser.Open(fullAddress); err != nil { + c.logger.WithError(err).Error("webbrowser.Open failed") + } + } + }() + } + } + + select { + case <-quit: + case retErr = <-errC: + c.logger.WithError(err).Error("Received error from errC (something prior has failed)") + } + + c.logger.Info("Shutting down...") + + if webInterface != nil { + c.logger.Info("Closing web interface") + webInterface.Shutdown() + } + + c.logger.Info("Closing daemon") + d.Shutdown() + + c.logger.Info("Waiting for goroutines to finish") + wg.Wait() + + return retErr +} + +// NewCoin returns a new fiber coin instance +func NewCoin(config Config, logger *logging.Logger) *Coin { + return &Coin{ + config: config, + logger: logger, + } +} + +func (c *Coin) initLogFile() (*os.File, error) { + logDir := filepath.Join(c.config.Node.DataDirectory, "logs") + if err := createDirIfNotExist(logDir); err != nil { + c.logger.WithError(err).Errorf("createDirIfNotExist(%s) failed", logDir) + return nil, fmt.Errorf("createDirIfNotExist(%s) failed: %v", logDir, err) + } + + // open log file + tf := "2006-01-02-030405" + logfile := filepath.Join(logDir, fmt.Sprintf("%s-v%s.log", time.Now().Format(tf), c.config.Build.Version)) + + f, err := os.OpenFile(logfile, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0600) + if err != nil { + c.logger.WithError(err).Errorf("os.OpenFile(%s) failed", logfile) + return nil, err + } + + hook := logging.NewWriteHook(f) + logging.AddHook(hook) + + return f, nil +} + +// ConfigureVisor sets the visor config values +func (c *Coin) ConfigureVisor() visor.Config { + vc := visor.NewConfig() + + vc.Distribution = params.MainNetDistribution + + vc.IsBlockPublisher = c.config.Node.RunBlockPublisher + vc.Arbitrating = c.config.Node.RunBlockPublisher + + vc.BlockchainPubkey = c.config.Node.blockchainPubkey + vc.BlockchainSeckey = c.config.Node.blockchainSeckey + + vc.UnconfirmedVerifyTxn = c.config.Node.UnconfirmedVerifyTxn + vc.CreateBlockVerifyTxn = c.config.Node.CreateBlockVerifyTxn + vc.MaxBlockTransactionsSize = c.config.Node.MaxBlockTransactionsSize + + vc.GenesisAddress = c.config.Node.genesisAddress + vc.GenesisSignature = c.config.Node.genesisSignature + vc.GenesisTimestamp = c.config.Node.GenesisTimestamp + vc.GenesisCoinVolume = c.config.Node.GenesisCoinVolume + + return vc +} + +// ConfigureWallet sets the wallet config values +func (c *Coin) ConfigureWallet() wallet.Config { + wc := wallet.NewConfig() + + wc.WalletDir = c.config.Node.WalletDirectory + _, wc.EnableWalletAPI = c.config.Node.enabledAPISets[api.EndpointsWallet] + _, wc.EnableSeedAPI = c.config.Node.enabledAPISets[api.EndpointsInsecureWalletSeed] + + // Initialize wallet default crypto type + cryptoType, err := crypto.CryptoTypeFromString(c.config.Node.WalletCryptoType) + if err != nil { + log.Panic(err) + } + + wc.CryptoType = cryptoType + + bc := c.config.Node.Fiber.Bip44Coin + wc.Bip44Coin = &bc + + return wc +} + +// ConfigureStorage sets the key-value storage config values +func (c *Coin) ConfigureStorage() kvstorage.Config { + sc := kvstorage.NewConfig() + + sc.StorageDir = c.config.Node.KVStorageDirectory + _, sc.EnableStorageAPI = c.config.Node.enabledAPISets[api.EndpointsStorage] + sc.EnabledStorages = c.config.Node.EnabledStorageTypes + + return sc +} + +// ConfigureDaemon sets the daemon config values +func (c *Coin) ConfigureDaemon() daemon.Config { + dc := daemon.NewConfig() + + dc.Pool.DefaultConnections = c.config.Node.DefaultConnections + dc.Pool.MaxConnections = c.config.Node.MaxConnections + dc.Pool.MaxOutgoingConnections = c.config.Node.MaxOutgoingConnections + dc.Pool.MaxDefaultPeerOutgoingConnections = c.config.Node.MaxDefaultPeerOutgoingConnections + dc.Pool.MaxIncomingConnections = c.config.Node.MaxIncomingConnections + dc.Pool.MaxIncomingMessageLength = c.config.Node.MaxIncomingMessageLength + dc.Pool.MaxOutgoingMessageLength = c.config.Node.MaxOutgoingMessageLength + + dc.Pex.DataDirectory = c.config.Node.DataDirectory + dc.Pex.Disabled = c.config.Node.DisablePEX + dc.Pex.NetworkDisabled = c.config.Node.DisableNetworking + dc.Pex.Max = c.config.Node.PeerlistSize + dc.Pex.DownloadPeerList = c.config.Node.DownloadPeerList + dc.Pex.PeerListURL = c.config.Node.PeerListURL + dc.Pex.DisableTrustedPeers = c.config.Node.DisableDefaultPeers + dc.Pex.CustomPeersFile = c.config.Node.CustomPeersFile + dc.Pex.DefaultConnections = c.config.Node.DefaultConnections + + dc.Daemon.MaxOutgoingMessageLength = uint64(c.config.Node.MaxOutgoingMessageLength) + dc.Daemon.MaxIncomingMessageLength = uint64(c.config.Node.MaxIncomingMessageLength) + dc.Daemon.MaxBlockTransactionsSize = c.config.Node.MaxBlockTransactionsSize + dc.Daemon.MaxLastBlocksCount = c.config.Node.MaxLastBlocksCount + dc.Daemon.DefaultConnections = c.config.Node.DefaultConnections + dc.Daemon.DisableOutgoingConnections = c.config.Node.DisableOutgoingConnections + dc.Daemon.DisableIncomingConnections = c.config.Node.DisableIncomingConnections + dc.Daemon.DisableNetworking = c.config.Node.DisableNetworking + dc.Daemon.Port = c.config.Node.Port + dc.Daemon.Address = c.config.Node.Address + dc.Daemon.LocalhostOnly = c.config.Node.LocalhostOnly + dc.Daemon.MaxConnections = c.config.Node.MaxConnections + dc.Daemon.MaxOutgoingConnections = c.config.Node.MaxOutgoingConnections + dc.Daemon.DataDirectory = c.config.Node.DataDirectory + dc.Daemon.LogPings = !c.config.Node.DisablePingPong + dc.Daemon.BlockchainPubkey = c.config.Node.blockchainPubkey + dc.Daemon.GenesisHash = c.config.Node.genesisHash + dc.Daemon.UserAgent = c.config.Node.userAgent + dc.Daemon.UnconfirmedVerifyTxn = c.config.Node.UnconfirmedVerifyTxn + + if c.config.Node.OutgoingConnectionsRate == 0 { + c.config.Node.OutgoingConnectionsRate = time.Millisecond + } + dc.Daemon.OutgoingRate = c.config.Node.OutgoingConnectionsRate + + return dc +} + +func (c *Coin) createGUI(gw *api.Gateway, host string) (*api.Server, error) { + config := api.Config{ + StaticDir: c.config.Node.GUIDirectory, + DisableCSRF: c.config.Node.DisableCSRF, + DisableHeaderCheck: c.config.Node.DisableHeaderCheck, + DisableCSP: c.config.Node.DisableCSP, + EnableGUI: c.config.Node.EnableGUI, + ReadTimeout: c.config.Node.HTTPReadTimeout, + WriteTimeout: c.config.Node.HTTPWriteTimeout, + IdleTimeout: c.config.Node.HTTPIdleTimeout, + EnabledAPISets: c.config.Node.enabledAPISets, + HostWhitelist: c.config.Node.hostWhitelist, + Health: api.HealthConfig{ + BuildInfo: readable.BuildInfo{ + Version: c.config.Build.Version, + Commit: c.config.Build.Commit, + Branch: c.config.Build.Branch, + }, + Fiber: c.config.Node.Fiber, + DaemonUserAgent: c.config.Node.userAgent, + BlockPublisher: c.config.Node.RunBlockPublisher, + }, + Username: c.config.Node.WebInterfaceUsername, + Password: c.config.Node.WebInterfacePassword, + } + + var s *api.Server + if c.config.Node.WebInterfaceHTTPS { + // Verify cert/key parameters, and if neither exist, create them + exists, err := checkCertFiles(c.config.Node.WebInterfaceCert, c.config.Node.WebInterfaceKey) + if err != nil { + c.logger.WithError(err).Error("checkCertFiles failed") + return nil, err + } + + if !exists { + c.logger.Infof("Autogenerating HTTP certificate and key files %s, %s", c.config.Node.WebInterfaceCert, c.config.Node.WebInterfaceKey) + if err := createCertFiles(c.config.Node.WebInterfaceCert, c.config.Node.WebInterfaceKey); err != nil { + c.logger.WithError(err).Error("createCertFiles failed") + return nil, err + } + + c.logger.Infof("Created cert file %s", c.config.Node.WebInterfaceCert) + c.logger.Infof("Created key file %s", c.config.Node.WebInterfaceKey) + } + + s, err = api.CreateHTTPS(host, config, gw, c.config.Node.WebInterfaceCert, c.config.Node.WebInterfaceKey) + if err != nil { + c.logger.WithError(err).Error("Failed to start web failed") + return nil, err + } + } else { + var err error + s, err = api.Create(host, config, gw) + if err != nil { + c.logger.WithError(err).Error("Failed to start web failed") + return nil, err + } + } + + return s, nil +} + +// checkCertFiles returns true if both cert and key files exist, false if neither exist, +// or returns an error if only one does not exist +func checkCertFiles(cert, key string) (bool, error) { + doesFileExist := func(f string) (bool, error) { + if _, err := os.Stat(f); err != nil { + if os.IsNotExist(err) { + return false, nil + } + return false, err + } + return true, nil + } + + certExists, err := doesFileExist(cert) + if err != nil { + return false, err + } + + keyExists, err := doesFileExist(key) + if err != nil { + return false, err + } + + switch { + case certExists && keyExists: + return true, nil + case !certExists && !keyExists: + return false, nil + case certExists && !keyExists: + return false, fmt.Errorf("certfile %s exists but keyfile %s does not", cert, key) + case !certExists && keyExists: + return false, fmt.Errorf("keyfile %s exists but certfile %s does not", key, cert) + default: + log.Panic("unreachable code") + return false, errors.New("unreachable code") + } +} + +func createCertFiles(certFile, keyFile string) error { + org := "skycoin daemon autogenerated cert" + validUntil := time.Now().Add(10 * 365 * 24 * time.Hour) + cert, key, err := certutil.NewTLSCertPair(org, validUntil, nil) + if err != nil { + return err + } + + if err := ioutil.WriteFile(certFile, cert, 0600); err != nil { + return err + } + if err := ioutil.WriteFile(keyFile, key, 0600); err != nil { + os.Remove(certFile) + return err + } + + return nil +} + +// ParseConfig prepare the config +func (c *Coin) ParseConfig() error { + return c.config.postProcess() +} + +// InitTransaction creates the genesis transaction +func InitTransaction(uxID string, genesisSecKey cipher.SecKey, dist params.Distribution) coin.Transaction { + dist.MustValidate() + + var txn coin.Transaction + + output := cipher.MustSHA256FromHex(uxID) + if err := txn.PushInput(output); err != nil { + log.Panic(err) + } + + for _, addr := range dist.AddressesDecoded() { + if err := txn.PushOutput(addr, dist.AddressInitialBalance()*droplet.Multiplier, 1); err != nil { + log.Panic(err) + } + } + + seckeys := make([]cipher.SecKey, 1) + seckey := genesisSecKey.Hex() + seckeys[0] = cipher.MustSecKeyFromHex(seckey) + txn.SignInputs(seckeys) + + if err := txn.UpdateHeader(); err != nil { + log.Panic(err) + } + + if err := txn.Verify(); err != nil { + log.Panic(err) + } + + log.Printf("signature= %s", txn.Sigs[0].Hex()) + return txn +} + +func createDirIfNotExist(dir string) error { + if _, err := os.Stat(dir); !os.IsNotExist(err) { + return nil + } + + return os.Mkdir(dir, 0750) +} + +func init() { + dbVerifyCheckpointVersionParsed = semver.MustParse(DBVerifyCheckpointVersion) +} diff --git a/vendor/github.com/skycoin/skycoin/src/testutil/assert/assertions.go b/vendor/github.com/skycoin/skycoin/src/testutil/assert/assertions.go new file mode 100644 index 000000000..53bcc851c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/testutil/assert/assertions.go @@ -0,0 +1,73 @@ +package testutil + +import ( + "fmt" + + logrus "github.com/sirupsen/logrus" + assert "github.com/stretchr/testify/assert" +) + +// didPanic returns true if the function passed to it panics. Otherwise, it returns false. +func didPanic(f assert.PanicTestFunc) (bool, interface{}) { + + didPanic := false + var message interface{} + func() { + + defer func() { + if message = recover(); message != nil { + didPanic = true + } + }() + + // call the target function + f() + + }() + + return didPanic, message +} + +// TestValuePredicate checks that a value meets certain condition +// This function type may be seen as a continuation of a test scenario. +// Assertions executed inside of it may be recorded to the calling context +// by accessing free-vars in function closure. +type TestValuePredicate func(value interface{}) (success bool) + +// PanicsWithCondition asserts that the code inside the specified PanicTestFunc panics, and that +// the recovered panic value meets a given condition. +// +// assert.PanicsWithCondition(t, func(value){ return assert.True(t, isCrazy(value)) }, func(){ GoCrazy() }) +// +// Returns whether the assertion was successful (true) or not (false). +func PanicsWithCondition(t assert.TestingT, condition TestValuePredicate, f assert.PanicTestFunc, msgAndArgs ...interface{}) bool { + + funcDidPanic, panicValue := didPanic(f) + if !funcDidPanic { + return assert.Fail(t, fmt.Sprintf("func %#v should panic\n\r\tPanic value:\t%v", f, panicValue), msgAndArgs...) + } + return condition(panicValue) +} + +// PanicsWithLogMessage asserts that the code inside the specified PanicTestFunc panics, and that +// an expected string is included in log message. +// +// assert.PanicsWithLogMessage(t, "Log msg", func(){ log.Panic("Log msg for X") }) +// +// Returns whether the assertion was successful (true) or not (false). +func PanicsWithLogMessage(t assert.TestingT, expectedMessage string, f assert.PanicTestFunc, msgAndArgs ...interface{}) bool { + return PanicsWithCondition(t, func(logValue interface{}) bool { + gotMessage, gotIt := "", false + if entry, isEntry := logValue.(*logrus.Entry); isEntry { + gotMessage, gotIt = entry.Message, true + } else { + if msg, isString := logValue.(string); isString { + gotMessage, gotIt = msg, true + } + } + if gotIt { + return assert.Contains(t, gotMessage, expectedMessage) + } + return assert.Fail(t, "expected string or log entry but got %T", logValue) + }, f, msgAndArgs) +} diff --git a/vendor/github.com/skycoin/skycoin/src/testutil/require/require.go b/vendor/github.com/skycoin/skycoin/src/testutil/require/require.go new file mode 100644 index 000000000..652e4eb52 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/testutil/require/require.go @@ -0,0 +1,32 @@ +package require + +import ( + assert "github.com/stretchr/testify/assert" + require "github.com/stretchr/testify/require" + + _assert "github.com/skycoin/skycoin/src/testutil/assert" +) + +// PanicsWithCondition asserts that the code inside the specified PanicTestFunc panics, and that +// the recovered panic value meets a given condition. +// +// assert.PanicsWithCondition(t, func(value){ return assert.True(t, isCrazy(value)) }, func(){ GoCrazy() }) +// +// Returns whether the assertion was successful (true) or not (false). +func PanicsWithCondition(t require.TestingT, condition _assert.TestValuePredicate, f assert.PanicTestFunc, msgAndArgs ...interface{}) { + if !_assert.PanicsWithCondition(t, condition, f, msgAndArgs...) { + t.FailNow() + } +} + +// PanicsWithLogMessage asserts that the code inside the specified PanicTestFunc panics, and that +// an expected string is included in log message. +// +// assert.PanicsWithLogMessage(t, "Log msg", func(){ log.Panic("Log msg for X") }) +// +// Returns whether the assertion was successful (true) or not (false). +func PanicsWithLogMessage(t require.TestingT, expectedMessage string, f assert.PanicTestFunc, msgAndArgs ...interface{}) { + if !_assert.PanicsWithLogMessage(t, expectedMessage, f, msgAndArgs) { + t.FailNow() + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/testutil/testutil.go b/vendor/github.com/skycoin/skycoin/src/testutil/testutil.go new file mode 100644 index 000000000..250254c35 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/testutil/testutil.go @@ -0,0 +1,151 @@ +/* +Package testutil provides utility methods for testing +*/ +package testutil + +import ( + "crypto/rand" + "io/ioutil" + "os" + "testing" + + "github.com/boltdb/bolt" + "github.com/stretchr/testify/require" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip32" + "github.com/skycoin/skycoin/src/cipher/bip39" + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +// PrepareDB creates and opens a temporary test DB and returns it with a cleanup callback +func PrepareDB(t *testing.T) (*dbutil.DB, func()) { + f, err := ioutil.TempFile("", "testdb") + require.NoError(t, err) + + db, err := bolt.Open(f.Name(), 0700, nil) + require.NoError(t, err) + + return dbutil.WrapDB(db), func() { + err := db.Close() + if err != nil { + t.Logf("Failed to close database: %v", err) + } + + err = f.Close() + if err != nil { + t.Logf("Failed to close file: %v", err) + } + + err = os.Remove(f.Name()) + if err != nil { + t.Logf("Failed to remove temp file %s: %v", f.Name(), err) + } + } +} + +// PrepareDBReadOnly creates and opens a readonly temporary test DB and returns it with a cleanup callback +func PrepareDBReadOnly(t *testing.T) (*dbutil.DB, func()) { + f, err := ioutil.TempFile("", "testdb") + require.NoError(t, err) + + // Open to init the DB, otherwise bolt will try to open an readonly db to init and fail. + db, err := bolt.Open(f.Name(), 0700, nil) + require.NoError(t, err) + require.NoError(t, db.Close()) + + db, err = bolt.Open(f.Name(), 0600, &bolt.Options{ReadOnly: true}) + require.NoError(t, err) + + return dbutil.WrapDB(db), func() { + err := db.Close() + if err != nil { + t.Logf("Failed to close database: %v", err) + } + + err = f.Close() + if err != nil { + t.Logf("Failed to close file: %v", err) + } + + err = os.Remove(f.Name()) + if err != nil { + t.Logf("Failed to remove temp file %s: %v", f.Name(), err) + } + } +} + +// RequireError requires that an error is not nil and that its message matches +func RequireError(t *testing.T, err error, msg string) { + t.Helper() + require.Error(t, err) + require.NotNil(t, err) + require.Equal(t, msg, err.Error()) +} + +// MakeAddress creates a cipher.Address +func MakeAddress() cipher.Address { + p, _ := cipher.GenerateKeyPair() + return cipher.AddressFromPubKey(p) +} + +// MakePubKey creates a cipher.PubKey +func MakePubKey() cipher.PubKey { + p, _ := cipher.GenerateKeyPair() + return p +} + +// RandBytes returns n random bytes +func RandBytes(t *testing.T, n int) []byte { + b := make([]byte, n) + _, err := rand.Read(b) + require.NoError(t, err) + return b +} + +// RandSHA256 returns a random SHA256 hash +func RandSHA256(t *testing.T) cipher.SHA256 { + return cipher.SumSHA256(RandBytes(t, 128)) +} + +// SHA256FromHex converts an SHA256 hex string to a cipher.SHA256 +func SHA256FromHex(t *testing.T, hex string) cipher.SHA256 { + sha, err := cipher.SHA256FromHex(hex) + require.NoError(t, err) + return sha +} + +// RandSig returns a random cipher.Sig +func RandSig(t *testing.T) cipher.Sig { + s, err := cipher.NewSig(RandBytes(t, 65)) + require.NoError(t, err) + return s +} + +// RequireFileExists requires that a file exists +func RequireFileExists(t *testing.T, fn string) os.FileInfo { + stat, err := os.Stat(fn) + require.NoError(t, err) + return stat +} + +// RequireFileNotExists requires that a file doesn't exist +func RequireFileNotExists(t *testing.T, fn string) { + _, err := os.Stat(fn) + require.True(t, os.IsNotExist(err)) +} + +// RandXPub creates a random xpub key +func RandXPub(t *testing.T) *bip32.PublicKey { + m := bip39.MustNewDefaultMnemonic() + s, err := bip39.NewSeed(m, "") + require.NoError(t, err) + c, err := bip44.NewCoin(s, bip44.CoinTypeSkycoin) + require.NoError(t, err) + x, err := c.Account(0) + require.NoError(t, err) + e, err := x.External() + require.NoError(t, err) + return e.PublicKey() +} diff --git a/vendor/github.com/skycoin/skycoin/src/transaction/choose.go b/vendor/github.com/skycoin/skycoin/src/transaction/choose.go new file mode 100644 index 000000000..22a1b3a97 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/transaction/choose.go @@ -0,0 +1,278 @@ +package transaction + +import ( + "bytes" + "errors" + "sort" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/util/fee" +) + +var ( + // ErrInsufficientBalance is returned if a wallet does not have enough balance for a spend + ErrInsufficientBalance = NewError(errors.New("balance is not sufficient")) + // ErrInsufficientHours is returned if a wallet does not have enough hours for a spend with requested hours + ErrInsufficientHours = NewError(errors.New("hours are not sufficient")) + // ErrZeroSpend is returned if a transaction is trying to spend 0 coins + ErrZeroSpend = NewError(errors.New("zero spend amount")) + // ErrNoUnspents is returned if a Create is called with no unspent outputs + ErrNoUnspents = NewError(errors.New("no unspents to spend")) +) + +// UxBalance is an intermediate representation of a UxOut for sorting and spend choosing +type UxBalance struct { + Hash cipher.SHA256 + BkSeq uint64 + Time uint64 + Address cipher.Address + Coins uint64 + InitialHours uint64 + Hours uint64 + SrcTransaction cipher.SHA256 +} + +// NewUxBalances converts coin.UxArray to []UxBalance. headTime is required to calculate coin hours. +func NewUxBalances(uxa coin.UxArray, headTime uint64) ([]UxBalance, error) { + uxb := make([]UxBalance, len(uxa)) + for i, ux := range uxa { + b, err := NewUxBalance(headTime, ux) + if err != nil { + return nil, err + } + uxb[i] = b + } + + return uxb, nil +} + +// NewUxBalance converts coin.UxOut to UxBalance. headTime is required to calculate coin hours. +func NewUxBalance(headTime uint64, ux coin.UxOut) (UxBalance, error) { + hours, err := ux.CoinHours(headTime) + if err != nil { + return UxBalance{}, err + } + + return UxBalance{ + Hash: ux.Hash(), + BkSeq: ux.Head.BkSeq, + Time: ux.Head.Time, + Address: ux.Body.Address, + Coins: ux.Body.Coins, + InitialHours: ux.Body.Hours, + Hours: hours, + SrcTransaction: ux.Body.SrcTransaction, + }, nil +} + +func uxBalancesSub(a, b []UxBalance) []UxBalance { + var x []UxBalance + + bMap := make(map[cipher.SHA256]struct{}, len(b)) + for _, i := range b { + bMap[i.Hash] = struct{}{} + } + + for _, i := range a { + if _, ok := bMap[i.Hash]; !ok { + x = append(x, i) + } + } + + return x +} + +// ChooseSpendsMinimizeUxOuts chooses uxout spends to satisfy an amount, using the least number of uxouts +// -- PRO: Allows more frequent spending, less waiting for confirmations, useful for exchanges. +// -- PRO: When transaction is volume is higher, transactions are prioritized by fee/size. Minimizing uxouts minimizes size. +// -- CON: Would make the unconfirmed pool grow larger. +// Users with high transaction frequency will want to use this so that they will not need to wait as frequently +// for unconfirmed spends to complete before sending more. +// Alternatively, or in addition to this, they should batch sends into single transactions. +func ChooseSpendsMinimizeUxOuts(uxa []UxBalance, coins, hours uint64) ([]UxBalance, error) { + return ChooseSpends(uxa, coins, hours, sortSpendsCoinsHighToLow) +} + +// sortSpendsCoinsHighToLow sorts uxout spends with highest balance to lowest +func sortSpendsCoinsHighToLow(uxa []UxBalance) { + sort.Slice(uxa, makeCmpUxOutByCoins(uxa, func(a, b uint64) bool { + return a > b + })) +} + +// ChooseSpendsMaximizeUxOuts chooses uxout spends to satisfy an amount, using the most number of uxouts +// See the pros and cons of ChooseSpendsMinimizeUxOuts. +// This should be the default mode, because this keeps the unconfirmed pool smaller which will allow +// the network to scale better. +func ChooseSpendsMaximizeUxOuts(uxa []UxBalance, coins, hours uint64) ([]UxBalance, error) { + return ChooseSpends(uxa, coins, hours, sortSpendsCoinsLowToHigh) +} + +// sortSpendsCoinsLowToHigh sorts uxout spends with lowest balance to highest +func sortSpendsCoinsLowToHigh(uxa []UxBalance) { + sort.Slice(uxa, makeCmpUxOutByCoins(uxa, func(a, b uint64) bool { + return a < b + })) +} + +// sortSpendsHoursLowToHigh sorts uxout spends with lowest hours to highest +func sortSpendsHoursLowToHigh(uxa []UxBalance) { + sort.Slice(uxa, makeCmpUxOutByHours(uxa, func(a, b uint64) bool { + return a < b + })) +} + +func makeCmpUxOutByCoins(uxa []UxBalance, coinsCmp func(a, b uint64) bool) func(i, j int) bool { + // Sort by: + // coins highest or lowest depending on coinsCmp + // hours lowest + // oldest first + // tie break with hash comparison + return func(i, j int) bool { + a := uxa[i] + b := uxa[j] + + if a.Coins == b.Coins { + if a.Hours == b.Hours { + if a.BkSeq == b.BkSeq { + return cmpUxBalanceByUxID(a, b) + } + return a.BkSeq < b.BkSeq + } + return a.Hours < b.Hours + } + return coinsCmp(a.Coins, b.Coins) + } +} + +func makeCmpUxOutByHours(uxa []UxBalance, hoursCmp func(a, b uint64) bool) func(i, j int) bool { + // Sort by: + // hours highest or lowest depending on hoursCmp + // coins lowest + // oldest first + // tie break with hash comparison + return func(i, j int) bool { + a := uxa[i] + b := uxa[j] + + if a.Hours == b.Hours { + if a.Coins == b.Coins { + if a.BkSeq == b.BkSeq { + return cmpUxBalanceByUxID(a, b) + } + return a.BkSeq < b.BkSeq + } + return a.Coins < b.Coins + } + return hoursCmp(a.Hours, b.Hours) + } +} + +func cmpUxBalanceByUxID(a, b UxBalance) bool { + cmp := bytes.Compare(a.Hash[:], b.Hash[:]) + if cmp == 0 { + logger.Panic("Duplicate UxOut when sorting") + } + return cmp < 0 +} + +// ChooseSpends chooses uxouts from a list of uxouts. +// It first chooses the uxout with the most number of coins that has nonzero coinhours. +// It then chooses uxouts with zero coinhours, ordered by sortStrategy +// It then chooses remaining uxouts with nonzero coinhours, ordered by sortStrategy +func ChooseSpends(uxa []UxBalance, coins, hours uint64, sortStrategy func([]UxBalance)) ([]UxBalance, error) { + if coins == 0 { + return nil, ErrZeroSpend + } + + if len(uxa) == 0 { + return nil, ErrNoUnspents + } + + for _, ux := range uxa { + if ux.Coins == 0 { + logger.Panic("UxOut coins are 0, can't spend") + return nil, errors.New("UxOut coins are 0, can't spend") + } + } + + // Split UxBalances into those with and without hours + var nonzero, zero []UxBalance + for _, ux := range uxa { + if ux.Hours == 0 { + zero = append(zero, ux) + } else { + nonzero = append(nonzero, ux) + } + } + + // Abort if there are no uxouts with non-zero coinhours, they can't be spent yet + if len(nonzero) == 0 { + return nil, fee.ErrTxnNoFee + } + + // Sort uxouts with hours lowest to highest and coins highest to lowest + sortSpendsCoinsHighToLow(nonzero) + + var haveCoins uint64 + var haveHours uint64 + var spending []UxBalance + + // Use the first nonzero output. This output will have the least hours possible + firstNonzero := nonzero[0] + if firstNonzero.Hours == 0 { + logger.Panic("balance has zero hours unexpectedly") + return nil, errors.New("balance has zero hours unexpectedly") + } + + nonzero = nonzero[1:] + + spending = append(spending, firstNonzero) + + haveCoins += firstNonzero.Coins + haveHours += firstNonzero.Hours + + if haveCoins >= coins && fee.RemainingHours(haveHours, params.UserVerifyTxn.BurnFactor) >= hours { + return spending, nil + } + + // Sort uxouts without hours according to the sorting strategy + sortStrategy(zero) + + for _, ux := range zero { + spending = append(spending, ux) + + haveCoins += ux.Coins + haveHours += ux.Hours + + if haveCoins >= coins { + break + } + } + + if haveCoins >= coins && fee.RemainingHours(haveHours, params.UserVerifyTxn.BurnFactor) >= hours { + return spending, nil + } + + // Sort remaining uxouts with hours according to the sorting strategy + sortStrategy(nonzero) + + for _, ux := range nonzero { + spending = append(spending, ux) + + haveCoins += ux.Coins + haveHours += ux.Hours + + if haveCoins >= coins && fee.RemainingHours(haveHours, params.UserVerifyTxn.BurnFactor) >= hours { + return spending, nil + } + } + + if haveCoins < coins { + return nil, ErrInsufficientBalance + } + + return nil, ErrInsufficientHours +} diff --git a/vendor/github.com/skycoin/skycoin/src/transaction/create.go b/vendor/github.com/skycoin/skycoin/src/transaction/create.go new file mode 100644 index 000000000..f4b7290cb --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/transaction/create.go @@ -0,0 +1,504 @@ +/* +Package transaction provides methods for creating transactions + +See package coin for the Transaction object itself +*/ +package transaction + +import ( + "bytes" + "errors" + "fmt" + "sort" + + "github.com/shopspring/decimal" + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/util/fee" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/util/mathutil" +) + +var ( + logger = logging.MustGetLogger("txn") +) + +// Create creates an unsigned transaction based upon Params. +// NOTE: Caller must ensure that auxs correspond to params.UxOuts options +// Outputs to spend are chosen from the pool of outputs provided. +// The outputs are chosen by the following procedure: +// - All outputs are merged into one list and are sorted coins highest, hours lowest, with the hash as a tiebreaker +// - Outputs are chosen from the beginning of this list, until the requested amount of coins is met. +// If hours are also specified, selection continues until the requested amount of hours are met. +// - If the total amount of coins in the chosen outputs is exactly equal to the requested amount of coins, +// such that there would be no change output but hours remain as change, another output will be chosen to create change, +// if the coinhour cost of adding that output is less than the coinhours that would be lost as change +// If receiving hours are not explicitly specified, hours are allocated amongst the receiving outputs proportional to the number of coins being sent to them. +// If the change address is not specified, the address whose bytes are lexically sorted first is chosen from the owners of the outputs being spent. +func Create(p Params, auxs coin.AddressUxOuts, headTime uint64) (*coin.Transaction, []UxBalance, error) { + return create(p, auxs, headTime, 0) +} + +func create(p Params, auxs coin.AddressUxOuts, headTime uint64, callCount int) (*coin.Transaction, []UxBalance, error) { + logger.WithFields(logrus.Fields{ + "params": p, + "nAuxs": len(auxs), + "headTime": headTime, + "callCount": callCount, + }).Info("create requested") + + if err := p.Validate(); err != nil { + return nil, nil, err + } + + txn := &coin.Transaction{} + + // Determine which unspents to spend + uxa := auxs.Flatten() + + uxb, err := NewUxBalances(uxa, headTime) + if err != nil { + return nil, nil, err + } + + // Reverse lookup set to recover the inputs + uxbMap := make(map[cipher.SHA256]UxBalance, len(uxb)) + for _, u := range uxb { + if _, ok := uxbMap[u.Hash]; ok { + return nil, nil, errors.New("Duplicate UxBalance in array") + } + uxbMap[u.Hash] = u + } + + // Calculate total coins and minimum hours to send + var totalOutCoins uint64 + var requestedHours uint64 + for _, to := range p.To { + totalOutCoins, err = mathutil.AddUint64(totalOutCoins, to.Coins) + if err != nil { + return nil, nil, NewError(fmt.Errorf("total output coins error: %v", err)) + } + + requestedHours, err = mathutil.AddUint64(requestedHours, to.Hours) + if err != nil { + return nil, nil, NewError(fmt.Errorf("total output hours error: %v", err)) + } + } + + // Use the MinimizeUxOuts strategy, to use least possible uxouts + // this will allow more frequent spending + // we don't need to check whether we have sufficient balance beforehand as ChooseSpends already checks that + spends, err := ChooseSpendsMinimizeUxOuts(uxb, totalOutCoins, requestedHours) + if err != nil { + return nil, nil, err + } + + // Calculate total coins and hours in spends + var totalInputCoins uint64 + var totalInputHours uint64 + for _, spend := range spends { + totalInputCoins, err = mathutil.AddUint64(totalInputCoins, spend.Coins) + if err != nil { + return nil, nil, err + } + + totalInputHours, err = mathutil.AddUint64(totalInputHours, spend.Hours) + if err != nil { + return nil, nil, err + } + + if err := txn.PushInput(spend.Hash); err != nil { + logger.Critical().WithError(err).Error("PushInput failed") + return nil, nil, err + } + } + + feeHours := fee.RequiredFee(totalInputHours, params.UserVerifyTxn.BurnFactor) + if feeHours == 0 { + // feeHours can only be 0 if totalInputHours is 0, and if totalInputHours was 0 + // then ChooseSpendsMinimizeUxOuts should have already returned an error + err := errors.New("Chosen spends have no coin hours, unexpectedly") + logger.Critical().WithError(err).WithField("totalInputHours", totalInputHours).Error() + return nil, nil, err + } + remainingHours := totalInputHours - feeHours + + switch p.HoursSelection.Type { + case HoursSelectionTypeManual: + for _, o := range p.To { + if err := txn.PushOutput(o.Address, o.Coins, o.Hours); err != nil { + logger.Critical().WithError(err).WithField("selectionType", HoursSelectionTypeManual).Error("PushOutput failed") + return nil, nil, err + } + } + + case HoursSelectionTypeAuto: + var addrHours []uint64 + + switch p.HoursSelection.Mode { + case HoursSelectionModeShare: + // multiply remaining hours after fee burn with share factor + hours, err := mathutil.Uint64ToInt64(remainingHours) + if err != nil { + return nil, nil, err + } + + allocatedHoursInt := p.HoursSelection.ShareFactor.Mul(decimal.New(hours, 0)).IntPart() + allocatedHours, err := mathutil.Int64ToUint64(allocatedHoursInt) + if err != nil { + return nil, nil, err + } + + toCoins := make([]uint64, len(p.To)) + for i, to := range p.To { + toCoins[i] = to.Coins + } + + addrHours, err = DistributeCoinHoursProportional(toCoins, allocatedHours) + if err != nil { + return nil, nil, err + } + default: + // This should have been caught by params.Validate() + logger.Panic("Invalid HoursSelection.Mode") + return nil, nil, errors.New("Invalid HoursSelection.Type") + } + + for i, out := range p.To { + out.Hours = addrHours[i] + if err := txn.PushOutput(out.Address, out.Coins, addrHours[i]); err != nil { + logger.Critical().WithError(err).WithField("selectionType", HoursSelectionTypeAuto).Error("PushOutput failed") + return nil, nil, err + } + } + + default: + // This should have been caught by params.Validate() + logger.Panic("Invalid HoursSelection.Type") + return nil, nil, errors.New("Invalid HoursSelection.Type") + } + + totalOutHours, err := txn.OutputHours() + if err != nil { + return nil, nil, err + } + + // Make sure we have enough coins and coin hours + // If we don't, and we called ChooseSpends, then ChooseSpends has a bug, as it should have returned this error already + if totalOutCoins > totalInputCoins { + logger.Critical().WithError(ErrInsufficientBalance).Error("Insufficient coins after choosing spends, this should not occur") + return nil, nil, ErrInsufficientBalance + } + + if totalOutHours > remainingHours { + logger.Critical().WithError(fee.ErrTxnInsufficientCoinHours).Error("Insufficient hours after choosing spends or distributing hours, this should not occur") + return nil, nil, fee.ErrTxnInsufficientCoinHours + } + + // Create change output + changeCoins := totalInputCoins - totalOutCoins + changeHours := remainingHours - totalOutHours + + logger.WithFields(logrus.Fields{ + "totalOutCoins": totalOutCoins, + "totalOutHours": totalOutHours, + "requestedHours": requestedHours, + "nUnspents": len(uxb), + "totalInputCoins": totalInputCoins, + "totalInputHours": totalInputHours, + "feeHours": feeHours, + "remainingHours": remainingHours, + "changeCoins": changeCoins, + "changeHours": changeHours, + "nSpends": len(spends), + "nInputs": len(txn.In), + }).Info("Calculated spend parameters") + + // If there are no change coins but there are change hours, try to add another + // input to save the change hours. + // This chooses an available input with the least number of coin hours; + // if the extra coin hour fee incurred by this additional input is less than + // the remaining coin hours, the input is added. + if changeCoins == 0 && changeHours > 0 { + logger.Info("Trying to recover change hours by forcing an extra input") + // Find the output with the least coin hours + // If size of the fee for this output is less than the changeHours, add it + // Update changeCoins and changeHours + z := uxBalancesSub(uxb, spends) + sortSpendsHoursLowToHigh(z) + if len(z) > 0 { + logger.Info("Extra input found, evaluating if it can recover change hours") + extra := z[0] + + // Calculate the new hours being spent + newTotalHours, err := mathutil.AddUint64(totalInputHours, extra.Hours) + if err != nil { + return nil, nil, err + } + + // Calculate the new fee for this new amount of hours + newFee := fee.RequiredFee(newTotalHours, params.UserVerifyTxn.BurnFactor) + if newFee < feeHours { + err := errors.New("updated fee after adding extra input for change is unexpectedly less than it was initially") + logger.WithError(err).Error() + return nil, nil, err + } + + // If the cost of adding this extra input is less than the amount of change hours we + // can save, use the input + additionalFee := newFee - feeHours + if additionalFee < changeHours { + logger.Info("Change hours can be recovered by forcing an extra input") + changeCoins = extra.Coins + + if extra.Hours < additionalFee { + err := errors.New("calculated additional fee is unexpectedly higher than the extra input's hours") + logger.WithError(err).Error() + return nil, nil, err + } + + additionalHours := extra.Hours - additionalFee + changeHours, err = mathutil.AddUint64(changeHours, additionalHours) + if err != nil { + return nil, nil, err + } + + spends = append(spends, extra) + + if err := txn.PushInput(extra.Hash); err != nil { + logger.Critical().WithError(err).Error("PushInput failed") + return nil, nil, err + } + + logger.WithFields(logrus.Fields{ + "changeCoins": changeCoins, + "changeHours": changeHours, + "nSpends": len(spends), + "nInputs": len(txn.In), + "newTotalHours": newTotalHours, + "newFee": "newFee", + "additionalFee": additionalFee, + "additionalHours": additionalHours, + }).Info("Recalculated spend parameters after forcing a change output") + } else { + logger.Info("Unable to recover change hours by forcing an extra input") + } + } else { + logger.Info("No more inputs left to use to recover change hours") + } + } + + // With auto share mode, if there are leftover hours and change couldn't be force-added, + // recalculate that share ratio at 100% + if changeCoins == 0 && changeHours > 0 && p.HoursSelection.Type == HoursSelectionTypeAuto && p.HoursSelection.Mode == HoursSelectionModeShare { + logger.Info("Recalculating share factor at 1.0 to avoid burning change hours") + oneDecimal := decimal.New(1, 0) + + if p.HoursSelection.ShareFactor.Equal(oneDecimal) { + err := errors.New("share factor is 1.0 but changeHours > 0 unexpectedly") + logger.Critical().WithError(err).Error() + return nil, nil, err + } + + // Double-check that we haven't already called create() once already - + // if for some reason the previous check fails, we'll end up in an infinite loop + if callCount > 0 { + err := errors.New("transaction.Create already fell back to share ratio 1.0") + logger.Critical().WithError(err).Error() + return nil, nil, err + } + + p.HoursSelection.ShareFactor = &oneDecimal + return create(p, auxs, headTime, 1) + } + + if changeCoins > 0 { + var changeAddress cipher.Address + if p.ChangeAddress != nil { + changeAddress = *p.ChangeAddress + } else { + // Choose a change address from the unspent outputs + // Sort spends by address, comparing bytes, and use the first + // This provides deterministic change address selection from a set of unspent outputs + if len(spends) == 0 { + return nil, nil, errors.New("spends is unexpectedly empty when choosing an automatic change address") + } + + addressBytes := make([][]byte, len(spends)) + for i, s := range spends { + addressBytes[i] = s.Address.Bytes() + } + + sort.Slice(addressBytes, func(i, j int) bool { + return bytes.Compare(addressBytes[i], addressBytes[j]) < 0 + }) + + var err error + changeAddress, err = cipher.AddressFromBytes(addressBytes[0]) + if err != nil { + logger.Critical().WithError(err).Error("cipher.AddressFromBytes failed for change address converted to bytes") + return nil, nil, err + } + + logger.WithField("addr", changeAddress).Info("Automatically selected a change address") + } + + logger.WithFields(logrus.Fields{ + "changeAddress": changeAddress, + "changeCoins": changeCoins, + "changeHours": changeHours, + }).Info("Adding a change output") + + if err := txn.PushOutput(changeAddress, changeCoins, changeHours); err != nil { + logger.Critical().WithError(err).Error("PushOutput failed") + return nil, nil, err + } + } + + // Initialize unsigned transaction + txn.Sigs = make([]cipher.Sig, len(txn.In)) + + if err := txn.UpdateHeader(); err != nil { + logger.Critical().WithError(err).Error("txn.UpdateHeader failed") + return nil, nil, err + } + + inputs := make([]UxBalance, len(txn.In)) + for i, h := range txn.In { + uxBalance, ok := uxbMap[h] + if !ok { + err := errors.New("Created transaction's input is not in the UxBalanceSet, this should not occur") + logger.Critical().WithError(err).Error() + return nil, nil, err + } + inputs[i] = uxBalance + } + + if err := verifyCreatedUnignedInvariants(p, txn, inputs); err != nil { + logger.Critical().WithError(err).Error("CreateTransaction created transaction that violates invariants, aborting") + return nil, nil, fmt.Errorf("Created transaction that violates invariants, this is a bug: %v", err) + } + + return txn, inputs, nil +} + +func verifyCreatedUnignedInvariants(p Params, txn *coin.Transaction, inputs []UxBalance) error { + if !txn.IsFullyUnsigned() { + return errors.New("Transaction is not fully unsigned") + } + + if err := VerifyCreatedInvariants(p, txn, inputs); err != nil { + return err + } + + return nil +} + +// VerifyCreatedInvariants checks that the transaction that was created matches expectations. +// Does not call visor verification methods because that causes import cycle due to the wallet package. +// daemon.Gateway checks that the transaction passes additional visor verification methods. +// TODO -- could fix the import cycle by having visor create the transaction, passing it to the wallet for verifying params and signing +// This method still compares some values of Params against the created txn and doesn't only verify that the txn is well formed +func VerifyCreatedInvariants(p Params, txn *coin.Transaction, inputs []UxBalance) error { + for _, o := range txn.Out { + // No outputs should be sent to the null address + if o.Address.Null() { + return errors.New("Output address is null") + } + + if o.Coins == 0 { + return errors.New("Output coins is 0") + } + } + + if len(txn.Out) != len(p.To) && len(txn.Out) != len(p.To)+1 { + return errors.New("Transaction has unexpected number of outputs") + } + + for i, o := range txn.Out[:len(p.To)] { + if o.Address != p.To[i].Address { + return errors.New("Output address does not match requested address") + } + + if o.Coins != p.To[i].Coins { + return errors.New("Output coins does not match requested coins") + } + + if p.To[i].Hours != 0 && o.Hours != p.To[i].Hours { + return errors.New("Output hours does not match requested hours") + } + } + + if len(txn.Sigs) != len(txn.In) { + return errors.New("Number of signatures does not match number of inputs") + } + + if len(txn.In) != len(inputs) { + return errors.New("Number of UxOut inputs does not match number of transaction inputs") + } + + for i, h := range txn.In { + if inputs[i].Hash != h { + return errors.New("Transaction input hash does not match UxOut inputs hash") + } + } + + inputsMap := make(map[cipher.SHA256]struct{}, len(inputs)) + + for _, i := range inputs { + if i.Hours < i.InitialHours { + return errors.New("Calculated input hours are unexpectedly less than the initial hours") + } + + if i.BkSeq == 0 { + if !i.SrcTransaction.Null() { + return errors.New("Input is the genesis UTXO but its source transaction hash is not null") + } + } else { + if i.SrcTransaction.Null() { + return errors.New("Input's source transaction hash is null") + } + } + + if i.Hash.Null() { + return errors.New("Input's hash is null") + } + + if _, ok := inputsMap[i.Hash]; ok { + return errors.New("Duplicate input in array") + } + + inputsMap[i.Hash] = struct{}{} + } + + var inputHours uint64 + for _, i := range inputs { + var err error + inputHours, err = mathutil.AddUint64(inputHours, i.Hours) + if err != nil { + return err + } + } + + var outputHours uint64 + for _, i := range txn.Out { + var err error + outputHours, err = mathutil.AddUint64(outputHours, i.Hours) + if err != nil { + return err + } + } + + if inputHours < outputHours { + return errors.New("Total input hours is less than the output hours") + } + + if inputHours-outputHours < fee.RequiredFee(inputHours, params.UserVerifyTxn.BurnFactor) { + return errors.New("Transaction will not satisfy required fee") + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/transaction/distribution.go b/vendor/github.com/skycoin/skycoin/src/transaction/distribution.go new file mode 100644 index 000000000..244dc0f1f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/transaction/distribution.go @@ -0,0 +1,24 @@ +package transaction + +import ( + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" +) + +// TransactionIsLocked returns true if the transaction spends locked outputs +func TransactionIsLocked(d params.Distribution, inUxs coin.UxArray) bool { + lockedAddrs := d.LockedAddresses() + lockedAddrsMap := make(map[string]struct{}) + for _, a := range lockedAddrs { + lockedAddrsMap[a] = struct{}{} + } + + for _, o := range inUxs { + uxAddr := o.Body.Address.String() + if _, ok := lockedAddrsMap[uxAddr]; ok { + return true + } + } + + return false +} diff --git a/vendor/github.com/skycoin/skycoin/src/transaction/hours.go b/vendor/github.com/skycoin/skycoin/src/transaction/hours.go new file mode 100644 index 000000000..585b323e9 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/transaction/hours.go @@ -0,0 +1,165 @@ +package transaction + +import ( + "errors" + "math/big" + + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/util/fee" + "github.com/skycoin/skycoin/src/util/mathutil" +) + +// DistributeSpendHours calculates how many coin hours to transfer to the change address and how +// many to transfer to each of the other destination addresses. +// Input hours are split by BurnFactor (rounded down) to meet the fee requirement. +// The remaining hours are split in half, one half goes to the change address +// and the other half goes to the destination addresses. +// If the remaining hours are an odd number, the change address gets the extra hour. +// If the amount assigned to the destination addresses is not perfectly divisible by the +// number of destination addresses, the extra hours are distributed to some of these addresses. +// Returns the number of hours to send to the change address, +// an array of length nAddrs with the hours to give to each destination address, +// and a sum of these values. +func DistributeSpendHours(inputHours, nAddrs uint64, haveChange bool) (uint64, []uint64, uint64) { + feeHours := fee.RequiredFee(inputHours, params.UserVerifyTxn.BurnFactor) + remainingHours := inputHours - feeHours + + var changeHours uint64 + if haveChange { + // Split the remaining hours between the change output and the other outputs + changeHours = remainingHours / 2 + + // If remainingHours is an odd number, give the extra hour to the change output + if remainingHours%2 == 1 { + changeHours++ + } + } + + // Distribute the remaining hours equally amongst the destination outputs + remainingAddrHours := remainingHours - changeHours + addrHoursShare := remainingAddrHours / nAddrs + + // Due to integer division, extra coin hours might remain after dividing by len(toAddrs) + // Allocate these extra hours to the toAddrs + addrHours := make([]uint64, nAddrs) + for i := range addrHours { + addrHours[i] = addrHoursShare + } + + extraHours := remainingAddrHours - (addrHoursShare * nAddrs) + i := 0 + for extraHours > 0 { + addrHours[i] = addrHours[i] + 1 + i++ + extraHours-- + } + + // Assert that the hour calculation is correct + var spendHours uint64 + for _, h := range addrHours { + spendHours += h + } + spendHours += changeHours + if spendHours != remainingHours { + logger.Panicf("spendHours != remainingHours (%d != %d), calculation error", spendHours, remainingHours) + } + + return changeHours, addrHours, spendHours +} + +// DistributeCoinHoursProportional distributes hours amongst coins proportional to the coins amount +func DistributeCoinHoursProportional(coins []uint64, hours uint64) ([]uint64, error) { + if len(coins) == 0 { + return nil, errors.New("DistributeCoinHoursProportional coins array must not be empty") + } + + coinsInt := make([]*big.Int, len(coins)) + + var total uint64 + for i, c := range coins { + if c == 0 { + return nil, errors.New("DistributeCoinHoursProportional coins array has a zero value") + } + + var err error + total, err = mathutil.AddUint64(total, c) + if err != nil { + return nil, err + } + + cInt64, err := mathutil.Uint64ToInt64(c) + if err != nil { + return nil, err + } + + coinsInt[i] = big.NewInt(cInt64) + } + + totalInt64, err := mathutil.Uint64ToInt64(total) + if err != nil { + return nil, err + } + totalInt := big.NewInt(totalInt64) + + hoursInt64, err := mathutil.Uint64ToInt64(hours) + if err != nil { + return nil, err + } + hoursInt := big.NewInt(hoursInt64) + + var assignedHours uint64 + addrHours := make([]uint64, len(coins)) + for i, c := range coinsInt { + // Scale the ratio of coins to total coins proportionally by calculating + // (coins * totalHours) / totalCoins + // The remainder is truncated, remaining hours are appended after this + num := &big.Int{} + num.Mul(c, hoursInt) + + fracInt := big.Int{} + fracInt.Div(num, totalInt) + + if !fracInt.IsUint64() { + return nil, errors.New("DistributeCoinHoursProportional calculated fractional hours is not representable as a uint64") + } + + fracHours := fracInt.Uint64() + + addrHours[i] = fracHours + assignedHours, err = mathutil.AddUint64(assignedHours, fracHours) + if err != nil { + return nil, err + } + } + + if hours < assignedHours { + return nil, errors.New("DistributeCoinHoursProportional assigned hours exceeding input hours, this is a bug") + } + + remainingHours := hours - assignedHours + + if remainingHours > uint64(len(coins)) { + return nil, errors.New("DistributeCoinHoursProportional remaining hours exceed len(coins), this is a bug") + } + + // For remaining hours lost due to fractional cutoff when scaling, + // first provide at least 1 coin hour to coins that were assigned 0. + i := 0 + for remainingHours > 0 && i < len(coins) { + if addrHours[i] == 0 { + addrHours[i] = 1 + remainingHours-- + } + i++ + } + + // Then, assign the extra coin hours + i = 0 + for remainingHours > 0 { + addrHours[i] = addrHours[i] + 1 + remainingHours-- + i++ + } + + return addrHours, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/transaction/params.go b/vendor/github.com/skycoin/skycoin/src/transaction/params.go new file mode 100644 index 000000000..139f2e6fd --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/transaction/params.go @@ -0,0 +1,155 @@ +package transaction + +import ( + "errors" + + "github.com/shopspring/decimal" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" +) + +// Error wraps transaction creation-related errors. +// It wraps errors caused by user input, but not errors caused by programmer input or internal issues. +type Error struct { + error +} + +// NewError creates an Error +func NewError(err error) error { + if err == nil { + return nil + } + return Error{err} +} + +const ( + // HoursSelectionTypeManual is used to specify manual hours selection in advanced spend + HoursSelectionTypeManual = "manual" + // HoursSelectionTypeAuto is used to specify automatic hours selection in advanced spend + HoursSelectionTypeAuto = "auto" + + // HoursSelectionModeShare will distribute coin hours equally amongst destinations + HoursSelectionModeShare = "share" +) + +var ( + // ErrNullChangeAddress ChangeAddress must not be the null address + ErrNullChangeAddress = NewError(errors.New("ChangeAddress must not be the null address")) + // ErrMissingReceivers To is required + ErrMissingReceivers = NewError(errors.New("To is required")) + // ErrZeroCoinsReceiver To.Coins must not be zero + ErrZeroCoinsReceiver = NewError(errors.New("To.Coins must not be zero")) + // ErrNullAddressReceiver To.Address must not be the null address + ErrNullAddressReceiver = NewError(errors.New("To.Address must not be the null address")) + // ErrDuplicateReceiver To contains duplicate values + ErrDuplicateReceiver = NewError(errors.New("To contains duplicate values")) + // ErrReceiverZeroHoursAuto To.Hours must be zero for auto type hours selection + ErrReceiverZeroHoursAuto = NewError(errors.New("To.Hours must be zero for auto type hours selection")) + // ErrMissingHoursSelectionModeAuto HoursSelection.Mode is required for auto type hours selection + ErrMissingHoursSelectionModeAuto = NewError(errors.New("HoursSelection.Mode is required for auto type hours selection")) + // ErrInvalidHoursSelelectionMode Invalid HoursSelection.Mode + ErrInvalidHoursSelelectionMode = NewError(errors.New("Invalid HoursSelection.Mode")) + // ErrInvalidHoursSelectionModeManual HoursSelection.Mode cannot be used for manual type hours selection + ErrInvalidHoursSelectionModeManual = NewError(errors.New("HoursSelection.Mode cannot be used for manual type hours selection")) + // ErrInvalidHoursSelectionType Invalid HoursSelection.Type + ErrInvalidHoursSelectionType = NewError(errors.New("Invalid HoursSelection.Type")) + // ErrMissingShareFactor HoursSelection.ShareFactor must be set for share mode + ErrMissingShareFactor = NewError(errors.New("HoursSelection.ShareFactor must be set for share mode")) + // ErrInvalidShareFactor HoursSelection.ShareFactor can only be used for share mode + ErrInvalidShareFactor = NewError(errors.New("HoursSelection.ShareFactor can only be used for share mode")) + // ErrShareFactorOutOfRange HoursSelection.ShareFactor must be >= 0 and <= 1 + ErrShareFactorOutOfRange = NewError(errors.New("HoursSelection.ShareFactor must be >= 0 and <= 1")) +) + +// HoursSelection defines options for hours distribution +type HoursSelection struct { + Type string + Mode string + ShareFactor *decimal.Decimal +} + +// Params defines control parameters for transaction construction +type Params struct { + HoursSelection HoursSelection + To []coin.TransactionOutput + ChangeAddress *cipher.Address +} + +// Validate validates Params +func (c Params) Validate() error { + if c.ChangeAddress != nil && c.ChangeAddress.Null() { + return ErrNullChangeAddress + } + + if len(c.To) == 0 { + return ErrMissingReceivers + } + + for _, to := range c.To { + if to.Coins == 0 { + return ErrZeroCoinsReceiver + } + + if to.Address.Null() { + return ErrNullAddressReceiver + } + } + + // Check for duplicate outputs, a transaction can't have outputs with + // the same (address, coins, hours) + // Auto mode would distribute hours to the outputs and could hypothetically + // avoid assigning duplicate hours in many cases, but the complexity for doing + // so is very high, so also reject duplicate (address, coins) for auto mode. + outputs := make(map[coin.TransactionOutput]struct{}, len(c.To)) + for _, to := range c.To { + outputs[to] = struct{}{} + } + + if len(outputs) != len(c.To) { + return ErrDuplicateReceiver + } + + switch c.HoursSelection.Type { + case HoursSelectionTypeAuto: + for _, to := range c.To { + if to.Hours != 0 { + return ErrReceiverZeroHoursAuto + } + } + + switch c.HoursSelection.Mode { + case HoursSelectionModeShare: + case "": + return ErrMissingHoursSelectionModeAuto + default: + return ErrInvalidHoursSelelectionMode + } + + case HoursSelectionTypeManual: + if c.HoursSelection.Mode != "" { + return ErrInvalidHoursSelectionModeManual + } + + default: + return ErrInvalidHoursSelectionType + } + + if c.HoursSelection.ShareFactor == nil { + if c.HoursSelection.Mode == HoursSelectionModeShare { + return ErrMissingShareFactor + } + } else { + if c.HoursSelection.Mode != HoursSelectionModeShare { + return ErrInvalidShareFactor + } + + zero := decimal.New(0, 0) + one := decimal.New(1, 0) + if c.HoursSelection.ShareFactor.LessThan(zero) || c.HoursSelection.ShareFactor.GreaterThan(one) { + return ErrShareFactorOutOfRange + } + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/transaction/verify.go b/vendor/github.com/skycoin/skycoin/src/transaction/verify.go new file mode 100644 index 000000000..c46f8394e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/transaction/verify.go @@ -0,0 +1,336 @@ +package transaction + +import ( + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/util/fee" +) + +/* + +verify.go: Methods for handling transaction verification + +There are two levels of transaction constraint: HARD and SOFT +There are two situations in which transactions are verified: + * When included in a block + * When not in a block + +For transactions in a block, use VerifyBlockTxnConstraints. +For transactions outside of a block, use VerifySingleTxnHardConstraints and VerifySingleTxnSoftConstraints. + +VerifyBlockTxnConstraints only checks hard constraints. Soft constraints do not apply for transactions inside of a block. + +Soft and hard constraints have special handling for single transactions. + +When the transaction is received over the network, a transaction is not injected to the pool if it violates the HARD constraints. +If it violates soft constraints, it is still injected to the pool (TODO: with expiration) but is not rebroadcast to peers. +If it does not violate any constraints it is injected and rebroadcast to peers. + +When the transaction is created by the user (with create_rawtx or /spend), SOFT and HARD constraints apply, to prevent +the user from injecting a transaction to their local pool that cannot be confirmed. + +When creating a new block from transactions, SOFT and HARD constraints apply. + +Transactions in the unconfirmed pool are periodically checked for validity. (TODO: audit/implement this feature) +The transaction pool state transfer phases are as follows: + valid -> hard_invalid: remove + valid -> soft_invalid: mark as invalid + soft_invalid -> valid: mark as valid, broadcast + soft_invalid -> hard_invalid: remove + soft_invalid -> expired: remove + +HARD constraints can NEVER be violated. These include: + - Malformed transaction + - Double spends + - NOTE: Double spend verification must be done against the unspent output set, + the methods here do not operate on the unspent output set. + They accept a `uxIn coin.UxArray` argument, which are the unspents associated + with the transaction's inputs. The unspents must be queried from the unspent + output set first, thus if any unspent is not found for the input, it cannot be spent. + +SOFT constraints are based upon mutable parameters. These include: + - Max block size (transaction must not be larger than this value) + - Insufficient coin hour burn fee + - Timelocked distribution addresses + - Decimal place restrictions + +NOTE: Due to a bug which allowed overflowing output coin hours to be included in a block, + overflowing output coin hours are not checked when adding a signed block, so that the existing blocks can be processed. + When creating or receiving a single transaction from the network, it is treated as a HARD constraint. + +These methods should be called via the Blockchain object when possible, +using Blockchain.VerifyBlockTxnConstraints, Blockchain.VerifySingleTxnHardConstraints and Blockchain.VerifySingleTxnSoftHardConstraints +since data from the blockchain and unspent output set are required to fully validate a transaction. + +*/ + +var ( + // ErrTxnExceedsMaxBlockSize transaction size exceeds the max block size + ErrTxnExceedsMaxBlockSize = errors.New("Transaction size bigger than max block size") + // ErrTxnIsLocked transaction has locked address inputs + ErrTxnIsLocked = errors.New("Transaction has locked address inputs") +) + +// TxnSignedFlag indicates if the transaction is unsigned or not +type TxnSignedFlag int + +const ( + // TxnSigned is used for signed transactions + TxnSigned TxnSignedFlag = 1 + // TxnUnsigned is used for unsigned transactions + TxnUnsigned TxnSignedFlag = 2 +) + +// ErrTxnViolatesHardConstraint is returned when a transaction violates hard constraints +type ErrTxnViolatesHardConstraint struct { + Err error +} + +// NewErrTxnViolatesHardConstraint creates ErrTxnViolatesHardConstraint +func NewErrTxnViolatesHardConstraint(err error) error { + if err == nil { + return nil + } + return ErrTxnViolatesHardConstraint{ + Err: err, + } +} + +func (e ErrTxnViolatesHardConstraint) Error() string { + return fmt.Sprintf("Transaction violates hard constraint: %v", e.Err) +} + +// ErrTxnViolatesSoftConstraint is returned when a transaction violates soft constraints +type ErrTxnViolatesSoftConstraint struct { + Err error +} + +// NewErrTxnViolatesSoftConstraint creates ErrTxnViolatesSoftConstraint +func NewErrTxnViolatesSoftConstraint(err error) error { + if err == nil { + return nil + } + return ErrTxnViolatesSoftConstraint{ + Err: err, + } +} + +func (e ErrTxnViolatesSoftConstraint) Error() string { + return fmt.Sprintf("Transaction violates soft constraint: %v", e.Err) +} + +// ErrTxnViolatesUserConstraint is returned when a transaction violates user constraints +type ErrTxnViolatesUserConstraint struct { + Err error +} + +// NewErrTxnViolatesUserConstraint creates ErrTxnViolatesUserConstraint +func NewErrTxnViolatesUserConstraint(err error) error { + if err == nil { + return nil + } + return ErrTxnViolatesUserConstraint{ + Err: err, + } +} + +func (e ErrTxnViolatesUserConstraint) Error() string { + return fmt.Sprintf("Transaction violates user constraint: %v", e.Err) +} + +// VerifySingleTxnSoftConstraints returns an error if any "soft" constraint are violated. +// "soft" constraints are enforced at the network and block publication level, +// but are not enforced at the blockchain level. +// Clients will not accept blocks that violate hard constraints, but will +// accept blocks that violate soft constraints. +// Checks: +// * That the transaction size is not greater than the max block total transaction size +// * That the transaction burn enough coin hours (the fee) +// * That if that transaction does not spend from a locked distribution address +// * That the transaction does not create outputs with a higher decimal precision than is allowed +func VerifySingleTxnSoftConstraints(txn coin.Transaction, headTime uint64, uxIn coin.UxArray, distParams params.Distribution, verifyParams params.VerifyTxn) error { + if err := verifyTxnSoftConstraints(txn, headTime, uxIn, distParams, verifyParams); err != nil { + return NewErrTxnViolatesSoftConstraint(err) + } + + return nil +} + +func verifyTxnSoftConstraints(txn coin.Transaction, headTime uint64, uxIn coin.UxArray, distParams params.Distribution, verifyParams params.VerifyTxn) error { + txnSize, err := txn.Size() + if err != nil { + return ErrTxnExceedsMaxBlockSize + } + + if txnSize > verifyParams.MaxTransactionSize { + return ErrTxnExceedsMaxBlockSize + } + + f, err := fee.TransactionFee(&txn, headTime, uxIn) + if err != nil { + return err + } + + if err := fee.VerifyTransactionFee(&txn, f, verifyParams.BurnFactor); err != nil { + return err + } + + if TransactionIsLocked(distParams, uxIn) { + return ErrTxnIsLocked + } + + // Reject transactions that do not conform to decimal restrictions + for _, o := range txn.Out { + if err := params.DropletPrecisionCheck(verifyParams.MaxDropletPrecision, o.Coins); err != nil { + return err + } + } + + return nil +} + +// VerifySingleTxnHardConstraints returns an error if any "hard" constraints are violated. +// "hard" constraints are always enforced and if violated the transaction +// should not be included in any block and any block that includes such a transaction +// should be rejected. +// Checks: +// * That the inputs to the transaction exist +// * That the transaction does not create or destroy coins +// * That the signatures on the transaction are valid +// * That there are no duplicate ux inputs +// * That there are no duplicate outputs +// * That the transaction input and output coins do not overflow uint64 +// * That the transaction input and output hours do not overflow uint64 +// NOTE: Double spends are checked against the unspent output pool when querying for uxIn +func VerifySingleTxnHardConstraints(txn coin.Transaction, head coin.BlockHeader, uxIn coin.UxArray, signed TxnSignedFlag) error { + // Check for output hours overflow + // When verifying a single transaction, this is considered a hard constraint. + // For transactions inside of a block, it is a soft constraint. + // This is due to a bug which allowed some blocks to be published with overflowing hours, + // otherwise this would always be a hard constraint. + if _, err := txn.OutputHours(); err != nil { + return NewErrTxnViolatesHardConstraint(err) + } + + // Check for input CoinHours calculation overflow, since it is ignored by + // VerifyTransactionHoursSpending + for _, ux := range uxIn { + if _, err := ux.CoinHours(head.Time); err != nil { + return NewErrTxnViolatesHardConstraint(err) + } + } + + if err := verifyTxnHardConstraints(txn, head, uxIn, signed); err != nil { + return NewErrTxnViolatesHardConstraint(err) + } + + return nil +} + +// VerifyBlockTxnConstraints returns an error if any "hard" constraints are violated. +// "hard" constraints are always enforced and if violated the transaction +// should not be included in any block and any block that includes such a transaction +// should be rejected. +// Checks: +// * That the inputs to the transaction exist +// * That the transaction does not create or destroy coins +// * That the signatures on the transaction are valid +// * That there are no duplicate ux inputs +// * That there are no duplicate outputs +// * That the transaction input and output coins do not overflow uint64 +// * That the transaction input hours do not overflow uint64 +// NOTE: Double spends are checked against the unspent output pool when querying for uxIn +// NOTE: output hours overflow is treated as a soft constraint for transactions inside of a block, due to a bug +// which allowed some blocks to be published with overflowing output hours. +func VerifyBlockTxnConstraints(txn coin.Transaction, head coin.BlockHeader, uxIn coin.UxArray) error { + if err := verifyTxnHardConstraints(txn, head, uxIn, TxnSigned); err != nil { + return NewErrTxnViolatesHardConstraint(err) + } + + return nil +} + +func verifyTxnHardConstraints(txn coin.Transaction, head coin.BlockHeader, uxIn coin.UxArray, signed TxnSignedFlag) error { + //CHECKLIST: DONE: check for duplicate ux inputs/double spending + // NOTE: Double spends are checked against the unspent output pool when querying for uxIn + + //CHECKLIST: DONE: check that inputs of transaction have not been spent + //CHECKLIST: DONE: check there are no duplicate outputs + + // Q: why are coin hours based on last block time and not + // current time? + // A: no two computers will agree on system time. Need system clock + // indepedent timing that everyone agrees on. fee values would depend on + // local clock + + // Check transaction type and length + // Check for duplicate outputs + // Check for duplicate inputs + // Check for invalid hash + // Check for no inputs + // Check for no outputs + // Check for zero coin outputs + // Check valid looking signatures + + switch signed { + case TxnSigned: + if err := txn.Verify(); err != nil { + return err + } + + // Check that signatures are allowed to spend inputs + if err := txn.VerifyInputSignatures(uxIn); err != nil { + return err + } + case TxnUnsigned: + if err := txn.VerifyUnsigned(); err != nil { + return err + } + + // Check that signatures are allowed to spend inputs for signatures that are not null + if err := txn.VerifyPartialInputSignatures(uxIn); err != nil { + return err + } + default: + logger.Panic("Invalid TxnSignedFlag") + } + + uxOut := coin.CreateUnspents(head, txn) + + // Check that there are any duplicates within this set + // NOTE: This should already be checked by txn.Verify() + if uxOut.HasDupes() { + return errors.New("Duplicate output in transaction") + } + + // Check that no coins are created or destroyed + if err := coin.VerifyTransactionCoinsSpending(uxIn, uxOut); err != nil { + return err + } + + // Check that no hours are created + // NOTE: this check doesn't catch overflow errors in the addition of hours + // Some blocks had their hours overflow, and if this rule was checked here, + // existing blocks would invalidate. + // The hours overflow check is handled as an extra step in the SingleTxnHard constraints, + // to allow existing blocks which violate the overflow rules to pass. + return coin.VerifyTransactionHoursSpending(head.Time, uxIn, uxOut) +} + +// VerifySingleTxnUserConstraints applies additional verification for a +// transaction created by the user. +// This is distinct from transactions created by other users (i.e. received over the network), +// and from transactions included in blocks. +func VerifySingleTxnUserConstraints(txn coin.Transaction) error { + for _, o := range txn.Out { + if o.Address.Null() { + err := errors.New("Transaction output is sent to the null address") + return NewErrTxnViolatesUserConstraint(err) + } + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/apputil/apputil.go b/vendor/github.com/skycoin/skycoin/src/util/apputil/apputil.go new file mode 100644 index 000000000..caf088ddf --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/apputil/apputil.go @@ -0,0 +1,56 @@ +/* +Package apputil provides utility methods for cmd applications +*/ +package apputil + +import ( + "fmt" + "os" + "os/signal" + "runtime/pprof" + "syscall" +) + +// CatchInterrupt catches CTRL-C and closes the quit channel if it occurs. +// If CTRL-C is called again, the program stack is dumped and the process panics, +// so that shutdown hangs can be diagnosed. +func CatchInterrupt(quit chan<- struct{}) { + sigchan := make(chan os.Signal, 1) + signal.Notify(sigchan, os.Interrupt) + <-sigchan + signal.Stop(sigchan) + close(quit) + + // If ctrl-c is called again, panic so that the program state can be examined. + // Ctrl-c would be called again if program shutdown was stuck. + go CatchInterruptPanic() +} + +// CatchInterruptPanic catches os.Interrupt and panics +func CatchInterruptPanic() { + sigchan := make(chan os.Signal, 1) + signal.Notify(sigchan, os.Interrupt) + <-sigchan + signal.Stop(sigchan) + PrintProgramStatus() + panic("SIGINT") +} + +// CatchDebug catches SIGUSR1 and prints internal program state +func CatchDebug() { + sigchan := make(chan os.Signal, 1) + //signal.Notify(sigchan, syscall.SIGUSR1) + signal.Notify(sigchan, syscall.Signal(0xa)) // SIGUSR1 = Signal(0xa) + for range sigchan { + PrintProgramStatus() + } +} + +// PrintProgramStatus prints all goroutine data to stdout +func PrintProgramStatus() { + p := pprof.Lookup("goroutine") + if err := p.WriteTo(os.Stdout, 2); err != nil { + fmt.Println("ERROR:", err) + return + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/certutil/LICENSE b/vendor/github.com/skycoin/skycoin/src/util/certutil/LICENSE new file mode 100644 index 000000000..a7b7560c8 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/certutil/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2013-2015 The btcsuite developers + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/vendor/github.com/skycoin/skycoin/src/util/certutil/cert.go b/vendor/github.com/skycoin/skycoin/src/util/certutil/cert.go new file mode 100644 index 000000000..b40b1d61d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/certutil/cert.go @@ -0,0 +1,150 @@ +// Copyright (c) 2013-2015 The btcsuite developers +// Use of this source code is governed by an ISC +// license that can be found in the LICENSE file. +// Any modifications (c) 2018 Skycoin developers + +package certutil + +import ( + "bytes" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + _ "crypto/sha512" // Needed for RegisterHash in init + "crypto/x509" + "crypto/x509/pkix" + "encoding/pem" + "errors" + "fmt" + "math/big" + "net" + "os" + "time" + + "github.com/skycoin/skycoin/src/util/logging" +) + +var logger = logging.MustGetLogger("certutil") + +// NewTLSCertPair returns a new PEM-encoded x.509 certificate pair +// based on a 521-bit ECDSA private key. The machine's local interface +// addresses and all variants of IPv4 and IPv6 localhost are included as +// valid IP addresses. +func NewTLSCertPair(organization string, validUntil time.Time, extraHosts []string) (cert, key []byte, err error) { + now := time.Now() + if validUntil.Before(now) { + return nil, nil, errors.New("validUntil would create an already-expired certificate") + } + + priv, err := ecdsa.GenerateKey(elliptic.P521(), rand.Reader) + if err != nil { + return nil, nil, err + } + + // end of ASN.1 time + endOfTime := time.Date(2049, 12, 31, 23, 59, 59, 0, time.UTC) + if validUntil.After(endOfTime) { + validUntil = endOfTime + } + + serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) + serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) + if err != nil { + return nil, nil, fmt.Errorf("failed to generate serial number: %s", err) + } + + host, err := os.Hostname() + if err != nil { + return nil, nil, err + } + + ipAddresses := []net.IP{net.ParseIP("127.0.0.1"), net.ParseIP("::1")} + dnsNames := []string{host} + if host != "localhost" { + dnsNames = append(dnsNames, "localhost") + } + + addIP := func(ipAddr net.IP) { + for _, ip := range ipAddresses { + if net.IP.Equal(ip, ipAddr) { + return + } + } + ipAddresses = append(ipAddresses, ipAddr) + } + addHost := func(host string) { + for _, dnsName := range dnsNames { + if host == dnsName { + return + } + } + dnsNames = append(dnsNames, host) + } + + addrs, err := net.InterfaceAddrs() + if err != nil { + // net.InterfaceAddrs will fail on some systems - ignore if this happens + logger.WithError(err).Error("NewTLSCertPair: net.InterfaceAddrs failed") + } + for _, a := range addrs { + ipAddr, _, err := net.ParseCIDR(a.String()) + if err == nil { + addIP(ipAddr) + } + } + + for _, hostStr := range extraHosts { + host, _, err := net.SplitHostPort(hostStr) + if err != nil { + host = hostStr + } + if ip := net.ParseIP(host); ip != nil { + addIP(ip) + } else { + addHost(host) + } + } + + template := x509.Certificate{ + SerialNumber: serialNumber, + Subject: pkix.Name{ + Organization: []string{organization}, + CommonName: host, + }, + NotBefore: now.Add(-time.Hour * 24), + NotAfter: validUntil, + + KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | + x509.KeyUsageCertSign, + IsCA: true, // so can sign self. + BasicConstraintsValid: true, + + DNSNames: dnsNames, + IPAddresses: ipAddresses, + } + + derBytes, err := x509.CreateCertificate(rand.Reader, &template, + &template, &priv.PublicKey, priv) + if err != nil { + return nil, nil, fmt.Errorf("failed to create certificate: %v", err) + } + + certBuf := &bytes.Buffer{} + err = pem.Encode(certBuf, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes}) + if err != nil { + return nil, nil, fmt.Errorf("failed to encode certificate: %v", err) + } + + keybytes, err := x509.MarshalECPrivateKey(priv) + if err != nil { + return nil, nil, fmt.Errorf("failed to marshal private key: %v", err) + } + + keyBuf := &bytes.Buffer{} + err = pem.Encode(keyBuf, &pem.Block{Type: "EC PRIVATE KEY", Bytes: keybytes}) + if err != nil { + return nil, nil, fmt.Errorf("failed to encode private key: %v", err) + } + + return certBuf.Bytes(), keyBuf.Bytes(), nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/droplet/droplet.go b/vendor/github.com/skycoin/skycoin/src/util/droplet/droplet.go new file mode 100644 index 000000000..44b454408 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/droplet/droplet.go @@ -0,0 +1,95 @@ +/* +Package droplet provides methods for handling droplet integers and string. + +A droplet is the smallest possible coin amount in Skycoin, equal to 1/1000000 of a whole skycoin. +*/ +package droplet + +import ( + "errors" + "math" + + "github.com/shopspring/decimal" + + logging "github.com/skycoin/skycoin/src/util/logging" +) + +const ( + // Exponent is the number of decimal places held by droplets + Exponent = 6 + // Multiplier is how much to multiply coins by to get droplets + Multiplier = 1e6 +) + +var ( + // ErrNegativeValue is returned if a balance string is a negative number + ErrNegativeValue = errors.New("Droplet string conversion failed: Negative balance") + // ErrTooManyDecimals is returned if a balance string has more than 6 decimal places + ErrTooManyDecimals = errors.New("Droplet string conversion failed: Too many decimal places") + // ErrTooLarge is returned if a balance string is greater than math.MaxInt64 + ErrTooLarge = errors.New("Droplet string conversion failed: Value is too large") + + logger = logging.MustGetLogger("convert") + maxDecimal decimal.Decimal +) + +func init() { + maxInt64 := "9223372036854775807" + max, err := decimal.NewFromString(maxInt64) + if err != nil { + panic(err) + } + + maxDecimal = max +} + +// FromString converts a skycoin balance string with decimal places to uint64 droplets. +// For example, "123.000456" becomes 123000456 +func FromString(b string) (uint64, error) { + d, err := decimal.NewFromString(b) + if err != nil { + return 0, err + } + + // Values must be zero or positive + if d.Sign() == -1 { + return 0, ErrNegativeValue + } + + // Skycoins have a maximum of 6 decimal places + if d.Exponent() < -Exponent { + return 0, ErrTooManyDecimals + } + + // Multiply the coin balance by 1e6 to obtain droplets amount + e := d.Shift(Exponent) + + // Check that there are no decimal places remaining. This error should not + // occur, because of the earlier check of Exponent() + if e.Exponent() < 0 { + logger.Critical().Errorf("Balance still has decimals after converting to droplets: %s", b) + return 0, ErrTooManyDecimals + } + + // Values greater than math.MaxInt64 will overflow after conversion to int64 + // using decimal.IntPart() + if e.GreaterThan(maxDecimal) { + return 0, ErrTooLarge + } + + return uint64(e.IntPart()), nil +} + +// ToString converts droplets to a skycoin balance fixed-point decimal string. +// String will always have a decimal precision of droplet.Exponent (6). +// For example, 123000456 becomes "123.000456" and +// 123000000 becomes "123.000000". +func ToString(n uint64) (string, error) { + if n > math.MaxInt64 { + return "", ErrTooLarge + } + + d := decimal.New(int64(n), -Exponent) + + return d.StringFixed(Exponent), nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/elapse/elapser.go b/vendor/github.com/skycoin/skycoin/src/util/elapse/elapser.go new file mode 100644 index 000000000..27fd0a45f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/elapse/elapser.go @@ -0,0 +1,72 @@ +/* +Package elapse provides time measuring instruments +*/ +package elapse + +import ( + "time" + + "github.com/skycoin/skycoin/src/util/logging" +) + +// Elapser measures time elapsed for an operation. It is not thread-safe, use a different elapser per thread. +type Elapser struct { + name *string + startTime time.Time + elapsedThreshold time.Duration + Done chan bool + logger *logging.Logger +} + +// NewElapser creates an Elapser +func NewElapser(elapsedThreshold time.Duration, logger *logging.Logger) *Elapser { + elapser := &Elapser{ + elapsedThreshold: elapsedThreshold, + Done: make(chan bool, 100), + logger: logger, + } + return elapser +} + +// CheckForDone checks if the elapser has triggered and records the elapsed time +func (e *Elapser) CheckForDone() { + select { + case <-e.Done: + e.Elapsed() + default: + } +} + +// Register begins an operation to measure +func (e *Elapser) Register(name string) { + e.CheckForDone() + e.name = &name + e.startTime = time.Now() + e.Done <- true +} + +// ShowCurrentTime logs the elapsed time so far +func (e *Elapser) ShowCurrentTime(step string) { + stopTime := time.Now() + if e.name == nil { + e.logger.Warning("no registered events for elapsing, but found Elapser.ShowCurrentTime calling") + return + } + elapsed := stopTime.Sub(e.startTime) + e.logger.Infof("%s[%s] elapsed %s", *e.name, step, elapsed) + +} + +// Elapsed stops measuring an operation and logs the elapsed time if it exceeds the configured threshold +func (e *Elapser) Elapsed() { + stopTime := time.Now() + if e.name == nil { + e.logger.Warning("no registered events for elapsing, but found Elapser.Elapsed calling") + return + } + elapsed := stopTime.Sub(e.startTime) + if elapsed >= e.elapsedThreshold { + e.logger.Warningf("%s elapsed %s", *e.name, elapsed) + } + e.name = nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/fee/fee.go b/vendor/github.com/skycoin/skycoin/src/util/fee/fee.go new file mode 100644 index 000000000..ec5e80bb0 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/fee/fee.go @@ -0,0 +1,99 @@ +/* +Package fee provides methods to calculate and verify transaction fees +*/ +package fee + +import ( + "errors" + + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/util/mathutil" +) + +var ( + // ErrTxnNoFee is returned if a transaction has no coinhour fee + ErrTxnNoFee = errors.New("Transaction has zero coinhour fee") + + // ErrTxnInsufficientFee is returned if a transaction's coinhour burn fee is not enough + ErrTxnInsufficientFee = errors.New("Transaction coinhour fee minimum not met") + + // ErrTxnInsufficientCoinHours is returned if a transaction has more coinhours in its outputs than its inputs + ErrTxnInsufficientCoinHours = errors.New("Insufficient coinhours for transaction outputs") +) + +// VerifyTransactionFee performs additional transaction verification at the unconfirmed pool level. +// This checks tunable params that should prevent the transaction from +// entering the blockchain, but cannot be done at the blockchain level because +// they may be changed. +func VerifyTransactionFee(t *coin.Transaction, fee uint64, burnFactor uint32) error { + hours, err := t.OutputHours() + if err != nil { + return err + } + return VerifyTransactionFeeForHours(hours, fee, burnFactor) +} + +// VerifyTransactionFeeForHours verifies the fee given fee and hours, +// where hours is the number of hours in a transaction's outputs, +// and hours+fee is the number of hours in a transaction's inputs +func VerifyTransactionFeeForHours(hours, fee uint64, burnFactor uint32) error { + // Require non-zero coinhour fee + if fee == 0 { + return ErrTxnNoFee + } + + // Calculate total number of coinhours + total, err := mathutil.AddUint64(hours, fee) + if err != nil { + return errors.New("Hours and fee overflow") + } + + // Calculate the required fee + requiredFee := RequiredFee(total, burnFactor) + + // Ensure that the required fee is met + if fee < requiredFee { + return ErrTxnInsufficientFee + } + + return nil +} + +// RequiredFee returns the coinhours fee required for an amount of hours +// The required fee is calculated as hours/burnFactor, rounded up. +func RequiredFee(hours uint64, burnFactor uint32) uint64 { + feeHours := hours / uint64(burnFactor) + if hours%uint64(burnFactor) != 0 { + feeHours++ + } + + return feeHours +} + +// RemainingHours returns the amount of coinhours leftover after paying the fee for the input. +func RemainingHours(hours uint64, burnFactor uint32) uint64 { + fee := RequiredFee(hours, burnFactor) + return hours - fee +} + +// TransactionFee calculates the current transaction fee in coinhours of a Transaction. +// Returns ErrTxnInsufficientCoinHours if input hours is less than output hours. +func TransactionFee(tx *coin.Transaction, headTime uint64, inUxs coin.UxArray) (uint64, error) { + // Compute input hours + inHours, err := inUxs.CoinHours(headTime) + if err != nil { + return 0, err + } + + // Compute output hours + outHours, err := tx.OutputHours() + if err != nil { + return 0, err + } + + if inHours < outHours { + return 0, ErrTxnInsufficientCoinHours + } + + return inHours - outHours, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/file/file.go b/vendor/github.com/skycoin/skycoin/src/util/file/file.go new file mode 100644 index 000000000..b64aa05e4 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/file/file.go @@ -0,0 +1,322 @@ +// Package file provides filesystem related utilities +package file + +import ( + "encoding/json" + "errors" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "runtime" + "strings" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/util/logging" +) + +var ( + // ErrEmptyDirectoryName is returned by constructing the full path + // of data directory if the passed argument is empty + ErrEmptyDirectoryName = errors.New("data directory must not be empty") + // ErrDotDirectoryName is returned by constructing the full path of + // data directory if the passed argument is "." + ErrDotDirectoryName = errors.New("data directory must not be equal to \".\"") + + logger = logging.MustGetLogger("file") +) + +// InitDataDir Joins dir with the user's $HOME directory. +// If $HOME cannot be determined, uses the current working directory. +// dir must not be the empty string +func InitDataDir(dir string) (string, error) { + dir, err := buildDataDir(dir) + if err != nil { + return "", err + } + + // check if dir already exists + st, err := os.Stat(dir) + if !os.IsNotExist(err) { + if !st.IsDir() { + return "", fmt.Errorf("%s is not a directory", dir) + } + // dir already exists + return dir, nil + } + + if err := os.MkdirAll(dir, os.FileMode(0700)); err != nil { + logger.Errorf("Failed to create directory %s: %v", dir, err) + return "", err + } + + logger.Infof("Created data directory %s", dir) + return dir, nil +} + +// Construct the full data directory by adding to $HOME or ./ +func buildDataDir(dir string) (string, error) { + if dir == "" { + logger.Error("data directory is empty") + return "", ErrEmptyDirectoryName + } + + home := filepath.Clean(UserHome()) + wd, err := os.Getwd() + if err != nil { + return "", err + } + wd = filepath.Clean(wd) + + fullDir, err := filepath.Abs(dir) + + if err != nil { + return "", err + } + + // The joined directory must not be equal to $HOME or a parent path of $HOME + // The joined directory must not be equal to `pwd` or a parent path of `pwd` + if strings.HasPrefix(home, fullDir) || strings.HasPrefix(wd, fullDir) { + logger.Errorf("join(%[1]s, %[2]s) == %[1]s", home, dir) + return "", ErrDotDirectoryName + } + + return fullDir, nil +} + +// UserHome returns the current user home path +func UserHome() string { + // os/user relies on cgo which is disabled when cross compiling + // use fallbacks for various OSes instead + // usr, err := user.Current() + // if err == nil { + // return usr.HomeDir + // } + if runtime.GOOS == "windows" { + home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH") + if home == "" { + home = os.Getenv("USERPROFILE") + } + return home + } + + return os.Getenv("HOME") +} + +// LoadJSON load json file +func LoadJSON(filename string, thing interface{}) error { + file, err := os.Open(filename) + if err != nil { + return err + } + defer file.Close() + + dec := json.NewDecoder(file) + dec.UseNumber() + return dec.Decode(thing) +} + +// SaveJSON write value into json file +func SaveJSON(filename string, thing interface{}, mode os.FileMode) error { + data, err := json.MarshalIndent(thing, "", " ") + if err != nil { + return err + } + return SaveBinary(filename, data, mode) +} + +// SaveJSONSafe saves json to disk, but refuses if file already exists +func SaveJSONSafe(filename string, thing interface{}, mode os.FileMode) error { + b, err := json.MarshalIndent(thing, "", " ") + if err != nil { + return err + } + flags := os.O_WRONLY | os.O_CREATE | os.O_EXCL + f, err := os.OpenFile(filename, flags, mode) + if err != nil { + return err + } + defer f.Close() + n, err := f.Write(b) + if n != len(b) && err != nil { + err = errors.New("Failed to save complete file") + } + if err != nil { + if removeErr := os.Remove(filename); removeErr != nil { + logger.WithError(removeErr).Warningf("os.Remove(%s) failed", filename) + } + return err + } + return f.Sync() +} + +// SaveBinary persists data into given file in binary, +// backup the data to `tmp` wallet file and then write data +// to target wallet file. Remove the tmp file in the end of +// this function. In this way, the wallet data would not be lost +func SaveBinary(filename string, data []byte, mode os.FileMode) error { + // Write the new file to a temporary + dataHash := cipher.SumSHA256(data) + tmpname := filename + ".tmp." + dataHash.Hex()[:8] + if err := ioutil.WriteFile(tmpname, data, mode); err != nil { + return err + } + + if err := ioutil.WriteFile(filename, data, mode); err != nil { + return err + } + + return os.Remove(tmpname) +} + +//TODO: require file named after application and then hashcode, in static directory + +// ResolveResourceDirectory searches locations for a research directory and returns absolute path +func ResolveResourceDirectory(path string) string { + workDir, err := filepath.Abs(filepath.Dir(os.Args[0])) + if err != nil { + logger.Panic(err) + } + + _, rtFilename, _, _ := runtime.Caller(1) + rtDirectory := filepath.Dir(rtFilename) + + pathAbs, err := filepath.Abs(path) + if err != nil { + logger.Panic(err) + } + fmt.Println("abs path:", pathAbs) + + fmt.Printf("runtime.Caller= %s \n", rtFilename) + //fmt.Printf("Filepath Raw= %s \n") + fmt.Printf("Filepath Directory= %s \n", filepath.Dir(path)) + fmt.Printf("Filepath Absolute Directory= %s \n", pathAbs) + + fmt.Printf("Working Directory= %s \n", workDir) + fmt.Printf("Runtime Filename= %s \n", rtFilename) + fmt.Printf("Runtime Directory= %s \n", rtDirectory) + + //dir1 := filepath.Join(workDir, filepath.Dir(path)) + //fmt.Printf("Dir1= %s \n", dir1) + + dirs := []string{ + pathAbs, //try direct path first + filepath.Join(workDir, filepath.Dir(path)), //default + //filepath.Join(rt_directory, "./", filepath.Dir(path)), + filepath.Join(rtDirectory, "./", filepath.Dir(path)), + filepath.Join(rtDirectory, "../", filepath.Dir(path)), + filepath.Join(rtDirectory, "../../", filepath.Dir(path)), + filepath.Join(rtDirectory, "../../../", filepath.Dir(path)), + } + + //for i, dir := range dirs { + // fmt.Printf("Dir[%d]= %s \n", i, dir) + //} + + //must be an absolute path + //error and problem and crash if not absolute path + for i := range dirs { + absPath, err := filepath.Abs(dirs[i]) + if err != nil { + logger.WithError(err).Errorf("filepath.Abs(%s) failed", dirs[i]) + continue + } + dirs[i] = absPath + } + + for _, dir := range dirs { + if _, err := os.Stat(dir); !os.IsNotExist(err) { + fmt.Printf("ResolveResourceDirectory: static resource dir= %s \n", dir) + return dir + } + } + logger.Panic("GUI directory not found") + return "" +} + +// DetermineResourcePath DEPRECATE +func DetermineResourcePath(staticDir string, resourceDir string, devDir string) (string, error) { + //check "dev" directory first + appLoc := filepath.Join(staticDir, devDir) + // if !strings.HasPrefix(appLoc, "/") { + // // Prepend the binary's directory path if appLoc is relative + // dir, err := filepath.Abs(filepath.Dir(os.Args[0])) + // if err != nil { + // return "", err + // } + + // appLoc = filepath.Join(dir, appLoc) + // } + if _, err := os.Stat(appLoc); os.IsNotExist(err) { + //check dist directory + appLoc = filepath.Join(staticDir, resourceDir) + // if !strings.HasPrefix(appLoc, "/") { + // // Prepend the binary's directory path if appLoc is relative + // dir, err := filepath.Abs(filepath.Dir(os.Args[0])) + // if err != nil { + // return "", err + // } + + // appLoc = filepath.Join(dir, appLoc) + // } + + if _, err := os.Stat(appLoc); os.IsNotExist(err) { + return "", err + } + } + + return appLoc, nil +} + +// Copy copies file. Will overwrite dst if dst exists. +func Copy(dst, src string) (err error) { + f, err := os.Open(src) + if err != nil { + return err + } + + defer func() { + cerr := f.Close() + if err == nil { + err = cerr + } + }() + + out, err := os.Create(dst) + if err != nil { + return err + } + + defer func() { + cerr := out.Close() + if err == nil { + err = cerr + } + }() + + _, err = io.Copy(out, f) + return +} + +// Exists checks whether the file exists in the file system +func Exists(fn string) (bool, error) { + _, err := os.Stat(fn) + if os.IsNotExist(err) { + return false, nil + } + if err != nil { + return false, err + } + return true, nil +} + +// IsWritable checks if the file is writable +func IsWritable(name string) bool { + f, err := os.OpenFile(name, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) + if err != nil && os.IsPermission(err) { + return false + } + f.Close() + return true +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/gziphandler/LICENSE b/vendor/github.com/skycoin/skycoin/src/util/gziphandler/LICENSE new file mode 100644 index 000000000..da6d91b7e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/gziphandler/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2018 CJEnright +Copyright (c) 2020 Skycoin Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/skycoin/skycoin/src/util/gziphandler/gziphandler.go b/vendor/github.com/skycoin/skycoin/src/util/gziphandler/gziphandler.go new file mode 100644 index 000000000..d76c329ef --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/gziphandler/gziphandler.go @@ -0,0 +1,53 @@ +package gziphandler + +// https://gist.github.com/CJEnright/bc2d8b8dc0c1389a9feeddb110f822d7 + +import ( + "compress/gzip" + "io" + "io/ioutil" + "net/http" + "strings" + "sync" +) + +var gzPool = sync.Pool{ + New: func() interface{} { + w := gzip.NewWriter(ioutil.Discard) + return w + }, +} + +type gzipResponseWriter struct { + io.Writer + http.ResponseWriter +} + +func (w *gzipResponseWriter) WriteHeader(status int) { + w.Header().Del("Content-Length") + w.ResponseWriter.WriteHeader(status) +} + +func (w *gzipResponseWriter) Write(b []byte) (int, error) { + return w.Writer.Write(b) +} + +// New creates a gzip compression HTTP middleware +func New(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if !strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") { + next.ServeHTTP(w, r) + return + } + + w.Header().Set("Content-Encoding", "gzip") + + gz := gzPool.Get().(*gzip.Writer) + defer gzPool.Put(gz) + + gz.Reset(w) + defer gz.Close() + + next.ServeHTTP(&gzipResponseWriter{ResponseWriter: w, Writer: gz}, r) + }) +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/http/error.go b/vendor/github.com/skycoin/skycoin/src/util/http/error.go new file mode 100644 index 000000000..f9e157620 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/http/error.go @@ -0,0 +1,68 @@ +// Package httphelper provides HTTP related utility methods +package httphelper + +import ( + "fmt" + "net/http" +) + +// ErrorXXX writes an error message with status code +func ErrorXXX(w http.ResponseWriter, status int, msg string) { + httpMsg := fmt.Sprintf("%d %s", status, http.StatusText(status)) + if msg != "" { + httpMsg = fmt.Sprintf("%s - %s", httpMsg, msg) + } + + http.Error(w, httpMsg, status) +} + +// Error400 respond with a 400 error and include a message +func Error400(w http.ResponseWriter, msg string) { + ErrorXXX(w, http.StatusBadRequest, msg) +} + +// Error401 respond with a 401 error +func Error401(w http.ResponseWriter, auth, msg string) { + w.Header().Set("WWW-Authenticate", auth) + ErrorXXX(w, http.StatusUnauthorized, msg) +} + +// Error403 respond with a 403 error and include a message +func Error403(w http.ResponseWriter, msg string) { + ErrorXXX(w, http.StatusForbidden, msg) +} + +// Error404 respond with a 404 error and include a message +func Error404(w http.ResponseWriter, msg string) { + ErrorXXX(w, http.StatusNotFound, msg) +} + +// Error405 respond with a 405 error +func Error405(w http.ResponseWriter) { + ErrorXXX(w, http.StatusMethodNotAllowed, "") +} + +// Error415 respond with a 415 error +func Error415(w http.ResponseWriter) { + ErrorXXX(w, http.StatusUnsupportedMediaType, "") +} + +// Error422 response with a 422 error and include a message +func Error422(w http.ResponseWriter, msg string) { + ErrorXXX(w, http.StatusUnprocessableEntity, msg) +} + +// Error500 respond with a 500 error and include a message +func Error500(w http.ResponseWriter, msg string) { + ErrorXXX(w, http.StatusInternalServerError, msg) +} + +// Error501 respond with a 501 error +func Error501(w http.ResponseWriter) { + ErrorXXX(w, http.StatusNotImplemented, "") +} + +// Error503 respond with a 503 error and include a message +func Error503(w http.ResponseWriter, msg string) { + ErrorXXX(w, http.StatusServiceUnavailable, msg) +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/http/json.go b/vendor/github.com/skycoin/skycoin/src/util/http/json.go new file mode 100644 index 000000000..6ddedfdd9 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/http/json.go @@ -0,0 +1,190 @@ +package httphelper + +// Utilities for sending JSON + +import ( + "encoding/json" + "fmt" + "net/http" + "strconv" + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/util/droplet" + "github.com/skycoin/skycoin/src/util/logging" +) + +// SendJSONOr500 writes an object as JSON, writing a 500 error if it fails +func SendJSONOr500(log *logging.Logger, w http.ResponseWriter, m interface{}) { + out, err := json.MarshalIndent(m, "", " ") + if err != nil { + Error500(w, "json.MarshalIndent failed") + return + } + + w.Header().Add("Content-Type", "application/json") + + if _, err := w.Write(out); err != nil { + log.WithError(err).Error("http Write failed") + } +} + +// Duration JSON type copied from https://github.com/vrischmann/jsonutil, MIT License + +// Duration is a wrapper around time.Duration which implements json.Unmarshaler and json.Marshaler. +// It marshals and unmarshals the duration as a string in the format accepted by time.ParseDuration and returned by time.Duration.String. +type Duration struct { + time.Duration +} + +// FromDuration is a convenience factory to create a Duration instance from the +// given time.Duration value. +func FromDuration(d time.Duration) Duration { + return Duration{d} +} + +// MarshalJSON implements the json.Marshaler interface. The duration is a quoted-string in the format accepted by time.ParseDuration and returned by time.Duration.String. +func (d Duration) MarshalJSON() ([]byte, error) { + return []byte(`"` + d.String() + `"`), nil +} + +// UnmarshalJSON implements the json.Unmarshaler interface. The duration is expected to be a quoted-string of a duration in the format accepted by time.ParseDuration. +func (d *Duration) UnmarshalJSON(data []byte) error { + var s string + if err := json.Unmarshal(data, &s); err != nil { + return err + } + + tmp, err := time.ParseDuration(s) + if err != nil { + return err + } + + d.Duration = tmp + + return nil +} + +// Address is a wrapper around cipher.Address which implements json.Unmarshaler and json.Marshaler. +// It marshals and unmarshals the address as a string +type Address struct { + cipher.Address +} + +// UnmarshalJSON unmarshals a string address to a cipher.Address +func (a *Address) UnmarshalJSON(b []byte) error { + var s string + if err := json.Unmarshal(b, &s); err != nil { + return err + } + + tmp, err := cipher.DecodeBase58Address(s) + if err != nil { + return fmt.Errorf("invalid address: %v", err) + } + + a.Address = tmp + + return nil +} + +// MarshalJSON marshals a cipher.Address in its string representation +func (a Address) MarshalJSON() ([]byte, error) { + return []byte(`"` + a.Address.String() + `"`), nil +} + +// SHA256 is a wrapper around cipher.SHA256 which implements json.Unmarshaler and json.Marshaler. +// It marshals and unmarshals the address as a string +type SHA256 struct { + cipher.SHA256 +} + +// UnmarshalJSON unmarshals a string address to a cipher.SHA256 +func (a *SHA256) UnmarshalJSON(b []byte) error { + var s string + if err := json.Unmarshal(b, &s); err != nil { + return err + } + + tmp, err := cipher.SHA256FromHex(s) + if err != nil { + return fmt.Errorf("invalid SHA256 hash: %v", err) + } + + a.SHA256 = tmp + + return nil +} + +// MarshalJSON marshals a cipher.SHA256 in its string representation +func (a SHA256) MarshalJSON() ([]byte, error) { + return []byte(`"` + a.SHA256.Hex() + `"`), nil +} + +// Coins is a wrapper around uint64 which implements json.Unmarshaler and json.Marshaler. +// It unmarshals a fixed-point decimal string to droplets and vice versa +type Coins uint64 + +// UnmarshalJSON unmarshals a fixed-point decimal string to droplets +func (c *Coins) UnmarshalJSON(b []byte) error { + var s string + if err := json.Unmarshal(b, &s); err != nil { + return err + } + + tmp, err := droplet.FromString(s) + if err != nil { + return err + } + + *c = Coins(tmp) + + return nil +} + +// MarshalJSON marshals droplets to a fixed-point decimal string +func (c Coins) MarshalJSON() ([]byte, error) { + s, err := droplet.ToString(uint64(c)) + if err != nil { + return nil, err + } + + return []byte(`"` + s + `"`), nil +} + +// Value returns the underlying uint64 value +func (c Coins) Value() uint64 { + return uint64(c) +} + +// Hours is a wrapper around uint64 which implements json.Unmarshaler and json.Marshaler. +// It unmarshals a fixed-point decimal string to droplets and vice versa +type Hours uint64 + +// UnmarshalJSON unmarshals a fixed-point decimal string to droplets +func (h *Hours) UnmarshalJSON(b []byte) error { + var s string + if err := json.Unmarshal(b, &s); err != nil { + return err + } + + tmp, err := strconv.ParseUint(s, 10, 64) + if err != nil { + return fmt.Errorf("invalid hours value: %v", err) + } + + *h = Hours(tmp) + + return nil +} + +// MarshalJSON marshals droplets to a fixed-point decimal string +func (h Hours) MarshalJSON() ([]byte, error) { + s := fmt.Sprint(h) + return []byte(`"` + s + `"`), nil +} + +// Value returns the underlying uint64 value +func (h Hours) Value() uint64 { + return uint64(h) +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/http/log.go b/vendor/github.com/skycoin/skycoin/src/util/http/log.go new file mode 100644 index 000000000..b89744bf7 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/http/log.go @@ -0,0 +1,75 @@ +package httphelper + +import ( + "bytes" + "encoding/json" + "net/http" + "strings" + "time" + + "github.com/sirupsen/logrus" +) + +type responseWithError struct { + Data *json.RawMessage `json:"data,omitempty"` + Error *struct { + Message string `json:"message"` + Code int `json:"code"` + } `json:"error,omitempty"` +} + +// ElapsedHandler records and logs an HTTP request with the elapsed time and status code +func ElapsedHandler(logger logrus.FieldLogger, handler http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + lrw := newWrappedResponseWriter(w) + start := time.Now() + handler.ServeHTTP(lrw, r) + logMethod := logger.Infof + if lrw.statusCode >= 400 { + var errMsg string + if strings.Contains(r.URL.RequestURI(), "v2") { + rsp := responseWithError{} + err := json.NewDecoder(strings.NewReader(lrw.response.String())).Decode(&rsp) + // Incorrect URI address would return "404 Not Found" error, which would fail + // the json decoding. + if err != nil && strings.Contains(err.Error(), "json: cannot unmarshal") { + errMsg = lrw.response.String() + } else { + errMsg = rsp.Error.Message + } + } + + logMethod = logger.WithFields(logrus.Fields{ + "body": strings.TrimSpace(errMsg), + }).Errorf + } + logMethod("%d %s %s %s", lrw.statusCode, r.Method, r.URL.Path, time.Since(start)) + }) +} + +type wrappedResponseWriter struct { + http.ResponseWriter + statusCode int + response bytes.Buffer +} + +func newWrappedResponseWriter(w http.ResponseWriter) *wrappedResponseWriter { + return &wrappedResponseWriter{ + ResponseWriter: w, + statusCode: http.StatusOK, + response: bytes.Buffer{}, + } +} + +func (lrw *wrappedResponseWriter) WriteHeader(code int) { + lrw.statusCode = code + lrw.ResponseWriter.WriteHeader(code) +} + +func (lrw *wrappedResponseWriter) Write(buff []byte) (int, error) { + retVal, err := lrw.ResponseWriter.Write(buff) + if lrw.statusCode >= 400 { + lrw.response.Write(buff) + } + return retVal, err +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/iputil/iputil.go b/vendor/github.com/skycoin/skycoin/src/util/iputil/iputil.go new file mode 100644 index 000000000..1dccbd9cd --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/iputil/iputil.go @@ -0,0 +1,66 @@ +/* +Package iputil provides IP address related utility methods +*/ +package iputil + +import ( + "errors" + "net" + "strconv" +) + +var ( + // ErrMissingIP IP missing from ip:port string + ErrMissingIP = errors.New("IP missing from ip:port address") + // ErrInvalidPort port invalid in ip:port string + ErrInvalidPort = errors.New("Port invalid in ip:port address") + // ErrNoLocalIP no localhost IP found in system net interfaces + ErrNoLocalIP = errors.New("No local IP found") +) + +// LocalhostIP returns the address for localhost on the machine +func LocalhostIP() (string, error) { + tt, err := net.Interfaces() + if err != nil { + return "", err + } + for _, t := range tt { + aa, err := t.Addrs() + if err != nil { + return "", err + } + for _, a := range aa { + if ipnet, ok := a.(*net.IPNet); ok && ipnet.IP.IsLoopback() { + return ipnet.IP.String(), nil + } + } + } + return "", ErrNoLocalIP +} + +// IsLocalhost returns true if addr is a localhost address +// Works for both ipv4 and ipv6 addresses. +func IsLocalhost(addr string) bool { + return net.ParseIP(addr).IsLoopback() || addr == "localhost" +} + +// SplitAddr splits an ip:port string to ip, port. +// Works for both ipv4 and ipv6 addresses. +// If the IP is not specified, returns an error. +func SplitAddr(addr string) (string, uint16, error) { + ip, port, err := net.SplitHostPort(addr) + if err != nil { + return "", 0, err + } + + if ip == "" { + return "", 0, ErrMissingIP + } + + port64, err := strconv.ParseUint(port, 10, 16) + if err != nil { + return "", 0, ErrInvalidPort + } + + return ip, uint16(port64), nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/logging/formatter.go b/vendor/github.com/skycoin/skycoin/src/util/logging/formatter.go new file mode 100644 index 000000000..e9066f4cc --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/logging/formatter.go @@ -0,0 +1,441 @@ +package logging + +import ( + "bytes" + "fmt" + "io" + "os" + "sort" + "strings" + "sync" + "time" + + "github.com/mgutz/ansi" + "github.com/sirupsen/logrus" + "golang.org/x/crypto/ssh/terminal" +) + +const defaultTimestampFormat = time.RFC3339 + +var ( + baseTimestamp = time.Now() + defaultColorScheme = &ColorScheme{ + InfoLevelStyle: "green", + WarnLevelStyle: "yellow", + ErrorLevelStyle: "red", + FatalLevelStyle: "red", + PanicLevelStyle: "red", + DebugLevelStyle: "blue", + PrefixStyle: "cyan", + TimestampStyle: "black+h", + CallContextStyle: "black+h", + CriticalStyle: "magenta+h", + } + noColorsColorScheme = &compiledColorScheme{ + InfoLevelColor: ansi.ColorFunc(""), + WarnLevelColor: ansi.ColorFunc(""), + ErrorLevelColor: ansi.ColorFunc(""), + FatalLevelColor: ansi.ColorFunc(""), + PanicLevelColor: ansi.ColorFunc(""), + DebugLevelColor: ansi.ColorFunc(""), + PrefixColor: ansi.ColorFunc(""), + TimestampColor: ansi.ColorFunc(""), + CallContextColor: ansi.ColorFunc(""), + CriticalColor: ansi.ColorFunc(""), + } + defaultCompiledColorScheme = compileColorScheme(defaultColorScheme) +) + +func miniTS() int { + return int(time.Since(baseTimestamp) / time.Second) +} + +// ColorScheme configures the logging output colors +type ColorScheme struct { + InfoLevelStyle string + WarnLevelStyle string + ErrorLevelStyle string + FatalLevelStyle string + PanicLevelStyle string + DebugLevelStyle string + PrefixStyle string + TimestampStyle string + CallContextStyle string + CriticalStyle string +} + +type compiledColorScheme struct { + InfoLevelColor func(string) string + WarnLevelColor func(string) string + ErrorLevelColor func(string) string + FatalLevelColor func(string) string + PanicLevelColor func(string) string + DebugLevelColor func(string) string + PrefixColor func(string) string + TimestampColor func(string) string + CallContextColor func(string) string + CriticalColor func(string) string +} + +// TextFormatter formats log output +type TextFormatter struct { + // Set to true to bypass checking for a TTY before outputting colors. + ForceColors bool + + // Force disabling colors. For a TTY colors are enabled by default. + DisableColors bool + + // Force formatted layout, even for non-TTY output. + ForceFormatting bool + + // Disable timestamp logging. useful when output is redirected to logging + // system that already adds timestamps. + DisableTimestamp bool + + // Disable the conversion of the log levels to uppercase + DisableUppercase bool + + // Enable logging the full timestamp when a TTY is attached instead of just + // the time passed since beginning of execution. + FullTimestamp bool + + // Timestamp format to use for display when a full timestamp is printed. + TimestampFormat string + + // The fields are sorted by default for a consistent output. For applications + // that log extremely frequently and don't use the JSON formatter this may not + // be desired. + DisableSorting bool + + // Wrap empty fields in quotes if true. + QuoteEmptyFields bool + + // Can be set to the override the default quoting character " + // with something else. For example: ', or `. + QuoteCharacter string + + // Pad msg field with spaces on the right for display. + // The value for this parameter will be the size of padding. + // Its default value is zero, which means no padding will be applied for msg. + SpacePadding int + + // Always use quotes for string values (except for empty fields) + AlwaysQuoteStrings bool + + // Color scheme to use. + colorScheme *compiledColorScheme + + // Whether the logger's out is to a terminal. + isTerminal bool + + sync.Once +} + +func getCompiledColor(main string, fallback string) func(string) string { + var style string + if main != "" { + style = main + } else { + style = fallback + } + return ansi.ColorFunc(style) +} + +func compileColorScheme(s *ColorScheme) *compiledColorScheme { + return &compiledColorScheme{ + InfoLevelColor: getCompiledColor(s.InfoLevelStyle, defaultColorScheme.InfoLevelStyle), + WarnLevelColor: getCompiledColor(s.WarnLevelStyle, defaultColorScheme.WarnLevelStyle), + ErrorLevelColor: getCompiledColor(s.ErrorLevelStyle, defaultColorScheme.ErrorLevelStyle), + FatalLevelColor: getCompiledColor(s.FatalLevelStyle, defaultColorScheme.FatalLevelStyle), + PanicLevelColor: getCompiledColor(s.PanicLevelStyle, defaultColorScheme.PanicLevelStyle), + DebugLevelColor: getCompiledColor(s.DebugLevelStyle, defaultColorScheme.DebugLevelStyle), + PrefixColor: getCompiledColor(s.PrefixStyle, defaultColorScheme.PrefixStyle), + TimestampColor: getCompiledColor(s.TimestampStyle, defaultColorScheme.TimestampStyle), + CallContextColor: getCompiledColor(s.CallContextStyle, defaultColorScheme.CallContextStyle), + CriticalColor: getCompiledColor(s.CriticalStyle, defaultColorScheme.CriticalStyle), + } +} + +func (f *TextFormatter) init(entry *logrus.Entry) { + if len(f.QuoteCharacter) == 0 { + f.QuoteCharacter = "\"" + } + if entry.Logger != nil { + f.isTerminal = f.checkIfTerminal(entry.Logger.Out) + } +} + +func (f *TextFormatter) checkIfTerminal(w io.Writer) bool { + switch v := w.(type) { + case *os.File: + return terminal.IsTerminal(int(v.Fd())) + default: + return false + } +} + +// SetColorScheme sets the TextFormatter's color scheme configuration +func (f *TextFormatter) SetColorScheme(colorScheme *ColorScheme) { + f.colorScheme = compileColorScheme(colorScheme) +} + +// Format formats a logrus.Entry +func (f *TextFormatter) Format(entry *logrus.Entry) ([]byte, error) { + var b *bytes.Buffer + keys := make([]string, 0, len(entry.Data)) + for k := range entry.Data { + keys = append(keys, k) + } + lastKeyIdx := len(keys) - 1 + + if !f.DisableSorting { + sort.Strings(keys) + } + if entry.Buffer != nil { + b = entry.Buffer + } else { + b = &bytes.Buffer{} + } + + f.Do(func() { f.init(entry) }) + + isFormatted := f.ForceFormatting || f.isTerminal + + timestampFormat := f.TimestampFormat + if timestampFormat == "" { + timestampFormat = defaultTimestampFormat + } + if isFormatted { + isColored := (f.ForceColors || f.isTerminal) && !f.DisableColors + var colorScheme *compiledColorScheme + if isColored { + if f.colorScheme == nil { + colorScheme = defaultCompiledColorScheme + } else { + colorScheme = f.colorScheme + } + } else { + colorScheme = noColorsColorScheme + } + f.printColored(b, entry, keys, timestampFormat, colorScheme) + } else { + if !f.DisableTimestamp { + f.appendKeyValue(b, "time", entry.Time.Format(timestampFormat), true) + } + f.appendKeyValue(b, "level", entry.Level.String(), true) + if entry.Message != "" { + f.appendKeyValue(b, "msg", entry.Message, lastKeyIdx >= 0) + } + for i, key := range keys { + f.appendKeyValue(b, key, entry.Data[key], lastKeyIdx != i) + } + } + + b.WriteByte('\n') //nolint:gosec + return b.Bytes(), nil +} + +func (f *TextFormatter) printColored(b *bytes.Buffer, entry *logrus.Entry, keys []string, timestampFormat string, colorScheme *compiledColorScheme) { + var levelColor func(string) string + var levelText string + switch entry.Level { + case logrus.InfoLevel: + levelColor = colorScheme.InfoLevelColor + case logrus.WarnLevel: + levelColor = colorScheme.WarnLevelColor + case logrus.ErrorLevel: + levelColor = colorScheme.ErrorLevelColor + case logrus.FatalLevel: + levelColor = colorScheme.FatalLevelColor + case logrus.PanicLevel: + levelColor = colorScheme.PanicLevelColor + default: + levelColor = colorScheme.DebugLevelColor + } + + priority, ok := entry.Data[logPriorityKey] + hasPriority := ok && priority == logPriorityCritical + + if entry.Level != logrus.WarnLevel { + levelText = entry.Level.String() + } else { + levelText = "warn" + } + + if !f.DisableUppercase { + levelText = strings.ToUpper(levelText) + } + + level := levelColor(levelText) + message := entry.Message + prefix := "" + + prefixText := extractPrefix(entry) + if prefixText != "" { + prefixText = " " + prefixText + ":" + prefix = colorScheme.PrefixColor(prefixText) + } + + messageFormat := "%s" + if f.SpacePadding != 0 { + messageFormat = fmt.Sprintf("%%-%ds", f.SpacePadding) + } + if message != "" { + messageFormat = " " + messageFormat + } + + callContextParts := []string{} + if ifile, ok := entry.Data["file"]; ok { + if sfile, ok := ifile.(string); ok && sfile != "" { + callContextParts = append(callContextParts, sfile) + } + } + if ifunc, ok := entry.Data["func"]; ok { + if sfunc, ok := ifunc.(string); ok && sfunc != "" { + callContextParts = append(callContextParts, sfunc) + } + } + if iline, ok := entry.Data["line"]; ok { + sline := "" + switch iline := iline.(type) { + case string: + sline = iline + case int, uint, int32, int64, uint32, uint64: + sline = fmt.Sprint(iline) + } + if sline != "" { + callContextParts = append(callContextParts, fmt.Sprint(sline)) + } + } + callContextText := strings.Join(callContextParts, ":") + callContext := colorScheme.CallContextColor(callContextText) + if callContext != "" { + callContext = " " + callContext + } + + if f.DisableTimestamp { + if hasPriority { + str := fmt.Sprintf("%s%s%s"+messageFormat, levelText, callContextText, prefixText, message) + fmt.Fprint(b, colorScheme.CriticalColor(str)) + } else { + fmt.Fprintf(b, "%s%s%s"+messageFormat, level, callContext, prefix, message) + } + } else { + var timestamp string + if !f.FullTimestamp { + timestamp = fmt.Sprintf("[%04d]", miniTS()) + } else { + timestamp = fmt.Sprintf("[%s]", entry.Time.Format(timestampFormat)) + } + + coloredTimestamp := colorScheme.TimestampColor(timestamp) + + if hasPriority { + str := fmt.Sprintf("%s %s%s%s"+messageFormat, timestamp, levelText, callContextText, prefixText, message) + fmt.Fprint(b, colorScheme.CriticalColor(str)) + } else { + fmt.Fprintf(b, "%s %s%s%s"+messageFormat, coloredTimestamp, level, callContext, prefix, message) + } + } + + for _, k := range keys { + if k != "prefix" && k != "file" && k != "func" && k != "line" && k != logPriorityKey && k != logModuleKey { + v := entry.Data[k] + fmt.Fprintf(b, " %s", f.formatKeyValue(levelColor(k), v)) + } + } +} + +func (f *TextFormatter) needsQuoting(text string) bool { + if len(text) == 0 { + return f.QuoteEmptyFields + } + + if f.AlwaysQuoteStrings { + return true + } + + for _, ch := range text { + if !((ch >= 'a' && ch <= 'z') || + (ch >= 'A' && ch <= 'Z') || + (ch >= '0' && ch <= '9') || + ch == '-' || ch == '.') { + return true + } + } + + return false +} + +func extractPrefix(e *logrus.Entry) string { + var module string + if iModule, ok := e.Data[logModuleKey]; ok { + module, _ = iModule.(string) + } + + var priority string + if iPriority, ok := e.Data[logPriorityKey]; ok { + priority, _ = iPriority.(string) + } + + switch { + case priority == "": + return fmt.Sprintf("[%s]", module) + case module == "": + return fmt.Sprintf("[%s]", priority) + default: + return fmt.Sprintf("[%s:%s]", module, priority) + } +} + +func (f *TextFormatter) formatKeyValue(key string, value interface{}) string { + return fmt.Sprintf("%s=%s", key, f.formatValue(value)) +} + +func (f *TextFormatter) formatValue(value interface{}) string { + switch value := value.(type) { + case string: + if f.needsQuoting(value) { + return fmt.Sprintf("%s%+v%s", f.QuoteCharacter, value, f.QuoteCharacter) + } + return value + case error: + errmsg := value.Error() + if f.needsQuoting(errmsg) { + return fmt.Sprintf("%s%+v%s", f.QuoteCharacter, errmsg, f.QuoteCharacter) + } + return errmsg + default: + return fmt.Sprintf("%+v", value) + } +} + +func (f *TextFormatter) appendKeyValue(b *bytes.Buffer, key string, value interface{}, appendSpace bool) { + b.WriteString(key) //nolint:gosec + b.WriteByte('=') //nolint:gosec + f.appendValue(b, value) //nolint:gosec + + if appendSpace { + b.WriteByte(' ') //nolint:gosec + } +} + +func (f *TextFormatter) appendValue(b *bytes.Buffer, value interface{}) { + switch value := value.(type) { + case string: + if f.needsQuoting(value) { + fmt.Fprintf(b, "%s%+v%s", f.QuoteCharacter, value, f.QuoteCharacter) + } else { + b.WriteString(value) //nolint:gosec + } + case error: + errmsg := value.Error() + if f.needsQuoting(errmsg) { + fmt.Fprintf(b, "%s%+v%s", f.QuoteCharacter, errmsg, f.QuoteCharacter) + } else { + b.WriteString(errmsg) //nolint:gosec + } + default: + fmt.Fprint(b, value) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/logging/hooks.go b/vendor/github.com/skycoin/skycoin/src/util/logging/hooks.go new file mode 100644 index 000000000..d8d0cc61d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/logging/hooks.go @@ -0,0 +1,44 @@ +package logging + +import ( + "io" + + "github.com/sirupsen/logrus" +) + +// WriteHook is a logrus.Hook that logs to an io.Writer +type WriteHook struct { + w io.Writer + formatter logrus.Formatter +} + +// NewWriteHook returns a new WriteHook +func NewWriteHook(w io.Writer) *WriteHook { + return &WriteHook{ + w: w, + formatter: &TextFormatter{ + DisableColors: true, + FullTimestamp: true, + AlwaysQuoteStrings: true, + QuoteEmptyFields: true, + ForceFormatting: true, + }, + } +} + +// Levels returns Levels accepted by the WriteHook. +// All logrus.Levels are returned. +func (f *WriteHook) Levels() []logrus.Level { + return logrus.AllLevels +} + +// Fire writes a logrus.Entry to the file +func (f *WriteHook) Fire(e *logrus.Entry) error { + b, err := f.formatter.Format(e) + if err != nil { + return err + } + + _, err = f.w.Write(b) + return err +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/logging/logger.go b/vendor/github.com/skycoin/skycoin/src/util/logging/logger.go new file mode 100644 index 000000000..7b7e33597 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/logging/logger.go @@ -0,0 +1,77 @@ +package logging + +import ( + "os" + "time" + + "github.com/sirupsen/logrus" +) + +// Logger wraps logrus.FieldLogger +type Logger struct { + logrus.FieldLogger +} + +// Critical adds special critical-level fields for specially highlighted logging, +// since logrus lacks a distinct critical field and does not have configurable log levels +func (logger *Logger) Critical() logrus.FieldLogger { + return logger.WithField(logPriorityKey, logPriorityCritical) +} + +// WithTime overrides time, used by logger. +func (logger *Logger) WithTime(t time.Time) *logrus.Entry { + return logger.WithFields(logrus.Fields{}).WithTime(t) +} + +// MasterLogger wraps logrus.Logger and is able to create new package-aware loggers +type MasterLogger struct { + *logrus.Logger +} + +// NewMasterLogger creates a new package-aware logger with formatting string +func NewMasterLogger() *MasterLogger { + hooks := make(logrus.LevelHooks) + + return &MasterLogger{ + Logger: &logrus.Logger{ + Out: os.Stdout, + Formatter: &TextFormatter{ + FullTimestamp: true, + AlwaysQuoteStrings: true, + QuoteEmptyFields: true, + ForceFormatting: true, + DisableColors: false, + ForceColors: false, + }, + Hooks: hooks, + Level: logrus.DebugLevel, + }, + } +} + +// PackageLogger instantiates a package-aware logger +func (logger *MasterLogger) PackageLogger(moduleName string) *Logger { + return &Logger{ + FieldLogger: logger.WithField(logModuleKey, moduleName), + } +} + +// AddHook adds a logrus.Hook to the logger and its module loggers +func (logger *MasterLogger) AddHook(hook logrus.Hook) { + logger.Hooks.Add(hook) +} + +// SetLevel sets the log level for the logger and its module loggers +func (logger *MasterLogger) SetLevel(level logrus.Level) { + logger.Level = level +} + +// EnableColors enables colored logging +func (logger *MasterLogger) EnableColors() { + logger.Formatter.(*TextFormatter).DisableColors = false +} + +// DisableColors disables colored logging +func (logger *MasterLogger) DisableColors() { + logger.Formatter.(*TextFormatter).DisableColors = true +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/logging/logging.go b/vendor/github.com/skycoin/skycoin/src/util/logging/logging.go new file mode 100644 index 000000000..f7b86ffc6 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/logging/logging.go @@ -0,0 +1,79 @@ +/* +Package logging provides application logging utilities +*/ +package logging + +import ( + "errors" + "io" + "io/ioutil" + "strings" + + "github.com/sirupsen/logrus" +) + +var log = NewMasterLogger() + +const ( + // logModuleKey is the key used for the module name data entry + logModuleKey = "_module" + // logPriorityKey is the log entry key for priority log statements + logPriorityKey = "_priority" + // logPriorityCritical is the log entry value for priority log statements + logPriorityCritical = "CRITICAL" +) + +// LevelFromString returns a logrus.Level from a string identifier +func LevelFromString(s string) (logrus.Level, error) { + switch strings.ToLower(s) { + case "debug": + return logrus.DebugLevel, nil + case "info", "notice": + return logrus.InfoLevel, nil + case "warn", "warning": + return logrus.WarnLevel, nil + case "error": + return logrus.ErrorLevel, nil + case "fatal", "critical": + return logrus.FatalLevel, nil + case "panic": + return logrus.PanicLevel, nil + default: + return logrus.DebugLevel, errors.New("could not convert string to log level") + } +} + +// MustGetLogger returns a package-aware logger from the master logger +func MustGetLogger(module string) *Logger { + return log.PackageLogger(module) +} + +// AddHook adds a hook to the global logger +func AddHook(hook logrus.Hook) { + log.AddHook(hook) +} + +// EnableColors enables colored logging +func EnableColors() { + log.EnableColors() +} + +// DisableColors disables colored logging +func DisableColors() { + log.DisableColors() +} + +// SetLevel sets the logger's minimum log level +func SetLevel(level logrus.Level) { + log.SetLevel(level) +} + +// SetOutputTo sets the logger's output to an io.Writer +func SetOutputTo(w io.Writer) { + log.Out = w +} + +// Disable disables the logger completely +func Disable() { + log.Out = ioutil.Discard +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/mathutil/mathutil.go b/vendor/github.com/skycoin/skycoin/src/util/mathutil/mathutil.go new file mode 100644 index 000000000..d1b7a191e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/mathutil/mathutil.go @@ -0,0 +1,81 @@ +// Package mathutil provides math utilities +package mathutil + +import ( + "errors" + "math" +) + +var ( + // ErrUint64MultOverflow is returned if when multiplying uint64 values would overflow uint64 + ErrUint64MultOverflow = errors.New("uint64 multiplication overflow") + // ErrUint64AddOverflow is returned if when adding uint64 values would overflow uint64 + ErrUint64AddOverflow = errors.New("uint64 addition overflow") + // ErrUint32AddOverflow is returned if when adding uint32 values would overflow uint32 + ErrUint32AddOverflow = errors.New("uint32 addition overflow") + // ErrUint64OverflowsInt64 is returned if when converting a uint64 to an int64 would overflow int64 + ErrUint64OverflowsInt64 = errors.New("uint64 overflows int64") + // ErrInt64UnderflowsUint64 is returned if when converting an int64 to a uint64 would underflow uint64 + ErrInt64UnderflowsUint64 = errors.New("int64 underflows uint64") + // ErrIntUnderflowsUint32 is returned if when converting an int to a uint32 would underflow uint32 + ErrIntUnderflowsUint32 = errors.New("int underflows uint32") + // ErrIntOverflowsUint32 is returned if when converting an int to a uint32 would overflow uint32 + ErrIntOverflowsUint32 = errors.New("int overflows uint32") +) + +// MultUint64 multiplies a by b, returning an error if the values would overflow +func MultUint64(a, b uint64) (uint64, error) { + c := a * b + if a != 0 && c/a != b { + return 0, ErrUint64MultOverflow + } + return c, nil +} + +// AddUint64 adds a and b, returning an error if the values would overflow +func AddUint64(a, b uint64) (uint64, error) { + c := a + b + if c < a || c < b { + return 0, ErrUint64AddOverflow + } + return c, nil +} + +// AddUint32 adds a and b, returning an error if the values would overflow +func AddUint32(a, b uint32) (uint32, error) { + c := a + b + if c < a || c < b { + return 0, ErrUint32AddOverflow + } + return c, nil +} + +// Uint64ToInt64 converts a uint64 to an int64, returning an error if the uint64 value overflows int64 +func Uint64ToInt64(a uint64) (int64, error) { + b := int64(a) + if b < 0 { + return 0, ErrUint64OverflowsInt64 + } + return b, nil +} + +// Int64ToUint64 converts an int64 to a uint64, returning an error if the int64 value underflows uint64 +func Int64ToUint64(a int64) (uint64, error) { + if a < 0 { + return 0, ErrInt64UnderflowsUint64 + } + return uint64(a), nil +} + +// IntToUint32 converts int to uint32, returning an error if the int value is negative or overflows uint32 +func IntToUint32(a int) (uint32, error) { + if a < 0 { + return 0, ErrIntUnderflowsUint32 + } + + if uint64(a) > math.MaxUint32 { + return 0, ErrIntOverflowsUint32 + } + + return uint32(a), nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/timeutil/timeutil.go b/vendor/github.com/skycoin/skycoin/src/util/timeutil/timeutil.go new file mode 100644 index 000000000..75486840a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/timeutil/timeutil.go @@ -0,0 +1,15 @@ +/* +Package timeutil provides time related utility methods +*/ +package timeutil + +import "time" + +// NanoToTime converts nanoseconds to time.Time +func NanoToTime(n int64) time.Time { + zeroTime := time.Time{} + if n == zeroTime.UnixNano() { + return zeroTime + } + return time.Unix(n/int64(time.Second), n%int64(time.Second)) +} diff --git a/vendor/github.com/skycoin/skycoin/src/util/useragent/useragent.go b/vendor/github.com/skycoin/skycoin/src/util/useragent/useragent.go new file mode 100644 index 000000000..b338aed3f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/util/useragent/useragent.go @@ -0,0 +1,222 @@ +// Package useragent implements methods for managing Skycoin user agents. +// +// A skycoin user agent has the following format: +// +// `$NAME:$VERSION[$GIT_HASH]($REMARK)` +// +// `$NAME` and `$VERSION` are required. +// +// * `$NAME` is the coin or application's name, e.g. `Skycoin`. It can contain the following characters: `A-Za-z0-9\-_+`. +// * `$VERSION` must be a valid [semver](http://semver.org/) version, e.g. `1.2.3` or `1.2.3-rc1`. +// Semver has the option of including build metadata such as the git commit hash, but this is not included by the default client. +// * `$REMARK` is optional. If not present, the enclosing brackets `()` should be omitted. +// It can contain the following characters: `A-Za-z0-9\-_+;:!$%,.=?~ ` (includes the space character). +package useragent + +import ( + "encoding/json" + "errors" + "fmt" + "regexp" + "strings" + + "github.com/blang/semver" +) + +const ( + // IllegalChars are printable ascii characters forbidden from a user agent string. All other ascii or bytes are also forbidden. + IllegalChars = `<>&"'#@|{}` + "`" + // MaxLen the maximum length of a user agent + MaxLen = 256 + + // NamePattern is the regex pattern for the name portion of the user agent + NamePattern = `[A-Za-z0-9\-_+]+` + // VersionPattern is the regex pattern for the version portion of the user agent + VersionPattern = `[0-9]+\.[0-9]+\.[0-9][A-Za-z0-9\-.+]*` + // RemarkPattern is the regex pattern for the remark portion of the user agent + RemarkPattern = `[A-Za-z0-9\-_+;:!$%,.=?~ ]+` + + // Pattern is the regex pattern for the user agent in entirety + Pattern = `^(` + NamePattern + `):(` + VersionPattern + `)(\(` + RemarkPattern + `\))?$` +) + +var ( + illegalCharsSanitizeRe *regexp.Regexp + illegalCharsCheckRe *regexp.Regexp + re *regexp.Regexp + + // ErrIllegalChars user agent contains illegal characters + ErrIllegalChars = errors.New("User agent has invalid character(s)") + // ErrTooLong user agent exceeds a certain max length + ErrTooLong = errors.New("User agent is too long") + // ErrMalformed user agent does not match the user agent pattern + ErrMalformed = errors.New("User agent is malformed") + // ErrEmpty user agent is an empty string + ErrEmpty = errors.New("User agent is an empty string") +) + +func init() { + illegalCharsSanitizeRe = regexp.MustCompile(fmt.Sprintf("([^[:print:]]|[%s])+", IllegalChars)) + illegalCharsCheckRe = regexp.MustCompile(fmt.Sprintf("[^[:print:]]|[%s]", IllegalChars)) + re = regexp.MustCompile(Pattern) +} + +// Data holds parsed user agent data +type Data struct { + Coin string + Version string + Remark string +} + +// Empty returns true if the Data is empty +func (d Data) Empty() bool { + return d == (Data{}) +} + +// Build builds a user agent string. Returns an error if the user agent would be invalid. +func (d Data) Build() (string, error) { + if d.Coin == "" { + return "", errors.New("missing coin name") + } + if d.Version == "" { + return "", errors.New("missing version") + } + + _, err := semver.Parse(d.Version) + if err != nil { + return "", err + } + + s := d.build() + + if err := validate(s); err != nil { + return "", err + } + + d2, err := Parse(s) + if err != nil { + return "", fmt.Errorf("Built a user agent that fails to parse: %q %v", s, err) + } + + if d2 != d { + return "", errors.New("Built a user agent that does not parse to the original format") + } + + return s, nil +} + +// MustBuild calls Build and panics on error +func (d Data) MustBuild() string { + s, err := d.Build() + if err != nil { + panic(err) + } + return s +} + +func (d Data) build() string { + if d.Coin == "" || d.Version == "" { + return "" + } + + remark := d.Remark + if remark != "" { + remark = fmt.Sprintf("(%s)", remark) + } + + return fmt.Sprintf("%s:%s%s", d.Coin, d.Version, remark) +} + +// MarshalJSON marshals Data as JSON +func (d Data) MarshalJSON() ([]byte, error) { + return []byte(fmt.Sprintf(`"%s"`, d.build())), nil +} + +// UnmarshalJSON unmarshals []byte to Data +func (d *Data) UnmarshalJSON(v []byte) error { + var s string + if err := json.Unmarshal(v, &s); err != nil { + return err + } + + if s == "" { + return nil + } + + parsed, err := Parse(s) + if err != nil { + return err + } + + *d = parsed + return nil +} + +// Parse parses a user agent string to Data +func Parse(userAgent string) (Data, error) { + if len(userAgent) == 0 { + return Data{}, ErrEmpty + } + + if err := validate(userAgent); err != nil { + return Data{}, err + } + + subs := re.FindAllStringSubmatch(userAgent, -1) + + if len(subs) == 0 { + return Data{}, ErrMalformed + } + + m := subs[0] + + if m[0] != userAgent { + // This should not occur since the pattern has ^$ boundaries applied, but just in case + return Data{}, errors.New("User agent did not match pattern completely") + } + + coin := m[1] + version := m[2] + remark := m[3] + + if _, err := semver.Parse(version); err != nil { + return Data{}, fmt.Errorf("User agent version is not a valid semver: %v", err) + } + + remark = strings.TrimPrefix(remark, "(") + remark = strings.TrimSuffix(remark, ")") + + return Data{ + Coin: coin, + Version: version, + Remark: remark, + }, nil +} + +// MustParse parses and panics on error +func MustParse(userAgent string) Data { + d, err := Parse(userAgent) + if err != nil { + panic(err) + } + + return d +} + +// validate validates a user agent string. The user agent must not contain illegal characters. +func validate(userAgent string) error { + if len(userAgent) > MaxLen { + return ErrTooLong + } + + if illegalCharsCheckRe.MatchString(userAgent) { + return ErrIllegalChars + } + + return nil +} + +// Sanitize removes illegal characters from a user agent string +func Sanitize(userAgent string) string { + return illegalCharsSanitizeRe.ReplaceAllLiteralString(userAgent, "") +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockchain.go b/vendor/github.com/skycoin/skycoin/src/visor/blockchain.go new file mode 100644 index 000000000..9c730fe93 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockchain.go @@ -0,0 +1,853 @@ +package visor + +import ( + "bytes" + "errors" + "fmt" + "sync" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/transaction" + "github.com/skycoin/skycoin/src/util/fee" + "github.com/skycoin/skycoin/src/visor/blockdb" + "github.com/skycoin/skycoin/src/visor/dbutil" + "github.com/skycoin/skycoin/src/visor/historydb" +) + +const ( + // DebugLevel1 checks for extremely unlikely conditions (10e-40) + DebugLevel1 = true + // DebugLevel2 enable checks for impossible conditions + DebugLevel2 = true +) + +var ( + // ErrVerifyStopped is returned when database verification is interrupted + ErrVerifyStopped = errors.New("database verification stopped") +) + +// ErrBlockNotExist may be returned if a block is not found +type ErrBlockNotExist struct { + Seq uint64 +} + +// NewErrBlockNotExist creates an ErrBlockNotExist based on an unknown block sequence +func NewErrBlockNotExist(seq uint64) ErrBlockNotExist { + return ErrBlockNotExist{ + Seq: seq, + } +} + +func (e ErrBlockNotExist) Error() string { + return fmt.Sprintf("block does not exist seq=%d", e.Seq) +} + +//Warning: 10e6 is 10 million, 1e6 is 1 million + +// Note: DebugLevel1 adds additional checks for hash collisions that +// are unlikely to occur. DebugLevel2 adds checks for conditions that +// can only occur through programmer error and malice. + +// Note: a droplet is the base coin unit. Each Skycoin is one million droplets + +//Termonology: +// UXTO - unspent transaction outputs +// UX - outputs10 +// TX - transactions + +//Notes: +// transactions (TX) consume outputs (UX) and produce new outputs (UX) +// Tx.Uxi() - set of outputs consumed by transaction +// Tx.Uxo() - set of outputs created by transaction + +// chainStore +type chainStore interface { + Head(*dbutil.Tx) (*coin.SignedBlock, error) + HeadSeq(*dbutil.Tx) (uint64, bool, error) + Len(*dbutil.Tx) (uint64, error) + AddBlock(*dbutil.Tx, *coin.SignedBlock) error + GetBlockByHash(*dbutil.Tx, cipher.SHA256) (*coin.Block, error) + GetSignedBlockByHash(*dbutil.Tx, cipher.SHA256) (*coin.SignedBlock, error) + GetSignedBlockBySeq(*dbutil.Tx, uint64) (*coin.SignedBlock, error) + UnspentPool() blockdb.UnspentPooler + GetGenesisBlock(*dbutil.Tx) (*coin.SignedBlock, error) + GetBlockSignature(*dbutil.Tx, *coin.Block) (cipher.Sig, bool, error) + ForEachBlock(*dbutil.Tx, func(*coin.Block) error) error +} + +// DefaultWalker default blockchain walker +func DefaultWalker(tx *dbutil.Tx, hps []coin.HashPair) (cipher.SHA256, bool) { + if len(hps) == 0 { + return cipher.SHA256{}, false + } + return hps[0].Hash, true +} + +// CreateBuckets creates the buckets used by the blockdb +func CreateBuckets(db *dbutil.DB) error { + return db.Update("CreateBuckets", func(tx *dbutil.Tx) error { + if err := historydb.CreateBuckets(tx); err != nil { + return err + } + + if err := blockdb.CreateBuckets(tx); err != nil { + return err + } + + return dbutil.CreateBuckets(tx, [][]byte{ + UnconfirmedTxnsBkt, + UnconfirmedUnspentsBkt, + }) + }) +} + +// BlockchainConfig configures Blockchain options +type BlockchainConfig struct { + // Arbitrating mode: if in arbitrating mode, when block publishing node execute blocks, + // the invalid transaction will be skipped and continue the next; otherwise, + // node will throw the error and return. + Arbitrating bool + Pubkey cipher.PubKey +} + +// Blockchain maintains blockchain and provides apis for accessing the chain. +type Blockchain struct { + db *dbutil.DB + cfg BlockchainConfig + store chainStore +} + +// NewBlockchain creates a Blockchain +func NewBlockchain(db *dbutil.DB, cfg BlockchainConfig) (*Blockchain, error) { + chainstore, err := blockdb.NewBlockchain(db, DefaultWalker) + if err != nil { + return nil, err + } + + return &Blockchain{ + cfg: cfg, + db: db, + store: chainstore, + }, nil +} + +// GetGenesisBlock returns genesis block +func (bc *Blockchain) GetGenesisBlock(tx *dbutil.Tx) (*coin.SignedBlock, error) { + return bc.store.GetGenesisBlock(tx) +} + +// GetSignedBlockByHash returns block of given hash +func (bc *Blockchain) GetSignedBlockByHash(tx *dbutil.Tx, hash cipher.SHA256) (*coin.SignedBlock, error) { + return bc.store.GetSignedBlockByHash(tx, hash) +} + +// GetSignedBlockBySeq returns block of given seq +func (bc *Blockchain) GetSignedBlockBySeq(tx *dbutil.Tx, seq uint64) (*coin.SignedBlock, error) { + return bc.store.GetSignedBlockBySeq(tx, seq) +} + +// Head returns the most recent confirmed block +func (bc Blockchain) Head(tx *dbutil.Tx) (*coin.SignedBlock, error) { + return bc.store.Head(tx) +} + +// Unspent returns the unspent outputs pool +func (bc *Blockchain) Unspent() blockdb.UnspentPooler { + return bc.store.UnspentPool() +} + +// Len returns the length of current blockchain. +func (bc Blockchain) Len(tx *dbutil.Tx) (uint64, error) { + return bc.store.Len(tx) +} + +// HeadSeq returns the sequence of head block +func (bc *Blockchain) HeadSeq(tx *dbutil.Tx) (uint64, bool, error) { + return bc.store.HeadSeq(tx) +} + +// Time returns time of last block +// used as system clock indepedent clock for coin hour calculations +// TODO: Deprecate +func (bc *Blockchain) Time(tx *dbutil.Tx) (uint64, error) { + b, err := bc.Head(tx) + if err != nil { + if err == blockdb.ErrNoHeadBlock { + return 0, nil + } + return 0, err + } + + return b.Time(), nil +} + +// NewBlock creates a Block given an array of Transactions. +// Only hard constraints are applied to transactions in the block. +// The caller of this function should apply any additional soft constraints, +// and choose which transactions to place into the block. +func (bc Blockchain) NewBlock(tx *dbutil.Tx, txns coin.Transactions, currentTime uint64) (*coin.Block, error) { + if len(txns) == 0 { + return nil, errors.New("No transactions") + } + + head, err := bc.store.Head(tx) + if err != nil { + return nil, err + } + + if currentTime <= head.Time() { + return nil, errors.New("Time can only move forward") + } + + txns, err = bc.processTransactions(tx, txns) + if err != nil { + return nil, err + } + + uxHash, err := bc.Unspent().GetUxHash(tx) + if err != nil { + return nil, err + } + + feeCalc := bc.TransactionFee(tx, head.Time()) + + b, err := coin.NewBlock(head.Block, currentTime, uxHash, txns, feeCalc) + if err != nil { + return nil, err + } + + // make sure block is valid + if DebugLevel2 { + if err := bc.verifyBlockHeader(tx, *b); err != nil { + return nil, err + } + txns, err := bc.processTransactions(tx, b.Body.Transactions) + if err != nil { + logger.Panicf("bc.processTransactions second verification call failed: %v", err) + } + b.Body.Transactions = txns + } + return b, nil +} + +func (bc *Blockchain) processBlock(tx *dbutil.Tx, b coin.SignedBlock) (coin.SignedBlock, error) { + length, err := bc.Len(tx) + if err != nil { + return coin.SignedBlock{}, err + } + + if length > 0 { + if isGenesis, err := bc.isGenesisBlock(tx, b.Block); err != nil { + return coin.SignedBlock{}, err + } else if isGenesis { + err := errors.New("Attempted to process genesis block after blockchain has genesis block") + logger.Warning(err.Error()) + return coin.SignedBlock{}, err + } else { + if err := bc.verifyBlockHeader(tx, b.Block); err != nil { + return coin.SignedBlock{}, err + } + + txns, err := bc.processTransactions(tx, b.Body.Transactions) + if err != nil { + return coin.SignedBlock{}, err + } + b.Body.Transactions = txns + + if err := bc.verifyUxHash(tx, b.Block); err != nil { + return coin.SignedBlock{}, err + } + + } + } + + return b, nil +} + +// ExecuteBlock attempts to append block to blockchain with *dbutil.Tx +func (bc *Blockchain) ExecuteBlock(tx *dbutil.Tx, sb *coin.SignedBlock) error { + length, err := bc.Len(tx) + if err != nil { + return err + } + + if length > 0 { + head, err := bc.Head(tx) + if err != nil { + return err + } + + // TODO -- why do we modify the block here? + sb.Head.PrevHash = head.HashHeader() + } + + nb, err := bc.processBlock(tx, *sb) + if err != nil { + return err + } + + if err := bc.store.AddBlock(tx, &nb); err != nil { + return err + } + + return nil +} + +// VerifyBlock verifies specified block against current state of blockchain. +func (bc *Blockchain) VerifyBlock(tx *dbutil.Tx, sb *coin.SignedBlock) error { + _, err := bc.processBlock(tx, *sb) + + return err +} + +// isGenesisBlock checks if the block is genesis block +func (bc Blockchain) isGenesisBlock(tx *dbutil.Tx, b coin.Block) (bool, error) { + gb, err := bc.store.GetGenesisBlock(tx) + if err != nil { + return false, err + } + if gb == nil { + return false, nil + } + + return gb.HashHeader() == b.HashHeader(), nil +} + +// Compares the state of the current UxHash hash to state of unspent +// output pool. +func (bc Blockchain) verifyUxHash(tx *dbutil.Tx, b coin.Block) error { + uxHash, err := bc.Unspent().GetUxHash(tx) + if err != nil { + return err + } + + if !bytes.Equal(b.Head.UxHash[:], uxHash[:]) { + return errors.New("UxHash does not match") + } + + return nil +} + +// VerifyBlockTxnConstraints checks that the transaction does not violate hard constraints, +// for transactions that are already included in a block. +func (bc Blockchain) VerifyBlockTxnConstraints(tx *dbutil.Tx, txn coin.Transaction) error { + // NOTE: Unspent().GetArray() returns an error if not all txn.In can be found + // This prevents double spends + uxIn, err := bc.Unspent().GetArray(tx, txn.In) + if err != nil { + switch err.(type) { + case blockdb.ErrUnspentNotExist: + return transaction.NewErrTxnViolatesHardConstraint(err) + default: + return err + } + } + + head, err := bc.Head(tx) + if err != nil { + return err + } + + return bc.verifyBlockTxnHardConstraints(tx, txn, head, uxIn) +} + +func (bc Blockchain) verifyBlockTxnHardConstraints(tx *dbutil.Tx, txn coin.Transaction, head *coin.SignedBlock, uxIn coin.UxArray) error { + if err := transaction.VerifyBlockTxnConstraints(txn, head.Head, uxIn); err != nil { + return err + } + + if DebugLevel1 { + // Check that new unspents don't collide with existing. + // This should not occur but is a sanity check. + // NOTE: this is not in the top-level VerifyBlockTxnConstraints + // because it relies on the unspent pool to check for existence. + // For remote callers such as the CLI, they'd need to download the whole + // unspent pool or make a separate API call to check for duplicate unspents. + uxOuts := coin.CreateUnspents(head.Head, txn) + for i := range uxOuts { + if contains, err := bc.Unspent().Contains(tx, uxOuts[i].Hash()); err != nil { + return err + } else if contains { + err := errors.New("New unspent collides with existing unspent") + return transaction.NewErrTxnViolatesHardConstraint(err) + } + } + } + + return nil +} + +// VerifySingleTxnHardConstraints checks that the transaction does not violate hard constraints. +// for transactions that are not included in a block. +func (bc Blockchain) VerifySingleTxnHardConstraints(tx *dbutil.Tx, txn coin.Transaction, signed transaction.TxnSignedFlag) error { + // NOTE: Unspent().GetArray() returns an error if not all txn.In can be found + // This prevents double spends + uxIn, err := bc.Unspent().GetArray(tx, txn.In) + if err != nil { + switch err.(type) { + case blockdb.ErrUnspentNotExist: + return transaction.NewErrTxnViolatesHardConstraint(err) + default: + return err + } + } + + head, err := bc.Head(tx) + if err != nil { + return err + } + + return bc.verifySingleTxnHardConstraints(tx, txn, head, uxIn, signed) +} + +// VerifySingleTxnSoftHardConstraints checks that the transaction does not violate hard or soft constraints, +// for transactions that are not included in a block. +// Hard constraints are checked before soft constraints. +func (bc Blockchain) VerifySingleTxnSoftHardConstraints(tx *dbutil.Tx, txn coin.Transaction, distParams params.Distribution, verifyParams params.VerifyTxn, signed transaction.TxnSignedFlag) (*coin.SignedBlock, coin.UxArray, error) { + // NOTE: Unspent().GetArray() returns an error if not all txn.In can be found + // This prevents double spends + uxIn, err := bc.Unspent().GetArray(tx, txn.In) + if err != nil { + return nil, nil, transaction.NewErrTxnViolatesHardConstraint(err) + } + + head, err := bc.Head(tx) + if err != nil { + return nil, nil, err + } + + // Hard constraints must be checked before soft constraints + if err := bc.verifySingleTxnHardConstraints(tx, txn, head, uxIn, signed); err != nil { + return nil, nil, err + } + + if err := transaction.VerifySingleTxnSoftConstraints(txn, head.Time(), uxIn, distParams, verifyParams); err != nil { + return nil, nil, err + } + + return head, uxIn, nil +} + +func (bc Blockchain) verifySingleTxnHardConstraints(tx *dbutil.Tx, txn coin.Transaction, head *coin.SignedBlock, uxIn coin.UxArray, signed transaction.TxnSignedFlag) error { + if err := transaction.VerifySingleTxnHardConstraints(txn, head.Head, uxIn, signed); err != nil { + return err + } + + if DebugLevel1 { + // Check that new unspents don't collide with existing. + // This should not occur but is a sanity check. + // NOTE: this is not in the top-level VerifySingleTxnHardConstraints + // because it relies on the unspent pool to check for existence. + // For remote callers such as the CLI, they'd need to download the whole + // unspent pool or make a separate API call to check for duplicate unspents. + uxOuts := coin.CreateUnspents(head.Head, txn) + for i := range uxOuts { + if contains, err := bc.Unspent().Contains(tx, uxOuts[i].Hash()); err != nil { + return err + } else if contains { + err := errors.New("New unspent collides with existing unspent") + return transaction.NewErrTxnViolatesHardConstraint(err) + } + } + } + + return nil +} + +// GetBlocks returns blocks matching seqs. If any block is not found, returns an error. +func (bc Blockchain) GetBlocks(tx *dbutil.Tx, seqs []uint64) ([]coin.SignedBlock, error) { + blocks := make([]coin.SignedBlock, len(seqs)) + + for i, s := range seqs { + b, err := bc.store.GetSignedBlockBySeq(tx, s) + if err != nil { + return nil, err + } + + if b == nil { + return nil, NewErrBlockNotExist(s) + } + + blocks[i] = *b + } + + return blocks, nil +} + +// GetBlocksInRange return blocks whose seq are in the range of start and end. +func (bc Blockchain) GetBlocksInRange(tx *dbutil.Tx, start, end uint64) ([]coin.SignedBlock, error) { + if start > end { + return nil, nil + } + + var blocks []coin.SignedBlock + for i := start; i <= end; i++ { + b, err := bc.store.GetSignedBlockBySeq(tx, i) + if err != nil { + logger.WithError(err).Error("bc.store.GetSignedBlockBySeq failed") + return nil, err + } + + if b == nil { + break + } + + blocks = append(blocks, *b) + } + + return blocks, nil +} + +// GetLastBlocks return the latest N blocks. +func (bc Blockchain) GetLastBlocks(tx *dbutil.Tx, num uint64) ([]coin.SignedBlock, error) { + if num == 0 { + return nil, nil + } + + end, ok, err := bc.HeadSeq(tx) + if err != nil { + return nil, err + } + if !ok { + return nil, nil + } + + start := int(end-num) + 1 + if start < 0 { + start = 0 + } + + return bc.GetBlocksInRange(tx, uint64(start), end) +} + +/* Private */ + +// Validates a set of Transactions, individually, against each other and +// against the Blockchain. If firstFail is true, it will return an error +// as soon as it encounters one. Else, it will return an array of +// Transactions that are valid as a whole. It may return an error if +// firstFalse is false, if there is no way to filter the txns into a valid +// array, i.e. processTransactions(processTransactions(txn, false), true) +// should not result in an error, unless all txns are invalid. +// TODO: +// - move arbitration to visor +// - blockchain should have strict checking +func (bc Blockchain) processTransactions(tx *dbutil.Tx, txs coin.Transactions) (coin.Transactions, error) { + // copy txs so that the following code won't modify the original txns + txns := make(coin.Transactions, len(txs)) + copy(txns, txs) + + head, err := bc.store.Head(tx) + if err != nil { + return nil, err + } + + // Transactions need to be sorted by fee and hash before arbitrating + if bc.cfg.Arbitrating { + txns, err = coin.SortTransactions(txns, bc.TransactionFee(tx, head.Time())) + if err != nil { + logger.Critical().WithError(err).Error("processTransactions: coin.SortTransactions failed") + return nil, err + } + } + + //TODO: audit + if len(txns) == 0 { + if bc.cfg.Arbitrating { + return txns, nil + } + + // If there are no transactions, a block should not be made + return nil, errors.New("No transactions") + } + + skip := make(map[int]struct{}) + uxHashes := make(coin.UxHashSet, len(txns)) + for i, txn := range txns { + // Check the transaction against itself. This covers the hash, + // signature indices and duplicate spends within itself + if err := bc.VerifyBlockTxnConstraints(tx, txn); err != nil { + switch err.(type) { + case transaction.ErrTxnViolatesSoftConstraint: + logger.Critical().WithError(err).Panic("bc.VerifyBlockTxnConstraints should not return a ErrTxnViolatesSoftConstraint error") + case transaction.ErrTxnViolatesHardConstraint: + if bc.cfg.Arbitrating { + skip[i] = struct{}{} + continue + } + } + + return nil, err + } + + // Check that each pending unspent will be unique + uxb := coin.UxBody{ + SrcTransaction: txn.Hash(), + } + + for _, to := range txn.Out { + uxb.Coins = to.Coins + uxb.Hours = to.Hours + uxb.Address = to.Address + + h := uxb.Hash() + _, exists := uxHashes[h] + if exists { + if bc.cfg.Arbitrating { + skip[i] = struct{}{} + continue + } else { + return nil, errors.New("Duplicate unspent output across transactions") + } + } + + if DebugLevel1 { + // Check that the expected unspent is not already in the pool. + // This should never happen because its a hash collision + if contains, err := bc.Unspent().Contains(tx, h); err != nil { + return nil, err + } else if contains { + if bc.cfg.Arbitrating { + skip[i] = struct{}{} + continue + } else { + return nil, errors.New("Output hash is in the UnspentPool") + } + } + } + + uxHashes[h] = struct{}{} + } + } + + // Filter invalid transactions before arbitrating between colliding ones + if len(skip) > 0 { + newtxns := make(coin.Transactions, len(txns)-len(skip)) + j := 0 + for i := range txns { + if _, shouldSkip := skip[i]; !shouldSkip { + newtxns[j] = txns[i] + j++ + } + } + txns = newtxns + skip = make(map[int]struct{}) + } + + // Check to ensure that there are no duplicate spends in the entire block, + // and that we aren't creating duplicate outputs. Duplicate outputs + // within a single Transaction are already checked by VerifyBlockTxnConstraints + hashes := txns.Hashes() + for i := 0; i < len(txns)-1; i++ { + s := txns[i] + for j := i + 1; j < len(txns); j++ { + t := txns[j] + if DebugLevel1 { + if hashes[i] == hashes[j] { + // This is a non-recoverable error for filtering, and + // should never occur. It indicates a hash collision + // amongst different txns. Duplicate transactions are + // caught earlier, when duplicate expected outputs are + // checked for, and will not trigger this. + return nil, errors.New("Unexpected duplicate transaction") + } + } + for a := range s.In { + for b := range t.In { + if s.In[a] == t.In[b] { + if bc.cfg.Arbitrating { + // The txn with the highest fee and lowest hash + // is chosen when attempting a double spend. + // Since the txns are sorted, we skip the 2nd + // iterable + skip[j] = struct{}{} + } else { + return nil, errors.New("Cannot spend output twice in the same block") + } + } + } + } + } + } + + // Filter the final results, if necessary + if len(skip) > 0 { + newtxns := make(coin.Transactions, 0, len(txns)-len(skip)) + for i := range txns { + if _, shouldSkip := skip[i]; !shouldSkip { + newtxns = append(newtxns, txns[i]) + } + } + return newtxns, nil + } + + return txns, nil +} + +// TransactionFee calculates the current transaction fee in coinhours of a Transaction +func (bc Blockchain) TransactionFee(tx *dbutil.Tx, headTime uint64) coin.FeeCalculator { + return func(txn *coin.Transaction) (uint64, error) { + inUxs, err := bc.Unspent().GetArray(tx, txn.In) + if err != nil { + return 0, err + } + + return fee.TransactionFee(txn, headTime, inUxs) + } +} + +// VerifySignature checks that BlockSigs state correspond with coin.Blockchain state +// and that all signatures are valid. +func (bc *Blockchain) VerifySignature(block *coin.SignedBlock) error { + err := block.VerifySignature(bc.cfg.Pubkey) + if err != nil { + logger.Errorf("Blockchain signature verification failed for block %d: %v", block.Head.BkSeq, err) + } + return err +} + +// WalkChain walk through the blockchain concurrently +// The quit channel is optional and if closed, this method still stop. +func (bc *Blockchain) WalkChain(workers int, f func(*dbutil.Tx, *coin.SignedBlock) error, quit chan struct{}) error { + if quit == nil { + quit = make(chan struct{}) + } + + signedBlockC := make(chan *coin.SignedBlock, 100) + errC := make(chan error, 100) + interrupt := make(chan struct{}) + verifyDone := make(chan struct{}) + + // Verify block signatures in a worker pool + var workerWg sync.WaitGroup + workerWg.Add(workers) + for i := 0; i < workers; i++ { + go func() { + defer workerWg.Done() + if err := bc.db.View("WalkChain verify blocks", func(tx *dbutil.Tx) error { + for b := range signedBlockC { + if err := f(tx, b); err != nil { + // if err := cipher.VerifyPubKeySignedHash(bc.cfg.Pubkey, sh.sig, sh.hash); err != nil { + // logger.Errorf("Signature verification failed: %v", err) + select { + case errC <- err: + default: + } + } + } + return nil + }); err != nil { + logger.WithError(err).Error("WalkChain verify blocks db transaction failed") + } + }() + } + + // Wait for verification worker goroutines to finish + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + workerWg.Wait() + close(verifyDone) + }() + + // Iterate all blocks stored in the "blocks" bucket + // * Detect if a corresponding signature is missing from the signatures bucket + // * Verify the signature for the block + wg.Add(1) + go func() { + if err := bc.db.View("WalkChain get blocks", func(tx *dbutil.Tx) error { + if length, err := bc.Len(tx); err != nil { + return err + } else if length == 0 { + return nil + } + defer wg.Done() + defer close(signedBlockC) + + errInterrupted := errors.New("goroutine was stopped") + + if err := bc.store.ForEachBlock(tx, func(block *coin.Block) error { + sig, ok, err := bc.store.GetBlockSignature(tx, block) + if err != nil { + return err + } + if !ok { + return blockdb.NewErrMissingSignature(block) + } + + signedBlock := &coin.SignedBlock{ + Sig: sig, + Block: *block, + } + + select { + case signedBlockC <- signedBlock: + return nil + case <-quit: + return errInterrupted + case <-interrupt: + return errInterrupted + } + }); err != nil && err != errInterrupted { + switch err.(type) { + case blockdb.ErrMissingSignature: + default: + logger.Errorf("bc.store.ForEachBlock failed: %v", err) + } + select { + case errC <- err: + default: + } + } + return nil + }); err != nil { + logger.WithError(err).Error("WalkChain get blocks db transaction failed") + } + }() + + var err error + select { + case err = <-errC: + if err != nil { + break + } + case <-quit: + err = ErrVerifyStopped + break + case <-verifyDone: + break + } + + close(interrupt) + wg.Wait() + return err +} + +// VerifyBlockHeader Returns error if the BlockHeader is not valid +func (bc Blockchain) verifyBlockHeader(tx *dbutil.Tx, b coin.Block) error { + head, err := bc.Head(tx) + if err != nil { + return err + } + + //check BkSeq + if b.Head.BkSeq != head.Head.BkSeq+1 { + return errors.New("BkSeq invalid") + } + //check Time, only requirement is that its monotonely increasing + if b.Head.Time <= head.Head.Time { + return errors.New("Block time must be > head time") + } + // Check block hash against previous head + if b.Head.PrevHash != head.HashHeader() { + return errors.New("PrevHash does not match current head") + } + + if b.Body.Hash() != b.Head.BodyHash { + return errors.New("Computed body hash does not match") + } + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/block_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/block_skyencoder.go new file mode 100644 index 000000000..b1a77bca4 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/block_skyencoder.go @@ -0,0 +1,513 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package blockdb + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeBlock computes the size of an encoded object of type Block +func encodeSizeBlock(obj *coin.Block) uint64 { + i0 := uint64(0) + + // obj.Head.Version + i0 += 4 + + // obj.Head.Time + i0 += 8 + + // obj.Head.BkSeq + i0 += 8 + + // obj.Head.Fee + i0 += 8 + + // obj.Head.PrevHash + i0 += 32 + + // obj.Head.BodyHash + i0 += 32 + + // obj.Head.UxHash + i0 += 32 + + // obj.Body.Transactions + i0 += 4 + for _, x1 := range obj.Body.Transactions { + i1 := uint64(0) + + // x1.Length + i1 += 4 + + // x1.Type + i1++ + + // x1.InnerHash + i1 += 32 + + // x1.Sigs + i1 += 4 + { + i2 := uint64(0) + + // x2 + i2 += 65 + + i1 += uint64(len(x1.Sigs)) * i2 + } + + // x1.In + i1 += 4 + { + i2 := uint64(0) + + // x2 + i2 += 32 + + i1 += uint64(len(x1.In)) * i2 + } + + // x1.Out + i1 += 4 + { + i2 := uint64(0) + + // x2.Address.Version + i2++ + + // x2.Address.Key + i2 += 20 + + // x2.Coins + i2 += 8 + + // x2.Hours + i2 += 8 + + i1 += uint64(len(x1.Out)) * i2 + } + + i0 += i1 + } + + return i0 +} + +// encodeBlock encodes an object of type Block to a buffer allocated to the exact size +// required to encode the object. +func encodeBlock(obj *coin.Block) ([]byte, error) { + n := encodeSizeBlock(obj) + buf := make([]byte, n) + + if err := encodeBlockToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeBlockToBuffer encodes an object of type Block to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeBlockToBuffer(buf []byte, obj *coin.Block) error { + if uint64(len(buf)) < encodeSizeBlock(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Head.Version + e.Uint32(obj.Head.Version) + + // obj.Head.Time + e.Uint64(obj.Head.Time) + + // obj.Head.BkSeq + e.Uint64(obj.Head.BkSeq) + + // obj.Head.Fee + e.Uint64(obj.Head.Fee) + + // obj.Head.PrevHash + e.CopyBytes(obj.Head.PrevHash[:]) + + // obj.Head.BodyHash + e.CopyBytes(obj.Head.BodyHash[:]) + + // obj.Head.UxHash + e.CopyBytes(obj.Head.UxHash[:]) + + // obj.Body.Transactions maxlen check + if len(obj.Body.Transactions) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Body.Transactions length check + if uint64(len(obj.Body.Transactions)) > math.MaxUint32 { + return errors.New("obj.Body.Transactions length exceeds math.MaxUint32") + } + + // obj.Body.Transactions length + e.Uint32(uint32(len(obj.Body.Transactions))) + + // obj.Body.Transactions + for _, x := range obj.Body.Transactions { + + // x.Length + e.Uint32(x.Length) + + // x.Type + e.Uint8(x.Type) + + // x.InnerHash + e.CopyBytes(x.InnerHash[:]) + + // x.Sigs maxlen check + if len(x.Sigs) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Sigs length check + if uint64(len(x.Sigs)) > math.MaxUint32 { + return errors.New("x.Sigs length exceeds math.MaxUint32") + } + + // x.Sigs length + e.Uint32(uint32(len(x.Sigs))) + + // x.Sigs + for _, x := range x.Sigs { + + // x + e.CopyBytes(x[:]) + + } + + // x.In maxlen check + if len(x.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.In length check + if uint64(len(x.In)) > math.MaxUint32 { + return errors.New("x.In length exceeds math.MaxUint32") + } + + // x.In length + e.Uint32(uint32(len(x.In))) + + // x.In + for _, x := range x.In { + + // x + e.CopyBytes(x[:]) + + } + + // x.Out maxlen check + if len(x.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // x.Out length check + if uint64(len(x.Out)) > math.MaxUint32 { + return errors.New("x.Out length exceeds math.MaxUint32") + } + + // x.Out length + e.Uint32(uint32(len(x.Out))) + + // x.Out + for _, x := range x.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + } + + return nil +} + +// decodeBlock decodes an object of type Block from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeBlock(buf []byte, obj *coin.Block) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Head.Version + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Head.Version = i + } + + { + // obj.Head.Time + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Head.Time = i + } + + { + // obj.Head.BkSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Head.BkSeq = i + } + + { + // obj.Head.Fee + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Head.Fee = i + } + + { + // obj.Head.PrevHash + if len(d.Buffer) < len(obj.Head.PrevHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Head.PrevHash[:], d.Buffer[:len(obj.Head.PrevHash)]) + d.Buffer = d.Buffer[len(obj.Head.PrevHash):] + } + + { + // obj.Head.BodyHash + if len(d.Buffer) < len(obj.Head.BodyHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Head.BodyHash[:], d.Buffer[:len(obj.Head.BodyHash)]) + d.Buffer = d.Buffer[len(obj.Head.BodyHash):] + } + + { + // obj.Head.UxHash + if len(d.Buffer) < len(obj.Head.UxHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Head.UxHash[:], d.Buffer[:len(obj.Head.UxHash)]) + d.Buffer = d.Buffer[len(obj.Head.UxHash):] + } + + { + // obj.Body.Transactions + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Body.Transactions = make([]coin.Transaction, length) + + for z2 := range obj.Body.Transactions { + { + // obj.Body.Transactions[z2].Length + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Body.Transactions[z2].Length = i + } + + { + // obj.Body.Transactions[z2].Type + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Body.Transactions[z2].Type = i + } + + { + // obj.Body.Transactions[z2].InnerHash + if len(d.Buffer) < len(obj.Body.Transactions[z2].InnerHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Body.Transactions[z2].InnerHash[:], d.Buffer[:len(obj.Body.Transactions[z2].InnerHash)]) + d.Buffer = d.Buffer[len(obj.Body.Transactions[z2].InnerHash):] + } + + { + // obj.Body.Transactions[z2].Sigs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Body.Transactions[z2].Sigs = make([]cipher.Sig, length) + + for z4 := range obj.Body.Transactions[z2].Sigs { + { + // obj.Body.Transactions[z2].Sigs[z4] + if len(d.Buffer) < len(obj.Body.Transactions[z2].Sigs[z4]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Body.Transactions[z2].Sigs[z4][:], d.Buffer[:len(obj.Body.Transactions[z2].Sigs[z4])]) + d.Buffer = d.Buffer[len(obj.Body.Transactions[z2].Sigs[z4]):] + } + + } + } + } + + { + // obj.Body.Transactions[z2].In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Body.Transactions[z2].In = make([]cipher.SHA256, length) + + for z4 := range obj.Body.Transactions[z2].In { + { + // obj.Body.Transactions[z2].In[z4] + if len(d.Buffer) < len(obj.Body.Transactions[z2].In[z4]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Body.Transactions[z2].In[z4][:], d.Buffer[:len(obj.Body.Transactions[z2].In[z4])]) + d.Buffer = d.Buffer[len(obj.Body.Transactions[z2].In[z4]):] + } + + } + } + } + + { + // obj.Body.Transactions[z2].Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Body.Transactions[z2].Out = make([]coin.TransactionOutput, length) + + for z4 := range obj.Body.Transactions[z2].Out { + { + // obj.Body.Transactions[z2].Out[z4].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Body.Transactions[z2].Out[z4].Address.Version = i + } + + { + // obj.Body.Transactions[z2].Out[z4].Address.Key + if len(d.Buffer) < len(obj.Body.Transactions[z2].Out[z4].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Body.Transactions[z2].Out[z4].Address.Key[:], d.Buffer[:len(obj.Body.Transactions[z2].Out[z4].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Body.Transactions[z2].Out[z4].Address.Key):] + } + + { + // obj.Body.Transactions[z2].Out[z4].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Body.Transactions[z2].Out[z4].Coins = i + } + + { + // obj.Body.Transactions[z2].Out[z4].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Body.Transactions[z2].Out[z4].Hours = i + } + + } + } + } + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeBlockExact decodes an object of type Block from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeBlockExact(buf []byte, obj *coin.Block) error { + if n, err := decodeBlock(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/block_tree.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/block_tree.go new file mode 100644 index 000000000..a7b315e0e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/block_tree.go @@ -0,0 +1,269 @@ +package blockdb + +import ( + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + errBlockExist = errors.New("block already exists") + errNoParent = errors.New("block is not genesis and has no parent") + errWrongParent = errors.New("wrong parent") + errHasChild = errors.New("remove block failed, it has children") + + // BlocksBkt holds coin.Blocks + BlocksBkt = []byte("blocks") + // TreeBkt maps block height to a (prev, hash) pair for a block + TreeBkt = []byte("block_tree") +) + +// Walker function for go through blockchain +type Walker func(*dbutil.Tx, []coin.HashPair) (cipher.SHA256, bool) + +// blockTree use the blockdb store all blocks and maintains the block tree struct. +type blockTree struct{} + +// AddBlock adds block with *dbutil.Tx +func (bt *blockTree) AddBlock(tx *dbutil.Tx, b *coin.Block) error { + // can't store block if it's not genesis block and has no parent. + if b.Seq() > 0 && b.Head.PrevHash.Null() { + return errNoParent + } + + // check if the block already exists. + hash := b.HashHeader() + if ok, err := dbutil.BucketHasKey(tx, BlocksBkt, hash[:]); err != nil { + return err + } else if ok { + return errBlockExist + } + + // write block into blocks bucket. + buf, err := encodeBlock(b) + if err != nil { + return err + } + + if err := dbutil.PutBucketValue(tx, BlocksBkt, hash[:], buf); err != nil { + return err + } + + // the pre hash must be in depth - 1. + if b.Seq() > 0 { + parentHashPair, err := getHashPairInDepth(tx, b.Seq()-1, func(hp coin.HashPair) bool { + return hp.Hash == b.Head.PrevHash + }) + if err != nil { + return err + } + if len(parentHashPair) == 0 { + return errWrongParent + } + } + + hp := coin.HashPair{ + Hash: hash, + PrevHash: b.Head.PrevHash, + } + + // get block pairs in the depth + hashPairs, err := getHashPairInDepth(tx, b.Seq(), allPairs) + if err != nil { + return err + } + + if len(hashPairs) == 0 { + // no hash pair exist in the depth. + // write the hash pair into tree. + return setHashPairInDepth(tx, b.Seq(), []coin.HashPair{hp}) + } + + // check dup block + if containHash(hashPairs, hp) { + return errBlockExist + } + + hashPairs = append(hashPairs, hp) + return setHashPairInDepth(tx, b.Seq(), hashPairs) +} + +// RemoveBlock remove block from blocks bucket and tree bucket. +// can't remove block if it has children. +func (bt *blockTree) RemoveBlock(tx *dbutil.Tx, b *coin.Block) error { + // delete block in blocks bucket. + hash := b.HashHeader() + if err := dbutil.Delete(tx, BlocksBkt, hash[:]); err != nil { + return err + } + + // check if this block has children + if has, err := hasChild(tx, *b); err != nil { + return err + } else if has { + return errHasChild + } + + // get block hash pairs in depth + hashPairs, err := getHashPairInDepth(tx, b.Seq(), allPairs) + if err != nil { + return err + } + + // remove block hash pair in tree. + ps := removePairs(hashPairs, coin.HashPair{ + Hash: hash, + PrevHash: b.Head.PrevHash, + }) + + if len(ps) == 0 { + return dbutil.Delete(tx, TreeBkt, dbutil.Itob(b.Seq())) + } + + // update the hash pairs in tree. + return setHashPairInDepth(tx, b.Seq(), ps) +} + +// GetBlock get block by hash, return nil on not found +func (bt *blockTree) GetBlock(tx *dbutil.Tx, hash cipher.SHA256) (*coin.Block, error) { + var b coin.Block + + v, err := dbutil.GetBucketValueNoCopy(tx, BlocksBkt, hash[:]) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + if err := decodeBlockExact(v, &b); err != nil { + return nil, err + } + + if hash != b.HashHeader() { + return nil, fmt.Errorf("DB key %s does not match block hash header %s", hash, b.HashHeader()) + } + + return &b, nil +} + +// GetBlockInDepth get block in depth, return nil on not found, +// the filter is used to choose the appropriate block. +func (bt *blockTree) GetBlockInDepth(tx *dbutil.Tx, depth uint64, filter Walker) (*coin.Block, error) { + hash, ok, err := bt.getHashInDepth(tx, depth, filter) + if err != nil { + return nil, fmt.Errorf("BlockTree.getHashInDepth failed: %v", err) + } else if !ok { + return nil, nil + } + + return bt.GetBlock(tx, hash) +} + +// ForEachBlock iterates all blocks and calls f on them +func (bt *blockTree) ForEachBlock(tx *dbutil.Tx, f func(b *coin.Block) error) error { + return dbutil.ForEach(tx, BlocksBkt, func(_, v []byte) error { + var b coin.Block + if err := decodeBlockExact(v, &b); err != nil { + return err + } + + return f(&b) + }) +} + +func (bt *blockTree) getHashInDepth(tx *dbutil.Tx, depth uint64, filter Walker) (cipher.SHA256, bool, error) { + var pairs hashPairsWrapper + + v, err := dbutil.GetBucketValueNoCopy(tx, TreeBkt, dbutil.Itob(depth)) + if err != nil { + return cipher.SHA256{}, false, err + } else if v == nil { + return cipher.SHA256{}, false, nil + } + + if err := decodeHashPairsWrapperExact(v, &pairs); err != nil { + return cipher.SHA256{}, false, err + } + + hash, ok := filter(tx, pairs.HashPairs) + if !ok { + return cipher.SHA256{}, false, errors.New("No hash found in depth") + } + + return hash, true, nil +} + +func containHash(hashPairs []coin.HashPair, pair coin.HashPair) bool { + for _, p := range hashPairs { + if p.Hash == pair.Hash { + return true + } + } + return false +} + +func removePairs(hps []coin.HashPair, pair coin.HashPair) []coin.HashPair { + pairs := []coin.HashPair{} + for _, p := range hps { + if p.Hash == pair.Hash && p.PrevHash == pair.PrevHash { + continue + } + pairs = append(pairs, p) + } + return pairs +} + +func getHashPairInDepth(tx *dbutil.Tx, depth uint64, fn func(hp coin.HashPair) bool) ([]coin.HashPair, error) { + var hps hashPairsWrapper + + v, err := dbutil.GetBucketValueNoCopy(tx, TreeBkt, dbutil.Itob(depth)) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + if err := decodeHashPairsWrapperExact(v, &hps); err != nil { + return nil, err + } + + var pairs []coin.HashPair + for _, ps := range hps.HashPairs { + if fn(ps) { + pairs = append(pairs, ps) + } + } + return pairs, nil +} + +// check if this block has children +func hasChild(tx *dbutil.Tx, b coin.Block) (bool, error) { + // get the child block hash pair, whose pre hash point to current block. + childHashPair, err := getHashPairInDepth(tx, b.Head.BkSeq+1, func(hp coin.HashPair) bool { + return hp.PrevHash == b.HashHeader() + }) + + if err != nil { + return false, err + } + + return len(childHashPair) > 0, nil +} + +func setHashPairInDepth(tx *dbutil.Tx, depth uint64, hps []coin.HashPair) error { + buf, err := encodeHashPairsWrapper(&hashPairsWrapper{ + HashPairs: hps, + }) + if err != nil { + return err + } + + return dbutil.PutBucketValue(tx, TreeBkt, dbutil.Itob(depth), buf) +} + +func allPairs(hp coin.HashPair) bool { + return true +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/blockchain.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/blockchain.go new file mode 100644 index 000000000..f5e5e5246 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/blockchain.go @@ -0,0 +1,285 @@ +/* +Package blockdb is the core blockchain database wrapper +*/ +package blockdb + +import ( + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + logger = logging.MustGetLogger("blockdb") + + // ErrNoHeadBlock is returned when calling Blockchain.Head() when no head block exists + ErrNoHeadBlock = fmt.Errorf("found no head block") +) + +//go:generate skyencoder -unexported -struct Block -output-path . -package blockdb github.com/skycoin/skycoin/src/coin +//go:generate skyencoder -unexported -struct UxOut -output-path . -package blockdb github.com/skycoin/skycoin/src/coin +//go:generate skyencoder -unexported -struct hashPairsWrapper +//go:generate skyencoder -unexported -struct hashesWrapper +//go:generate skyencoder -unexported -struct sigWrapper + +// hashesWrapper wraps []cipher.SHA256 so it can be used by skyencoder +type hashesWrapper struct { + Hashes []cipher.SHA256 +} + +// sigWrapper wraps cipher.Sig in struct so it can be used by skyencoder +type sigWrapper struct { + Sig cipher.Sig +} + +// hashPairsWrapper wraps []coin.HashPair so it can be used by skyencoder +type hashPairsWrapper struct { + HashPairs []coin.HashPair +} + +// ErrMissingSignature is returned if a block in the db does not have a corresponding signature in the db +type ErrMissingSignature struct { + b *coin.Block +} + +// NewErrMissingSignature creates ErrMissingSignature from *coin.Block +func NewErrMissingSignature(b *coin.Block) error { + return ErrMissingSignature{ + b: b, + } +} + +func (e ErrMissingSignature) Error() string { + return fmt.Sprintf("Signature not found for block seq=%d hash=%s", e.b.Head.BkSeq, e.b.HashHeader().Hex()) +} + +// CreateBuckets creates bolt.DB buckets used by the blockdb +func CreateBuckets(tx *dbutil.Tx) error { + return dbutil.CreateBuckets(tx, [][]byte{ + BlockSigsBkt, + BlocksBkt, + TreeBkt, + BlockchainMetaBkt, + UnspentPoolBkt, + UnspentPoolAddrIndexBkt, + UnspentMetaBkt, + }) +} + +// BlockTree block storage +type BlockTree interface { + AddBlock(*dbutil.Tx, *coin.Block) error + GetBlock(*dbutil.Tx, cipher.SHA256) (*coin.Block, error) + GetBlockInDepth(*dbutil.Tx, uint64, Walker) (*coin.Block, error) + ForEachBlock(*dbutil.Tx, func(*coin.Block) error) error +} + +// BlockSigs block signature storage +type BlockSigs interface { + Add(*dbutil.Tx, cipher.SHA256, cipher.Sig) error + Get(*dbutil.Tx, cipher.SHA256) (cipher.Sig, bool, error) + ForEach(*dbutil.Tx, func(cipher.SHA256, cipher.Sig) error) error +} + +//go:generate mockery -name UnspentPooler -case underscore -testonly -inpkg + +// UnspentPooler unspent outputs pool +type UnspentPooler interface { + MaybeBuildIndexes(*dbutil.Tx, uint64) error + Len(*dbutil.Tx) (uint64, error) + Contains(*dbutil.Tx, cipher.SHA256) (bool, error) + Get(*dbutil.Tx, cipher.SHA256) (*coin.UxOut, error) + GetAll(*dbutil.Tx) (coin.UxArray, error) + GetArray(*dbutil.Tx, []cipher.SHA256) (coin.UxArray, error) + GetUxHash(*dbutil.Tx) (cipher.SHA256, error) + GetUnspentsOfAddrs(*dbutil.Tx, []cipher.Address) (coin.AddressUxOuts, error) + GetUnspentHashesOfAddrs(*dbutil.Tx, []cipher.Address) (AddressHashes, error) + ProcessBlock(*dbutil.Tx, *coin.SignedBlock) error + AddressCount(*dbutil.Tx) (uint64, error) +} + +// ChainMeta blockchain metadata +type ChainMeta interface { + GetHeadSeq(*dbutil.Tx) (uint64, bool, error) + SetHeadSeq(*dbutil.Tx, uint64) error +} + +// Blockchain maintain the buckets for blockchain +type Blockchain struct { + db *dbutil.DB + meta ChainMeta + unspent UnspentPooler + tree BlockTree + sigs BlockSigs + walker Walker +} + +// NewBlockchain creates a new blockchain instance +func NewBlockchain(db *dbutil.DB, walker Walker) (*Blockchain, error) { + if db == nil { + return nil, errors.New("db is nil") + } + + if walker == nil { + return nil, errors.New("blockchain walker is nil") + } + + return &Blockchain{ + db: db, + unspent: NewUnspentPool(), + meta: &chainMeta{}, + tree: &blockTree{}, + sigs: &blockSigs{}, + walker: walker, + }, nil +} + +// UnspentPool returns the unspent pool +func (bc *Blockchain) UnspentPool() UnspentPooler { + return bc.unspent +} + +// AddBlock adds signed block +func (bc *Blockchain) AddBlock(tx *dbutil.Tx, sb *coin.SignedBlock) error { + if err := bc.sigs.Add(tx, sb.HashHeader(), sb.Sig); err != nil { + return fmt.Errorf("save signature failed: %v", err) + } + + if err := bc.tree.AddBlock(tx, &sb.Block); err != nil { + return fmt.Errorf("save block failed: %v", err) + } + + // update block head seq and unspent pool + if err := bc.processBlock(tx, sb); err != nil { + return err + } + + return nil +} + +// processBlock processes a block and updates the db +func (bc *Blockchain) processBlock(tx *dbutil.Tx, b *coin.SignedBlock) error { + if err := bc.unspent.ProcessBlock(tx, b); err != nil { + return err + } + + return bc.meta.SetHeadSeq(tx, b.Seq()) +} + +// Head returns head block, returns error if no head block exists +func (bc *Blockchain) Head(tx *dbutil.Tx) (*coin.SignedBlock, error) { + seq, ok, err := bc.HeadSeq(tx) + if err != nil { + return nil, err + } else if !ok { + return nil, ErrNoHeadBlock + } + + b, err := bc.GetSignedBlockBySeq(tx, seq) + if err != nil { + return nil, err + } + + if b == nil { + return nil, ErrNoHeadBlock + } + + return b, nil +} + +// HeadSeq returns the head block sequence +func (bc *Blockchain) HeadSeq(tx *dbutil.Tx) (uint64, bool, error) { + return bc.meta.GetHeadSeq(tx) +} + +// Len returns blockchain length +func (bc *Blockchain) Len(tx *dbutil.Tx) (uint64, error) { + seq, ok, err := bc.meta.GetHeadSeq(tx) + if err != nil { + return 0, err + } else if !ok { + return 0, nil + } + + return seq + 1, nil +} + +// GetBlockSignature returns the signature of a block +func (bc *Blockchain) GetBlockSignature(tx *dbutil.Tx, b *coin.Block) (cipher.Sig, bool, error) { + return bc.sigs.Get(tx, b.HashHeader()) +} + +// GetBlockByHash returns block of given hash +func (bc *Blockchain) GetBlockByHash(tx *dbutil.Tx, hash cipher.SHA256) (*coin.Block, error) { + b, err := bc.tree.GetBlock(tx, hash) + if err != nil { + return nil, err + } + + return b, nil +} + +// GetSignedBlockByHash returns signed block of given hash +func (bc *Blockchain) GetSignedBlockByHash(tx *dbutil.Tx, hash cipher.SHA256) (*coin.SignedBlock, error) { + b, err := bc.tree.GetBlock(tx, hash) + if err != nil { + return nil, err + } + if b == nil { + return nil, nil + } + + // get signature + sig, ok, err := bc.sigs.Get(tx, hash) + if err != nil { + return nil, fmt.Errorf("find signature of block: %v failed: %v", hash.Hex(), err) + } + + if !ok { + return nil, NewErrMissingSignature(b) + } + + return &coin.SignedBlock{ + Block: *b, + Sig: sig, + }, nil +} + +// GetSignedBlockBySeq returns signed block of given seq +func (bc *Blockchain) GetSignedBlockBySeq(tx *dbutil.Tx, seq uint64) (*coin.SignedBlock, error) { + b, err := bc.tree.GetBlockInDepth(tx, seq, bc.walker) + if err != nil { + return nil, fmt.Errorf("bc.tree.GetBlockInDepth failed: %v", err) + } + if b == nil { + return nil, nil + } + + sig, ok, err := bc.sigs.Get(tx, b.HashHeader()) + if err != nil { + return nil, fmt.Errorf("find signature of block: %v failed: %v", seq, err) + } + + if !ok { + return nil, NewErrMissingSignature(b) + } + + return &coin.SignedBlock{ + Block: *b, + Sig: sig, + }, nil +} + +// GetGenesisBlock returns genesis block +func (bc *Blockchain) GetGenesisBlock(tx *dbutil.Tx) (*coin.SignedBlock, error) { + return bc.GetSignedBlockBySeq(tx, 0) +} + +// ForEachBlock iterates all blocks and calls f on them +func (bc *Blockchain) ForEachBlock(tx *dbutil.Tx, f func(b *coin.Block) error) error { + return bc.tree.ForEachBlock(tx, f) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/blocksigs.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/blocksigs.go new file mode 100644 index 000000000..132792c3f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/blocksigs.go @@ -0,0 +1,69 @@ +package blockdb + +import ( + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + // BlockSigsBkt holds block signatures + BlockSigsBkt = []byte("block_sigs") +) + +// blockSigs manages known blockSigs as received. +// TODO -- support out of order blocks. This requires a change to the +// message protocol to support ranges similar to bitcoin's locator hashes. +// We also need to keep track of whether a block has been executed so that +// as continuity is established we can execute chains of blocks. +// TODO -- Since we will need to hold blocks that cannot be verified +// immediately against the blockchain, we need to be able to hold multiple +// blockSigs per BkSeq, or use hashes as keys. For now, this is not a +// problem assuming the signed blocks created by a block publisher are valid blocks, +// because we can check the signature independently of the blockchain. +type blockSigs struct{} + +// Get returns the signature of a specific block +func (bs *blockSigs) Get(tx *dbutil.Tx, hash cipher.SHA256) (cipher.Sig, bool, error) { + var sig sigWrapper + + v, err := dbutil.GetBucketValueNoCopy(tx, BlockSigsBkt, hash[:]) + if err != nil { + return cipher.Sig{}, false, err + } else if v == nil { + return cipher.Sig{}, false, nil + } + + if err := decodeSigWrapperExact(v, &sig); err != nil { + return cipher.Sig{}, false, err + } + + return sig.Sig, true, nil +} + +// Add adds a signed block to the db +func (bs *blockSigs) Add(tx *dbutil.Tx, hash cipher.SHA256, sig cipher.Sig) error { + buf, err := encodeSigWrapper(&sigWrapper{ + Sig: sig, + }) + if err != nil { + return err + } + return dbutil.PutBucketValue(tx, BlockSigsBkt, hash[:], buf) +} + +// ForEach iterates all signatures and calls f on them +func (bs *blockSigs) ForEach(tx *dbutil.Tx, f func(cipher.SHA256, cipher.Sig) error) error { + return dbutil.ForEach(tx, BlockSigsBkt, func(k, v []byte) error { + hash, err := cipher.SHA256FromBytes(k) + if err != nil { + return err + } + + var sig sigWrapper + if err := decodeSigWrapperExact(v, &sig); err != nil { + return err + } + + return f(hash, sig.Sig) + }) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/chain_meta.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/chain_meta.go new file mode 100644 index 000000000..fdfaf3383 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/chain_meta.go @@ -0,0 +1,29 @@ +package blockdb + +import ( + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + // BlockchainMetaBkt holds blockchain metadata + BlockchainMetaBkt = []byte("blockchain_meta") + // blockchain head sequence number + headSeqKey = []byte("head_seq") +) + +type chainMeta struct{} + +func (m chainMeta) SetHeadSeq(tx *dbutil.Tx, seq uint64) error { + return dbutil.PutBucketValue(tx, BlockchainMetaBkt, headSeqKey, dbutil.Itob(seq)) +} + +func (m chainMeta) GetHeadSeq(tx *dbutil.Tx) (uint64, bool, error) { + v, err := dbutil.GetBucketValue(tx, BlockchainMetaBkt, headSeqKey) + if err != nil { + return 0, false, err + } else if v == nil { + return 0, false, nil + } + + return dbutil.Btoi(v), true, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/hash_pairs_wrapper_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/hash_pairs_wrapper_skyencoder.go new file mode 100644 index 000000000..69c7a892a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/hash_pairs_wrapper_skyencoder.go @@ -0,0 +1,141 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package blockdb + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeHashPairsWrapper computes the size of an encoded object of type hashPairsWrapper +func encodeSizeHashPairsWrapper(obj *hashPairsWrapper) uint64 { + i0 := uint64(0) + + // obj.HashPairs + i0 += 4 + { + i1 := uint64(0) + + // x1.Hash + i1 += 32 + + // x1.PrevHash + i1 += 32 + + i0 += uint64(len(obj.HashPairs)) * i1 + } + + return i0 +} + +// encodeHashPairsWrapper encodes an object of type hashPairsWrapper to a buffer allocated to the exact size +// required to encode the object. +func encodeHashPairsWrapper(obj *hashPairsWrapper) ([]byte, error) { + n := encodeSizeHashPairsWrapper(obj) + buf := make([]byte, n) + + if err := encodeHashPairsWrapperToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeHashPairsWrapperToBuffer encodes an object of type hashPairsWrapper to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeHashPairsWrapperToBuffer(buf []byte, obj *hashPairsWrapper) error { + if uint64(len(buf)) < encodeSizeHashPairsWrapper(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.HashPairs length check + if uint64(len(obj.HashPairs)) > math.MaxUint32 { + return errors.New("obj.HashPairs length exceeds math.MaxUint32") + } + + // obj.HashPairs length + e.Uint32(uint32(len(obj.HashPairs))) + + // obj.HashPairs + for _, x := range obj.HashPairs { + + // x.Hash + e.CopyBytes(x.Hash[:]) + + // x.PrevHash + e.CopyBytes(x.PrevHash[:]) + + } + + return nil +} + +// decodeHashPairsWrapper decodes an object of type hashPairsWrapper from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeHashPairsWrapper(buf []byte, obj *hashPairsWrapper) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.HashPairs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length != 0 { + obj.HashPairs = make([]coin.HashPair, length) + + for z1 := range obj.HashPairs { + { + // obj.HashPairs[z1].Hash + if len(d.Buffer) < len(obj.HashPairs[z1].Hash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.HashPairs[z1].Hash[:], d.Buffer[:len(obj.HashPairs[z1].Hash)]) + d.Buffer = d.Buffer[len(obj.HashPairs[z1].Hash):] + } + + { + // obj.HashPairs[z1].PrevHash + if len(d.Buffer) < len(obj.HashPairs[z1].PrevHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.HashPairs[z1].PrevHash[:], d.Buffer[:len(obj.HashPairs[z1].PrevHash)]) + d.Buffer = d.Buffer[len(obj.HashPairs[z1].PrevHash):] + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeHashPairsWrapperExact decodes an object of type hashPairsWrapper from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeHashPairsWrapperExact(buf []byte, obj *hashPairsWrapper) error { + if n, err := decodeHashPairsWrapper(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/hashes_wrapper_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/hashes_wrapper_skyencoder.go new file mode 100644 index 000000000..08464d0c8 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/hashes_wrapper_skyencoder.go @@ -0,0 +1,126 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package blockdb + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeHashesWrapper computes the size of an encoded object of type hashesWrapper +func encodeSizeHashesWrapper(obj *hashesWrapper) uint64 { + i0 := uint64(0) + + // obj.Hashes + i0 += 4 + { + i1 := uint64(0) + + // x1 + i1 += 32 + + i0 += uint64(len(obj.Hashes)) * i1 + } + + return i0 +} + +// encodeHashesWrapper encodes an object of type hashesWrapper to a buffer allocated to the exact size +// required to encode the object. +func encodeHashesWrapper(obj *hashesWrapper) ([]byte, error) { + n := encodeSizeHashesWrapper(obj) + buf := make([]byte, n) + + if err := encodeHashesWrapperToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeHashesWrapperToBuffer encodes an object of type hashesWrapper to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeHashesWrapperToBuffer(buf []byte, obj *hashesWrapper) error { + if uint64(len(buf)) < encodeSizeHashesWrapper(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Hashes length check + if uint64(len(obj.Hashes)) > math.MaxUint32 { + return errors.New("obj.Hashes length exceeds math.MaxUint32") + } + + // obj.Hashes length + e.Uint32(uint32(len(obj.Hashes))) + + // obj.Hashes + for _, x := range obj.Hashes { + + // x + e.CopyBytes(x[:]) + + } + + return nil +} + +// decodeHashesWrapper decodes an object of type hashesWrapper from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeHashesWrapper(buf []byte, obj *hashesWrapper) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Hashes + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length != 0 { + obj.Hashes = make([]cipher.SHA256, length) + + for z1 := range obj.Hashes { + { + // obj.Hashes[z1] + if len(d.Buffer) < len(obj.Hashes[z1]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Hashes[z1][:], d.Buffer[:len(obj.Hashes[z1])]) + d.Buffer = d.Buffer[len(obj.Hashes[z1]):] + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeHashesWrapperExact decodes an object of type hashesWrapper from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeHashesWrapperExact(buf []byte, obj *hashesWrapper) error { + if n, err := decodeHashesWrapper(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/sig_wrapper_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/sig_wrapper_skyencoder.go new file mode 100644 index 000000000..398d886e7 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/sig_wrapper_skyencoder.go @@ -0,0 +1,78 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package blockdb + +import "github.com/skycoin/skycoin/src/cipher/encoder" + +// encodeSizeSigWrapper computes the size of an encoded object of type sigWrapper +func encodeSizeSigWrapper(obj *sigWrapper) uint64 { + i0 := uint64(0) + + // obj.Sig + i0 += 65 + + return i0 +} + +// encodeSigWrapper encodes an object of type sigWrapper to a buffer allocated to the exact size +// required to encode the object. +func encodeSigWrapper(obj *sigWrapper) ([]byte, error) { + n := encodeSizeSigWrapper(obj) + buf := make([]byte, n) + + if err := encodeSigWrapperToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeSigWrapperToBuffer encodes an object of type sigWrapper to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeSigWrapperToBuffer(buf []byte, obj *sigWrapper) error { + if uint64(len(buf)) < encodeSizeSigWrapper(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Sig + e.CopyBytes(obj.Sig[:]) + + return nil +} + +// decodeSigWrapper decodes an object of type sigWrapper from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeSigWrapper(buf []byte, obj *sigWrapper) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Sig + if len(d.Buffer) < len(obj.Sig) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Sig[:], d.Buffer[:len(obj.Sig)]) + d.Buffer = d.Buffer[len(obj.Sig):] + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeSigWrapperExact decodes an object of type sigWrapper from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeSigWrapperExact(buf []byte, obj *sigWrapper) error { + if n, err := decodeSigWrapper(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/unspent.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/unspent.go new file mode 100644 index 000000000..344a992d5 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/unspent.go @@ -0,0 +1,541 @@ +package blockdb + +import ( + "bytes" + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + xorhashKey = []byte("xorhash") + addrIndexHeightKey = []byte("addr_index_height") + + // UnspentPoolBkt holds unspent outputs, indexed by unspent output hash + UnspentPoolBkt = []byte("unspent_pool") + // UnspentPoolAddrIndexBkt maps addresses to their unspent outputs + UnspentPoolAddrIndexBkt = []byte("unspent_pool_addr_index") + // UnspentMetaBkt holds unspent output metadata + UnspentMetaBkt = []byte("unspent_meta") +) + +// ErrUnspentNotExist is returned if an unspent is not found in the pool +type ErrUnspentNotExist struct { + UxID string +} + +// NewErrUnspentNotExist creates ErrUnspentNotExist from a UxID +func NewErrUnspentNotExist(uxID string) error { + return ErrUnspentNotExist{ + UxID: uxID, + } +} + +func (e ErrUnspentNotExist) Error() string { + return fmt.Sprintf("unspent output of %s does not exist", e.UxID) +} + +// AddressHashes maps addresses to a set of hashes +type AddressHashes map[cipher.Address][]cipher.SHA256 + +// Flatten flattens all hash sets from AddressHashes to one slice +func (a AddressHashes) Flatten() []cipher.SHA256 { + total := 0 + for _, h := range a { + total += len(h) + } + + hashes := make([]cipher.SHA256, total) + + i := 0 + for _, h := range a { + copy(hashes[i:], h) + i += len(h) + } + + return hashes +} + +type unspentMeta struct{} + +func (m unspentMeta) getXorHash(tx *dbutil.Tx) (cipher.SHA256, error) { + v, err := dbutil.GetBucketValue(tx, UnspentMetaBkt, xorhashKey) + if err != nil { + return cipher.SHA256{}, err + } else if v == nil { + return cipher.SHA256{}, nil + } + + return cipher.SHA256FromBytes(v) +} + +func (m *unspentMeta) setXorHash(tx *dbutil.Tx, hash cipher.SHA256) error { + return dbutil.PutBucketValue(tx, UnspentMetaBkt, xorhashKey, hash[:]) +} + +func (m *unspentMeta) getAddrIndexHeight(tx *dbutil.Tx) (uint64, bool, error) { + v, err := dbutil.GetBucketValue(tx, UnspentMetaBkt, addrIndexHeightKey) + if err != nil { + return 0, false, err + } else if v == nil { + return 0, false, nil + } + + return dbutil.Btoi(v), true, nil +} + +func (m *unspentMeta) setAddrIndexHeight(tx *dbutil.Tx, height uint64) error { + return dbutil.PutBucketValue(tx, UnspentMetaBkt, addrIndexHeightKey, dbutil.Itob(height)) +} + +type pool struct{} + +func (pl pool) get(tx *dbutil.Tx, hash cipher.SHA256) (*coin.UxOut, error) { + var out coin.UxOut + + v, err := dbutil.GetBucketValueNoCopy(tx, UnspentPoolBkt, hash[:]) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + if err := decodeUxOutExact(v, &out); err != nil { + return nil, err + } + + return &out, nil +} + +func (pl pool) getAll(tx *dbutil.Tx) (coin.UxArray, error) { + var uxa coin.UxArray + + if err := dbutil.ForEach(tx, UnspentPoolBkt, func(_, v []byte) error { + var ux coin.UxOut + if err := decodeUxOutExact(v, &ux); err != nil { + return err + } + + uxa = append(uxa, ux) + return nil + }); err != nil { + return nil, err + } + + return uxa, nil +} + +func (pl pool) put(tx *dbutil.Tx, hash cipher.SHA256, ux coin.UxOut) error { + buf, err := encodeUxOut(&ux) + if err != nil { + return err + } + + return dbutil.PutBucketValue(tx, UnspentPoolBkt, hash[:], buf) +} + +func (pl *pool) delete(tx *dbutil.Tx, hash cipher.SHA256) error { + return dbutil.Delete(tx, UnspentPoolBkt, hash[:]) +} + +type poolAddrIndex struct{} + +func (p poolAddrIndex) get(tx *dbutil.Tx, addr cipher.Address) ([]cipher.SHA256, error) { + var hashes hashesWrapper + + v, err := dbutil.GetBucketValueNoCopy(tx, UnspentPoolAddrIndexBkt, addr.Bytes()) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + if err := decodeHashesWrapperExact(v, &hashes); err != nil { + return nil, err + } + + return hashes.Hashes, nil +} + +func (p poolAddrIndex) put(tx *dbutil.Tx, addr cipher.Address, hashes []cipher.SHA256) error { + if len(hashes) == 0 { + return errors.New("poolAddrIndex.put cannot put empty hash array") + } + + hashesMap := make(map[cipher.SHA256]struct{}, len(hashes)) + for _, h := range hashes { + if _, ok := hashesMap[h]; ok { + return errors.New("poolAddrIndex.put: hashes array contains duplicate") + } + + hashesMap[h] = struct{}{} + } + + buf, err := encodeHashesWrapper(&hashesWrapper{ + Hashes: hashes, + }) + if err != nil { + return err + } + + return dbutil.PutBucketValue(tx, UnspentPoolAddrIndexBkt, addr.Bytes(), buf) +} + +// adjust adds and removes hashes from an address -> hashes index +// TODO -- if necessary, this can be optimized further to accept multiple addresses at once, +// so that all get queries can be performed before the set +func (p poolAddrIndex) adjust(tx *dbutil.Tx, addr cipher.Address, addHashes, rmHashes []cipher.SHA256) error { + if len(addHashes) == 0 && len(rmHashes) == 0 { + return nil + } + + existingHashes, err := p.get(tx, addr) + if err != nil { + return err + } + + rmHashesMap := make(map[cipher.SHA256]struct{}, len(rmHashes)) + for _, h := range rmHashes { + rmHashesMap[h] = struct{}{} + } + + if len(rmHashesMap) != len(rmHashes) { + return errors.New("poolAddrIndex.adjust: rmHashes contains duplicates") + } + + newHashesSize := len(existingHashes) - len(rmHashes) + if newHashesSize < 0 { + return errors.New("poolAddrIndex.adjust: rmHashes is longer than existingHashes") + } + + newHashes := make([]cipher.SHA256, 0, newHashesSize) + newHashesMap := make(map[cipher.SHA256]struct{}, newHashesSize) + + rmHashesCount := 0 + for _, h := range existingHashes { + if _, ok := rmHashesMap[h]; ok { + rmHashesCount++ + } else { + newHashes = append(newHashes, h) + newHashesMap[h] = struct{}{} + } + } + + if rmHashesCount != len(rmHashes) { + return fmt.Errorf("poolAddrIndex.adjust: rmHashes contains %d hashes not indexed for address %s", len(rmHashes)-rmHashesCount, addr.String()) + } + + for _, h := range addHashes { + if _, ok := rmHashesMap[h]; ok { + return errors.New("poolAddrIndex.adjust: hash appears in both addHashes and rmHashes") + } + + if _, ok := newHashesMap[h]; !ok { + newHashes = append(newHashes, h) + newHashesMap[h] = struct{}{} + } else { + return fmt.Errorf("poolAddrIndex.adjust: uxout hash %s is already indexed for address %s", h.Hex(), addr.String()) + } + } + + // Delete the row if hashes is empty, so that the length of the bucket can + // be used to determine the number of addresses with unspents + if len(newHashes) == 0 { + return dbutil.Delete(tx, UnspentPoolAddrIndexBkt, addr.Bytes()) + } + + return p.put(tx, addr, newHashes) +} + +// Unspents unspent outputs pool +type Unspents struct { + pool *pool + poolAddrIndex *poolAddrIndex + meta *unspentMeta +} + +// NewUnspentPool creates new unspent pool instance +func NewUnspentPool() *Unspents { + return &Unspents{ + pool: &pool{}, + poolAddrIndex: &poolAddrIndex{}, + meta: &unspentMeta{}, + } +} + +// MaybeBuildIndexes builds indexes if necessary +func (up *Unspents) MaybeBuildIndexes(tx *dbutil.Tx, headSeq uint64) error { + logger.Info("Unspents.MaybeBuildIndexes") + + // Compare the addrIndexHeight to the head block, + // if not equal, rebuild the address index + addrIndexHeight, ok, err := up.meta.getAddrIndexHeight(tx) + if err != nil { + return err + } + + if ok && addrIndexHeight == headSeq { + return nil + } + + if addrIndexHeight > headSeq { + logger.Critical().Warningf("addrIndexHeight > headSeq (%d > %d)", addrIndexHeight, headSeq) + } + + logger.Infof("Rebuilding unspent_pool_addr_index (addrHeightIndexExists=%v, addrIndexHeight=%d, headSeq=%d)", ok, addrIndexHeight, headSeq) + + return up.buildAddrIndex(tx) +} + +func (up *Unspents) buildAddrIndex(tx *dbutil.Tx) error { + logger.Info("Building unspent address index") + + if err := dbutil.Reset(tx, UnspentPoolAddrIndexBkt); err != nil { + return err + } + + addrHashes := make(map[cipher.Address][]cipher.SHA256) + + var maxBlockSeq uint64 + if err := dbutil.ForEach(tx, UnspentPoolBkt, func(k, v []byte) error { + var ux coin.UxOut + if err := decodeUxOutExact(v, &ux); err != nil { + return err + } + + if ux.Head.BkSeq > maxBlockSeq { + maxBlockSeq = ux.Head.BkSeq + } + + h := ux.Hash() + + if !bytes.Equal(k[:], h[:]) { + return errors.New("Unspent pool uxout.Hash() does not match its key") + } + + addrHashes[ux.Body.Address] = append(addrHashes[ux.Body.Address], h) + + return nil + }); err != nil { + return err + } + + if len(addrHashes) == 0 { + logger.Infof("No unspents to index") + return nil + } + + for addr, hashes := range addrHashes { + if err := up.poolAddrIndex.put(tx, addr, hashes); err != nil { + return err + } + } + + if err := up.meta.setAddrIndexHeight(tx, maxBlockSeq); err != nil { + return err + } + + logger.Infof("Indexed unspents for %d addresses", len(addrHashes)) + + return nil +} + +// ProcessBlock adds unspents from a block to the unspent pool +func (up *Unspents) ProcessBlock(tx *dbutil.Tx, b *coin.SignedBlock) error { + // Gather all transaction inputs + var inputs []cipher.SHA256 + var txnUxs coin.UxArray + for _, txn := range b.Body.Transactions { + inputs = append(inputs, txn.In...) + txnUxs = append(txnUxs, coin.CreateUnspents(b.Head, txn)...) + } + + uxs, err := up.GetArray(tx, inputs) + if err != nil { + return err + } + + xorHash, err := up.meta.getXorHash(tx) + if err != nil { + return err + } + + // Remove spent outputs + rmAddrHashes := make(map[cipher.Address][]cipher.SHA256) + for _, ux := range uxs { + xorHash = xorHash.Xor(ux.SnapshotHash()) + + h := ux.Hash() + + if err := up.pool.delete(tx, h); err != nil { + return err + } + + rmAddrHashes[ux.Body.Address] = append(rmAddrHashes[ux.Body.Address], h) + } + + // Create new outputs + txnUxHashes := make([]cipher.SHA256, len(txnUxs)) + addAddrHashes := make(map[cipher.Address][]cipher.SHA256) + for i, ux := range txnUxs { + h := ux.Hash() + txnUxHashes[i] = h + addAddrHashes[ux.Body.Address] = append(addAddrHashes[ux.Body.Address], h) + } + + // Check that the uxout exists in the pool already, otherwise xorHash will be calculated wrong + for _, h := range txnUxHashes { + if hasKey, err := up.Contains(tx, h); err != nil { + return err + } else if hasKey { + return fmt.Errorf("attempted to insert uxout:%v twice into the unspent pool", h.Hex()) + } + } + + for i, ux := range txnUxs { + // Add new outputs + if err := up.pool.put(tx, txnUxHashes[i], ux); err != nil { + return err + } + + // Recalculate xorHash + xorHash = xorHash.Xor(ux.SnapshotHash()) + } + + // Set xorHash + if err := up.meta.setXorHash(tx, xorHash); err != nil { + return err + } + + // Update indexes + for addr, rmHashes := range rmAddrHashes { + addHashes := addAddrHashes[addr] + + if err := up.poolAddrIndex.adjust(tx, addr, addHashes, rmHashes); err != nil { + return err + } + + delete(addAddrHashes, addr) + } + + for addr, addHashes := range addAddrHashes { + if err := up.poolAddrIndex.adjust(tx, addr, addHashes, nil); err != nil { + return err + } + } + + // Check that the addrIndexHeight is incremental + addrIndexHeight, ok, err := up.meta.getAddrIndexHeight(tx) + if err != nil { + return err + } + + if b.Block.Head.BkSeq == 0 { + if ok { + err := errors.New("addrIndexHeight is set but no block has been indexed yet") + logger.Critical().Error(err.Error()) + return err + } + } else if b.Block.Head.BkSeq != addrIndexHeight+1 { + err := errors.New("unspent pool processing blocks out of order") + logger.Critical().Error(err.Error()) + return err + } + + // Update the addrIndexHeight + return up.meta.setAddrIndexHeight(tx, b.Block.Head.BkSeq) +} + +// GetArray returns UxOut for a set of hashes, will return error if any of the hashes do not exist in the pool. +func (up *Unspents) GetArray(tx *dbutil.Tx, hashes []cipher.SHA256) (coin.UxArray, error) { + var uxa coin.UxArray + + for _, h := range hashes { + ux, err := up.pool.get(tx, h) + if err != nil { + return nil, err + } else if ux == nil { + return nil, NewErrUnspentNotExist(h.Hex()) + } + + uxa = append(uxa, *ux) + } + + return uxa, nil +} + +// Get returns the uxout value of given hash +func (up *Unspents) Get(tx *dbutil.Tx, h cipher.SHA256) (*coin.UxOut, error) { + return up.pool.get(tx, h) +} + +// GetAll returns Pool as an array. Note: they are not in any particular order. +func (up *Unspents) GetAll(tx *dbutil.Tx) (coin.UxArray, error) { + return up.pool.getAll(tx) +} + +// Len returns the unspent outputs num +func (up *Unspents) Len(tx *dbutil.Tx) (uint64, error) { + return dbutil.Len(tx, UnspentPoolBkt) +} + +// Contains check if the hash of uxout does exist in the pool +func (up *Unspents) Contains(tx *dbutil.Tx, h cipher.SHA256) (bool, error) { + return dbutil.BucketHasKey(tx, UnspentPoolBkt, h[:]) +} + +// GetUnspentHashesOfAddrs returns a map of addresses to their unspent output hashes +func (up *Unspents) GetUnspentHashesOfAddrs(tx *dbutil.Tx, addrs []cipher.Address) (AddressHashes, error) { + addrHashes := make(AddressHashes, len(addrs)) + + for _, addr := range addrs { + hashes, err := up.poolAddrIndex.get(tx, addr) + if err != nil { + return nil, err + } + + addrHashes[addr] = hashes + } + + return addrHashes, nil +} + +// GetUnspentsOfAddrs returns a map of addresses to their unspent outputs +func (up *Unspents) GetUnspentsOfAddrs(tx *dbutil.Tx, addrs []cipher.Address) (coin.AddressUxOuts, error) { + addrUxs := make(coin.AddressUxOuts, len(addrs)) + + for _, addr := range addrs { + hashes, err := up.poolAddrIndex.get(tx, addr) + if err != nil { + return nil, err + } + + uxa, err := up.GetArray(tx, hashes) + if err != nil { + switch e := err.(type) { + case ErrUnspentNotExist: + logger.Critical().Errorf("Unspent hash %s indexed under address %s does not exist in unspent pool", e.UxID, addr.String()) + } + return nil, err + } + + addrUxs[addr] = uxa + } + + return addrUxs, nil +} + +// GetUxHash returns unspent output checksum for the Block. +// Must be called after Block is fully initialized, +// and before its outputs are added to the unspent pool +func (up *Unspents) GetUxHash(tx *dbutil.Tx) (cipher.SHA256, error) { + return up.meta.getXorHash(tx) +} + +// AddressCount returns the total number of addresses with unspents +func (up *Unspents) AddressCount(tx *dbutil.Tx) (uint64, error) { + return dbutil.Len(tx, UnspentPoolAddrIndexBkt) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/ux_out_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/ux_out_skyencoder.go new file mode 100644 index 000000000..e428e3925 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/ux_out_skyencoder.go @@ -0,0 +1,171 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. + +package blockdb + +import ( + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeUxOut computes the size of an encoded object of type UxOut +func encodeSizeUxOut(obj *coin.UxOut) uint64 { + i0 := uint64(0) + + // obj.Head.Time + i0 += 8 + + // obj.Head.BkSeq + i0 += 8 + + // obj.Body.SrcTransaction + i0 += 32 + + // obj.Body.Address.Version + i0++ + + // obj.Body.Address.Key + i0 += 20 + + // obj.Body.Coins + i0 += 8 + + // obj.Body.Hours + i0 += 8 + + return i0 +} + +// encodeUxOut encodes an object of type UxOut to a buffer allocated to the exact size +// required to encode the object. +func encodeUxOut(obj *coin.UxOut) ([]byte, error) { + n := encodeSizeUxOut(obj) + buf := make([]byte, n) + + if err := encodeUxOutToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeUxOutToBuffer encodes an object of type UxOut to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeUxOutToBuffer(buf []byte, obj *coin.UxOut) error { + if uint64(len(buf)) < encodeSizeUxOut(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Head.Time + e.Uint64(obj.Head.Time) + + // obj.Head.BkSeq + e.Uint64(obj.Head.BkSeq) + + // obj.Body.SrcTransaction + e.CopyBytes(obj.Body.SrcTransaction[:]) + + // obj.Body.Address.Version + e.Uint8(obj.Body.Address.Version) + + // obj.Body.Address.Key + e.CopyBytes(obj.Body.Address.Key[:]) + + // obj.Body.Coins + e.Uint64(obj.Body.Coins) + + // obj.Body.Hours + e.Uint64(obj.Body.Hours) + + return nil +} + +// decodeUxOut decodes an object of type UxOut from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeUxOut(buf []byte, obj *coin.UxOut) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Head.Time + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Head.Time = i + } + + { + // obj.Head.BkSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Head.BkSeq = i + } + + { + // obj.Body.SrcTransaction + if len(d.Buffer) < len(obj.Body.SrcTransaction) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Body.SrcTransaction[:], d.Buffer[:len(obj.Body.SrcTransaction)]) + d.Buffer = d.Buffer[len(obj.Body.SrcTransaction):] + } + + { + // obj.Body.Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Body.Address.Version = i + } + + { + // obj.Body.Address.Key + if len(d.Buffer) < len(obj.Body.Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Body.Address.Key[:], d.Buffer[:len(obj.Body.Address.Key)]) + d.Buffer = d.Buffer[len(obj.Body.Address.Key):] + } + + { + // obj.Body.Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Body.Coins = i + } + + { + // obj.Body.Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Body.Hours = i + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeUxOutExact decodes an object of type UxOut from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeUxOutExact(buf []byte, obj *coin.UxOut) error { + if n, err := decodeUxOut(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/blockdb/verify.go b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/verify.go new file mode 100644 index 000000000..3ede1c92e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/blockdb/verify.go @@ -0,0 +1,156 @@ +package blockdb + +import ( + "errors" + "reflect" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + // ErrVerifyStopped is returned when database verification is interrupted + ErrVerifyStopped = errors.New("database verification stopped") +) + +// VerifyDBSkyencoderSafe verifies that the skyencoder generated code has the same result as the encoder +// for all data in the blockchain +func VerifyDBSkyencoderSafe(tx *dbutil.Tx, quit <-chan struct{}) error { + if quit == nil { + quit = make(chan struct{}) + } + + if err := dbutil.ForEach(tx, BlockSigsBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var sig1 sigWrapper + if err := decodeSigWrapperExact(v, &sig1); err != nil { + return err + } + + var sig2 cipher.Sig + if err := encoder.DeserializeRawExact(v, &sig2); err != nil { + return err + } + + if sig1.Sig != sig2 { + return errors.New("BlockSigsBkt sig decode mismatch") + } + + return nil + }); err != nil { + return err + } + + if err := dbutil.ForEach(tx, BlocksBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 coin.Block + if err := decodeBlockExact(v, &b1); err != nil { + return err + } + + var b2 coin.Block + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1, b2) { + return errors.New("BlocksBkt block mismatch") + } + + return nil + }); err != nil { + return err + } + + if err := dbutil.ForEach(tx, TreeBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 hashPairsWrapper + if err := decodeHashPairsWrapperExact(v, &b1); err != nil { + return err + } + + var b2 []coin.HashPair + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1.HashPairs, b2) { + return errors.New("TreeBkt hash pairs mismatch") + } + + return nil + }); err != nil { + return err + } + + if err := dbutil.ForEach(tx, UnspentPoolBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 coin.UxOut + if err := decodeUxOutExact(v, &b1); err != nil { + return err + } + + var b2 coin.UxOut + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1, b2) { + return errors.New("UnspentPoolBkt ux out mismatch") + } + + return nil + }); err != nil { + return err + } + + if err := dbutil.ForEach(tx, UnspentPoolAddrIndexBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 hashesWrapper + if err := decodeHashesWrapperExact(v, &b1); err != nil { + return err + } + + var b2 []cipher.SHA256 + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1.Hashes, b2) { + return errors.New("UnspentPoolAddrIndexBkt sha256 hashes mismatch") + } + + return nil + }); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/config.go b/vendor/github.com/skycoin/skycoin/src/visor/config.go new file mode 100644 index 000000000..f29bae3ff --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/config.go @@ -0,0 +1,119 @@ +package visor + +import ( + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/params" +) + +// Config configuration parameters for the Visor +type Config struct { + // Is this a block publishing node + IsBlockPublisher bool + + // Public key of the blockchain + BlockchainPubkey cipher.PubKey + + // Secret key of the blockchain (required if block publisher) + BlockchainSeckey cipher.SecKey + + // Transaction verification parameters used for unconfirmed transactions + UnconfirmedVerifyTxn params.VerifyTxn + // Transaction verification parameters used when creating a block + CreateBlockVerifyTxn params.VerifyTxn + // Maximum size of a block, in bytes for creating blocks + MaxBlockTransactionsSize uint32 + + // Coin distribution parameters (necessary for txn verification) + Distribution params.Distribution + + // Where the blockchain is saved + BlockchainFile string + // Where the block signatures are saved + BlockSigsFile string + + //address for genesis + GenesisAddress cipher.Address + // Genesis block sig + GenesisSignature cipher.Sig + // Genesis block timestamp + GenesisTimestamp uint64 + // Number of coins in genesis block + GenesisCoinVolume uint64 + // enable arbitrating mode + Arbitrating bool +} + +// NewConfig creates Config +func NewConfig() Config { + c := Config{ + IsBlockPublisher: false, + + BlockchainPubkey: cipher.PubKey{}, + BlockchainSeckey: cipher.SecKey{}, + + UnconfirmedVerifyTxn: params.UserVerifyTxn, + CreateBlockVerifyTxn: params.UserVerifyTxn, + MaxBlockTransactionsSize: params.UserVerifyTxn.MaxTransactionSize, + + GenesisAddress: cipher.Address{}, + GenesisSignature: cipher.Sig{}, + GenesisTimestamp: 0, + GenesisCoinVolume: 0, //100e12, 100e6 * 10e6 + } + + return c +} + +// Verify verifies the configuration +func (c Config) Verify() error { + if c.IsBlockPublisher { + if c.BlockchainPubkey != cipher.MustPubKeyFromSecKey(c.BlockchainSeckey) { + return errors.New("Cannot run as block publisher: invalid seckey for pubkey") + } + } + + if err := c.UnconfirmedVerifyTxn.Validate(); err != nil { + return err + } + + if err := c.CreateBlockVerifyTxn.Validate(); err != nil { + return err + } + + if c.UnconfirmedVerifyTxn.BurnFactor < params.UserVerifyTxn.BurnFactor { + return fmt.Errorf("UnconfirmedVerifyTxn.BurnFactor must be >= params.UserVerifyTxn.BurnFactor (%d)", params.UserVerifyTxn.BurnFactor) + } + + if c.CreateBlockVerifyTxn.BurnFactor < params.UserVerifyTxn.BurnFactor { + return fmt.Errorf("CreateBlockVerifyTxn.BurnFactor must be >= params.UserVerifyTxn.BurnFactor (%d)", params.UserVerifyTxn.BurnFactor) + } + + if c.UnconfirmedVerifyTxn.MaxTransactionSize < params.UserVerifyTxn.MaxTransactionSize { + return fmt.Errorf("UnconfirmedVerifyTxn.MaxTransactionSize must be >= params.UserVerifyTxn.MaxTransactionSize (%d)", params.UserVerifyTxn.MaxTransactionSize) + } + + if c.CreateBlockVerifyTxn.MaxTransactionSize < params.UserVerifyTxn.MaxTransactionSize { + return fmt.Errorf("CreateBlockVerifyTxn.MaxTransactionSize must be >= params.UserVerifyTxn.MaxTransactionSize (%d)", params.UserVerifyTxn.MaxTransactionSize) + } + + if c.UnconfirmedVerifyTxn.MaxDropletPrecision < params.UserVerifyTxn.MaxDropletPrecision { + return fmt.Errorf("UnconfirmedVerifyTxn.MaxDropletPrecision must be >= params.UserVerifyTxn.MaxDropletPrecision (%d)", params.UserVerifyTxn.MaxDropletPrecision) + } + + if c.CreateBlockVerifyTxn.MaxDropletPrecision < params.UserVerifyTxn.MaxDropletPrecision { + return fmt.Errorf("CreateBlockVerifyTxn.MaxDropletPrecision must be >= params.UserVerifyTxn.MaxDropletPrecision (%d)", params.UserVerifyTxn.MaxDropletPrecision) + } + + if c.MaxBlockTransactionsSize < c.CreateBlockVerifyTxn.MaxTransactionSize { + return errors.New("MaxBlockTransactionsSize must be >= CreateBlockVerifyTxn.MaxTransactionSize") + } + + if err := c.Distribution.Validate(); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/db.go b/vendor/github.com/skycoin/skycoin/src/visor/db.go new file mode 100644 index 000000000..d212de7a9 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/db.go @@ -0,0 +1,401 @@ +package visor + +import ( + "crypto/sha256" + "encoding/base64" + "errors" + "fmt" + "io" + "os" + "path/filepath" + "reflect" + "sync" + "time" + + "github.com/boltdb/bolt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/util/elapse" + "github.com/skycoin/skycoin/src/visor/blockdb" + "github.com/skycoin/skycoin/src/visor/dbutil" + "github.com/skycoin/skycoin/src/visor/historydb" +) + +var ( + // BlockchainVerifyTheadNum number of goroutines to use for signature and historydb verification + BlockchainVerifyTheadNum = 4 +) + +// ErrCorruptDB is returned if the database is corrupted +// The original corruption error is embedded +type ErrCorruptDB struct { + error +} + +// CheckDatabase checks the database for corruption, rebuild history if corrupted +func CheckDatabase(db *dbutil.DB, pubkey cipher.PubKey, quit chan struct{}) error { + elapser := elapse.NewElapser(time.Second*30, logger) + elapser.Register("CheckDatabase") + defer elapser.CheckForDone() + + var blocksBktExist bool + if err := db.View("CheckDatabase", func(tx *dbutil.Tx) error { + blocksBktExist = dbutil.Exists(tx, blockdb.BlocksBkt) + return nil + }); err != nil { + return err + } + + // Don't verify the db if the blocks bucket does not exist + if !blocksBktExist { + return nil + } + + bc, err := NewBlockchain(db, BlockchainConfig{Pubkey: pubkey}) + if err != nil { + return err + } + + history := historydb.New() + indexesMap := historydb.NewIndexesMap() + + var historyVerifyErr error + var lock sync.Mutex + verifyFunc := func(tx *dbutil.Tx, b *coin.SignedBlock) error { + // Verify signature + if err := bc.VerifySignature(b); err != nil { + return err + } + + // Verify historydb, we don't return the error of history.Verify here, + // as we have to check all signature, if we return error early here, the + // potential bad signature won't be detected. + lock.Lock() + defer lock.Unlock() + if historyVerifyErr == nil { + historyVerifyErr = history.Verify(tx, b, indexesMap) + } + return nil + } + + err = bc.WalkChain(BlockchainVerifyTheadNum, verifyFunc, quit) + switch err.(type) { + case nil: + lock.Lock() + err = historyVerifyErr + lock.Unlock() + return err + default: + return err + } +} + +// backup the corrypted db first, then rebuild the history DB. +func rebuildHistoryDB(db *dbutil.DB, history *historydb.HistoryDB, bc *Blockchain, quit chan struct{}) (*dbutil.DB, error) { //nolint:unused,megacheck + db, err := backupDB(db) + if err != nil { + return nil, err + } + + if err := db.Update("Rebuild history db", func(tx *dbutil.Tx) error { + if err := history.Erase(tx); err != nil { + return err + } + + headSeq, ok, err := bc.HeadSeq(tx) + if err != nil { + return err + } + + if !ok { + return errors.New("head block does not exist") + } + + for i := uint64(0); i <= headSeq; i++ { + select { + case <-quit: + return nil + default: + b, err := bc.GetSignedBlockBySeq(tx, i) + if err != nil { + return err + } + + if err := history.ParseBlock(tx, b.Block); err != nil { + return err + } + + if i%1000 == 0 { + logger.Critical().Infof("Parse block: %d", i) + } + } + } + return nil + }); err != nil { + return nil, err + } + return db, nil +} + +// backupDB makes a backup copy of the DB +func backupDB(db *dbutil.DB) (*dbutil.DB, error) { //nolint:unused,megacheck + // backup the corrupted database + dbReadOnly := db.IsReadOnly() + + dbPath := db.Path() + + if err := db.Close(); err != nil { + return nil, fmt.Errorf("Failed to close db: %v", err) + } + + corruptDBPath, err := copyCorruptDB(dbPath) + if err != nil { + return nil, fmt.Errorf("Failed to copy corrupted db: %v", err) + } + + logger.Critical().Infof("Copy corrupted db to %s", corruptDBPath) + + // Open the database again + return OpenDB(dbPath, dbReadOnly) +} + +// ResetCorruptDB checks the database for corruption and if one of the following +// error types is found, then the database is deemed to be corrupted: +// - blockdb.ErrMissingSignature, +// - historydb.ErrHistoryDBCorrupted +// - encoder.ErrBufferUnderflow +// - encoder.ErrMaxLenExceeded +// If the database is deemed to be corrupted then it is erased and the db starts over. +// A copy of the corrupted database is saved. +func ResetCorruptDB(db *dbutil.DB, pubkey cipher.PubKey, quit chan struct{}) (*dbutil.DB, error) { + err := CheckDatabase(db, pubkey, quit) + + // Check if an encoder error has been reported. + // These are not types like the errors below so cannot be included in the + // .(type) switch evaluation. + if err == encoder.ErrBufferUnderflow || err == encoder.ErrMaxLenExceeded { + logger.Critical().Errorf("Database is corrupted (encoder error), recreating db: %v", err) + return resetCorruptDB(db) + } + + switch err.(type) { + case nil: + return db, nil + case blockdb.ErrMissingSignature, + historydb.ErrHistoryDBCorrupted: + logger.Critical().Errorf("Database is corrupted, recreating db: %v", err) + return resetCorruptDB(db) + default: + return nil, err + } +} + +func rebuildCorruptDB(db *dbutil.DB, pubkey cipher.PubKey, quit chan struct{}) (*dbutil.DB, error) { //nolint:deadcode,unused,megacheck + history := historydb.New() + bc, err := NewBlockchain(db, BlockchainConfig{Pubkey: pubkey}) + if err != nil { + return nil, err + } + + return rebuildHistoryDB(db, history, bc, quit) +} + +// resetCorruptDB recreates the DB, making a backup copy marked as corrupted +func resetCorruptDB(db *dbutil.DB) (*dbutil.DB, error) { + dbReadOnly := db.IsReadOnly() + dbPath := db.Path() + + if err := db.Close(); err != nil { + return nil, fmt.Errorf("Failed to close db: %v", err) + } + + corruptDBPath, err := moveCorruptDB(dbPath) + if err != nil { + return nil, fmt.Errorf("Failed to copy corrupted db: %v", err) + } + + logger.Critical().Infof("Moved corrupted db to %s", corruptDBPath) + + return OpenDB(dbPath, dbReadOnly) +} + +// OpenDB opens the blockdb +func OpenDB(dbFile string, readOnly bool) (*dbutil.DB, error) { + db, err := bolt.Open(dbFile, 0600, &bolt.Options{ + Timeout: 5000 * time.Millisecond, + ReadOnly: readOnly, + }) + if err != nil { + return nil, fmt.Errorf("Open boltdb failed, %v", err) + } + + return dbutil.WrapDB(db), nil +} + +// moveCorruptDB moves a file to makeCorruptDBPath(dbPath) +func moveCorruptDB(dbPath string) (string, error) { + newDBPath, err := makeCorruptDBPath(dbPath) + if err != nil { + return "", err + } + + if err := os.Rename(dbPath, newDBPath); err != nil { + logger.Errorf("os.Rename(%s, %s) failed: %v", dbPath, newDBPath, err) + return "", err + } + + return newDBPath, nil +} + +// copyCorruptDB copy a file to makeCorruptDBPath(dbPath) +func copyCorruptDB(dbPath string) (string, error) { //nolint:unused,megacheck + newDBPath, err := makeCorruptDBPath(dbPath) + if err != nil { + return "", err + } + + in, err := os.Open(dbPath) + if err != nil { + return "", err + } + defer in.Close() + + out, err := os.Create(newDBPath) + if err != nil { + return "", err + } + defer out.Close() + logger.Critical().Info(out.Name()) + + _, err = io.Copy(in, out) + if err != nil { + return "", err + } + + if err := out.Close(); err != nil { + return "", err + } + + return newDBPath, nil +} + +// makeCorruptDBPath creates a $FILE.corrupt.$HASH string based on dbPath, +// where $HASH is truncated SHA1 of $FILE. +func makeCorruptDBPath(dbPath string) (string, error) { + dbFileHash, err := shaFileID(dbPath) + if err != nil { + return "", err + } + + dbDir, dbFile := filepath.Split(dbPath) + newDBFile := fmt.Sprintf("%s.corrupt.%s", dbFile, dbFileHash) + newDBPath := filepath.Join(dbDir, newDBFile) + + return newDBPath, nil +} + +// shaFileID return the first 8 bytes of the SHA1 hash of the file, +// hex-encoded +func shaFileID(dbPath string) (string, error) { + fi, err := os.Open(dbPath) + if err != nil { + return "", err + } + defer fi.Close() + + h := sha256.New() + if _, err := io.Copy(h, fi); err != nil { + return "", err + } + + sum := h.Sum(nil) + encodedSum := base64.RawURLEncoding.EncodeToString(sum[:8]) + return encodedSum, nil +} + +// VerifyDBSkyencoderSafe verifies that the skyencoder generated code has the same result as the encoder +// for all data in the blockchain +func VerifyDBSkyencoderSafe(db *dbutil.DB, quit <-chan struct{}) error { + return db.View("VerifyDBSkyencoderSafe", func(tx *dbutil.Tx) error { + return verifyDBSkyencoderSafe(tx, quit) + }) +} + +func verifyDBSkyencoderSafe(tx *dbutil.Tx, quit <-chan struct{}) error { + if quit == nil { + quit = make(chan struct{}) + } + + // blockdb + if err := blockdb.VerifyDBSkyencoderSafe(tx, quit); err != nil { + if err == blockdb.ErrVerifyStopped { + return ErrVerifyStopped + } + return err + } + + // historydb + if err := historydb.VerifyDBSkyencoderSafe(tx, quit); err != nil { + if err == historydb.ErrVerifyStopped { + return ErrVerifyStopped + } + return err + } + + // visor + if err := dbutil.ForEach(tx, UnconfirmedTxnsBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 UnconfirmedTransaction + if err := decodeUnconfirmedTransactionExact(v, &b1); err != nil { + return err + } + + var b2 UnconfirmedTransaction + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1, b2) { + return errors.New("UnconfirmedTxnsBkt unconfirmed transaction mismatch") + } + + return nil + }); err != nil { + return err + } + + if err := dbutil.ForEach(tx, UnconfirmedUnspentsBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 UxArray + if err := decodeUxArrayExact(v, &b1); err != nil { + return err + } + + var b2 coin.UxArray + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1.UxArray, b2) { + return errors.New("UnconfirmedUnspentsBkt ux out slice mismatch") + } + + return nil + }); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/dbutil/dbutil.go b/vendor/github.com/skycoin/skycoin/src/visor/dbutil/dbutil.go new file mode 100644 index 000000000..1531356ef --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/dbutil/dbutil.go @@ -0,0 +1,363 @@ +/* +Package dbutil provides boltdb utility methods +*/ +package dbutil + +import ( + "encoding/binary" + "encoding/json" + "errors" + "fmt" + "runtime/debug" + "sync" + "time" + + "github.com/boltdb/bolt" + + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/util/logging" +) + +var ( + logger = logging.MustGetLogger("dbutil") + txViewLog = false + txViewTrace = false + txUpdateLog = false + txUpdateTrace = false + txDurationLog = true + txDurationReportingThreshold = time.Millisecond * 100 +) + +// Tx wraps a Tx +type Tx struct { + *bolt.Tx +} + +// String is implemented to prevent a panic when mocking methods with *Tx arguments. +// The mock library forces arguments to be printed with %s which causes Tx to panic. +// See https://github.com/stretchr/testify/pull/596 +func (tx *Tx) String() string { + return fmt.Sprintf("%v", tx.Tx) +} + +// DB wraps a bolt.DB to add logging +type DB struct { + ViewLog bool + ViewTrace bool + UpdateLog bool + UpdateTrace bool + DurationLog bool + DurationReportingThreshold time.Duration + + *bolt.DB + + // shutdownLock is added to prevent closing the database while a View transaction is in progress + // bolt.DB will block for Update transactions but not for View transactions, and if + // the database is closed while in a View transaction, it will panic + // This will be fixed in coreos's bbolt after this PR is merged: + // https://github.com/coreos/bbolt/pull/91 + // When coreos has this feature, we can switch to coreos's bbolt and remove this lock + shutdownLock sync.RWMutex +} + +// WrapDB returns WrapDB +func WrapDB(db *bolt.DB) *DB { + return &DB{ + ViewLog: txViewLog, + UpdateLog: txUpdateLog, + ViewTrace: txViewTrace, + UpdateTrace: txUpdateTrace, + DurationLog: txDurationLog, + DurationReportingThreshold: txDurationReportingThreshold, + DB: db, + } +} + +// View wraps *bolt.DB.View to add logging +func (db *DB) View(name string, f func(*Tx) error) error { + db.shutdownLock.RLock() + defer db.shutdownLock.RUnlock() + + if db.ViewLog { + logger.Debug("db.View [%s] starting", name) + defer logger.Debug("db.View [%s] done", name) + } + if db.ViewTrace { + debug.PrintStack() + } + + t0 := time.Now() + + err := db.DB.View(func(tx *bolt.Tx) error { + return f(&Tx{tx}) + }) + + t1 := time.Now() + delta := t1.Sub(t0) + if db.DurationLog && delta > db.DurationReportingThreshold { + logger.Debugf("db.View [%s] elapsed %s", name, delta) + } + + return err +} + +// Update wraps *bolt.DB.Update to add logging +func (db *DB) Update(name string, f func(*Tx) error) error { + db.shutdownLock.RLock() + defer db.shutdownLock.RUnlock() + + if db.UpdateLog { + logger.Debug("db.Update [%s] starting", name) + defer logger.Debug("db.Update [%s] done", name) + } + if db.UpdateTrace { + debug.PrintStack() + } + + t0 := time.Now() + + err := db.DB.Update(func(tx *bolt.Tx) error { + return f(&Tx{tx}) + }) + + t1 := time.Now() + delta := t1.Sub(t0) + if db.DurationLog && delta > db.DurationReportingThreshold { + logger.Debugf("db.Update [%s] elapsed %s", name, delta) + } + + return err +} + +// Close closes the underlying *bolt.DB +func (db *DB) Close() error { + db.shutdownLock.Lock() + defer db.shutdownLock.Unlock() + + return db.DB.Close() +} + +// ErrCreateBucketFailed is returned if creating a bolt.DB bucket fails +type ErrCreateBucketFailed struct { + Bucket string + Err error +} + +func (e ErrCreateBucketFailed) Error() string { + return fmt.Sprintf("Create bucket \"%s\" failed: %v", e.Bucket, e.Err) +} + +// NewErrCreateBucketFailed returns an ErrCreateBucketFailed +func NewErrCreateBucketFailed(bucket []byte, err error) error { + return ErrCreateBucketFailed{ + Bucket: string(bucket), + Err: err, + } +} + +// ErrBucketNotExist is returned if a bolt.DB bucket does not exist +type ErrBucketNotExist struct { + Bucket string +} + +func (e ErrBucketNotExist) Error() string { + return fmt.Sprintf("Bucket \"%s\" doesn't exist", e.Bucket) +} + +// NewErrBucketNotExist returns an ErrBucketNotExist +func NewErrBucketNotExist(bucket []byte) error { + return ErrBucketNotExist{ + Bucket: string(bucket), + } +} + +// CreateBuckets creates multiple buckets +func CreateBuckets(tx *Tx, buckets [][]byte) error { + for _, b := range buckets { + if _, err := tx.CreateBucketIfNotExists(b); err != nil { + return NewErrCreateBucketFailed(b, err) + } + } + + return nil +} + +// GetBucketObjectDecoded returns an encoder-serialized value from a bucket, decoded to an object +func GetBucketObjectDecoded(tx *Tx, bktName, key []byte, obj interface{}) (bool, error) { + v, err := GetBucketValueNoCopy(tx, bktName, key) + if err != nil { + return false, err + } else if v == nil { + return false, nil + } + + if err := encoder.DeserializeRawExact(v, obj); err != nil { + return false, fmt.Errorf("encoder.DeserializeRawExact failed: %v", err) + } + + return true, nil +} + +// GetBucketObjectJSON returns a JSON value from a bucket, unmarshaled to an object +func GetBucketObjectJSON(tx *Tx, bktName, key []byte, obj interface{}) (bool, error) { + v, err := GetBucketValueNoCopy(tx, bktName, key) + if err != nil { + return false, err + } else if v == nil { + return false, nil + } + + if err := json.Unmarshal(v, obj); err != nil { + return false, fmt.Errorf("json.Unmarshal failed: %v", err) + } + + return true, nil +} + +// GetBucketString returns a string value from a bucket +func GetBucketString(tx *Tx, bktName, key []byte) (string, bool, error) { + v, err := GetBucketValueNoCopy(tx, bktName, key) + if err != nil { + return "", false, err + } else if v == nil { + return "", false, nil + } + + return string(v), true, nil +} + +// GetBucketValue returns a []byte value from a bucket. If the bucket does not exist, +// it returns an error of type ErrBucketNotExist +func GetBucketValue(tx *Tx, bktName, key []byte) ([]byte, error) { + v, err := GetBucketValueNoCopy(tx, bktName, key) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + // Bytes returned from boltdb are not valid outside of the transaction + // they are called in, make a copy + w := make([]byte, len(v)) + copy(w[:], v[:]) + + return w, nil +} + +// GetBucketValueNoCopy returns a value from a bucket. If the bucket does not exist, +// it returns an error of type ErrBucketNotExist. The byte value is not copied so is not valid +// outside of the database transaction +func GetBucketValueNoCopy(tx *Tx, bktName, key []byte) ([]byte, error) { + bkt := tx.Bucket(bktName) + if bkt == nil { + return nil, NewErrBucketNotExist(bktName) + } + + return bkt.Get(key), nil +} + +// PutBucketValue puts a value into a bucket under key. +func PutBucketValue(tx *Tx, bktName, key, val []byte) error { + bkt := tx.Bucket(bktName) + if bkt == nil { + return NewErrBucketNotExist(bktName) + } + + return bkt.Put(key, val) +} + +// BucketHasKey returns true if a bucket has a non-nil value for a key +func BucketHasKey(tx *Tx, bktName, key []byte) (bool, error) { + bkt := tx.Bucket(bktName) + if bkt == nil { + return false, NewErrBucketNotExist(bktName) + } + + v := bkt.Get(key) + return v != nil, nil +} + +// NextSequence returns the NextSequence() from the bucket +func NextSequence(tx *Tx, bktName []byte) (uint64, error) { + bkt := tx.Bucket(bktName) + if bkt == nil { + return 0, NewErrBucketNotExist(bktName) + } + + return bkt.NextSequence() +} + +// ForEach calls ForEach on the bucket +func ForEach(tx *Tx, bktName []byte, f func(k, v []byte) error) error { + bkt := tx.Bucket(bktName) + if bkt == nil { + return NewErrBucketNotExist(bktName) + } + + return bkt.ForEach(f) +} + +// Delete deletes from a bucket +func Delete(tx *Tx, bktName, key []byte) error { + bkt := tx.Bucket(bktName) + if bkt == nil { + return NewErrBucketNotExist(bktName) + } + + return bkt.Delete(key) +} + +// Len returns the number of keys in a bucket +func Len(tx *Tx, bktName []byte) (uint64, error) { + bkt := tx.Bucket(bktName) + if bkt == nil { + return 0, NewErrBucketNotExist(bktName) + } + + bstats := bkt.Stats() + + if bstats.KeyN < 0 { + return 0, errors.New("Negative length queried from db stats") + } + + return uint64(bstats.KeyN), nil +} + +// IsEmpty returns true if the bucket is empty +func IsEmpty(tx *Tx, bktName []byte) (bool, error) { + b := tx.Bucket(bktName) + if b == nil { + return false, NewErrBucketNotExist(bktName) + } + + c := b.Cursor() + k, _ := c.First() + return k == nil, nil +} + +// Exists returns true if the bucket exists +func Exists(tx *Tx, bktName []byte) bool { + return tx.Bucket(bktName) != nil +} + +// Reset resets the bucket +func Reset(tx *Tx, bktName []byte) error { + if err := tx.DeleteBucket(bktName); err != nil { + return err + } + + _, err := tx.CreateBucket(bktName) + return err +} + +// Itob converts uint64 to bytes +func Itob(v uint64) []byte { + b := make([]byte, 8) + binary.BigEndian.PutUint64(b, v) + return b +} + +// Btoi converts bytes to uint64 +func Btoi(v []byte) uint64 { + return binary.BigEndian.Uint64(v) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/address_txn.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/address_txn.go new file mode 100644 index 000000000..b8b06e0ab --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/address_txn.go @@ -0,0 +1,79 @@ +package historydb + +import ( + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +//go:generate skyencoder -unexported -struct hashesWrapper + +// hashesWrapper wraps []cipher.SHA256 +type hashesWrapper struct { + Hashes []cipher.SHA256 +} + +// AddressTxnsBkt maps addresses to transaction hashes +var AddressTxnsBkt = []byte("address_txns") + +// addressTxn buckets for storing address related transactions +// address as key, transaction id slice as value +type addressTxns struct{} + +// get returns the transaction hashes of given address +func (atx *addressTxns) get(tx *dbutil.Tx, addr cipher.Address) ([]cipher.SHA256, error) { + var txnHashes hashesWrapper + + v, err := dbutil.GetBucketValueNoCopy(tx, AddressTxnsBkt, addr.Bytes()) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + if err := decodeHashesWrapperExact(v, &txnHashes); err != nil { + return nil, err + } + + return txnHashes.Hashes, nil +} + +// add adds a hash to an address's hash list +func (atx *addressTxns) add(tx *dbutil.Tx, addr cipher.Address, hash cipher.SHA256) error { + hashes, err := atx.get(tx, addr) + if err != nil { + return err + } + + // check for duplicates + for _, u := range hashes { + if u == hash { + return nil + } + } + + hashes = append(hashes, hash) + + buf, err := encodeHashesWrapper(&hashesWrapper{ + Hashes: hashes, + }) + if err != nil { + return err + } + + return dbutil.PutBucketValue(tx, AddressTxnsBkt, addr.Bytes(), buf) +} + +// contains returns true if an address has transactions +func (atx *addressTxns) contains(tx *dbutil.Tx, addr cipher.Address) (bool, error) { + return dbutil.BucketHasKey(tx, AddressTxnsBkt, addr.Bytes()) +} + +// isEmpty checks if address transactions bucket is empty +func (atx *addressTxns) isEmpty(tx *dbutil.Tx) (bool, error) { + return dbutil.IsEmpty(tx, AddressTxnsBkt) +} + +// reset resets the bucket +func (atx *addressTxns) reset(tx *dbutil.Tx) error { + return dbutil.Reset(tx, AddressTxnsBkt) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/address_uxout.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/address_uxout.go new file mode 100644 index 000000000..93782f21c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/address_uxout.go @@ -0,0 +1,66 @@ +package historydb + +import ( + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +// AddressUxBkt maps addresses to unspent outputs +var AddressUxBkt = []byte("address_in") + +// bucket for storing address with UxOut, key as address, value as UxOut. +type addressUx struct{} + +// get return nil on not found. +func (au *addressUx) get(tx *dbutil.Tx, addr cipher.Address) ([]cipher.SHA256, error) { + var uxHashes hashesWrapper + + v, err := dbutil.GetBucketValueNoCopy(tx, AddressUxBkt, addr.Bytes()) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + if err := decodeHashesWrapperExact(v, &uxHashes); err != nil { + return nil, err + } + + return uxHashes.Hashes, nil +} + +// add adds a hash to an address's hash list +func (au *addressUx) add(tx *dbutil.Tx, address cipher.Address, uxHash cipher.SHA256) error { + hashes, err := au.get(tx, address) + if err != nil { + return err + } + + // check for duplicate hashes + for _, u := range hashes { + if u == uxHash { + return nil + } + } + + hashes = append(hashes, uxHash) + + buf, err := encodeHashesWrapper(&hashesWrapper{ + Hashes: hashes, + }) + if err != nil { + return err + } + + return dbutil.PutBucketValue(tx, AddressUxBkt, address.Bytes(), buf) +} + +// isEmpty checks if the addressUx bucket is empty +func (au *addressUx) isEmpty(tx *dbutil.Tx) (bool, error) { + return dbutil.IsEmpty(tx, AddressUxBkt) +} + +// reset resets the bucket +func (au *addressUx) reset(tx *dbutil.Tx) error { + return dbutil.Reset(tx, AddressUxBkt) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/hashes_wrapper_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/hashes_wrapper_skyencoder.go new file mode 100644 index 000000000..711d31aec --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/hashes_wrapper_skyencoder.go @@ -0,0 +1,125 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. +package historydb + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" +) + +// encodeSizeHashesWrapper computes the size of an encoded object of type hashesWrapper +func encodeSizeHashesWrapper(obj *hashesWrapper) uint64 { + i0 := uint64(0) + + // obj.Hashes + i0 += 4 + { + i1 := uint64(0) + + // x + i1 += 32 + + i0 += uint64(len(obj.Hashes)) * i1 + } + + return i0 +} + +// encodeHashesWrapper encodes an object of type hashesWrapper to a buffer allocated to the exact size +// required to encode the object. +func encodeHashesWrapper(obj *hashesWrapper) ([]byte, error) { + n := encodeSizeHashesWrapper(obj) + buf := make([]byte, n) + + if err := encodeHashesWrapperToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeHashesWrapperToBuffer encodes an object of type hashesWrapper to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeHashesWrapperToBuffer(buf []byte, obj *hashesWrapper) error { + if uint64(len(buf)) < encodeSizeHashesWrapper(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Hashes length check + if uint64(len(obj.Hashes)) > math.MaxUint32 { + return errors.New("obj.Hashes length exceeds math.MaxUint32") + } + + // obj.Hashes length + e.Uint32(uint32(len(obj.Hashes))) + + // obj.Hashes + for _, x := range obj.Hashes { + + // x + e.CopyBytes(x[:]) + + } + + return nil +} + +// decodeHashesWrapper decodes an object of type hashesWrapper from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeHashesWrapper(buf []byte, obj *hashesWrapper) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Hashes + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length != 0 { + obj.Hashes = make([]cipher.SHA256, length) + + for z1 := range obj.Hashes { + { + // obj.Hashes[z1] + if len(d.Buffer) < len(obj.Hashes[z1]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Hashes[z1][:], d.Buffer[:len(obj.Hashes[z1])]) + d.Buffer = d.Buffer[len(obj.Hashes[z1]):] + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeHashesWrapperExact decodes an object of type hashesWrapper from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeHashesWrapperExact(buf []byte, obj *hashesWrapper) error { + if n, err := decodeHashesWrapper(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/history_meta.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/history_meta.go new file mode 100644 index 000000000..33a49e164 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/history_meta.go @@ -0,0 +1,36 @@ +package historydb + +import ( + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + // HistoryMetaBkt holds history metadata + HistoryMetaBkt = []byte("history_meta") + parsedHeightKey = []byte("parsed_height") +) + +// historyMeta bucket for storing block history meta info +type historyMeta struct{} + +// parsedBlockSeq returns history parsed block seq +func (hm *historyMeta) parsedBlockSeq(tx *dbutil.Tx) (uint64, bool, error) { + v, err := dbutil.GetBucketValue(tx, HistoryMetaBkt, parsedHeightKey) + if err != nil { + return 0, false, err + } else if v == nil { + return 0, false, nil + } + + return dbutil.Btoi(v), true, nil +} + +// setParsedBlockSeq updates history parsed block seq +func (hm *historyMeta) setParsedBlockSeq(tx *dbutil.Tx, h uint64) error { + return dbutil.PutBucketValue(tx, HistoryMetaBkt, parsedHeightKey, dbutil.Itob(h)) +} + +// reset resets the bucket +func (hm *historyMeta) reset(tx *dbutil.Tx) error { + return dbutil.Reset(tx, HistoryMetaBkt) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/historydb.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/historydb.go new file mode 100644 index 000000000..44c421e2a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/historydb.go @@ -0,0 +1,412 @@ +/* +Package historydb stores historical blockchain data. +*/ +package historydb + +import ( + "errors" + "fmt" + "sync" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var logger = logging.MustGetLogger("historydb") + +// CreateBuckets creates bolt.DB buckets used by the historydb +func CreateBuckets(tx *dbutil.Tx) error { + return dbutil.CreateBuckets(tx, [][]byte{ + AddressTxnsBkt, + AddressUxBkt, + HistoryMetaBkt, + UxOutsBkt, + TransactionsBkt, + }) +} + +// HistoryDB provides APIs for blockchain explorer +type HistoryDB struct { + outputs *uxOuts // outputs bucket + txns *transactions // transactions bucket + addrUx *addressUx // bucket which stores all UxOuts that address received + addrTxns *addressTxns // address related transaction bucket + meta *historyMeta // stores history meta info +} + +// New create HistoryDB instance +func New() *HistoryDB { + return &HistoryDB{ + outputs: &uxOuts{}, + txns: &transactions{}, + addrUx: &addressUx{}, + addrTxns: &addressTxns{}, + meta: &historyMeta{}, + } +} + +// NeedsReset checks if need to reset the parsed block history, +// If we have a new added bucket, we need to reset to parse +// blockchain again to get the new bucket filled. +func (hd *HistoryDB) NeedsReset(tx *dbutil.Tx) (bool, error) { + _, ok, err := hd.meta.parsedBlockSeq(tx) + if err != nil { + return false, err + } else if !ok { + return true, nil + } + + // if any of the following buckets are empty, need to reset + addrTxnsEmpty, err := hd.addrTxns.isEmpty(tx) + if err != nil { + return false, err + } + + addrUxEmpty, err := hd.addrUx.isEmpty(tx) + if err != nil { + return false, err + } + + txnsEmpty, err := hd.txns.isEmpty(tx) + if err != nil { + return false, err + } + + outputsEmpty, err := hd.outputs.isEmpty(tx) + if err != nil { + return false, err + } + + if addrTxnsEmpty || addrUxEmpty || txnsEmpty || outputsEmpty { + return true, nil + } + + return false, nil +} + +// Erase erases the entire HistoryDB +func (hd *HistoryDB) Erase(tx *dbutil.Tx) error { + logger.Debug("HistoryDB.reset") + if err := hd.addrTxns.reset(tx); err != nil { + return err + } + + if err := hd.addrUx.reset(tx); err != nil { + return err + } + + if err := hd.outputs.reset(tx); err != nil { + return err + } + + if err := hd.meta.reset(tx); err != nil { + return err + } + + return hd.txns.reset(tx) +} + +// ParsedBlockSeq returns the block seq up to which the HistoryDB is parsed +func (hd *HistoryDB) ParsedBlockSeq(tx *dbutil.Tx) (uint64, bool, error) { + return hd.meta.parsedBlockSeq(tx) +} + +// SetParsedBlockSeq sets the block seq up to which the HistoryDB is parsed +func (hd *HistoryDB) SetParsedBlockSeq(tx *dbutil.Tx, seq uint64) error { + return hd.meta.setParsedBlockSeq(tx, seq) +} + +// GetUxOuts get UxOut of specific uxIDs. +func (hd *HistoryDB) GetUxOuts(tx *dbutil.Tx, uxIDs []cipher.SHA256) ([]UxOut, error) { + return hd.outputs.getArray(tx, uxIDs) +} + +// ParseBlock builds indexes out of the block data +func (hd *HistoryDB) ParseBlock(tx *dbutil.Tx, b coin.Block) error { + for _, t := range b.Body.Transactions { + txn := Transaction{ + Txn: t, + BlockSeq: b.Seq(), + } + + spentTxnID := t.Hash() + + if err := hd.txns.put(tx, &txn); err != nil { + return err + } + + for _, in := range t.In { + o, err := hd.outputs.get(tx, in) + if err != nil { + return err + } + + if o == nil { + return errors.New("HistoryDB.ParseBlock: transaction input not found in outputs bucket") + } + + // update the output's spent block seq and txid + o.SpentBlockSeq = b.Seq() + o.SpentTxnID = spentTxnID + if err := hd.outputs.put(tx, *o); err != nil { + return err + } + + // store the IN address with txid + if err := hd.addrTxns.add(tx, o.Out.Body.Address, spentTxnID); err != nil { + return err + } + } + + // handle the tx out + uxArray := coin.CreateUnspents(b.Head, t) + for _, ux := range uxArray { + if err := hd.outputs.put(tx, UxOut{ + Out: ux, + }); err != nil { + return err + } + + if err := hd.addrUx.add(tx, ux.Body.Address, ux.Hash()); err != nil { + return err + } + + if err := hd.addrTxns.add(tx, ux.Body.Address, spentTxnID); err != nil { + return err + } + } + } + + return hd.SetParsedBlockSeq(tx, b.Seq()) +} + +// GetTransaction get transaction by hash. +func (hd HistoryDB) GetTransaction(tx *dbutil.Tx, hash cipher.SHA256) (*Transaction, error) { + return hd.txns.get(tx, hash) +} + +// GetOutputsForAddress get all uxout that the address affected. +func (hd HistoryDB) GetOutputsForAddress(tx *dbutil.Tx, addr cipher.Address) ([]UxOut, error) { + hashes, err := hd.addrUx.get(tx, addr) + if err != nil { + return nil, err + } + + return hd.outputs.getArray(tx, hashes) +} + +// GetTransactionHashesForAddresses returns transaction hashes of related addresses +func (hd HistoryDB) GetTransactionHashesForAddresses(tx *dbutil.Tx, addrs []cipher.Address) ([]cipher.SHA256, error) { + var hashes []cipher.SHA256 + hashMap := make(map[cipher.SHA256]struct{}) + for _, addr := range addrs { + hs, err := hd.addrTxns.get(tx, addr) + if err != nil { + return nil, err + } + // clear duplicate hashes + for _, h := range hs { + if _, ok := hashMap[h]; ok { + continue + } + hashes = append(hashes, h) + hashMap[h] = struct{}{} + } + } + + return hashes, nil +} + +// AddressSeen returns true if the address appears in the blockchain +func (hd HistoryDB) AddressSeen(tx *dbutil.Tx, addr cipher.Address) (bool, error) { + return hd.addrTxns.contains(tx, addr) +} + +// ForEachTxn traverses the transactions bucket +func (hd HistoryDB) ForEachTxn(tx *dbutil.Tx, f func(cipher.SHA256, *Transaction) error) error { + return hd.txns.forEach(tx, f) +} + +// IndexesMap is a goroutine safe address indexes map +type IndexesMap struct { + value map[cipher.Address]AddressIndexes + lock sync.RWMutex +} + +// NewIndexesMap creates a IndexesMap instance +func NewIndexesMap() *IndexesMap { + return &IndexesMap{ + value: make(map[cipher.Address]AddressIndexes), + } +} + +// Load returns value of given key +func (im *IndexesMap) Load(addr cipher.Address) (AddressIndexes, bool) { + im.lock.RLock() + defer im.lock.RUnlock() + v, ok := im.value[addr] + return v, ok +} + +// Store saves address with indexes +func (im *IndexesMap) Store(addr cipher.Address, indexes AddressIndexes) { + im.lock.Lock() + defer im.lock.Unlock() + im.value[addr] = indexes +} + +// AddressIndexes represents the address indexes struct +type AddressIndexes struct { + TxnHashes map[cipher.SHA256]struct{} + UxHashes map[cipher.SHA256]struct{} +} + +// Verify checks if the historydb is corrupted +func (hd HistoryDB) Verify(tx *dbutil.Tx, b *coin.SignedBlock, indexesMap *IndexesMap) error { + for _, t := range b.Body.Transactions { + txnHash := t.Hash() + txn, err := hd.txns.get(tx, txnHash) + if err != nil { + return err + } + + if txn == nil { + err := fmt.Errorf("HistoryDB.Verify: transaction %v does not exist in historydb", txnHash.Hex()) + return ErrHistoryDBCorrupted{err} + } + + for _, in := range t.In { + // Checks the existence of transaction input + o, err := hd.outputs.get(tx, in) + if err != nil { + return err + } + + if o == nil { + err := fmt.Errorf("HistoryDB.Verify: transaction input %v does not exist in historydb", in.Hex()) + return ErrHistoryDBCorrupted{err} + } + + // Checks the output's spend block seq + if o.SpentBlockSeq != b.Seq() { + err := fmt.Errorf("HistoryDB.Verify: spend block seq of transaction input %v is wrong, should be: %v, but is %v", + in.Hex(), b.Seq(), o.SpentBlockSeq) + return ErrHistoryDBCorrupted{err} + } + + addr := o.Out.Body.Address + txnHashesMap := map[cipher.SHA256]struct{}{} + uxHashesMap := map[cipher.SHA256]struct{}{} + + // Checks if the address indexes already loaded into memory + indexes, ok := indexesMap.Load(addr) + if ok { + txnHashesMap = indexes.TxnHashes + uxHashesMap = indexes.UxHashes + } else { + txnHashes, err := hd.addrTxns.get(tx, addr) + if err != nil { + return err + } + for _, hash := range txnHashes { + txnHashesMap[hash] = struct{}{} + } + + uxHashes, err := hd.addrUx.get(tx, addr) + if err != nil { + return err + } + for _, hash := range uxHashes { + uxHashesMap[hash] = struct{}{} + } + + indexesMap.Store(addr, AddressIndexes{ + TxnHashes: txnHashesMap, + UxHashes: uxHashesMap, + }) + } + + if _, ok := txnHashesMap[txnHash]; !ok { + err := fmt.Errorf("HistoryDB.Verify: index of address transaction [%s:%s] does not exist in historydb", + addr, txnHash.Hex()) + return ErrHistoryDBCorrupted{err} + } + + if _, ok := uxHashesMap[in]; !ok { + err := fmt.Errorf("HistoryDB.Verify: index of address uxout [%s:%s] does not exist in historydb", + addr, in.Hex()) + return ErrHistoryDBCorrupted{err} + } + } + + // Checks the transaction outs + uxArray := coin.CreateUnspents(b.Head, t) + for _, ux := range uxArray { + uxHash := ux.Hash() + out, err := hd.outputs.get(tx, uxHash) + if err != nil { + return err + } + + if out == nil { + err := fmt.Errorf("HistoryDB.Verify: transaction output %s does not exist in historydb", uxHash.Hex()) + return ErrHistoryDBCorrupted{err} + } + + addr := ux.Body.Address + txnHashesMap := map[cipher.SHA256]struct{}{} + indexes, ok := indexesMap.Load(addr) + if ok { + txnHashesMap = indexes.TxnHashes + } else { + txnHashes, err := hd.addrTxns.get(tx, addr) + if err != nil { + return err + } + for _, hash := range txnHashes { + txnHashesMap[hash] = struct{}{} + } + + uxHashes, err := hd.addrUx.get(tx, addr) + if err != nil { + return err + } + + uxHashesMap := make(map[cipher.SHA256]struct{}, len(uxHashes)) + for _, hash := range uxHashes { + uxHashesMap[hash] = struct{}{} + } + + indexesMap.Store(addr, AddressIndexes{ + TxnHashes: txnHashesMap, + UxHashes: uxHashesMap, + }) + } + + if _, ok := txnHashesMap[txnHash]; !ok { + err := fmt.Errorf("HistoryDB.Verify: index of address transaction [%s:%s] does not exist in historydb", + addr, txnHash.Hex()) + return ErrHistoryDBCorrupted{err} + } + } + } + return nil +} + +// GetTransactionsNum returns all transactions number +func (hd HistoryDB) GetTransactionsNum(tx *dbutil.Tx) (uint64, error) { + return hd.txns.len(tx) +} + +// ErrHistoryDBCorrupted is returned when found the historydb is corrupted +type ErrHistoryDBCorrupted struct { + error +} + +// NewErrHistoryDBCorrupted is for user to be able to create ErrHistoryDBCorrupted instance +// outside of the package +func NewErrHistoryDBCorrupted(err error) ErrHistoryDBCorrupted { + return ErrHistoryDBCorrupted{err} +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/output.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/output.go new file mode 100644 index 000000000..d639a9180 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/output.go @@ -0,0 +1,102 @@ +package historydb + +import ( + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +//go:generate skyencoder -unexported -struct UxOut + +// UxOutsBkt holds unspent outputs +var UxOutsBkt = []byte("uxouts") + +// UxOut expend coin.UxOut struct +type UxOut struct { + Out coin.UxOut + SpentTxnID cipher.SHA256 // id of tx which spent this output. + SpentBlockSeq uint64 // block seq that spent the output. +} + +// Hash returns outhash +func (o UxOut) Hash() cipher.SHA256 { + return o.Out.Hash() +} + +// ErrUxOutNotExist is returned if an uxout is not found in historydb +type ErrUxOutNotExist struct { + UxID string +} + +// NewErrUxOutNotExist creates ErrUxOutNotExist from a UxID +func NewErrUxOutNotExist(uxID string) error { + return ErrUxOutNotExist{ + UxID: uxID, + } +} + +func (e ErrUxOutNotExist) Error() string { + return fmt.Sprintf("uxout of %s does not exist", e.UxID) +} + +// uxOuts bucket stores outputs, UxOut hash as key and Output as value. +type uxOuts struct{} + +// put sets out value +func (ux *uxOuts) put(tx *dbutil.Tx, out UxOut) error { + hash := out.Hash() + + buf, err := encodeUxOut(&out) + if err != nil { + return err + } + + return dbutil.PutBucketValue(tx, UxOutsBkt, hash[:], buf) +} + +// get gets UxOut of given id +func (ux *uxOuts) get(tx *dbutil.Tx, uxID cipher.SHA256) (*UxOut, error) { + var out UxOut + + v, err := dbutil.GetBucketValueNoCopy(tx, UxOutsBkt, uxID[:]) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + if err := decodeUxOutExact(v, &out); err != nil { + return nil, err + } + + return &out, nil +} + +// getArray returns uxOuts for a set of uxids, will return error if any of the uxids do not exist +func (ux *uxOuts) getArray(tx *dbutil.Tx, uxIDs []cipher.SHA256) ([]UxOut, error) { + var outs []UxOut + for _, uxID := range uxIDs { + out, err := ux.get(tx, uxID) + if err != nil { + return nil, err + } else if out == nil { + return nil, NewErrUxOutNotExist(uxID.Hex()) + } + + outs = append(outs, *out) + } + + return outs, nil +} + +// isEmpty checks if the uxout bucekt is empty +func (ux *uxOuts) isEmpty(tx *dbutil.Tx) (bool, error) { + return dbutil.IsEmpty(tx, UxOutsBkt) +} + +// reset resets the bucket +func (ux *uxOuts) reset(tx *dbutil.Tx) error { + return dbutil.Reset(tx, UxOutsBkt) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/transaction.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/transaction.go new file mode 100644 index 000000000..0ea959adc --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/transaction.go @@ -0,0 +1,112 @@ +package historydb + +// transaction.go mainly provides transaction corresponding buckets and apis, +// The transactions bucket, tx hash as key, and tx as value, it's the main bucket that stores the +// transaction value. All other buckets that index different field of transaction will only record the +// transaction hash, and get the tx value from transactions bucket. + +import ( + "errors" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +//go:generate skyencoder -unexported -struct Transaction + +// Transaction contains transaction info and the seq of block which executed this block. +type Transaction struct { + Txn coin.Transaction + BlockSeq uint64 +} + +// Hash return the Txn hash. +func (txn *Transaction) Hash() cipher.SHA256 { + return txn.Txn.Hash() +} + +// TransactionsBkt holds Transactions +var TransactionsBkt = []byte("transactions") + +// Transactions transaction bucket instance. +type transactions struct{} + +// put transaction in the db +func (txs *transactions) put(tx *dbutil.Tx, txn *Transaction) error { + hash := txn.Hash() + buf, err := encodeTransaction(txn) + if err != nil { + return err + } + + return dbutil.PutBucketValue(tx, TransactionsBkt, hash[:], buf) +} + +// get gets transaction by transaction hash, return nil on not found +func (txs *transactions) get(tx *dbutil.Tx, hash cipher.SHA256) (*Transaction, error) { + var txn Transaction + + v, err := dbutil.GetBucketValueNoCopy(tx, TransactionsBkt, hash[:]) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + if err := decodeTransactionExact(v, &txn); err != nil { + return nil, err + } + + return &txn, nil +} + +// getArray returns transactions slice of given hashes +func (txs *transactions) getArray(tx *dbutil.Tx, hashes []cipher.SHA256) ([]Transaction, error) { + txns := make([]Transaction, 0, len(hashes)) + for _, h := range hashes { + txn, err := txs.get(tx, h) + if err != nil { + return nil, err + } + if txn == nil { + return nil, errors.New("Transaction not found") + } + + txns = append(txns, *txn) + } + + return txns, nil +} + +// isEmpty checks if transaction bucket is empty +func (txs *transactions) isEmpty(tx *dbutil.Tx) (bool, error) { + return dbutil.IsEmpty(tx, TransactionsBkt) +} + +// reset resets the bucket +func (txs *transactions) reset(tx *dbutil.Tx) error { + return dbutil.Reset(tx, TransactionsBkt) +} + +// forEach traverses the transactions in db +func (txs *transactions) forEach(tx *dbutil.Tx, f func(cipher.SHA256, *Transaction) error) error { + return dbutil.ForEach(tx, TransactionsBkt, func(k, v []byte) error { + hash, err := cipher.SHA256FromBytes(k) + if err != nil { + return err + } + + var txn Transaction + if err := decodeTransactionExact(v, &txn); err != nil { + return err + } + + return f(hash, &txn) + }) +} + +// len returns the total number of all transactions +func (txs *transactions) len(tx *dbutil.Tx) (uint64, error) { + return dbutil.Len(tx, TransactionsBkt) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/transaction_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/transaction_skyencoder.go new file mode 100644 index 000000000..e3a56c4f0 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/transaction_skyencoder.go @@ -0,0 +1,372 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. +package historydb + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeTransaction computes the size of an encoded object of type Transaction +func encodeSizeTransaction(obj *Transaction) uint64 { + i0 := uint64(0) + + // obj.Txn.Length + i0 += 4 + + // obj.Txn.Type + i0++ + + // obj.Txn.InnerHash + i0 += 32 + + // obj.Txn.Sigs + i0 += 4 + { + i1 := uint64(0) + + // x + i1 += 65 + + i0 += uint64(len(obj.Txn.Sigs)) * i1 + } + + // obj.Txn.In + i0 += 4 + { + i1 := uint64(0) + + // x + i1 += 32 + + i0 += uint64(len(obj.Txn.In)) * i1 + } + + // obj.Txn.Out + i0 += 4 + { + i1 := uint64(0) + + // x.Address.Version + i1++ + + // x.Address.Key + i1 += 20 + + // x.Coins + i1 += 8 + + // x.Hours + i1 += 8 + + i0 += uint64(len(obj.Txn.Out)) * i1 + } + + // obj.BlockSeq + i0 += 8 + + return i0 +} + +// encodeTransaction encodes an object of type Transaction to a buffer allocated to the exact size +// required to encode the object. +func encodeTransaction(obj *Transaction) ([]byte, error) { + n := encodeSizeTransaction(obj) + buf := make([]byte, n) + + if err := encodeTransactionToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeTransactionToBuffer encodes an object of type Transaction to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeTransactionToBuffer(buf []byte, obj *Transaction) error { + if uint64(len(buf)) < encodeSizeTransaction(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Txn.Length + e.Uint32(obj.Txn.Length) + + // obj.Txn.Type + e.Uint8(obj.Txn.Type) + + // obj.Txn.InnerHash + e.CopyBytes(obj.Txn.InnerHash[:]) + + // obj.Txn.Sigs maxlen check + if len(obj.Txn.Sigs) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Txn.Sigs length check + if uint64(len(obj.Txn.Sigs)) > math.MaxUint32 { + return errors.New("obj.Txn.Sigs length exceeds math.MaxUint32") + } + + // obj.Txn.Sigs length + e.Uint32(uint32(len(obj.Txn.Sigs))) + + // obj.Txn.Sigs + for _, x := range obj.Txn.Sigs { + + // x + e.CopyBytes(x[:]) + + } + + // obj.Txn.In maxlen check + if len(obj.Txn.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Txn.In length check + if uint64(len(obj.Txn.In)) > math.MaxUint32 { + return errors.New("obj.Txn.In length exceeds math.MaxUint32") + } + + // obj.Txn.In length + e.Uint32(uint32(len(obj.Txn.In))) + + // obj.Txn.In + for _, x := range obj.Txn.In { + + // x + e.CopyBytes(x[:]) + + } + + // obj.Txn.Out maxlen check + if len(obj.Txn.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Txn.Out length check + if uint64(len(obj.Txn.Out)) > math.MaxUint32 { + return errors.New("obj.Txn.Out length exceeds math.MaxUint32") + } + + // obj.Txn.Out length + e.Uint32(uint32(len(obj.Txn.Out))) + + // obj.Txn.Out + for _, x := range obj.Txn.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + // obj.BlockSeq + e.Uint64(obj.BlockSeq) + + return nil +} + +// decodeTransaction decodes an object of type Transaction from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeTransaction(buf []byte, obj *Transaction) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Txn.Length + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Txn.Length = i + } + + { + // obj.Txn.Type + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Txn.Type = i + } + + { + // obj.Txn.InnerHash + if len(d.Buffer) < len(obj.Txn.InnerHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Txn.InnerHash[:], d.Buffer[:len(obj.Txn.InnerHash)]) + d.Buffer = d.Buffer[len(obj.Txn.InnerHash):] + } + + { + // obj.Txn.Sigs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Txn.Sigs = make([]cipher.Sig, length) + + for z2 := range obj.Txn.Sigs { + { + // obj.Txn.Sigs[z2] + if len(d.Buffer) < len(obj.Txn.Sigs[z2]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Txn.Sigs[z2][:], d.Buffer[:len(obj.Txn.Sigs[z2])]) + d.Buffer = d.Buffer[len(obj.Txn.Sigs[z2]):] + } + + } + } + } + + { + // obj.Txn.In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Txn.In = make([]cipher.SHA256, length) + + for z2 := range obj.Txn.In { + { + // obj.Txn.In[z2] + if len(d.Buffer) < len(obj.Txn.In[z2]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Txn.In[z2][:], d.Buffer[:len(obj.Txn.In[z2])]) + d.Buffer = d.Buffer[len(obj.Txn.In[z2]):] + } + + } + } + } + + { + // obj.Txn.Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Txn.Out = make([]coin.TransactionOutput, length) + + for z2 := range obj.Txn.Out { + { + // obj.Txn.Out[z2].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Txn.Out[z2].Address.Version = i + } + + { + // obj.Txn.Out[z2].Address.Key + if len(d.Buffer) < len(obj.Txn.Out[z2].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Txn.Out[z2].Address.Key[:], d.Buffer[:len(obj.Txn.Out[z2].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Txn.Out[z2].Address.Key):] + } + + { + // obj.Txn.Out[z2].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Txn.Out[z2].Coins = i + } + + { + // obj.Txn.Out[z2].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Txn.Out[z2].Hours = i + } + + } + } + } + + { + // obj.BlockSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.BlockSeq = i + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeTransactionExact decodes an object of type Transaction from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeTransactionExact(buf []byte, obj *Transaction) error { + if n, err := decodeTransaction(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/ux_out_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/ux_out_skyencoder.go new file mode 100644 index 000000000..502a79485 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/ux_out_skyencoder.go @@ -0,0 +1,197 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. +package historydb + +import "github.com/skycoin/skycoin/src/cipher/encoder" + +// encodeSizeUxOut computes the size of an encoded object of type UxOut +func encodeSizeUxOut(obj *UxOut) uint64 { + i0 := uint64(0) + + // obj.Out.Head.Time + i0 += 8 + + // obj.Out.Head.BkSeq + i0 += 8 + + // obj.Out.Body.SrcTransaction + i0 += 32 + + // obj.Out.Body.Address.Version + i0++ + + // obj.Out.Body.Address.Key + i0 += 20 + + // obj.Out.Body.Coins + i0 += 8 + + // obj.Out.Body.Hours + i0 += 8 + + // obj.SpentTxnID + i0 += 32 + + // obj.SpentBlockSeq + i0 += 8 + + return i0 +} + +// encodeUxOut encodes an object of type UxOut to a buffer allocated to the exact size +// required to encode the object. +func encodeUxOut(obj *UxOut) ([]byte, error) { + n := encodeSizeUxOut(obj) + buf := make([]byte, n) + + if err := encodeUxOutToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeUxOutToBuffer encodes an object of type UxOut to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeUxOutToBuffer(buf []byte, obj *UxOut) error { + if uint64(len(buf)) < encodeSizeUxOut(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Out.Head.Time + e.Uint64(obj.Out.Head.Time) + + // obj.Out.Head.BkSeq + e.Uint64(obj.Out.Head.BkSeq) + + // obj.Out.Body.SrcTransaction + e.CopyBytes(obj.Out.Body.SrcTransaction[:]) + + // obj.Out.Body.Address.Version + e.Uint8(obj.Out.Body.Address.Version) + + // obj.Out.Body.Address.Key + e.CopyBytes(obj.Out.Body.Address.Key[:]) + + // obj.Out.Body.Coins + e.Uint64(obj.Out.Body.Coins) + + // obj.Out.Body.Hours + e.Uint64(obj.Out.Body.Hours) + + // obj.SpentTxnID + e.CopyBytes(obj.SpentTxnID[:]) + + // obj.SpentBlockSeq + e.Uint64(obj.SpentBlockSeq) + + return nil +} + +// decodeUxOut decodes an object of type UxOut from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeUxOut(buf []byte, obj *UxOut) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Out.Head.Time + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out.Head.Time = i + } + + { + // obj.Out.Head.BkSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out.Head.BkSeq = i + } + + { + // obj.Out.Body.SrcTransaction + if len(d.Buffer) < len(obj.Out.Body.SrcTransaction) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Out.Body.SrcTransaction[:], d.Buffer[:len(obj.Out.Body.SrcTransaction)]) + d.Buffer = d.Buffer[len(obj.Out.Body.SrcTransaction):] + } + + { + // obj.Out.Body.Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Out.Body.Address.Version = i + } + + { + // obj.Out.Body.Address.Key + if len(d.Buffer) < len(obj.Out.Body.Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Out.Body.Address.Key[:], d.Buffer[:len(obj.Out.Body.Address.Key)]) + d.Buffer = d.Buffer[len(obj.Out.Body.Address.Key):] + } + + { + // obj.Out.Body.Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out.Body.Coins = i + } + + { + // obj.Out.Body.Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Out.Body.Hours = i + } + + { + // obj.SpentTxnID + if len(d.Buffer) < len(obj.SpentTxnID) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.SpentTxnID[:], d.Buffer[:len(obj.SpentTxnID)]) + d.Buffer = d.Buffer[len(obj.SpentTxnID):] + } + + { + // obj.SpentBlockSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.SpentBlockSeq = i + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeUxOutExact decodes an object of type UxOut from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeUxOutExact(buf []byte, obj *UxOut) error { + if n, err := decodeUxOut(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/historydb/verify.go b/vendor/github.com/skycoin/skycoin/src/visor/historydb/verify.go new file mode 100644 index 000000000..27a53c231 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/historydb/verify.go @@ -0,0 +1,129 @@ +package historydb + +import ( + "errors" + "reflect" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + // ErrVerifyStopped is returned when database verification is interrupted + ErrVerifyStopped = errors.New("database verification stopped") +) + +// VerifyDBSkyencoderSafe verifies that the skyencoder generated code has the same result as the encoder +// for all data in the blockchain +func VerifyDBSkyencoderSafe(tx *dbutil.Tx, quit <-chan struct{}) error { + if quit == nil { + quit = make(chan struct{}) + } + + if err := dbutil.ForEach(tx, AddressTxnsBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 hashesWrapper + if err := decodeHashesWrapperExact(v, &b1); err != nil { + return err + } + + var b2 []cipher.SHA256 + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1.Hashes, b2) { + return errors.New("AddressTxnsBkt sha256 hashes mismatch") + } + + return nil + }); err != nil { + return err + } + + if err := dbutil.ForEach(tx, AddressUxBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 hashesWrapper + if err := decodeHashesWrapperExact(v, &b1); err != nil { + return err + } + + var b2 []cipher.SHA256 + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1.Hashes, b2) { + return errors.New("AddressUxBkt sha256 hashes mismatch") + } + + return nil + }); err != nil { + return err + } + + if err := dbutil.ForEach(tx, UxOutsBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 UxOut + if err := decodeUxOutExact(v, &b1); err != nil { + return err + } + + var b2 UxOut + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1, b2) { + return errors.New("UxOutsBkt ux out mismatch") + } + + return nil + }); err != nil { + return err + } + + if err := dbutil.ForEach(tx, TransactionsBkt, func(_, v []byte) error { + select { + case <-quit: + return ErrVerifyStopped + default: + } + + var b1 Transaction + if err := decodeTransactionExact(v, &b1); err != nil { + return err + } + + var b2 Transaction + if err := encoder.DeserializeRawExact(v, &b2); err != nil { + return err + } + + if !reflect.DeepEqual(b1, b2) { + return errors.New("TransactionsBkt ux out mismatch") + } + + return nil + }); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/interfaces.go b/vendor/github.com/skycoin/skycoin/src/visor/interfaces.go new file mode 100644 index 000000000..23f5494c8 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/interfaces.go @@ -0,0 +1,73 @@ +package visor + +import ( + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/transaction" + "github.com/skycoin/skycoin/src/visor/blockdb" + "github.com/skycoin/skycoin/src/visor/dbutil" + "github.com/skycoin/skycoin/src/visor/historydb" +) + +//go:generate mockery -name Historyer -case underscore -inpkg -testonly +//go:generate mockery -name Blockchainer -case underscore -inpkg -testonly +//go:generate mockery -name UnconfirmedTransactionPooler -case underscore -inpkg -testonly + +// Historyer is the interface that provides methods for accessing history data that are parsed from blockchain. +type Historyer interface { + GetUxOuts(tx *dbutil.Tx, uxids []cipher.SHA256) ([]historydb.UxOut, error) + ParseBlock(tx *dbutil.Tx, b coin.Block) error + GetTransaction(tx *dbutil.Tx, hash cipher.SHA256) (*historydb.Transaction, error) + GetTransactionsNum(tx *dbutil.Tx) (uint64, error) + GetOutputsForAddress(tx *dbutil.Tx, address cipher.Address) ([]historydb.UxOut, error) + GetTransactionHashesForAddresses(tx *dbutil.Tx, addresses []cipher.Address) ([]cipher.SHA256, error) + AddressSeen(tx *dbutil.Tx, address cipher.Address) (bool, error) + NeedsReset(tx *dbutil.Tx) (bool, error) + Erase(tx *dbutil.Tx) error + ParsedBlockSeq(tx *dbutil.Tx) (uint64, bool, error) + ForEachTxn(tx *dbutil.Tx, f func(cipher.SHA256, *historydb.Transaction) error) error +} + +// Blockchainer is the interface that provides methods for accessing the blockchain data +type Blockchainer interface { + GetGenesisBlock(tx *dbutil.Tx) (*coin.SignedBlock, error) + GetBlocks(tx *dbutil.Tx, seqs []uint64) ([]coin.SignedBlock, error) + GetBlocksInRange(tx *dbutil.Tx, start, end uint64) ([]coin.SignedBlock, error) + GetLastBlocks(tx *dbutil.Tx, n uint64) ([]coin.SignedBlock, error) + GetSignedBlockByHash(tx *dbutil.Tx, hash cipher.SHA256) (*coin.SignedBlock, error) + GetSignedBlockBySeq(tx *dbutil.Tx, seq uint64) (*coin.SignedBlock, error) + Unspent() blockdb.UnspentPooler + Len(tx *dbutil.Tx) (uint64, error) + Head(tx *dbutil.Tx) (*coin.SignedBlock, error) + HeadSeq(tx *dbutil.Tx) (uint64, bool, error) + Time(tx *dbutil.Tx) (uint64, error) + NewBlock(tx *dbutil.Tx, txns coin.Transactions, currentTime uint64) (*coin.Block, error) + ExecuteBlock(tx *dbutil.Tx, sb *coin.SignedBlock) error + VerifyBlock(tx *dbutil.Tx, sb *coin.SignedBlock) error + VerifyBlockTxnConstraints(tx *dbutil.Tx, txn coin.Transaction) error + VerifySingleTxnHardConstraints(tx *dbutil.Tx, txn coin.Transaction, signed transaction.TxnSignedFlag) error + VerifySingleTxnSoftHardConstraints(tx *dbutil.Tx, txn coin.Transaction, distParams params.Distribution, verifyParams params.VerifyTxn, signed transaction.TxnSignedFlag) (*coin.SignedBlock, coin.UxArray, error) + TransactionFee(tx *dbutil.Tx, hours uint64) coin.FeeCalculator +} + +// UnconfirmedTransactionPooler is the interface that provides methods for +// accessing the unconfirmed transaction pool +type UnconfirmedTransactionPooler interface { + SetTransactionsAnnounced(tx *dbutil.Tx, hashes map[cipher.SHA256]int64) error + InjectTransaction(tx *dbutil.Tx, bc Blockchainer, t coin.Transaction, distParams params.Distribution, verifyParams params.VerifyTxn) (bool, *transaction.ErrTxnViolatesSoftConstraint, error) + AllRawTransactions(tx *dbutil.Tx) (coin.Transactions, error) + RemoveTransactions(tx *dbutil.Tx, txns []cipher.SHA256) error + Refresh(tx *dbutil.Tx, bc Blockchainer, distParams params.Distribution, verifyParams params.VerifyTxn) ([]cipher.SHA256, error) + RemoveInvalid(tx *dbutil.Tx, bc Blockchainer) ([]cipher.SHA256, error) + FilterKnown(tx *dbutil.Tx, txns []cipher.SHA256) ([]cipher.SHA256, error) + GetKnown(tx *dbutil.Tx, txns []cipher.SHA256) (coin.Transactions, error) + RecvOfAddresses(tx *dbutil.Tx, bh coin.BlockHeader, addrs []cipher.Address) (coin.AddressUxOuts, error) + GetIncomingOutputs(tx *dbutil.Tx, bh coin.BlockHeader) (coin.UxArray, error) + Get(tx *dbutil.Tx, hash cipher.SHA256) (*UnconfirmedTransaction, error) + GetFiltered(tx *dbutil.Tx, filter func(tx UnconfirmedTransaction) bool) ([]UnconfirmedTransaction, error) + GetHashes(tx *dbutil.Tx, filter func(tx UnconfirmedTransaction) bool) ([]cipher.SHA256, error) + ForEach(tx *dbutil.Tx, f func(cipher.SHA256, UnconfirmedTransaction) error) error + GetUnspentsOfAddr(tx *dbutil.Tx, addr cipher.Address) (coin.UxArray, error) + Len(tx *dbutil.Tx) (uint64, error) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/meta.go b/vendor/github.com/skycoin/skycoin/src/visor/meta.go new file mode 100644 index 000000000..54166f51d --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/meta.go @@ -0,0 +1,71 @@ +package visor + +import ( + "fmt" + + "github.com/blang/semver" + + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + // MetaBkt stores data about the application DB + MetaBkt = []byte("db_meta") + + versionKey = []byte("version") +) + +// GetDBVersion returns the saved DB version +func GetDBVersion(db *dbutil.DB) (*semver.Version, error) { + var v *semver.Version + if err := db.View("GetDBVersion", func(tx *dbutil.Tx) error { + var err error + v, err = getDBVersion(tx) + return err + }); err != nil { + return nil, err + } + + return v, nil +} + +func getDBVersion(tx *dbutil.Tx) (*semver.Version, error) { + v, err := dbutil.GetBucketValue(tx, MetaBkt, versionKey) + if err != nil { + switch err.(type) { + case dbutil.ErrBucketNotExist: + return nil, nil + default: + return nil, err + } + } else if v == nil { + return nil, nil + } + + sv, err := semver.Make(string(v)) + if err != nil { + return nil, err + } + + return &sv, nil +} + +// SetDBVersion sets the DB version +func SetDBVersion(db *dbutil.DB, version semver.Version) error { + return db.Update("SetDBVersion", func(tx *dbutil.Tx) error { + if _, err := tx.CreateBucketIfNotExists(MetaBkt); err != nil { + return err + } + + oldVersion, err := getDBVersion(tx) + if err != nil { + return err + } + + if oldVersion != nil && oldVersion.GT(version) { + return fmt.Errorf("SetDBVersion cannot regress version from %v to %v", oldVersion, version) + } + + return dbutil.PutBucketValue(tx, MetaBkt, versionKey, []byte(version.String())) + }) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/objects.go b/vendor/github.com/skycoin/skycoin/src/visor/objects.go new file mode 100644 index 000000000..d407a08ca --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/objects.go @@ -0,0 +1,213 @@ +package visor + +import ( + "time" + + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/transaction" +) + +// Transaction wraps around coin.Transaction, tagged with its status. This allows us +// to include unconfirmed txns +type Transaction struct { + Transaction coin.Transaction + Status TransactionStatus + Time uint64 +} + +// TransactionStatus represents the transaction status +type TransactionStatus struct { + Confirmed bool + // If confirmed, how many blocks deep in the chain it is. Will be at least 1 if confirmed. + Height uint64 + // If confirmed, the sequence of the block in which the transaction was executed + BlockSeq uint64 +} + +// NewUnconfirmedTransactionStatus creates unconfirmed transaction status +func NewUnconfirmedTransactionStatus() TransactionStatus { + return TransactionStatus{ + Confirmed: false, + Height: 0, + BlockSeq: 0, + } +} + +// NewConfirmedTransactionStatus creates confirmed transaction status +func NewConfirmedTransactionStatus(height, blockSeq uint64) TransactionStatus { + // Height starts at 1 + // TODO -- height should start at 0? + if height == 0 { + logger.Panic("Invalid confirmed transaction height") + } + return TransactionStatus{ + Confirmed: true, + Height: height, + BlockSeq: blockSeq, + } +} + +// TransactionInput includes the UxOut spent in a transaction and the calculated hours of the output at spending time +type TransactionInput struct { + UxOut coin.UxOut + CalculatedHours uint64 +} + +// NewTransactionInput creates a TransactionInput. +// calculateHoursTime is the time against which the CalculatedHours should be computed +func NewTransactionInput(ux coin.UxOut, calculateHoursTime uint64) (TransactionInput, error) { + // The overflow bug causes this to fail for some transactions, allow it to pass + calculatedHours, err := ux.CoinHours(calculateHoursTime) + if err != nil { + logger.Critical().Warningf("Ignoring NewTransactionInput ux.CoinHours failed: %v", err) + calculatedHours = 0 + } + + return TransactionInput{ + UxOut: ux, + CalculatedHours: calculatedHours, + }, nil +} + +// NewTransactionInputs creates []TransactionInput from []coin.UxOut. +// Assumes all coin.UxOuts have their coin hours calculated from the same reference time. +func NewTransactionInputs(uxa []coin.UxOut, calculateHoursTime uint64) ([]TransactionInput, error) { + if len(uxa) == 0 { + return nil, nil + } + + inputs := make([]TransactionInput, len(uxa)) + for i, x := range uxa { + var err error + inputs[i], err = NewTransactionInput(x, calculateHoursTime) + if err != nil { + return nil, err + } + } + + return inputs, nil +} + +// TransactionInputFromUxBalance converts transaction.UxBalance to TransactionInput +func TransactionInputFromUxBalance(x transaction.UxBalance) TransactionInput { + var t TransactionInput + t.CalculatedHours = x.Hours + t.UxOut.Head.BkSeq = x.BkSeq + t.UxOut.Head.Time = x.Time + t.UxOut.Body.Address = x.Address + t.UxOut.Body.Coins = x.Coins + t.UxOut.Body.Hours = x.InitialHours + t.UxOut.Body.SrcTransaction = x.SrcTransaction + + if t.UxOut.Hash() != x.Hash { + logger.Panic("Reconstructed coin.UxOut from transaction.UxBalance hash does not match") + } + + return t +} + +// NewTransactionInputsFromUxBalance converts []transaction.UxBalance to []TransactionInput +func NewTransactionInputsFromUxBalance(uxb []transaction.UxBalance) []TransactionInput { + if len(uxb) == 0 { + return nil + } + + inputs := make([]TransactionInput, len(uxb)) + for i, x := range uxb { + inputs[i] = TransactionInputFromUxBalance(x) + } + + return inputs +} + +// BlockchainMetadata encapsulates useful information from the coin.Blockchain +type BlockchainMetadata struct { + // Most recent block + HeadBlock coin.SignedBlock + // Number of unspent outputs in the coin.Blockchain + Unspents uint64 + // Number of known unconfirmed txns + Unconfirmed uint64 +} + +// NewBlockchainMetadata creates blockchain meta data +func NewBlockchainMetadata(head coin.SignedBlock, unconfirmedLen, unspentsLen uint64) (*BlockchainMetadata, error) { + return &BlockchainMetadata{ + HeadBlock: head, + Unspents: unspentsLen, + Unconfirmed: unconfirmedLen, + }, nil +} + +// UnconfirmedTransaction unconfirmed transaction +type UnconfirmedTransaction struct { + Transaction coin.Transaction + // Time the txn was last received + Received int64 + // Time the txn was last checked against the blockchain + Checked int64 + // Last time we announced this txn + Announced int64 + // If this txn is valid + IsValid int8 +} + +// NewUnconfirmedTransaction creates an UnconfirmedTransaction +func NewUnconfirmedTransaction(txn coin.Transaction) UnconfirmedTransaction { + now := time.Now().UTC() + return UnconfirmedTransaction{ + Transaction: txn, + Received: now.UnixNano(), + Checked: now.UnixNano(), + Announced: time.Time{}.UnixNano(), + IsValid: 0, + } +} + +// UnspentOutput includes coin.UxOut and adds CalculatedHours +type UnspentOutput struct { + coin.UxOut + CalculatedHours uint64 +} + +// NewUnspentOutput creates an UnspentOutput +func NewUnspentOutput(uxOut coin.UxOut, calculateHoursTime uint64) (UnspentOutput, error) { + calculatedHours, err := uxOut.CoinHours(calculateHoursTime) + + // Treat overflowing coin hours calculations as a non-error and force hours to 0 + // This affects one bad spent output which had overflowed hours, spent in block 13277. + switch err { + case nil: + case coin.ErrAddEarnedCoinHoursAdditionOverflow: + calculatedHours = 0 + default: + return UnspentOutput{}, err + } + + return UnspentOutput{ + UxOut: uxOut, + CalculatedHours: calculatedHours, + }, nil +} + +// NewUnspentOutputs creates []UnspentOutput +func NewUnspentOutputs(uxOuts []coin.UxOut, calculateHoursTime uint64) ([]UnspentOutput, error) { + outs := make([]UnspentOutput, len(uxOuts)) + for i, ux := range uxOuts { + u, err := NewUnspentOutput(ux, calculateHoursTime) + if err != nil { + return nil, err + } + outs[i] = u + } + + return outs, nil +} + +// UnspentOutputsSummary includes current unspent outputs and incoming and outgoing unspent outputs +type UnspentOutputsSummary struct { + HeadBlock *coin.SignedBlock + Confirmed []UnspentOutput + Outgoing []UnspentOutput + Incoming []UnspentOutput +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/richlist.go b/vendor/github.com/skycoin/skycoin/src/visor/richlist.go new file mode 100644 index 000000000..a7a3520ef --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/richlist.go @@ -0,0 +1,64 @@ +package visor + +import ( + "bytes" + "sort" + + "github.com/skycoin/skycoin/src/cipher" +) + +// RichlistBalance holds info an address balance holder +type RichlistBalance struct { + Address cipher.Address + Coins uint64 + Locked bool +} + +// Richlist contains RichlistBalances +type Richlist []RichlistBalance + +// NewRichlist create Richlist via unspent outputs map +func NewRichlist(allAccounts map[cipher.Address]uint64, lockedAddrs map[cipher.Address]struct{}) (Richlist, error) { + richlist := make(Richlist, 0, len(allAccounts)) + + for addr, coins := range allAccounts { + var islocked bool + if _, ok := lockedAddrs[addr]; ok { + islocked = true + } + + richlist = append(richlist, RichlistBalance{ + Address: addr, + Coins: coins, + Locked: islocked, + }) + } + + // Sort order: + // Higher coins + // Locked > unlocked + // Address bytes + sort.Slice(richlist, func(i, j int) bool { + if richlist[i].Coins == richlist[j].Coins { + if richlist[i].Locked == richlist[j].Locked { + return bytes.Compare(richlist[i].Address.Bytes(), richlist[j].Address.Bytes()) < 0 + } + return richlist[i].Locked + } + + return richlist[i].Coins > richlist[j].Coins + }) + + return richlist, nil +} + +// FilterAddresses returns the richlist without addresses from the map +func (r Richlist) FilterAddresses(addrs map[cipher.Address]struct{}) Richlist { + var s Richlist + for _, b := range r { + if _, ok := addrs[b.Address]; !ok { + s = append(s, b) + } + } + return s +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/transaction_model.go b/vendor/github.com/skycoin/skycoin/src/visor/transaction_model.go new file mode 100644 index 000000000..274d222ce --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/transaction_model.go @@ -0,0 +1,599 @@ +package visor + +import ( + "errors" + "fmt" + "sort" + + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/util/timeutil" + "github.com/skycoin/skycoin/src/visor/dbutil" + "github.com/skycoin/skycoin/src/visor/historydb" +) + +const ( + // DefaultTxnPageSize the default transaction page size + DefaultTxnPageSize = uint64(10) + + // MaxTxnPageSize the maximum transaction page size + MaxTxnPageSize = uint64(100) +) + +// SortOrder represents the sort order +type SortOrder uint8 + +const ( + // UnknownOrder is returned when the sort order does not belong to any of the orders below + UnknownOrder SortOrder = iota + // AscOrder sort in ascending order + AscOrder + // DescOrder sort in descending order + DescOrder +) + +var ( + // ErrZeroPageSize will be returned when page size is zero + ErrZeroPageSize = errors.New("page size must be greater than 0") + // ErrZeroPageNum will be returned when page num is zero + ErrZeroPageNum = errors.New("page number must be greater than 0") + // ErrMaxTxnPageSize will be returned when page size is greater than MaxTxnPageSize + ErrMaxTxnPageSize = fmt.Errorf("transaction page size must be not greater than %d", MaxTxnPageSize) +) + +// PageIndex represents +type PageIndex struct { + size uint64 // Page size + n uint64 // Page number, start from 1 +} + +// NewPageIndex creates a page +func NewPageIndex(size uint64, pageN uint64) (*PageIndex, error) { + if size == 0 { + return nil, ErrZeroPageSize + } + + if pageN == 0 { + return nil, ErrZeroPageNum + } + + if size > MaxTxnPageSize { + return nil, ErrMaxTxnPageSize + } + + return &PageIndex{size: size, n: pageN}, nil +} + +// Cal calculate the slice indexes +func (p PageIndex) Cal(n uint64) (start uint64, end uint64, totalPages uint64, err error) { + if p.size == 0 { + return 0, 0, 0, ErrZeroPageSize + } + + if p.n == 0 { + return 0, 0, 0, ErrZeroPageNum + } + + totalPages = n / p.size + if n%p.size != 0 { + totalPages++ + } + + start = p.size * (p.n - 1) + if start >= n { + return 0, 0, totalPages, nil + } + + end = start + p.size + if end > n { + end = n + } + + return +} + +// Size returns the page size +func (p PageIndex) Size() uint64 { + return p.size +} + +// PageNum returns the page num +func (p PageIndex) PageNum() uint64 { + return p.n +} + +type txnHashConfirm struct { + hash cipher.SHA256 + seq uint64 + isConfirmed bool +} + +type txnHashesContainer struct { + items []txnHashConfirm + m map[cipher.SHA256]struct{} +} + +func newTxnHashesContainer() *txnHashesContainer { + return &txnHashesContainer{ + m: make(map[cipher.SHA256]struct{}), + } +} + +func (s *txnHashesContainer) Add(hash cipher.SHA256, isConfirmed bool, seq uint64) { + // check if the hashes already exists + if _, exist := s.m[hash]; exist { + return + } + + s.m[hash] = struct{}{} + s.items = append(s.items, txnHashConfirm{ + hash: hash, + isConfirmed: isConfirmed, + seq: seq, + }) +} + +func (s *txnHashesContainer) AddItem(item txnHashConfirm) { + if _, exist := s.m[item.hash]; exist { + return + } + s.m[item.hash] = struct{}{} + s.items = append(s.items, item) +} + +func (s *txnHashesContainer) Sort(order SortOrder) error { + lessFunc := func(i, j int) bool { + if s.items[i].seq < s.items[j].seq { + return true + } + + if s.items[i].seq > s.items[j].seq { + return false + } + + // If transactions in the same block, compare the hash string + return s.items[i].hash.Hex() < s.items[j].hash.Hex() + } + + switch order { + case AscOrder: + sort.Slice(s.items, lessFunc) + case DescOrder: + sort.Slice(s.items, func(i, j int) bool { + return lessFunc(j, i) + }) + default: + return errors.New("unknown sort order") + } + + return nil +} + +func (s *txnHashesContainer) Append(c *txnHashesContainer) { + for _, item := range c.items { + if _, exist := s.m[item.hash]; exist { + continue + } + s.AddItem(item) + } +} + +type txnGetFunc func(tx *dbutil.Tx, item txnHashConfirm) (*Transaction, error) + +func (s txnHashesContainer) Filter(tx *dbutil.Tx, flts []TxFilter, getTxn txnGetFunc) (*txnHashesContainer, error) { + if len(flts) == 0 { + return &s, nil + } + + newTxnsHashes := newTxnHashesContainer() + + for _, item := range s.items { + txn, err := getTxn(tx, item) + if err != nil { + return nil, err + } + + if func(txn *Transaction) bool { + for _, flt := range flts { + if !flt.Match(txn) { + return false + } + } + return true + }(txn) { + newTxnsHashes.AddItem(item) + } + } + return newTxnsHashes, nil +} + +func (s txnHashesContainer) Len() uint64 { + return uint64(len(s.items)) +} + +func (s txnHashesContainer) LastItem() (txnHashConfirm, bool) { + if s.Len() == 0 { + return txnHashConfirm{}, false + } + + return s.items[s.Len()-1], true +} + +type txnContainerUpdateFunc func(int, *txnHashConfirm) + +func (s *txnHashesContainer) Update(f txnContainerUpdateFunc) { + for i := 0; i < len(s.items); i++ { + f(i, &s.items[i]) + } +} + +func (s txnHashesContainer) Pagination(page *PageIndex) (*txnHashesContainer, uint64, error) { + if page == nil { + // Returns all transactions if page index is nil; total page is 1. + return &s, 1, nil + } + start, end, total, err := page.Cal(s.Len()) + if err != nil { + return nil, 0, err + } + + newTxnHashes := newTxnHashesContainer() + for _, item := range s.items[start:end] { + newTxnHashes.AddItem(item) + } + return newTxnHashes, total, nil +} + +func (s txnHashesContainer) ToTransactions(tx *dbutil.Tx, f txnGetFunc) ([]Transaction, error) { + var txns []Transaction + for _, item := range s.items { + txn, err := f(tx, item) + if err != nil { + return nil, err + } + txns = append(txns, *txn) + } + return txns, nil +} + +type transactionModel struct { + history Historyer + unconfirmed UnconfirmedTransactionPooler + blockchain Blockchainer +} + +func (tm transactionModel) GetTransactions(tx *dbutil.Tx, flts []TxFilter, order SortOrder, page *PageIndex) ([]Transaction, uint64, error) { + var otherFlts []TxFilter + var txnGetter transactionsGetter = newAllTxnsGetter(tm) + for _, f := range flts { + switch v := f.(type) { + case ConfirmedTxFilter: + if v.Confirmed { + txnGetter = confirmedTxnsGetter{tm} + } else { + txnGetter = unconfirmedTxnsGetter{tm} + } + default: + otherFlts = append(otherFlts, v) + } + } + + return txnGetter.GetTransactions(tx, otherFlts, order, page) +} + +type transactionsGetter interface { + GetTransactions(tx *dbutil.Tx, flts []TxFilter, order SortOrder, page *PageIndex) ([]Transaction, uint64, error) +} + +type confirmedTxnsGetter struct { + transactionModel +} + +func (ct confirmedTxnsGetter) GetTransactions(tx *dbutil.Tx, flts []TxFilter, order SortOrder, page *PageIndex) ([]Transaction, uint64, error) { + addrs, otherFlts := getAddrsFromFlts(flts) + + txnsHashesCon, err := ct.getTxnsHashes(tx, addrs) + if err != nil { + return nil, 0, err + } + + getTxn := func(tx *dbutil.Tx, item txnHashConfirm) (*Transaction, error) { + return ct.getTransaction(tx, item.hash) + } + + // Apply remaining filters + txnsHashesCon, err = txnsHashesCon.Filter(tx, otherFlts, getTxn) + if err != nil { + return nil, 0, err + } + + // Sort the transaction hashes + if err := txnsHashesCon.Sort(order); err != nil { + return nil, 0, err + } + + var totalPages uint64 + txnsHashesCon, totalPages, err = txnsHashesCon.Pagination(page) + if err != nil { + return nil, 0, err + } + + txns, err := txnsHashesCon.ToTransactions(tx, getTxn) + if err != nil { + return nil, 0, err + } + + return txns, totalPages, nil +} + +func (ct confirmedTxnsGetter) getTransaction(tx *dbutil.Tx, hash cipher.SHA256) (*Transaction, error) { + hisTxn, err := ct.history.GetTransaction(tx, hash) + if err != nil { + return nil, err + } + + return ct.convertConfirmedTxn(tx, hisTxn) +} + +func (ct confirmedTxnsGetter) convertConfirmedTxn(tx *dbutil.Tx, hisTxn *historydb.Transaction) (*Transaction, error) { + headBkSeq, ok, err := ct.blockchain.HeadSeq(tx) + if err != nil { + return nil, err + } + + if !ok { + return nil, errors.New("No head block seq") + } + + if headBkSeq < hisTxn.BlockSeq { + err := errors.New("Transaction block sequence is greater than the head block sequence") + logger.Critical().WithError(err).WithFields(logrus.Fields{ + "headBkSeq": headBkSeq, + "txnBlockSeq": hisTxn.BlockSeq, + }).Error() + return nil, err + } + h := headBkSeq - hisTxn.BlockSeq + 1 + + bk, err := ct.blockchain.GetSignedBlockBySeq(tx, hisTxn.BlockSeq) + if err != nil { + return nil, err + } + + if bk == nil { + return nil, fmt.Errorf("block seq=%d doesn't exist", hisTxn.BlockSeq) + } + + return &Transaction{ + Transaction: hisTxn.Txn, + Status: NewConfirmedTransactionStatus(h, hisTxn.BlockSeq), + Time: bk.Time(), + }, nil +} + +func (ct confirmedTxnsGetter) getTxnsHashes(tx *dbutil.Tx, addrs []cipher.Address) (*txnHashesContainer, error) { + hashCon := newTxnHashesContainer() + // if no address is specified, returns all confirmed transaction hashes + if len(addrs) == 0 { + if err := ct.history.ForEachTxn(tx, func(hash cipher.SHA256, txn *historydb.Transaction) error { + hashCon.Add(hash, true, txn.BlockSeq) + return nil + }); err != nil { + return nil, err + } + return hashCon, nil + } + + // Get addresses related transaction hashes + hashes, err := ct.history.GetTransactionHashesForAddresses(tx, addrs) + if err != nil { + return nil, err + } + + // If only one address is specified, the hashes returned are already sorted in ascending order. + if len(addrs) == 1 { + // Address indexed + for i, hash := range hashes { + hashCon.Add(hash, true, uint64(i)) + } + return hashCon, nil + } + + for _, hash := range hashes { + hisTxn, err := ct.history.GetTransaction(tx, hash) + if err != nil { + return nil, err + } + + hashCon.Add(hash, true, hisTxn.BlockSeq) + } + + return hashCon, nil +} + +type unconfirmedTxnsGetter struct { + transactionModel +} + +func (uct unconfirmedTxnsGetter) GetTransactions(tx *dbutil.Tx, flts []TxFilter, order SortOrder, page *PageIndex) ([]Transaction, uint64, error) { + addrs, otherFlts := getAddrsFromFlts(flts) + + txnHashesCon, err := uct.getTxnsHashes(tx, addrs) + if err != nil { + return nil, 0, err + } + + getTxn := func(tx *dbutil.Tx, item txnHashConfirm) (*Transaction, error) { + return uct.getTransaction(tx, item.hash) + } + + txnHashesCon, err = txnHashesCon.Filter(tx, otherFlts, getTxn) + if err != nil { + return nil, 0, err + } + + if err := txnHashesCon.Sort(order); err != nil { + return nil, 0, err + } + + var totalPage uint64 + txnHashesCon, totalPage, err = txnHashesCon.Pagination(page) + if err != nil { + return nil, 0, err + } + + txns, err := txnHashesCon.ToTransactions(tx, getTxn) + if err != nil { + return nil, 0, err + } + + return txns, totalPage, nil +} + +func (uct unconfirmedTxnsGetter) getTransaction(tx *dbutil.Tx, hash cipher.SHA256) (*Transaction, error) { + uncfmTxn, err := uct.unconfirmed.Get(tx, hash) + if err != nil { + return nil, err + } + + return &Transaction{ + Transaction: uncfmTxn.Transaction, + Status: NewUnconfirmedTransactionStatus(), + Time: uint64(timeutil.NanoToTime(uncfmTxn.Received).Unix()), + }, nil +} + +func (uct unconfirmedTxnsGetter) getTxnsHashes(tx *dbutil.Tx, addrs []cipher.Address) (*txnHashesContainer, error) { + txnHashCon := newTxnHashesContainer() + + // Return all if there's no address filter + if len(addrs) == 0 { + if err := uct.unconfirmed.ForEach(tx, func(hash cipher.SHA256, txn UnconfirmedTransaction) error { + txnHashCon.Add(hash, false, 0) + return nil + }); err != nil { + return nil, err + } + return txnHashCon, nil + } + + for _, addr := range addrs { + uxs, err := uct.unconfirmed.GetUnspentsOfAddr(tx, addr) + if err != nil { + return nil, err + } + + for _, ux := range uxs { + txnHashCon.Add(ux.Body.SrcTransaction, false, 0) + } + } + + return txnHashCon, nil +} + +type fullTxnsGetter struct { + confirmedTxnsGetter + unconfirmedTxnsGetter +} + +func newAllTxnsGetter(tm transactionModel) *fullTxnsGetter { + return &fullTxnsGetter{ + confirmedTxnsGetter: confirmedTxnsGetter{tm}, + unconfirmedTxnsGetter: unconfirmedTxnsGetter{tm}, + } +} + +func (ft fullTxnsGetter) GetTransactions(tx *dbutil.Tx, flts []TxFilter, order SortOrder, page *PageIndex) ([]Transaction, uint64, error) { + addrs, otherFlts := getAddrsFromFlts(flts) + txnsHashesCon, err := ft.getTxnsHashes(tx, addrs) + if err != nil { + return nil, 0, err + } + + getTxn := func(tx *dbutil.Tx, item txnHashConfirm) (*Transaction, error) { + if item.isConfirmed { + return ft.confirmedTxnsGetter.getTransaction(tx, item.hash) + } + return ft.unconfirmedTxnsGetter.getTransaction(tx, item.hash) + } + + txnsHashesCon, err = txnsHashesCon.Filter(tx, otherFlts, getTxn) + if err != nil { + return nil, 0, err + } + + if err := txnsHashesCon.Sort(order); err != nil { + return nil, 0, err + } + + var totalPages uint64 + txnsHashesCon, totalPages, err = txnsHashesCon.Pagination(page) + if err != nil { + return nil, 0, err + } + + txns, err := txnsHashesCon.ToTransactions(tx, getTxn) + if err != nil { + return nil, 0, err + } + + return txns, totalPages, nil +} + +func (ft fullTxnsGetter) getTxnsHashes(tx *dbutil.Tx, addrs []cipher.Address) (*txnHashesContainer, error) { + txnHashCon, err := ft.confirmedTxnsGetter.getTxnsHashes(tx, addrs) + if err != nil { + return nil, err + } + + unconfirmedTxnHashCon, err := ft.unconfirmedTxnsGetter.getTxnsHashes(tx, addrs) + if err != nil { + return nil, err + } + + // Update the seqs of unconfirmed txn. Unconfirmed txns are always the latest, + // therefore, update to make the unconfirmed txns seqs start from the last confirmed txn seq + 1. + lastItem, ok := txnHashCon.LastItem() + if ok { + unconfirmedTxnHashCon.Update(func(i int, item *txnHashConfirm) { + item.seq = lastItem.seq + 1 + uint64(i) + }) + } + + txnHashCon.Append(unconfirmedTxnHashCon) + return txnHashCon, nil +} + +// get addresses from the filters, returns the addresses and remaining filters +func getAddrsFromFlts(flts []TxFilter) ([]cipher.Address, []TxFilter) { + var addrsFlts []AddrsFilter + var otherFlts []TxFilter + for _, f := range flts { + switch v := f.(type) { + case AddrsFilter: + addrsFlts = append(addrsFlts, v) + default: + otherFlts = append(otherFlts, v) + } + } + + addrs := accumulateAddressInFilter(addrsFlts) + return addrs, otherFlts +} + +func accumulateAddressInFilter(afs []AddrsFilter) []cipher.Address { + // Accumulate all addresses in address filters + addrMap := make(map[cipher.Address]struct{}) + var addrs []cipher.Address + for _, af := range afs { + for _, a := range af.Addrs { + if _, exist := addrMap[a]; exist { + continue + } + addrMap[a] = struct{}{} + addrs = append(addrs, a) + } + } + return addrs +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/unconfirmed.go b/vendor/github.com/skycoin/skycoin/src/visor/unconfirmed.go new file mode 100644 index 000000000..b31435ba0 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/unconfirmed.go @@ -0,0 +1,562 @@ +package visor + +import ( + "errors" + "fmt" + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/transaction" + "github.com/skycoin/skycoin/src/visor/dbutil" +) + +var ( + // UnconfirmedTxnsBkt holds unconfirmed transactions + UnconfirmedTxnsBkt = []byte("unconfirmed_txns") + // UnconfirmedUnspentsBkt holds unconfirmed unspent outputs + UnconfirmedUnspentsBkt = []byte("unconfirmed_unspents") + + errUpdateObjectDoesNotExist = errors.New("object does not exist in bucket") +) + +//go:generate skyencoder -unexported -struct UnconfirmedTransaction +//go:generate skyencoder -unexported -struct UxArray + +// UxArray wraps coin.UxArray +type UxArray struct { + UxArray coin.UxArray +} + +// unconfirmed transactions bucket +type unconfirmedTxns struct{} + +func (utb *unconfirmedTxns) get(tx *dbutil.Tx, hash cipher.SHA256) (*UnconfirmedTransaction, error) { + var txn UnconfirmedTransaction + + v, err := dbutil.GetBucketValueNoCopy(tx, UnconfirmedTxnsBkt, []byte(hash.Hex())) + if err != nil { + return nil, err + } else if v == nil { + return nil, nil + } + + if err := decodeUnconfirmedTransactionExact(v, &txn); err != nil { + return nil, err + } + + txnHash := txn.Transaction.Hash() + if hash != txnHash { + return nil, fmt.Errorf("DB key %s does not match block hash header %s", hash, txnHash) + } + + return &txn, nil +} + +func (utb *unconfirmedTxns) put(tx *dbutil.Tx, v *UnconfirmedTransaction) error { + h := v.Transaction.Hash() + buf, err := encodeUnconfirmedTransaction(v) + if err != nil { + return err + } + + return dbutil.PutBucketValue(tx, UnconfirmedTxnsBkt, []byte(h.Hex()), buf) +} + +func (utb *unconfirmedTxns) update(tx *dbutil.Tx, hash cipher.SHA256, f func(v *UnconfirmedTransaction) error) error { + txn, err := utb.get(tx, hash) + if err != nil { + return err + } + + if txn == nil { + return errUpdateObjectDoesNotExist + } + + if err := f(txn); err != nil { + return err + } + + return utb.put(tx, txn) +} + +func (utb *unconfirmedTxns) delete(tx *dbutil.Tx, hash cipher.SHA256) error { + return dbutil.Delete(tx, UnconfirmedTxnsBkt, []byte(hash.Hex())) +} + +func (utb *unconfirmedTxns) getAll(tx *dbutil.Tx) ([]UnconfirmedTransaction, error) { + var txns []UnconfirmedTransaction + + if err := dbutil.ForEach(tx, UnconfirmedTxnsBkt, func(_, v []byte) error { + var txn UnconfirmedTransaction + if err := decodeUnconfirmedTransactionExact(v, &txn); err != nil { + return err + } + + txns = append(txns, txn) + return nil + }); err != nil { + return nil, err + } + + return txns, nil +} + +func (utb *unconfirmedTxns) hasKey(tx *dbutil.Tx, hash cipher.SHA256) (bool, error) { + return dbutil.BucketHasKey(tx, UnconfirmedTxnsBkt, []byte(hash.Hex())) +} + +func (utb *unconfirmedTxns) forEach(tx *dbutil.Tx, f func(hash cipher.SHA256, tx UnconfirmedTransaction) error) error { + return dbutil.ForEach(tx, UnconfirmedTxnsBkt, func(k, v []byte) error { + hash, err := cipher.SHA256FromHex(string(k)) + if err != nil { + return err + } + + var txn UnconfirmedTransaction + if err := decodeUnconfirmedTransactionExact(v, &txn); err != nil { + return err + } + + return f(hash, txn) + }) +} + +func (utb *unconfirmedTxns) len(tx *dbutil.Tx) (uint64, error) { + return dbutil.Len(tx, UnconfirmedTxnsBkt) +} + +type txnUnspents struct{} + +func (txus *txnUnspents) put(tx *dbutil.Tx, hash cipher.SHA256, uxs coin.UxArray) error { + buf, err := encodeUxArray(&UxArray{ + UxArray: uxs, + }) + if err != nil { + return err + } + + return dbutil.PutBucketValue(tx, UnconfirmedUnspentsBkt, []byte(hash.Hex()), buf) +} + +func (txus *txnUnspents) delete(tx *dbutil.Tx, hash cipher.SHA256) error { + return dbutil.Delete(tx, UnconfirmedUnspentsBkt, []byte(hash.Hex())) +} + +func (txus *txnUnspents) getByAddr(tx *dbutil.Tx, a cipher.Address) (coin.UxArray, error) { + var uxo coin.UxArray + + if err := dbutil.ForEach(tx, UnconfirmedUnspentsBkt, func(_, v []byte) error { + var uxa UxArray + if err := decodeUxArrayExact(v, &uxa); err != nil { + return err + } + + for i := range uxa.UxArray { + if uxa.UxArray[i].Body.Address == a { + uxo = append(uxo, uxa.UxArray[i]) + } + } + + return nil + }); err != nil { + return nil, err + } + + return uxo, nil +} + +// UnconfirmedTransactionPool manages unconfirmed transactions +type UnconfirmedTransactionPool struct { + db *dbutil.DB + txns *unconfirmedTxns + // Predicted unspents, assuming txns are valid. Needed to predict + // our future balance and avoid double spending our own coins + // Maps from Transaction.Hash() to UxArray. + unspent *txnUnspents +} + +// NewUnconfirmedTransactionPool creates an UnconfirmedTransactionPool instance +func NewUnconfirmedTransactionPool(db *dbutil.DB) (*UnconfirmedTransactionPool, error) { + if err := db.View("Check unconfirmed txn pool size", func(tx *dbutil.Tx) error { + n, err := dbutil.Len(tx, UnconfirmedTxnsBkt) + if err != nil { + return err + } + + logger.Infof("Unconfirmed transaction pool size: %d", n) + return nil + }); err != nil { + return nil, err + } + + return &UnconfirmedTransactionPool{ + db: db, + txns: &unconfirmedTxns{}, + unspent: &txnUnspents{}, + }, nil +} + +// SetTransactionsAnnounced updates announced time of specific tx +func (utp *UnconfirmedTransactionPool) SetTransactionsAnnounced(tx *dbutil.Tx, hashes map[cipher.SHA256]int64) error { + var txns []*UnconfirmedTransaction + for h, t := range hashes { + txn, err := utp.txns.get(tx, h) + if err != nil { + return err + } + + if txn == nil { + logger.Warningf("UnconfirmedTransactionPool.SetTransactionsAnnounced: UnconfirmedTransaction %s not found in DB", h.Hex()) + continue + } + + if t > txn.Announced { + txn.Announced = t + txns = append(txns, txn) + } + } + + for _, txn := range txns { + if err := utp.txns.put(tx, txn); err != nil { + return err + } + } + + return nil +} + +// InjectTransaction adds a coin.Transaction to the pool, or updates an existing one's timestamps +// Returns an error if txn is invalid, and whether the transaction already +// existed in the pool. +// If the transaction violates hard constraints, it is rejected. +// Soft constraints violations mark a txn as invalid, but the txn is inserted. The soft violation is returned. +func (utp *UnconfirmedTransactionPool) InjectTransaction(tx *dbutil.Tx, bc Blockchainer, txn coin.Transaction, distParams params.Distribution, verifyParams params.VerifyTxn) (bool, *transaction.ErrTxnViolatesSoftConstraint, error) { + var isValid int8 = 1 + var softErr *transaction.ErrTxnViolatesSoftConstraint + if _, _, err := bc.VerifySingleTxnSoftHardConstraints(tx, txn, distParams, verifyParams, transaction.TxnSigned); err != nil { + logger.Warningf("bc.VerifySingleTxnSoftHardConstraints failed for txn %s: %v", txn.Hash().Hex(), err) + switch e := err.(type) { + case transaction.ErrTxnViolatesSoftConstraint: + softErr = &e + isValid = 0 + case transaction.ErrTxnViolatesHardConstraint: + return false, nil, err + default: + return false, nil, err + } + } + + hash := txn.Hash() + known, err := utp.txns.hasKey(tx, hash) + if err != nil { + logger.Errorf("InjectTransaction check txn exists failed: %v", err) + return false, nil, err + } + + // Update if we already have this txn + if known { + if err := utp.txns.update(tx, hash, func(utxn *UnconfirmedTransaction) error { + now := time.Now().UTC().UnixNano() + utxn.Received = now + utxn.Checked = now + utxn.IsValid = isValid + return nil + }); err != nil { + logger.Errorf("InjectTransaction update known txn failed: %v", err) + return false, nil, err + } + + return true, softErr, nil + } + + utx := NewUnconfirmedTransaction(txn) + utx.IsValid = isValid + + // add txn to index + if err := utp.txns.put(tx, &utx); err != nil { + logger.Errorf("InjectTransaction put new unconfirmed txn failed: %v", err) + return false, nil, err + } + + head, err := bc.Head(tx) + if err != nil { + logger.Errorf("InjectTransaction bc.Head() failed: %v", err) + return false, nil, err + } + + // update unconfirmed unspent + createdUnspents := coin.CreateUnspents(head.Head, txn) + if err := utp.unspent.put(tx, hash, createdUnspents); err != nil { + logger.Errorf("InjectTransaction put new unspent outputs: %v", err) + return false, nil, err + } + + return false, softErr, nil +} + +// AllRawTransactions returns underlying coin.Transactions +func (utp *UnconfirmedTransactionPool) AllRawTransactions(tx *dbutil.Tx) (coin.Transactions, error) { + utxns, err := utp.txns.getAll(tx) + if err != nil { + return nil, err + } + + txns := make(coin.Transactions, len(utxns)) + for i := range utxns { + txns[i] = utxns[i].Transaction + } + return txns, nil +} + +// Remove a single txn by hash +func (utp *UnconfirmedTransactionPool) removeTransaction(tx *dbutil.Tx, txHash cipher.SHA256) error { + if err := utp.txns.delete(tx, txHash); err != nil { + return err + } + + return utp.unspent.delete(tx, txHash) +} + +// RemoveTransactions remove transactions with dbutil.Tx +func (utp *UnconfirmedTransactionPool) RemoveTransactions(tx *dbutil.Tx, txHashes []cipher.SHA256) error { + for i := range txHashes { + if err := utp.removeTransaction(tx, txHashes[i]); err != nil { + return err + } + } + + return nil +} + +// Refresh checks all unconfirmed txns against the blockchain. +// If the transaction becomes invalid it is marked invalid. +// If the transaction becomes valid it is marked valid and is returned to the caller. +func (utp *UnconfirmedTransactionPool) Refresh(tx *dbutil.Tx, bc Blockchainer, distParams params.Distribution, verifyParams params.VerifyTxn) ([]cipher.SHA256, error) { + utxns, err := utp.txns.getAll(tx) + if err != nil { + return nil, err + } + + now := time.Now().UTC() + var nowValid []cipher.SHA256 + + for _, utxn := range utxns { + utxn.Checked = now.UnixNano() + + _, _, err := bc.VerifySingleTxnSoftHardConstraints(tx, utxn.Transaction, distParams, verifyParams, transaction.TxnSigned) + + switch err.(type) { + case transaction.ErrTxnViolatesSoftConstraint, transaction.ErrTxnViolatesHardConstraint: + utxn.IsValid = 0 + case nil: + if utxn.IsValid == 0 { + nowValid = append(nowValid, utxn.Transaction.Hash()) + } + utxn.IsValid = 1 + default: + return nil, err + } + + if err := utp.txns.put(tx, &utxn); err != nil { + return nil, err + } + } + + return nowValid, nil +} + +// RemoveInvalid checks all unconfirmed txns against the blockchain. +// If a transaction violates hard constraints it is removed from the pool. +// The transactions that were removed are returned. +func (utp *UnconfirmedTransactionPool) RemoveInvalid(tx *dbutil.Tx, bc Blockchainer) ([]cipher.SHA256, error) { + var removeUtxns []cipher.SHA256 + + utxns, err := utp.txns.getAll(tx) + if err != nil { + return nil, err + } + + for _, utxn := range utxns { + err := bc.VerifySingleTxnHardConstraints(tx, utxn.Transaction, transaction.TxnSigned) + if err != nil { + switch err.(type) { + case transaction.ErrTxnViolatesHardConstraint: + removeUtxns = append(removeUtxns, utxn.Transaction.Hash()) + default: + return nil, err + } + } + } + + if err := utp.RemoveTransactions(tx, removeUtxns); err != nil { + return nil, err + } + + return removeUtxns, nil +} + +// FilterKnown returns txn hashes with known ones removed +func (utp *UnconfirmedTransactionPool) FilterKnown(tx *dbutil.Tx, txns []cipher.SHA256) ([]cipher.SHA256, error) { + var unknown []cipher.SHA256 + + for _, h := range txns { + if hasKey, err := utp.txns.hasKey(tx, h); err != nil { + return nil, err + } else if !hasKey { + unknown = append(unknown, h) + } + } + + return unknown, nil +} + +// GetKnown returns all known transactions from the pool, given hashes to select +func (utp *UnconfirmedTransactionPool) GetKnown(tx *dbutil.Tx, txns []cipher.SHA256) (coin.Transactions, error) { + var known coin.Transactions + + for _, h := range txns { + if tx, err := utp.txns.get(tx, h); err != nil { + return nil, err + } else if tx != nil { + known = append(known, tx.Transaction) + } + } + + return known, nil +} + +// RecvOfAddresses returns unconfirmed receiving uxouts of addresses +func (utp *UnconfirmedTransactionPool) RecvOfAddresses(tx *dbutil.Tx, bh coin.BlockHeader, addrs []cipher.Address) (coin.AddressUxOuts, error) { + addrm := make(map[cipher.Address]struct{}, len(addrs)) + for _, addr := range addrs { + addrm[addr] = struct{}{} + } + + auxs := make(coin.AddressUxOuts, len(addrs)) + if err := utp.txns.forEach(tx, func(_ cipher.SHA256, txn UnconfirmedTransaction) error { + for i, o := range txn.Transaction.Out { + if _, ok := addrm[o.Address]; ok { + uxout, err := coin.CreateUnspent(bh, txn.Transaction, i) + if err != nil { + return err + } + + auxs[o.Address] = append(auxs[o.Address], uxout) + } + } + return nil + }); err != nil { + return nil, err + } + + return auxs, nil +} + +// txnOutputsForAddrs returns unspent outputs assigned to addresses in addrs, created by a set of transactions +func txnOutputsForAddrs(bh coin.BlockHeader, addrs []cipher.Address, txns []coin.Transaction) (coin.AddressUxOuts, error) { + if len(txns) == 0 || len(addrs) == 0 { + return nil, nil + } + + addrm := make(map[cipher.Address]struct{}, len(addrs)) + for _, addr := range addrs { + addrm[addr] = struct{}{} + } + + auxs := make(coin.AddressUxOuts, len(addrs)) + + for _, txn := range txns { + for i, o := range txn.Out { + if _, ok := addrm[o.Address]; ok { + uxout, err := coin.CreateUnspent(bh, txn, i) + if err != nil { + return nil, err + } + + auxs[o.Address] = append(auxs[o.Address], uxout) + } + } + } + + return auxs, nil +} + +// GetIncomingOutputs returns all predicted incoming outputs. +func (utp *UnconfirmedTransactionPool) GetIncomingOutputs(tx *dbutil.Tx, bh coin.BlockHeader) (coin.UxArray, error) { + var outs coin.UxArray + + if err := utp.txns.forEach(tx, func(_ cipher.SHA256, txn UnconfirmedTransaction) error { + outs = append(outs, coin.CreateUnspents(bh, txn.Transaction)...) + return nil + }); err != nil { + return nil, err + } + + return outs, nil +} + +// Get returns the unconfirmed transaction of given tx hash. +func (utp *UnconfirmedTransactionPool) Get(tx *dbutil.Tx, hash cipher.SHA256) (*UnconfirmedTransaction, error) { + return utp.txns.get(tx, hash) +} + +// GetFiltered returns all transactions that can pass the filter +func (utp *UnconfirmedTransactionPool) GetFiltered(tx *dbutil.Tx, filter func(UnconfirmedTransaction) bool) ([]UnconfirmedTransaction, error) { + var txns []UnconfirmedTransaction + + if err := utp.txns.forEach(tx, func(_ cipher.SHA256, txn UnconfirmedTransaction) error { + if filter(txn) { + txns = append(txns, txn) + } + return nil + }); err != nil { + logger.Errorf("GetFiltered error: %v", err) + return nil, err + } + + return txns, nil +} + +// GetHashes returns transaction hashes that can pass the filter +func (utp *UnconfirmedTransactionPool) GetHashes(tx *dbutil.Tx, filter func(UnconfirmedTransaction) bool) ([]cipher.SHA256, error) { + var hashes []cipher.SHA256 + + if err := utp.txns.forEach(tx, func(hash cipher.SHA256, txn UnconfirmedTransaction) error { + if filter(txn) { + hashes = append(hashes, hash) + } + return nil + }); err != nil { + logger.Errorf("GetHashes error: %v", err) + return nil, err + } + + return hashes, nil +} + +// ForEach iterate the pool with given callback function +func (utp *UnconfirmedTransactionPool) ForEach(tx *dbutil.Tx, f func(cipher.SHA256, UnconfirmedTransaction) error) error { + return utp.txns.forEach(tx, f) +} + +// GetUnspentsOfAddr returns unspent outputs of given address in unspent tx pool +func (utp *UnconfirmedTransactionPool) GetUnspentsOfAddr(tx *dbutil.Tx, addr cipher.Address) (coin.UxArray, error) { + return utp.unspent.getByAddr(tx, addr) +} + +// IsValid can be used as filter function +func IsValid(tx UnconfirmedTransaction) bool { + return tx.IsValid == 1 +} + +// All use as return all filter +func All(tx UnconfirmedTransaction) bool { + return true +} + +// Len returns the number of unconfirmed transactions +func (utp *UnconfirmedTransactionPool) Len(tx *dbutil.Tx) (uint64, error) { + return utp.txns.len(tx) +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/unconfirmed_transaction_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/unconfirmed_transaction_skyencoder.go new file mode 100644 index 000000000..cb5babc4e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/unconfirmed_transaction_skyencoder.go @@ -0,0 +1,417 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. +package visor + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeUnconfirmedTransaction computes the size of an encoded object of type UnconfirmedTransaction +func encodeSizeUnconfirmedTransaction(obj *UnconfirmedTransaction) uint64 { + i0 := uint64(0) + + // obj.Transaction.Length + i0 += 4 + + // obj.Transaction.Type + i0++ + + // obj.Transaction.InnerHash + i0 += 32 + + // obj.Transaction.Sigs + i0 += 4 + { + i1 := uint64(0) + + // x + i1 += 65 + + i0 += uint64(len(obj.Transaction.Sigs)) * i1 + } + + // obj.Transaction.In + i0 += 4 + { + i1 := uint64(0) + + // x + i1 += 32 + + i0 += uint64(len(obj.Transaction.In)) * i1 + } + + // obj.Transaction.Out + i0 += 4 + { + i1 := uint64(0) + + // x.Address.Version + i1++ + + // x.Address.Key + i1 += 20 + + // x.Coins + i1 += 8 + + // x.Hours + i1 += 8 + + i0 += uint64(len(obj.Transaction.Out)) * i1 + } + + // obj.Received + i0 += 8 + + // obj.Checked + i0 += 8 + + // obj.Announced + i0 += 8 + + // obj.IsValid + i0++ + + return i0 +} + +// encodeUnconfirmedTransaction encodes an object of type UnconfirmedTransaction to a buffer allocated to the exact size +// required to encode the object. +func encodeUnconfirmedTransaction(obj *UnconfirmedTransaction) ([]byte, error) { + n := encodeSizeUnconfirmedTransaction(obj) + buf := make([]byte, n) + + if err := encodeUnconfirmedTransactionToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeUnconfirmedTransactionToBuffer encodes an object of type UnconfirmedTransaction to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeUnconfirmedTransactionToBuffer(buf []byte, obj *UnconfirmedTransaction) error { + if uint64(len(buf)) < encodeSizeUnconfirmedTransaction(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.Transaction.Length + e.Uint32(obj.Transaction.Length) + + // obj.Transaction.Type + e.Uint8(obj.Transaction.Type) + + // obj.Transaction.InnerHash + e.CopyBytes(obj.Transaction.InnerHash[:]) + + // obj.Transaction.Sigs maxlen check + if len(obj.Transaction.Sigs) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Transaction.Sigs length check + if uint64(len(obj.Transaction.Sigs)) > math.MaxUint32 { + return errors.New("obj.Transaction.Sigs length exceeds math.MaxUint32") + } + + // obj.Transaction.Sigs length + e.Uint32(uint32(len(obj.Transaction.Sigs))) + + // obj.Transaction.Sigs + for _, x := range obj.Transaction.Sigs { + + // x + e.CopyBytes(x[:]) + + } + + // obj.Transaction.In maxlen check + if len(obj.Transaction.In) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Transaction.In length check + if uint64(len(obj.Transaction.In)) > math.MaxUint32 { + return errors.New("obj.Transaction.In length exceeds math.MaxUint32") + } + + // obj.Transaction.In length + e.Uint32(uint32(len(obj.Transaction.In))) + + // obj.Transaction.In + for _, x := range obj.Transaction.In { + + // x + e.CopyBytes(x[:]) + + } + + // obj.Transaction.Out maxlen check + if len(obj.Transaction.Out) > 65535 { + return encoder.ErrMaxLenExceeded + } + + // obj.Transaction.Out length check + if uint64(len(obj.Transaction.Out)) > math.MaxUint32 { + return errors.New("obj.Transaction.Out length exceeds math.MaxUint32") + } + + // obj.Transaction.Out length + e.Uint32(uint32(len(obj.Transaction.Out))) + + // obj.Transaction.Out + for _, x := range obj.Transaction.Out { + + // x.Address.Version + e.Uint8(x.Address.Version) + + // x.Address.Key + e.CopyBytes(x.Address.Key[:]) + + // x.Coins + e.Uint64(x.Coins) + + // x.Hours + e.Uint64(x.Hours) + + } + + // obj.Received + e.Int64(obj.Received) + + // obj.Checked + e.Int64(obj.Checked) + + // obj.Announced + e.Int64(obj.Announced) + + // obj.IsValid + e.Int8(obj.IsValid) + + return nil +} + +// decodeUnconfirmedTransaction decodes an object of type UnconfirmedTransaction from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeUnconfirmedTransaction(buf []byte, obj *UnconfirmedTransaction) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.Transaction.Length + i, err := d.Uint32() + if err != nil { + return 0, err + } + obj.Transaction.Length = i + } + + { + // obj.Transaction.Type + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Transaction.Type = i + } + + { + // obj.Transaction.InnerHash + if len(d.Buffer) < len(obj.Transaction.InnerHash) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transaction.InnerHash[:], d.Buffer[:len(obj.Transaction.InnerHash)]) + d.Buffer = d.Buffer[len(obj.Transaction.InnerHash):] + } + + { + // obj.Transaction.Sigs + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transaction.Sigs = make([]cipher.Sig, length) + + for z2 := range obj.Transaction.Sigs { + { + // obj.Transaction.Sigs[z2] + if len(d.Buffer) < len(obj.Transaction.Sigs[z2]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transaction.Sigs[z2][:], d.Buffer[:len(obj.Transaction.Sigs[z2])]) + d.Buffer = d.Buffer[len(obj.Transaction.Sigs[z2]):] + } + + } + } + } + + { + // obj.Transaction.In + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transaction.In = make([]cipher.SHA256, length) + + for z2 := range obj.Transaction.In { + { + // obj.Transaction.In[z2] + if len(d.Buffer) < len(obj.Transaction.In[z2]) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transaction.In[z2][:], d.Buffer[:len(obj.Transaction.In[z2])]) + d.Buffer = d.Buffer[len(obj.Transaction.In[z2]):] + } + + } + } + } + + { + // obj.Transaction.Out + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length > 65535 { + return 0, encoder.ErrMaxLenExceeded + } + + if length != 0 { + obj.Transaction.Out = make([]coin.TransactionOutput, length) + + for z2 := range obj.Transaction.Out { + { + // obj.Transaction.Out[z2].Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.Transaction.Out[z2].Address.Version = i + } + + { + // obj.Transaction.Out[z2].Address.Key + if len(d.Buffer) < len(obj.Transaction.Out[z2].Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.Transaction.Out[z2].Address.Key[:], d.Buffer[:len(obj.Transaction.Out[z2].Address.Key)]) + d.Buffer = d.Buffer[len(obj.Transaction.Out[z2].Address.Key):] + } + + { + // obj.Transaction.Out[z2].Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Transaction.Out[z2].Coins = i + } + + { + // obj.Transaction.Out[z2].Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.Transaction.Out[z2].Hours = i + } + + } + } + } + + { + // obj.Received + i, err := d.Int64() + if err != nil { + return 0, err + } + obj.Received = i + } + + { + // obj.Checked + i, err := d.Int64() + if err != nil { + return 0, err + } + obj.Checked = i + } + + { + // obj.Announced + i, err := d.Int64() + if err != nil { + return 0, err + } + obj.Announced = i + } + + { + // obj.IsValid + i, err := d.Int8() + if err != nil { + return 0, err + } + obj.IsValid = i + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeUnconfirmedTransactionExact decodes an object of type UnconfirmedTransaction from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeUnconfirmedTransactionExact(buf []byte, obj *UnconfirmedTransaction) error { + if n, err := decodeUnconfirmedTransaction(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/ux_array_skyencoder.go b/vendor/github.com/skycoin/skycoin/src/visor/ux_array_skyencoder.go new file mode 100644 index 000000000..8ff52a0d3 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/ux_array_skyencoder.go @@ -0,0 +1,215 @@ +// Code generated by github.com/skycoin/skyencoder. DO NOT EDIT. +package visor + +import ( + "errors" + "math" + + "github.com/skycoin/skycoin/src/cipher/encoder" + "github.com/skycoin/skycoin/src/coin" +) + +// encodeSizeUxArray computes the size of an encoded object of type UxArray +func encodeSizeUxArray(obj *UxArray) uint64 { + i0 := uint64(0) + + // obj.UxArray + i0 += 4 + { + i1 := uint64(0) + + // x.Head.Time + i1 += 8 + + // x.Head.BkSeq + i1 += 8 + + // x.Body.SrcTransaction + i1 += 32 + + // x.Body.Address.Version + i1++ + + // x.Body.Address.Key + i1 += 20 + + // x.Body.Coins + i1 += 8 + + // x.Body.Hours + i1 += 8 + + i0 += uint64(len(obj.UxArray)) * i1 + } + + return i0 +} + +// encodeUxArray encodes an object of type UxArray to a buffer allocated to the exact size +// required to encode the object. +func encodeUxArray(obj *UxArray) ([]byte, error) { + n := encodeSizeUxArray(obj) + buf := make([]byte, n) + + if err := encodeUxArrayToBuffer(buf, obj); err != nil { + return nil, err + } + + return buf, nil +} + +// encodeUxArrayToBuffer encodes an object of type UxArray to a []byte buffer. +// The buffer must be large enough to encode the object, otherwise an error is returned. +func encodeUxArrayToBuffer(buf []byte, obj *UxArray) error { + if uint64(len(buf)) < encodeSizeUxArray(obj) { + return encoder.ErrBufferUnderflow + } + + e := &encoder.Encoder{ + Buffer: buf[:], + } + + // obj.UxArray length check + if uint64(len(obj.UxArray)) > math.MaxUint32 { + return errors.New("obj.UxArray length exceeds math.MaxUint32") + } + + // obj.UxArray length + e.Uint32(uint32(len(obj.UxArray))) + + // obj.UxArray + for _, x := range obj.UxArray { + + // x.Head.Time + e.Uint64(x.Head.Time) + + // x.Head.BkSeq + e.Uint64(x.Head.BkSeq) + + // x.Body.SrcTransaction + e.CopyBytes(x.Body.SrcTransaction[:]) + + // x.Body.Address.Version + e.Uint8(x.Body.Address.Version) + + // x.Body.Address.Key + e.CopyBytes(x.Body.Address.Key[:]) + + // x.Body.Coins + e.Uint64(x.Body.Coins) + + // x.Body.Hours + e.Uint64(x.Body.Hours) + + } + + return nil +} + +// decodeUxArray decodes an object of type UxArray from a buffer. +// Returns the number of bytes used from the buffer to decode the object. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +func decodeUxArray(buf []byte, obj *UxArray) (uint64, error) { + d := &encoder.Decoder{ + Buffer: buf[:], + } + + { + // obj.UxArray + + ul, err := d.Uint32() + if err != nil { + return 0, err + } + + length := int(ul) + if length < 0 || length > len(d.Buffer) { + return 0, encoder.ErrBufferUnderflow + } + + if length != 0 { + obj.UxArray = make([]coin.UxOut, length) + + for z1 := range obj.UxArray { + { + // obj.UxArray[z1].Head.Time + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.UxArray[z1].Head.Time = i + } + + { + // obj.UxArray[z1].Head.BkSeq + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.UxArray[z1].Head.BkSeq = i + } + + { + // obj.UxArray[z1].Body.SrcTransaction + if len(d.Buffer) < len(obj.UxArray[z1].Body.SrcTransaction) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.UxArray[z1].Body.SrcTransaction[:], d.Buffer[:len(obj.UxArray[z1].Body.SrcTransaction)]) + d.Buffer = d.Buffer[len(obj.UxArray[z1].Body.SrcTransaction):] + } + + { + // obj.UxArray[z1].Body.Address.Version + i, err := d.Uint8() + if err != nil { + return 0, err + } + obj.UxArray[z1].Body.Address.Version = i + } + + { + // obj.UxArray[z1].Body.Address.Key + if len(d.Buffer) < len(obj.UxArray[z1].Body.Address.Key) { + return 0, encoder.ErrBufferUnderflow + } + copy(obj.UxArray[z1].Body.Address.Key[:], d.Buffer[:len(obj.UxArray[z1].Body.Address.Key)]) + d.Buffer = d.Buffer[len(obj.UxArray[z1].Body.Address.Key):] + } + + { + // obj.UxArray[z1].Body.Coins + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.UxArray[z1].Body.Coins = i + } + + { + // obj.UxArray[z1].Body.Hours + i, err := d.Uint64() + if err != nil { + return 0, err + } + obj.UxArray[z1].Body.Hours = i + } + + } + } + } + + return uint64(len(buf) - len(d.Buffer)), nil +} + +// decodeUxArrayExact decodes an object of type UxArray from a buffer. +// If the buffer not long enough to decode the object, returns encoder.ErrBufferUnderflow. +// If the buffer is longer than required to decode the object, returns encoder.ErrRemainingBytes. +func decodeUxArrayExact(buf []byte, obj *UxArray) error { + if n, err := decodeUxArray(buf, obj); err != nil { + return err + } else if n != uint64(len(buf)) { + return encoder.ErrRemainingBytes + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/visor.go b/vendor/github.com/skycoin/skycoin/src/visor/visor.go new file mode 100644 index 000000000..b67e8b72c --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/visor.go @@ -0,0 +1,2298 @@ +/* +Package visor manages the blockchain database and wallets + +All conceptual database operations must use a database transaction. +Callers of visor methods must ensure they do not make multiple calls without a transaction, +unless it is determined safe to do so. + +Wallet access is also gatewayed by visor, since the wallet data relates to the blockchain database. +Wallets are conceptually a second database. +*/ +package visor + +import ( + "errors" + "fmt" + + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/transaction" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/util/mathutil" + "github.com/skycoin/skycoin/src/util/timeutil" + "github.com/skycoin/skycoin/src/visor/blockdb" + "github.com/skycoin/skycoin/src/visor/dbutil" + "github.com/skycoin/skycoin/src/visor/historydb" + "github.com/skycoin/skycoin/src/wallet" +) + +var logger = logging.MustGetLogger("visor") + +// Visor manages the blockchain +type Visor struct { + Config Config + + startedAt time.Time + db *dbutil.DB + unconfirmed UnconfirmedTransactionPooler + blockchain Blockchainer + history Historyer + wallets *wallet.Service + txns transactionsGetter + tf wallet.TransactionsFinder +} + +// New creates a Visor for managing the blockchain database +func New(c Config, db *dbutil.DB, wltServ *wallet.Service) (*Visor, error) { + logger.Info("Creating new visor") + if c.IsBlockPublisher { + logger.Info("Visor running in block publisher mode") + } + + if err := c.Verify(); err != nil { + return nil, err + } + + logger.Infof("Coinhour burn factor for unconfirmed transactions is %d", c.UnconfirmedVerifyTxn.BurnFactor) + logger.Infof("Max transaction size for unconfirmed transactions is %d", c.UnconfirmedVerifyTxn.MaxTransactionSize) + logger.Infof("Max decimals for unconfirmed transactions is %d", c.UnconfirmedVerifyTxn.MaxDropletPrecision) + logger.Infof("Coinhour burn factor for transactions when creating blocks is %d", c.CreateBlockVerifyTxn.BurnFactor) + logger.Infof("Max transaction size for transactions when creating blocks is %d", c.CreateBlockVerifyTxn.MaxTransactionSize) + logger.Infof("Max decimals for transactions when creating blocks is %d", c.CreateBlockVerifyTxn.MaxDropletPrecision) + logger.Infof("Max block size is %d", c.MaxBlockTransactionsSize) + + if !db.IsReadOnly() { + if err := CreateBuckets(db); err != nil { + logger.WithError(err).Error("CreateBuckets failed") + return nil, err + } + } + + bc, err := NewBlockchain(db, BlockchainConfig{ + Pubkey: c.BlockchainPubkey, + Arbitrating: c.Arbitrating, + }) + if err != nil { + return nil, err + } + + history := historydb.New() + + if !db.IsReadOnly() { + if err := db.Update("build unspent indexes and init history", func(tx *dbutil.Tx) error { + headSeq, _, err := bc.HeadSeq(tx) + if err != nil { + return err + } + + if err := bc.Unspent().MaybeBuildIndexes(tx, headSeq); err != nil { + return err + } + + return initHistory(tx, bc, history) + }); err != nil { + return nil, err + } + } + + utp, err := NewUnconfirmedTransactionPool(db) + if err != nil { + return nil, err + } + + txns := transactionModel{ + history: history, + unconfirmed: utp, + blockchain: bc, + } + + v := &Visor{ + Config: c, + startedAt: time.Now(), + db: db, + blockchain: bc, + unconfirmed: utp, + history: history, + wallets: wltServ, + txns: &txns, + } + + v.tf = newTransactionsFinder(v) + + return v, nil +} + +// VisorConfig returns Config +func (vs *Visor) VisorConfig() Config { + return vs.Config +} + +// Init initializes starts the visor +func (vs *Visor) Init() error { + logger.Info("Visor init") + + if vs.db.IsReadOnly() { + return nil + } + + return vs.db.Update("visor init", func(tx *dbutil.Tx) error { + if err := vs.maybeCreateGenesisBlock(tx); err != nil { + return err + } + + removed, err := vs.unconfirmed.RemoveInvalid(tx, vs.blockchain) + if err != nil { + return err + } + logger.Infof("Removed %d invalid txns from pool", len(removed)) + + return nil + }) +} + +func initHistory(tx *dbutil.Tx, bc *Blockchain, history *historydb.HistoryDB) error { + logger.Info("Visor initHistory") + + shouldReset, err := history.NeedsReset(tx) + if err != nil { + return err + } + + if !shouldReset { + return nil + } + + logger.Info("Resetting historyDB") + + if err := history.Erase(tx); err != nil { + return err + } + + // Reparse the history up to the blockchain head + headSeq, _, err := bc.HeadSeq(tx) + if err != nil { + return err + } + + if err := parseHistoryTo(tx, history, bc, headSeq); err != nil { + logger.WithError(err).Error("parseHistoryTo failed") + return err + } + + return nil +} + +func parseHistoryTo(tx *dbutil.Tx, history *historydb.HistoryDB, bc *Blockchain, height uint64) error { + logger.Info("Visor parseHistoryTo") + + parsedBlockSeq, _, err := history.ParsedBlockSeq(tx) + if err != nil { + return err + } + + for i := uint64(0); i < height-parsedBlockSeq; i++ { + b, err := bc.GetSignedBlockBySeq(tx, parsedBlockSeq+i+1) + if err != nil { + return err + } + + if b == nil { + return fmt.Errorf("no block exists in depth: %d", parsedBlockSeq+i+1) + } + + if err := history.ParseBlock(tx, b.Block); err != nil { + return err + } + } + + return nil +} + +// maybeCreateGenesisBlock creates a genesis block if necessary +func (vs *Visor) maybeCreateGenesisBlock(tx *dbutil.Tx) error { + logger.Info("Visor maybeCreateGenesisBlock") + gb, err := vs.blockchain.GetGenesisBlock(tx) + if err != nil { + return err + } + if gb != nil { + return nil + } + + logger.Info("Create genesis block") + vs.GenesisPreconditions() + b, err := coin.NewGenesisBlock(vs.Config.GenesisAddress, vs.Config.GenesisCoinVolume, vs.Config.GenesisTimestamp) + if err != nil { + return err + } + + var sb coin.SignedBlock + // record the signature of genesis block + if vs.Config.IsBlockPublisher { + sb = vs.signBlock(*b) + logger.Infof("Genesis block signature=%s", sb.Sig.Hex()) + } else { + sb = coin.SignedBlock{ + Block: *b, + Sig: vs.Config.GenesisSignature, + } + } + + return vs.executeSignedBlock(tx, sb) +} + +// GenesisPreconditions panics if conditions for genesis block are not met +func (vs *Visor) GenesisPreconditions() { + if vs.Config.BlockchainSeckey != (cipher.SecKey{}) { + if vs.Config.BlockchainPubkey != cipher.MustPubKeyFromSecKey(vs.Config.BlockchainSeckey) { + logger.Panic("Cannot create genesis block. Invalid secret key for pubkey") + } + } +} + +// StartedAt returns the time that the visor was created +func (vs *Visor) StartedAt() time.Time { + return vs.startedAt +} + +// RefreshUnconfirmed checks unconfirmed txns against the blockchain and returns +// all transaction that turn to valid. +func (vs *Visor) RefreshUnconfirmed() ([]cipher.SHA256, error) { + var hashes []cipher.SHA256 + if err := vs.db.Update("RefreshUnconfirmed", func(tx *dbutil.Tx) error { + var err error + hashes, err = vs.unconfirmed.Refresh(tx, vs.blockchain, vs.Config.Distribution, vs.Config.UnconfirmedVerifyTxn) + return err + }); err != nil { + return nil, err + } + + return hashes, nil +} + +// RemoveInvalidUnconfirmed removes transactions that become permanently invalid +// (by violating hard constraints) from the pool. +// Returns the transaction hashes that were removed. +func (vs *Visor) RemoveInvalidUnconfirmed() ([]cipher.SHA256, error) { + var hashes []cipher.SHA256 + if err := vs.db.Update("RemoveInvalidUnconfirmed", func(tx *dbutil.Tx) error { + var err error + hashes, err = vs.unconfirmed.RemoveInvalid(tx, vs.blockchain) + return err + }); err != nil { + return nil, err + } + + return hashes, nil +} + +// createBlock creates a SignedBlock from pending transactions +func (vs *Visor) createBlock(tx *dbutil.Tx, when uint64) (coin.SignedBlock, error) { + if !vs.Config.IsBlockPublisher { + logger.Panic("Only a block publisher node can create blocks") + } + + // Gather all unconfirmed transactions + txns, err := vs.unconfirmed.AllRawTransactions(tx) + if err != nil { + return coin.SignedBlock{}, err + } + + b, err := vs.createBlockFromTxns(tx, txns, when) + if err != nil { + return coin.SignedBlock{}, err + } + + return vs.signBlock(b), nil +} + +// createBlockFromTxns creates a Block from specified set of transactions according to set of determinstic rules. +func (vs *Visor) createBlockFromTxns(tx *dbutil.Tx, txns coin.Transactions, when uint64) (coin.Block, error) { + if len(txns) == 0 { + return coin.Block{}, errors.New("No transactions") + } + + logger.Infof("unconfirmed pool has %d transactions pending", len(txns)) + + // Filter transactions that violate all constraints + var filteredTxns coin.Transactions + for _, txn := range txns { + if _, _, err := vs.blockchain.VerifySingleTxnSoftHardConstraints(tx, txn, vs.Config.Distribution, vs.Config.CreateBlockVerifyTxn, transaction.TxnSigned); err != nil { + switch err.(type) { + case transaction.ErrTxnViolatesHardConstraint, transaction.ErrTxnViolatesSoftConstraint: + logger.Warningf("Transaction %s violates constraints: %v", txn.Hash().Hex(), err) + default: + return coin.Block{}, err + } + } else { + filteredTxns = append(filteredTxns, txn) + } + } + + nRemoved := len(txns) - len(filteredTxns) + if nRemoved > 0 { + logger.Infof("CreateBlock ignored %d transactions violating constraints", nRemoved) + } + + txns = filteredTxns + + if len(txns) == 0 { + logger.Info("No transactions after filtering for constraint violations") + return coin.Block{}, errors.New("No transactions after filtering for constraint violations") + } + + head, err := vs.blockchain.Head(tx) + if err != nil { + return coin.Block{}, err + } + + // Sort them by highest fee per kilobyte + txns, err = coin.SortTransactions(txns, vs.blockchain.TransactionFee(tx, head.Time())) + if err != nil { + logger.Critical().WithError(err).Error("SortTransactions failed, no block can be made until the offending transaction is removed") + return coin.Block{}, err + } + + // Apply block size transaction limit + txns, err = txns.TruncateBytesTo(vs.Config.MaxBlockTransactionsSize) + if err != nil { + logger.Critical().WithError(err).Error("TruncateBytesTo failed, no block can be made until the offending transaction is removed") + return coin.Block{}, err + } + + if len(txns) > coin.MaxBlockTransactions { + txns = txns[:coin.MaxBlockTransactions] + } + + if len(txns) == 0 { + logger.Panic("TruncateBytesTo removed all transactions") + } + + logger.Infof("Creating new block with %d transactions, head time %d", len(txns), when) + + b, err := vs.blockchain.NewBlock(tx, txns, when) + if err != nil { + logger.Warningf("blockchain.NewBlock failed: %v", err) + return coin.Block{}, err + } + + return *b, nil +} + +// CreateAndExecuteBlock creates a SignedBlock from pending transactions and executes it +func (vs *Visor) CreateAndExecuteBlock() (coin.SignedBlock, error) { + var sb coin.SignedBlock + + err := vs.db.Update("CreateAndExecuteBlock", func(tx *dbutil.Tx) error { + var err error + sb, err = vs.createBlock(tx, uint64(time.Now().UTC().Unix())) + if err != nil { + return err + } + + return vs.executeSignedBlock(tx, sb) + }) + + return sb, err +} + +// CreateBlockFromTxns creates a Block from specified set of transactions according to set of determinstic rules. +func (vs *Visor) CreateBlockFromTxns(txns coin.Transactions, when uint64) (coin.Block, error) { + var sb coin.Block + + err := vs.db.Update("CreateBlockFromTxns", func(tx *dbutil.Tx) error { + var err error + if sb, err = vs.createBlockFromTxns(tx, txns, when); err != nil { + return err + } + + return nil + }) + + return sb, err +} + +// VerifyBlock verifies specified block against local copy of blockchain. +// Signature is not verified. +func (vs *Visor) VerifyBlock(b coin.SignedBlock) error { + return vs.db.View("VerifyBlock", func(tx *dbutil.Tx) error { + return vs.blockchain.VerifyBlock(tx, &b) + }) +} + +// ExecuteSignedBlock adds a block to the blockchain, or returns error. +// Blocks must be executed in sequence, and be signed by a block publisher node. +func (vs *Visor) ExecuteSignedBlock(b coin.SignedBlock) error { + return vs.db.Update("ExecuteSignedBlock", func(tx *dbutil.Tx) error { + return vs.executeSignedBlock(tx, b) + }) +} + +// ExecuteSignedBlockUnsafe adds block to the blockchain, or returns error. +// Blocks must be executed in sequence. Block signature is not verified. +func (vs *Visor) ExecuteSignedBlockUnsafe(b coin.SignedBlock) error { + return vs.db.Update("ExecuteSignedBlockUnsafe", func(tx *dbutil.Tx) error { + return vs.executeSignedBlockUnsafe(tx, b) + }) +} + +// executeSignedBlock adds a block to the blockchain, or returns error. +// Blocks must be executed in sequence, and be signed by a block publisher node. +func (vs *Visor) executeSignedBlock(tx *dbutil.Tx, b coin.SignedBlock) error { + if err := b.VerifySignature(vs.Config.BlockchainPubkey); err != nil { + return err + } + + return vs.executeSignedBlockUnsafe(tx, b) +} + +// executeSignedBlockUnsafe add a block to the blockchain, or returns error. +// Blocks must be executed in sequence. Block signature is not verified. +func (vs *Visor) executeSignedBlockUnsafe(tx *dbutil.Tx, b coin.SignedBlock) error { + if err := vs.blockchain.ExecuteBlock(tx, &b); err != nil { + return err + } + + // Remove the transactions in the Block from the unconfirmed pool + txnHashes := make([]cipher.SHA256, 0, len(b.Block.Body.Transactions)) + for _, txn := range b.Block.Body.Transactions { + txnHashes = append(txnHashes, txn.Hash()) + } + + if err := vs.unconfirmed.RemoveTransactions(tx, txnHashes); err != nil { + return err + } + + // Update the HistoryDB + return vs.history.ParseBlock(tx, b.Block) +} + +// signBlock signs a block for a block publisher node. Will panic if anything is invalid +func (vs *Visor) signBlock(b coin.Block) coin.SignedBlock { + if !vs.Config.IsBlockPublisher { + logger.Panic("Only a block publisher node can sign blocks") + } + + sig := cipher.MustSignHash(b.HashHeader(), vs.Config.BlockchainSeckey) + + return coin.SignedBlock{ + Block: b, + Sig: sig, + } +} + +/* + Return Data +*/ + +// GetAllUnspentOutputs returns all unspent outputs +func (vs *Visor) GetAllUnspentOutputs() (coin.UxArray, error) { + var ux []coin.UxOut + if err := vs.db.View("GetAllUnspentOutputs", func(tx *dbutil.Tx) error { + var err error + ux, err = vs.blockchain.Unspent().GetAll(tx) + return err + }); err != nil { + return nil, err + } + + return ux, nil +} + +// GetUnspentOutputs returns unspent outputs from the pool, queried by hashes. +// If any do not exist, ErrUnspentNotExist is returned +func (vs *Visor) GetUnspentOutputs(hashes []cipher.SHA256) (coin.UxArray, error) { + var outputs coin.UxArray + if err := vs.db.View("GetUnspentOutputs", func(tx *dbutil.Tx) error { + var err error + outputs, err = vs.blockchain.Unspent().GetArray(tx, hashes) + return err + }); err != nil { + return nil, err + } + + return outputs, nil +} + +// UnconfirmedOutgoingOutputs returns all outputs that would be spent by unconfirmed transactions +func (vs *Visor) UnconfirmedOutgoingOutputs() (coin.UxArray, error) { + var uxa coin.UxArray + + if err := vs.db.View("UnconfirmedOutgoingOutputs", func(tx *dbutil.Tx) error { + var err error + uxa, err = vs.unconfirmedOutgoingOutputs(tx) + return err + }); err != nil { + return nil, err + } + + return uxa, nil +} + +func (vs *Visor) unconfirmedOutgoingOutputs(tx *dbutil.Tx) (coin.UxArray, error) { + txns, err := vs.unconfirmed.AllRawTransactions(tx) + if err != nil { + return nil, err + } + + var inputs []cipher.SHA256 + for _, txn := range txns { + inputs = append(inputs, txn.In...) + } + + return vs.blockchain.Unspent().GetArray(tx, inputs) +} + +// UnconfirmedIncomingOutputs returns all outputs that would be created by unconfirmed transactions +func (vs *Visor) UnconfirmedIncomingOutputs() (coin.UxArray, error) { + var uxa coin.UxArray + + if err := vs.db.View("UnconfirmedIncomingOutputs", func(tx *dbutil.Tx) error { + var err error + uxa, err = vs.unconfirmedIncomingOutputs(tx) + return err + }); err != nil { + return nil, err + } + + return uxa, nil +} + +func (vs *Visor) unconfirmedIncomingOutputs(tx *dbutil.Tx) (coin.UxArray, error) { + head, err := vs.blockchain.Head(tx) + if err != nil { + return nil, err + } + + return vs.unconfirmed.GetIncomingOutputs(tx, head.Head) +} + +// GetSignedBlocksSince returns N signed blocks more recent than Seq. Does not return nil. +func (vs *Visor) GetSignedBlocksSince(seq, ct uint64) ([]coin.SignedBlock, error) { + var blocks []coin.SignedBlock + + if err := vs.db.View("GetSignedBlocksSince", func(tx *dbutil.Tx) error { + avail := uint64(0) + head, err := vs.blockchain.Head(tx) + if err != nil { + return err + } + + headSeq := head.Seq() + if headSeq > seq { + avail = headSeq - seq + } + if avail < ct { + ct = avail + } + if ct == 0 { + return nil + } + + blocks = make([]coin.SignedBlock, 0, ct) + for j := uint64(0); j < ct; j++ { + i := seq + 1 + j + b, err := vs.blockchain.GetSignedBlockBySeq(tx, i) + if err != nil { + return err + } + + blocks = append(blocks, *b) + } + + return nil + }); err != nil { + return nil, err + } + + return blocks, nil +} + +// HeadBkSeq returns the highest BkSeq we know, returns false in the 2nd return value +// if the blockchain is empty +func (vs *Visor) HeadBkSeq() (uint64, bool, error) { + var headSeq uint64 + var ok bool + + if err := vs.db.View("HeadBkSeq", func(tx *dbutil.Tx) error { + var err error + headSeq, ok, err = vs.blockchain.HeadSeq(tx) + return err + }); err != nil { + return 0, false, err + } + + return headSeq, ok, nil +} + +// GetBlockchainMetadata returns descriptive blockchain information +func (vs *Visor) GetBlockchainMetadata() (*BlockchainMetadata, error) { + var head *coin.SignedBlock + var unconfirmedLen, unspentsLen uint64 + + if err := vs.db.View("GetBlockchainMetadata", func(tx *dbutil.Tx) error { + var err error + head, err = vs.blockchain.Head(tx) + if err != nil { + return err + } + + unconfirmedLen, err = vs.unconfirmed.Len(tx) + if err != nil { + return err + } + + unspentsLen, err = vs.blockchain.Unspent().Len(tx) + return err + }); err != nil { + return nil, err + } + + return NewBlockchainMetadata(*head, unconfirmedLen, unspentsLen) +} + +// GetBlock returns a copy of the block at seq. Returns error if seq out of range +func (vs *Visor) GetBlock(seq uint64) (*coin.SignedBlock, error) { + var b *coin.SignedBlock + + if err := vs.db.View("GetBlock", func(tx *dbutil.Tx) error { + headSeq, ok, err := vs.blockchain.HeadSeq(tx) + if err != nil { + return err + } + + if !ok || seq > headSeq { + return errors.New("Block seq out of range") + } + + b, err = vs.blockchain.GetSignedBlockBySeq(tx, seq) + return err + }); err != nil { + return nil, err + } + + return b, nil +} + +// GetBlocks returns blocks matches seqs +func (vs *Visor) GetBlocks(seqs []uint64) ([]coin.SignedBlock, error) { + var blocks []coin.SignedBlock + + if err := vs.db.View("GetBlocks", func(tx *dbutil.Tx) error { + var err error + blocks, err = vs.blockchain.GetBlocks(tx, seqs) + return err + }); err != nil { + return nil, err + } + + return blocks, nil +} + +// GetBlocksVerbose returns blocks matches seqs along with verbose transaction input data +func (vs *Visor) GetBlocksVerbose(seqs []uint64) ([]coin.SignedBlock, [][][]TransactionInput, error) { + var blocks []coin.SignedBlock + var inputs [][][]TransactionInput + + if err := vs.db.View("GetBlocksVerbose", func(tx *dbutil.Tx) error { + var err error + blocks, inputs, err = vs.getBlocksVerbose(tx, func(tx *dbutil.Tx) ([]coin.SignedBlock, error) { + return vs.blockchain.GetBlocks(tx, seqs) + }) + return err + }); err != nil { + return nil, nil, err + } + + return blocks, inputs, nil +} + +// GetBlocksInRange returns multiple blocks between start and end, including both start and end. +// Returns the empty slice if unable to fulfill request. +func (vs *Visor) GetBlocksInRange(start, end uint64) ([]coin.SignedBlock, error) { + var blocks []coin.SignedBlock + + if err := vs.db.View("GetBlocksInRange", func(tx *dbutil.Tx) error { + var err error + blocks, err = vs.blockchain.GetBlocksInRange(tx, start, end) + return err + }); err != nil { + return nil, err + } + + return blocks, nil +} + +// GetBlocksInRangeVerbose returns multiple blocks between start and end, including both start and end. +// Also returns the verbose transaction input data for transactions in these blocks. +// Returns the empty slice if unable to fulfill request. +func (vs *Visor) GetBlocksInRangeVerbose(start, end uint64) ([]coin.SignedBlock, [][][]TransactionInput, error) { + var blocks []coin.SignedBlock + var inputs [][][]TransactionInput + + if err := vs.db.View("GetBlocksInRangeVerbose", func(tx *dbutil.Tx) error { + var err error + blocks, inputs, err = vs.getBlocksVerbose(tx, func(tx *dbutil.Tx) ([]coin.SignedBlock, error) { + return vs.blockchain.GetBlocksInRange(tx, start, end) + }) + return err + }); err != nil { + return nil, nil, err + } + + return blocks, inputs, nil +} + +// GetLastBlocks returns last N blocks +func (vs *Visor) GetLastBlocks(num uint64) ([]coin.SignedBlock, error) { + var blocks []coin.SignedBlock + + if err := vs.db.View("GetLastBlocks", func(tx *dbutil.Tx) error { + var err error + blocks, err = vs.blockchain.GetLastBlocks(tx, num) + return err + }); err != nil { + return nil, err + } + + return blocks, nil +} + +// GetLastBlocksVerbose returns last N blocks with verbose transaction input data +func (vs *Visor) GetLastBlocksVerbose(num uint64) ([]coin.SignedBlock, [][][]TransactionInput, error) { + var blocks []coin.SignedBlock + var inputs [][][]TransactionInput + + if err := vs.db.View("GetLastBlocksVerbose", func(tx *dbutil.Tx) error { + var err error + blocks, inputs, err = vs.getBlocksVerbose(tx, func(tx *dbutil.Tx) ([]coin.SignedBlock, error) { + return vs.blockchain.GetLastBlocks(tx, num) + }) + return err + }); err != nil { + return nil, nil, err + } + + return blocks, inputs, nil +} + +func (vs *Visor) getBlocksVerbose(tx *dbutil.Tx, getBlocks func(*dbutil.Tx) ([]coin.SignedBlock, error)) ([]coin.SignedBlock, [][][]TransactionInput, error) { + blocks, err := getBlocks(tx) + if err != nil { + return nil, nil, err + } + + if len(blocks) == 0 { + return nil, nil, nil + } + + inputs := make([][][]TransactionInput, len(blocks)) + for i, b := range blocks { + blockInputs, err := vs.getBlockInputs(tx, &b) + if err != nil { + return nil, nil, err + } + inputs[i] = blockInputs + } + + return blocks, inputs, nil +} + +// InjectForeignTransaction records a coin.Transaction to the UnconfirmedTransactionPool if the txn is not +// already in the blockchain. +// The bool return value is whether or not the transaction was already in the pool. +// If the transaction violates hard constraints, it is rejected, and error will not be nil. +// If the transaction only violates soft constraints, it is still injected, and the soft constraint violation is returned. +// This method is intended for transactions received over the network. +func (vs *Visor) InjectForeignTransaction(txn coin.Transaction) (bool, *transaction.ErrTxnViolatesSoftConstraint, error) { + var known bool + var softErr *transaction.ErrTxnViolatesSoftConstraint + + if err := vs.db.Update("InjectForeignTransaction", func(tx *dbutil.Tx) error { + var err error + known, softErr, err = vs.unconfirmed.InjectTransaction(tx, vs.blockchain, txn, vs.Config.Distribution, vs.Config.UnconfirmedVerifyTxn) + return err + }); err != nil { + return false, nil, err + } + + return known, softErr, nil +} + +// InjectUserTransaction records a coin.Transaction to the UnconfirmedTransactionPool if the txn is not +// already in the blockchain. +// The bool return value is whether or not the transaction was already in the pool. +// If the transaction violates hard or soft constraints, it is rejected, and error will not be nil. +func (vs *Visor) InjectUserTransaction(txn coin.Transaction) (bool, *coin.SignedBlock, coin.UxArray, error) { + var known bool + var head *coin.SignedBlock + var inputs coin.UxArray + + if err := vs.db.Update("InjectUserTransaction", func(tx *dbutil.Tx) error { + var err error + known, head, inputs, err = vs.InjectUserTransactionTx(tx, txn) + return err + }); err != nil { + return false, nil, nil, err + } + + return known, head, inputs, nil +} + +// InjectUserTransactionTx records a coin.Transaction to the UnconfirmedTransactionPool if the txn is not +// already in the blockchain. +// The bool return value is whether or not the transaction was already in the pool. +// If the transaction violates hard or soft constraints, it is rejected, and error will not be nil. +// This method is only exported for use by the daemon gateway's InjectBroadcastTransaction method. +func (vs *Visor) InjectUserTransactionTx(tx *dbutil.Tx, txn coin.Transaction) (bool, *coin.SignedBlock, coin.UxArray, error) { + if err := transaction.VerifySingleTxnUserConstraints(txn); err != nil { + return false, nil, nil, err + } + + head, inputs, err := vs.blockchain.VerifySingleTxnSoftHardConstraints(tx, txn, vs.Config.Distribution, params.UserVerifyTxn, transaction.TxnSigned) + if err != nil { + return false, nil, nil, err + } + + known, softErr, err := vs.unconfirmed.InjectTransaction(tx, vs.blockchain, txn, vs.Config.Distribution, params.UserVerifyTxn) + if softErr != nil { + logger.WithError(softErr).Warning("InjectUserTransaction vs.unconfirmed.InjectTransaction returned a softErr unexpectedly") + } + + return known, head, inputs, err +} + +// GetTransaction returns a Transaction by hash. +func (vs *Visor) GetTransaction(txnHash cipher.SHA256) (*Transaction, error) { + var txn *Transaction + + if err := vs.db.View("GetTransaction", func(tx *dbutil.Tx) error { + var err error + txn, err = vs.getTransaction(tx, txnHash) + return err + }); err != nil { + return nil, err + } + + return txn, nil +} + +// GetTransactionWithInputs returns a Transaction by hash, along with the unspent outputs of its inputs +func (vs *Visor) GetTransactionWithInputs(txnHash cipher.SHA256) (*Transaction, []TransactionInput, error) { + var txn *Transaction + var inputs []TransactionInput + + if err := vs.db.View("GetTransactionWithInputs", func(tx *dbutil.Tx) error { + var err error + txn, err = vs.getTransaction(tx, txnHash) + if err != nil { + return err + } + + if txn == nil { + return nil + } + + feeCalcTime, err := vs.getFeeCalcTimeForTransaction(tx, *txn) + if err != nil { + return err + } + if feeCalcTime == nil { + return nil + } + + inputs, err = vs.getTransactionInputs(tx, *feeCalcTime, txn.Transaction.In) + return err + }); err != nil { + return nil, nil, err + } + + return txn, inputs, nil +} + +func (vs *Visor) getTransaction(tx *dbutil.Tx, txnHash cipher.SHA256) (*Transaction, error) { + // Look in the unconfirmed pool + utxn, err := vs.unconfirmed.Get(tx, txnHash) + if err != nil { + return nil, err + } + + if utxn != nil { + return &Transaction{ + Transaction: utxn.Transaction, + Status: NewUnconfirmedTransactionStatus(), + Time: uint64(timeutil.NanoToTime(utxn.Received).Unix()), + }, nil + } + + htxn, err := vs.history.GetTransaction(tx, txnHash) + if err != nil { + return nil, err + } + + if htxn == nil { + return nil, nil + } + + headSeq, ok, err := vs.blockchain.HeadSeq(tx) + if err != nil { + return nil, err + } else if !ok { + return nil, errors.New("blockchain is empty but history has transactions") + } + + b, err := vs.blockchain.GetSignedBlockBySeq(tx, htxn.BlockSeq) + if err != nil { + return nil, err + } + + if b == nil { + return nil, fmt.Errorf("found no block in seq %v", htxn.BlockSeq) + } + + if headSeq < htxn.BlockSeq { + return nil, fmt.Errorf("blockchain head seq %d is earlier than history txn seq %d", headSeq, htxn.BlockSeq) + } + + confirms := headSeq - htxn.BlockSeq + 1 + return &Transaction{ + Transaction: htxn.Txn, + Status: NewConfirmedTransactionStatus(confirms, htxn.BlockSeq), + Time: b.Time(), + }, nil +} + +// TxFilter transaction filter type +type TxFilter interface { + // Returns whether the transaction is matched + Match(*Transaction) bool +} + +// BaseFilter is a helper struct for generating TxFilter. +type BaseFilter struct { + F func(tx *Transaction) bool +} + +// Match matches the filter based upon F +func (f BaseFilter) Match(tx *Transaction) bool { + return f.F(tx) +} + +// NewAddrsFilter collects all addresses related transactions. +func NewAddrsFilter(addrs []cipher.Address) TxFilter { + return AddrsFilter{Addrs: addrs} +} + +// AddrsFilter filters by addresses +type AddrsFilter struct { + Addrs []cipher.Address +} + +// Match implements the TxFilter interface, this actually won't be used, only the 'Addrs' member is used. +func (af AddrsFilter) Match(tx *Transaction) bool { return true } + +// ConfirmedTxFilter filters transactions base on whether they are confirmed. +type ConfirmedTxFilter struct { + Confirmed bool +} + +// Match implements the TxFilter interface, this actually won't be used, only the value of 'Confirmed' is used. +func (cf ConfirmedTxFilter) Match(tx *Transaction) bool { + return tx.Status.Confirmed == cf.Confirmed +} + +// NewConfirmedTxFilter collects the transaction whose 'Confirmed' status matchs the parameter passed in. +func NewConfirmedTxFilter(isConfirmed bool) TxFilter { + return ConfirmedTxFilter{Confirmed: isConfirmed} +} + +// GetTransactions returns transactions that can pass the filters with page. +// If no filters is provided, returns all transactions. +func (vs *Visor) GetTransactions(flts []TxFilter, order SortOrder, page *PageIndex) ([]Transaction, uint64, error) { + var txns []Transaction + var pages uint64 + if err := vs.db.View("GetTransactions", func(tx *dbutil.Tx) error { + var err error + txns, pages, err = vs.txns.GetTransactions(tx, flts, order, page) + return err + }); err != nil { + return nil, 0, err + } + + return txns, pages, nil +} + +// GetTransactionsWithInputs is the same as GetTransactions but also returns verbose transaction input data +func (vs *Visor) GetTransactionsWithInputs(flts []TxFilter, order SortOrder, page *PageIndex) ([]Transaction, [][]TransactionInput, uint64, error) { + var txns []Transaction + var inputs [][]TransactionInput + var pages uint64 + if err := vs.db.View("GetTransactionsWithInputs", func(tx *dbutil.Tx) error { + var err error + txns, pages, err = vs.txns.GetTransactions(tx, flts, order, page) + if err != nil { + return err + } + + inputs = make([][]TransactionInput, len(txns)) + for i, txn := range txns { + feeCalcTime, err := vs.getFeeCalcTimeForTransaction(tx, txn) + if err != nil { + return err + } + if feeCalcTime == nil { + continue + } + + txnInputs, err := vs.getTransactionInputs(tx, *feeCalcTime, txn.Transaction.In) + if err != nil { + return err + } + + inputs[i] = txnInputs + } + + return nil + }); err != nil { + return nil, nil, 0, err + } + + return txns, inputs, pages, nil +} + +// AddressBalances computes the total balance for cipher.Addresses and their coin.UxOuts +func (vs *Visor) AddressBalances(head *coin.SignedBlock, auxs coin.AddressUxOuts) (uint64, uint64, error) { + prevTime := head.Time() + var coins uint64 + var hours uint64 + for _, uxs := range auxs { + for _, ux := range uxs { + uxHours, err := ux.CoinHours(prevTime) + if err != nil { + return 0, 0, err + } + + coins, err = mathutil.AddUint64(coins, ux.Body.Coins) + if err != nil { + return 0, 0, err + } + + hours, err = mathutil.AddUint64(hours, uxHours) + if err != nil { + return 0, 0, err + } + } + } + return coins, hours, nil +} + +// GetUnconfirmedTransactions gets all confirmed transactions of specific addresses +func (vs *Visor) GetUnconfirmedTransactions(filter func(UnconfirmedTransaction) bool) ([]UnconfirmedTransaction, error) { + var txns []UnconfirmedTransaction + + if err := vs.db.View("GetUnconfirmedTransactions", func(tx *dbutil.Tx) error { + var err error + txns, err = vs.unconfirmed.GetFiltered(tx, filter) + return err + }); err != nil { + return nil, err + } + + return txns, nil +} + +// GetUnconfirmedTransactionsVerbose gets all confirmed transactions of specific addresses +func (vs *Visor) GetUnconfirmedTransactionsVerbose(filter func(UnconfirmedTransaction) bool) ([]UnconfirmedTransaction, [][]TransactionInput, error) { + var txns []UnconfirmedTransaction + var inputs [][]TransactionInput + + if err := vs.db.View("GetUnconfirmedTransactionsVerbose", func(tx *dbutil.Tx) error { + var err error + txns, err = vs.unconfirmed.GetFiltered(tx, filter) + if err != nil { + return err + } + + inputs, err = vs.getTransactionInputsForUnconfirmedTxns(tx, txns) + + return err + }); err != nil { + return nil, nil, err + } + + if len(txns) == 0 { + return nil, nil, nil + } + + return txns, inputs, nil +} + +// SendsToAddresses represents a filter that check if tx has output to the given addresses +func SendsToAddresses(addresses []cipher.Address) func(UnconfirmedTransaction) bool { + return func(tx UnconfirmedTransaction) (isRelated bool) { + for _, out := range tx.Transaction.Out { + for _, address := range addresses { + if out.Address == address { + isRelated = true + return + } + } + } + return + } +} + +// GetAllUnconfirmedTransactions returns all unconfirmed transactions +func (vs *Visor) GetAllUnconfirmedTransactions() ([]UnconfirmedTransaction, error) { + var txns []UnconfirmedTransaction + + if err := vs.db.View("GetAllUnconfirmedTransactions", func(tx *dbutil.Tx) error { + var err error + txns, err = vs.unconfirmed.GetFiltered(tx, All) + return err + }); err != nil { + return nil, err + } + + return txns, nil +} + +// GetAllUnconfirmedTransactionsVerbose returns all unconfirmed transactions with verbose transaction input data +func (vs *Visor) GetAllUnconfirmedTransactionsVerbose() ([]UnconfirmedTransaction, [][]TransactionInput, error) { + var txns []UnconfirmedTransaction + var inputs [][]TransactionInput + + if err := vs.db.View("GetAllUnconfirmedTransactionsVerbose", func(tx *dbutil.Tx) error { + var err error + txns, err = vs.unconfirmed.GetFiltered(tx, All) + if err != nil { + return err + } + + inputs, err = vs.getTransactionInputsForUnconfirmedTxns(tx, txns) + + return err + }); err != nil { + return nil, nil, err + } + + if len(txns) == 0 { + return nil, nil, nil + } + + return txns, inputs, nil +} + +// getTransactionInputsForUnconfirmedTxns returns ReadableTransactionInputs for a set of UnconfirmedTransactions +func (vs *Visor) getTransactionInputsForUnconfirmedTxns(tx *dbutil.Tx, txns []UnconfirmedTransaction) ([][]TransactionInput, error) { + if len(txns) == 0 { + return nil, nil + } + + // Use the current head time to calculate estimated coin hours of unconfirmed transactions + headTime, err := vs.blockchain.Time(tx) + if err != nil { + return nil, err + } + + inputs := make([][]TransactionInput, len(txns)) + for i, txn := range txns { + if len(txn.Transaction.In) == 0 { + logger.Critical().WithField("txid", txn.Transaction.Hash().Hex()).Warning("unconfirmed transaction has no inputs") + continue + } + + txnInputs, err := vs.getTransactionInputs(tx, headTime, txn.Transaction.In) + if err != nil { + return nil, err + } + + inputs[i] = txnInputs + } + + return inputs, nil +} + +// getFeeCalcTimeForTransaction returns the time against which a transaction's fee should be calculated. +// The genesis block has no inputs and thus no fee to calculate, so it returns nil. +// A confirmed transaction's fee was calculated from the previous block's head time, when it was executed. +// An unconfirmed transaction's fee will be calculated from the current block head time, once executed. +func (vs *Visor) getFeeCalcTimeForTransaction(tx *dbutil.Tx, txn Transaction) (*uint64, error) { + // The genesis block has no inputs to calculate, otherwise calculate the inputs + if txn.Status.BlockSeq == 0 && txn.Status.Confirmed { + return nil, nil + } + + feeCalcTime := uint64(0) + if txn.Status.Confirmed { + // Use the previous block head to calculate the coin hours + prevBlock, err := vs.blockchain.GetSignedBlockBySeq(tx, txn.Status.BlockSeq-1) + if err != nil { + return nil, err + } + + if prevBlock == nil { + err := fmt.Errorf("getFeeCalcTimeForTransaction: prevBlock seq=%d not found", txn.Status.BlockSeq-1) + logger.Critical().WithError(err).Error("getFeeCalcTimeForTransaction") + return nil, err + } + + feeCalcTime = prevBlock.Block.Head.Time + } else { + // Use the current block head to calculate the coin hours + var err error + feeCalcTime, err = vs.blockchain.Time(tx) + if err != nil { + return nil, err + } + } + + return &feeCalcTime, nil +} + +// GetAllValidUnconfirmedTxHashes returns all valid unconfirmed transaction hashes +func (vs *Visor) GetAllValidUnconfirmedTxHashes() ([]cipher.SHA256, error) { + var hashes []cipher.SHA256 + + if err := vs.db.View("GetAllValidUnconfirmedTxHashes", func(tx *dbutil.Tx) error { + var err error + hashes, err = vs.unconfirmed.GetHashes(tx, IsValid) + return err + }); err != nil { + return nil, err + } + + return hashes, nil +} + +// GetConfirmedTransaction returns transaction, which has been already included in some block. +func (vs *Visor) GetConfirmedTransaction(txnHash cipher.SHA256) (*coin.Transaction, error) { + var histTxn *historydb.Transaction + + if err := vs.db.View("GetConfirmedTransaction", func(tx *dbutil.Tx) error { + var err error + histTxn, err = vs.history.GetTransaction(tx, txnHash) + return err + }); err != nil { + return nil, err + } + + // Transaction not found. + if histTxn == nil { + return nil, nil + } + + return &histTxn.Txn, nil +} + +// GetTransactionsNum returns the total number of transactions that have been executed +func (vs *Visor) GetTransactionsNum() (uint64, error) { + var ( + num uint64 + err error + ) + + if err := vs.db.View("GetTransactionsNum", func(tx *dbutil.Tx) error { + num, err = vs.history.GetTransactionsNum(tx) + return err + }); err != nil { + return 0, err + } + + return num, nil +} + +// GetSignedBlockByHash get block of specific hash header, return nil on not found. +func (vs *Visor) GetSignedBlockByHash(hash cipher.SHA256) (*coin.SignedBlock, error) { + var sb *coin.SignedBlock + + if err := vs.db.View("GetSignedBlockByHash", func(tx *dbutil.Tx) error { + var err error + sb, err = vs.blockchain.GetSignedBlockByHash(tx, hash) + return err + }); err != nil { + return nil, err + } + + return sb, nil +} + +// GetSignedBlockBySeq get block of specific seq, return nil on not found. +func (vs *Visor) GetSignedBlockBySeq(seq uint64) (*coin.SignedBlock, error) { + var b *coin.SignedBlock + + if err := vs.db.View("GetSignedBlockBySeq", func(tx *dbutil.Tx) error { + var err error + b, err = vs.blockchain.GetSignedBlockBySeq(tx, seq) + return err + }); err != nil { + return nil, err + } + + return b, nil +} + +// GetSignedBlockByHashVerbose returns a coin.SignedBlock and its transactions' input data for a given block hash +func (vs *Visor) GetSignedBlockByHashVerbose(hash cipher.SHA256) (*coin.SignedBlock, [][]TransactionInput, error) { + var b *coin.SignedBlock + var inputs [][]TransactionInput + + if err := vs.db.View("GetSignedBlockByHashVerbose", func(tx *dbutil.Tx) error { + var err error + b, inputs, err = vs.getBlockVerbose(tx, func(tx *dbutil.Tx) (*coin.SignedBlock, error) { + return vs.blockchain.GetSignedBlockByHash(tx, hash) + }) + return err + }); err != nil { + return nil, nil, err + } + + return b, inputs, nil +} + +// GetSignedBlockBySeqVerbose returns a coin.SignedBlock and its transactions' input data for a given block hash +func (vs *Visor) GetSignedBlockBySeqVerbose(seq uint64) (*coin.SignedBlock, [][]TransactionInput, error) { + var b *coin.SignedBlock + var inputs [][]TransactionInput + + if err := vs.db.View("GetSignedBlockBySeqVerbose", func(tx *dbutil.Tx) error { + var err error + b, inputs, err = vs.getBlockVerbose(tx, func(tx *dbutil.Tx) (*coin.SignedBlock, error) { + return vs.blockchain.GetSignedBlockBySeq(tx, seq) + }) + return err + }); err != nil { + return nil, nil, err + } + + return b, inputs, nil +} + +func (vs *Visor) getBlockVerbose(tx *dbutil.Tx, getBlock func(*dbutil.Tx) (*coin.SignedBlock, error)) (*coin.SignedBlock, [][]TransactionInput, error) { + b, err := getBlock(tx) + if err != nil { + return nil, nil, err + } + + if b == nil { + return nil, nil, nil + } + + inputs, err := vs.getBlockInputs(tx, b) + if err != nil { + return nil, nil, err + } + + return b, inputs, nil +} + +func (vs *Visor) getBlockInputs(tx *dbutil.Tx, b *coin.SignedBlock) ([][]TransactionInput, error) { + if b == nil { + return nil, nil + } + + // The genesis block has no inputs to query or to calculate fees from + if b.Block.Head.BkSeq == 0 { + if len(b.Block.Body.Transactions) != 1 { + logger.Panicf("Genesis block should have only 1 transaction (has %d)", len(b.Block.Body.Transactions)) + } + + if len(b.Block.Body.Transactions[0].In) != 0 { + logger.Panic("Genesis block transaction should not have inputs") + } + + inputs := make([][]TransactionInput, 1) + + return inputs, nil + } + + // When a transaction was added to a block, its coinhour fee was + // calculated based upon the time of the head block. + // So we need to look at the previous block + prevBlock, err := vs.blockchain.GetSignedBlockBySeq(tx, b.Head.BkSeq-1) + if err != nil { + return nil, err + } + + if prevBlock == nil { + err := fmt.Errorf("getBlockInputs: prevBlock seq %d not found", b.Head.BkSeq-1) + logger.Critical().WithError(err).Error() + return nil, err + } + + var inputs [][]TransactionInput + for _, txn := range b.Block.Body.Transactions { + i, err := vs.getTransactionInputs(tx, prevBlock.Block.Head.Time, txn.In) + if err != nil { + return nil, err + } + + inputs = append(inputs, i) + } + + return inputs, nil +} + +// getTransactionInputs returns []TransactionInput for a given set of spent output hashes. +// feeCalcTime is the time against which to calculate the coinhours of the output +func (vs *Visor) getTransactionInputs(tx *dbutil.Tx, feeCalcTime uint64, inputs []cipher.SHA256) ([]TransactionInput, error) { + if len(inputs) == 0 { + err := errors.New("getTransactionInputs: inputs is empty only the genesis block transaction has no inputs, which shouldn't call this method") + logger.WithError(err).Error() + return nil, err + } + + uxOuts, err := vs.history.GetUxOuts(tx, inputs) + if err != nil { + logger.WithError(err).Error("getTransactionInputs GetUxOuts failed") + return nil, err + } + + ret := make([]TransactionInput, len(inputs)) + for i, o := range uxOuts { + r, err := NewTransactionInput(o.Out, feeCalcTime) + if err != nil { + logger.WithError(err).Error("getTransactionInputs NewTransactionInput failed") + return nil, err + } + ret[i] = r + } + + return ret, nil +} + +// GetHeadBlock gets head block. +func (vs Visor) GetHeadBlock() (*coin.SignedBlock, error) { + var b *coin.SignedBlock + + if err := vs.db.View("GetHeadBlock", func(tx *dbutil.Tx) error { + var err error + b, err = vs.blockchain.Head(tx) + return err + }); err != nil { + return nil, err + } + + return b, nil +} + +// GetHeadBlockTime returns the time of the head block. +func (vs Visor) GetHeadBlockTime() (uint64, error) { + var t uint64 + + if err := vs.db.View("GetHeadBlockTime", func(tx *dbutil.Tx) error { + var err error + t, err = vs.blockchain.Time(tx) + return err + }); err != nil { + return 0, err + } + + return t, nil +} + +// GetUxOutByID gets UxOut by hash id. +// return values: +// first: uxout of the provided id, return nil if does not exist, no error would be returned. +// second: current head block time +// third: error +func (vs Visor) GetUxOutByID(id cipher.SHA256) (*historydb.UxOut, uint64, error) { + var outs []historydb.UxOut + var headTime uint64 + + if err := vs.db.View("GetUxOutByID", func(tx *dbutil.Tx) error { + head, err := vs.blockchain.Head(tx) + if err != nil { + return err + } + + headTime = head.Time() + + outs, err = vs.history.GetUxOuts(tx, []cipher.SHA256{id}) + if err != nil { + return err + } + + return err + }); err != nil { + return nil, 0, err + } + + if len(outs) == 0 { + return nil, 0, nil + } + + return &outs[0], headTime, nil +} + +// GetSpentOutputsForAddresses gets all the spent outputs of a set of addresses +// return values: +// first: addresses related uxouts +// second: current head block time +// third: error +func (vs Visor) GetSpentOutputsForAddresses(addresses []cipher.Address) ([][]historydb.UxOut, uint64, error) { + out := make([][]historydb.UxOut, len(addresses)) + var headTime uint64 + + if err := vs.db.View("GetSpentOutputsForAddresses", func(tx *dbutil.Tx) error { + head, err := vs.blockchain.Head(tx) + if err != nil { + return err + } + + headTime = head.Time() + + for i, addr := range addresses { + addrUxOuts, err := vs.history.GetOutputsForAddress(tx, addr) + if err != nil { + return err + } + + out[i] = addrUxOuts + } + + return nil + }); err != nil { + return nil, 0, err + } + + return out, headTime, nil +} + +// RecvOfAddresses returns unconfirmed receiving uxouts of addresses +func (vs *Visor) RecvOfAddresses(addrs []cipher.Address) (coin.AddressUxOuts, error) { + var uxouts coin.AddressUxOuts + + if err := vs.db.View("RecvOfAddresses", func(tx *dbutil.Tx) error { + head, err := vs.blockchain.Head(tx) + if err != nil { + return err + } + + uxouts, err = vs.unconfirmed.RecvOfAddresses(tx, head.Head, addrs) + return err + }); err != nil { + return nil, err + } + + return uxouts, nil +} + +// GetIncomingOutputs returns all predicted outputs that are in pending tx pool +func (vs *Visor) GetIncomingOutputs() (coin.UxArray, error) { + var uxa coin.UxArray + + if err := vs.db.View("GetIncomingOutputs", func(tx *dbutil.Tx) error { + head, err := vs.blockchain.Head(tx) + if err != nil { + return err + } + + uxa, err = vs.unconfirmed.GetIncomingOutputs(tx, head.Head) + return err + }); err != nil { + return nil, err + } + + return uxa, nil +} + +// GetUnconfirmedTxn gets an unconfirmed transaction from the DB +func (vs *Visor) GetUnconfirmedTxn(hash cipher.SHA256) (*UnconfirmedTransaction, error) { + var txn *UnconfirmedTransaction + + if err := vs.db.View("GetUnconfirmedTxn", func(tx *dbutil.Tx) error { + var err error + txn, err = vs.unconfirmed.Get(tx, hash) + return err + }); err != nil { + return nil, err + } + + return txn, nil +} + +// FilterKnownUnconfirmed returns unconfirmed txn hashes with known ones removed +func (vs *Visor) FilterKnownUnconfirmed(txns []cipher.SHA256) ([]cipher.SHA256, error) { + var hashes []cipher.SHA256 + + if err := vs.db.View("FilterKnownUnconfirmed", func(tx *dbutil.Tx) error { + var err error + hashes, err = vs.unconfirmed.FilterKnown(tx, txns) + return err + }); err != nil { + return nil, err + } + + return hashes, nil +} + +// GetKnownUnconfirmed returns unconfirmed txn hashes with known ones removed +func (vs *Visor) GetKnownUnconfirmed(txns []cipher.SHA256) (coin.Transactions, error) { + var hashes coin.Transactions + + if err := vs.db.View("GetKnownUnconfirmed", func(tx *dbutil.Tx) error { + var err error + hashes, err = vs.unconfirmed.GetKnown(tx, txns) + return err + }); err != nil { + return nil, err + } + + return hashes, nil +} + +// UnconfirmedSpendsOfAddresses returns all unconfirmed coin.UxOut spends of addresses +func (vs *Visor) UnconfirmedSpendsOfAddresses(addrs []cipher.Address) (coin.AddressUxOuts, error) { + var outs coin.AddressUxOuts + + if err := vs.db.View("UnconfirmedSpendsOfAddresses", func(tx *dbutil.Tx) error { + var err error + outs, err = vs.unconfirmedSpendsOfAddresses(tx, addrs) + return err + }); err != nil { + return nil, err + } + + return outs, nil +} + +// unconfirmedSpendsOfAddresses returns all unconfirmed coin.UxOut spends of addresses +func (vs *Visor) unconfirmedSpendsOfAddresses(tx *dbutil.Tx, addrs []cipher.Address) (coin.AddressUxOuts, error) { + txns, err := vs.unconfirmed.AllRawTransactions(tx) + if err != nil { + return nil, err + } + + var inputs []cipher.SHA256 + for _, txn := range txns { + inputs = append(inputs, txn.In...) + } + + uxa, err := vs.blockchain.Unspent().GetArray(tx, inputs) + if err != nil { + return nil, err + } + + outs := make(coin.AddressUxOuts, len(addrs)) + + addrm := make(map[cipher.Address]struct{}, len(addrs)) + for _, addr := range addrs { + addrm[addr] = struct{}{} + } + + for _, ux := range uxa { + if _, ok := addrm[ux.Body.Address]; ok { + outs[ux.Body.Address] = append(outs[ux.Body.Address], ux) + } + } + + return outs, nil +} + +// SetTransactionsAnnounced updates announced time of specific tx +func (vs *Visor) SetTransactionsAnnounced(hashes map[cipher.SHA256]int64) error { + if len(hashes) == 0 { + return nil + } + + return vs.db.Update("SetTransactionsAnnounced", func(tx *dbutil.Tx) error { + return vs.unconfirmed.SetTransactionsAnnounced(tx, hashes) + }) +} + +// GetBalanceOfAddresses returns balance pairs of given addreses +func (vs Visor) GetBalanceOfAddresses(addrs []cipher.Address) ([]wallet.BalancePair, error) { + if len(addrs) == 0 { + return nil, nil + } + + auxs := make(coin.AddressUxOuts, len(addrs)) + recvUxs := make(coin.AddressUxOuts, len(addrs)) + var uxa coin.UxArray + var head *coin.SignedBlock + + if err := vs.db.View("GetBalanceOfAddresses", func(tx *dbutil.Tx) error { + var err error + head, err = vs.blockchain.Head(tx) + if err != nil { + return err + } + + // Get all transactions from the unconfirmed pool + txns, err := vs.unconfirmed.AllRawTransactions(tx) + if err != nil { + return err + } + + // Create predicted unspent outputs from the unconfirmed transactions + recvUxs, err = txnOutputsForAddrs(head.Head, addrs, txns) + if err != nil { + return err + } + + var inputs []cipher.SHA256 + for _, txn := range txns { + inputs = append(inputs, txn.In...) + } + + // Get unspents for the inputs being spent + uxa, err = vs.blockchain.Unspent().GetArray(tx, inputs) + if err != nil { + return fmt.Errorf("GetArray failed when checking addresses balance: %v", err) + } + + // Get unspents owned by the addresses + auxs, err = vs.blockchain.Unspent().GetUnspentsOfAddrs(tx, addrs) + if err != nil { + return fmt.Errorf("GetUnspentsOfAddrs failed when checking addresses balance: %v", err) + } + + return nil + }); err != nil { + return nil, err + } + + // Build all unconfirmed transaction inputs that are associated with the addresses + spendUxs := make(coin.AddressUxOuts, len(addrs)) + + addrm := make(map[cipher.Address]struct{}, len(addrs)) + for _, addr := range addrs { + addrm[addr] = struct{}{} + } + + for _, ux := range uxa { + if _, ok := addrm[ux.Body.Address]; ok { + spendUxs[ux.Body.Address] = append(spendUxs[ux.Body.Address], ux) + } + } + + var bps []wallet.BalancePair + + headTime := head.Time() + for _, addr := range addrs { + uxs, ok := auxs[addr] + if !ok { + bps = append(bps, wallet.BalancePair{}) + continue + } + + outUxs := spendUxs[addr] + inUxs := recvUxs[addr] + predictedUxs := uxs.Sub(outUxs).Add(inUxs) + + coins, err := uxs.Coins() + if err != nil { + return nil, fmt.Errorf("uxs.Coins failed: %v", err) + } + + coinHours, err := uxs.CoinHours(headTime) + if err != nil { + switch err { + case coin.ErrAddEarnedCoinHoursAdditionOverflow: + coinHours = 0 + default: + return nil, fmt.Errorf("uxs.CoinHours failed: %v", err) + } + } + + pcoins, err := predictedUxs.Coins() + if err != nil { + return nil, fmt.Errorf("predictedUxs.Coins failed: %v", err) + } + + pcoinHours, err := predictedUxs.CoinHours(headTime) + if err != nil { + switch err { + case coin.ErrAddEarnedCoinHoursAdditionOverflow: + coinHours = 0 + default: + return nil, fmt.Errorf("predictedUxs.CoinHours failed: %v", err) + } + } + + bp := wallet.BalancePair{ + Confirmed: wallet.Balance{ + Coins: coins, + Hours: coinHours, + }, + Predicted: wallet.Balance{ + Coins: pcoins, + Hours: pcoinHours, + }, + } + + bps = append(bps, bp) + } + + return bps, nil +} + +// GetUnspentsOfAddrs returns unspent outputs of multiple addresses +func (vs *Visor) GetUnspentsOfAddrs(addrs []cipher.Address) (coin.AddressUxOuts, error) { + var uxa coin.AddressUxOuts + + if err := vs.db.View("GetUnspentsOfAddrs", func(tx *dbutil.Tx) error { + var err error + uxa, err = vs.blockchain.Unspent().GetUnspentsOfAddrs(tx, addrs) + return err + }); err != nil { + return nil, err + } + + return uxa, nil +} + +// VerifyTxnVerbose verifies a transaction, it returns transaction's input uxouts, whether the +// transaction is confirmed, and error if any +func (vs *Visor) VerifyTxnVerbose(txn *coin.Transaction, signed transaction.TxnSignedFlag) ([]TransactionInput, bool, error) { + var uxa coin.UxArray + var isTxnConfirmed bool + var feeCalcTime uint64 + + verifyErr := vs.db.View("VerifyTxnVerbose", func(tx *dbutil.Tx) error { + head, err := vs.blockchain.Head(tx) + if err != nil { + return err + } + + uxa, err = vs.blockchain.Unspent().GetArray(tx, txn.In) + switch e := err.(type) { + case nil: + // For unconfirmed transactions, use the blockchain head time to calculate hours + feeCalcTime = head.Time() + + case blockdb.ErrUnspentNotExist: + // Gets uxouts of txn.In from historydb + outs, err := vs.history.GetUxOuts(tx, txn.In) + if err != nil { + return err + } + + if len(outs) == 0 { + err = fmt.Errorf("transaction input of %s does not exist in either unspent pool or historydb", e.UxID) + return transaction.NewErrTxnViolatesHardConstraint(err) + } + + uxa = coin.UxArray{} + for _, out := range outs { + uxa = append(uxa, out.Out) + } + + // Checks if the transaction is confirmed + txnHash := txn.Hash() + historyTxn, err := vs.history.GetTransaction(tx, txnHash) + if err != nil { + return fmt.Errorf("get transaction of %v from historydb failed: %v", txnHash, err) + } + + if historyTxn != nil { + // Transaction is confirmed + isTxnConfirmed = true + } + + // For confirmed transactions, use the previous block time to calculate hours and fees, + // except for the genesis block which has no previous block and has no inputs nor fees. + feeCalcTime = 0 + if historyTxn.BlockSeq > 0 { + if isTxnConfirmed { + prevBlock, err := vs.blockchain.GetSignedBlockBySeq(tx, historyTxn.BlockSeq-1) + if err != nil { + return err + } + if prevBlock == nil { + return fmt.Errorf("VerifyTxnVerbose: previous block seq=%d not found", historyTxn.BlockSeq-1) + } + + feeCalcTime = prevBlock.Block.Head.Time + } + } + + return nil + default: + return err + } + + if err := transaction.VerifySingleTxnUserConstraints(*txn); err != nil { + return err + } + + if err := transaction.VerifySingleTxnSoftConstraints(*txn, feeCalcTime, uxa, vs.Config.Distribution, params.UserVerifyTxn); err != nil { + return err + } + + return transaction.VerifySingleTxnHardConstraints(*txn, head.Head, uxa, signed) + }) + + // If we were able to query the inputs, return the verbose inputs to the caller + // even if the transaction failed validation + var inputs []TransactionInput + if len(uxa) != 0 && feeCalcTime != 0 { + var err error + inputs, err = NewTransactionInputs(uxa, feeCalcTime) + if err != nil { + return nil, isTxnConfirmed, err + } + } + + return inputs, isTxnConfirmed, verifyErr +} + +// AddressCount returns the total number of addresses with unspents +func (vs *Visor) AddressCount() (uint64, error) { + var count uint64 + if err := vs.db.View("AddressCount", func(tx *dbutil.Tx) error { + var err error + count, err = vs.blockchain.Unspent().AddressCount(tx) + return err + }); err != nil { + return 0, err + } + + return count, nil +} + +// GetVerboseTransactionsForAddress returns verbose transaction data for a given address +// func (vs *Visor) GetVerboseTransactionsForAddress(a cipher.Address) ([]Transaction, [][]TransactionInput, error) { +// var txns []Transaction +// var inputs [][]TransactionInput + +// if err := vs.db.View("GetVerboseTransactionsForAddress", func(tx *dbutil.Tx) error { +// var err error +// txns, _, err = vs.getTransactionsForAddresses(tx, []cipher.Address{a}, nil) +// if err != nil { +// logger.Errorf("GetVerboseTransactionsForAddress: vs.GetTransactionsForAddress failed: %v", err) +// return err +// } + +// if len(txns) == 0 { +// return nil +// } + +// head, err := vs.blockchain.Head(tx) +// if err != nil { +// logger.Errorf("GetVerboseTransactionsForAddress: vs.blockchain.Head failed: %v", err) +// return err +// } + +// inputs = make([][]TransactionInput, len(txns)) + +// for i, txn := range txns { +// // If the txn is confirmed, use the time of the block previous +// // to the block in which the transaction was executed, +// // else use the head time for unconfirmed blocks. +// t := head.Time() +// if txn.Status.Confirmed && txn.Status.BlockSeq > 0 { +// prevBlock, err := vs.blockchain.GetSignedBlockBySeq(tx, txn.Status.BlockSeq-1) +// if err != nil { +// return err +// } + +// if prevBlock == nil { +// return fmt.Errorf("GetVerboseTransactionsForAddress prevBlock seq=%d missing", txn.Status.BlockSeq-1) +// } + +// t = prevBlock.Block.Head.Time +// } + +// txnInputs := make([]TransactionInput, len(txn.Transaction.In)) +// for j, inputID := range txn.Transaction.In { +// uxOuts, err := vs.history.GetUxOuts(tx, []cipher.SHA256{inputID}) +// if err != nil { +// logger.Errorf("GetVerboseTransactionsForAddress: vs.history.GetUxOuts failed: %v", err) +// return err +// } +// if len(uxOuts) == 0 { +// err := fmt.Errorf("uxout of %v does not exist in history db", inputID.Hex()) +// logger.Critical().Error(err) +// return err +// } + +// input, err := NewTransactionInput(uxOuts[0].Out, t) +// if err != nil { +// logger.Errorf("GetVerboseTransactionsForAddress: NewTransactionInput failed: %v", err) +// return err +// } + +// txnInputs[j] = input +// } + +// inputs[i] = txnInputs +// } + +// return nil +// }); err != nil { +// return nil, nil, err +// } + +// return txns, inputs, nil +// } + +// OutputsFilter used as optional arguments in GetUnspentOutputs method +type OutputsFilter func(outputs coin.UxArray) coin.UxArray + +// FbyAddressesNotIncluded filters the unspent outputs that are not owned by the addresses +func FbyAddressesNotIncluded(addrs []cipher.Address) OutputsFilter { + return func(outputs coin.UxArray) coin.UxArray { + addrMatch := coin.UxArray{} + addrMap := newAddrSet(addrs) + + for _, u := range outputs { + if _, ok := addrMap[u.Body.Address]; !ok { + addrMatch = append(addrMatch, u) + } + } + return addrMatch + } +} + +// FbyAddresses filters the unspent outputs that owned by the addresses +func FbyAddresses(addrs []cipher.Address) OutputsFilter { + return func(outputs coin.UxArray) coin.UxArray { + addrMatch := coin.UxArray{} + addrMap := newAddrSet(addrs) + + for _, u := range outputs { + if _, ok := addrMap[u.Body.Address]; ok { + addrMatch = append(addrMatch, u) + } + } + return addrMatch + } +} + +// FbyHashes filters the unspent outputs that have hashes matched. +func FbyHashes(hashes []cipher.SHA256) OutputsFilter { + return func(outputs coin.UxArray) coin.UxArray { + hsMatch := coin.UxArray{} + hsMap := newSHA256Set(hashes) + + for _, u := range outputs { + if _, ok := hsMap[u.Hash()]; ok { + hsMatch = append(hsMatch, u) + } + } + return hsMatch + } +} + +func newAddrSet(keys []cipher.Address) map[cipher.Address]struct{} { + s := make(map[cipher.Address]struct{}, len(keys)) + for _, k := range keys { + s[k] = struct{}{} + } + return s +} + +// newSHA256Set returns a map-based set for string lookup +func newSHA256Set(keys []cipher.SHA256) map[cipher.SHA256]struct{} { + s := make(map[cipher.SHA256]struct{}, len(keys)) + for _, k := range keys { + s[k] = struct{}{} + } + return s +} + +// GetUnspentOutputsSummary gets unspent outputs and returns the filtered results, +// Note: all filters will be executed as the pending sequence in 'AND' mode. +func (vs *Visor) GetUnspentOutputsSummary(filters []OutputsFilter) (*UnspentOutputsSummary, error) { + var confirmedOutputs []coin.UxOut + var outgoingOutputs coin.UxArray + var incomingOutputs coin.UxArray + var head *coin.SignedBlock + + if err := vs.db.View("GetUnspentOutputsSummary", func(tx *dbutil.Tx) error { + var err error + head, err = vs.blockchain.Head(tx) + if err != nil { + return fmt.Errorf("vs.blockchain.Head failed: %v", err) + } + + confirmedOutputs, err = vs.blockchain.Unspent().GetAll(tx) + if err != nil { + return fmt.Errorf("vs.blockchain.Unspent().GetAll failed: %v", err) + } + + outgoingOutputs, err = vs.unconfirmedOutgoingOutputs(tx) + if err != nil { + return fmt.Errorf("vs.unconfirmedOutgoingOutputs failed: %v", err) + } + + incomingOutputs, err = vs.unconfirmedIncomingOutputs(tx) + if err != nil { + return fmt.Errorf("vs.unconfirmedIncomingOutputs failed: %v", err) + } + + return nil + }); err != nil { + return nil, err + } + + for _, flt := range filters { + confirmedOutputs = flt(confirmedOutputs) + outgoingOutputs = flt(outgoingOutputs) + incomingOutputs = flt(incomingOutputs) + } + + confirmed, err := NewUnspentOutputs(confirmedOutputs, head.Time()) + if err != nil { + return nil, err + } + + outgoing, err := NewUnspentOutputs(outgoingOutputs, head.Time()) + if err != nil { + return nil, err + } + + incoming, err := NewUnspentOutputs(incomingOutputs, head.Time()) + if err != nil { + return nil, err + } + + return &UnspentOutputsSummary{ + HeadBlock: head, + Confirmed: confirmed, + Outgoing: outgoing, + Incoming: incoming, + }, nil +} + +// GetRichlist returns a Richlist +func (vs *Visor) GetRichlist(includeDistribution bool) (Richlist, error) { + rbOuts, err := vs.GetUnspentOutputsSummary(nil) + if err != nil { + return nil, err + } + + // Build a map from addresses to total coins held + allAccounts := map[cipher.Address]uint64{} + for _, out := range rbOuts.Confirmed { + if _, ok := allAccounts[out.Body.Address]; ok { + var err error + allAccounts[out.Body.Address], err = mathutil.AddUint64(allAccounts[out.Body.Address], out.Body.Coins) + if err != nil { + return nil, err + } + } else { + allAccounts[out.Body.Address] = out.Body.Coins + } + } + + lockedAddrs := vs.Config.Distribution.LockedAddressesDecoded() + addrsMap := make(map[cipher.Address]struct{}, len(lockedAddrs)) + for _, a := range lockedAddrs { + addrsMap[a] = struct{}{} + } + + richlist, err := NewRichlist(allAccounts, addrsMap) + if err != nil { + return nil, err + } + + if !includeDistribution { + unlockedAddrs := vs.Config.Distribution.UnlockedAddressesDecoded() + for _, a := range unlockedAddrs { + addrsMap[a] = struct{}{} + } + richlist = richlist.FilterAddresses(addrsMap) + } + + return richlist, nil +} + +// WithUpdateTx executes a function inside of a db.Update transaction. +// This is exported for use by the daemon gateway's InjectBroadcastTransaction method. +// Do not use it for other purposes. +func (vs *Visor) WithUpdateTx(name string, f func(tx *dbutil.Tx) error) error { + return vs.db.Update(name, func(tx *dbutil.Tx) error { + return f(tx) + }) +} + +// ScanWalletAddresses scan addresses ahead in a wallet to find addresses with transactions +func (vs *Visor) ScanWalletAddresses(wltID string, password []byte, num uint64) ([]cipher.Address, error) { + return vs.wallets.ScanAddresses(wltID, password, num, vs.tf) +} + +// TransactionsFinder returns a transactions finder +func (vs *Visor) TransactionsFinder() wallet.TransactionsFinder { + return newTransactionsFinder(vs) +} + +// TransactionsFinder implements the wallet.TransactionsFinder interface +type TransactionsFinder struct { + db *dbutil.DB + history Historyer + unconfirmed UnconfirmedTransactionPooler +} + +func newTransactionsFinder(v *Visor) *TransactionsFinder { + return &TransactionsFinder{ + db: v.db, + history: v.history, + unconfirmed: v.unconfirmed, + } +} + +// AddressesActivity implements the methods of wallet.TransactionsFinder interface +func (tf *TransactionsFinder) AddressesActivity(addrs []cipher.Addresser) ([]bool, error) { + if len(addrs) == 0 { + return nil, nil + } + + skyAddrs := make([]cipher.Address, len(addrs)) + // convert to skycoin addresses + for i, a := range addrs { + addr, ok := a.(cipher.Address) + if !ok { + return nil, errors.New("invalid skycoin address") + } + skyAddrs[i] = addr + } + + active := make([]bool, len(addrs)) + addrsMap := make(map[cipher.Address]int, len(addrs)) + for i, a := range skyAddrs { + addrsMap[a] = i + } + + if len(addrsMap) != len(addrs) { + return nil, errors.New("duplicates addresses not allowed") + } + + if err := tf.db.View("AddressActivity", func(tx *dbutil.Tx) error { + // Check if the addresses appear in the blockchain + // scan from the last to first, break once find an address with transactions. + for i := len(skyAddrs) - 1; i >= 0; i-- { + ok, err := tf.history.AddressSeen(tx, skyAddrs[i]) + if err != nil { + return err + } + + if ok { + active[i] = true + break + } + } + + // Check if the addresses appears in the unconfirmed pool + // NOTE: if this needs to be optimized, add an index to the unconfirmed pool + return tf.unconfirmed.ForEach(tx, func(h cipher.SHA256, ut UnconfirmedTransaction) error { + // Only transaction outputs need to be checked; if the address is associated + // with an input, it must have appeared in a transaction in the blockchain history + for _, o := range ut.Transaction.Out { + if i, ok := addrsMap[o.Address]; ok { + active[i] = true + } + } + return nil + }) + }); err != nil { + return nil, err + } + + return active, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/visor/wallet.go b/vendor/github.com/skycoin/skycoin/src/visor/wallet.go new file mode 100644 index 000000000..a7613161f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/visor/wallet.go @@ -0,0 +1,615 @@ +package visor + +// This file contains Visor method that require wallet access + +import ( + "errors" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/params" + "github.com/skycoin/skycoin/src/transaction" + "github.com/skycoin/skycoin/src/util/mathutil" + "github.com/skycoin/skycoin/src/visor/dbutil" + "github.com/skycoin/skycoin/src/wallet" + "github.com/skycoin/skycoin/src/wallet/bip44wallet" +) + +// UserError wraps user input-related errors. +// Errors caused by programmer input or internal issues should not use this wrapper. +// Some knowledge of the HTTP API layer may be necessary to decide when to use UserError or not. +type UserError struct { + error +} + +// NewUserError creates an Error +func NewUserError(err error) error { + if err == nil { + return nil + } + return UserError{err} +} + +var ( + // ErrSpendingUnconfirmed is returned if caller attempts to spend unconfirmed outputs + ErrSpendingUnconfirmed = NewUserError(errors.New("Please spend after your pending transaction is confirmed")) + // ErrDuplicateUxOuts UxOuts contains duplicate values + ErrDuplicateUxOuts = NewUserError(errors.New("UxOuts contains duplicate values")) + // ErrIncludesNullAddress Addresses must not contain the null address + ErrIncludesNullAddress = NewUserError(errors.New("Addresses must not contain the null address")) + // ErrDuplicateAddresses Addresses contains duplicate values + ErrDuplicateAddresses = NewUserError(errors.New("Addresses contains duplicate values")) + // ErrCreateTransactionParamsConflict UxOuts and Addresses cannot be combined + ErrCreateTransactionParamsConflict = NewUserError(errors.New("UxOuts and Addresses cannot be combined")) + // ErrTransactionAlreadySigned attempted to sign a transaction that is already fully signed + ErrTransactionAlreadySigned = NewUserError(errors.New("Transaction is already fully signed")) + // ErrUxOutsOrAddressesRequired Both Addresses and UxOuts are empty + ErrUxOutsOrAddressesRequired = NewUserError(errors.New("UxOuts or Addresses must not be empty")) + // ErrNoSpendableOutputs after filtering unconfirmed spend outputs, there are no remaining outputs available for transaction creation + ErrNoSpendableOutputs = NewUserError(errors.New("All selected outputs are unavailable for spending")) +) + +// GetWalletBalance returns balance pairs of specific wallet +func (vs *Visor) GetWalletBalance(wltID string) (wallet.BalancePair, wallet.AddressBalances, error) { + var addressBalances wallet.AddressBalances + var walletBalance wallet.BalancePair + var addrsBalanceList []wallet.BalancePair + var addrs []cipher.Address + + if err := vs.wallets.View(wltID, func(w wallet.Wallet) error { + var err error + addrs, err = func() ([]cipher.Address, error) { + addrs, err := w.GetAddresses() + if err != nil { + return nil, err + } + return wallet.SkycoinAddresses(addrs), nil + }() + + addrsBalanceList, err = vs.GetBalanceOfAddresses(addrs) + return err + }); err != nil { + return walletBalance, addressBalances, err + } + + // create map of address to balance + addressBalances = make(wallet.AddressBalances, len(addrs)) + for i, addr := range addrs { + addressBalances[addr.String()] = addrsBalanceList[i] + } + + // compute the sum of all addresses + for _, addrBalance := range addressBalances { + var err error + // compute confirmed balance + walletBalance.Confirmed.Coins, err = mathutil.AddUint64(walletBalance.Confirmed.Coins, addrBalance.Confirmed.Coins) + if err != nil { + return walletBalance, addressBalances, err + } + walletBalance.Confirmed.Hours, err = mathutil.AddUint64(walletBalance.Confirmed.Hours, addrBalance.Confirmed.Hours) + if err != nil { + return walletBalance, addressBalances, err + } + + // compute predicted balance + walletBalance.Predicted.Coins, err = mathutil.AddUint64(walletBalance.Predicted.Coins, addrBalance.Predicted.Coins) + if err != nil { + return walletBalance, addressBalances, err + } + walletBalance.Predicted.Hours, err = mathutil.AddUint64(walletBalance.Predicted.Hours, addrBalance.Predicted.Hours) + if err != nil { + return walletBalance, addressBalances, err + } + } + + return walletBalance, addressBalances, nil +} + +// GetWalletUnconfirmedTransactions returns all unconfirmed transactions in given wallet +func (vs *Visor) GetWalletUnconfirmedTransactions(wltID string) ([]UnconfirmedTransaction, error) { + var txns []UnconfirmedTransaction + + if err := vs.wallets.View(wltID, func(w wallet.Wallet) error { + addrs, err := w.GetAddresses() + if err != nil { + return err + } + + txns, err = vs.GetUnconfirmedTransactions(SendsToAddresses(wallet.SkycoinAddresses(addrs))) + return err + }); err != nil { + return nil, err + } + + return txns, nil +} + +// GetWalletUnconfirmedTransactionsVerbose returns all unconfirmed transactions in given wallet +func (vs *Visor) GetWalletUnconfirmedTransactionsVerbose(wltID string) ([]UnconfirmedTransaction, [][]TransactionInput, error) { + var txns []UnconfirmedTransaction + var inputs [][]TransactionInput + + if err := vs.wallets.View(wltID, func(w wallet.Wallet) error { + addrs, err := func() ([]cipher.Address, error) { + addrs, err := w.GetAddresses() + if err != nil { + return nil, err + } + return wallet.SkycoinAddresses(addrs), nil + }() + if err != nil { + return err + } + + txns, inputs, err = vs.GetUnconfirmedTransactionsVerbose(SendsToAddresses(addrs)) + return err + }); err != nil { + return nil, nil, err + } + + return txns, inputs, nil +} + +// WalletSignTransaction signs a transaction. Specific inputs may be signed by specifying signIndexes. +// If signIndexes is empty, all inputs will be signed. The transaction must be fully valid and spendable. +func (vs *Visor) WalletSignTransaction(wltID string, password []byte, txn *coin.Transaction, signIndexes []int) (*coin.Transaction, []TransactionInput, error) { + var inputs []TransactionInput + var signedTxn *coin.Transaction + + if txn.IsFullySigned() { + return nil, nil, ErrTransactionAlreadySigned + } + + if err := vs.wallets.ViewSecrets(wltID, password, func(w wallet.Wallet) error { + return vs.db.View("WalletSignTransaction", func(tx *dbutil.Tx) error { + // Verify the transaction before signing + if err := transaction.VerifySingleTxnUserConstraints(*txn); err != nil { + return err + } + if _, _, err := vs.blockchain.VerifySingleTxnSoftHardConstraints(tx, *txn, vs.Config.Distribution, params.UserVerifyTxn, transaction.TxnUnsigned); err != nil { + return err + } + + headTime, err := vs.blockchain.Time(tx) + if err != nil { + logger.WithError(err).Error("blockchain.Time failed") + return err + } + + inputs, err = vs.getTransactionInputs(tx, headTime, txn.In) + if err != nil { + return err + } + + uxOuts := make([]coin.UxOut, len(inputs)) + for i, in := range inputs { + uxOuts[i] = in.UxOut + } + + signedTxn, err = wallet.SignTransaction(w, txn, signIndexes, uxOuts) + if err != nil { + logger.WithError(err).Error("wallet.SignTransaction failed") + return err + } + + signed := transaction.TxnSigned + if !signedTxn.IsFullySigned() { + signed = transaction.TxnUnsigned + } + + if err := transaction.VerifySingleTxnUserConstraints(*signedTxn); err != nil { + // This shouldn't happen since we verified in the beginning; if it does, then wallet.SignTransaction has a bug + logger.Critical().WithError(err).Error("Signed transaction violates transaction user constraints") + return err + } + + if _, _, err := vs.blockchain.VerifySingleTxnSoftHardConstraints(tx, *signedTxn, vs.Config.Distribution, params.UserVerifyTxn, signed); err != nil { + // This shouldn't happen since we verified in the beginning; if it does, then wallet.SignTransaction has a bug + logger.Critical().WithError(err).Error("Signed transaction violates transaction constraints") + return err + } + + return nil + }) + }); err != nil { + return nil, nil, err + } + + return signedTxn, inputs, nil +} + +// CreateTransactionParams parameters for transaction creation +type CreateTransactionParams struct { + UxOuts []cipher.SHA256 + Addresses []cipher.Address + // IgnoreUnconfirmed if true, outputs matching Addresses or UxOuts spent by + // an unconfirmed transactions will be ignored, otherwise an error will be returned + IgnoreUnconfirmed bool +} + +// Validate validates params +func (p CreateTransactionParams) Validate() error { + if len(p.UxOuts) != 0 && len(p.Addresses) != 0 { + return ErrCreateTransactionParamsConflict + } + + // Check for duplicate addresses + addressMap := make(map[cipher.Address]struct{}, len(p.Addresses)) + for _, a := range p.Addresses { + if a.Null() { + return ErrIncludesNullAddress + } + + if _, ok := addressMap[a]; ok { + return ErrDuplicateAddresses + } + + addressMap[a] = struct{}{} + } + + // Check for duplicate spending uxouts + uxOuts := make(map[cipher.SHA256]struct{}, len(p.UxOuts)) + for _, o := range p.UxOuts { + if _, ok := uxOuts[o]; ok { + return ErrDuplicateUxOuts + } + uxOuts[o] = struct{}{} + } + + return nil +} + +// WalletCreateTransactionSigned creates a signed transaction based upon the parameters in CreateTransactionParams +func (vs *Visor) WalletCreateTransactionSigned(wltID string, password []byte, p transaction.Params, wp CreateTransactionParams) (*coin.Transaction, []TransactionInput, error) { + // Validate params before unlocking wallet + if err := p.Validate(); err != nil { + return nil, nil, err + } + if err := wp.Validate(); err != nil { + return nil, nil, err + } + + var txn *coin.Transaction + var inputs []TransactionInput + w, err := vs.wallets.GetWallet(wltID) + if err != nil { + return nil, nil, err + } + + if p.ChangeAddress == nil && w.Type() == wallet.WalletTypeBip44 { + // TODO: Maybe add the `PeekChangeAddress` to wallet.Wallet interface, and + // only bip44 wallet will implement it, all others do nothing. In this way + // we don't have to explicitly check the wallet type here. + // + // For bip44 wallet, peek a change address if p.ChangeAddress is nill + if err := vs.wallets.Update(wltID, func(w wallet.Wallet) error { + addr, err := w.(*bip44wallet.Wallet).PeekChangeAddress(vs.tf) + if err != nil { + logger.Critical().WithError(err).Error("PeekChangeAddress failed") + return err + } + skyAddr := addr.(cipher.Address) + p.ChangeAddress = &skyAddr + return nil + }); err != nil { + return nil, nil, err + } + } + + if err := vs.wallets.ViewSecrets(wltID, password, func(w wallet.Wallet) error { + var err error + txn, inputs, err = vs.walletCreateTransaction("WalletCreateTransactionSigned", w, p, wp, transaction.TxnSigned) + return err + }); err != nil { + return nil, nil, err + } + + return txn, inputs, nil +} + +// WalletCreateTransaction creates a transaction based upon the parameters in CreateTransactionParams +// TODO: Only referenced by tests, vs.walletCreateTransaction +func (vs *Visor) WalletCreateTransaction(wltID string, p transaction.Params, wp CreateTransactionParams) (*coin.Transaction, []TransactionInput, error) { + // Validate params before opening wallet + if err := p.Validate(); err != nil { + return nil, nil, err + } + if err := wp.Validate(); err != nil { + return nil, nil, err + } + + var txn *coin.Transaction + var inputs []TransactionInput + + if err := vs.wallets.Update(wltID, func(w wallet.Wallet) error { + if p.ChangeAddress == nil && w.Type() == wallet.WalletTypeBip44 { + // TODO: Maybe add the `PeekChangeAddress` to wallet.Wallet interface, and + // only bip44 wallet will implement it, all others do nothing. In this way + // we don't have to explicitly check the wallet type here. + // + // For bip44 wallet, peek a change address if p.ChangeAddress is nill + addr, err := w.(*bip44wallet.Wallet).PeekChangeAddress(vs.tf) + if err != nil { + logger.Critical().WithError(err).Error("PeekChangeAddress failed") + return err + } + skyAddr := addr.(cipher.Address) + p.ChangeAddress = &skyAddr + } + + var err error + txn, inputs, err = vs.walletCreateTransaction("WalletCreateTransaction", w, p, wp, transaction.TxnUnsigned) + return err + }); err != nil { + return nil, nil, err + } + + return txn, inputs, nil +} + +func (vs *Visor) walletCreateTransaction(methodName string, w wallet.Wallet, p transaction.Params, wp CreateTransactionParams, signed transaction.TxnSignedFlag) (*coin.Transaction, []TransactionInput, error) { + if err := p.Validate(); err != nil { + return nil, nil, err + } + if err := wp.Validate(); err != nil { + return nil, nil, err + } + + // Get all addresses from the wallet for checking params against + walletAddresses, err := func() ([]cipher.Address, error) { + addrs, err := w.GetAddresses() + if err != nil { + return nil, err + } + return wallet.SkycoinAddresses(addrs), nil + }() + if err != nil { + return nil, nil, err + } + + walletAddressesMap := make(map[cipher.Address]struct{}, len(walletAddresses)) + for _, a := range walletAddresses { + walletAddressesMap[a] = struct{}{} + } + + addrs := wp.Addresses + if len(addrs) == 0 { + // Use all wallet addresses if no addresses or uxouts specified + addrs = walletAddresses + } else { + // Check that requested addresses are in the wallet + for _, a := range addrs { + if _, ok := walletAddressesMap[a]; !ok { + return nil, nil, wallet.ErrUnknownAddress + } + } + } + + var txn *coin.Transaction + var uxb []transaction.UxBalance + + if err := vs.db.View(methodName, func(tx *dbutil.Tx) error { + var err error + txn, uxb, err = vs.walletCreateTransactionTx(tx, methodName, w, p, wp, signed, addrs, walletAddressesMap) + return err + }); err != nil { + return nil, nil, err + } + + inputs := NewTransactionInputsFromUxBalance(uxb) + + return txn, inputs, nil +} + +func (vs *Visor) walletCreateTransactionTx(tx *dbutil.Tx, methodName string, + w wallet.Wallet, p transaction.Params, wp CreateTransactionParams, signed transaction.TxnSignedFlag, + addrs []cipher.Address, walletAddressesMap map[cipher.Address]struct{}) (*coin.Transaction, []transaction.UxBalance, error) { + // Note: assumes inputs have already been validated by walletCreateTransaction + + head, err := vs.blockchain.Head(tx) + if err != nil { + logger.WithError(err).Error("blockchain.Head failed") + return nil, nil, err + } + + // Get mapping of addresses to uxOuts based upon CreateTransactionParams + var auxs coin.AddressUxOuts + if len(wp.UxOuts) != 0 { + var err error + auxs, err = vs.getCreateTransactionAuxsUxOut(tx, wp.UxOuts, wp.IgnoreUnconfirmed) + if err != nil { + return nil, nil, err + } + + // Check that UxOut addresses are in the wallet, + for a := range auxs { + if _, ok := walletAddressesMap[a]; !ok { + return nil, nil, wallet.ErrUnknownUxOut + } + } + } else { + var err error + auxs, err = vs.getCreateTransactionAuxsAddress(tx, addrs, wp.IgnoreUnconfirmed) + if err != nil { + return nil, nil, err + } + } + + // Create and sign transaction + var txn *coin.Transaction + var uxb []transaction.UxBalance + + switch signed { + case transaction.TxnSigned: + txn, uxb, err = wallet.CreateTransactionSigned(w, p, auxs, head.Time()) + case transaction.TxnUnsigned: + txn, uxb, err = wallet.CreateTransaction(w, p, auxs, head.Time()) + default: + logger.Panic("Invalid TxnSignedFlag") + } + if err != nil { + logger.Critical().WithError(err).Errorf("%s failed", methodName) + return nil, nil, err + } + + if err := transaction.VerifySingleTxnUserConstraints(*txn); err != nil { + logger.WithError(err).Error("Created transaction violates transaction user constraints") + return nil, nil, err + } + + // The wallet can create transactions that would not pass all validation, such as the decimal restriction, + // because the wallet is not aware of visor-level constraints. + // Check that the transaction is valid before returning it to the caller. + // TODO -- decimal restriction was moved to params/ package so the wallet can verify now. Move visor/verify to new package? + if _, _, err := vs.blockchain.VerifySingleTxnSoftHardConstraints(tx, *txn, vs.Config.Distribution, params.UserVerifyTxn, signed); err != nil { + logger.WithError(err).Error("Created transaction violates transaction soft/hard constraints") + return nil, nil, err + } + + return txn, uxb, nil +} + +// CreateTransaction creates an unsigned transaction from requested coin.UxOut hashes +func (vs *Visor) CreateTransaction(p transaction.Params, wp CreateTransactionParams) (*coin.Transaction, []TransactionInput, error) { + // Validate parameters before starting database transaction + if err := p.Validate(); err != nil { + return nil, nil, err + } + if err := wp.Validate(); err != nil { + return nil, nil, err + } + if len(wp.Addresses) == 0 && len(wp.UxOuts) == 0 { + return nil, nil, ErrUxOutsOrAddressesRequired + } + + var txn *coin.Transaction + var uxb []transaction.UxBalance + + if err := vs.db.View("CreateTransaction", func(tx *dbutil.Tx) error { + var err error + txn, uxb, err = vs.createTransactionTx(tx, p, wp) + return err + }); err != nil { + return nil, nil, err + } + + inputs := NewTransactionInputsFromUxBalance(uxb) + + return txn, inputs, nil +} + +func (vs *Visor) createTransactionTx(tx *dbutil.Tx, p transaction.Params, wp CreateTransactionParams) (*coin.Transaction, []transaction.UxBalance, error) { + // Note: assumes inputs have already been validated by walletCreateTransaction + head, err := vs.blockchain.Head(tx) + if err != nil { + logger.WithError(err).Error("blockchain.Head failed") + return nil, nil, err + } + + // Get mapping of addresses to uxOuts based upon CreateTransactionParams + var auxs coin.AddressUxOuts + if len(wp.UxOuts) != 0 { + auxs, err = vs.getCreateTransactionAuxsUxOut(tx, wp.UxOuts, wp.IgnoreUnconfirmed) + } else { + auxs, err = vs.getCreateTransactionAuxsAddress(tx, wp.Addresses, wp.IgnoreUnconfirmed) + } + if err != nil { + return nil, nil, err + } + + txn, uxb, err := transaction.Create(p, auxs, head.Time()) + if err != nil { + return nil, nil, err + } + + if err := transaction.VerifySingleTxnUserConstraints(*txn); err != nil { + logger.WithError(err).Error("Created transaction violates transaction user constraints") + return nil, nil, err + } + + // The wallet can create transactions that would not pass all validation, such as the decimal restriction, + // because the wallet is not aware of visor-level constraints. + // Check that the transaction is valid before returning it to the caller. + // TODO -- decimal restriction was moved to params/ package so the wallet can verify now. Move visor/verify to new package? + if _, _, err := vs.blockchain.VerifySingleTxnSoftHardConstraints(tx, *txn, vs.Config.Distribution, params.UserVerifyTxn, transaction.TxnUnsigned); err != nil { + logger.WithError(err).Error("Created transaction violates transaction soft/hard constraints") + return nil, nil, err + } + + return txn, uxb, nil +} + +// getCreateTransactionAuxsUxOut returns a map of addresses to their unspent outputs, +// given a list of unspent output hashes. +// If ignoreUnconfirmed is true, outputs being spent by unconfirmed transactions are ignored and excluded from the return value. +// If ignoreUnconfirmed is false, an error is return if any of the specified unspent outputs are spent by an unconfirmed transaction. +func (vs *Visor) getCreateTransactionAuxsUxOut(tx *dbutil.Tx, uxOutHashes []cipher.SHA256, ignoreUnconfirmed bool) (coin.AddressUxOuts, error) { + hashesMap := make(map[cipher.SHA256]struct{}, len(uxOutHashes)) + for _, h := range uxOutHashes { + hashesMap[h] = struct{}{} + } + + // Check if any of the outputs are spent by an unconfirmed transaction + unconfirmedHashesMap := make(map[cipher.SHA256]struct{}) + if err := vs.unconfirmed.ForEach(tx, func(_ cipher.SHA256, txn UnconfirmedTransaction) error { + for _, h := range txn.Transaction.In { + if _, ok := hashesMap[h]; ok { + if !ignoreUnconfirmed { + return ErrSpendingUnconfirmed + } + unconfirmedHashesMap[h] = struct{}{} + } + } + return nil + }); err != nil { + return nil, err + } + + if !ignoreUnconfirmed && len(unconfirmedHashesMap) != 0 { + logger.Panic("ignoreUnconfirmed is false but unconfirmedHashesMap is not empty") + } + + // Filter unconfirmed spends + if len(unconfirmedHashesMap) != 0 { + filteredUxOutHashes := uxOutHashes[:0] + for _, h := range uxOutHashes { + if _, ok := unconfirmedHashesMap[h]; ok { + delete(hashesMap, h) + } else { + filteredUxOutHashes = append(filteredUxOutHashes, h) + } + } + uxOutHashes = filteredUxOutHashes + } + + if len(uxOutHashes) == 0 { + return nil, ErrNoSpendableOutputs + } + + // Retrieve the uxouts from the pool. + // An error is returned if any do not exist + uxOuts, err := vs.blockchain.Unspent().GetArray(tx, uxOutHashes) + if err != nil { + return nil, err + } + + // Build coin.AddressUxOuts map + return coin.NewAddressUxOuts(uxOuts), nil +} + +// getCreateTransactionAuxsAddress returns a map of the addresses to their unspent outputs, +// filtering or erroring on unconfirmed outputs depending on the value of ignoreUnconfirmed +func (vs *Visor) getCreateTransactionAuxsAddress(tx *dbutil.Tx, addrs []cipher.Address, ignoreUnconfirmed bool) (coin.AddressUxOuts, error) { + // Get all address unspent hashes + addrHashes, err := vs.blockchain.Unspent().GetUnspentHashesOfAddrs(tx, addrs) + if err != nil { + return nil, err + } + + hashes := addrHashes.Flatten() + if len(hashes) == 0 { + return nil, transaction.ErrNoUnspents + } + + return vs.getCreateTransactionAuxsUxOut(tx, hashes, ignoreUnconfirmed) +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/balance.go b/vendor/github.com/skycoin/skycoin/src/wallet/balance.go new file mode 100644 index 000000000..6066f983a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/balance.go @@ -0,0 +1,87 @@ +package wallet + +import ( + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/util/mathutil" +) + +/* +Do not show balances or outputs that have not cleared yet +- should only allow spends against outputs that are on head +*/ + +// BalancePair records the confirmed and predicted balance of an address +type BalancePair struct { + Confirmed Balance + Predicted Balance +} + +// AddressBalances represents a map of address balances +type AddressBalances map[string]BalancePair + +// Balance has coins and hours +type Balance struct { + Coins uint64 + Hours uint64 +} + +// NewBalance creates balance +func NewBalance(coins, hours uint64) Balance { + return Balance{ + Coins: coins, + Hours: hours, + } +} + +// NewBalanceFromUxOut creates Balance from UxOut +func NewBalanceFromUxOut(headTime uint64, ux *coin.UxOut) (Balance, error) { + hours, err := ux.CoinHours(headTime) + if err != nil { + return Balance{}, err + } + + return Balance{ + Coins: ux.Body.Coins, + Hours: hours, + }, nil +} + +// Add adds two Balances +func (bal Balance) Add(other Balance) (Balance, error) { + coins, err := mathutil.AddUint64(bal.Coins, other.Coins) + if err != nil { + return Balance{}, err + } + + hours, err := mathutil.AddUint64(bal.Hours, other.Hours) + if err != nil { + return Balance{}, err + } + + return Balance{ + Coins: coins, + Hours: hours, + }, nil +} + +// Sub subtracts other from self and returns the new Balance. Will panic if +// other is greater than balance, because Coins and Hours are unsigned. +func (bal Balance) Sub(other Balance) Balance { + if other.Coins > bal.Coins || other.Hours > bal.Hours { + logger.Panic("Cannot subtract balances, second balance is too large") + } + return Balance{ + Coins: bal.Coins - other.Coins, + Hours: bal.Hours - other.Hours, + } +} + +// Equals compares two Balances +func (bal Balance) Equals(other Balance) bool { + return bal.Coins == other.Coins && bal.Hours == other.Hours +} + +// IsZero returns true if the Balance is empty (both coins and hours) +func (bal Balance) IsZero() bool { + return bal.Coins == 0 && bal.Hours == 0 +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/account.go b/vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/account.go new file mode 100644 index 000000000..e581e43be --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/account.go @@ -0,0 +1,544 @@ +package bip44wallet + +import ( + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip32" + "github.com/skycoin/skycoin/src/cipher/bip39" + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/util/mathutil" + "github.com/skycoin/skycoin/src/wallet" +) + +const ( + secretBip44AccountPrivateKey = "bip44AccountPrivateKey" +) + +// bip44Account records the bip44 wallet account info +type bip44Account struct { + bip44.Account + Name string // Account name + Index uint32 // Account index + CoinType wallet.CoinType // Account coin type, determins the way to generate addresses + Chains []bip44Chain // Chains, external chain with index value of 0, and internal(change) chain with index value of 1. +} + +type bip44AccountCreateOptions struct { + name string + index uint32 + seed string + seedPassphrase string + coinType wallet.CoinType + bip44CoinType *bip44.CoinType +} + +func newBip44Account(opts bip44AccountCreateOptions) (*bip44Account, error) { + // opts.seed must return a valid bip39 mnemonic + seed, err := bip39.NewSeed(opts.seed, opts.seedPassphrase) + if err != nil { + return nil, err + } + + if opts.bip44CoinType == nil { + return nil, errors.New("newBip44Account missing bip44 coin type") + } + + c, err := bip44.NewCoin(seed, *opts.bip44CoinType) + if err != nil { + logger.Critical().WithError(err).Error("Failed to derive the bip44 purpose node") + if bip32.IsImpossibleChildError(err) { + logger.Critical().Error("ImpossibleChild: this seed cannot be used for bip44") + } + return nil, err + } + a, err := c.Account(opts.index) + if err != nil { + return nil, err + } + + externalChainKey, changeChainKey, err := makeChainPubKeys(a) + if err != nil { + return nil, err + } + + ba := &bip44Account{ + Account: *a, + Name: opts.name, + Index: opts.index, + CoinType: opts.coinType, + } + + // init the external chain + ba.Chains = append(ba.Chains, bip44Chain{ + PubKey: *externalChainKey, + ChainIndex: bip44.ExternalChainIndex, + }) + // init the change chain + ba.Chains = append(ba.Chains, bip44Chain{ + PubKey: *changeChainKey, + ChainIndex: bip44.ChangeChainIndex, + }) + return ba, nil +} + +func (a *bip44Account) newAddresses(chainIndex, num uint32) ([]cipher.Addresser, error) { + // chain index can only be 0 or 1. + switch chainIndex { + case bip44.ExternalChainIndex, bip44.ChangeChainIndex: + ad := wallet.ResolveAddressDecoder(a.CoinType) + return a.Chains[chainIndex].newAddresses(num, a.PrivateKey, ad.AddressFromPubKey) + default: + return nil, fmt.Errorf("invalid chain index: %d", chainIndex) + } +} + +// erase wipes sensitive data +func (a *bip44Account) erase() { + if a.Account.PrivateKey != nil { + for i := range a.Account.Key { + a.Account.Key[i] = 0 + } + a.Account.PrivateKey = nil + a.Account = bip44.Account{} + } + + for i := range a.Chains { + a.Chains[i].erase() + } +} + +// syncSecrets ensure that the secrets covers all addresses in the account, +// otherwise, generate related secrets and pack to the secrets storage. +func (a *bip44Account) syncSecrets(ss wallet.Secrets) error { + v, ok := ss.Get(a.accountKeyName()) + if !ok { + return errors.New("account private key does not exist in secrets") + } + + key, err := bip32.DeserializeEncodedPrivateKey(v) + if err != nil { + return err + } + + for _, c := range a.Chains { + if err := c.syncSecrets(ss, key); err != nil { + return err + } + } + + return nil +} + +func (a *bip44Account) dropLastEntriesN(chain, n uint32) error { + switch chain { + case bip44.ExternalChainIndex, bip44.ChangeChainIndex: + return a.Chains[chain].dropLastEntriesN(n) + default: + return fmt.Errorf("invalid chain index %d", chain) + } +} + +func secretFromPrivateKey(privateKey *bip32.PrivateKey, chain, index uint32) (cipher.SecKey, error) { + chainSecKey, err := privateKey.NewPrivateChildKey(chain) + if err != nil { + return cipher.SecKey{}, err + } + + k, err := chainSecKey.NewPrivateChildKey(index) + if err != nil { + return cipher.SecKey{}, err + } + + return cipher.NewSecKey(k.Key) +} + +func (a *bip44Account) accountKeyName() string { + return fmt.Sprintf("%s-%d", secretBip44AccountPrivateKey, a.Index) +} + +// packSecrets packs the secrets of secrets into Secrets +func (a *bip44Account) packSecrets(ss wallet.Secrets) { + if a.Account.PrivateKey != nil { + // packs the account private key. + ss.Set(a.accountKeyName(), a.Account.String()) + } + + // packs the secrets in chains + for _, c := range a.Chains { + c.packSecrets(ss) + } +} + +func (a *bip44Account) unpackSecrets(ss wallet.Secrets) error { + prvKey, ok := ss.Get(a.accountKeyName()) + if !ok { + return errors.New("missing bip44 account private key when unpacking secrets") + } + + key, err := bip32.DeserializeEncodedPrivateKey(prvKey) + if err != nil { + return err + } + + a.Account.PrivateKey = key + + for i := range a.Chains { + if err := a.Chains[i].unpackSecrets(ss); err != nil { + return err + } + } + return nil +} + +func (a bip44Account) entries(chain uint32) (wallet.Entries, error) { + switch chain { + case bip44.ExternalChainIndex, bip44.ChangeChainIndex: + es := a.Chains[chain].Entries.Clone() + for i := range es { + es[i].Change = chain + } + return es, nil + default: + return nil, fmt.Errorf("invalid chain index: %d", chain) + } +} + +func (a bip44Account) entriesLen(chain uint32) (uint32, error) { + switch chain { + case bip44.ExternalChainIndex, bip44.ChangeChainIndex: + return uint32(len(a.Chains[chain].Entries)), nil + default: + return 0, fmt.Errorf("invalid chain index: %d", chain) + } +} + +func (a bip44Account) entryAt(chain, i uint32) (wallet.Entry, error) { + switch chain { + case bip44.ExternalChainIndex, bip44.ChangeChainIndex: + if i >= uint32(len(a.Chains[chain].Entries)) { + return wallet.Entry{}, fmt.Errorf("entry index %d out of range", i) + } + return a.Chains[chain].Entries[i], nil + default: + return wallet.Entry{}, fmt.Errorf("invalid chain index: %d", chain) + } +} + +func (a bip44Account) getEntry(address cipher.Addresser) (wallet.Entry, bool) { + for _, c := range a.Chains { + for _, e := range c.Entries { + if e.Address == address { + return e, true + } + } + } + + return wallet.Entry{}, false +} + +// Clone clones the bip44Account, it would also hide the +// bip44.Account.Clone() function so that user would not +// call it mistakenly. +func (a bip44Account) Clone() bip44Account { + na := bip44Account{ + Account: a.Account.Clone(), + Name: a.Name, + Index: a.Index, + CoinType: a.CoinType, + } + + na.Chains = make([]bip44Chain, len(a.Chains)) + for i, c := range a.Chains { + cc := c.clone() + na.Chains[i] = cc + } + return na +} + +// reset resets all entries +func (a *bip44Account) reset() { + for i := range a.Chains { + a.Chains[i].Entries = wallet.Entries{} + } +} + +// bip44Chain bip44 address chain +type bip44Chain struct { + PubKey bip32.PublicKey + Entries wallet.Entries + ChainIndex uint32 +} + +// newAddresses generates addresses on the chain. +// private key is optional, if not provided, addresses will be generated using the public key. +func (c *bip44Chain) newAddresses(num uint32, seckey *bip32.PrivateKey, addressFromPubKey func(key cipher.PubKey) cipher.Addresser) ([]cipher.Addresser, error) { + if c == nil { + return nil, errors.New("can not generate new addresses on nil chain") + } + + var addrs []cipher.Addresser + initLen := uint32(len(c.Entries)) + _, err := mathutil.AddUint32(initLen, num) + if err != nil { + return nil, fmt.Errorf("can not create %d more addresses, current addresses number %d, err: %v", num, initLen, err) + } + + for i := uint32(0); i < num; i++ { + index := initLen + i + pk, err := c.PubKey.NewPublicChildKey(index) + if err != nil { + return nil, fmt.Errorf("bip44 chain generate address with index %d failed, err: %v", index, err) + } + cpk, err := cipher.NewPubKey(pk.Key) + if err != nil { + return nil, err + } + + addr := addressFromPubKey(cpk) + e := wallet.Entry{ + Address: addr, + Public: cpk, + ChildNumber: index, + } + + if seckey != nil { + k, err := secretFromPrivateKey(seckey, c.ChainIndex, index) + if err != nil { + return nil, err + } + e.Secret = k + } + + c.Entries = append(c.Entries, e) + addrs = append(addrs, addr) + } + return addrs, nil +} + +func (c *bip44Chain) syncSecrets(ss wallet.Secrets, privateKey *bip32.PrivateKey) error { + for i, e := range c.Entries { + addr := e.Address.String() + if _, ok := ss.Get(addr); !ok { + k, err := secretFromPrivateKey(privateKey, c.ChainIndex, uint32(i)) + if err != nil { + return err + } + ss.Set(addr, k.Hex()) + } + } + return nil +} + +func (c *bip44Chain) packSecrets(ss wallet.Secrets) { + for _, e := range c.Entries { + ss.Set(e.Address.String(), e.Secret.Hex()) + } +} + +func (c *bip44Chain) unpackSecrets(ss wallet.Secrets) error { + return c.Entries.UnpackSecretKeys(ss) +} + +func (c *bip44Chain) erase() { + c.Entries.Erase() +} + +func (c bip44Chain) clone() bip44Chain { + return bip44Chain{ + PubKey: c.PubKey.Clone(), + ChainIndex: c.ChainIndex, + Entries: c.Entries.Clone(), + } +} + +func (c *bip44Chain) dropLastEntriesN(n uint32) error { + l := uint32(len(c.Entries)) + if n > l { + return errors.New("bip44Chain.dropLastEntriesN param 'n' is out of range") + } + + c.Entries = c.Entries[:l-n] + return nil +} + +// bip44Accounts implements the accountManager interface +type bip44Accounts struct { + accounts []*bip44Account +} + +func (a bip44Accounts) len() uint32 { + return uint32(len(a.accounts)) +} + +func (a *bip44Accounts) newAddresses(account, chain, num uint32) ([]cipher.Addresser, error) { + act, err := a.account(account) + if err != nil { + return nil, err + } + + return act.newAddresses(chain, num) +} + +// account returns the pinter of the account by index, +// this should not be used outside the accounts management in case of +// unsafe behaviour. +func (a bip44Accounts) account(index uint32) (*bip44Account, error) { + accountLen := len(a.accounts) + if int(index) >= accountLen { + return nil, fmt.Errorf("account index %d out of range", index) + } + + act := a.accounts[index] + if act == nil { + return nil, fmt.Errorf("account of index %d not found", index) + } + + return act, nil +} + +// new creates a bip44 account with options. +// Notice: the option.index won't be applied, the bip44Accounts manages +// the index and will generate a index for the new account. +func (a *bip44Accounts) new(opts bip44AccountCreateOptions) (uint32, error) { + accountIndex, err := a.nextIndex() + if err != nil { + return 0, err + } + + // assign the account index + opts.index = accountIndex + + // create a bip44 account + ba, err := newBip44Account(opts) + if err != nil { + return 0, err + } + + a.accounts = append(a.accounts, ba) + return accountIndex, nil +} + +func (a *bip44Accounts) nextIndex() (uint32, error) { + // Try to get next account index, return error if the + // account is full. + if _, err := mathutil.AddUint32(uint32(len(a.accounts)), 1); err != nil { + return 0, errors.New("maximum bip44 account number reached") + } + + return uint32(len(a.accounts)), nil +} + +func (a bip44Accounts) clone() accountManager { + nas := &bip44Accounts{} + for i := range a.accounts { + na := a.accounts[i].Clone() + nas.accounts = append(nas.accounts, &na) + } + return nas +} + +func (a *bip44Accounts) packSecrets(ss wallet.Secrets) { + for i := range a.accounts { + a.accounts[i].packSecrets(ss) + } +} + +func (a *bip44Accounts) unpackSecrets(ss wallet.Secrets) error { + for i := range a.accounts { + if err := a.accounts[i].unpackSecrets(ss); err != nil { + return err + } + } + return nil +} + +func (a *bip44Accounts) erase() { + for i := range a.accounts { + a.accounts[i].erase() + } +} + +func (a bip44Accounts) entries(account, chain uint32) (wallet.Entries, error) { + act, err := a.account(account) + if err != nil { + return nil, err + } + + switch chain { + case bip44.ExternalChainIndex, bip44.ChangeChainIndex: + return act.entries(chain) + default: + return nil, fmt.Errorf("invalid chain index: %d", chain) + } +} + +func (a bip44Accounts) entriesLen(account, chain uint32) (uint32, error) { + if len(a.accounts) == 0 { + return 0, nil + } + + act, err := a.account(account) + if err != nil { + return 0, err + } + + switch chain { + case bip44.ExternalChainIndex, bip44.ChangeChainIndex: + return act.entriesLen(chain) + default: + return 0, fmt.Errorf("invalid chain index: %d", chain) + } +} + +func (a bip44Accounts) entryAt(account, chain, i uint32) (wallet.Entry, error) { + act, err := a.account(account) + if err != nil { + return wallet.Entry{}, err + } + + switch chain { + case bip44.ExternalChainIndex, bip44.ChangeChainIndex: + return act.entryAt(chain, i) + default: + return wallet.Entry{}, fmt.Errorf("invalid chain index: %d", chain) + } +} + +func (a bip44Accounts) getEntry(account uint32, address cipher.Addresser) (wallet.Entry, bool, error) { + act, err := a.account(account) + if err != nil { + return wallet.Entry{}, false, err + } + + e, ok := act.getEntry(address) + return e, ok, nil +} + +func (a *bip44Accounts) syncSecrets(ss wallet.Secrets) error { + for _, act := range a.accounts { + if err := act.syncSecrets(ss); err != nil { + return err + } + } + return nil +} + +func (a bip44Accounts) all() []wallet.Bip44Account { + as := make([]wallet.Bip44Account, len(a.accounts)) + for i, act := range a.accounts { + as[i] = wallet.Bip44Account{ + Name: act.Name, + Index: act.Index, + } + } + return as +} + +// rest resets all the entries +func (a *bip44Accounts) reset() { + for _, act := range a.accounts { + act.reset() + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/decoder.go b/vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/decoder.go new file mode 100644 index 000000000..4f2cb0567 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/decoder.go @@ -0,0 +1,268 @@ +package bip44wallet + +import ( + "encoding/json" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip32" + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/wallet" +) + +const metaAccountsHash = "metaAccountsHash" + +// JSONDecoder implements the Decoder interface, +// which provides methods for encoding and decoding a bip44 wallet in JSON format. +type JSONDecoder struct{} + +// Encode encodes the bip44 wallet to []byte, and error, if any. +func (d JSONDecoder) Encode(w wallet.Wallet) ([]byte, error) { + rw, err := newReadableBip44WalletNew(w.(*Wallet)) + if err != nil { + return nil, err + } + return json.MarshalIndent(rw, "", " ") +} + +// Decode decodes the []byte to a bip44 wallet. +func (d JSONDecoder) Decode(b []byte) (wallet.Wallet, error) { + var rw readableBip44WalletNew + if err := json.Unmarshal(b, &rw); err != nil { + return nil, err + } + + return rw.toWallet() +} + +// readableBip44WalletNew readable bip44 wallet +// there will have an `accountsHash` in the meta info, which indicates the hash +// of the accounts. It is used for verifying the integrity of the wallet accounts, +// so that the wallet won't break after user edit the wallet file mistakenly. +type readableBip44WalletNew struct { + wallet.Meta `json:"meta"` + Accounts readableBip44Accounts `json:"accounts"` +} + +// newReadableBip44WalletNew creates a readable bip44 wallet +func newReadableBip44WalletNew(w *Wallet) (*readableBip44WalletNew, error) { + ra, err := newReadableBip44Accounts(w.accountManager.(*bip44Accounts)) + if err != nil { + return nil, err + } + + return &readableBip44WalletNew{ + Meta: w.Meta.Clone(), + Accounts: *ra, + }, nil +} + +// toWallet converts the readable bip44 wallet to a bip44 wallet +func (rw readableBip44WalletNew) toWallet() (*Wallet, error) { + // resolve the coin adapter base on coin type + d := wallet.ResolveAddressSecKeyDecoder(rw.Coin()) + + accounts, err := rw.Accounts.toBip44Accounts(d) + if err != nil { + return nil, err + } + + return &Wallet{ + Meta: rw.Meta.Clone(), + accountManager: accounts, + decoder: &JSONDecoder{}, + }, nil +} + +// readableBip44Accounts is the JSON representation of accounts +type readableBip44Accounts []*readableBip44Account + +// ToBip44Accounts converts readable bip44 accounts to bip44 accounts +func (ras readableBip44Accounts) toBip44Accounts(d wallet.AddressSecKeyDecoder) (*bip44Accounts, error) { + as := bip44Accounts{} + for _, ra := range ras { + a := bip44Account{ + Name: ra.Name, + Index: ra.Index, + CoinType: wallet.CoinType(ra.CoinType), + } + + // decode private key if not empty + if ra.PrivateKey != "" { + key, err := bip32.DeserializeEncodedPrivateKey(ra.PrivateKey) + if err != nil { + return nil, err + } + a.PrivateKey = key + } + + for _, rc := range ra.Chains { + c, err := rc.toBip44Chain(d) + if err != nil { + return nil, err + } + a.Chains = append(a.Chains, *c) + } + + as.accounts = append(as.accounts, &a) + } + + return &as, nil +} + +// ReadableBip44Account is the JSON representation of account +type readableBip44Account struct { + PrivateKey string `json:"private_key,omitempty"` + Name string `json:"name"` // Account name + Index uint32 `json:"index"` // Account index + CoinType string `json:"coin_type"` // Account coin type, determins the way to generate addresses + Chains []readableBip44Chain `json:"chains"` // Chains, external chain with index value of 0, and internal(change) chain with index value of 1. +} + +// ReadableBip44Chain bip44 chain with JSON tags +type readableBip44Chain struct { + PubKey string `json:"public_key"` + Chain string `json:"chain"` + Entries []readableBip44Entry `json:"entries"` +} + +func (rc readableBip44Chain) toBip44Chain(d wallet.AddressSecKeyDecoder) (*bip44Chain, error) { + pubkey, err := bip32.DeserializeEncodedPublicKey(rc.PubKey) + if err != nil { + return nil, err + } + + ci, err := stringToChainIndex(rc.Chain) + if err != nil { + return nil, err + } + + c := bip44Chain{ + PubKey: *pubkey, + ChainIndex: uint32(ci), + } + + for _, re := range rc.Entries { + e, err := newBip44EntryFromReadable(re, d) + if err != nil { + return nil, err + } + c.Entries = append(c.Entries, *e) + } + return &c, nil +} + +func chainIndexToString(index uint32) (string, error) { + switch index { + case bip44.ExternalChainIndex: + return "external", nil + case bip44.ChangeChainIndex: + return "change", nil + default: + return "", fmt.Errorf("Invalid bip44 chain index: %d", index) + } +} + +func stringToChainIndex(s string) (int, error) { + switch s { + case "external": + return int(bip44.ExternalChainIndex), nil + case "change": + return int(bip44.ChangeChainIndex), nil + default: + return -1, fmt.Errorf("Invalid bip44 chain: %s", s) + } +} + +func newBip44EntryFromReadable(re readableBip44Entry, d wallet.AddressSecKeyDecoder) (*wallet.Entry, error) { + addr, err := d.DecodeBase58Address(re.Address) + if err != nil { + return nil, err + } + + p, err := cipher.PubKeyFromHex(re.Public) + if err != nil { + return nil, err + } + + var secKey cipher.SecKey + if re.Secret != "" { + var err error + secKey, err = d.SecKeyFromHex(re.Secret) + if err != nil { + return nil, err + } + } + + return &wallet.Entry{ + Address: addr, + Public: p, + Secret: secKey, + ChildNumber: re.ChildNumber, + }, nil +} + +// ReadableBip44Entry bip44 entry with JSON tags +type readableBip44Entry struct { + Address string `json:"address"` + Public string `json:"public"` + Secret string `json:"secret"` + ChildNumber uint32 `json:"child_number"` // For bip32/bip44 +} + +// newReadableBip44Accounts converts bip44Accounts to ReadableBip44Accounts +func newReadableBip44Accounts(as *bip44Accounts) (*readableBip44Accounts, error) { + var ras readableBip44Accounts + for _, a := range as.accounts { + d := wallet.ResolveSecKeyDecoder(a.CoinType) + + rc, err := newReadableBip44Chains(a.Chains, d) + if err != nil { + return nil, err + } + var privateKey string + if a.Account.PrivateKey != nil { + privateKey = a.Account.String() + } + ras = append(ras, &readableBip44Account{ + PrivateKey: privateKey, + Name: a.Name, + Index: a.Index, + CoinType: string(a.CoinType), + Chains: rc, + }) + } + + return &ras, nil +} + +func newReadableBip44Chains(cs []bip44Chain, d wallet.SecKeyDecoder) ([]readableBip44Chain, error) { + var rcs []readableBip44Chain + for _, c := range cs { + chainIndexStr, err := chainIndexToString(c.ChainIndex) + if err != nil { + return nil, err + } + rc := readableBip44Chain{ + PubKey: c.PubKey.String(), + Chain: chainIndexStr, + } + + for _, e := range c.Entries { + var secret string + if !e.Secret.Null() { + secret = d.SecKeyToHex(e.Secret) + } + + rc.Entries = append(rc.Entries, readableBip44Entry{ + Address: e.Address.String(), + Public: e.Public.Hex(), + ChildNumber: e.ChildNumber, + Secret: secret, + }) + } + rcs = append(rcs, rc) + } + + return rcs, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/wallet.go b/vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/wallet.go new file mode 100644 index 000000000..e4b48dab1 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/bip44wallet/wallet.go @@ -0,0 +1,906 @@ +// This file is still under refactoring, once it gets done, we will replace the +// old bip44_wallet.go. + +package bip44wallet + +import ( + "errors" + "fmt" + "strconv" + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/crypto" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/wallet" + + "github.com/skycoin/skycoin/src/cipher/bip32" + "github.com/skycoin/skycoin/src/cipher/bip39" + "github.com/skycoin/skycoin/src/cipher/bip44" +) + +const ( + // WalletType represents the bip44 wallet type + WalletType = "bip44" + // DefaultAccountName is the default bip44 account name + DefaultAccountName = "default" +) + +var ( + // defaultWalletDecoder is the default bip44 wallet decoder + defaultWalletDecoder = &JSONDecoder{} +) + +var logger = logging.MustGetLogger("bip44wallet") + +func init() { + if err := wallet.RegisterCreator(WalletType, &Creator{}); err != nil { + panic(err) + } + + if err := wallet.RegisterLoader(WalletType, &Loader{}); err != nil { + panic(err) + } +} + +// Wallet manages keys using the original Skycoin deterministic +// keypair generator method. +type Wallet struct { + //Meta wallet meta data + wallet.Meta + // accounts bip44 wallet accounts + accountManager + // decoder is used to encode/decode bip44 wallet to/from []byte + decoder wallet.Decoder +} + +// accountManager is the interface that manages the bip44 wallet accounts. +type accountManager interface { + // new creates a new account, returns the account index, and error, if any + new(opts bip44AccountCreateOptions) (uint32, error) + // newAddresses generates addresses on selected account + newAddresses(account, chain, num uint32) ([]cipher.Addresser, error) + // entries returns entries of specific chain of the selected account + entries(account, chain uint32) (wallet.Entries, error) + // entriesLen returns the entries length of specific chain of selected account + entriesLen(account, chain uint32) (uint32, error) + // entryAt returns the entry of specific index + entryAt(account, chain, index uint32) (wallet.Entry, error) + // getEntry returns the entry of given address + getEntry(account uint32, address cipher.Addresser) (wallet.Entry, bool, error) + // len returns the account number + len() uint32 + // clone returns a deep clone accounts manager + clone() accountManager + // syncSecrets checks if there are any addresses that do not have secrets associated with, + // if yes, generate the secrets for those addresses + syncSecrets(ss wallet.Secrets) error + // packSecrets packs secrets + packSecrets(ss wallet.Secrets) + // unpackSecrets unpacks secrets + unpackSecrets(ss wallet.Secrets) error + // erase wipes secrets + erase() + account(account uint32) (*bip44Account, error) + // all returns all accounts in wallet.Account format + all() []wallet.Bip44Account + // reset reset all accounts' entries + reset() +} + +// ChainEntry represents an item on the bip44 wallet chain +type ChainEntry struct { + Address cipher.Addresser +} + +// NewWallet create a bip44 wallet with options +// also, a default address will be generated +func NewWallet(filename, label, seed, seedPassphrase string, options ...wallet.Option) (*Wallet, error) { + if label == "" { + return nil, wallet.ErrMissingLabel + } + + if seed == "" { + return nil, wallet.ErrMissingSeed + } + + wlt := &Wallet{ + Meta: wallet.Meta{ + wallet.MetaFilename: filename, + wallet.MetaLabel: label, + wallet.MetaSeed: seed, + wallet.MetaSeedPassphrase: seedPassphrase, + wallet.MetaEncrypted: "false", + wallet.MetaType: WalletType, + wallet.MetaVersion: wallet.Version, + wallet.MetaCoin: string(wallet.CoinTypeSkycoin), + wallet.MetaCryptoType: string(crypto.DefaultCryptoType), + wallet.MetaTimestamp: strconv.FormatInt(time.Now().Unix(), 10), + }, + accountManager: &bip44Accounts{}, + decoder: defaultWalletDecoder, + } + + advOpts := wallet.AdvancedOptions{} + // apply options to wallet and AdvancedOptions + for _, opt := range options { + opt(wlt) + opt(&advOpts) + } + + if wlt.Bip44Coin() == nil { + switch wlt.Coin() { + case wallet.CoinTypeSkycoin: + wlt.SetBip44Coin(bip44.CoinTypeSkycoin) + case wallet.CoinTypeBitcoin: + wlt.SetBip44Coin(bip44.CoinTypeBitcoin) + default: + return nil, errors.New("bip44 coin type not set") + } + } + + // validateMeta wallet before encrypting + if err := validateMeta(wlt.Meta); err != nil { + return nil, err + } + + // generates a default account + var accountName = DefaultAccountName + if advOpts.DefaultBip44AccountName != "" { + accountName = advOpts.DefaultBip44AccountName + } + + _, err := wlt.NewAccount(accountName) + if err != nil { + return nil, fmt.Errorf("generate default account failed: %v", err) + } + + // Generate addresses if options.GenrateN > 0 + generateN := advOpts.GenerateN + if generateN == 0 { + generateN = 1 + } + + if _, err := wlt.GenerateAddresses(wallet.OptionGenerateN(generateN)); err != nil { + return nil, err + } + + // Generate a default change address + if _, err := wlt.GenerateAddresses(wallet.OptionGenerateN(1), wallet.OptionChange()); err != nil { + return nil, err + } + + scanN := advOpts.ScanN + if scanN > 0 { + if advOpts.TF == nil { + return nil, errors.New("missing transaction finder for scanning addresses") + } + + if scanN > generateN { + scanN = scanN - generateN + } + + _, err := wlt.ScanAddresses(scanN, advOpts.TF) + if err != nil { + return nil, err + } + } + + // encrypts wallet if options.Encrypt is true + if advOpts.Encrypt { + if wlt.IsTemp() { + return nil, wallet.ErrEncryptTempWallet + } + + if len(advOpts.Password) == 0 { + return nil, errors.New("missing password for encrypting wallet") + } + + if err := wlt.Lock(advOpts.Password); err != nil { + return nil, err + } + } + + // validateMeta the wallet again after encrypted + if err := validateMeta(wlt.Meta); err != nil { + return nil, err + } + return wlt, nil +} + +func validateMeta(m wallet.Meta) error { + if m[wallet.MetaType] != WalletType { + return wallet.ErrInvalidWalletType + } + + if s := m[wallet.MetaBip44Coin]; s == "" { + return errors.New("missing bip44 coin type") + } else if _, err := strconv.ParseUint(s, 10, 32); err != nil { + return fmt.Errorf("invalid bip44 coin type: %v", err) + } + + if err := wallet.ValidateMeta(m); err != nil { + return err + } + + if s := m[wallet.MetaSeed]; s != "" { + if err := bip39.ValidateMnemonic(s); err != nil { + return err + } + } + + if err := wallet.ValidateMetaCryptoType(m); err != nil { + return err + } + + return wallet.ValidateMetaSeed(m) +} + +// SetDecoder sets the wallet decoder +func (w *Wallet) SetDecoder(d wallet.Decoder) { + w.decoder = d +} + +// NewAccount create a bip44 wallet account, returns account index and +// error, if any. +func (w *Wallet) NewAccount(name string) (uint32, error) { + return w.accountManager.new(bip44AccountCreateOptions{ + name: name, + seed: w.Seed(), + seedPassphrase: w.SeedPassphrase(), + coinType: w.Coin(), + bip44CoinType: w.Bip44Coin(), + }) +} + +// newExternalAddresses generates addresses on external chain of selected account +func (w *Wallet) newExternalAddresses(account, n uint32) ([]cipher.Addresser, error) { + return w.newAddresses(account, bip44.ExternalChainIndex, n) +} + +// NewChangeAddresses generates addresses on change chain of selected account +func (w *Wallet) newChangeAddresses(account, n uint32) ([]cipher.Addresser, error) { + return w.newAddresses(account, bip44.ChangeChainIndex, n) +} + +// externalEntries returns the entries on external chain +func (w *Wallet) externalEntries(account uint32) (wallet.Entries, error) { + return w.entries(account, bip44.ExternalChainIndex) +} + +// +//// ChangeEntries returns the entries on change chain +//func (w *Wallet) ChangeEntries(account uint32) (wallet.Entries, error) { +// return w.accounts.entries(account, bip44.ChangeChainIndex) +//} +// +//// ExternalEntriesLen returns the external chain entries length of selected account +//func (w *Wallet) ExternalEntriesLen(account uint32) (uint32, error) { +// return w.accounts.entriesLen(account, bip44.ExternalChainIndex) +//} +// +//// ChangeEntriesLen returns the change chain entries length of selected account +//func (w *Wallet) ChangeEntriesLen(account uint32) (uint32, error) { +// return w.accounts.entriesLen(account, bip44.ChangeChainIndex) +//} +// +//// ExternalEntryAt returns the entry at the given index on external chain of selected account +//func (w *Wallet) ExternalEntryAt(account, i uint32) (wallet.Entry, error) { +// return w.accounts.entryAt(account, bip44.ExternalChainIndex, i) +//} +// +//// ChangeEntryAt returns the entry at the given index on change chain of selected account +//func (w *Wallet) ChangeEntryAt(account, i uint32) (wallet.Entry, error) { +// return w.accounts.entryAt(account, bip44.ChangeChainIndex, i) +//} +// +//// GetEntry returns the entry of given address on selected account +//func (w *Wallet) GetEntry(account uint32, address cipher.Addresser) (wallet.Entry, bool, error) { +// return w.accounts.getEntry(account, address) +//} + +// Serialize encodes the bip44 wallet to []byte +func (w Wallet) Serialize() ([]byte, error) { + if w.decoder == nil { + w.decoder = defaultWalletDecoder + } + return w.decoder.Encode(&w) +} + +// Deserialize decodes the []byte to a bip44 wallet +func (w *Wallet) Deserialize(b []byte) error { + if w.decoder == nil { + w.decoder = defaultWalletDecoder + } + toW, err := w.decoder.Decode(b) + if err != nil { + return err + } + toW2 := toW.(*Wallet) + + toW2.decoder = w.decoder + *w = *toW2 + return nil +} + +// IsEncrypted returns whether the wallet is encrypted +func (w Wallet) IsEncrypted() bool { + return w.Meta.IsEncrypted() +} + +// Lock encrypts the wallet if it is unencrypted, return false +// if it is already encrypted. +func (w *Wallet) Lock(password []byte) error { + if w.IsTemp() { + return wallet.ErrEncryptTempWallet + } + + if len(password) == 0 { + return wallet.ErrMissingPassword + } + + if w.IsEncrypted() { + return wallet.ErrWalletEncrypted + } + + wlt := w.Clone().(*Wallet) + + ss := make(wallet.Secrets) + defer func() { + ss.Erase() + wlt.Erase() + }() + + wlt.packSecrets(ss) + + sb, err := ss.Serialize() + if err != nil { + return err + } + + cryptoType := wlt.Meta.CryptoType() + if cryptoType == "" { + cryptoType = crypto.DefaultCryptoType + } + + cryptor, err := crypto.GetCrypto(cryptoType) + if err != nil { + return err + } + + encSecret, err := cryptor.Encrypt(sb, password) + if err != nil { + return err + } + + // Sets wallet as encrypted, updates secret field. + wlt.SetEncrypted(cryptoType, string(encSecret)) + + // Wipes the secret fields in wlt + wlt.Erase() + + // Wipes the secret fields in w + w.Erase() + + w.copyFrom(wlt) + return nil +} + +// Unlock decrypt the wallet +func (w *Wallet) Unlock(password []byte) (wallet.Wallet, error) { + if !w.IsEncrypted() { + return nil, wallet.ErrWalletNotEncrypted + } + + if len(password) == 0 { + return nil, wallet.ErrMissingPassword + } + + sstr := w.Secrets() + if sstr == "" { + return nil, errors.New("wallet.Secrets missing from wallet") + } + + ct := w.CryptoType() + if ct == "" { + return nil, errors.New("missing crypto type") + } + + cryptor, err := crypto.GetCrypto(ct) + if err != nil { + return nil, err + } + + sb, err := cryptor.Decrypt([]byte(sstr), password) + if err != nil { + return nil, wallet.ErrInvalidPassword + } + + defer func() { + // Wipes the data from secrets bytes buffer + for i := range sb { + sb[i] = 0 + } + }() + + ss := make(wallet.Secrets) + defer ss.Erase() + if err := ss.Deserialize(sb); err != nil { + return nil, err + } + + cw := w.Clone().(*Wallet) + + initSSLen := len(ss) + // fills secrets for those new generated addresses + if err := cw.syncSecrets(ss); err != nil { + return nil, err + } + + if len(ss) > initSSLen { + // new secrets generated, update the secrets field of the locked wallet + sb, err := ss.Serialize() + if err != nil { + return nil, err + } + + encSecret, err := cryptor.Encrypt(sb, password) + if err != nil { + return nil, err + } + + // Sets wallet as encrypted, updates secret field. + w.SetEncrypted(ct, string(encSecret)) + } + + if err := cw.unpackSecrets(ss); err != nil { + return nil, err + } + cw.SetDecrypted() + return cw, nil +} + +// Fingerprint returns a unique ID fingerprint for this wallet, composed of its wallet type and initial address +func (w Wallet) Fingerprint() string { + addr := "" + cw := w.Clone().(*Wallet) + if w.accountManager.len() == 0 { + // Due to the value receiver of the Wallet, the new account should not be applied to + // the wallet. + _, err := cw.NewAccount(DefaultAccountName) + if err != nil { + panic(err) + } + } + + entries, err := cw.externalEntries(0) + if err != nil { + logger.WithError(err).Panic("Fingerprint get external entries failed") + return "" + } + + if len(entries) == 0 { + if !cw.IsEncrypted() { + addrs, err := cw.newExternalAddresses(0, 1) + if err != nil { + logger.WithError(err).Panic("Fingerprint failed to generate initial entry for empty wallet") + } + addr = addrs[0].String() + } + } else { + addr = entries[0].Address.String() + } + return fmt.Sprintf("%s-%s", cw.Type(), addr) +} + +// Clone deep clone of the bip44 wallet +func (w Wallet) Clone() wallet.Wallet { + return &Wallet{ + Meta: w.Meta.Clone(), + accountManager: w.accountManager.clone(), + decoder: w.decoder, + } +} + +func (w *Wallet) copyFrom(wlt *Wallet) { + w.Meta = wlt.Meta.Clone() + w.accountManager = wlt.accountManager.clone() + w.decoder = wlt.decoder +} + +// CopyFromRef copies the src wallet with a pointer dereference +func (w *Wallet) CopyFromRef(src wallet.Wallet) { + *w = *(src.(*Wallet)) +} + +// Accounts returns the list of accounts +func (w *Wallet) Accounts() []wallet.Bip44Account { + return w.accountManager.all() +} + +// GetEntries provides entries service to access the external chain of given account +func (w *Wallet) GetEntries(options ...wallet.Option) (wallet.Entries, error) { + opts := getBip44Options(options...) + + var entries wallet.Entries + switch opts.ChainMode { + case wallet.DefaultChain, wallet.AllChains: + ees, err := w.entries(opts.Account, bip44.ExternalChainIndex) + if err != nil { + return nil, fmt.Errorf("failed to get external chain, err: %v", err) + } + + ces, err := w.entries(opts.Account, bip44.ChangeChainIndex) + if err != nil { + return nil, fmt.Errorf("failed to get change chain, err: %v", err) + } + + entries = append(ees, ces...) + case wallet.ExternalChain: + es, err := w.entries(opts.Account, bip44.ExternalChainIndex) + if err != nil { + return nil, fmt.Errorf("failed to get external chain, err: %v", err) + } + entries = es + case wallet.ChangeChain: + es, err := w.entries(opts.Account, bip44.ChangeChainIndex) + if err != nil { + return nil, fmt.Errorf("failed to get change chain, err: %v", err) + } + entries = es + default: + return nil, fmt.Errorf("unknown chain mode: %d", opts.ChainMode) + } + return entries, nil +} + +// Erase wipes all sensitive data +func (w *Wallet) Erase() { + w.SetSeed("") + w.SetSeedPassphrase("") + w.accountManager.erase() +} + +// syncSecrets synchronize the secrets with all addresses, ensure that +// each address has the secret key stored in the secrets +func (w Wallet) syncSecrets(ss wallet.Secrets) error { + return w.accountManager.syncSecrets(ss) +} + +// packSecrets saves all sensitive data to the secrets map. +func (w Wallet) packSecrets(ss wallet.Secrets) { + ss.Set(wallet.SecretSeed, w.Meta.Seed()) + ss.Set(wallet.SecretSeedPassphrase, w.Meta.SeedPassphrase()) + w.accountManager.packSecrets(ss) +} + +func (w *Wallet) unpackSecrets(ss wallet.Secrets) error { + seed, ok := ss.Get(wallet.SecretSeed) + if !ok { + return errors.New("seed does not exist in secrets") + } + w.Meta.SetSeed(seed) + + passphrase, _ := ss.Get(wallet.SecretSeedPassphrase) + w.Meta.SetSeedPassphrase(passphrase) + + return w.accountManager.unpackSecrets(ss) +} + +func getBip44Options(options ...wallet.Option) *wallet.Bip44EntriesOptions { + v := &wallet.Bip44EntriesOptions{} + for _, opt := range options { + opt(v) + } + + return v +} + +// ScanAddresses scans both the external and change addresses to find addresses with +// transactions. +// Only external addresses will be returned. +func (w *Wallet) ScanAddresses(scanN uint64, tf wallet.TransactionsFinder) ([]cipher.Addresser, error) { + if scanN == 0 { + return nil, nil + } + + w2 := w.Clone().(*Wallet) + + accounts := w2.Accounts() + scanAddresses := func(account, chain uint32) ([]cipher.Addresser, int, int, error) { + nExistingAddrs, err := w2.entriesLen(account, chain) + if err != nil { + return nil, 0, 0, err + } + + // generates the addresses to scan + addrs, err := w2.accountManager.newAddresses(account, chain, uint32(scanN)) + if err != nil { + return nil, 0, 0, err + } + + // finds if these addresses had any activity + active, err := tf.AddressesActivity(addrs) + if err != nil { + return nil, 0, 0, err + } + + // checks activity from the last one until we find the address that has activity + var keepNum uint64 + for i := len(active) - 1; i >= 0; i-- { + if active[i] { + keepNum = uint64(i + 1) + break + } + } + + return addrs[:keepNum], int(nExistingAddrs), int(keepNum), nil + } + + // [accounts][chains] array + generateAddresses := make([][]uint32, len(accounts)) + + // only external addresses will be returned + var retAddrs []cipher.Addresser + + for i, a := range accounts { + addrs, initLen, keepNum, err := scanAddresses(a.Index, bip44.ExternalChainIndex) + if err != nil { + return nil, err + } + + retAddrs = append(retAddrs, addrs...) + + generateAddresses[i] = append(generateAddresses[i], uint32(initLen+keepNum)) + + _, initLen, keepNum, err = scanAddresses(a.Index, bip44.ChangeChainIndex) + if err != nil { + return nil, err + } + + generateAddresses[i] = append(generateAddresses[i], uint32(initLen+keepNum)) + } + + w2.reset() + for i, a := range accounts { + // generate addresses on external chains + for _, c := range []uint32{bip44.ExternalChainIndex, bip44.ChangeChainIndex} { + _, err := w2.newAddresses(a.Index, c, generateAddresses[i][c]) + if err != nil { + return nil, err + } + } + } + + *w = *w2 + + return retAddrs, nil +} + +// GetAddresses returns all addresses on selected account and chain, +// if no options ware provided, addresses on external chain of account 0 will be returned. +func (w *Wallet) GetAddresses(options ...wallet.Option) ([]cipher.Addresser, error) { + entries, err := w.GetEntries(options...) + if err != nil { + return nil, err + } + + var addrs []cipher.Addresser + for _, e := range entries { + addrs = append(addrs, e.Address) + } + + return addrs, nil +} + +// GenerateAddresses generates addresses on selected account and chain, +// if no options are provided, addresses will be generated on external chain of account 0. +func (w *Wallet) GenerateAddresses(options ...wallet.Option) ([]cipher.Addresser, error) { + num := wallet.GetGenerateNFromOptions(options...) + opts := getBip44Options(options...) + switch opts.ChainMode { + case wallet.DefaultChain, wallet.ExternalChain: + return w.newAddresses(opts.Account, bip44.ExternalChainIndex, uint32(num)) + case wallet.ChangeChain: + return w.newAddresses(opts.Account, bip44.ChangeChainIndex, uint32(num)) + case wallet.AllChains: + return nil, errors.New("could not generate new addresses on both external and internal chains at once") + default: + return nil, fmt.Errorf("unknown chain mode: %d", opts.ChainMode) + } +} + +// GetEntryAt returns the entry at specified index of selected chain. +// If no chain is specified, the entry of append(external, change)[index] will be returned. +func (w *Wallet) GetEntryAt(i int, options ...wallet.Option) (wallet.Entry, error) { + entries, err := w.GetEntries(options...) + if err != nil { + return wallet.Entry{}, err + } + + if i >= len(entries) { + return wallet.Entry{}, fmt.Errorf("entry index %d out of range", i) + } + + return entries[i], nil +} + +// GetEntry returns the entry of given address on selected account and chain, +// if no options are provided, check the external chain of account 0. +func (w *Wallet) GetEntry(addr cipher.Addresser, options ...wallet.Option) (wallet.Entry, error) { + opts := getBip44Options(options...) + e, ok, err := w.getEntry(opts.Account, addr) + if err != nil { + return wallet.Entry{}, err + } + + if !ok { + return wallet.Entry{}, wallet.ErrEntryNotFound + } + + return e, nil +} + +// HasEntry checks whether the entry of given address exists on selected account and chain, +// if no options are provided, check the external chain of account 0. +func (w *Wallet) HasEntry(addr cipher.Addresser, options ...wallet.Option) (bool, error) { + opts := getBip44Options(options...) + _, ok, err := w.getEntry(opts.Account, addr) + if err != nil { + return false, err + } + + return ok, nil +} + +// EntriesLen returns the entries length of selected account and chain, +// if no options are provided, entries length of all chains will +// be returned. +func (w *Wallet) EntriesLen(options ...wallet.Option) (int, error) { + opts := getBip44Options(options...) + switch opts.ChainMode { + case wallet.ExternalChain: + l, err := w.entriesLen(opts.Account, bip44.ExternalChainIndex) + return int(l), err + case wallet.ChangeChain: + l, err := w.entriesLen(opts.Account, bip44.ChangeChainIndex) + return int(l), err + case wallet.DefaultChain, wallet.AllChains: + el, err := w.entriesLen(opts.Account, bip44.ExternalChainIndex) + if err != nil { + return 0, fmt.Errorf("failed to get entries length of external chain, err: %v", err) + } + + cl, err := w.entriesLen(opts.Account, bip44.ChangeChainIndex) + if err != nil { + return 0, fmt.Errorf("failed to get entries length of change chain, err: %v", err) + } + return int(el + cl), err + default: + return 0, fmt.Errorf("unknown chain mode: %d", opts.ChainMode) + } +} + +func (w *Wallet) reset() { + w.accountManager.reset() +} + +// PeekChangeAddress returns the last entry address on change chain if +// no transactions are found, otherwise, returns with a new address. +func (w *Wallet) PeekChangeAddress(tf wallet.TransactionsFinder) (cipher.Addresser, error) { + onChangeChain := wallet.OptionChange() + entries, err := w.GetEntries(onChangeChain) + if err != nil { + return nil, err + } + + if len(entries) == 0 { + // generate a new address and return + addrs, err := w.GenerateAddresses(wallet.OptionGenerateN(1), onChangeChain) + if err != nil { + return nil, err + } + + return addrs[0], nil + } + + // checks if the last entry address has transactions + addr := entries[len(entries)-1].Address + oks, err := tf.AddressesActivity([]cipher.Addresser{addr}) + if err != nil { + return nil, err + } + + if oks[0] == false { + return addr, nil + } + + // generate a new address and return it + addrs, err := w.GenerateAddresses(wallet.OptionGenerateN(1), onChangeChain) + if err != nil { + return nil, err + } + return addrs[0], nil +} + +func makeChainPubKeys(a *bip44.Account) (*bip32.PublicKey, *bip32.PublicKey, error) { + external, err := a.NewPublicChildKey(0) + if err != nil { + return nil, nil, fmt.Errorf("Create external chain public key failed: %v", err) + } + + change, err := a.NewPublicChildKey(1) + if err != nil { + return nil, nil, fmt.Errorf("Create change chain public key failed: %v", err) + } + return external, change, nil +} + +// Loader implements the wallet.Loader interface +type Loader struct{} + +// Load implements the Load method of the wallet.Loader interface +func (l Loader) Load(data []byte) (wallet.Wallet, error) { + w := &Wallet{} + if err := w.Deserialize(data); err != nil { + return nil, err + } + + return w, nil +} + +// Creator implements the wallet.Creator interface +type Creator struct{} + +// Create implements the Create method of wallet.Creator interface +func (c Creator) Create(filename, label, seed string, options wallet.Options) (wallet.Wallet, error) { + opts := convertOptions(options) + return NewWallet( + filename, + label, + seed, + options.SeedPassphrase, + opts...) +} + +// convertOptions collects the cared fields from wallet.Options +// and converts them to an wallet.Option slice +func convertOptions(options wallet.Options) []wallet.Option { + var opts []wallet.Option + + if options.Coin != "" { + opts = append(opts, wallet.OptionCoinType(options.Coin)) + } + + if options.Bip44Coin != nil { + opts = append(opts, wallet.OptionBip44Coin(options.Bip44Coin)) + } + + if options.CryptoType != "" { + opts = append(opts, wallet.OptionCryptoType(options.CryptoType)) + } + + if options.Decoder != nil { + opts = append(opts, wallet.OptionDecoder(options.Decoder)) + } + + if options.Encrypt { + opts = append(opts, wallet.OptionEncrypt(true)) + opts = append(opts, wallet.OptionPassword(options.Password)) + } + + if options.GenerateN > 0 { + opts = append(opts, wallet.OptionGenerateN(options.GenerateN)) + } + + if options.ScanN > 0 { + opts = append(opts, wallet.OptionScanN(options.ScanN)) + opts = append(opts, wallet.OptionTransactionsFinder(options.TF)) + } + + if options.Temp { + opts = append(opts, wallet.OptionTemp(true)) + } + + return opts +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/collection/decoder.go b/vendor/github.com/skycoin/skycoin/src/wallet/collection/decoder.go new file mode 100644 index 000000000..575c2eed8 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/collection/decoder.go @@ -0,0 +1,176 @@ +package collection + +import ( + "encoding/json" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/wallet" +) + +// JSONDecoder implements the Decoder interface for deterministic wallet +type JSONDecoder struct{} + +// Encode encodes the deterministic wallet to []byte, and error if any +func (d JSONDecoder) Encode(w wallet.Wallet) ([]byte, error) { + rw := newReadableDeterministicWallet(w.(*Wallet)) + return json.MarshalIndent(rw, "", " ") +} + +// Decode decodes the deterministic wallet to []byte, and error if any +func (d JSONDecoder) Decode(b []byte) (wallet.Wallet, error) { + var rw readableDeterministicWallet + if err := json.Unmarshal(b, &rw); err != nil { + return nil, err + } + + return rw.toWallet() +} + +// readableEntry wallet entry with json tags +type readableEntry struct { + Address string `json:"address"` + Public string `json:"public_key"` + Secret string `json:"secret_key"` +} + +// newReadableEntry creates readable wallet entry +func newReadableEntry(coinType wallet.CoinType, e wallet.Entry) readableEntry { + re := readableEntry{} + if !e.Address.Null() { + re.Address = e.Address.String() + } + + if !e.Public.Null() { + re.Public = e.Public.Hex() + } + + if !e.Secret.Null() { + d := wallet.ResolveSecKeyDecoder(coinType) + re.Secret = d.SecKeyToHex(e.Secret) + } + + return re +} + +// readableEntries array of readableEntry +type readableEntries []readableEntry + +func newReadableEntries(entries wallet.Entries, coinType wallet.CoinType) readableEntries { + re := make(readableEntries, len(entries)) + for i, e := range entries { + re[i] = newReadableEntry(coinType, e) + } + return re +} + +// toWalletEntries convert readable entries to entries +// converts base on the wallet version. +func (res readableEntries) toWalletEntries(coinType wallet.CoinType, isEncrypted bool) ([]wallet.Entry, error) { + entries := make([]wallet.Entry, len(res)) + for i, re := range res { + e, err := newEntryFromReadable(coinType, &re) + if err != nil { + return []wallet.Entry{}, err + } + + // Verify the wallet if it's not encrypted + if !isEncrypted && re.Secret != "" { + if err := e.Verify(); err != nil { + return nil, err + } + } + + entries[i] = *e + } + return entries, nil +} + +// newEntryFromReadable creates WalletEntry base one ReadableWalletEntry +func newEntryFromReadable(coinType wallet.CoinType, re *readableEntry) (*wallet.Entry, error) { + var a cipher.Addresser + var err error + + switch coinType { + case wallet.CoinTypeSkycoin: + a, err = cipher.DecodeBase58Address(re.Address) + case wallet.CoinTypeBitcoin: + a, err = cipher.DecodeBase58BitcoinAddress(re.Address) + default: + panic(fmt.Errorf("invalid coin type %q", coinType)) + } + + if err != nil { + return nil, err + } + + p, err := cipher.PubKeyFromHex(re.Public) + if err != nil { + return nil, err + } + + // Decodes the secret hex string if any + var secret cipher.SecKey + if re.Secret != "" { + switch coinType { + case wallet.CoinTypeSkycoin: + secret, err = cipher.SecKeyFromHex(re.Secret) + case wallet.CoinTypeBitcoin: + secret, err = cipher.SecKeyFromBitcoinWalletImportFormat(re.Secret) + default: + panic(fmt.Errorf("invalid coin type %q", coinType)) + } + if err != nil { + return nil, err + } + } + + return &wallet.Entry{ + Address: a, + Public: p, + Secret: secret, + }, nil +} + +// readableDeterministicWallet used for [de]serialization of a deterministic wallet +type readableDeterministicWallet struct { + wallet.Meta `json:"meta"` + Entries readableEntries `json:"entries"` +} + +// newReadableDeterministicWallet creates readable wallet +func newReadableDeterministicWallet(w *Wallet) *readableDeterministicWallet { + return &readableDeterministicWallet{ + Meta: w.Meta.Clone(), + Entries: newReadableEntries(w.entries, w.Meta.Coin()), + } +} + +// toWallet convert readable wallet to Wallet +func (rw *readableDeterministicWallet) toWallet() (wallet.Wallet, error) { + w := &Wallet{ + Meta: rw.Meta.Clone(), + } + + // make sure "sky", "btc" normalize to "skycoin", "bitcoin" + ct, err := wallet.ResolveCoinType(string(w.Meta.Coin())) + if err != nil { + return nil, err + } + + w.SetCoin(ct) + + if err := w.Validate(); err != nil { + err := fmt.Errorf("invalid wallet %q: %v", w.Filename(), err) + return nil, err + } + + ets, err := rw.Entries.toWalletEntries(w.Meta.Coin(), w.Meta.IsEncrypted()) + if err != nil { + return nil, err + } + + w.entries = ets + + return w, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/collection/wallet.go b/vendor/github.com/skycoin/skycoin/src/wallet/collection/wallet.go new file mode 100644 index 000000000..97f58be78 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/collection/wallet.go @@ -0,0 +1,486 @@ +package collection + +import ( + "errors" + "fmt" + "strconv" + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/crypto" + "github.com/skycoin/skycoin/src/wallet" +) + +const ( + // WalletType represents the collection wallet type + WalletType = "collection" +) + +var defaultWalletDecoder = &JSONDecoder{} + +func init() { + if err := wallet.RegisterCreator(WalletType, &Creator{}); err != nil { + panic(err) + } + + if err := wallet.RegisterLoader(WalletType, &Loader{}); err != nil { + panic(err) + } +} + +// Wallet manages keys as an arbitrary collection. +// It has no defined keypair generator. The only way to add keys to the +// wallet is to explicitly add them. +// This wallet does not support address scanning or generation. +// This wallet does not use seeds. +type Wallet struct { + wallet.Meta + entries wallet.Entries + decoder wallet.Decoder +} + +// NewWallet creates a collection wallet +func NewWallet(filename, label string, options ...wallet.Option) (*Wallet, error) { + if label == "" { + return nil, wallet.ErrMissingLabel + } + + var wlt = &Wallet{ + Meta: wallet.Meta{ + wallet.MetaFilename: filename, + wallet.MetaLabel: label, + wallet.MetaEncrypted: "false", + wallet.MetaType: WalletType, + wallet.MetaVersion: wallet.Version, + wallet.MetaCoin: string(wallet.CoinTypeSkycoin), + wallet.MetaCryptoType: string(crypto.DefaultCryptoType), + wallet.MetaTimestamp: strconv.FormatInt(time.Now().Unix(), 10), + }, + entries: wallet.Entries{}, + decoder: defaultWalletDecoder, + } + + advOpts := &wallet.AdvancedOptions{} + for _, opt := range options { + opt(wlt) + opt(advOpts) + } + + // validateMeta wallet before encryption + if err := validateMeta(wlt.Meta); err != nil { + return nil, err + } + + if advOpts.GenerateN != 0 || advOpts.ScanN != 0 { + return nil, wallet.NewError(fmt.Errorf("wallet scanning is not defined for %q wallet", WalletType)) + } + + if len(advOpts.PrivateKeys) > 0 { + wlt.entries = make([]wallet.Entry, 0, len(advOpts.PrivateKeys)) + // generate new entries from private keys and add them to wallet + for _, sk := range advOpts.PrivateKeys { + pk, err := cipher.PubKeyFromSecKey(sk) + if err != nil { + return nil, wallet.NewError(errors.New("invalid wallet private key")) + } + + wlt.entries = append(wlt.entries, wallet.Entry{ + Address: cipher.AddressFromPubKey(pk), + Public: pk, + Secret: sk, + }) + } + } + + if advOpts.Encrypt { + if wlt.IsTemp() { + return nil, wallet.ErrEncryptTempWallet + } + + if len(advOpts.Password) == 0 { + return nil, wallet.ErrMissingPassword + } + + if err := wlt.Lock(advOpts.Password); err != nil { + return nil, err + } + } else { + if len(advOpts.Password) > 0 { + return nil, wallet.ErrMissingEncrypt + } + } + + if err := validateMeta(wlt.Meta); err != nil { + return nil, err + } + + return wlt, nil +} + +func validateMeta(m wallet.Meta) error { + if m[wallet.MetaType] != WalletType { + return wallet.ErrInvalidWalletType + } + + if m[wallet.MetaSeed] != "" { + return wallet.NewError(fmt.Errorf("seed should not be provided for %q wallets", WalletType)) + } + if err := wallet.ValidateMetaCryptoType(m); err != nil { + return err + } + + return wallet.ValidateMeta(m) +} + +// SetDecoder sets the decoder +func (w *Wallet) SetDecoder(d wallet.Decoder) { + w.decoder = d +} + +// Serialize encode the wallet to byte slice +func (w Wallet) Serialize() ([]byte, error) { + if w.decoder == nil { + w.decoder = defaultWalletDecoder + } + + return w.decoder.Encode(&w) +} + +// Deserialize decodes wallet from byte slice +func (w *Wallet) Deserialize(data []byte) error { + if w.decoder == nil { + w.decoder = defaultWalletDecoder + } + + wlt, err := w.decoder.Decode(data) + if err != nil { + return err + } + + w2 := wlt.(*Wallet) + w2.decoder = w.decoder + *w = *w2 + return nil +} + +// Lock encrypts the wallet secrets +func (w *Wallet) Lock(password []byte) error { + if w.IsTemp() { + return wallet.ErrEncryptTempWallet + } + + if len(password) == 0 { + return wallet.ErrMissingPassword + } + + if w.IsEncrypted() { + return wallet.ErrWalletEncrypted + } + + wlt := w.Clone().(*Wallet) + + ss := make(wallet.Secrets) + defer func() { + ss.Erase() + wlt.Erase() + }() + + wlt.packSecrets(ss) + + sb, err := ss.Serialize() + if err != nil { + return err + } + + cryptoType := wlt.CryptoType() + if cryptoType == "" { + cryptoType = crypto.DefaultCryptoType + } + + cryptor, err := crypto.GetCrypto(cryptoType) + if err != nil { + return err + } + + encSecret, err := cryptor.Encrypt(sb, password) + if err != nil { + return err + } + + wlt.SetEncrypted(cryptoType, string(encSecret)) + + wlt.Erase() + w.Erase() + w.copyFrom(wlt) + return nil +} + +// Unlock unlocks the encrypted wallet +func (w *Wallet) Unlock(password []byte) (wallet.Wallet, error) { + if !w.IsEncrypted() { + return nil, wallet.ErrWalletNotEncrypted + } + + if len(password) == 0 { + return nil, wallet.ErrMissingPassword + } + + sstr := w.Secrets() + if sstr == "" { + return nil, errors.New("missing secrets") + } + + ct := w.CryptoType() + if ct == "" { + return nil, errors.New("missing crypto type") + } + + cryptor, err := crypto.GetCrypto(ct) + if err != nil { + return nil, err + } + + sb, err := cryptor.Decrypt([]byte(sstr), password) + if err != nil { + return nil, wallet.ErrInvalidPassword + } + + defer func() { + // Wipes the data from secrets bytes buffer + for i := range sb { + sb[i] = 0 + } + }() + + ss := make(wallet.Secrets) + defer ss.Erase() + if err := ss.Deserialize(sb); err != nil { + return nil, err + } + + cw := w.Clone().(*Wallet) + if err := cw.unpackSecrets(ss); err != nil { + return nil, err + } + cw.SetDecrypted() + return cw, nil +} + +// packSecrets copies data from decrypted wallets into the secrets container +func (w *Wallet) packSecrets(ss wallet.Secrets) { + // ss.Set(wallet.SecretSeed, w.Meta.Seed()) + // ss.Set(wallet.SecretLastSeed, w.Meta.LastSeed()) + + // Saves entry secret keys in secrets + for _, e := range w.entries { + ss.Set(e.Address.String(), e.Secret.Hex()) + } +} + +// UnpackSecrets copies data from decrypted secrets into the wallet +func (w *Wallet) unpackSecrets(ss wallet.Secrets) error { + return w.entries.UnpackSecretKeys(ss) +} + +// Fingerprint returns an empty string; fingerprints are only defined for +// wallets with a seed +func (w *Wallet) Fingerprint() string { + return "" +} + +// Clone clones the wallet a new wallet object +func (w *Wallet) Clone() wallet.Wallet { + return &Wallet{ + Meta: w.Meta.Clone(), + entries: w.entries.Clone(), + decoder: w.decoder, + } +} + +// copyFrom copies the src wallet by reallocating +func (w *Wallet) copyFrom(src *Wallet) { + w.Meta = src.Meta.Clone() + w.entries = src.entries.Clone() +} + +// CopyFromRef copies the src wallet with a pointer dereference +func (w *Wallet) CopyFromRef(src wallet.Wallet) { + *w = *(src.(*Wallet)) +} + +// Accounts is not defined for collection wallet +func (w *Wallet) Accounts() []wallet.Bip44Account { + return nil +} + +// Erase wipes secret fields in wallet +func (w *Wallet) Erase() { + // w.Meta.EraseSeeds() + w.entries.Erase() +} + +// Validate validates the wallet +func (w *Wallet) Validate() error { + if err := w.Meta.Validate(); err != nil { + return err + } + + if w.Type() != WalletType { + return wallet.ErrInvalidWalletType + } + + if s := w.Meta[wallet.MetaSeed]; s != "" { + return errors.New("seed should not be in collection wallets") + } + + if s := w.Meta[wallet.MetaLastSeed]; s != "" { + return errors.New("lastSeed should not be in collection wallets") + } + return nil +} + +// ScanAddresses is a no-op for "collection" wallets +func (w *Wallet) ScanAddresses(scanN uint64, tf wallet.TransactionsFinder) ([]cipher.Addresser, error) { + return nil, wallet.NewError(errors.New("A collection wallet does not implement ScanAddresses")) +} + +// GenerateAddresses generates new addresses base on private keys parsed from options +func (w *Wallet) GenerateAddresses(options ...wallet.Option) ([]cipher.Addresser, error) { + privateKeys := wallet.GetPrivateKeysFromOptions(options...) + addrs := make([]cipher.Addresser, 0, len(privateKeys)) + for i, k := range privateKeys { + pk, err := cipher.PubKeyFromSecKey(k) + if err != nil { + return nil, err + } + addr := cipher.AddressFromPubKey(pk) + addrs = append(addrs, addr) + w.entries = append(w.entries, wallet.Entry{ + Address: addr, + Public: pk, + Secret: privateKeys[i], + }) + } + return addrs, nil +} + +// GetAddresses returns all addresses in wallet +func (w *Wallet) GetAddresses(_ ...wallet.Option) ([]cipher.Addresser, error) { + return w.entries.GetAddresses(), nil +} + +// GetEntries returns a copy of all entries held by the wallet +func (w *Wallet) GetEntries(_ ...wallet.Option) (wallet.Entries, error) { + return w.entries.Clone(), nil +} + +// GetEntryAt returns entry at a given index in the entries array +func (w *Wallet) GetEntryAt(i int, _ ...wallet.Option) (wallet.Entry, error) { + if i < 0 || i >= len(w.entries) { + return wallet.Entry{}, fmt.Errorf("entry index %d is out of range", i) + } + return w.entries[i], nil +} + +// GetEntry returns entry of given address +func (w *Wallet) GetEntry(a cipher.Addresser, _ ...wallet.Option) (wallet.Entry, error) { + e, ok := w.entries.Get(a) + if !ok { + return wallet.Entry{}, wallet.ErrEntryNotFound + } + return e, nil +} + +// HasEntry returns true if the wallet has an entry.Entry with a given cipher.Address. +func (w *Wallet) HasEntry(a cipher.Addresser, _ ...wallet.Option) (bool, error) { + return w.entries.Has(a), nil +} + +// EntriesLen returns the number of entries in the wallet +func (w *Wallet) EntriesLen(_ ...wallet.Option) (int, error) { + return len(w.entries), nil +} + +//// GenerateSkycoinAddresses is a no-op for "collection" wallets +//func (w *Wallet) GenerateSkycoinAddresses(num uint64) ([]cipher.Address, error) { +// return nil, wallet.NewError(errors.New("A collection wallet does not implement GenerateSkycoinAddresses")) +//} +// +//// GetSkycoinAddresses returns all Skycoin addresses in wallet. The wallet's coin type must be Skycoin. +//func (w *Wallet) GetSkycoinAddresses() ([]cipher.Address, error) { +// if w.Meta.Coin() != wallet.CoinTypeSkycoin { +// return nil, errors.New("Wallet coin type is not skycoin") +// } +// +// return w.Entries.GetSkycoinAddresses(), nil +//} + +// AddEntry adds a new entry to the wallet. +func (w *Wallet) AddEntry(e wallet.Entry) error { + if w.IsEncrypted() { + return wallet.ErrWalletEncrypted + } + + if err := e.Verify(); err != nil { + return err + } + + for _, entry := range w.entries { + if e.SkycoinAddress() == entry.SkycoinAddress() { + return errors.New("wallet already contains entry with this address") + } + } + + w.entries = append(w.entries, e) + return nil +} + +// Loader implements the wallet.Loader interface +type Loader struct{} + +// Load loads wallet from byte slice +func (l Loader) Load(data []byte) (wallet.Wallet, error) { + w := &Wallet{} + if err := w.Deserialize(data); err != nil { + return nil, err + } + return w, nil +} + +// Creator implements the wallet.Creator interface +type Creator struct{} + +// Create implements the wallet.Creator interface +func (c Creator) Create(filename, label, _ string, options wallet.Options) (wallet.Wallet, error) { + return NewWallet(filename, label, convertOptions(options)...) +} + +func convertOptions(options wallet.Options) []wallet.Option { + var opts []wallet.Option + if options.Coin != "" { + opts = append(opts, wallet.OptionCoinType(options.Coin)) + } + + if options.CryptoType != "" { + opts = append(opts, wallet.OptionCryptoType(options.CryptoType)) + } + + if options.Decoder != nil { + opts = append(opts, wallet.OptionDecoder(options.Decoder)) + } + + if options.Encrypt { + opts = append(opts, wallet.OptionEncrypt(true)) + opts = append(opts, wallet.OptionPassword(options.Password)) + } + + if options.Temp { + opts = append(opts, wallet.OptionTemp(true)) + } + + if len(options.CollectionPrivateKeys) > 0 { + opts = append(opts, wallet.OptionCollectionPrivateKeys(options.CollectionPrivateKeys)) + } + + return opts +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/creators.go b/vendor/github.com/skycoin/skycoin/src/wallet/creators.go new file mode 100644 index 000000000..3da24386e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/creators.go @@ -0,0 +1,53 @@ +package wallet + +import ( + "fmt" + "sync" +) + +var walletCreators creators + +// RegisterCreator register wallet creator +func RegisterCreator(walletType string, c Creator) error { + return walletCreators.add(walletType, c) +} + +func getCreator(walletType string) (Creator, bool) { + return walletCreators.get(walletType) +} + +// Creator is the interface that wraps the Create and Type methods. +// +// Create creates a wallet base on the parameters +type Creator interface { + Create(filename, label, seed string, options Options) (Wallet, error) +} + +type creators struct { + l sync.Mutex + wcs map[string]Creator +} + +// Add add a new creator to the wallet creator list +func (cs *creators) add(walletType string, c Creator) error { + cs.l.Lock() + defer cs.l.Unlock() + if cs.wcs == nil { + cs.wcs = map[string]Creator{} + } + + if _, ok := cs.wcs[walletType]; ok { + return fmt.Errorf("wallet creator for %s already exists", walletType) + } + + cs.wcs[walletType] = c + return nil +} + +// Get returns the wallet creator base on the type +func (cs *creators) get(walletType string) (Creator, bool) { + cs.l.Lock() + defer cs.l.Unlock() + c, ok := cs.wcs[walletType] + return c, ok +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/decoders.go b/vendor/github.com/skycoin/skycoin/src/wallet/decoders.go new file mode 100644 index 000000000..f7fecf1ea --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/decoders.go @@ -0,0 +1,114 @@ +package wallet + +import ( + "fmt" + + "github.com/skycoin/skycoin/src/cipher" +) + +var registeredAddressSecKeyDecoders = initAddressSecKeyDecoders() + +type addressSecKeyDecoders struct { + adapters map[CoinType]AddressSecKeyDecoder +} + +func initAddressSecKeyDecoders() addressSecKeyDecoders { + return addressSecKeyDecoders{ + adapters: map[CoinType]AddressSecKeyDecoder{ + CoinTypeSkycoin: skycoinDecoder{}, + CoinTypeBitcoin: bitcoinDecoder{}, + }, + } +} + +func (a addressSecKeyDecoders) get(coinType CoinType) AddressSecKeyDecoder { + adpt, ok := a.adapters[coinType] + if !ok { + return skycoinDecoder{} + } + return adpt +} + +func (a addressSecKeyDecoders) add(coinType CoinType, ca AddressSecKeyDecoder) error { + if _, ok := a.adapters[coinType]; ok { + return fmt.Errorf("coin adapter for %s already registered", coinType) + } + a.adapters[coinType] = ca + return nil +} + +// RegisterAddressSecKeyDecoder registers an address and seckey decoder +func RegisterAddressSecKeyDecoder(coinType CoinType, d AddressSecKeyDecoder) error { + return registeredAddressSecKeyDecoders.add(coinType, d) +} + +// ResolveAddressSecKeyDecoder returns an address and seckey decoder by coin type, +// if the corresponding decoder of is not found, returns +// the skycoin decoder. +func ResolveAddressSecKeyDecoder(coinType CoinType) AddressSecKeyDecoder { + return registeredAddressSecKeyDecoders.get(coinType) +} + +// ResolveAddressDecoder returns an address decoder by coin type. +func ResolveAddressDecoder(coinType CoinType) AddressDecoder { + return registeredAddressSecKeyDecoders.get(coinType) +} + +// ResolveSecKeyDecoder returns a SecKey decoder +func ResolveSecKeyDecoder(coinType CoinType) SecKeyDecoder { + return registeredAddressSecKeyDecoders.get(coinType) +} + +// AddressDecoder interface that wraps methods for encoding/decoding cipher.Addresser +type AddressDecoder interface { + DecodeBase58Address(addr string) (cipher.Addresser, error) + AddressFromPubKey(key cipher.PubKey) cipher.Addresser +} + +// SecKeyDecoder interface that wraps the methods for encoding/decoding cipher.SecKey +type SecKeyDecoder interface { + SecKeyToHex(key cipher.SecKey) string + SecKeyFromHex(key string) (cipher.SecKey, error) +} + +// AddressSecKeyDecoder interface that embedes the AddressDecoder and SecKeyDecoder +type AddressSecKeyDecoder interface { + AddressDecoder + SecKeyDecoder +} + +type skycoinDecoder struct{} + +func (s skycoinDecoder) AddressFromPubKey(key cipher.PubKey) cipher.Addresser { + return cipher.AddressFromPubKey(key) +} + +func (s skycoinDecoder) DecodeBase58Address(addr string) (cipher.Addresser, error) { + return cipher.DecodeBase58Address(addr) +} + +func (s skycoinDecoder) SecKeyToHex(secKey cipher.SecKey) string { + return secKey.Hex() +} + +func (s skycoinDecoder) SecKeyFromHex(secKey string) (cipher.SecKey, error) { + return cipher.SecKeyFromHex(secKey) +} + +type bitcoinDecoder struct{} + +func (b bitcoinDecoder) AddressFromPubKey(key cipher.PubKey) cipher.Addresser { + return cipher.BitcoinAddressFromPubKey(key) +} + +func (b bitcoinDecoder) DecodeBase58Address(addr string) (cipher.Addresser, error) { + return cipher.DecodeBase58BitcoinAddress(addr) +} + +func (b bitcoinDecoder) SecKeyToHex(secKey cipher.SecKey) string { + return cipher.BitcoinWalletImportFormatFromSeckey(secKey) +} + +func (b bitcoinDecoder) SecKeyFromHex(secKey string) (cipher.SecKey, error) { + return cipher.SecKeyFromBitcoinWalletImportFormat(secKey) +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/deterministic/decoder.go b/vendor/github.com/skycoin/skycoin/src/wallet/deterministic/decoder.go new file mode 100644 index 000000000..b1903b7b3 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/deterministic/decoder.go @@ -0,0 +1,178 @@ +package deterministic + +import ( + "encoding/json" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/wallet" +) + +// JSONDecoder implements the Decoder interface for deterministic wallet +type JSONDecoder struct{} + +// Encode encodes the deterministic wallet to []byte, and error if any +func (d JSONDecoder) Encode(w wallet.Wallet) ([]byte, error) { + rw := newReadableDeterministicWallet(w.(*Wallet)) + return json.MarshalIndent(rw, "", " ") +} + +// Decode decodes the deterministic wallet from byte slice +func (d JSONDecoder) Decode(b []byte) (wallet.Wallet, error) { + var rw readableDeterministicWallet + if err := json.Unmarshal(b, &rw); err != nil { + return nil, err + } + + return rw.toWallet() +} + +// readableEntry wallet entry with json tags +type readableEntry struct { + Address string `json:"address"` + Public string `json:"public_key"` + Secret string `json:"secret_key"` +} + +// newReadableEntry creates readable wallet entry +func newReadableEntry(coinType wallet.CoinType, e wallet.Entry) readableEntry { + re := readableEntry{} + if !e.Address.Null() { + re.Address = e.Address.String() + } + + if !e.Public.Null() { + re.Public = e.Public.Hex() + } + + if !e.Secret.Null() { + d := wallet.ResolveSecKeyDecoder(coinType) + re.Secret = d.SecKeyToHex(e.Secret) + } + + return re +} + +// readableEntries array of readableEntry +type readableEntries []readableEntry + +func newReadableEntries(entries wallet.Entries, coinType wallet.CoinType) readableEntries { + re := make(readableEntries, len(entries)) + for i, e := range entries { + re[i] = newReadableEntry(coinType, e) + } + return re +} + +// toWalletEntries convert readable entries to entries +// converts base on the wallet version. +func (res readableEntries) toWalletEntries(coinType wallet.CoinType, isEncrypted bool) ([]wallet.Entry, error) { + entries := make([]wallet.Entry, len(res)) + for i, re := range res { + e, err := newEntryFromReadable(coinType, &re) + if err != nil { + return []wallet.Entry{}, err + } + + // Verify the wallet if it's not encrypted + if !isEncrypted && re.Secret != "" { + if err := e.Verify(); err != nil { + return nil, err + } + } + + entries[i] = *e + } + return entries, nil +} + +// newEntryFromReadable creates WalletEntry base one ReadableWalletEntry +func newEntryFromReadable(coinType wallet.CoinType, re *readableEntry) (*wallet.Entry, error) { + var a cipher.Addresser + var err error + + switch coinType { + case wallet.CoinTypeSkycoin: + a, err = cipher.DecodeBase58Address(re.Address) + case wallet.CoinTypeBitcoin: + a, err = cipher.DecodeBase58BitcoinAddress(re.Address) + default: + panic(fmt.Errorf("invalid coin type %q", coinType)) + } + + if err != nil { + return nil, err + } + + p, err := cipher.PubKeyFromHex(re.Public) + if err != nil { + return nil, err + } + + // Decodes the secret hex string if any + var secret cipher.SecKey + if re.Secret != "" { + switch coinType { + case wallet.CoinTypeSkycoin: + secret, err = cipher.SecKeyFromHex(re.Secret) + case wallet.CoinTypeBitcoin: + secret, err = cipher.SecKeyFromBitcoinWalletImportFormat(re.Secret) + default: + panic(fmt.Errorf("invalid coin type %q", coinType)) + } + if err != nil { + return nil, err + } + } + + return &wallet.Entry{ + Address: a, + Public: p, + Secret: secret, + }, nil +} + +// readableDeterministicWallet used for [de]serialization of a deterministic wallet +type readableDeterministicWallet struct { + wallet.Meta `json:"meta"` + Entries readableEntries `json:"entries"` +} + +// newReadableDeterministicWallet creates readable wallet +func newReadableDeterministicWallet(w *Wallet) *readableDeterministicWallet { + return &readableDeterministicWallet{ + Meta: w.Meta.Clone(), + Entries: newReadableEntries(w.entries, w.Meta.Coin()), + } +} + +// toWallet convert readable wallet to Wallet +func (rw *readableDeterministicWallet) toWallet() (wallet.Wallet, error) { + w := &Wallet{ + Meta: rw.Meta.Clone(), + } + + // make sure "sky", "btc" normalize to "skycoin", "bitcoin" + ct, err := wallet.ResolveCoinType(string(w.Meta.Coin())) + if err != nil { + return nil, err + } + + w.SetCoin(ct) + + if err := w.Validate(); err != nil { + err := fmt.Errorf("invalid wallet %q: %v", w.Filename(), err) + //wallet.logger.WithError(err).Error("readableDeterministicWallet.ToWallet Validate failed") + return nil, err + } + + ets, err := rw.Entries.toWalletEntries(w.Meta.Coin(), w.Meta.IsEncrypted()) + if err != nil { + //wallet.logger.WithError(err).Error("readableDeterministicWallet.ToWallet toWalletEntries failed") + return nil, err + } + + w.entries = ets + + return w, nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/deterministic/wallet.go b/vendor/github.com/skycoin/skycoin/src/wallet/deterministic/wallet.go new file mode 100644 index 000000000..b04799c9a --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/deterministic/wallet.go @@ -0,0 +1,569 @@ +package deterministic + +import ( + "encoding/hex" + "errors" + "fmt" + "strconv" + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/crypto" + "github.com/skycoin/skycoin/src/wallet" +) + +// WalletType represents the deterministic wallet type +const WalletType = "deterministic" + +var defaultWalletDecoder = &JSONDecoder{} + +func init() { + if err := wallet.RegisterCreator(WalletType, &Creator{}); err != nil { + panic(err) + } + + if err := wallet.RegisterLoader(WalletType, &Loader{}); err != nil { + panic(err) + } +} + +// Wallet manages keys using the original Skycoin deterministic +// keypair generator method. +// With this generator, a single chain of addresses is created, each one dependent +// on the previous. +type Wallet struct { + wallet.Meta + entries wallet.Entries + decoder wallet.Decoder +} + +// NewWallet creates a deterministic wallet +func NewWallet(filename, label, seed string, options ...wallet.Option) (*Wallet, error) { + if label == "" { + return nil, wallet.ErrMissingLabel + } + + if seed == "" { + return nil, wallet.ErrMissingSeed + } + + var wlt = &Wallet{ + Meta: wallet.Meta{ + wallet.MetaFilename: filename, + wallet.MetaLabel: label, + wallet.MetaSeed: seed, + wallet.MetaLastSeed: seed, + wallet.MetaEncrypted: "false", + wallet.MetaType: WalletType, + wallet.MetaVersion: wallet.Version, + wallet.MetaCoin: string(wallet.CoinTypeSkycoin), + wallet.MetaCryptoType: string(crypto.DefaultCryptoType), + wallet.MetaTimestamp: strconv.FormatInt(time.Now().Unix(), 10), + }, + entries: wallet.Entries{}, + decoder: defaultWalletDecoder, + } + + advOpts := &wallet.AdvancedOptions{} + for _, opt := range options { + opt(wlt) + opt(advOpts) + } + + // validateMeta wallet before encrypting + if err := validateMeta(wlt.Meta); err != nil { + return nil, err + } + + generateN := advOpts.GenerateN + if generateN > 0 { + _, err := wlt.GenerateAddresses(wallet.OptionGenerateN(generateN)) + if err != nil { + return nil, err + } + } + + scanN := advOpts.ScanN + if scanN > 0 { + if advOpts.TF == nil { + return nil, errors.New("missing transaction finder for scanning addresses") + } + + if scanN > generateN { + scanN = scanN - generateN + } + + _, err := wlt.ScanAddresses(scanN, advOpts.TF) + if err != nil { + return nil, err + } + } + + // encrypts wallet if options.Encrypt is true + if advOpts.Encrypt { + if wlt.IsTemp() { + return nil, wallet.ErrEncryptTempWallet + } + + if len(advOpts.Password) == 0 { + return nil, wallet.ErrMissingPassword + } + + if err := wlt.Lock(advOpts.Password); err != nil { + return nil, err + } + } else { + if len(advOpts.Password) > 0 { + return nil, wallet.ErrMissingEncrypt + } + } + + // validateMeta again after encrypted + if err := validateMeta(wlt.Meta); err != nil { + return nil, err + } + + return wlt, nil +} + +func validateMeta(m wallet.Meta) error { + if m[wallet.MetaType] != WalletType { + return wallet.ErrInvalidWalletType + } + + if err := wallet.ValidateMeta(m); err != nil { + return err + } + + if err := wallet.ValidateMetaCryptoType(m); err != nil { + return err + } + + return wallet.ValidateMetaSeed(m) +} + +// SetDecoder sets the decoder +func (w *Wallet) SetDecoder(d wallet.Decoder) { + w.decoder = d +} + +// Serialize encodes the wallet into bytes +func (w Wallet) Serialize() ([]byte, error) { + if w.decoder == nil { + w.decoder = defaultWalletDecoder + } + + return w.decoder.Encode(&w) +} + +// Deserialize decodes the wallet from bytes +func (w *Wallet) Deserialize(data []byte) error { + if w.decoder == nil { + w.decoder = defaultWalletDecoder + } + + wlt, err := w.decoder.Decode(data) + if err != nil { + return err + } + + w2 := wlt.(*Wallet) + w2.decoder = w.decoder + *w = *w2 + return nil +} + +// Lock encrypts the sensitive data of the wallet +func (w *Wallet) Lock(password []byte) error { + if w.IsTemp() { + return wallet.ErrEncryptTempWallet + } + + if len(password) == 0 { + return wallet.ErrMissingPassword + } + + if w.IsEncrypted() { + return wallet.ErrWalletEncrypted + } + + wlt := w.Clone().(*Wallet) + + ss := make(wallet.Secrets) + defer func() { + ss.Erase() + wlt.Erase() + }() + + wlt.packSecrets(ss) + + sb, err := ss.Serialize() + if err != nil { + return err + } + + cryptoType := wlt.CryptoType() + if cryptoType == "" { + cryptoType = crypto.DefaultCryptoType + } + + cryptor, err := crypto.GetCrypto(cryptoType) + if err != nil { + return err + } + + encSecret, err := cryptor.Encrypt(sb, password) + if err != nil { + return err + } + + wlt.SetEncrypted(cryptoType, string(encSecret)) + + wlt.Erase() + + w.Erase() + + w.copyFrom(wlt) + return nil +} + +// Unlock unlock the encrypted wallet +func (w *Wallet) Unlock(password []byte) (wallet.Wallet, error) { + if !w.IsEncrypted() { + return nil, wallet.ErrWalletNotEncrypted + } + + if len(password) == 0 { + return nil, wallet.ErrMissingPassword + } + + sstr := w.Secrets() + if sstr == "" { + return nil, errors.New("missing secrets") + } + + ct := w.CryptoType() + if ct == "" { + return nil, errors.New("missing crypto type") + } + + cryptor, err := crypto.GetCrypto(ct) + if err != nil { + return nil, err + } + + sb, err := cryptor.Decrypt([]byte(sstr), password) + if err != nil { + return nil, wallet.ErrInvalidPassword + } + + defer func() { + // Wipes the data from secrets bytes buffer + for i := range sb { + sb[i] = 0 + } + }() + + ss := make(wallet.Secrets) + defer ss.Erase() + if err := ss.Deserialize(sb); err != nil { + return nil, err + } + + cw := w.Clone().(*Wallet) + if err := cw.unpackSecrets(ss); err != nil { + return nil, err + } + cw.SetDecrypted() + return cw, nil +} + +// packSecrets copies data from decrypted wallets into the wallet container +func (w *Wallet) packSecrets(ss wallet.Secrets) { + ss.Set(wallet.SecretSeed, w.Seed()) + ss.Set(wallet.SecretLastSeed, w.LastSeed()) + + // Saves entry secret keys in wallet + for _, e := range w.entries { + ss.Set(e.Address.String(), e.Secret.Hex()) + } +} + +// unpackSecrets copies data from decrypted wallet into the wallet +func (w *Wallet) unpackSecrets(ss wallet.Secrets) error { + seed, ok := ss.Get(wallet.SecretSeed) + if !ok { + return errors.New("seed doesn't exist in wallet") + } + w.SetSeed(seed) + + lastSeed, ok := ss.Get(wallet.SecretLastSeed) + if !ok { + return errors.New("lastSeed doesn't exist in wallet") + } + w.SetLastSeed(lastSeed) + + return w.entries.UnpackSecretKeys(ss) +} + +// Fingerprint returns a unique ID fingerprint for this wallet, composed of its initial address +// and wallet type +func (w *Wallet) Fingerprint() string { + addr := "" + if len(w.entries) == 0 { + if !w.IsEncrypted() { + _, pk, _ := cipher.MustDeterministicKeyPairIterator([]byte(w.Meta.Seed())) + addr = wallet.AddressConstructor(w.Meta)(pk).String() + } + } else { + addr = w.entries[0].Address.String() + } + return fmt.Sprintf("%s-%s", w.Type(), addr) +} + +// Clone clones the wallet a new wallet object +func (w *Wallet) Clone() wallet.Wallet { + return &Wallet{ + Meta: w.Meta.Clone(), + entries: w.entries.Clone(), + decoder: w.decoder, + } +} + +// copyFrom copies the src wallet to w +func (w *Wallet) copyFrom(src *Wallet) { + w.Meta = src.Meta.Clone() + w.entries = src.entries.Clone() +} + +// CopyFromRef copies the src wallet with a pointer dereference +func (w *Wallet) CopyFromRef(src wallet.Wallet) { + *w = *(src.(*Wallet)) +} + +// Accounts is not implemented, it is an interface for bip44 wallet. +func (w *Wallet) Accounts() []wallet.Bip44Account { + return nil +} + +// Erase wipes secret fields in wallet +func (w *Wallet) Erase() { + w.Meta.EraseSeeds() + w.Meta.SetLastSeed("") + w.entries.Erase() +} + +// Validate validates the wallet +func (w *Wallet) Validate() error { + if err := w.Meta.Validate(); err != nil { + return err + } + + walletType := w.Meta.Type() + if !wallet.IsValidWalletType(walletType) { + return wallet.ErrInvalidWalletType + } + + if !w.IsEncrypted() { + if s := w.Seed(); s == "" { + return errors.New("seed missing in unencrypted deterministic wallet") + } + + if s := w.LastSeed(); s == "" { + return errors.New("lastSeed missing in unencrypted deterministic wallet") + } + } + return nil +} + +// ScanAddresses scans ahead N addresses, truncating up to the highest address with any transaction history. +func (w *Wallet) ScanAddresses(scanN uint64, tf wallet.TransactionsFinder) ([]cipher.Addresser, error) { + if w.IsEncrypted() { + return nil, wallet.ErrWalletEncrypted + } + + if scanN == 0 { + return nil, nil + } + + w2 := w.Clone().(*Wallet) + + nExistingAddrs := uint64(len(w2.entries)) + + // Generate the addresses to scan + addrs, err := w2.GenerateAddresses(wallet.OptionGenerateN(scanN)) + if err != nil { + return nil, err + } + + // Find if these addresses had any activity + active, err := tf.AddressesActivity(addrs) + if err != nil { + return nil, err + } + + // Check activity from the last one until we find the address that has activity + var keepNum uint64 + for i := len(active) - 1; i >= 0; i-- { + if active[i] { + keepNum = uint64(i + 1) + break + } + } + + // Regenerate addresses up to nExistingAddrs + nAddAddrs. + // This is necessary to keep the lastSeed updated. + w2.reset() + //if _, err := w2.GenerateSkycoinAddresses(nExistingAddrs + keepNum); err != nil { + // return nil, err + //} + + if _, err := w2.GenerateAddresses(wallet.OptionGenerateN(nExistingAddrs + keepNum)); err != nil { + return nil, err + } + + *w = *w2 + + return addrs[:keepNum], nil +} + +// GenerateAddresses generates N addresses +func (w *Wallet) GenerateAddresses(options ...wallet.Option) ([]cipher.Addresser, error) { + if w.Meta.IsEncrypted() { + return nil, wallet.ErrWalletEncrypted + } + + num := wallet.GetGenerateNFromOptions(options...) + if num == 0 { + return nil, nil + } + + var seckeys []cipher.SecKey + var seed []byte + if len(w.entries) == 0 { + seed, seckeys = cipher.MustGenerateDeterministicKeyPairsSeed([]byte(w.Meta.Seed()), int(num)) + } else { + sd, err := hex.DecodeString(w.Meta.LastSeed()) + if err != nil { + return nil, fmt.Errorf("decode hex seed failed: %v", err) + } + seed, seckeys = cipher.MustGenerateDeterministicKeyPairsSeed(sd, int(num)) + } + + w.Meta.SetLastSeed(hex.EncodeToString(seed)) + + addrs := make([]cipher.Addresser, len(seckeys)) + makeAddress := wallet.AddressConstructor(w.Meta) + for i, s := range seckeys { + p := cipher.MustPubKeyFromSecKey(s) + a := makeAddress(p) + addrs[i] = a + w.entries = append(w.entries, wallet.Entry{ + Address: a, + Secret: s, + Public: p, + }) + } + return addrs, nil +} + +// GetAddresses returns all addresses in wallet +func (w *Wallet) GetAddresses(_ ...wallet.Option) ([]cipher.Addresser, error) { + return w.entries.GetAddresses(), nil +} + +// GetEntries returns a copy of all entries held by the wallet +func (w *Wallet) GetEntries(_ ...wallet.Option) (wallet.Entries, error) { + return w.entries.Clone(), nil +} + +// GetEntryAt returns entry at a given index in the entries array +func (w *Wallet) GetEntryAt(i int, _ ...wallet.Option) (wallet.Entry, error) { + if i < 0 || i >= len(w.entries) { + return wallet.Entry{}, fmt.Errorf("entry index %d is out of range", i) + } + + return w.entries[i], nil +} + +// GetEntry returns entry of given address +func (w *Wallet) GetEntry(a cipher.Addresser, _ ...wallet.Option) (wallet.Entry, error) { + e, ok := w.entries.Get(a) + if !ok { + return wallet.Entry{}, wallet.ErrEntryNotFound + } + return e, nil +} + +// HasEntry returns true if the wallet has an Entry with a given cipher.Address. +func (w *Wallet) HasEntry(a cipher.Addresser, _ ...wallet.Option) (bool, error) { + return w.entries.Has(a), nil +} + +// EntriesLen returns the number of entries in the wallet +func (w *Wallet) EntriesLen(_ ...wallet.Option) (int, error) { + return len(w.entries), nil +} + +// reset resets the wallet entries and move the lastSeed to origin +func (w *Wallet) reset() { + w.entries = wallet.Entries{} + w.Meta.SetLastSeed(w.Meta.Seed()) +} + +// Loader implements the wallet.Loader interface +type Loader struct{} + +// Load loads a determinisitc wallet from bytes +func (l Loader) Load(data []byte) (wallet.Wallet, error) { + w := &Wallet{} + if err := w.Deserialize(data); err != nil { + return nil, err + } + + return w, nil +} + +// Creator implements the wallet.Creator interface +type Creator struct{} + +// Create creates a deterministic wallet +func (c Creator) Create(filename, label, seed string, options wallet.Options) (wallet.Wallet, error) { + return NewWallet(filename, label, seed, convertOptions(options)...) +} + +func convertOptions(options wallet.Options) []wallet.Option { + var opts []wallet.Option + + if options.Coin != "" { + opts = append(opts, wallet.OptionCoinType(options.Coin)) + } + + if options.CryptoType != "" { + opts = append(opts, wallet.OptionCryptoType(options.CryptoType)) + } + + if options.Decoder != nil { + opts = append(opts, wallet.OptionDecoder(options.Decoder)) + } + + if options.Encrypt { + opts = append(opts, wallet.OptionEncrypt(true)) + opts = append(opts, wallet.OptionPassword(options.Password)) + } + + if options.GenerateN > 0 { + opts = append(opts, wallet.OptionGenerateN(options.GenerateN)) + } + + if options.ScanN > 0 { + opts = append(opts, wallet.OptionScanN(options.ScanN)) + opts = append(opts, wallet.OptionTransactionsFinder(options.TF)) + } + + if options.Temp { + opts = append(opts, wallet.OptionTemp(true)) + } + + return opts +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/entry.go b/vendor/github.com/skycoin/skycoin/src/wallet/entry.go new file mode 100644 index 000000000..4bb0a3bc0 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/entry.go @@ -0,0 +1,122 @@ +package wallet + +import ( + "encoding/hex" + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" +) + +// Entry represents the wallet entry +type Entry struct { + Address cipher.Addresser + Public cipher.PubKey + Secret cipher.SecKey + ChildNumber uint32 // For bip32/bip44 + Change uint32 // For bip44 +} + +// SkycoinAddress returns the Skycoin address of an entry. Panics if Address is not a Skycoin address +func (we Entry) SkycoinAddress() cipher.Address { + return we.Address.(cipher.Address) +} + +// BitcoinAddress returns the Skycoin address of an entry. Panics if Address is not a Bitcoin address +func (we Entry) BitcoinAddress() cipher.BitcoinAddress { + return we.Address.(cipher.BitcoinAddress) +} + +// Verify checks that the public key is derivable from the secret key, +// and that the public key is associated with the address +func (we *Entry) Verify() error { + pk, err := cipher.PubKeyFromSecKey(we.Secret) + if err != nil { + return err + } + + if pk != we.Public { + return errors.New("invalid public key for secret key") + } + + return we.VerifyPublic() +} + +// VerifyPublic checks that the public key is associated with the address +func (we *Entry) VerifyPublic() error { + if err := we.Public.Verify(); err != nil { + return err + } + return we.Address.Verify(we.Public) +} + +// Entries are an array of wallet entries +type Entries []Entry + +// Clone make an copy of the entire entries. +func (entries Entries) Clone() Entries { + if len(entries) == 0 { + return nil + } + return append(Entries{}, entries...) +} + +// Has checks if entries contains the entry with specified address +func (entries Entries) Has(a cipher.Addresser) bool { + // This doesn't use getEntry() to avoid copying an Entry in the return value, + // which may contain a secret key + for _, e := range entries { + if e.Address == a { + return true + } + } + return false +} + +// Get returns the entry of specific address +func (entries Entries) Get(a cipher.Addresser) (Entry, bool) { + for _, e := range entries { + if e.Address == a { + return e, true + } + } + return Entry{}, false +} + +// GetAddresses returns all addresses +func (entries Entries) GetAddresses() []cipher.Addresser { + addrs := make([]cipher.Addresser, len(entries)) + for i, e := range entries { + addrs[i] = e.Address + } + return addrs +} + +// Erase wipes private keys in entries +func (entries Entries) Erase() { + for i := range entries { + for j := range entries[i].Secret { + entries[i].Secret[j] = 0 + } + entries[i].Secret = cipher.SecKey{} + } +} + +// UnpackSecretKeys for each entry, look for the secret key in the Secrets dict, keyed by address +func (entries Entries) UnpackSecretKeys(ss Secrets) error { + for i, e := range entries { + sstr, ok := ss.Get(e.Address.String()) + if !ok { + return fmt.Errorf("secret of address %s doesn't exist in secrets", e.Address) + } + + s, err := hex.DecodeString(sstr) + if err != nil { + return fmt.Errorf("decode secret hex string failed: %v", err) + } + + copy(entries[i].Secret[:], s[:]) + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/loaders.go b/vendor/github.com/skycoin/skycoin/src/wallet/loaders.go new file mode 100644 index 000000000..93a5cb606 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/loaders.go @@ -0,0 +1,53 @@ +package wallet + +import ( + "fmt" + "sync" +) + +var walletLoaders loaders + +// RegisterLoader registers a wallet Loader +func RegisterLoader(walletType string, l Loader) error { + return walletLoaders.add(walletType, l) +} + +func getLoader(walletType string) (Loader, bool) { + return walletLoaders.get(walletType) +} + +// Loader is the interface that wraps the Load method. +// +// Load loads wallet from data bytes +type Loader interface { + Load(data []byte) (Wallet, error) +} + +type loaders struct { + sync.Mutex + wls map[string]Loader +} + +// Add add a new wallet type Loader +func (ls *loaders) add(walletType string, l Loader) error { + ls.Lock() + defer ls.Unlock() + if ls.wls == nil { + ls.wls = map[string]Loader{} + } + + if _, ok := ls.wls[walletType]; ok { + return fmt.Errorf("wallet loader for %s already exists", walletType) + } + + ls.wls[walletType] = l + return nil +} + +// Get returns the wallet Loader base on wallet type +func (ls *loaders) get(walletType string) (Loader, bool) { + ls.Lock() + defer ls.Unlock() + c, ok := ls.wls[walletType] + return c, ok +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/meta.go b/vendor/github.com/skycoin/skycoin/src/wallet/meta.go new file mode 100644 index 000000000..0c2eca445 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/meta.go @@ -0,0 +1,348 @@ +package wallet + +import ( + "errors" + "strconv" + "strings" + + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/cipher/crypto" +) + +// wallet meta fields +const ( + MetaVersion = "version" // wallet version + MetaFilename = "filename" // wallet file name + MetaLabel = "label" // wallet label + MetaTimestamp = "tm" // the timestamp when creating the wallet + MetaType = "type" // wallet type + MetaCoin = "coin" // coin type + MetaEncrypted = "encrypted" // whether the wallet is encrypted + MetaCryptoType = "cryptoType" // encryption/decryption type + MetaSeed = "seed" // wallet seed + MetaLastSeed = "lastSeed" // seed for generating next address [deterministic wallets] + MetaSecrets = "secrets" // secrets which records the encrypted seeds and secrets of address entries + MetaBip44Coin = "bip44Coin" // bip44 coin type + MetaAccountsHash = "accountsHash" // accounts hash + MetaSeedPassphrase = "seedPassphrase" // seed passphrase [bip44 wallets] + MetaXPub = "xpub" // xpub key [xpub wallets] + MetaTemp = "temp" // whether the wallet is a temporary wallet +) + +//const ( +// // CoinTypeSkycoin skycoin type +// CoinTypeSkycoin CoinType = "skycoin" +// // CoinTypeBitcoin bitcoin type +// CoinTypeBitcoin CoinType = "bitcoin" +//) + +// CoinType represents the wallet coin type, which refers to the pubkey2addr method used +//type CoinType string + +// Meta holds wallet metadata +type Meta map[string]string + +// Clone make an copy of the Meta +func (m Meta) Clone() Meta { + mm := make(Meta, len(m)) + for k, v := range m { + mm[k] = v + } + return mm +} + +// EraseSeeds wipes the seed and last seed +func (m Meta) EraseSeeds() { + m.SetSeed("") +} + +// Find returns a key value from the metadata map +func (m Meta) Find(k string) string { + return m[k] +} + +// Type gets the wallet type +func (m Meta) Type() string { + return m[MetaType] +} + +// Version gets the wallet version +func (m Meta) Version() string { + return m[MetaVersion] +} + +// SetVersion sets the wallet version +func (m Meta) SetVersion(v string) { + m[MetaVersion] = v +} + +// Filename gets the wallet filename +func (m Meta) Filename() string { + return m[MetaFilename] +} + +// SetFilename sets the wallet filename +func (m Meta) SetFilename(fn string) { + m[MetaFilename] = fn +} + +// Label gets the wallet label +func (m Meta) Label() string { + return m[MetaLabel] +} + +// SetLabel sets the wallet label +func (m Meta) SetLabel(label string) { + m[MetaLabel] = label +} + +// LastSeed returns the last seed +func (m Meta) LastSeed() string { + return m[MetaLastSeed] +} + +// SetLastSeed sets or updates the last seed +func (m Meta) SetLastSeed(lseed string) { + m[MetaLastSeed] = lseed +} + +// Seed returns the seed +func (m Meta) Seed() string { + return m[MetaSeed] +} + +// SetSeed sets the seed +func (m Meta) SetSeed(seed string) { + m[MetaSeed] = seed +} + +// SeedPassphrase returns the seed passphrase +func (m Meta) SeedPassphrase() string { + return m[MetaSeedPassphrase] +} + +// SetSeedPassphrase sets the seed passphrase +func (m Meta) SetSeedPassphrase(p string) { + m[MetaSeedPassphrase] = p +} + +// Coin returns the wallet's coin type +func (m Meta) Coin() CoinType { + return CoinType(m[MetaCoin]) +} + +// SetCoin sets the wallet's coin type +func (m Meta) SetCoin(ct CoinType) { + m[MetaCoin] = string(ct) +} + +// Bip44Coin returns the bip44 coin type, please +// check the second return value to see if it does +// exist in the Meta data before using it. +func (m Meta) Bip44Coin() *bip44.CoinType { + c, ok := m[MetaBip44Coin] + if !ok { + return nil + } + x, err := strconv.ParseUint(c, 10, 32) + if err != nil { + panic(err) + } + t := bip44.CoinType(x) + + return &t +} + +// SetBip44Coin sets the bip44 coin type code +func (m Meta) SetBip44Coin(ct bip44.CoinType) { + m[MetaBip44Coin] = strconv.FormatUint(uint64(ct), 10) +} + +func (m Meta) setIsEncrypted(encrypt bool) { + m[MetaEncrypted] = strconv.FormatBool(encrypt) +} + +// SetEncrypted sets encryption fields +func (m Meta) SetEncrypted(cryptoType crypto.CryptoType, encryptedSecrets string) { + m.setCryptoType(cryptoType) + m.setSecrets(encryptedSecrets) + m.setIsEncrypted(true) +} + +// SetDecrypted unsets encryption fields +func (m Meta) SetDecrypted() { + m.setIsEncrypted(false) + m.setSecrets("") + delete(m, MetaSecrets) +} + +// IsEncrypted checks whether the wallet is encrypted. +func (m Meta) IsEncrypted() bool { + encStr, ok := m[MetaEncrypted] + if !ok { + return false + } + + b, err := strconv.ParseBool(encStr) + if err != nil { + // This can't happen, the meta.encrypted value is either set by + // setEncrypted() method or converted in ReadableWallet.toWallet(). + // toWallet() method will throw error if the meta.encrypted string is invalid. + // logger.Critical().WithError(err).Error("parse wallet.meta.encrypted string failed") + panic(err) + } + return b +} + +func (m Meta) setCryptoType(tp crypto.CryptoType) { + m[MetaCryptoType] = string(tp) +} + +// CryptoType returns the encryption type +func (m Meta) CryptoType() crypto.CryptoType { + return crypto.CryptoType(m[MetaCryptoType]) +} + +// SetCryptoType sets the encryption type +func (m Meta) SetCryptoType(ct crypto.CryptoType) { + m[MetaCryptoType] = string(ct) +} + +// Secrets returns the encrypted wallet secrets +func (m Meta) Secrets() string { + return m[MetaSecrets] +} + +func (m Meta) setSecrets(s string) { + m[MetaSecrets] = s +} + +// Timestamp returns the timestamp +func (m Meta) Timestamp() int64 { + // Intentionally ignore the error when parsing the timestamp, + // if it isn't valid or is missing it will be set to 0. + // Also, this value is validated by wallet.validate() + x, _ := strconv.ParseInt(m[MetaTimestamp], 10, 64) //nolint:errcheck + return x +} + +// SetTimestamp sets the timestamp +func (m Meta) SetTimestamp(t int64) { + m[MetaTimestamp] = strconv.FormatInt(t, 10) +} + +// AddressConstructor returns a function to create a cipher.Addresser from a cipher.PubKey +// func (m Meta) AddressConstructor() func(cipher.PubKey) cipher.Addresser { +// switch m.Coin() { +// case CoinTypeSkycoin: +// return func(pk cipher.PubKey) cipher.Addresser { +// return cipher.AddressFromPubKey(pk) +// } +// case CoinTypeBitcoin: +// return func(pk cipher.PubKey) cipher.Addresser { +// return cipher.BitcoinAddressFromPubKey(pk) +// } +// default: +// logger.Panicf("Invalid wallet coin type %q", m.Coin()) +// return nil +// } +// } + +// SetXPub sets xpub +func (m Meta) SetXPub(xpub string) { + m[MetaXPub] = xpub +} + +// XPub returns the wallet's configured XPub key +func (m Meta) XPub() string { + return m[MetaXPub] +} + +// Validate validates the meta data +func (m Meta) Validate() error { + if fn := m[MetaFilename]; fn == "" { + return errors.New("filename not set") + } + + if tm := m[MetaTimestamp]; tm != "" { + _, err := strconv.ParseInt(tm, 10, 64) + if err != nil { + return errors.New("invalid timestamp") + } + } + + _, ok := m[MetaType] + if !ok { + return errors.New("type field not set") + } + + if coinType := m[MetaCoin]; coinType == "" { + return errors.New("coin field not set") + } + + var isEncrypted bool + if encStr, ok := m[MetaEncrypted]; ok { + // validate the encrypted value + var err error + isEncrypted, err = strconv.ParseBool(encStr) + if err != nil { + return errors.New("encrypted field is not a valid bool") + } + } + + if isEncrypted { + cryptoType, ok := m[MetaCryptoType] + if !ok { + return errors.New("crypto type field not set") + } + + if _, err := crypto.GetCrypto(crypto.CryptoType(cryptoType)); err != nil { + return errors.New("unknown crypto type") + } + + if s := m[MetaSecrets]; s == "" { + return errors.New("wallet is encrypted, but secrets field not set") + } + + if s := m[MetaSeed]; s != "" { + return errors.New("seed should not be visible in encrypted wallets") + } + + if s := m[MetaLastSeed]; s != "" { + return errors.New("lastSeed should not be visible in encrypted wallets") + } + } else { + if s := m[MetaSecrets]; s != "" { + return errors.New("secrets should not be in unencrypted wallets") + } + } + return nil +} + +// ResolveCoinType normalizes a coin type string to a CoinType constant +func ResolveCoinType(s string) (CoinType, error) { + switch strings.ToLower(s) { + case "sky", "skycoin": + return CoinTypeSkycoin, nil + case "btc", "bitcoin": + return CoinTypeBitcoin, nil + default: + return CoinType(""), errors.New("invalid coin type") + } +} + +// SetTemp sets temp +func (m Meta) SetTemp(temp bool) { + if temp { + m[MetaTemp] = "true" + } +} + +// IsTemp returns whether the wallet is a temporary wallet +func (m Meta) IsTemp() bool { + if m[MetaTemp] == "true" { + return true + } + + return false +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/options.go b/vendor/github.com/skycoin/skycoin/src/wallet/options.go new file mode 100644 index 000000000..db9d2e392 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/options.go @@ -0,0 +1,183 @@ +package wallet + +import ( + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/cipher/crypto" +) + +// ChainMode represents the bip44 chain mode. AllChains = ExternalChain | ChangeChain +type ChainMode uint32 + +const ( + DefaultChain ChainMode = 0 // indicates the default chain when no chain is specified. + ExternalChain = 1 // indicates the external chain + ChangeChain = 2 // indicates the change chain + AllChains = 3 // indicates both external and change chains +) + +// Option represents the general options, it can be used to set optional +// parameters while creating a new wallet. Also, can be used to get +// entries service of a wallet. +type Option func(interface{}) + +// Bip44EntriesOptions represents the options that will be used +// by bip44 to get entries service +type Bip44EntriesOptions struct { + Account uint32 + ChainMode ChainMode +} + +// OptionAccount is the option type for specifying a bip44 account +func OptionAccount(index uint32) Option { + return func(opts interface{}) { + bip44, ok := opts.(*Bip44EntriesOptions) + if !ok { + return + } + bip44.Account = index + } +} + +// OptionChange is the option for selecting the change chain +func OptionChange() Option { + return func(opts interface{}) { + o, ok := opts.(*Bip44EntriesOptions) + if !ok { + return + } + + o.ChainMode += ChangeChain + } +} + +// OptionExternal is the option type for selecting the external chain +func OptionExternal() Option { + return func(opts interface{}) { + o, ok := opts.(*Bip44EntriesOptions) + if !ok { + return + } + + o.ChainMode += ExternalChain + } +} + +func walletOptionFunc(f func(Wallet)) Option { + return func(v interface{}) { + w, ok := v.(Wallet) + if !ok { + return + } + f(w) + } +} + +// OptionCryptoType is the option type for setting wallet crypto type +func OptionCryptoType(cryptoType crypto.CryptoType) Option { + return walletOptionFunc(func(w Wallet) { + w.SetCryptoType(cryptoType) + }) +} + +// OptionCoinType is the option type for setting wallet coin type +func OptionCoinType(coinType CoinType) Option { + return walletOptionFunc(func(w Wallet) { + w.SetCoin(coinType) + }) +} + +// OptionDecoder is the option type for setting wallet decoder +func OptionDecoder(d Decoder) Option { + return walletOptionFunc(func(w Wallet) { + w.SetDecoder(d) + }) +} + +// OptionTemp is the option for setting whether wallet is a temporary wallet +func OptionTemp(temp bool) Option { + return walletOptionFunc(func(w Wallet) { + w.SetTemp(temp) + }) +} + +// OptionBip44Coin is the option type for setting bip44 coin type for bip44 wallet +func OptionBip44Coin(ct *bip44.CoinType) Option { + return walletOptionFunc(func(w Wallet) { + w.SetBip44Coin(*ct) + }) +} + +// AdvancedOptions are advanced options that can be used when creating a new wallet +type AdvancedOptions struct { + DefaultBip44AccountName string + Encrypt bool + Password []byte + GenerateN uint64 + ScanN uint64 + TF TransactionsFinder + PrivateKeys []cipher.SecKey // private keys of collection wallet +} + +// advancedOptionFunc is a helper function that assert the +// interface in wallet.Option to AdvancedOptions, so that +// the caller can use AdvancedOptions directly. +func advancedOptionFunc(f func(*AdvancedOptions)) Option { + return func(v interface{}) { + o, ok := v.(*AdvancedOptions) + if !ok { + return + } + f(o) + } +} + +// OptionDefaultBip44AccountName can be used to set the bip44 default account name +func OptionDefaultBip44AccountName(name string) Option { + return advancedOptionFunc(func(opts *AdvancedOptions) { + opts.DefaultBip44AccountName = name + }) +} + +// OptionEncrypt can be used to set whether the wallet should be encrypted when creating a new wallet +func OptionEncrypt(encrypt bool) Option { + return advancedOptionFunc(func(opts *AdvancedOptions) { + opts.Encrypt = encrypt + }) +} + +// OptionPassword can be used to set the password for encrypting when creating a new wallet. +func OptionPassword(password []byte) Option { + return advancedOptionFunc(func(opts *AdvancedOptions) { + opts.Password = password + }) +} + +// OptionScanN can be used to set the scanning number when creating a new wallet +func OptionScanN(n uint64) Option { + return advancedOptionFunc(func(opts *AdvancedOptions) { + opts.ScanN = n + }) +} + +// OptionTransactionsFinder can be used to set the transactions finder when creating a new wallet +func OptionTransactionsFinder(tf TransactionsFinder) Option { + return advancedOptionFunc(func(opts *AdvancedOptions) { + opts.TF = tf + }) +} + +// OptionGenerateN can be used to set the initial number of addresses to generate +// when creating a new wallet +func OptionGenerateN(n uint64) Option { + return advancedOptionFunc(func(opts *AdvancedOptions) { + opts.GenerateN = n + }) +} + +// OptionCollectionPrivateKeys can be used to set the private keys when creating a collection wallet +func OptionCollectionPrivateKeys(keys []cipher.SecKey) Option { + return advancedOptionFunc(func(opts *AdvancedOptions) { + opts.PrivateKeys = keys + }) +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/secrets.go b/vendor/github.com/skycoin/skycoin/src/wallet/secrets.go new file mode 100644 index 000000000..c38de399e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/secrets.go @@ -0,0 +1,46 @@ +package wallet + +import ( + "encoding/json" +) + +const ( + // SecretSeed key of seed in Secrets + SecretSeed = "seed" + // SecretLastSeed key of last sees in Secrets + SecretLastSeed = "lastSeed" + // SecretSeedPassphrase key of seed passphrase in Secrets + SecretSeedPassphrase = "seedPassphrase" +) + +// Secrets hold secret data, to be encrypted +type Secrets map[string]string + +// Get returns the secret value of given key +func (s Secrets) Get(key string) (string, bool) { + v, ok := s[key] + return v, ok +} + +// Set sets the secret key and value +func (s Secrets) Set(key, v string) { + s[key] = v +} + +// Serialize encodes the secrets into []bytes +func (s Secrets) Serialize() ([]byte, error) { + return json.Marshal(s) +} + +// Deserialize decodes the secrets from []bytes +func (s Secrets) Deserialize(data []byte) error { + return json.Unmarshal(data, &s) +} + +// Erase wipes all secrets +func (s Secrets) Erase() { + for k := range s { + s[k] = "" + delete(s, k) + } +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/service.go b/vendor/github.com/skycoin/skycoin/src/wallet/service.go new file mode 100644 index 000000000..c07e972d2 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/service.go @@ -0,0 +1,870 @@ +package wallet + +import ( + "errors" + "fmt" + "io/ioutil" + "os" + "path/filepath" + "strings" + "sync" + + "github.com/sirupsen/logrus" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/cipher/crypto" + "github.com/skycoin/skycoin/src/util/file" +) + +// TransactionsFinder interface for finding address related transaction hashes +type TransactionsFinder interface { + AddressesActivity(addrs []cipher.Addresser) ([]bool, error) +} + +// Service wallet service struct +type Service struct { + sync.RWMutex + wallets Wallets + config Config + // fingerprints is used to check for duplicate deterministic wallets + fingerprints map[string]string +} + +// Config wallet service config +type Config struct { + WalletDir string + CryptoType crypto.CryptoType + EnableWalletAPI bool + EnableSeedAPI bool + Bip44Coin *bip44.CoinType +} + +// NewConfig creates a default Config +func NewConfig() Config { + bc := bip44.CoinTypeSkycoin + return Config{ + WalletDir: "./", + CryptoType: crypto.DefaultCryptoType, + EnableWalletAPI: false, + EnableSeedAPI: false, + Bip44Coin: &bc, + } +} + +// NewService new wallet service +func NewService(c Config) (*Service, error) { + serv := &Service{ + config: c, + fingerprints: make(map[string]string), + } + + if !serv.config.EnableWalletAPI { + return serv, nil + } + + if err := os.MkdirAll(c.WalletDir, os.FileMode(0700)); err != nil { + return nil, fmt.Errorf("failed to create wallet directory %s: %v", c.WalletDir, err) + } + + // Removes .wlt.bak files before loading wallets + if err := removeBackupFiles(serv.config.WalletDir); err != nil { + return nil, fmt.Errorf("remove .wlt.bak files in %v failed: %v", serv.config.WalletDir, err) + } + + // Load all wallets from disk + w, err := serv.loadWallets() + if err != nil { + return nil, fmt.Errorf("failed to load all wallets: %v", err) + } + + // Abort if there are duplicate wallets (identified by fingerprint) on disk + if wltID, fp, hasDup := w.containsDuplicate(); hasDup { + return nil, fmt.Errorf("duplicate wallet found with fingerprint %s in file %q", fp, wltID) + } + + // Abort if there are empty deterministic wallets on disk + if wltID, hasEmpty := w.containsEmpty(); hasEmpty { + return nil, fmt.Errorf("empty wallet file found: %q", wltID) + } + + serv.setWallets(w) + + fields := logrus.Fields{ + "walletDir": serv.config.WalletDir, + } + if serv.config.Bip44Coin != nil { + fields["bip44Coin"] = *serv.config.Bip44Coin + } + logger.WithFields(fields).Debug("wallet.NewService complete") + + return serv, nil +} + +// WalletDir returns the configured wallet directory +func (serv *Service) WalletDir() (string, error) { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return "", ErrWalletAPIDisabled + } + return serv.config.WalletDir, nil +} + +// SetEnableWalletAPI sets whether or not enables the wallet related APIs +func (serv *Service) SetEnableWalletAPI(enable bool) { + serv.config.EnableWalletAPI = enable +} + +func (serv *Service) loadWallets() (Wallets, error) { + dir := serv.config.WalletDir + entries, err := ioutil.ReadDir(dir) + if err != nil { + logger.WithError(err).WithField("dir", dir).Error("loadWallets: ioutil.ReadDir failed") + return nil, err + } + + wallets := Wallets{} + for _, e := range entries { + if e.Mode().IsRegular() { + name := e.Name() + if !strings.HasSuffix(name, WalletExt) { + logger.WithField("filename", name).Info("loadWallets: skipping file") + continue + } + + fullPath := filepath.Join(serv.config.WalletDir, name) + w, err := serv.Load(fullPath) + if err != nil { + logger.WithError(err).WithField("filename", fullPath).Error("loadWallets: loadWallet failed") + return nil, err + } + + if w == nil { + logger.WithField("filename", fullPath).Warning("wallet loading skipped") + continue + } + + logger.WithField("filename", fullPath).Info("loadWallets: loaded wallet") + + wallets[name] = w + } + } + + for name, w := range wallets { + if w.Coin() != CoinTypeSkycoin { + err := fmt.Errorf("LoadWallets only support skycoin wallets, %s is a %s wallet", name, w.Coin()) + logger.WithError(err).WithField("name", name).Error() + return nil, err + } + } + + return wallets, nil +} + +// Load loads wallet from the given wallet file, it won't not affect the +// state of the service it self, the loaded wallet will be returned. +func (serv *Service) Load(filename string) (Wallet, error) { + return Load(filename) +} + +func (serv *Service) updateOptions(opts Options) Options { + // Apply service-configured default settings for wallet options + if opts.Encrypt && opts.CryptoType == "" { + opts.CryptoType = serv.config.CryptoType + } + + if opts.Type == WalletTypeBip44 && opts.Bip44Coin == nil && serv.config.Bip44Coin != nil { + c := *serv.config.Bip44Coin + opts.Bip44Coin = &c + } + + // generate one default address if options.GenerateN is 0 + if opts.GenerateN == 0 { + opts.GenerateN = 1 + } + return opts +} + +// CreateWallet creates a wallet with the given wallet file name and options. +// A address will be automatically generated by default. +func (serv *Service) CreateWallet(wltName string, options Options) (Wallet, error) { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return nil, ErrWalletAPIDisabled + } + if wltName == "" { + wltName = serv.generateUniqueWalletFilename() + } + + return serv.loadWallet(wltName, options) +} + +func (serv *Service) createWallet(wltName string, options Options) (Wallet, error) { + if err := options.Validate(); err != nil { + return nil, err + } + + creator, ok := getCreator(options.Type) + if !ok { + return nil, ErrInvalidWalletType + } + + return creator.Create(wltName, options.Label, options.Seed, options) +} + +// loadWallet loads wallet from seed and scan the first N addresses +func (serv *Service) loadWallet(wltName string, options Options) (Wallet, error) { + options = serv.updateOptions(options) + + w, err := serv.createWallet(wltName, options) + if err != nil { + return nil, err + } + + fingerprint := w.Fingerprint() + // Note: collection wallets do not have fingerprints + if fingerprint != "" { + if _, ok := serv.fingerprints[fingerprint]; ok { + logger.WithFields(logrus.Fields{ + "walletType": w.Type(), + "fingerprint": fingerprint, + }).Error("fingerprint conflict") + return nil, NewError(fmt.Errorf("fingerprint conflict for %q wallet", w.Type())) + } + } + + if err := serv.wallets.add(w); err != nil { + return nil, err + } + + if err := Save(w, serv.config.WalletDir); err != nil { + // If save fails, remove the added wallet + serv.wallets.remove(w.Filename()) + return nil, err + } + + if fingerprint != "" { + serv.fingerprints[fingerprint] = w.Filename() + } + + return w.Clone(), nil +} + +func (serv *Service) generateUniqueWalletFilename() string { + wltName := NewWalletFilename() + for { + if w := serv.wallets.get(wltName); w == nil { + break + } + wltName = NewWalletFilename() + } + + return wltName +} + +// EncryptWallet encrypts wallet with password +func (serv *Service) EncryptWallet(wltID string, password []byte) (Wallet, error) { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return nil, ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return nil, err + } + + if w.IsEncrypted() { + return nil, ErrWalletEncrypted + } + + if err := w.Lock(password); err != nil { + return nil, err + } + + // Saves to disk + if err := Save(w, serv.config.WalletDir); err != nil { + return nil, err + } + + // Updates wallets in memory + serv.wallets.set(w) + return w, nil +} + +// DecryptWallet decrypts wallet with password +// TODO: this function will be deprecated in future. +func (serv *Service) DecryptWallet(wltID string, password []byte) (Wallet, error) { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return nil, ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return nil, err + } + + // Returns error if wallet is not encrypted + if !w.IsEncrypted() { + return nil, ErrWalletNotEncrypted + } + + // Unlocks the wallet + unlockWlt, err := w.Unlock(password) + if err != nil { + return nil, err + } + + // Updates the wallet file + if err := Save(unlockWlt, serv.config.WalletDir); err != nil { + return nil, err + } + + // Sets the decrypted wallet in memory + serv.wallets.set(unlockWlt) + return unlockWlt, nil +} + +// NewAddresses generate address entries in given wallet, +// return nil if wallet does not exist. +// Set password as nil if the wallet is not encrypted, otherwise the password must be provided. +// func (serv *Service) NewAddresses(wltID string, password []byte, num uint64) ([]cipher.Address, error) { +// serv.Lock() +// defer serv.Unlock() + +// if !serv.config.EnableWalletAPI { +// return nil, ErrWalletAPIDisabled +// } + +// w, err := serv.getWallet(wltID) +// if err != nil { +// return nil, err +// } + +// var addrs []cipher.Address +// f := func(wlt Wallet) error { +// var err error +// addrs, err = wlt.GenerateSkycoinAddresses(num) +// return err +// } + +// if w.IsEncrypted() { +// if err := GuardUpdate(w, password, f); err != nil { +// return nil, err +// } +// } else { +// if len(password) != 0 { +// return nil, ErrWalletNotEncrypted +// } + +// if err := f(w); err != nil { +// return nil, err +// } +// } + +// // Checks if the wallet file is writable +// wf := filepath.Join(serv.config.WalletDir, w.Filename()) +// if !file.IsWritable(wf) { +// return nil, ErrWalletPermission +// } + +// // Save the wallet first +// if err := Save(w, serv.config.WalletDir); err != nil { +// return nil, err +// } + +// serv.wallets.set(w) + +// return addrs, nil +// } + +// NewAddresses generate addresses +func (serv *Service) NewAddresses(wltID string, password []byte, options ...Option) ([]cipher.Address, error) { + serv.Lock() + defer serv.Unlock() + + if !serv.config.EnableWalletAPI { + return nil, ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return nil, err + } + + var addrs []cipher.Addresser + f := func(w Wallet) error { + var err error + addrs, err = w.GenerateAddresses(options...) + return err + } + + // TODO: Test this + if w.IsEncrypted() { + // Bip44 can generate addresses without unlocking the wallet + // This will generate addresses on bip44 external chain + if w.Type() == WalletTypeBip44 { + if err := f(w); err != nil { + return nil, err + } + } else { + if err := GuardUpdate(w, password, f); err != nil { + return nil, err + } + } + } else { + if len(password) != 0 { + return nil, ErrWalletNotEncrypted + } + + if err := f(w); err != nil { + return nil, err + } + } + + // check if wallet is writable only when it's not a temporary wallet. + // this checking would create a temp file + if !w.IsTemp() { + // Checks if the wallet file is writable + wf := filepath.Join(serv.config.WalletDir, w.Filename()) + if !file.IsWritable(wf) { + return nil, ErrWalletPermission + } + + // Save the wallet + if err := Save(w, serv.config.WalletDir); err != nil { + return nil, err + } + } + + serv.wallets.set(w) + return SkycoinAddresses(addrs), nil +} + +// ScanAddresses scan ahead addresses to see if contains balance. +func (serv *Service) ScanAddresses(wltID string, password []byte, num uint64, tf TransactionsFinder) ([]cipher.Address, error) { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return nil, ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return nil, err + } + + var addrs []cipher.Addresser + f := func(w Wallet) error { + var err error + addrs, err = w.ScanAddresses(num, tf) + return err + } + + // For bip44 wallets, there is no need to unlock the wallets even it is encrypted. + if w.Type() == WalletTypeBip44 { + if len(password) != 0 { + return nil, NewError(errors.New("password is not required for scanning bip44 wallet addresses")) + } + + if err := f(w); err != nil { + return nil, err + } + } else { + if w.IsEncrypted() { + if err := GuardUpdate(w, password, f); err != nil { + return nil, err + } + } else { + if len(password) != 0 { + return nil, ErrWalletNotEncrypted + } + + if err := f(w); err != nil { + return nil, err + } + } + } + + // Checks if the wallet file is writable + if !w.IsTemp() { + wf := filepath.Join(serv.config.WalletDir, w.Filename()) + if !file.IsWritable(wf) { + return nil, ErrWalletPermission + } + + // Saves the wallet to disk + if err := Save(w, serv.config.WalletDir); err != nil { + return nil, err + } + } + + // Updates wallet in memory + serv.wallets.set(w) + + // return new generated addresses + return SkycoinAddresses(addrs), nil +} + +// GetSkycoinAddresses returns all addresses in given wallet +// func (serv *Service) GetSkycoinAddresses(wltID string) ([]cipher.Address, error) { +// serv.RLock() +// defer serv.RUnlock() +// if !serv.config.EnableWalletAPI { +// return nil, ErrWalletAPIDisabled +// } + +// w, err := serv.getWallet(wltID) +// if err != nil { +// return nil, err +// } + +// return w.GetSkycoinAddresses() +// } + +// GetAddresses returns all addresses of the selected wallet +func (serv *Service) GetAddresses(wltID string, options ...Option) ([]cipher.Address, error) { + serv.RLock() + defer serv.RUnlock() + if !serv.config.EnableWalletAPI { + return nil, ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return nil, err + } + addrs, err := w.GetAddresses(options...) + if err != nil { + return nil, err + } + + return SkycoinAddresses(addrs), nil +} + +// GetWallet returns wallet by id +func (serv *Service) GetWallet(wltID string) (Wallet, error) { + serv.RLock() + defer serv.RUnlock() + if !serv.config.EnableWalletAPI { + return nil, ErrWalletAPIDisabled + } + + return serv.getWallet(wltID) +} + +// returns the clone of the wallet of given id +func (serv *Service) getWallet(wltID string) (Wallet, error) { + w := serv.wallets.get(wltID) + if w == nil { + return nil, ErrWalletNotExist + } + return w.Clone(), nil +} + +// GetWallets returns all wallet clones +func (serv *Service) GetWallets() (Wallets, error) { + serv.RLock() + defer serv.RUnlock() + if !serv.config.EnableWalletAPI { + return nil, ErrWalletAPIDisabled + } + + wlts := make(Wallets, len(serv.wallets)) + for k, w := range serv.wallets { + wlts[k] = w.Clone() + } + return wlts, nil +} + +// UpdateWalletLabel updates the wallet label +func (serv *Service) UpdateWalletLabel(wltID, label string) error { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return err + } + + w.SetLabel(label) + + if err := Save(w, serv.config.WalletDir); err != nil { + return err + } + + serv.wallets.set(w) + return nil +} + +// UnloadWallet removes wallet of given wallet id from the service +func (serv *Service) UnloadWallet(wltID string) error { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return ErrWalletAPIDisabled + } + + wlt := serv.wallets.get(wltID) + if wlt != nil { + if fp := wlt.Fingerprint(); fp != "" { + delete(serv.fingerprints, fp) + } + } + + serv.wallets.remove(wltID) + return nil +} + +func (serv *Service) setWallets(wlts Wallets) { + serv.wallets = wlts + + for wltID, wlt := range wlts { + if fp := wlt.Fingerprint(); fp != "" { + serv.fingerprints[fp] = wltID + } + } +} + +// GetWalletSeed returns seed and seed passphrase of encrypted wallet of given wallet id +// Returns ErrWalletNotEncrypted if it's not encrypted +func (serv *Service) GetWalletSeed(wltID string, password []byte) (string, string, error) { + serv.RLock() + defer serv.RUnlock() + if !serv.config.EnableWalletAPI { + return "", "", ErrWalletAPIDisabled + } + + if !serv.config.EnableSeedAPI { + return "", "", ErrSeedAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return "", "", err + } + + if !w.IsEncrypted() { + return "", "", ErrWalletNotEncrypted + } + + var seed, seedPassphrase string + if err := GuardView(w, password, func(wlt Wallet) error { + seed = wlt.Seed() + seedPassphrase = wlt.SeedPassphrase() + return nil + }); err != nil { + return "", "", err + } + + return seed, seedPassphrase, nil +} + +// UpdateSecrets opens a wallet for modification of secret data and saves it safely +func (serv *Service) UpdateSecrets(wltID string, password []byte, f func(Wallet) error) error { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return err + } + + if w.IsEncrypted() { + if err := GuardUpdate(w, password, f); err != nil { + return err + } + } else if len(password) != 0 { + return ErrWalletNotEncrypted + } else { + if err := f(w); err != nil { + return err + } + } + + // Save the wallet to disk + if err := Save(w, serv.config.WalletDir); err != nil { + return err + } + + serv.wallets.set(w) + + return nil +} + +// Update opens a wallet for modification of non-secret data and saves it safely +func (serv *Service) Update(wltID string, f func(Wallet) error) error { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return err + } + + if err := f(w); err != nil { + return err + } + + // Save the wallet to disk + if err := Save(w, serv.config.WalletDir); err != nil { + return err + } + + serv.wallets.set(w) + + return nil +} + +// ViewSecrets opens a wallet for reading secret data +func (serv *Service) ViewSecrets(wltID string, password []byte, f func(Wallet) error) error { + serv.RLock() + defer serv.RUnlock() + if !serv.config.EnableWalletAPI { + return ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return err + } + + if w.IsEncrypted() { + return GuardView(w, password, f) + } else if len(password) != 0 { + return ErrWalletNotEncrypted + } else { + return f(w) + } +} + +// View opens a wallet for reading non-secret data +func (serv *Service) View(wltID string, f func(Wallet) error) error { + serv.RLock() + defer serv.RUnlock() + if !serv.config.EnableWalletAPI { + return ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltID) + if err != nil { + return err + } + + return f(w) +} + +// RecoverWallet recovers an encrypted wallet from seed. +// The recovered wallet will be encrypted with the new password, if provided. +func (serv *Service) RecoverWallet(wltName, seed, seedPassphrase string, + password []byte) (Wallet, error) { + serv.Lock() + defer serv.Unlock() + if !serv.config.EnableWalletAPI { + return nil, ErrWalletAPIDisabled + } + + w, err := serv.getWallet(wltName) + if err != nil { + return nil, err + } + + if !w.IsEncrypted() { + return nil, ErrWalletNotEncrypted + } + + switch w.Type() { + case WalletTypeBip44, WalletTypeDeterministic: + default: + return nil, ErrWalletTypeNotRecoverable + } + + // Create a wallet from this seed and compare the fingerprint + w2, err := serv.createWallet(wltName, Options{ + Type: w.Type(), + Coin: w.Coin(), + Bip44Coin: w.Bip44Coin(), + Label: w.Label(), + Seed: seed, + SeedPassphrase: seedPassphrase, + GenerateN: 1, + }) + if err != nil { + err = NewError(fmt.Errorf("RecoverWallet failed to create temporary wallet for fingerprint comparison: %v", err)) + logger.Critical().WithError(err).Error() + return nil, err + } + if w.Fingerprint() != w2.Fingerprint() { + return nil, ErrWalletRecoverSeedWrong + } + + var options []Option + if w.Type() == WalletTypeBip44 { + // regenerate external address for bip44 wallet when creating the wallet + options = append(options, OptionExternal()) + } + + l, err := w.EntriesLen(options...) + if err != nil { + return nil, err + } + + // Create a new wallet with the same number of addresses, encrypting if needed + w3, err := serv.createWallet(wltName, Options{ + Type: w.Type(), + Coin: w.Coin(), + Label: w.Label(), + Seed: seed, + SeedPassphrase: seedPassphrase, + Encrypt: len(password) != 0, + Password: password, + CryptoType: w.CryptoType(), + Bip44Coin: w.Bip44Coin(), + GenerateN: uint64(l), + }) + if err != nil { + return nil, err + } + + if w.Type() == WalletTypeBip44 { + // regenerate external address for bip44 wallet when creating the wallet + cl, err := w.EntriesLen(OptionChange()) + if err != nil { + return nil, err + } + + // regenerate the change addresses + if cl > 1 { + _, err := w3.GenerateAddresses(OptionGenerateN(uint64(cl-1)), OptionChange()) + if err != nil { + return nil, err + } + } + } + + // Preserve the timestamp of the old wallet + w3.SetTimestamp(w.Timestamp()) + + // Save to disk + if err := Save(w3, serv.config.WalletDir); err != nil { + return nil, err + } + + serv.wallets.set(w3) + + return w3.Clone(), nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/transaction.go b/vendor/github.com/skycoin/skycoin/src/wallet/transaction.go new file mode 100644 index 000000000..3a17d9a64 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/transaction.go @@ -0,0 +1,278 @@ +package wallet + +import ( + "errors" + "fmt" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" + "github.com/skycoin/skycoin/src/transaction" +) + +var ( + // ErrUnknownAddress is returned if an address is not found in a wallet + ErrUnknownAddress = NewError(errors.New("address not found in wallet")) + // ErrUnknownUxOut is returned if a uxout is not owned by any address in a wallet + ErrUnknownUxOut = NewError(errors.New("uxout is not owned by any address in the wallet")) + // ErrWalletCantSign is returned is attempting to sign a transaction with a wallet + // that does not have the capability to sign transactions (e.g. an xpub or watch wallet) + ErrWalletCantSign = NewError(errors.New("wallet does not have the signing capability")) +) + +func validateSignIndexes(x []int, uxOuts []coin.UxOut) error { + if len(x) > len(uxOuts) { + return errors.New("Number of signature indexes exceeds number of inputs") + } + + for _, i := range x { + if i >= len(uxOuts) || i < 0 { + return errors.New("Signature index out of range") + } + } + + m := make(map[int]struct{}, len(x)) + for _, i := range x { + if _, ok := m[i]; ok { + return errors.New("Duplicate value in signature indexes") + } + m[i] = struct{}{} + } + + return nil +} + +func copyTransaction(txn *coin.Transaction) *coin.Transaction { + txnHash := txn.Hash() + txnInnerHash := txn.HashInner() + + txn2 := *txn + txn2.Sigs = make([]cipher.Sig, len(txn.Sigs)) + copy(txn2.Sigs, txn.Sigs) + txn2.In = make([]cipher.SHA256, len(txn.In)) + copy(txn2.In, txn.In) + txn2.Out = make([]coin.TransactionOutput, len(txn.Out)) + copy(txn2.Out, txn.Out) + + if txnInnerHash != txn2.HashInner() { + logger.Panic("copyTransaction copy broke InnerHash") + } + if txnHash != txn2.Hash() { + logger.Panic("copyTransaction copy broke Hash") + } + + return &txn2 +} + +// SignTransaction signs a transaction. Specific inputs may be signed by specifying signIndexes. +// If signIndexes is empty, all inputs will be signed. +// The transaction should already have a valid header. The transaction may be partially signed, +// but a valid existing signature cannot be overwritten. +// Clients should avoid signing the same transaction multiple times. +func SignTransaction(w Wallet, txn *coin.Transaction, signIndexes []int, uxOuts []coin.UxOut) (*coin.Transaction, error) { + switch w.Type() { + case WalletTypeXPub: + return nil, ErrWalletCantSign + } + + signedTxn := copyTransaction(txn) + txnInnerHash := signedTxn.HashInner() + + if w.IsEncrypted() { + return nil, ErrWalletEncrypted + } + + if txnInnerHash != signedTxn.InnerHash { + return nil, NewError(errors.New("Transaction inner hash does not match computed inner hash")) + } + + if len(signedTxn.Sigs) == 0 { + return nil, NewError(errors.New("Transaction signatures array is empty")) + } + if signedTxn.IsFullySigned() { + return nil, NewError(errors.New("Transaction is fully signed")) + } + + if len(signedTxn.In) == 0 { + return nil, NewError(errors.New("No transaction inputs to sign")) + } + if len(uxOuts) != len(signedTxn.In) { + return nil, errors.New("len(uxOuts) != len(txn.In)") + } + if err := validateSignIndexes(signIndexes, uxOuts); err != nil { + return nil, NewError(err) + } + + nMissingSigs := 0 + for _, s := range signedTxn.Sigs { + if s.Null() { + nMissingSigs++ + } + } + + // Build a mapping of addresses to the inputs that need to be signed + addrsMap := make(map[cipher.Address][]int) + if len(signIndexes) > 0 { + for _, in := range signIndexes { + if !signedTxn.Sigs[in].Null() { + return nil, NewError(fmt.Errorf("Transaction is already signed at index %d", in)) + } + addrsMap[uxOuts[in].Body.Address] = append(addrsMap[uxOuts[in].Body.Address], in) + } + } else { + for i, o := range uxOuts { + if !signedTxn.Sigs[i].Null() { + continue + } + addrsMap[o.Body.Address] = append(addrsMap[o.Body.Address], i) + } + } + + // Check that the wallet has all addresses needed for signing + toSign := make(map[cipher.SecKey][]int) + entries, err := w.GetEntries() + if err != nil { + return nil, err + } + for _, e := range entries { + if len(toSign) == len(addrsMap) { + break + } + addr := e.SkycoinAddress() + if x, ok := addrsMap[addr]; ok { + toSign[e.Secret] = x + } + } + + if len(toSign) != len(addrsMap) { + return nil, NewError(errors.New("Wallet cannot sign all requested inputs")) + } + + // Sign the selected inputs + for k, v := range toSign { + for _, x := range v { + if !signedTxn.Sigs[x].Null() { + return nil, NewError(fmt.Errorf("Transaction is already signed at index %d", x)) + } + + if err := signedTxn.SignInput(k, x); err != nil { + return nil, err + } + } + } + + if err := signedTxn.UpdateHeader(); err != nil { + return nil, err + } + + // Sanity check + if txnInnerHash != signedTxn.HashInner() { + err := errors.New("Transaction inner hash modified in the process of signing") + logger.Critical().WithError(err).Error() + return nil, err + } + + if len(signIndexes) == 0 || len(signIndexes) == nMissingSigs { + if !signedTxn.IsFullySigned() { + return nil, errors.New("Transaction is not fully signed, but should be") + } + } else { + if signedTxn.IsFullySigned() { + return nil, errors.New("Transaction is fully signed, but shouldn't be") + } + } + + return signedTxn, nil +} + +// CreateTransaction creates an unsigned transaction based upon transaction.Params. +// Set the password as nil if the wallet is not encrypted, otherwise the password must be provided. +// NOTE: Caller must ensure that auxs correspond to params.Wallet.Addresses and params.Wallet.UxOuts options +// Outputs to spend are chosen from the pool of outputs provided. +// The outputs are chosen by the following procedure: +// - All outputs are merged into one list and are sorted coins highest, hours lowest, with the hash as a tiebreaker +// - Outputs are chosen from the beginning of this list, until the requested amount of coins is met. +// If hours are also specified, selection continues until the requested amount of hours are met. +// - If the total amount of coins in the chosen outputs is exactly equal to the requested amount of coins, +// such that there would be no change output but hours remain as change, another output will be chosen to create change, +// if the coinhour cost of adding that output is less than the coinhours that would be lost as change +// If receiving hours are not explicitly specified, hours are allocated amongst the receiving outputs proportional to the number of coins being sent to them. +// If the change address is not specified, the address whose bytes are lexically sorted first is chosen from the owners of the outputs being spent. +// WARNING: This method is not concurrent-safe if operating on the same wallet. Use Service.View or Service.ViewSecrets to lock the wallet, or use your own lock. +func CreateTransaction(w Wallet, p transaction.Params, auxs coin.AddressUxOuts, headTime uint64) (*coin.Transaction, []transaction.UxBalance, error) { + if err := p.Validate(); err != nil { + return nil, nil, err + } + + // Check that auxs does not contain addresses that are not known to this wallet + for a := range auxs { + has, err := w.HasEntry(a) + if err != nil { + return nil, nil, err + } + if !has { + return nil, nil, fmt.Errorf("Address %s from auxs not found in wallet", a) + } + } + + // Generate a new change address for bip44 wallets + if p.ChangeAddress == nil && w.Type() == WalletTypeBip44 { + err := errors.New("change address must not be nil") + logger.Critical().WithError(err).Error("CreateTransaction change address must not be nil for bip44 wallet") + return nil, nil, err + } + + return transaction.Create(p, auxs, headTime) +} + +// CreateTransactionSigned creates and signs a transaction based upon transaction.Params. +// Set the password as nil if the wallet is not encrypted, otherwise the password must be provided. +// Refer to CreateTransaction for information about transaction creation. +func CreateTransactionSigned(w Wallet, p transaction.Params, auxs coin.AddressUxOuts, headTime uint64) (*coin.Transaction, []transaction.UxBalance, error) { + txn, uxb, err := CreateTransaction(w, p, auxs, headTime) + if err != nil { + return nil, nil, err + } + + logger.Infof("CreateTransactionSigned: signing %d inputs", len(uxb)) + + // Sign the transaction + entriesMap := make(map[cipher.Address]Entry) + for i, s := range uxb { + entry, ok := entriesMap[s.Address] + if !ok { + var err error + entry, err = w.GetEntry(s.Address) + if err == ErrEntryNotFound { + // This should not occur because CreateTransaction should have checked it already + err := fmt.Errorf("Chosen spend address %s not found in wallet", s.Address) + logger.Critical().WithError(err).Error() + return nil, nil, err + } + entriesMap[s.Address] = entry + } + + if err := txn.SignInput(entry.Secret, i); err != nil { + logger.Critical().WithError(err).Errorf("CreateTransaction SignInput(%d) failed", i) + return nil, nil, err + } + } + + // Sanity check the signed transaction + if err := verifyCreatedSignedInvariants(p, txn, uxb); err != nil { + return nil, nil, err + } + + return txn, uxb, nil +} + +func verifyCreatedSignedInvariants(p transaction.Params, txn *coin.Transaction, inputs []transaction.UxBalance) error { + if !txn.IsFullySigned() { + return errors.New("Transaction is not fully signed") + } + + if err := transaction.VerifyCreatedInvariants(p, txn, inputs); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/wallet.go b/vendor/github.com/skycoin/skycoin/src/wallet/wallet.go new file mode 100644 index 000000000..d95b6d78e --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/wallet.go @@ -0,0 +1,620 @@ +/* +Package wallet implements wallets and the wallet database service + +Values of the Wallet interface can be created by calling function NewWallet, +or by loading from `[]byte` that containing wallet data of type such as +"deterministic", "collection", "bip44" or "xpubwallet". Loading any particular +type of wallet requires the prior registration of a loader. Registration is typically +automatic as a side effect of initializing that wallet's package so that, to load a +"deterministic" wallet, it suffices to have + import _ "github.com/skycoin/skycoin/src/wallet/deterministic" +in a program's main package. The _ means to import a package purely for its +initialization side effects. +*/ +package wallet + +import ( + "encoding/hex" + "errors" + "fmt" + "io/ioutil" + "os" + "path/filepath" + "strconv" + "strings" + "time" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip44" + "github.com/skycoin/skycoin/src/cipher/crypto" + "github.com/skycoin/skycoin/src/util/file" + "github.com/skycoin/skycoin/src/util/logging" +) + +// Error wraps wallet-related errors. +// It wraps errors caused by user input, but not errors caused by programmer input or internal issues. +type Error struct { + error +} + +// NewError creates an Error +func NewError(err error) error { + if err == nil { + return nil + } + return Error{err} +} + +var ( + // Version represents the current wallet version + Version = "0.4" + + logger = logging.MustGetLogger("wallet") + + // ErrInvalidEncryptedField is returned if a wallet's Meta.encrypted value is invalid. + ErrInvalidEncryptedField = NewError(errors.New(`encrypted field value is not valid, must be "true", "false" or ""`)) + // ErrWalletEncrypted is returned when trying to generate addresses or sign tx in encrypted wallet + ErrWalletEncrypted = NewError(errors.New("wallet is encrypted")) + // ErrWalletNotEncrypted is returned when trying to decrypt unencrypted wallet + ErrWalletNotEncrypted = NewError(errors.New("wallet is not encrypted")) + // ErrMissingPassword is returned when trying to create wallet with encryption, but password is not provided. + ErrMissingPassword = NewError(errors.New("missing password")) + // ErrMissingEncrypt is returned when trying to create wallet with password, but options.Encrypt is not set. + ErrMissingEncrypt = NewError(errors.New("missing encrypt")) + // ErrInvalidPassword is returned if decrypts secrets failed + ErrInvalidPassword = NewError(errors.New("invalid password")) + // ErrMissingSeed is returned when trying to create wallet without a seed + ErrMissingSeed = NewError(errors.New("missing seed")) + // ErrMissingLabel is returned when trying to create wallet without label + ErrMissingLabel = NewError(errors.New("missing label")) + // ErrMissingAuthenticated is returned if try to decrypt a scrypt chacha20poly1305 encrypted wallet, and find no authenticated metadata. + ErrMissingAuthenticated = NewError(errors.New("missing authenticated metadata")) + // ErrMissingXPub is returned if try to create a XPub wallet without providing xpub key + ErrMissingXPub = NewError(errors.New("missing xpub")) + // ErrWrongCryptoType is returned when decrypting wallet with wrong crypto method + ErrWrongCryptoType = NewError(errors.New("wrong crypto type")) + // ErrWalletNotExist is returned if a wallet does not exist + ErrWalletNotExist = NewError(errors.New("wallet doesn't exist")) + // ErrSeedUsed is returned if a wallet already exists with the same seed + ErrSeedUsed = NewError(errors.New("a wallet already exists with this seed")) + // ErrXPubKeyUsed is returned if a wallet already exists with the same xpub key + ErrXPubKeyUsed = NewError(errors.New("a wallet already exists with this xpub key")) + // ErrWalletAPIDisabled is returned when trying to do wallet actions while the EnableWalletAPI option is false + ErrWalletAPIDisabled = NewError(errors.New("wallet api is disabled")) + // ErrSeedAPIDisabled is returned when trying to get seed of wallet while the EnableWalletAPI or EnableSeedAPI is false + ErrSeedAPIDisabled = NewError(errors.New("wallet seed api is disabled")) + // ErrWalletNameConflict represents the wallet name conflict error + ErrWalletNameConflict = NewError(errors.New("wallet name would conflict with existing wallet, renaming")) + // ErrWalletRecoverSeedWrong is returned if the seed or seed passphrase does not match the specified wallet when recovering + ErrWalletRecoverSeedWrong = NewError(errors.New("wallet recovery seed or seed passphrase is wrong")) + // ErrWalletSeedPassphrase is returned when using seed passphrase for none bip44 wallet + ErrWalletSeedPassphrase = NewError(errors.New("seedPassphrase is only used for \"bip44\" wallets")) + // ErrNilTransactionsFinder is returned if Options.ScanN > 0 but a nil TransactionsFinder was provided + ErrNilTransactionsFinder = NewError(errors.New("scan ahead requested but balance getter is nil")) + // ErrInvalidCoinType is returned for invalid coin types + ErrInvalidCoinType = NewError(errors.New("invalid coin type")) + // ErrInvalidWalletType is returned for invalid wallet types + ErrInvalidWalletType = NewError(errors.New("invalid wallet type")) + // ErrWalletTypeNotRecoverable is returned by RecoverWallet is the wallet type does not support recovery + ErrWalletTypeNotRecoverable = NewError(errors.New("wallet type is not recoverable")) + // ErrWalletPermission is returned when updating a wallet without writing permission + ErrWalletPermission = NewError(errors.New("saving wallet permission denied")) + // ErrInvalidPrivateKeys is returned when creating a collection wallet with invalid private keys + ErrInvalidPrivateKeys = NewError(errors.New("invalid private keys")) + + // ErrEntryNotFound is returned by GetEntry is the wallet does not contains the entry + ErrEntryNotFound = errors.New("entry not found") + // ErrEncryptTempWallet is returned when trying to encrypt a temporary wallet + ErrEncryptTempWallet = errors.New("temporary wallet does not support encryption") +) + +const ( + // WalletExt wallet file extension + WalletExt = "wlt" + + // WalletTimestampFormat wallet timestamp layout + WalletTimestampFormat = "2006_01_02" + + // CoinTypeSkycoin skycoin type + CoinTypeSkycoin CoinType = "skycoin" + // CoinTypeBitcoin bitcoin type + CoinTypeBitcoin CoinType = "bitcoin" + + // WalletTypeDeterministic deterministic wallet type. + // Uses the original Skycoin deterministic key generator. + WalletTypeDeterministic = "deterministic" + // WalletTypeCollection collection wallet type. + // Does not use any key generator; keys must be added explicitly + WalletTypeCollection = "collection" + // WalletTypeBip44 bip44 HD wallet type. + // Follow the bip44 spec. + WalletTypeBip44 = "bip44" + // WalletTypeXPub xpub HD wallet type. + // Allows generating addresses without a secret key + WalletTypeXPub = "xpub" +) + +// CoinType represents the wallet coin type, which refers to the pubkey2addr method used +type CoinType string + +// NewWalletFilename generates a filename from the current time and random bytes +func NewWalletFilename() string { + timestamp := time.Now().Format(WalletTimestampFormat) + // should read in wallet files and make sure does not exist + padding := hex.EncodeToString(cipher.RandByte(2)) + return fmt.Sprintf("%s_%s.%s", timestamp, padding, WalletExt) +} + +// Options options that could be used when creating a wallet +type Options struct { + Version string + Type string // wallet type: deterministic, collection. Refers to which key generation mechanism is used. + Coin CoinType // coin type: skycoin, bitcoin, etc. Refers to which pubkey2addr method is used. + Bip44Coin *bip44.CoinType // bip44 path coin type + Label string // wallet label + Seed string // wallet seed + SeedPassphrase string // wallet seed passphrase (bip44 wallets only) + Encrypt bool // whether the wallet need to be encrypted. + Password []byte // password that would be used for encryption, and would only be used when 'Encrypt' is true. + CryptoType crypto.CryptoType // wallet encryption type, scrypt-chacha20poly1305 or sha256-xor. + ScanN uint64 // number of addresses that're going to be scanned for a balance. The highest address with a balance will be used. + GenerateN uint64 // number of addresses to generate, regardless of balance + XPub string // xpub key (xpub wallets only) + Decoder Decoder + TF TransactionsFinder + Temp bool // whether the wallet is created temporary in memory. + CollectionPrivateKeys []cipher.SecKey // private keys for collection wallet +} + +func (opts Options) Validate() error { + if opts.Type == WalletTypeDeterministic && opts.SeedPassphrase != "" { + return ErrWalletSeedPassphrase + } + return nil +} + +//go:generate mockery -name Wallet -case underscore -inpkg -testonly + +// Wallet defines the wallet API +type Wallet interface { + Seed() string + LastSeed() string + SeedPassphrase() string + Timestamp() int64 + SetTimestamp(int64) + Coin() CoinType + SetCoin(coinType CoinType) + // Type returns the wallet type, e.g. bip44, deterministic, collection + Type() string + // Bip44Coin returns the coin_type part of bip44 path + Bip44Coin() *bip44.CoinType + SetBip44Coin(ct bip44.CoinType) + Label() string + SetLabel(string) + Filename() string + SetFilename(string) + IsEncrypted() bool + // CryptoType returns the crypto type for encrypting/decrypting the wallet + CryptoType() crypto.CryptoType + SetCryptoType(ct crypto.CryptoType) + // SetDecoder sets the wallet decoder + SetDecoder(d Decoder) + // Version returns the wallet version + Version() string + // Secrets returns the wallet secrets data + Secrets() string + // XPub returns the xpub key of a xpub wallet + XPub() string + // Lock encrypts the wallet + Lock(password []byte) error + // Unlock decrypts the wallets, returns an copy of the decrypted wallet + Unlock(password []byte) (Wallet, error) + // Erase wipes sensitive data + Erase() + // Clone returns a copy of the wallet + Clone() Wallet + // CopyFrom copies the src wallet to w + // CopyFrom(src Wallet) + // CopyFromRef copies the src wallet with a pointer dereference + CopyFromRef(src Wallet) + Fingerprint() string + // ScanAddresses scans ahead given number of addresses + ScanAddresses(scanN uint64, tf TransactionsFinder) ([]cipher.Addresser, error) + // GetAddresses returns all addresses. + // for bip44 wallet, if no options are specified, addresses on external chain of account + // with index 0 will be returned. + GetAddresses(options ...Option) ([]cipher.Addresser, error) + // GenerateAddresses generates N addresses, + // for bip44 wallet, if no options are specified, addresses will be generated + // on external chain of account with index 0. + GenerateAddresses(options ...Option) ([]cipher.Addresser, error) + // GetEntries returns entries, + // for bip44 wallet if no options are used, entries on external chain of account + // with index 0 will be returned. + GetEntries(options ...Option) (Entries, error) + // GetEntryAt returns the entry of given index, + // for bip44 wallet, if no options are specified, the entry on external chain of the account + // with index 0 will be returned. + GetEntryAt(i int, options ...Option) (Entry, error) + // GetEntry return the entry by address + // for bip44 wallet, if no options are specified, it will search the external chain of account + // of index 0. + GetEntry(addr cipher.Addresser, options ...Option) (Entry, error) + // HasEntry returns whether the entry exists in the wallet + // for bip44 wallet, if no options are specified, it will check the external chain of account + // of index 0. + HasEntry(addr cipher.Addresser, options ...Option) (bool, error) + // EntriesLen returns the entries length + // for bip44 wallet, if no options are specified, the length of the entries on external chain of account + // with index 0 will be returned. + EntriesLen(options ...Option) (int, error) + // Accounts returns the list of account for bip44 wallet + Accounts() []Bip44Account + // Serialize serialize the wallet to bytes, and error if any + Serialize() ([]byte, error) + // Deserialize deserialize the data to a Wallet, and error if any + Deserialize(data []byte) error + // IsTemp returns whether the wallet is a temporary wallet + IsTemp() bool + // SetTemp sets wallet temporary flag + SetTemp(temp bool) +} + +// Decoder is the interface that wraps the Encode and Decode methods. +// Encode method encodes the wallet to bytes, Decode method decodes bytes to bip44 wallet. +type Decoder interface { + Encode(w Wallet) ([]byte, error) + Decode(b []byte) (Wallet, error) +} + +// NewWallet creates a new wallet +func NewWallet(filename, label, seed string, options Options) (Wallet, error) { + if err := options.Validate(); err != nil { + return nil, err + } + + c, ok := getCreator(options.Type) + if !ok { + return nil, fmt.Errorf("wallet.NewWallet failed, wallet type %q is not supported", options.Type) + } + + return c.Create(filename, label, seed, options) +} + +// Bip44Account represents the wallet account +type Bip44Account struct { + Name string + Index uint32 +} + +// GuardUpdate executes a function within the context of a read-write managed decrypted wallet. +// Returns ErrWalletNotEncrypted if wallet is not encrypted. +func GuardUpdate(w Wallet, password []byte, fn func(w Wallet) error) error { + if !w.IsEncrypted() { + return ErrWalletNotEncrypted + } + + if len(password) == 0 { + return ErrMissingPassword + } + + wlt, err := w.Unlock(password) + if err != nil { + return err + } + + defer wlt.Erase() + + if err := fn(wlt); err != nil { + return err + } + + if err := wlt.Lock(password); err != nil { + return err + } + + w.CopyFromRef(wlt) + + // Wipes all sensitive data + w.Erase() + return nil +} + +// GuardView executes a function within the context of a read-only managed decrypted wallet. +// Returns ErrWalletNotEncrypted if wallet is not encrypted. +func GuardView(w Wallet, password []byte, f func(w Wallet) error) error { + if !w.IsEncrypted() { + return ErrWalletNotEncrypted + } + + if len(password) == 0 { + return ErrMissingPassword + } + + wlt, err := w.Unlock(password) + if err != nil { + return err + } + + // TODO: consider to catch panic and erase sensitive data in recovery function + // in case the f(wlt) function get panic + + defer wlt.Erase() + + return f(wlt) +} + +type walletLoadMeta struct { + Meta struct { + Type string `json:"type"` + Version string `json:"version"` + } `json:"meta"` +} + +// Save saves the wallet to a directory. The wallet's filename is read from its metadata. +func Save(w Wallet, dir string) error { + if w.IsTemp() { + return nil + } + + data, err := w.Serialize() + if err != nil { + return err + } + return file.SaveBinary(filepath.Join(dir, w.Filename()), data, 0600) +} + +// Load loads wallet from a file +func Load(filename string) (Wallet, error) { + if _, err := os.Stat(filename); os.IsNotExist(err) { + return nil, fmt.Errorf("wallet %q doesn't exist", filename) + } + + // Load the wallet meta type field from JSON + m, err := loadWalletMeta(filename) + if err != nil { + return nil, err + } + + if m.Meta.Type == "" { + err := errors.New("missing meta.type field") + logger.WithError(err).WithField("filename", filename) + return nil, err + } + + // Depending on the wallet type in the wallet metadata header, load the full wallet data + l, ok := getLoader(m.Meta.Type) + if !ok { + logger.Errorf("wallet loader for type of %q not found", m.Meta.Type) + return nil, nil + } + + data, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + + w, err := l.Load(data) + if err != nil { + return nil, err + } + + w.SetFilename(filepath.Base(filename)) + return w, nil +} + +// removeBackupFiles removes any *.wlt.bak files whom have version 0.1 and *.wlt matched in the given directory +func removeBackupFiles(dir string) error { + fs, err := filterDir(dir, ".wlt") + if err != nil { + return err + } + + // Creates the .wlt file map + fm := make(map[string]struct{}) + for _, f := range fs { + fm[f] = struct{}{} + } + + // Filters all .wlt.bak files in the directory + bakFs, err := filterDir(dir, ".wlt.bak") + if err != nil { + return err + } + + // Removes the .wlt.bak file that has .wlt matched. + for _, bf := range bakFs { + f := strings.TrimRight(bf, ".bak") + if _, ok := fm[f]; ok { + // Load and check the wallet version + m, err := loadWalletMeta(f) + if err != nil { + return err + } + + if m.Meta.Version == "0.1" { + if err := os.Remove(bf); err != nil { + return err + } + } + } + } + + return nil +} + +func loadWalletMeta(filename string) (*walletLoadMeta, error) { + var m walletLoadMeta + if err := file.LoadJSON(filename, &m); err != nil { + logger.WithError(err).WithField("filename", filename).Error("Load: file.LoadJSON failed") + return nil, err + } + + return &m, nil +} + +func filterDir(dir string, suffix string) ([]string, error) { + files, err := ioutil.ReadDir(dir) + if err != nil { + return nil, err + } + res := []string{} + for _, f := range files { + if !f.IsDir() && strings.HasSuffix(f.Name(), suffix) { + res = append(res, filepath.Join(dir, f.Name())) + } + } + return res, nil +} + +// IsValidWalletType returns true if a wallet type is recognized +func IsValidWalletType(t string) bool { + switch t { + case WalletTypeDeterministic, + WalletTypeCollection, + WalletTypeBip44, + WalletTypeXPub: + return true + default: + return false + } +} + +// AddressConstructor returns a function to create a cipher.Addresser from a cipher.PubKey +func AddressConstructor(m Meta) func(cipher.PubKey) cipher.Addresser { + switch m.Coin() { + case CoinTypeSkycoin: + return func(pk cipher.PubKey) cipher.Addresser { + return cipher.AddressFromPubKey(pk) + } + case CoinTypeBitcoin: + return func(pk cipher.PubKey) cipher.Addresser { + return cipher.BitcoinAddressFromPubKey(pk) + } + default: + logger.Panicf("Invalid wallet coin type %q", m.Coin()) + return nil + } +} + +// ValidateMeta validates the common meta data when initializing a wallet +func ValidateMeta(m Meta) error { + if fn := m[MetaFilename]; fn == "" { + return errors.New("filename not set") + } + + if tm := m[MetaTimestamp]; tm != "" { + _, err := strconv.ParseInt(tm, 10, 64) + if err != nil { + return errors.New("invalid timestamp") + } + } + + if tp := m[MetaType]; tp == "" { + return errors.New("type field not set") + } + + if coinType := m[MetaCoin]; coinType == "" { + return errors.New("coin field not set") + } + + var isEncrypted bool + if encStr, ok := m[MetaEncrypted]; ok { + // validate the encrypted value + var err error + isEncrypted, err = strconv.ParseBool(encStr) + if err != nil { + return errors.New("encrypted field is not a valid bool") + } + } + + if isEncrypted { + if s := m[MetaSecrets]; s == "" { + return errors.New("wallet is encrypted, but secrets field not set") + } + } else { + if s := m[MetaSecrets]; s != "" { + return errors.New("secrets should not be in unencrypted wallets") + } + } + + return nil +} + +// ValidateMetaCryptoType validates meta crypto type +func ValidateMetaCryptoType(m Meta) error { + cryptoType, ok := m[MetaCryptoType] + if !ok { + return errors.New("crypto type field not set") + } + + if _, err := crypto.GetCrypto(crypto.CryptoType(cryptoType)); err != nil { + return errors.New("unknown crypto type") + } + + return nil +} + +// ValidateMetaSeed validate meta seed +func ValidateMetaSeed(m Meta) error { + if m.IsEncrypted() { + if s := m[MetaSeed]; s != "" { + return errors.New("seed should not be visible in encrypted wallets") + } + } else { + if s := m[MetaSeed]; s == "" { + return ErrMissingSeed + } + } + return nil +} + +// SkycoinAddresses converts the addresses to skycoin addresses +func SkycoinAddresses(addrs []cipher.Addresser) []cipher.Address { + skyAddrs := make([]cipher.Address, len(addrs)) + for i, a := range addrs { + skyAddrs[i] = a.(cipher.Address) + } + return skyAddrs +} + +// ParsePrivateKeys parse private keys from a string +// keys must be joined with commas +func ParsePrivateKeys(keys string) ([]cipher.SecKey, error) { + if keys == "" { + return nil, nil + } + + ss := strings.Split(keys, ",") + secKeys := make([]cipher.SecKey, 0, len(ss)) + for _, s := range ss { + v := strings.TrimSpace(s) + if len(v) > 0 { + sk, err := cipher.SecKeyFromHex(v) + if err != nil { + return nil, fmt.Errorf("invalid private key: %v", err) + } + secKeys = append(secKeys, sk) + } + } + return secKeys, nil +} + +func applyAdvancedOptions(options ...Option) *AdvancedOptions { + var advOpts AdvancedOptions + for _, f := range options { + f(&advOpts) + } + + return &advOpts +} + +// GetGenerateNFromOptions gets generateN from options +func GetGenerateNFromOptions(options ...Option) uint64 { + return applyAdvancedOptions(options...).GenerateN +} + +// GetPrivateKeysFromOptions gets private keys from options +func GetPrivateKeysFromOptions(options ...Option) []cipher.SecKey { + return applyAdvancedOptions(options...).PrivateKeys +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/wallets.go b/vendor/github.com/skycoin/skycoin/src/wallet/wallets.go new file mode 100644 index 000000000..bae402f51 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/wallets.go @@ -0,0 +1,146 @@ +package wallet + +import ( + "fmt" + "io/ioutil" + "path/filepath" + "strings" +) + +// Wallets wallets map +type Wallets map[string]Wallet + +// loadWallets Loads all wallets contained in wallet dir. If any regular file in wallet +// dir fails to load, loading is aborted and error returned. Only files with +// extension WalletExt are considered. +func loadWallets(dir string, loader Loader) (Wallets, error) { + entries, err := ioutil.ReadDir(dir) + if err != nil { + logger.WithError(err).WithField("dir", dir).Error("loadWallets: ioutil.ReadDir failed") + return nil, err + } + + wallets := Wallets{} + for _, e := range entries { + if e.Mode().IsRegular() { + name := e.Name() + if !strings.HasSuffix(name, WalletExt) { + logger.WithField("filename", name).Info("loadWallets: skipping file") + continue + } + + fullpath := filepath.Join(dir, name) + data, err := ioutil.ReadFile(fullpath) + if err != nil { + return nil, err + } + w, err := loader.Load(data) + if err != nil { + logger.WithError(err).WithField("filename", fullpath).Error("loadWallets: loadWallet failed") + return nil, err + } + + logger.WithField("filename", fullpath).Info("loadWallets: loaded wallet") + + wallets[name] = w + } + } + + for name, w := range wallets { + // TODO: do validate when creating wallet + // if err := w.Validate(); err != nil { + // logger.WithError(err).WithField("name", name).Error("loadWallets: wallet.Validate failed") + // return nil, err + // } + + if w.Coin() != CoinTypeSkycoin { + err := fmt.Errorf("LoadWallets only support skycoin wallets, %s is a %s wallet", name, w.Coin()) + logger.WithError(err).WithField("name", name).Error() + return nil, err + } + } + + return wallets, nil +} + +// add add wallet to current wallet +func (wlts Wallets) add(w Wallet) error { + if _, dup := wlts[w.Filename()]; dup { + return ErrWalletNameConflict + } + + wlts[w.Filename()] = w + return nil +} + +// remove wallet of specific id +func (wlts Wallets) remove(id string) { + delete(wlts, id) +} + +// get returns wallet by wallet id +func (wlts Wallets) get(id string) Wallet { + return wlts[id] +} + +// set sets a wallet into the map +func (wlts Wallets) set(w Wallet) { + wlts[w.Filename()] = w.Clone() +} + +// containsDuplicate returns true if there is a duplicate wallet identified by +// the wallet's fingerprint. This is to detect duplicate generative wallets; +// wallets with no defined generation method do not have a concept of being +// a duplicate of another wallet +func (wlts Wallets) containsDuplicate() (string, string, bool) { + m := make(map[string]struct{}, len(wlts)) + for wltID, wlt := range wlts { + fp := wlt.Fingerprint() + if fp == "" { + continue + } + + if _, ok := m[fp]; ok { + return wltID, fp, true + } + + m[fp] = struct{}{} + } + + return "", "", false +} + +// containsEmpty returns true there is an empty wallet and the ID of that wallet if true. +// Does not apply to collection wallets +func (wlts Wallets) containsEmpty() (string, bool) { + for wltID, wlt := range wlts { + switch wlt.Type() { + case WalletTypeCollection: + continue + case WalletTypeBip44: + var l int + // gets the external entries length + for _, a := range wlt.Accounts() { + el, err := wlt.EntriesLen(OptionAccount(a.Index)) + if err != nil { + panic(err) + } + l += el + } + + if l == 0 { + return wltID, true + } + default: + l, err := wlt.EntriesLen() + if err != nil { + panic(err) + } + + if l == 0 { + return wltID, true + } + } + } + return "", false +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/xpubwallet/decoder.go b/vendor/github.com/skycoin/skycoin/src/wallet/xpubwallet/decoder.go new file mode 100644 index 000000000..88ab0fd61 --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/xpubwallet/decoder.go @@ -0,0 +1,112 @@ +package xpubwallet + +import ( + "encoding/json" + "errors" + + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/wallet" +) + +// TODO: test this + +// JSONDecoder implements the the WalletDecoder interface, +// which provides methods for encoding and decoding a XPub wallet in JSON format. +type JSONDecoder struct{} + +// Encode encodes the XPub wallet to []byte, and error if any +func (d JSONDecoder) Encode(w wallet.Wallet) ([]byte, error) { + return json.MarshalIndent(newReadableWallet(w.(*Wallet)), "", " ") +} + +// Decode decodes the XPub wallet from byte slice +func (d JSONDecoder) Decode(b []byte) (wallet.Wallet, error) { + rw := readableWallet{} + if err := json.Unmarshal(b, &rw); err != nil { + return nil, err + } + + return rw.toWallet() +} + +type readableWallet struct { + wallet.Meta `json:"meta"` + Entries readableXPubEntries `json:"entries"` +} + +func (w readableWallet) toWallet() (*Wallet, error) { + ad := wallet.ResolveAddressDecoder(w.Coin()) + entries, err := w.Entries.toXPubEntries(ad) + if err != nil { + return nil, err + } + + xpubStr := w.Meta[wallet.MetaXPub] + if xpubStr == "" { + return nil, errors.New("missing xpub meta field") + } + + xPub, err := parseXPub(xpubStr) + if err != nil { + return nil, err + } + + return &Wallet{ + Meta: w.Meta.Clone(), + entries: entries, + xpub: xPub, + decoder: &JSONDecoder{}, + }, nil +} + +func newReadableWallet(w *Wallet) *readableWallet { + return &readableWallet{ + Meta: w.Meta.Clone(), + Entries: newReadableEntries(w.entries), + } +} + +type readableXPubEntries []readableXPubEntry + +func (es readableXPubEntries) toXPubEntries(ad wallet.AddressDecoder) (wallet.Entries, error) { + entries := make(wallet.Entries, len(es)) + for i, e := range es { + addr, err := ad.DecodeBase58Address(e.Address) + if err != nil { + return nil, err + } + + p, err := cipher.PubKeyFromHex(e.Public) + if err != nil { + return nil, err + } + + entries[i] = wallet.Entry{ + Address: addr, + Public: p, + ChildNumber: e.ChildNumber, + } + } + + return entries, nil +} + +func newReadableEntries(entries wallet.Entries) readableXPubEntries { + var res readableXPubEntries + res = make([]readableXPubEntry, len(entries)) + for i, e := range entries { + res[i] = readableXPubEntry{ + Address: e.Address.String(), + Public: e.Public.Hex(), + ChildNumber: e.ChildNumber, + } + } + + return res +} + +type readableXPubEntry struct { + Address string `json:"address"` + Public string `json:"public"` + ChildNumber uint32 `json:"child_number"` // For bip32/bip44 +} diff --git a/vendor/github.com/skycoin/skycoin/src/wallet/xpubwallet/wallet.go b/vendor/github.com/skycoin/skycoin/src/wallet/xpubwallet/wallet.go new file mode 100644 index 000000000..9b0966a2f --- /dev/null +++ b/vendor/github.com/skycoin/skycoin/src/wallet/xpubwallet/wallet.go @@ -0,0 +1,471 @@ +package xpubwallet + +import ( + "errors" + "fmt" + "math" + "strconv" + "time" + + "github.com/sirupsen/logrus" + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/cipher/bip32" + "github.com/skycoin/skycoin/src/util/logging" + "github.com/skycoin/skycoin/src/util/mathutil" + "github.com/skycoin/skycoin/src/wallet" +) + +// WalletType represents the xpub wallet type +const WalletType = "xpub" + +var defaultWalletDecoder = &JSONDecoder{} +var logger = logging.MustGetLogger("xpubwallet") + +func init() { + if err := wallet.RegisterCreator(WalletType, &Creator{}); err != nil { + panic(err) + } + + if err := wallet.RegisterLoader(WalletType, &Loader{}); err != nil { + panic(err) + } +} + +// Wallet holds a single xpub (extended public key) and derives child public keys from it. +// Refer to the bip32 spec to understand xpub keys. +// XPub wallets can generate new addresses and receive coins, but can't spend coins +// because the private keys are not available. +type Wallet struct { + wallet.Meta + entries wallet.Entries + xpub *bip32.PublicKey + decoder wallet.Decoder +} + +// NewWallet creates a xpub wallet with options +func NewWallet(filename, label, xPub string, options ...wallet.Option) (*Wallet, error) { + if xPub == "" { + return nil, wallet.ErrMissingXPub + } + + key, err := parseXPub(xPub) + if err != nil { + return nil, wallet.NewError(err) + } + + wlt := &Wallet{ + Meta: wallet.Meta{ + wallet.MetaFilename: filename, + wallet.MetaLabel: label, + wallet.MetaType: WalletType, + wallet.MetaVersion: wallet.Version, + wallet.MetaCoin: string(wallet.CoinTypeSkycoin), + wallet.MetaXPub: xPub, + wallet.MetaTimestamp: strconv.FormatInt(time.Now().Unix(), 10), + }, + decoder: defaultWalletDecoder, + xpub: key, + } + + advOpts := &wallet.AdvancedOptions{} + for _, opt := range options { + opt(wlt) + opt(advOpts) + } + + if err := validateMeta(wlt.Meta); err != nil { + return nil, err + } + + generateN := advOpts.GenerateN + if generateN > 0 { + _, err := wlt.GenerateAddresses(wallet.OptionGenerateN(generateN)) + if err != nil { + return nil, err + } + } + + scanN := advOpts.ScanN + if scanN > 0 { + if advOpts.TF == nil { + return nil, errors.New("missing transaction finder for scanning addresses") + } + + if scanN > generateN { + scanN = scanN - generateN + } + + if _, err := wlt.ScanAddresses(scanN, advOpts.TF); err != nil { + return nil, err + } + } + + return wlt, nil +} + +// SetDecoder sets the wallet decoder +func (w *Wallet) SetDecoder(d wallet.Decoder) { + w.decoder = d +} + +func validateMeta(m wallet.Meta) error { + if m[wallet.MetaType] != WalletType { + return wallet.ErrInvalidWalletType + } + + return wallet.ValidateMeta(m) +} + +// Serialize encodes the xpub wallet to []byte +func (w Wallet) Serialize() ([]byte, error) { + if w.decoder == nil { + w.decoder = defaultWalletDecoder + } + + return w.decoder.Encode(&w) +} + +// Deserialize decodes the []byte to a xpub wallet +func (w *Wallet) Deserialize(b []byte) error { + if w.decoder == nil { + w.decoder = defaultWalletDecoder + } + + toW, err := w.decoder.Decode(b) + if err != nil { + return err + } + + toW2 := toW.(*Wallet) + toW2.decoder = w.decoder + *w = *toW2 + return nil +} + +// IsEncrypted returns whether the wallet is encrypted +func (w Wallet) IsEncrypted() bool { + return w.Meta.IsEncrypted() +} + +// Lock will do nothing to the xpub wallet +func (w Wallet) Lock(_ []byte) error { + return wallet.NewError(errors.New("xpub wallet does not support encryption")) +} + +// Unlock will return the origin xpub wallet +func (w *Wallet) Unlock(_ []byte) (wallet.Wallet, error) { + return nil, wallet.NewError(errors.New("xpub wallet does not support encryption")) +} + +// Fingerprint returns a unique ID fingerprint for this wallet, using the first +// child address of the xpub key +func (w *Wallet) Fingerprint() string { + // Note: the xpub key is not used as the fingerprint, because it is + // partially sensitive data + addr := "" + if len(w.entries) == 0 { + entries, err := w.generateEntries(1, 0) + if err != nil { + logger.WithError(err).Panic("Fingerprint failed to generate initial entry for empty wallet") + } + addr = entries[0].Address.String() + } else { + addr = w.entries[0].Address.String() + } + + return fmt.Sprintf("%s-%s", w.Type(), addr) +} + +func (w *Wallet) generateEntries(num uint64, initialChildIdx uint32) (wallet.Entries, error) { + if num > math.MaxUint32 { + return nil, wallet.NewError(errors.New("XPubWallet.generateEntries num too large")) + } + + // Cap `num` in case it would exceed the maximum child index number + if math.MaxUint32-initialChildIdx < uint32(num) { + num = uint64(math.MaxUint32 - initialChildIdx) + } + + if num == 0 { + return nil, nil + } + + // Generate `num` secret keys from the external chain HDNode, skipping any children that + // are invalid (note that this has probability ~2^-128) + var pubkeys []*bip32.PublicKey + var addressIndices []uint32 + j := initialChildIdx + for i := uint32(0); i < uint32(num); i++ { + k, err := w.xpub.NewPublicChildKey(j) + + var addErr error + j, addErr = mathutil.AddUint32(j, 1) + if addErr != nil { + logger.Critical().WithError(addErr).WithFields(logrus.Fields{ + "num": num, + "initialChildIdx": initialChildIdx, + "childIdx": j, + "i": i, + }).Error("childIdx can't be incremented any further") + return nil, errors.New("childIdx can't be incremented any further") + } + + if err != nil { + if bip32.IsImpossibleChildError(err) { + logger.Critical().WithError(err).WithField("childIdx", j).Error("ImpossibleChild for xpub child element") + continue + } else { + logger.Critical().WithError(err).WithField("childIdx", j).Error("NewPublicChildKey failed unexpectedly") + return nil, err + } + } + + pubkeys = append(pubkeys, k) + addressIndices = append(addressIndices, j-1) + } + + entries := make(wallet.Entries, len(pubkeys)) + addressFromPubKey := wallet.ResolveAddressDecoder(w.Coin()).AddressFromPubKey + for i, xp := range pubkeys { + pk := cipher.MustNewPubKey(xp.Key) + entries[i] = wallet.Entry{ + Address: addressFromPubKey(pk), + Public: pk, + ChildNumber: addressIndices[i], + } + } + + return entries, nil +} + +// Clone returns a copy of the wallet +func (w Wallet) Clone() wallet.Wallet { + xpub := w.xpub.Clone() + return &Wallet{ + Meta: w.Meta.Clone(), + entries: w.entries.Clone(), + xpub: &xpub, + decoder: w.decoder, + } +} + +// CopyFrom copy wallet from specific wallet +func (w *Wallet) CopyFrom(src wallet.Wallet) { + w.copyFrom(src.(*Wallet)) +} + +func (w *Wallet) copyFrom(wlt *Wallet) { + w.Meta = wlt.Meta.Clone() + w.entries = wlt.entries.Clone() + w.decoder = wlt.decoder +} + +// CopyFromRef copies the src wallet with a pointer dereference +func (w *Wallet) CopyFromRef(src wallet.Wallet) { + *w = *(src.(*Wallet)) +} + +// Accounts is not implemented for xpub wallet +func (w *Wallet) Accounts() []wallet.Bip44Account { + return nil +} + +// GetEntries returns a copy of all entries held by the wallet +func (w *Wallet) GetEntries(_ ...wallet.Option) (wallet.Entries, error) { + return w.entries.Clone(), nil +} + +// Erase removes sensitive data +func (w *Wallet) Erase() { +} + +// ScanAddresses scans ahead N addresses, truncating up to the highest address with any transaction history. +func (w *Wallet) ScanAddresses(scanN uint64, tf wallet.TransactionsFinder) ([]cipher.Addresser, error) { + if scanN == 0 { + return nil, nil + } + + w2 := w.Clone().(*Wallet) + + nExistingAddrs := uint64(len(w2.entries)) + + // Generate the addresses to scan + addrs, err := w2.GenerateAddresses(wallet.OptionGenerateN(scanN)) + if err != nil { + return nil, err + } + + // Find if these addresses had any activity + active, err := tf.AddressesActivity(addrs) + if err != nil { + return nil, err + } + + // Check activity from the last one until we find the address that has activity + var keepNum uint64 + for i := len(active) - 1; i >= 0; i-- { + if active[i] { + keepNum = uint64(i + 1) + break + } + } + + w2.reset() + if _, err := w2.GenerateAddresses(wallet.OptionGenerateN(nExistingAddrs + keepNum)); err != nil { + return nil, err + } + + *w = *w2 + + return addrs[:keepNum], nil +} + +// GetAddresses returns all addresses of the wallet +func (w *Wallet) GetAddresses(_ ...wallet.Option) ([]cipher.Addresser, error) { + return w.entries.GetAddresses(), nil +} + +// GenerateAddresses generates addresses for the external chain, and appends them to the wallet's entries array +func (w *Wallet) GenerateAddresses(options ...wallet.Option) ([]cipher.Addresser, error) { + num := wallet.GetGenerateNFromOptions(options...) + if num > math.MaxUint32 { + return nil, wallet.NewError(errors.New("XPubWallet.GenerateAddresses num too large")) + } + + var addrs []cipher.Addresser + initLen := uint32(len(w.entries)) + _, err := mathutil.AddUint32(initLen, uint32(num)) + if err != nil { + return nil, fmt.Errorf("generate %d more addresses failed: %v", num, err) + } + + makeAddress := wallet.ResolveAddressDecoder(w.Coin()) + + for i := uint32(0); i < uint32(num); i++ { + index := initLen + i + pk, err := w.xpub.NewPublicChildKey(index) + if err != nil { + return nil, err + } + cpk, err := cipher.NewPubKey(pk.Key) + if err != nil { + return nil, err + } + + addr := makeAddress.AddressFromPubKey(cpk) + e := wallet.Entry{ + Address: addr, + Public: cpk, + ChildNumber: index, + } + + w.entries = append(w.entries, e) + addrs = append(addrs, addr) + } + return addrs, nil +} + +func parseXPub(xp string) (*bip32.PublicKey, error) { + xPub, err := bip32.DeserializeEncodedPublicKey(xp) + if err != nil { + return nil, fmt.Errorf("invalid xpub key: %v", err) + } + + return xPub, nil +} + +// GetEntryAt returns the entry at a given index in the entries array +func (w *Wallet) GetEntryAt(i int, _ ...wallet.Option) (wallet.Entry, error) { + if i < 0 || i >= len(w.entries) { + return wallet.Entry{}, fmt.Errorf("entry index %d is out of range", i) + } + return w.entries[i], nil +} + +// GetEntry returns a entry of given address +func (w *Wallet) GetEntry(addr cipher.Addresser, _ ...wallet.Option) (wallet.Entry, error) { + e, ok := w.entries.Get(addr) + if !ok { + return wallet.Entry{}, wallet.ErrEntryNotFound + } + return e, nil +} + +// HasEntry returns true if the wallet has an Entry with a given address +func (w *Wallet) HasEntry(addr cipher.Addresser, _ ...wallet.Option) (bool, error) { + return w.entries.Has(addr), nil +} + +// EntriesLen returns the number of entries in the wallet +func (w *Wallet) EntriesLen(_ ...wallet.Option) (int, error) { + return len(w.entries), nil +} + +// reset resets the wallet entries and move the lastSeed to origin +func (w *Wallet) reset() { + w.entries = wallet.Entries{} +} + +// Loader implements the wallet.Loader interface +type Loader struct{} + +// Load loads the xpub wallet from byte slice +func (l Loader) Load(data []byte) (wallet.Wallet, error) { + w := &Wallet{} + if err := w.Deserialize(data); err != nil { + return nil, err + } + + return w, nil +} + +// Creator implements the wallet.Creator interface +type Creator struct{} + +// Create creates a xpub wallet +func (c Creator) Create(filename, label, _ string, options wallet.Options) (wallet.Wallet, error) { + if err := validateOptions(options); err != nil { + return nil, err + } + + return NewWallet( + filename, + label, + options.XPub, + convertOptions(options)...) +} + +func validateOptions(options wallet.Options) error { + if options.Encrypt { + return wallet.NewError(errors.New("xpub wallet does not support encryption")) + } + + return nil +} + +func convertOptions(options wallet.Options) []wallet.Option { + var opts []wallet.Option + + if options.Coin != "" { + opts = append(opts, wallet.OptionCoinType(options.Coin)) + } + + if options.Decoder != nil { + opts = append(opts, wallet.OptionDecoder(options.Decoder)) + } + + if options.GenerateN > 0 { + opts = append(opts, wallet.OptionGenerateN(options.GenerateN)) + } + + if options.ScanN > 0 { + opts = append(opts, wallet.OptionScanN(options.ScanN)) + opts = append(opts, wallet.OptionTransactionsFinder(options.TF)) + } + + if options.Temp { + opts = append(opts, wallet.OptionTemp(true)) + } + + return opts +} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go index 2f04ee5b5..2ffb97bfb 100644 --- a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go +++ b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go @@ -7,6 +7,7 @@ package terminal import ( "bytes" "io" + "runtime" "strconv" "sync" "unicode/utf8" @@ -112,6 +113,7 @@ func NewTerminal(c io.ReadWriter, prompt string) *Terminal { } const ( + keyCtrlC = 3 keyCtrlD = 4 keyCtrlU = 21 keyEnter = '\r' @@ -150,8 +152,12 @@ func bytesToKey(b []byte, pasteActive bool) (rune, []byte) { switch b[0] { case 1: // ^A return keyHome, b[1:] + case 2: // ^B + return keyLeft, b[1:] case 5: // ^E return keyEnd, b[1:] + case 6: // ^F + return keyRight, b[1:] case 8: // ^H return keyBackspace, b[1:] case 11: // ^K @@ -737,6 +743,9 @@ func (t *Terminal) readLine() (line string, err error) { return "", io.EOF } } + if key == keyCtrlC { + return "", io.EOF + } if key == keyPasteStart { t.pasteActive = true if len(t.line) == 0 { @@ -939,6 +948,8 @@ func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) { // readPasswordLine reads from reader until it finds \n or io.EOF. // The slice returned does not include the \n. // readPasswordLine also ignores any \r it finds. +// Windows uses \r as end of line. So, on Windows, readPasswordLine +// reads until it finds \r and ignores any \n it finds during processing. func readPasswordLine(reader io.Reader) ([]byte, error) { var buf [1]byte var ret []byte @@ -947,10 +958,20 @@ func readPasswordLine(reader io.Reader) ([]byte, error) { n, err := reader.Read(buf[:]) if n > 0 { switch buf[0] { + case '\b': + if len(ret) > 0 { + ret = ret[:len(ret)-1] + } case '\n': - return ret, nil + if runtime.GOOS != "windows" { + return ret, nil + } + // otherwise ignore \n case '\r': - // remove \r from passwords on Windows + if runtime.GOOS == "windows" { + return ret, nil + } + // otherwise ignore \r default: ret = append(ret, buf[0]) } diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go b/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go index 5cfdf8f3f..f614e9cb6 100644 --- a/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go +++ b/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go @@ -85,8 +85,8 @@ func ReadPassword(fd int) ([]byte, error) { } old := st - st &^= (windows.ENABLE_ECHO_INPUT) - st |= (windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT) + st &^= (windows.ENABLE_ECHO_INPUT | windows.ENABLE_LINE_INPUT) + st |= (windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_PROCESSED_INPUT) if err := windows.SetConsoleMode(windows.Handle(fd), st); err != nil { return nil, err } diff --git a/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go new file mode 100644 index 000000000..e07899b90 --- /dev/null +++ b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go @@ -0,0 +1,30 @@ +// Copyright 2020 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 unsafeheader contains header declarations for the Go runtime's +// slice and string implementations. +// +// This package allows x/sys to use types equivalent to +// reflect.SliceHeader and reflect.StringHeader without introducing +// a dependency on the (relatively heavy) "reflect" package. +package unsafeheader + +import ( + "unsafe" +) + +// Slice is the runtime representation of a slice. +// It cannot be used safely or portably and its representation may change in a later release. +type Slice struct { + Data unsafe.Pointer + Len int + Cap int +} + +// String is the runtime representation of a string. +// It cannot be used safely or portably and its representation may change in a later release. +type String struct { + Data unsafe.Pointer + Len int +} diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md index eb2f78ae2..579d2d735 100644 --- a/vendor/golang.org/x/sys/unix/README.md +++ b/vendor/golang.org/x/sys/unix/README.md @@ -89,7 +89,7 @@ constants. Adding new syscall numbers is mostly done by running the build on a sufficiently new installation of the target OS (or updating the source checkouts for the -new build system). However, depending on the OS, you make need to update the +new build system). However, depending on the OS, you may need to update the parsing in mksysnum. ### mksyscall.go @@ -149,10 +149,21 @@ To add a constant, add the header that includes it to the appropriate variable. Then, edit the regex (if necessary) to match the desired constant. Avoid making the regex too broad to avoid matching unintended constants. +### mkmerge.go + +This program is used to extract duplicate const, func, and type declarations +from the generated architecture-specific files listed below, and merge these +into a common file for each OS. + +The merge is performed in the following steps: +1. Construct the set of common code that is idential in all architecture-specific files. +2. Write this common code to the merged file. +3. Remove the common code from all architecture-specific files. + ## Generated files -### `zerror_${GOOS}_${GOARCH}.go` +### `zerrors_${GOOS}_${GOARCH}.go` A file containing all of the system's generated error numbers, error strings, signal numbers, and constants. Generated by `mkerrors.sh` (see above). diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go index 72afe3338..6e5c81acd 100644 --- a/vendor/golang.org/x/sys/unix/affinity_linux.go +++ b/vendor/golang.org/x/sys/unix/affinity_linux.go @@ -7,6 +7,7 @@ package unix import ( + "math/bits" "unsafe" ) @@ -79,46 +80,7 @@ func (s *CPUSet) IsSet(cpu int) bool { func (s *CPUSet) Count() int { c := 0 for _, b := range s { - c += onesCount64(uint64(b)) + c += bits.OnesCount64(uint64(b)) } return c } - -// onesCount64 is a copy of Go 1.9's math/bits.OnesCount64. -// Once this package can require Go 1.9, we can delete this -// and update the caller to use bits.OnesCount64. -func onesCount64(x uint64) int { - const m0 = 0x5555555555555555 // 01010101 ... - const m1 = 0x3333333333333333 // 00110011 ... - const m2 = 0x0f0f0f0f0f0f0f0f // 00001111 ... - const m3 = 0x00ff00ff00ff00ff // etc. - const m4 = 0x0000ffff0000ffff - - // Implementation: Parallel summing of adjacent bits. - // See "Hacker's Delight", Chap. 5: Counting Bits. - // The following pattern shows the general approach: - // - // x = x>>1&(m0&m) + x&(m0&m) - // x = x>>2&(m1&m) + x&(m1&m) - // x = x>>4&(m2&m) + x&(m2&m) - // x = x>>8&(m3&m) + x&(m3&m) - // x = x>>16&(m4&m) + x&(m4&m) - // x = x>>32&(m5&m) + x&(m5&m) - // return int(x) - // - // Masking (& operations) can be left away when there's no - // danger that a field's sum will carry over into the next - // field: Since the result cannot be > 64, 8 bits is enough - // and we can ignore the masks for the shifts by 8 and up. - // Per "Hacker's Delight", the first line can be simplified - // more, but it saves at best one instruction, so we leave - // it alone for clarity. - const m = 1<<64 - 1 - x = x>>1&(m0&m) + x&(m0&m) - x = x>>2&(m1&m) + x&(m1&m) - x = (x>>4 + x) & (m2 & m) - x += x >> 8 - x += x >> 16 - x += x >> 32 - return int(x) & (1<<7 - 1) -} diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go index 951fce4d0..abc89c104 100644 --- a/vendor/golang.org/x/sys/unix/aliases.go +++ b/vendor/golang.org/x/sys/unix/aliases.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos // +build go1.9 package unix diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s index 06f84b855..6b4027b33 100644 --- a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s +++ b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_386.s b/vendor/golang.org/x/sys/unix/asm_bsd_386.s similarity index 68% rename from vendor/golang.org/x/sys/unix/asm_darwin_386.s rename to vendor/golang.org/x/sys/unix/asm_bsd_386.s index 8a7278319..7f29275fa 100644 --- a/vendor/golang.org/x/sys/unix/asm_darwin_386.s +++ b/vendor/golang.org/x/sys/unix/asm_bsd_386.s @@ -1,14 +1,14 @@ -// Copyright 2009 The Go Authors. All rights reserved. +// Copyright 2021 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 +//go:build (darwin || freebsd || netbsd || openbsd) && gc +// +build darwin freebsd netbsd openbsd +// +build gc #include "textflag.h" -// -// System call support for 386, Darwin -// +// System call support for 386 BSD // Just jump to package syscall's implementation for all these functions. // The runtime may know about them. @@ -22,7 +22,7 @@ TEXT ·Syscall6(SB),NOSPLIT,$0-40 TEXT ·Syscall9(SB),NOSPLIT,$0-52 JMP syscall·Syscall9(SB) -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 JMP syscall·RawSyscall(SB) TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s similarity index 71% rename from vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s rename to vendor/golang.org/x/sys/unix/asm_bsd_amd64.s index 790ef77f8..2b99c349a 100644 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s +++ b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s @@ -1,14 +1,14 @@ -// Copyright 2009 The Go Authors. All rights reserved. +// Copyright 2021 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 +//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc +// +build darwin dragonfly freebsd netbsd openbsd +// +build gc #include "textflag.h" -// -// System call support for AMD64, OpenBSD -// +// System call support for AMD64 BSD // Just jump to package syscall's implementation for all these functions. // The runtime may know about them. diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s similarity index 73% rename from vendor/golang.org/x/sys/unix/asm_netbsd_arm.s rename to vendor/golang.org/x/sys/unix/asm_bsd_arm.s index e8928571c..98ebfad9d 100644 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s +++ b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s @@ -1,14 +1,14 @@ -// Copyright 2013 The Go Authors. All rights reserved. +// Copyright 2021 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 +//go:build (darwin || freebsd || netbsd || openbsd) && gc +// +build darwin freebsd netbsd openbsd +// +build gc #include "textflag.h" -// -// System call support for ARM, NetBSD -// +// System call support for ARM BSD // Just jump to package syscall's implementation for all these functions. // The runtime may know about them. diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s similarity index 73% rename from vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s rename to vendor/golang.org/x/sys/unix/asm_bsd_arm64.s index 2ede05c72..fe36a7391 100644 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s +++ b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s @@ -1,14 +1,14 @@ -// Copyright 2009 The Go Authors. All rights reserved. +// Copyright 2021 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 +//go:build (darwin || freebsd || netbsd || openbsd) && gc +// +build darwin freebsd netbsd openbsd +// +build gc #include "textflag.h" -// -// System call support for AMD64, NetBSD -// +// System call support for ARM64 BSD // Just jump to package syscall's implementation for all these functions. // The runtime may know about them. diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s deleted file mode 100644 index 333242d50..000000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo -// +build arm,darwin - -#include "textflag.h" - -// -// System call support for ARM, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s deleted file mode 100644 index 97e017437..000000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo -// +build arm64,darwin - -#include "textflag.h" - -// -// System call support for AMD64, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s deleted file mode 100644 index 603dd5728..000000000 --- a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// 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. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, DragonFly -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s deleted file mode 100644 index c9a0a2601..000000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// 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. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s deleted file mode 100644 index 35172477c..000000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// 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. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s deleted file mode 100644 index 9227c875b..000000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// 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. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s deleted file mode 100644 index d9318cbf0..000000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM64, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s index 448bebbb5..0655ecbfb 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_386.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s index c6468a958..bc3fb6ac3 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s index cf0f3575c..55b13c7ba 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s index afe6fdf6b..22a83d8e3 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s @@ -4,7 +4,7 @@ // +build linux // +build arm64 -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s index ab9d63831..dc222b90c 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s @@ -4,7 +4,7 @@ // +build linux // +build mips64 mips64le -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s index 99e539904..d333f13cf 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s @@ -4,7 +4,7 @@ // +build linux // +build mips mipsle -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s index 88f712557..459a629c2 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s @@ -4,7 +4,7 @@ // +build linux // +build ppc64 ppc64le -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s new file mode 100644 index 000000000..04d38497c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s @@ -0,0 +1,47 @@ +// Copyright 2019 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 riscv64,gc + +#include "textflag.h" + +// +// System calls for linux/riscv64. +// +// Where available, just jump to package syscall's implementation of +// these functions. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + CALL runtime·entersyscall(SB) + MOV a1+8(FP), A0 + MOV a2+16(FP), A1 + MOV a3+24(FP), A2 + MOV trap+0(FP), A7 // syscall entry + ECALL + MOV A0, r1+32(FP) // r1 + MOV A1, r2+40(FP) // r2 + CALL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOV a1+8(FP), A0 + MOV a2+16(FP), A1 + MOV a3+24(FP), A2 + MOV trap+0(FP), A7 // syscall entry + ECALL + MOV A0, r1+32(FP) + MOV A1, r2+40(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s index a5a863c6b..cc303989e 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s @@ -4,7 +4,7 @@ // +build s390x // +build linux -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s deleted file mode 100644 index 48bdcd763..000000000 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// 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. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, NetBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s deleted file mode 100644 index 6f98ba5a3..000000000 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2019 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" - -// -// System call support for ARM64, NetBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s deleted file mode 100644 index 00576f3c8..000000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// 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. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s deleted file mode 100644 index 469bfa100..000000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s similarity index 83% rename from vendor/golang.org/x/sys/unix/asm_darwin_amd64.s rename to vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s index 6321421f2..47c93fcb6 100644 --- a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s +++ b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s @@ -1,13 +1,13 @@ -// Copyright 2009 The Go Authors. All rights reserved. +// Copyright 2019 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 +// +build gc #include "textflag.h" // -// System call support for AMD64, Darwin +// System call support for mips64, OpenBSD // // Just jump to package syscall's implementation for all these functions. diff --git a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s index ded8260f3..1f2c755a7 100644 --- a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +++ b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s new file mode 100644 index 000000000..3b54e1858 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s @@ -0,0 +1,426 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x && gc +// +build zos +// +build s390x +// +build gc + +#include "textflag.h" + +#define PSALAA 1208(R0) +#define GTAB64(x) 80(x) +#define LCA64(x) 88(x) +#define CAA(x) 8(x) +#define EDCHPXV(x) 1016(x) // in the CAA +#define SAVSTACK_ASYNC(x) 336(x) // in the LCA + +// SS_*, where x=SAVSTACK_ASYNC +#define SS_LE(x) 0(x) +#define SS_GO(x) 8(x) +#define SS_ERRNO(x) 16(x) +#define SS_ERRNOJR(x) 20(x) + +#define LE_CALL BYTE $0x0D; BYTE $0x76; // BL R7, R6 + +TEXT ·clearErrno(SB),NOSPLIT,$0-0 + BL addrerrno<>(SB) + MOVD $0, 0(R3) + RET + +// Returns the address of errno in R3. +TEXT addrerrno<>(SB),NOSPLIT|NOFRAME,$0-0 + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get __errno FuncDesc. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + ADD $(0x156*16), R9 + LMG 0(R9), R5, R6 + + // Switch to saved LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Call __errno function. + LE_CALL + NOPH + + // Switch back to Go stack. + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + RET + +TEXT ·syscall_syscall(SB),NOSPLIT,$0-56 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+32(FP) + MOVD R0, r2+40(FP) + MOVD R0, err+48(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) +done: + BL runtime·exitsyscall(SB) + RET + +TEXT ·syscall_rawsyscall(SB),NOSPLIT,$0-56 + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+32(FP) + MOVD R0, r2+40(FP) + MOVD R0, err+48(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) +done: + RET + +TEXT ·syscall_syscall6(SB),NOSPLIT,$0-80 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+56(FP) + MOVD R0, r2+64(FP) + MOVD R0, err+72(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+72(FP) +done: + BL runtime·exitsyscall(SB) + RET + +TEXT ·syscall_rawsyscall6(SB),NOSPLIT,$0-80 + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+56(FP) + MOVD R0, r2+64(FP) + MOVD R0, err+72(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL ·rrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+72(FP) +done: + RET + +TEXT ·syscall_syscall9(SB),NOSPLIT,$0 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + MOVD a7+56(FP), R12 + MOVD R12, (2176+48)(R4) + MOVD a8+64(FP), R12 + MOVD R12, (2176+56)(R4) + MOVD a9+72(FP), R12 + MOVD R12, (2176+64)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+80(FP) + MOVD R0, r2+88(FP) + MOVD R0, err+96(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+96(FP) +done: + BL runtime·exitsyscall(SB) + RET + +TEXT ·syscall_rawsyscall9(SB),NOSPLIT,$0 + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + MOVD a7+56(FP), R12 + MOVD R12, (2176+48)(R4) + MOVD a8+64(FP), R12 + MOVD R12, (2176+56)(R4) + MOVD a9+72(FP), R12 + MOVD R12, (2176+64)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+80(FP) + MOVD R0, r2+88(FP) + MOVD R0, err+96(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+96(FP) +done: + RET + +// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) +TEXT ·svcCall(SB),NOSPLIT,$0 + BL runtime·save_g(SB) // Save g and stack pointer + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD R15, 0(R9) + + MOVD argv+8(FP), R1 // Move function arguments into registers + MOVD dsa+16(FP), g + MOVD fnptr+0(FP), R15 + + BYTE $0x0D // Branch to function + BYTE $0xEF + + BL runtime·load_g(SB) // Restore g and stack pointer + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R15 + + RET + +// func svcLoad(name *byte) unsafe.Pointer +TEXT ·svcLoad(SB),NOSPLIT,$0 + MOVD R15, R2 // Save go stack pointer + MOVD name+0(FP), R0 // Move SVC args into registers + MOVD $0x80000000, R1 + MOVD $0, R15 + BYTE $0x0A // SVC 08 LOAD + BYTE $0x08 + MOVW R15, R3 // Save return code from SVC + MOVD R2, R15 // Restore go stack pointer + CMP R3, $0 // Check SVC return code + BNE error + + MOVD $-2, R3 // Reset last bit of entry point to zero + AND R0, R3 + MOVD R3, addr+8(FP) // Return entry point returned by SVC + CMP R0, R3 // Check if last bit of entry point was set + BNE done + + MOVD R15, R2 // Save go stack pointer + MOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08) + BYTE $0x0A // SVC 09 DELETE + BYTE $0x09 + MOVD R2, R15 // Restore go stack pointer + +error: + MOVD $0, addr+8(FP) // Return 0 on failure +done: + XOR R0, R0 // Reset r0 to 0 + RET + +// func svcUnload(name *byte, fnptr unsafe.Pointer) int64 +TEXT ·svcUnload(SB),NOSPLIT,$0 + MOVD R15, R2 // Save go stack pointer + MOVD name+0(FP), R0 // Move SVC args into registers + MOVD addr+8(FP), R15 + BYTE $0x0A // SVC 09 + BYTE $0x09 + XOR R0, R0 // Reset r0 to 0 + MOVD R15, R1 // Save SVC return code + MOVD R2, R15 // Restore go stack pointer + MOVD R1, rc+0(FP) // Return SVC return code + RET + +// func gettid() uint64 +TEXT ·gettid(SB), NOSPLIT, $0 + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get CEECAATHDID + MOVD CAA(R8), R9 + MOVD 0x3D0(R9), R9 + MOVD R9, ret+0(FP) + + RET diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go index 6e3229697..a178a6149 100644 --- a/vendor/golang.org/x/sys/unix/bluetooth_linux.go +++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go @@ -23,6 +23,7 @@ const ( HCI_CHANNEL_USER = 1 HCI_CHANNEL_MONITOR = 2 HCI_CHANNEL_CONTROL = 3 + HCI_CHANNEL_LOGGING = 4 ) // Socketoption Level diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go index df5204877..0b7c6adb8 100644 --- a/vendor/golang.org/x/sys/unix/cap_freebsd.go +++ b/vendor/golang.org/x/sys/unix/cap_freebsd.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. +//go:build freebsd // +build freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go index 3a6ac648d..394a3965b 100644 --- a/vendor/golang.org/x/sys/unix/constants.go +++ b/vendor/golang.org/x/sys/unix/constants.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos package unix diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go index 5e5fb4510..65a998508 100644 --- a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix -// +build ppc +//go:build aix && ppc +// +build aix,ppc // Functions to access/create device major and minor numbers matching the // encoding used by AIX. diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go index 8b401244c..8fc08ad0a 100644 --- a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix -// +build ppc64 +//go:build aix && ppc64 +// +build aix,ppc64 // Functions to access/create device major and minor numbers matching the // encoding used AIX. diff --git a/vendor/golang.org/x/sys/unix/dev_zos.go b/vendor/golang.org/x/sys/unix/dev_zos.go new file mode 100644 index 000000000..a388e59a0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_zos.go @@ -0,0 +1,29 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +// Functions to access/create device major and minor numbers matching the +// encoding used by z/OS. +// +// The information below is extracted and adapted from macros. + +package unix + +// Major returns the major component of a z/OS device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 16) & 0x0000FFFF) +} + +// Minor returns the minor component of a z/OS device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0x0000FFFF) +} + +// Mkdev returns a z/OS device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 16) | uint64(minor) +} diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go index 4407c505a..e74e5eaa3 100644 --- a/vendor/golang.org/x/sys/unix/dirent.go +++ b/vendor/golang.org/x/sys/unix/dirent.go @@ -2,16 +2,102 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux nacl netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package unix -import "syscall" +import "unsafe" + +// readInt returns the size-bytes unsigned integer in native byte order at offset off. +func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { + if len(b) < int(off+size) { + return 0, false + } + if isBigEndian { + return readIntBE(b[off:], size), true + } + return readIntLE(b[off:], size), true +} + +func readIntBE(b []byte, size uintptr) uint64 { + switch size { + case 1: + return uint64(b[0]) + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[1]) | uint64(b[0])<<8 + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 + case 8: + _ = 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 + default: + panic("syscall: readInt with unsupported size") + } +} + +func readIntLE(b []byte, size uintptr) uint64 { + switch size { + case 1: + return uint64(b[0]) + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 + case 8: + _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + default: + panic("syscall: readInt with unsupported size") + } +} // ParseDirent parses up to max directory entries in buf, // appending the names to names. It returns the number of // bytes consumed from buf, the number of entries added // to names, and the new names slice. func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { - return syscall.ParseDirent(buf, max, names) + origlen := len(buf) + count = 0 + for max != 0 && len(buf) > 0 { + reclen, ok := direntReclen(buf) + if !ok || reclen > uint64(len(buf)) { + return origlen, count, names + } + rec := buf[:reclen] + buf = buf[reclen:] + ino, ok := direntIno(rec) + if !ok { + break + } + if ino == 0 { // File absent in directory. + continue + } + const namoff = uint64(unsafe.Offsetof(Dirent{}.Name)) + namlen, ok := direntNamlen(rec) + if !ok || namoff+namlen > uint64(len(rec)) { + break + } + name := rec[namoff : namoff+namlen] + for i, c := range name { + if c == 0 { + name = name[:i] + break + } + } + // Check for useless names before allocating a string. + if string(name) == "." || string(name) == ".." { + continue + } + max-- + count++ + names = append(names, string(name)) + } + return origlen - len(buf), count, names } diff --git a/vendor/golang.org/x/sys/unix/endian_big.go b/vendor/golang.org/x/sys/unix/endian_big.go index 5e9269063..a52026557 100644 --- a/vendor/golang.org/x/sys/unix/endian_big.go +++ b/vendor/golang.org/x/sys/unix/endian_big.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // -// +build ppc64 s390x mips mips64 +//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 +// +build armbe arm64be m68k mips mips64 mips64p32 ppc ppc64 s390 s390x shbe sparc sparc64 package unix diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go index 085df2d8d..4362f47e2 100644 --- a/vendor/golang.org/x/sys/unix/endian_little.go +++ b/vendor/golang.org/x/sys/unix/endian_little.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // -// +build 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le +//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh +// +build 386 amd64 amd64p32 alpha arm arm64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh package unix diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go index 84178b0a1..29ccc4d13 100644 --- a/vendor/golang.org/x/sys/unix/env_unix.go +++ b/vendor/golang.org/x/sys/unix/env_unix.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos // Unix environment variables. diff --git a/vendor/golang.org/x/sys/unix/epoll_zos.go b/vendor/golang.org/x/sys/unix/epoll_zos.go new file mode 100644 index 000000000..cedaf7e02 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/epoll_zos.go @@ -0,0 +1,221 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "sync" +) + +// This file simulates epoll on z/OS using poll. + +// Analogous to epoll_event on Linux. +// TODO(neeilan): Pad is because the Linux kernel expects a 96-bit struct. We never pass this to the kernel; remove? +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + EPOLLERR = 0x8 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDNORM = 0x40 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + // The following constants are part of the epoll API, but represent + // currently unsupported functionality on z/OS. + // EPOLL_CLOEXEC = 0x80000 + // EPOLLET = 0x80000000 + // EPOLLONESHOT = 0x40000000 + // EPOLLRDHUP = 0x2000 // Typically used with edge-triggered notis + // EPOLLEXCLUSIVE = 0x10000000 // Exclusive wake-up mode + // EPOLLWAKEUP = 0x20000000 // Relies on Linux's BLOCK_SUSPEND capability +) + +// TODO(neeilan): We can eliminate these epToPoll / pToEpoll calls by using identical mask values for POLL/EPOLL +// constants where possible The lower 16 bits of epoll events (uint32) can fit any system poll event (int16). + +// epToPollEvt converts epoll event field to poll equivalent. +// In epoll, Events is a 32-bit field, while poll uses 16 bits. +func epToPollEvt(events uint32) int16 { + var ep2p = map[uint32]int16{ + EPOLLIN: POLLIN, + EPOLLOUT: POLLOUT, + EPOLLHUP: POLLHUP, + EPOLLPRI: POLLPRI, + EPOLLERR: POLLERR, + } + + var pollEvts int16 = 0 + for epEvt, pEvt := range ep2p { + if (events & epEvt) != 0 { + pollEvts |= pEvt + } + } + + return pollEvts +} + +// pToEpollEvt converts 16 bit poll event bitfields to 32-bit epoll event fields. +func pToEpollEvt(revents int16) uint32 { + var p2ep = map[int16]uint32{ + POLLIN: EPOLLIN, + POLLOUT: EPOLLOUT, + POLLHUP: EPOLLHUP, + POLLPRI: EPOLLPRI, + POLLERR: EPOLLERR, + } + + var epollEvts uint32 = 0 + for pEvt, epEvt := range p2ep { + if (revents & pEvt) != 0 { + epollEvts |= epEvt + } + } + + return epollEvts +} + +// Per-process epoll implementation. +type epollImpl struct { + mu sync.Mutex + epfd2ep map[int]*eventPoll + nextEpfd int +} + +// eventPoll holds a set of file descriptors being watched by the process. A process can have multiple epoll instances. +// On Linux, this is an in-kernel data structure accessed through a fd. +type eventPoll struct { + mu sync.Mutex + fds map[int]*EpollEvent +} + +// epoll impl for this process. +var impl epollImpl = epollImpl{ + epfd2ep: make(map[int]*eventPoll), + nextEpfd: 0, +} + +func (e *epollImpl) epollcreate(size int) (epfd int, err error) { + e.mu.Lock() + defer e.mu.Unlock() + epfd = e.nextEpfd + e.nextEpfd++ + + e.epfd2ep[epfd] = &eventPoll{ + fds: make(map[int]*EpollEvent), + } + return epfd, nil +} + +func (e *epollImpl) epollcreate1(flag int) (fd int, err error) { + return e.epollcreate(4) +} + +func (e *epollImpl) epollctl(epfd int, op int, fd int, event *EpollEvent) (err error) { + e.mu.Lock() + defer e.mu.Unlock() + + ep, ok := e.epfd2ep[epfd] + if !ok { + + return EBADF + } + + switch op { + case EPOLL_CTL_ADD: + // TODO(neeilan): When we make epfds and fds disjoint, detect epoll + // loops here (instances watching each other) and return ELOOP. + if _, ok := ep.fds[fd]; ok { + return EEXIST + } + ep.fds[fd] = event + case EPOLL_CTL_MOD: + if _, ok := ep.fds[fd]; !ok { + return ENOENT + } + ep.fds[fd] = event + case EPOLL_CTL_DEL: + if _, ok := ep.fds[fd]; !ok { + return ENOENT + } + delete(ep.fds, fd) + + } + return nil +} + +// Must be called while holding ep.mu +func (ep *eventPoll) getFds() []int { + fds := make([]int, len(ep.fds)) + for fd := range ep.fds { + fds = append(fds, fd) + } + return fds +} + +func (e *epollImpl) epollwait(epfd int, events []EpollEvent, msec int) (n int, err error) { + e.mu.Lock() // in [rare] case of concurrent epollcreate + epollwait + ep, ok := e.epfd2ep[epfd] + + if !ok { + e.mu.Unlock() + return 0, EBADF + } + + pollfds := make([]PollFd, 4) + for fd, epollevt := range ep.fds { + pollfds = append(pollfds, PollFd{Fd: int32(fd), Events: epToPollEvt(epollevt.Events)}) + } + e.mu.Unlock() + + n, err = Poll(pollfds, msec) + if err != nil { + return n, err + } + + i := 0 + for _, pFd := range pollfds { + if pFd.Revents != 0 { + events[i] = EpollEvent{Fd: pFd.Fd, Events: pToEpollEvt(pFd.Revents)} + i++ + } + + if i == n { + break + } + } + + return n, nil +} + +func EpollCreate(size int) (fd int, err error) { + return impl.epollcreate(size) +} + +func EpollCreate1(flag int) (fd int, err error) { + return impl.epollcreate1(flag) +} + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + return impl.epollctl(epfd, op, fd, event) +} + +// Because EpollWait mutates events, the caller is expected to coordinate +// concurrent access if calling with the same epfd from multiple goroutines. +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + return impl.epollwait(epfd, events, msec) +} diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go index c56bc8b05..761db66ef 100644 --- a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go @@ -8,6 +8,7 @@ package unix const ( + DLT_HHDLC = 0x79 IFF_SMART = 0x20 IFT_1822 = 0x2 IFT_A12MPPSWITCH = 0x82 @@ -210,13 +211,18 @@ const ( IFT_XETHER = 0x1a IPPROTO_MAXID = 0x34 IPV6_FAITH = 0x1d + IPV6_MIN_MEMBERSHIPS = 0x1f IP_FAITH = 0x16 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MIN_MEMBERSHIPS = 0x1f MAP_NORESERVE = 0x40 MAP_RENAME = 0x20 NET_RT_MAXID = 0x6 RTF_PRCLONING = 0x10000 RTM_OLDADD = 0x9 RTM_OLDDEL = 0xa + RT_CACHING_CONTEXT = 0x1 + RT_NORTREF = 0x2 SIOCADDRT = 0x8030720a SIOCALIFADDR = 0x8118691b SIOCDELRT = 0x8030720b diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go index 3e9771175..070f44b65 100644 --- a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go @@ -8,6 +8,7 @@ package unix const ( + DLT_HHDLC = 0x79 IFF_SMART = 0x20 IFT_1822 = 0x2 IFT_A12MPPSWITCH = 0x82 @@ -210,13 +211,18 @@ const ( IFT_XETHER = 0x1a IPPROTO_MAXID = 0x34 IPV6_FAITH = 0x1d + IPV6_MIN_MEMBERSHIPS = 0x1f IP_FAITH = 0x16 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MIN_MEMBERSHIPS = 0x1f MAP_NORESERVE = 0x40 MAP_RENAME = 0x20 NET_RT_MAXID = 0x6 RTF_PRCLONING = 0x10000 RTM_OLDADD = 0x9 RTM_OLDDEL = 0xa + RT_CACHING_CONTEXT = 0x1 + RT_NORTREF = 0x2 SIOCADDRT = 0x8040720a SIOCALIFADDR = 0x8118691b SIOCDELRT = 0x8040720b diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go new file mode 100644 index 000000000..946dcf3fc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go @@ -0,0 +1,17 @@ +// Copyright 2020 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. + +// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep +// them here for backwards compatibility. + +package unix + +const ( + DLT_HHDLC = 0x79 + IPV6_MIN_MEMBERSHIPS = 0x1f + IP_MAX_SOURCE_FILTER = 0x400 + IP_MIN_MEMBERSHIPS = 0x1f + RT_CACHING_CONTEXT = 0x1 + RT_NORTREF = 0x2 +) diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go index 39c03f1ef..e9b991258 100644 --- a/vendor/golang.org/x/sys/unix/fcntl.go +++ b/vendor/golang.org/x/sys/unix/fcntl.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. +//go:build dragonfly || freebsd || linux || netbsd || openbsd // +build dragonfly freebsd linux netbsd openbsd package unix @@ -9,12 +10,11 @@ package unix import "unsafe" // fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux -// systems by flock_linux_32bit.go to be SYS_FCNTL64. +// systems by fcntl_linux_32bit.go to be SYS_FCNTL64. var fcntl64Syscall uintptr = SYS_FCNTL -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - valptr, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(arg)) +func fcntl(fd int, cmd, arg int) (int, error) { + valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg)) var err error if errno != 0 { err = errno @@ -22,6 +22,11 @@ func FcntlInt(fd uintptr, cmd, arg int) (int, error) { return int(valptr), err } +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + return fcntl(int(fd), cmd, arg) +} + // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go index 5868a4a47..a9911c7c1 100644 --- a/vendor/golang.org/x/sys/unix/fcntl_darwin.go +++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go @@ -16,3 +16,9 @@ func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk)))) return err } + +// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command. +func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error { + _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore)))) + return err +} diff --git a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go index fc0e50e03..cb0dfbd09 100644 --- a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +++ b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go @@ -1,9 +1,10 @@ -// +build linux,386 linux,arm linux,mips linux,mipsle - // 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. +//go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) +// +build linux,386 linux,arm linux,mips linux,mipsle + package unix func init() { diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go new file mode 100644 index 000000000..b1e07b220 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fdset.go @@ -0,0 +1,30 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +// Set adds fd to the set fds. +func (fds *FdSet) Set(fd int) { + fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS)) +} + +// Clear removes fd from the set fds. +func (fds *FdSet) Clear(fd int) { + fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS)) +} + +// IsSet returns whether fd is in the set fds. +func (fds *FdSet) IsSet(fd int) bool { + return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0 +} + +// Zero clears the set fds. +func (fds *FdSet) Zero() { + for i := range fds.Bits { + fds.Bits[i] = 0 + } +} diff --git a/vendor/golang.org/x/sys/unix/fstatfs_zos.go b/vendor/golang.org/x/sys/unix/fstatfs_zos.go new file mode 100644 index 000000000..e377cc9f4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fstatfs_zos.go @@ -0,0 +1,164 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "unsafe" +) + +// This file simulates fstatfs on z/OS using fstatvfs and w_getmntent. + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + var stat_v Statvfs_t + err = Fstatvfs(fd, &stat_v) + if err == nil { + // populate stat + stat.Type = 0 + stat.Bsize = stat_v.Bsize + stat.Blocks = stat_v.Blocks + stat.Bfree = stat_v.Bfree + stat.Bavail = stat_v.Bavail + stat.Files = stat_v.Files + stat.Ffree = stat_v.Ffree + stat.Fsid = stat_v.Fsid + stat.Namelen = stat_v.Namemax + stat.Frsize = stat_v.Frsize + stat.Flags = stat_v.Flag + for passn := 0; passn < 5; passn++ { + switch passn { + case 0: + err = tryGetmntent64(stat) + break + case 1: + err = tryGetmntent128(stat) + break + case 2: + err = tryGetmntent256(stat) + break + case 3: + err = tryGetmntent512(stat) + break + case 4: + err = tryGetmntent1024(stat) + break + default: + break + } + //proceed to return if: err is nil (found), err is nonnil but not ERANGE (another error occurred) + if err == nil || err != nil && err != ERANGE { + break + } + } + } + return err +} + +func tryGetmntent64(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [64]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent128(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [128]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent256(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [256]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent512(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [512]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent1024(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [1024]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go index cd6f5a613..0dee23222 100644 --- a/vendor/golang.org/x/sys/unix/gccgo.go +++ b/vendor/golang.org/x/sys/unix/gccgo.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build gccgo -// +build !aix +//go:build gccgo && !aix +// +build gccgo,!aix package unix @@ -12,10 +12,8 @@ import "syscall" // We can't use the gc-syntax .s files for gccgo. On the plus side // much of the functionality can be written directly in Go. -//extern gccgoRealSyscallNoError func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr) -//extern gccgoRealSyscall func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c index c44730c5e..2cb1fefac 100644 --- a/vendor/golang.org/x/sys/unix/gccgo_c.c +++ b/vendor/golang.org/x/sys/unix/gccgo_c.c @@ -21,6 +21,9 @@ struct ret { uintptr_t err; }; +struct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) + __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscall"); + struct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) { @@ -32,6 +35,9 @@ gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintp return r; } +uintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) + __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscallNoError"); + uintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) { diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go index 251a977a8..e60e49a3d 100644 --- a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.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. +//go:build gccgo && linux && amd64 // +build gccgo,linux,amd64 package unix diff --git a/vendor/golang.org/x/sys/unix/ioctl.go b/vendor/golang.org/x/sys/unix/ioctl.go index f121a8d64..6c7ad052e 100644 --- a/vendor/golang.org/x/sys/unix/ioctl.go +++ b/vendor/golang.org/x/sys/unix/ioctl.go @@ -2,11 +2,33 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package unix -import "runtime" +import ( + "runtime" + "unsafe" +) + +// ioctl itself should not be exposed directly, but additional get/set +// functions for specific types are permissible. + +// IoctlSetInt performs an ioctl operation which sets an integer value +// on fd, using the specified request number. +func IoctlSetInt(fd int, req uint, value int) error { + return ioctl(fd, req, uintptr(value)) +} + +// IoctlSetPointerInt performs an ioctl operation which sets an +// integer value on fd, using the specified request number. The ioctl +// argument is called with a pointer to the integer value, rather than +// passing the integer value directly. +func IoctlSetPointerInt(fd int, req uint, value int) error { + v := int32(value) + return ioctl(fd, req, uintptr(unsafe.Pointer(&v))) +} // IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. // @@ -14,7 +36,7 @@ import "runtime" func IoctlSetWinsize(fd int, req uint, value *Winsize) error { // TODO: if we get the chance, remove the req parameter and // hardcode TIOCSWINSZ. - err := ioctlSetWinsize(fd, req, value) + err := ioctl(fd, req, uintptr(unsafe.Pointer(value))) runtime.KeepAlive(value) return err } @@ -24,7 +46,30 @@ func IoctlSetWinsize(fd int, req uint, value *Winsize) error { // The req value will usually be TCSETA or TIOCSETA. func IoctlSetTermios(fd int, req uint, value *Termios) error { // TODO: if we get the chance, remove the req parameter. - err := ioctlSetTermios(fd, req, value) + err := ioctl(fd, req, uintptr(unsafe.Pointer(value))) runtime.KeepAlive(value) return err } + +// IoctlGetInt performs an ioctl operation which gets an integer value +// from fd, using the specified request number. +// +// A few ioctl requests use the return value as an output parameter; +// for those, IoctlRetInt should be used instead of this function. +func IoctlGetInt(fd int, req uint) (int, error) { + var value int + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return value, err +} + +func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { + var value Winsize + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +func IoctlGetTermios(fd int, req uint) (*Termios, error) { + var value Termios + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return &value, err +} diff --git a/vendor/golang.org/x/sys/unix/ioctl_zos.go b/vendor/golang.org/x/sys/unix/ioctl_zos.go new file mode 100644 index 000000000..5384e7d91 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ioctl_zos.go @@ -0,0 +1,74 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "runtime" + "unsafe" +) + +// ioctl itself should not be exposed directly, but additional get/set +// functions for specific types are permissible. + +// IoctlSetInt performs an ioctl operation which sets an integer value +// on fd, using the specified request number. +func IoctlSetInt(fd int, req uint, value int) error { + return ioctl(fd, req, uintptr(value)) +} + +// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. +// +// To change fd's window size, the req argument should be TIOCSWINSZ. +func IoctlSetWinsize(fd int, req uint, value *Winsize) error { + // TODO: if we get the chance, remove the req parameter and + // hardcode TIOCSWINSZ. + err := ioctl(fd, req, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +// IoctlSetTermios performs an ioctl on fd with a *Termios. +// +// The req value is expected to be TCSETS, TCSETSW, or TCSETSF +func IoctlSetTermios(fd int, req uint, value *Termios) error { + if (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) { + return ENOSYS + } + err := Tcsetattr(fd, int(req), value) + runtime.KeepAlive(value) + return err +} + +// IoctlGetInt performs an ioctl operation which gets an integer value +// from fd, using the specified request number. +// +// A few ioctl requests use the return value as an output parameter; +// for those, IoctlRetInt should be used instead of this function. +func IoctlGetInt(fd int, req uint) (int, error) { + var value int + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return value, err +} + +func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { + var value Winsize + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +// IoctlGetTermios performs an ioctl on fd with a *Termios. +// +// The req value is expected to be TCGETS +func IoctlGetTermios(fd int, req uint) (*Termios, error) { + var value Termios + if req != TCGETS { + return &value, ENOSYS + } + err := Tcgetattr(fd, &value) + return &value, err +} diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index 1e5c59d0d..d727cad19 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -50,7 +50,7 @@ if [[ "$GOOS" = "linux" ]]; then # Use the Docker-based build system # Files generated through docker (use $cmd so you can Ctl-C the build or run) $cmd docker build --tag generate:$GOOS $GOOS - $cmd docker run --interactive --tty --volume $(dirname "$(readlink -f "$0")"):/build generate:$GOOS + $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")" && /bin/pwd):/build generate:$GOOS exit fi @@ -73,26 +73,22 @@ aix_ppc64) darwin_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" mkasm="go run mkasm_darwin.go" ;; darwin_amd64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" mkasm="go run mkasm_darwin.go" ;; darwin_arm) mkerrors="$mkerrors" mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" mkasm="go run mkasm_darwin.go" ;; darwin_arm64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" mkasm="go run mkasm_darwin.go" ;; @@ -105,26 +101,26 @@ dragonfly_amd64) freebsd_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; freebsd_amd64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; freebsd_arm) mkerrors="$mkerrors" mksyscall="go run mksyscall.go -l32 -arm" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; freebsd_arm64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; netbsd_386) mkerrors="$mkerrors -m32" @@ -146,24 +142,48 @@ netbsd_arm) # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; +netbsd_arm64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -netbsd" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; openbsd_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32 -openbsd" - mksysctl="./mksysctl_openbsd.pl" + mksysctl="go run mksysctl_openbsd.go" mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; openbsd_amd64) mkerrors="$mkerrors -m64" mksyscall="go run mksyscall.go -openbsd" - mksysctl="./mksysctl_openbsd.pl" + mksysctl="go run mksysctl_openbsd.go" mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; openbsd_arm) mkerrors="$mkerrors" mksyscall="go run mksyscall.go -l32 -openbsd -arm" - mksysctl="./mksysctl_openbsd.pl" + mksysctl="go run mksysctl_openbsd.go" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_arm64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd" + mksysctl="go run mksysctl_openbsd.go" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_mips64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd" + mksysctl="go run mksysctl_openbsd.go" mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. @@ -175,6 +195,12 @@ solaris_amd64) mksysnum= mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; +illumos_amd64) + mksyscall="go run mksyscall_solaris.go" + mkerrors= + mksysnum= + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; *) echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 exit 1 @@ -196,10 +222,15 @@ esac # aix/ppc64 script generates files instead of writing to stdin. echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ; elif [ "$GOOS" == "darwin" ]; then - # pre-1.12, direct syscalls - echo "$mksyscall -tags $GOOS,$GOARCH,!go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.1_11.go"; # 1.12 and later, syscalls via libSystem echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; + # 1.13 and later, syscalls via libSystem (including syscallPtr) + echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go"; + elif [ "$GOOS" == "illumos" ]; then + # illumos code generation requires a --illumos switch + echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go"; + # illumos implies solaris, so solaris code generation is also required + echo "$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go"; else echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; fi diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index cfb61ba04..007358af8 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -44,6 +44,7 @@ includes_AIX=' #include #include #include +#include #include #include #include @@ -55,13 +56,19 @@ includes_Darwin=' #define _DARWIN_C_SOURCE #define KERNEL #define _DARWIN_USE_64_BIT_INODE +#define __APPLE_USE_RFC_3542 #include #include +#include +#include #include #include #include +#include #include +#include #include +#include #include #include #include @@ -80,6 +87,7 @@ includes_Darwin=' includes_DragonFly=' #include #include +#include #include #include #include @@ -90,6 +98,7 @@ includes_DragonFly=' #include #include #include +#include #include #include #include @@ -102,8 +111,12 @@ includes_FreeBSD=' #include #include #include +#include #include +#include +#include #include +#include #include #include #include @@ -179,49 +192,71 @@ struct ltchars { #include #include #include +#include #include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include #include #include #include #include #include -#include -#include -#include -#include -#include +#include +#include #include #include +#include +#include #include #include #include #include #include #include +#include #include +#include +#include #include #include +#include #include -#include #include #include -#include -#include -#include #include -#include -#include +#include #include -#include +#include +#include +#include #include -#include -#include -#include + #include #include @@ -260,6 +295,27 @@ struct ltchars { #define FS_KEY_DESC_PREFIX "fscrypt:" #define FS_KEY_DESC_PREFIX_SIZE 8 #define FS_MAX_KEY_SIZE 64 + +// The code generator produces -0x1 for (~0), but an unsigned value is necessary +// for the tipc_subscr timeout __u32 field. +#undef TIPC_WAIT_FOREVER +#define TIPC_WAIT_FOREVER 0xffffffff + +// Copied from linux/l2tp.h +// Including linux/l2tp.h here causes conflicts between linux/in.h +// and netinet/in.h included via net/route.h above. +#define IPPROTO_L2TP 115 + +// Copied from linux/hid.h. +// Keep in sync with the size of the referenced fields. +#define _HIDIOCGRAWNAME_LEN 128 // sizeof_field(struct hid_device, name) +#define _HIDIOCGRAWPHYS_LEN 64 // sizeof_field(struct hid_device, phys) +#define _HIDIOCGRAWUNIQ_LEN 64 // sizeof_field(struct hid_device, uniq) + +#define _HIDIOCGRAWNAME HIDIOCGRAWNAME(_HIDIOCGRAWNAME_LEN) +#define _HIDIOCGRAWPHYS HIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN) +#define _HIDIOCGRAWUNIQ HIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN) + ' includes_NetBSD=' @@ -269,6 +325,8 @@ includes_NetBSD=' #include #include #include +#include +#include #include #include #include @@ -295,6 +353,8 @@ includes_OpenBSD=' #include #include #include +#include +#include #include #include #include @@ -331,9 +391,11 @@ includes_OpenBSD=' includes_SunOS=' #include #include +#include #include #include #include +#include #include #include #include @@ -343,10 +405,11 @@ includes_SunOS=' #include #include #include +#include #include -#include #include #include +#include ' @@ -401,6 +464,8 @@ ccflags="$@" $2 !~ /^EPROC_/ && $2 !~ /^EQUIV_/ && $2 !~ /^EXPR_/ && + $2 !~ /^EVIOC/ && + $2 !~ /^EV_/ && $2 ~ /^E[A-Z0-9_]+$/ || $2 ~ /^B[0-9_]+$/ || $2 ~ /^(OLD|NEW)DEV$/ || @@ -423,6 +488,7 @@ ccflags="$@" $2 == "XCASE" || $2 == "ALTWERASE" || $2 == "NOKERNINFO" || + $2 == "NFDBITS" || $2 ~ /^PAR/ || $2 ~ /^SIG[^_]/ || $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || @@ -432,10 +498,12 @@ ccflags="$@" $2 ~ /^TC[IO](ON|OFF)$/ || $2 ~ /^IN_/ || $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || - $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || + $2 ~ /^LO_(KEY|NAME)_SIZE$/ || + $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL)_/ || $2 ~ /^TP_STATUS_/ || $2 ~ /^FALLOC_/ || - $2 == "ICMPV6_FILTER" || + $2 ~ /^ICMPV?6?_(FILTER|SEC)/ || $2 == "SOMAXCONN" || $2 == "NAME_MAX" || $2 == "IFNAMSIZ" || @@ -445,38 +513,50 @@ ccflags="$@" $2 ~ /^SYSCTL_VERS/ || $2 !~ "MNT_BITS" && $2 ~ /^(MS|MNT|UMOUNT)_/ || + $2 ~ /^NS_GET_/ || $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || - $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT)_/ || + $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|TFD)_/ || $2 ~ /^KEXEC_/ || $2 ~ /^LINUX_REBOOT_CMD_/ || $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || $2 ~ /^MODULE_INIT_/ || $2 !~ "NLA_TYPE_MASK" && + $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ && $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ || + $2 ~ /^FIORDCHK$/ || $2 ~ /^SIOC/ || $2 ~ /^TIOC/ || $2 ~ /^TCGET/ || $2 ~ /^TCSET/ || $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || $2 !~ "RTF_BITS" && - $2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ || + $2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ || $2 ~ /^BIOC/ || + $2 ~ /^DIOC/ || $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ || $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || $2 ~ /^CLONE_[A-Z_]+/ || - $2 !~ /^(BPF_TIMEVAL)$/ && + $2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ && $2 ~ /^(BPF|DLT)_/ || $2 ~ /^(CLOCK|TIMER)_/ || $2 ~ /^CAN_/ || $2 ~ /^CAP_/ || + $2 ~ /^CP_/ || + $2 ~ /^CPUSTATES$/ || + $2 ~ /^CTLIOCGINFO$/ || $2 ~ /^ALG_/ || - $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE|IOC_(GET|SET)_ENCRYPTION)/ || + $2 ~ /^FI(CLONE|DEDUPERANGE)/ || + $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ || + $2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ || + $2 ~ /^FS_VERITY_/ || + $2 ~ /^FSCRYPT_/ || + $2 ~ /^DM_/ || $2 ~ /^GRND_/ || $2 ~ /^RND/ || $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_EVENT_IOC_/ || + $2 ~ /^PERF_/ || $2 ~ /^SECCOMP_MODE_/ || $2 ~ /^SPLICE_/ || $2 ~ /^SYNC_FILE_RANGE_/ || @@ -495,14 +575,24 @@ ccflags="$@" $2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ || $2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ || $2 ~ /^FSOPT_/ || - $2 ~ /^WDIOC_/ || + $2 ~ /^WDIO[CFS]_/ || $2 ~ /^NFN/ || $2 ~ /^XDP_/ || + $2 ~ /^RWF_/ || $2 ~ /^(HDIO|WIN|SMART)_/ || + $2 ~ /^CRYPTO_/ || + $2 ~ /^TIPC_/ || + $2 !~ "DEVLINK_RELOAD_LIMITS_VALID_MASK" && + $2 ~ /^DEVLINK_/ || + $2 ~ /^ETHTOOL_/ || + $2 ~ /^LWTUNNEL_IP/ || $2 !~ "WMESGLEN" && $2 ~ /^W[A-Z0-9]+$/ || $2 ~/^PPPIOC/ || $2 ~ /^FAN_|FANOTIFY_/ || + $2 == "HID_MAX_DESCRIPTOR_SIZE" || + $2 ~ /^_?HIDIOC/ || + $2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ || $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {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)} @@ -540,6 +630,7 @@ echo '#include ' | $CC -x c - -E -dM $ccflags | echo '// mkerrors.sh' "$@" echo '// Code generated by the command above; see README.md. DO NOT EDIT.' echo +echo "//go:build ${GOARCH} && ${GOOS}" echo "// +build ${GOARCH},${GOOS}" echo go tool cgo -godefs -- "$@" _const.go >_error.out diff --git a/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl deleted file mode 100644 index 20632e146..000000000 --- a/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl +++ /dev/null @@ -1,265 +0,0 @@ -#!/usr/bin/env perl - -# Copyright 2011 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# -# Parse the header files for OpenBSD and generate a Go usable sysctl MIB. -# -# Build a MIB with each entry being an array containing the level, type and -# a hash that will contain additional entries if the current entry is a node. -# We then walk this MIB and create a flattened sysctl name to OID hash. -# - -use strict; - -if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") { - print STDERR "GOARCH or GOOS not defined in environment\n"; - exit 1; -} - -my $debug = 0; -my %ctls = (); - -my @headers = qw ( - sys/sysctl.h - sys/socket.h - sys/tty.h - sys/malloc.h - sys/mount.h - sys/namei.h - sys/sem.h - sys/shm.h - sys/vmmeter.h - uvm/uvmexp.h - uvm/uvm_param.h - uvm/uvm_swap_encrypt.h - ddb/db_var.h - net/if.h - net/if_pfsync.h - net/pipex.h - netinet/in.h - netinet/icmp_var.h - netinet/igmp_var.h - netinet/ip_ah.h - netinet/ip_carp.h - netinet/ip_divert.h - netinet/ip_esp.h - netinet/ip_ether.h - netinet/ip_gre.h - netinet/ip_ipcomp.h - netinet/ip_ipip.h - netinet/pim_var.h - netinet/tcp_var.h - netinet/udp_var.h - netinet6/in6.h - netinet6/ip6_divert.h - netinet6/pim6_var.h - netinet/icmp6.h - netmpls/mpls.h -); - -my @ctls = qw ( - kern - vm - fs - net - #debug # Special handling required - hw - #machdep # Arch specific - user - ddb - #vfs # Special handling required - fs.posix - kern.forkstat - kern.intrcnt - kern.malloc - kern.nchstats - kern.seminfo - kern.shminfo - kern.timecounter - kern.tty - kern.watchdog - net.bpf - net.ifq - net.inet - net.inet.ah - net.inet.carp - net.inet.divert - net.inet.esp - net.inet.etherip - net.inet.gre - net.inet.icmp - net.inet.igmp - net.inet.ip - net.inet.ip.ifq - net.inet.ipcomp - net.inet.ipip - net.inet.mobileip - net.inet.pfsync - net.inet.pim - net.inet.tcp - net.inet.udp - net.inet6 - net.inet6.divert - net.inet6.ip6 - net.inet6.icmp6 - net.inet6.pim6 - net.inet6.tcp6 - net.inet6.udp6 - net.mpls - net.mpls.ifq - net.key - net.pflow - net.pfsync - net.pipex - net.rt - vm.swapencrypt - #vfsgenctl # Special handling required -); - -# Node name "fixups" -my %ctl_map = ( - "ipproto" => "net.inet", - "net.inet.ipproto" => "net.inet", - "net.inet6.ipv6proto" => "net.inet6", - "net.inet6.ipv6" => "net.inet6.ip6", - "net.inet.icmpv6" => "net.inet6.icmp6", - "net.inet6.divert6" => "net.inet6.divert", - "net.inet6.tcp6" => "net.inet.tcp", - "net.inet6.udp6" => "net.inet.udp", - "mpls" => "net.mpls", - "swpenc" => "vm.swapencrypt" -); - -# Node mappings -my %node_map = ( - "net.inet.ip.ifq" => "net.ifq", - "net.inet.pfsync" => "net.pfsync", - "net.mpls.ifq" => "net.ifq" -); - -my $ctlname; -my %mib = (); -my %sysctl = (); -my $node; - -sub debug() { - print STDERR "$_[0]\n" if $debug; -} - -# Walk the MIB and build a sysctl name to OID mapping. -sub build_sysctl() { - my ($node, $name, $oid) = @_; - my %node = %{$node}; - my @oid = @{$oid}; - - foreach my $key (sort keys %node) { - my @node = @{$node{$key}}; - my $nodename = $name.($name ne '' ? '.' : '').$key; - my @nodeoid = (@oid, $node[0]); - if ($node[1] eq 'CTLTYPE_NODE') { - if (exists $node_map{$nodename}) { - $node = \%mib; - $ctlname = $node_map{$nodename}; - foreach my $part (split /\./, $ctlname) { - $node = \%{@{$$node{$part}}[2]}; - } - } else { - $node = $node[2]; - } - &build_sysctl($node, $nodename, \@nodeoid); - } elsif ($node[1] ne '') { - $sysctl{$nodename} = \@nodeoid; - } - } -} - -foreach my $ctl (@ctls) { - $ctls{$ctl} = $ctl; -} - -# Build MIB -foreach my $header (@headers) { - &debug("Processing $header..."); - open HEADER, "/usr/include/$header" || - print STDERR "Failed to open $header\n"; - while (
) { - if ($_ =~ /^#define\s+(CTL_NAMES)\s+{/ || - $_ =~ /^#define\s+(CTL_(.*)_NAMES)\s+{/ || - $_ =~ /^#define\s+((.*)CTL_NAMES)\s+{/) { - if ($1 eq 'CTL_NAMES') { - # Top level. - $node = \%mib; - } else { - # Node. - my $nodename = lc($2); - if ($header =~ /^netinet\//) { - $ctlname = "net.inet.$nodename"; - } elsif ($header =~ /^netinet6\//) { - $ctlname = "net.inet6.$nodename"; - } elsif ($header =~ /^net\//) { - $ctlname = "net.$nodename"; - } else { - $ctlname = "$nodename"; - $ctlname =~ s/^(fs|net|kern)_/$1\./; - } - if (exists $ctl_map{$ctlname}) { - $ctlname = $ctl_map{$ctlname}; - } - if (not exists $ctls{$ctlname}) { - &debug("Ignoring $ctlname..."); - next; - } - - # Walk down from the top of the MIB. - $node = \%mib; - foreach my $part (split /\./, $ctlname) { - if (not exists $$node{$part}) { - &debug("Missing node $part"); - $$node{$part} = [ 0, '', {} ]; - } - $node = \%{@{$$node{$part}}[2]}; - } - } - - # Populate current node with entries. - my $i = -1; - while (defined($_) && $_ !~ /^}/) { - $_ =
; - $i++ if $_ =~ /{.*}/; - next if $_ !~ /{\s+"(\w+)",\s+(CTLTYPE_[A-Z]+)\s+}/; - $$node{$1} = [ $i, $2, {} ]; - } - } - } - close HEADER; -} - -&build_sysctl(\%mib, "", []); - -print <>= 32 + stat.Mtim.Nsec >>= 32 + stat.Ctim.Nsec >>= 32 +} + +func Fstat(fd int, stat *Stat_t) error { + err := fstat(fd, stat) + if err != nil { + return err + } + fixStatTimFields(stat) + return nil +} + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { + err := fstatat(dirfd, path, stat, flags) + if err != nil { + return err + } + fixStatTimFields(stat) + return nil +} + +func Lstat(path string, stat *Stat_t) error { + err := lstat(path, stat) + if err != nil { + return err + } + fixStatTimFields(stat) + return nil +} + +func Stat(path string, statptr *Stat_t) error { + err := stat(path, statptr) + if err != nil { + return err + } + fixStatTimFields(statptr) + return nil +} diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go index 33c8b5f0d..95ac3946b 100644 --- a/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_bsd.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. +//go:build darwin || dragonfly || freebsd || netbsd || openbsd // +build darwin dragonfly freebsd netbsd openbsd // BSD system call wrappers shared by *BSD based systems @@ -18,6 +19,21 @@ import ( "unsafe" ) +const ImplementsGetwd = true + +func Getwd() (string, error) { + var buf [PathMax]byte + _, err := Getcwd(buf[0:]) + if err != nil { + return "", err + } + n := clen(buf[:]) + if n < 1 { + return "", EINVAL + } + return string(buf[:n]), nil +} + /* * Wrapped */ @@ -63,15 +79,6 @@ func Setgroups(gids []int) (err error) { return setgroups(len(a), &a[0]) } -func ReadDirent(fd int, buf []byte) (n int, err error) { - // Final argument is (basep *uintptr) and the syscall doesn't take nil. - // 64 bits should be enough. (32 bits isn't even on 386). Since the - // actual system call is getdirentries64, 64 is a good guess. - // TODO(rsc): Can we use a single global basep for all calls? - var base = (*uintptr)(unsafe.Pointer(new(uint64))) - return Getdirentries(fd, buf, base) -} - // Wait status is 7 bits at bottom, either 0 (exited), // 0x7F (stopped), or a signal number that caused an exit. // The 0x80 bit is whether there was a core dump. @@ -86,6 +93,7 @@ const ( shift = 8 exited = 0 + killed = 9 stopped = 0x7F ) @@ -112,6 +120,8 @@ func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } +func (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL } + func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } func (w WaitStatus) StopSignal() syscall.Signal { @@ -243,7 +253,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { break } } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] sa.Name = string(bytes) return sa, nil @@ -268,7 +278,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { } return sa, nil } - return nil, EAFNOSUPPORT + return anyToSockaddrGOOS(fd, rsa) } func Accept(fd int) (nfd int, sa Sockaddr, err error) { @@ -278,7 +288,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { if err != nil { return } - if runtime.GOOS == "darwin" && len == 0 { + if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && len == 0 { // Accepted socket has no address. // This is likely due to a bug in xnu kernels, // where instead of ECONNABORTED error socket @@ -309,7 +319,7 @@ func Getsockname(fd int) (sa Sockaddr, err error) { return anyToSockaddr(fd, &rsa) } -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) // GetsockoptString returns the string value of the socket option opt for the // socket associated with fd at the given socket level. @@ -323,8 +333,8 @@ func GetsockoptString(fd, level, opt int) (string, error) { return string(buf[:vallen-1]), nil } -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) //sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { @@ -419,8 +429,6 @@ func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err e return kevent(kq, change, len(changes), event, len(events), timeout) } -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - // sysctlmib translates name to mib number and appends any additional args. func sysctlmib(name string, args ...int) ([]_C_int, error) { // Translate name to mib number. @@ -518,6 +526,40 @@ func SysctlRaw(name string, args ...int) ([]byte, error) { return buf[:n], nil } +func SysctlClockinfo(name string) (*Clockinfo, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofClockinfo) + var ci Clockinfo + if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { + return nil, err + } + if n != SizeofClockinfo { + return nil, EIO + } + return &ci, nil +} + +func SysctlTimeval(name string) (*Timeval, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + var tv Timeval + n := uintptr(unsafe.Sizeof(tv)) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil { + return nil, err + } + if n != unsafe.Sizeof(tv) { + return nil, EIO + } + return &tv, nil +} + //sys utimes(path string, timeval *[2]Timeval) (err error) func Utimes(path string, tv []Timeval) error { @@ -585,9 +627,7 @@ func Futimes(fd int, tv []Timeval) error { return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) } -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) func Poll(fds []PollFd, timeout int) (n int, err error) { if len(fds) == 0 { diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go new file mode 100644 index 000000000..b0098607c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go @@ -0,0 +1,32 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build darwin && go1.12 && !go1.13 +// +build darwin,go1.12,!go1.13 + +package unix + +import ( + "unsafe" +) + +const _SYS_GETDIRENTRIES64 = 344 + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + // To implement this using libSystem we'd need syscall_syscallPtr for + // fdopendir. However, syscallPtr was only added in Go 1.13, so we fall + // back to raw syscalls for this func on Go 1.12. + var p unsafe.Pointer + if len(buf) > 0 { + p = unsafe.Pointer(&buf[0]) + } else { + p = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(_SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + return n, errnoErr(e1) + } + return n, nil +} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go new file mode 100644 index 000000000..5fc3cda6f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go @@ -0,0 +1,108 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build darwin && go1.13 +// +build darwin,go1.13 + +package unix + +import ( + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) + +//sys closedir(dir uintptr) (err error) +//sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) + +func fdopendir(fd int) (dir uintptr, err error) { + r0, _, e1 := syscall_syscallPtr(funcPC(libc_fdopendir_trampoline), uintptr(fd), 0, 0) + dir = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fdopendir_trampoline() + +//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib" + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + // Simulate Getdirentries using fdopendir/readdir_r/closedir. + // We store the number of entries to skip in the seek + // offset of fd. See issue #31368. + // It's not the full required semantics, but should handle the case + // of calling Getdirentries or ReadDirent repeatedly. + // It won't handle assigning the results of lseek to *basep, or handle + // the directory being edited underfoot. + skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + return 0, err + } + + // We need to duplicate the incoming file descriptor + // because the caller expects to retain control of it, but + // fdopendir expects to take control of its argument. + // Just Dup'ing the file descriptor is not enough, as the + // result shares underlying state. Use Openat to make a really + // new file descriptor referring to the same directory. + fd2, err := Openat(fd, ".", O_RDONLY, 0) + if err != nil { + return 0, err + } + d, err := fdopendir(fd2) + if err != nil { + Close(fd2) + return 0, err + } + defer closedir(d) + + var cnt int64 + for { + var entry Dirent + var entryp *Dirent + e := readdir_r(d, &entry, &entryp) + if e != 0 { + return n, errnoErr(e) + } + if entryp == nil { + break + } + if skip > 0 { + skip-- + cnt++ + continue + } + + reclen := int(entry.Reclen) + if reclen > len(buf) { + // Not enough room. Return for now. + // The counter will let us know where we should start up again. + // Note: this strategy for suspending in the middle and + // restarting is O(n^2) in the length of the directory. Oh well. + break + } + + // Copy entry into return buffer. + var s []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&s)) + hdr.Data = unsafe.Pointer(&entry) + hdr.Cap = reclen + hdr.Len = reclen + copy(buf, s) + + buf = buf[reclen:] + n += reclen + cnt++ + } + // Set the seek offset of the input fd to record + // how many files we've already returned. + _, err = Seek(fd, cnt, 0 /* SEEK_SET */) + if err != nil { + return n, err + } + + return n, nil +} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 212009189..1223d7aed 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -13,29 +13,11 @@ package unix import ( - "errors" + "runtime" "syscall" "unsafe" ) -const ImplementsGetwd = true - -func Getwd() (string, error) { - buf := make([]byte, 2048) - attrs, err := getAttrList(".", attrList{CommonAttr: attrCmnFullpath}, buf, 0) - if err == nil && len(attrs) == 1 && len(attrs[0]) >= 2 { - wd := string(attrs[0]) - // Sanity check that it's an absolute path and ends - // in a null byte, which we then strip. - if wd[0] == '/' && wd[len(wd)-1] == 0 { - return wd[:len(wd)-1], nil - } - } - // If pkg/os/getwd.go gets ENOTSUP, it will fall back to the - // slow algorithm. - return "", ENOTSUP -} - // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. type SockaddrDatalink struct { Len uint8 @@ -49,6 +31,41 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +// SockaddrCtl implements the Sockaddr interface for AF_SYSTEM type sockets. +type SockaddrCtl struct { + ID uint32 + Unit uint32 + raw RawSockaddrCtl +} + +func (sa *SockaddrCtl) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Sc_len = SizeofSockaddrCtl + sa.raw.Sc_family = AF_SYSTEM + sa.raw.Ss_sysaddr = AF_SYS_CONTROL + sa.raw.Sc_id = sa.ID + sa.raw.Sc_unit = sa.Unit + return unsafe.Pointer(&sa.raw), SizeofSockaddrCtl, nil +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_SYSTEM: + pp := (*RawSockaddrCtl)(unsafe.Pointer(rsa)) + if pp.Ss_sysaddr == AF_SYS_CONTROL { + sa := new(SockaddrCtl) + sa.ID = pp.Sc_id + sa.Unit = pp.Sc_unit + return sa, nil + } + } + return nil, EAFNOSUPPORT +} + +// Some external packages rely on SYS___SYSCTL being defined to implement their +// own sysctl wrappers. Provide it here, even though direct syscalls are no +// longer supported on darwin. +const SYS___SYSCTL = SYS_SYSCTL + // Translate "kern.hostname" to []_C_int{0,1,2,3}. func nametomib(name string) (mib []_C_int, err error) { const siz = unsafe.Sizeof(mib[0]) @@ -77,15 +94,21 @@ func nametomib(name string) (mib []_C_int, err error) { return buf[0 : n/siz], nil } -//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } -const ( - attrBitMapCount = 5 - attrCmnFullpath = 0x08000000 -) - type attrList struct { bitmapCount uint16 _ uint16 @@ -96,78 +119,16 @@ type attrList struct { Forkattr uint32 } -func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) { - if len(attrBuf) < 4 { - return nil, errors.New("attrBuf too small") - } - attrList.bitmapCount = attrBitMapCount - - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return nil, err - } - - if err := getattrlist(_p0, unsafe.Pointer(&attrList), unsafe.Pointer(&attrBuf[0]), uintptr(len(attrBuf)), int(options)); err != nil { - return nil, err - } - size := *(*uint32)(unsafe.Pointer(&attrBuf[0])) - - // dat is the section of attrBuf that contains valid data, - // without the 4 byte length header. All attribute offsets - // are relative to dat. - dat := attrBuf - if int(size) < len(attrBuf) { - dat = dat[:size] - } - dat = dat[4:] // remove length prefix - - for i := uint32(0); int(i) < len(dat); { - header := dat[i:] - if len(header) < 8 { - return attrs, errors.New("truncated attribute header") - } - datOff := *(*int32)(unsafe.Pointer(&header[0])) - attrLen := *(*uint32)(unsafe.Pointer(&header[4])) - if datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) { - return attrs, errors.New("truncated results; attrBuf too small") - } - end := uint32(datOff) + attrLen - attrs = append(attrs, dat[datOff:end]) - i = end - if r := i % 4; r != 0 { - i += (4 - r) - } - } - return -} - -//sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) - -func SysctlClockinfo(name string) (*Clockinfo, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofClockinfo) - var ci Clockinfo - if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofClockinfo { - return nil, EIO - } - return &ci, nil -} - -//sysnb pipe() (r int, w int, err error) +//sysnb pipe(p *[2]int32) (err error) func Pipe(p []int) (err error) { if len(p) != 2 { return EINVAL } - p[0], p[1], err = pipe() + var x [2]int32 + err = pipe(&x) + p[0] = int(x[0]) + p[1] = int(x[1]) return } @@ -311,7 +272,7 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { options) } -//sys setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) +//sys setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error { // Darwin doesn't support SYS_UTIMENSAT @@ -322,48 +283,44 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error { * Wrapped */ +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + //sys kill(pid int, signum int, posix int) (err error) func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) } //sys ioctl(fd int, req uint, arg uintptr) (err error) -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -func ioctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) +func IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error { + err := ioctl(fd, CTLIOCGINFO, uintptr(unsafe.Pointer(ctlInfo))) + runtime.KeepAlive(ctlInfo) + return err } -func ioctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) +// IfreqMTU is struct ifreq used to get or set a network device's MTU. +type IfreqMTU struct { + Name [IFNAMSIZ]byte + MTU int32 } -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err +// IoctlGetIfreqMTU performs the SIOCGIFMTU ioctl operation on fd to get the MTU +// of the network device specified by ifname. +func IoctlGetIfreqMTU(fd int, ifname string) (*IfreqMTU, error) { + var ifreq IfreqMTU + copy(ifreq.Name[:], ifname) + err := ioctl(fd, SIOCGIFMTU, uintptr(unsafe.Pointer(&ifreq))) + return &ifreq, err } -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err +// IoctlSetIfreqMTU performs the SIOCSIFMTU ioctl operation on fd to set the MTU +// of the network device specified by ifreq.Name. +func IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error { + err := ioctl(fd, SIOCSIFMTU, uintptr(unsafe.Pointer(ifreq))) + runtime.KeepAlive(ifreq) + return err } -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL func Uname(uname *Utsname) error { mib := []_C_int{CTL_KERN, KERN_OSTYPE} @@ -421,6 +378,15 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e return } +// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. +// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. +func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { + x := new(Xucred) + vallen := _Socklen(SizeofXucred) + err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) + return x, err +} + //sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) /* @@ -435,6 +401,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Chroot(path string) (err error) //sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) +//sys Clonefile(src string, dst string, flags int) (err error) +//sys Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) //sys Exchangedata(path1 string, path2 string, options int) (err error) @@ -446,10 +414,12 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) //sys Fchown(fd int, uid int, gid int) (err error) //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) //sys Flock(fd int, how int) (err error) //sys Fpathconf(fd int, name int) (val int, err error) //sys Fsync(fd int) (err error) //sys Ftruncate(fd int, length int64) (err error) +//sys Getcwd(buf []byte) (n int, err error) //sys Getdtablesize() (size int) //sysnb Getegid() (egid int) //sysnb Geteuid() (uid int) @@ -462,6 +432,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sysnb Getrlimit(which int, lim *Rlimit) (err error) //sysnb Getrusage(who int, rusage *Rusage) (err error) //sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tp *Timeval) (err error) //sysnb Getuid() (uid int) //sysnb Issetugid() (tainted bool) //sys Kqueue() (fd int, err error) @@ -486,7 +457,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Revoke(path string) (err error) //sys Rmdir(path string) (err error) //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sys Setegid(egid int) (err error) //sysnb Seteuid(euid int) (err error) //sysnb Setgid(gid int) (err error) @@ -510,8 +481,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Unlinkat(dirfd int, path string, flags int) (err error) //sys Unmount(path string, flags int) (err error) //sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) //sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ //sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go index 489726fa9..647467712 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go @@ -2,13 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build 386 && darwin // +build 386,darwin package unix -import ( - "syscall" -) +import "syscall" func setTimespec(sec, nsec int64) Timespec { return Timespec{Sec: int32(sec), Nsec: int32(nsec)} @@ -18,17 +17,6 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: int32(sec), Usec: int32(usec)} } -//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = int32(sec) - tv.Usec = int32(usec) - return err -} - func SetKevent(k *Kevent_t, fd, mode, flags int) { k.Ident = uint32(fd) k.Filter = int16(mode) @@ -43,21 +31,21 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/386 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL - //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 -//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go index 914b89bde..b37310ce9 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go @@ -2,13 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build amd64 && darwin // +build amd64,darwin package unix -import ( - "syscall" -) +import "syscall" func setTimespec(sec, nsec int64) Timespec { return Timespec{Sec: sec, Nsec: nsec} @@ -18,17 +17,6 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: sec, Usec: int32(usec)} } -//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = sec - tv.Usec = usec - return err -} - func SetKevent(k *Kevent_t, fd, mode, flags int) { k.Ident = uint64(fd) k.Filter = int16(mode) @@ -43,21 +31,21 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/amd64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL - //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 -//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go index 4a284cf50..d30735c5d 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go @@ -4,9 +4,11 @@ package unix -import ( - "syscall" -) +import "syscall" + +func ptrace1(request int, pid int, addr uintptr, data uintptr) error { + return ENOTSUP +} func setTimespec(sec, nsec int64) Timespec { return Timespec{Sec: int32(sec), Nsec: int32(nsec)} @@ -16,17 +18,6 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: int32(sec), Usec: int32(usec)} } -//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = int32(sec) - tv.Usec = int32(usec) - return err -} - func SetKevent(k *Kevent_t, fd, mode, flags int) { k.Ident = uint32(fd) k.Filter = int16(mode) @@ -41,16 +32,16 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/arm the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL - //sys Fstat(fd int, stat *Stat_t) (err error) //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) //sys Fstatfs(fd int, stat *Statfs_t) (err error) @@ -58,7 +49,3 @@ const SYS___SYSCTL = SYS_SYSCTL //sys Lstat(path string, stat *Stat_t) (err error) //sys Stat(path string, stat *Stat_t) (err error) //sys Statfs(path string, stat *Statfs_t) (err error) - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return 0, ENOSYS -} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go index 52dcd88f6..d51ec9963 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go @@ -2,13 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm64 && darwin // +build arm64,darwin package unix -import ( - "syscall" -) +import "syscall" func setTimespec(sec, nsec int64) Timespec { return Timespec{Sec: sec, Nsec: nsec} @@ -18,17 +17,6 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: sec, Usec: int32(usec)} } -//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = sec - tv.Usec = usec - return err -} - func SetKevent(k *Kevent_t, fd, mode, flags int) { k.Ident = uint64(fd) k.Filter = int16(mode) @@ -43,24 +31,21 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/arm64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL - //sys Fstat(fd int, stat *Stat_t) (err error) //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) //sys Fstatfs(fd int, stat *Statfs_t) (err error) //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT //sys Lstat(path string, stat *Stat_t) (err error) +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace //sys Stat(path string, stat *Stat_t) (err error) //sys Statfs(path string, stat *Statfs_t) (err error) - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return 0, ENOSYS -} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go index 4b4ae460f..38bec3002 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.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. +//go:build darwin && go1.12 // +build darwin,go1.12 package unix @@ -15,6 +16,7 @@ func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) //go:linkname syscall_syscall syscall.syscall //go:linkname syscall_syscall6 syscall.syscall6 @@ -22,6 +24,7 @@ func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, er //go:linkname syscall_syscall9 syscall.syscall9 //go:linkname syscall_rawSyscall syscall.rawSyscall //go:linkname syscall_rawSyscall6 syscall.rawSyscall6 +//go:linkname syscall_syscallPtr syscall.syscallPtr // Find the entry point for f. See comments in runtime/proc.go for the // function of the same name. diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go index 962eee304..5af108a50 100644 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -12,7 +12,25 @@ package unix -import "unsafe" +import ( + "sync" + "unsafe" +) + +// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h +var ( + osreldateOnce sync.Once + osreldate uint32 +) + +// First __DragonFly_version after September 2019 ABI changes +// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html +const _dragonflyABIChangeVersion = 500705 + +func supportsABI(ver uint32) bool { + osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) + return osreldate >= ver +} // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. type SockaddrDatalink struct { @@ -29,6 +47,10 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + // Translate "kern.hostname" to []_C_int{0,1,2,3}. func nametomib(name string) (mib []_C_int, err error) { const siz = unsafe.Sizeof(mib[0]) @@ -57,7 +79,23 @@ func nametomib(name string) (mib []_C_int, err error) { return buf[0 : n/siz], nil } -//sysnb pipe() (r int, w int, err error) +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + namlen, ok := direntNamlen(buf) + if !ok { + return 0, false + } + return (16 + namlen + 1 + 7) &^ 7, true +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +//sysnb pipe() (r int, w int, err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -67,6 +105,19 @@ func Pipe(p []int) (err error) { return } +//sysnb pipe2(p *[2]_C_int, flags int) (r int, w int, err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + // pipe2 on dragonfly takes an fds array as an argument, but still + // returns the file descriptors. + p[0], p[1], err = pipe2(&pp, flags) + return err +} + //sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) func Pread(fd int, p []byte, offset int64) (n int, err error) { return extpread(fd, p, 0, offset) @@ -95,23 +146,8 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { return } -const ImplementsGetwd = true - //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { var _p0 unsafe.Pointer var bufsize uintptr @@ -134,42 +170,7 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -func ioctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func ioctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error { err := sysctl(mib, old, oldlen, nil, 0) @@ -269,6 +270,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fstatfs(fd int, stat *Statfs_t) (err error) //sys Fsync(fd int) (err error) //sys Ftruncate(fd int, length int64) (err error) +//sys Getdents(fd int, buf []byte) (n int, err error) //sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) //sys Getdtablesize() (size int) //sysnb Getegid() (egid int) @@ -308,7 +310,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Revoke(path string) (err error) //sys Rmdir(path string) (err error) //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sysnb Setegid(egid int) (err error) //sysnb Seteuid(euid int) (err error) //sysnb Setgid(gid int) (err error) @@ -335,8 +337,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Unlinkat(dirfd int, path string, flags int) (err error) //sys Unmount(path string, flags int) (err error) //sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) //sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ //sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE //sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go index 9babb31ea..4e2d32120 100644 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.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. +//go:build amd64 && dragonfly // +build amd64,dragonfly package unix @@ -33,6 +34,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go index a7ca1ebea..18c392cf3 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -54,6 +54,10 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + // Translate "kern.hostname" to []_C_int{0,1,2,3}. func nametomib(name string) (mib []_C_int, err error) { const siz = unsafe.Sizeof(mib[0]) @@ -82,6 +86,18 @@ func nametomib(name string) (mib []_C_int, err error) { return buf[0 : n/siz], nil } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + func Pipe(p []int) (err error) { return Pipe2(p, 0) } @@ -110,6 +126,15 @@ func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) } +// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. +// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. +func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { + x := new(Xucred) + vallen := _Socklen(SizeofXucred) + err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) + return x, err +} + func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { var rsa RawSockaddrAny var len _Socklen = SizeofSockaddrAny @@ -128,23 +153,8 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { return } -const ImplementsGetwd = true - //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { var ( _p0 unsafe.Pointer @@ -187,44 +197,9 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { return ENOSYS } -//sys ioctl(fd int, req uint, arg uintptr) (err error) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -func ioctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} +//sys ioctl(fd int, req uint, arg uintptr) (err error) -func ioctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL func Uname(uname *Utsname) error { mib := []_C_int{CTL_KERN, KERN_OSTYPE} @@ -362,7 +337,21 @@ func Getdents(fd int, buf []byte) (n int, err error) { func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { if supportsABI(_ino64First) { - return getdirentries_freebsd12(fd, buf, basep) + if basep == nil || unsafe.Sizeof(*basep) == 8 { + return getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep))) + } + // The freebsd12 syscall needs a 64-bit base. On 32-bit machines + // we can't just use the basep passed in. See #32498. + var base uint64 = uint64(*basep) + n, err = getdirentries_freebsd12(fd, buf, &base) + *basep = uintptr(base) + if base>>32 != 0 { + // We can't stuff the base back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO is allowed by getdirentries. + err = EIO + } + return } // The old syscall entries are smaller than the new. Use 1/4 of the original @@ -404,22 +393,22 @@ func roundup(x, y int) int { func (s *Stat_t) convertFrom(old *stat_freebsd11_t) { *s = Stat_t{ - Dev: uint64(old.Dev), - Ino: uint64(old.Ino), - Nlink: uint64(old.Nlink), - Mode: old.Mode, - Uid: old.Uid, - Gid: old.Gid, - Rdev: uint64(old.Rdev), - Atim: old.Atim, - Mtim: old.Mtim, - Ctim: old.Ctim, - Birthtim: old.Birthtim, - Size: old.Size, - Blocks: old.Blocks, - Blksize: old.Blksize, - Flags: old.Flags, - Gen: uint64(old.Gen), + Dev: uint64(old.Dev), + Ino: uint64(old.Ino), + Nlink: uint64(old.Nlink), + Mode: old.Mode, + Uid: old.Uid, + Gid: old.Gid, + Rdev: uint64(old.Rdev), + Atim: old.Atim, + Mtim: old.Mtim, + Ctim: old.Ctim, + Btim: old.Btim, + Size: old.Size, + Blocks: old.Blocks, + Blksize: old.Blksize, + Flags: old.Flags, + Gen: uint64(old.Gen), } } @@ -471,8 +460,12 @@ func convertFromDirents11(buf []byte, old []byte) int { dstPos := 0 srcPos := 0 for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) { - dstDirent := (*Dirent)(unsafe.Pointer(&buf[dstPos])) - srcDirent := (*dirent_freebsd11)(unsafe.Pointer(&old[srcPos])) + var dstDirent Dirent + var srcDirent dirent_freebsd11 + + // If multiple direntries are written, sometimes when we reach the final one, + // we may have cap of old less than size of dirent_freebsd11. + copy((*[unsafe.Sizeof(srcDirent)]byte)(unsafe.Pointer(&srcDirent))[:], old[srcPos:]) reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8) if dstPos+reclen > len(buf) { @@ -488,6 +481,7 @@ func convertFromDirents11(buf []byte, old []byte) int { dstDirent.Pad1 = 0 copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen]) + copy(buf[dstPos:], (*[unsafe.Sizeof(dstDirent)]byte)(unsafe.Pointer(&dstDirent))[:]) padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen] for i := range padding { padding[i] = 0 @@ -507,6 +501,60 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e return sendfile(outfd, infd, offset, count) } +//sys ptrace(request int, pid int, addr uintptr, data int) (err error) + +func PtraceAttach(pid int) (err error) { + return ptrace(PTRACE_ATTACH, pid, 0, 0) +} + +func PtraceCont(pid int, signal int) (err error) { + return ptrace(PTRACE_CONT, pid, 1, signal) +} + +func PtraceDetach(pid int) (err error) { + return ptrace(PTRACE_DETACH, pid, 1, 0) +} + +func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { + return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0) +} + +func PtraceGetRegs(pid int, regsout *Reg) (err error) { + return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0) +} + +func PtraceLwpEvents(pid int, enable int) (err error) { + return ptrace(PTRACE_LWPEVENTS, pid, 0, enable) +} + +func PtraceLwpInfo(pid int, info uintptr) (err error) { + return ptrace(PTRACE_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{}))) +} + +func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { + return PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong) +} + +func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { + return PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong) +} + +func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { + return PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong) +} + +func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { + return PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong) +} + +func PtraceSetRegs(pid int, regs *Reg) (err error) { + return ptrace(PTRACE_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0) +} + +func PtraceSingleStep(pid int) (err error) { + return ptrace(PTRACE_SINGLESTEP, pid, 1, 0) +} + /* * Exposed directly */ @@ -555,7 +603,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fsync(fd int) (err error) //sys Ftruncate(fd int, length int64) (err error) //sys getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) -//sys getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) +//sys getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) //sys Getdtablesize() (size int) //sysnb Getegid() (egid int) //sysnb Geteuid() (uid int) @@ -598,7 +646,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Revoke(path string) (err error) //sys Rmdir(path string) (err error) //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sysnb Setegid(egid int) (err error) //sysnb Seteuid(euid int) (err error) //sysnb Setgid(gid int) (err error) @@ -626,8 +674,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Unlinkat(dirfd int, path string, flags int) (err error) //sys Unmount(path string, flags int) (err error) //sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) //sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ //sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE //sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go index 21e03958c..342fc32b1 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.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. +//go:build 386 && freebsd // +build 386,freebsd package unix @@ -33,6 +34,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } @@ -50,3 +55,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceGetFsBase(pid int, fsbase *int64) (err error) { + return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) +} + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go index 9c945a657..a32d5aa4a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.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. +//go:build amd64 && freebsd // +build amd64,freebsd package unix @@ -33,6 +34,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } @@ -50,3 +55,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceGetFsBase(pid int, fsbase *int64) (err error) { + return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) +} + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go index 5cd6243f2..1e36d39ab 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.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. +//go:build arm && freebsd // +build arm,freebsd package unix @@ -33,6 +34,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } @@ -50,3 +55,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go index a31805487..a09a1537b 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.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. +//go:build arm64 && freebsd // +build arm64,freebsd package unix @@ -33,6 +34,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } @@ -50,3 +55,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go new file mode 100644 index 000000000..c5c58806c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go @@ -0,0 +1,129 @@ +// 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. + +// illumos system calls not present on Solaris. + +//go:build amd64 && illumos +// +build amd64,illumos + +package unix + +import ( + "unsafe" +) + +func bytes2iovec(bs [][]byte) []Iovec { + iovecs := make([]Iovec, len(bs)) + for i, b := range bs { + iovecs[i].SetLen(len(b)) + if len(b) > 0 { + // somehow Iovec.Base on illumos is (*int8), not (*byte) + iovecs[i].Base = (*int8)(unsafe.Pointer(&b[0])) + } else { + iovecs[i].Base = (*int8)(unsafe.Pointer(&_zero)) + } + } + return iovecs +} + +//sys readv(fd int, iovs []Iovec) (n int, err error) + +func Readv(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = readv(fd, iovecs) + return n, err +} + +//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error) + +func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = preadv(fd, iovecs, off) + return n, err +} + +//sys writev(fd int, iovs []Iovec) (n int, err error) + +func Writev(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = writev(fd, iovecs) + return n, err +} + +//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error) + +func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = pwritev(fd, iovecs, off) + return n, err +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4 + +func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept4(fd, &rsa, &len, flags) + if err != nil { + return + } + if len > SizeofSockaddrAny { + panic("RawSockaddrAny too small") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +//sys putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) + +func Putmsg(fd int, cl []byte, data []byte, flags int) (err error) { + var clp, datap *strbuf + if len(cl) > 0 { + clp = &strbuf{ + Len: int32(len(cl)), + Buf: (*int8)(unsafe.Pointer(&cl[0])), + } + } + if len(data) > 0 { + datap = &strbuf{ + Len: int32(len(data)), + Buf: (*int8)(unsafe.Pointer(&data[0])), + } + } + return putmsg(fd, clp, datap, flags) +} + +//sys getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) + +func Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) { + var clp, datap *strbuf + if len(cl) > 0 { + clp = &strbuf{ + Maxlen: int32(len(cl)), + Buf: (*int8)(unsafe.Pointer(&cl[0])), + } + } + if len(data) > 0 { + datap = &strbuf{ + Maxlen: int32(len(data)), + Buf: (*int8)(unsafe.Pointer(&data[0])), + } + } + + if err = getmsg(fd, clp, datap, &flags); err != nil { + return nil, nil, 0, err + } + + if len(cl) > 0 { + retCl = cl[:clp.Len] + } + if len(data) > 0 { + retData = data[:datap.Len] + } + return retCl, retData, flags, nil +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 7e429ab2f..c61c963b7 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -13,7 +13,6 @@ package unix import ( "encoding/binary" - "net" "runtime" "syscall" "unsafe" @@ -72,27 +71,15 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { // ioctl itself should not be exposed directly, but additional get/set // functions for specific types are permissible. -// IoctlSetPointerInt performs an ioctl operation which sets an -// integer value on fd, using the specified request number. The ioctl -// argument is called with a pointer to the integer value, rather than -// passing the integer value directly. -func IoctlSetPointerInt(fd int, req uint, value int) error { - v := int32(value) - return ioctl(fd, req, uintptr(unsafe.Pointer(&v))) -} - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -func ioctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func ioctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) +// IoctlRetInt performs an ioctl operation specified by req on a device +// associated with opened file descriptor fd, and returns a non-negative +// integer that is returned by the ioctl syscall. +func IoctlRetInt(fd int, req uint) (int, error) { + ret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0) + if err != 0 { + return 0, err + } + return int(ret), nil } func IoctlSetRTCTime(fd int, value *RTCTime) error { @@ -101,32 +88,175 @@ func IoctlSetRTCTime(fd int, value *RTCTime) error { return err } -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int +func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { + err := ioctl(fd, RTC_WKALM_SET, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +func IoctlGetUint32(fd int, req uint) (uint32, error) { + var value uint32 err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) return value, err } -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) +func IoctlGetRTCTime(fd int) (*RTCTime, error) { + var value RTCTime + err := ioctl(fd, RTC_RD_TIME, uintptr(unsafe.Pointer(&value))) return &value, err } -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) +type ifreqEthtool struct { + name [IFNAMSIZ]byte + data unsafe.Pointer +} + +// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network +// device specified by ifname. +func IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) { + // Leave room for terminating NULL byte. + if len(ifname) >= IFNAMSIZ { + return nil, EINVAL + } + + value := EthtoolDrvinfo{ + Cmd: ETHTOOL_GDRVINFO, + } + ifreq := ifreqEthtool{ + data: unsafe.Pointer(&value), + } + copy(ifreq.name[:], ifname) + err := ioctl(fd, SIOCETHTOOL, uintptr(unsafe.Pointer(&ifreq))) + runtime.KeepAlive(ifreq) return &value, err } -func IoctlGetRTCTime(fd int) (*RTCTime, error) { - var value RTCTime - err := ioctl(fd, RTC_RD_TIME, uintptr(unsafe.Pointer(&value))) +// IoctlGetWatchdogInfo fetches information about a watchdog device from the +// Linux watchdog API. For more information, see: +// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. +func IoctlGetWatchdogInfo(fd int) (*WatchdogInfo, error) { + var value WatchdogInfo + err := ioctl(fd, WDIOC_GETSUPPORT, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { + var value RTCWkAlrm + err := ioctl(fd, RTC_WKALM_RD, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +// IoctlFileCloneRange performs an FICLONERANGE ioctl operation to clone the +// range of data conveyed in value to the file associated with the file +// descriptor destFd. See the ioctl_ficlonerange(2) man page for details. +func IoctlFileCloneRange(destFd int, value *FileCloneRange) error { + err := ioctl(destFd, FICLONERANGE, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file +// associated with the file description srcFd to the file associated with the +// file descriptor destFd. See the ioctl_ficlone(2) man page for details. +func IoctlFileClone(destFd, srcFd int) error { + return ioctl(destFd, FICLONE, uintptr(srcFd)) +} + +type FileDedupeRange struct { + Src_offset uint64 + Src_length uint64 + Reserved1 uint16 + Reserved2 uint32 + Info []FileDedupeRangeInfo +} + +type FileDedupeRangeInfo struct { + Dest_fd int64 + Dest_offset uint64 + Bytes_deduped uint64 + Status int32 + Reserved uint32 +} + +// IoctlFileDedupeRange performs an FIDEDUPERANGE ioctl operation to share the +// range of data conveyed in value from the file associated with the file +// descriptor srcFd to the value.Info destinations. See the +// ioctl_fideduperange(2) man page for details. +func IoctlFileDedupeRange(srcFd int, value *FileDedupeRange) error { + buf := make([]byte, SizeofRawFileDedupeRange+ + len(value.Info)*SizeofRawFileDedupeRangeInfo) + rawrange := (*RawFileDedupeRange)(unsafe.Pointer(&buf[0])) + rawrange.Src_offset = value.Src_offset + rawrange.Src_length = value.Src_length + rawrange.Dest_count = uint16(len(value.Info)) + rawrange.Reserved1 = value.Reserved1 + rawrange.Reserved2 = value.Reserved2 + + for i := range value.Info { + rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( + uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + + uintptr(i*SizeofRawFileDedupeRangeInfo))) + rawinfo.Dest_fd = value.Info[i].Dest_fd + rawinfo.Dest_offset = value.Info[i].Dest_offset + rawinfo.Bytes_deduped = value.Info[i].Bytes_deduped + rawinfo.Status = value.Info[i].Status + rawinfo.Reserved = value.Info[i].Reserved + } + + err := ioctl(srcFd, FIDEDUPERANGE, uintptr(unsafe.Pointer(&buf[0]))) + + // Output + for i := range value.Info { + rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( + uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + + uintptr(i*SizeofRawFileDedupeRangeInfo))) + value.Info[i].Dest_fd = rawinfo.Dest_fd + value.Info[i].Dest_offset = rawinfo.Dest_offset + value.Info[i].Bytes_deduped = rawinfo.Bytes_deduped + value.Info[i].Status = rawinfo.Status + value.Info[i].Reserved = rawinfo.Reserved + } + + return err +} + +// IoctlWatchdogKeepalive issues a keepalive ioctl to a watchdog device. For +// more information, see: +// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. +func IoctlWatchdogKeepalive(fd int) error { + return ioctl(fd, WDIOC_KEEPALIVE, 0) +} + +func IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error { + err := ioctl(fd, HIDIOCGRDESC, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +func IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) { + var value HIDRawDevInfo + err := ioctl(fd, HIDIOCGRAWINFO, uintptr(unsafe.Pointer(&value))) return &value, err } +func IoctlHIDGetRawName(fd int) (string, error) { + var value [_HIDIOCGRAWNAME_LEN]byte + err := ioctl(fd, _HIDIOCGRAWNAME, uintptr(unsafe.Pointer(&value[0]))) + return ByteSliceToString(value[:]), err +} + +func IoctlHIDGetRawPhys(fd int) (string, error) { + var value [_HIDIOCGRAWPHYS_LEN]byte + err := ioctl(fd, _HIDIOCGRAWPHYS, uintptr(unsafe.Pointer(&value[0]))) + return ByteSliceToString(value[:]), err +} + +func IoctlHIDGetRawUniq(fd int) (string, error) { + var value [_HIDIOCGRAWUNIQ_LEN]byte + err := ioctl(fd, _HIDIOCGRAWUNIQ, uintptr(unsafe.Pointer(&value[0]))) + return ByteSliceToString(value[:]), err +} + //sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) func Link(oldpath string, newpath string) (err error) { @@ -151,6 +281,12 @@ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) return openat(dirfd, path, flags|O_LARGEFILE, mode) } +//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) + +func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { + return openat2(dirfd, path, how, SizeofOpenHow) +} + //sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { @@ -609,6 +745,36 @@ func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) { return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil } +// SockaddrCANJ1939 implements the Sockaddr interface for AF_CAN using J1939 +// protocol (https://en.wikipedia.org/wiki/SAE_J1939). For more information +// on the purposes of the fields, check the official linux kernel documentation +// available here: https://www.kernel.org/doc/Documentation/networking/j1939.rst +type SockaddrCANJ1939 struct { + Ifindex int + Name uint64 + PGN uint32 + Addr uint8 + raw RawSockaddrCAN +} + +func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_CAN + sa.raw.Ifindex = int32(sa.Ifindex) + n := (*[8]byte)(unsafe.Pointer(&sa.Name)) + for i := 0; i < 8; i++ { + sa.raw.Addr[i] = n[i] + } + p := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i+8] = p[i] + } + sa.raw.Addr[12] = sa.Addr + 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 @@ -716,16 +882,19 @@ 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_LOCAL: refers to local communication (loopback). // - VMADDR_CID_HOST: refers to other processes on the host. - CID uint32 - Port uint32 - raw RawSockaddrVM + CID uint32 + Port uint32 + Flags uint8 + 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 + sa.raw.Flags = sa.Flags return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil } @@ -759,7 +928,7 @@ const px_proto_oe = 0 type SockaddrPPPoE struct { SID uint16 - Remote net.HardwareAddr + Remote []byte Dev string raw RawSockaddrPPPoX } @@ -793,6 +962,137 @@ func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) { return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil } +// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets. +// For more information on TIPC, see: http://tipc.sourceforge.net/. +type SockaddrTIPC struct { + // Scope is the publication scopes when binding service/service range. + // Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE. + Scope int + + // Addr is the type of address used to manipulate a socket. Addr must be + // one of: + // - *TIPCSocketAddr: "id" variant in the C addr union + // - *TIPCServiceRange: "nameseq" variant in the C addr union + // - *TIPCServiceName: "name" variant in the C addr union + // + // If nil, EINVAL will be returned when the structure is used. + Addr TIPCAddr + + raw RawSockaddrTIPC +} + +// TIPCAddr is implemented by types that can be used as an address for +// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange, +// and *TIPCServiceName. +type TIPCAddr interface { + tipcAddrtype() uint8 + tipcAddr() [12]byte +} + +func (sa *TIPCSocketAddr) tipcAddr() [12]byte { + var out [12]byte + copy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:]) + return out +} + +func (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR } + +func (sa *TIPCServiceRange) tipcAddr() [12]byte { + var out [12]byte + copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:]) + return out +} + +func (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE } + +func (sa *TIPCServiceName) tipcAddr() [12]byte { + var out [12]byte + copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:]) + return out +} + +func (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR } + +func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Addr == nil { + return nil, 0, EINVAL + } + + sa.raw.Family = AF_TIPC + sa.raw.Scope = int8(sa.Scope) + sa.raw.Addrtype = sa.Addr.tipcAddrtype() + sa.raw.Addr = sa.Addr.tipcAddr() + + return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil +} + +// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets. +type SockaddrL2TPIP struct { + Addr [4]byte + ConnId uint32 + raw RawSockaddrL2TPIP +} + +func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_INET + sa.raw.Conn_id = sa.ConnId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil +} + +// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets. +type SockaddrL2TPIP6 struct { + Addr [16]byte + ZoneId uint32 + ConnId uint32 + raw RawSockaddrL2TPIP6 +} + +func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_INET6 + sa.raw.Conn_id = sa.ConnId + sa.raw.Scope_id = sa.ZoneId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil +} + +// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets. +type SockaddrIUCV struct { + UserID string + Name string + raw RawSockaddrIUCV +} + +func (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_IUCV + // These are EBCDIC encoded by the kernel, but we still need to pad them + // with blanks. Initializing with blanks allows the caller to feed in either + // a padded or an unpadded string. + for i := 0; i < 8; i++ { + sa.raw.Nodeid[i] = ' ' + sa.raw.User_id[i] = ' ' + sa.raw.Name[i] = ' ' + } + if len(sa.UserID) > 8 || len(sa.Name) > 8 { + return nil, 0, EINVAL + } + for i, b := range []byte(sa.UserID[:]) { + sa.raw.User_id[i] = int8(b) + } + for i, b := range []byte(sa.Name[:]) { + sa.raw.Name[i] = int8(b) + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil +} + +var socketProtocol = func(fd int) (int, error) { + return GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) +} + func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { switch rsa.Addr.Family { case AF_NETLINK: @@ -838,40 +1138,74 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { for n < len(pp.Path) && pp.Path[n] != 0 { n++ } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] sa.Name = string(bytes) return sa, nil case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + + switch proto { + case IPPROTO_L2TP: + pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa)) + sa := new(SockaddrL2TPIP) + sa.ConnId = pp.Conn_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + default: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil } - return sa, nil case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + + switch proto { + case IPPROTO_L2TP: + pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa)) + sa := new(SockaddrL2TPIP6) + sa.ConnId = pp.Conn_id + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + default: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil } - return sa, nil case AF_VSOCK: pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) sa := &SockaddrVM{ - CID: pp.Cid, - Port: pp.Port, + CID: pp.Cid, + Port: pp.Port, + Flags: pp.Flags, } return sa, nil case AF_BLUETOOTH: - proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) + proto, err := socketProtocol(fd) if err != nil { return nil, err } @@ -910,7 +1244,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { } sa := &SockaddrPPPoE{ SID: binary.BigEndian.Uint16(pp[6:8]), - Remote: net.HardwareAddr(pp[8:14]), + Remote: pp[8:14], } for i := 14; i < 14+IFNAMSIZ; i++ { if pp[i] == 0 { @@ -919,6 +1253,82 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { } } return sa, nil + case AF_TIPC: + pp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa)) + + sa := &SockaddrTIPC{ + Scope: int(pp.Scope), + } + + // Determine which union variant is present in pp.Addr by checking + // pp.Addrtype. + switch pp.Addrtype { + case TIPC_SERVICE_RANGE: + sa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr)) + case TIPC_SERVICE_ADDR: + sa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr)) + case TIPC_SOCKET_ADDR: + sa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr)) + default: + return nil, EINVAL + } + + return sa, nil + case AF_IUCV: + pp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa)) + + var user [8]byte + var name [8]byte + + for i := 0; i < 8; i++ { + user[i] = byte(pp.User_id[i]) + name[i] = byte(pp.Name[i]) + } + + sa := &SockaddrIUCV{ + UserID: string(user[:]), + Name: string(name[:]), + } + return sa, nil + + case AF_CAN: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + + pp := (*RawSockaddrCAN)(unsafe.Pointer(rsa)) + + switch proto { + case CAN_J1939: + sa := &SockaddrCANJ1939{ + Ifindex: int(pp.Ifindex), + } + name := (*[8]byte)(unsafe.Pointer(&sa.Name)) + for i := 0; i < 8; i++ { + name[i] = pp.Addr[i] + } + pgn := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := 0; i < 4; i++ { + pgn[i] = pp.Addr[i+8] + } + addr := (*[1]byte)(unsafe.Pointer(&sa.Addr)) + addr[0] = pp.Addr[12] + return sa, nil + default: + sa := &SockaddrCAN{ + Ifindex: int(pp.Ifindex), + } + rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) + for i := 0; i < 4; i++ { + rx[i] = pp.Addr[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := 0; i < 4; i++ { + tx[i] = pp.Addr[i+4] + } + return sa, nil + } } return nil, EAFNOSUPPORT } @@ -1155,6 +1565,34 @@ func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer) } +// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This +// command limits the set of keys that can be linked to the keyring, regardless +// of keyring permissions. The command requires the "setattr" permission. +// +// When called with an empty keyType the command locks the keyring, preventing +// any further keys from being linked to the keyring. +// +// The "asymmetric" keyType defines restrictions requiring key payloads to be +// DER encoded X.509 certificates signed by keys in another keyring. Restrictions +// for "asymmetric" include "builtin_trusted", "builtin_and_secondary_trusted", +// "key_or_keyring:", and "key_or_keyring::chain". +// +// As of Linux 4.12, only the "asymmetric" keyType defines type-specific +// restrictions. +// +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html +// http://man7.org/linux/man-pages/man2/keyctl.2.html +func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error { + if keyType == "" { + return keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid) + } + return keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction) +} + +//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL +//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL + func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { var msg Msghdr var rsa RawSockaddrAny @@ -1398,8 +1836,12 @@ func PtraceSyscall(pid int, signal int) (err error) { func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) } +func PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) } + func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) } +func PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) } + func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) } //sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) @@ -1408,8 +1850,20 @@ func Reboot(cmd int) (err error) { return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") } -func ReadDirent(fd int, buf []byte) (n int, err error) { - return Getdents(fd, buf) +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true } //sys mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) @@ -1444,15 +1898,27 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Acct(path string) (err error) //sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) //sys Adjtimex(buf *Timex) (state int, err error) +//sysnb Capget(hdr *CapUserHeader, data *CapUserData) (err error) +//sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error) //sys Chdir(path string) (err error) //sys Chroot(path string) (err error) //sys ClockGetres(clockid int32, res *Timespec) (err error) //sys ClockGettime(clockid int32, time *Timespec) (err error) //sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) //sys Close(fd int) (err error) +//sys CloseRange(first uint, last uint, flags uint) (err error) //sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) //sys DeleteModule(name string, flags int) (err error) //sys Dup(oldfd int) (fd int, err error) + +func Dup2(oldfd, newfd int) error { + // Android O and newer blocks dup2; riscv and arm64 don't implement dup2. + if runtime.GOOS == "android" || runtime.GOARCH == "riscv64" || runtime.GOARCH == "arm64" { + return Dup3(oldfd, newfd, 0) + } + return dup2(oldfd, newfd) +} + //sys Dup3(oldfd int, newfd int, flags int) (err error) //sysnb EpollCreate1(flag int) (fd int, err error) //sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) @@ -1462,7 +1928,6 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fchdir(fd int) (err error) //sys Fchmod(fd int, mode uint32) (err error) //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys fcntl(fd int, cmd int, arg int) (val int, err error) //sys Fdatasync(fd int) (err error) //sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) //sys FinitModule(fd int, params string, flags int) (err error) @@ -1504,8 +1969,8 @@ func Getpgrp() (pid int) { //sys Nanosleep(time *Timespec, leftover *Timespec) (err error) //sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) //sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT -//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 -//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) +//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 +//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) //sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6 //sys read(fd int, p []byte) (n int, err error) //sys Removexattr(path string, attr string) (err error) @@ -1518,6 +1983,17 @@ func Getpgrp() (pid int) { //sysnb Settimeofday(tv *Timeval) (err error) //sys Setns(fd int, nstype int) (err error) +// PrctlRetInt performs a prctl operation specified by option and further +// optional arguments arg2 through arg5 depending on option. It returns a +// non-negative integer that is returned by the prctl syscall. +func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) { + ret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if err != 0 { + return 0, err + } + return int(ret), nil +} + // issue 1435. // On linux Setuid and Setgid only affects the current thread, not the process. // This does not match what most callers expect so we must return an error @@ -1531,14 +2007,45 @@ func Setgid(uid int) (err error) { return EOPNOTSUPP } +// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set. +// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability. +// If the call fails due to other reasons, current fsgid will be returned. +func SetfsgidRetGid(gid int) (int, error) { + return setfsgid(gid) +} + +// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set. +// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability +// If the call fails due to other reasons, current fsuid will be returned. +func SetfsuidRetUid(uid int) (int, error) { + return setfsuid(uid) +} + +func Setfsgid(gid int) error { + _, err := setfsgid(gid) + return err +} + +func Setfsuid(uid int) error { + _, err := setfsuid(uid) + return err +} + +func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { + return signalfd(fd, sigmask, _C__NSIG/8, flags) +} + //sys Setpriority(which int, who int, prio int) (err error) //sys Setxattr(path string, attr string, data []byte, flags int) (err error) -//sys Signalfd(fd int, mask *Sigset_t, flags int) = SYS_SIGNALFD4 +//sys signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4 //sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) //sys Sync() //sys Syncfs(fd int) (err error) //sysnb Sysinfo(info *Sysinfo_t) (err error) //sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error) +//sysnb TimerfdCreate(clockid int, flags int) (fd int, err error) +//sysnb TimerfdGettime(fd int, currValue *ItimerSpec) (err error) +//sysnb TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) //sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error) //sysnb Times(tms *Tms) (ticks uintptr, err error) //sysnb Umask(mask int) (oldmask int) @@ -1549,6 +2056,123 @@ func Setgid(uid int) (err error) { //sys exitThread(code int) (err error) = SYS_EXIT //sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ //sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE +//sys readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV +//sys writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV +//sys preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV +//sys pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV +//sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2 +//sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2 + +func bytes2iovec(bs [][]byte) []Iovec { + iovecs := make([]Iovec, len(bs)) + for i, b := range bs { + iovecs[i].SetLen(len(b)) + if len(b) > 0 { + iovecs[i].Base = &b[0] + } else { + iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero)) + } + } + return iovecs +} + +// offs2lohi splits offs into its lower and upper unsigned long. On 64-bit +// systems, hi will always be 0. On 32-bit systems, offs will be split in half. +// preadv/pwritev chose this calling convention so they don't need to add a +// padding-register for alignment on ARM. +func offs2lohi(offs int64) (lo, hi uintptr) { + return uintptr(offs), uintptr(uint64(offs) >> SizeofLong) +} + +func Readv(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = readv(fd, iovecs) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + lo, hi := offs2lohi(offset) + n, err = preadv(fd, iovecs, lo, hi) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { + iovecs := bytes2iovec(iovs) + lo, hi := offs2lohi(offset) + n, err = preadv2(fd, iovecs, lo, hi, flags) + readvRacedetect(iovecs, n, err) + return n, err +} + +func readvRacedetect(iovecs []Iovec, n int, err error) { + if !raceenabled { + return + } + for i := 0; n > 0 && i < len(iovecs); i++ { + m := int(iovecs[i].Len) + if m > n { + m = n + } + n -= m + if m > 0 { + raceWriteRange(unsafe.Pointer(iovecs[i].Base), m) + } + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } +} + +func Writev(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = writev(fd, iovecs) + writevRacedetect(iovecs, n) + return n, err +} + +func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + lo, hi := offs2lohi(offset) + n, err = pwritev(fd, iovecs, lo, hi) + writevRacedetect(iovecs, n) + return n, err +} + +func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { + iovecs := bytes2iovec(iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + lo, hi := offs2lohi(offset) + n, err = pwritev2(fd, iovecs, lo, hi, flags) + writevRacedetect(iovecs, n) + return n, err +} + +func writevRacedetect(iovecs []Iovec, n int) { + if !raceenabled { + return + } + for i := 0; n > 0 && i < len(iovecs); i++ { + m := int(iovecs[i].Len) + if m > n { + m = n + } + n -= m + if m > 0 { + raceReadRange(unsafe.Pointer(iovecs[i].Base), m) + } + } +} // mmap varies by architecture; see syscall_linux_*.go. //sys munmap(addr uintptr, length uintptr) (err error) @@ -1591,11 +2215,30 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { return int(n), nil } +func isGroupMember(gid int) bool { + groups, err := Getgroups() + if err != nil { + return false + } + + for _, g := range groups { + if g == gid { + return true + } + } + return false +} + //sys faccessat(dirfd int, path string, mode uint32) (err error) +//sys Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 { - return EINVAL + if flags == 0 { + return faccessat(dirfd, path, mode) + } + + if err := Faccessat2(dirfd, path, mode, flags); err != ENOSYS && err != EPERM { + return err } // The Linux kernel faccessat system call does not take any flags. @@ -1604,8 +2247,8 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { // Because people naturally expect syscall.Faccessat to act // like C faccessat, we do the same. - if flags == 0 { - return faccessat(dirfd, path, mode) + if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 { + return EINVAL } var st Stat_t @@ -1648,7 +2291,7 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { gid = Getgid() } - if uint32(gid) == st.Gid { + if uint32(gid) == st.Gid || isGroupMember(gid) { fmode = (st.Mode >> 3) & 7 } else { fmode = st.Mode & 7 @@ -1662,6 +2305,105 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { return EACCES } +//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT +//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT + +// fileHandle is the argument to nameToHandleAt and openByHandleAt. We +// originally tried to generate it via unix/linux/types.go with "type +// fileHandle C.struct_file_handle" but that generated empty structs +// for mips64 and mips64le. Instead, hard code it for now (it's the +// same everywhere else) until the mips64 generator issue is fixed. +type fileHandle struct { + Bytes uint32 + Type int32 +} + +// FileHandle represents the C struct file_handle used by +// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see +// OpenByHandleAt). +type FileHandle struct { + *fileHandle +} + +// NewFileHandle constructs a FileHandle. +func NewFileHandle(handleType int32, handle []byte) FileHandle { + const hdrSize = unsafe.Sizeof(fileHandle{}) + buf := make([]byte, hdrSize+uintptr(len(handle))) + copy(buf[hdrSize:], handle) + fh := (*fileHandle)(unsafe.Pointer(&buf[0])) + fh.Type = handleType + fh.Bytes = uint32(len(handle)) + return FileHandle{fh} +} + +func (fh *FileHandle) Size() int { return int(fh.fileHandle.Bytes) } +func (fh *FileHandle) Type() int32 { return fh.fileHandle.Type } +func (fh *FileHandle) Bytes() []byte { + n := fh.Size() + if n == 0 { + return nil + } + return (*[1 << 30]byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type)) + 4))[:n:n] +} + +// NameToHandleAt wraps the name_to_handle_at system call; it obtains +// a handle for a path name. +func NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) { + var mid _C_int + // Try first with a small buffer, assuming the handle will + // only be 32 bytes. + size := uint32(32 + unsafe.Sizeof(fileHandle{})) + didResize := false + for { + buf := make([]byte, size) + fh := (*fileHandle)(unsafe.Pointer(&buf[0])) + fh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{})) + err = nameToHandleAt(dirfd, path, fh, &mid, flags) + if err == EOVERFLOW { + if didResize { + // We shouldn't need to resize more than once + return + } + didResize = true + size = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{})) + continue + } + if err != nil { + return + } + return FileHandle{fh}, int(mid), nil + } +} + +// OpenByHandleAt wraps the open_by_handle_at system call; it opens a +// file via a handle as previously returned by NameToHandleAt. +func OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) { + return openByHandleAt(mountFD, handle.fileHandle, flags) +} + +// Klogset wraps the sys_syslog system call; it sets console_loglevel to +// the value specified by arg and passes a dummy pointer to bufp. +func Klogset(typ int, arg int) (err error) { + var p unsafe.Pointer + _, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg)) + if errno != 0 { + return errnoErr(errno) + } + return nil +} + +// RemoteIovec is Iovec with the pointer replaced with an integer. +// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer +// refers to a location in a different process' address space, which +// would confuse the Go garbage collector. +type RemoteIovec struct { + Base uintptr + Len int +} + +//sys ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV +//sys ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV + /* * Unimplemented */ @@ -1669,8 +2411,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { // Alarm // ArchPrctl // Brk -// Capget -// Capset // ClockNanosleep // ClockSettime // Clone @@ -1758,7 +2498,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { // TimerGetoverrun // TimerGettime // TimerSettime -// Timerfd // Tkill (obsolete) // Tuxcall // Umount2 diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go index e2f8cf6e5..7b52e5d8a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go @@ -2,9 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP) -// so that go vet can check that they are correct. - +//go:build 386 && linux // +build 386,linux package unix @@ -34,7 +32,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -49,7 +47,7 @@ func Pipe2(p []int, flags int) (err error) { // 64-bit file system and 32-bit uid calls // (386 default is 32-bit file system and 16-bit uid). -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 @@ -70,8 +68,8 @@ func Pipe2(p []int, flags int) (err error) { //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 -//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 +//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 //sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 //sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 //sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 @@ -101,7 +99,7 @@ type rlimit32 struct { Max uint32 } -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT const rlimInf32 = ^uint32(0) const rlimInf64 = ^uint64(0) @@ -132,7 +130,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) { return } -//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT func Setrlimit(resource int, rlim *Rlimit) (err error) { err = prlimit(0, resource, rlim, nil) @@ -372,6 +370,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go index 87a30744d..28b764115 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -2,11 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build amd64 && linux // +build amd64,linux package unix -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -55,8 +56,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) @@ -138,7 +139,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -163,6 +164,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint64(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go index 21a4946ba..8b0f0f3aa 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build amd64,linux -// +build !gccgo +//go:build amd64 && linux && gc +// +build amd64,linux,gc package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go index 3a3c37b4c..68877728e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go @@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm && linux // +build arm,linux package unix import ( - "syscall" "unsafe" ) @@ -36,7 +36,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -49,10 +49,6 @@ func Pipe2(p []int, flags int) (err error) { return } -// Underlying system call writes to newoffset via pointer. -// Implemented in assembly to avoid allocation. -func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) - func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { newoffset, errno := seek(fd, offset, whence) if errno != 0 { @@ -80,7 +76,7 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // 64-bit file system and 32-bit uid calls // (16-bit uid calls are not always supported in newer kernels) -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 @@ -98,8 +94,8 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 -//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 +//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 //sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 //sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 //sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 @@ -134,8 +130,8 @@ func Utime(path string, buf *Utimbuf) error { //sys utimes(path string, times *[2]Timeval) (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 //sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 //sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 @@ -182,7 +178,7 @@ type rlimit32 struct { Max uint32 } -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT const rlimInf32 = ^uint32(0) const rlimInf64 = ^uint64(0) @@ -213,7 +209,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) { return } -//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT func Setrlimit(resource int, rlim *Rlimit) (err error) { err = prlimit(0, resource, rlim, nil) @@ -252,6 +248,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } @@ -272,3 +272,16 @@ func SyncFileRange(fd int, off int64, n int64, flags int) error { // order of their arguments. return armSyncFileRange(fd, flags, off, n) } + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go index cb20b15d5..7ed703476 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.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. +//go:build arm64 && linux // +build arm64,linux package unix @@ -25,7 +26,7 @@ func EpollCreate(size int) (fd int, err error) { //sysnb Getegid() (egid int) //sysnb Geteuid() (euid int) //sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb getrlimit(resource int, rlim *Rlimit) (err error) //sysnb Getuid() (uid int) //sys Listen(s int, n int) (err error) //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 @@ -42,12 +43,12 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb setrlimit(resource int, rlim *Rlimit) (err error) //sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) @@ -155,7 +156,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -168,6 +169,24 @@ func Pipe2(p []int, flags int) (err error) { return } +// Getrlimit prefers the prlimit64 system call. See issue 38604. +func Getrlimit(resource int, rlim *Rlimit) error { + err := prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + return getrlimit(resource, rlim) +} + +// Setrlimit prefers the prlimit64 system call. See issue 38604. +func Setrlimit(resource int, rlim *Rlimit) error { + err := prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + return setrlimit(resource, rlim) +} + func (r *PtraceRegs) PC() uint64 { return r.Pc } func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } @@ -180,6 +199,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint64(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } @@ -188,9 +211,9 @@ func InotifyInit() (fd int, err error) { return InotifyInit1(0) } -func Dup2(oldfd int, newfd int) (err error) { - return Dup3(oldfd, newfd, 0) -} +// dup2 exists because func Dup3 in syscall_linux.go references +// it in an unreachable path. dup2 isn't available on arm64. +func dup2(oldfd int, newfd int) error func Pause() error { _, err := ppoll(nil, 0, nil, nil) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go index c26e6ec23..2b1168d7d 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build linux,!gccgo +//go:build linux && gc +// +build linux,gc package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go index 070bd3899..9843fb489 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build linux,!gccgo,386 +//go:build linux && gc && 386 +// +build linux,gc,386 package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go new file mode 100644 index 000000000..a6008fccd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go @@ -0,0 +1,14 @@ +// 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. + +//go:build arm && gc && linux +// +build arm,gc,linux + +package unix + +import "syscall" + +// Underlying system call writes to newoffset via pointer. +// Implemented in assembly to avoid allocation. +func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go index 308eb7aec..7740af242 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.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. +//go:build linux && gccgo && 386 // +build linux,gccgo,386 package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go index aa7fc9e19..e16a12299 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.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. +//go:build linux && gccgo && arm // +build linux,gccgo,arm package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go index b3b21ec1e..06dec06fa 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -2,12 +2,13 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (mips64 || mips64le) // +build linux // +build mips64 mips64le package unix -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -36,8 +37,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) @@ -104,7 +105,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -208,10 +209,18 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint64(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } +func InotifyInit() (fd int, err error) { + return InotifyInit1(0) +} + //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) func Poll(fds []PollFd, timeout int) (n int, err error) { 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 5144d4e13..8f0d0a5b5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.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. +//go:build linux && (mips || mipsle) // +build linux // +build mips mipsle @@ -14,7 +15,7 @@ import ( func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -31,8 +32,8 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) @@ -112,7 +113,7 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: int32(sec), Usec: int32(usec)} } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -125,7 +126,7 @@ func Pipe2(p []int, flags int) (err error) { return } -//sysnb pipe() (p1 int, p2 int, err error) +//sysnb pipe() (p1 int, p2 int, err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -153,7 +154,7 @@ type rlimit32 struct { Max uint32 } -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT func Getrlimit(resource int, rlim *Rlimit) (err error) { err = prlimit(0, resource, nil, rlim) @@ -181,7 +182,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) { return } -//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT func Setrlimit(resource int, rlim *Rlimit) (err error) { err = prlimit(0, resource, rlim, nil) @@ -220,6 +221,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go index 0a100b66a..0b1f0d6da 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go @@ -2,12 +2,13 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (ppc64 || ppc64le) // +build linux // +build ppc64 ppc64le package unix -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -34,8 +35,8 @@ package unix //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) @@ -91,11 +92,15 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint64(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } -//sysnb pipe(p *[2]_C_int) (err error) +//sysnb pipe(p *[2]_C_int) (err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -108,7 +113,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go index 6230f6405..ce9bcd317 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.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. +//go:build riscv64 && linux // +build riscv64,linux package unix @@ -41,8 +42,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) @@ -154,7 +155,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -179,6 +180,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint64(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } @@ -187,10 +192,6 @@ func InotifyInit() (fd int, err error) { return InotifyInit1(0) } -func Dup2(oldfd int, newfd int) (err error) { - return Dup3(oldfd, newfd, 0) -} - func Pause() error { _, err := ppoll(nil, 0, nil, nil) return err @@ -224,3 +225,7 @@ func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error } return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) } + +// dup2 exists because func Dup3 in syscall_linux.go references +// it in an unreachable path. dup2 isn't available on arm64. +func dup2(oldfd int, newfd int) error 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 f81dbdc9c..a1e45694b 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.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. +//go:build s390x && linux // +build s390x,linux package unix @@ -10,7 +11,7 @@ import ( "unsafe" ) -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -34,8 +35,8 @@ import ( //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) @@ -76,7 +77,7 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: sec, Usec: usec} } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -120,6 +121,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint64(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } @@ -245,7 +250,7 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen } func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { - args := [4]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val)} + args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen} _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0) if err != 0 { return err diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go index b69565616..49055a3cf 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go @@ -2,13 +2,14 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build sparc64 && linux // +build sparc64,linux package unix //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) //sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 @@ -30,8 +31,8 @@ package unix //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) @@ -107,11 +108,15 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint64(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } -//sysnb pipe(p *[2]_C_int) (err error) +//sysnb pipe(p *[2]_C_int) (err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -124,7 +129,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 5240e16e4..853d5f0f4 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -31,6 +31,10 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { @@ -94,24 +98,20 @@ func nametomib(name string) (mib []_C_int, err error) { return mib, nil } -func SysctlClockinfo(name string) (*Clockinfo, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} - n := uintptr(SizeofClockinfo) - var ci Clockinfo - if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofClockinfo { - return nil, EIO - } - return &ci, nil +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) } -//sysnb pipe() (fd1 int, fd2 int, err error) +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +//sysnb pipe() (fd1 int, fd2 int, err error) + func Pipe(p []int) (err error) { if len(p) != 2 { return EINVAL @@ -120,28 +120,48 @@ func Pipe(p []int) (err error) { return } -//sys getdents(fd int, buf []byte) (n int, err error) -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return getdents(fd, buf) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return err } -const ImplementsGetwd = true +//sys Getdents(fd int, buf []byte) (n int, err error) -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) if err != nil { - return "", err + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL + if off>>32 != 0 { + // We can't stuff the offset back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO is allowed by getdirentries. + err = EIO } - return string(buf[:n]), nil + return } +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + // TODO func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { return -1, ENOSYS @@ -154,42 +174,7 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -func ioctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func ioctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) { var value Ptmget @@ -251,6 +236,14 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e return sendfile(outfd, infd, offset, count) } +func Fstatvfs(fd int, buf *Statvfs_t) (err error) { + return Fstatvfs1(fd, buf, ST_WAIT) +} + +func Statvfs(path string, buf *Statvfs_t) (err error) { + return Statvfs1(path, buf, ST_WAIT) +} + /* * Exposed directly */ @@ -264,6 +257,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) +//sys Dup3(from int, to int, flags int) (err error) //sys Exit(code int) //sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) //sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) @@ -289,6 +283,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fpathconf(fd int, name int) (val int, err error) //sys Fstat(fd int, stat *Stat_t) (err error) //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1 //sys Fsync(fd int) (err error) //sys Ftruncate(fd int, length int64) (err error) //sysnb Getegid() (egid int) @@ -332,7 +327,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Revoke(path string) (err error) //sys Rmdir(path string) (err error) //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sysnb Setegid(egid int) (err error) //sysnb Seteuid(euid int) (err error) //sysnb Setgid(gid int) (err error) @@ -345,6 +340,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sysnb Settimeofday(tp *Timeval) (err error) //sysnb Setuid(uid int) (err error) //sys Stat(path string, stat *Stat_t) (err error) +//sys Statvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1 //sys Symlink(path string, link string) (err error) //sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) //sys Sync() (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go index 24f74e58c..5199d282f 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.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. +//go:build 386 && netbsd // +build 386,netbsd package unix @@ -28,6 +29,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go index 6878bf7ff..70a9c52e9 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.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. +//go:build amd64 && netbsd // +build amd64,netbsd package unix @@ -28,6 +29,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go index dbbfcf71d..3eb5942f9 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.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. +//go:build arm && netbsd // +build arm,netbsd package unix @@ -28,6 +29,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go index f3434465a..fc6ccfd81 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.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. +//go:build arm64 && netbsd // +build arm64,netbsd package unix @@ -28,6 +29,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go index c8648ec02..22b550385 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -31,6 +31,10 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) func nametomib(name string) (mib []_C_int, err error) { @@ -43,21 +47,16 @@ func nametomib(name string) (mib []_C_int, err error) { return nil, EINVAL } -func SysctlClockinfo(name string) (*Clockinfo, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} - n := uintptr(SizeofClockinfo) - var ci Clockinfo - if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofClockinfo { - return nil, EIO - } - return &ci, nil +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) } func SysctlUvmexp(name string) (*Uvmexp, error) { @@ -77,40 +76,50 @@ func SysctlUvmexp(name string) (*Uvmexp, error) { return &u, nil } -//sysnb pipe(p *[2]_C_int) (err error) func Pipe(p []int) (err error) { + return Pipe2(p, 0) +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) +func Pipe2(p []int, flags int) error { if len(p) != 2 { return EINVAL } var pp [2]_C_int - err = pipe(&pp) + err := pipe2(&pp, flags) p[0] = int(pp[0]) p[1] = int(pp[1]) - return + return err } -//sys getdents(fd int, buf []byte) (n int, err error) +//sys Getdents(fd int, buf []byte) (n int, err error) func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return getdents(fd, buf) -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) if err != nil { - return "", err + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL + if off>>32 != 0 { + // We can't stuff the offset back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO was allowed by getdirentries. + err = EIO } - return string(buf[:n]), nil + return } +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { if raceenabled { raceReleaseMerge(unsafe.Pointer(&ioSync)) @@ -145,42 +154,7 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -func ioctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func ioctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL //sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) @@ -250,6 +224,7 @@ func Uname(uname *Utsname) error { //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) +//sys Dup3(from int, to int, flags int) (err error) //sys Exit(code int) //sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) //sys Fchdir(fd int) (err error) @@ -307,7 +282,7 @@ func Uname(uname *Utsname) error { //sys Revoke(path string) (err error) //sys Rmdir(path string) (err error) //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sysnb Setegid(egid int) (err error) //sysnb Seteuid(euid int) (err error) //sysnb Setgid(gid int) (err error) @@ -354,7 +329,6 @@ func Uname(uname *Utsname) error { // clock_settime // closefrom // execve -// fcntl // fhopen // fhstat // fhstatfs diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go index d62da60d1..6baabcdcb 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.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. +//go:build 386 && openbsd // +build 386,openbsd package unix @@ -28,6 +29,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go index 9a35334cb..bab25360e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.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. +//go:build amd64 && openbsd // +build amd64,openbsd package unix @@ -28,6 +29,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go index 5d812aaea..8eed3c4d4 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.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. +//go:build arm && openbsd // +build arm,openbsd package unix @@ -28,6 +29,10 @@ func (msghdr *Msghdr) SetControllen(length int) { msghdr.Controllen = uint32(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go new file mode 100644 index 000000000..483dde99d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go @@ -0,0 +1,42 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/amd64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go new file mode 100644 index 000000000..30f285343 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go @@ -0,0 +1,35 @@ +// Copyright 2019 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 unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of OpenBSD the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index e47801275..77fcde7c1 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -13,6 +13,7 @@ package unix import ( + "runtime" "syscall" "unsafe" ) @@ -35,6 +36,22 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true +} + //sysnb pipe(p *[2]_C_int) (n int, err error) func Pipe(p []int) (err error) { @@ -51,6 +68,19 @@ func Pipe(p []int) (err error) { return nil } +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return err +} + func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { if sa.Port < 0 || sa.Port > 0xFFFF { return nil, 0, EINVAL @@ -189,6 +219,7 @@ func Setgroups(gids []int) (err error) { return setgroups(len(a), &a[0]) } +// ReadDirent reads directory entries from fd and writes them into buf. func ReadDirent(fd int, buf []byte) (n int, err error) { // Final argument is (basep *uintptr) and the syscall doesn't take nil. // TODO(rsc): Can we use a single global basep for all calls? @@ -374,7 +405,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { for n < len(pp.Path) && pp.Path[n] != 0 { n++ } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] sa.Name = string(bytes) return sa, nil @@ -534,40 +565,17 @@ func Minor(dev uint64) uint32 { * Expose the ioctl function */ -//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlRet(fd int, req uint, arg uintptr) (ret int, err error) = libc.ioctl -func IoctlSetInt(fd int, req uint, value int) (err error) { - return ioctl(fd, req, uintptr(value)) +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, err = ioctlRet(fd, req, arg) + return err } -func ioctlSetWinsize(fd int, req uint, value *Winsize) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func ioctlSetTermios(fd int, req uint, value *Termios) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlSetTermio(fd int, req uint, value *Termio) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err +func IoctlSetTermio(fd int, req uint, value *Termio) error { + err := ioctl(fd, req, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err } func IoctlGetTermio(fd int, req uint) (*Termio, error) { @@ -576,7 +584,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) { return &value, err } -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) func Poll(fds []PollFd, timeout int) (n int, err error) { if len(fds) == 0 { @@ -662,7 +670,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) //sys Rmdir(path string) (err error) //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sysnb Setegid(egid int) (err error) //sysnb Seteuid(euid int) (err error) //sysnb Setgid(gid int) (err error) @@ -679,6 +687,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Statvfs(path string, vfsstat *Statvfs_t) (err error) //sys Symlink(path string, link string) (err error) //sys Sync() (err error) +//sys Sysconf(which int) (n int64, err error) //sysnb Times(tms *Tms) (ticks uintptr, err error) //sys Truncate(path string, length int64) (err error) //sys Fsync(fd int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go index 91c32ddf0..0bd25ef81 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.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. +//go:build amd64 && solaris // +build amd64,solaris package unix @@ -18,6 +19,10 @@ func (iov *Iovec) SetLen(length int) { iov.Len = uint64(length) } +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go index 3de37566c..a7618ceb5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix.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. +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package unix @@ -12,6 +13,8 @@ import ( "sync" "syscall" "unsafe" + + "golang.org/x/sys/internal/unsafeheader" ) var ( @@ -76,7 +79,7 @@ func SignalName(s syscall.Signal) string { // The signal name should start with "SIG". func SignalNum(s string) syscall.Signal { signalNameMapOnce.Do(func() { - signalNameMap = make(map[string]syscall.Signal) + signalNameMap = make(map[string]syscall.Signal, len(signalList)) for _, signal := range signalList { signalNameMap[signal.name] = signal.num } @@ -113,15 +116,12 @@ func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (d return nil, errno } - // Slice memory layout - var sl = struct { - addr uintptr - len int - cap int - }{addr, length, length} - - // Use unsafe to turn sl into a []byte. - b := *(*[]byte)(unsafe.Pointer(&sl)) + // Use unsafe to convert addr into a []byte. + var b []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&b)) + hdr.Data = unsafe.Pointer(addr) + hdr.Cap = length + hdr.Len = length // Register mapping in m and return it. p := &b[cap(b)-1] diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go index 1c70d1b69..5898e9a52 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go @@ -2,8 +2,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build (darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris) && gc && !ppc64le && !ppc64 // +build darwin dragonfly freebsd linux netbsd openbsd solaris -// +build !gccgo,!ppc64le,!ppc64 +// +build gc +// +build !ppc64le +// +build !ppc64 package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go index 86dc765ab..f6f707acf 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go @@ -2,9 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (ppc64le || ppc64) && gc // +build linux // +build ppc64le ppc64 -// +build !gccgo +// +build gc package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go new file mode 100644 index 000000000..13f58d2b2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go @@ -0,0 +1,1781 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "bytes" + "runtime" + "sort" + "sync" + "syscall" + "unsafe" +) + +const ( + O_CLOEXEC = 0 // Dummy value (not supported). + AF_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX +) + +func syscall_syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawsyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawsyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawsyscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) + +func copyStat(stat *Stat_t, statLE *Stat_LE_t) { + stat.Dev = uint64(statLE.Dev) + stat.Ino = uint64(statLE.Ino) + stat.Nlink = uint64(statLE.Nlink) + stat.Mode = uint32(statLE.Mode) + stat.Uid = uint32(statLE.Uid) + stat.Gid = uint32(statLE.Gid) + stat.Rdev = uint64(statLE.Rdev) + stat.Size = statLE.Size + stat.Atim.Sec = int64(statLE.Atim) + stat.Atim.Nsec = 0 //zos doesn't return nanoseconds + stat.Mtim.Sec = int64(statLE.Mtim) + stat.Mtim.Nsec = 0 //zos doesn't return nanoseconds + stat.Ctim.Sec = int64(statLE.Ctim) + stat.Ctim.Nsec = 0 //zos doesn't return nanoseconds + stat.Blksize = int64(statLE.Blksize) + stat.Blocks = statLE.Blocks +} + +func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) +func svcLoad(name *byte) unsafe.Pointer +func svcUnload(name *byte, fnptr unsafe.Pointer) int64 + +func (d *Dirent) NameString() string { + if d == nil { + return "" + } + return string(d.Name[:d.Namlen]) +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet4 + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet6 + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) || n == 0 { + return nil, 0, EINVAL + } + sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) { + // TODO(neeilan): Implement use of first param (fd) + switch rsa.Addr.Family { + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + // For z/OS, only replace NUL with @ when the + // length is not zero. + if pp.Len != 0 && pp.Path[0] == 0 { + // "Abstract" Unix domain socket. + // Rewrite leading NUL as @ for textual display. + // (This is the standard convention.) + // Not friendly to overwrite in place, + // but the callers below don't care. + pp.Path[0] = '@' + } + + // Assume path ends at NUL. + // + // For z/OS, the length of the name is a field + // in the structure. To be on the safe side, we + // will still scan the name for a NUL but only + // to the length provided in the structure. + // + // This is not technically the Linux semantics for + // abstract Unix domain sockets--they are supposed + // to be uninterpreted fixed-size binary blobs--but + // everyone uses this convention. + n := 0 + for n < int(pp.Len) && pp.Path[n] != 0 { + n++ + } + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + sa.Name = string(bytes) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + } + return nil, EAFNOSUPPORT +} + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if err != nil { + return + } + // TODO(neeilan): Remove 0 in call + sa, err = anyToSockaddr(0, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = int32(length) +} + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys write(fd int, p []byte) (n int, err error) + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___SENDMSG_A +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) = SYS_MMAP +//sys munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP +//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL + +//sys Access(path string, mode uint32) (err error) = SYS___ACCESS_A +//sys Chdir(path string) (err error) = SYS___CHDIR_A +//sys Chown(path string, uid int, gid int) (err error) = SYS___CHOWN_A +//sys Chmod(path string, mode uint32) (err error) = SYS___CHMOD_A +//sys Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A +//sys Dup(oldfd int) (fd int, err error) +//sys Dup2(oldfd int, newfd int) (err error) +//sys Exit(code int) +//sys Fchdir(fd int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL +//sys fstat(fd int, stat *Stat_LE_t) (err error) + +func Fstat(fd int, stat *Stat_t) (err error) { + var statLE Stat_LE_t + err = fstat(fd, &statLE) + copyStat(stat, &statLE) + return +} + +//sys Fstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys Getpagesize() (pgsize int) = SYS_GETPAGESIZE +//sys Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT +//sys Msync(b []byte, flags int) (err error) = SYS_MSYNC +//sys Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL +//sys Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES +//sys W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT + +//sys Mount(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A +//sys Unmount(filesystem string, mtm int) (err error) = SYS___UMOUNT_A +//sys Chroot(path string) (err error) = SYS___CHROOT_A +//sysnb Uname(buf *Utsname) (err error) = SYS___UNAME_A + +func Ptsname(fd int) (name string, err error) { + r0, _, e1 := syscall_syscall(SYS___PTSNAME_A, uintptr(fd), 0, 0) + name = u2s(unsafe.Pointer(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func u2s(cstr unsafe.Pointer) string { + str := (*[1024]uint8)(cstr) + i := 0 + for str[i] != 0 { + i++ + } + return string(str[:i]) +} + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) + for i := 0; e1 == EAGAIN && i < 10; i++ { + _, _, _ = syscall_syscall(SYS_USLEEP, uintptr(10), 0, 0) + _, _, e1 = syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) + } + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +// Dummy function: there are no semantics for Madvise on z/OS +func Madvise(b []byte, advice int) (err error) { + return +} + +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + +//sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpid() (pid int) +//sysnb Getpgid(pid int) (pgid int, err error) = SYS_GETPGID + +func Getpgrp() (pid int) { + pid, _ = Getpgid(0) + return +} + +//sysnb Getppid() (pid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT + +//sysnb getrusage(who int, rusage *rusage_zos) (err error) = SYS_GETRUSAGE + +func Getrusage(who int, rusage *Rusage) (err error) { + var ruz rusage_zos + err = getrusage(who, &ruz) + //Only the first two fields of Rusage are set + rusage.Utime.Sec = ruz.Utime.Sec + rusage.Utime.Usec = int64(ruz.Utime.Usec) + rusage.Stime.Sec = ruz.Stime.Sec + rusage.Stime.Usec = int64(ruz.Stime.Usec) + return +} + +//sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID +//sysnb Getuid() (uid int) +//sysnb Kill(pid int, sig Signal) (err error) +//sys Lchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A +//sys Link(path string, link string) (err error) = SYS___LINK_A +//sys Listen(s int, n int) (err error) +//sys lstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A + +func Lstat(path string, stat *Stat_t) (err error) { + var statLE Stat_LE_t + err = lstat(path, &statLE) + copyStat(stat, &statLE) + return +} + +//sys Mkdir(path string, mode uint32) (err error) = SYS___MKDIR_A +//sys Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A +//sys Mknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A +//sys Pread(fd int, p []byte, offset int64) (n int, err error) +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) = SYS___READLINK_A +//sys Rename(from string, to string) (err error) = SYS___RENAME_A +//sys Rmdir(path string) (err error) = SYS___RMDIR_A +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) = SYS_SETPGID +//sysnb Setrlimit(resource int, lim *Rlimit) (err error) +//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID +//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID +//sysnb Setsid() (pid int, err error) = SYS_SETSID +//sys Setuid(uid int) (err error) = SYS_SETUID +//sys Setgid(uid int) (err error) = SYS_SETGID +//sys Shutdown(fd int, how int) (err error) +//sys stat(path string, statLE *Stat_LE_t) (err error) = SYS___STAT_A + +func Stat(path string, sta *Stat_t) (err error) { + var statLE Stat_LE_t + err = stat(path, &statLE) + copyStat(sta, &statLE) + return +} + +//sys Symlink(path string, link string) (err error) = SYS___SYMLINK_A +//sys Sync() = SYS_SYNC +//sys Truncate(path string, length int64) (err error) = SYS___TRUNCATE_A +//sys Tcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR +//sys Tcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR +//sys Umask(mask int) (oldmask int) +//sys Unlink(path string) (err error) = SYS___UNLINK_A +//sys Utime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A + +//sys open(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A + +func Open(path string, mode int, perm uint32) (fd int, err error) { + return open(path, mode, perm) +} + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + wd, err := Getwd() + if err != nil { + return err + } + + if err := Fchdir(dirfd); err != nil { + return err + } + defer Chdir(wd) + + return Mkfifo(path, mode) +} + +//sys remove(path string) (err error) + +func Remove(path string) error { + return remove(path) +} + +const ImplementsGetwd = true + +func Getcwd(buf []byte) (n int, err error) { + var p unsafe.Pointer + if len(buf) > 0 { + p = unsafe.Pointer(&buf[0]) + } else { + p = unsafe.Pointer(&_zero) + } + _, _, e := syscall_syscall(SYS___GETCWD_A, uintptr(p), uintptr(len(buf)), 0) + n = clen(buf) + 1 + if e != 0 { + err = errnoErr(e) + } + return +} + +func Getwd() (wd string, err error) { + var buf [PathMax]byte + n, err := Getcwd(buf[0:]) + if err != nil { + return "", err + } + // Getcwd returns the number of bytes written to buf, including the NUL. + if n < 1 || n > len(buf) || buf[n-1] != 0 { + return "", EINVAL + } + return string(buf[0 : n-1]), nil +} + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + if err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Sanity check group count. Max is 1<<16 on Linux. + if n < 0 || n > 1<<20 { + return nil, EINVAL + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if err != nil { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +func gettid() uint64 + +func Gettid() (tid int) { + return int(gettid()) +} + +type WaitStatus uint32 + +// Wait status is 7 bits at bottom, either 0 (exited), +// 0x7F (stopped), or a signal number that caused an exit. +// The 0x80 bit is whether there was a core dump. +// An extra number (exit code, signal causing a stop) +// is in the high bits. At least that's the idea. +// There are various irregularities. For example, the +// "continued" status is 0xFFFF, distinguishing itself +// from stopped via the core dump bit. + +const ( + mask = 0x7F + core = 0x80 + exited = 0x00 + stopped = 0x7F + shift = 8 +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } + +func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } + +func (w WaitStatus) Continued() bool { return w == 0xFFFF } + +func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } + +func (w WaitStatus) ExitStatus() int { + if !w.Exited() { + return -1 + } + return int(w>>shift) & 0xFF +} + +func (w WaitStatus) Signal() Signal { + if !w.Signaled() { + return -1 + } + return Signal(w & mask) +} + +func (w WaitStatus) StopSignal() Signal { + if !w.Stopped() { + return -1 + } + return Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + // TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want. + // At the moment rusage will not be touched. + var status _C_int + wpid, err = waitpid(pid, &status, options) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +//sysnb gettimeofday(tv *timeval_zos) (err error) + +func Gettimeofday(tv *Timeval) (err error) { + var tvz timeval_zos + err = gettimeofday(&tvz) + tv.Sec = tvz.Sec + tv.Usec = int64(tvz.Usec) + return +} + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { //fix + return Timeval{Sec: sec, Usec: usec} +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sys utimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A + +func Utimes(path string, tv []Timeval) (err error) { + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func UtimesNano(path string, ts []Timespec) error { + if len(ts) != 2 { + return EINVAL + } + // Not as efficient as it could be because Timespec and + // Timeval have different types in the different OSes + tv := [2]Timeval{ + NsecToTimeval(TimespecToNsec(ts[0])), + NsecToTimeval(TimespecToNsec(ts[1])), + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + // TODO(neeilan) : Remove this 0 ( added to get sys/unix compiling on z/OS ) + return anyToSockaddr(0, &rsa) +} + +const ( + // identifier constants + nwmHeaderIdentifier = 0xd5e6d4c8 + nwmFilterIdentifier = 0xd5e6d4c6 + nwmTCPConnIdentifier = 0xd5e6d4c3 + nwmRecHeaderIdentifier = 0xd5e6d4d9 + nwmIPStatsIdentifier = 0xd5e6d4c9d7e2e340 + nwmIPGStatsIdentifier = 0xd5e6d4c9d7c7e2e3 + nwmTCPStatsIdentifier = 0xd5e6d4e3c3d7e2e3 + nwmUDPStatsIdentifier = 0xd5e6d4e4c4d7e2e3 + nwmICMPGStatsEntry = 0xd5e6d4c9c3d4d7c7 + nwmICMPTStatsEntry = 0xd5e6d4c9c3d4d7e3 + + // nwmHeader constants + nwmVersion1 = 1 + nwmVersion2 = 2 + nwmCurrentVer = 2 + + nwmTCPConnType = 1 + nwmGlobalStatsType = 14 + + // nwmFilter constants + nwmFilterLclAddrMask = 0x20000000 // Local address + nwmFilterSrcAddrMask = 0x20000000 // Source address + nwmFilterLclPortMask = 0x10000000 // Local port + nwmFilterSrcPortMask = 0x10000000 // Source port + + // nwmConnEntry constants + nwmTCPStateClosed = 1 + nwmTCPStateListen = 2 + nwmTCPStateSynSent = 3 + nwmTCPStateSynRcvd = 4 + nwmTCPStateEstab = 5 + nwmTCPStateFinWait1 = 6 + nwmTCPStateFinWait2 = 7 + nwmTCPStateClosWait = 8 + nwmTCPStateLastAck = 9 + nwmTCPStateClosing = 10 + nwmTCPStateTimeWait = 11 + nwmTCPStateDeletTCB = 12 + + // Existing constants on linux + BPF_TCP_CLOSE = 1 + BPF_TCP_LISTEN = 2 + BPF_TCP_SYN_SENT = 3 + BPF_TCP_SYN_RECV = 4 + BPF_TCP_ESTABLISHED = 5 + BPF_TCP_FIN_WAIT1 = 6 + BPF_TCP_FIN_WAIT2 = 7 + BPF_TCP_CLOSE_WAIT = 8 + BPF_TCP_LAST_ACK = 9 + BPF_TCP_CLOSING = 10 + BPF_TCP_TIME_WAIT = 11 + BPF_TCP_NEW_SYN_RECV = -1 + BPF_TCP_MAX_STATES = -2 +) + +type nwmTriplet struct { + offset uint32 + length uint32 + number uint32 +} + +type nwmQuadruplet struct { + offset uint32 + length uint32 + number uint32 + match uint32 +} + +type nwmHeader struct { + ident uint32 + length uint32 + version uint16 + nwmType uint16 + bytesNeeded uint32 + options uint32 + _ [16]byte + inputDesc nwmTriplet + outputDesc nwmQuadruplet +} + +type nwmFilter struct { + ident uint32 + flags uint32 + resourceName [8]byte + resourceId uint32 + listenerId uint32 + local [28]byte // union of sockaddr4 and sockaddr6 + remote [28]byte // union of sockaddr4 and sockaddr6 + _ uint16 + _ uint16 + asid uint16 + _ [2]byte + tnLuName [8]byte + tnMonGrp uint32 + tnAppl [8]byte + applData [40]byte + nInterface [16]byte + dVipa [16]byte + dVipaPfx uint16 + dVipaPort uint16 + dVipaFamily byte + _ [3]byte + destXCF [16]byte + destXCFPfx uint16 + destXCFFamily byte + _ [1]byte + targIP [16]byte + targIPPfx uint16 + targIPFamily byte + _ [1]byte + _ [20]byte +} + +type nwmRecHeader struct { + ident uint32 + length uint32 + number byte + _ [3]byte +} + +type nwmTCPStatsEntry struct { + ident uint64 + currEstab uint32 + activeOpened uint32 + passiveOpened uint32 + connClosed uint32 + estabResets uint32 + attemptFails uint32 + passiveDrops uint32 + timeWaitReused uint32 + inSegs uint64 + predictAck uint32 + predictData uint32 + inDupAck uint32 + inBadSum uint32 + inBadLen uint32 + inShort uint32 + inDiscOldTime uint32 + inAllBeforeWin uint32 + inSomeBeforeWin uint32 + inAllAfterWin uint32 + inSomeAfterWin uint32 + inOutOfOrder uint32 + inAfterClose uint32 + inWinProbes uint32 + inWinUpdates uint32 + outWinUpdates uint32 + outSegs uint64 + outDelayAcks uint32 + outRsts uint32 + retransSegs uint32 + retransTimeouts uint32 + retransDrops uint32 + pmtuRetrans uint32 + pmtuErrors uint32 + outWinProbes uint32 + probeDrops uint32 + keepAliveProbes uint32 + keepAliveDrops uint32 + finwait2Drops uint32 + acceptCount uint64 + inBulkQSegs uint64 + inDiscards uint64 + connFloods uint32 + connStalls uint32 + cfgEphemDef uint16 + ephemInUse uint16 + ephemHiWater uint16 + flags byte + _ [1]byte + ephemExhaust uint32 + smcRCurrEstabLnks uint32 + smcRLnkActTimeOut uint32 + smcRActLnkOpened uint32 + smcRPasLnkOpened uint32 + smcRLnksClosed uint32 + smcRCurrEstab uint32 + smcRActiveOpened uint32 + smcRPassiveOpened uint32 + smcRConnClosed uint32 + smcRInSegs uint64 + smcROutSegs uint64 + smcRInRsts uint32 + smcROutRsts uint32 + smcDCurrEstabLnks uint32 + smcDActLnkOpened uint32 + smcDPasLnkOpened uint32 + smcDLnksClosed uint32 + smcDCurrEstab uint32 + smcDActiveOpened uint32 + smcDPassiveOpened uint32 + smcDConnClosed uint32 + smcDInSegs uint64 + smcDOutSegs uint64 + smcDInRsts uint32 + smcDOutRsts uint32 +} + +type nwmConnEntry struct { + ident uint32 + local [28]byte // union of sockaddr4 and sockaddr6 + remote [28]byte // union of sockaddr4 and sockaddr6 + startTime [8]byte // uint64, changed to prevent padding from being inserted + lastActivity [8]byte // uint64 + bytesIn [8]byte // uint64 + bytesOut [8]byte // uint64 + inSegs [8]byte // uint64 + outSegs [8]byte // uint64 + state uint16 + activeOpen byte + flag01 byte + outBuffered uint32 + inBuffered uint32 + maxSndWnd uint32 + reXmtCount uint32 + congestionWnd uint32 + ssThresh uint32 + roundTripTime uint32 + roundTripVar uint32 + sendMSS uint32 + sndWnd uint32 + rcvBufSize uint32 + sndBufSize uint32 + outOfOrderCount uint32 + lcl0WindowCount uint32 + rmt0WindowCount uint32 + dupacks uint32 + flag02 byte + sockOpt6Cont byte + asid uint16 + resourceName [8]byte + resourceId uint32 + subtask uint32 + sockOpt byte + sockOpt6 byte + clusterConnFlag byte + proto byte + targetAppl [8]byte + luName [8]byte + clientUserId [8]byte + logMode [8]byte + timeStamp uint32 + timeStampAge uint32 + serverResourceId uint32 + intfName [16]byte + ttlsStatPol byte + ttlsStatConn byte + ttlsSSLProt uint16 + ttlsNegCiph [2]byte + ttlsSecType byte + ttlsFIPS140Mode byte + ttlsUserID [8]byte + applData [40]byte + inOldestTime [8]byte // uint64 + outOldestTime [8]byte // uint64 + tcpTrustedPartner byte + _ [3]byte + bulkDataIntfName [16]byte + ttlsNegCiph4 [4]byte + smcReason uint32 + lclSMCLinkId uint32 + rmtSMCLinkId uint32 + smcStatus byte + smcFlags byte + _ [2]byte + rcvWnd uint32 + lclSMCBufSz uint32 + rmtSMCBufSz uint32 + ttlsSessID [32]byte + ttlsSessIDLen int16 + _ [1]byte + smcDStatus byte + smcDReason uint32 +} + +var svcNameTable [][]byte = [][]byte{ + []byte("\xc5\xe9\xc2\xd5\xd4\xc9\xc6\xf4"), // svc_EZBNMIF4 +} + +const ( + svc_EZBNMIF4 = 0 +) + +func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { + jobname := []byte("\x5c\x40\x40\x40\x40\x40\x40\x40") // "*" + responseBuffer := [4096]byte{0} + var bufferAlet, reasonCode uint32 = 0, 0 + var bufferLen, returnValue, returnCode int32 = 4096, 0, 0 + + dsa := [18]uint64{0} + var argv [7]unsafe.Pointer + argv[0] = unsafe.Pointer(&jobname[0]) + argv[1] = unsafe.Pointer(&responseBuffer[0]) + argv[2] = unsafe.Pointer(&bufferAlet) + argv[3] = unsafe.Pointer(&bufferLen) + argv[4] = unsafe.Pointer(&returnValue) + argv[5] = unsafe.Pointer(&returnCode) + argv[6] = unsafe.Pointer(&reasonCode) + + request := (*struct { + header nwmHeader + filter nwmFilter + })(unsafe.Pointer(&responseBuffer[0])) + + EZBNMIF4 := svcLoad(&svcNameTable[svc_EZBNMIF4][0]) + if EZBNMIF4 == nil { + return nil, errnoErr(EINVAL) + } + + // GetGlobalStats EZBNMIF4 call + request.header.ident = nwmHeaderIdentifier + request.header.length = uint32(unsafe.Sizeof(request.header)) + request.header.version = nwmCurrentVer + request.header.nwmType = nwmGlobalStatsType + request.header.options = 0x80000000 + + svcCall(EZBNMIF4, &argv[0], &dsa[0]) + + // outputDesc field is filled by EZBNMIF4 on success + if returnCode != 0 || request.header.outputDesc.offset == 0 { + return nil, errnoErr(EINVAL) + } + + // Check that EZBNMIF4 returned a nwmRecHeader + recHeader := (*nwmRecHeader)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) + if recHeader.ident != nwmRecHeaderIdentifier { + return nil, errnoErr(EINVAL) + } + + // Parse nwmTriplets to get offsets of returned entries + var sections []*uint64 + var sectionDesc *nwmTriplet = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[0])) + for i := uint32(0); i < uint32(recHeader.number); i++ { + offset := request.header.outputDesc.offset + uint32(unsafe.Sizeof(*recHeader)) + i*uint32(unsafe.Sizeof(*sectionDesc)) + sectionDesc = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[offset])) + for j := uint32(0); j < sectionDesc.number; j++ { + offset = request.header.outputDesc.offset + sectionDesc.offset + j*sectionDesc.length + sections = append(sections, (*uint64)(unsafe.Pointer(&responseBuffer[offset]))) + } + } + + // Find nwmTCPStatsEntry in returned entries + var tcpStats *nwmTCPStatsEntry = nil + for _, ptr := range sections { + switch *ptr { + case nwmTCPStatsIdentifier: + if tcpStats != nil { + return nil, errnoErr(EINVAL) + } + tcpStats = (*nwmTCPStatsEntry)(unsafe.Pointer(ptr)) + case nwmIPStatsIdentifier: + case nwmIPGStatsIdentifier: + case nwmUDPStatsIdentifier: + case nwmICMPGStatsEntry: + case nwmICMPTStatsEntry: + default: + return nil, errnoErr(EINVAL) + } + } + if tcpStats == nil { + return nil, errnoErr(EINVAL) + } + + // GetConnectionDetail EZBNMIF4 call + responseBuffer = [4096]byte{0} + dsa = [18]uint64{0} + bufferAlet, reasonCode = 0, 0 + bufferLen, returnValue, returnCode = 4096, 0, 0 + nameptr := (*uint32)(unsafe.Pointer(uintptr(0x21c))) // Get jobname of current process + nameptr = (*uint32)(unsafe.Pointer(uintptr(*nameptr + 12))) + argv[0] = unsafe.Pointer(uintptr(*nameptr)) + + request.header.ident = nwmHeaderIdentifier + request.header.length = uint32(unsafe.Sizeof(request.header)) + request.header.version = nwmCurrentVer + request.header.nwmType = nwmTCPConnType + request.header.options = 0x80000000 + + request.filter.ident = nwmFilterIdentifier + + var localSockaddr RawSockaddrAny + socklen := _Socklen(SizeofSockaddrAny) + err := getsockname(fd, &localSockaddr, &socklen) + if err != nil { + return nil, errnoErr(EINVAL) + } + if localSockaddr.Addr.Family == AF_INET { + localSockaddr := (*RawSockaddrInet4)(unsafe.Pointer(&localSockaddr.Addr)) + localSockFilter := (*RawSockaddrInet4)(unsafe.Pointer(&request.filter.local[0])) + localSockFilter.Family = AF_INET + var i int + for i = 0; i < 4; i++ { + if localSockaddr.Addr[i] != 0 { + break + } + } + if i != 4 { + request.filter.flags |= nwmFilterLclAddrMask + for i = 0; i < 4; i++ { + localSockFilter.Addr[i] = localSockaddr.Addr[i] + } + } + if localSockaddr.Port != 0 { + request.filter.flags |= nwmFilterLclPortMask + localSockFilter.Port = localSockaddr.Port + } + } else if localSockaddr.Addr.Family == AF_INET6 { + localSockaddr := (*RawSockaddrInet6)(unsafe.Pointer(&localSockaddr.Addr)) + localSockFilter := (*RawSockaddrInet6)(unsafe.Pointer(&request.filter.local[0])) + localSockFilter.Family = AF_INET6 + var i int + for i = 0; i < 16; i++ { + if localSockaddr.Addr[i] != 0 { + break + } + } + if i != 16 { + request.filter.flags |= nwmFilterLclAddrMask + for i = 0; i < 16; i++ { + localSockFilter.Addr[i] = localSockaddr.Addr[i] + } + } + if localSockaddr.Port != 0 { + request.filter.flags |= nwmFilterLclPortMask + localSockFilter.Port = localSockaddr.Port + } + } + + svcCall(EZBNMIF4, &argv[0], &dsa[0]) + + // outputDesc field is filled by EZBNMIF4 on success + if returnCode != 0 || request.header.outputDesc.offset == 0 { + return nil, errnoErr(EINVAL) + } + + // Check that EZBNMIF4 returned a nwmConnEntry + conn := (*nwmConnEntry)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) + if conn.ident != nwmTCPConnIdentifier { + return nil, errnoErr(EINVAL) + } + + // Copy data from the returned data structures into tcpInfo + // Stats from nwmConnEntry are specific to that connection. + // Stats from nwmTCPStatsEntry are global (to the interface?) + // Fields may not be an exact match. Some fields have no equivalent. + var tcpinfo TCPInfo + tcpinfo.State = uint8(conn.state) + tcpinfo.Ca_state = 0 // dummy + tcpinfo.Retransmits = uint8(tcpStats.retransSegs) + tcpinfo.Probes = uint8(tcpStats.outWinProbes) + tcpinfo.Backoff = 0 // dummy + tcpinfo.Options = 0 // dummy + tcpinfo.Rto = tcpStats.retransTimeouts + tcpinfo.Ato = tcpStats.outDelayAcks + tcpinfo.Snd_mss = conn.sendMSS + tcpinfo.Rcv_mss = conn.sendMSS // dummy + tcpinfo.Unacked = 0 // dummy + tcpinfo.Sacked = 0 // dummy + tcpinfo.Lost = 0 // dummy + tcpinfo.Retrans = conn.reXmtCount + tcpinfo.Fackets = 0 // dummy + tcpinfo.Last_data_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.lastActivity[0]))) + tcpinfo.Last_ack_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.outOldestTime[0]))) + tcpinfo.Last_data_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) + tcpinfo.Last_ack_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) + tcpinfo.Pmtu = conn.sendMSS // dummy, NWMIfRouteMtu is a candidate + tcpinfo.Rcv_ssthresh = conn.ssThresh + tcpinfo.Rtt = conn.roundTripTime + tcpinfo.Rttvar = conn.roundTripVar + tcpinfo.Snd_ssthresh = conn.ssThresh // dummy + tcpinfo.Snd_cwnd = conn.congestionWnd + tcpinfo.Advmss = conn.sendMSS // dummy + tcpinfo.Reordering = 0 // dummy + tcpinfo.Rcv_rtt = conn.roundTripTime // dummy + tcpinfo.Rcv_space = conn.sendMSS // dummy + tcpinfo.Total_retrans = conn.reXmtCount + + svcUnload(&svcNameTable[svc_EZBNMIF4][0], EZBNMIF4) + + return &tcpinfo, nil +} + +// GetsockoptString returns the string value of the socket option opt for the +// socket associated with fd at the given socket level. +func GetsockoptString(fd, level, opt int) (string, error) { + buf := make([]byte, 256) + vallen := _Socklen(len(buf)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + if err != nil { + return "", err + } + + return string(buf[:vallen-1]), nil +} + +func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + var msg Msghdr + var rsa RawSockaddrAny + msg.Name = (*byte)(unsafe.Pointer(&rsa)) + msg.Namelen = SizeofSockaddrAny + var iov Iovec + if len(p) > 0 { + iov.Base = (*byte)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = recvmsg(fd, &msg, flags); err != nil { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + // source address is only specified if the socket is unconnected + if rsa.Addr.Family != AF_UNSPEC { + // TODO(neeilan): Remove 0 arg added to get this compiling on z/OS + from, err = anyToSockaddr(0, &rsa) + } + return +} + +func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { + _, err = SendmsgN(fd, p, oob, to, flags) + return +} + +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + var err error + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = int32(salen) + var iov Iovec + if len(p) > 0 { + iov.Base = (*byte)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + // send at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && len(p) == 0 { + n = 0 + } + return n, nil +} + +func Opendir(name string) (uintptr, error) { + p, err := BytePtrFromString(name) + if err != nil { + return 0, err + } + dir, _, e := syscall_syscall(SYS___OPENDIR_A, uintptr(unsafe.Pointer(p)), 0, 0) + runtime.KeepAlive(unsafe.Pointer(p)) + if e != 0 { + err = errnoErr(e) + } + return dir, err +} + +// clearsyscall.Errno resets the errno value to 0. +func clearErrno() + +func Readdir(dir uintptr) (*Dirent, error) { + var ent Dirent + var res uintptr + // __readdir_r_a returns errno at the end of the directory stream, rather than 0. + // Therefore to avoid false positives we clear errno before calling it. + + // TODO(neeilan): Commented this out to get sys/unix compiling on z/OS. Uncomment and fix. Error: "undefined: clearsyscall" + //clearsyscall.Errno() // TODO(mundaym): check pre-emption rules. + + e, _, _ := syscall_syscall(SYS___READDIR_R_A, dir, uintptr(unsafe.Pointer(&ent)), uintptr(unsafe.Pointer(&res))) + var err error + if e != 0 { + err = errnoErr(Errno(e)) + } + if res == 0 { + return nil, err + } + return &ent, err +} + +func Closedir(dir uintptr) error { + _, _, e := syscall_syscall(SYS_CLOSEDIR, dir, 0, 0) + if e != 0 { + return errnoErr(e) + } + return nil +} + +func Seekdir(dir uintptr, pos int) { + _, _, _ = syscall_syscall(SYS_SEEKDIR, dir, uintptr(pos), 0) +} + +func Telldir(dir uintptr) (int, error) { + p, _, e := syscall_syscall(SYS_TELLDIR, dir, 0, 0) + pos := int(p) + if pos == -1 { + return pos, errnoErr(e) + } + return pos, nil +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + // struct flock is packed on z/OS. We can't emulate that in Go so + // instead we pack it here. + var flock [24]byte + *(*int16)(unsafe.Pointer(&flock[0])) = lk.Type + *(*int16)(unsafe.Pointer(&flock[2])) = lk.Whence + *(*int64)(unsafe.Pointer(&flock[4])) = lk.Start + *(*int64)(unsafe.Pointer(&flock[12])) = lk.Len + *(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid + _, _, errno := syscall_syscall(SYS_FCNTL, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) + lk.Type = *(*int16)(unsafe.Pointer(&flock[0])) + lk.Whence = *(*int16)(unsafe.Pointer(&flock[2])) + lk.Start = *(*int64)(unsafe.Pointer(&flock[4])) + lk.Len = *(*int64)(unsafe.Pointer(&flock[12])) + lk.Pid = *(*int32)(unsafe.Pointer(&flock[20])) + if errno == 0 { + return nil + } + return errno +} + +func Flock(fd int, how int) error { + + var flock_type int16 + var fcntl_cmd int + + switch how { + case LOCK_SH | LOCK_NB: + flock_type = F_RDLCK + fcntl_cmd = F_SETLK + case LOCK_EX | LOCK_NB: + flock_type = F_WRLCK + fcntl_cmd = F_SETLK + case LOCK_EX: + flock_type = F_WRLCK + fcntl_cmd = F_SETLKW + case LOCK_UN: + flock_type = F_UNLCK + fcntl_cmd = F_SETLKW + default: + } + + flock := Flock_t{ + Type: int16(flock_type), + Whence: int16(0), + Start: int64(0), + Len: int64(0), + Pid: int32(Getppid()), + } + + err := FcntlFlock(uintptr(fd), fcntl_cmd, &flock) + return err +} + +func Mlock(b []byte) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Mlock2(b []byte, flags int) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Munlock(b []byte) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ClockGettime(clockid int32, ts *Timespec) error { + + var ticks_per_sec uint32 = 100 //TODO(kenan): value is currently hardcoded; need sysconf() call otherwise + var nsec_per_sec int64 = 1000000000 + + if ts == nil { + return EFAULT + } + if clockid == CLOCK_REALTIME || clockid == CLOCK_MONOTONIC { + var nanotime int64 = runtime.Nanotime1() + ts.Sec = nanotime / nsec_per_sec + ts.Nsec = nanotime % nsec_per_sec + } else if clockid == CLOCK_PROCESS_CPUTIME_ID || clockid == CLOCK_THREAD_CPUTIME_ID { + var tm Tms + _, err := Times(&tm) + if err != nil { + return EFAULT + } + ts.Sec = int64(tm.Utime / ticks_per_sec) + ts.Nsec = int64(tm.Utime) * nsec_per_sec / int64(ticks_per_sec) + } else { + return EINVAL + } + return nil +} + +func Statfs(path string, stat *Statfs_t) (err error) { + fd, err := open(path, O_RDONLY, 0) + defer Close(fd) + if err != nil { + return err + } + return Fstatfs(fd, stat) +} + +var ( + Stdin = 0 + Stdout = 1 + Stderr = 2 +) + +// Do the interface allocations only once for common +// Errno values. +var ( + errEAGAIN error = syscall.EAGAIN + errEINVAL error = syscall.EINVAL + errENOENT error = syscall.ENOENT +) + +var ( + signalNameMapOnce sync.Once + signalNameMap map[string]syscall.Signal +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e Errno) error { + switch e { + case 0: + return nil + case EAGAIN: + return errEAGAIN + case EINVAL: + return errEINVAL + case ENOENT: + return errENOENT + } + return e +} + +// ErrnoName returns the error name for error number e. +func ErrnoName(e Errno) string { + i := sort.Search(len(errorList), func(i int) bool { + return errorList[i].num >= e + }) + if i < len(errorList) && errorList[i].num == e { + return errorList[i].name + } + return "" +} + +// SignalName returns the signal name for signal number s. +func SignalName(s syscall.Signal) string { + i := sort.Search(len(signalList), func(i int) bool { + return signalList[i].num >= s + }) + if i < len(signalList) && signalList[i].num == s { + return signalList[i].name + } + return "" +} + +// SignalNum returns the syscall.Signal for signal named s, +// or 0 if a signal with such name is not found. +// The signal name should start with "SIG". +func SignalNum(s string) syscall.Signal { + signalNameMapOnce.Do(func() { + signalNameMap = make(map[string]syscall.Signal, len(signalList)) + for _, signal := range signalList { + signalNameMap[signal.name] = signal.num + } + }) + return signalNameMap[s] +} + +// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. +func clen(n []byte) int { + i := bytes.IndexByte(n, 0) + if i == -1 { + i = len(n) + } + return i +} + +// Mmap manager, for use by operating system-specific implementations. + +type mmapper struct { + sync.Mutex + active map[*byte][]byte // active mappings; key is last byte in mapping + mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) + munmap func(addr uintptr, length uintptr) error +} + +func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + if length <= 0 { + return nil, EINVAL + } + + // Map the requested memory. + addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) + if errno != nil { + return nil, errno + } + + // Slice memory layout + var sl = struct { + addr uintptr + len int + cap int + }{addr, length, length} + + // Use unsafe to turn sl into a []byte. + b := *(*[]byte)(unsafe.Pointer(&sl)) + + // Register mapping in m and return it. + p := &b[cap(b)-1] + m.Lock() + defer m.Unlock() + m.active[p] = b + return b, nil +} + +func (m *mmapper) Munmap(data []byte) (err error) { + if len(data) == 0 || len(data) != cap(data) { + return EINVAL + } + + // Find the base of the mapping. + p := &data[cap(data)-1] + m.Lock() + defer m.Unlock() + b := m.active[p] + if b == nil || &b[0] != &data[0] { + return EINVAL + } + + // Unmap the memory and update m. + if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { + return errno + } + delete(m.active, p) + return nil +} + +func Read(fd int, p []byte) (n int, err error) { + n, err = read(fd, p) + if raceenabled { + if n > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), n) + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } + } + return +} + +func Write(fd int, p []byte) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = write(fd, p) + if raceenabled && n > 0 { + raceReadRange(unsafe.Pointer(&p[0]), n) + } + return +} + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +// Sockaddr represents a socket address. +type Sockaddr interface { + sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs +} + +// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. +type SockaddrInet4 struct { + Port int + Addr [4]byte + raw RawSockaddrInet4 +} + +// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. +type SockaddrInet6 struct { + Port int + ZoneId uint32 + Addr [16]byte + raw RawSockaddrInet6 +} + +// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. +type SockaddrUnix struct { + Name string + raw RawSockaddrUnix +} + +func Bind(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return bind(fd, ptr, n) +} + +func Connect(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connect(fd, ptr, n) +} + +func Getpeername(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getpeername(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +func GetsockoptByte(fd, level, opt int) (value byte, err error) { + var n byte + vallen := _Socklen(1) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func GetsockoptInt(fd, level, opt int) (value int, err error) { + var n int32 + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return int(n), err +} + +func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) + return value, err +} + +func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { + var value IPMreq + vallen := _Socklen(SizeofIPMreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { + var value IPv6Mreq + vallen := _Socklen(SizeofIPv6Mreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { + var value IPv6MTUInfo + vallen := _Socklen(SizeofIPv6MTUInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { + var value ICMPv6Filter + vallen := _Socklen(SizeofICMPv6Filter) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptLinger(fd, level, opt int) (*Linger, error) { + var linger Linger + vallen := _Socklen(SizeofLinger) + err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) + return &linger, err +} + +func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { + var tv Timeval + vallen := _Socklen(unsafe.Sizeof(tv)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) + return &tv, err +} + +func GetsockoptUint64(fd, level, opt int) (value uint64, err error) { + var n uint64 + vallen := _Socklen(8) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { + return + } + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { + ptr, n, err := to.sockaddr() + if err != nil { + return err + } + return sendto(fd, p, flags, ptr, n) +} + +func SetsockoptByte(fd, level, opt int, value byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) +} + +func SetsockoptInt(fd, level, opt int, value int) (err error) { + var n = int32(value) + return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) +} + +func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) +} + +func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) +} + +func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) +} + +func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { + return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) +} + +func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) +} + +func SetsockoptString(fd, level, opt int, s string) (err error) { + var p unsafe.Pointer + if len(s) > 0 { + p = unsafe.Pointer(&[]byte(s)[0]) + } + return setsockopt(fd, level, opt, p, uintptr(len(s))) +} + +func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) +} + +func SetsockoptUint64(fd, level, opt int, value uint64) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8) +} + +func Socket(domain, typ, proto int) (fd int, err error) { + if domain == AF_INET6 && SocketDisableIPv6 { + return -1, EAFNOSUPPORT + } + fd, err = socket(domain, typ, proto) + return +} + +func Socketpair(domain, typ, proto int) (fd [2]int, err error) { + var fdx [2]int32 + err = socketpair(domain, typ, proto, &fdx) + if err == nil { + fd[0] = int(fdx[0]) + fd[1] = int(fdx[1]) + } + return +} + +var ioSync int64 + +func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } + +func SetNonblock(fd int, nonblocking bool) (err error) { + flag, err := fcntl(fd, F_GETFL, 0) + if err != nil { + return err + } + if nonblocking { + flag |= O_NONBLOCK + } else { + flag &= ^O_NONBLOCK + } + _, err = fcntl(fd, F_SETFL, flag) + return err +} + +// Exec calls execve(2), which replaces the calling executable in the process +// tree. argv0 should be the full path to an executable ("/bin/ls") and the +// executable name should also be the first argument in argv (["ls", "-l"]). +// envv are the environment variables that should be passed to the new +// process (["USER=go", "PWD=/tmp"]). +func Exec(argv0 string, argv []string, envv []string) error { + return syscall.Exec(argv0, argv, envv) +} diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go index 4a672f569..3d8930405 100644 --- a/vendor/golang.org/x/sys/unix/timestruct.go +++ b/vendor/golang.org/x/sys/unix/timestruct.go @@ -2,18 +2,17 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos package unix import "time" -// TimespecToNsec converts a Timespec value into a number of -// nanoseconds since the Unix epoch. -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } +// TimespecToNSec returns the time stored in ts as nanoseconds. +func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } -// NsecToTimespec takes a number of nanoseconds since the Unix epoch -// and returns the corresponding Timespec value. +// NsecToTimespec converts a number of nanoseconds into a Timespec. func NsecToTimespec(nsec int64) Timespec { sec := nsec / 1e9 nsec = nsec % 1e9 @@ -42,12 +41,10 @@ func TimeToTimespec(t time.Time) (Timespec, error) { return ts, nil } -// TimevalToNsec converts a Timeval value into a number of nanoseconds -// since the Unix epoch. -func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } +// TimevalToNsec returns the time stored in tv as nanoseconds. +func TimevalToNsec(tv Timeval) int64 { return tv.Nano() } -// NsecToTimeval takes a number of nanoseconds since the Unix epoch -// and returns the corresponding Timeval value. +// NsecToTimeval converts a number of nanoseconds into a Timeval. func NsecToTimeval(nsec int64) Timeval { nsec += 999 // round up to microsecond usec := nsec % 1e9 / 1e3 @@ -59,24 +56,22 @@ func NsecToTimeval(nsec int64) Timeval { return setTimeval(sec, usec) } -// Unix returns ts as the number of seconds and nanoseconds elapsed since the -// Unix epoch. +// Unix returns the time stored in ts as seconds plus nanoseconds. func (ts *Timespec) Unix() (sec int64, nsec int64) { return int64(ts.Sec), int64(ts.Nsec) } -// Unix returns tv as the number of seconds and nanoseconds elapsed since the -// Unix epoch. +// Unix returns the time stored in tv as seconds plus nanoseconds. func (tv *Timeval) Unix() (sec int64, nsec int64) { return int64(tv.Sec), int64(tv.Usec) * 1000 } -// Nano returns ts as the number of nanoseconds elapsed since the Unix epoch. +// Nano returns the time stored in ts as nanoseconds. func (ts *Timespec) Nano() int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } -// Nano returns tv as the number of nanoseconds elapsed since the Unix epoch. +// Nano returns the time stored in tv as nanoseconds. func (tv *Timeval) Nano() int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 } diff --git a/vendor/golang.org/x/sys/unix/openbsd_unveil.go b/vendor/golang.org/x/sys/unix/unveil_openbsd.go similarity index 98% rename from vendor/golang.org/x/sys/unix/openbsd_unveil.go rename to vendor/golang.org/x/sys/unix/unveil_openbsd.go index aebc2dc57..168d5ae77 100644 --- a/vendor/golang.org/x/sys/unix/openbsd_unveil.go +++ b/vendor/golang.org/x/sys/unix/unveil_openbsd.go @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build openbsd - package unix import ( diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go index 30c1d71f4..25df1e378 100644 --- a/vendor/golang.org/x/sys/unix/xattr_bsd.go +++ b/vendor/golang.org/x/sys/unix/xattr_bsd.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. +//go:build freebsd || netbsd // +build freebsd netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go index 4b7b96502..ca9799b79 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go @@ -1,6 +1,7 @@ // mkerrors.sh -maix32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc && aix // +build ppc,aix // Created by cgo -godefs - DO NOT EDIT @@ -459,6 +460,15 @@ const ( MAP_SHARED = 0x1 MAP_TYPE = 0xf0 MAP_VARIABLE = 0x0 + MCAST_BLOCK_SOURCE = 0x40 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x3e + MCAST_JOIN_SOURCE_GROUP = 0x42 + MCAST_LEAVE_GROUP = 0x3f + MCAST_LEAVE_SOURCE_GROUP = 0x43 + MCAST_SOURCE_FILTER = 0x49 + MCAST_UNBLOCK_SOURCE = 0x41 MCL_CURRENT = 0x100 MCL_FUTURE = 0x200 MSG_ANY = 0x4 @@ -483,6 +493,7 @@ const ( MS_INVALIDATE = 0x40 MS_PER_SEC = 0x3e8 MS_SYNC = 0x20 + NFDBITS = 0x20 NL0 = 0x0 NL1 = 0x4000 NL2 = 0x8000 @@ -688,7 +699,7 @@ const ( SIOCGHIWAT = 0x40047301 SIOCGIFADDR = -0x3fd796df SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fd79693 + SIOCGIFBAUDRATE = -0x3fdf9669 SIOCGIFBRDADDR = -0x3fd796dd SIOCGIFCONF = -0x3ff796bb SIOCGIFCONFGLOB = -0x3ff79670 @@ -926,6 +937,8 @@ const ( TCSETSF = 0x5404 TCSETSW = 0x5403 TCXONC = 0x540b + TIMER_ABSTIME = 0x3e7 + TIMER_MAX = 0x20 TIOC = 0x5400 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go index ed04fd1b7..200c8c26f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go @@ -1,9 +1,10 @@ // mkerrors.sh -maix64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && aix // +build ppc64,aix -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -maix64 _const.go package unix @@ -459,6 +460,15 @@ const ( MAP_SHARED = 0x1 MAP_TYPE = 0xf0 MAP_VARIABLE = 0x0 + MCAST_BLOCK_SOURCE = 0x40 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x3e + MCAST_JOIN_SOURCE_GROUP = 0x42 + MCAST_LEAVE_GROUP = 0x3f + MCAST_LEAVE_SOURCE_GROUP = 0x43 + MCAST_SOURCE_FILTER = 0x49 + MCAST_UNBLOCK_SOURCE = 0x41 MCL_CURRENT = 0x100 MCL_FUTURE = 0x200 MSG_ANY = 0x4 @@ -483,6 +493,7 @@ const ( MS_INVALIDATE = 0x40 MS_PER_SEC = 0x3e8 MS_SYNC = 0x20 + NFDBITS = 0x40 NL0 = 0x0 NL1 = 0x4000 NL2 = 0x8000 @@ -688,7 +699,7 @@ const ( SIOCGHIWAT = 0x40047301 SIOCGIFADDR = -0x3fd796df SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fd79693 + SIOCGIFBAUDRATE = -0x3fdf9669 SIOCGIFBRDADDR = -0x3fd796dd SIOCGIFCONF = -0x3fef96bb SIOCGIFCONFGLOB = -0x3fef9670 @@ -926,6 +937,8 @@ const ( TCSETSF = 0x5404 TCSETSW = 0x5403 TCXONC = 0x540b + TIMER_ABSTIME = 0x3e7 + TIMER_MAX = 0x20 TIOC = 0x5400 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go index 3b39d7408..7ee196f7f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go @@ -1,9 +1,10 @@ // mkerrors.sh -m32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && darwin // +build 386,darwin -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m32 _const.go package unix @@ -45,6 +46,7 @@ const ( AF_SIP = 0x18 AF_SNA = 0xb AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 AF_UNIX = 0x1 AF_UNSPEC = 0x0 AF_UTUN = 0x26 @@ -232,6 +234,8 @@ const ( CLOCK_THREAD_CPUTIME_ID = 0x10 CLOCK_UPTIME_RAW = 0x8 CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 CR0 = 0x0 CR1 = 0x1000 CR2 = 0x2000 @@ -249,6 +253,7 @@ const ( CSTOP = 0x13 CSTOPB = 0x400 CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 CTL_HW = 0x6 CTL_KERN = 0x1 CTL_MAXNAME = 0xc @@ -980,6 +985,7 @@ const ( NET_RT_MAXID = 0xa NET_RT_STAT = 0x4 NET_RT_TRASH = 0x5 + NFDBITS = 0x20 NL0 = 0x0 NL1 = 0x100 NL2 = 0x200 diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go index 8fe554777..991996b60 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go @@ -1,9 +1,10 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && darwin // +build amd64,darwin -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m64 _const.go package unix @@ -32,7 +33,7 @@ const ( AF_LAT = 0xe AF_LINK = 0x12 AF_LOCAL = 0x1 - AF_MAX = 0x28 + AF_MAX = 0x29 AF_NATM = 0x1f AF_NDRV = 0x1b AF_NETBIOS = 0x21 @@ -45,9 +46,11 @@ const ( AF_SIP = 0x18 AF_SNA = 0xb AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 AF_UNIX = 0x1 AF_UNSPEC = 0x0 AF_UTUN = 0x26 + AF_VSOCK = 0x28 ALTWERASE = 0x200 ATTR_BIT_MAP_COUNT = 0x5 ATTR_CMN_ACCESSMASK = 0x20000 @@ -82,7 +85,7 @@ const ( ATTR_CMN_PAROBJID = 0x80 ATTR_CMN_RETURNED_ATTRS = 0x80000000 ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x41c7ff00 + ATTR_CMN_SETMASK = 0x51c7ff00 ATTR_CMN_USERACCESS = 0x200000 ATTR_CMN_UUID = 0x800000 ATTR_CMN_VALIDMASK = 0xffffffff @@ -232,6 +235,8 @@ const ( CLOCK_THREAD_CPUTIME_ID = 0x10 CLOCK_UPTIME_RAW = 0x8 CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 CR0 = 0x0 CR1 = 0x1000 CR2 = 0x2000 @@ -249,6 +254,7 @@ const ( CSTOP = 0x13 CSTOPB = 0x400 CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 CTL_HW = 0x6 CTL_KERN = 0x1 CTL_MAXNAME = 0xc @@ -353,7 +359,7 @@ const ( DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 + DLT_MATCHING_MAX = 0x10a DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -394,6 +400,7 @@ const ( DLT_SYMANTEC_FIREWALL = 0x63 DLT_TZSP = 0x80 DLT_USB = 0xba + DLT_USB_DARWIN = 0x10a DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -438,8 +445,8 @@ const ( EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf + EVFILT_SYSCOUNT = 0x11 + EVFILT_THREADMARKER = 0x11 EVFILT_TIMER = -0x7 EVFILT_USER = -0xa EVFILT_VM = -0xc @@ -477,9 +484,12 @@ const ( FSOPT_NOINMEMUPDATE = 0x2 FSOPT_PACK_INVAL_ATTRS = 0x8 FSOPT_REPORT_FULLSIZE = 0x4 + FSOPT_RETURN_REALDEV = 0x200 F_ADDFILESIGS = 0x3d F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_INFO = 0x67 F_ADDFILESIGS_RETURN = 0x61 + F_ADDFILESUPPL = 0x68 F_ADDSIGS = 0x3b F_ALLOCATEALL = 0x4 F_ALLOCATECONTIG = 0x2 @@ -501,8 +511,10 @@ const ( F_GETOWN = 0x5 F_GETPATH = 0x32 F_GETPATH_MTMINFO = 0x47 + F_GETPATH_NOFIRMLINK = 0x66 F_GETPROTECTIONCLASS = 0x3f F_GETPROTECTIONLEVEL = 0x4d + F_GETSIGSINFO = 0x69 F_GLOBAL_NOCACHE = 0x37 F_LOG2PHYS = 0x31 F_LOG2PHYS_EXT = 0x41 @@ -527,6 +539,7 @@ const ( F_SETPROTECTIONCLASS = 0x40 F_SETSIZE = 0x2b F_SINGLE_WRITER = 0x4c + F_SPECULATIVE_READ = 0x65 F_THAW_FS = 0x36 F_TRANSCODEKEY = 0x4b F_TRIM_ACTIVE_FILE = 0x64 @@ -558,6 +571,7 @@ const ( IFF_UP = 0x1 IFNAMSIZ = 0x10 IFT_1822 = 0x2 + IFT_6LOWPAN = 0x40 IFT_AAL5 = 0x31 IFT_ARCNET = 0x23 IFT_ARCNETPLUS = 0x24 @@ -762,16 +776,28 @@ const ( IPV6_2292PKTINFO = 0x13 IPV6_2292PKTOPTIONS = 0x19 IPV6_2292RTHDR = 0x18 + IPV6_3542DSTOPTS = 0x32 + IPV6_3542HOPLIMIT = 0x2f + IPV6_3542HOPOPTS = 0x31 + IPV6_3542NEXTHOP = 0x30 + IPV6_3542PKTINFO = 0x2e + IPV6_3542RTHDR = 0x33 + IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 + IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 + IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 + IPV6_AUTOFLOWLABEL = 0x3b IPV6_BINDV6ONLY = 0x1b IPV6_BOUND_IF = 0x7d IPV6_CHECKSUM = 0x1a IPV6_DEFAULT_MULTICAST_HOPS = 0x1 IPV6_DEFAULT_MULTICAST_LOOP = 0x1 IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 IPV6_FAITH = 0x1d IPV6_FLOWINFO_MASK = 0xffffff0f IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x300 + IPV6_FLOW_ECN_MASK = 0x3000 IPV6_FRAGTTL = 0x3c IPV6_FW_ADD = 0x1e IPV6_FW_DEL = 0x1f @@ -779,6 +805,8 @@ const ( IPV6_FW_GET = 0x22 IPV6_FW_ZERO = 0x21 IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 IPV6_IPSEC_POLICY = 0x1c IPV6_JOIN_GROUP = 0xc IPV6_LEAVE_GROUP = 0xd @@ -790,20 +818,34 @@ const ( IPV6_MAX_SOCK_SRC_FILTER = 0x80 IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe IPV6_PORTRANGE_DEFAULT = 0x0 IPV6_PORTRANGE_HIGH = 0x1 IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x3d + IPV6_RECVRTHDR = 0x26 IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x39 IPV6_RTHDR_LOOSE = 0x0 IPV6_RTHDR_STRICT = 0x1 IPV6_RTHDR_TYPE_0 = 0x0 IPV6_SOCKOPT_RESERVED1 = 0x3 IPV6_TCLASS = 0x24 IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a IPV6_V6ONLY = 0x1b IPV6_VERSION = 0x60 IPV6_VERSION_MASK = 0xf0 @@ -814,6 +856,7 @@ const ( IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DF = 0x4000 + IP_DONTFRAG = 0x1c IP_DROP_MEMBERSHIP = 0xd IP_DROP_SOURCE_MEMBERSHIP = 0x47 IP_DUMMYNET_CONFIGURE = 0x3c @@ -885,6 +928,12 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_PEERCRED = 0x1 + LOCAL_PEEREPID = 0x3 + LOCAL_PEEREUUID = 0x5 + LOCAL_PEERPID = 0x2 + LOCAL_PEERTOKEN = 0x6 + LOCAL_PEERUUID = 0x4 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -900,6 +949,7 @@ const ( MADV_SEQUENTIAL = 0x2 MADV_WILLNEED = 0x3 MADV_ZERO_WIRED_PAGES = 0x6 + MAP_32BIT = 0x8000 MAP_ANON = 0x1000 MAP_ANONYMOUS = 0x1000 MAP_COPY = 0x2 @@ -916,6 +966,17 @@ const ( MAP_RESILIENT_CODESIGN = 0x2000 MAP_RESILIENT_MEDIA = 0x4000 MAP_SHARED = 0x1 + MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 + MAP_UNIX03 = 0x40000 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ASYNC = 0x40 @@ -927,6 +988,7 @@ const ( MNT_DOVOLFS = 0x8000 MNT_DWAIT = 0x4 MNT_EXPORTED = 0x100 + MNT_EXT_ROOT_DATA_VOL = 0x1 MNT_FORCE = 0x80000 MNT_IGNORE_OWNERSHIP = 0x200000 MNT_JOURNALED = 0x800000 @@ -943,12 +1005,15 @@ const ( MNT_QUOTA = 0x2000 MNT_RDONLY = 0x1 MNT_RELOAD = 0x40000 + MNT_REMOVABLE = 0x200 MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x40000000 + MNT_STRICTATIME = 0x80000000 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 MNT_UNKNOWNPERMISSIONS = 0x200000 MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff + MNT_VISFLAGMASK = 0xd7f0f7ff MNT_WAIT = 0x1 MSG_CTRUNC = 0x20 MSG_DONTROUTE = 0x4 @@ -959,6 +1024,7 @@ const ( MSG_HAVEMORE = 0x2000 MSG_HOLD = 0x800 MSG_NEEDSA = 0x10000 + MSG_NOSIGNAL = 0x80000 MSG_OOB = 0x1 MSG_PEEK = 0x2 MSG_RCVMORE = 0x4000 @@ -975,11 +1041,13 @@ const ( NET_RT_DUMP = 0x1 NET_RT_DUMP2 = 0x7 NET_RT_FLAGS = 0x2 + NET_RT_FLAGS_PRIV = 0xa NET_RT_IFLIST = 0x3 NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa + NET_RT_MAXID = 0xb NET_RT_STAT = 0x4 NET_RT_TRASH = 0x5 + NFDBITS = 0x20 NL0 = 0x0 NL1 = 0x100 NL2 = 0x200 @@ -1014,6 +1082,7 @@ const ( NOTE_LEEWAY = 0x10 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_MACHTIME = 0x100 NOTE_MACH_CONTINUOUS_TIME = 0x80 NOTE_NONE = 0x80 NOTE_NSECONDS = 0x4 @@ -1060,6 +1129,7 @@ const ( O_NDELAY = 0x4 O_NOCTTY = 0x20000 O_NOFOLLOW = 0x100 + O_NOFOLLOW_ANY = 0x20000000 O_NONBLOCK = 0x4 O_POPUP = 0x80000000 O_RDONLY = 0x0 @@ -1131,6 +1201,7 @@ const ( RTF_BROADCAST = 0x400000 RTF_CLONING = 0x100 RTF_CONDEMNED = 0x2000000 + RTF_DEAD = 0x20000000 RTF_DELCLONE = 0x80 RTF_DONE = 0x40 RTF_DYNAMIC = 0x10 @@ -1138,6 +1209,7 @@ const ( RTF_HOST = 0x4 RTF_IFREF = 0x4000000 RTF_IFSCOPE = 0x1000000 + RTF_LLDATA = 0x400 RTF_LLINFO = 0x400 RTF_LOCAL = 0x200000 RTF_MODIFIED = 0x20 @@ -1205,6 +1277,7 @@ const ( SIOCGDRVSPEC = 0xc028697b SIOCGETVLAN = 0xc020697f SIOCGHIWAT = 0x40047301 + SIOCGIF6LOWPAN = 0xc02069c5 SIOCGIFADDR = 0xc0206921 SIOCGIFALTMTU = 0xc0206948 SIOCGIFASYNCMAP = 0xc020697c @@ -1215,6 +1288,7 @@ const ( SIOCGIFDEVMTU = 0xc0206944 SIOCGIFDSTADDR = 0xc0206922 SIOCGIFFLAGS = 0xc0206911 + SIOCGIFFUNCTIONALTYPE = 0xc02069ad SIOCGIFGENERIC = 0xc020693a SIOCGIFKPI = 0xc0206987 SIOCGIFMAC = 0xc0206982 @@ -1228,6 +1302,7 @@ const ( SIOCGIFSTATUS = 0xc331693d SIOCGIFVLAN = 0xc020697f SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGIFXMEDIA = 0xc02c6948 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCIFCREATE = 0xc0206978 @@ -1238,6 +1313,7 @@ const ( SIOCSDRVSPEC = 0x8028697b SIOCSETVLAN = 0x8020697e SIOCSHIWAT = 0x80047300 + SIOCSIF6LOWPAN = 0x802069c4 SIOCSIFADDR = 0x8020690c SIOCSIFALTMTU = 0x80206945 SIOCSIFASYNCMAP = 0x8020697d @@ -1265,6 +1341,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go index 7a977770d..e748cb110 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go @@ -1,9 +1,10 @@ // mkerrors.sh // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && darwin // +build arm,darwin -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- _const.go package unix @@ -45,6 +46,7 @@ const ( AF_SIP = 0x18 AF_SNA = 0xb AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 AF_UNIX = 0x1 AF_UNSPEC = 0x0 AF_UTUN = 0x26 @@ -232,6 +234,8 @@ const ( CLOCK_THREAD_CPUTIME_ID = 0x10 CLOCK_UPTIME_RAW = 0x8 CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 CR0 = 0x0 CR1 = 0x1000 CR2 = 0x2000 @@ -249,6 +253,7 @@ const ( CSTOP = 0x13 CSTOPB = 0x400 CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 CTL_HW = 0x6 CTL_KERN = 0x1 CTL_MAXNAME = 0xc @@ -980,6 +985,7 @@ const ( NET_RT_MAXID = 0xa NET_RT_STAT = 0x4 NET_RT_TRASH = 0x5 + NFDBITS = 0x20 NL0 = 0x0 NL1 = 0x100 NL2 = 0x200 diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go index 6d56d8a05..e644eaf5e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go @@ -1,9 +1,10 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && darwin // +build arm64,darwin -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m64 _const.go package unix @@ -32,7 +33,7 @@ const ( AF_LAT = 0xe AF_LINK = 0x12 AF_LOCAL = 0x1 - AF_MAX = 0x28 + AF_MAX = 0x29 AF_NATM = 0x1f AF_NDRV = 0x1b AF_NETBIOS = 0x21 @@ -45,9 +46,11 @@ const ( AF_SIP = 0x18 AF_SNA = 0xb AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 AF_UNIX = 0x1 AF_UNSPEC = 0x0 AF_UTUN = 0x26 + AF_VSOCK = 0x28 ALTWERASE = 0x200 ATTR_BIT_MAP_COUNT = 0x5 ATTR_CMN_ACCESSMASK = 0x20000 @@ -82,7 +85,7 @@ const ( ATTR_CMN_PAROBJID = 0x80 ATTR_CMN_RETURNED_ATTRS = 0x80000000 ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x41c7ff00 + ATTR_CMN_SETMASK = 0x51c7ff00 ATTR_CMN_USERACCESS = 0x200000 ATTR_CMN_UUID = 0x800000 ATTR_CMN_VALIDMASK = 0xffffffff @@ -232,6 +235,8 @@ const ( CLOCK_THREAD_CPUTIME_ID = 0x10 CLOCK_UPTIME_RAW = 0x8 CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 CR0 = 0x0 CR1 = 0x1000 CR2 = 0x2000 @@ -249,6 +254,7 @@ const ( CSTOP = 0x13 CSTOPB = 0x400 CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 CTL_HW = 0x6 CTL_KERN = 0x1 CTL_MAXNAME = 0xc @@ -353,7 +359,7 @@ const ( DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 + DLT_MATCHING_MAX = 0x10a DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -394,6 +400,7 @@ const ( DLT_SYMANTEC_FIREWALL = 0x63 DLT_TZSP = 0x80 DLT_USB = 0xba + DLT_USB_DARWIN = 0x10a DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -438,8 +445,8 @@ const ( EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf + EVFILT_SYSCOUNT = 0x11 + EVFILT_THREADMARKER = 0x11 EVFILT_TIMER = -0x7 EVFILT_USER = -0xa EVFILT_VM = -0xc @@ -477,9 +484,12 @@ const ( FSOPT_NOINMEMUPDATE = 0x2 FSOPT_PACK_INVAL_ATTRS = 0x8 FSOPT_REPORT_FULLSIZE = 0x4 + FSOPT_RETURN_REALDEV = 0x200 F_ADDFILESIGS = 0x3d F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_INFO = 0x67 F_ADDFILESIGS_RETURN = 0x61 + F_ADDFILESUPPL = 0x68 F_ADDSIGS = 0x3b F_ALLOCATEALL = 0x4 F_ALLOCATECONTIG = 0x2 @@ -501,8 +511,10 @@ const ( F_GETOWN = 0x5 F_GETPATH = 0x32 F_GETPATH_MTMINFO = 0x47 + F_GETPATH_NOFIRMLINK = 0x66 F_GETPROTECTIONCLASS = 0x3f F_GETPROTECTIONLEVEL = 0x4d + F_GETSIGSINFO = 0x69 F_GLOBAL_NOCACHE = 0x37 F_LOG2PHYS = 0x31 F_LOG2PHYS_EXT = 0x41 @@ -527,6 +539,7 @@ const ( F_SETPROTECTIONCLASS = 0x40 F_SETSIZE = 0x2b F_SINGLE_WRITER = 0x4c + F_SPECULATIVE_READ = 0x65 F_THAW_FS = 0x36 F_TRANSCODEKEY = 0x4b F_TRIM_ACTIVE_FILE = 0x64 @@ -558,6 +571,7 @@ const ( IFF_UP = 0x1 IFNAMSIZ = 0x10 IFT_1822 = 0x2 + IFT_6LOWPAN = 0x40 IFT_AAL5 = 0x31 IFT_ARCNET = 0x23 IFT_ARCNETPLUS = 0x24 @@ -762,16 +776,28 @@ const ( IPV6_2292PKTINFO = 0x13 IPV6_2292PKTOPTIONS = 0x19 IPV6_2292RTHDR = 0x18 + IPV6_3542DSTOPTS = 0x32 + IPV6_3542HOPLIMIT = 0x2f + IPV6_3542HOPOPTS = 0x31 + IPV6_3542NEXTHOP = 0x30 + IPV6_3542PKTINFO = 0x2e + IPV6_3542RTHDR = 0x33 + IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 + IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 + IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 + IPV6_AUTOFLOWLABEL = 0x3b IPV6_BINDV6ONLY = 0x1b IPV6_BOUND_IF = 0x7d IPV6_CHECKSUM = 0x1a IPV6_DEFAULT_MULTICAST_HOPS = 0x1 IPV6_DEFAULT_MULTICAST_LOOP = 0x1 IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 IPV6_FAITH = 0x1d IPV6_FLOWINFO_MASK = 0xffffff0f IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x300 + IPV6_FLOW_ECN_MASK = 0x3000 IPV6_FRAGTTL = 0x3c IPV6_FW_ADD = 0x1e IPV6_FW_DEL = 0x1f @@ -779,6 +805,8 @@ const ( IPV6_FW_GET = 0x22 IPV6_FW_ZERO = 0x21 IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 IPV6_IPSEC_POLICY = 0x1c IPV6_JOIN_GROUP = 0xc IPV6_LEAVE_GROUP = 0xd @@ -790,20 +818,34 @@ const ( IPV6_MAX_SOCK_SRC_FILTER = 0x80 IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe IPV6_PORTRANGE_DEFAULT = 0x0 IPV6_PORTRANGE_HIGH = 0x1 IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x3d + IPV6_RECVRTHDR = 0x26 IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x39 IPV6_RTHDR_LOOSE = 0x0 IPV6_RTHDR_STRICT = 0x1 IPV6_RTHDR_TYPE_0 = 0x0 IPV6_SOCKOPT_RESERVED1 = 0x3 IPV6_TCLASS = 0x24 IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a IPV6_V6ONLY = 0x1b IPV6_VERSION = 0x60 IPV6_VERSION_MASK = 0xf0 @@ -814,6 +856,7 @@ const ( IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DF = 0x4000 + IP_DONTFRAG = 0x1c IP_DROP_MEMBERSHIP = 0xd IP_DROP_SOURCE_MEMBERSHIP = 0x47 IP_DUMMYNET_CONFIGURE = 0x3c @@ -885,6 +928,12 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_PEERCRED = 0x1 + LOCAL_PEEREPID = 0x3 + LOCAL_PEEREUUID = 0x5 + LOCAL_PEERPID = 0x2 + LOCAL_PEERTOKEN = 0x6 + LOCAL_PEERUUID = 0x4 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -900,6 +949,7 @@ const ( MADV_SEQUENTIAL = 0x2 MADV_WILLNEED = 0x3 MADV_ZERO_WIRED_PAGES = 0x6 + MAP_32BIT = 0x8000 MAP_ANON = 0x1000 MAP_ANONYMOUS = 0x1000 MAP_COPY = 0x2 @@ -916,6 +966,17 @@ const ( MAP_RESILIENT_CODESIGN = 0x2000 MAP_RESILIENT_MEDIA = 0x4000 MAP_SHARED = 0x1 + MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 + MAP_UNIX03 = 0x40000 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ASYNC = 0x40 @@ -927,6 +988,7 @@ const ( MNT_DOVOLFS = 0x8000 MNT_DWAIT = 0x4 MNT_EXPORTED = 0x100 + MNT_EXT_ROOT_DATA_VOL = 0x1 MNT_FORCE = 0x80000 MNT_IGNORE_OWNERSHIP = 0x200000 MNT_JOURNALED = 0x800000 @@ -943,12 +1005,15 @@ const ( MNT_QUOTA = 0x2000 MNT_RDONLY = 0x1 MNT_RELOAD = 0x40000 + MNT_REMOVABLE = 0x200 MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x40000000 + MNT_STRICTATIME = 0x80000000 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 MNT_UNKNOWNPERMISSIONS = 0x200000 MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff + MNT_VISFLAGMASK = 0xd7f0f7ff MNT_WAIT = 0x1 MSG_CTRUNC = 0x20 MSG_DONTROUTE = 0x4 @@ -959,6 +1024,7 @@ const ( MSG_HAVEMORE = 0x2000 MSG_HOLD = 0x800 MSG_NEEDSA = 0x10000 + MSG_NOSIGNAL = 0x80000 MSG_OOB = 0x1 MSG_PEEK = 0x2 MSG_RCVMORE = 0x4000 @@ -975,11 +1041,13 @@ const ( NET_RT_DUMP = 0x1 NET_RT_DUMP2 = 0x7 NET_RT_FLAGS = 0x2 + NET_RT_FLAGS_PRIV = 0xa NET_RT_IFLIST = 0x3 NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa + NET_RT_MAXID = 0xb NET_RT_STAT = 0x4 NET_RT_TRASH = 0x5 + NFDBITS = 0x20 NL0 = 0x0 NL1 = 0x100 NL2 = 0x200 @@ -1014,6 +1082,7 @@ const ( NOTE_LEEWAY = 0x10 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_MACHTIME = 0x100 NOTE_MACH_CONTINUOUS_TIME = 0x80 NOTE_NONE = 0x80 NOTE_NSECONDS = 0x4 @@ -1060,6 +1129,7 @@ const ( O_NDELAY = 0x4 O_NOCTTY = 0x20000 O_NOFOLLOW = 0x100 + O_NOFOLLOW_ANY = 0x20000000 O_NONBLOCK = 0x4 O_POPUP = 0x80000000 O_RDONLY = 0x0 @@ -1131,6 +1201,7 @@ const ( RTF_BROADCAST = 0x400000 RTF_CLONING = 0x100 RTF_CONDEMNED = 0x2000000 + RTF_DEAD = 0x20000000 RTF_DELCLONE = 0x80 RTF_DONE = 0x40 RTF_DYNAMIC = 0x10 @@ -1138,6 +1209,7 @@ const ( RTF_HOST = 0x4 RTF_IFREF = 0x4000000 RTF_IFSCOPE = 0x1000000 + RTF_LLDATA = 0x400 RTF_LLINFO = 0x400 RTF_LOCAL = 0x200000 RTF_MODIFIED = 0x20 @@ -1205,6 +1277,7 @@ const ( SIOCGDRVSPEC = 0xc028697b SIOCGETVLAN = 0xc020697f SIOCGHIWAT = 0x40047301 + SIOCGIF6LOWPAN = 0xc02069c5 SIOCGIFADDR = 0xc0206921 SIOCGIFALTMTU = 0xc0206948 SIOCGIFASYNCMAP = 0xc020697c @@ -1215,6 +1288,7 @@ const ( SIOCGIFDEVMTU = 0xc0206944 SIOCGIFDSTADDR = 0xc0206922 SIOCGIFFLAGS = 0xc0206911 + SIOCGIFFUNCTIONALTYPE = 0xc02069ad SIOCGIFGENERIC = 0xc020693a SIOCGIFKPI = 0xc0206987 SIOCGIFMAC = 0xc0206982 @@ -1228,6 +1302,7 @@ const ( SIOCGIFSTATUS = 0xc331693d SIOCGIFVLAN = 0xc020697f SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGIFXMEDIA = 0xc02c6948 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCIFCREATE = 0xc0206978 @@ -1238,6 +1313,7 @@ const ( SIOCSDRVSPEC = 0x8028697b SIOCSETVLAN = 0x8020697e SIOCSHIWAT = 0x80047300 + SIOCSIF6LOWPAN = 0x802069c4 SIOCSIFADDR = 0x8020690c SIOCSIFALTMTU = 0x80206945 SIOCSIFASYNCMAP = 0x8020697d @@ -1265,6 +1341,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go index bbe6089bb..17bba0e44 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && dragonfly // +build amd64,dragonfly // Code generated by cmd/cgo -godefs; DO NOT EDIT. @@ -62,6 +63,7 @@ const ( B28800 = 0x7080 B300 = 0x12c B38400 = 0x9600 + B460800 = 0x70800 B4800 = 0x12c0 B50 = 0x32 B57600 = 0xe100 @@ -69,12 +71,15 @@ const ( B7200 = 0x1c20 B75 = 0x4b B76800 = 0x12c00 + B921600 = 0xe1000 B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d BIOCFLUSH = 0x20004268 BIOCGBLEN = 0x40044266 BIOCGDLT = 0x4004426a BIOCGDLTLIST = 0xc0104279 BIOCGETIF = 0x4020426b + BIOCGFEEDBACK = 0x4004427c BIOCGHDRCMPLT = 0x40044274 BIOCGRSIG = 0x40044272 BIOCGRTIMEOUT = 0x4010426e @@ -88,6 +93,7 @@ const ( BIOCSETF = 0x80104267 BIOCSETIF = 0x8020426c BIOCSETWF = 0x8010427b + BIOCSFEEDBACK = 0x8004427d BIOCSHDRCMPLT = 0x80044275 BIOCSRSIG = 0x80044273 BIOCSRTIMEOUT = 0x8010426d @@ -125,6 +131,7 @@ const ( BPF_MINBUFSIZE = 0x20 BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 + BPF_MOD = 0x90 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 @@ -139,6 +146,7 @@ const ( BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 + BPF_XOR = 0xa0 BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 @@ -156,6 +164,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -175,6 +189,7 @@ const ( DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde DLT_APPLE_IP_OVER_IEEE1394 = 0x8a DLT_ARCNET = 0x7 DLT_ARCNET_LINUX = 0x81 @@ -184,22 +199,33 @@ const ( DLT_AX25 = 0x3 DLT_AX25_KISS = 0xca DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff DLT_BLUETOOTH_HCI_H4 = 0xbb DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 DLT_CHAOS = 0x5 DLT_CHDLC = 0x68 DLT_CISCO_IOS = 0x76 DLT_C_HDLC = 0x68 DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb DLT_ECONET = 0x73 DLT_EN10MB = 0x1 DLT_EN3MB = 0x2 DLT_ENC = 0x6d + DLT_EPON = 0x103 DLT_ERF = 0xc5 DLT_ERF_ETH = 0xaf DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 DLT_FDDI = 0xa DLT_FLEXRAY = 0xd2 DLT_FRELAY = 0x6b @@ -209,6 +235,8 @@ const ( DLT_GPF_F = 0xab DLT_GPF_T = 0xaa DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 DLT_HHDLC = 0x79 DLT_IBM_SN = 0x92 DLT_IBM_SP = 0x91 @@ -218,18 +246,28 @@ const ( DLT_IEEE802_11_RADIO_AVS = 0xa3 DLT_IEEE802_15_4 = 0xc3 DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 DLT_IEEE802_15_4_NONASK_PHY = 0xd7 DLT_IEEE802_16_MAC_CPS = 0xbc DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 DLT_IPFILTER = 0x74 DLT_IPMB = 0xc7 DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 DLT_JUNIPER_ATM1 = 0x89 DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee DLT_JUNIPER_CHDLC = 0xb5 DLT_JUNIPER_ES = 0x84 DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea DLT_JUNIPER_FRELAY = 0xb4 DLT_JUNIPER_GGSN = 0x85 DLT_JUNIPER_ISM = 0xc2 @@ -242,25 +280,40 @@ const ( DLT_JUNIPER_PPPOE = 0xa7 DLT_JUNIPER_PPPOE_ATM = 0xa8 DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 DLT_JUNIPER_ST = 0xc8 DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 DLT_LAPB_WITH_DIR = 0xcf DLT_LAPD = 0xcb DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 DLT_LINUX_IRDA = 0x90 DLT_LINUX_LAPD = 0xb1 DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x109 + DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb DLT_MTP2 = 0x8c DLT_MTP2_WITH_PHDR = 0x8b DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 DLT_NULL = 0x0 DLT_PCI_EXP = 0x7d DLT_PFLOG = 0x75 DLT_PFSYNC = 0x12 + DLT_PKTAP = 0x102 DLT_PPI = 0xc0 DLT_PPP = 0x9 DLT_PPP_BSDOS = 0x10 @@ -269,22 +322,51 @@ const ( DLT_PPP_SERIAL = 0x32 DLT_PPP_WITH_DIR = 0xcc DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 DLT_PRONET = 0x4 DLT_RAIF1 = 0xc6 DLT_RAW = 0xc + DLT_RDS = 0x109 DLT_REDBACK_SMARTEDGE = 0x20 DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 DLT_SITA = 0xc4 DLT_SLIP = 0x8 DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed DLT_SUNATM = 0x7b DLT_SYMANTEC_FIREWALL = 0x63 DLT_TZSP = 0x80 DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_FREEBSD = 0xba DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc DLT_X2E_SERIAL = 0xd5 DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 DT_BLK = 0x6 DT_CHR = 0x2 DT_DBF = 0xf @@ -323,10 +405,11 @@ const ( EV_EOF = 0x8000 EV_ERROR = 0x4000 EV_FLAG1 = 0x2000 + EV_HUP = 0x800 EV_NODATA = 0x1000 EV_ONESHOT = 0x10 EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTEXIT_LWP = 0x10000 @@ -365,8 +448,9 @@ const ( IFF_ALLMULTI = 0x200 IFF_ALTPHYS = 0x4000 IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x118e72 + IFF_CANTCHANGE = 0x318e72 IFF_DEBUG = 0x4 + IFF_IDIRECT = 0x200000 IFF_LINK0 = 0x1000 IFF_LINK1 = 0x2000 IFF_LINK2 = 0x4000 @@ -441,7 +525,6 @@ const ( IFT_EPLRS = 0x57 IFT_ESCON = 0x49 IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 IFT_FAST = 0x7d IFT_FASTETHER = 0x3e IFT_FASTETHERFX = 0x45 @@ -614,6 +697,7 @@ const ( IN_CLASSD_NET = 0xf0000000 IN_CLASSD_NSHIFT = 0x1c IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe IPPROTO_3PC = 0x22 IPPROTO_ADFS = 0x44 IPPROTO_AH = 0x33 @@ -735,7 +819,6 @@ const ( IPV6_DEFHLIM = 0x40 IPV6_DONTFRAG = 0x3e IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d IPV6_FLOWINFO_MASK = 0xffffff0f IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FRAGTTL = 0x78 @@ -747,7 +830,6 @@ const ( IPV6_HLIMDEC = 0x1 IPV6_HOPLIMIT = 0x2f IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c IPV6_JOIN_GROUP = 0xc IPV6_LEAVE_GROUP = 0xd IPV6_MAXHLIM = 0xff @@ -795,16 +877,22 @@ const ( IP_DUMMYNET_DEL = 0x3d IP_DUMMYNET_FLUSH = 0x3e IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 IP_FW_ADD = 0x32 IP_FW_DEL = 0x33 IP_FW_FLUSH = 0x34 IP_FW_GET = 0x36 IP_FW_RESETLOG = 0x37 + IP_FW_TBL_ADD = 0x2a + IP_FW_TBL_CREATE = 0x28 + IP_FW_TBL_DEL = 0x2b + IP_FW_TBL_DESTROY = 0x29 + IP_FW_TBL_EXPIRE = 0x2f + IP_FW_TBL_FLUSH = 0x2c + IP_FW_TBL_GET = 0x2d + IP_FW_TBL_ZERO = 0x2e IP_FW_X = 0x31 IP_FW_ZERO = 0x35 IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 IP_MAXPACKET = 0xffff IP_MAX_MEMBERSHIPS = 0x14 IP_MF = 0x2000 @@ -938,6 +1026,7 @@ const ( NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 NET_RT_MAXID = 0x4 + NFDBITS = 0x40 NOFLSH = 0x80000000 NOKERNINFO = 0x2000000 NOTE_ATTRIB = 0x8 @@ -1079,12 +1168,10 @@ const ( RTM_MISS = 0x7 RTM_NEWADDR = 0xc RTM_NEWMADDR = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x6 + RTM_VERSION = 0x7 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 RTV_IWCAPSEGS = 0x400 @@ -1105,13 +1192,13 @@ const ( SHUT_RDWR = 0x2 SHUT_WR = 0x1 SIOCADDMULTI = 0x80206931 - SIOCADDRT = 0x8040720a SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 SIOCALIFADDR = 0x8118691b SIOCATMARK = 0x40047307 SIOCDELMULTI = 0x80206932 - SIOCDELRT = 0x8040720b SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 SIOCDIFPHYADDR = 0x80206949 SIOCDLIFADDR = 0x8118691d SIOCGDRVSPEC = 0xc028697b @@ -1119,6 +1206,7 @@ const ( SIOCGETVIFCNT = 0xc028720f SIOCGHIWAT = 0x40047301 SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc0406929 SIOCGIFBRDADDR = 0xc0206923 SIOCGIFCAP = 0xc020691f SIOCGIFCONF = 0xc0106924 @@ -1127,6 +1215,7 @@ const ( SIOCGIFFLAGS = 0xc0206911 SIOCGIFGENERIC = 0xc020693a SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 SIOCGIFINDEX = 0xc0206920 SIOCGIFMEDIA = 0xc0306938 SIOCGIFMETRIC = 0xc0206917 @@ -1193,6 +1282,7 @@ const ( SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x2000 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 SO_SNDBUF = 0x1001 @@ -1232,6 +1322,9 @@ const ( S_IXGRP = 0x8 S_IXOTH = 0x1 S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 TCIFLUSH = 0x1 TCIOFF = 0x3 TCIOFLUSH = 0x3 @@ -1258,6 +1351,8 @@ const ( TCP_NOPUSH = 0x4 TCP_SIGNATURE_ENABLE = 0x10 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCONS = 0x80047462 @@ -1271,7 +1366,6 @@ const ( TIOCGETD = 0x4004741a TIOCGPGRP = 0x40047477 TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 TIOCGWINSZ = 0x40087468 TIOCISPTMASTER = 0x20007455 TIOCMBIC = 0x8004746b @@ -1316,7 +1410,6 @@ const ( TIOCSETD = 0x8004741b TIOCSIG = 0x2000745f TIOCSPGRP = 0x80047476 - TIOCSSIZE = 0x80087467 TIOCSTART = 0x2000746e TIOCSTAT = 0x20007465 TIOCSTI = 0x80017472 @@ -1325,6 +1418,8 @@ const ( TIOCTIMESTAMP = 0x40107459 TIOCUCNTL = 0x80047466 TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 VCHECKPT = 0x13 VDISCARD = 0xf VDSUSP = 0xb @@ -1349,9 +1444,12 @@ const ( VWERASE = 0x4 WCONTINUED = 0x4 WCOREFLAG = 0x80 + WEXITED = 0x10 WLINUXCLONE = 0x80000000 WNOHANG = 0x1 - WSTOPPED = 0x7f + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 WUNTRACED = 0x2 ) @@ -1451,11 +1549,6 @@ const ( ETIMEDOUT = syscall.Errno(0x3c) ETOOMANYREFS = syscall.Errno(0x3b) ETXTBSY = syscall.Errno(0x1a) - EUNUSED94 = syscall.Errno(0x5e) - EUNUSED95 = syscall.Errno(0x5f) - EUNUSED96 = syscall.Errno(0x60) - EUNUSED97 = syscall.Errno(0x61) - EUNUSED98 = syscall.Errno(0x62) EUSERS = syscall.Errno(0x44) EWOULDBLOCK = syscall.Errno(0x23) EXDEV = syscall.Errno(0x12) @@ -1599,12 +1692,7 @@ var errorList = [...]struct { {91, "ENOLINK", "link has been severed"}, {92, "EPROTO", "protocol error"}, {93, "ENOMEDIUM", "no medium found"}, - {94, "EUNUSED94", "unknown error: 94"}, - {95, "EUNUSED95", "unknown error: 95"}, - {96, "EUNUSED96", "unknown error: 96"}, - {97, "EUNUSED97", "unknown error: 97"}, - {98, "EUNUSED98", "unknown error: 98"}, - {99, "ELAST", "unknown error: 99"}, + {99, "EASYNC", "unknown error: 99"}, } // Signal table diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go index d2bbaabc8..9c7c5e165 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go @@ -1,9 +1,10 @@ // mkerrors.sh -m32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && freebsd // +build 386,freebsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m32 _const.go package unix @@ -339,6 +340,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -355,6 +362,22 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0x18 CTL_NET = 0x4 + DIOCGATTR = 0xc144648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x804c6490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc06c648f DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 @@ -379,11 +402,14 @@ const ( DLT_CHAOS = 0x5 DLT_CHDLC = 0x68 DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 DLT_C_HDLC = 0x68 DLT_C_HDLC_WITH_DIR = 0xcd DLT_DBUS = 0xe7 DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 DLT_DVB_CI = 0xeb DLT_ECONET = 0x73 DLT_EN10MB = 0x1 @@ -393,6 +419,7 @@ const ( DLT_ERF = 0xc5 DLT_ERF_ETH = 0xaf DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 DLT_FC_2 = 0xe0 DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 DLT_FDDI = 0xa @@ -406,7 +433,6 @@ const ( DLT_GPRS_LLC = 0xa9 DLT_GSMTAP_ABIS = 0xda DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 DLT_IBM_SN = 0x92 DLT_IBM_SP = 0x91 DLT_IEEE802 = 0x6 @@ -429,6 +455,7 @@ const ( DLT_IPV4 = 0xe4 DLT_IPV6 = 0xe5 DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 DLT_JUNIPER_ATM1 = 0x89 DLT_JUNIPER_ATM2 = 0x87 DLT_JUNIPER_ATM_CEMIC = 0xee @@ -461,8 +488,9 @@ const ( DLT_LINUX_PPP_WITHDIRECTION = 0xa6 DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x104 + DLT_MATCHING_MAX = 0x113 DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -478,14 +506,16 @@ const ( DLT_NFC_LLCP = 0xf5 DLT_NFLOG = 0xef DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PCI_EXP = 0x7d DLT_PFLOG = 0x75 DLT_PFSYNC = 0x79 DLT_PKTAP = 0x102 DLT_PPI = 0xc0 DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 + DLT_PPP_BSDOS = 0xe DLT_PPP_ETHER = 0x33 DLT_PPP_PPPD = 0xa6 DLT_PPP_SERIAL = 0x32 @@ -496,19 +526,25 @@ const ( DLT_PRONET = 0x4 DLT_RAIF1 = 0xc6 DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 DLT_RIO = 0x7c DLT_RTAC_SERIAL = 0xfa DLT_SCCP = 0x8e DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c DLT_SITA = 0xc4 DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf + DLT_SLIP_BSDOS = 0xd DLT_STANAG_5066_D_PDU = 0xed DLT_SUNATM = 0x7b DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d DLT_TZSP = 0x80 DLT_USB = 0xba DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -527,10 +563,14 @@ const ( DLT_USER7 = 0x9a DLT_USER8 = 0x9b DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 DLT_WIHART = 0xdf DLT_WIRESHARK_UPPER_PDU = 0xfc DLT_X2E_SERIAL = 0xd5 DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -548,6 +588,7 @@ const ( ECHONL = 0x10 ECHOPRT = 0x20 EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd EVFILT_FS = -0x9 EVFILT_LIO = -0xa EVFILT_PROC = -0x5 @@ -555,11 +596,12 @@ const ( EVFILT_READ = -0x1 EVFILT_SENDFILE = -0xc EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xc + EVFILT_SYSCOUNT = 0xd EVFILT_TIMER = -0x7 EVFILT_USER = -0xb EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 @@ -576,6 +618,7 @@ const ( EV_RECEIPT = 0x40 EV_SYSFLAGS = 0xf000 EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff EXTATTR_NAMESPACE_EMPTY = 0x0 EXTATTR_NAMESPACE_SYSTEM = 0x2 EXTATTR_NAMESPACE_USER = 0x1 @@ -617,6 +660,7 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 IFF_ALLMULTI = 0x200 IFF_ALTPHYS = 0x4000 IFF_BROADCAST = 0x2 @@ -633,6 +677,7 @@ const ( IFF_MONITOR = 0x40000 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PPROMISC = 0x20000 @@ -807,6 +852,7 @@ const ( IPV6_DSTOPTS = 0x32 IPV6_FLOWID = 0x43 IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FLOWTYPE = 0x44 IPV6_FRAGTTL = 0x78 @@ -827,13 +873,13 @@ const ( IPV6_MAX_GROUP_SRC_FILTER = 0x200 IPV6_MAX_MEMBERSHIPS = 0xfff IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 IPV6_PATHMTU = 0x2c IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe @@ -845,6 +891,7 @@ const ( IPV6_RECVFLOWID = 0x46 IPV6_RECVHOPLIMIT = 0x25 IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 IPV6_RECVPATHMTU = 0x2b IPV6_RECVPKTINFO = 0x24 IPV6_RECVRSSBUCKETID = 0x47 @@ -905,10 +952,8 @@ const ( IP_MAX_MEMBERSHIPS = 0xfff IP_MAX_SOCK_MUTE_FILTER = 0x80 IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MAX_SOURCE_FILTER = 0x400 IP_MF = 0x2000 IP_MINTTL = 0x42 - IP_MIN_MEMBERSHIPS = 0x1f IP_MSFILTER = 0x4a IP_MSS = 0x240 IP_MULTICAST_IF = 0x9 @@ -918,6 +963,7 @@ const ( IP_OFFMASK = 0x1fff IP_ONESBCAST = 0x17 IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b IP_PORTRANGE = 0x13 IP_PORTRANGE_DEFAULT = 0x0 IP_PORTRANGE_HIGH = 0x1 @@ -926,6 +972,7 @@ const ( IP_RECVFLOWID = 0x5d IP_RECVIF = 0x14 IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b IP_RECVRETOPTS = 0x6 IP_RECVRSSBUCKETID = 0x5e IP_RECVTOS = 0x44 @@ -951,6 +998,11 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_CREDS_PERSISTENT = 0x3 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -975,6 +1027,7 @@ const ( MAP_EXCL = 0x4000 MAP_FILE = 0x0 MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 MAP_HASSEMAPHORE = 0x200 MAP_NOCORE = 0x20000 MAP_NOSYNC = 0x800 @@ -986,6 +1039,15 @@ const ( MAP_RESERVED0100 = 0x100 MAP_SHARED = 0x1 MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ACLS = 0x8000000 @@ -1026,10 +1088,12 @@ const ( MNT_SUSPEND = 0x4 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0x2d8d0807e + MNT_UPDATEMASK = 0xad8d0807e MNT_USER = 0x8000 - MNT_VISFLAGMASK = 0x3fef0ffff + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff MNT_WAIT = 0x1 MSG_CMSG_CLOEXEC = 0x40000 MSG_COMPAT = 0x8000 @@ -1055,8 +1119,10 @@ const ( NET_RT_IFLIST = 0x3 NET_RT_IFLISTL = 0x5 NET_RT_IFMALIST = 0x4 + NFDBITS = 0x20 NOFLSH = 0x80000000 NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 NOTE_CLOSE = 0x100 @@ -1211,7 +1277,6 @@ const ( RTV_WEIGHT = 0x100 RT_ALL_FIBS = -0x1 RT_BLACKHOLE = 0x40 - RT_CACHING_CONTEXT = 0x1 RT_DEFAULT_FIB = 0x0 RT_HAS_GW = 0x80 RT_HAS_HEADER = 0x10 @@ -1221,15 +1286,17 @@ const ( RT_LLE_CACHE = 0x100 RT_MAY_LOOP = 0x8 RT_MAY_LOOP_BIT = 0x3 - RT_NORTREF = 0x2 RT_REJECT = 0x20 RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_BINTIME = 0x4 SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1245,6 +1312,7 @@ const ( SIOCGETSGCNT = 0xc0147210 SIOCGETVIFCNT = 0xc014720f SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e SIOCGI2C = 0xc020693d SIOCGIFADDR = 0xc0206921 SIOCGIFBRDADDR = 0xc0206923 @@ -1266,8 +1334,11 @@ const ( SIOCGIFPDSTADDR = 0xc0206948 SIOCGIFPHYS = 0xc0206935 SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 SIOCGIFSTATUS = 0xc331693b SIOCGIFXMEDIA = 0xc028698b + SIOCGLANPCP = 0xc0206998 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCGPRIVATE_0 = 0xc0206950 @@ -1298,6 +1369,7 @@ const ( SIOCSIFPHYS = 0x80206936 SIOCSIFRVNET = 0xc020695b SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 SIOCSTUNFIB = 0x8020695f @@ -1309,6 +1381,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 @@ -1316,6 +1389,7 @@ const ( SO_BINTIME = 0x2000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1324,6 +1398,7 @@ const ( SO_LISTENINCQLEN = 0x1013 SO_LISTENQLEN = 0x1012 SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 SO_NOSIGPIPE = 0x800 SO_NO_DDP = 0x8000 SO_NO_OFFLOAD = 0x4000 @@ -1336,11 +1411,19 @@ const ( SO_RCVTIMEO = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 SO_SETFIB = 0x1014 SO_SNDBUF = 0x1001 SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 SO_USER_COOKIE = 0x1015 @@ -1384,10 +1467,45 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 TCP_CA_NAME_MAX = 0x10 TCP_CCALGOOPT = 0x41 TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 TCP_FUNCTION_BLK = 0x2000 TCP_FUNCTION_NAME_LEN_MAX = 0x20 TCP_INFO = 0x20 @@ -1395,6 +1513,12 @@ const ( TCP_KEEPIDLE = 0x100 TCP_KEEPINIT = 0x80 TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 TCP_MAXBURST = 0x4 TCP_MAXHLEN = 0x3c TCP_MAXOLEN = 0x28 @@ -1410,8 +1534,30 @@ const ( TCP_NOPUSH = 0x4 TCP_PCAP_IN = 0x1000 TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_SESS_CWV = 0x42a + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 TCP_VENDOR = 0x80000000 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCONS = 0x80047462 @@ -1475,6 +1621,8 @@ const ( TIOCTIMESTAMP = 0x40087459 TIOCUCNTL = 0x80047466 TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 @@ -1486,6 +1634,8 @@ const ( VKILL = 0x5 VLNEXT = 0xe VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x70e0000 + VM_SWZONE_SIZE_MAX = 0x2280000 VQUIT = 0x9 VREPRINT = 0x6 VSTART = 0xc diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go index 4f8db783d..b265abb25 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go @@ -1,9 +1,10 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && freebsd // +build amd64,freebsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m64 _const.go package unix @@ -339,6 +340,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -355,6 +362,22 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0x18 CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80506490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc080648f DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 @@ -379,11 +402,14 @@ const ( DLT_CHAOS = 0x5 DLT_CHDLC = 0x68 DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 DLT_C_HDLC = 0x68 DLT_C_HDLC_WITH_DIR = 0xcd DLT_DBUS = 0xe7 DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 DLT_DVB_CI = 0xeb DLT_ECONET = 0x73 DLT_EN10MB = 0x1 @@ -393,6 +419,7 @@ const ( DLT_ERF = 0xc5 DLT_ERF_ETH = 0xaf DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 DLT_FC_2 = 0xe0 DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 DLT_FDDI = 0xa @@ -406,7 +433,6 @@ const ( DLT_GPRS_LLC = 0xa9 DLT_GSMTAP_ABIS = 0xda DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 DLT_IBM_SN = 0x92 DLT_IBM_SP = 0x91 DLT_IEEE802 = 0x6 @@ -429,6 +455,7 @@ const ( DLT_IPV4 = 0xe4 DLT_IPV6 = 0xe5 DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 DLT_JUNIPER_ATM1 = 0x89 DLT_JUNIPER_ATM2 = 0x87 DLT_JUNIPER_ATM_CEMIC = 0xee @@ -461,8 +488,9 @@ const ( DLT_LINUX_PPP_WITHDIRECTION = 0xa6 DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x104 + DLT_MATCHING_MAX = 0x113 DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -478,14 +506,16 @@ const ( DLT_NFC_LLCP = 0xf5 DLT_NFLOG = 0xef DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PCI_EXP = 0x7d DLT_PFLOG = 0x75 DLT_PFSYNC = 0x79 DLT_PKTAP = 0x102 DLT_PPI = 0xc0 DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 + DLT_PPP_BSDOS = 0xe DLT_PPP_ETHER = 0x33 DLT_PPP_PPPD = 0xa6 DLT_PPP_SERIAL = 0x32 @@ -496,19 +526,25 @@ const ( DLT_PRONET = 0x4 DLT_RAIF1 = 0xc6 DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 DLT_RIO = 0x7c DLT_RTAC_SERIAL = 0xfa DLT_SCCP = 0x8e DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c DLT_SITA = 0xc4 DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf + DLT_SLIP_BSDOS = 0xd DLT_STANAG_5066_D_PDU = 0xed DLT_SUNATM = 0x7b DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d DLT_TZSP = 0x80 DLT_USB = 0xba DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -527,10 +563,14 @@ const ( DLT_USER7 = 0x9a DLT_USER8 = 0x9b DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 DLT_WIHART = 0xdf DLT_WIRESHARK_UPPER_PDU = 0xfc DLT_X2E_SERIAL = 0xd5 DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -548,6 +588,7 @@ const ( ECHONL = 0x10 ECHOPRT = 0x20 EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd EVFILT_FS = -0x9 EVFILT_LIO = -0xa EVFILT_PROC = -0x5 @@ -555,11 +596,12 @@ const ( EVFILT_READ = -0x1 EVFILT_SENDFILE = -0xc EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xc + EVFILT_SYSCOUNT = 0xd EVFILT_TIMER = -0x7 EVFILT_USER = -0xb EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 @@ -576,6 +618,7 @@ const ( EV_RECEIPT = 0x40 EV_SYSFLAGS = 0xf000 EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff EXTATTR_NAMESPACE_EMPTY = 0x0 EXTATTR_NAMESPACE_SYSTEM = 0x2 EXTATTR_NAMESPACE_USER = 0x1 @@ -617,6 +660,7 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 IFF_ALLMULTI = 0x200 IFF_ALTPHYS = 0x4000 IFF_BROADCAST = 0x2 @@ -633,6 +677,7 @@ const ( IFF_MONITOR = 0x40000 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PPROMISC = 0x20000 @@ -807,6 +852,7 @@ const ( IPV6_DSTOPTS = 0x32 IPV6_FLOWID = 0x43 IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FLOWTYPE = 0x44 IPV6_FRAGTTL = 0x78 @@ -827,13 +873,13 @@ const ( IPV6_MAX_GROUP_SRC_FILTER = 0x200 IPV6_MAX_MEMBERSHIPS = 0xfff IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 IPV6_PATHMTU = 0x2c IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe @@ -845,6 +891,7 @@ const ( IPV6_RECVFLOWID = 0x46 IPV6_RECVHOPLIMIT = 0x25 IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 IPV6_RECVPATHMTU = 0x2b IPV6_RECVPKTINFO = 0x24 IPV6_RECVRSSBUCKETID = 0x47 @@ -905,10 +952,8 @@ const ( IP_MAX_MEMBERSHIPS = 0xfff IP_MAX_SOCK_MUTE_FILTER = 0x80 IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MAX_SOURCE_FILTER = 0x400 IP_MF = 0x2000 IP_MINTTL = 0x42 - IP_MIN_MEMBERSHIPS = 0x1f IP_MSFILTER = 0x4a IP_MSS = 0x240 IP_MULTICAST_IF = 0x9 @@ -918,6 +963,7 @@ const ( IP_OFFMASK = 0x1fff IP_ONESBCAST = 0x17 IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b IP_PORTRANGE = 0x13 IP_PORTRANGE_DEFAULT = 0x0 IP_PORTRANGE_HIGH = 0x1 @@ -926,6 +972,7 @@ const ( IP_RECVFLOWID = 0x5d IP_RECVIF = 0x14 IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b IP_RECVRETOPTS = 0x6 IP_RECVRSSBUCKETID = 0x5e IP_RECVTOS = 0x44 @@ -951,6 +998,11 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_CREDS_PERSISTENT = 0x3 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -976,6 +1028,7 @@ const ( MAP_EXCL = 0x4000 MAP_FILE = 0x0 MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 MAP_HASSEMAPHORE = 0x200 MAP_NOCORE = 0x20000 MAP_NOSYNC = 0x800 @@ -987,6 +1040,15 @@ const ( MAP_RESERVED0100 = 0x100 MAP_SHARED = 0x1 MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ACLS = 0x8000000 @@ -1027,10 +1089,12 @@ const ( MNT_SUSPEND = 0x4 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0x2d8d0807e + MNT_UPDATEMASK = 0xad8d0807e MNT_USER = 0x8000 - MNT_VISFLAGMASK = 0x3fef0ffff + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff MNT_WAIT = 0x1 MSG_CMSG_CLOEXEC = 0x40000 MSG_COMPAT = 0x8000 @@ -1056,8 +1120,10 @@ const ( NET_RT_IFLIST = 0x3 NET_RT_IFLISTL = 0x5 NET_RT_IFMALIST = 0x4 + NFDBITS = 0x40 NOFLSH = 0x80000000 NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 NOTE_CLOSE = 0x100 @@ -1212,7 +1278,6 @@ const ( RTV_WEIGHT = 0x100 RT_ALL_FIBS = -0x1 RT_BLACKHOLE = 0x40 - RT_CACHING_CONTEXT = 0x1 RT_DEFAULT_FIB = 0x0 RT_HAS_GW = 0x80 RT_HAS_HEADER = 0x10 @@ -1222,15 +1287,17 @@ const ( RT_LLE_CACHE = 0x100 RT_MAY_LOOP = 0x8 RT_MAY_LOOP_BIT = 0x3 - RT_NORTREF = 0x2 RT_REJECT = 0x20 RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_BINTIME = 0x4 SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1246,6 +1313,7 @@ const ( SIOCGETSGCNT = 0xc0207210 SIOCGETVIFCNT = 0xc028720f SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e SIOCGI2C = 0xc020693d SIOCGIFADDR = 0xc0206921 SIOCGIFBRDADDR = 0xc0206923 @@ -1267,8 +1335,11 @@ const ( SIOCGIFPDSTADDR = 0xc0206948 SIOCGIFPHYS = 0xc0206935 SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 SIOCGIFSTATUS = 0xc331693b SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCGPRIVATE_0 = 0xc0206950 @@ -1299,6 +1370,7 @@ const ( SIOCSIFPHYS = 0x80206936 SIOCSIFRVNET = 0xc020695b SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 SIOCSTUNFIB = 0x8020695f @@ -1310,6 +1382,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 @@ -1317,6 +1390,7 @@ const ( SO_BINTIME = 0x2000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1325,6 +1399,7 @@ const ( SO_LISTENINCQLEN = 0x1013 SO_LISTENQLEN = 0x1012 SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 SO_NOSIGPIPE = 0x800 SO_NO_DDP = 0x8000 SO_NO_OFFLOAD = 0x4000 @@ -1337,11 +1412,19 @@ const ( SO_RCVTIMEO = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 SO_SETFIB = 0x1014 SO_SNDBUF = 0x1001 SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 SO_USER_COOKIE = 0x1015 @@ -1385,10 +1468,45 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 TCP_CA_NAME_MAX = 0x10 TCP_CCALGOOPT = 0x41 TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 TCP_FUNCTION_BLK = 0x2000 TCP_FUNCTION_NAME_LEN_MAX = 0x20 TCP_INFO = 0x20 @@ -1396,6 +1514,12 @@ const ( TCP_KEEPIDLE = 0x100 TCP_KEEPINIT = 0x80 TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 TCP_MAXBURST = 0x4 TCP_MAXHLEN = 0x3c TCP_MAXOLEN = 0x28 @@ -1411,8 +1535,30 @@ const ( TCP_NOPUSH = 0x4 TCP_PCAP_IN = 0x1000 TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_SESS_CWV = 0x42a + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 TCP_VENDOR = 0x80000000 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCONS = 0x80047462 @@ -1476,6 +1622,8 @@ const ( TIOCTIMESTAMP = 0x40107459 TIOCUCNTL = 0x80047466 TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go index 53e5de605..3df99f285 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go @@ -1,9 +1,10 @@ // mkerrors.sh // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && freebsd // +build arm,freebsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- _const.go package unix @@ -339,6 +340,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -355,6 +362,22 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0x18 CTL_NET = 0x4 + DIOCGATTR = 0xc144648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x804c6490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc06c648f DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 @@ -958,6 +981,11 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_CREDS_PERSISTENT = 0x3 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -994,6 +1022,15 @@ const ( MAP_RESERVED0100 = 0x100 MAP_SHARED = 0x1 MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ACLS = 0x8000000 @@ -1063,6 +1100,7 @@ const ( NET_RT_IFLIST = 0x3 NET_RT_IFLISTL = 0x5 NET_RT_IFMALIST = 0x4 + NFDBITS = 0x20 NOFLSH = 0x80000000 NOKERNINFO = 0x2000000 NOTE_ATTRIB = 0x8 @@ -1318,6 +1356,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go index d4a192fef..218d39906 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go @@ -1,9 +1,10 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && freebsd // +build arm64,freebsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m64 _const.go package unix @@ -339,6 +340,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -355,6 +362,22 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0x18 CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80506490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc080648f DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 @@ -379,11 +402,14 @@ const ( DLT_CHAOS = 0x5 DLT_CHDLC = 0x68 DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 DLT_C_HDLC = 0x68 DLT_C_HDLC_WITH_DIR = 0xcd DLT_DBUS = 0xe7 DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 DLT_DVB_CI = 0xeb DLT_ECONET = 0x73 DLT_EN10MB = 0x1 @@ -393,6 +419,7 @@ const ( DLT_ERF = 0xc5 DLT_ERF_ETH = 0xaf DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 DLT_FC_2 = 0xe0 DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 DLT_FDDI = 0xa @@ -406,7 +433,6 @@ const ( DLT_GPRS_LLC = 0xa9 DLT_GSMTAP_ABIS = 0xda DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 DLT_IBM_SN = 0x92 DLT_IBM_SP = 0x91 DLT_IEEE802 = 0x6 @@ -429,6 +455,7 @@ const ( DLT_IPV4 = 0xe4 DLT_IPV6 = 0xe5 DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 DLT_JUNIPER_ATM1 = 0x89 DLT_JUNIPER_ATM2 = 0x87 DLT_JUNIPER_ATM_CEMIC = 0xee @@ -461,8 +488,9 @@ const ( DLT_LINUX_PPP_WITHDIRECTION = 0xa6 DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x104 + DLT_MATCHING_MAX = 0x113 DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -478,14 +506,16 @@ const ( DLT_NFC_LLCP = 0xf5 DLT_NFLOG = 0xef DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PCI_EXP = 0x7d DLT_PFLOG = 0x75 DLT_PFSYNC = 0x79 DLT_PKTAP = 0x102 DLT_PPI = 0xc0 DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 + DLT_PPP_BSDOS = 0xe DLT_PPP_ETHER = 0x33 DLT_PPP_PPPD = 0xa6 DLT_PPP_SERIAL = 0x32 @@ -496,19 +526,25 @@ const ( DLT_PRONET = 0x4 DLT_RAIF1 = 0xc6 DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 DLT_RIO = 0x7c DLT_RTAC_SERIAL = 0xfa DLT_SCCP = 0x8e DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c DLT_SITA = 0xc4 DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf + DLT_SLIP_BSDOS = 0xd DLT_STANAG_5066_D_PDU = 0xed DLT_SUNATM = 0x7b DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d DLT_TZSP = 0x80 DLT_USB = 0xba DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -527,10 +563,14 @@ const ( DLT_USER7 = 0x9a DLT_USER8 = 0x9b DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 DLT_WIHART = 0xdf DLT_WIRESHARK_UPPER_PDU = 0xfc DLT_X2E_SERIAL = 0xd5 DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -548,6 +588,7 @@ const ( ECHONL = 0x10 ECHOPRT = 0x20 EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd EVFILT_FS = -0x9 EVFILT_LIO = -0xa EVFILT_PROC = -0x5 @@ -555,11 +596,12 @@ const ( EVFILT_READ = -0x1 EVFILT_SENDFILE = -0xc EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xc + EVFILT_SYSCOUNT = 0xd EVFILT_TIMER = -0x7 EVFILT_USER = -0xb EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 @@ -576,6 +618,7 @@ const ( EV_RECEIPT = 0x40 EV_SYSFLAGS = 0xf000 EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff EXTATTR_NAMESPACE_EMPTY = 0x0 EXTATTR_NAMESPACE_SYSTEM = 0x2 EXTATTR_NAMESPACE_USER = 0x1 @@ -617,6 +660,7 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 IFF_ALLMULTI = 0x200 IFF_ALTPHYS = 0x4000 IFF_BROADCAST = 0x2 @@ -633,6 +677,7 @@ const ( IFF_MONITOR = 0x40000 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PPROMISC = 0x20000 @@ -807,6 +852,7 @@ const ( IPV6_DSTOPTS = 0x32 IPV6_FLOWID = 0x43 IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FLOWTYPE = 0x44 IPV6_FRAGTTL = 0x78 @@ -827,13 +873,13 @@ const ( IPV6_MAX_GROUP_SRC_FILTER = 0x200 IPV6_MAX_MEMBERSHIPS = 0xfff IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 IPV6_PATHMTU = 0x2c IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe @@ -845,6 +891,7 @@ const ( IPV6_RECVFLOWID = 0x46 IPV6_RECVHOPLIMIT = 0x25 IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 IPV6_RECVPATHMTU = 0x2b IPV6_RECVPKTINFO = 0x24 IPV6_RECVRSSBUCKETID = 0x47 @@ -905,10 +952,8 @@ const ( IP_MAX_MEMBERSHIPS = 0xfff IP_MAX_SOCK_MUTE_FILTER = 0x80 IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MAX_SOURCE_FILTER = 0x400 IP_MF = 0x2000 IP_MINTTL = 0x42 - IP_MIN_MEMBERSHIPS = 0x1f IP_MSFILTER = 0x4a IP_MSS = 0x240 IP_MULTICAST_IF = 0x9 @@ -918,6 +963,7 @@ const ( IP_OFFMASK = 0x1fff IP_ONESBCAST = 0x17 IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b IP_PORTRANGE = 0x13 IP_PORTRANGE_DEFAULT = 0x0 IP_PORTRANGE_HIGH = 0x1 @@ -926,6 +972,7 @@ const ( IP_RECVFLOWID = 0x5d IP_RECVIF = 0x14 IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b IP_RECVRETOPTS = 0x6 IP_RECVRSSBUCKETID = 0x5e IP_RECVTOS = 0x44 @@ -951,6 +998,11 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_CREDS_PERSISTENT = 0x3 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -976,6 +1028,7 @@ const ( MAP_EXCL = 0x4000 MAP_FILE = 0x0 MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 MAP_HASSEMAPHORE = 0x200 MAP_NOCORE = 0x20000 MAP_NOSYNC = 0x800 @@ -987,6 +1040,15 @@ const ( MAP_RESERVED0100 = 0x100 MAP_SHARED = 0x1 MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ACLS = 0x8000000 @@ -1027,10 +1089,12 @@ const ( MNT_SUSPEND = 0x4 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0x2d8d0807e + MNT_UPDATEMASK = 0xad8d0807e MNT_USER = 0x8000 - MNT_VISFLAGMASK = 0x3fef0ffff + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff MNT_WAIT = 0x1 MSG_CMSG_CLOEXEC = 0x40000 MSG_COMPAT = 0x8000 @@ -1056,8 +1120,10 @@ const ( NET_RT_IFLIST = 0x3 NET_RT_IFLISTL = 0x5 NET_RT_IFMALIST = 0x4 + NFDBITS = 0x40 NOFLSH = 0x80000000 NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 NOTE_CLOSE = 0x100 @@ -1212,7 +1278,6 @@ const ( RTV_WEIGHT = 0x100 RT_ALL_FIBS = -0x1 RT_BLACKHOLE = 0x40 - RT_CACHING_CONTEXT = 0x1 RT_DEFAULT_FIB = 0x0 RT_HAS_GW = 0x80 RT_HAS_HEADER = 0x10 @@ -1222,15 +1287,17 @@ const ( RT_LLE_CACHE = 0x100 RT_MAY_LOOP = 0x8 RT_MAY_LOOP_BIT = 0x3 - RT_NORTREF = 0x2 RT_REJECT = 0x20 RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_BINTIME = 0x4 SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1246,6 +1313,7 @@ const ( SIOCGETSGCNT = 0xc0207210 SIOCGETVIFCNT = 0xc028720f SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e SIOCGI2C = 0xc020693d SIOCGIFADDR = 0xc0206921 SIOCGIFBRDADDR = 0xc0206923 @@ -1267,8 +1335,11 @@ const ( SIOCGIFPDSTADDR = 0xc0206948 SIOCGIFPHYS = 0xc0206935 SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 SIOCGIFSTATUS = 0xc331693b SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCGPRIVATE_0 = 0xc0206950 @@ -1299,6 +1370,7 @@ const ( SIOCSIFPHYS = 0x80206936 SIOCSIFRVNET = 0xc020695b SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 SIOCSTUNFIB = 0x8020695f @@ -1310,6 +1382,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 @@ -1317,6 +1390,7 @@ const ( SO_BINTIME = 0x2000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1325,6 +1399,7 @@ const ( SO_LISTENINCQLEN = 0x1013 SO_LISTENQLEN = 0x1012 SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 SO_NOSIGPIPE = 0x800 SO_NO_DDP = 0x8000 SO_NO_OFFLOAD = 0x4000 @@ -1337,11 +1412,19 @@ const ( SO_RCVTIMEO = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 SO_SETFIB = 0x1014 SO_SNDBUF = 0x1001 SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 SO_USER_COOKIE = 0x1015 @@ -1385,10 +1468,45 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 TCP_CA_NAME_MAX = 0x10 TCP_CCALGOOPT = 0x41 TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 TCP_FUNCTION_BLK = 0x2000 TCP_FUNCTION_NAME_LEN_MAX = 0x20 TCP_INFO = 0x20 @@ -1396,6 +1514,12 @@ const ( TCP_KEEPIDLE = 0x100 TCP_KEEPINIT = 0x80 TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 TCP_MAXBURST = 0x4 TCP_MAXHLEN = 0x3c TCP_MAXOLEN = 0x28 @@ -1411,8 +1535,30 @@ const ( TCP_NOPUSH = 0x4 TCP_PCAP_IN = 0x1000 TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_SESS_CWV = 0x42a + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 TCP_VENDOR = 0x80000000 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCONS = 0x80047462 @@ -1476,6 +1622,8 @@ const ( TIOCTIMESTAMP = 0x40107459 TIOCUCNTL = 0x80047466 TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 @@ -1487,6 +1635,7 @@ const ( VKILL = 0x5 VLNEXT = 0xe VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x19000000 VQUIT = 0x9 VREPRINT = 0x6 VSTART = 0xc diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go new file mode 100644 index 000000000..35de419c6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -0,0 +1,2808 @@ +// Code generated by mkmerge.go; DO NOT EDIT. + +//go:build linux +// +build linux + +package unix + +import "syscall" + +const ( + AAFS_MAGIC = 0x5a3c69f0 + ADFS_SUPER_MAGIC = 0xadf5 + AFFS_SUPER_MAGIC = 0xadff + AFS_FS_MAGIC = 0x6b414653 + AFS_SUPER_MAGIC = 0x5346414f + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IB = 0x1b + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KCM = 0x29 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x2d + AF_MPLS = 0x1c + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_QIPCRTR = 0x2a + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SMC = 0x2b + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + AF_XDP = 0x2c + ALG_OP_DECRYPT = 0x0 + ALG_OP_ENCRYPT = 0x1 + ALG_SET_AEAD_ASSOCLEN = 0x4 + ALG_SET_AEAD_AUTHSIZE = 0x5 + ALG_SET_DRBG_ENTROPY = 0x6 + ALG_SET_IV = 0x2 + ALG_SET_KEY = 0x1 + ALG_SET_OP = 0x3 + ANON_INODE_FS_MAGIC = 0x9041934 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_RAWIP = 0x207 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_VSOCKMON = 0x33a + ARPHRD_X25 = 0x10f + AUTOFS_SUPER_MAGIC = 0x187 + B0 = 0x0 + B110 = 0x3 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2400 = 0xb + B300 = 0x7 + B38400 = 0xf + B4800 = 0xc + B50 = 0x1 + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd + BALLOON_KVM_MAGIC = 0x13661366 + BDEVFS_MAGIC = 0x62646576 + BINDERFS_SUPER_MAGIC = 0x6c6f6f70 + BINFMTFS_MAGIC = 0x42494e4d + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_ALU64 = 0x7 + BPF_AND = 0x50 + BPF_ARSH = 0xc0 + BPF_B = 0x10 + BPF_BUILD_ID_SIZE = 0x14 + BPF_CALL = 0x80 + BPF_DIV = 0x30 + BPF_DW = 0x18 + BPF_END = 0xd0 + BPF_EXIT = 0x90 + BPF_FROM_BE = 0x8 + BPF_FROM_LE = 0x0 + BPF_FS_MAGIC = 0xcafe4a11 + BPF_F_ALLOW_MULTI = 0x2 + BPF_F_ALLOW_OVERRIDE = 0x1 + BPF_F_ANY_ALIGNMENT = 0x2 + BPF_F_QUERY_EFFECTIVE = 0x1 + BPF_F_REPLACE = 0x4 + BPF_F_SLEEPABLE = 0x10 + BPF_F_STRICT_ALIGNMENT = 0x1 + BPF_F_TEST_RND_HI32 = 0x4 + BPF_F_TEST_RUN_ON_CPU = 0x1 + BPF_F_TEST_STATE_FREQ = 0x8 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JLE = 0xb0 + BPF_JLT = 0xa0 + BPF_JMP = 0x5 + BPF_JMP32 = 0x6 + BPF_JNE = 0x50 + BPF_JSET = 0x40 + BPF_JSGE = 0x70 + BPF_JSGT = 0x60 + BPF_JSLE = 0xd0 + BPF_JSLT = 0xc0 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MOV = 0xb0 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OBJ_NAME_LEN = 0x10 + BPF_OR = 0x40 + BPF_PSEUDO_BTF_ID = 0x3 + BPF_PSEUDO_CALL = 0x1 + BPF_PSEUDO_MAP_FD = 0x1 + BPF_PSEUDO_MAP_VALUE = 0x2 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAG_SIZE = 0x8 + BPF_TAX = 0x0 + BPF_TO_BE = 0x8 + BPF_TO_LE = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XADD = 0xc0 + BPF_XOR = 0xa0 + BRKINT = 0x2 + BS0 = 0x0 + BTRFS_SUPER_MAGIC = 0x9123683e + BTRFS_TEST_MAGIC = 0x73727279 + BUS_BLUETOOTH = 0x5 + BUS_HIL = 0x4 + BUS_USB = 0x3 + BUS_VIRTUAL = 0x6 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_ACK = 0x20 + CAN_ERR_BUSERROR = 0x80 + CAN_ERR_BUSOFF = 0x40 + CAN_ERR_CRTL = 0x4 + CAN_ERR_CRTL_ACTIVE = 0x40 + CAN_ERR_CRTL_RX_OVERFLOW = 0x1 + CAN_ERR_CRTL_RX_PASSIVE = 0x10 + CAN_ERR_CRTL_RX_WARNING = 0x4 + CAN_ERR_CRTL_TX_OVERFLOW = 0x2 + CAN_ERR_CRTL_TX_PASSIVE = 0x20 + CAN_ERR_CRTL_TX_WARNING = 0x8 + CAN_ERR_CRTL_UNSPEC = 0x0 + CAN_ERR_DLC = 0x8 + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_LOSTARB = 0x2 + CAN_ERR_LOSTARB_UNSPEC = 0x0 + CAN_ERR_MASK = 0x1fffffff + CAN_ERR_PROT = 0x8 + CAN_ERR_PROT_ACTIVE = 0x40 + CAN_ERR_PROT_BIT = 0x1 + CAN_ERR_PROT_BIT0 = 0x8 + CAN_ERR_PROT_BIT1 = 0x10 + CAN_ERR_PROT_FORM = 0x2 + CAN_ERR_PROT_LOC_ACK = 0x19 + CAN_ERR_PROT_LOC_ACK_DEL = 0x1b + CAN_ERR_PROT_LOC_CRC_DEL = 0x18 + CAN_ERR_PROT_LOC_CRC_SEQ = 0x8 + CAN_ERR_PROT_LOC_DATA = 0xa + CAN_ERR_PROT_LOC_DLC = 0xb + CAN_ERR_PROT_LOC_EOF = 0x1a + CAN_ERR_PROT_LOC_ID04_00 = 0xe + CAN_ERR_PROT_LOC_ID12_05 = 0xf + CAN_ERR_PROT_LOC_ID17_13 = 0x7 + CAN_ERR_PROT_LOC_ID20_18 = 0x6 + CAN_ERR_PROT_LOC_ID28_21 = 0x2 + CAN_ERR_PROT_LOC_IDE = 0x5 + CAN_ERR_PROT_LOC_INTERM = 0x12 + CAN_ERR_PROT_LOC_RES0 = 0x9 + CAN_ERR_PROT_LOC_RES1 = 0xd + CAN_ERR_PROT_LOC_RTR = 0xc + CAN_ERR_PROT_LOC_SOF = 0x3 + CAN_ERR_PROT_LOC_SRTR = 0x4 + CAN_ERR_PROT_LOC_UNSPEC = 0x0 + CAN_ERR_PROT_OVERLOAD = 0x20 + CAN_ERR_PROT_STUFF = 0x4 + CAN_ERR_PROT_TX = 0x80 + CAN_ERR_PROT_UNSPEC = 0x0 + CAN_ERR_RESTARTED = 0x100 + CAN_ERR_TRX = 0x10 + CAN_ERR_TRX_CANH_NO_WIRE = 0x4 + CAN_ERR_TRX_CANH_SHORT_TO_BAT = 0x5 + CAN_ERR_TRX_CANH_SHORT_TO_GND = 0x7 + CAN_ERR_TRX_CANH_SHORT_TO_VCC = 0x6 + CAN_ERR_TRX_CANL_NO_WIRE = 0x40 + CAN_ERR_TRX_CANL_SHORT_TO_BAT = 0x50 + CAN_ERR_TRX_CANL_SHORT_TO_CANH = 0x80 + CAN_ERR_TRX_CANL_SHORT_TO_GND = 0x70 + CAN_ERR_TRX_CANL_SHORT_TO_VCC = 0x60 + CAN_ERR_TRX_UNSPEC = 0x0 + CAN_ERR_TX_TIMEOUT = 0x1 + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_J1939 = 0x7 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MAX_RAW_DLC = 0xf + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x8 + CAN_RAW = 0x1 + CAN_RAW_FILTER_MAX = 0x200 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_BPF = 0x27 + CAP_CHECKPOINT_RESTORE = 0x28 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x28 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_PERFMON = 0x26 + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 + CFLUSH = 0xf + CGROUP2_SUPER_MAGIC = 0x63677270 + CGROUP_SUPER_MAGIC = 0x27e0eb + CLOCK_BOOTTIME = 0x7 + CLOCK_BOOTTIME_ALARM = 0x9 + CLOCK_DEFAULT = 0x0 + CLOCK_EXT = 0x1 + CLOCK_INT = 0x2 + CLOCK_MONOTONIC = 0x1 + CLOCK_MONOTONIC_COARSE = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_ALARM = 0x8 + CLOCK_REALTIME_COARSE = 0x5 + CLOCK_TAI = 0xb + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLOCK_TXFROMRX = 0x4 + CLOCK_TXINT = 0x3 + CLONE_ARGS_SIZE_VER0 = 0x40 + CLONE_ARGS_SIZE_VER1 = 0x50 + CLONE_ARGS_SIZE_VER2 = 0x58 + CLONE_CHILD_CLEARTID = 0x200000 + CLONE_CHILD_SETTID = 0x1000000 + CLONE_CLEAR_SIGHAND = 0x100000000 + CLONE_DETACHED = 0x400000 + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_INTO_CGROUP = 0x200000000 + CLONE_IO = 0x80000000 + CLONE_NEWCGROUP = 0x2000000 + CLONE_NEWIPC = 0x8000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x20000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWTIME = 0x80 + CLONE_NEWUSER = 0x10000000 + CLONE_NEWUTS = 0x4000000 + CLONE_PARENT = 0x8000 + CLONE_PARENT_SETTID = 0x100000 + CLONE_PIDFD = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SETTLS = 0x80000 + CLONE_SIGHAND = 0x800 + CLONE_SYSVSEM = 0x40000 + CLONE_THREAD = 0x10000 + CLONE_UNTRACED = 0x800000 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CMSPAR = 0x40000000 + CODA_SUPER_MAGIC = 0x73757245 + CR0 = 0x0 + CRAMFS_MAGIC = 0x28cd3d45 + CRTSCTS = 0x80000000 + CRYPTO_MAX_NAME = 0x40 + CRYPTO_MSG_MAX = 0x15 + CRYPTO_NR_MSGTYPES = 0x6 + CRYPTO_REPORT_MAXSIZE = 0x160 + CS5 = 0x0 + CSIGNAL = 0xff + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSUSP = 0x1a + DAXFS_MAGIC = 0x64646178 + DEBUGFS_MAGIC = 0x64626720 + DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d + DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e + DEVLINK_FLASH_OVERWRITE_IDENTIFIERS = 0x2 + DEVLINK_FLASH_OVERWRITE_SETTINGS = 0x1 + DEVLINK_GENL_MCGRP_CONFIG_NAME = "config" + DEVLINK_GENL_NAME = "devlink" + DEVLINK_GENL_VERSION = 0x1 + DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14 + DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS = 0x3 + DEVMEM_MAGIC = 0x454d444d + DEVPTS_SUPER_MAGIC = 0x1cd1 + DMA_BUF_MAGIC = 0x444d4142 + DM_ACTIVE_PRESENT_FLAG = 0x20 + DM_BUFFER_FULL_FLAG = 0x100 + DM_CONTROL_NODE = "control" + DM_DATA_OUT_FLAG = 0x10000 + DM_DEFERRED_REMOVE = 0x20000 + DM_DEV_ARM_POLL = 0xc138fd10 + DM_DEV_CREATE = 0xc138fd03 + DM_DEV_REMOVE = 0xc138fd04 + DM_DEV_RENAME = 0xc138fd05 + DM_DEV_SET_GEOMETRY = 0xc138fd0f + DM_DEV_STATUS = 0xc138fd07 + DM_DEV_SUSPEND = 0xc138fd06 + DM_DEV_WAIT = 0xc138fd08 + DM_DIR = "mapper" + DM_GET_TARGET_VERSION = 0xc138fd11 + DM_INACTIVE_PRESENT_FLAG = 0x40 + DM_INTERNAL_SUSPEND_FLAG = 0x40000 + DM_IOCTL = 0xfd + DM_LIST_DEVICES = 0xc138fd02 + DM_LIST_VERSIONS = 0xc138fd0d + DM_MAX_TYPE_NAME = 0x10 + DM_NAME_LEN = 0x80 + DM_NOFLUSH_FLAG = 0x800 + DM_PERSISTENT_DEV_FLAG = 0x8 + DM_QUERY_INACTIVE_TABLE_FLAG = 0x1000 + DM_READONLY_FLAG = 0x1 + DM_REMOVE_ALL = 0xc138fd01 + DM_SECURE_DATA_FLAG = 0x8000 + DM_SKIP_BDGET_FLAG = 0x200 + DM_SKIP_LOCKFS_FLAG = 0x400 + DM_STATUS_TABLE_FLAG = 0x10 + DM_SUSPEND_FLAG = 0x2 + DM_TABLE_CLEAR = 0xc138fd0a + DM_TABLE_DEPS = 0xc138fd0b + DM_TABLE_LOAD = 0xc138fd09 + DM_TABLE_STATUS = 0xc138fd0c + DM_TARGET_MSG = 0xc138fd0e + DM_UEVENT_GENERATED_FLAG = 0x2000 + DM_UUID_FLAG = 0x4000 + DM_UUID_LEN = 0x81 + DM_VERSION = 0xc138fd00 + DM_VERSION_EXTRA = "-ioctl (2020-10-01)" + DM_VERSION_MAJOR = 0x4 + DM_VERSION_MINOR = 0x2b + DM_VERSION_PATCHLEVEL = 0x0 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECRYPTFS_SUPER_MAGIC = 0xf15f + EFD_SEMAPHORE = 0x1 + EFIVARFS_MAGIC = 0xde5e81e4 + EFS_SUPER_MAGIC = 0x414a53 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLEXCLUSIVE = 0x10000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 + ESP_V4_FLOW = 0xa + ESP_V6_FLOW = 0xc + ETHER_FLOW = 0x12 + ETHTOOL_BUSINFO_LEN = 0x20 + ETHTOOL_EROMVERS_LEN = 0x20 + ETHTOOL_FEC_AUTO = 0x2 + ETHTOOL_FEC_BASER = 0x10 + ETHTOOL_FEC_LLRS = 0x20 + ETHTOOL_FEC_NONE = 0x1 + ETHTOOL_FEC_OFF = 0x4 + ETHTOOL_FEC_RS = 0x8 + ETHTOOL_FLAG_ALL = 0x7 + ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 + ETHTOOL_FLAG_OMIT_REPLY = 0x2 + ETHTOOL_FLAG_STATS = 0x4 + ETHTOOL_FLASHDEV = 0x33 + ETHTOOL_FLASH_MAX_FILENAME = 0x80 + ETHTOOL_FWVERS_LEN = 0x20 + ETHTOOL_F_COMPAT = 0x4 + ETHTOOL_F_UNSUPPORTED = 0x1 + ETHTOOL_F_WISH = 0x2 + ETHTOOL_GCHANNELS = 0x3c + ETHTOOL_GCOALESCE = 0xe + ETHTOOL_GDRVINFO = 0x3 + ETHTOOL_GEEE = 0x44 + ETHTOOL_GEEPROM = 0xb + ETHTOOL_GENL_NAME = "ethtool" + ETHTOOL_GENL_VERSION = 0x1 + ETHTOOL_GET_DUMP_DATA = 0x40 + ETHTOOL_GET_DUMP_FLAG = 0x3f + ETHTOOL_GET_TS_INFO = 0x41 + ETHTOOL_GFEATURES = 0x3a + ETHTOOL_GFECPARAM = 0x50 + ETHTOOL_GFLAGS = 0x25 + ETHTOOL_GGRO = 0x2b + ETHTOOL_GGSO = 0x23 + ETHTOOL_GLINK = 0xa + ETHTOOL_GLINKSETTINGS = 0x4c + ETHTOOL_GMODULEEEPROM = 0x43 + ETHTOOL_GMODULEINFO = 0x42 + ETHTOOL_GMSGLVL = 0x7 + ETHTOOL_GPAUSEPARAM = 0x12 + ETHTOOL_GPERMADDR = 0x20 + ETHTOOL_GPFLAGS = 0x27 + ETHTOOL_GPHYSTATS = 0x4a + ETHTOOL_GREGS = 0x4 + ETHTOOL_GRINGPARAM = 0x10 + ETHTOOL_GRSSH = 0x46 + ETHTOOL_GRXCLSRLALL = 0x30 + ETHTOOL_GRXCLSRLCNT = 0x2e + ETHTOOL_GRXCLSRULE = 0x2f + ETHTOOL_GRXCSUM = 0x14 + ETHTOOL_GRXFH = 0x29 + ETHTOOL_GRXFHINDIR = 0x38 + ETHTOOL_GRXNTUPLE = 0x36 + ETHTOOL_GRXRINGS = 0x2d + ETHTOOL_GSET = 0x1 + ETHTOOL_GSG = 0x18 + ETHTOOL_GSSET_INFO = 0x37 + ETHTOOL_GSTATS = 0x1d + ETHTOOL_GSTRINGS = 0x1b + ETHTOOL_GTSO = 0x1e + ETHTOOL_GTUNABLE = 0x48 + ETHTOOL_GTXCSUM = 0x16 + ETHTOOL_GUFO = 0x21 + ETHTOOL_GWOL = 0x5 + ETHTOOL_MCGRP_MONITOR_NAME = "monitor" + ETHTOOL_NWAY_RST = 0x9 + ETHTOOL_PERQUEUE = 0x4b + ETHTOOL_PHYS_ID = 0x1c + ETHTOOL_PHY_EDPD_DFLT_TX_MSECS = 0xffff + ETHTOOL_PHY_EDPD_DISABLE = 0x0 + ETHTOOL_PHY_EDPD_NO_TX = 0xfffe + ETHTOOL_PHY_FAST_LINK_DOWN_OFF = 0xff + ETHTOOL_PHY_FAST_LINK_DOWN_ON = 0x0 + ETHTOOL_PHY_GTUNABLE = 0x4e + ETHTOOL_PHY_STUNABLE = 0x4f + ETHTOOL_RESET = 0x34 + ETHTOOL_RXNTUPLE_ACTION_CLEAR = -0x2 + ETHTOOL_RXNTUPLE_ACTION_DROP = -0x1 + ETHTOOL_RX_FLOW_SPEC_RING = 0xffffffff + ETHTOOL_RX_FLOW_SPEC_RING_VF = 0xff00000000 + ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF = 0x20 + ETHTOOL_SCHANNELS = 0x3d + ETHTOOL_SCOALESCE = 0xf + ETHTOOL_SEEE = 0x45 + ETHTOOL_SEEPROM = 0xc + ETHTOOL_SET_DUMP = 0x3e + ETHTOOL_SFEATURES = 0x3b + ETHTOOL_SFECPARAM = 0x51 + ETHTOOL_SFLAGS = 0x26 + ETHTOOL_SGRO = 0x2c + ETHTOOL_SGSO = 0x24 + ETHTOOL_SLINKSETTINGS = 0x4d + ETHTOOL_SMSGLVL = 0x8 + ETHTOOL_SPAUSEPARAM = 0x13 + ETHTOOL_SPFLAGS = 0x28 + ETHTOOL_SRINGPARAM = 0x11 + ETHTOOL_SRSSH = 0x47 + ETHTOOL_SRXCLSRLDEL = 0x31 + ETHTOOL_SRXCLSRLINS = 0x32 + ETHTOOL_SRXCSUM = 0x15 + ETHTOOL_SRXFH = 0x2a + ETHTOOL_SRXFHINDIR = 0x39 + ETHTOOL_SRXNTUPLE = 0x35 + ETHTOOL_SSET = 0x2 + ETHTOOL_SSG = 0x19 + ETHTOOL_STSO = 0x1f + ETHTOOL_STUNABLE = 0x49 + ETHTOOL_STXCSUM = 0x17 + ETHTOOL_SUFO = 0x22 + ETHTOOL_SWOL = 0x6 + ETHTOOL_TEST = 0x1a + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CFM = 0x8902 + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_DSA_8021Q = 0xdadb + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_ERSPAN = 0x88be + ETH_P_ERSPAN2 = 0x22eb + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_HSR = 0x892f + ETH_P_IBOE = 0x8915 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IFE = 0xed3e + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LLDP = 0x88cc + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MACSEC = 0x88e5 + ETH_P_MAP = 0xf9 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MRP = 0x88e3 + ETH_P_MVRP = 0x88f5 + ETH_P_NCSI = 0x88f8 + ETH_P_NSH = 0x894f + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PREAUTH = 0x88c7 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_TSN = 0x22f0 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EXABYTE_ENABLE_NEST = 0xf0 + EXT2_SUPER_MAGIC = 0xef53 + EXT3_SUPER_MAGIC = 0xef53 + EXT4_SUPER_MAGIC = 0xef53 + EXTA = 0xe + EXTB = 0xf + F2FS_SUPER_MAGIC = 0xf2f52010 + 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_UNSHARE_RANGE = 0x40 + FALLOC_FL_ZERO_RANGE = 0x10 + FANOTIFY_METADATA_VERSION = 0x3 + FAN_ACCESS = 0x1 + FAN_ACCESS_PERM = 0x20000 + FAN_ALLOW = 0x1 + FAN_ALL_CLASS_BITS = 0xc + FAN_ALL_EVENTS = 0x3b + FAN_ALL_INIT_FLAGS = 0x3f + FAN_ALL_MARK_FLAGS = 0xff + FAN_ALL_OUTGOING_EVENTS = 0x3403b + FAN_ALL_PERM_EVENTS = 0x30000 + FAN_ATTRIB = 0x4 + FAN_AUDIT = 0x10 + FAN_CLASS_CONTENT = 0x4 + FAN_CLASS_NOTIF = 0x0 + FAN_CLASS_PRE_CONTENT = 0x8 + FAN_CLOEXEC = 0x1 + FAN_CLOSE = 0x18 + FAN_CLOSE_NOWRITE = 0x10 + FAN_CLOSE_WRITE = 0x8 + FAN_CREATE = 0x100 + FAN_DELETE = 0x200 + FAN_DELETE_SELF = 0x400 + FAN_DENY = 0x2 + FAN_ENABLE_AUDIT = 0x40 + FAN_EVENT_INFO_TYPE_DFID = 0x3 + FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 + FAN_EVENT_INFO_TYPE_FID = 0x1 + FAN_EVENT_METADATA_LEN = 0x18 + FAN_EVENT_ON_CHILD = 0x8000000 + FAN_MARK_ADD = 0x1 + FAN_MARK_DONT_FOLLOW = 0x4 + FAN_MARK_FILESYSTEM = 0x100 + FAN_MARK_FLUSH = 0x80 + FAN_MARK_IGNORED_MASK = 0x20 + FAN_MARK_IGNORED_SURV_MODIFY = 0x40 + FAN_MARK_INODE = 0x0 + FAN_MARK_MOUNT = 0x10 + FAN_MARK_ONLYDIR = 0x8 + FAN_MARK_REMOVE = 0x2 + FAN_MODIFY = 0x2 + FAN_MOVE = 0xc0 + FAN_MOVED_FROM = 0x40 + FAN_MOVED_TO = 0x80 + FAN_MOVE_SELF = 0x800 + FAN_NOFD = -0x1 + FAN_NONBLOCK = 0x2 + FAN_ONDIR = 0x40000000 + FAN_OPEN = 0x20 + FAN_OPEN_EXEC = 0x1000 + FAN_OPEN_EXEC_PERM = 0x40000 + FAN_OPEN_PERM = 0x10000 + FAN_Q_OVERFLOW = 0x4000 + FAN_REPORT_DFID_NAME = 0xc00 + FAN_REPORT_DIR_FID = 0x400 + FAN_REPORT_FID = 0x200 + FAN_REPORT_NAME = 0x800 + FAN_REPORT_TID = 0x100 + FAN_UNLIMITED_MARKS = 0x20 + FAN_UNLIMITED_QUEUE = 0x10 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FIDEDUPERANGE = 0xc0189436 + FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8 + FSCRYPT_KEY_DESC_PREFIX = "fscrypt:" + FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8 + FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10 + FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1 + FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2 + FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1 + FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2 + FSCRYPT_KEY_STATUS_ABSENT = 0x1 + FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1 + FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3 + FSCRYPT_KEY_STATUS_PRESENT = 0x2 + FSCRYPT_MAX_KEY_SIZE = 0x40 + FSCRYPT_MODE_ADIANTUM = 0x9 + FSCRYPT_MODE_AES_128_CBC = 0x5 + FSCRYPT_MODE_AES_128_CTS = 0x6 + FSCRYPT_MODE_AES_256_CTS = 0x4 + FSCRYPT_MODE_AES_256_XTS = 0x1 + FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2 + FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3 + FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0 + FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1 + FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3 + FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4 + FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 = 0x10 + FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8 + FSCRYPT_POLICY_V1 = 0x0 + FSCRYPT_POLICY_V2 = 0x2 + FS_ENCRYPTION_MODE_ADIANTUM = 0x9 + FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 + FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 + FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 + FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 + FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 + FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 + FS_ENCRYPTION_MODE_INVALID = 0x0 + FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 + FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 + FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617 + FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a + FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616 + FS_IOC_MEASURE_VERITY = 0xc0046686 + FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618 + FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619 + FS_KEY_DESCRIPTOR_SIZE = 0x8 + FS_KEY_DESC_PREFIX = "fscrypt:" + FS_KEY_DESC_PREFIX_SIZE = 0x8 + FS_MAX_KEY_SIZE = 0x40 + FS_POLICY_FLAGS_PAD_16 = 0x2 + FS_POLICY_FLAGS_PAD_32 = 0x3 + FS_POLICY_FLAGS_PAD_4 = 0x0 + FS_POLICY_FLAGS_PAD_8 = 0x1 + FS_POLICY_FLAGS_PAD_MASK = 0x3 + FS_POLICY_FLAGS_VALID = 0x7 + FS_VERITY_FL = 0x100000 + FS_VERITY_HASH_ALG_SHA256 = 0x1 + FS_VERITY_HASH_ALG_SHA512 = 0x2 + FUTEXFS_SUPER_MAGIC = 0xbad1dea + F_ADD_SEALS = 0x409 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_GET_FILE_RW_HINT = 0x40d + F_GET_RW_HINT = 0x40b + F_GET_SEALS = 0x40a + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_SEAL_FUTURE_WRITE = 0x10 + F_SEAL_GROW = 0x4 + F_SEAL_SEAL = 0x1 + F_SEAL_SHRINK = 0x2 + F_SEAL_WRITE = 0x8 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SET_FILE_RW_HINT = 0x40e + F_SET_RW_HINT = 0x40c + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + GENL_ADMIN_PERM = 0x1 + GENL_CMD_CAP_DO = 0x2 + GENL_CMD_CAP_DUMP = 0x4 + GENL_CMD_CAP_HASPOL = 0x8 + GENL_HDRLEN = 0x4 + GENL_ID_CTRL = 0x10 + GENL_ID_PMCRAID = 0x12 + GENL_ID_VFS_DQUOT = 0x11 + GENL_MAX_ID = 0x3ff + GENL_MIN_ID = 0x10 + GENL_NAMSIZ = 0x10 + GENL_START_ALLOC = 0x13 + GENL_UNS_ADMIN_PERM = 0x10 + GRND_INSECURE = 0x4 + GRND_NONBLOCK = 0x1 + GRND_RANDOM = 0x2 + HDIO_DRIVE_CMD = 0x31f + HDIO_DRIVE_CMD_AEB = 0x31e + HDIO_DRIVE_CMD_HDR_SIZE = 0x4 + HDIO_DRIVE_HOB_HDR_SIZE = 0x8 + HDIO_DRIVE_RESET = 0x31c + HDIO_DRIVE_TASK = 0x31e + HDIO_DRIVE_TASKFILE = 0x31d + HDIO_DRIVE_TASK_HDR_SIZE = 0x8 + HDIO_GETGEO = 0x301 + HDIO_GET_32BIT = 0x309 + HDIO_GET_ACOUSTIC = 0x30f + HDIO_GET_ADDRESS = 0x310 + HDIO_GET_BUSSTATE = 0x31a + HDIO_GET_DMA = 0x30b + HDIO_GET_IDENTITY = 0x30d + HDIO_GET_KEEPSETTINGS = 0x308 + HDIO_GET_MULTCOUNT = 0x304 + HDIO_GET_NICE = 0x30c + HDIO_GET_NOWERR = 0x30a + HDIO_GET_QDMA = 0x305 + HDIO_GET_UNMASKINTR = 0x302 + HDIO_GET_WCACHE = 0x30e + HDIO_OBSOLETE_IDENTITY = 0x307 + HDIO_SCAN_HWIF = 0x328 + HDIO_SET_32BIT = 0x324 + HDIO_SET_ACOUSTIC = 0x32c + HDIO_SET_ADDRESS = 0x32f + HDIO_SET_BUSSTATE = 0x32d + HDIO_SET_DMA = 0x326 + HDIO_SET_KEEPSETTINGS = 0x323 + HDIO_SET_MULTCOUNT = 0x321 + HDIO_SET_NICE = 0x329 + HDIO_SET_NOWERR = 0x325 + HDIO_SET_PIO_MODE = 0x327 + HDIO_SET_QDMA = 0x32e + HDIO_SET_UNMASKINTR = 0x322 + HDIO_SET_WCACHE = 0x32b + HDIO_SET_XFER = 0x306 + HDIO_TRISTATE_HWIF = 0x31b + HDIO_UNREGISTER_HWIF = 0x32a + HID_MAX_DESCRIPTOR_SIZE = 0x1000 + HOSTFS_SUPER_MAGIC = 0xc0ffee + HPFS_SUPER_MAGIC = 0xf995e849 + HUGETLBFS_MAGIC = 0x958458f6 + IBSHIFT = 0x10 + ICMPV6_FILTER = 0x1 + ICMPV6_FILTER_BLOCK = 0x1 + ICMPV6_FILTER_BLOCKOTHERS = 0x3 + ICMPV6_FILTER_PASS = 0x2 + ICMPV6_FILTER_PASSONLY = 0x4 + ICMP_FILTER = 0x1 + ICRNL = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0xa + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NAPI = 0x10 + IFF_NAPI_FRAGS = 0x20 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MASK_CREATE = 0x10000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERNET = 0x8f + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_L2TP = 0x73 + IPPROTO_MH = 0x87 + IPPROTO_MPLS = 0x89 + IPPROTO_MPTCP = 0x106 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADDR_PREFERENCES = 0x48 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_AUTOFLOWLABEL = 0x46 + IPV6_CHECKSUM = 0x7 + IPV6_DONTFRAG = 0x3e + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_FLOW = 0x11 + IPV6_FREEBIND = 0x4e + IPV6_HDRINCL = 0x24 + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MINHOPCOUNT = 0x49 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_ALL = 0x1d + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_ORIGDSTADDR = 0x4a + IPV6_PATHMTU = 0x3d + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVERR_RFC4884 = 0x1f + IPV6_RECVFRAGSIZE = 0x4d + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVORIGDSTADDR = 0x4a + IPV6_RECVPATHMTU = 0x3c + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_ROUTER_ALERT_ISOLATE = 0x1e + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_TRANSPARENT = 0x4b + IPV6_UNICAST_HOPS = 0x10 + IPV6_UNICAST_IF = 0x4c + IPV6_USER_FLOW = 0xe + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BIND_ADDRESS_NO_PORT = 0x18 + IP_BLOCK_SOURCE = 0x26 + IP_CHECKSUM = 0x17 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVERR_RFC4884 = 0x1a + IP_RECVFRAGSIZE = 0x19 + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_USER_FLOW = 0xd + IP_XFRM_POLICY = 0x11 + ISOFS_SUPER_MAGIC = 0x9660 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + JFFS2_SUPER_MAGIC = 0x72b6 + KEXEC_ARCH_386 = 0x30000 + KEXEC_ARCH_68K = 0x40000 + KEXEC_ARCH_AARCH64 = 0xb70000 + KEXEC_ARCH_ARM = 0x280000 + KEXEC_ARCH_DEFAULT = 0x0 + KEXEC_ARCH_IA_64 = 0x320000 + KEXEC_ARCH_MASK = 0xffff0000 + KEXEC_ARCH_MIPS = 0x80000 + KEXEC_ARCH_MIPS_LE = 0xa0000 + KEXEC_ARCH_PARISC = 0xf0000 + KEXEC_ARCH_PPC = 0x140000 + KEXEC_ARCH_PPC64 = 0x150000 + KEXEC_ARCH_S390 = 0x160000 + KEXEC_ARCH_SH = 0x2a0000 + KEXEC_ARCH_X86_64 = 0x3e0000 + KEXEC_FILE_NO_INITRAMFS = 0x4 + KEXEC_FILE_ON_CRASH = 0x2 + KEXEC_FILE_UNLOAD = 0x1 + KEXEC_ON_CRASH = 0x1 + KEXEC_PRESERVE_CONTEXT = 0x2 + KEXEC_SEGMENT_MAX = 0x10 + KEYCTL_ASSUME_AUTHORITY = 0x10 + KEYCTL_CAPABILITIES = 0x1f + KEYCTL_CAPS0_BIG_KEY = 0x10 + KEYCTL_CAPS0_CAPABILITIES = 0x1 + KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 + KEYCTL_CAPS0_INVALIDATE = 0x20 + KEYCTL_CAPS0_MOVE = 0x80 + KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 + KEYCTL_CAPS0_PUBLIC_KEY = 0x8 + KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 + KEYCTL_CAPS1_NOTIFICATIONS = 0x4 + KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 + KEYCTL_CAPS1_NS_KEY_TAG = 0x2 + KEYCTL_CHOWN = 0x4 + KEYCTL_CLEAR = 0x7 + KEYCTL_DESCRIBE = 0x6 + KEYCTL_DH_COMPUTE = 0x17 + KEYCTL_GET_KEYRING_ID = 0x0 + KEYCTL_GET_PERSISTENT = 0x16 + KEYCTL_GET_SECURITY = 0x11 + KEYCTL_INSTANTIATE = 0xc + KEYCTL_INSTANTIATE_IOV = 0x14 + KEYCTL_INVALIDATE = 0x15 + KEYCTL_JOIN_SESSION_KEYRING = 0x1 + KEYCTL_LINK = 0x8 + KEYCTL_MOVE = 0x1e + KEYCTL_MOVE_EXCL = 0x1 + KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c + KEYCTL_READ = 0xb + KEYCTL_REJECT = 0x13 + KEYCTL_RESTRICT_KEYRING = 0x1d + KEYCTL_REVOKE = 0x3 + KEYCTL_SEARCH = 0xa + KEYCTL_SESSION_TO_PARENT = 0x12 + KEYCTL_SETPERM = 0x5 + KEYCTL_SET_REQKEY_KEYRING = 0xe + KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 + KEYCTL_UNLINK = 0x9 + KEYCTL_UPDATE = 0x2 + KEYCTL_WATCH_KEY = 0x20 + KEY_REQKEY_DEFL_DEFAULT = 0x0 + KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 + KEY_REQKEY_DEFL_NO_CHANGE = -0x1 + KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 + KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 + KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 + KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 + KEY_REQKEY_DEFL_USER_KEYRING = 0x4 + KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 + KEY_SPEC_GROUP_KEYRING = -0x6 + KEY_SPEC_PROCESS_KEYRING = -0x2 + KEY_SPEC_REQKEY_AUTH_KEY = -0x7 + KEY_SPEC_REQUESTOR_KEYRING = -0x8 + KEY_SPEC_SESSION_KEYRING = -0x3 + KEY_SPEC_THREAD_KEYRING = -0x1 + KEY_SPEC_USER_KEYRING = -0x4 + KEY_SPEC_USER_SESSION_KEYRING = -0x5 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + LOOP_CLR_FD = 0x4c01 + LOOP_CTL_ADD = 0x4c80 + LOOP_CTL_GET_FREE = 0x4c82 + LOOP_CTL_REMOVE = 0x4c81 + LOOP_GET_STATUS = 0x4c03 + LOOP_GET_STATUS64 = 0x4c05 + LOOP_SET_BLOCK_SIZE = 0x4c09 + LOOP_SET_CAPACITY = 0x4c07 + LOOP_SET_DIRECT_IO = 0x4c08 + LOOP_SET_FD = 0x4c00 + LOOP_SET_STATUS = 0x4c02 + LOOP_SET_STATUS64 = 0x4c04 + LOOP_SET_STATUS_CLEARABLE_FLAGS = 0x4 + LOOP_SET_STATUS_SETTABLE_FLAGS = 0xc + LO_KEY_SIZE = 0x20 + LO_NAME_SIZE = 0x40 + LWTUNNEL_IP6_MAX = 0x8 + LWTUNNEL_IP_MAX = 0x8 + LWTUNNEL_IP_OPTS_MAX = 0x3 + LWTUNNEL_IP_OPT_ERSPAN_MAX = 0x4 + LWTUNNEL_IP_OPT_GENEVE_MAX = 0x3 + LWTUNNEL_IP_OPT_VXLAN_MAX = 0x1 + MADV_COLD = 0x14 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_FREE = 0x8 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_KEEPONFORK = 0x13 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0x15 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MADV_WIPEONFORK = 0x12 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FIXED_NOREPLACE = 0x100000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_SHARED_VALIDATE = 0x3 + MAP_TYPE = 0xf + MCAST_BLOCK_SOURCE = 0x2b + MCAST_EXCLUDE = 0x0 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x2a + MCAST_JOIN_SOURCE_GROUP = 0x2e + MCAST_LEAVE_GROUP = 0x2d + MCAST_LEAVE_SOURCE_GROUP = 0x2f + MCAST_MSFILTER = 0x30 + MCAST_UNBLOCK_SOURCE = 0x2c + MFD_ALLOW_SEALING = 0x2 + MFD_CLOEXEC = 0x1 + MFD_HUGETLB = 0x4 + MFD_HUGE_16GB = -0x78000000 + MFD_HUGE_16MB = 0x60000000 + MFD_HUGE_1GB = 0x78000000 + MFD_HUGE_1MB = 0x50000000 + MFD_HUGE_256MB = 0x70000000 + MFD_HUGE_2GB = 0x7c000000 + MFD_HUGE_2MB = 0x54000000 + MFD_HUGE_32MB = 0x64000000 + MFD_HUGE_512KB = 0x4c000000 + MFD_HUGE_512MB = 0x74000000 + MFD_HUGE_64KB = 0x40000000 + MFD_HUGE_8MB = 0x5c000000 + MFD_HUGE_MASK = 0x3f + MFD_HUGE_SHIFT = 0x1a + MINIX2_SUPER_MAGIC = 0x2468 + MINIX2_SUPER_MAGIC2 = 0x2478 + MINIX3_SUPER_MAGIC = 0x4d5a + MINIX_SUPER_MAGIC = 0x137f + MINIX_SUPER_MAGIC2 = 0x138f + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MODULE_INIT_IGNORE_MODVERSIONS = 0x1 + MODULE_INIT_IGNORE_VERMAGIC = 0x2 + MSDOS_SUPER_MAGIC = 0x4d44 + MSG_BATCH = 0x40000 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MSG_ZEROCOPY = 0x4000000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_BORN = 0x20000000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_LAZYTIME = 0x2000000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOREMOTELOCK = 0x8000000 + MS_NOSEC = 0x10000000 + MS_NOSUID = 0x2 + MS_NOSYMFOLLOW = 0x100 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x2800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SUBMOUNT = 0x4000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + MS_VERBOSE = 0x8000 + MTD_INODE_FS_MAGIC = 0x11307854 + NAME_MAX = 0xff + NCP_SUPER_MAGIC = 0x564c + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CAP_ACK = 0xa + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_EXT_ACK = 0xb + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc + NETLINK_INET_DIAG = 0x4 + 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_SMC = 0x16 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NETNSA_MAX = 0x5 + NETNSA_NSID_NOT_ASSIGNED = -0x1 + NFNETLINK_V0 = 0x0 + NFNLGRP_ACCT_QUOTA = 0x8 + NFNLGRP_CONNTRACK_DESTROY = 0x3 + NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 + NFNLGRP_CONNTRACK_EXP_NEW = 0x4 + NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 + NFNLGRP_CONNTRACK_NEW = 0x1 + NFNLGRP_CONNTRACK_UPDATE = 0x2 + NFNLGRP_MAX = 0x9 + NFNLGRP_NFTABLES = 0x7 + NFNLGRP_NFTRACE = 0x9 + NFNLGRP_NONE = 0x0 + NFNL_BATCH_MAX = 0x1 + NFNL_MSG_BATCH_BEGIN = 0x10 + NFNL_MSG_BATCH_END = 0x11 + NFNL_NFA_NEST = 0x8000 + NFNL_SUBSYS_ACCT = 0x7 + NFNL_SUBSYS_COUNT = 0xc + NFNL_SUBSYS_CTHELPER = 0x9 + NFNL_SUBSYS_CTNETLINK = 0x1 + NFNL_SUBSYS_CTNETLINK_EXP = 0x2 + NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 + NFNL_SUBSYS_IPSET = 0x6 + NFNL_SUBSYS_NFTABLES = 0xa + NFNL_SUBSYS_NFT_COMPAT = 0xb + NFNL_SUBSYS_NONE = 0x0 + NFNL_SUBSYS_OSF = 0x5 + NFNL_SUBSYS_QUEUE = 0x3 + NFNL_SUBSYS_ULOG = 0x4 + NFS_SUPER_MAGIC = 0x6969 + NILFS_SUPER_MAGIC = 0x3434 + NL0 = 0x0 + NL1 = 0x100 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_ACK_TLVS = 0x200 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CAPPED = 0x100 + 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 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_NONREC = 0x100 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NSFS_MAGIC = 0x6e736673 + OCFS2_SUPER_MAGIC = 0x7461636f + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLRET = 0x20 + ONOCR = 0x10 + OPENPROM_SUPER_MAGIC = 0x9fa1 + OPOST = 0x1 + OVERLAYFS_SUPER_MAGIC = 0x794c7630 + O_ACCMODE = 0x3 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CBPF = 0x6 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_DATA = 0x16 + PACKET_FANOUT_EBPF = 0x7 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_ROLLOVER_STATS = 0x15 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PERF_ATTR_SIZE_VER0 = 0x40 + PERF_ATTR_SIZE_VER1 = 0x48 + PERF_ATTR_SIZE_VER2 = 0x50 + PERF_ATTR_SIZE_VER3 = 0x60 + PERF_ATTR_SIZE_VER4 = 0x68 + PERF_ATTR_SIZE_VER5 = 0x70 + PERF_ATTR_SIZE_VER6 = 0x78 + PERF_AUX_FLAG_COLLISION = 0x8 + PERF_AUX_FLAG_OVERWRITE = 0x2 + PERF_AUX_FLAG_PARTIAL = 0x4 + PERF_AUX_FLAG_TRUNCATED = 0x1 + PERF_FLAG_FD_CLOEXEC = 0x8 + PERF_FLAG_FD_NO_GROUP = 0x1 + PERF_FLAG_FD_OUTPUT = 0x2 + PERF_FLAG_PID_CGROUP = 0x4 + PERF_MAX_CONTEXTS_PER_STACK = 0x8 + PERF_MAX_STACK_DEPTH = 0x7f + PERF_MEM_LOCK_LOCKED = 0x2 + PERF_MEM_LOCK_NA = 0x1 + PERF_MEM_LOCK_SHIFT = 0x18 + PERF_MEM_LVLNUM_ANY_CACHE = 0xb + PERF_MEM_LVLNUM_L1 = 0x1 + PERF_MEM_LVLNUM_L2 = 0x2 + PERF_MEM_LVLNUM_L3 = 0x3 + PERF_MEM_LVLNUM_L4 = 0x4 + PERF_MEM_LVLNUM_LFB = 0xc + PERF_MEM_LVLNUM_NA = 0xf + PERF_MEM_LVLNUM_PMEM = 0xe + PERF_MEM_LVLNUM_RAM = 0xd + PERF_MEM_LVLNUM_SHIFT = 0x21 + PERF_MEM_LVL_HIT = 0x2 + PERF_MEM_LVL_IO = 0x1000 + PERF_MEM_LVL_L1 = 0x8 + PERF_MEM_LVL_L2 = 0x20 + PERF_MEM_LVL_L3 = 0x40 + PERF_MEM_LVL_LFB = 0x10 + PERF_MEM_LVL_LOC_RAM = 0x80 + PERF_MEM_LVL_MISS = 0x4 + PERF_MEM_LVL_NA = 0x1 + PERF_MEM_LVL_REM_CCE1 = 0x400 + PERF_MEM_LVL_REM_CCE2 = 0x800 + PERF_MEM_LVL_REM_RAM1 = 0x100 + PERF_MEM_LVL_REM_RAM2 = 0x200 + PERF_MEM_LVL_SHIFT = 0x5 + PERF_MEM_LVL_UNC = 0x2000 + PERF_MEM_OP_EXEC = 0x10 + PERF_MEM_OP_LOAD = 0x2 + PERF_MEM_OP_NA = 0x1 + PERF_MEM_OP_PFETCH = 0x8 + PERF_MEM_OP_SHIFT = 0x0 + PERF_MEM_OP_STORE = 0x4 + PERF_MEM_REMOTE_REMOTE = 0x1 + PERF_MEM_REMOTE_SHIFT = 0x25 + PERF_MEM_SNOOPX_FWD = 0x1 + PERF_MEM_SNOOPX_SHIFT = 0x26 + PERF_MEM_SNOOP_HIT = 0x4 + PERF_MEM_SNOOP_HITM = 0x10 + PERF_MEM_SNOOP_MISS = 0x8 + PERF_MEM_SNOOP_NA = 0x1 + PERF_MEM_SNOOP_NONE = 0x2 + PERF_MEM_SNOOP_SHIFT = 0x13 + PERF_MEM_TLB_HIT = 0x2 + PERF_MEM_TLB_L1 = 0x8 + PERF_MEM_TLB_L2 = 0x10 + PERF_MEM_TLB_MISS = 0x4 + PERF_MEM_TLB_NA = 0x1 + PERF_MEM_TLB_OS = 0x40 + PERF_MEM_TLB_SHIFT = 0x1a + PERF_MEM_TLB_WK = 0x20 + PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER = 0x1 + PERF_RECORD_MISC_COMM_EXEC = 0x2000 + PERF_RECORD_MISC_CPUMODE_MASK = 0x7 + PERF_RECORD_MISC_CPUMODE_UNKNOWN = 0x0 + PERF_RECORD_MISC_EXACT_IP = 0x4000 + PERF_RECORD_MISC_EXT_RESERVED = 0x8000 + PERF_RECORD_MISC_FORK_EXEC = 0x2000 + PERF_RECORD_MISC_GUEST_KERNEL = 0x4 + PERF_RECORD_MISC_GUEST_USER = 0x5 + PERF_RECORD_MISC_HYPERVISOR = 0x3 + PERF_RECORD_MISC_KERNEL = 0x1 + PERF_RECORD_MISC_MMAP_DATA = 0x2000 + PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT = 0x1000 + PERF_RECORD_MISC_SWITCH_OUT = 0x2000 + PERF_RECORD_MISC_SWITCH_OUT_PREEMPT = 0x4000 + PERF_RECORD_MISC_USER = 0x2 + PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 + PIPEFS_MAGIC = 0x50495045 + PPC_CMM_MAGIC = 0xc7571590 + PPPIOCGNPMODE = 0xc008744c + PPPIOCNEWUNIT = 0xc004743e + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROC_SUPER_MAGIC = 0x9fa0 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CAP_AMBIENT = 0x2f + PR_CAP_AMBIENT_CLEAR_ALL = 0x4 + PR_CAP_AMBIENT_IS_SET = 0x1 + PR_CAP_AMBIENT_LOWER = 0x3 + PR_CAP_AMBIENT_RAISE = 0x2 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_IO_FLUSHER = 0x3a + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_SPECULATION_CTRL = 0x34 + PR_GET_TAGGED_ADDR_CTRL = 0x38 + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_MTE_TAG_MASK = 0x7fff8 + PR_MTE_TAG_SHIFT = 0x3 + PR_MTE_TCF_ASYNC = 0x4 + PR_MTE_TCF_MASK = 0x6 + PR_MTE_TCF_NONE = 0x0 + PR_MTE_TCF_SHIFT = 0x1 + PR_MTE_TCF_SYNC = 0x2 + PR_PAC_APDAKEY = 0x4 + PR_PAC_APDBKEY = 0x8 + PR_PAC_APGAKEY = 0x10 + PR_PAC_APIAKEY = 0x1 + PR_PAC_APIBKEY = 0x2 + PR_PAC_RESET_KEYS = 0x36 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_IO_FLUSHER = 0x39 + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_SPECULATION_CTRL = 0x35 + PR_SET_SYSCALL_USER_DISPATCH = 0x3b + PR_SET_TAGGED_ADDR_CTRL = 0x37 + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_SPEC_DISABLE = 0x4 + PR_SPEC_DISABLE_NOEXEC = 0x10 + PR_SPEC_ENABLE = 0x2 + PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 + PR_SPEC_NOT_AFFECTED = 0x0 + PR_SPEC_PRCTL = 0x1 + PR_SPEC_STORE_BYPASS = 0x0 + PR_SVE_GET_VL = 0x33 + PR_SVE_SET_VL = 0x32 + PR_SVE_SET_VL_ONEXEC = 0x40000 + PR_SVE_VL_INHERIT = 0x20000 + PR_SVE_VL_LEN_MASK = 0xffff + PR_SYS_DISPATCH_OFF = 0x0 + PR_SYS_DISPATCH_ON = 0x1 + PR_TAGGED_ADDR_ENABLE = 0x1 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PSTOREFS_MAGIC = 0x6165676c + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 + PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_SYSCALL_INFO = 0x420e + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x3000ff + PTRACE_O_SUSPEND_SECCOMP = 0x200000 + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SECCOMP_GET_FILTER = 0x420c + PTRACE_SECCOMP_GET_METADATA = 0x420d + PTRACE_SEIZE = 0x4206 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_SYSCALL_INFO_ENTRY = 0x1 + PTRACE_SYSCALL_INFO_EXIT = 0x2 + PTRACE_SYSCALL_INFO_NONE = 0x0 + PTRACE_SYSCALL_INFO_SECCOMP = 0x3 + PTRACE_TRACEME = 0x0 + QNX4_SUPER_MAGIC = 0x2f + QNX6_SUPER_MAGIC = 0x68191122 + RAMFS_MAGIC = 0x858458f6 + RDTGROUP_SUPER_MAGIC = 0x7655821 + REISERFS_SUPER_MAGIC = 0x52654973 + RENAME_EXCHANGE = 0x2 + RENAME_NOREPLACE = 0x1 + RENAME_WHITEOUT = 0x4 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_LOCKS = 0xa + RLIMIT_MSGQUEUE = 0xc + RLIMIT_NICE = 0xd + RLIMIT_RTPRIO = 0xe + RLIMIT_RTTIME = 0xf + RLIMIT_SIGPENDING = 0xb + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0xffffffffffffffff + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FASTOPEN_NO_COOKIE = 0x11 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_MASK = 0xf + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x11 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x1e + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTC_AF = 0x20 + RTC_IRQF = 0x80 + RTC_MAX_FREQ = 0x2000 + RTC_PF = 0x40 + RTC_UF = 0x10 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELCHAIN = 0x65 + RTM_DELLINK = 0x11 + RTM_DELLINKPROP = 0x6d + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNETCONF = 0x51 + RTM_DELNEXTHOP = 0x69 + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_DELVLAN = 0x71 + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_FIB_MATCH = 0x2000 + RTM_F_LOOKUP_TABLE = 0x1000 + RTM_F_NOTIFY = 0x100 + RTM_F_OFFLOAD = 0x4000 + RTM_F_PREFIX = 0x800 + RTM_F_TRAP = 0x8000 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETCHAIN = 0x66 + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETLINKPROP = 0x6e + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNEXTHOP = 0x6a + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETSTATS = 0x5e + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_GETVLAN = 0x72 + RTM_MAX = 0x73 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWCACHEREPORT = 0x60 + RTM_NEWCHAIN = 0x64 + RTM_NEWLINK = 0x10 + RTM_NEWLINKPROP = 0x6c + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNEXTHOP = 0x68 + RTM_NEWNSID = 0x58 + RTM_NEWNVLAN = 0x70 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWSTATS = 0x5c + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x19 + RTM_NR_MSGTYPES = 0x64 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_COMPARE_MASK = 0x59 + RTNH_F_DEAD = 0x1 + RTNH_F_LINKDOWN = 0x10 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTNH_F_TRAP = 0x40 + RTNH_F_UNRESOLVED = 0x20 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BGP = 0xba + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_EIGRP = 0xc0 + RTPROT_GATED = 0x8 + RTPROT_ISIS = 0xbb + RTPROT_KEEPALIVED = 0x12 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_OSPF = 0xbc + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_RIP = 0xbd + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + RWF_APPEND = 0x10 + RWF_DSYNC = 0x2 + RWF_HIPRI = 0x1 + RWF_NOWAIT = 0x8 + RWF_SUPPORTED = 0x1f + RWF_SYNC = 0x4 + RWF_WRITE_LIFE_NOT_SET = 0x0 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SC_LOG_FLUSH = 0x100000 + SECCOMP_MODE_DISABLED = 0x0 + SECCOMP_MODE_FILTER = 0x2 + SECCOMP_MODE_STRICT = 0x1 + SECURITYFS_MAGIC = 0x73636673 + SELINUX_MAGIC = 0xf97cff8c + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCBONDCHANGEACTIVE = 0x8995 + SIOCBONDENSLAVE = 0x8990 + SIOCBONDINFOQUERY = 0x8994 + SIOCBONDRELEASE = 0x8991 + SIOCBONDSETHWADDR = 0x8992 + SIOCBONDSLAVEINFOQUERY = 0x8993 + SIOCBRADDBR = 0x89a0 + SIOCBRADDIF = 0x89a2 + SIOCBRDELBR = 0x89a1 + SIOCBRDELIF = 0x89a3 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCETHTOOL = 0x8946 + SIOCGARP = 0x8954 + SIOCGETLINKNAME = 0x89e0 + SIOCGETNODEID = 0x89e1 + SIOCGHWTSTAMP = 0x89b1 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGIFVLAN = 0x8982 + SIOCGMIIPHY = 0x8947 + SIOCGMIIREG = 0x8948 + SIOCGPPPCSTATS = 0x89f2 + SIOCGPPPSTATS = 0x89f0 + SIOCGPPPVER = 0x89f1 + SIOCGRARP = 0x8961 + SIOCGSKNS = 0x894c + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCGSTAMPNS_OLD = 0x8907 + SIOCGSTAMP_OLD = 0x8906 + SIOCOUTQNSD = 0x894b + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSHWTSTAMP = 0x89b0 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSIFVLAN = 0x8983 + SIOCSMIIREG = 0x8949 + SIOCSRARP = 0x8962 + SIOCWANDEV = 0x894a + SMACK_MAGIC = 0x43415d53 + SMART_AUTOSAVE = 0xd2 + SMART_AUTO_OFFLINE = 0xdb + SMART_DISABLE = 0xd9 + SMART_ENABLE = 0xd8 + SMART_HCYL_PASS = 0xc2 + SMART_IMMEDIATE_OFFLINE = 0xd4 + SMART_LCYL_PASS = 0x4f + SMART_READ_LOG_SECTOR = 0xd5 + SMART_READ_THRESHOLDS = 0xd1 + SMART_READ_VALUES = 0xd0 + SMART_SAVE = 0xd3 + SMART_STATUS = 0xda + SMART_WRITE_LOG_SECTOR = 0xd6 + SMART_WRITE_THRESHOLDS = 0xd7 + SMB_SUPER_MAGIC = 0x517b + SOCKFS_MAGIC = 0x534f434b + SOCK_DCCP = 0x6 + SOCK_IOC_TYPE = 0x89 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOL_AAL = 0x109 + SOL_ALG = 0x117 + SOL_ATM = 0x108 + SOL_CAIF = 0x116 + SOL_CAN_BASE = 0x64 + SOL_CAN_RAW = 0x65 + SOL_DCCP = 0x10d + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_IUCV = 0x115 + SOL_KCM = 0x119 + SOL_LLC = 0x10c + SOL_NETBEUI = 0x10b + SOL_NETLINK = 0x10e + SOL_NFC = 0x118 + SOL_PACKET = 0x107 + SOL_PNPIPE = 0x113 + SOL_PPPOL2TP = 0x111 + SOL_RAW = 0xff + SOL_RDS = 0x114 + SOL_RXRPC = 0x110 + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_TLS = 0x11a + SOL_X25 = 0x106 + SOL_XDP = 0x11b + SOMAXCONN = 0x1000 + SO_ATTACH_FILTER = 0x1a + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 + SO_EE_CODE_TXTIME_MISSED = 0x2 + SO_EE_CODE_ZEROCOPY_COPIED = 0x1 + SO_EE_ORIGIN_ICMP = 0x2 + SO_EE_ORIGIN_ICMP6 = 0x3 + SO_EE_ORIGIN_LOCAL = 0x1 + SO_EE_ORIGIN_NONE = 0x0 + SO_EE_ORIGIN_TIMESTAMPING = 0x4 + SO_EE_ORIGIN_TXSTATUS = 0x4 + SO_EE_ORIGIN_TXTIME = 0x6 + SO_EE_ORIGIN_ZEROCOPY = 0x5 + SO_EE_RFC4884_FLAG_INVALID = 0x1 + SO_GET_FILTER = 0x1a + SO_NO_CHECK = 0xb + SO_PEERNAME = 0x1c + SO_PRIORITY = 0xc + SO_TIMESTAMP = 0x1d + SO_TIMESTAMP_OLD = 0x1d + 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 + SQUASHFS_MAGIC = 0x73717368 + STACK_END_MAGIC = 0x57ac6e9d + STATX_ALL = 0xfff + STATX_ATIME = 0x20 + STATX_ATTR_APPEND = 0x20 + STATX_ATTR_AUTOMOUNT = 0x1000 + STATX_ATTR_COMPRESSED = 0x4 + STATX_ATTR_DAX = 0x200000 + STATX_ATTR_ENCRYPTED = 0x800 + STATX_ATTR_IMMUTABLE = 0x10 + STATX_ATTR_MOUNT_ROOT = 0x2000 + STATX_ATTR_NODUMP = 0x40 + STATX_ATTR_VERITY = 0x100000 + STATX_BASIC_STATS = 0x7ff + STATX_BLOCKS = 0x400 + STATX_BTIME = 0x800 + STATX_CTIME = 0x80 + STATX_GID = 0x10 + STATX_INO = 0x100 + STATX_MNT_ID = 0x1000 + STATX_MODE = 0x2 + STATX_MTIME = 0x40 + STATX_NLINK = 0x4 + STATX_SIZE = 0x200 + STATX_TYPE = 0x1 + STATX_UID = 0x8 + STATX__RESERVED = 0x80000000 + SYNC_FILE_RANGE_WAIT_AFTER = 0x4 + SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 + SYNC_FILE_RANGE_WRITE = 0x2 + SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 + SYSFS_MAGIC = 0x62656572 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TASKSTATS_CMD_ATTR_MAX = 0x4 + TASKSTATS_CMD_MAX = 0x2 + TASKSTATS_GENL_NAME = "TASKSTATS" + TASKSTATS_GENL_VERSION = 0x1 + TASKSTATS_TYPE_MAX = 0x6 + TASKSTATS_VERSION = 0xa + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_CC_INFO = 0x1a + TCP_CM_INQ = 0x24 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_FASTOPEN_CONNECT = 0x1e + TCP_FASTOPEN_KEY = 0x21 + TCP_FASTOPEN_NO_COOKIE = 0x22 + TCP_INFO = 0xb + TCP_INQ = 0x24 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_EXT = 0x20 + TCP_MD5SIG_FLAG_PREFIX = 0x1 + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_NOTSENT_LOWAT = 0x19 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OFF = 0x0 + TCP_REPAIR_OFF_NO_WP = -0x1 + TCP_REPAIR_ON = 0x1 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_REPAIR_WINDOW = 0x1d + TCP_SAVED_SYN = 0x1c + TCP_SAVE_SYN = 0x1b + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_TX_DELAY = 0x25 + TCP_ULP = 0x1f + TCP_USER_TIMEOUT = 0x12 + TCP_V4_FLOW = 0x1 + TCP_V6_FLOW = 0x5 + TCP_WINDOW_CLAMP = 0xa + TCP_ZEROCOPY_RECEIVE = 0x23 + TFD_TIMER_ABSTIME = 0x1 + TFD_TIMER_CANCEL_ON_SET = 0x2 + TIMER_ABSTIME = 0x1 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RTS = 0x4 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIPC_ADDR_ID = 0x3 + TIPC_ADDR_MCAST = 0x1 + TIPC_ADDR_NAME = 0x2 + TIPC_ADDR_NAMESEQ = 0x1 + TIPC_AEAD_ALG_NAME = 0x20 + TIPC_AEAD_KEYLEN_MAX = 0x24 + TIPC_AEAD_KEYLEN_MIN = 0x14 + TIPC_AEAD_KEY_SIZE_MAX = 0x48 + TIPC_CFG_SRV = 0x0 + TIPC_CLUSTER_BITS = 0xc + TIPC_CLUSTER_MASK = 0xfff000 + TIPC_CLUSTER_OFFSET = 0xc + TIPC_CLUSTER_SIZE = 0xfff + TIPC_CONN_SHUTDOWN = 0x5 + TIPC_CONN_TIMEOUT = 0x82 + TIPC_CRITICAL_IMPORTANCE = 0x3 + TIPC_DESTNAME = 0x3 + TIPC_DEST_DROPPABLE = 0x81 + TIPC_ERRINFO = 0x1 + TIPC_ERR_NO_NAME = 0x1 + TIPC_ERR_NO_NODE = 0x3 + TIPC_ERR_NO_PORT = 0x2 + TIPC_ERR_OVERLOAD = 0x4 + TIPC_GROUP_JOIN = 0x87 + TIPC_GROUP_LEAVE = 0x88 + TIPC_GROUP_LOOPBACK = 0x1 + TIPC_GROUP_MEMBER_EVTS = 0x2 + TIPC_HIGH_IMPORTANCE = 0x2 + TIPC_IMPORTANCE = 0x7f + TIPC_LINK_STATE = 0x2 + TIPC_LOW_IMPORTANCE = 0x0 + TIPC_MAX_BEARER_NAME = 0x20 + TIPC_MAX_IF_NAME = 0x10 + TIPC_MAX_LINK_NAME = 0x44 + TIPC_MAX_MEDIA_NAME = 0x10 + TIPC_MAX_USER_MSG_SIZE = 0x101d0 + TIPC_MCAST_BROADCAST = 0x85 + TIPC_MCAST_REPLICAST = 0x86 + TIPC_MEDIUM_IMPORTANCE = 0x1 + TIPC_NODEID_LEN = 0x10 + TIPC_NODELAY = 0x8a + TIPC_NODE_BITS = 0xc + TIPC_NODE_MASK = 0xfff + TIPC_NODE_OFFSET = 0x0 + TIPC_NODE_RECVQ_DEPTH = 0x83 + TIPC_NODE_SIZE = 0xfff + TIPC_NODE_STATE = 0x0 + TIPC_OK = 0x0 + TIPC_PUBLISHED = 0x1 + TIPC_REKEYING_NOW = 0xffffffff + TIPC_RESERVED_TYPES = 0x40 + TIPC_RETDATA = 0x2 + TIPC_SERVICE_ADDR = 0x2 + TIPC_SERVICE_RANGE = 0x1 + TIPC_SOCKET_ADDR = 0x3 + TIPC_SOCK_RECVQ_DEPTH = 0x84 + TIPC_SOCK_RECVQ_USED = 0x89 + TIPC_SRC_DROPPABLE = 0x80 + TIPC_SUBSCR_TIMEOUT = 0x3 + TIPC_SUB_CANCEL = 0x4 + TIPC_SUB_PORTS = 0x1 + TIPC_SUB_SERVICE = 0x2 + TIPC_TOP_SRV = 0x1 + TIPC_WAIT_FOREVER = 0xffffffff + TIPC_WITHDRAWN = 0x2 + TIPC_ZONE_BITS = 0x8 + TIPC_ZONE_CLUSTER_MASK = 0xfffff000 + TIPC_ZONE_MASK = 0xff000000 + TIPC_ZONE_OFFSET = 0x18 + TIPC_ZONE_SCOPE = 0x1 + TIPC_ZONE_SIZE = 0xff + TMPFS_MAGIC = 0x1021994 + TPACKET_ALIGNMENT = 0x10 + TPACKET_HDRLEN = 0x34 + TP_STATUS_AVAILABLE = 0x0 + TP_STATUS_BLK_TMO = 0x20 + TP_STATUS_COPY = 0x2 + TP_STATUS_CSUMNOTREADY = 0x8 + TP_STATUS_CSUM_VALID = 0x80 + TP_STATUS_KERNEL = 0x0 + TP_STATUS_LOSING = 0x4 + TP_STATUS_SENDING = 0x2 + TP_STATUS_SEND_REQUEST = 0x1 + TP_STATUS_TS_RAW_HARDWARE = 0x80000000 + TP_STATUS_TS_SOFTWARE = 0x20000000 + TP_STATUS_TS_SYS_HARDWARE = 0x40000000 + TP_STATUS_USER = 0x1 + TP_STATUS_VLAN_TPID_VALID = 0x40 + TP_STATUS_VLAN_VALID = 0x10 + TP_STATUS_WRONG_FORMAT = 0x4 + TRACEFS_MAGIC = 0x74726163 + TS_COMM_LEN = 0x20 + UDF_SUPER_MAGIC = 0x15013346 + UMOUNT_NOFOLLOW = 0x8 + USBDEVICE_SUPER_MAGIC = 0x9fa2 + UTIME_NOW = 0x3fffffff + UTIME_OMIT = 0x3ffffffe + V9FS_MAGIC = 0x1021997 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMADDR_CID_ANY = 0xffffffff + VMADDR_CID_HOST = 0x2 + VMADDR_CID_HYPERVISOR = 0x0 + VMADDR_CID_LOCAL = 0x1 + VMADDR_FLAG_TO_HOST = 0x1 + VMADDR_PORT_ANY = 0xffffffff + VM_SOCKETS_INVALID_VERSION = 0xffffffff + VQUIT = 0x1 + VT0 = 0x0 + WAKE_MAGIC = 0x20 + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WDIOC_SETPRETIMEOUT = 0xc0045708 + WDIOC_SETTIMEOUT = 0xc0045706 + WDIOF_ALARMONLY = 0x400 + WDIOF_CARDRESET = 0x20 + WDIOF_EXTERN1 = 0x4 + WDIOF_EXTERN2 = 0x8 + WDIOF_FANFAULT = 0x2 + WDIOF_KEEPALIVEPING = 0x8000 + WDIOF_MAGICCLOSE = 0x100 + WDIOF_OVERHEAT = 0x1 + WDIOF_POWEROVER = 0x40 + WDIOF_POWERUNDER = 0x10 + WDIOF_PRETIMEOUT = 0x200 + WDIOF_SETTIMEOUT = 0x80 + WDIOF_UNKNOWN = -0x1 + WDIOS_DISABLECARD = 0x1 + WDIOS_ENABLECARD = 0x2 + WDIOS_TEMPPANIC = 0x4 + WDIOS_UNKNOWN = -0x1 + WEXITED = 0x4 + WIN_ACKMEDIACHANGE = 0xdb + WIN_CHECKPOWERMODE1 = 0xe5 + WIN_CHECKPOWERMODE2 = 0x98 + WIN_DEVICE_RESET = 0x8 + WIN_DIAGNOSE = 0x90 + WIN_DOORLOCK = 0xde + WIN_DOORUNLOCK = 0xdf + WIN_DOWNLOAD_MICROCODE = 0x92 + WIN_FLUSH_CACHE = 0xe7 + WIN_FLUSH_CACHE_EXT = 0xea + WIN_FORMAT = 0x50 + WIN_GETMEDIASTATUS = 0xda + WIN_IDENTIFY = 0xec + WIN_IDENTIFY_DMA = 0xee + WIN_IDLEIMMEDIATE = 0xe1 + WIN_INIT = 0x60 + WIN_MEDIAEJECT = 0xed + WIN_MULTREAD = 0xc4 + WIN_MULTREAD_EXT = 0x29 + WIN_MULTWRITE = 0xc5 + WIN_MULTWRITE_EXT = 0x39 + WIN_NOP = 0x0 + WIN_PACKETCMD = 0xa0 + WIN_PIDENTIFY = 0xa1 + WIN_POSTBOOT = 0xdc + WIN_PREBOOT = 0xdd + WIN_QUEUED_SERVICE = 0xa2 + WIN_READ = 0x20 + WIN_READDMA = 0xc8 + WIN_READDMA_EXT = 0x25 + WIN_READDMA_ONCE = 0xc9 + WIN_READDMA_QUEUED = 0xc7 + WIN_READDMA_QUEUED_EXT = 0x26 + WIN_READ_BUFFER = 0xe4 + WIN_READ_EXT = 0x24 + WIN_READ_LONG = 0x22 + WIN_READ_LONG_ONCE = 0x23 + WIN_READ_NATIVE_MAX = 0xf8 + WIN_READ_NATIVE_MAX_EXT = 0x27 + WIN_READ_ONCE = 0x21 + WIN_RECAL = 0x10 + WIN_RESTORE = 0x10 + WIN_SECURITY_DISABLE = 0xf6 + WIN_SECURITY_ERASE_PREPARE = 0xf3 + WIN_SECURITY_ERASE_UNIT = 0xf4 + WIN_SECURITY_FREEZE_LOCK = 0xf5 + WIN_SECURITY_SET_PASS = 0xf1 + WIN_SECURITY_UNLOCK = 0xf2 + WIN_SEEK = 0x70 + WIN_SETFEATURES = 0xef + WIN_SETIDLE1 = 0xe3 + WIN_SETIDLE2 = 0x97 + WIN_SETMULT = 0xc6 + WIN_SET_MAX = 0xf9 + WIN_SET_MAX_EXT = 0x37 + WIN_SLEEPNOW1 = 0xe6 + WIN_SLEEPNOW2 = 0x99 + WIN_SMART = 0xb0 + WIN_SPECIFY = 0x91 + WIN_SRST = 0x8 + WIN_STANDBY = 0xe2 + WIN_STANDBY2 = 0x96 + WIN_STANDBYNOW1 = 0xe0 + WIN_STANDBYNOW2 = 0x94 + WIN_VERIFY = 0x40 + WIN_VERIFY_EXT = 0x42 + WIN_VERIFY_ONCE = 0x41 + WIN_WRITE = 0x30 + WIN_WRITEDMA = 0xca + WIN_WRITEDMA_EXT = 0x35 + WIN_WRITEDMA_ONCE = 0xcb + WIN_WRITEDMA_QUEUED = 0xcc + WIN_WRITEDMA_QUEUED_EXT = 0x36 + WIN_WRITE_BUFFER = 0xe8 + WIN_WRITE_EXT = 0x34 + WIN_WRITE_LONG = 0x32 + WIN_WRITE_LONG_ONCE = 0x33 + WIN_WRITE_ONCE = 0x31 + WIN_WRITE_SAME = 0xe9 + WIN_WRITE_VERIFY = 0x3c + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WSTOPPED = 0x2 + WUNTRACED = 0x2 + XATTR_CREATE = 0x1 + XATTR_REPLACE = 0x2 + XDP_COPY = 0x2 + XDP_FLAGS_DRV_MODE = 0x4 + XDP_FLAGS_HW_MODE = 0x8 + XDP_FLAGS_MASK = 0x1f + XDP_FLAGS_MODES = 0xe + XDP_FLAGS_REPLACE = 0x10 + XDP_FLAGS_SKB_MODE = 0x2 + XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 + XDP_MMAP_OFFSETS = 0x1 + XDP_OPTIONS = 0x8 + XDP_OPTIONS_ZEROCOPY = 0x1 + XDP_PACKET_HEADROOM = 0x100 + XDP_PGOFF_RX_RING = 0x0 + XDP_PGOFF_TX_RING = 0x80000000 + XDP_RING_NEED_WAKEUP = 0x1 + XDP_RX_RING = 0x2 + XDP_SHARED_UMEM = 0x1 + XDP_STATISTICS = 0x7 + XDP_TX_RING = 0x3 + XDP_UMEM_COMPLETION_RING = 0x6 + XDP_UMEM_FILL_RING = 0x5 + XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 + XDP_UMEM_PGOFF_FILL_RING = 0x100000000 + XDP_UMEM_REG = 0x4 + XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 + XDP_USE_NEED_WAKEUP = 0x8 + XDP_ZEROCOPY = 0x4 + XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 + Z3FOLD_MAGIC = 0x33 + ZONEFS_MAGIC = 0x5a4f4653 + ZSMALLOC_MAGIC = 0x58295829 + _HIDIOCGRAWNAME_LEN = 0x80 + _HIDIOCGRAWPHYS_LEN = 0x40 + _HIDIOCGRAWUNIQ_LEN = 0x40 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EAGAIN = syscall.Errno(0xb) + EBADF = syscall.Errno(0x9) + EBUSY = syscall.Errno(0x10) + ECHILD = syscall.Errno(0xa) + EDOM = syscall.Errno(0x21) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISDIR = syscall.Errno(0x15) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + ENFILE = syscall.Errno(0x17) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOMEM = syscall.Errno(0xc) + ENOSPC = syscall.Errno(0x1c) + ENOTBLK = syscall.Errno(0xf) + ENOTDIR = syscall.Errno(0x14) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EPERM = syscall.Errno(0x1) + EPIPE = syscall.Errno(0x20) + ERANGE = syscall.Errno(0x22) + EROFS = syscall.Errno(0x1e) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ETXTBSY = syscall.Errno(0x1a) + EWOULDBLOCK = syscall.Errno(0xb) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) +) 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 9e99d67cb..e91a1a957 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -1,2506 +1,514 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include -m32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && linux // +build 386,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FP_XSTATE_MAGIC2 = 0x46505845 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_32BIT = 0x40 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x8000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8008743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40087446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x400c744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40087447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8004700d - RTC_EPOCH_SET = 0x4004700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8004700b - RTC_IRQP_SET = 0x4004700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x801c7011 - RTC_PLL_SET = 0x401c7012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - 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 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - X86_FXSR_MAGIC = 0x0 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FP_XSTATE_MAGIC2 = 0x46505845 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x8000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8008743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40087446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x400c744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40087447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8004700d + RTC_EPOCH_SET = 0x4004700e + RTC_IRQP_READ = 0x8004700b + RTC_IRQP_SET = 0x4004700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x801c7011 + RTC_PLL_SET = 0x401c7012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x800854db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x20 + X86_FXSR_MAGIC = 0x0 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2509,23 +517,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2542,8 +542,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2551,99 +549,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) 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 e3091f1e3..a9cbac644 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -1,2506 +1,514 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && linux // +build amd64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FP_XSTATE_MAGIC2 = 0x46505845 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_32BIT = 0x40 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ARCH_PRCTL = 0x1e - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - 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 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FP_XSTATE_MAGIC2 = 0x46505845 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_ARCH_PRCTL = 0x1e + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2509,23 +517,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2542,8 +542,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2551,99 +549,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) 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 a75dfebcc..d74f3c15a 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -1,2512 +1,520 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && linux // +build arm,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x20000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8008743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40087446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x400c744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40087447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETCRUNCHREGS = 0x19 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFDPIC = 0x1f - PTRACE_GETFDPIC_EXEC = 0x0 - PTRACE_GETFDPIC_INTERP = 0x1 - PTRACE_GETFPREGS = 0xe - PTRACE_GETHBPREGS = 0x1d - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GETVFPREGS = 0x1b - PTRACE_GETWMMXREGS = 0x12 - PTRACE_GET_THREAD_AREA = 0x16 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETCRUNCHREGS = 0x1a - PTRACE_SETFPREGS = 0xf - PTRACE_SETHBPREGS = 0x1e - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SETVFPREGS = 0x1c - PTRACE_SETWMMXREGS = 0x13 - PTRACE_SET_SYSCALL = 0x17 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - PT_DATA_ADDR = 0x10004 - PT_TEXT_ADDR = 0x10000 - PT_TEXT_END_ADDR = 0x10008 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8004700d - RTC_EPOCH_SET = 0x4004700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8004700b - RTC_IRQP_SET = 0x4004700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x801c7011 - RTC_PLL_SET = 0x401c7012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - 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 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x20000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8008743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40087446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x400c744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40087447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETCRUNCHREGS = 0x19 + PTRACE_GETFDPIC = 0x1f + PTRACE_GETFDPIC_EXEC = 0x0 + PTRACE_GETFDPIC_INTERP = 0x1 + PTRACE_GETFPREGS = 0xe + PTRACE_GETHBPREGS = 0x1d + PTRACE_GETVFPREGS = 0x1b + PTRACE_GETWMMXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x16 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETCRUNCHREGS = 0x1a + PTRACE_SETFPREGS = 0xf + PTRACE_SETHBPREGS = 0x1e + PTRACE_SETVFPREGS = 0x1c + PTRACE_SETWMMXREGS = 0x13 + PTRACE_SET_SYSCALL = 0x17 + PT_DATA_ADDR = 0x10004 + PT_TEXT_ADDR = 0x10000 + PT_TEXT_END_ADDR = 0x10008 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8004700d + RTC_EPOCH_SET = 0x4004700e + RTC_IRQP_READ = 0x8004700b + RTC_IRQP_SET = 0x4004700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x801c7011 + RTC_PLL_SET = 0x401c7012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x800854db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2515,23 +523,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2548,8 +548,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2557,99 +555,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) 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 393ad7c91..e1538995b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -1,2497 +1,511 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && linux // +build arm64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ESR_MAGIC = 0x45535201 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - EXTRA_MAGIC = 0x45585401 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FPSIMD_MAGIC = 0x46508001 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SVE_MAGIC = 0x53564501 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - 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 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + ESR_MAGIC = 0x45535201 + EXTPROC = 0x10000 + EXTRA_MAGIC = 0x45585401 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FPSIMD_MAGIC = 0x46508001 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PROT_BTI = 0x10 + PROT_MTE = 0x20 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_PEEKMTETAGS = 0x21 + PTRACE_POKEMTETAGS = 0x22 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + SVE_MAGIC = 0x53564501 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2500,23 +514,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2533,8 +539,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2542,99 +546,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) 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 ba1beb909..5e8e71ff8 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -1,2508 +1,516 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips && linux // +build mips,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x8000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - 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 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x7d) EADDRNOTAVAIL = syscall.Errno(0x7e) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x95) EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x51) EBADMSG = syscall.Errno(0x4d) EBADR = syscall.Errno(0x33) EBADRQC = syscall.Errno(0x36) EBADSLT = syscall.Errno(0x37) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x25) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x82) @@ -2511,12 +519,8 @@ const ( EDEADLK = syscall.Errno(0x2d) EDEADLOCK = syscall.Errno(0x38) EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x93) EHOSTUNREACH = syscall.Errno(0x94) EHWPOISON = syscall.Errno(0xa8) @@ -2524,11 +528,7 @@ const ( EILSEQ = syscall.Errno(0x58) EINIT = syscall.Errno(0x8d) EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x8b) EKEYEXPIRED = syscall.Errno(0xa2) EKEYREJECTED = syscall.Errno(0xa4) @@ -2545,8 +545,6 @@ const ( ELNRNG = syscall.Errno(0x29) ELOOP = syscall.Errno(0x5a) EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x61) EMULTIHOP = syscall.Errno(0x4a) ENAMETOOLONG = syscall.Errno(0x4e) @@ -2554,100 +552,68 @@ const ( ENETDOWN = syscall.Errno(0x7f) ENETRESET = syscall.Errno(0x81) ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x35) ENOBUFS = syscall.Errno(0x84) ENOCSI = syscall.Errno(0x2b) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0xa1) ENOLCK = syscall.Errno(0x2e) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x23) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x5d) ENOTNAM = syscall.Errno(0x89) ENOTRECOVERABLE = syscall.Errno(0xa6) ENOTSOCK = syscall.Errno(0x5f) ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x7a) EOVERFLOW = syscall.Errno(0x4f) EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x78) EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x52) EREMDEV = syscall.Errno(0x8e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x8c) ERESTART = syscall.Errno(0x5b) ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x8f) ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x97) ESTRPIPE = syscall.Errno(0x5c) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x91) ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x87) EUNATCH = syscall.Errno(0x2a) EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x34) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x12) SIGCLD = syscall.Signal(0x12) SIGCONT = syscall.Signal(0x19) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x16) SIGPROF = syscall.Signal(0x1d) SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x17) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x18) SIGTTIN = syscall.Signal(0x1a) SIGTTOU = syscall.Signal(0x1b) 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 efba3e5c9..e670ee148 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -1,2508 +1,516 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64 && linux // +build mips64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x8000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - 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 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x7d) EADDRNOTAVAIL = syscall.Errno(0x7e) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x95) EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x51) EBADMSG = syscall.Errno(0x4d) EBADR = syscall.Errno(0x33) EBADRQC = syscall.Errno(0x36) EBADSLT = syscall.Errno(0x37) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x25) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x82) @@ -2511,12 +519,8 @@ const ( EDEADLK = syscall.Errno(0x2d) EDEADLOCK = syscall.Errno(0x38) EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x93) EHOSTUNREACH = syscall.Errno(0x94) EHWPOISON = syscall.Errno(0xa8) @@ -2524,11 +528,7 @@ const ( EILSEQ = syscall.Errno(0x58) EINIT = syscall.Errno(0x8d) EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x8b) EKEYEXPIRED = syscall.Errno(0xa2) EKEYREJECTED = syscall.Errno(0xa4) @@ -2545,8 +545,6 @@ const ( ELNRNG = syscall.Errno(0x29) ELOOP = syscall.Errno(0x5a) EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x61) EMULTIHOP = syscall.Errno(0x4a) ENAMETOOLONG = syscall.Errno(0x4e) @@ -2554,100 +552,68 @@ const ( ENETDOWN = syscall.Errno(0x7f) ENETRESET = syscall.Errno(0x81) ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x35) ENOBUFS = syscall.Errno(0x84) ENOCSI = syscall.Errno(0x2b) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0xa1) ENOLCK = syscall.Errno(0x2e) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x23) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x5d) ENOTNAM = syscall.Errno(0x89) ENOTRECOVERABLE = syscall.Errno(0xa6) ENOTSOCK = syscall.Errno(0x5f) ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x7a) EOVERFLOW = syscall.Errno(0x4f) EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x78) EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x52) EREMDEV = syscall.Errno(0x8e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x8c) ERESTART = syscall.Errno(0x5b) ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x8f) ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x97) ESTRPIPE = syscall.Errno(0x5c) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x91) ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x87) EUNATCH = syscall.Errno(0x2a) EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x34) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x12) SIGCLD = syscall.Signal(0x12) SIGCONT = syscall.Signal(0x19) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x16) SIGPROF = syscall.Signal(0x1d) SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x17) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x18) SIGTTIN = syscall.Signal(0x1a) SIGTTOU = syscall.Signal(0x1b) 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 d3f6e9065..dd11eacb8 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -1,2508 +1,516 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64le && linux // +build mips64le,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x8000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - 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 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x7d) EADDRNOTAVAIL = syscall.Errno(0x7e) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x95) EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x51) EBADMSG = syscall.Errno(0x4d) EBADR = syscall.Errno(0x33) EBADRQC = syscall.Errno(0x36) EBADSLT = syscall.Errno(0x37) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x25) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x82) @@ -2511,12 +519,8 @@ const ( EDEADLK = syscall.Errno(0x2d) EDEADLOCK = syscall.Errno(0x38) EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x93) EHOSTUNREACH = syscall.Errno(0x94) EHWPOISON = syscall.Errno(0xa8) @@ -2524,11 +528,7 @@ const ( EILSEQ = syscall.Errno(0x58) EINIT = syscall.Errno(0x8d) EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x8b) EKEYEXPIRED = syscall.Errno(0xa2) EKEYREJECTED = syscall.Errno(0xa4) @@ -2545,8 +545,6 @@ const ( ELNRNG = syscall.Errno(0x29) ELOOP = syscall.Errno(0x5a) EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x61) EMULTIHOP = syscall.Errno(0x4a) ENAMETOOLONG = syscall.Errno(0x4e) @@ -2554,100 +552,68 @@ const ( ENETDOWN = syscall.Errno(0x7f) ENETRESET = syscall.Errno(0x81) ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x35) ENOBUFS = syscall.Errno(0x84) ENOCSI = syscall.Errno(0x2b) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0xa1) ENOLCK = syscall.Errno(0x2e) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x23) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x5d) ENOTNAM = syscall.Errno(0x89) ENOTRECOVERABLE = syscall.Errno(0xa6) ENOTSOCK = syscall.Errno(0x5f) ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x7a) EOVERFLOW = syscall.Errno(0x4f) EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x78) EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x52) EREMDEV = syscall.Errno(0x8e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x8c) ERESTART = syscall.Errno(0x5b) ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x8f) ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x97) ESTRPIPE = syscall.Errno(0x5c) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x91) ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x87) EUNATCH = syscall.Errno(0x2a) EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x34) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x12) SIGCLD = syscall.Signal(0x12) SIGCONT = syscall.Signal(0x19) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x16) SIGPROF = syscall.Signal(0x1d) SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x17) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x18) SIGTTIN = syscall.Signal(0x1a) SIGTTOU = syscall.Signal(0x1b) 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 7275cd876..a0a5b22ae 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -1,2508 +1,516 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mipsle && linux // +build mipsle,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x8000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - 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 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x7d) EADDRNOTAVAIL = syscall.Errno(0x7e) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x95) EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x51) EBADMSG = syscall.Errno(0x4d) EBADR = syscall.Errno(0x33) EBADRQC = syscall.Errno(0x36) EBADSLT = syscall.Errno(0x37) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x25) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x82) @@ -2511,12 +519,8 @@ const ( EDEADLK = syscall.Errno(0x2d) EDEADLOCK = syscall.Errno(0x38) EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x93) EHOSTUNREACH = syscall.Errno(0x94) EHWPOISON = syscall.Errno(0xa8) @@ -2524,11 +528,7 @@ const ( EILSEQ = syscall.Errno(0x58) EINIT = syscall.Errno(0x8d) EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x8b) EKEYEXPIRED = syscall.Errno(0xa2) EKEYREJECTED = syscall.Errno(0xa4) @@ -2545,8 +545,6 @@ const ( ELNRNG = syscall.Errno(0x29) ELOOP = syscall.Errno(0x5a) EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x61) EMULTIHOP = syscall.Errno(0x4a) ENAMETOOLONG = syscall.Errno(0x4e) @@ -2554,100 +552,68 @@ const ( ENETDOWN = syscall.Errno(0x7f) ENETRESET = syscall.Errno(0x81) ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x35) ENOBUFS = syscall.Errno(0x84) ENOCSI = syscall.Errno(0x2b) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0xa1) ENOLCK = syscall.Errno(0x2e) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x23) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x5d) ENOTNAM = syscall.Errno(0x89) ENOTRECOVERABLE = syscall.Errno(0xa6) ENOTSOCK = syscall.Errno(0x5f) ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x7a) EOVERFLOW = syscall.Errno(0x4f) EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x78) EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x52) EREMDEV = syscall.Errno(0x8e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x8c) ERESTART = syscall.Errno(0x5b) ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x8f) ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x97) ESTRPIPE = syscall.Errno(0x5c) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x91) ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x87) EUNATCH = syscall.Errno(0x2a) EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x34) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x12) SIGCLD = syscall.Signal(0x12) SIGCONT = syscall.Signal(0x19) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x16) SIGPROF = syscall.Signal(0x1d) SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x17) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x18) SIGTTIN = syscall.Signal(0x1a) SIGTTOU = syscall.Signal(0x1b) 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 7586a134e..e60102f6a 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -1,2567 +1,576 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && linux // +build ppc64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x17 - B110 = 0x3 - B115200 = 0x11 - B1152000 = 0x18 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x19 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x1a - B230400 = 0x12 - B2400 = 0xb - B2500000 = 0x1b - B300 = 0x7 - B3000000 = 0x1c - B3500000 = 0x1d - B38400 = 0xf - B4000000 = 0x1e - B460800 = 0x13 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x16 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1f - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0xff - CBAUDEX = 0x0 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIGNAL = 0xff - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x4000 - IBSHIFT = 0x10 - ICANON = 0x100 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x400 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x80 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x1000 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x300 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80000000 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x4 - ONLCR = 0x2 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x1000 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_SAO = 0x10 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PTRACE_TRACEME = 0x0 - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVTIMEO = 0x12 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x400000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VERASE = 0x2 - 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 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4000 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0xc00 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4000 + XTABS = 0xc00 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2570,23 +579,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x3a) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2603,8 +604,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2612,99 +611,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) 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 b861ec783..838ff4ea6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -1,2567 +1,576 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64le && linux // +build ppc64le,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x17 - B110 = 0x3 - B115200 = 0x11 - B1152000 = 0x18 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x19 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x1a - B230400 = 0x12 - B2400 = 0xb - B2500000 = 0x1b - B300 = 0x7 - B3000000 = 0x1c - B3500000 = 0x1d - B38400 = 0xf - B4000000 = 0x1e - B460800 = 0x13 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x16 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1f - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0xff - CBAUDEX = 0x0 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIGNAL = 0xff - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x4000 - IBSHIFT = 0x10 - ICANON = 0x100 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x400 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x80 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x1000 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x300 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80000000 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x4 - ONLCR = 0x2 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x1000 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_SAO = 0x10 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PTRACE_TRACEME = 0x0 - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVTIMEO = 0x12 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x400000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VERASE = 0x2 - 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 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4000 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0xc00 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4000 + XTABS = 0xc00 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2570,23 +579,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x3a) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2603,8 +604,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2612,99 +611,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index a321ec23f..7cc98f09c 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -1,2493 +1,501 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build riscv64 && linux // +build riscv64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - 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 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2496,23 +504,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2529,8 +529,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2538,99 +536,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) 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 f6c99164f..a508392d2 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -1,2566 +1,574 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build s390x && linux // +build s390x,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_DISABLE_TE = 0x5010 - PTRACE_ENABLE_TE = 0x5009 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_LAST_BREAK = 0x5006 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_AREA = 0x5003 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_AREA = 0x5002 - PTRACE_PEEKUSR = 0x3 - PTRACE_PEEKUSR_AREA = 0x5000 - PTRACE_PEEK_SYSTEM_CALL = 0x5007 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_AREA = 0x5005 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_AREA = 0x5004 - PTRACE_POKEUSR = 0x6 - PTRACE_POKEUSR_AREA = 0x5001 - PTRACE_POKE_SYSTEM_CALL = 0x5008 - PTRACE_PROT = 0x15 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLEBLOCK = 0xc - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TE_ABORT_RAND = 0x5011 - PTRACE_TRACEME = 0x0 - PT_ACR0 = 0x90 - PT_ACR1 = 0x94 - PT_ACR10 = 0xb8 - PT_ACR11 = 0xbc - PT_ACR12 = 0xc0 - PT_ACR13 = 0xc4 - PT_ACR14 = 0xc8 - PT_ACR15 = 0xcc - PT_ACR2 = 0x98 - PT_ACR3 = 0x9c - PT_ACR4 = 0xa0 - PT_ACR5 = 0xa4 - PT_ACR6 = 0xa8 - PT_ACR7 = 0xac - PT_ACR8 = 0xb0 - PT_ACR9 = 0xb4 - PT_CR_10 = 0x168 - PT_CR_11 = 0x170 - PT_CR_9 = 0x160 - PT_ENDREGS = 0x1af - PT_FPC = 0xd8 - PT_FPR0 = 0xe0 - PT_FPR1 = 0xe8 - PT_FPR10 = 0x130 - PT_FPR11 = 0x138 - PT_FPR12 = 0x140 - PT_FPR13 = 0x148 - PT_FPR14 = 0x150 - PT_FPR15 = 0x158 - PT_FPR2 = 0xf0 - PT_FPR3 = 0xf8 - PT_FPR4 = 0x100 - PT_FPR5 = 0x108 - PT_FPR6 = 0x110 - PT_FPR7 = 0x118 - PT_FPR8 = 0x120 - PT_FPR9 = 0x128 - PT_GPR0 = 0x10 - PT_GPR1 = 0x18 - PT_GPR10 = 0x60 - PT_GPR11 = 0x68 - PT_GPR12 = 0x70 - PT_GPR13 = 0x78 - PT_GPR14 = 0x80 - PT_GPR15 = 0x88 - PT_GPR2 = 0x20 - PT_GPR3 = 0x28 - PT_GPR4 = 0x30 - PT_GPR5 = 0x38 - PT_GPR6 = 0x40 - PT_GPR7 = 0x48 - PT_GPR8 = 0x50 - PT_GPR9 = 0x58 - PT_IEEE_IP = 0x1a8 - PT_LASTOFF = 0x1a8 - PT_ORIGGPR2 = 0xd0 - PT_PSWADDR = 0x8 - PT_PSWMASK = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TXTIME = 0x3d - 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 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - 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 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_DISABLE_TE = 0x5010 + PTRACE_ENABLE_TE = 0x5009 + PTRACE_GET_LAST_BREAK = 0x5006 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_AREA = 0x5003 + PTRACE_PEEKTEXT_AREA = 0x5002 + PTRACE_PEEKUSR_AREA = 0x5000 + PTRACE_PEEK_SYSTEM_CALL = 0x5007 + PTRACE_POKEDATA_AREA = 0x5005 + PTRACE_POKETEXT_AREA = 0x5004 + PTRACE_POKEUSR_AREA = 0x5001 + PTRACE_POKE_SYSTEM_CALL = 0x5008 + PTRACE_PROT = 0x15 + PTRACE_SINGLEBLOCK = 0xc + PTRACE_TE_ABORT_RAND = 0x5011 + PT_ACR0 = 0x90 + PT_ACR1 = 0x94 + PT_ACR10 = 0xb8 + PT_ACR11 = 0xbc + PT_ACR12 = 0xc0 + PT_ACR13 = 0xc4 + PT_ACR14 = 0xc8 + PT_ACR15 = 0xcc + PT_ACR2 = 0x98 + PT_ACR3 = 0x9c + PT_ACR4 = 0xa0 + PT_ACR5 = 0xa4 + PT_ACR6 = 0xa8 + PT_ACR7 = 0xac + PT_ACR8 = 0xb0 + PT_ACR9 = 0xb4 + PT_CR_10 = 0x168 + PT_CR_11 = 0x170 + PT_CR_9 = 0x160 + PT_ENDREGS = 0x1af + PT_FPC = 0xd8 + PT_FPR0 = 0xe0 + PT_FPR1 = 0xe8 + PT_FPR10 = 0x130 + PT_FPR11 = 0x138 + PT_FPR12 = 0x140 + PT_FPR13 = 0x148 + PT_FPR14 = 0x150 + PT_FPR15 = 0x158 + PT_FPR2 = 0xf0 + PT_FPR3 = 0xf8 + PT_FPR4 = 0x100 + PT_FPR5 = 0x108 + PT_FPR6 = 0x110 + PT_FPR7 = 0x118 + PT_FPR8 = 0x120 + PT_FPR9 = 0x128 + PT_GPR0 = 0x10 + PT_GPR1 = 0x18 + PT_GPR10 = 0x60 + PT_GPR11 = 0x68 + PT_GPR12 = 0x70 + PT_GPR13 = 0x78 + PT_GPR14 = 0x80 + PT_GPR15 = 0x88 + PT_GPR2 = 0x20 + PT_GPR3 = 0x28 + PT_GPR4 = 0x30 + PT_GPR5 = 0x38 + PT_GPR6 = 0x40 + PT_GPR7 = 0x48 + PT_GPR8 = 0x50 + PT_GPR9 = 0x58 + PT_IEEE_IP = 0x1a8 + PT_LASTOFF = 0x1a8 + PT_ORIGGPR2 = 0xd0 + PT_PSWADDR = 0x8 + PT_PSWMASK = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2569,23 +577,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2602,8 +602,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2611,99 +609,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) 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 c1e95e29c..d5e2dc94f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -1,2556 +1,565 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build sparc64 && linux // +build sparc64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - 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 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - ASI_LEON_DFLUSH = 0x11 - ASI_LEON_IFLUSH = 0x10 - ASI_LEON_MMUFLUSH = 0x18 - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x400000 - EFD_NONBLOCK = 0x4000 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - EMT_TAGOVF = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x400000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - 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_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x7 - F_GETLK64 = 0x7 - F_GETOWN = 0x5 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x8 - F_SETLK64 = 0x8 - F_SETLKW = 0x9 - F_SETLKW64 = 0x9 - F_SETOWN = 0x6 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x400000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x4000 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x200 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x100 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - 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_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - 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 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x100000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x2000 - O_EXCL = 0x800 - O_FSYNC = 0x802000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x4004 - O_NOATIME = 0x200000 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x4000 - O_PATH = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x802000 - O_SYNC = 0x802000 - O_TMPFILE = 0x2010000 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPAREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPREGS64 = 0x19 - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_READDATA = 0x10 - PTRACE_READTEXT = 0x12 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPAREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPREGS64 = 0x1a - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SPARC_DETACH = 0xb - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - PTRACE_WRITEDATA = 0x11 - PTRACE_WRITETEXT = 0x13 - PT_FP = 0x48 - PT_G0 = 0x10 - PT_G1 = 0x14 - PT_G2 = 0x18 - PT_G3 = 0x1c - PT_G4 = 0x20 - PT_G5 = 0x24 - PT_G6 = 0x28 - PT_G7 = 0x2c - PT_I0 = 0x30 - PT_I1 = 0x34 - PT_I2 = 0x38 - PT_I3 = 0x3c - PT_I4 = 0x40 - PT_I5 = 0x44 - PT_I6 = 0x48 - PT_I7 = 0x4c - PT_NPC = 0x8 - PT_PC = 0x4 - PT_PSR = 0x0 - PT_REGS_MAGIC = 0x57ac6c00 - PT_TNPC = 0x90 - PT_TPC = 0x88 - PT_TSTATE = 0x80 - PT_V9_FP = 0x70 - PT_V9_G0 = 0x0 - PT_V9_G1 = 0x8 - PT_V9_G2 = 0x10 - PT_V9_G3 = 0x18 - PT_V9_G4 = 0x20 - PT_V9_G5 = 0x28 - PT_V9_G6 = 0x30 - PT_V9_G7 = 0x38 - PT_V9_I0 = 0x40 - PT_V9_I1 = 0x48 - PT_V9_I2 = 0x50 - PT_V9_I3 = 0x58 - PT_V9_I4 = 0x60 - PT_V9_I5 = 0x68 - PT_V9_I6 = 0x70 - PT_V9_I7 = 0x78 - PT_V9_MAGIC = 0x9c - PT_V9_TNPC = 0x90 - PT_V9_TPC = 0x88 - PT_V9_TSTATE = 0x80 - PT_V9_Y = 0x98 - PT_WIM = 0x10 - PT_Y = 0xc - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x6 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1d - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x67 - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x16 - RTM_NR_MSGTYPES = 0x58 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x23 - SCM_TIMESTAMPING_OPT_STATS = 0x38 - SCM_TIMESTAMPING_PKTINFO = 0x3c - SCM_TIMESTAMPNS = 0x21 - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x400000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x4000 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x8000 - SO_ATTACH_BPF = 0x34 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x35 - SO_ATTACH_REUSEPORT_EBPF = 0x36 - SO_BINDTODEVICE = 0xd - SO_BPF_EXTENSIONS = 0x32 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0x400 - SO_BUSY_POLL = 0x30 - SO_CNX_ADVICE = 0x37 - SO_COOKIE = 0x3b - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x33 - SO_INCOMING_NAPI_ID = 0x3a - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x28 - SO_MARK = 0x22 - SO_MAX_PACING_RATE = 0x31 - SO_MEMINFO = 0x39 - SO_NOFCS = 0x27 - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x2 - SO_PASSSEC = 0x1f - SO_PEEK_OFF = 0x26 - SO_PEERCRED = 0x40 - SO_PEERGROUPS = 0x3d - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x100b - SO_RCVLOWAT = 0x800 - SO_RCVTIMEO = 0x2000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x24 - SO_SECURITY_AUTHENTICATION = 0x5001 - SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 - SO_SELECT_ERR_QUEUE = 0x29 - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x100a - SO_SNDLOWAT = 0x1000 - SO_SNDTIMEO = 0x4000 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x23 - SO_TIMESTAMPNS = 0x21 - SO_TXTIME = 0x3f - 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 - SO_ZEROCOPY = 0x3e - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x20005407 - TCGETA = 0x40125401 - TCGETS = 0x40245408 - TCGETS2 = 0x402c540c - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x20005405 - TCSBRKP = 0x5425 - TCSETA = 0x80125402 - TCSETAF = 0x80125404 - TCSETAW = 0x80125403 - TCSETS = 0x80245409 - TCSETS2 = 0x802c540d - TCSETSF = 0x8024540b - TCSETSF2 = 0x802c540f - TCSETSW = 0x8024540a - TCSETSW2 = 0x802c540e - TCXONC = 0x20005406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x2000747a - TIOCCONS = 0x20007424 - TIOCEXCL = 0x2000740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x40047400 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285443 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x40047483 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40047486 - TIOCGPTPEER = 0x20007489 - TIOCGRS485 = 0x40205441 - TIOCGSERIAL = 0x541e - TIOCGSID = 0x40047485 - TIOCGSOFTCAR = 0x40047464 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0x545c - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007484 - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSETD = 0x80047401 - TIOCSIG = 0x80047488 - TIOCSISO7816 = 0xc0285444 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x80047482 - TIOCSPTLCK = 0x80047487 - TIOCSRS485 = 0xc0205442 - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x80047465 - TIOCSTART = 0x2000746e - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x20005437 - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = -0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - 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 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - ZSMALLOC_MAGIC = 0x58295829 - __TIOCFLUSH = 0x80047410 + ASI_LEON_DFLUSH = 0x11 + ASI_LEON_IFLUSH = 0x10 + ASI_LEON_MMUFLUSH = 0x18 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x400000 + EFD_NONBLOCK = 0x4000 + EMT_TAGOVF = 0x1 + EPOLL_CLOEXEC = 0x400000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x7 + F_GETLK64 = 0x7 + F_GETOWN = 0x5 + F_RDLCK = 0x1 + F_SETLK = 0x8 + F_SETLK64 = 0x8 + F_SETLKW = 0x9 + F_SETLKW64 = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x400000 + IN_NONBLOCK = 0x4000 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x200 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x100 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_RENAME = 0x20 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x100000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x2000 + O_EXCL = 0x800 + O_FSYNC = 0x802000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x4004 + O_NOATIME = 0x200000 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x4000 + O_PATH = 0x1000000 + O_RSYNC = 0x802000 + O_SYNC = 0x802000 + O_TMPFILE = 0x2010000 + O_TRUNC = 0x400 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPAREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPREGS64 = 0x19 + PTRACE_GETREGS64 = 0x16 + PTRACE_READDATA = 0x10 + PTRACE_READTEXT = 0x12 + PTRACE_SETFPAREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPREGS64 = 0x1a + PTRACE_SETREGS64 = 0x17 + PTRACE_SPARC_DETACH = 0xb + PTRACE_WRITEDATA = 0x11 + PTRACE_WRITETEXT = 0x13 + PT_FP = 0x48 + PT_G0 = 0x10 + PT_G1 = 0x14 + PT_G2 = 0x18 + PT_G3 = 0x1c + PT_G4 = 0x20 + PT_G5 = 0x24 + PT_G6 = 0x28 + PT_G7 = 0x2c + PT_I0 = 0x30 + PT_I1 = 0x34 + PT_I2 = 0x38 + PT_I3 = 0x3c + PT_I4 = 0x40 + PT_I5 = 0x44 + PT_I6 = 0x48 + PT_I7 = 0x4c + PT_NPC = 0x8 + PT_PC = 0x4 + PT_PSR = 0x0 + PT_REGS_MAGIC = 0x57ac6c00 + PT_TNPC = 0x90 + PT_TPC = 0x88 + PT_TSTATE = 0x80 + PT_V9_FP = 0x70 + PT_V9_G0 = 0x0 + PT_V9_G1 = 0x8 + PT_V9_G2 = 0x10 + PT_V9_G3 = 0x18 + PT_V9_G4 = 0x20 + PT_V9_G5 = 0x28 + PT_V9_G6 = 0x30 + PT_V9_G7 = 0x38 + PT_V9_I0 = 0x40 + PT_V9_I1 = 0x48 + PT_V9_I2 = 0x50 + PT_V9_I3 = 0x58 + PT_V9_I4 = 0x60 + PT_V9_I5 = 0x68 + PT_V9_I6 = 0x70 + PT_V9_I7 = 0x78 + PT_V9_MAGIC = 0x9c + PT_V9_TNPC = 0x90 + PT_V9_TPC = 0x88 + PT_V9_TSTATE = 0x80 + PT_V9_Y = 0x98 + PT_WIM = 0x10 + PT_Y = 0xc + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x6 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x23 + SCM_TIMESTAMPING_OPT_STATS = 0x38 + SCM_TIMESTAMPING_PKTINFO = 0x3c + SCM_TIMESTAMPNS = 0x21 + SCM_TXTIME = 0x3f + SCM_WIFI_STATUS = 0x25 + SFD_CLOEXEC = 0x400000 + SFD_NONBLOCK = 0x4000 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x400000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x4000 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x8000 + SO_ATTACH_BPF = 0x34 + SO_ATTACH_REUSEPORT_CBPF = 0x35 + SO_ATTACH_REUSEPORT_EBPF = 0x36 + SO_BINDTODEVICE = 0xd + SO_BINDTOIFINDEX = 0x41 + SO_BPF_EXTENSIONS = 0x32 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0x400 + SO_BUSY_POLL = 0x30 + SO_BUSY_POLL_BUDGET = 0x49 + SO_CNX_ADVICE = 0x37 + SO_COOKIE = 0x3b + SO_DETACH_REUSEPORT_BPF = 0x47 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x33 + SO_INCOMING_NAPI_ID = 0x3a + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x28 + SO_MARK = 0x22 + SO_MAX_PACING_RATE = 0x31 + SO_MEMINFO = 0x39 + SO_NOFCS = 0x27 + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x2 + SO_PASSSEC = 0x1f + SO_PEEK_OFF = 0x26 + SO_PEERCRED = 0x40 + SO_PEERGROUPS = 0x3d + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x48 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x100b + SO_RCVLOWAT = 0x800 + SO_RCVTIMEO = 0x2000 + SO_RCVTIMEO_NEW = 0x44 + SO_RCVTIMEO_OLD = 0x2000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x24 + SO_SECURITY_AUTHENTICATION = 0x5001 + SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 + SO_SELECT_ERR_QUEUE = 0x29 + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x100a + SO_SNDLOWAT = 0x1000 + SO_SNDTIMEO = 0x4000 + SO_SNDTIMEO_NEW = 0x45 + SO_SNDTIMEO_OLD = 0x4000 + SO_TIMESTAMPING = 0x23 + SO_TIMESTAMPING_NEW = 0x43 + SO_TIMESTAMPING_OLD = 0x23 + SO_TIMESTAMPNS = 0x21 + SO_TIMESTAMPNS_NEW = 0x42 + SO_TIMESTAMPNS_OLD = 0x21 + SO_TIMESTAMP_NEW = 0x46 + SO_TXTIME = 0x3f + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x25 + SO_ZEROCOPY = 0x3e + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x20005407 + TCGETA = 0x40125401 + TCGETS = 0x40245408 + TCGETS2 = 0x402c540c + TCSAFLUSH = 0x2 + TCSBRK = 0x20005405 + TCSBRKP = 0x5425 + TCSETA = 0x80125402 + TCSETAF = 0x80125404 + TCSETAW = 0x80125403 + TCSETS = 0x80245409 + TCSETS2 = 0x802c540d + TCSETSF = 0x8024540b + TCSETSF2 = 0x802c540f + TCSETSW = 0x8024540a + TCSETSW2 = 0x802c540e + TCXONC = 0x20005406 + TFD_CLOEXEC = 0x400000 + TFD_NONBLOCK = 0x4000 + TIOCCBRK = 0x2000747a + TIOCCONS = 0x20007424 + TIOCEXCL = 0x2000740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x40047400 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285443 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x40047483 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40047486 + TIOCGPTPEER = 0x20007489 + TIOCGRS485 = 0x40205441 + TIOCGSERIAL = 0x541e + TIOCGSID = 0x40047485 + TIOCGSOFTCAR = 0x40047464 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0x545c + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007484 + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSETD = 0x80047401 + TIOCSIG = 0x80047488 + TIOCSISO7816 = 0xc0285444 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x80047482 + TIOCSPTLCK = 0x80047487 + TIOCSRS485 = 0xc0205442 + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x80047465 + TIOCSTART = 0x2000746e + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x20005437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 + __TIOCFLUSH = 0x80047410 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x30) EADDRNOTAVAIL = syscall.Errno(0x31) EADV = syscall.Errno(0x53) EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x25) EBADE = syscall.Errno(0x66) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x5d) EBADMSG = syscall.Errno(0x4c) EBADR = syscall.Errno(0x67) EBADRQC = syscall.Errno(0x6a) EBADSLT = syscall.Errno(0x6b) EBFONT = syscall.Errno(0x6d) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7f) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x5e) ECOMM = syscall.Errno(0x55) ECONNABORTED = syscall.Errno(0x35) @@ -2559,23 +568,15 @@ const ( EDEADLK = syscall.Errno(0x4e) EDEADLOCK = syscall.Errno(0x6c) EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x58) EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x40) EHOSTUNREACH = syscall.Errno(0x41) EHWPOISON = syscall.Errno(0x87) EIDRM = syscall.Errno(0x4d) EILSEQ = syscall.Errno(0x7a) EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x81) EKEYREJECTED = syscall.Errno(0x83) @@ -2592,8 +593,6 @@ const ( ELNRNG = syscall.Errno(0x62) ELOOP = syscall.Errno(0x3e) EMEDIUMTYPE = syscall.Errno(0x7e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x28) EMULTIHOP = syscall.Errno(0x57) ENAMETOOLONG = syscall.Errno(0x3f) @@ -2601,102 +600,70 @@ const ( ENETDOWN = syscall.Errno(0x32) ENETRESET = syscall.Errno(0x34) ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x69) ENOBUFS = syscall.Errno(0x37) ENOCSI = syscall.Errno(0x64) ENODATA = syscall.Errno(0x6f) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x80) ENOLCK = syscall.Errno(0x4f) ENOLINK = syscall.Errno(0x52) ENOMEDIUM = syscall.Errno(0x7d) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x4b) ENONET = syscall.Errno(0x50) ENOPKG = syscall.Errno(0x71) ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x4a) ENOSTR = syscall.Errno(0x48) ENOSYS = syscall.Errno(0x5a) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x42) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x85) ENOTSOCK = syscall.Errno(0x26) ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x73) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x2d) EOVERFLOW = syscall.Errno(0x5c) EOWNERDEAD = syscall.Errno(0x84) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) EPROCLIM = syscall.Errno(0x43) EPROTO = syscall.Errno(0x56) EPROTONOSUPPORT = syscall.Errno(0x2b) EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x59) EREMOTE = syscall.Errno(0x47) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x74) ERFKILL = syscall.Errno(0x86) - EROFS = syscall.Errno(0x1e) ERREMOTE = syscall.Errno(0x51) ESHUTDOWN = syscall.Errno(0x3a) ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x54) ESTALE = syscall.Errno(0x46) ESTRPIPE = syscall.Errno(0x5b) ETIME = syscall.Errno(0x49) ETIMEDOUT = syscall.Errno(0x3c) ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x63) EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x68) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x14) SIGCLD = syscall.Signal(0x14) SIGCONT = syscall.Signal(0x13) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) SIGLOST = syscall.Signal(0x1d) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x17) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1d) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x11) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x12) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go index 78cc04ea6..72f7420d2 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go @@ -1,9 +1,10 @@ // mkerrors.sh -m32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && netbsd // +build 386,netbsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m32 _const.go package unix @@ -158,6 +159,12 @@ const ( CLONE_SIGHAND = 0x800 CLONE_VFORK = 0x4000 CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 @@ -1085,6 +1092,7 @@ const ( NET_RT_MAXID = 0x6 NET_RT_OIFLIST = 0x4 NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 NOFLSH = 0x80000000 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go index 92185e693..8d4eb0c08 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go @@ -1,9 +1,10 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && netbsd // +build amd64,netbsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m64 _const.go package unix @@ -158,6 +159,12 @@ const ( CLONE_SIGHAND = 0x800 CLONE_VFORK = 0x4000 CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 @@ -1075,6 +1082,7 @@ const ( NET_RT_MAXID = 0x6 NET_RT_OIFLIST = 0x4 NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 NOFLSH = 0x80000000 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go index 373ad4543..9eef9749f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go @@ -1,9 +1,10 @@ // mkerrors.sh -marm // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && netbsd // +build arm,netbsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -marm _const.go package unix @@ -150,6 +151,12 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 @@ -1065,6 +1072,7 @@ const ( NET_RT_MAXID = 0x6 NET_RT_OIFLIST = 0x4 NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 NOFLSH = 0x80000000 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go index fb6c60441..3b62ba192 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go @@ -1,9 +1,10 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && netbsd // +build arm64,netbsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m64 _const.go package unix @@ -158,6 +159,12 @@ const ( CLONE_SIGHAND = 0x800 CLONE_VFORK = 0x4000 CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 @@ -1075,6 +1082,7 @@ const ( NET_RT_MAXID = 0x6 NET_RT_OIFLIST = 0x4 NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 NOFLSH = 0x80000000 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go index d8be04518..593cc0fef 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go @@ -1,9 +1,10 @@ // mkerrors.sh -m32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && openbsd // +build 386,openbsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m32 _const.go package unix @@ -146,6 +147,13 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 @@ -881,14 +889,15 @@ const ( MADV_SPACEAVAIL = 0x5 MADV_WILLNEED = 0x3 MAP_ANON = 0x1000 - MAP_COPY = 0x4 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 MAP_FILE = 0x0 MAP_FIXED = 0x10 - MAP_FLAGMASK = 0x1ff7 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 MAP_INHERIT_NONE = 0x2 MAP_INHERIT_SHARE = 0x0 MAP_NOEXTEND = 0x100 @@ -896,7 +905,8 @@ const ( MAP_PRIVATE = 0x2 MAP_RENAME = 0x20 MAP_SHARED = 0x1 - MAP_TRYFIXED = 0x400 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ASYNC = 0x40 @@ -946,6 +956,7 @@ const ( NET_RT_MAXID = 0x6 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 + NFDBITS = 0x20 NOFLSH = 0x80000000 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go index 1f9e8a29e..25cb60948 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go @@ -1,9 +1,10 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && openbsd // +build amd64,openbsd -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m64 _const.go package unix @@ -153,6 +154,13 @@ const ( CLOCK_REALTIME = 0x0 CLOCK_THREAD_CPUTIME_ID = 0x4 CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 @@ -920,10 +928,11 @@ const ( MADV_WILLNEED = 0x3 MAP_ANON = 0x1000 MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 MAP_COPY = 0x2 MAP_FILE = 0x0 MAP_FIXED = 0x10 - MAP_FLAGMASK = 0x7ff7 + MAP_FLAGMASK = 0xfff7 MAP_HASSEMAPHORE = 0x0 MAP_INHERIT = 0x0 MAP_INHERIT_COPY = 0x1 @@ -990,6 +999,7 @@ const ( NET_RT_MAXID = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 + NFDBITS = 0x20 NOFLSH = 0x80000000 NOKERNINFO = 0x2000000 NOTE_ATTRIB = 0x8 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go index 79d5695c3..a4e4c2231 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go @@ -1,11 +1,12 @@ // mkerrors.sh // Code generated by the command above; see README.md. DO NOT EDIT. -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- _const.go - +//go:build arm && openbsd // +build arm,openbsd +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- _const.go + package unix import "syscall" @@ -146,6 +147,13 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 @@ -881,10 +889,11 @@ const ( MADV_WILLNEED = 0x3 MAP_ANON = 0x1000 MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 MAP_COPY = 0x2 MAP_FILE = 0x0 MAP_FIXED = 0x10 - MAP_FLAGMASK = 0x3ff7 + MAP_FLAGMASK = 0xfff7 MAP_HASSEMAPHORE = 0x0 MAP_INHERIT = 0x0 MAP_INHERIT_COPY = 0x1 @@ -896,6 +905,7 @@ const ( MAP_PRIVATE = 0x2 MAP_RENAME = 0x0 MAP_SHARED = 0x1 + MAP_STACK = 0x4000 MAP_TRYFIXED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 @@ -947,6 +957,7 @@ const ( NET_RT_MAXID = 0x6 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 + NFDBITS = 0x20 NOFLSH = 0x80000000 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go new file mode 100644 index 000000000..90de7dfc3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go @@ -0,0 +1,1798 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x8 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0186941 + SIOCBRDGGFD = 0xc0186952 + SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0186946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80186940 + SIOCBRDGSFD = 0x80186952 + SIOCBRDGSHT = 0x80186951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80186953 + SIOCBRDGSPRI = 0x80186950 + SIOCBRDGSPROTO = 0x8018695a + SIOCBRDGSTO = 0x80186945 + SIOCBRDGSTXHC = 0x80186959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SIOCSWGDPID = 0xc018695b + SIOCSWGMAXFLOW = 0xc0186960 + SIOCSWGMAXGROUP = 0xc018695d + SIOCSWSDPID = 0x8018695c + SIOCSWSPORTNO = 0xc060695f + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go new file mode 100644 index 000000000..f1154ff56 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go @@ -0,0 +1,1863 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && openbsd +// +build mips64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x8 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0186941 + SIOCBRDGGFD = 0xc0186952 + SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0186946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80186940 + SIOCBRDGSFD = 0x80186952 + SIOCBRDGSHT = 0x80186951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80186953 + SIOCBRDGSPRI = 0x80186950 + SIOCBRDGSPROTO = 0x8018695a + SIOCBRDGSTO = 0x80186945 + SIOCBRDGSTXHC = 0x80186959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SIOCSWGDPID = 0xc018695b + SIOCSWGMAXFLOW = 0xc0186960 + SIOCSWGMAXGROUP = 0xc018695d + SIOCSWSDPID = 0x8018695c + SIOCSWSPORTNO = 0xc060695f + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go index 22569db31..1afee6a08 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go @@ -1,9 +1,10 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && solaris // +build amd64,solaris -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs -- -m64 _const.go package unix @@ -192,6 +193,12 @@ const ( CSTOPB = 0x40 CSUSP = 0x1a CSWTCH = 0x1a + DIOC = 0x6400 + DIOCGETB = 0x6402 + DIOCGETC = 0x6401 + DIOCGETP = 0x6408 + DIOCSETE = 0x6403 + DIOCSETP = 0x6409 DLT_AIRONET_HEADER = 0x78 DLT_APPLE_IP_OVER_IEEE1394 = 0x8a DLT_ARCNET = 0x7 @@ -290,6 +297,7 @@ const ( FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 + FIORDCHK = 0x6603 FLUSHALL = 0x1 FLUSHDATA = 0x0 FLUSHO = 0x2000 @@ -358,6 +366,7 @@ const ( HUPCL = 0x400 IBSHIFT = 0x10 ICANON = 0x2 + ICMP6_FILTER = 0x1 ICRNL = 0x100 IEXTEN = 0x8000 IFF_ADDRCONF = 0x80000 @@ -604,6 +613,7 @@ const ( IP_RECVPKTINFO = 0x1a IP_RECVRETOPTS = 0x6 IP_RECVSLLA = 0xa + IP_RECVTOS = 0xc IP_RECVTTL = 0xb IP_RETOPTS = 0x8 IP_REUSEADDR = 0x104 @@ -645,6 +655,14 @@ const ( MAP_SHARED = 0x1 MAP_TEXT = 0x400 MAP_TYPE = 0xf + MCAST_BLOCK_SOURCE = 0x2b + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x29 + MCAST_JOIN_SOURCE_GROUP = 0x2d + MCAST_LEAVE_GROUP = 0x2a + MCAST_LEAVE_SOURCE_GROUP = 0x2e + MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MSG_CTRUNC = 0x10 @@ -653,6 +671,7 @@ const ( MSG_DUPCTRL = 0x800 MSG_EOR = 0x8 MSG_MAXIOVLEN = 0x10 + MSG_NOSIGNAL = 0x200 MSG_NOTIFICATION = 0x100 MSG_OOB = 0x1 MSG_PEEK = 0x2 @@ -666,6 +685,7 @@ const ( M_FLUSH = 0x86 NAME_MAX = 0xff NEWDEV = 0x1 + NFDBITS = 0x40 NL0 = 0x0 NL1 = 0x100 NLDLY = 0x100 @@ -686,6 +706,8 @@ const ( O_APPEND = 0x8 O_CLOEXEC = 0x800000 O_CREAT = 0x100 + O_DIRECT = 0x2000000 + O_DIRECTORY = 0x1000000 O_DSYNC = 0x40 O_EXCL = 0x400 O_EXEC = 0x400000 @@ -724,7 +746,7 @@ const ( RLIMIT_FSIZE = 0x1 RLIMIT_NOFILE = 0x5 RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x3 + RLIM_INFINITY = 0xfffffffffffffffd RTAX_AUTHOR = 0x6 RTAX_BRD = 0x7 RTAX_DST = 0x0 @@ -1046,6 +1068,7 @@ const ( TCOON = 0x1 TCP_ABORT_THRESHOLD = 0x11 TCP_ANONPRIVBIND = 0x20 + TCP_CONGESTION = 0x25 TCP_CONN_ABORT_THRESHOLD = 0x13 TCP_CONN_NOTIFY_THRESHOLD = 0x12 TCP_CORK = 0x18 @@ -1075,6 +1098,8 @@ const ( TCSETSF = 0x5410 TCSETSW = 0x540f TCXONC = 0x5406 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOC = 0x5400 TIOCCBRK = 0x747a TIOCCDTR = 0x7478 diff --git a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go new file mode 100644 index 000000000..c8c790903 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go @@ -0,0 +1,832 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +// Hand edited based on zerrors_linux_s390x.go +// TODO: auto-generate. + +package unix + +const ( + BRKINT = 0x0001 + CLOCK_MONOTONIC = 0x1 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x3 + CS8 = 0x0030 + CSIZE = 0x0030 + ECHO = 0x00000008 + ECHONL = 0x00000001 + FD_CLOEXEC = 0x01 + FD_CLOFORK = 0x02 + FNDELAY = 0x04 + F_CLOSFD = 9 + F_CONTROL_CVT = 13 + F_DUPFD = 0 + F_DUPFD2 = 8 + F_GETFD = 1 + F_GETFL = 259 + F_GETLK = 5 + F_GETOWN = 10 + F_OK = 0x0 + F_RDLCK = 1 + F_SETFD = 2 + F_SETFL = 4 + F_SETLK = 6 + F_SETLKW = 7 + F_SETOWN = 11 + F_SETTAG = 12 + F_UNLCK = 3 + F_WRLCK = 2 + FSTYPE_ZFS = 0xe9 //"Z" + FSTYPE_HFS = 0xc8 //"H" + FSTYPE_NFS = 0xd5 //"N" + FSTYPE_TFS = 0xe3 //"T" + FSTYPE_AUTOMOUNT = 0xc1 //"A" + IP6F_MORE_FRAG = 0x0001 + IP6F_OFF_MASK = 0xfff8 + IP6F_RESERVED_MASK = 0x0006 + IP6OPT_JUMBO = 0xc2 + IP6OPT_JUMBO_LEN = 6 + IP6OPT_MUTABLE = 0x20 + IP6OPT_NSAP_ADDR = 0xc3 + IP6OPT_PAD1 = 0x00 + IP6OPT_PADN = 0x01 + IP6OPT_ROUTER_ALERT = 0x05 + IP6OPT_TUNNEL_LIMIT = 0x04 + IP6OPT_TYPE_DISCARD = 0x40 + IP6OPT_TYPE_FORCEICMP = 0x80 + IP6OPT_TYPE_ICMP = 0xc0 + IP6OPT_TYPE_SKIP = 0x00 + IP6_ALERT_AN = 0x0002 + IP6_ALERT_MLD = 0x0000 + IP6_ALERT_RSVP = 0x0001 + IPPORT_RESERVED = 1024 + IPPORT_USERRESERVED = 5000 + IPPROTO_AH = 51 + IPPROTO_DSTOPTS = 60 + IPPROTO_EGP = 8 + IPPROTO_ESP = 50 + IPPROTO_FRAGMENT = 44 + IPPROTO_GGP = 2 + IPPROTO_HOPOPTS = 0 + IPPROTO_ICMP = 1 + IPPROTO_ICMPV6 = 58 + IPPROTO_IDP = 22 + IPPROTO_IP = 0 + IPPROTO_IPV6 = 41 + IPPROTO_MAX = 256 + IPPROTO_NONE = 59 + IPPROTO_PUP = 12 + IPPROTO_RAW = 255 + IPPROTO_ROUTING = 43 + IPPROTO_TCP = 6 + IPPROTO_UDP = 17 + IPV6_ADDR_PREFERENCES = 32 + IPV6_CHECKSUM = 19 + IPV6_DONTFRAG = 29 + IPV6_DSTOPTS = 23 + IPV6_HOPLIMIT = 11 + IPV6_HOPOPTS = 22 + IPV6_JOIN_GROUP = 5 + IPV6_LEAVE_GROUP = 6 + IPV6_MULTICAST_HOPS = 9 + IPV6_MULTICAST_IF = 7 + IPV6_MULTICAST_LOOP = 4 + IPV6_NEXTHOP = 20 + IPV6_PATHMTU = 12 + IPV6_PKTINFO = 13 + IPV6_PREFER_SRC_CGA = 0x10 + IPV6_PREFER_SRC_COA = 0x02 + IPV6_PREFER_SRC_HOME = 0x01 + IPV6_PREFER_SRC_NONCGA = 0x20 + IPV6_PREFER_SRC_PUBLIC = 0x08 + IPV6_PREFER_SRC_TMP = 0x04 + IPV6_RECVDSTOPTS = 28 + IPV6_RECVHOPLIMIT = 14 + IPV6_RECVHOPOPTS = 26 + IPV6_RECVPATHMTU = 16 + IPV6_RECVPKTINFO = 15 + IPV6_RECVRTHDR = 25 + IPV6_RECVTCLASS = 31 + IPV6_RTHDR = 21 + IPV6_RTHDRDSTOPTS = 24 + IPV6_RTHDR_TYPE_0 = 0 + IPV6_TCLASS = 30 + IPV6_UNICAST_HOPS = 3 + IPV6_USE_MIN_MTU = 18 + IPV6_V6ONLY = 10 + IP_ADD_MEMBERSHIP = 5 + IP_ADD_SOURCE_MEMBERSHIP = 12 + IP_BLOCK_SOURCE = 10 + IP_DEFAULT_MULTICAST_LOOP = 1 + IP_DEFAULT_MULTICAST_TTL = 1 + IP_DROP_MEMBERSHIP = 6 + IP_DROP_SOURCE_MEMBERSHIP = 13 + IP_MAX_MEMBERSHIPS = 20 + IP_MULTICAST_IF = 7 + IP_MULTICAST_LOOP = 4 + IP_MULTICAST_TTL = 3 + IP_OPTIONS = 1 + IP_PKTINFO = 101 + IP_RECVPKTINFO = 102 + IP_TOS = 2 + IP_TTL = 3 + IP_UNBLOCK_SOURCE = 11 + ICANON = 0x0010 + ICMP6_FILTER = 0x26 + ICRNL = 0x0002 + IEXTEN = 0x0020 + IGNBRK = 0x0004 + IGNCR = 0x0008 + INLCR = 0x0020 + ISIG = 0x0040 + ISTRIP = 0x0080 + IXON = 0x0200 + IXOFF = 0x0100 + LOCK_SH = 0x1 // Not exist on zOS + LOCK_EX = 0x2 // Not exist on zOS + LOCK_NB = 0x4 // Not exist on zOS + LOCK_UN = 0x8 // Not exist on zOS + POLLIN = 0x0003 + POLLOUT = 0x0004 + POLLPRI = 0x0010 + POLLERR = 0x0020 + POLLHUP = 0x0040 + POLLNVAL = 0x0080 + PROT_READ = 0x1 // mmap - page can be read + PROT_WRITE = 0x2 // page can be written + PROT_NONE = 0x4 // can't be accessed + PROT_EXEC = 0x8 // can be executed + MAP_PRIVATE = 0x1 // changes are private + MAP_SHARED = 0x2 // changes are shared + MAP_FIXED = 0x4 // place exactly + MS_SYNC = 0x1 // msync - synchronous writes + MS_ASYNC = 0x2 // asynchronous writes + MS_INVALIDATE = 0x4 // invalidate mappings + MTM_RDONLY = 0x80000000 + MTM_RDWR = 0x40000000 + MTM_UMOUNT = 0x10000000 + MTM_IMMED = 0x08000000 + MTM_FORCE = 0x04000000 + MTM_DRAIN = 0x02000000 + MTM_RESET = 0x01000000 + MTM_SAMEMODE = 0x00100000 + MTM_UNQSEFORCE = 0x00040000 + MTM_NOSUID = 0x00000400 + MTM_SYNCHONLY = 0x00000200 + MTM_REMOUNT = 0x00000100 + MTM_NOSECURITY = 0x00000080 + O_ACCMODE = 0x03 + O_APPEND = 0x08 + O_ASYNCSIG = 0x0200 + O_CREAT = 0x80 + O_EXCL = 0x40 + O_GETFL = 0x0F + O_LARGEFILE = 0x0400 + O_NONBLOCK = 0x04 + O_RDONLY = 0x02 + O_RDWR = 0x03 + O_SYNC = 0x0100 + O_TRUNC = 0x10 + O_WRONLY = 0x01 + O_NOCTTY = 0x20 + OPOST = 0x0001 + ONLCR = 0x0004 + PARENB = 0x0200 + PARMRK = 0x0400 + QUERYCVT = 3 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 // RUSAGE_THREAD unsupported on z/OS + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + SETAUTOCVTALL = 5 + SETAUTOCVTON = 2 + SETCVTALL = 4 + SETCVTOFF = 0 + SETCVTON = 1 + AF_APPLETALK = 16 + AF_CCITT = 10 + AF_CHAOS = 5 + AF_DATAKIT = 9 + AF_DLI = 13 + AF_ECMA = 8 + AF_HYLINK = 15 + AF_IMPLINK = 3 + AF_INET = 2 + AF_INET6 = 19 + AF_INTF = 20 + AF_IUCV = 17 + AF_LAT = 14 + AF_LINK = 18 + AF_MAX = 30 + AF_NBS = 7 + AF_NDD = 23 + AF_NETWARE = 22 + AF_NS = 6 + AF_PUP = 4 + AF_RIF = 21 + AF_ROUTE = 20 + AF_SNA = 11 + AF_UNIX = 1 + AF_UNSPEC = 0 + IBMTCP_IMAGE = 1 + MSG_ACK_EXPECTED = 0x10 + MSG_ACK_GEN = 0x40 + MSG_ACK_TIMEOUT = 0x20 + MSG_CONNTERM = 0x80 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOF = 0x8000 + MSG_EOR = 0x8 + MSG_MAXIOVLEN = 16 + MSG_NONBLOCK = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + PRIO_PROCESS = 1 + PRIO_PGRP = 2 + PRIO_USER = 3 + RLIMIT_CPU = 0 + RLIMIT_FSIZE = 1 + RLIMIT_DATA = 2 + RLIMIT_STACK = 3 + RLIMIT_CORE = 4 + RLIMIT_AS = 5 + RLIMIT_NOFILE = 6 + RLIMIT_MEMLIMIT = 7 + RLIM_INFINITY = 2147483647 + SCM_RIGHTS = 0x01 + SF_CLOSE = 0x00000002 + SF_REUSE = 0x00000001 + SHUT_RD = 0 + SHUT_RDWR = 2 + SHUT_WR = 1 + SOCK_CONN_DGRAM = 6 + SOCK_DGRAM = 2 + SOCK_RAW = 3 + SOCK_RDM = 4 + SOCK_SEQPACKET = 5 + SOCK_STREAM = 1 + SOL_SOCKET = 0xffff + SOMAXCONN = 10 + SO_ACCEPTCONN = 0x0002 + SO_ACCEPTECONNABORTED = 0x0006 + SO_ACKNOW = 0x7700 + SO_BROADCAST = 0x0020 + SO_BULKMODE = 0x8000 + SO_CKSUMRECV = 0x0800 + SO_CLOSE = 0x01 + SO_CLUSTERCONNTYPE = 0x00004001 + SO_CLUSTERCONNTYPE_INTERNAL = 8 + SO_CLUSTERCONNTYPE_NOCONN = 0 + SO_CLUSTERCONNTYPE_NONE = 1 + SO_CLUSTERCONNTYPE_SAME_CLUSTER = 2 + SO_CLUSTERCONNTYPE_SAME_IMAGE = 4 + SO_DEBUG = 0x0001 + SO_DONTROUTE = 0x0010 + SO_ERROR = 0x1007 + SO_IGNOREINCOMINGPUSH = 0x1 + SO_IGNORESOURCEVIPA = 0x0002 + SO_KEEPALIVE = 0x0008 + SO_LINGER = 0x0080 + SO_NONBLOCKLOCAL = 0x8001 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x0100 + SO_OPTACK = 0x8004 + SO_OPTMSS = 0x8003 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x0004 + SO_REUSEPORT = 0x0200 + SO_SECINFO = 0x00004002 + SO_SET = 0x0200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TYPE = 0x1008 + SO_UNSET = 0x0400 + SO_USELOOPBACK = 0x0040 + SO_USE_IFBUFS = 0x0400 + S_ISUID = 0x0800 + S_ISGID = 0x0400 + S_ISVTX = 0x0200 + S_IRUSR = 0x0100 + S_IWUSR = 0x0080 + S_IXUSR = 0x0040 + S_IRWXU = 0x01C0 + S_IRGRP = 0x0020 + S_IWGRP = 0x0010 + S_IXGRP = 0x0008 + S_IRWXG = 0x0038 + S_IROTH = 0x0004 + S_IWOTH = 0x0002 + S_IXOTH = 0x0001 + S_IRWXO = 0x0007 + S_IREAD = S_IRUSR + S_IWRITE = S_IWUSR + S_IEXEC = S_IXUSR + S_IFDIR = 0x01000000 + S_IFCHR = 0x02000000 + S_IFREG = 0x03000000 + S_IFFIFO = 0x04000000 + S_IFIFO = 0x04000000 + S_IFLNK = 0x05000000 + S_IFBLK = 0x06000000 + S_IFSOCK = 0x07000000 + S_IFVMEXTL = 0xFE000000 + S_IFVMEXTL_EXEC = 0x00010000 + S_IFVMEXTL_DATA = 0x00020000 + S_IFVMEXTL_MEL = 0x00030000 + S_IFEXTL = 0x00000001 + S_IFPROGCTL = 0x00000002 + S_IFAPFCTL = 0x00000004 + S_IFNOSHARE = 0x00000008 + S_IFSHARELIB = 0x00000010 + S_IFMT = 0xFF000000 + S_IFMST = 0x00FF0000 + TCP_KEEPALIVE = 0x8 + TCP_NODELAY = 0x1 + TIOCGWINSZ = 0x4008a368 + TIOCSWINSZ = 0x8008a367 + TIOCSBRK = 0x2000a77b + TIOCCBRK = 0x2000a77a + TIOCSTI = 0x8001a772 + TIOCGPGRP = 0x4004a777 // _IOR(167, 119, int) + TCSANOW = 0 + TCSETS = 0 // equivalent to TCSANOW for tcsetattr + TCSADRAIN = 1 + TCSETSW = 1 // equivalent to TCSADRAIN for tcsetattr + TCSAFLUSH = 2 + TCSETSF = 2 // equivalent to TCSAFLUSH for tcsetattr + TCGETS = 3 // not defined in ioctl.h -- zos golang only + TCIFLUSH = 0 + TCOFLUSH = 1 + TCIOFLUSH = 2 + TCOOFF = 0 + TCOON = 1 + TCIOFF = 2 + TCION = 3 + TIOCSPGRP = 0x8004a776 + TIOCNOTTY = 0x2000a771 + TIOCEXCL = 0x2000a70d + TIOCNXCL = 0x2000a70e + TIOCGETD = 0x4004a700 + TIOCSETD = 0x8004a701 + TIOCPKT = 0x8004a770 + TIOCSTOP = 0x2000a76f + TIOCSTART = 0x2000a76e + TIOCUCNTL = 0x8004a766 + TIOCREMOTE = 0x8004a769 + TIOCMGET = 0x4004a76a + TIOCMSET = 0x8004a76d + TIOCMBIC = 0x8004a76b + TIOCMBIS = 0x8004a76c + VINTR = 0 + VQUIT = 1 + VERASE = 2 + VKILL = 3 + VEOF = 4 + VEOL = 5 + VMIN = 6 + VSTART = 7 + VSTOP = 8 + VSUSP = 9 + VTIME = 10 + WCONTINUED = 0x4 + WNOHANG = 0x1 + WUNTRACED = 0x2 + _BPX_SWAP = 1 + _BPX_NONSWAP = 2 + MCL_CURRENT = 1 // for Linux compatibility -- no zos semantics + MCL_FUTURE = 2 // for Linux compatibility -- no zos semantics + MCL_ONFAULT = 3 // for Linux compatibility -- no zos semantics + MADV_NORMAL = 0 // for Linux compatibility -- no zos semantics + MADV_RANDOM = 1 // for Linux compatibility -- no zos semantics + MADV_SEQUENTIAL = 2 // for Linux compatibility -- no zos semantics + MADV_WILLNEED = 3 // for Linux compatibility -- no zos semantics + MADV_REMOVE = 4 // for Linux compatibility -- no zos semantics + MADV_DONTFORK = 5 // for Linux compatibility -- no zos semantics + MADV_DOFORK = 6 // for Linux compatibility -- no zos semantics + MADV_HWPOISON = 7 // for Linux compatibility -- no zos semantics + MADV_MERGEABLE = 8 // for Linux compatibility -- no zos semantics + MADV_UNMERGEABLE = 9 // for Linux compatibility -- no zos semantics + MADV_SOFT_OFFLINE = 10 // for Linux compatibility -- no zos semantics + MADV_HUGEPAGE = 11 // for Linux compatibility -- no zos semantics + MADV_NOHUGEPAGE = 12 // for Linux compatibility -- no zos semantics + MADV_DONTDUMP = 13 // for Linux compatibility -- no zos semantics + MADV_DODUMP = 14 // for Linux compatibility -- no zos semantics + MADV_FREE = 15 // for Linux compatibility -- no zos semantics + MADV_WIPEONFORK = 16 // for Linux compatibility -- no zos semantics + MADV_KEEPONFORK = 17 // for Linux compatibility -- no zos semantics + AT_SYMLINK_NOFOLLOW = 1 // for Unix compatibility -- no zos semantics + AT_FDCWD = 2 // for Unix compatibility -- no zos semantics +) + +const ( + EDOM = Errno(1) + ERANGE = Errno(2) + EACCES = Errno(111) + EAGAIN = Errno(112) + EBADF = Errno(113) + EBUSY = Errno(114) + ECHILD = Errno(115) + EDEADLK = Errno(116) + EEXIST = Errno(117) + EFAULT = Errno(118) + EFBIG = Errno(119) + EINTR = Errno(120) + EINVAL = Errno(121) + EIO = Errno(122) + EISDIR = Errno(123) + EMFILE = Errno(124) + EMLINK = Errno(125) + ENAMETOOLONG = Errno(126) + ENFILE = Errno(127) + ENODEV = Errno(128) + ENOENT = Errno(129) + ENOEXEC = Errno(130) + ENOLCK = Errno(131) + ENOMEM = Errno(132) + ENOSPC = Errno(133) + ENOSYS = Errno(134) + ENOTDIR = Errno(135) + ENOTEMPTY = Errno(136) + ENOTTY = Errno(137) + ENXIO = Errno(138) + EPERM = Errno(139) + EPIPE = Errno(140) + EROFS = Errno(141) + ESPIPE = Errno(142) + ESRCH = Errno(143) + EXDEV = Errno(144) + E2BIG = Errno(145) + ELOOP = Errno(146) + EILSEQ = Errno(147) + ENODATA = Errno(148) + EOVERFLOW = Errno(149) + EMVSNOTUP = Errno(150) + ECMSSTORAGE = Errno(151) + EMVSDYNALC = Errno(151) + EMVSCVAF = Errno(152) + EMVSCATLG = Errno(153) + ECMSINITIAL = Errno(156) + EMVSINITIAL = Errno(156) + ECMSERR = Errno(157) + EMVSERR = Errno(157) + EMVSPARM = Errno(158) + ECMSPFSFILE = Errno(159) + EMVSPFSFILE = Errno(159) + EMVSBADCHAR = Errno(160) + ECMSPFSPERM = Errno(162) + EMVSPFSPERM = Errno(162) + EMVSSAFEXTRERR = Errno(163) + EMVSSAF2ERR = Errno(164) + EMVSTODNOTSET = Errno(165) + EMVSPATHOPTS = Errno(166) + EMVSNORTL = Errno(167) + EMVSEXPIRE = Errno(168) + EMVSPASSWORD = Errno(169) + EMVSWLMERROR = Errno(170) + EMVSCPLERROR = Errno(171) + EMVSARMERROR = Errno(172) + ELENOFORK = Errno(200) + ELEMSGERR = Errno(201) + EFPMASKINV = Errno(202) + EFPMODEINV = Errno(203) + EBUFLEN = Errno(227) + EEXTLINK = Errno(228) + ENODD = Errno(229) + ECMSESMERR = Errno(230) + ECPERR = Errno(231) + ELEMULTITHREAD = Errno(232) + ELEFENCE = Errno(244) + EBADDATA = Errno(245) + EUNKNOWN = Errno(246) + ENOTSUP = Errno(247) + EBADNAME = Errno(248) + ENOTSAFE = Errno(249) + ELEMULTITHREADFORK = Errno(257) + ECUNNOENV = Errno(258) + ECUNNOCONV = Errno(259) + ECUNNOTALIGNED = Errno(260) + ECUNERR = Errno(262) + EIBMBADCALL = Errno(1000) + EIBMBADPARM = Errno(1001) + EIBMSOCKOUTOFRANGE = Errno(1002) + EIBMSOCKINUSE = Errno(1003) + EIBMIUCVERR = Errno(1004) + EOFFLOADboxERROR = Errno(1005) + EOFFLOADboxRESTART = Errno(1006) + EOFFLOADboxDOWN = Errno(1007) + EIBMCONFLICT = Errno(1008) + EIBMCANCELLED = Errno(1009) + EIBMBADTCPNAME = Errno(1011) + ENOTBLK = Errno(1100) + ETXTBSY = Errno(1101) + EWOULDBLOCK = Errno(1102) + EINPROGRESS = Errno(1103) + EALREADY = Errno(1104) + ENOTSOCK = Errno(1105) + EDESTADDRREQ = Errno(1106) + EMSGSIZE = Errno(1107) + EPROTOTYPE = Errno(1108) + ENOPROTOOPT = Errno(1109) + EPROTONOSUPPORT = Errno(1110) + ESOCKTNOSUPPORT = Errno(1111) + EOPNOTSUPP = Errno(1112) + EPFNOSUPPORT = Errno(1113) + EAFNOSUPPORT = Errno(1114) + EADDRINUSE = Errno(1115) + EADDRNOTAVAIL = Errno(1116) + ENETDOWN = Errno(1117) + ENETUNREACH = Errno(1118) + ENETRESET = Errno(1119) + ECONNABORTED = Errno(1120) + ECONNRESET = Errno(1121) + ENOBUFS = Errno(1122) + EISCONN = Errno(1123) + ENOTCONN = Errno(1124) + ESHUTDOWN = Errno(1125) + ETOOMANYREFS = Errno(1126) + ETIMEDOUT = Errno(1127) + ECONNREFUSED = Errno(1128) + EHOSTDOWN = Errno(1129) + EHOSTUNREACH = Errno(1130) + EPROCLIM = Errno(1131) + EUSERS = Errno(1132) + EDQUOT = Errno(1133) + ESTALE = Errno(1134) + EREMOTE = Errno(1135) + ENOSTR = Errno(1136) + ETIME = Errno(1137) + ENOSR = Errno(1138) + ENOMSG = Errno(1139) + EBADMSG = Errno(1140) + EIDRM = Errno(1141) + ENONET = Errno(1142) + ERREMOTE = Errno(1143) + ENOLINK = Errno(1144) + EADV = Errno(1145) + ESRMNT = Errno(1146) + ECOMM = Errno(1147) + EPROTO = Errno(1148) + EMULTIHOP = Errno(1149) + EDOTDOT = Errno(1150) + EREMCHG = Errno(1151) + ECANCELED = Errno(1152) + EINTRNODATA = Errno(1159) + ENOREUSE = Errno(1160) + ENOMOVE = Errno(1161) +) + +// Signals +const ( + SIGHUP = Signal(1) + SIGINT = Signal(2) + SIGABRT = Signal(3) + SIGILL = Signal(4) + SIGPOLL = Signal(5) + SIGURG = Signal(6) + SIGSTOP = Signal(7) + SIGFPE = Signal(8) + SIGKILL = Signal(9) + SIGBUS = Signal(10) + SIGSEGV = Signal(11) + SIGSYS = Signal(12) + SIGPIPE = Signal(13) + SIGALRM = Signal(14) + SIGTERM = Signal(15) + SIGUSR1 = Signal(16) + SIGUSR2 = Signal(17) + SIGABND = Signal(18) + SIGCONT = Signal(19) + SIGCHLD = Signal(20) + SIGTTIN = Signal(21) + SIGTTOU = Signal(22) + SIGIO = Signal(23) + SIGQUIT = Signal(24) + SIGTSTP = Signal(25) + SIGTRAP = Signal(26) + SIGIOERR = Signal(27) + SIGWINCH = Signal(28) + SIGXCPU = Signal(29) + SIGXFSZ = Signal(30) + SIGVTALRM = Signal(31) + SIGPROF = Signal(32) + SIGDANGER = Signal(33) + SIGTHSTOP = Signal(34) + SIGTHCONT = Signal(35) + SIGTRACE = Signal(37) + SIGDCE = Signal(38) + SIGDUMP = Signal(39) +) + +// Error table +var errorList = [...]struct { + num Errno + name string + desc string +}{ + {1, "EDC5001I", "A domain error occurred."}, + {2, "EDC5002I", "A range error occurred."}, + {111, "EDC5111I", "Permission denied."}, + {112, "EDC5112I", "Resource temporarily unavailable."}, + {113, "EDC5113I", "Bad file descriptor."}, + {114, "EDC5114I", "Resource busy."}, + {115, "EDC5115I", "No child processes."}, + {116, "EDC5116I", "Resource deadlock avoided."}, + {117, "EDC5117I", "File exists."}, + {118, "EDC5118I", "Incorrect address."}, + {119, "EDC5119I", "File too large."}, + {120, "EDC5120I", "Interrupted function call."}, + {121, "EDC5121I", "Invalid argument."}, + {122, "EDC5122I", "Input/output error."}, + {123, "EDC5123I", "Is a directory."}, + {124, "EDC5124I", "Too many open files."}, + {125, "EDC5125I", "Too many links."}, + {126, "EDC5126I", "Filename too long."}, + {127, "EDC5127I", "Too many open files in system."}, + {128, "EDC5128I", "No such device."}, + {129, "EDC5129I", "No such file or directory."}, + {130, "EDC5130I", "Exec format error."}, + {131, "EDC5131I", "No locks available."}, + {132, "EDC5132I", "Not enough memory."}, + {133, "EDC5133I", "No space left on device."}, + {134, "EDC5134I", "Function not implemented."}, + {135, "EDC5135I", "Not a directory."}, + {136, "EDC5136I", "Directory not empty."}, + {137, "EDC5137I", "Inappropriate I/O control operation."}, + {138, "EDC5138I", "No such device or address."}, + {139, "EDC5139I", "Operation not permitted."}, + {140, "EDC5140I", "Broken pipe."}, + {141, "EDC5141I", "Read-only file system."}, + {142, "EDC5142I", "Invalid seek."}, + {143, "EDC5143I", "No such process."}, + {144, "EDC5144I", "Improper link."}, + {145, "EDC5145I", "The parameter list is too long, or the message to receive was too large for the buffer."}, + {146, "EDC5146I", "Too many levels of symbolic links."}, + {147, "EDC5147I", "Illegal byte sequence."}, + {148, "", ""}, + {149, "EDC5149I", "Value Overflow Error."}, + {150, "EDC5150I", "UNIX System Services is not active."}, + {151, "EDC5151I", "Dynamic allocation error."}, + {152, "EDC5152I", "Common VTOC access facility (CVAF) error."}, + {153, "EDC5153I", "Catalog obtain error."}, + {156, "EDC5156I", "Process initialization error."}, + {157, "EDC5157I", "An internal error has occurred."}, + {158, "EDC5158I", "Bad parameters were passed to the service."}, + {159, "EDC5159I", "The Physical File System encountered a permanent file error."}, + {160, "EDC5160I", "Bad character in environment variable name."}, + {162, "EDC5162I", "The Physical File System encountered a system error."}, + {163, "EDC5163I", "SAF/RACF extract error."}, + {164, "EDC5164I", "SAF/RACF error."}, + {165, "EDC5165I", "System TOD clock not set."}, + {166, "EDC5166I", "Access mode argument on function call conflicts with PATHOPTS parameter on JCL DD statement."}, + {167, "EDC5167I", "Access to the UNIX System Services version of the C RTL is denied."}, + {168, "EDC5168I", "Password has expired."}, + {169, "EDC5169I", "Password is invalid."}, + {170, "EDC5170I", "An error was encountered with WLM."}, + {171, "EDC5171I", "An error was encountered with CPL."}, + {172, "EDC5172I", "An error was encountered with Application Response Measurement (ARM) component."}, + {200, "EDC5200I", "The application contains a Language Environment member language that cannot tolerate a fork()."}, + {201, "EDC5201I", "The Language Environment message file was not found in the hierarchical file system."}, + {202, "EDC5202E", "DLL facilities are not supported under SPC environment."}, + {203, "EDC5203E", "DLL facilities are not supported under POSIX environment."}, + {227, "EDC5227I", "Buffer is not long enough to contain a path definition"}, + {228, "EDC5228I", "The file referred to is an external link"}, + {229, "EDC5229I", "No path definition for ddname in effect"}, + {230, "EDC5230I", "ESM error."}, + {231, "EDC5231I", "CP or the external security manager had an error"}, + {232, "EDC5232I", "The function failed because it was invoked from a multithread environment."}, + {244, "EDC5244I", "The program, module or DLL is not supported in this environment."}, + {245, "EDC5245I", "Data is not valid."}, + {246, "EDC5246I", "Unknown system state."}, + {247, "EDC5247I", "Operation not supported."}, + {248, "EDC5248I", "The object name specified is not correct."}, + {249, "EDC5249I", "The function is not allowed."}, + {257, "EDC5257I", "Function cannot be called in the child process of a fork() from a multithreaded process until exec() is called."}, + {258, "EDC5258I", "A CUN_RS_NO_UNI_ENV error was issued by Unicode Services."}, + {259, "EDC5259I", "A CUN_RS_NO_CONVERSION error was issued by Unicode Services."}, + {260, "EDC5260I", "A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services."}, + {262, "EDC5262I", "An iconv() function encountered an unexpected error while using Unicode Services."}, + {1000, "EDC8000I", "A bad socket-call constant was found in the IUCV header."}, + {1001, "EDC8001I", "An error was found in the IUCV header."}, + {1002, "EDC8002I", "A socket descriptor is out of range."}, + {1003, "EDC8003I", "A socket descriptor is in use."}, + {1004, "EDC8004I", "Request failed because of an IUCV error."}, + {1005, "EDC8005I", "Offload box error."}, + {1006, "EDC8006I", "Offload box restarted."}, + {1007, "EDC8007I", "Offload box down."}, + {1008, "EDC8008I", "Already a conflicting call outstanding on socket."}, + {1009, "EDC8009I", "Request cancelled using a SOCKcallCANCEL request."}, + {1011, "EDC8011I", "A name of a PFS was specified that either is not configured or is not a Sockets PFS."}, + {1100, "EDC8100I", "Block device required."}, + {1101, "EDC8101I", "Text file busy."}, + {1102, "EDC8102I", "Operation would block."}, + {1103, "EDC8103I", "Operation now in progress."}, + {1104, "EDC8104I", "Connection already in progress."}, + {1105, "EDC8105I", "Socket operation on non-socket."}, + {1106, "EDC8106I", "Destination address required."}, + {1107, "EDC8107I", "Message too long."}, + {1108, "EDC8108I", "Protocol wrong type for socket."}, + {1109, "EDC8109I", "Protocol not available."}, + {1110, "EDC8110I", "Protocol not supported."}, + {1111, "EDC8111I", "Socket type not supported."}, + {1112, "EDC8112I", "Operation not supported on socket."}, + {1113, "EDC8113I", "Protocol family not supported."}, + {1114, "EDC8114I", "Address family not supported."}, + {1115, "EDC8115I", "Address already in use."}, + {1116, "EDC8116I", "Address not available."}, + {1117, "EDC8117I", "Network is down."}, + {1118, "EDC8118I", "Network is unreachable."}, + {1119, "EDC8119I", "Network dropped connection on reset."}, + {1120, "EDC8120I", "Connection ended abnormally."}, + {1121, "EDC8121I", "Connection reset."}, + {1122, "EDC8122I", "No buffer space available."}, + {1123, "EDC8123I", "Socket already connected."}, + {1124, "EDC8124I", "Socket not connected."}, + {1125, "EDC8125I", "Can't send after socket shutdown."}, + {1126, "EDC8126I", "Too many references; can't splice."}, + {1127, "EDC8127I", "Connection timed out."}, + {1128, "EDC8128I", "Connection refused."}, + {1129, "EDC8129I", "Host is not available."}, + {1130, "EDC8130I", "Host cannot be reached."}, + {1131, "EDC8131I", "Too many processes."}, + {1132, "EDC8132I", "Too many users."}, + {1133, "EDC8133I", "Disk quota exceeded."}, + {1134, "EDC8134I", "Stale file handle."}, + {1135, "", ""}, + {1136, "EDC8136I", "File is not a STREAM."}, + {1137, "EDC8137I", "STREAMS ioctl() timeout."}, + {1138, "EDC8138I", "No STREAMS resources."}, + {1139, "EDC8139I", "The message identified by set_id and msg_id is not in the message catalog."}, + {1140, "EDC8140I", "Bad message."}, + {1141, "EDC8141I", "Identifier removed."}, + {1142, "", ""}, + {1143, "", ""}, + {1144, "EDC8144I", "The link has been severed."}, + {1145, "", ""}, + {1146, "", ""}, + {1147, "", ""}, + {1148, "EDC8148I", "Protocol error."}, + {1149, "EDC8149I", "Multihop not allowed."}, + {1150, "", ""}, + {1151, "", ""}, + {1152, "EDC8152I", "The asynchronous I/O request has been canceled."}, + {1159, "EDC8159I", "Function call was interrupted before any data was received."}, + {1160, "EDC8160I", "Socket reuse is not supported."}, + {1161, "EDC8161I", "The file system cannot currently be moved."}, +} + +// Signal table +var signalList = [...]struct { + num Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGABT", "aborted"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGPOLL", "pollable event"}, + {6, "SIGURG", "urgent I/O condition"}, + {7, "SIGSTOP", "stop process"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad argument to routine"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGABND", "abend"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGQUIT", "quit"}, + {25, "SIGTSTP", "stopped"}, + {26, "SIGTRAP", "trace/breakpoint trap"}, + {27, "SIGIOER", "I/O error"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGXCPU", "CPU time limit exceeded"}, + {30, "SIGXFSZ", "file size limit exceeded"}, + {31, "SIGVTALRM", "virtual timer expired"}, + {32, "SIGPROF", "profiling timer expired"}, + {33, "SIGDANGER", "danger"}, + {34, "SIGTHSTOP", "stop thread"}, + {35, "SIGTHCONT", "continue thread"}, + {37, "SIGTRACE", "trace"}, + {38, "", "DCE"}, + {39, "SIGDUMP", "dump"}, +} diff --git a/vendor/golang.org/x/sys/unix/zptracearm_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go similarity index 90% rename from vendor/golang.org/x/sys/unix/zptracearm_linux.go rename to vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go index faf23bbed..bd001a6e1 100644 --- a/vendor/golang.org/x/sys/unix/zptracearm_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go @@ -1,5 +1,6 @@ -// Code generated by linux/mkall.go generatePtracePair(arm, arm64). DO NOT EDIT. +// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. +//go:build linux && (arm || arm64) // +build linux // +build arm arm64 diff --git a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go new file mode 100644 index 000000000..6cb6d688a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go @@ -0,0 +1,17 @@ +// Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT. + +package unix + +import "unsafe" + +// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries. +func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error { + iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))} + return ptrace(PTRACE_GETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec))) +} + +// PtraceSetRegSetArm64 sets the registers used by arm64 binaries. +func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error { + iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))} + return ptrace(PTRACE_SETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec))) +} diff --git a/vendor/golang.org/x/sys/unix/zptracemips_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go similarity index 91% rename from vendor/golang.org/x/sys/unix/zptracemips_linux.go rename to vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go index c431131e6..c34d0639b 100644 --- a/vendor/golang.org/x/sys/unix/zptracemips_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go @@ -1,5 +1,6 @@ -// Code generated by linux/mkall.go generatePtracePair(mips, mips64). DO NOT EDIT. +// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. +//go:build linux && (mips || mips64) // +build linux // +build mips mips64 diff --git a/vendor/golang.org/x/sys/unix/zptracemipsle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go similarity index 91% rename from vendor/golang.org/x/sys/unix/zptracemipsle_linux.go rename to vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go index dc3d6d373..3ccf0c0c4 100644 --- a/vendor/golang.org/x/sys/unix/zptracemipsle_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go @@ -1,5 +1,6 @@ -// Code generated by linux/mkall.go generatePtracePair(mipsle, mips64le). DO NOT EDIT. +// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. +//go:build linux && (mipsle || mips64le) // +build linux // +build mipsle mips64le diff --git a/vendor/golang.org/x/sys/unix/zptrace386_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go similarity index 93% rename from vendor/golang.org/x/sys/unix/zptrace386_linux.go rename to vendor/golang.org/x/sys/unix/zptrace_x86_linux.go index 2d21c49e1..7d6585700 100644 --- a/vendor/golang.org/x/sys/unix/zptrace386_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go @@ -1,5 +1,6 @@ -// Code generated by linux/mkall.go generatePtracePair(386, amd64). DO NOT EDIT. +// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. +//go:build linux && (386 || amd64) // +build linux // +build 386 amd64 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go index 79f6e0566..91a23cc72 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go @@ -1,6 +1,7 @@ // go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build aix && ppc // +build aix,ppc package unix @@ -83,6 +84,8 @@ int lstat(uintptr_t, uintptr_t); int pause(); int pread64(int, uintptr_t, size_t, long long); int pwrite64(int, uintptr_t, size_t, long long); +#define c_select select +int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int setregid(int, int); int setreuid(int, int); @@ -103,8 +106,8 @@ int getpeername(int, uintptr_t, uintptr_t); int getsockname(int, uintptr_t, uintptr_t); int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); -int recvmsg(int, uintptr_t, int); -int sendmsg(int, uintptr_t, int); +int nrecvmsg(int, uintptr_t, int); +int nsendmsg(int, uintptr_t, int); int munmap(uintptr_t, uintptr_t); int madvise(uintptr_t, size_t, int); int mprotect(uintptr_t, size_t, int); @@ -118,6 +121,8 @@ int poll(uintptr_t, int, int); int gettimeofday(uintptr_t, uintptr_t); int time(uintptr_t); int utime(uintptr_t, uintptr_t); +unsigned long long getsystemcfg(int); +int umount(uintptr_t); int getrlimit64(int, uintptr_t); int setrlimit64(int, uintptr_t); long long lseek64(int, long long, int); @@ -855,7 +860,7 @@ func Fchown(fd int, uid int, gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fstat(fd int, stat *Stat_t) (err error) { +func fstat(fd int, stat *Stat_t) (err error) { r0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) if r0 == -1 && er != nil { err = er @@ -865,7 +870,7 @@ func Fstat(fd int, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { +func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { _p0 := uintptr(unsafe.Pointer(C.CString(path))) r0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags)) if r0 == -1 && er != nil { @@ -949,7 +954,7 @@ func Listen(s int, n int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Lstat(path string, stat *Stat_t) (err error) { +func lstat(path string, stat *Stat_t) (err error) { _p0 := uintptr(unsafe.Pointer(C.CString(path))) r0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) if r0 == -1 && er != nil { @@ -1004,6 +1009,17 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout)))) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask)))) n = int(r0) @@ -1056,9 +1072,9 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Stat(path string, stat *Stat_t) (err error) { +func stat(path string, statptr *Stat_t) (err error) { _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) + r0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr)))) if r0 == -1 && er != nil { err = er } @@ -1225,7 +1241,7 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, er := C.recvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) + r0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) n = int(r0) if r0 == -1 && er != nil { err = er @@ -1236,7 +1252,7 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, er := C.sendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) + r0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) n = int(r0) if r0 == -1 && er != nil { err = er @@ -1409,6 +1425,25 @@ func Utime(path string, buf *Utimbuf) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsystemcfg(label int) (n uint64) { + r0, _ := C.getsystemcfg(C.int(label)) + n = uint64(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func umount(target string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(target))) + r0, er := C.umount(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getrlimit(resource int, rlim *Rlimit) (err error) { r0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim)))) if r0 == -1 && er != nil { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go index 52802bfc1..33c2609b8 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go @@ -1,6 +1,7 @@ // go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build aix && ppc64 // +build aix,ppc64 package unix @@ -803,7 +804,7 @@ func Fchown(fd int, uid int, gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fstat(fd int, stat *Stat_t) (err error) { +func fstat(fd int, stat *Stat_t) (err error) { _, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat))) if e1 != 0 { err = errnoErr(e1) @@ -813,7 +814,7 @@ func Fstat(fd int, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { +func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -905,7 +906,7 @@ func Listen(s int, n int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Lstat(path string, stat *Stat_t) (err error) { +func lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -960,6 +961,17 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) n = int(r0) @@ -1012,13 +1024,13 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Stat(path string, stat *Stat_t) (err error) { +func stat(path string, statptr *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) + _, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr))) if e1 != 0 { err = errnoErr(e1) } @@ -1189,7 +1201,7 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, e1 := callrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags) + r0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1200,7 +1212,7 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, e1 := callsendmsg(s, uintptr(unsafe.Pointer(msg)), flags) + r0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1375,6 +1387,21 @@ func Getsystemcfg(label int) (n uint64) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func umount(target string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, e1 := callumount(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getrlimit(resource int, rlim *Rlimit) (err error) { _, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim))) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go index a2b24e4a4..8b737fa97 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go @@ -1,8 +1,8 @@ // go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build aix,ppc64 -// +build !gccgo +//go:build aix && ppc64 && gc +// +build aix,ppc64,gc package unix @@ -85,6 +85,7 @@ import ( //go:cgo_import_dynamic libc_pause pause "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pread64 pread64 "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pwrite64 pwrite64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_select select "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pselect pselect "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setregid setregid "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setreuid setreuid "libc.a/shr_64.o" @@ -105,8 +106,8 @@ import ( //go:cgo_import_dynamic libc_getsockname getsockname "libc.a/shr_64.o" //go:cgo_import_dynamic libc_recvfrom recvfrom "libc.a/shr_64.o" //go:cgo_import_dynamic libc_sendto sendto "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_nsendmsg nsendmsg "libc.a/shr_64.o" //go:cgo_import_dynamic libc_munmap munmap "libc.a/shr_64.o" //go:cgo_import_dynamic libc_madvise madvise "libc.a/shr_64.o" //go:cgo_import_dynamic libc_mprotect mprotect "libc.a/shr_64.o" @@ -121,6 +122,7 @@ import ( //go:cgo_import_dynamic libc_time time "libc.a/shr_64.o" //go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o" //go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_umount umount "libc.a/shr_64.o" //go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o" //go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o" @@ -201,6 +203,7 @@ import ( //go:linkname libc_pause libc_pause //go:linkname libc_pread64 libc_pread64 //go:linkname libc_pwrite64 libc_pwrite64 +//go:linkname libc_select libc_select //go:linkname libc_pselect libc_pselect //go:linkname libc_setregid libc_setregid //go:linkname libc_setreuid libc_setreuid @@ -221,8 +224,8 @@ import ( //go:linkname libc_getsockname libc_getsockname //go:linkname libc_recvfrom libc_recvfrom //go:linkname libc_sendto libc_sendto -//go:linkname libc_recvmsg libc_recvmsg -//go:linkname libc_sendmsg libc_sendmsg +//go:linkname libc_nrecvmsg libc_nrecvmsg +//go:linkname libc_nsendmsg libc_nsendmsg //go:linkname libc_munmap libc_munmap //go:linkname libc_madvise libc_madvise //go:linkname libc_mprotect libc_mprotect @@ -237,6 +240,7 @@ import ( //go:linkname libc_time libc_time //go:linkname libc_utime libc_utime //go:linkname libc_getsystemcfg libc_getsystemcfg +//go:linkname libc_umount libc_umount //go:linkname libc_getrlimit libc_getrlimit //go:linkname libc_setrlimit libc_setrlimit //go:linkname libc_lseek libc_lseek @@ -320,6 +324,7 @@ var ( libc_pause, libc_pread64, libc_pwrite64, + libc_select, libc_pselect, libc_setregid, libc_setreuid, @@ -340,8 +345,8 @@ var ( libc_getsockname, libc_recvfrom, libc_sendto, - libc_recvmsg, - libc_sendmsg, + libc_nrecvmsg, + libc_nsendmsg, libc_munmap, libc_madvise, libc_mprotect, @@ -356,6 +361,7 @@ var ( libc_time, libc_utime, libc_getsystemcfg, + libc_umount, libc_getrlimit, libc_setrlimit, libc_lseek, @@ -893,6 +899,13 @@ func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask) return @@ -928,8 +941,8 @@ func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, stat, 0, 0, 0, 0) +func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0) return } @@ -1033,15 +1046,15 @@ func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen u // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) +func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) +func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) return } @@ -1145,6 +1158,13 @@ func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0) return diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go index 5491c89e9..3c260917e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go @@ -1,8 +1,8 @@ // go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build aix,ppc64 -// +build gccgo +//go:build aix && ppc64 && gccgo +// +build aix,ppc64,gccgo package unix @@ -83,6 +83,8 @@ int lstat(uintptr_t, uintptr_t); int pause(); int pread64(int, uintptr_t, size_t, long long); int pwrite64(int, uintptr_t, size_t, long long); +#define c_select select +int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int setregid(int, int); int setreuid(int, int); @@ -103,8 +105,8 @@ int getpeername(int, uintptr_t, uintptr_t); int getsockname(int, uintptr_t, uintptr_t); int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); -int recvmsg(int, uintptr_t, int); -int sendmsg(int, uintptr_t, int); +int nrecvmsg(int, uintptr_t, int); +int nsendmsg(int, uintptr_t, int); int munmap(uintptr_t, uintptr_t); int madvise(uintptr_t, size_t, int); int mprotect(uintptr_t, size_t, int); @@ -119,6 +121,7 @@ int gettimeofday(uintptr_t, uintptr_t); int time(uintptr_t); int utime(uintptr_t, uintptr_t); unsigned long long getsystemcfg(int); +int umount(uintptr_t); int getrlimit(int, uintptr_t); int setrlimit(int, uintptr_t); long long lseek(int, long long, int); @@ -732,6 +735,14 @@ func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { r1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask))) e1 = syscall.GetErrno() @@ -772,8 +783,8 @@ func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(stat))) +func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr))) e1 = syscall.GetErrno() return } @@ -892,16 +903,16 @@ func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen u // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.recvmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) +func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) e1 = syscall.GetErrno() return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sendmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) +func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) e1 = syscall.GetErrno() return } @@ -1020,6 +1031,14 @@ func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.umount(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim))) e1 = syscall.GetErrno() diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go new file mode 100644 index 000000000..48a62e390 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go @@ -0,0 +1,40 @@ +// go run mksyscall.go -l32 -tags darwin,386,go1.13 syscall_darwin.1_13.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build darwin && 386 && go1.13 +// +build darwin,386,go1.13 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_closedir_trampoline() + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +func libc_readdir_r_trampoline() + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s new file mode 100644 index 000000000..00da1ebfc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s @@ -0,0 +1,12 @@ +// go run mkasm_darwin.go 386 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.13 + +#include "textflag.h" +TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) 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 23346dc68..a266636af 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -tags darwin,386,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build darwin && 386 && go1.12 // +build darwin,386,go1.12 package unix @@ -25,7 +26,6 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { func libc_getgroups_trampoline() -//go:linkname libc_getgroups libc_getgroups //go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -40,7 +40,6 @@ func setgroups(ngid int, gid *_Gid_t) (err error) { func libc_setgroups_trampoline() -//go:linkname libc_setgroups libc_setgroups //go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -56,7 +55,6 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err func libc_wait4_trampoline() -//go:linkname libc_wait4 libc_wait4 //go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -72,7 +70,6 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { func libc_accept_trampoline() -//go:linkname libc_accept libc_accept //go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -87,7 +84,6 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { func libc_bind_trampoline() -//go:linkname libc_bind libc_bind //go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -102,7 +98,6 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { func libc_connect_trampoline() -//go:linkname libc_connect libc_connect //go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -118,7 +113,6 @@ func socket(domain int, typ int, proto int) (fd int, err error) { func libc_socket_trampoline() -//go:linkname libc_socket libc_socket //go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -133,7 +127,6 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen func libc_getsockopt_trampoline() -//go:linkname libc_getsockopt libc_getsockopt //go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -148,7 +141,6 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) func libc_setsockopt_trampoline() -//go:linkname libc_setsockopt libc_setsockopt //go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -163,7 +155,6 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { func libc_getpeername_trampoline() -//go:linkname libc_getpeername libc_getpeername //go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -178,7 +169,6 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { func libc_getsockname_trampoline() -//go:linkname libc_getsockname libc_getsockname //go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -193,7 +183,6 @@ func Shutdown(s int, how int) (err error) { func libc_shutdown_trampoline() -//go:linkname libc_shutdown libc_shutdown //go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -208,7 +197,6 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { func libc_socketpair_trampoline() -//go:linkname libc_socketpair libc_socketpair //go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -230,7 +218,6 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl func libc_recvfrom_trampoline() -//go:linkname libc_recvfrom libc_recvfrom //go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -251,7 +238,6 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( func libc_sendto_trampoline() -//go:linkname libc_sendto libc_sendto //go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -267,7 +253,6 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { func libc_recvmsg_trampoline() -//go:linkname libc_recvmsg libc_recvmsg //go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -283,7 +268,6 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { func libc_sendmsg_trampoline() -//go:linkname libc_sendmsg libc_sendmsg //go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -299,32 +283,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne func libc_kevent_trampoline() -//go:linkname libc_kevent libc_kevent //go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc___sysctl_trampoline() - -//go:linkname libc___sysctl libc___sysctl -//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -340,7 +302,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) { func libc_utimes_trampoline() -//go:linkname libc_utimes libc_utimes //go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -355,27 +316,10 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { func libc_futimes_trampoline() -//go:linkname libc_futimes libc_futimes //go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -387,7 +331,6 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { func libc_poll_trampoline() -//go:linkname libc_poll libc_poll //go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -408,7 +351,6 @@ func Madvise(b []byte, behav int) (err error) { func libc_madvise_trampoline() -//go:linkname libc_madvise libc_madvise //go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -429,7 +371,6 @@ func Mlock(b []byte) (err error) { func libc_mlock_trampoline() -//go:linkname libc_mlock libc_mlock //go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -444,7 +385,6 @@ func Mlockall(flags int) (err error) { func libc_mlockall_trampoline() -//go:linkname libc_mlockall libc_mlockall //go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -465,7 +405,6 @@ func Mprotect(b []byte, prot int) (err error) { func libc_mprotect_trampoline() -//go:linkname libc_mprotect libc_mprotect //go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -486,7 +425,6 @@ func Msync(b []byte, flags int) (err error) { func libc_msync_trampoline() -//go:linkname libc_msync libc_msync //go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -507,7 +445,6 @@ func Munlock(b []byte) (err error) { func libc_munlock_trampoline() -//go:linkname libc_munlock libc_munlock //go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -522,45 +459,12 @@ func Munlockall() (err error) { func libc_munlockall_trampoline() -//go:linkname libc_munlockall libc_munlockall //go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ptrace_trampoline() - -//go:linkname libc_ptrace libc_ptrace -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getattrlist_trampoline() - -//go:linkname libc_getattrlist libc_getattrlist -//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) - r = int(r0) - w = int(r1) +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -569,7 +473,6 @@ func pipe() (r int, w int, err error) { func libc_pipe_trampoline() -//go:linkname libc_pipe libc_pipe //go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -595,7 +498,6 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o func libc_getxattr_trampoline() -//go:linkname libc_getxattr libc_getxattr //go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -616,7 +518,6 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio func libc_fgetxattr_trampoline() -//go:linkname libc_fgetxattr libc_fgetxattr //go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -641,7 +542,6 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o func libc_setxattr_trampoline() -//go:linkname libc_setxattr libc_setxattr //go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -661,7 +561,6 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio func libc_fsetxattr_trampoline() -//go:linkname libc_fsetxattr libc_fsetxattr //go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -686,7 +585,6 @@ func removexattr(path string, attr string, options int) (err error) { func libc_removexattr_trampoline() -//go:linkname libc_removexattr libc_removexattr //go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -706,7 +604,6 @@ func fremovexattr(fd int, attr string, options int) (err error) { func libc_fremovexattr_trampoline() -//go:linkname libc_fremovexattr libc_fremovexattr //go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -727,7 +624,6 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro func libc_listxattr_trampoline() -//go:linkname libc_listxattr libc_listxattr //go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -743,7 +639,6 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { func libc_flistxattr_trampoline() -//go:linkname libc_flistxattr libc_flistxattr //go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -758,11 +653,25 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp func libc_setattrlist_trampoline() -//go:linkname libc_setattrlist libc_setattrlist //go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -773,7 +682,6 @@ func kill(pid int, signum int, posix int) (err error) { func libc_kill_trampoline() -//go:linkname libc_kill libc_kill //go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -788,11 +696,30 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { func libc_ioctl_trampoline() -//go:linkname libc_ioctl libc_ioctl //go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) if e1 != 0 { @@ -803,7 +730,6 @@ func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer func libc_sendfile_trampoline() -//go:linkname libc_sendfile libc_sendfile //go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -823,7 +749,6 @@ func Access(path string, mode uint32) (err error) { func libc_access_trampoline() -//go:linkname libc_access libc_access //go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -838,7 +763,6 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { func libc_adjtime_trampoline() -//go:linkname libc_adjtime libc_adjtime //go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -858,7 +782,6 @@ func Chdir(path string) (err error) { func libc_chdir_trampoline() -//go:linkname libc_chdir libc_chdir //go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -878,7 +801,6 @@ func Chflags(path string, flags int) (err error) { func libc_chflags_trampoline() -//go:linkname libc_chflags libc_chflags //go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -898,7 +820,6 @@ func Chmod(path string, mode uint32) (err error) { func libc_chmod_trampoline() -//go:linkname libc_chmod libc_chmod //go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -918,7 +839,6 @@ func Chown(path string, uid int, gid int) (err error) { func libc_chown_trampoline() -//go:linkname libc_chown libc_chown //go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -938,11 +858,24 @@ func Chroot(path string) (err error) { func libc_chroot_trampoline() -//go:linkname libc_chroot libc_chroot //go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clock_gettime_trampoline() + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) if e1 != 0 { @@ -953,11 +886,58 @@ func Close(fd int) (err error) { func libc_close_trampoline() -//go:linkname libc_close libc_close //go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_clonefile_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefile_trampoline() + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_clonefileat_trampoline), uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefileat_trampoline() + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Dup(fd int) (nfd int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) nfd = int(r0) @@ -969,7 +949,6 @@ func Dup(fd int) (nfd int, err error) { func libc_dup_trampoline() -//go:linkname libc_dup libc_dup //go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -984,7 +963,6 @@ func Dup2(from int, to int) (err error) { func libc_dup2_trampoline() -//go:linkname libc_dup2 libc_dup2 //go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1009,7 +987,6 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { func libc_exchangedata_trampoline() -//go:linkname libc_exchangedata libc_exchangedata //go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1021,7 +998,6 @@ func Exit(code int) { func libc_exit_trampoline() -//go:linkname libc_exit libc_exit //go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1041,7 +1017,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { func libc_faccessat_trampoline() -//go:linkname libc_faccessat libc_faccessat //go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1056,7 +1031,6 @@ func Fchdir(fd int) (err error) { func libc_fchdir_trampoline() -//go:linkname libc_fchdir libc_fchdir //go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1071,7 +1045,6 @@ func Fchflags(fd int, flags int) (err error) { func libc_fchflags_trampoline() -//go:linkname libc_fchflags libc_fchflags //go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1086,7 +1059,6 @@ func Fchmod(fd int, mode uint32) (err error) { func libc_fchmod_trampoline() -//go:linkname libc_fchmod libc_fchmod //go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1106,7 +1078,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { func libc_fchmodat_trampoline() -//go:linkname libc_fchmodat libc_fchmodat //go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1121,7 +1092,6 @@ func Fchown(fd int, uid int, gid int) (err error) { func libc_fchown_trampoline() -//go:linkname libc_fchown libc_fchown //go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1141,11 +1111,29 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { func libc_fchownat_trampoline() -//go:linkname libc_fchownat libc_fchownat //go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fclonefileat_trampoline), uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fclonefileat_trampoline() + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Flock(fd int, how int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) if e1 != 0 { @@ -1156,7 +1144,6 @@ func Flock(fd int, how int) (err error) { func libc_flock_trampoline() -//go:linkname libc_flock libc_flock //go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1172,7 +1159,6 @@ func Fpathconf(fd int, name int) (val int, err error) { func libc_fpathconf_trampoline() -//go:linkname libc_fpathconf libc_fpathconf //go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1187,7 +1173,6 @@ func Fsync(fd int) (err error) { func libc_fsync_trampoline() -//go:linkname libc_fsync libc_fsync //go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1202,11 +1187,31 @@ func Ftruncate(fd int, length int64) (err error) { func libc_ftruncate_trampoline() -//go:linkname libc_ftruncate libc_ftruncate //go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getcwd(buf []byte) (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_syscall(funcPC(libc_getcwd_trampoline), uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getcwd_trampoline() + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdtablesize() (size int) { r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) size = int(r0) @@ -1215,7 +1220,6 @@ func Getdtablesize() (size int) { func libc_getdtablesize_trampoline() -//go:linkname libc_getdtablesize libc_getdtablesize //go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1228,7 +1232,6 @@ func Getegid() (egid int) { func libc_getegid_trampoline() -//go:linkname libc_getegid libc_getegid //go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1241,7 +1244,6 @@ func Geteuid() (uid int) { func libc_geteuid_trampoline() -//go:linkname libc_geteuid libc_geteuid //go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1254,7 +1256,6 @@ func Getgid() (gid int) { func libc_getgid_trampoline() -//go:linkname libc_getgid libc_getgid //go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1270,7 +1271,6 @@ func Getpgid(pid int) (pgid int, err error) { func libc_getpgid_trampoline() -//go:linkname libc_getpgid libc_getpgid //go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1283,7 +1283,6 @@ func Getpgrp() (pgrp int) { func libc_getpgrp_trampoline() -//go:linkname libc_getpgrp libc_getpgrp //go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1296,7 +1295,6 @@ func Getpid() (pid int) { func libc_getpid_trampoline() -//go:linkname libc_getpid libc_getpid //go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1309,7 +1307,6 @@ func Getppid() (ppid int) { func libc_getppid_trampoline() -//go:linkname libc_getppid libc_getppid //go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1325,7 +1322,6 @@ func Getpriority(which int, who int) (prio int, err error) { func libc_getpriority_trampoline() -//go:linkname libc_getpriority libc_getpriority //go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1340,7 +1336,6 @@ func Getrlimit(which int, lim *Rlimit) (err error) { func libc_getrlimit_trampoline() -//go:linkname libc_getrlimit libc_getrlimit //go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1355,7 +1350,6 @@ func Getrusage(who int, rusage *Rusage) (err error) { func libc_getrusage_trampoline() -//go:linkname libc_getrusage libc_getrusage //go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1371,11 +1365,24 @@ func Getsid(pid int) (sid int, err error) { func libc_getsid_trampoline() -//go:linkname libc_getsid libc_getsid //go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) @@ -1384,7 +1391,6 @@ func Getuid() (uid int) { func libc_getuid_trampoline() -//go:linkname libc_getuid libc_getuid //go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1397,7 +1403,6 @@ func Issetugid() (tainted bool) { func libc_issetugid_trampoline() -//go:linkname libc_issetugid libc_issetugid //go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1413,7 +1418,6 @@ func Kqueue() (fd int, err error) { func libc_kqueue_trampoline() -//go:linkname libc_kqueue libc_kqueue //go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1433,7 +1437,6 @@ func Lchown(path string, uid int, gid int) (err error) { func libc_lchown_trampoline() -//go:linkname libc_lchown libc_lchown //go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1458,7 +1461,6 @@ func Link(path string, link string) (err error) { func libc_link_trampoline() -//go:linkname libc_link libc_link //go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1483,7 +1485,6 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er func libc_linkat_trampoline() -//go:linkname libc_linkat libc_linkat //go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1498,7 +1499,6 @@ func Listen(s int, backlog int) (err error) { func libc_listen_trampoline() -//go:linkname libc_listen libc_listen //go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1518,7 +1518,6 @@ func Mkdir(path string, mode uint32) (err error) { func libc_mkdir_trampoline() -//go:linkname libc_mkdir libc_mkdir //go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1538,7 +1537,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { func libc_mkdirat_trampoline() -//go:linkname libc_mkdirat libc_mkdirat //go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1558,7 +1556,6 @@ func Mkfifo(path string, mode uint32) (err error) { func libc_mkfifo_trampoline() -//go:linkname libc_mkfifo libc_mkfifo //go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1578,7 +1575,6 @@ func Mknod(path string, mode uint32, dev int) (err error) { func libc_mknod_trampoline() -//go:linkname libc_mknod libc_mknod //go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1599,7 +1595,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { func libc_open_trampoline() -//go:linkname libc_open libc_open //go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1620,7 +1615,6 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { func libc_openat_trampoline() -//go:linkname libc_openat libc_openat //go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1641,7 +1635,6 @@ func Pathconf(path string, name int) (val int, err error) { func libc_pathconf_trampoline() -//go:linkname libc_pathconf libc_pathconf //go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1663,7 +1656,6 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { func libc_pread_trampoline() -//go:linkname libc_pread libc_pread //go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1685,7 +1677,6 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { func libc_pwrite_trampoline() -//go:linkname libc_pwrite libc_pwrite //go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1707,7 +1698,6 @@ func read(fd int, p []byte) (n int, err error) { func libc_read_trampoline() -//go:linkname libc_read libc_read //go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1734,7 +1724,6 @@ func Readlink(path string, buf []byte) (n int, err error) { func libc_readlink_trampoline() -//go:linkname libc_readlink libc_readlink //go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1761,7 +1750,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { func libc_readlinkat_trampoline() -//go:linkname libc_readlinkat libc_readlinkat //go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1786,7 +1774,6 @@ func Rename(from string, to string) (err error) { func libc_rename_trampoline() -//go:linkname libc_rename libc_rename //go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1811,7 +1798,6 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { func libc_renameat_trampoline() -//go:linkname libc_renameat libc_renameat //go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1831,7 +1817,6 @@ func Revoke(path string) (err error) { func libc_revoke_trampoline() -//go:linkname libc_revoke libc_revoke //go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1851,7 +1836,6 @@ func Rmdir(path string) (err error) { func libc_rmdir_trampoline() -//go:linkname libc_rmdir libc_rmdir //go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1867,13 +1851,13 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { func libc_lseek_trampoline() -//go:linkname libc_lseek libc_lseek //go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1882,7 +1866,6 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { func libc_select_trampoline() -//go:linkname libc_select libc_select //go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1897,7 +1880,6 @@ func Setegid(egid int) (err error) { func libc_setegid_trampoline() -//go:linkname libc_setegid libc_setegid //go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1912,7 +1894,6 @@ func Seteuid(euid int) (err error) { func libc_seteuid_trampoline() -//go:linkname libc_seteuid libc_seteuid //go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1927,7 +1908,6 @@ func Setgid(gid int) (err error) { func libc_setgid_trampoline() -//go:linkname libc_setgid libc_setgid //go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1947,7 +1927,6 @@ func Setlogin(name string) (err error) { func libc_setlogin_trampoline() -//go:linkname libc_setlogin libc_setlogin //go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1962,7 +1941,6 @@ func Setpgid(pid int, pgid int) (err error) { func libc_setpgid_trampoline() -//go:linkname libc_setpgid libc_setpgid //go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1977,7 +1955,6 @@ func Setpriority(which int, who int, prio int) (err error) { func libc_setpriority_trampoline() -//go:linkname libc_setpriority libc_setpriority //go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1992,7 +1969,6 @@ func Setprivexec(flag int) (err error) { func libc_setprivexec_trampoline() -//go:linkname libc_setprivexec libc_setprivexec //go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2007,7 +1983,6 @@ func Setregid(rgid int, egid int) (err error) { func libc_setregid_trampoline() -//go:linkname libc_setregid libc_setregid //go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2022,7 +1997,6 @@ func Setreuid(ruid int, euid int) (err error) { func libc_setreuid_trampoline() -//go:linkname libc_setreuid libc_setreuid //go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2037,7 +2011,6 @@ func Setrlimit(which int, lim *Rlimit) (err error) { func libc_setrlimit_trampoline() -//go:linkname libc_setrlimit libc_setrlimit //go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2053,7 +2026,6 @@ func Setsid() (pid int, err error) { func libc_setsid_trampoline() -//go:linkname libc_setsid libc_setsid //go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2068,7 +2040,6 @@ func Settimeofday(tp *Timeval) (err error) { func libc_settimeofday_trampoline() -//go:linkname libc_settimeofday libc_settimeofday //go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2083,7 +2054,6 @@ func Setuid(uid int) (err error) { func libc_setuid_trampoline() -//go:linkname libc_setuid libc_setuid //go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2108,7 +2078,6 @@ func Symlink(path string, link string) (err error) { func libc_symlink_trampoline() -//go:linkname libc_symlink libc_symlink //go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2133,7 +2102,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { func libc_symlinkat_trampoline() -//go:linkname libc_symlinkat libc_symlinkat //go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2148,7 +2116,6 @@ func Sync() (err error) { func libc_sync_trampoline() -//go:linkname libc_sync libc_sync //go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2168,7 +2135,6 @@ func Truncate(path string, length int64) (err error) { func libc_truncate_trampoline() -//go:linkname libc_truncate libc_truncate //go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2181,7 +2147,6 @@ func Umask(newmask int) (oldmask int) { func libc_umask_trampoline() -//go:linkname libc_umask libc_umask //go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2201,7 +2166,6 @@ func Undelete(path string) (err error) { func libc_undelete_trampoline() -//go:linkname libc_undelete libc_undelete //go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2221,7 +2185,6 @@ func Unlink(path string) (err error) { func libc_unlink_trampoline() -//go:linkname libc_unlink libc_unlink //go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2241,7 +2204,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { func libc_unlinkat_trampoline() -//go:linkname libc_unlinkat libc_unlinkat //go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2261,7 +2223,6 @@ func Unmount(path string, flags int) (err error) { func libc_unmount_trampoline() -//go:linkname libc_unmount libc_unmount //go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2283,7 +2244,6 @@ func write(fd int, p []byte) (n int, err error) { func libc_write_trampoline() -//go:linkname libc_write libc_write //go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2299,7 +2259,6 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( func libc_mmap_trampoline() -//go:linkname libc_mmap libc_mmap //go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2314,7 +2273,6 @@ func munmap(addr uintptr, length uintptr) (err error) { func libc_munmap_trampoline() -//go:linkname libc_munmap libc_munmap //go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2341,23 +2299,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { @@ -2368,7 +2309,6 @@ func Fstat(fd int, stat *Stat_t) (err error) { func libc_fstat64_trampoline() -//go:linkname libc_fstat64 libc_fstat64 //go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2388,7 +2328,6 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { func libc_fstatat64_trampoline() -//go:linkname libc_fstatat64 libc_fstatat64 //go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2403,33 +2342,10 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { func libc_fstatfs64_trampoline() -//go:linkname libc_fstatfs64 libc_fstatfs64 //go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdirentries(fd int, buf []byte, basep *uintptr) (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_syscall6(funcPC(libc___getdirentries64_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc___getdirentries64_trampoline() - -//go:linkname libc___getdirentries64 libc___getdirentries64 -//go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) n = int(r0) @@ -2441,7 +2357,6 @@ func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { func libc_getfsstat64_trampoline() -//go:linkname libc_getfsstat64 libc_getfsstat64 //go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2461,11 +2376,24 @@ func Lstat(path string, stat *Stat_t) (err error) { func libc_lstat64_trampoline() -//go:linkname libc_lstat64 libc_lstat64 //go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ptrace_trampoline() + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Stat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -2481,7 +2409,6 @@ func Stat(path string, stat *Stat_t) (err error) { func libc_stat64_trampoline() -//go:linkname libc_stat64 libc_stat64 //go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2501,5 +2428,4 @@ func Statfs(path string, stat *Statfs_t) (err error) { func libc_statfs64_trampoline() -//go:linkname libc_statfs64 libc_statfs64 //go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s index 37b85b4f6..1c53979a1 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s @@ -40,14 +40,10 @@ TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) -TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc___sysctl(SB) TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 JMP libc_poll(SB) TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 @@ -64,10 +60,6 @@ TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) -TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getattrlist(SB) TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 JMP libc_pipe(SB) TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 @@ -88,10 +80,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 JMP libc_kill(SB) TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 @@ -108,8 +104,14 @@ TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 JMP libc_chown(SB) TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) +TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 JMP libc_close(SB) +TEXT ·libc_clonefile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +TEXT ·libc_clonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 JMP libc_dup(SB) TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 @@ -132,6 +134,8 @@ TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) +TEXT ·libc_fclonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 JMP libc_flock(SB) TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 @@ -140,6 +144,8 @@ TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) +TEXT ·libc_getcwd_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 JMP libc_getdtablesize(SB) TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 @@ -164,6 +170,8 @@ TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 @@ -264,20 +272,18 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) -TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstat64(SB) TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatat64(SB) TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatfs64(SB) -TEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0 - JMP libc___getdirentries64(SB) TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_getfsstat64(SB) TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_lstat64(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_stat64(SB) TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go deleted file mode 100644 index 2581e8960..000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go +++ /dev/null @@ -1,1810 +0,0 @@ -// go run mksyscall.go -tags darwin,amd64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,amd64,!go1.12 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), 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 Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go new file mode 100644 index 000000000..e36299ead --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go @@ -0,0 +1,40 @@ +// go run mksyscall.go -tags darwin,amd64,go1.13 syscall_darwin.1_13.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build darwin && amd64 && go1.13 +// +build darwin,amd64,go1.13 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_closedir_trampoline() + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +func libc_readdir_r_trampoline() + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s new file mode 100644 index 000000000..d671e8311 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s @@ -0,0 +1,12 @@ +// go run mkasm_darwin.go amd64 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.13 + +#include "textflag.h" +TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) 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 c142e33e9..f41116288 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags darwin,amd64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build darwin && amd64 && go1.12 // +build darwin,amd64,go1.12 package unix @@ -25,7 +26,6 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { func libc_getgroups_trampoline() -//go:linkname libc_getgroups libc_getgroups //go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -40,7 +40,6 @@ func setgroups(ngid int, gid *_Gid_t) (err error) { func libc_setgroups_trampoline() -//go:linkname libc_setgroups libc_setgroups //go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -56,7 +55,6 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err func libc_wait4_trampoline() -//go:linkname libc_wait4 libc_wait4 //go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -72,7 +70,6 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { func libc_accept_trampoline() -//go:linkname libc_accept libc_accept //go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -87,7 +84,6 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { func libc_bind_trampoline() -//go:linkname libc_bind libc_bind //go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -102,7 +98,6 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { func libc_connect_trampoline() -//go:linkname libc_connect libc_connect //go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -118,7 +113,6 @@ func socket(domain int, typ int, proto int) (fd int, err error) { func libc_socket_trampoline() -//go:linkname libc_socket libc_socket //go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -133,7 +127,6 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen func libc_getsockopt_trampoline() -//go:linkname libc_getsockopt libc_getsockopt //go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -148,7 +141,6 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) func libc_setsockopt_trampoline() -//go:linkname libc_setsockopt libc_setsockopt //go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -163,7 +155,6 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { func libc_getpeername_trampoline() -//go:linkname libc_getpeername libc_getpeername //go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -178,7 +169,6 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { func libc_getsockname_trampoline() -//go:linkname libc_getsockname libc_getsockname //go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -193,7 +183,6 @@ func Shutdown(s int, how int) (err error) { func libc_shutdown_trampoline() -//go:linkname libc_shutdown libc_shutdown //go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -208,7 +197,6 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { func libc_socketpair_trampoline() -//go:linkname libc_socketpair libc_socketpair //go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -230,7 +218,6 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl func libc_recvfrom_trampoline() -//go:linkname libc_recvfrom libc_recvfrom //go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -251,7 +238,6 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( func libc_sendto_trampoline() -//go:linkname libc_sendto libc_sendto //go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -267,7 +253,6 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { func libc_recvmsg_trampoline() -//go:linkname libc_recvmsg libc_recvmsg //go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -283,7 +268,6 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { func libc_sendmsg_trampoline() -//go:linkname libc_sendmsg libc_sendmsg //go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -299,32 +283,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne func libc_kevent_trampoline() -//go:linkname libc_kevent libc_kevent //go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc___sysctl_trampoline() - -//go:linkname libc___sysctl libc___sysctl -//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -340,7 +302,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) { func libc_utimes_trampoline() -//go:linkname libc_utimes libc_utimes //go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -355,27 +316,10 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { func libc_futimes_trampoline() -//go:linkname libc_futimes libc_futimes //go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -387,7 +331,6 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { func libc_poll_trampoline() -//go:linkname libc_poll libc_poll //go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -408,7 +351,6 @@ func Madvise(b []byte, behav int) (err error) { func libc_madvise_trampoline() -//go:linkname libc_madvise libc_madvise //go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -429,7 +371,6 @@ func Mlock(b []byte) (err error) { func libc_mlock_trampoline() -//go:linkname libc_mlock libc_mlock //go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -444,7 +385,6 @@ func Mlockall(flags int) (err error) { func libc_mlockall_trampoline() -//go:linkname libc_mlockall libc_mlockall //go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -465,7 +405,6 @@ func Mprotect(b []byte, prot int) (err error) { func libc_mprotect_trampoline() -//go:linkname libc_mprotect libc_mprotect //go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -486,7 +425,6 @@ func Msync(b []byte, flags int) (err error) { func libc_msync_trampoline() -//go:linkname libc_msync libc_msync //go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -507,7 +445,6 @@ func Munlock(b []byte) (err error) { func libc_munlock_trampoline() -//go:linkname libc_munlock libc_munlock //go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -522,45 +459,12 @@ func Munlockall() (err error) { func libc_munlockall_trampoline() -//go:linkname libc_munlockall libc_munlockall //go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ptrace_trampoline() - -//go:linkname libc_ptrace libc_ptrace -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getattrlist_trampoline() - -//go:linkname libc_getattrlist libc_getattrlist -//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) - r = int(r0) - w = int(r1) +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -569,7 +473,6 @@ func pipe() (r int, w int, err error) { func libc_pipe_trampoline() -//go:linkname libc_pipe libc_pipe //go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -595,7 +498,6 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o func libc_getxattr_trampoline() -//go:linkname libc_getxattr libc_getxattr //go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -616,7 +518,6 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio func libc_fgetxattr_trampoline() -//go:linkname libc_fgetxattr libc_fgetxattr //go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -641,7 +542,6 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o func libc_setxattr_trampoline() -//go:linkname libc_setxattr libc_setxattr //go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -661,7 +561,6 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio func libc_fsetxattr_trampoline() -//go:linkname libc_fsetxattr libc_fsetxattr //go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -686,7 +585,6 @@ func removexattr(path string, attr string, options int) (err error) { func libc_removexattr_trampoline() -//go:linkname libc_removexattr libc_removexattr //go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -706,7 +604,6 @@ func fremovexattr(fd int, attr string, options int) (err error) { func libc_fremovexattr_trampoline() -//go:linkname libc_fremovexattr libc_fremovexattr //go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -727,7 +624,6 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro func libc_listxattr_trampoline() -//go:linkname libc_listxattr libc_listxattr //go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -743,7 +639,6 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { func libc_flistxattr_trampoline() -//go:linkname libc_flistxattr libc_flistxattr //go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -758,11 +653,25 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp func libc_setattrlist_trampoline() -//go:linkname libc_setattrlist libc_setattrlist //go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -773,7 +682,6 @@ func kill(pid int, signum int, posix int) (err error) { func libc_kill_trampoline() -//go:linkname libc_kill libc_kill //go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -788,11 +696,30 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { func libc_ioctl_trampoline() -//go:linkname libc_ioctl libc_ioctl //go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { @@ -803,7 +730,6 @@ func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer func libc_sendfile_trampoline() -//go:linkname libc_sendfile libc_sendfile //go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -823,7 +749,6 @@ func Access(path string, mode uint32) (err error) { func libc_access_trampoline() -//go:linkname libc_access libc_access //go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -838,7 +763,6 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { func libc_adjtime_trampoline() -//go:linkname libc_adjtime libc_adjtime //go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -858,7 +782,6 @@ func Chdir(path string) (err error) { func libc_chdir_trampoline() -//go:linkname libc_chdir libc_chdir //go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -878,7 +801,6 @@ func Chflags(path string, flags int) (err error) { func libc_chflags_trampoline() -//go:linkname libc_chflags libc_chflags //go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -898,7 +820,6 @@ func Chmod(path string, mode uint32) (err error) { func libc_chmod_trampoline() -//go:linkname libc_chmod libc_chmod //go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -918,7 +839,6 @@ func Chown(path string, uid int, gid int) (err error) { func libc_chown_trampoline() -//go:linkname libc_chown libc_chown //go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -938,7 +858,6 @@ func Chroot(path string) (err error) { func libc_chroot_trampoline() -//go:linkname libc_chroot libc_chroot //go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -953,7 +872,6 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { func libc_clock_gettime_trampoline() -//go:linkname libc_clock_gettime libc_clock_gettime //go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -968,11 +886,58 @@ func Close(fd int) (err error) { func libc_close_trampoline() -//go:linkname libc_close libc_close //go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_clonefile_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefile_trampoline() + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_clonefileat_trampoline), uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefileat_trampoline() + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Dup(fd int) (nfd int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) nfd = int(r0) @@ -984,7 +949,6 @@ func Dup(fd int) (nfd int, err error) { func libc_dup_trampoline() -//go:linkname libc_dup libc_dup //go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -999,7 +963,6 @@ func Dup2(from int, to int) (err error) { func libc_dup2_trampoline() -//go:linkname libc_dup2 libc_dup2 //go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1024,7 +987,6 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { func libc_exchangedata_trampoline() -//go:linkname libc_exchangedata libc_exchangedata //go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1036,7 +998,6 @@ func Exit(code int) { func libc_exit_trampoline() -//go:linkname libc_exit libc_exit //go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1056,7 +1017,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { func libc_faccessat_trampoline() -//go:linkname libc_faccessat libc_faccessat //go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1071,7 +1031,6 @@ func Fchdir(fd int) (err error) { func libc_fchdir_trampoline() -//go:linkname libc_fchdir libc_fchdir //go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1086,7 +1045,6 @@ func Fchflags(fd int, flags int) (err error) { func libc_fchflags_trampoline() -//go:linkname libc_fchflags libc_fchflags //go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1101,7 +1059,6 @@ func Fchmod(fd int, mode uint32) (err error) { func libc_fchmod_trampoline() -//go:linkname libc_fchmod libc_fchmod //go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1121,7 +1078,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { func libc_fchmodat_trampoline() -//go:linkname libc_fchmodat libc_fchmodat //go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1136,7 +1092,6 @@ func Fchown(fd int, uid int, gid int) (err error) { func libc_fchown_trampoline() -//go:linkname libc_fchown libc_fchown //go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1156,11 +1111,29 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { func libc_fchownat_trampoline() -//go:linkname libc_fchownat libc_fchownat //go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fclonefileat_trampoline), uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fclonefileat_trampoline() + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Flock(fd int, how int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) if e1 != 0 { @@ -1171,7 +1144,6 @@ func Flock(fd int, how int) (err error) { func libc_flock_trampoline() -//go:linkname libc_flock libc_flock //go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1187,7 +1159,6 @@ func Fpathconf(fd int, name int) (val int, err error) { func libc_fpathconf_trampoline() -//go:linkname libc_fpathconf libc_fpathconf //go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1202,7 +1173,6 @@ func Fsync(fd int) (err error) { func libc_fsync_trampoline() -//go:linkname libc_fsync libc_fsync //go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1217,11 +1187,31 @@ func Ftruncate(fd int, length int64) (err error) { func libc_ftruncate_trampoline() -//go:linkname libc_ftruncate libc_ftruncate //go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getcwd(buf []byte) (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_syscall(funcPC(libc_getcwd_trampoline), uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getcwd_trampoline() + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdtablesize() (size int) { r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) size = int(r0) @@ -1230,7 +1220,6 @@ func Getdtablesize() (size int) { func libc_getdtablesize_trampoline() -//go:linkname libc_getdtablesize libc_getdtablesize //go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1243,7 +1232,6 @@ func Getegid() (egid int) { func libc_getegid_trampoline() -//go:linkname libc_getegid libc_getegid //go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1256,7 +1244,6 @@ func Geteuid() (uid int) { func libc_geteuid_trampoline() -//go:linkname libc_geteuid libc_geteuid //go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1269,7 +1256,6 @@ func Getgid() (gid int) { func libc_getgid_trampoline() -//go:linkname libc_getgid libc_getgid //go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1285,7 +1271,6 @@ func Getpgid(pid int) (pgid int, err error) { func libc_getpgid_trampoline() -//go:linkname libc_getpgid libc_getpgid //go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1298,7 +1283,6 @@ func Getpgrp() (pgrp int) { func libc_getpgrp_trampoline() -//go:linkname libc_getpgrp libc_getpgrp //go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1311,7 +1295,6 @@ func Getpid() (pid int) { func libc_getpid_trampoline() -//go:linkname libc_getpid libc_getpid //go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1324,7 +1307,6 @@ func Getppid() (ppid int) { func libc_getppid_trampoline() -//go:linkname libc_getppid libc_getppid //go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1340,7 +1322,6 @@ func Getpriority(which int, who int) (prio int, err error) { func libc_getpriority_trampoline() -//go:linkname libc_getpriority libc_getpriority //go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1355,7 +1336,6 @@ func Getrlimit(which int, lim *Rlimit) (err error) { func libc_getrlimit_trampoline() -//go:linkname libc_getrlimit libc_getrlimit //go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1370,7 +1350,6 @@ func Getrusage(who int, rusage *Rusage) (err error) { func libc_getrusage_trampoline() -//go:linkname libc_getrusage libc_getrusage //go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1386,11 +1365,24 @@ func Getsid(pid int) (sid int, err error) { func libc_getsid_trampoline() -//go:linkname libc_getsid libc_getsid //go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) @@ -1399,7 +1391,6 @@ func Getuid() (uid int) { func libc_getuid_trampoline() -//go:linkname libc_getuid libc_getuid //go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1412,7 +1403,6 @@ func Issetugid() (tainted bool) { func libc_issetugid_trampoline() -//go:linkname libc_issetugid libc_issetugid //go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1428,7 +1418,6 @@ func Kqueue() (fd int, err error) { func libc_kqueue_trampoline() -//go:linkname libc_kqueue libc_kqueue //go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1448,7 +1437,6 @@ func Lchown(path string, uid int, gid int) (err error) { func libc_lchown_trampoline() -//go:linkname libc_lchown libc_lchown //go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1473,7 +1461,6 @@ func Link(path string, link string) (err error) { func libc_link_trampoline() -//go:linkname libc_link libc_link //go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1498,7 +1485,6 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er func libc_linkat_trampoline() -//go:linkname libc_linkat libc_linkat //go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1513,7 +1499,6 @@ func Listen(s int, backlog int) (err error) { func libc_listen_trampoline() -//go:linkname libc_listen libc_listen //go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1533,7 +1518,6 @@ func Mkdir(path string, mode uint32) (err error) { func libc_mkdir_trampoline() -//go:linkname libc_mkdir libc_mkdir //go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1553,7 +1537,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { func libc_mkdirat_trampoline() -//go:linkname libc_mkdirat libc_mkdirat //go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1573,7 +1556,6 @@ func Mkfifo(path string, mode uint32) (err error) { func libc_mkfifo_trampoline() -//go:linkname libc_mkfifo libc_mkfifo //go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1593,7 +1575,6 @@ func Mknod(path string, mode uint32, dev int) (err error) { func libc_mknod_trampoline() -//go:linkname libc_mknod libc_mknod //go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1614,7 +1595,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { func libc_open_trampoline() -//go:linkname libc_open libc_open //go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1635,7 +1615,6 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { func libc_openat_trampoline() -//go:linkname libc_openat libc_openat //go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1656,7 +1635,6 @@ func Pathconf(path string, name int) (val int, err error) { func libc_pathconf_trampoline() -//go:linkname libc_pathconf libc_pathconf //go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1678,7 +1656,6 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { func libc_pread_trampoline() -//go:linkname libc_pread libc_pread //go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1700,7 +1677,6 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { func libc_pwrite_trampoline() -//go:linkname libc_pwrite libc_pwrite //go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1722,7 +1698,6 @@ func read(fd int, p []byte) (n int, err error) { func libc_read_trampoline() -//go:linkname libc_read libc_read //go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1749,7 +1724,6 @@ func Readlink(path string, buf []byte) (n int, err error) { func libc_readlink_trampoline() -//go:linkname libc_readlink libc_readlink //go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1776,7 +1750,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { func libc_readlinkat_trampoline() -//go:linkname libc_readlinkat libc_readlinkat //go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1801,7 +1774,6 @@ func Rename(from string, to string) (err error) { func libc_rename_trampoline() -//go:linkname libc_rename libc_rename //go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1826,7 +1798,6 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { func libc_renameat_trampoline() -//go:linkname libc_renameat libc_renameat //go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1846,7 +1817,6 @@ func Revoke(path string) (err error) { func libc_revoke_trampoline() -//go:linkname libc_revoke libc_revoke //go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1866,7 +1836,6 @@ func Rmdir(path string) (err error) { func libc_rmdir_trampoline() -//go:linkname libc_rmdir libc_rmdir //go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1882,13 +1851,13 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { func libc_lseek_trampoline() -//go:linkname libc_lseek libc_lseek //go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1897,7 +1866,6 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { func libc_select_trampoline() -//go:linkname libc_select libc_select //go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1912,7 +1880,6 @@ func Setegid(egid int) (err error) { func libc_setegid_trampoline() -//go:linkname libc_setegid libc_setegid //go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1927,7 +1894,6 @@ func Seteuid(euid int) (err error) { func libc_seteuid_trampoline() -//go:linkname libc_seteuid libc_seteuid //go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1942,7 +1908,6 @@ func Setgid(gid int) (err error) { func libc_setgid_trampoline() -//go:linkname libc_setgid libc_setgid //go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1962,7 +1927,6 @@ func Setlogin(name string) (err error) { func libc_setlogin_trampoline() -//go:linkname libc_setlogin libc_setlogin //go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1977,7 +1941,6 @@ func Setpgid(pid int, pgid int) (err error) { func libc_setpgid_trampoline() -//go:linkname libc_setpgid libc_setpgid //go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1992,7 +1955,6 @@ func Setpriority(which int, who int, prio int) (err error) { func libc_setpriority_trampoline() -//go:linkname libc_setpriority libc_setpriority //go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2007,7 +1969,6 @@ func Setprivexec(flag int) (err error) { func libc_setprivexec_trampoline() -//go:linkname libc_setprivexec libc_setprivexec //go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2022,7 +1983,6 @@ func Setregid(rgid int, egid int) (err error) { func libc_setregid_trampoline() -//go:linkname libc_setregid libc_setregid //go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2037,7 +1997,6 @@ func Setreuid(ruid int, euid int) (err error) { func libc_setreuid_trampoline() -//go:linkname libc_setreuid libc_setreuid //go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2052,7 +2011,6 @@ func Setrlimit(which int, lim *Rlimit) (err error) { func libc_setrlimit_trampoline() -//go:linkname libc_setrlimit libc_setrlimit //go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2068,7 +2026,6 @@ func Setsid() (pid int, err error) { func libc_setsid_trampoline() -//go:linkname libc_setsid libc_setsid //go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2083,7 +2040,6 @@ func Settimeofday(tp *Timeval) (err error) { func libc_settimeofday_trampoline() -//go:linkname libc_settimeofday libc_settimeofday //go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2098,7 +2054,6 @@ func Setuid(uid int) (err error) { func libc_setuid_trampoline() -//go:linkname libc_setuid libc_setuid //go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2123,7 +2078,6 @@ func Symlink(path string, link string) (err error) { func libc_symlink_trampoline() -//go:linkname libc_symlink libc_symlink //go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2148,7 +2102,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { func libc_symlinkat_trampoline() -//go:linkname libc_symlinkat libc_symlinkat //go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2163,7 +2116,6 @@ func Sync() (err error) { func libc_sync_trampoline() -//go:linkname libc_sync libc_sync //go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2183,7 +2135,6 @@ func Truncate(path string, length int64) (err error) { func libc_truncate_trampoline() -//go:linkname libc_truncate libc_truncate //go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2196,7 +2147,6 @@ func Umask(newmask int) (oldmask int) { func libc_umask_trampoline() -//go:linkname libc_umask libc_umask //go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2216,7 +2166,6 @@ func Undelete(path string) (err error) { func libc_undelete_trampoline() -//go:linkname libc_undelete libc_undelete //go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2236,7 +2185,6 @@ func Unlink(path string) (err error) { func libc_unlink_trampoline() -//go:linkname libc_unlink libc_unlink //go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2256,7 +2204,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { func libc_unlinkat_trampoline() -//go:linkname libc_unlinkat libc_unlinkat //go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2276,7 +2223,6 @@ func Unmount(path string, flags int) (err error) { func libc_unmount_trampoline() -//go:linkname libc_unmount libc_unmount //go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2298,7 +2244,6 @@ func write(fd int, p []byte) (n int, err error) { func libc_write_trampoline() -//go:linkname libc_write libc_write //go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2314,7 +2259,6 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( func libc_mmap_trampoline() -//go:linkname libc_mmap libc_mmap //go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2329,7 +2273,6 @@ func munmap(addr uintptr, length uintptr) (err error) { func libc_munmap_trampoline() -//go:linkname libc_munmap libc_munmap //go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2356,23 +2299,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { @@ -2383,7 +2309,6 @@ func Fstat(fd int, stat *Stat_t) (err error) { func libc_fstat64_trampoline() -//go:linkname libc_fstat64 libc_fstat64 //go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2403,7 +2328,6 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { func libc_fstatat64_trampoline() -//go:linkname libc_fstatat64 libc_fstatat64 //go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2418,33 +2342,10 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { func libc_fstatfs64_trampoline() -//go:linkname libc_fstatfs64 libc_fstatfs64 //go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdirentries(fd int, buf []byte, basep *uintptr) (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_syscall6(funcPC(libc___getdirentries64_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc___getdirentries64_trampoline() - -//go:linkname libc___getdirentries64 libc___getdirentries64 -//go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) n = int(r0) @@ -2456,7 +2357,6 @@ func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { func libc_getfsstat64_trampoline() -//go:linkname libc_getfsstat64 libc_getfsstat64 //go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2476,11 +2376,24 @@ func Lstat(path string, stat *Stat_t) (err error) { func libc_lstat64_trampoline() -//go:linkname libc_lstat64 libc_lstat64 //go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ptrace_trampoline() + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Stat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -2496,7 +2409,6 @@ func Stat(path string, stat *Stat_t) (err error) { func libc_stat64_trampoline() -//go:linkname libc_stat64 libc_stat64 //go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2516,5 +2428,4 @@ func Statfs(path string, stat *Statfs_t) (err error) { func libc_statfs64_trampoline() -//go:linkname libc_statfs64 libc_statfs64 //go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s index 1a3915197..c77bd6e20 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s @@ -40,14 +40,10 @@ TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) -TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc___sysctl(SB) TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 JMP libc_poll(SB) TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 @@ -64,10 +60,6 @@ TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) -TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getattrlist(SB) TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 JMP libc_pipe(SB) TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 @@ -88,10 +80,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 JMP libc_kill(SB) TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 @@ -112,6 +108,10 @@ TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 JMP libc_clock_gettime(SB) TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 JMP libc_close(SB) +TEXT ·libc_clonefile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +TEXT ·libc_clonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 JMP libc_dup(SB) TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 @@ -134,6 +134,8 @@ TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) +TEXT ·libc_fclonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 JMP libc_flock(SB) TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 @@ -142,6 +144,8 @@ TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) +TEXT ·libc_getcwd_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 JMP libc_getdtablesize(SB) TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 @@ -166,6 +170,8 @@ TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 @@ -266,20 +272,18 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) -TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstat64(SB) TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatat64(SB) TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstatfs64(SB) -TEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0 - JMP libc___getdirentries64(SB) TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_getfsstat64(SB) TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_lstat64(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 JMP libc_stat64(SB) TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go new file mode 100644 index 000000000..ed437f89a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go @@ -0,0 +1,40 @@ +// go run mksyscall.go -l32 -tags darwin,arm,go1.13 syscall_darwin.1_13.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build darwin && arm && go1.13 +// +build darwin,arm,go1.13 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_closedir_trampoline() + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +func libc_readdir_r_trampoline() + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s new file mode 100644 index 000000000..488e55707 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s @@ -0,0 +1,12 @@ +// go run mkasm_darwin.go arm +// Code generated by the command above; DO NOT EDIT. + +// +build go1.13 + +#include "textflag.h" +TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) 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 01cffbf46..7f88cb5ea 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -tags darwin,arm,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build darwin && arm && go1.12 // +build darwin,arm,go1.12 package unix @@ -25,7 +26,6 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { func libc_getgroups_trampoline() -//go:linkname libc_getgroups libc_getgroups //go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -40,7 +40,6 @@ func setgroups(ngid int, gid *_Gid_t) (err error) { func libc_setgroups_trampoline() -//go:linkname libc_setgroups libc_setgroups //go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -56,7 +55,6 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err func libc_wait4_trampoline() -//go:linkname libc_wait4 libc_wait4 //go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -72,7 +70,6 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { func libc_accept_trampoline() -//go:linkname libc_accept libc_accept //go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -87,7 +84,6 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { func libc_bind_trampoline() -//go:linkname libc_bind libc_bind //go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -102,7 +98,6 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { func libc_connect_trampoline() -//go:linkname libc_connect libc_connect //go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -118,7 +113,6 @@ func socket(domain int, typ int, proto int) (fd int, err error) { func libc_socket_trampoline() -//go:linkname libc_socket libc_socket //go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -133,7 +127,6 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen func libc_getsockopt_trampoline() -//go:linkname libc_getsockopt libc_getsockopt //go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -148,7 +141,6 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) func libc_setsockopt_trampoline() -//go:linkname libc_setsockopt libc_setsockopt //go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -163,7 +155,6 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { func libc_getpeername_trampoline() -//go:linkname libc_getpeername libc_getpeername //go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -178,7 +169,6 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { func libc_getsockname_trampoline() -//go:linkname libc_getsockname libc_getsockname //go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -193,7 +183,6 @@ func Shutdown(s int, how int) (err error) { func libc_shutdown_trampoline() -//go:linkname libc_shutdown libc_shutdown //go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -208,7 +197,6 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { func libc_socketpair_trampoline() -//go:linkname libc_socketpair libc_socketpair //go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -230,7 +218,6 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl func libc_recvfrom_trampoline() -//go:linkname libc_recvfrom libc_recvfrom //go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -251,7 +238,6 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( func libc_sendto_trampoline() -//go:linkname libc_sendto libc_sendto //go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -267,7 +253,6 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { func libc_recvmsg_trampoline() -//go:linkname libc_recvmsg libc_recvmsg //go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -283,7 +268,6 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { func libc_sendmsg_trampoline() -//go:linkname libc_sendmsg libc_sendmsg //go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -299,32 +283,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne func libc_kevent_trampoline() -//go:linkname libc_kevent libc_kevent //go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc___sysctl_trampoline() - -//go:linkname libc___sysctl libc___sysctl -//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -340,7 +302,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) { func libc_utimes_trampoline() -//go:linkname libc_utimes libc_utimes //go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -355,27 +316,10 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { func libc_futimes_trampoline() -//go:linkname libc_futimes libc_futimes //go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -387,7 +331,6 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { func libc_poll_trampoline() -//go:linkname libc_poll libc_poll //go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -408,7 +351,6 @@ func Madvise(b []byte, behav int) (err error) { func libc_madvise_trampoline() -//go:linkname libc_madvise libc_madvise //go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -429,7 +371,6 @@ func Mlock(b []byte) (err error) { func libc_mlock_trampoline() -//go:linkname libc_mlock libc_mlock //go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -444,7 +385,6 @@ func Mlockall(flags int) (err error) { func libc_mlockall_trampoline() -//go:linkname libc_mlockall libc_mlockall //go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -465,7 +405,6 @@ func Mprotect(b []byte, prot int) (err error) { func libc_mprotect_trampoline() -//go:linkname libc_mprotect libc_mprotect //go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -486,7 +425,6 @@ func Msync(b []byte, flags int) (err error) { func libc_msync_trampoline() -//go:linkname libc_msync libc_msync //go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -507,7 +445,6 @@ func Munlock(b []byte) (err error) { func libc_munlock_trampoline() -//go:linkname libc_munlock libc_munlock //go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -522,45 +459,12 @@ func Munlockall() (err error) { func libc_munlockall_trampoline() -//go:linkname libc_munlockall libc_munlockall //go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ptrace_trampoline() - -//go:linkname libc_ptrace libc_ptrace -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getattrlist_trampoline() - -//go:linkname libc_getattrlist libc_getattrlist -//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) - r = int(r0) - w = int(r1) +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -569,7 +473,6 @@ func pipe() (r int, w int, err error) { func libc_pipe_trampoline() -//go:linkname libc_pipe libc_pipe //go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -595,7 +498,6 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o func libc_getxattr_trampoline() -//go:linkname libc_getxattr libc_getxattr //go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -616,7 +518,6 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio func libc_fgetxattr_trampoline() -//go:linkname libc_fgetxattr libc_fgetxattr //go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -641,7 +542,6 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o func libc_setxattr_trampoline() -//go:linkname libc_setxattr libc_setxattr //go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -661,7 +561,6 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio func libc_fsetxattr_trampoline() -//go:linkname libc_fsetxattr libc_fsetxattr //go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -686,7 +585,6 @@ func removexattr(path string, attr string, options int) (err error) { func libc_removexattr_trampoline() -//go:linkname libc_removexattr libc_removexattr //go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -706,7 +604,6 @@ func fremovexattr(fd int, attr string, options int) (err error) { func libc_fremovexattr_trampoline() -//go:linkname libc_fremovexattr libc_fremovexattr //go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -727,7 +624,6 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro func libc_listxattr_trampoline() -//go:linkname libc_listxattr libc_listxattr //go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -743,7 +639,6 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { func libc_flistxattr_trampoline() -//go:linkname libc_flistxattr libc_flistxattr //go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -758,11 +653,25 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp func libc_setattrlist_trampoline() -//go:linkname libc_setattrlist libc_setattrlist //go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -773,7 +682,6 @@ func kill(pid int, signum int, posix int) (err error) { func libc_kill_trampoline() -//go:linkname libc_kill libc_kill //go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -788,11 +696,30 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { func libc_ioctl_trampoline() -//go:linkname libc_ioctl libc_ioctl //go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) if e1 != 0 { @@ -803,7 +730,6 @@ func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer func libc_sendfile_trampoline() -//go:linkname libc_sendfile libc_sendfile //go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -823,7 +749,6 @@ func Access(path string, mode uint32) (err error) { func libc_access_trampoline() -//go:linkname libc_access libc_access //go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -838,7 +763,6 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { func libc_adjtime_trampoline() -//go:linkname libc_adjtime libc_adjtime //go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -858,7 +782,6 @@ func Chdir(path string) (err error) { func libc_chdir_trampoline() -//go:linkname libc_chdir libc_chdir //go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -878,7 +801,6 @@ func Chflags(path string, flags int) (err error) { func libc_chflags_trampoline() -//go:linkname libc_chflags libc_chflags //go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -898,7 +820,6 @@ func Chmod(path string, mode uint32) (err error) { func libc_chmod_trampoline() -//go:linkname libc_chmod libc_chmod //go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -918,7 +839,6 @@ func Chown(path string, uid int, gid int) (err error) { func libc_chown_trampoline() -//go:linkname libc_chown libc_chown //go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -938,11 +858,24 @@ func Chroot(path string) (err error) { func libc_chroot_trampoline() -//go:linkname libc_chroot libc_chroot //go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clock_gettime_trampoline() + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) if e1 != 0 { @@ -953,11 +886,58 @@ func Close(fd int) (err error) { func libc_close_trampoline() -//go:linkname libc_close libc_close //go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_clonefile_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefile_trampoline() + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_clonefileat_trampoline), uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefileat_trampoline() + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Dup(fd int) (nfd int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) nfd = int(r0) @@ -969,7 +949,6 @@ func Dup(fd int) (nfd int, err error) { func libc_dup_trampoline() -//go:linkname libc_dup libc_dup //go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -984,7 +963,6 @@ func Dup2(from int, to int) (err error) { func libc_dup2_trampoline() -//go:linkname libc_dup2 libc_dup2 //go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1009,7 +987,6 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { func libc_exchangedata_trampoline() -//go:linkname libc_exchangedata libc_exchangedata //go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1021,7 +998,6 @@ func Exit(code int) { func libc_exit_trampoline() -//go:linkname libc_exit libc_exit //go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1041,7 +1017,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { func libc_faccessat_trampoline() -//go:linkname libc_faccessat libc_faccessat //go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1056,7 +1031,6 @@ func Fchdir(fd int) (err error) { func libc_fchdir_trampoline() -//go:linkname libc_fchdir libc_fchdir //go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1071,7 +1045,6 @@ func Fchflags(fd int, flags int) (err error) { func libc_fchflags_trampoline() -//go:linkname libc_fchflags libc_fchflags //go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1086,7 +1059,6 @@ func Fchmod(fd int, mode uint32) (err error) { func libc_fchmod_trampoline() -//go:linkname libc_fchmod libc_fchmod //go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1106,7 +1078,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { func libc_fchmodat_trampoline() -//go:linkname libc_fchmodat libc_fchmodat //go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1121,7 +1092,6 @@ func Fchown(fd int, uid int, gid int) (err error) { func libc_fchown_trampoline() -//go:linkname libc_fchown libc_fchown //go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1141,11 +1111,29 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { func libc_fchownat_trampoline() -//go:linkname libc_fchownat libc_fchownat //go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fclonefileat_trampoline), uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fclonefileat_trampoline() + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Flock(fd int, how int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) if e1 != 0 { @@ -1156,7 +1144,6 @@ func Flock(fd int, how int) (err error) { func libc_flock_trampoline() -//go:linkname libc_flock libc_flock //go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1172,7 +1159,6 @@ func Fpathconf(fd int, name int) (val int, err error) { func libc_fpathconf_trampoline() -//go:linkname libc_fpathconf libc_fpathconf //go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1187,7 +1173,6 @@ func Fsync(fd int) (err error) { func libc_fsync_trampoline() -//go:linkname libc_fsync libc_fsync //go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1202,11 +1187,31 @@ func Ftruncate(fd int, length int64) (err error) { func libc_ftruncate_trampoline() -//go:linkname libc_ftruncate libc_ftruncate //go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getcwd(buf []byte) (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_syscall(funcPC(libc_getcwd_trampoline), uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getcwd_trampoline() + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdtablesize() (size int) { r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) size = int(r0) @@ -1215,7 +1220,6 @@ func Getdtablesize() (size int) { func libc_getdtablesize_trampoline() -//go:linkname libc_getdtablesize libc_getdtablesize //go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1228,7 +1232,6 @@ func Getegid() (egid int) { func libc_getegid_trampoline() -//go:linkname libc_getegid libc_getegid //go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1241,7 +1244,6 @@ func Geteuid() (uid int) { func libc_geteuid_trampoline() -//go:linkname libc_geteuid libc_geteuid //go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1254,7 +1256,6 @@ func Getgid() (gid int) { func libc_getgid_trampoline() -//go:linkname libc_getgid libc_getgid //go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1270,7 +1271,6 @@ func Getpgid(pid int) (pgid int, err error) { func libc_getpgid_trampoline() -//go:linkname libc_getpgid libc_getpgid //go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1283,7 +1283,6 @@ func Getpgrp() (pgrp int) { func libc_getpgrp_trampoline() -//go:linkname libc_getpgrp libc_getpgrp //go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1296,7 +1295,6 @@ func Getpid() (pid int) { func libc_getpid_trampoline() -//go:linkname libc_getpid libc_getpid //go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1309,7 +1307,6 @@ func Getppid() (ppid int) { func libc_getppid_trampoline() -//go:linkname libc_getppid libc_getppid //go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1325,7 +1322,6 @@ func Getpriority(which int, who int) (prio int, err error) { func libc_getpriority_trampoline() -//go:linkname libc_getpriority libc_getpriority //go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1340,7 +1336,6 @@ func Getrlimit(which int, lim *Rlimit) (err error) { func libc_getrlimit_trampoline() -//go:linkname libc_getrlimit libc_getrlimit //go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1355,7 +1350,6 @@ func Getrusage(who int, rusage *Rusage) (err error) { func libc_getrusage_trampoline() -//go:linkname libc_getrusage libc_getrusage //go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1371,11 +1365,24 @@ func Getsid(pid int) (sid int, err error) { func libc_getsid_trampoline() -//go:linkname libc_getsid libc_getsid //go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) @@ -1384,7 +1391,6 @@ func Getuid() (uid int) { func libc_getuid_trampoline() -//go:linkname libc_getuid libc_getuid //go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1397,7 +1403,6 @@ func Issetugid() (tainted bool) { func libc_issetugid_trampoline() -//go:linkname libc_issetugid libc_issetugid //go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1413,7 +1418,6 @@ func Kqueue() (fd int, err error) { func libc_kqueue_trampoline() -//go:linkname libc_kqueue libc_kqueue //go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1433,7 +1437,6 @@ func Lchown(path string, uid int, gid int) (err error) { func libc_lchown_trampoline() -//go:linkname libc_lchown libc_lchown //go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1458,7 +1461,6 @@ func Link(path string, link string) (err error) { func libc_link_trampoline() -//go:linkname libc_link libc_link //go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1483,7 +1485,6 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er func libc_linkat_trampoline() -//go:linkname libc_linkat libc_linkat //go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1498,7 +1499,6 @@ func Listen(s int, backlog int) (err error) { func libc_listen_trampoline() -//go:linkname libc_listen libc_listen //go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1518,7 +1518,6 @@ func Mkdir(path string, mode uint32) (err error) { func libc_mkdir_trampoline() -//go:linkname libc_mkdir libc_mkdir //go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1538,7 +1537,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { func libc_mkdirat_trampoline() -//go:linkname libc_mkdirat libc_mkdirat //go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1558,7 +1556,6 @@ func Mkfifo(path string, mode uint32) (err error) { func libc_mkfifo_trampoline() -//go:linkname libc_mkfifo libc_mkfifo //go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1578,7 +1575,6 @@ func Mknod(path string, mode uint32, dev int) (err error) { func libc_mknod_trampoline() -//go:linkname libc_mknod libc_mknod //go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1599,7 +1595,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { func libc_open_trampoline() -//go:linkname libc_open libc_open //go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1620,7 +1615,6 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { func libc_openat_trampoline() -//go:linkname libc_openat libc_openat //go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1641,7 +1635,6 @@ func Pathconf(path string, name int) (val int, err error) { func libc_pathconf_trampoline() -//go:linkname libc_pathconf libc_pathconf //go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1663,7 +1656,6 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { func libc_pread_trampoline() -//go:linkname libc_pread libc_pread //go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1685,7 +1677,6 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { func libc_pwrite_trampoline() -//go:linkname libc_pwrite libc_pwrite //go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1707,7 +1698,6 @@ func read(fd int, p []byte) (n int, err error) { func libc_read_trampoline() -//go:linkname libc_read libc_read //go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1734,7 +1724,6 @@ func Readlink(path string, buf []byte) (n int, err error) { func libc_readlink_trampoline() -//go:linkname libc_readlink libc_readlink //go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1761,7 +1750,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { func libc_readlinkat_trampoline() -//go:linkname libc_readlinkat libc_readlinkat //go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1786,7 +1774,6 @@ func Rename(from string, to string) (err error) { func libc_rename_trampoline() -//go:linkname libc_rename libc_rename //go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1811,7 +1798,6 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { func libc_renameat_trampoline() -//go:linkname libc_renameat libc_renameat //go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1831,7 +1817,6 @@ func Revoke(path string) (err error) { func libc_revoke_trampoline() -//go:linkname libc_revoke libc_revoke //go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1851,7 +1836,6 @@ func Rmdir(path string) (err error) { func libc_rmdir_trampoline() -//go:linkname libc_rmdir libc_rmdir //go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1867,13 +1851,13 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { func libc_lseek_trampoline() -//go:linkname libc_lseek libc_lseek //go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1882,7 +1866,6 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { func libc_select_trampoline() -//go:linkname libc_select libc_select //go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1897,7 +1880,6 @@ func Setegid(egid int) (err error) { func libc_setegid_trampoline() -//go:linkname libc_setegid libc_setegid //go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1912,7 +1894,6 @@ func Seteuid(euid int) (err error) { func libc_seteuid_trampoline() -//go:linkname libc_seteuid libc_seteuid //go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1927,7 +1908,6 @@ func Setgid(gid int) (err error) { func libc_setgid_trampoline() -//go:linkname libc_setgid libc_setgid //go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1947,7 +1927,6 @@ func Setlogin(name string) (err error) { func libc_setlogin_trampoline() -//go:linkname libc_setlogin libc_setlogin //go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1962,7 +1941,6 @@ func Setpgid(pid int, pgid int) (err error) { func libc_setpgid_trampoline() -//go:linkname libc_setpgid libc_setpgid //go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1977,7 +1955,6 @@ func Setpriority(which int, who int, prio int) (err error) { func libc_setpriority_trampoline() -//go:linkname libc_setpriority libc_setpriority //go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1992,7 +1969,6 @@ func Setprivexec(flag int) (err error) { func libc_setprivexec_trampoline() -//go:linkname libc_setprivexec libc_setprivexec //go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2007,7 +1983,6 @@ func Setregid(rgid int, egid int) (err error) { func libc_setregid_trampoline() -//go:linkname libc_setregid libc_setregid //go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2022,7 +1997,6 @@ func Setreuid(ruid int, euid int) (err error) { func libc_setreuid_trampoline() -//go:linkname libc_setreuid libc_setreuid //go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2037,7 +2011,6 @@ func Setrlimit(which int, lim *Rlimit) (err error) { func libc_setrlimit_trampoline() -//go:linkname libc_setrlimit libc_setrlimit //go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2053,7 +2026,6 @@ func Setsid() (pid int, err error) { func libc_setsid_trampoline() -//go:linkname libc_setsid libc_setsid //go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2068,7 +2040,6 @@ func Settimeofday(tp *Timeval) (err error) { func libc_settimeofday_trampoline() -//go:linkname libc_settimeofday libc_settimeofday //go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2083,7 +2054,6 @@ func Setuid(uid int) (err error) { func libc_setuid_trampoline() -//go:linkname libc_setuid libc_setuid //go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2108,7 +2078,6 @@ func Symlink(path string, link string) (err error) { func libc_symlink_trampoline() -//go:linkname libc_symlink libc_symlink //go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2133,7 +2102,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { func libc_symlinkat_trampoline() -//go:linkname libc_symlinkat libc_symlinkat //go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2148,7 +2116,6 @@ func Sync() (err error) { func libc_sync_trampoline() -//go:linkname libc_sync libc_sync //go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2168,7 +2135,6 @@ func Truncate(path string, length int64) (err error) { func libc_truncate_trampoline() -//go:linkname libc_truncate libc_truncate //go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2181,7 +2147,6 @@ func Umask(newmask int) (oldmask int) { func libc_umask_trampoline() -//go:linkname libc_umask libc_umask //go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2201,7 +2166,6 @@ func Undelete(path string) (err error) { func libc_undelete_trampoline() -//go:linkname libc_undelete libc_undelete //go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2221,7 +2185,6 @@ func Unlink(path string) (err error) { func libc_unlink_trampoline() -//go:linkname libc_unlink libc_unlink //go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2241,7 +2204,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { func libc_unlinkat_trampoline() -//go:linkname libc_unlinkat libc_unlinkat //go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2261,7 +2223,6 @@ func Unmount(path string, flags int) (err error) { func libc_unmount_trampoline() -//go:linkname libc_unmount libc_unmount //go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2283,7 +2244,6 @@ func write(fd int, p []byte) (n int, err error) { func libc_write_trampoline() -//go:linkname libc_write libc_write //go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2299,7 +2259,6 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( func libc_mmap_trampoline() -//go:linkname libc_mmap libc_mmap //go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2314,7 +2273,6 @@ func munmap(addr uintptr, length uintptr) (err error) { func libc_munmap_trampoline() -//go:linkname libc_munmap libc_munmap //go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2341,23 +2299,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { @@ -2368,7 +2309,6 @@ func Fstat(fd int, stat *Stat_t) (err error) { func libc_fstat_trampoline() -//go:linkname libc_fstat libc_fstat //go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2388,7 +2328,6 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { func libc_fstatat_trampoline() -//go:linkname libc_fstatat libc_fstatat //go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2403,7 +2342,6 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { func libc_fstatfs_trampoline() -//go:linkname libc_fstatfs libc_fstatfs //go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2419,7 +2357,6 @@ func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { func libc_getfsstat_trampoline() -//go:linkname libc_getfsstat libc_getfsstat //go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2439,7 +2376,6 @@ func Lstat(path string, stat *Stat_t) (err error) { func libc_lstat_trampoline() -//go:linkname libc_lstat libc_lstat //go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2459,7 +2395,6 @@ func Stat(path string, stat *Stat_t) (err error) { func libc_stat_trampoline() -//go:linkname libc_stat libc_stat //go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2479,5 +2414,4 @@ func Statfs(path string, stat *Statfs_t) (err error) { func libc_statfs_trampoline() -//go:linkname libc_statfs libc_statfs //go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s index 994056f35..5eec5f1d9 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s @@ -40,14 +40,10 @@ TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) -TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc___sysctl(SB) TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 JMP libc_poll(SB) TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 @@ -64,10 +60,6 @@ TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) -TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getattrlist(SB) TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 JMP libc_pipe(SB) TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 @@ -88,10 +80,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 JMP libc_kill(SB) TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 @@ -108,8 +104,14 @@ TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 JMP libc_chown(SB) TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) +TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 JMP libc_close(SB) +TEXT ·libc_clonefile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +TEXT ·libc_clonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 JMP libc_dup(SB) TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 @@ -132,6 +134,8 @@ TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) +TEXT ·libc_fclonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 JMP libc_flock(SB) TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 @@ -140,6 +144,8 @@ TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) +TEXT ·libc_getcwd_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 JMP libc_getdtablesize(SB) TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 @@ -164,6 +170,8 @@ TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 @@ -264,8 +272,6 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) -TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstat(SB) TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go new file mode 100644 index 000000000..d30ec4e29 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go @@ -0,0 +1,40 @@ +// go run mksyscall.go -tags darwin,arm64,go1.13 syscall_darwin.1_13.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build darwin && arm64 && go1.13 +// +build darwin,arm64,go1.13 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_closedir_trampoline() + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +func libc_readdir_r_trampoline() + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s new file mode 100644 index 000000000..b29dabb0f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s @@ -0,0 +1,12 @@ +// go run mkasm_darwin.go arm64 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.13 + +#include "textflag.h" +TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) 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 8f2691dee..a10df58d0 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags darwin,arm64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build darwin && arm64 && go1.12 // +build darwin,arm64,go1.12 package unix @@ -25,7 +26,6 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { func libc_getgroups_trampoline() -//go:linkname libc_getgroups libc_getgroups //go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -40,7 +40,6 @@ func setgroups(ngid int, gid *_Gid_t) (err error) { func libc_setgroups_trampoline() -//go:linkname libc_setgroups libc_setgroups //go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -56,7 +55,6 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err func libc_wait4_trampoline() -//go:linkname libc_wait4 libc_wait4 //go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -72,7 +70,6 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { func libc_accept_trampoline() -//go:linkname libc_accept libc_accept //go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -87,7 +84,6 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { func libc_bind_trampoline() -//go:linkname libc_bind libc_bind //go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -102,7 +98,6 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { func libc_connect_trampoline() -//go:linkname libc_connect libc_connect //go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -118,7 +113,6 @@ func socket(domain int, typ int, proto int) (fd int, err error) { func libc_socket_trampoline() -//go:linkname libc_socket libc_socket //go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -133,7 +127,6 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen func libc_getsockopt_trampoline() -//go:linkname libc_getsockopt libc_getsockopt //go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -148,7 +141,6 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) func libc_setsockopt_trampoline() -//go:linkname libc_setsockopt libc_setsockopt //go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -163,7 +155,6 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { func libc_getpeername_trampoline() -//go:linkname libc_getpeername libc_getpeername //go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -178,7 +169,6 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { func libc_getsockname_trampoline() -//go:linkname libc_getsockname libc_getsockname //go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -193,7 +183,6 @@ func Shutdown(s int, how int) (err error) { func libc_shutdown_trampoline() -//go:linkname libc_shutdown libc_shutdown //go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -208,7 +197,6 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { func libc_socketpair_trampoline() -//go:linkname libc_socketpair libc_socketpair //go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -230,7 +218,6 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl func libc_recvfrom_trampoline() -//go:linkname libc_recvfrom libc_recvfrom //go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -251,7 +238,6 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( func libc_sendto_trampoline() -//go:linkname libc_sendto libc_sendto //go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -267,7 +253,6 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { func libc_recvmsg_trampoline() -//go:linkname libc_recvmsg libc_recvmsg //go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -283,7 +268,6 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { func libc_sendmsg_trampoline() -//go:linkname libc_sendmsg libc_sendmsg //go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -299,32 +283,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne func libc_kevent_trampoline() -//go:linkname libc_kevent libc_kevent //go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc___sysctl_trampoline() - -//go:linkname libc___sysctl libc___sysctl -//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -340,7 +302,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) { func libc_utimes_trampoline() -//go:linkname libc_utimes libc_utimes //go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -355,27 +316,10 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { func libc_futimes_trampoline() -//go:linkname libc_futimes libc_futimes //go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -387,7 +331,6 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { func libc_poll_trampoline() -//go:linkname libc_poll libc_poll //go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -408,7 +351,6 @@ func Madvise(b []byte, behav int) (err error) { func libc_madvise_trampoline() -//go:linkname libc_madvise libc_madvise //go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -429,7 +371,6 @@ func Mlock(b []byte) (err error) { func libc_mlock_trampoline() -//go:linkname libc_mlock libc_mlock //go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -444,7 +385,6 @@ func Mlockall(flags int) (err error) { func libc_mlockall_trampoline() -//go:linkname libc_mlockall libc_mlockall //go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -465,7 +405,6 @@ func Mprotect(b []byte, prot int) (err error) { func libc_mprotect_trampoline() -//go:linkname libc_mprotect libc_mprotect //go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -486,7 +425,6 @@ func Msync(b []byte, flags int) (err error) { func libc_msync_trampoline() -//go:linkname libc_msync libc_msync //go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -507,7 +445,6 @@ func Munlock(b []byte) (err error) { func libc_munlock_trampoline() -//go:linkname libc_munlock libc_munlock //go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -522,45 +459,12 @@ func Munlockall() (err error) { func libc_munlockall_trampoline() -//go:linkname libc_munlockall libc_munlockall //go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ptrace_trampoline() - -//go:linkname libc_ptrace libc_ptrace -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getattrlist_trampoline() - -//go:linkname libc_getattrlist libc_getattrlist -//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) - r = int(r0) - w = int(r1) +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -569,7 +473,6 @@ func pipe() (r int, w int, err error) { func libc_pipe_trampoline() -//go:linkname libc_pipe libc_pipe //go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -595,7 +498,6 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o func libc_getxattr_trampoline() -//go:linkname libc_getxattr libc_getxattr //go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -616,7 +518,6 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio func libc_fgetxattr_trampoline() -//go:linkname libc_fgetxattr libc_fgetxattr //go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -641,7 +542,6 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o func libc_setxattr_trampoline() -//go:linkname libc_setxattr libc_setxattr //go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -661,7 +561,6 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio func libc_fsetxattr_trampoline() -//go:linkname libc_fsetxattr libc_fsetxattr //go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -686,7 +585,6 @@ func removexattr(path string, attr string, options int) (err error) { func libc_removexattr_trampoline() -//go:linkname libc_removexattr libc_removexattr //go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -706,7 +604,6 @@ func fremovexattr(fd int, attr string, options int) (err error) { func libc_fremovexattr_trampoline() -//go:linkname libc_fremovexattr libc_fremovexattr //go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -727,7 +624,6 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro func libc_listxattr_trampoline() -//go:linkname libc_listxattr libc_listxattr //go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -743,7 +639,6 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { func libc_flistxattr_trampoline() -//go:linkname libc_flistxattr libc_flistxattr //go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -758,11 +653,25 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp func libc_setattrlist_trampoline() -//go:linkname libc_setattrlist libc_setattrlist //go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -773,7 +682,6 @@ func kill(pid int, signum int, posix int) (err error) { func libc_kill_trampoline() -//go:linkname libc_kill libc_kill //go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -788,11 +696,30 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { func libc_ioctl_trampoline() -//go:linkname libc_ioctl libc_ioctl //go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { @@ -803,7 +730,6 @@ func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer func libc_sendfile_trampoline() -//go:linkname libc_sendfile libc_sendfile //go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -823,7 +749,6 @@ func Access(path string, mode uint32) (err error) { func libc_access_trampoline() -//go:linkname libc_access libc_access //go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -838,7 +763,6 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { func libc_adjtime_trampoline() -//go:linkname libc_adjtime libc_adjtime //go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -858,7 +782,6 @@ func Chdir(path string) (err error) { func libc_chdir_trampoline() -//go:linkname libc_chdir libc_chdir //go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -878,7 +801,6 @@ func Chflags(path string, flags int) (err error) { func libc_chflags_trampoline() -//go:linkname libc_chflags libc_chflags //go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -898,7 +820,6 @@ func Chmod(path string, mode uint32) (err error) { func libc_chmod_trampoline() -//go:linkname libc_chmod libc_chmod //go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -918,7 +839,6 @@ func Chown(path string, uid int, gid int) (err error) { func libc_chown_trampoline() -//go:linkname libc_chown libc_chown //go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -938,11 +858,24 @@ func Chroot(path string) (err error) { func libc_chroot_trampoline() -//go:linkname libc_chroot libc_chroot //go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clock_gettime_trampoline() + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) if e1 != 0 { @@ -953,11 +886,58 @@ func Close(fd int) (err error) { func libc_close_trampoline() -//go:linkname libc_close libc_close //go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_clonefile_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefile_trampoline() + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_clonefileat_trampoline), uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefileat_trampoline() + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Dup(fd int) (nfd int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) nfd = int(r0) @@ -969,7 +949,6 @@ func Dup(fd int) (nfd int, err error) { func libc_dup_trampoline() -//go:linkname libc_dup libc_dup //go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -984,7 +963,6 @@ func Dup2(from int, to int) (err error) { func libc_dup2_trampoline() -//go:linkname libc_dup2 libc_dup2 //go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1009,7 +987,6 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { func libc_exchangedata_trampoline() -//go:linkname libc_exchangedata libc_exchangedata //go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1021,7 +998,6 @@ func Exit(code int) { func libc_exit_trampoline() -//go:linkname libc_exit libc_exit //go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1041,7 +1017,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { func libc_faccessat_trampoline() -//go:linkname libc_faccessat libc_faccessat //go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1056,7 +1031,6 @@ func Fchdir(fd int) (err error) { func libc_fchdir_trampoline() -//go:linkname libc_fchdir libc_fchdir //go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1071,7 +1045,6 @@ func Fchflags(fd int, flags int) (err error) { func libc_fchflags_trampoline() -//go:linkname libc_fchflags libc_fchflags //go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1086,7 +1059,6 @@ func Fchmod(fd int, mode uint32) (err error) { func libc_fchmod_trampoline() -//go:linkname libc_fchmod libc_fchmod //go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1106,7 +1078,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { func libc_fchmodat_trampoline() -//go:linkname libc_fchmodat libc_fchmodat //go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1121,7 +1092,6 @@ func Fchown(fd int, uid int, gid int) (err error) { func libc_fchown_trampoline() -//go:linkname libc_fchown libc_fchown //go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1141,11 +1111,29 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { func libc_fchownat_trampoline() -//go:linkname libc_fchownat libc_fchownat //go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fclonefileat_trampoline), uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fclonefileat_trampoline() + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Flock(fd int, how int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) if e1 != 0 { @@ -1156,7 +1144,6 @@ func Flock(fd int, how int) (err error) { func libc_flock_trampoline() -//go:linkname libc_flock libc_flock //go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1172,7 +1159,6 @@ func Fpathconf(fd int, name int) (val int, err error) { func libc_fpathconf_trampoline() -//go:linkname libc_fpathconf libc_fpathconf //go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1187,7 +1173,6 @@ func Fsync(fd int) (err error) { func libc_fsync_trampoline() -//go:linkname libc_fsync libc_fsync //go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1202,11 +1187,31 @@ func Ftruncate(fd int, length int64) (err error) { func libc_ftruncate_trampoline() -//go:linkname libc_ftruncate libc_ftruncate //go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getcwd(buf []byte) (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_syscall(funcPC(libc_getcwd_trampoline), uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getcwd_trampoline() + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdtablesize() (size int) { r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) size = int(r0) @@ -1215,7 +1220,6 @@ func Getdtablesize() (size int) { func libc_getdtablesize_trampoline() -//go:linkname libc_getdtablesize libc_getdtablesize //go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1228,7 +1232,6 @@ func Getegid() (egid int) { func libc_getegid_trampoline() -//go:linkname libc_getegid libc_getegid //go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1241,7 +1244,6 @@ func Geteuid() (uid int) { func libc_geteuid_trampoline() -//go:linkname libc_geteuid libc_geteuid //go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1254,7 +1256,6 @@ func Getgid() (gid int) { func libc_getgid_trampoline() -//go:linkname libc_getgid libc_getgid //go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1270,7 +1271,6 @@ func Getpgid(pid int) (pgid int, err error) { func libc_getpgid_trampoline() -//go:linkname libc_getpgid libc_getpgid //go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1283,7 +1283,6 @@ func Getpgrp() (pgrp int) { func libc_getpgrp_trampoline() -//go:linkname libc_getpgrp libc_getpgrp //go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1296,7 +1295,6 @@ func Getpid() (pid int) { func libc_getpid_trampoline() -//go:linkname libc_getpid libc_getpid //go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1309,7 +1307,6 @@ func Getppid() (ppid int) { func libc_getppid_trampoline() -//go:linkname libc_getppid libc_getppid //go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1325,7 +1322,6 @@ func Getpriority(which int, who int) (prio int, err error) { func libc_getpriority_trampoline() -//go:linkname libc_getpriority libc_getpriority //go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1340,7 +1336,6 @@ func Getrlimit(which int, lim *Rlimit) (err error) { func libc_getrlimit_trampoline() -//go:linkname libc_getrlimit libc_getrlimit //go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1355,7 +1350,6 @@ func Getrusage(who int, rusage *Rusage) (err error) { func libc_getrusage_trampoline() -//go:linkname libc_getrusage libc_getrusage //go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1371,11 +1365,24 @@ func Getsid(pid int) (sid int, err error) { func libc_getsid_trampoline() -//go:linkname libc_getsid libc_getsid //go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) @@ -1384,7 +1391,6 @@ func Getuid() (uid int) { func libc_getuid_trampoline() -//go:linkname libc_getuid libc_getuid //go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1397,7 +1403,6 @@ func Issetugid() (tainted bool) { func libc_issetugid_trampoline() -//go:linkname libc_issetugid libc_issetugid //go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1413,7 +1418,6 @@ func Kqueue() (fd int, err error) { func libc_kqueue_trampoline() -//go:linkname libc_kqueue libc_kqueue //go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1433,7 +1437,6 @@ func Lchown(path string, uid int, gid int) (err error) { func libc_lchown_trampoline() -//go:linkname libc_lchown libc_lchown //go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1458,7 +1461,6 @@ func Link(path string, link string) (err error) { func libc_link_trampoline() -//go:linkname libc_link libc_link //go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1483,7 +1485,6 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er func libc_linkat_trampoline() -//go:linkname libc_linkat libc_linkat //go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1498,7 +1499,6 @@ func Listen(s int, backlog int) (err error) { func libc_listen_trampoline() -//go:linkname libc_listen libc_listen //go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1518,7 +1518,6 @@ func Mkdir(path string, mode uint32) (err error) { func libc_mkdir_trampoline() -//go:linkname libc_mkdir libc_mkdir //go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1538,7 +1537,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { func libc_mkdirat_trampoline() -//go:linkname libc_mkdirat libc_mkdirat //go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1558,7 +1556,6 @@ func Mkfifo(path string, mode uint32) (err error) { func libc_mkfifo_trampoline() -//go:linkname libc_mkfifo libc_mkfifo //go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1578,7 +1575,6 @@ func Mknod(path string, mode uint32, dev int) (err error) { func libc_mknod_trampoline() -//go:linkname libc_mknod libc_mknod //go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1599,7 +1595,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { func libc_open_trampoline() -//go:linkname libc_open libc_open //go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1620,7 +1615,6 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { func libc_openat_trampoline() -//go:linkname libc_openat libc_openat //go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1641,7 +1635,6 @@ func Pathconf(path string, name int) (val int, err error) { func libc_pathconf_trampoline() -//go:linkname libc_pathconf libc_pathconf //go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1663,7 +1656,6 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { func libc_pread_trampoline() -//go:linkname libc_pread libc_pread //go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1685,7 +1677,6 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { func libc_pwrite_trampoline() -//go:linkname libc_pwrite libc_pwrite //go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1707,7 +1698,6 @@ func read(fd int, p []byte) (n int, err error) { func libc_read_trampoline() -//go:linkname libc_read libc_read //go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1734,7 +1724,6 @@ func Readlink(path string, buf []byte) (n int, err error) { func libc_readlink_trampoline() -//go:linkname libc_readlink libc_readlink //go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1761,7 +1750,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { func libc_readlinkat_trampoline() -//go:linkname libc_readlinkat libc_readlinkat //go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1786,7 +1774,6 @@ func Rename(from string, to string) (err error) { func libc_rename_trampoline() -//go:linkname libc_rename libc_rename //go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1811,7 +1798,6 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { func libc_renameat_trampoline() -//go:linkname libc_renameat libc_renameat //go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1831,7 +1817,6 @@ func Revoke(path string) (err error) { func libc_revoke_trampoline() -//go:linkname libc_revoke libc_revoke //go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1851,7 +1836,6 @@ func Rmdir(path string) (err error) { func libc_rmdir_trampoline() -//go:linkname libc_rmdir libc_rmdir //go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1867,13 +1851,13 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { func libc_lseek_trampoline() -//go:linkname libc_lseek libc_lseek //go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1882,7 +1866,6 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { func libc_select_trampoline() -//go:linkname libc_select libc_select //go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1897,7 +1880,6 @@ func Setegid(egid int) (err error) { func libc_setegid_trampoline() -//go:linkname libc_setegid libc_setegid //go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1912,7 +1894,6 @@ func Seteuid(euid int) (err error) { func libc_seteuid_trampoline() -//go:linkname libc_seteuid libc_seteuid //go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1927,7 +1908,6 @@ func Setgid(gid int) (err error) { func libc_setgid_trampoline() -//go:linkname libc_setgid libc_setgid //go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1947,7 +1927,6 @@ func Setlogin(name string) (err error) { func libc_setlogin_trampoline() -//go:linkname libc_setlogin libc_setlogin //go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1962,7 +1941,6 @@ func Setpgid(pid int, pgid int) (err error) { func libc_setpgid_trampoline() -//go:linkname libc_setpgid libc_setpgid //go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1977,7 +1955,6 @@ func Setpriority(which int, who int, prio int) (err error) { func libc_setpriority_trampoline() -//go:linkname libc_setpriority libc_setpriority //go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1992,7 +1969,6 @@ func Setprivexec(flag int) (err error) { func libc_setprivexec_trampoline() -//go:linkname libc_setprivexec libc_setprivexec //go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2007,7 +1983,6 @@ func Setregid(rgid int, egid int) (err error) { func libc_setregid_trampoline() -//go:linkname libc_setregid libc_setregid //go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2022,7 +1997,6 @@ func Setreuid(ruid int, euid int) (err error) { func libc_setreuid_trampoline() -//go:linkname libc_setreuid libc_setreuid //go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2037,7 +2011,6 @@ func Setrlimit(which int, lim *Rlimit) (err error) { func libc_setrlimit_trampoline() -//go:linkname libc_setrlimit libc_setrlimit //go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2053,7 +2026,6 @@ func Setsid() (pid int, err error) { func libc_setsid_trampoline() -//go:linkname libc_setsid libc_setsid //go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2068,7 +2040,6 @@ func Settimeofday(tp *Timeval) (err error) { func libc_settimeofday_trampoline() -//go:linkname libc_settimeofday libc_settimeofday //go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2083,7 +2054,6 @@ func Setuid(uid int) (err error) { func libc_setuid_trampoline() -//go:linkname libc_setuid libc_setuid //go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2108,7 +2078,6 @@ func Symlink(path string, link string) (err error) { func libc_symlink_trampoline() -//go:linkname libc_symlink libc_symlink //go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2133,7 +2102,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { func libc_symlinkat_trampoline() -//go:linkname libc_symlinkat libc_symlinkat //go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2148,7 +2116,6 @@ func Sync() (err error) { func libc_sync_trampoline() -//go:linkname libc_sync libc_sync //go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2168,7 +2135,6 @@ func Truncate(path string, length int64) (err error) { func libc_truncate_trampoline() -//go:linkname libc_truncate libc_truncate //go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2181,7 +2147,6 @@ func Umask(newmask int) (oldmask int) { func libc_umask_trampoline() -//go:linkname libc_umask libc_umask //go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2201,7 +2166,6 @@ func Undelete(path string) (err error) { func libc_undelete_trampoline() -//go:linkname libc_undelete libc_undelete //go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2221,7 +2185,6 @@ func Unlink(path string) (err error) { func libc_unlink_trampoline() -//go:linkname libc_unlink libc_unlink //go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2241,7 +2204,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { func libc_unlinkat_trampoline() -//go:linkname libc_unlinkat libc_unlinkat //go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2261,7 +2223,6 @@ func Unmount(path string, flags int) (err error) { func libc_unmount_trampoline() -//go:linkname libc_unmount libc_unmount //go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2283,7 +2244,6 @@ func write(fd int, p []byte) (n int, err error) { func libc_write_trampoline() -//go:linkname libc_write libc_write //go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2299,7 +2259,6 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( func libc_mmap_trampoline() -//go:linkname libc_mmap libc_mmap //go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2314,7 +2273,6 @@ func munmap(addr uintptr, length uintptr) (err error) { func libc_munmap_trampoline() -//go:linkname libc_munmap libc_munmap //go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2341,23 +2299,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { @@ -2368,7 +2309,6 @@ func Fstat(fd int, stat *Stat_t) (err error) { func libc_fstat_trampoline() -//go:linkname libc_fstat libc_fstat //go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2388,7 +2328,6 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { func libc_fstatat_trampoline() -//go:linkname libc_fstatat libc_fstatat //go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2403,7 +2342,6 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { func libc_fstatfs_trampoline() -//go:linkname libc_fstatfs libc_fstatfs //go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2419,7 +2357,6 @@ func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { func libc_getfsstat_trampoline() -//go:linkname libc_getfsstat libc_getfsstat //go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2439,11 +2376,24 @@ func Lstat(path string, stat *Stat_t) (err error) { func libc_lstat_trampoline() -//go:linkname libc_lstat libc_lstat //go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ptrace_trampoline() + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Stat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -2459,7 +2409,6 @@ func Stat(path string, stat *Stat_t) (err error) { func libc_stat_trampoline() -//go:linkname libc_stat libc_stat //go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2479,5 +2428,4 @@ func Statfs(path string, stat *Statfs_t) (err error) { func libc_statfs_trampoline() -//go:linkname libc_statfs libc_statfs //go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s index 61dc0d4c1..53c402bf6 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s @@ -40,14 +40,10 @@ TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) -TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc___sysctl(SB) TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 JMP libc_poll(SB) TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 @@ -64,10 +60,6 @@ TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) -TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getattrlist(SB) TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 JMP libc_pipe(SB) TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 @@ -88,10 +80,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 JMP libc_kill(SB) TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 @@ -108,8 +104,14 @@ TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 JMP libc_chown(SB) TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) +TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 JMP libc_close(SB) +TEXT ·libc_clonefile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +TEXT ·libc_clonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 JMP libc_dup(SB) TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 @@ -132,6 +134,8 @@ TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) +TEXT ·libc_fclonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 JMP libc_flock(SB) TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 @@ -140,6 +144,8 @@ TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) +TEXT ·libc_getcwd_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 JMP libc_getdtablesize(SB) TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 @@ -164,6 +170,8 @@ TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 @@ -264,8 +272,6 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) -TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0 JMP libc_fstat(SB) TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 @@ -276,6 +282,8 @@ TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0 JMP libc_getfsstat(SB) TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0 JMP libc_lstat(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0 JMP libc_stat(SB) TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0 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 ae9f1a21e..1b6eedfa6 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build dragonfly && amd64 // +build dragonfly,amd64 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -389,6 +363,18 @@ func pipe() (r int, w int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func pipe2(p *[2]_C_int, flags int) (r int, w int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + r = int(r0) + w = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func extpread(fd int, p []byte, flags int, offset int64) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { @@ -450,6 +436,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -749,6 +751,23 @@ func Ftruncate(fd int, length int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getdents(fd int, buf []byte) (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_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { @@ -1255,8 +1274,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) 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 80903e47b..3e9bddb7b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build freebsd && 386 // +build freebsd,386 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -414,6 +388,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1019,7 +1019,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -1353,7 +1353,7 @@ func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) if err != nil { return } - _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1596,8 +1596,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) 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 cd250ff0e..c72a462b9 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build freebsd && amd64 // +build freebsd,amd64 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -414,6 +388,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1019,7 +1019,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -1596,8 +1596,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) 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 290a9c2cb..530d5df90 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build freebsd && arm // +build freebsd,arm package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -377,6 +351,22 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func pipe2(p *[2]_C_int, flags int) (err error) { _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { @@ -414,6 +404,16 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1019,7 +1019,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -1596,8 +1596,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go index c6df9d2e8..71e7df9e8 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -1,6 +1,7 @@ -// go run mksyscall.go -tags freebsd,arm64 -- syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go +// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build freebsd && arm64 // +build freebsd,arm64 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -414,6 +388,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1019,7 +1019,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -1596,8 +1596,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go new file mode 100644 index 000000000..af5cb064e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go @@ -0,0 +1,128 @@ +// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build illumos && amd64 +// +build illumos,amd64 + +package unix + +import ( + "unsafe" +) + +//go:cgo_import_dynamic libc_readv readv "libc.so" +//go:cgo_import_dynamic libc_preadv preadv "libc.so" +//go:cgo_import_dynamic libc_writev writev "libc.so" +//go:cgo_import_dynamic libc_pwritev pwritev "libc.so" +//go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so" +//go:cgo_import_dynamic libc_putmsg putmsg "libc.so" +//go:cgo_import_dynamic libc_getmsg getmsg "libc.so" + +//go:linkname procreadv libc_readv +//go:linkname procpreadv libc_preadv +//go:linkname procwritev libc_writev +//go:linkname procpwritev libc_pwritev +//go:linkname procaccept4 libc_accept4 +//go:linkname procputmsg libc_putmsg +//go:linkname procgetmsg libc_getmsg + +var ( + procreadv, + procpreadv, + procwritev, + procpwritev, + procaccept4, + procputmsg, + procgetmsg syscallFunc +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readv(fd int, iovs []Iovec) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(fd int, iovs []Iovec, off int64) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writev(fd int, iovs []Iovec) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0) + if e1 != 0 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go similarity index 54% rename from vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go rename to vendor/golang.org/x/sys/unix/zsyscall_linux.go index c4ec7ff87..7305cc915 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -1,7 +1,7 @@ -// go run mksyscall.go -l32 -tags darwin,386,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. +// Code generated by mkmerge.go; DO NOT EDIT. -// +build darwin,386,!go1.12 +//go:build linux +// +build linux package unix @@ -10,44 +10,10 @@ import ( "unsafe" ) -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) +func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { + r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -57,18 +23,13 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) +func fchmodat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } @@ -77,9 +38,8 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } @@ -88,28 +48,18 @@ func socket(domain int, typ int, proto int) (fd int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) +func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -118,18 +68,14 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) +func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) + fd = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -138,8 +84,14 @@ func Shutdown(s int, how int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) +func openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 0, 0) + fd = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -148,14 +100,8 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -165,24 +111,19 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) + _p1 = unsafe.Pointer(&buf[0]) } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) + _p1 = unsafe.Pointer(&_zero) } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -192,20 +133,18 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } @@ -214,14 +153,13 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } @@ -230,13 +168,13 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func utimes(path string, timeval *[2]Timeval) (err error) { +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -245,8 +183,15 @@ func utimes(path string, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) +func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -255,9 +200,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -266,9 +211,9 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) +func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + ret = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -277,14 +222,15 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Madvise(b []byte, behav int) (err error) { +func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) + ret = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -293,14 +239,14 @@ func Madvise(b []byte, behav int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) +func keyctlJoin(cmd int, arg2 string) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg2) + if err != nil { + return } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) + ret = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -309,24 +255,19 @@ func Mlock(b []byte) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) +func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg3) + if err != nil { + return } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) + var _p1 *byte + _p1, err = BytePtrFromString(arg4) + if err != nil { + return } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) + ret = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -335,14 +276,14 @@ func Mprotect(b []byte, prot int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Msync(b []byte, flags int) (err error) { +func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) + if len(payload) > 0 { + _p0 = unsafe.Pointer(&payload[0]) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) if e1 != 0 { err = errnoErr(e1) } @@ -351,14 +292,15 @@ func Msync(b []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Munlock(b []byte) (err error) { +func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) + ret = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -367,28 +309,18 @@ func Munlock(b []byte) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) +func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + var _p1 *byte + _p1, err = BytePtrFromString(restriction) + if err != nil { + return } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -397,10 +329,8 @@ func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) +func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { + _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) if e1 != 0 { err = errnoErr(e1) } @@ -409,19 +339,8 @@ func pipe() (r int, w int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -430,14 +349,13 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { +func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(attr) + _p0, err = BytePtrFromString(arg) if err != nil { return } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) + _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -446,33 +364,23 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { +func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(path) + _p0, err = BytePtrFromString(source) if err != nil { return } var _p1 *byte - _p1, err = BytePtrFromString(attr) + _p1, err = BytePtrFromString(target) if err != nil { return } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) + var _p2 *byte + _p2, err = BytePtrFromString(fstype) if err != nil { return } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -481,18 +389,13 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func removexattr(path string, attr string, options int) (err error) { +func Acct(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -501,40 +404,25 @@ func removexattr(path string, attr string, options int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fremovexattr(fd int, attr string, options int) (err error) { +func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { var _p0 *byte - _p0, err = BytePtrFromString(attr) + _p0, err = BytePtrFromString(keyType) if err != nil { return } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) + var _p1 *byte + _p1, err = BytePtrFromString(description) if err != nil { return } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) + var _p2 unsafe.Pointer + if len(payload) > 0 { + _p2 = unsafe.Pointer(&payload[0]) + } else { + _p2 = unsafe.Pointer(&_zero) } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) + r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) + id = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -543,8 +431,9 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) +func Adjtimex(buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) + state = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -553,8 +442,8 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -563,8 +452,8 @@ func kill(pid int, signum int, posix int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -573,8 +462,13 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -583,13 +477,13 @@ func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Access(path string, mode uint32) (err error) { +func Chroot(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -598,8 +492,8 @@ func Access(path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) +func ClockGetres(clockid int32, res *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -608,13 +502,8 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -623,13 +512,8 @@ func Chdir(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -638,13 +522,8 @@ func Chflags(path string, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -653,13 +532,8 @@ func Chmod(path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) +func CloseRange(first uint, last uint, flags uint) (err error) { + _, _, e1 := Syscall(SYS_CLOSE_RANGE, uintptr(first), uintptr(last), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } @@ -668,13 +542,9 @@ func Chown(path string, uid int, gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) +func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -683,8 +553,13 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) +func DeleteModule(name string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -693,9 +568,9 @@ func Close(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -704,8 +579,8 @@ func Dup(fd int) (nfd int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) +func Dup3(oldfd int, newfd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } @@ -714,40 +589,19 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) +func EpollCreate1(flag int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) + fd = int(r0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -756,8 +610,9 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) +func Eventfd(initval uint, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) + fd = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -766,8 +621,15 @@ func Fchdir(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) +func Exit(code int) { + SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -786,13 +648,13 @@ func Fchmod(fd int, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -801,8 +663,8 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) +func Fdatasync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -811,13 +673,20 @@ func Fchown(fd int, uid int, gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { +func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { var _p0 *byte - _p0, err = BytePtrFromString(path) + _p0, err = BytePtrFromString(attr) if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) + sz = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -826,8 +695,13 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) +func FinitModule(fd int, params string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(params) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } @@ -836,9 +710,15 @@ func Flock(fd int, how int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) +func Flistxattr(fd int, dest []byte) (sz int, err error) { + var _p0 unsafe.Pointer + if len(dest) > 0 { + _p0 = unsafe.Pointer(&dest[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) + sz = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -847,8 +727,8 @@ func Fpathconf(fd int, name int) (val int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } @@ -857,8 +737,13 @@ 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), uintptr(length>>32)) +func Fremovexattr(fd int, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -867,33 +752,49 @@ func Ftruncate(fd int, length int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) +func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) +func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } return } @@ -910,16 +811,8 @@ func Getpgid(pid int) (pgid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) pid = int(r0) return } @@ -927,7 +820,7 @@ func Getpid() (pid int) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) ppid = int(r0) return } @@ -945,8 +838,15 @@ func Getpriority(which int, who int) (prio int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) +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) } @@ -976,25 +876,54 @@ func Getsid(pid int) (sid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) +func Gettid() (tid int) { + r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) + tid = int(r0) return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) +func Getxattr(path string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) +func InitModule(moduleImage []byte, params string) (err error) { + var _p0 unsafe.Pointer + if len(moduleImage) > 0 { + _p0 = unsafe.Pointer(&moduleImage[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 *byte + _p1, err = BytePtrFromString(params) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } @@ -1003,13 +932,14 @@ func Kqueue() (fd int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Lchown(path string, uid int, gid int) (err error) { +func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { var _p0 *byte - _p0, err = BytePtrFromString(path) + _p0, err = BytePtrFromString(pathname) if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) + watchdesc = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1018,18 +948,47 @@ func Lchown(path string, uid int, gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return +func InotifyInit1(flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) + success = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1038,18 +997,25 @@ func Link(path string, link string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { +func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } var _p1 *byte - _p1, err = BytePtrFromString(link) + _p1, err = BytePtrFromString(attr) if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + sz = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1058,8 +1024,20 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) +func Listxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + sz = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1068,13 +1046,20 @@ func Listen(s int, backlog int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Mkdir(path string, mode uint32) (err error) { +func Llistxattr(path string, dest []byte) (sz int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + sz = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1083,13 +1068,18 @@ func Mkdir(path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Mkdirat(dirfd int, path string, mode uint32) (err error) { +func Lremovexattr(path string, attr string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1098,13 +1088,24 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Mkfifo(path string, mode uint32) (err error) { +func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1113,13 +1114,14 @@ func Mkfifo(path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Mknod(path string, mode uint32, dev int) (err error) { +func MemfdCreate(name string, flags int) (fd int, err error) { var _p0 *byte - _p0, err = BytePtrFromString(path) + _p0, err = BytePtrFromString(name) if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + fd = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1128,14 +1130,13 @@ func Mknod(path string, mode uint32, dev int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Open(path string, mode int, perm uint32) (fd int, err error) { +func Mkdirat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } @@ -1144,13 +1145,33 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1160,14 +1181,18 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Pathconf(path string, name int) (val int, err error) { +func PivotRoot(newroot string, putold string) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(path) + _p0, err = BytePtrFromString(newroot) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(putold) if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) + _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1176,15 +1201,8 @@ func Pathconf(path string, name int) (val int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1193,14 +1211,18 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) +func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1227,42 +1249,18 @@ func read(fd int, p []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Readlink(path string, buf []byte) (n int, err error) { +func Removexattr(path string, attr string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) + var _p1 *byte + _p1, err = BytePtrFromString(attr) if err != nil { return } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1271,18 +1269,18 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Rename(from string, to string) (err error) { +func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(from) + _p0, err = BytePtrFromString(oldpath) if err != nil { return } var _p1 *byte - _p1, err = BytePtrFromString(to) + _p1, err = BytePtrFromString(newpath) if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1291,18 +1289,24 @@ func Rename(from string, to string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Renameat(fromfd int, from string, tofd int, to string) (err error) { +func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { var _p0 *byte - _p0, err = BytePtrFromString(from) + _p0, err = BytePtrFromString(keyType) if err != nil { return } var _p1 *byte - _p1, err = BytePtrFromString(to) + _p1, err = BytePtrFromString(description) if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + var _p2 *byte + _p2, err = BytePtrFromString(callback) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) + id = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1311,13 +1315,14 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return +func Setdomainname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1326,13 +1331,14 @@ func Revoke(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return +func Sethostname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1341,9 +1347,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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1352,8 +1357,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1362,8 +1368,8 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) +func Settimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1372,8 +1378,8 @@ func Setegid(egid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) +func Setns(fd int, nstype int) (err error) { + _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1382,8 +1388,8 @@ func Seteuid(euid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } @@ -1392,13 +1398,24 @@ func Setgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setlogin(name string) (err error) { +func Setxattr(path string, attr string, data []byte, flags int) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(name) + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1407,8 +1424,9 @@ func Setlogin(name string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) +func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { + r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) + newfd = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1417,8 +1435,13 @@ func Setpgid(pid int, pgid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) +func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1427,8 +1450,15 @@ func Setpriority(which int, who int, prio int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) +func Sync() { + SyscallNoError(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Syncfs(fd int) (err error) { + _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1437,8 +1467,8 @@ func Setprivexec(flag int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) +func Sysinfo(info *Sysinfo_t) (err error) { + _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1447,8 +1477,9 @@ func Setregid(rgid int, egid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) +func TimerfdCreate(clockid int, flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_TIMERFD_CREATE, uintptr(clockid), uintptr(flags), 0) + fd = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1457,8 +1488,8 @@ func Setreuid(ruid int, euid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) +func TimerfdGettime(fd int, currValue *ItimerSpec) (err error) { + _, _, e1 := RawSyscall(SYS_TIMERFD_GETTIME, uintptr(fd), uintptr(unsafe.Pointer(currValue)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1467,9 +1498,8 @@ func Setrlimit(which int, lim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) +func TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) { + _, _, e1 := RawSyscall6(SYS_TIMERFD_SETTIME, uintptr(fd), uintptr(flags), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1478,8 +1508,8 @@ func Setsid() (pid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) +func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) if e1 != 0 { err = errnoErr(e1) } @@ -1488,8 +1518,9 @@ func Settimeofday(tp *Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1498,18 +1529,16 @@ func Setuid(uid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) +func Umask(mask int) (oldmask int) { + r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1518,18 +1547,13 @@ func Symlink(path string, link string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Unmount(target string, flags int) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) + _p0, err = BytePtrFromString(target) if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1538,8 +1562,8 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) +func Unshare(flags int) (err error) { + _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1548,13 +1572,15 @@ func Sync() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1563,21 +1589,19 @@ func Truncate(path string, length int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) +func exitThread(code int) (err error) { + _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1586,13 +1610,9 @@ func Undelete(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1601,13 +1621,15 @@ func Unlink(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return +func readv(fd int, iovs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1616,13 +1638,15 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return +func writev(fd int, iovs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1631,14 +1655,14 @@ func Unmount(path string, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func write(fd int, p []byte) (n int, err error) { +func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1648,9 +1672,15 @@ 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) +func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1659,8 +1689,15 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) +func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags)) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1669,8 +1706,14 @@ func munmap(addr uintptr, length uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) +func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1680,9 +1723,8 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1691,10 +1733,14 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) +func Madvise(b []byte, advice int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) if e1 != 0 { err = errnoErr(e1) } @@ -1703,8 +1749,14 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } @@ -1713,13 +1765,14 @@ func Fstat(fd int, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1728,8 +1781,8 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1738,15 +1791,14 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { +func Msync(b []byte, flags int) (err error) { var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } @@ -1755,9 +1807,24 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1766,13 +1833,13 @@ func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Lstat(path string, stat *Stat_t) (err error) { +func faccessat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } @@ -1781,13 +1848,13 @@ func Lstat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Stat(path string, stat *Stat_t) (err error) { +func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := Syscall6(SYS_FACCESSAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1796,13 +1863,80 @@ func Stat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Statfs(path string, stat *Statfs_t) (err error) { +func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(path) + _p0, err = BytePtrFromString(pathname) if err != nil { return } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { + var _p0 unsafe.Pointer + if len(localIov) > 0 { + _p0 = unsafe.Pointer(&localIov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 unsafe.Pointer + if len(remoteIov) > 0 { + _p1 = unsafe.Pointer(&remoteIov[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PROCESS_VM_READV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), 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 ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { + var _p0 unsafe.Pointer + if len(localIov) > 0 { + _p0 = unsafe.Pointer(&localIov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 unsafe.Pointer + if len(remoteIov) > 0 { + _p1 = unsafe.Pointer(&remoteIov[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PROCESS_VM_WRITEV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), 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 pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) 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 9855afa76..e37096e4d 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && 386 // +build linux,386 package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) if e1 != 0 { err = errnoErr(e1) } @@ -1441,244 +46,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe(p *[2]_C_int) (err error) { _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { @@ -1689,17 +56,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1950,8 +307,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1960,8 +318,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) + prev = int(r0) 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 773e25118..9919d8486 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && amd64 // +build linux,amd64 package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1441,245 +46,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1966,8 +333,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1976,8 +344,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2352,16 +721,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) 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 ccea621d4..076754d48 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && arm // +build linux,arm package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) if e1 != 0 { err = errnoErr(e1) } @@ -1441,244 +46,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe(p *[2]_C_int) (err error) { _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { @@ -1689,16 +56,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) @@ -1878,7 +235,7 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -2086,8 +443,9 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2096,8 +454,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2340,3 +699,18 @@ func armSyncFileRange(fd int, flags int, off int64, n int64) (err error) { } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} 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 712c7a326..e893f987f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && arm64 // +build linux,arm64 package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1441,244 +46,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer if len(events) > 0 { @@ -1785,7 +152,7 @@ func Getgid() (gid int) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getrlimit(resource int, rlim *Rlimit) (err error) { +func getrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { err = errnoErr(e1) @@ -1889,8 +256,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1899,8 +267,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1939,7 +308,7 @@ func Setresuid(ruid int, euid int, suid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setrlimit(resource int, rlim *Rlimit) (err error) { +func setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { err = errnoErr(e1) @@ -2220,16 +589,6 @@ func Gettimeofday(tv *Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(cmdline) 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 68b325100..4703cf3c3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -1,6 +1,7 @@ // go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && mips // +build linux,mips package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) if e1 != 0 { err = errnoErr(e1) } @@ -1441,245 +46,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1880,8 +247,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1890,8 +258,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2337,16 +706,6 @@ func Pause() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe() (p1 int, p2 int, err error) { r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) p1 = int(r0) 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 a8be4076c..a134f9a4d 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && mips64 // +build linux,mips64 package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1441,245 +46,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1910,8 +277,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1920,8 +288,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2296,16 +665,6 @@ func utimes(path string, times *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fstat(fd int, st *stat_t) (err error) { _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) if e1 != 0 { 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 1351028ad..b1fff2d94 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && mips64le // +build linux,mips64le package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1441,245 +46,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1910,8 +277,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1920,8 +288,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2296,16 +665,6 @@ func utimes(path string, times *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fstat(fd int, st *stat_t) (err error) { _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) if e1 != 0 { 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 327b4f97a..d13d6da01 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && mipsle // +build linux,mipsle package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) if e1 != 0 { err = errnoErr(e1) } @@ -1441,245 +46,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1880,8 +247,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1890,8 +258,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2337,16 +706,6 @@ func Pause() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe() (p1 int, p2 int, err error) { r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) p1 = int(r0) 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 c145bd3ce..da8ec0396 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && ppc64 // +build linux,ppc64 package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1441,245 +46,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1992,8 +359,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2002,8 +370,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2404,16 +773,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) 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 cd8179c7a..083f493bb 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && ppc64le // +build linux,ppc64le package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1441,245 +46,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1992,8 +359,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2002,8 +370,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2404,16 +773,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go index 2e90cf0f2..63b393b80 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && riscv64 // +build linux,riscv64 package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1441,244 +46,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer if len(events) > 0 { @@ -1869,8 +236,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1879,8 +247,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2200,16 +569,6 @@ func Gettimeofday(tv *Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(cmdline) 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 fe9c7e12b..bb347407d 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && s390x // +build linux,s390x package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1441,245 +46,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1962,8 +329,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1972,8 +340,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2184,16 +553,6 @@ func utimes(path string, times *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) 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 d4a2100b0..8edc517e1 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && sparc64 // +build linux,sparc64 package unix @@ -14,1404 +15,8 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (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_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Signalfd(fd int, mask *Sigset_t, flags int) { - SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1420,8 +25,8 @@ func Syncfs(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1441,244 +46,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer if len(events) > 0 { @@ -1706,7 +73,7 @@ func Fadvise(fd int, offset int64, length int64, advice int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1961,8 +328,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1971,8 +339,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2362,16 +731,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) 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 642db7670..4726ab30a 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build netbsd && 386 // +build netbsd,386 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -389,7 +363,17 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -433,6 +417,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -564,6 +564,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -926,6 +936,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Fsync(fd int) (err error) { _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) if e1 != 0 { @@ -1498,8 +1518,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1634,6 +1655,21 @@ func Stat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) 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 59585fee3..fe71456db 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build netbsd && amd64 // +build netbsd,amd64 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -389,7 +363,17 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -433,6 +417,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -564,6 +564,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -926,6 +936,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Fsync(fd int) (err error) { _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) if e1 != 0 { @@ -1498,8 +1518,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1634,6 +1655,21 @@ func Stat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) 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 6ec31434b..0b5b2f014 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build netbsd && arm // +build netbsd,arm package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -389,7 +363,17 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -433,6 +417,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -564,6 +564,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -926,6 +936,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Fsync(fd int) (err error) { _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) if e1 != 0 { @@ -1498,8 +1518,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1634,6 +1655,21 @@ func Stat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go index 603d14433..bfca28648 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build netbsd && arm64 // +build netbsd,arm64 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -389,7 +363,17 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -433,6 +417,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -564,6 +564,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -926,6 +936,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Fsync(fd int) (err error) { _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) if e1 != 0 { @@ -1498,8 +1518,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1634,6 +1655,21 @@ func Stat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) 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 6a489fac0..8f80f4ade 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build openbsd && 386 // +build openbsd,386 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -377,8 +351,8 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -387,7 +361,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -431,6 +405,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) @@ -573,6 +563,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -1304,8 +1304,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) 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 30cba4347..3a47aca7b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build openbsd && amd64 // +build openbsd,amd64 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -377,8 +351,8 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -387,7 +361,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -431,6 +405,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) @@ -573,6 +563,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -1304,8 +1304,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go index fa1beda33..883a9b45e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build openbsd && arm // +build openbsd,arm package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -377,8 +351,8 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -387,7 +361,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) @@ -431,6 +405,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _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)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) @@ -573,6 +563,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -1304,8 +1304,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go similarity index 85% rename from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go rename to vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go index 3fd0f3c85..aac7fdc95 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -1,7 +1,8 @@ -// go run mksyscall.go -tags darwin,arm64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go +// go run mksyscall.go -openbsd -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build darwin,arm64,!go1.12 +//go:build openbsd && arm64 +// +build openbsd,arm64 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -377,122 +351,8 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -501,13 +361,15 @@ func removexattr(path string, attr string, options int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -516,25 +378,15 @@ func fremovexattr(fd int, attr string, options int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -543,8 +395,8 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } @@ -553,18 +405,14 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } @@ -573,8 +421,9 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -714,18 +563,8 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } @@ -847,8 +686,8 @@ func Fpathconf(fd int, name int) (val int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -857,8 +696,23 @@ 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) +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -867,9 +721,21 @@ func Ftruncate(fd int, length int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } return } @@ -955,6 +821,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getrtable() (rtable int, err error) { + r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + rtable = 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 { @@ -976,6 +853,16 @@ func Getsid(pid int) (sid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) uid = int(r0) @@ -985,13 +872,23 @@ func Getuid() (uid int) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) tainted = bool(r0 != 0) return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Kqueue() (fd int, err error) { r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) fd = int(r0) @@ -1068,6 +965,21 @@ func Listen(s int, backlog int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Mkdir(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1113,6 +1025,21 @@ func Mkfifo(path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Mknod(path string, mode uint32, dev int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1128,6 +1055,31 @@ func Mknod(path string, mode uint32, dev int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Open(path string, mode int, perm uint32) (fd int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1183,7 +1135,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)), 0, uintptr(offset), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1200,7 +1152,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)), 0, uintptr(offset), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1342,7 +1294,7 @@ 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)) + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) @@ -1352,8 +1304,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1363,7 +1316,7 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1427,8 +1380,8 @@ func Setpriority(which int, who int, prio int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1437,8 +1390,8 @@ func Setprivexec(flag int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1447,8 +1400,18 @@ func Setregid(rgid int, egid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) if e1 != 0 { err = errnoErr(e1) } @@ -1467,6 +1430,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Setrtable(rtable int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Setsid() (pid int, err error) { r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) pid = int(r0) @@ -1498,6 +1471,36 @@ func Setuid(uid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1554,7 +1557,7 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) if e1 != 0 { err = errnoErr(e1) } @@ -1571,21 +1574,6 @@ func Umask(newmask int) (oldmask int) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Unlink(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1649,7 +1637,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), 0, uintptr(pos), 0, 0) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1691,101 +1679,13 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), 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 Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go similarity index 84% rename from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go rename to vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go index f8caecef0..877618746 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go @@ -1,7 +1,8 @@ -// go run mksyscall.go -l32 -tags darwin,arm,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go +// go run mksyscall.go -openbsd -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build darwin,arm,!go1.12 +//go:build openbsd && mips64 +// +build openbsd,mips64 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _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)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +240,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -377,122 +351,8 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -501,13 +361,15 @@ func removexattr(path string, attr string, options int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -516,25 +378,15 @@ func fremovexattr(fd int, attr string, options int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -543,8 +395,8 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } @@ -553,18 +405,14 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } @@ -573,8 +421,9 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -714,18 +563,8 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } @@ -847,8 +686,8 @@ func Fpathconf(fd int, name int) (val int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -857,8 +696,23 @@ 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), uintptr(length>>32)) +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -867,9 +721,21 @@ func Ftruncate(fd int, length int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } return } @@ -955,6 +821,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getrtable() (rtable int, err error) { + r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + rtable = 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 { @@ -976,6 +853,16 @@ func Getsid(pid int) (sid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) uid = int(r0) @@ -985,13 +872,23 @@ func Getuid() (uid int) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) tainted = bool(r0 != 0) return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Kqueue() (fd int, err error) { r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) fd = int(r0) @@ -1068,6 +965,21 @@ func Listen(s int, backlog int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Mkdir(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1113,6 +1025,21 @@ func Mkfifo(path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Mknod(path string, mode uint32, dev int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1128,6 +1055,31 @@ func Mknod(path string, mode uint32, dev int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Open(path string, mode int, perm uint32) (fd int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1183,7 +1135,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), uintptr(offset>>32), 0) + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1200,7 +1152,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), uintptr(offset>>32), 0) + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1342,8 +1294,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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1352,8 +1304,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1363,7 +1316,7 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } @@ -1427,8 +1380,8 @@ func Setpriority(which int, who int, prio int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1437,8 +1390,8 @@ func Setprivexec(flag int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } @@ -1447,8 +1400,18 @@ func Setregid(rgid int, egid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) if e1 != 0 { err = errnoErr(e1) } @@ -1467,6 +1430,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Setrtable(rtable int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Setsid() (pid int, err error) { r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) pid = int(r0) @@ -1498,6 +1471,36 @@ func Setuid(uid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1554,7 +1557,7 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) if e1 != 0 { err = errnoErr(e1) } @@ -1571,21 +1574,6 @@ func Umask(newmask int) (oldmask int) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Unlink(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1649,7 +1637,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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1691,101 +1679,13 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), 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 Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) 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 5f614760c..4e18d5c99 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build solaris && amd64 // +build solaris,amd64 package unix @@ -11,6 +12,7 @@ import ( ) //go:cgo_import_dynamic libc_pipe pipe "libc.so" +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" //go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so" //go:cgo_import_dynamic libc_getcwd getcwd "libc.so" //go:cgo_import_dynamic libc_getgroups getgroups "libc.so" @@ -114,6 +116,7 @@ import ( //go:cgo_import_dynamic libc_statvfs statvfs "libc.so" //go:cgo_import_dynamic libc_symlink symlink "libc.so" //go:cgo_import_dynamic libc_sync sync "libc.so" +//go:cgo_import_dynamic libc_sysconf sysconf "libc.so" //go:cgo_import_dynamic libc_times times "libc.so" //go:cgo_import_dynamic libc_truncate truncate "libc.so" //go:cgo_import_dynamic libc_fsync fsync "libc.so" @@ -140,6 +143,7 @@ import ( //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" //go:linkname procpipe libc_pipe +//go:linkname procpipe2 libc_pipe2 //go:linkname procgetsockname libc_getsockname //go:linkname procGetcwd libc_getcwd //go:linkname procgetgroups libc_getgroups @@ -243,6 +247,7 @@ import ( //go:linkname procStatvfs libc_statvfs //go:linkname procSymlink libc_symlink //go:linkname procSync libc_sync +//go:linkname procSysconf libc_sysconf //go:linkname procTimes libc_times //go:linkname procTruncate libc_truncate //go:linkname procFsync libc_fsync @@ -270,6 +275,7 @@ import ( var ( procpipe, + procpipe2, procgetsockname, procGetcwd, procgetgroups, @@ -373,6 +379,7 @@ var ( procStatvfs, procSymlink, procSync, + procSysconf, procTimes, procTruncate, procFsync, @@ -412,6 +419,16 @@ func pipe(p *[2]_C_int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) if e1 != 0 { @@ -602,8 +619,9 @@ func __minor(version int, dev uint64) (val uint) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) +func ioctlRet(fd int, req uint, arg uintptr) (ret int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) + ret = int(r0) if e1 != 0 { err = e1 } @@ -1478,8 +1496,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) if e1 != 0 { err = e1 } @@ -1673,6 +1692,17 @@ func Sync() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Sysconf(which int) (n int64, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0) + n = int64(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Times(tms *Tms) (ticks uintptr, err error) { r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) ticks = uintptr(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go new file mode 100644 index 000000000..8285ab841 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go @@ -0,0 +1,1217 @@ +// go run mksyscall.go -tags zos,s390x syscall_zos_s390x.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(SYS___ACCEPT_A, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(SYS___BIND_A, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(SYS___CONNECT_A, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawsyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawsyscall(SYS___GETPEERNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawsyscall(SYS___GETSOCKNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(SYS___RECVFROM_A, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(SYS___SENDTO_A, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(SYS___RECVMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(SYS___SENDMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___ACCESS_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHMOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Creat(path string, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(SYS___CREAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := syscall_syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, _, e1 := syscall_syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) { + r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + retval = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *Stat_LE_t) (err error) { + _, _, e1 := syscall_syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs(fd int, stat *Statvfs_t) (err error) { + _, _, e1 := syscall_syscall(SYS_FSTATVFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpagesize() (pgsize int) { + r0, _, _ := syscall_syscall(SYS_GETPAGESIZE, 0, 0, 0) + pgsize = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Poll(fds []PollFd, timeout int) (n int, err error) { + var _p0 unsafe.Pointer + if len(fds) > 0 { + _p0 = unsafe.Pointer(&fds[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS_POLL, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := syscall_syscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func W_Getmntent(buff *byte, size int) (lastsys int, err error) { + r0, _, e1 := syscall_syscall(SYS_W_GETMNTENT, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) + lastsys = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(filesystem) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + var _p3 *byte + _p3, err = BytePtrFromString(parm) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(SYS___MOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(filesystem string, mtm int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(filesystem) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UMOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mtm), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHROOT_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := syscall_rawsyscall(SYS___UNAME_A, uintptr(unsafe.Pointer(buf)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gethostname(buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(SYS___GETHOSTNAME_A, uintptr(_p0), uintptr(len(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (pid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETPPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + 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_zos) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig Signal) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___LCHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___LINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := syscall_syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *Stat_LE_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___LSTAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___MKDIR_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___MKFIFO_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___MKNOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS___READLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___RENAME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___RMDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := syscall_syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_syscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(uid int) (err error) { + _, _, e1 := syscall_syscall(SYS_SETGID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, statLE *Stat_LE_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___STAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___SYMLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + syscall_syscall(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___TRUNCATE_A, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tcgetattr(fildes int, termptr *Termios) (err error) { + _, _, e1 := syscall_syscall(SYS_TCGETATTR, uintptr(fildes), uintptr(unsafe.Pointer(termptr)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { + _, _, e1 := syscall_syscall(SYS_TCSETATTR, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _, _ := syscall_syscall(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UNLINK_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, utim *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UTIME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(SYS___OPEN_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func remove(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) { + r0, _, e1 := syscall_syscall(SYS_WAITPID, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tv *timeval_zos) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UTIMES_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go index b005031ab..9e9d0b2a9 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go @@ -1,6 +1,9 @@ -// mksysctl_openbsd.pl +// go run mksysctl_openbsd.go // Code generated by the command above; DO NOT EDIT. +//go:build 386 && openbsd +// +build 386,openbsd + package unix type mibentry struct { @@ -28,6 +31,7 @@ var sysctlMib = []mibentry{ {"hw.model", []_C_int{6, 2}}, {"hw.ncpu", []_C_int{6, 3}}, {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, {"hw.physmem", []_C_int{6, 19}}, {"hw.product", []_C_int{6, 15}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go index d014451c9..adecd0966 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -1,6 +1,7 @@ -// mksysctl_openbsd.pl +// go run mksysctl_openbsd.go // Code generated by the command above; DO NOT EDIT. +//go:build amd64 && openbsd // +build amd64,openbsd package unix @@ -31,6 +32,7 @@ var sysctlMib = []mibentry{ {"hw.model", []_C_int{6, 2}}, {"hw.ncpu", []_C_int{6, 3}}, {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go index b005031ab..8ea52a4a1 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -1,6 +1,9 @@ -// mksysctl_openbsd.pl +// go run mksysctl_openbsd.go // Code generated by the command above; DO NOT EDIT. +//go:build arm && openbsd +// +build arm,openbsd + package unix type mibentry struct { @@ -28,6 +31,7 @@ var sysctlMib = []mibentry{ {"hw.model", []_C_int{6, 2}}, {"hw.ncpu", []_C_int{6, 3}}, {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, {"hw.physmem", []_C_int{6, 19}}, {"hw.product", []_C_int{6, 15}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go new file mode 100644 index 000000000..154b57ae3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go @@ -0,0 +1,276 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go new file mode 100644 index 000000000..d96bb2ba4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go @@ -0,0 +1,280 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build mips64 && openbsd +// +build mips64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go index f33614532..1794ffc92 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go @@ -1,10 +1,12 @@ // go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && darwin // +build 386,darwin package unix +// Deprecated: Use libSystem wrappers instead of direct syscalls. const ( SYS_SYSCALL = 0 SYS_EXIT = 1 diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go index 654dd3da3..f8298ff9b 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go @@ -1,10 +1,12 @@ // go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && darwin // +build amd64,darwin package unix +// Deprecated: Use libSystem wrappers instead of direct syscalls. const ( SYS_SYSCALL = 0 SYS_EXIT = 1 diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go index 103a72ed1..6dc736449 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go @@ -1,10 +1,12 @@ // go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && darwin // +build arm,darwin package unix +// Deprecated: Use libSystem wrappers instead of direct syscalls. const ( SYS_SYSCALL = 0 SYS_EXIT = 1 diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go index 7ab2130b9..5eb433bbf 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go @@ -1,10 +1,12 @@ // go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && darwin // +build arm64,darwin package unix +// Deprecated: Use libSystem wrappers instead of direct syscalls. const ( SYS_SYSCALL = 0 SYS_EXIT = 1 diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go index 464c9a983..703675c0c 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go @@ -1,134 +1,131 @@ // go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && dragonfly // +build amd64,dragonfly package unix const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void exit(int rval); } - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int - SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } - SYS_ACCESS = 33 // { int access(char *path, int flags); } - SYS_CHFLAGS = 34 // { int chflags(char *path, int flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, int flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(int fd); } - SYS_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { int readlink(char *path, char *buf, int count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { pid_t vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(int from, int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_GETDOMAINNAME = 162 // { int getdomainname(char *domainname, int len); } - SYS_SETDOMAINNAME = 163 // { int setdomainname(char *domainname, int len); } - SYS_UNAME = 164 // { int uname(struct utsname *name); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); } - SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int - SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - // SYS_NOSYS = 198; // { int nosys(void); } __syscall __syscall_args int + SYS_EXIT = 1 // { void exit(int rval); } + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int + // SYS_NOSYS = 8; // { int nosys(void); } __nosys nosys_args int + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int + SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } + SYS_ACCESS = 33 // { int access(char *path, int flags); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(int fd); } + SYS_PIPE = 42 // { int pipe(void); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, size_t namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { int readlink(char *path, char *buf, int count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { pid_t vfork(void); } + SYS_SBRK = 69 // { caddr_t sbrk(size_t incr); } + SYS_SSTK = 70 // { int sstk(size_t incr); } + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(int from, int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); } + SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); } SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); } SYS_FTRUNCATE = 201 // { int ftruncate(int fd, int pad, off_t length); } @@ -161,8 +158,8 @@ const ( SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, u_int iovcnt, int flags, off_t offset); } - SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,u_int iovcnt, int flags, off_t offset); } + SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } + SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } SYS_MODNEXT = 300 // { int modnext(int modid); } @@ -225,7 +222,7 @@ const ( SYS_KQUEUE = 362 // { int kqueue(void); } SYS_KEVENT = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(char *path, int flags); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); } @@ -302,7 +299,7 @@ const ( SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); } SYS_VMM_GUEST_SYNC_ADDR = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); } SYS_PROCCTL = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); } - SYS_CHFLAGSAT = 537 // { int chflagsat(int fd, const char *path, int flags, int atflags);} + SYS_CHFLAGSAT = 537 // { int chflagsat(int fd, const char *path, u_long flags, int atflags);} SYS_PIPE2 = 538 // { int pipe2(int *fildes, int flags); } SYS_UTIMENSAT = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); } SYS_FUTIMENS = 540 // { int futimens(int fd, const struct timespec *ts); } @@ -312,4 +309,9 @@ const ( SYS_LWP_SETAFFINITY = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); } SYS_LWP_GETAFFINITY = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); } SYS_LWP_CREATE2 = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); } + SYS_GETCPUCLOCKID = 547 // { int getcpuclockid(pid_t pid, lwpid_t lwp_id, clockid_t *clock_id); } + SYS_WAIT6 = 548 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_LWP_GETNAME = 549 // { int lwp_getname(lwpid_t tid, char *name, size_t len); } + SYS_GETRANDOM = 550 // { ssize_t getrandom(void *buf, size_t len, unsigned flags); } + SYS___REALPATH = 551 // { ssize_t __realpath(const char *path, char *buf, size_t len); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go index 55c3a3294..59d5dfc20 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go @@ -1,6 +1,7 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && freebsd // +build 386,freebsd package unix @@ -118,8 +119,6 @@ const ( SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -133,10 +132,6 @@ const ( SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } @@ -164,6 +159,7 @@ const ( SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } @@ -197,13 +193,10 @@ const ( SYS_GETSID = 310 // { int getsid(pid_t pid); } SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } - SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } - SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } @@ -236,7 +229,7 @@ const ( SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } @@ -258,7 +251,7 @@ const ( SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } @@ -293,8 +286,6 @@ const ( SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } - SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } @@ -400,4 +391,7 @@ const ( SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go index b39be6cb8..342d471d2 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go @@ -1,6 +1,7 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && freebsd // +build amd64,freebsd package unix @@ -118,8 +119,6 @@ const ( SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -133,10 +132,6 @@ const ( SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } @@ -164,6 +159,7 @@ const ( SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } @@ -197,13 +193,10 @@ const ( SYS_GETSID = 310 // { int getsid(pid_t pid); } SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } - SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } - SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } @@ -236,7 +229,7 @@ const ( SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } @@ -258,7 +251,7 @@ const ( SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } @@ -293,8 +286,6 @@ const ( SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } - SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } @@ -400,4 +391,7 @@ const ( SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go index 44ffd4ce5..e2e3d72c5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go @@ -1,6 +1,7 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && freebsd // +build arm,freebsd package unix @@ -118,8 +119,6 @@ const ( SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -133,10 +132,6 @@ const ( SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } @@ -164,6 +159,7 @@ const ( SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } @@ -197,13 +193,10 @@ const ( SYS_GETSID = 310 // { int getsid(pid_t pid); } SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } - SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } - SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } @@ -236,7 +229,7 @@ const ( SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } @@ -258,7 +251,7 @@ const ( SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } @@ -293,8 +286,6 @@ const ( SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } - SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } @@ -400,4 +391,7 @@ const ( SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go index 9f21e9550..61ad5ca3c 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go @@ -1,19 +1,20 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && freebsd // +build arm64,freebsd package unix const ( // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } SYS_LINK = 9 // { int link(char *path, char *link); } SYS_UNLINK = 10 // { int unlink(char *path); } SYS_CHDIR = 12 // { int chdir(char *path); } @@ -21,20 +22,20 @@ const ( SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } SYS_CHMOD = 15 // { int chmod(char *path, int mode); } SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } SYS_SETUID = 23 // { int setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t getuid(void); } SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } SYS_ACCESS = 33 // { int access(char *path, int amode); } SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } @@ -42,56 +43,57 @@ const ( SYS_KILL = 37 // { int kill(int pid, int signum); } SYS_GETPPID = 39 // { pid_t getppid(void); } SYS_DUP = 41 // { int dup(u_int fd); } + SYS_PIPE = 42 // { int pipe(void); } SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } SYS_REBOOT = 55 // { int reboot(int opt); } SYS_REVOKE = 56 // { int revoke(char *path); } SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } SYS_VFORK = 66 // { int vfork(void); } SYS_SBRK = 69 // { int sbrk(int incr); } SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } SYS_GETPGRP = 81 // { int getpgrp(void); } SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } @@ -99,24 +101,24 @@ const ( SYS_RENAME = 128 // { int rename(char *from, char *to); } SYS_FLOCK = 131 // { int flock(int fd, int how); } SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, \ - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, \ - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, \ + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -127,269 +129,269 @@ const ( SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } SYS_UNDELETE = 205 // { int undelete(char *path); } SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, \ - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, \ - SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, \ - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, \ + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } SYS_ISSETUGID = 253 // { int issetugid(void); } SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, \ - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } SYS_MODFNEXT = 302 // { int modfnext(int modid); } SYS_MODFIND = 303 // { int modfind(const char *name); } SYS_KLDLOAD = 304 // { int kldload(const char *file); } SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } SYS_KLDFIND = 306 // { int kldfind(const char *file); } SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend( \ - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, \ + SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } SYS_SCHED_YIELD = 331 // { int sched_yield (void); } SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ + SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } SYS___SETUGID = 374 // { int __setugid(int flag); } SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, \ - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, \ + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ + SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } SYS_THR_WAKE = 443 // { int thr_wake(long id); } SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } SYS_GETAUID = 447 // { int getauid(uid_t *auid); } SYS_SETAUID = 448 // { int setauid(uid_t *auid); } SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, \ - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, \ - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, \ - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, \ - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, \ + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, \ - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, \ - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, \ + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } SYS_CAP_ENTER = 516 // { int cap_enter(void); } SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ - SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, \ - SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, \ + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) 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 8d17873de..8e5359713 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -1,392 +1,441 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && linux // +build 386,linux package unix const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAITPID = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BREAK = 17 - SYS_OLDSTAT = 18 - 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_OLDFSTAT = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_STTY = 31 - SYS_GTTY = 32 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_FTIME = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_PROF = 44 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_LOCK = 53 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_MPX = 56 - SYS_SETPGID = 57 - SYS_ULIMIT = 58 - SYS_OLDOLDUNAME = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SGETMASK = 68 - SYS_SSETMASK = 69 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - 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_OLDLSTAT = 84 - 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 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_PROFIL = 98 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_IOPERM = 101 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_OLDUNAME = 109 - SYS_IOPL = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_VM86OLD = 113 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_MODIFY_LDT = 123 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_VM86 = 166 - SYS_QUERY_MODULE = 167 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_SETRESGID = 170 - SYS_GETRESGID = 171 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_CHOWN = 182 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_GETPMSG = 188 - SYS_PUTPMSG = 189 - SYS_VFORK = 190 - SYS_UGETRLIMIT = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_LCHOWN32 = 198 - SYS_GETUID32 = 199 - SYS_GETGID32 = 200 - SYS_GETEUID32 = 201 - SYS_GETEGID32 = 202 - SYS_SETREUID32 = 203 - SYS_SETREGID32 = 204 - SYS_GETGROUPS32 = 205 - SYS_SETGROUPS32 = 206 - SYS_FCHOWN32 = 207 - SYS_SETRESUID32 = 208 - SYS_GETRESUID32 = 209 - SYS_SETRESGID32 = 210 - SYS_GETRESGID32 = 211 - SYS_CHOWN32 = 212 - SYS_SETUID32 = 213 - SYS_SETGID32 = 214 - SYS_SETFSUID32 = 215 - SYS_SETFSGID32 = 216 - SYS_PIVOT_ROOT = 217 - SYS_MINCORE = 218 - SYS_MADVISE = 219 - SYS_GETDENTS64 = 220 - SYS_FCNTL64 = 221 - SYS_GETTID = 224 - SYS_READAHEAD = 225 - SYS_SETXATTR = 226 - SYS_LSETXATTR = 227 - SYS_FSETXATTR = 228 - SYS_GETXATTR = 229 - SYS_LGETXATTR = 230 - SYS_FGETXATTR = 231 - SYS_LISTXATTR = 232 - SYS_LLISTXATTR = 233 - SYS_FLISTXATTR = 234 - SYS_REMOVEXATTR = 235 - SYS_LREMOVEXATTR = 236 - SYS_FREMOVEXATTR = 237 - SYS_TKILL = 238 - SYS_SENDFILE64 = 239 - SYS_FUTEX = 240 - SYS_SCHED_SETAFFINITY = 241 - SYS_SCHED_GETAFFINITY = 242 - SYS_SET_THREAD_AREA = 243 - SYS_GET_THREAD_AREA = 244 - SYS_IO_SETUP = 245 - SYS_IO_DESTROY = 246 - SYS_IO_GETEVENTS = 247 - SYS_IO_SUBMIT = 248 - SYS_IO_CANCEL = 249 - SYS_FADVISE64 = 250 - SYS_EXIT_GROUP = 252 - SYS_LOOKUP_DCOOKIE = 253 - SYS_EPOLL_CREATE = 254 - SYS_EPOLL_CTL = 255 - SYS_EPOLL_WAIT = 256 - SYS_REMAP_FILE_PAGES = 257 - SYS_SET_TID_ADDRESS = 258 - SYS_TIMER_CREATE = 259 - SYS_TIMER_SETTIME = 260 - SYS_TIMER_GETTIME = 261 - SYS_TIMER_GETOVERRUN = 262 - SYS_TIMER_DELETE = 263 - SYS_CLOCK_SETTIME = 264 - SYS_CLOCK_GETTIME = 265 - SYS_CLOCK_GETRES = 266 - SYS_CLOCK_NANOSLEEP = 267 - SYS_STATFS64 = 268 - SYS_FSTATFS64 = 269 - SYS_TGKILL = 270 - SYS_UTIMES = 271 - SYS_FADVISE64_64 = 272 - SYS_VSERVER = 273 - SYS_MBIND = 274 - SYS_GET_MEMPOLICY = 275 - SYS_SET_MEMPOLICY = 276 - SYS_MQ_OPEN = 277 - SYS_MQ_UNLINK = 278 - SYS_MQ_TIMEDSEND = 279 - SYS_MQ_TIMEDRECEIVE = 280 - SYS_MQ_NOTIFY = 281 - SYS_MQ_GETSETATTR = 282 - SYS_KEXEC_LOAD = 283 - SYS_WAITID = 284 - SYS_ADD_KEY = 286 - SYS_REQUEST_KEY = 287 - SYS_KEYCTL = 288 - SYS_IOPRIO_SET = 289 - SYS_IOPRIO_GET = 290 - SYS_INOTIFY_INIT = 291 - SYS_INOTIFY_ADD_WATCH = 292 - SYS_INOTIFY_RM_WATCH = 293 - SYS_MIGRATE_PAGES = 294 - SYS_OPENAT = 295 - SYS_MKDIRAT = 296 - SYS_MKNODAT = 297 - SYS_FCHOWNAT = 298 - SYS_FUTIMESAT = 299 - SYS_FSTATAT64 = 300 - SYS_UNLINKAT = 301 - SYS_RENAMEAT = 302 - SYS_LINKAT = 303 - SYS_SYMLINKAT = 304 - SYS_READLINKAT = 305 - SYS_FCHMODAT = 306 - SYS_FACCESSAT = 307 - SYS_PSELECT6 = 308 - SYS_PPOLL = 309 - SYS_UNSHARE = 310 - SYS_SET_ROBUST_LIST = 311 - SYS_GET_ROBUST_LIST = 312 - SYS_SPLICE = 313 - SYS_SYNC_FILE_RANGE = 314 - SYS_TEE = 315 - SYS_VMSPLICE = 316 - SYS_MOVE_PAGES = 317 - SYS_GETCPU = 318 - SYS_EPOLL_PWAIT = 319 - SYS_UTIMENSAT = 320 - SYS_SIGNALFD = 321 - SYS_TIMERFD_CREATE = 322 - SYS_EVENTFD = 323 - SYS_FALLOCATE = 324 - SYS_TIMERFD_SETTIME = 325 - SYS_TIMERFD_GETTIME = 326 - SYS_SIGNALFD4 = 327 - SYS_EVENTFD2 = 328 - SYS_EPOLL_CREATE1 = 329 - SYS_DUP3 = 330 - SYS_PIPE2 = 331 - SYS_INOTIFY_INIT1 = 332 - SYS_PREADV = 333 - SYS_PWRITEV = 334 - SYS_RT_TGSIGQUEUEINFO = 335 - SYS_PERF_EVENT_OPEN = 336 - SYS_RECVMMSG = 337 - SYS_FANOTIFY_INIT = 338 - SYS_FANOTIFY_MARK = 339 - SYS_PRLIMIT64 = 340 - SYS_NAME_TO_HANDLE_AT = 341 - SYS_OPEN_BY_HANDLE_AT = 342 - SYS_CLOCK_ADJTIME = 343 - SYS_SYNCFS = 344 - SYS_SENDMMSG = 345 - 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 - SYS_STATX = 383 - SYS_ARCH_PRCTL = 384 - SYS_IO_PGETEVENTS = 385 - SYS_RSEQ = 386 + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + 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_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + 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_OLDLSTAT = 84 + 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 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86OLD = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_VM86 = 166 + SYS_QUERY_MODULE = 167 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_SETRESGID = 170 + SYS_GETRESGID = 171 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_CHOWN = 182 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_GETPMSG = 188 + SYS_PUTPMSG = 189 + SYS_VFORK = 190 + SYS_UGETRLIMIT = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_LCHOWN32 = 198 + SYS_GETUID32 = 199 + SYS_GETGID32 = 200 + SYS_GETEUID32 = 201 + SYS_GETEGID32 = 202 + SYS_SETREUID32 = 203 + SYS_SETREGID32 = 204 + SYS_GETGROUPS32 = 205 + SYS_SETGROUPS32 = 206 + SYS_FCHOWN32 = 207 + SYS_SETRESUID32 = 208 + SYS_GETRESUID32 = 209 + SYS_SETRESGID32 = 210 + SYS_GETRESGID32 = 211 + SYS_CHOWN32 = 212 + SYS_SETUID32 = 213 + SYS_SETGID32 = 214 + SYS_SETFSUID32 = 215 + SYS_SETFSGID32 = 216 + SYS_PIVOT_ROOT = 217 + SYS_MINCORE = 218 + SYS_MADVISE = 219 + SYS_GETDENTS64 = 220 + SYS_FCNTL64 = 221 + SYS_GETTID = 224 + SYS_READAHEAD = 225 + SYS_SETXATTR = 226 + SYS_LSETXATTR = 227 + SYS_FSETXATTR = 228 + SYS_GETXATTR = 229 + SYS_LGETXATTR = 230 + SYS_FGETXATTR = 231 + SYS_LISTXATTR = 232 + SYS_LLISTXATTR = 233 + SYS_FLISTXATTR = 234 + SYS_REMOVEXATTR = 235 + SYS_LREMOVEXATTR = 236 + SYS_FREMOVEXATTR = 237 + SYS_TKILL = 238 + SYS_SENDFILE64 = 239 + SYS_FUTEX = 240 + SYS_SCHED_SETAFFINITY = 241 + SYS_SCHED_GETAFFINITY = 242 + SYS_SET_THREAD_AREA = 243 + SYS_GET_THREAD_AREA = 244 + SYS_IO_SETUP = 245 + SYS_IO_DESTROY = 246 + SYS_IO_GETEVENTS = 247 + SYS_IO_SUBMIT = 248 + SYS_IO_CANCEL = 249 + SYS_FADVISE64 = 250 + SYS_EXIT_GROUP = 252 + SYS_LOOKUP_DCOOKIE = 253 + SYS_EPOLL_CREATE = 254 + SYS_EPOLL_CTL = 255 + SYS_EPOLL_WAIT = 256 + SYS_REMAP_FILE_PAGES = 257 + SYS_SET_TID_ADDRESS = 258 + SYS_TIMER_CREATE = 259 + SYS_TIMER_SETTIME = 260 + SYS_TIMER_GETTIME = 261 + SYS_TIMER_GETOVERRUN = 262 + SYS_TIMER_DELETE = 263 + SYS_CLOCK_SETTIME = 264 + SYS_CLOCK_GETTIME = 265 + SYS_CLOCK_GETRES = 266 + SYS_CLOCK_NANOSLEEP = 267 + SYS_STATFS64 = 268 + SYS_FSTATFS64 = 269 + SYS_TGKILL = 270 + SYS_UTIMES = 271 + SYS_FADVISE64_64 = 272 + SYS_VSERVER = 273 + SYS_MBIND = 274 + SYS_GET_MEMPOLICY = 275 + SYS_SET_MEMPOLICY = 276 + SYS_MQ_OPEN = 277 + SYS_MQ_UNLINK = 278 + SYS_MQ_TIMEDSEND = 279 + SYS_MQ_TIMEDRECEIVE = 280 + SYS_MQ_NOTIFY = 281 + SYS_MQ_GETSETATTR = 282 + SYS_KEXEC_LOAD = 283 + SYS_WAITID = 284 + SYS_ADD_KEY = 286 + SYS_REQUEST_KEY = 287 + SYS_KEYCTL = 288 + SYS_IOPRIO_SET = 289 + SYS_IOPRIO_GET = 290 + SYS_INOTIFY_INIT = 291 + SYS_INOTIFY_ADD_WATCH = 292 + SYS_INOTIFY_RM_WATCH = 293 + SYS_MIGRATE_PAGES = 294 + SYS_OPENAT = 295 + SYS_MKDIRAT = 296 + SYS_MKNODAT = 297 + SYS_FCHOWNAT = 298 + SYS_FUTIMESAT = 299 + SYS_FSTATAT64 = 300 + SYS_UNLINKAT = 301 + SYS_RENAMEAT = 302 + SYS_LINKAT = 303 + SYS_SYMLINKAT = 304 + SYS_READLINKAT = 305 + SYS_FCHMODAT = 306 + SYS_FACCESSAT = 307 + SYS_PSELECT6 = 308 + SYS_PPOLL = 309 + SYS_UNSHARE = 310 + SYS_SET_ROBUST_LIST = 311 + SYS_GET_ROBUST_LIST = 312 + SYS_SPLICE = 313 + SYS_SYNC_FILE_RANGE = 314 + SYS_TEE = 315 + SYS_VMSPLICE = 316 + SYS_MOVE_PAGES = 317 + SYS_GETCPU = 318 + SYS_EPOLL_PWAIT = 319 + SYS_UTIMENSAT = 320 + SYS_SIGNALFD = 321 + SYS_TIMERFD_CREATE = 322 + SYS_EVENTFD = 323 + SYS_FALLOCATE = 324 + SYS_TIMERFD_SETTIME = 325 + SYS_TIMERFD_GETTIME = 326 + SYS_SIGNALFD4 = 327 + SYS_EVENTFD2 = 328 + SYS_EPOLL_CREATE1 = 329 + SYS_DUP3 = 330 + SYS_PIPE2 = 331 + SYS_INOTIFY_INIT1 = 332 + SYS_PREADV = 333 + SYS_PWRITEV = 334 + SYS_RT_TGSIGQUEUEINFO = 335 + SYS_PERF_EVENT_OPEN = 336 + SYS_RECVMMSG = 337 + SYS_FANOTIFY_INIT = 338 + SYS_FANOTIFY_MARK = 339 + SYS_PRLIMIT64 = 340 + SYS_NAME_TO_HANDLE_AT = 341 + SYS_OPEN_BY_HANDLE_AT = 342 + SYS_CLOCK_ADJTIME = 343 + SYS_SYNCFS = 344 + SYS_SENDMMSG = 345 + 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 + SYS_STATX = 383 + SYS_ARCH_PRCTL = 384 + SYS_IO_PGETEVENTS = 385 + SYS_RSEQ = 386 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_CLOCK_GETTIME64 = 403 + SYS_CLOCK_SETTIME64 = 404 + SYS_CLOCK_ADJTIME64 = 405 + SYS_CLOCK_GETRES_TIME64 = 406 + SYS_CLOCK_NANOSLEEP_TIME64 = 407 + SYS_TIMER_GETTIME64 = 408 + SYS_TIMER_SETTIME64 = 409 + SYS_TIMERFD_GETTIME64 = 410 + SYS_TIMERFD_SETTIME64 = 411 + SYS_UTIMENSAT_TIME64 = 412 + SYS_PSELECT6_TIME64 = 413 + SYS_PPOLL_TIME64 = 414 + SYS_IO_PGETEVENTS_TIME64 = 416 + SYS_RECVMMSG_TIME64 = 417 + SYS_MQ_TIMEDSEND_TIME64 = 418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 419 + SYS_SEMTIMEDOP_TIME64 = 420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 421 + SYS_FUTEX_TIME64 = 422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 ) 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 b3d8ad79d..d7dceb769 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && linux // +build amd64,linux package unix @@ -341,4 +342,22 @@ const ( SYS_STATX = 332 SYS_IO_PGETEVENTS = 333 SYS_RSEQ = 334 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 ) 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 e092822fb..04093a69f 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -1,364 +1,405 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && linux // +build arm,linux package unix const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_PTRACE = 26 - SYS_PAUSE = 29 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_SETPGID = 57 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SYMLINK = 83 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_VHANGUP = 111 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_SETRESGID = 170 - SYS_GETRESGID = 171 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_CHOWN = 182 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_VFORK = 190 - SYS_UGETRLIMIT = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_LCHOWN32 = 198 - SYS_GETUID32 = 199 - SYS_GETGID32 = 200 - SYS_GETEUID32 = 201 - SYS_GETEGID32 = 202 - SYS_SETREUID32 = 203 - SYS_SETREGID32 = 204 - SYS_GETGROUPS32 = 205 - SYS_SETGROUPS32 = 206 - SYS_FCHOWN32 = 207 - SYS_SETRESUID32 = 208 - SYS_GETRESUID32 = 209 - SYS_SETRESGID32 = 210 - SYS_GETRESGID32 = 211 - SYS_CHOWN32 = 212 - SYS_SETUID32 = 213 - SYS_SETGID32 = 214 - SYS_SETFSUID32 = 215 - SYS_SETFSGID32 = 216 - SYS_GETDENTS64 = 217 - SYS_PIVOT_ROOT = 218 - SYS_MINCORE = 219 - SYS_MADVISE = 220 - SYS_FCNTL64 = 221 - SYS_GETTID = 224 - SYS_READAHEAD = 225 - SYS_SETXATTR = 226 - SYS_LSETXATTR = 227 - SYS_FSETXATTR = 228 - SYS_GETXATTR = 229 - SYS_LGETXATTR = 230 - SYS_FGETXATTR = 231 - SYS_LISTXATTR = 232 - SYS_LLISTXATTR = 233 - SYS_FLISTXATTR = 234 - SYS_REMOVEXATTR = 235 - SYS_LREMOVEXATTR = 236 - SYS_FREMOVEXATTR = 237 - SYS_TKILL = 238 - SYS_SENDFILE64 = 239 - SYS_FUTEX = 240 - SYS_SCHED_SETAFFINITY = 241 - SYS_SCHED_GETAFFINITY = 242 - SYS_IO_SETUP = 243 - SYS_IO_DESTROY = 244 - SYS_IO_GETEVENTS = 245 - SYS_IO_SUBMIT = 246 - SYS_IO_CANCEL = 247 - SYS_EXIT_GROUP = 248 - SYS_LOOKUP_DCOOKIE = 249 - SYS_EPOLL_CREATE = 250 - SYS_EPOLL_CTL = 251 - SYS_EPOLL_WAIT = 252 - SYS_REMAP_FILE_PAGES = 253 - SYS_SET_TID_ADDRESS = 256 - SYS_TIMER_CREATE = 257 - SYS_TIMER_SETTIME = 258 - SYS_TIMER_GETTIME = 259 - SYS_TIMER_GETOVERRUN = 260 - SYS_TIMER_DELETE = 261 - SYS_CLOCK_SETTIME = 262 - SYS_CLOCK_GETTIME = 263 - SYS_CLOCK_GETRES = 264 - SYS_CLOCK_NANOSLEEP = 265 - SYS_STATFS64 = 266 - SYS_FSTATFS64 = 267 - SYS_TGKILL = 268 - SYS_UTIMES = 269 - SYS_ARM_FADVISE64_64 = 270 - SYS_PCICONFIG_IOBASE = 271 - SYS_PCICONFIG_READ = 272 - SYS_PCICONFIG_WRITE = 273 - SYS_MQ_OPEN = 274 - SYS_MQ_UNLINK = 275 - SYS_MQ_TIMEDSEND = 276 - SYS_MQ_TIMEDRECEIVE = 277 - SYS_MQ_NOTIFY = 278 - SYS_MQ_GETSETATTR = 279 - SYS_WAITID = 280 - SYS_SOCKET = 281 - SYS_BIND = 282 - SYS_CONNECT = 283 - SYS_LISTEN = 284 - SYS_ACCEPT = 285 - SYS_GETSOCKNAME = 286 - SYS_GETPEERNAME = 287 - SYS_SOCKETPAIR = 288 - SYS_SEND = 289 - SYS_SENDTO = 290 - SYS_RECV = 291 - SYS_RECVFROM = 292 - SYS_SHUTDOWN = 293 - SYS_SETSOCKOPT = 294 - SYS_GETSOCKOPT = 295 - SYS_SENDMSG = 296 - SYS_RECVMSG = 297 - SYS_SEMOP = 298 - SYS_SEMGET = 299 - SYS_SEMCTL = 300 - SYS_MSGSND = 301 - SYS_MSGRCV = 302 - SYS_MSGGET = 303 - SYS_MSGCTL = 304 - SYS_SHMAT = 305 - SYS_SHMDT = 306 - SYS_SHMGET = 307 - SYS_SHMCTL = 308 - SYS_ADD_KEY = 309 - SYS_REQUEST_KEY = 310 - SYS_KEYCTL = 311 - SYS_SEMTIMEDOP = 312 - SYS_VSERVER = 313 - SYS_IOPRIO_SET = 314 - SYS_IOPRIO_GET = 315 - SYS_INOTIFY_INIT = 316 - SYS_INOTIFY_ADD_WATCH = 317 - SYS_INOTIFY_RM_WATCH = 318 - SYS_MBIND = 319 - SYS_GET_MEMPOLICY = 320 - SYS_SET_MEMPOLICY = 321 - SYS_OPENAT = 322 - SYS_MKDIRAT = 323 - SYS_MKNODAT = 324 - SYS_FCHOWNAT = 325 - SYS_FUTIMESAT = 326 - SYS_FSTATAT64 = 327 - SYS_UNLINKAT = 328 - SYS_RENAMEAT = 329 - SYS_LINKAT = 330 - SYS_SYMLINKAT = 331 - SYS_READLINKAT = 332 - SYS_FCHMODAT = 333 - SYS_FACCESSAT = 334 - SYS_PSELECT6 = 335 - SYS_PPOLL = 336 - SYS_UNSHARE = 337 - SYS_SET_ROBUST_LIST = 338 - SYS_GET_ROBUST_LIST = 339 - SYS_SPLICE = 340 - SYS_ARM_SYNC_FILE_RANGE = 341 - SYS_TEE = 342 - SYS_VMSPLICE = 343 - SYS_MOVE_PAGES = 344 - SYS_GETCPU = 345 - SYS_EPOLL_PWAIT = 346 - SYS_KEXEC_LOAD = 347 - SYS_UTIMENSAT = 348 - SYS_SIGNALFD = 349 - SYS_TIMERFD_CREATE = 350 - SYS_EVENTFD = 351 - SYS_FALLOCATE = 352 - SYS_TIMERFD_SETTIME = 353 - SYS_TIMERFD_GETTIME = 354 - SYS_SIGNALFD4 = 355 - SYS_EVENTFD2 = 356 - SYS_EPOLL_CREATE1 = 357 - SYS_DUP3 = 358 - SYS_PIPE2 = 359 - SYS_INOTIFY_INIT1 = 360 - SYS_PREADV = 361 - SYS_PWRITEV = 362 - SYS_RT_TGSIGQUEUEINFO = 363 - SYS_PERF_EVENT_OPEN = 364 - SYS_RECVMMSG = 365 - SYS_ACCEPT4 = 366 - SYS_FANOTIFY_INIT = 367 - SYS_FANOTIFY_MARK = 368 - SYS_PRLIMIT64 = 369 - SYS_NAME_TO_HANDLE_AT = 370 - SYS_OPEN_BY_HANDLE_AT = 371 - SYS_CLOCK_ADJTIME = 372 - SYS_SYNCFS = 373 - SYS_SENDMMSG = 374 - 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 - SYS_STATX = 397 - SYS_RSEQ = 398 - SYS_IO_PGETEVENTS = 399 + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_PTRACE = 26 + SYS_PAUSE = 29 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_SETPGID = 57 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SYMLINK = 83 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_VHANGUP = 111 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_SETRESGID = 170 + SYS_GETRESGID = 171 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_CHOWN = 182 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_VFORK = 190 + SYS_UGETRLIMIT = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_LCHOWN32 = 198 + SYS_GETUID32 = 199 + SYS_GETGID32 = 200 + SYS_GETEUID32 = 201 + SYS_GETEGID32 = 202 + SYS_SETREUID32 = 203 + SYS_SETREGID32 = 204 + SYS_GETGROUPS32 = 205 + SYS_SETGROUPS32 = 206 + SYS_FCHOWN32 = 207 + SYS_SETRESUID32 = 208 + SYS_GETRESUID32 = 209 + SYS_SETRESGID32 = 210 + SYS_GETRESGID32 = 211 + SYS_CHOWN32 = 212 + SYS_SETUID32 = 213 + SYS_SETGID32 = 214 + SYS_SETFSUID32 = 215 + SYS_SETFSGID32 = 216 + SYS_GETDENTS64 = 217 + SYS_PIVOT_ROOT = 218 + SYS_MINCORE = 219 + SYS_MADVISE = 220 + SYS_FCNTL64 = 221 + SYS_GETTID = 224 + SYS_READAHEAD = 225 + SYS_SETXATTR = 226 + SYS_LSETXATTR = 227 + SYS_FSETXATTR = 228 + SYS_GETXATTR = 229 + SYS_LGETXATTR = 230 + SYS_FGETXATTR = 231 + SYS_LISTXATTR = 232 + SYS_LLISTXATTR = 233 + SYS_FLISTXATTR = 234 + SYS_REMOVEXATTR = 235 + SYS_LREMOVEXATTR = 236 + SYS_FREMOVEXATTR = 237 + SYS_TKILL = 238 + SYS_SENDFILE64 = 239 + SYS_FUTEX = 240 + SYS_SCHED_SETAFFINITY = 241 + SYS_SCHED_GETAFFINITY = 242 + SYS_IO_SETUP = 243 + SYS_IO_DESTROY = 244 + SYS_IO_GETEVENTS = 245 + SYS_IO_SUBMIT = 246 + SYS_IO_CANCEL = 247 + SYS_EXIT_GROUP = 248 + SYS_LOOKUP_DCOOKIE = 249 + SYS_EPOLL_CREATE = 250 + SYS_EPOLL_CTL = 251 + SYS_EPOLL_WAIT = 252 + SYS_REMAP_FILE_PAGES = 253 + SYS_SET_TID_ADDRESS = 256 + SYS_TIMER_CREATE = 257 + SYS_TIMER_SETTIME = 258 + SYS_TIMER_GETTIME = 259 + SYS_TIMER_GETOVERRUN = 260 + SYS_TIMER_DELETE = 261 + SYS_CLOCK_SETTIME = 262 + SYS_CLOCK_GETTIME = 263 + SYS_CLOCK_GETRES = 264 + SYS_CLOCK_NANOSLEEP = 265 + SYS_STATFS64 = 266 + SYS_FSTATFS64 = 267 + SYS_TGKILL = 268 + SYS_UTIMES = 269 + SYS_ARM_FADVISE64_64 = 270 + SYS_PCICONFIG_IOBASE = 271 + SYS_PCICONFIG_READ = 272 + SYS_PCICONFIG_WRITE = 273 + SYS_MQ_OPEN = 274 + SYS_MQ_UNLINK = 275 + SYS_MQ_TIMEDSEND = 276 + SYS_MQ_TIMEDRECEIVE = 277 + SYS_MQ_NOTIFY = 278 + SYS_MQ_GETSETATTR = 279 + SYS_WAITID = 280 + SYS_SOCKET = 281 + SYS_BIND = 282 + SYS_CONNECT = 283 + SYS_LISTEN = 284 + SYS_ACCEPT = 285 + SYS_GETSOCKNAME = 286 + SYS_GETPEERNAME = 287 + SYS_SOCKETPAIR = 288 + SYS_SEND = 289 + SYS_SENDTO = 290 + SYS_RECV = 291 + SYS_RECVFROM = 292 + SYS_SHUTDOWN = 293 + SYS_SETSOCKOPT = 294 + SYS_GETSOCKOPT = 295 + SYS_SENDMSG = 296 + SYS_RECVMSG = 297 + SYS_SEMOP = 298 + SYS_SEMGET = 299 + SYS_SEMCTL = 300 + SYS_MSGSND = 301 + SYS_MSGRCV = 302 + SYS_MSGGET = 303 + SYS_MSGCTL = 304 + SYS_SHMAT = 305 + SYS_SHMDT = 306 + SYS_SHMGET = 307 + SYS_SHMCTL = 308 + SYS_ADD_KEY = 309 + SYS_REQUEST_KEY = 310 + SYS_KEYCTL = 311 + SYS_SEMTIMEDOP = 312 + SYS_VSERVER = 313 + SYS_IOPRIO_SET = 314 + SYS_IOPRIO_GET = 315 + SYS_INOTIFY_INIT = 316 + SYS_INOTIFY_ADD_WATCH = 317 + SYS_INOTIFY_RM_WATCH = 318 + SYS_MBIND = 319 + SYS_GET_MEMPOLICY = 320 + SYS_SET_MEMPOLICY = 321 + SYS_OPENAT = 322 + SYS_MKDIRAT = 323 + SYS_MKNODAT = 324 + SYS_FCHOWNAT = 325 + SYS_FUTIMESAT = 326 + SYS_FSTATAT64 = 327 + SYS_UNLINKAT = 328 + SYS_RENAMEAT = 329 + SYS_LINKAT = 330 + SYS_SYMLINKAT = 331 + SYS_READLINKAT = 332 + SYS_FCHMODAT = 333 + SYS_FACCESSAT = 334 + SYS_PSELECT6 = 335 + SYS_PPOLL = 336 + SYS_UNSHARE = 337 + SYS_SET_ROBUST_LIST = 338 + SYS_GET_ROBUST_LIST = 339 + SYS_SPLICE = 340 + SYS_ARM_SYNC_FILE_RANGE = 341 + SYS_TEE = 342 + SYS_VMSPLICE = 343 + SYS_MOVE_PAGES = 344 + SYS_GETCPU = 345 + SYS_EPOLL_PWAIT = 346 + SYS_KEXEC_LOAD = 347 + SYS_UTIMENSAT = 348 + SYS_SIGNALFD = 349 + SYS_TIMERFD_CREATE = 350 + SYS_EVENTFD = 351 + SYS_FALLOCATE = 352 + SYS_TIMERFD_SETTIME = 353 + SYS_TIMERFD_GETTIME = 354 + SYS_SIGNALFD4 = 355 + SYS_EVENTFD2 = 356 + SYS_EPOLL_CREATE1 = 357 + SYS_DUP3 = 358 + SYS_PIPE2 = 359 + SYS_INOTIFY_INIT1 = 360 + SYS_PREADV = 361 + SYS_PWRITEV = 362 + SYS_RT_TGSIGQUEUEINFO = 363 + SYS_PERF_EVENT_OPEN = 364 + SYS_RECVMMSG = 365 + SYS_ACCEPT4 = 366 + SYS_FANOTIFY_INIT = 367 + SYS_FANOTIFY_MARK = 368 + SYS_PRLIMIT64 = 369 + SYS_NAME_TO_HANDLE_AT = 370 + SYS_OPEN_BY_HANDLE_AT = 371 + SYS_CLOCK_ADJTIME = 372 + SYS_SYNCFS = 373 + SYS_SENDMMSG = 374 + 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 + SYS_STATX = 397 + SYS_RSEQ = 398 + SYS_IO_PGETEVENTS = 399 + SYS_MIGRATE_PAGES = 400 + SYS_KEXEC_FILE_LOAD = 401 + SYS_CLOCK_GETTIME64 = 403 + SYS_CLOCK_SETTIME64 = 404 + SYS_CLOCK_ADJTIME64 = 405 + SYS_CLOCK_GETRES_TIME64 = 406 + SYS_CLOCK_NANOSLEEP_TIME64 = 407 + SYS_TIMER_GETTIME64 = 408 + SYS_TIMER_SETTIME64 = 409 + SYS_TIMERFD_GETTIME64 = 410 + SYS_TIMERFD_SETTIME64 = 411 + SYS_UTIMENSAT_TIME64 = 412 + SYS_PSELECT6_TIME64 = 413 + SYS_PPOLL_TIME64 = 414 + SYS_IO_PGETEVENTS_TIME64 = 416 + SYS_RECVMMSG_TIME64 = 417 + SYS_MQ_TIMEDSEND_TIME64 = 418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 419 + SYS_SEMTIMEDOP_TIME64 = 420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 421 + SYS_FUTEX_TIME64 = 422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 ) 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 b81d508a7..48f94f135 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && linux // +build arm64,linux package unix @@ -286,4 +287,22 @@ const ( SYS_IO_PGETEVENTS = 292 SYS_RSEQ = 293 SYS_KEXEC_FILE_LOAD = 294 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 ) 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 6893a5bd0..499978c3e 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -1,377 +1,426 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips && linux // +build mips,linux package unix const ( - SYS_SYSCALL = 4000 - SYS_EXIT = 4001 - SYS_FORK = 4002 - SYS_READ = 4003 - SYS_WRITE = 4004 - SYS_OPEN = 4005 - SYS_CLOSE = 4006 - SYS_WAITPID = 4007 - SYS_CREAT = 4008 - SYS_LINK = 4009 - SYS_UNLINK = 4010 - SYS_EXECVE = 4011 - SYS_CHDIR = 4012 - SYS_TIME = 4013 - SYS_MKNOD = 4014 - SYS_CHMOD = 4015 - SYS_LCHOWN = 4016 - SYS_BREAK = 4017 - SYS_UNUSED18 = 4018 - SYS_LSEEK = 4019 - SYS_GETPID = 4020 - SYS_MOUNT = 4021 - SYS_UMOUNT = 4022 - SYS_SETUID = 4023 - SYS_GETUID = 4024 - SYS_STIME = 4025 - SYS_PTRACE = 4026 - SYS_ALARM = 4027 - SYS_UNUSED28 = 4028 - SYS_PAUSE = 4029 - SYS_UTIME = 4030 - SYS_STTY = 4031 - SYS_GTTY = 4032 - SYS_ACCESS = 4033 - SYS_NICE = 4034 - SYS_FTIME = 4035 - SYS_SYNC = 4036 - SYS_KILL = 4037 - SYS_RENAME = 4038 - SYS_MKDIR = 4039 - SYS_RMDIR = 4040 - SYS_DUP = 4041 - SYS_PIPE = 4042 - SYS_TIMES = 4043 - SYS_PROF = 4044 - SYS_BRK = 4045 - SYS_SETGID = 4046 - SYS_GETGID = 4047 - SYS_SIGNAL = 4048 - SYS_GETEUID = 4049 - SYS_GETEGID = 4050 - SYS_ACCT = 4051 - SYS_UMOUNT2 = 4052 - SYS_LOCK = 4053 - SYS_IOCTL = 4054 - SYS_FCNTL = 4055 - SYS_MPX = 4056 - SYS_SETPGID = 4057 - SYS_ULIMIT = 4058 - SYS_UNUSED59 = 4059 - SYS_UMASK = 4060 - SYS_CHROOT = 4061 - SYS_USTAT = 4062 - SYS_DUP2 = 4063 - SYS_GETPPID = 4064 - SYS_GETPGRP = 4065 - SYS_SETSID = 4066 - SYS_SIGACTION = 4067 - SYS_SGETMASK = 4068 - SYS_SSETMASK = 4069 - SYS_SETREUID = 4070 - SYS_SETREGID = 4071 - SYS_SIGSUSPEND = 4072 - SYS_SIGPENDING = 4073 - SYS_SETHOSTNAME = 4074 - SYS_SETRLIMIT = 4075 - SYS_GETRLIMIT = 4076 - SYS_GETRUSAGE = 4077 - SYS_GETTIMEOFDAY = 4078 - SYS_SETTIMEOFDAY = 4079 - SYS_GETGROUPS = 4080 - SYS_SETGROUPS = 4081 - SYS_RESERVED82 = 4082 - SYS_SYMLINK = 4083 - SYS_UNUSED84 = 4084 - SYS_READLINK = 4085 - SYS_USELIB = 4086 - SYS_SWAPON = 4087 - SYS_REBOOT = 4088 - SYS_READDIR = 4089 - SYS_MMAP = 4090 - SYS_MUNMAP = 4091 - SYS_TRUNCATE = 4092 - SYS_FTRUNCATE = 4093 - SYS_FCHMOD = 4094 - SYS_FCHOWN = 4095 - SYS_GETPRIORITY = 4096 - SYS_SETPRIORITY = 4097 - SYS_PROFIL = 4098 - SYS_STATFS = 4099 - SYS_FSTATFS = 4100 - SYS_IOPERM = 4101 - SYS_SOCKETCALL = 4102 - SYS_SYSLOG = 4103 - SYS_SETITIMER = 4104 - SYS_GETITIMER = 4105 - SYS_STAT = 4106 - SYS_LSTAT = 4107 - SYS_FSTAT = 4108 - SYS_UNUSED109 = 4109 - SYS_IOPL = 4110 - SYS_VHANGUP = 4111 - SYS_IDLE = 4112 - SYS_VM86 = 4113 - SYS_WAIT4 = 4114 - SYS_SWAPOFF = 4115 - SYS_SYSINFO = 4116 - SYS_IPC = 4117 - SYS_FSYNC = 4118 - SYS_SIGRETURN = 4119 - SYS_CLONE = 4120 - SYS_SETDOMAINNAME = 4121 - SYS_UNAME = 4122 - SYS_MODIFY_LDT = 4123 - SYS_ADJTIMEX = 4124 - SYS_MPROTECT = 4125 - SYS_SIGPROCMASK = 4126 - SYS_CREATE_MODULE = 4127 - SYS_INIT_MODULE = 4128 - SYS_DELETE_MODULE = 4129 - SYS_GET_KERNEL_SYMS = 4130 - SYS_QUOTACTL = 4131 - SYS_GETPGID = 4132 - SYS_FCHDIR = 4133 - SYS_BDFLUSH = 4134 - SYS_SYSFS = 4135 - SYS_PERSONALITY = 4136 - SYS_AFS_SYSCALL = 4137 - SYS_SETFSUID = 4138 - SYS_SETFSGID = 4139 - SYS__LLSEEK = 4140 - SYS_GETDENTS = 4141 - SYS__NEWSELECT = 4142 - SYS_FLOCK = 4143 - SYS_MSYNC = 4144 - SYS_READV = 4145 - SYS_WRITEV = 4146 - SYS_CACHEFLUSH = 4147 - SYS_CACHECTL = 4148 - SYS_SYSMIPS = 4149 - SYS_UNUSED150 = 4150 - SYS_GETSID = 4151 - SYS_FDATASYNC = 4152 - SYS__SYSCTL = 4153 - SYS_MLOCK = 4154 - SYS_MUNLOCK = 4155 - SYS_MLOCKALL = 4156 - SYS_MUNLOCKALL = 4157 - SYS_SCHED_SETPARAM = 4158 - SYS_SCHED_GETPARAM = 4159 - SYS_SCHED_SETSCHEDULER = 4160 - SYS_SCHED_GETSCHEDULER = 4161 - SYS_SCHED_YIELD = 4162 - SYS_SCHED_GET_PRIORITY_MAX = 4163 - SYS_SCHED_GET_PRIORITY_MIN = 4164 - SYS_SCHED_RR_GET_INTERVAL = 4165 - SYS_NANOSLEEP = 4166 - SYS_MREMAP = 4167 - SYS_ACCEPT = 4168 - SYS_BIND = 4169 - SYS_CONNECT = 4170 - SYS_GETPEERNAME = 4171 - SYS_GETSOCKNAME = 4172 - SYS_GETSOCKOPT = 4173 - SYS_LISTEN = 4174 - SYS_RECV = 4175 - SYS_RECVFROM = 4176 - SYS_RECVMSG = 4177 - SYS_SEND = 4178 - SYS_SENDMSG = 4179 - SYS_SENDTO = 4180 - SYS_SETSOCKOPT = 4181 - SYS_SHUTDOWN = 4182 - SYS_SOCKET = 4183 - SYS_SOCKETPAIR = 4184 - SYS_SETRESUID = 4185 - SYS_GETRESUID = 4186 - SYS_QUERY_MODULE = 4187 - SYS_POLL = 4188 - SYS_NFSSERVCTL = 4189 - SYS_SETRESGID = 4190 - SYS_GETRESGID = 4191 - SYS_PRCTL = 4192 - SYS_RT_SIGRETURN = 4193 - SYS_RT_SIGACTION = 4194 - SYS_RT_SIGPROCMASK = 4195 - SYS_RT_SIGPENDING = 4196 - SYS_RT_SIGTIMEDWAIT = 4197 - SYS_RT_SIGQUEUEINFO = 4198 - SYS_RT_SIGSUSPEND = 4199 - SYS_PREAD64 = 4200 - SYS_PWRITE64 = 4201 - SYS_CHOWN = 4202 - SYS_GETCWD = 4203 - SYS_CAPGET = 4204 - SYS_CAPSET = 4205 - SYS_SIGALTSTACK = 4206 - SYS_SENDFILE = 4207 - SYS_GETPMSG = 4208 - SYS_PUTPMSG = 4209 - SYS_MMAP2 = 4210 - SYS_TRUNCATE64 = 4211 - SYS_FTRUNCATE64 = 4212 - SYS_STAT64 = 4213 - SYS_LSTAT64 = 4214 - SYS_FSTAT64 = 4215 - SYS_PIVOT_ROOT = 4216 - SYS_MINCORE = 4217 - SYS_MADVISE = 4218 - SYS_GETDENTS64 = 4219 - SYS_FCNTL64 = 4220 - SYS_RESERVED221 = 4221 - SYS_GETTID = 4222 - SYS_READAHEAD = 4223 - SYS_SETXATTR = 4224 - SYS_LSETXATTR = 4225 - SYS_FSETXATTR = 4226 - SYS_GETXATTR = 4227 - SYS_LGETXATTR = 4228 - SYS_FGETXATTR = 4229 - SYS_LISTXATTR = 4230 - SYS_LLISTXATTR = 4231 - SYS_FLISTXATTR = 4232 - SYS_REMOVEXATTR = 4233 - SYS_LREMOVEXATTR = 4234 - SYS_FREMOVEXATTR = 4235 - SYS_TKILL = 4236 - SYS_SENDFILE64 = 4237 - SYS_FUTEX = 4238 - SYS_SCHED_SETAFFINITY = 4239 - SYS_SCHED_GETAFFINITY = 4240 - SYS_IO_SETUP = 4241 - SYS_IO_DESTROY = 4242 - SYS_IO_GETEVENTS = 4243 - SYS_IO_SUBMIT = 4244 - SYS_IO_CANCEL = 4245 - SYS_EXIT_GROUP = 4246 - SYS_LOOKUP_DCOOKIE = 4247 - SYS_EPOLL_CREATE = 4248 - SYS_EPOLL_CTL = 4249 - SYS_EPOLL_WAIT = 4250 - SYS_REMAP_FILE_PAGES = 4251 - SYS_SET_TID_ADDRESS = 4252 - SYS_RESTART_SYSCALL = 4253 - SYS_FADVISE64 = 4254 - SYS_STATFS64 = 4255 - SYS_FSTATFS64 = 4256 - SYS_TIMER_CREATE = 4257 - SYS_TIMER_SETTIME = 4258 - SYS_TIMER_GETTIME = 4259 - SYS_TIMER_GETOVERRUN = 4260 - SYS_TIMER_DELETE = 4261 - SYS_CLOCK_SETTIME = 4262 - SYS_CLOCK_GETTIME = 4263 - SYS_CLOCK_GETRES = 4264 - SYS_CLOCK_NANOSLEEP = 4265 - SYS_TGKILL = 4266 - SYS_UTIMES = 4267 - SYS_MBIND = 4268 - SYS_GET_MEMPOLICY = 4269 - SYS_SET_MEMPOLICY = 4270 - SYS_MQ_OPEN = 4271 - SYS_MQ_UNLINK = 4272 - SYS_MQ_TIMEDSEND = 4273 - SYS_MQ_TIMEDRECEIVE = 4274 - SYS_MQ_NOTIFY = 4275 - SYS_MQ_GETSETATTR = 4276 - SYS_VSERVER = 4277 - SYS_WAITID = 4278 - SYS_ADD_KEY = 4280 - SYS_REQUEST_KEY = 4281 - SYS_KEYCTL = 4282 - SYS_SET_THREAD_AREA = 4283 - SYS_INOTIFY_INIT = 4284 - SYS_INOTIFY_ADD_WATCH = 4285 - SYS_INOTIFY_RM_WATCH = 4286 - SYS_MIGRATE_PAGES = 4287 - SYS_OPENAT = 4288 - SYS_MKDIRAT = 4289 - SYS_MKNODAT = 4290 - SYS_FCHOWNAT = 4291 - SYS_FUTIMESAT = 4292 - SYS_FSTATAT64 = 4293 - SYS_UNLINKAT = 4294 - SYS_RENAMEAT = 4295 - SYS_LINKAT = 4296 - SYS_SYMLINKAT = 4297 - SYS_READLINKAT = 4298 - SYS_FCHMODAT = 4299 - SYS_FACCESSAT = 4300 - SYS_PSELECT6 = 4301 - SYS_PPOLL = 4302 - SYS_UNSHARE = 4303 - SYS_SPLICE = 4304 - SYS_SYNC_FILE_RANGE = 4305 - SYS_TEE = 4306 - SYS_VMSPLICE = 4307 - SYS_MOVE_PAGES = 4308 - SYS_SET_ROBUST_LIST = 4309 - SYS_GET_ROBUST_LIST = 4310 - SYS_KEXEC_LOAD = 4311 - SYS_GETCPU = 4312 - SYS_EPOLL_PWAIT = 4313 - SYS_IOPRIO_SET = 4314 - SYS_IOPRIO_GET = 4315 - SYS_UTIMENSAT = 4316 - SYS_SIGNALFD = 4317 - SYS_TIMERFD = 4318 - SYS_EVENTFD = 4319 - SYS_FALLOCATE = 4320 - SYS_TIMERFD_CREATE = 4321 - SYS_TIMERFD_GETTIME = 4322 - SYS_TIMERFD_SETTIME = 4323 - SYS_SIGNALFD4 = 4324 - SYS_EVENTFD2 = 4325 - SYS_EPOLL_CREATE1 = 4326 - SYS_DUP3 = 4327 - SYS_PIPE2 = 4328 - SYS_INOTIFY_INIT1 = 4329 - SYS_PREADV = 4330 - SYS_PWRITEV = 4331 - SYS_RT_TGSIGQUEUEINFO = 4332 - SYS_PERF_EVENT_OPEN = 4333 - SYS_ACCEPT4 = 4334 - SYS_RECVMMSG = 4335 - SYS_FANOTIFY_INIT = 4336 - SYS_FANOTIFY_MARK = 4337 - SYS_PRLIMIT64 = 4338 - SYS_NAME_TO_HANDLE_AT = 4339 - SYS_OPEN_BY_HANDLE_AT = 4340 - SYS_CLOCK_ADJTIME = 4341 - SYS_SYNCFS = 4342 - SYS_SENDMMSG = 4343 - SYS_SETNS = 4344 - SYS_PROCESS_VM_READV = 4345 - SYS_PROCESS_VM_WRITEV = 4346 - 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 - SYS_STATX = 4366 - SYS_RSEQ = 4367 - SYS_IO_PGETEVENTS = 4368 + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + 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 + SYS_STATX = 4366 + SYS_RSEQ = 4367 + SYS_IO_PGETEVENTS = 4368 + SYS_SEMGET = 4393 + SYS_SEMCTL = 4394 + SYS_SHMGET = 4395 + SYS_SHMCTL = 4396 + SYS_SHMAT = 4397 + SYS_SHMDT = 4398 + SYS_MSGGET = 4399 + SYS_MSGSND = 4400 + SYS_MSGRCV = 4401 + SYS_MSGCTL = 4402 + SYS_CLOCK_GETTIME64 = 4403 + SYS_CLOCK_SETTIME64 = 4404 + SYS_CLOCK_ADJTIME64 = 4405 + SYS_CLOCK_GETRES_TIME64 = 4406 + SYS_CLOCK_NANOSLEEP_TIME64 = 4407 + SYS_TIMER_GETTIME64 = 4408 + SYS_TIMER_SETTIME64 = 4409 + SYS_TIMERFD_GETTIME64 = 4410 + SYS_TIMERFD_SETTIME64 = 4411 + SYS_UTIMENSAT_TIME64 = 4412 + SYS_PSELECT6_TIME64 = 4413 + SYS_PPOLL_TIME64 = 4414 + SYS_IO_PGETEVENTS_TIME64 = 4416 + SYS_RECVMMSG_TIME64 = 4417 + SYS_MQ_TIMEDSEND_TIME64 = 4418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 + SYS_SEMTIMEDOP_TIME64 = 4420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 + SYS_FUTEX_TIME64 = 4422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 + SYS_PIDFD_SEND_SIGNAL = 4424 + SYS_IO_URING_SETUP = 4425 + SYS_IO_URING_ENTER = 4426 + SYS_IO_URING_REGISTER = 4427 + SYS_OPEN_TREE = 4428 + SYS_MOVE_MOUNT = 4429 + SYS_FSOPEN = 4430 + SYS_FSCONFIG = 4431 + SYS_FSMOUNT = 4432 + SYS_FSPICK = 4433 + SYS_PIDFD_OPEN = 4434 + SYS_CLONE3 = 4435 + SYS_CLOSE_RANGE = 4436 + SYS_OPENAT2 = 4437 + SYS_PIDFD_GETFD = 4438 + SYS_FACCESSAT2 = 4439 + SYS_PROCESS_MADVISE = 4440 + SYS_EPOLL_PWAIT2 = 4441 ) 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 40164cacd..10d1db2be 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64 && linux // +build mips64,linux package unix @@ -334,4 +335,22 @@ const ( SYS_STATX = 5326 SYS_RSEQ = 5327 SYS_IO_PGETEVENTS = 5328 + SYS_PIDFD_SEND_SIGNAL = 5424 + SYS_IO_URING_SETUP = 5425 + SYS_IO_URING_ENTER = 5426 + SYS_IO_URING_REGISTER = 5427 + SYS_OPEN_TREE = 5428 + SYS_MOVE_MOUNT = 5429 + SYS_FSOPEN = 5430 + SYS_FSCONFIG = 5431 + SYS_FSMOUNT = 5432 + SYS_FSPICK = 5433 + SYS_PIDFD_OPEN = 5434 + SYS_CLONE3 = 5435 + SYS_CLOSE_RANGE = 5436 + SYS_OPENAT2 = 5437 + SYS_PIDFD_GETFD = 5438 + SYS_FACCESSAT2 = 5439 + SYS_PROCESS_MADVISE = 5440 + SYS_EPOLL_PWAIT2 = 5441 ) 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 8a909738b..208d5dcd5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64le && linux // +build mips64le,linux package unix @@ -334,4 +335,22 @@ const ( SYS_STATX = 5326 SYS_RSEQ = 5327 SYS_IO_PGETEVENTS = 5328 + SYS_PIDFD_SEND_SIGNAL = 5424 + SYS_IO_URING_SETUP = 5425 + SYS_IO_URING_ENTER = 5426 + SYS_IO_URING_REGISTER = 5427 + SYS_OPEN_TREE = 5428 + SYS_MOVE_MOUNT = 5429 + SYS_FSOPEN = 5430 + SYS_FSCONFIG = 5431 + SYS_FSMOUNT = 5432 + SYS_FSPICK = 5433 + SYS_PIDFD_OPEN = 5434 + SYS_CLONE3 = 5435 + SYS_CLOSE_RANGE = 5436 + SYS_OPENAT2 = 5437 + SYS_PIDFD_GETFD = 5438 + SYS_FACCESSAT2 = 5439 + SYS_PROCESS_MADVISE = 5440 + SYS_EPOLL_PWAIT2 = 5441 ) 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 8d7818422..f8250602e 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -1,377 +1,426 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mipsle && linux // +build mipsle,linux package unix const ( - SYS_SYSCALL = 4000 - SYS_EXIT = 4001 - SYS_FORK = 4002 - SYS_READ = 4003 - SYS_WRITE = 4004 - SYS_OPEN = 4005 - SYS_CLOSE = 4006 - SYS_WAITPID = 4007 - SYS_CREAT = 4008 - SYS_LINK = 4009 - SYS_UNLINK = 4010 - SYS_EXECVE = 4011 - SYS_CHDIR = 4012 - SYS_TIME = 4013 - SYS_MKNOD = 4014 - SYS_CHMOD = 4015 - SYS_LCHOWN = 4016 - SYS_BREAK = 4017 - SYS_UNUSED18 = 4018 - SYS_LSEEK = 4019 - SYS_GETPID = 4020 - SYS_MOUNT = 4021 - SYS_UMOUNT = 4022 - SYS_SETUID = 4023 - SYS_GETUID = 4024 - SYS_STIME = 4025 - SYS_PTRACE = 4026 - SYS_ALARM = 4027 - SYS_UNUSED28 = 4028 - SYS_PAUSE = 4029 - SYS_UTIME = 4030 - SYS_STTY = 4031 - SYS_GTTY = 4032 - SYS_ACCESS = 4033 - SYS_NICE = 4034 - SYS_FTIME = 4035 - SYS_SYNC = 4036 - SYS_KILL = 4037 - SYS_RENAME = 4038 - SYS_MKDIR = 4039 - SYS_RMDIR = 4040 - SYS_DUP = 4041 - SYS_PIPE = 4042 - SYS_TIMES = 4043 - SYS_PROF = 4044 - SYS_BRK = 4045 - SYS_SETGID = 4046 - SYS_GETGID = 4047 - SYS_SIGNAL = 4048 - SYS_GETEUID = 4049 - SYS_GETEGID = 4050 - SYS_ACCT = 4051 - SYS_UMOUNT2 = 4052 - SYS_LOCK = 4053 - SYS_IOCTL = 4054 - SYS_FCNTL = 4055 - SYS_MPX = 4056 - SYS_SETPGID = 4057 - SYS_ULIMIT = 4058 - SYS_UNUSED59 = 4059 - SYS_UMASK = 4060 - SYS_CHROOT = 4061 - SYS_USTAT = 4062 - SYS_DUP2 = 4063 - SYS_GETPPID = 4064 - SYS_GETPGRP = 4065 - SYS_SETSID = 4066 - SYS_SIGACTION = 4067 - SYS_SGETMASK = 4068 - SYS_SSETMASK = 4069 - SYS_SETREUID = 4070 - SYS_SETREGID = 4071 - SYS_SIGSUSPEND = 4072 - SYS_SIGPENDING = 4073 - SYS_SETHOSTNAME = 4074 - SYS_SETRLIMIT = 4075 - SYS_GETRLIMIT = 4076 - SYS_GETRUSAGE = 4077 - SYS_GETTIMEOFDAY = 4078 - SYS_SETTIMEOFDAY = 4079 - SYS_GETGROUPS = 4080 - SYS_SETGROUPS = 4081 - SYS_RESERVED82 = 4082 - SYS_SYMLINK = 4083 - SYS_UNUSED84 = 4084 - SYS_READLINK = 4085 - SYS_USELIB = 4086 - SYS_SWAPON = 4087 - SYS_REBOOT = 4088 - SYS_READDIR = 4089 - SYS_MMAP = 4090 - SYS_MUNMAP = 4091 - SYS_TRUNCATE = 4092 - SYS_FTRUNCATE = 4093 - SYS_FCHMOD = 4094 - SYS_FCHOWN = 4095 - SYS_GETPRIORITY = 4096 - SYS_SETPRIORITY = 4097 - SYS_PROFIL = 4098 - SYS_STATFS = 4099 - SYS_FSTATFS = 4100 - SYS_IOPERM = 4101 - SYS_SOCKETCALL = 4102 - SYS_SYSLOG = 4103 - SYS_SETITIMER = 4104 - SYS_GETITIMER = 4105 - SYS_STAT = 4106 - SYS_LSTAT = 4107 - SYS_FSTAT = 4108 - SYS_UNUSED109 = 4109 - SYS_IOPL = 4110 - SYS_VHANGUP = 4111 - SYS_IDLE = 4112 - SYS_VM86 = 4113 - SYS_WAIT4 = 4114 - SYS_SWAPOFF = 4115 - SYS_SYSINFO = 4116 - SYS_IPC = 4117 - SYS_FSYNC = 4118 - SYS_SIGRETURN = 4119 - SYS_CLONE = 4120 - SYS_SETDOMAINNAME = 4121 - SYS_UNAME = 4122 - SYS_MODIFY_LDT = 4123 - SYS_ADJTIMEX = 4124 - SYS_MPROTECT = 4125 - SYS_SIGPROCMASK = 4126 - SYS_CREATE_MODULE = 4127 - SYS_INIT_MODULE = 4128 - SYS_DELETE_MODULE = 4129 - SYS_GET_KERNEL_SYMS = 4130 - SYS_QUOTACTL = 4131 - SYS_GETPGID = 4132 - SYS_FCHDIR = 4133 - SYS_BDFLUSH = 4134 - SYS_SYSFS = 4135 - SYS_PERSONALITY = 4136 - SYS_AFS_SYSCALL = 4137 - SYS_SETFSUID = 4138 - SYS_SETFSGID = 4139 - SYS__LLSEEK = 4140 - SYS_GETDENTS = 4141 - SYS__NEWSELECT = 4142 - SYS_FLOCK = 4143 - SYS_MSYNC = 4144 - SYS_READV = 4145 - SYS_WRITEV = 4146 - SYS_CACHEFLUSH = 4147 - SYS_CACHECTL = 4148 - SYS_SYSMIPS = 4149 - SYS_UNUSED150 = 4150 - SYS_GETSID = 4151 - SYS_FDATASYNC = 4152 - SYS__SYSCTL = 4153 - SYS_MLOCK = 4154 - SYS_MUNLOCK = 4155 - SYS_MLOCKALL = 4156 - SYS_MUNLOCKALL = 4157 - SYS_SCHED_SETPARAM = 4158 - SYS_SCHED_GETPARAM = 4159 - SYS_SCHED_SETSCHEDULER = 4160 - SYS_SCHED_GETSCHEDULER = 4161 - SYS_SCHED_YIELD = 4162 - SYS_SCHED_GET_PRIORITY_MAX = 4163 - SYS_SCHED_GET_PRIORITY_MIN = 4164 - SYS_SCHED_RR_GET_INTERVAL = 4165 - SYS_NANOSLEEP = 4166 - SYS_MREMAP = 4167 - SYS_ACCEPT = 4168 - SYS_BIND = 4169 - SYS_CONNECT = 4170 - SYS_GETPEERNAME = 4171 - SYS_GETSOCKNAME = 4172 - SYS_GETSOCKOPT = 4173 - SYS_LISTEN = 4174 - SYS_RECV = 4175 - SYS_RECVFROM = 4176 - SYS_RECVMSG = 4177 - SYS_SEND = 4178 - SYS_SENDMSG = 4179 - SYS_SENDTO = 4180 - SYS_SETSOCKOPT = 4181 - SYS_SHUTDOWN = 4182 - SYS_SOCKET = 4183 - SYS_SOCKETPAIR = 4184 - SYS_SETRESUID = 4185 - SYS_GETRESUID = 4186 - SYS_QUERY_MODULE = 4187 - SYS_POLL = 4188 - SYS_NFSSERVCTL = 4189 - SYS_SETRESGID = 4190 - SYS_GETRESGID = 4191 - SYS_PRCTL = 4192 - SYS_RT_SIGRETURN = 4193 - SYS_RT_SIGACTION = 4194 - SYS_RT_SIGPROCMASK = 4195 - SYS_RT_SIGPENDING = 4196 - SYS_RT_SIGTIMEDWAIT = 4197 - SYS_RT_SIGQUEUEINFO = 4198 - SYS_RT_SIGSUSPEND = 4199 - SYS_PREAD64 = 4200 - SYS_PWRITE64 = 4201 - SYS_CHOWN = 4202 - SYS_GETCWD = 4203 - SYS_CAPGET = 4204 - SYS_CAPSET = 4205 - SYS_SIGALTSTACK = 4206 - SYS_SENDFILE = 4207 - SYS_GETPMSG = 4208 - SYS_PUTPMSG = 4209 - SYS_MMAP2 = 4210 - SYS_TRUNCATE64 = 4211 - SYS_FTRUNCATE64 = 4212 - SYS_STAT64 = 4213 - SYS_LSTAT64 = 4214 - SYS_FSTAT64 = 4215 - SYS_PIVOT_ROOT = 4216 - SYS_MINCORE = 4217 - SYS_MADVISE = 4218 - SYS_GETDENTS64 = 4219 - SYS_FCNTL64 = 4220 - SYS_RESERVED221 = 4221 - SYS_GETTID = 4222 - SYS_READAHEAD = 4223 - SYS_SETXATTR = 4224 - SYS_LSETXATTR = 4225 - SYS_FSETXATTR = 4226 - SYS_GETXATTR = 4227 - SYS_LGETXATTR = 4228 - SYS_FGETXATTR = 4229 - SYS_LISTXATTR = 4230 - SYS_LLISTXATTR = 4231 - SYS_FLISTXATTR = 4232 - SYS_REMOVEXATTR = 4233 - SYS_LREMOVEXATTR = 4234 - SYS_FREMOVEXATTR = 4235 - SYS_TKILL = 4236 - SYS_SENDFILE64 = 4237 - SYS_FUTEX = 4238 - SYS_SCHED_SETAFFINITY = 4239 - SYS_SCHED_GETAFFINITY = 4240 - SYS_IO_SETUP = 4241 - SYS_IO_DESTROY = 4242 - SYS_IO_GETEVENTS = 4243 - SYS_IO_SUBMIT = 4244 - SYS_IO_CANCEL = 4245 - SYS_EXIT_GROUP = 4246 - SYS_LOOKUP_DCOOKIE = 4247 - SYS_EPOLL_CREATE = 4248 - SYS_EPOLL_CTL = 4249 - SYS_EPOLL_WAIT = 4250 - SYS_REMAP_FILE_PAGES = 4251 - SYS_SET_TID_ADDRESS = 4252 - SYS_RESTART_SYSCALL = 4253 - SYS_FADVISE64 = 4254 - SYS_STATFS64 = 4255 - SYS_FSTATFS64 = 4256 - SYS_TIMER_CREATE = 4257 - SYS_TIMER_SETTIME = 4258 - SYS_TIMER_GETTIME = 4259 - SYS_TIMER_GETOVERRUN = 4260 - SYS_TIMER_DELETE = 4261 - SYS_CLOCK_SETTIME = 4262 - SYS_CLOCK_GETTIME = 4263 - SYS_CLOCK_GETRES = 4264 - SYS_CLOCK_NANOSLEEP = 4265 - SYS_TGKILL = 4266 - SYS_UTIMES = 4267 - SYS_MBIND = 4268 - SYS_GET_MEMPOLICY = 4269 - SYS_SET_MEMPOLICY = 4270 - SYS_MQ_OPEN = 4271 - SYS_MQ_UNLINK = 4272 - SYS_MQ_TIMEDSEND = 4273 - SYS_MQ_TIMEDRECEIVE = 4274 - SYS_MQ_NOTIFY = 4275 - SYS_MQ_GETSETATTR = 4276 - SYS_VSERVER = 4277 - SYS_WAITID = 4278 - SYS_ADD_KEY = 4280 - SYS_REQUEST_KEY = 4281 - SYS_KEYCTL = 4282 - SYS_SET_THREAD_AREA = 4283 - SYS_INOTIFY_INIT = 4284 - SYS_INOTIFY_ADD_WATCH = 4285 - SYS_INOTIFY_RM_WATCH = 4286 - SYS_MIGRATE_PAGES = 4287 - SYS_OPENAT = 4288 - SYS_MKDIRAT = 4289 - SYS_MKNODAT = 4290 - SYS_FCHOWNAT = 4291 - SYS_FUTIMESAT = 4292 - SYS_FSTATAT64 = 4293 - SYS_UNLINKAT = 4294 - SYS_RENAMEAT = 4295 - SYS_LINKAT = 4296 - SYS_SYMLINKAT = 4297 - SYS_READLINKAT = 4298 - SYS_FCHMODAT = 4299 - SYS_FACCESSAT = 4300 - SYS_PSELECT6 = 4301 - SYS_PPOLL = 4302 - SYS_UNSHARE = 4303 - SYS_SPLICE = 4304 - SYS_SYNC_FILE_RANGE = 4305 - SYS_TEE = 4306 - SYS_VMSPLICE = 4307 - SYS_MOVE_PAGES = 4308 - SYS_SET_ROBUST_LIST = 4309 - SYS_GET_ROBUST_LIST = 4310 - SYS_KEXEC_LOAD = 4311 - SYS_GETCPU = 4312 - SYS_EPOLL_PWAIT = 4313 - SYS_IOPRIO_SET = 4314 - SYS_IOPRIO_GET = 4315 - SYS_UTIMENSAT = 4316 - SYS_SIGNALFD = 4317 - SYS_TIMERFD = 4318 - SYS_EVENTFD = 4319 - SYS_FALLOCATE = 4320 - SYS_TIMERFD_CREATE = 4321 - SYS_TIMERFD_GETTIME = 4322 - SYS_TIMERFD_SETTIME = 4323 - SYS_SIGNALFD4 = 4324 - SYS_EVENTFD2 = 4325 - SYS_EPOLL_CREATE1 = 4326 - SYS_DUP3 = 4327 - SYS_PIPE2 = 4328 - SYS_INOTIFY_INIT1 = 4329 - SYS_PREADV = 4330 - SYS_PWRITEV = 4331 - SYS_RT_TGSIGQUEUEINFO = 4332 - SYS_PERF_EVENT_OPEN = 4333 - SYS_ACCEPT4 = 4334 - SYS_RECVMMSG = 4335 - SYS_FANOTIFY_INIT = 4336 - SYS_FANOTIFY_MARK = 4337 - SYS_PRLIMIT64 = 4338 - SYS_NAME_TO_HANDLE_AT = 4339 - SYS_OPEN_BY_HANDLE_AT = 4340 - SYS_CLOCK_ADJTIME = 4341 - SYS_SYNCFS = 4342 - SYS_SENDMMSG = 4343 - SYS_SETNS = 4344 - SYS_PROCESS_VM_READV = 4345 - SYS_PROCESS_VM_WRITEV = 4346 - 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 - SYS_STATX = 4366 - SYS_RSEQ = 4367 - SYS_IO_PGETEVENTS = 4368 + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + 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 + SYS_STATX = 4366 + SYS_RSEQ = 4367 + SYS_IO_PGETEVENTS = 4368 + SYS_SEMGET = 4393 + SYS_SEMCTL = 4394 + SYS_SHMGET = 4395 + SYS_SHMCTL = 4396 + SYS_SHMAT = 4397 + SYS_SHMDT = 4398 + SYS_MSGGET = 4399 + SYS_MSGSND = 4400 + SYS_MSGRCV = 4401 + SYS_MSGCTL = 4402 + SYS_CLOCK_GETTIME64 = 4403 + SYS_CLOCK_SETTIME64 = 4404 + SYS_CLOCK_ADJTIME64 = 4405 + SYS_CLOCK_GETRES_TIME64 = 4406 + SYS_CLOCK_NANOSLEEP_TIME64 = 4407 + SYS_TIMER_GETTIME64 = 4408 + SYS_TIMER_SETTIME64 = 4409 + SYS_TIMERFD_GETTIME64 = 4410 + SYS_TIMERFD_SETTIME64 = 4411 + SYS_UTIMENSAT_TIME64 = 4412 + SYS_PSELECT6_TIME64 = 4413 + SYS_PPOLL_TIME64 = 4414 + SYS_IO_PGETEVENTS_TIME64 = 4416 + SYS_RECVMMSG_TIME64 = 4417 + SYS_MQ_TIMEDSEND_TIME64 = 4418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 + SYS_SEMTIMEDOP_TIME64 = 4420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 + SYS_FUTEX_TIME64 = 4422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 + SYS_PIDFD_SEND_SIGNAL = 4424 + SYS_IO_URING_SETUP = 4425 + SYS_IO_URING_ENTER = 4426 + SYS_IO_URING_REGISTER = 4427 + SYS_OPEN_TREE = 4428 + SYS_MOVE_MOUNT = 4429 + SYS_FSOPEN = 4430 + SYS_FSCONFIG = 4431 + SYS_FSMOUNT = 4432 + SYS_FSPICK = 4433 + SYS_PIDFD_OPEN = 4434 + SYS_CLONE3 = 4435 + SYS_CLOSE_RANGE = 4436 + SYS_OPENAT2 = 4437 + SYS_PIDFD_GETFD = 4438 + SYS_FACCESSAT2 = 4439 + SYS_PROCESS_MADVISE = 4440 + SYS_EPOLL_PWAIT2 = 4441 ) 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 ec5bde3d5..d5ed3ff51 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && linux // +build ppc64,linux package unix @@ -372,4 +373,33 @@ const ( SYS_PKEY_MPROTECT = 386 SYS_RSEQ = 387 SYS_IO_PGETEVENTS = 388 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 ) 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 bdbabdbcd..e29b4424c 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64le && linux // +build ppc64le,linux package unix @@ -372,4 +373,33 @@ const ( SYS_PKEY_MPROTECT = 386 SYS_RSEQ = 387 SYS_IO_PGETEVENTS = 388 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index 2c8c46a2f..41deed6c3 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build riscv64 && linux // +build riscv64,linux package unix @@ -285,4 +286,22 @@ const ( SYS_IO_PGETEVENTS = 292 SYS_RSEQ = 293 SYS_KEXEC_FILE_LOAD = 294 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 ) 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 6eb7c257f..8e53a9e8c 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build s390x && linux // +build s390x,linux package unix @@ -334,4 +335,36 @@ const ( SYS_KEXEC_FILE_LOAD = 381 SYS_IO_PGETEVENTS = 382 SYS_RSEQ = 383 + SYS_PKEY_MPROTECT = 384 + SYS_PKEY_ALLOC = 385 + SYS_PKEY_FREE = 386 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 ) 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 6ed306370..596e5bc7d 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build sparc64 && linux // +build sparc64,linux package unix @@ -348,4 +349,36 @@ const ( SYS_PWRITEV2 = 359 SYS_STATX = 360 SYS_IO_PGETEVENTS = 361 + SYS_PKEY_MPROTECT = 362 + SYS_PKEY_ALLOC = 363 + SYS_PKEY_FREE = 364 + SYS_RSEQ = 365 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go index e66a8c9d3..3a6699eba 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go @@ -1,6 +1,7 @@ // go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && netbsd // +build 386,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go index 42c788f24..5677cd4f1 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go @@ -1,6 +1,7 @@ // go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && netbsd // +build amd64,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go index 0a0757179..e784cb6db 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go @@ -1,6 +1,7 @@ // go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && netbsd // +build arm,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go index 0291c0931..bd4952efa 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go @@ -1,6 +1,7 @@ // go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; DO NOT EDIT. +//go:build arm64 && netbsd // +build arm64,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go index b0207d1c9..817edbf95 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && openbsd // +build 386,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go index f0dec6f0b..ea453614e 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && openbsd // +build amd64,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go index 33d1dc540..467971eed 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && openbsd // +build arm,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go new file mode 100644 index 000000000..32eec5ed5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go @@ -0,0 +1,218 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +package unix + +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go new file mode 100644 index 000000000..a37f77375 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go @@ -0,0 +1,221 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && openbsd +// +build mips64,openbsd + +package unix + +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_MSYSCALL = 37 // { int sys_msyscall(void *addr, size_t len); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS___REALPATH = 115 // { int sys___realpath(const char *pathname, char *resolved); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS___TMPFD = 164 // { int sys___tmpfd(int flags); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go new file mode 100644 index 000000000..073daad43 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go @@ -0,0 +1,2670 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +// TODO: auto-generate. + +const ( + SYS_ACOSD128 = 0xB80 + SYS_ACOSD32 = 0xB7E + SYS_ACOSD64 = 0xB7F + SYS_ACOSHD128 = 0xB83 + SYS_ACOSHD32 = 0xB81 + SYS_ACOSHD64 = 0xB82 + SYS_AIO_FSYNC = 0xC69 + SYS_ASCTIME = 0x0AE + SYS_ASCTIME64 = 0xCD7 + SYS_ASCTIME64_R = 0xCD8 + SYS_ASIND128 = 0xB86 + SYS_ASIND32 = 0xB84 + SYS_ASIND64 = 0xB85 + SYS_ASINHD128 = 0xB89 + SYS_ASINHD32 = 0xB87 + SYS_ASINHD64 = 0xB88 + SYS_ATAN2D128 = 0xB8F + SYS_ATAN2D32 = 0xB8D + SYS_ATAN2D64 = 0xB8E + SYS_ATAND128 = 0xB8C + SYS_ATAND32 = 0xB8A + SYS_ATAND64 = 0xB8B + SYS_ATANHD128 = 0xB92 + SYS_ATANHD32 = 0xB90 + SYS_ATANHD64 = 0xB91 + SYS_BIND2ADDRSEL = 0xD59 + SYS_C16RTOMB = 0xD40 + SYS_C32RTOMB = 0xD41 + SYS_CBRTD128 = 0xB95 + SYS_CBRTD32 = 0xB93 + SYS_CBRTD64 = 0xB94 + SYS_CEILD128 = 0xB98 + SYS_CEILD32 = 0xB96 + SYS_CEILD64 = 0xB97 + SYS_CLEARENV = 0x0C9 + SYS_CLEARERR_UNLOCKED = 0xCA1 + SYS_CLOCK = 0x0AA + SYS_CLOGL = 0xA00 + SYS_CLRMEMF = 0x0BD + SYS_CONJ = 0xA03 + SYS_CONJF = 0xA06 + SYS_CONJL = 0xA09 + SYS_COPYSIGND128 = 0xB9E + SYS_COPYSIGND32 = 0xB9C + SYS_COPYSIGND64 = 0xB9D + SYS_COSD128 = 0xBA1 + SYS_COSD32 = 0xB9F + SYS_COSD64 = 0xBA0 + SYS_COSHD128 = 0xBA4 + SYS_COSHD32 = 0xBA2 + SYS_COSHD64 = 0xBA3 + SYS_CPOW = 0xA0C + SYS_CPOWF = 0xA0F + SYS_CPOWL = 0xA12 + SYS_CPROJ = 0xA15 + SYS_CPROJF = 0xA18 + SYS_CPROJL = 0xA1B + SYS_CREAL = 0xA1E + SYS_CREALF = 0xA21 + SYS_CREALL = 0xA24 + SYS_CSIN = 0xA27 + SYS_CSINF = 0xA2A + SYS_CSINH = 0xA30 + SYS_CSINHF = 0xA33 + SYS_CSINHL = 0xA36 + SYS_CSINL = 0xA2D + SYS_CSNAP = 0x0C5 + SYS_CSQRT = 0xA39 + SYS_CSQRTF = 0xA3C + SYS_CSQRTL = 0xA3F + SYS_CTAN = 0xA42 + SYS_CTANF = 0xA45 + SYS_CTANH = 0xA4B + SYS_CTANHF = 0xA4E + SYS_CTANHL = 0xA51 + SYS_CTANL = 0xA48 + SYS_CTIME = 0x0AB + SYS_CTIME64 = 0xCD9 + SYS_CTIME64_R = 0xCDA + SYS_CTRACE = 0x0C6 + SYS_DIFFTIME = 0x0A7 + SYS_DIFFTIME64 = 0xCDB + SYS_DLADDR = 0xC82 + SYS_DYNALLOC = 0x0C3 + SYS_DYNFREE = 0x0C2 + SYS_ERFCD128 = 0xBAA + SYS_ERFCD32 = 0xBA8 + SYS_ERFCD64 = 0xBA9 + SYS_ERFD128 = 0xBA7 + SYS_ERFD32 = 0xBA5 + SYS_ERFD64 = 0xBA6 + SYS_EXP2D128 = 0xBB0 + SYS_EXP2D32 = 0xBAE + SYS_EXP2D64 = 0xBAF + SYS_EXPD128 = 0xBAD + SYS_EXPD32 = 0xBAB + SYS_EXPD64 = 0xBAC + SYS_EXPM1D128 = 0xBB3 + SYS_EXPM1D32 = 0xBB1 + SYS_EXPM1D64 = 0xBB2 + SYS_FABSD128 = 0xBB6 + SYS_FABSD32 = 0xBB4 + SYS_FABSD64 = 0xBB5 + SYS_FDELREC_UNLOCKED = 0xCA2 + SYS_FDIMD128 = 0xBB9 + SYS_FDIMD32 = 0xBB7 + SYS_FDIMD64 = 0xBB8 + SYS_FDOPEN_UNLOCKED = 0xCFC + SYS_FECLEAREXCEPT = 0xAEA + SYS_FEGETENV = 0xAEB + SYS_FEGETEXCEPTFLAG = 0xAEC + SYS_FEGETROUND = 0xAED + SYS_FEHOLDEXCEPT = 0xAEE + SYS_FEOF_UNLOCKED = 0xCA3 + SYS_FERAISEEXCEPT = 0xAEF + SYS_FERROR_UNLOCKED = 0xCA4 + SYS_FESETENV = 0xAF0 + SYS_FESETEXCEPTFLAG = 0xAF1 + SYS_FESETROUND = 0xAF2 + SYS_FETCHEP = 0x0BF + SYS_FETESTEXCEPT = 0xAF3 + SYS_FEUPDATEENV = 0xAF4 + SYS_FE_DEC_GETROUND = 0xBBA + SYS_FE_DEC_SETROUND = 0xBBB + SYS_FFLUSH_UNLOCKED = 0xCA5 + SYS_FGETC_UNLOCKED = 0xC80 + SYS_FGETPOS64 = 0xCEE + SYS_FGETPOS64_UNLOCKED = 0xCF4 + SYS_FGETPOS_UNLOCKED = 0xCA6 + SYS_FGETS_UNLOCKED = 0xC7C + SYS_FGETWC_UNLOCKED = 0xCA7 + SYS_FGETWS_UNLOCKED = 0xCA8 + SYS_FILENO_UNLOCKED = 0xCA9 + SYS_FLDATA = 0x0C1 + SYS_FLDATA_UNLOCKED = 0xCAA + SYS_FLOCATE_UNLOCKED = 0xCAB + SYS_FLOORD128 = 0xBBE + SYS_FLOORD32 = 0xBBC + SYS_FLOORD64 = 0xBBD + SYS_FMA = 0xA63 + SYS_FMAD128 = 0xBC1 + SYS_FMAD32 = 0xBBF + SYS_FMAD64 = 0xBC0 + SYS_FMAF = 0xA66 + SYS_FMAL = 0xA69 + SYS_FMAX = 0xA6C + SYS_FMAXD128 = 0xBC4 + SYS_FMAXD32 = 0xBC2 + SYS_FMAXD64 = 0xBC3 + SYS_FMAXF = 0xA6F + SYS_FMAXL = 0xA72 + SYS_FMIN = 0xA75 + SYS_FMIND128 = 0xBC7 + SYS_FMIND32 = 0xBC5 + SYS_FMIND64 = 0xBC6 + SYS_FMINF = 0xA78 + SYS_FMINL = 0xA7B + SYS_FMODD128 = 0xBCA + SYS_FMODD32 = 0xBC8 + SYS_FMODD64 = 0xBC9 + SYS_FOPEN64 = 0xD49 + SYS_FOPEN64_UNLOCKED = 0xD4A + SYS_FOPEN_UNLOCKED = 0xCFA + SYS_FPRINTF_UNLOCKED = 0xCAC + SYS_FPUTC_UNLOCKED = 0xC81 + SYS_FPUTS_UNLOCKED = 0xC7E + SYS_FPUTWC_UNLOCKED = 0xCAD + SYS_FPUTWS_UNLOCKED = 0xCAE + SYS_FREAD_NOUPDATE = 0xCEC + SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED + SYS_FREAD_UNLOCKED = 0xC7B + SYS_FREEIFADDRS = 0xCE6 + SYS_FREOPEN64 = 0xD4B + SYS_FREOPEN64_UNLOCKED = 0xD4C + SYS_FREOPEN_UNLOCKED = 0xCFB + SYS_FREXPD128 = 0xBCE + SYS_FREXPD32 = 0xBCC + SYS_FREXPD64 = 0xBCD + SYS_FSCANF_UNLOCKED = 0xCAF + SYS_FSEEK64 = 0xCEF + SYS_FSEEK64_UNLOCKED = 0xCF5 + SYS_FSEEKO64 = 0xCF0 + SYS_FSEEKO64_UNLOCKED = 0xCF6 + SYS_FSEEKO_UNLOCKED = 0xCB1 + SYS_FSEEK_UNLOCKED = 0xCB0 + SYS_FSETPOS64 = 0xCF1 + SYS_FSETPOS64_UNLOCKED = 0xCF7 + SYS_FSETPOS_UNLOCKED = 0xCB3 + SYS_FTELL64 = 0xCF2 + SYS_FTELL64_UNLOCKED = 0xCF8 + SYS_FTELLO64 = 0xCF3 + SYS_FTELLO64_UNLOCKED = 0xCF9 + SYS_FTELLO_UNLOCKED = 0xCB5 + SYS_FTELL_UNLOCKED = 0xCB4 + SYS_FUPDATE = 0x0B5 + SYS_FUPDATE_UNLOCKED = 0xCB7 + SYS_FWIDE_UNLOCKED = 0xCB8 + SYS_FWPRINTF_UNLOCKED = 0xCB9 + SYS_FWRITE_UNLOCKED = 0xC7A + SYS_FWSCANF_UNLOCKED = 0xCBA + SYS_GETDATE64 = 0xD4F + SYS_GETIFADDRS = 0xCE7 + SYS_GETIPV4SOURCEFILTER = 0xC77 + SYS_GETSOURCEFILTER = 0xC79 + SYS_GETSYNTX = 0x0FD + SYS_GETS_UNLOCKED = 0xC7D + SYS_GETTIMEOFDAY64 = 0xD50 + SYS_GETWCHAR_UNLOCKED = 0xCBC + SYS_GETWC_UNLOCKED = 0xCBB + SYS_GMTIME = 0x0B0 + SYS_GMTIME64 = 0xCDC + SYS_GMTIME64_R = 0xCDD + SYS_HYPOTD128 = 0xBD1 + SYS_HYPOTD32 = 0xBCF + SYS_HYPOTD64 = 0xBD0 + SYS_ILOGBD128 = 0xBD4 + SYS_ILOGBD32 = 0xBD2 + SYS_ILOGBD64 = 0xBD3 + SYS_ILOGBF = 0xA7E + SYS_ILOGBL = 0xA81 + SYS_INET6_IS_SRCADDR = 0xD5A + SYS_ISBLANK = 0x0FE + SYS_ISWALNUM = 0x0FF + SYS_LDEXPD128 = 0xBD7 + SYS_LDEXPD32 = 0xBD5 + SYS_LDEXPD64 = 0xBD6 + SYS_LGAMMAD128 = 0xBDA + SYS_LGAMMAD32 = 0xBD8 + SYS_LGAMMAD64 = 0xBD9 + SYS_LIO_LISTIO = 0xC6A + SYS_LLRINT = 0xA84 + SYS_LLRINTD128 = 0xBDD + SYS_LLRINTD32 = 0xBDB + SYS_LLRINTD64 = 0xBDC + SYS_LLRINTF = 0xA87 + SYS_LLRINTL = 0xA8A + SYS_LLROUND = 0xA8D + SYS_LLROUNDD128 = 0xBE0 + SYS_LLROUNDD32 = 0xBDE + SYS_LLROUNDD64 = 0xBDF + SYS_LLROUNDF = 0xA90 + SYS_LLROUNDL = 0xA93 + SYS_LOCALTIM = 0x0B1 + SYS_LOCALTIME = 0x0B1 + SYS_LOCALTIME64 = 0xCDE + SYS_LOCALTIME64_R = 0xCDF + SYS_LOG10D128 = 0xBE6 + SYS_LOG10D32 = 0xBE4 + SYS_LOG10D64 = 0xBE5 + SYS_LOG1PD128 = 0xBE9 + SYS_LOG1PD32 = 0xBE7 + SYS_LOG1PD64 = 0xBE8 + SYS_LOG2D128 = 0xBEC + SYS_LOG2D32 = 0xBEA + SYS_LOG2D64 = 0xBEB + SYS_LOGBD128 = 0xBEF + SYS_LOGBD32 = 0xBED + SYS_LOGBD64 = 0xBEE + SYS_LOGBF = 0xA96 + SYS_LOGBL = 0xA99 + SYS_LOGD128 = 0xBE3 + SYS_LOGD32 = 0xBE1 + SYS_LOGD64 = 0xBE2 + SYS_LRINT = 0xA9C + SYS_LRINTD128 = 0xBF2 + SYS_LRINTD32 = 0xBF0 + SYS_LRINTD64 = 0xBF1 + SYS_LRINTF = 0xA9F + SYS_LRINTL = 0xAA2 + SYS_LROUNDD128 = 0xBF5 + SYS_LROUNDD32 = 0xBF3 + SYS_LROUNDD64 = 0xBF4 + SYS_LROUNDL = 0xAA5 + SYS_MBLEN = 0x0AF + SYS_MBRTOC16 = 0xD42 + SYS_MBRTOC32 = 0xD43 + SYS_MEMSET = 0x0A3 + SYS_MKTIME = 0x0AC + SYS_MKTIME64 = 0xCE0 + SYS_MODFD128 = 0xBF8 + SYS_MODFD32 = 0xBF6 + SYS_MODFD64 = 0xBF7 + SYS_NAN = 0xAA8 + SYS_NAND128 = 0xBFB + SYS_NAND32 = 0xBF9 + SYS_NAND64 = 0xBFA + SYS_NANF = 0xAAA + SYS_NANL = 0xAAC + SYS_NEARBYINT = 0xAAE + SYS_NEARBYINTD128 = 0xBFE + SYS_NEARBYINTD32 = 0xBFC + SYS_NEARBYINTD64 = 0xBFD + SYS_NEARBYINTF = 0xAB1 + SYS_NEARBYINTL = 0xAB4 + SYS_NEXTAFTERD128 = 0xC01 + SYS_NEXTAFTERD32 = 0xBFF + SYS_NEXTAFTERD64 = 0xC00 + SYS_NEXTAFTERF = 0xAB7 + SYS_NEXTAFTERL = 0xABA + SYS_NEXTTOWARD = 0xABD + SYS_NEXTTOWARDD128 = 0xC04 + SYS_NEXTTOWARDD32 = 0xC02 + SYS_NEXTTOWARDD64 = 0xC03 + SYS_NEXTTOWARDF = 0xAC0 + SYS_NEXTTOWARDL = 0xAC3 + SYS_NL_LANGINFO = 0x0FC + SYS_PERROR_UNLOCKED = 0xCBD + SYS_POSIX_FALLOCATE = 0xCE8 + SYS_POSIX_MEMALIGN = 0xCE9 + SYS_POSIX_OPENPT = 0xC66 + SYS_POWD128 = 0xC07 + SYS_POWD32 = 0xC05 + SYS_POWD64 = 0xC06 + SYS_PRINTF_UNLOCKED = 0xCBE + SYS_PSELECT = 0xC67 + SYS_PTHREAD_ATTR_GETSTACK = 0xB3E + SYS_PTHREAD_ATTR_SETSTACK = 0xB3F + SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 + SYS_PUTS_UNLOCKED = 0xC7F + SYS_PUTWCHAR_UNLOCKED = 0xCC0 + SYS_PUTWC_UNLOCKED = 0xCBF + SYS_QUANTEXPD128 = 0xD46 + SYS_QUANTEXPD32 = 0xD44 + SYS_QUANTEXPD64 = 0xD45 + SYS_QUANTIZED128 = 0xC0A + SYS_QUANTIZED32 = 0xC08 + SYS_QUANTIZED64 = 0xC09 + SYS_REMAINDERD128 = 0xC0D + SYS_REMAINDERD32 = 0xC0B + SYS_REMAINDERD64 = 0xC0C + SYS_RESIZE_ALLOC = 0xCEB + SYS_REWIND_UNLOCKED = 0xCC1 + SYS_RINTD128 = 0xC13 + SYS_RINTD32 = 0xC11 + SYS_RINTD64 = 0xC12 + SYS_RINTF = 0xACB + SYS_RINTL = 0xACD + SYS_ROUND = 0xACF + SYS_ROUNDD128 = 0xC16 + SYS_ROUNDD32 = 0xC14 + SYS_ROUNDD64 = 0xC15 + SYS_ROUNDF = 0xAD2 + SYS_ROUNDL = 0xAD5 + SYS_SAMEQUANTUMD128 = 0xC19 + SYS_SAMEQUANTUMD32 = 0xC17 + SYS_SAMEQUANTUMD64 = 0xC18 + SYS_SCALBLN = 0xAD8 + SYS_SCALBLND128 = 0xC1C + SYS_SCALBLND32 = 0xC1A + SYS_SCALBLND64 = 0xC1B + SYS_SCALBLNF = 0xADB + SYS_SCALBLNL = 0xADE + SYS_SCALBND128 = 0xC1F + SYS_SCALBND32 = 0xC1D + SYS_SCALBND64 = 0xC1E + SYS_SCALBNF = 0xAE3 + SYS_SCALBNL = 0xAE6 + SYS_SCANF_UNLOCKED = 0xCC2 + SYS_SCHED_YIELD = 0xB32 + SYS_SETENV = 0x0C8 + SYS_SETIPV4SOURCEFILTER = 0xC76 + SYS_SETSOURCEFILTER = 0xC78 + SYS_SHM_OPEN = 0xC8C + SYS_SHM_UNLINK = 0xC8D + SYS_SIND128 = 0xC22 + SYS_SIND32 = 0xC20 + SYS_SIND64 = 0xC21 + SYS_SINHD128 = 0xC25 + SYS_SINHD32 = 0xC23 + SYS_SINHD64 = 0xC24 + SYS_SIZEOF_ALLOC = 0xCEA + SYS_SOCKATMARK = 0xC68 + SYS_SQRTD128 = 0xC28 + SYS_SQRTD32 = 0xC26 + SYS_SQRTD64 = 0xC27 + SYS_STRCHR = 0x0A0 + SYS_STRCSPN = 0x0A1 + SYS_STRERROR = 0x0A8 + SYS_STRERROR_R = 0xB33 + SYS_STRFTIME = 0x0B2 + SYS_STRLEN = 0x0A9 + SYS_STRPBRK = 0x0A2 + SYS_STRSPN = 0x0A4 + SYS_STRSTR = 0x0A5 + SYS_STRTOD128 = 0xC2B + SYS_STRTOD32 = 0xC29 + SYS_STRTOD64 = 0xC2A + SYS_STRTOK = 0x0A6 + SYS_TAND128 = 0xC2E + SYS_TAND32 = 0xC2C + SYS_TAND64 = 0xC2D + SYS_TANHD128 = 0xC31 + SYS_TANHD32 = 0xC2F + SYS_TANHD64 = 0xC30 + SYS_TGAMMAD128 = 0xC34 + SYS_TGAMMAD32 = 0xC32 + SYS_TGAMMAD64 = 0xC33 + SYS_TIME = 0x0AD + SYS_TIME64 = 0xCE1 + SYS_TMPFILE64 = 0xD4D + SYS_TMPFILE64_UNLOCKED = 0xD4E + SYS_TMPFILE_UNLOCKED = 0xCFD + SYS_TRUNCD128 = 0xC40 + SYS_TRUNCD32 = 0xC3E + SYS_TRUNCD64 = 0xC3F + SYS_UNGETC_UNLOCKED = 0xCC3 + SYS_UNGETWC_UNLOCKED = 0xCC4 + SYS_UNSETENV = 0xB34 + SYS_VFPRINTF_UNLOCKED = 0xCC5 + SYS_VFSCANF_UNLOCKED = 0xCC7 + SYS_VFWPRINTF_UNLOCKED = 0xCC9 + SYS_VFWSCANF_UNLOCKED = 0xCCB + SYS_VPRINTF_UNLOCKED = 0xCCD + SYS_VSCANF_UNLOCKED = 0xCCF + SYS_VWPRINTF_UNLOCKED = 0xCD1 + SYS_VWSCANF_UNLOCKED = 0xCD3 + SYS_WCSTOD128 = 0xC43 + SYS_WCSTOD32 = 0xC41 + SYS_WCSTOD64 = 0xC42 + SYS_WPRINTF_UNLOCKED = 0xCD5 + SYS_WSCANF_UNLOCKED = 0xCD6 + SYS__FLUSHLBF = 0xD68 + SYS__FLUSHLBF_UNLOCKED = 0xD6F + SYS___ACOSHF_H = 0xA54 + SYS___ACOSHL_H = 0xA55 + SYS___ASINHF_H = 0xA56 + SYS___ASINHL_H = 0xA57 + SYS___ATANPID128 = 0xC6D + SYS___ATANPID32 = 0xC6B + SYS___ATANPID64 = 0xC6C + SYS___CBRTF_H = 0xA58 + SYS___CBRTL_H = 0xA59 + SYS___CDUMP = 0x0C4 + SYS___CLASS = 0xAFA + SYS___CLASS2 = 0xB99 + SYS___CLASS2D128 = 0xC99 + SYS___CLASS2D32 = 0xC97 + SYS___CLASS2D64 = 0xC98 + SYS___CLASS2F = 0xC91 + SYS___CLASS2F_B = 0xC93 + SYS___CLASS2F_H = 0xC94 + SYS___CLASS2L = 0xC92 + SYS___CLASS2L_B = 0xC95 + SYS___CLASS2L_H = 0xC96 + SYS___CLASS2_B = 0xB9A + SYS___CLASS2_H = 0xB9B + SYS___CLASS_B = 0xAFB + SYS___CLASS_H = 0xAFC + SYS___CLOGL_B = 0xA01 + SYS___CLOGL_H = 0xA02 + SYS___CLRENV = 0x0C9 + SYS___CLRMF = 0x0BD + SYS___CODEPAGE_INFO = 0xC64 + SYS___CONJF_B = 0xA07 + SYS___CONJF_H = 0xA08 + SYS___CONJL_B = 0xA0A + SYS___CONJL_H = 0xA0B + SYS___CONJ_B = 0xA04 + SYS___CONJ_H = 0xA05 + SYS___COPYSIGN_B = 0xA5A + SYS___COPYSIGN_H = 0xAF5 + SYS___COSPID128 = 0xC70 + SYS___COSPID32 = 0xC6E + SYS___COSPID64 = 0xC6F + SYS___CPOWF_B = 0xA10 + SYS___CPOWF_H = 0xA11 + SYS___CPOWL_B = 0xA13 + SYS___CPOWL_H = 0xA14 + SYS___CPOW_B = 0xA0D + SYS___CPOW_H = 0xA0E + SYS___CPROJF_B = 0xA19 + SYS___CPROJF_H = 0xA1A + SYS___CPROJL_B = 0xA1C + SYS___CPROJL_H = 0xA1D + SYS___CPROJ_B = 0xA16 + SYS___CPROJ_H = 0xA17 + SYS___CREALF_B = 0xA22 + SYS___CREALF_H = 0xA23 + SYS___CREALL_B = 0xA25 + SYS___CREALL_H = 0xA26 + SYS___CREAL_B = 0xA1F + SYS___CREAL_H = 0xA20 + SYS___CSINF_B = 0xA2B + SYS___CSINF_H = 0xA2C + SYS___CSINHF_B = 0xA34 + SYS___CSINHF_H = 0xA35 + SYS___CSINHL_B = 0xA37 + SYS___CSINHL_H = 0xA38 + SYS___CSINH_B = 0xA31 + SYS___CSINH_H = 0xA32 + SYS___CSINL_B = 0xA2E + SYS___CSINL_H = 0xA2F + SYS___CSIN_B = 0xA28 + SYS___CSIN_H = 0xA29 + SYS___CSNAP = 0x0C5 + SYS___CSQRTF_B = 0xA3D + SYS___CSQRTF_H = 0xA3E + SYS___CSQRTL_B = 0xA40 + SYS___CSQRTL_H = 0xA41 + SYS___CSQRT_B = 0xA3A + SYS___CSQRT_H = 0xA3B + SYS___CTANF_B = 0xA46 + SYS___CTANF_H = 0xA47 + SYS___CTANHF_B = 0xA4F + SYS___CTANHF_H = 0xA50 + SYS___CTANHL_B = 0xA52 + SYS___CTANHL_H = 0xA53 + SYS___CTANH_B = 0xA4C + SYS___CTANH_H = 0xA4D + SYS___CTANL_B = 0xA49 + SYS___CTANL_H = 0xA4A + SYS___CTAN_B = 0xA43 + SYS___CTAN_H = 0xA44 + SYS___CTEST = 0x0C7 + SYS___CTRACE = 0x0C6 + SYS___D1TOP = 0xC9B + SYS___D2TOP = 0xC9C + SYS___D4TOP = 0xC9D + SYS___DYNALL = 0x0C3 + SYS___DYNFRE = 0x0C2 + SYS___EXP2F_H = 0xA5E + SYS___EXP2L_H = 0xA5F + SYS___EXP2_H = 0xA5D + SYS___EXPM1F_H = 0xA5B + SYS___EXPM1L_H = 0xA5C + SYS___FBUFSIZE = 0xD60 + SYS___FLBF = 0xD62 + SYS___FLDATA = 0x0C1 + SYS___FMAF_B = 0xA67 + SYS___FMAF_H = 0xA68 + SYS___FMAL_B = 0xA6A + SYS___FMAL_H = 0xA6B + SYS___FMAXF_B = 0xA70 + SYS___FMAXF_H = 0xA71 + SYS___FMAXL_B = 0xA73 + SYS___FMAXL_H = 0xA74 + SYS___FMAX_B = 0xA6D + SYS___FMAX_H = 0xA6E + SYS___FMA_B = 0xA64 + SYS___FMA_H = 0xA65 + SYS___FMINF_B = 0xA79 + SYS___FMINF_H = 0xA7A + SYS___FMINL_B = 0xA7C + SYS___FMINL_H = 0xA7D + SYS___FMIN_B = 0xA76 + SYS___FMIN_H = 0xA77 + SYS___FPENDING = 0xD61 + SYS___FPENDING_UNLOCKED = 0xD6C + SYS___FPURGE = 0xD69 + SYS___FPURGE_UNLOCKED = 0xD70 + SYS___FP_CAST_D = 0xBCB + SYS___FREADABLE = 0xD63 + SYS___FREADAHEAD = 0xD6A + SYS___FREADAHEAD_UNLOCKED = 0xD71 + SYS___FREADING = 0xD65 + SYS___FREADING_UNLOCKED = 0xD6D + SYS___FSEEK2 = 0xB3C + SYS___FSETERR = 0xD6B + SYS___FSETLOCKING = 0xD67 + SYS___FTCHEP = 0x0BF + SYS___FTELL2 = 0xB3B + SYS___FUPDT = 0x0B5 + SYS___FWRITABLE = 0xD64 + SYS___FWRITING = 0xD66 + SYS___FWRITING_UNLOCKED = 0xD6E + SYS___GETCB = 0x0B4 + SYS___GETGRGID1 = 0xD5B + SYS___GETGRNAM1 = 0xD5C + SYS___GETTHENT = 0xCE5 + SYS___GETTOD = 0xD3E + SYS___HYPOTF_H = 0xAF6 + SYS___HYPOTL_H = 0xAF7 + SYS___ILOGBF_B = 0xA7F + SYS___ILOGBF_H = 0xA80 + SYS___ILOGBL_B = 0xA82 + SYS___ILOGBL_H = 0xA83 + SYS___ISBLANK_A = 0xB2E + SYS___ISBLNK = 0x0FE + SYS___ISWBLANK_A = 0xB2F + SYS___LE_CEEGTJS = 0xD72 + SYS___LE_TRACEBACK = 0xB7A + SYS___LGAMMAL_H = 0xA62 + SYS___LGAMMA_B_C99 = 0xB39 + SYS___LGAMMA_H_C99 = 0xB38 + SYS___LGAMMA_R_C99 = 0xB3A + SYS___LLRINTF_B = 0xA88 + SYS___LLRINTF_H = 0xA89 + SYS___LLRINTL_B = 0xA8B + SYS___LLRINTL_H = 0xA8C + SYS___LLRINT_B = 0xA85 + SYS___LLRINT_H = 0xA86 + SYS___LLROUNDF_B = 0xA91 + SYS___LLROUNDF_H = 0xA92 + SYS___LLROUNDL_B = 0xA94 + SYS___LLROUNDL_H = 0xA95 + SYS___LLROUND_B = 0xA8E + SYS___LLROUND_H = 0xA8F + SYS___LOCALE_CTL = 0xD47 + SYS___LOG1PF_H = 0xA60 + SYS___LOG1PL_H = 0xA61 + SYS___LOGBF_B = 0xA97 + SYS___LOGBF_H = 0xA98 + SYS___LOGBL_B = 0xA9A + SYS___LOGBL_H = 0xA9B + SYS___LOGIN_APPLID = 0xCE2 + SYS___LRINTF_B = 0xAA0 + SYS___LRINTF_H = 0xAA1 + SYS___LRINTL_B = 0xAA3 + SYS___LRINTL_H = 0xAA4 + SYS___LRINT_B = 0xA9D + SYS___LRINT_H = 0xA9E + SYS___LROUNDF_FIXUP = 0xB31 + SYS___LROUNDL_B = 0xAA6 + SYS___LROUNDL_H = 0xAA7 + SYS___LROUND_FIXUP = 0xB30 + SYS___MOSERVICES = 0xD3D + SYS___MUST_STAY_CLEAN = 0xB7C + SYS___NANF_B = 0xAAB + SYS___NANL_B = 0xAAD + SYS___NAN_B = 0xAA9 + SYS___NEARBYINTF_B = 0xAB2 + SYS___NEARBYINTF_H = 0xAB3 + SYS___NEARBYINTL_B = 0xAB5 + SYS___NEARBYINTL_H = 0xAB6 + SYS___NEARBYINT_B = 0xAAF + SYS___NEARBYINT_H = 0xAB0 + SYS___NEXTAFTERF_B = 0xAB8 + SYS___NEXTAFTERF_H = 0xAB9 + SYS___NEXTAFTERL_B = 0xABB + SYS___NEXTAFTERL_H = 0xABC + SYS___NEXTTOWARDF_B = 0xAC1 + SYS___NEXTTOWARDF_H = 0xAC2 + SYS___NEXTTOWARDL_B = 0xAC4 + SYS___NEXTTOWARDL_H = 0xAC5 + SYS___NEXTTOWARD_B = 0xABE + SYS___NEXTTOWARD_H = 0xABF + SYS___O_ENV = 0xB7D + SYS___PASSWD_APPLID = 0xCE3 + SYS___PTOD1 = 0xC9E + SYS___PTOD2 = 0xC9F + SYS___PTOD4 = 0xCA0 + SYS___REGCOMP_STD = 0x0EA + SYS___REMAINDERF_H = 0xAC6 + SYS___REMAINDERL_H = 0xAC7 + SYS___REMQUOD128 = 0xC10 + SYS___REMQUOD32 = 0xC0E + SYS___REMQUOD64 = 0xC0F + SYS___REMQUOF_H = 0xAC9 + SYS___REMQUOL_H = 0xACA + SYS___REMQUO_H = 0xAC8 + SYS___RINTF_B = 0xACC + SYS___RINTL_B = 0xACE + SYS___ROUNDF_B = 0xAD3 + SYS___ROUNDF_H = 0xAD4 + SYS___ROUNDL_B = 0xAD6 + SYS___ROUNDL_H = 0xAD7 + SYS___ROUND_B = 0xAD0 + SYS___ROUND_H = 0xAD1 + SYS___SCALBLNF_B = 0xADC + SYS___SCALBLNF_H = 0xADD + SYS___SCALBLNL_B = 0xADF + SYS___SCALBLNL_H = 0xAE0 + SYS___SCALBLN_B = 0xAD9 + SYS___SCALBLN_H = 0xADA + SYS___SCALBNF_B = 0xAE4 + SYS___SCALBNF_H = 0xAE5 + SYS___SCALBNL_B = 0xAE7 + SYS___SCALBNL_H = 0xAE8 + SYS___SCALBN_B = 0xAE1 + SYS___SCALBN_H = 0xAE2 + SYS___SETENV = 0x0C8 + SYS___SINPID128 = 0xC73 + SYS___SINPID32 = 0xC71 + SYS___SINPID64 = 0xC72 + SYS___SMF_RECORD2 = 0xD48 + SYS___STATIC_REINIT = 0xB3D + SYS___TGAMMAF_H_C99 = 0xB79 + SYS___TGAMMAL_H = 0xAE9 + SYS___TGAMMA_H_C99 = 0xB78 + SYS___TOCSNAME2 = 0xC9A + SYS_CEIL = 0x01F + SYS_CHAUDIT = 0x1E0 + SYS_EXP = 0x01A + SYS_FCHAUDIT = 0x1E1 + SYS_FREXP = 0x01D + SYS_GETGROUPSBYNAME = 0x1E2 + SYS_GETPWUID = 0x1A0 + SYS_GETUID = 0x1A1 + SYS_ISATTY = 0x1A3 + SYS_KILL = 0x1A4 + SYS_LDEXP = 0x01E + SYS_LINK = 0x1A5 + SYS_LOG10 = 0x01C + SYS_LSEEK = 0x1A6 + SYS_LSTAT = 0x1A7 + SYS_MKDIR = 0x1A8 + SYS_MKFIFO = 0x1A9 + SYS_MKNOD = 0x1AA + SYS_MODF = 0x01B + SYS_MOUNT = 0x1AB + SYS_OPEN = 0x1AC + SYS_OPENDIR = 0x1AD + SYS_PATHCONF = 0x1AE + SYS_PAUSE = 0x1AF + SYS_PIPE = 0x1B0 + SYS_PTHREAD_ATTR_DESTROY = 0x1E7 + SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB + SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 + SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED + SYS_PTHREAD_ATTR_INIT = 0x1E6 + SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA + SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 + SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC + SYS_PTHREAD_CANCEL = 0x1EE + SYS_PTHREAD_CLEANUP_POP = 0x1F0 + SYS_PTHREAD_CLEANUP_PUSH = 0x1EF + SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 + SYS_PTHREAD_CONDATTR_INIT = 0x1F1 + SYS_PTHREAD_COND_BROADCAST = 0x1F6 + SYS_PTHREAD_COND_DESTROY = 0x1F4 + SYS_PTHREAD_COND_INIT = 0x1F3 + SYS_PTHREAD_COND_SIGNAL = 0x1F5 + SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 + SYS_PTHREAD_COND_WAIT = 0x1F7 + SYS_PTHREAD_CREATE = 0x1F9 + SYS_PTHREAD_DETACH = 0x1FA + SYS_PTHREAD_EQUAL = 0x1FB + SYS_PTHREAD_EXIT = 0x1E4 + SYS_PTHREAD_GETSPECIFIC = 0x1FC + SYS_PTHREAD_JOIN = 0x1FD + SYS_PTHREAD_KEY_CREATE = 0x1FE + SYS_PTHREAD_KILL = 0x1E5 + SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF + SYS_READ = 0x1B2 + SYS_READDIR = 0x1B3 + SYS_READLINK = 0x1B4 + SYS_REWINDDIR = 0x1B5 + SYS_RMDIR = 0x1B6 + SYS_SETEGID = 0x1B7 + SYS_SETEUID = 0x1B8 + SYS_SETGID = 0x1B9 + SYS_SETPGID = 0x1BA + SYS_SETSID = 0x1BB + SYS_SETUID = 0x1BC + SYS_SIGACTION = 0x1BD + SYS_SIGADDSET = 0x1BE + SYS_SIGDELSET = 0x1BF + SYS_SIGEMPTYSET = 0x1C0 + SYS_SIGFILLSET = 0x1C1 + SYS_SIGISMEMBER = 0x1C2 + SYS_SIGLONGJMP = 0x1C3 + SYS_SIGPENDING = 0x1C4 + SYS_SIGPROCMASK = 0x1C5 + SYS_SIGSETJMP = 0x1C6 + SYS_SIGSUSPEND = 0x1C7 + SYS_SIGWAIT = 0x1E3 + SYS_SLEEP = 0x1C8 + SYS_STAT = 0x1C9 + SYS_SYMLINK = 0x1CB + SYS_SYSCONF = 0x1CC + SYS_TCDRAIN = 0x1CD + SYS_TCFLOW = 0x1CE + SYS_TCFLUSH = 0x1CF + SYS_TCGETATTR = 0x1D0 + SYS_TCGETPGRP = 0x1D1 + SYS_TCSENDBREAK = 0x1D2 + SYS_TCSETATTR = 0x1D3 + SYS_TCSETPGRP = 0x1D4 + SYS_TIMES = 0x1D5 + SYS_TTYNAME = 0x1D6 + SYS_TZSET = 0x1D7 + SYS_UMASK = 0x1D8 + SYS_UMOUNT = 0x1D9 + SYS_UNAME = 0x1DA + SYS_UNLINK = 0x1DB + SYS_UTIME = 0x1DC + SYS_WAIT = 0x1DD + SYS_WAITPID = 0x1DE + SYS_WRITE = 0x1DF + SYS_W_GETPSENT = 0x1B1 + SYS_W_IOCTL = 0x1A2 + SYS_W_STATFS = 0x1CA + SYS_A64L = 0x2EF + SYS_BCMP = 0x2B9 + SYS_BCOPY = 0x2BA + SYS_BZERO = 0x2BB + SYS_CATCLOSE = 0x2B6 + SYS_CATGETS = 0x2B7 + SYS_CATOPEN = 0x2B8 + SYS_CRYPT = 0x2AC + SYS_DBM_CLEARERR = 0x2F7 + SYS_DBM_CLOSE = 0x2F8 + SYS_DBM_DELETE = 0x2F9 + SYS_DBM_ERROR = 0x2FA + SYS_DBM_FETCH = 0x2FB + SYS_DBM_FIRSTKEY = 0x2FC + SYS_DBM_NEXTKEY = 0x2FD + SYS_DBM_OPEN = 0x2FE + SYS_DBM_STORE = 0x2FF + SYS_DRAND48 = 0x2B2 + SYS_ENCRYPT = 0x2AD + SYS_ENDUTXENT = 0x2E1 + SYS_ERAND48 = 0x2B3 + SYS_ERF = 0x02C + SYS_ERFC = 0x02D + SYS_FCHDIR = 0x2D9 + SYS_FFS = 0x2BC + SYS_FMTMSG = 0x2E5 + SYS_FSTATVFS = 0x2B4 + SYS_FTIME = 0x2F5 + SYS_GAMMA = 0x02E + SYS_GETDATE = 0x2A6 + SYS_GETPAGESIZE = 0x2D8 + SYS_GETTIMEOFDAY = 0x2F6 + SYS_GETUTXENT = 0x2E0 + SYS_GETUTXID = 0x2E2 + SYS_GETUTXLINE = 0x2E3 + SYS_HCREATE = 0x2C6 + SYS_HDESTROY = 0x2C7 + SYS_HSEARCH = 0x2C8 + SYS_HYPOT = 0x02B + SYS_INDEX = 0x2BD + SYS_INITSTATE = 0x2C2 + SYS_INSQUE = 0x2CF + SYS_ISASCII = 0x2ED + SYS_JRAND48 = 0x2E6 + SYS_L64A = 0x2F0 + SYS_LCONG48 = 0x2EA + SYS_LFIND = 0x2C9 + SYS_LRAND48 = 0x2E7 + SYS_LSEARCH = 0x2CA + SYS_MEMCCPY = 0x2D4 + SYS_MRAND48 = 0x2E8 + SYS_NRAND48 = 0x2E9 + SYS_PCLOSE = 0x2D2 + SYS_POPEN = 0x2D1 + SYS_PUTUTXLINE = 0x2E4 + SYS_RANDOM = 0x2C4 + SYS_REMQUE = 0x2D0 + SYS_RINDEX = 0x2BE + SYS_SEED48 = 0x2EC + SYS_SETKEY = 0x2AE + SYS_SETSTATE = 0x2C3 + SYS_SETUTXENT = 0x2DF + SYS_SRAND48 = 0x2EB + SYS_SRANDOM = 0x2C5 + SYS_STATVFS = 0x2B5 + SYS_STRCASECMP = 0x2BF + SYS_STRDUP = 0x2C0 + SYS_STRNCASECMP = 0x2C1 + SYS_SWAB = 0x2D3 + SYS_TDELETE = 0x2CB + SYS_TFIND = 0x2CC + SYS_TOASCII = 0x2EE + SYS_TSEARCH = 0x2CD + SYS_TWALK = 0x2CE + SYS_UALARM = 0x2F1 + SYS_USLEEP = 0x2F2 + SYS_WAIT3 = 0x2A7 + SYS_WAITID = 0x2A8 + SYS_Y1 = 0x02A + SYS___ATOE = 0x2DB + SYS___ATOE_L = 0x2DC + SYS___CATTRM = 0x2A9 + SYS___CNVBLK = 0x2AF + SYS___CRYTRM = 0x2B0 + SYS___DLGHT = 0x2A1 + SYS___ECRTRM = 0x2B1 + SYS___ETOA = 0x2DD + SYS___ETOA_L = 0x2DE + SYS___GDTRM = 0x2AA + SYS___OCLCK = 0x2DA + SYS___OPARGF = 0x2A2 + SYS___OPERRF = 0x2A5 + SYS___OPINDF = 0x2A4 + SYS___OPOPTF = 0x2A3 + SYS___RNDTRM = 0x2AB + SYS___SRCTRM = 0x2F4 + SYS___TZONE = 0x2A0 + SYS___UTXTRM = 0x2F3 + SYS_ASIN = 0x03E + SYS_ISXDIGIT = 0x03B + SYS_SETLOCAL = 0x03A + SYS_SETLOCALE = 0x03A + SYS_SIN = 0x03F + SYS_TOLOWER = 0x03C + SYS_TOUPPER = 0x03D + SYS_ACCEPT_AND_RECV = 0x4F7 + SYS_ATOL = 0x04E + SYS_CHECKSCH = 0x4BC + SYS_CHECKSCHENV = 0x4BC + SYS_CLEARERR = 0x04C + SYS_CONNECTS = 0x4B5 + SYS_CONNECTSERVER = 0x4B5 + SYS_CONNECTW = 0x4B4 + SYS_CONNECTWORKMGR = 0x4B4 + SYS_CONTINUE = 0x4B3 + SYS_CONTINUEWORKUNIT = 0x4B3 + SYS_COPYSIGN = 0x4C2 + SYS_CREATEWO = 0x4B2 + SYS_CREATEWORKUNIT = 0x4B2 + SYS_DELETEWO = 0x4B9 + SYS_DELETEWORKUNIT = 0x4B9 + SYS_DISCONNE = 0x4B6 + SYS_DISCONNECTSERVER = 0x4B6 + SYS_FEOF = 0x04D + SYS_FERROR = 0x04A + SYS_FINITE = 0x4C8 + SYS_GAMMA_R = 0x4E2 + SYS_JOINWORK = 0x4B7 + SYS_JOINWORKUNIT = 0x4B7 + SYS_LEAVEWOR = 0x4B8 + SYS_LEAVEWORKUNIT = 0x4B8 + SYS_LGAMMA_R = 0x4EB + SYS_MATHERR = 0x4D0 + SYS_PERROR = 0x04F + SYS_QUERYMET = 0x4BA + SYS_QUERYMETRICS = 0x4BA + SYS_QUERYSCH = 0x4BB + SYS_QUERYSCHENV = 0x4BB + SYS_REWIND = 0x04B + SYS_SCALBN = 0x4D4 + SYS_SIGNIFIC = 0x4D5 + SYS_SIGNIFICAND = 0x4D5 + SYS___ACOSH_B = 0x4DA + SYS___ACOS_B = 0x4D9 + SYS___ASINH_B = 0x4BE + SYS___ASIN_B = 0x4DB + SYS___ATAN2_B = 0x4DC + SYS___ATANH_B = 0x4DD + SYS___ATAN_B = 0x4BF + SYS___CBRT_B = 0x4C0 + SYS___CEIL_B = 0x4C1 + SYS___COSH_B = 0x4DE + SYS___COS_B = 0x4C3 + SYS___DGHT = 0x4A8 + SYS___ENVN = 0x4B0 + SYS___ERFC_B = 0x4C5 + SYS___ERF_B = 0x4C4 + SYS___EXPM1_B = 0x4C6 + SYS___EXP_B = 0x4DF + SYS___FABS_B = 0x4C7 + SYS___FLOOR_B = 0x4C9 + SYS___FMOD_B = 0x4E0 + SYS___FP_SETMODE = 0x4F8 + SYS___FREXP_B = 0x4CA + SYS___GAMMA_B = 0x4E1 + SYS___GDRR = 0x4A1 + SYS___HRRNO = 0x4A2 + SYS___HYPOT_B = 0x4E3 + SYS___ILOGB_B = 0x4CB + SYS___ISNAN_B = 0x4CC + SYS___J0_B = 0x4E4 + SYS___J1_B = 0x4E6 + SYS___JN_B = 0x4E8 + SYS___LDEXP_B = 0x4CD + SYS___LGAMMA_B = 0x4EA + SYS___LOG10_B = 0x4ED + SYS___LOG1P_B = 0x4CE + SYS___LOGB_B = 0x4CF + SYS___LOGIN = 0x4F5 + SYS___LOG_B = 0x4EC + SYS___MLOCKALL = 0x4B1 + SYS___MODF_B = 0x4D1 + SYS___NEXTAFTER_B = 0x4D2 + SYS___OPENDIR2 = 0x4F3 + SYS___OPEN_STAT = 0x4F6 + SYS___OPND = 0x4A5 + SYS___OPPT = 0x4A6 + SYS___OPRG = 0x4A3 + SYS___OPRR = 0x4A4 + SYS___PID_AFFINITY = 0x4BD + SYS___POW_B = 0x4EE + SYS___READDIR2 = 0x4F4 + SYS___REMAINDER_B = 0x4EF + SYS___RINT_B = 0x4D3 + SYS___SCALB_B = 0x4F0 + SYS___SIGACTIONSET = 0x4FB + SYS___SIGGM = 0x4A7 + SYS___SINH_B = 0x4F1 + SYS___SIN_B = 0x4D6 + SYS___SQRT_B = 0x4F2 + SYS___TANH_B = 0x4D8 + SYS___TAN_B = 0x4D7 + SYS___TRRNO = 0x4AF + SYS___TZNE = 0x4A9 + SYS___TZZN = 0x4AA + SYS___UCREATE = 0x4FC + SYS___UFREE = 0x4FE + SYS___UHEAPREPORT = 0x4FF + SYS___UMALLOC = 0x4FD + SYS___Y0_B = 0x4E5 + SYS___Y1_B = 0x4E7 + SYS___YN_B = 0x4E9 + SYS_ABORT = 0x05C + SYS_ASCTIME_R = 0x5E0 + SYS_ATEXIT = 0x05D + SYS_CONNECTE = 0x5AE + SYS_CONNECTEXPORTIMPORT = 0x5AE + SYS_CTIME_R = 0x5E1 + SYS_DN_COMP = 0x5DF + SYS_DN_EXPAND = 0x5DD + SYS_DN_SKIPNAME = 0x5DE + SYS_EXIT = 0x05A + SYS_EXPORTWO = 0x5A1 + SYS_EXPORTWORKUNIT = 0x5A1 + SYS_EXTRACTW = 0x5A5 + SYS_EXTRACTWORKUNIT = 0x5A5 + SYS_FSEEKO = 0x5C9 + SYS_FTELLO = 0x5C8 + SYS_GETGRGID_R = 0x5E7 + SYS_GETGRNAM_R = 0x5E8 + SYS_GETLOGIN_R = 0x5E9 + SYS_GETPWNAM_R = 0x5EA + SYS_GETPWUID_R = 0x5EB + SYS_GMTIME_R = 0x5E2 + SYS_IMPORTWO = 0x5A3 + SYS_IMPORTWORKUNIT = 0x5A3 + SYS_INET_NTOP = 0x5D3 + SYS_INET_PTON = 0x5D4 + SYS_LLABS = 0x5CE + SYS_LLDIV = 0x5CB + SYS_LOCALTIME_R = 0x5E3 + SYS_PTHREAD_ATFORK = 0x5ED + SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB + SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE + SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 + SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF + SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC + SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 + SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA + SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 + SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 + SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 + SYS_PTHREAD_DETACH_U98 = 0x5FD + SYS_PTHREAD_GETCONCURRENCY = 0x5F4 + SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE + SYS_PTHREAD_KEY_DELETE = 0x5F5 + SYS_PTHREAD_SETCANCELSTATE = 0x5FF + SYS_PTHREAD_SETCONCURRENCY = 0x5F6 + SYS_PTHREAD_SIGMASK = 0x5F7 + SYS_QUERYENC = 0x5AD + SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD + SYS_RAISE = 0x05E + SYS_RAND_R = 0x5E4 + SYS_READDIR_R = 0x5E6 + SYS_REALLOC = 0x05B + SYS_RES_INIT = 0x5D8 + SYS_RES_MKQUERY = 0x5D7 + SYS_RES_QUERY = 0x5D9 + SYS_RES_QUERYDOMAIN = 0x5DC + SYS_RES_SEARCH = 0x5DA + SYS_RES_SEND = 0x5DB + SYS_SETJMP = 0x05F + SYS_SIGQUEUE = 0x5A9 + SYS_STRTOK_R = 0x5E5 + SYS_STRTOLL = 0x5B0 + SYS_STRTOULL = 0x5B1 + SYS_TTYNAME_R = 0x5EC + SYS_UNDOEXPO = 0x5A2 + SYS_UNDOEXPORTWORKUNIT = 0x5A2 + SYS_UNDOIMPO = 0x5A4 + SYS_UNDOIMPORTWORKUNIT = 0x5A4 + SYS_WCSTOLL = 0x5CC + SYS_WCSTOULL = 0x5CD + SYS___ABORT = 0x05C + SYS___CONSOLE2 = 0x5D2 + SYS___CPL = 0x5A6 + SYS___DISCARDDATA = 0x5F8 + SYS___DSA_PREV = 0x5B2 + SYS___EP_FIND = 0x5B3 + SYS___FP_SWAPMODE = 0x5AF + SYS___GETUSERID = 0x5AB + SYS___GET_CPUID = 0x5B9 + SYS___GET_SYSTEM_SETTINGS = 0x5BA + SYS___IPDOMAINNAME = 0x5AC + SYS___MAP_INIT = 0x5A7 + SYS___MAP_SERVICE = 0x5A8 + SYS___MOUNT = 0x5AA + SYS___MSGRCV_TIMED = 0x5B7 + SYS___RES = 0x5D6 + SYS___SEMOP_TIMED = 0x5B8 + SYS___SERVER_THREADS_QUERY = 0x5B4 + SYS_FPRINTF = 0x06D + SYS_FSCANF = 0x06A + SYS_PRINTF = 0x06F + SYS_SETBUF = 0x06B + SYS_SETVBUF = 0x06C + SYS_SSCANF = 0x06E + SYS___CATGETS_A = 0x6C0 + SYS___CHAUDIT_A = 0x6F4 + SYS___CHMOD_A = 0x6E8 + SYS___COLLATE_INIT_A = 0x6AC + SYS___CREAT_A = 0x6F6 + SYS___CTYPE_INIT_A = 0x6AF + SYS___DLLLOAD_A = 0x6DF + SYS___DLLQUERYFN_A = 0x6E0 + SYS___DLLQUERYVAR_A = 0x6E1 + SYS___E2A_L = 0x6E3 + SYS___EXECLE_A = 0x6A0 + SYS___EXECLP_A = 0x6A4 + SYS___EXECVE_A = 0x6C1 + SYS___EXECVP_A = 0x6C2 + SYS___EXECV_A = 0x6B1 + SYS___FPRINTF_A = 0x6FA + SYS___GETADDRINFO_A = 0x6BF + SYS___GETNAMEINFO_A = 0x6C4 + SYS___GET_WCTYPE_STD_A = 0x6AE + SYS___ICONV_OPEN_A = 0x6DE + SYS___IF_INDEXTONAME_A = 0x6DC + SYS___IF_NAMETOINDEX_A = 0x6DB + SYS___ISWCTYPE_A = 0x6B0 + SYS___IS_WCTYPE_STD_A = 0x6B2 + SYS___LOCALECONV_A = 0x6B8 + SYS___LOCALECONV_STD_A = 0x6B9 + SYS___LOCALE_INIT_A = 0x6B7 + SYS___LSTAT_A = 0x6EE + SYS___LSTAT_O_A = 0x6EF + SYS___MKDIR_A = 0x6E9 + SYS___MKFIFO_A = 0x6EC + SYS___MKNOD_A = 0x6F0 + SYS___MONETARY_INIT_A = 0x6BC + SYS___MOUNT_A = 0x6F1 + SYS___NL_CSINFO_A = 0x6D6 + SYS___NL_LANGINFO_A = 0x6BA + SYS___NL_LNAGINFO_STD_A = 0x6BB + SYS___NL_MONINFO_A = 0x6D7 + SYS___NL_NUMINFO_A = 0x6D8 + SYS___NL_RESPINFO_A = 0x6D9 + SYS___NL_TIMINFO_A = 0x6DA + SYS___NUMERIC_INIT_A = 0x6C6 + SYS___OPEN_A = 0x6F7 + SYS___PRINTF_A = 0x6DD + SYS___RESP_INIT_A = 0x6C7 + SYS___RPMATCH_A = 0x6C8 + SYS___RPMATCH_C_A = 0x6C9 + SYS___RPMATCH_STD_A = 0x6CA + SYS___SETLOCALE_A = 0x6F9 + SYS___SPAWNP_A = 0x6C5 + SYS___SPAWN_A = 0x6C3 + SYS___SPRINTF_A = 0x6FB + SYS___STAT_A = 0x6EA + SYS___STAT_O_A = 0x6EB + SYS___STRCOLL_STD_A = 0x6A1 + SYS___STRFMON_A = 0x6BD + SYS___STRFMON_STD_A = 0x6BE + SYS___STRFTIME_A = 0x6CC + SYS___STRFTIME_STD_A = 0x6CD + SYS___STRPTIME_A = 0x6CE + SYS___STRPTIME_STD_A = 0x6CF + SYS___STRXFRM_A = 0x6A2 + SYS___STRXFRM_C_A = 0x6A3 + SYS___STRXFRM_STD_A = 0x6A5 + SYS___SYNTAX_INIT_A = 0x6D4 + SYS___TIME_INIT_A = 0x6CB + SYS___TOD_INIT_A = 0x6D5 + SYS___TOWLOWER_A = 0x6B3 + SYS___TOWLOWER_STD_A = 0x6B4 + SYS___TOWUPPER_A = 0x6B5 + SYS___TOWUPPER_STD_A = 0x6B6 + SYS___UMOUNT_A = 0x6F2 + SYS___VFPRINTF_A = 0x6FC + SYS___VPRINTF_A = 0x6FD + SYS___VSPRINTF_A = 0x6FE + SYS___VSWPRINTF_A = 0x6FF + SYS___WCSCOLL_A = 0x6A6 + SYS___WCSCOLL_C_A = 0x6A7 + SYS___WCSCOLL_STD_A = 0x6A8 + SYS___WCSFTIME_A = 0x6D0 + SYS___WCSFTIME_STD_A = 0x6D1 + SYS___WCSXFRM_A = 0x6A9 + SYS___WCSXFRM_C_A = 0x6AA + SYS___WCSXFRM_STD_A = 0x6AB + SYS___WCTYPE_A = 0x6AD + SYS___W_GETMNTENT_A = 0x6F5 + SYS_____CCSIDTYPE_A = 0x6E6 + SYS_____CHATTR_A = 0x6E2 + SYS_____CSNAMETYPE_A = 0x6E7 + SYS_____OPEN_STAT_A = 0x6ED + SYS_____SPAWN2_A = 0x6D2 + SYS_____SPAWNP2_A = 0x6D3 + SYS_____TOCCSID_A = 0x6E4 + SYS_____TOCSNAME_A = 0x6E5 + SYS_ACL_FREE = 0x7FF + SYS_ACL_INIT = 0x7FE + SYS_FWIDE = 0x7DF + SYS_FWPRINTF = 0x7D1 + SYS_FWRITE = 0x07E + SYS_FWSCANF = 0x7D5 + SYS_GETCHAR = 0x07B + SYS_GETS = 0x07C + SYS_M_CREATE_LAYOUT = 0x7C9 + SYS_M_DESTROY_LAYOUT = 0x7CA + SYS_M_GETVALUES_LAYOUT = 0x7CB + SYS_M_SETVALUES_LAYOUT = 0x7CC + SYS_M_TRANSFORM_LAYOUT = 0x7CD + SYS_M_WTRANSFORM_LAYOUT = 0x7CE + SYS_PREAD = 0x7C7 + SYS_PUTC = 0x07D + SYS_PUTCHAR = 0x07A + SYS_PUTS = 0x07F + SYS_PWRITE = 0x7C8 + SYS_TOWCTRAN = 0x7D8 + SYS_TOWCTRANS = 0x7D8 + SYS_UNATEXIT = 0x7B5 + SYS_VFWPRINT = 0x7D3 + SYS_VFWPRINTF = 0x7D3 + SYS_VWPRINTF = 0x7D4 + SYS_WCTRANS = 0x7D7 + SYS_WPRINTF = 0x7D2 + SYS_WSCANF = 0x7D6 + SYS___ASCTIME_R_A = 0x7A1 + SYS___BASENAME_A = 0x7DC + SYS___BTOWC_A = 0x7E4 + SYS___CDUMP_A = 0x7B7 + SYS___CEE3DMP_A = 0x7B6 + SYS___CEILF_H = 0x7F4 + SYS___CEILL_H = 0x7F5 + SYS___CEIL_H = 0x7EA + SYS___CRYPT_A = 0x7BE + SYS___CSNAP_A = 0x7B8 + SYS___CTEST_A = 0x7B9 + SYS___CTIME_R_A = 0x7A2 + SYS___CTRACE_A = 0x7BA + SYS___DBM_OPEN_A = 0x7E6 + SYS___DIRNAME_A = 0x7DD + SYS___FABSF_H = 0x7FA + SYS___FABSL_H = 0x7FB + SYS___FABS_H = 0x7ED + SYS___FGETWC_A = 0x7AA + SYS___FGETWS_A = 0x7AD + SYS___FLOORF_H = 0x7F6 + SYS___FLOORL_H = 0x7F7 + SYS___FLOOR_H = 0x7EB + SYS___FPUTWC_A = 0x7A5 + SYS___FPUTWS_A = 0x7A8 + SYS___GETTIMEOFDAY_A = 0x7AE + SYS___GETWCHAR_A = 0x7AC + SYS___GETWC_A = 0x7AB + SYS___GLOB_A = 0x7DE + SYS___GMTIME_A = 0x7AF + SYS___GMTIME_R_A = 0x7B0 + SYS___INET_PTON_A = 0x7BC + SYS___J0_H = 0x7EE + SYS___J1_H = 0x7EF + SYS___JN_H = 0x7F0 + SYS___LOCALTIME_A = 0x7B1 + SYS___LOCALTIME_R_A = 0x7B2 + SYS___MALLOC24 = 0x7FC + SYS___MALLOC31 = 0x7FD + SYS___MKTIME_A = 0x7B3 + SYS___MODFF_H = 0x7F8 + SYS___MODFL_H = 0x7F9 + SYS___MODF_H = 0x7EC + SYS___OPENDIR_A = 0x7C2 + SYS___OSNAME = 0x7E0 + SYS___PUTWCHAR_A = 0x7A7 + SYS___PUTWC_A = 0x7A6 + SYS___READDIR_A = 0x7C3 + SYS___STRTOLL_A = 0x7A3 + SYS___STRTOULL_A = 0x7A4 + SYS___SYSLOG_A = 0x7BD + SYS___TZZNA = 0x7B4 + SYS___UNGETWC_A = 0x7A9 + SYS___UTIME_A = 0x7A0 + SYS___VFPRINTF2_A = 0x7E7 + SYS___VPRINTF2_A = 0x7E8 + SYS___VSPRINTF2_A = 0x7E9 + SYS___VSWPRNTF2_A = 0x7BB + SYS___WCSTOD_A = 0x7D9 + SYS___WCSTOL_A = 0x7DA + SYS___WCSTOUL_A = 0x7DB + SYS___WCTOB_A = 0x7E5 + SYS___Y0_H = 0x7F1 + SYS___Y1_H = 0x7F2 + SYS___YN_H = 0x7F3 + SYS_____OPENDIR2_A = 0x7BF + SYS_____OSNAME_A = 0x7E1 + SYS_____READDIR2_A = 0x7C0 + SYS_DLCLOSE = 0x8DF + SYS_DLERROR = 0x8E0 + SYS_DLOPEN = 0x8DD + SYS_DLSYM = 0x8DE + SYS_FLOCKFILE = 0x8D3 + SYS_FTRYLOCKFILE = 0x8D4 + SYS_FUNLOCKFILE = 0x8D5 + SYS_GETCHAR_UNLOCKED = 0x8D7 + SYS_GETC_UNLOCKED = 0x8D6 + SYS_PUTCHAR_UNLOCKED = 0x8D9 + SYS_PUTC_UNLOCKED = 0x8D8 + SYS_SNPRINTF = 0x8DA + SYS_VSNPRINTF = 0x8DB + SYS_WCSCSPN = 0x08B + SYS_WCSLEN = 0x08C + SYS_WCSNCAT = 0x08D + SYS_WCSNCMP = 0x08A + SYS_WCSNCPY = 0x08F + SYS_WCSSPN = 0x08E + SYS___ABSF_H = 0x8E7 + SYS___ABSL_H = 0x8E8 + SYS___ABS_H = 0x8E6 + SYS___ACOSF_H = 0x8EA + SYS___ACOSH_H = 0x8EC + SYS___ACOSL_H = 0x8EB + SYS___ACOS_H = 0x8E9 + SYS___ASINF_H = 0x8EE + SYS___ASINH_H = 0x8F0 + SYS___ASINL_H = 0x8EF + SYS___ASIN_H = 0x8ED + SYS___ATAN2F_H = 0x8F8 + SYS___ATAN2L_H = 0x8F9 + SYS___ATAN2_H = 0x8F7 + SYS___ATANF_H = 0x8F2 + SYS___ATANHF_H = 0x8F5 + SYS___ATANHL_H = 0x8F6 + SYS___ATANH_H = 0x8F4 + SYS___ATANL_H = 0x8F3 + SYS___ATAN_H = 0x8F1 + SYS___CBRT_H = 0x8FA + SYS___COPYSIGNF_H = 0x8FB + SYS___COPYSIGNL_H = 0x8FC + SYS___COSF_H = 0x8FE + SYS___COSL_H = 0x8FF + SYS___COS_H = 0x8FD + SYS___DLERROR_A = 0x8D2 + SYS___DLOPEN_A = 0x8D0 + SYS___DLSYM_A = 0x8D1 + SYS___GETUTXENT_A = 0x8C6 + SYS___GETUTXID_A = 0x8C7 + SYS___GETUTXLINE_A = 0x8C8 + SYS___ITOA = 0x8AA + SYS___ITOA_A = 0x8B0 + SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 + SYS___LE_MSG_ADD_INSERT = 0x8A6 + SYS___LE_MSG_GET = 0x8A7 + SYS___LE_MSG_GET_AND_WRITE = 0x8A8 + SYS___LE_MSG_WRITE = 0x8A9 + SYS___LLTOA = 0x8AE + SYS___LLTOA_A = 0x8B4 + SYS___LTOA = 0x8AC + SYS___LTOA_A = 0x8B2 + SYS___PUTCHAR_UNLOCKED_A = 0x8CC + SYS___PUTC_UNLOCKED_A = 0x8CB + SYS___PUTUTXLINE_A = 0x8C9 + SYS___RESET_EXCEPTION_HANDLER = 0x8E3 + SYS___REXEC_A = 0x8C4 + SYS___REXEC_AF_A = 0x8C5 + SYS___SET_EXCEPTION_HANDLER = 0x8E2 + SYS___SNPRINTF_A = 0x8CD + SYS___SUPERKILL = 0x8A4 + SYS___TCGETATTR_A = 0x8A1 + SYS___TCSETATTR_A = 0x8A2 + SYS___ULLTOA = 0x8AF + SYS___ULLTOA_A = 0x8B5 + SYS___ULTOA = 0x8AD + SYS___ULTOA_A = 0x8B3 + SYS___UTOA = 0x8AB + SYS___UTOA_A = 0x8B1 + SYS___VHM_EVENT = 0x8E4 + SYS___VSNPRINTF_A = 0x8CE + SYS_____GETENV_A = 0x8C3 + SYS_____UTMPXNAME_A = 0x8CA + SYS_CACOSH = 0x9A0 + SYS_CACOSHF = 0x9A3 + SYS_CACOSHL = 0x9A6 + SYS_CARG = 0x9A9 + SYS_CARGF = 0x9AC + SYS_CARGL = 0x9AF + SYS_CASIN = 0x9B2 + SYS_CASINF = 0x9B5 + SYS_CASINH = 0x9BB + SYS_CASINHF = 0x9BE + SYS_CASINHL = 0x9C1 + SYS_CASINL = 0x9B8 + SYS_CATAN = 0x9C4 + SYS_CATANF = 0x9C7 + SYS_CATANH = 0x9CD + SYS_CATANHF = 0x9D0 + SYS_CATANHL = 0x9D3 + SYS_CATANL = 0x9CA + SYS_CCOS = 0x9D6 + SYS_CCOSF = 0x9D9 + SYS_CCOSH = 0x9DF + SYS_CCOSHF = 0x9E2 + SYS_CCOSHL = 0x9E5 + SYS_CCOSL = 0x9DC + SYS_CEXP = 0x9E8 + SYS_CEXPF = 0x9EB + SYS_CEXPL = 0x9EE + SYS_CIMAG = 0x9F1 + SYS_CIMAGF = 0x9F4 + SYS_CIMAGL = 0x9F7 + SYS_CLOGF = 0x9FD + SYS_MEMCHR = 0x09B + SYS_MEMCMP = 0x09A + SYS_STRCOLL = 0x09C + SYS_STRNCMP = 0x09D + SYS_STRRCHR = 0x09F + SYS_STRXFRM = 0x09E + SYS___CACOSHF_B = 0x9A4 + SYS___CACOSHF_H = 0x9A5 + SYS___CACOSHL_B = 0x9A7 + SYS___CACOSHL_H = 0x9A8 + SYS___CACOSH_B = 0x9A1 + SYS___CACOSH_H = 0x9A2 + SYS___CARGF_B = 0x9AD + SYS___CARGF_H = 0x9AE + SYS___CARGL_B = 0x9B0 + SYS___CARGL_H = 0x9B1 + SYS___CARG_B = 0x9AA + SYS___CARG_H = 0x9AB + SYS___CASINF_B = 0x9B6 + SYS___CASINF_H = 0x9B7 + SYS___CASINHF_B = 0x9BF + SYS___CASINHF_H = 0x9C0 + SYS___CASINHL_B = 0x9C2 + SYS___CASINHL_H = 0x9C3 + SYS___CASINH_B = 0x9BC + SYS___CASINH_H = 0x9BD + SYS___CASINL_B = 0x9B9 + SYS___CASINL_H = 0x9BA + SYS___CASIN_B = 0x9B3 + SYS___CASIN_H = 0x9B4 + SYS___CATANF_B = 0x9C8 + SYS___CATANF_H = 0x9C9 + SYS___CATANHF_B = 0x9D1 + SYS___CATANHF_H = 0x9D2 + SYS___CATANHL_B = 0x9D4 + SYS___CATANHL_H = 0x9D5 + SYS___CATANH_B = 0x9CE + SYS___CATANH_H = 0x9CF + SYS___CATANL_B = 0x9CB + SYS___CATANL_H = 0x9CC + SYS___CATAN_B = 0x9C5 + SYS___CATAN_H = 0x9C6 + SYS___CCOSF_B = 0x9DA + SYS___CCOSF_H = 0x9DB + SYS___CCOSHF_B = 0x9E3 + SYS___CCOSHF_H = 0x9E4 + SYS___CCOSHL_B = 0x9E6 + SYS___CCOSHL_H = 0x9E7 + SYS___CCOSH_B = 0x9E0 + SYS___CCOSH_H = 0x9E1 + SYS___CCOSL_B = 0x9DD + SYS___CCOSL_H = 0x9DE + SYS___CCOS_B = 0x9D7 + SYS___CCOS_H = 0x9D8 + SYS___CEXPF_B = 0x9EC + SYS___CEXPF_H = 0x9ED + SYS___CEXPL_B = 0x9EF + SYS___CEXPL_H = 0x9F0 + SYS___CEXP_B = 0x9E9 + SYS___CEXP_H = 0x9EA + SYS___CIMAGF_B = 0x9F5 + SYS___CIMAGF_H = 0x9F6 + SYS___CIMAGL_B = 0x9F8 + SYS___CIMAGL_H = 0x9F9 + SYS___CIMAG_B = 0x9F2 + SYS___CIMAG_H = 0x9F3 + SYS___CLOG = 0x9FA + SYS___CLOGF_B = 0x9FE + SYS___CLOGF_H = 0x9FF + SYS___CLOG_B = 0x9FB + SYS___CLOG_H = 0x9FC + SYS_ISWCTYPE = 0x10C + SYS_ISWXDIGI = 0x10A + SYS_ISWXDIGIT = 0x10A + SYS_MBSINIT = 0x10F + SYS_TOWLOWER = 0x10D + SYS_TOWUPPER = 0x10E + SYS_WCTYPE = 0x10B + SYS_WCSSTR = 0x11B + SYS___RPMTCH = 0x11A + SYS_WCSTOD = 0x12E + SYS_WCSTOK = 0x12C + SYS_WCSTOL = 0x12D + SYS_WCSTOUL = 0x12F + SYS_FGETWC = 0x13C + SYS_FGETWS = 0x13D + SYS_FPUTWC = 0x13E + SYS_FPUTWS = 0x13F + SYS_REGERROR = 0x13B + SYS_REGFREE = 0x13A + SYS_COLLEQUIV = 0x14F + SYS_COLLTOSTR = 0x14E + SYS_ISMCCOLLEL = 0x14C + SYS_STRTOCOLL = 0x14D + SYS_DLLFREE = 0x16F + SYS_DLLQUERYFN = 0x16D + SYS_DLLQUERYVAR = 0x16E + SYS_GETMCCOLL = 0x16A + SYS_GETWMCCOLL = 0x16B + SYS___ERR2AD = 0x16C + SYS_CFSETOSPEED = 0x17A + SYS_CHDIR = 0x17B + SYS_CHMOD = 0x17C + SYS_CHOWN = 0x17D + SYS_CLOSE = 0x17E + SYS_CLOSEDIR = 0x17F + SYS_LOG = 0x017 + SYS_COSH = 0x018 + SYS_FCHMOD = 0x18A + SYS_FCHOWN = 0x18B + SYS_FCNTL = 0x18C + SYS_FILENO = 0x18D + SYS_FORK = 0x18E + SYS_FPATHCONF = 0x18F + SYS_GETLOGIN = 0x19A + SYS_GETPGRP = 0x19C + SYS_GETPID = 0x19D + SYS_GETPPID = 0x19E + SYS_GETPWNAM = 0x19F + SYS_TANH = 0x019 + SYS_W_GETMNTENT = 0x19B + SYS_POW = 0x020 + SYS_PTHREAD_SELF = 0x20A + SYS_PTHREAD_SETINTR = 0x20B + SYS_PTHREAD_SETINTRTYPE = 0x20C + SYS_PTHREAD_SETSPECIFIC = 0x20D + SYS_PTHREAD_TESTINTR = 0x20E + SYS_PTHREAD_YIELD = 0x20F + SYS_SQRT = 0x021 + SYS_FLOOR = 0x022 + SYS_J1 = 0x023 + SYS_WCSPBRK = 0x23F + SYS_BSEARCH = 0x24C + SYS_FABS = 0x024 + SYS_GETENV = 0x24A + SYS_LDIV = 0x24D + SYS_SYSTEM = 0x24B + SYS_FMOD = 0x025 + SYS___RETHROW = 0x25F + SYS___THROW = 0x25E + SYS_J0 = 0x026 + SYS_PUTENV = 0x26A + SYS___GETENV = 0x26F + SYS_SEMCTL = 0x27A + SYS_SEMGET = 0x27B + SYS_SEMOP = 0x27C + SYS_SHMAT = 0x27D + SYS_SHMCTL = 0x27E + SYS_SHMDT = 0x27F + SYS_YN = 0x027 + SYS_JN = 0x028 + SYS_SIGALTSTACK = 0x28A + SYS_SIGHOLD = 0x28B + SYS_SIGIGNORE = 0x28C + SYS_SIGINTERRUPT = 0x28D + SYS_SIGPAUSE = 0x28E + SYS_SIGRELSE = 0x28F + SYS_GETOPT = 0x29A + SYS_GETSUBOPT = 0x29D + SYS_LCHOWN = 0x29B + SYS_SETPGRP = 0x29E + SYS_TRUNCATE = 0x29C + SYS_Y0 = 0x029 + SYS___GDERR = 0x29F + SYS_ISALPHA = 0x030 + SYS_VFORK = 0x30F + SYS__LONGJMP = 0x30D + SYS__SETJMP = 0x30E + SYS_GLOB = 0x31A + SYS_GLOBFREE = 0x31B + SYS_ISALNUM = 0x031 + SYS_PUTW = 0x31C + SYS_SEEKDIR = 0x31D + SYS_TELLDIR = 0x31E + SYS_TEMPNAM = 0x31F + SYS_GETTIMEOFDAY_R = 0x32E + SYS_ISLOWER = 0x032 + SYS_LGAMMA = 0x32C + SYS_REMAINDER = 0x32A + SYS_SCALB = 0x32B + SYS_SYNC = 0x32F + SYS_TTYSLOT = 0x32D + SYS_ENDPROTOENT = 0x33A + SYS_ENDSERVENT = 0x33B + SYS_GETHOSTBYADDR = 0x33D + SYS_GETHOSTBYADDR_R = 0x33C + SYS_GETHOSTBYNAME = 0x33F + SYS_GETHOSTBYNAME_R = 0x33E + SYS_ISCNTRL = 0x033 + SYS_GETSERVBYNAME = 0x34A + SYS_GETSERVBYPORT = 0x34B + SYS_GETSERVENT = 0x34C + SYS_GETSOCKNAME = 0x34D + SYS_GETSOCKOPT = 0x34E + SYS_INET_ADDR = 0x34F + SYS_ISDIGIT = 0x034 + SYS_ISGRAPH = 0x035 + SYS_SELECT = 0x35B + SYS_SELECTEX = 0x35C + SYS_SEND = 0x35D + SYS_SENDTO = 0x35F + SYS_CHROOT = 0x36A + SYS_ISNAN = 0x36D + SYS_ISUPPER = 0x036 + SYS_ULIMIT = 0x36C + SYS_UTIMES = 0x36E + SYS_W_STATVFS = 0x36B + SYS___H_ERRNO = 0x36F + SYS_GRANTPT = 0x37A + SYS_ISPRINT = 0x037 + SYS_TCGETSID = 0x37C + SYS_UNLOCKPT = 0x37B + SYS___TCGETCP = 0x37D + SYS___TCSETCP = 0x37E + SYS___TCSETTABLES = 0x37F + SYS_ISPUNCT = 0x038 + SYS_NLIST = 0x38C + SYS___IPDBCS = 0x38D + SYS___IPDSPX = 0x38E + SYS___IPMSGC = 0x38F + SYS___STHOSTENT = 0x38B + SYS___STSERVENT = 0x38A + SYS_ISSPACE = 0x039 + SYS_COS = 0x040 + SYS_T_ALLOC = 0x40A + SYS_T_BIND = 0x40B + SYS_T_CLOSE = 0x40C + SYS_T_CONNECT = 0x40D + SYS_T_ERROR = 0x40E + SYS_T_FREE = 0x40F + SYS_TAN = 0x041 + SYS_T_RCVREL = 0x41A + SYS_T_RCVUDATA = 0x41B + SYS_T_RCVUDERR = 0x41C + SYS_T_SND = 0x41D + SYS_T_SNDDIS = 0x41E + SYS_T_SNDREL = 0x41F + SYS_GETPMSG = 0x42A + SYS_ISASTREAM = 0x42B + SYS_PUTMSG = 0x42C + SYS_PUTPMSG = 0x42D + SYS_SINH = 0x042 + SYS___ISPOSIXON = 0x42E + SYS___OPENMVSREL = 0x42F + SYS_ACOS = 0x043 + SYS_ATAN = 0x044 + SYS_ATAN2 = 0x045 + SYS_FTELL = 0x046 + SYS_FGETPOS = 0x047 + SYS_SOCK_DEBUG = 0x47A + SYS_SOCK_DO_TESTSTOR = 0x47D + SYS_TAKESOCKET = 0x47E + SYS___SERVER_INIT = 0x47F + SYS_FSEEK = 0x048 + SYS___IPHOST = 0x48B + SYS___IPNODE = 0x48C + SYS___SERVER_CLASSIFY_CREATE = 0x48D + SYS___SERVER_CLASSIFY_DESTROY = 0x48E + SYS___SERVER_CLASSIFY_RESET = 0x48F + SYS___SMF_RECORD = 0x48A + SYS_FSETPOS = 0x049 + SYS___FNWSA = 0x49B + SYS___SPAWN2 = 0x49D + SYS___SPAWNP2 = 0x49E + SYS_ATOF = 0x050 + SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A + SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B + SYS_PTHREAD_RWLOCK_DESTROY = 0x50C + SYS_PTHREAD_RWLOCK_INIT = 0x50D + SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E + SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F + SYS_ATOI = 0x051 + SYS___FP_CLASS = 0x51D + SYS___FP_CLR_FLAG = 0x51A + SYS___FP_FINITE = 0x51E + SYS___FP_ISNAN = 0x51F + SYS___FP_RAISE_XCP = 0x51C + SYS___FP_READ_FLAG = 0x51B + SYS_RAND = 0x052 + SYS_SIGTIMEDWAIT = 0x52D + SYS_SIGWAITINFO = 0x52E + SYS___CHKBFP = 0x52F + SYS___FPC_RS = 0x52C + SYS___FPC_RW = 0x52A + SYS___FPC_SM = 0x52B + SYS_STRTOD = 0x053 + SYS_STRTOL = 0x054 + SYS_STRTOUL = 0x055 + SYS_MALLOC = 0x056 + SYS_SRAND = 0x057 + SYS_CALLOC = 0x058 + SYS_FREE = 0x059 + SYS___OSENV = 0x59F + SYS___W_PIOCTL = 0x59E + SYS_LONGJMP = 0x060 + SYS___FLOORF_B = 0x60A + SYS___FLOORL_B = 0x60B + SYS___FREXPF_B = 0x60C + SYS___FREXPL_B = 0x60D + SYS___LDEXPF_B = 0x60E + SYS___LDEXPL_B = 0x60F + SYS_SIGNAL = 0x061 + SYS___ATAN2F_B = 0x61A + SYS___ATAN2L_B = 0x61B + SYS___COSHF_B = 0x61C + SYS___COSHL_B = 0x61D + SYS___EXPF_B = 0x61E + SYS___EXPL_B = 0x61F + SYS_TMPNAM = 0x062 + SYS___ABSF_B = 0x62A + SYS___ABSL_B = 0x62C + SYS___ABS_B = 0x62B + SYS___FMODF_B = 0x62D + SYS___FMODL_B = 0x62E + SYS___MODFF_B = 0x62F + SYS_ATANL = 0x63A + SYS_CEILF = 0x63B + SYS_CEILL = 0x63C + SYS_COSF = 0x63D + SYS_COSHF = 0x63F + SYS_COSL = 0x63E + SYS_REMOVE = 0x063 + SYS_POWL = 0x64A + SYS_RENAME = 0x064 + SYS_SINF = 0x64B + SYS_SINHF = 0x64F + SYS_SINL = 0x64C + SYS_SQRTF = 0x64D + SYS_SQRTL = 0x64E + SYS_BTOWC = 0x65F + SYS_FREXPL = 0x65A + SYS_LDEXPF = 0x65B + SYS_LDEXPL = 0x65C + SYS_MODFF = 0x65D + SYS_MODFL = 0x65E + SYS_TMPFILE = 0x065 + SYS_FREOPEN = 0x066 + SYS___CHARMAP_INIT_A = 0x66E + SYS___GETHOSTBYADDR_R_A = 0x66C + SYS___GETHOSTBYNAME_A = 0x66A + SYS___GETHOSTBYNAME_R_A = 0x66D + SYS___MBLEN_A = 0x66F + SYS___RES_INIT_A = 0x66B + SYS_FCLOSE = 0x067 + SYS___GETGRGID_R_A = 0x67D + SYS___WCSTOMBS_A = 0x67A + SYS___WCSTOMBS_STD_A = 0x67B + SYS___WCSWIDTH_A = 0x67C + SYS___WCSWIDTH_ASIA = 0x67F + SYS___WCSWIDTH_STD_A = 0x67E + SYS_FFLUSH = 0x068 + SYS___GETLOGIN_R_A = 0x68E + SYS___GETPWNAM_R_A = 0x68C + SYS___GETPWUID_R_A = 0x68D + SYS___TTYNAME_R_A = 0x68F + SYS___WCWIDTH_ASIA = 0x68B + SYS___WCWIDTH_STD_A = 0x68A + SYS_FOPEN = 0x069 + SYS___REGEXEC_A = 0x69A + SYS___REGEXEC_STD_A = 0x69B + SYS___REGFREE_A = 0x69C + SYS___REGFREE_STD_A = 0x69D + SYS___STRCOLL_A = 0x69E + SYS___STRCOLL_C_A = 0x69F + SYS_SCANF = 0x070 + SYS___A64L_A = 0x70C + SYS___ECVT_A = 0x70D + SYS___FCVT_A = 0x70E + SYS___GCVT_A = 0x70F + SYS___STRTOUL_A = 0x70A + SYS_____AE_CORRESTBL_QUERY_A = 0x70B + SYS_SPRINTF = 0x071 + SYS___ACCESS_A = 0x71F + SYS___CATOPEN_A = 0x71E + SYS___GETOPT_A = 0x71D + SYS___REALPATH_A = 0x71A + SYS___SETENV_A = 0x71B + SYS___SYSTEM_A = 0x71C + SYS_FGETC = 0x072 + SYS___GAI_STRERROR_A = 0x72F + SYS___RMDIR_A = 0x72A + SYS___STATVFS_A = 0x72B + SYS___SYMLINK_A = 0x72C + SYS___TRUNCATE_A = 0x72D + SYS___UNLINK_A = 0x72E + SYS_VFPRINTF = 0x073 + SYS___ISSPACE_A = 0x73A + SYS___ISUPPER_A = 0x73B + SYS___ISWALNUM_A = 0x73F + SYS___ISXDIGIT_A = 0x73C + SYS___TOLOWER_A = 0x73D + SYS___TOUPPER_A = 0x73E + SYS_VPRINTF = 0x074 + SYS___CONFSTR_A = 0x74B + SYS___FDOPEN_A = 0x74E + SYS___FLDATA_A = 0x74F + SYS___FTOK_A = 0x74C + SYS___ISWXDIGIT_A = 0x74A + SYS___MKTEMP_A = 0x74D + SYS_VSPRINTF = 0x075 + SYS___GETGRGID_A = 0x75A + SYS___GETGRNAM_A = 0x75B + SYS___GETGROUPSBYNAME_A = 0x75C + SYS___GETHOSTENT_A = 0x75D + SYS___GETHOSTNAME_A = 0x75E + SYS___GETLOGIN_A = 0x75F + SYS_GETC = 0x076 + SYS___CREATEWORKUNIT_A = 0x76A + SYS___CTERMID_A = 0x76B + SYS___FMTMSG_A = 0x76C + SYS___INITGROUPS_A = 0x76D + SYS___MSGRCV_A = 0x76F + SYS_____LOGIN_A = 0x76E + SYS_FGETS = 0x077 + SYS___STRCASECMP_A = 0x77B + SYS___STRNCASECMP_A = 0x77C + SYS___TTYNAME_A = 0x77D + SYS___UNAME_A = 0x77E + SYS___UTIMES_A = 0x77F + SYS_____SERVER_PWU_A = 0x77A + SYS_FPUTC = 0x078 + SYS___CREAT_O_A = 0x78E + SYS___ENVNA = 0x78F + SYS___FREAD_A = 0x78A + SYS___FWRITE_A = 0x78B + SYS___ISASCII = 0x78D + SYS___OPEN_O_A = 0x78C + SYS_FPUTS = 0x079 + SYS___ASCTIME_A = 0x79C + SYS___CTIME_A = 0x79D + SYS___GETDATE_A = 0x79E + SYS___GETSERVBYPORT_A = 0x79A + SYS___GETSERVENT_A = 0x79B + SYS___TZSET_A = 0x79F + SYS_ACL_FROM_TEXT = 0x80C + SYS_ACL_SET_FD = 0x80A + SYS_ACL_SET_FILE = 0x80B + SYS_ACL_SORT = 0x80E + SYS_ACL_TO_TEXT = 0x80D + SYS_UNGETC = 0x080 + SYS___SHUTDOWN_REGISTRATION = 0x80F + SYS_FREAD = 0x081 + SYS_FREEADDRINFO = 0x81A + SYS_GAI_STRERROR = 0x81B + SYS_REXEC_AF = 0x81C + SYS___DYNALLOC_A = 0x81F + SYS___POE = 0x81D + SYS_WCSTOMBS = 0x082 + SYS___INET_ADDR_A = 0x82F + SYS___NLIST_A = 0x82A + SYS_____TCGETCP_A = 0x82B + SYS_____TCSETCP_A = 0x82C + SYS_____W_PIOCTL_A = 0x82E + SYS_MBTOWC = 0x083 + SYS___CABEND = 0x83D + SYS___LE_CIB_GET = 0x83E + SYS___RECVMSG_A = 0x83B + SYS___SENDMSG_A = 0x83A + SYS___SET_LAA_FOR_JIT = 0x83F + SYS_____LCHATTR_A = 0x83C + SYS_WCTOMB = 0x084 + SYS___CBRTL_B = 0x84A + SYS___COPYSIGNF_B = 0x84B + SYS___COPYSIGNL_B = 0x84C + SYS___COTANF_B = 0x84D + SYS___COTANL_B = 0x84F + SYS___COTAN_B = 0x84E + SYS_MBSTOWCS = 0x085 + SYS___LOG1PL_B = 0x85A + SYS___LOG2F_B = 0x85B + SYS___LOG2L_B = 0x85D + SYS___LOG2_B = 0x85C + SYS___REMAINDERF_B = 0x85E + SYS___REMAINDERL_B = 0x85F + SYS_ACOSHF = 0x86E + SYS_ACOSHL = 0x86F + SYS_WCSCPY = 0x086 + SYS___ERFCF_B = 0x86D + SYS___ERFF_B = 0x86C + SYS___LROUNDF_B = 0x86A + SYS___LROUND_B = 0x86B + SYS_COTANL = 0x87A + SYS_EXP2F = 0x87B + SYS_EXP2L = 0x87C + SYS_EXPM1F = 0x87D + SYS_EXPM1L = 0x87E + SYS_FDIMF = 0x87F + SYS_WCSCAT = 0x087 + SYS___COTANL = 0x87A + SYS_REMAINDERF = 0x88A + SYS_REMAINDERL = 0x88B + SYS_REMAINDF = 0x88A + SYS_REMAINDL = 0x88B + SYS_REMQUO = 0x88D + SYS_REMQUOF = 0x88C + SYS_REMQUOL = 0x88E + SYS_TGAMMAF = 0x88F + SYS_WCSCHR = 0x088 + SYS_ERFCF = 0x89B + SYS_ERFCL = 0x89C + SYS_ERFL = 0x89A + SYS_EXP2 = 0x89E + SYS_WCSCMP = 0x089 + SYS___EXP2_B = 0x89D + SYS___FAR_JUMP = 0x89F + SYS_ABS = 0x090 + SYS___ERFCL_H = 0x90A + SYS___EXPF_H = 0x90C + SYS___EXPL_H = 0x90D + SYS___EXPM1_H = 0x90E + SYS___EXP_H = 0x90B + SYS___FDIM_H = 0x90F + SYS_DIV = 0x091 + SYS___LOG2F_H = 0x91F + SYS___LOG2_H = 0x91E + SYS___LOGB_H = 0x91D + SYS___LOGF_H = 0x91B + SYS___LOGL_H = 0x91C + SYS___LOG_H = 0x91A + SYS_LABS = 0x092 + SYS___POWL_H = 0x92A + SYS___REMAINDER_H = 0x92B + SYS___RINT_H = 0x92C + SYS___SCALB_H = 0x92D + SYS___SINF_H = 0x92F + SYS___SIN_H = 0x92E + SYS_STRNCPY = 0x093 + SYS___TANHF_H = 0x93B + SYS___TANHL_H = 0x93C + SYS___TANH_H = 0x93A + SYS___TGAMMAF_H = 0x93E + SYS___TGAMMA_H = 0x93D + SYS___TRUNC_H = 0x93F + SYS_MEMCPY = 0x094 + SYS_VFWSCANF = 0x94A + SYS_VSWSCANF = 0x94E + SYS_VWSCANF = 0x94C + SYS_INET6_RTH_ADD = 0x95D + SYS_INET6_RTH_INIT = 0x95C + SYS_INET6_RTH_REVERSE = 0x95E + SYS_INET6_RTH_SEGMENTS = 0x95F + SYS_INET6_RTH_SPACE = 0x95B + SYS_MEMMOVE = 0x095 + SYS_WCSTOLD = 0x95A + SYS_STRCPY = 0x096 + SYS_STRCMP = 0x097 + SYS_CABS = 0x98E + SYS_STRCAT = 0x098 + SYS___CABS_B = 0x98F + SYS___POW_II = 0x98A + SYS___POW_II_B = 0x98B + SYS___POW_II_H = 0x98C + SYS_CACOSF = 0x99A + SYS_CACOSL = 0x99D + SYS_STRNCAT = 0x099 + SYS___CACOSF_B = 0x99B + SYS___CACOSF_H = 0x99C + SYS___CACOSL_B = 0x99E + SYS___CACOSL_H = 0x99F + SYS_ISWALPHA = 0x100 + SYS_ISWBLANK = 0x101 + SYS___ISWBLK = 0x101 + SYS_ISWCNTRL = 0x102 + SYS_ISWDIGIT = 0x103 + SYS_ISWGRAPH = 0x104 + SYS_ISWLOWER = 0x105 + SYS_ISWPRINT = 0x106 + SYS_ISWPUNCT = 0x107 + SYS_ISWSPACE = 0x108 + SYS_ISWUPPER = 0x109 + SYS_WCTOB = 0x110 + SYS_MBRLEN = 0x111 + SYS_MBRTOWC = 0x112 + SYS_MBSRTOWC = 0x113 + SYS_MBSRTOWCS = 0x113 + SYS_WCRTOMB = 0x114 + SYS_WCSRTOMB = 0x115 + SYS_WCSRTOMBS = 0x115 + SYS___CSID = 0x116 + SYS___WCSID = 0x117 + SYS_STRPTIME = 0x118 + SYS___STRPTM = 0x118 + SYS_STRFMON = 0x119 + SYS_WCSCOLL = 0x130 + SYS_WCSXFRM = 0x131 + SYS_WCSWIDTH = 0x132 + SYS_WCWIDTH = 0x133 + SYS_WCSFTIME = 0x134 + SYS_SWPRINTF = 0x135 + SYS_VSWPRINT = 0x136 + SYS_VSWPRINTF = 0x136 + SYS_SWSCANF = 0x137 + SYS_REGCOMP = 0x138 + SYS_REGEXEC = 0x139 + SYS_GETWC = 0x140 + SYS_GETWCHAR = 0x141 + SYS_PUTWC = 0x142 + SYS_PUTWCHAR = 0x143 + SYS_UNGETWC = 0x144 + SYS_ICONV_OPEN = 0x145 + SYS_ICONV = 0x146 + SYS_ICONV_CLOSE = 0x147 + SYS_COLLRANGE = 0x150 + SYS_CCLASS = 0x151 + SYS_COLLORDER = 0x152 + SYS___DEMANGLE = 0x154 + SYS_FDOPEN = 0x155 + SYS___ERRNO = 0x156 + SYS___ERRNO2 = 0x157 + SYS___TERROR = 0x158 + SYS_MAXCOLL = 0x169 + SYS_DLLLOAD = 0x170 + SYS__EXIT = 0x174 + SYS_ACCESS = 0x175 + SYS_ALARM = 0x176 + SYS_CFGETISPEED = 0x177 + SYS_CFGETOSPEED = 0x178 + SYS_CFSETISPEED = 0x179 + SYS_CREAT = 0x180 + SYS_CTERMID = 0x181 + SYS_DUP = 0x182 + SYS_DUP2 = 0x183 + SYS_EXECL = 0x184 + SYS_EXECLE = 0x185 + SYS_EXECLP = 0x186 + SYS_EXECV = 0x187 + SYS_EXECVE = 0x188 + SYS_EXECVP = 0x189 + SYS_FSTAT = 0x190 + SYS_FSYNC = 0x191 + SYS_FTRUNCATE = 0x192 + SYS_GETCWD = 0x193 + SYS_GETEGID = 0x194 + SYS_GETEUID = 0x195 + SYS_GETGID = 0x196 + SYS_GETGRGID = 0x197 + SYS_GETGRNAM = 0x198 + SYS_GETGROUPS = 0x199 + SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 + SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 + SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 + SYS_PTHREAD_MUTEX_INIT = 0x203 + SYS_PTHREAD_MUTEX_DESTROY = 0x204 + SYS_PTHREAD_MUTEX_LOCK = 0x205 + SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 + SYS_PTHREAD_MUTEX_UNLOCK = 0x207 + SYS_PTHREAD_ONCE = 0x209 + SYS_TW_OPEN = 0x210 + SYS_TW_FCNTL = 0x211 + SYS_PTHREAD_JOIN_D4_NP = 0x212 + SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 + SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 + SYS_EXTLINK_NP = 0x215 + SYS___PASSWD = 0x216 + SYS_SETGROUPS = 0x217 + SYS_INITGROUPS = 0x218 + SYS_WCSRCHR = 0x240 + SYS_SVC99 = 0x241 + SYS___SVC99 = 0x241 + SYS_WCSWCS = 0x242 + SYS_LOCALECO = 0x243 + SYS_LOCALECONV = 0x243 + SYS___LIBREL = 0x244 + SYS_RELEASE = 0x245 + SYS___RLSE = 0x245 + SYS_FLOCATE = 0x246 + SYS___FLOCT = 0x246 + SYS_FDELREC = 0x247 + SYS___FDLREC = 0x247 + SYS_FETCH = 0x248 + SYS___FETCH = 0x248 + SYS_QSORT = 0x249 + SYS___CLEANUPCATCH = 0x260 + SYS___CATCHMATCH = 0x261 + SYS___CLEAN2UPCATCH = 0x262 + SYS_GETPRIORITY = 0x270 + SYS_NICE = 0x271 + SYS_SETPRIORITY = 0x272 + SYS_GETITIMER = 0x273 + SYS_SETITIMER = 0x274 + SYS_MSGCTL = 0x275 + SYS_MSGGET = 0x276 + SYS_MSGRCV = 0x277 + SYS_MSGSND = 0x278 + SYS_MSGXRCV = 0x279 + SYS___MSGXR = 0x279 + SYS_SHMGET = 0x280 + SYS___GETIPC = 0x281 + SYS_SETGRENT = 0x282 + SYS_GETGRENT = 0x283 + SYS_ENDGRENT = 0x284 + SYS_SETPWENT = 0x285 + SYS_GETPWENT = 0x286 + SYS_ENDPWENT = 0x287 + SYS_BSD_SIGNAL = 0x288 + SYS_KILLPG = 0x289 + SYS_SIGSET = 0x290 + SYS_SIGSTACK = 0x291 + SYS_GETRLIMIT = 0x292 + SYS_SETRLIMIT = 0x293 + SYS_GETRUSAGE = 0x294 + SYS_MMAP = 0x295 + SYS_MPROTECT = 0x296 + SYS_MSYNC = 0x297 + SYS_MUNMAP = 0x298 + SYS_CONFSTR = 0x299 + SYS___NDMTRM = 0x300 + SYS_FTOK = 0x301 + SYS_BASENAME = 0x302 + SYS_DIRNAME = 0x303 + SYS_GETDTABLESIZE = 0x304 + SYS_MKSTEMP = 0x305 + SYS_MKTEMP = 0x306 + SYS_NFTW = 0x307 + SYS_GETWD = 0x308 + SYS_LOCKF = 0x309 + SYS_WORDEXP = 0x310 + SYS_WORDFREE = 0x311 + SYS_GETPGID = 0x312 + SYS_GETSID = 0x313 + SYS___UTMPXNAME = 0x314 + SYS_CUSERID = 0x315 + SYS_GETPASS = 0x316 + SYS_FNMATCH = 0x317 + SYS_FTW = 0x318 + SYS_GETW = 0x319 + SYS_ACOSH = 0x320 + SYS_ASINH = 0x321 + SYS_ATANH = 0x322 + SYS_CBRT = 0x323 + SYS_EXPM1 = 0x324 + SYS_ILOGB = 0x325 + SYS_LOGB = 0x326 + SYS_LOG1P = 0x327 + SYS_NEXTAFTER = 0x328 + SYS_RINT = 0x329 + SYS_SPAWN = 0x330 + SYS_SPAWNP = 0x331 + SYS_GETLOGIN_UU = 0x332 + SYS_ECVT = 0x333 + SYS_FCVT = 0x334 + SYS_GCVT = 0x335 + SYS_ACCEPT = 0x336 + SYS_BIND = 0x337 + SYS_CONNECT = 0x338 + SYS_ENDHOSTENT = 0x339 + SYS_GETHOSTENT = 0x340 + SYS_GETHOSTID = 0x341 + SYS_GETHOSTNAME = 0x342 + SYS_GETNETBYADDR = 0x343 + SYS_GETNETBYNAME = 0x344 + SYS_GETNETENT = 0x345 + SYS_GETPEERNAME = 0x346 + SYS_GETPROTOBYNAME = 0x347 + SYS_GETPROTOBYNUMBER = 0x348 + SYS_GETPROTOENT = 0x349 + SYS_INET_LNAOF = 0x350 + SYS_INET_MAKEADDR = 0x351 + SYS_INET_NETOF = 0x352 + SYS_INET_NETWORK = 0x353 + SYS_INET_NTOA = 0x354 + SYS_IOCTL = 0x355 + SYS_LISTEN = 0x356 + SYS_READV = 0x357 + SYS_RECV = 0x358 + SYS_RECVFROM = 0x359 + SYS_SETHOSTENT = 0x360 + SYS_SETNETENT = 0x361 + SYS_SETPEER = 0x362 + SYS_SETPROTOENT = 0x363 + SYS_SETSERVENT = 0x364 + SYS_SETSOCKOPT = 0x365 + SYS_SHUTDOWN = 0x366 + SYS_SOCKET = 0x367 + SYS_SOCKETPAIR = 0x368 + SYS_WRITEV = 0x369 + SYS_ENDNETENT = 0x370 + SYS_CLOSELOG = 0x371 + SYS_OPENLOG = 0x372 + SYS_SETLOGMASK = 0x373 + SYS_SYSLOG = 0x374 + SYS_PTSNAME = 0x375 + SYS_SETREUID = 0x376 + SYS_SETREGID = 0x377 + SYS_REALPATH = 0x378 + SYS___SIGNGAM = 0x379 + SYS_POLL = 0x380 + SYS_REXEC = 0x381 + SYS___ISASCII2 = 0x382 + SYS___TOASCII2 = 0x383 + SYS_CHPRIORITY = 0x384 + SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 + SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 + SYS_PTHREAD_SET_LIMIT_NP = 0x387 + SYS___STNETENT = 0x388 + SYS___STPROTOENT = 0x389 + SYS___SELECT1 = 0x390 + SYS_PTHREAD_SECURITY_NP = 0x391 + SYS___CHECK_RESOURCE_AUTH_NP = 0x392 + SYS___CONVERT_ID_NP = 0x393 + SYS___OPENVMREL = 0x394 + SYS_WMEMCHR = 0x395 + SYS_WMEMCMP = 0x396 + SYS_WMEMCPY = 0x397 + SYS_WMEMMOVE = 0x398 + SYS_WMEMSET = 0x399 + SYS___FPUTWC = 0x400 + SYS___PUTWC = 0x401 + SYS___PWCHAR = 0x402 + SYS___WCSFTM = 0x403 + SYS___WCSTOK = 0x404 + SYS___WCWDTH = 0x405 + SYS_T_ACCEPT = 0x409 + SYS_T_GETINFO = 0x410 + SYS_T_GETPROTADDR = 0x411 + SYS_T_GETSTATE = 0x412 + SYS_T_LISTEN = 0x413 + SYS_T_LOOK = 0x414 + SYS_T_OPEN = 0x415 + SYS_T_OPTMGMT = 0x416 + SYS_T_RCV = 0x417 + SYS_T_RCVCONNECT = 0x418 + SYS_T_RCVDIS = 0x419 + SYS_T_SNDUDATA = 0x420 + SYS_T_STRERROR = 0x421 + SYS_T_SYNC = 0x422 + SYS_T_UNBIND = 0x423 + SYS___T_ERRNO = 0x424 + SYS___RECVMSG2 = 0x425 + SYS___SENDMSG2 = 0x426 + SYS_FATTACH = 0x427 + SYS_FDETACH = 0x428 + SYS_GETMSG = 0x429 + SYS_GETCONTEXT = 0x430 + SYS_SETCONTEXT = 0x431 + SYS_MAKECONTEXT = 0x432 + SYS_SWAPCONTEXT = 0x433 + SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 + SYS_GETCLIENTID = 0x470 + SYS___GETCLIENTID = 0x471 + SYS_GETSTABLESIZE = 0x472 + SYS_GETIBMOPT = 0x473 + SYS_GETIBMSOCKOPT = 0x474 + SYS_GIVESOCKET = 0x475 + SYS_IBMSFLUSH = 0x476 + SYS_MAXDESC = 0x477 + SYS_SETIBMOPT = 0x478 + SYS_SETIBMSOCKOPT = 0x479 + SYS___SERVER_PWU = 0x480 + SYS_PTHREAD_TAG_NP = 0x481 + SYS___CONSOLE = 0x482 + SYS___WSINIT = 0x483 + SYS___IPTCPN = 0x489 + SYS___SERVER_CLASSIFY = 0x490 + SYS___HEAPRPT = 0x496 + SYS___ISBFP = 0x500 + SYS___FP_CAST = 0x501 + SYS___CERTIFICATE = 0x502 + SYS_SEND_FILE = 0x503 + SYS_AIO_CANCEL = 0x504 + SYS_AIO_ERROR = 0x505 + SYS_AIO_READ = 0x506 + SYS_AIO_RETURN = 0x507 + SYS_AIO_SUSPEND = 0x508 + SYS_AIO_WRITE = 0x509 + SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 + SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 + SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 + SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 + SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 + SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 + SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 + SYS___CTTBL = 0x517 + SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 + SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 + SYS___FP_UNORDERED = 0x520 + SYS___FP_READ_RND = 0x521 + SYS___FP_READ_RND_B = 0x522 + SYS___FP_SWAP_RND = 0x523 + SYS___FP_SWAP_RND_B = 0x524 + SYS___FP_LEVEL = 0x525 + SYS___FP_BTOH = 0x526 + SYS___FP_HTOB = 0x527 + SYS___FPC_RD = 0x528 + SYS___FPC_WR = 0x529 + SYS_PTHREAD_SETCANCELTYPE = 0x600 + SYS_PTHREAD_TESTCANCEL = 0x601 + SYS___ATANF_B = 0x602 + SYS___ATANL_B = 0x603 + SYS___CEILF_B = 0x604 + SYS___CEILL_B = 0x605 + SYS___COSF_B = 0x606 + SYS___COSL_B = 0x607 + SYS___FABSF_B = 0x608 + SYS___FABSL_B = 0x609 + SYS___SINF_B = 0x610 + SYS___SINL_B = 0x611 + SYS___TANF_B = 0x612 + SYS___TANL_B = 0x613 + SYS___TANHF_B = 0x614 + SYS___TANHL_B = 0x615 + SYS___ACOSF_B = 0x616 + SYS___ACOSL_B = 0x617 + SYS___ASINF_B = 0x618 + SYS___ASINL_B = 0x619 + SYS___LOGF_B = 0x620 + SYS___LOGL_B = 0x621 + SYS___LOG10F_B = 0x622 + SYS___LOG10L_B = 0x623 + SYS___POWF_B = 0x624 + SYS___POWL_B = 0x625 + SYS___SINHF_B = 0x626 + SYS___SINHL_B = 0x627 + SYS___SQRTF_B = 0x628 + SYS___SQRTL_B = 0x629 + SYS___MODFL_B = 0x630 + SYS_ABSF = 0x631 + SYS_ABSL = 0x632 + SYS_ACOSF = 0x633 + SYS_ACOSL = 0x634 + SYS_ASINF = 0x635 + SYS_ASINL = 0x636 + SYS_ATAN2F = 0x637 + SYS_ATAN2L = 0x638 + SYS_ATANF = 0x639 + SYS_COSHL = 0x640 + SYS_EXPF = 0x641 + SYS_EXPL = 0x642 + SYS_TANHF = 0x643 + SYS_TANHL = 0x644 + SYS_LOG10F = 0x645 + SYS_LOG10L = 0x646 + SYS_LOGF = 0x647 + SYS_LOGL = 0x648 + SYS_POWF = 0x649 + SYS_SINHL = 0x650 + SYS_TANF = 0x651 + SYS_TANL = 0x652 + SYS_FABSF = 0x653 + SYS_FABSL = 0x654 + SYS_FLOORF = 0x655 + SYS_FLOORL = 0x656 + SYS_FMODF = 0x657 + SYS_FMODL = 0x658 + SYS_FREXPF = 0x659 + SYS___CHATTR = 0x660 + SYS___FCHATTR = 0x661 + SYS___TOCCSID = 0x662 + SYS___CSNAMETYPE = 0x663 + SYS___TOCSNAME = 0x664 + SYS___CCSIDTYPE = 0x665 + SYS___AE_CORRESTBL_QUERY = 0x666 + SYS___AE_AUTOCONVERT_STATE = 0x667 + SYS_DN_FIND = 0x668 + SYS___GETHOSTBYADDR_A = 0x669 + SYS___MBLEN_SB_A = 0x670 + SYS___MBLEN_STD_A = 0x671 + SYS___MBLEN_UTF = 0x672 + SYS___MBSTOWCS_A = 0x673 + SYS___MBSTOWCS_STD_A = 0x674 + SYS___MBTOWC_A = 0x675 + SYS___MBTOWC_ISO1 = 0x676 + SYS___MBTOWC_SBCS = 0x677 + SYS___MBTOWC_MBCS = 0x678 + SYS___MBTOWC_UTF = 0x679 + SYS___CSID_A = 0x680 + SYS___CSID_STD_A = 0x681 + SYS___WCSID_A = 0x682 + SYS___WCSID_STD_A = 0x683 + SYS___WCTOMB_A = 0x684 + SYS___WCTOMB_ISO1 = 0x685 + SYS___WCTOMB_STD_A = 0x686 + SYS___WCTOMB_UTF = 0x687 + SYS___WCWIDTH_A = 0x688 + SYS___GETGRNAM_R_A = 0x689 + SYS___READDIR_R_A = 0x690 + SYS___E2A_S = 0x691 + SYS___FNMATCH_A = 0x692 + SYS___FNMATCH_C_A = 0x693 + SYS___EXECL_A = 0x694 + SYS___FNMATCH_STD_A = 0x695 + SYS___REGCOMP_A = 0x696 + SYS___REGCOMP_STD_A = 0x697 + SYS___REGERROR_A = 0x698 + SYS___REGERROR_STD_A = 0x699 + SYS___SWPRINTF_A = 0x700 + SYS___FSCANF_A = 0x701 + SYS___SCANF_A = 0x702 + SYS___SSCANF_A = 0x703 + SYS___SWSCANF_A = 0x704 + SYS___ATOF_A = 0x705 + SYS___ATOI_A = 0x706 + SYS___ATOL_A = 0x707 + SYS___STRTOD_A = 0x708 + SYS___STRTOL_A = 0x709 + SYS___L64A_A = 0x710 + SYS___STRERROR_A = 0x711 + SYS___PERROR_A = 0x712 + SYS___FETCH_A = 0x713 + SYS___GETENV_A = 0x714 + SYS___MKSTEMP_A = 0x717 + SYS___PTSNAME_A = 0x718 + SYS___PUTENV_A = 0x719 + SYS___CHDIR_A = 0x720 + SYS___CHOWN_A = 0x721 + SYS___CHROOT_A = 0x722 + SYS___GETCWD_A = 0x723 + SYS___GETWD_A = 0x724 + SYS___LCHOWN_A = 0x725 + SYS___LINK_A = 0x726 + SYS___PATHCONF_A = 0x727 + SYS___IF_NAMEINDEX_A = 0x728 + SYS___READLINK_A = 0x729 + SYS___EXTLINK_NP_A = 0x730 + SYS___ISALNUM_A = 0x731 + SYS___ISALPHA_A = 0x732 + SYS___A2E_S = 0x733 + SYS___ISCNTRL_A = 0x734 + SYS___ISDIGIT_A = 0x735 + SYS___ISGRAPH_A = 0x736 + SYS___ISLOWER_A = 0x737 + SYS___ISPRINT_A = 0x738 + SYS___ISPUNCT_A = 0x739 + SYS___ISWALPHA_A = 0x740 + SYS___A2E_L = 0x741 + SYS___ISWCNTRL_A = 0x742 + SYS___ISWDIGIT_A = 0x743 + SYS___ISWGRAPH_A = 0x744 + SYS___ISWLOWER_A = 0x745 + SYS___ISWPRINT_A = 0x746 + SYS___ISWPUNCT_A = 0x747 + SYS___ISWSPACE_A = 0x748 + SYS___ISWUPPER_A = 0x749 + SYS___REMOVE_A = 0x750 + SYS___RENAME_A = 0x751 + SYS___TMPNAM_A = 0x752 + SYS___FOPEN_A = 0x753 + SYS___FREOPEN_A = 0x754 + SYS___CUSERID_A = 0x755 + SYS___POPEN_A = 0x756 + SYS___TEMPNAM_A = 0x757 + SYS___FTW_A = 0x758 + SYS___GETGRENT_A = 0x759 + SYS___INET_NTOP_A = 0x760 + SYS___GETPASS_A = 0x761 + SYS___GETPWENT_A = 0x762 + SYS___GETPWNAM_A = 0x763 + SYS___GETPWUID_A = 0x764 + SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 + SYS___CHECKSCHENV_A = 0x766 + SYS___CONNECTSERVER_A = 0x767 + SYS___CONNECTWORKMGR_A = 0x768 + SYS_____CONSOLE_A = 0x769 + SYS___MSGSND_A = 0x770 + SYS___MSGXRCV_A = 0x771 + SYS___NFTW_A = 0x772 + SYS_____PASSWD_A = 0x773 + SYS___PTHREAD_SECURITY_NP_A = 0x774 + SYS___QUERYMETRICS_A = 0x775 + SYS___QUERYSCHENV = 0x776 + SYS___READV_A = 0x777 + SYS_____SERVER_CLASSIFY_A = 0x778 + SYS_____SERVER_INIT_A = 0x779 + SYS___W_GETPSENT_A = 0x780 + SYS___WRITEV_A = 0x781 + SYS___W_STATFS_A = 0x782 + SYS___W_STATVFS_A = 0x783 + SYS___FPUTC_A = 0x784 + SYS___PUTCHAR_A = 0x785 + SYS___PUTS_A = 0x786 + SYS___FGETS_A = 0x787 + SYS___GETS_A = 0x788 + SYS___FPUTS_A = 0x789 + SYS___PUTC_A = 0x790 + SYS___AE_THREAD_SETMODE = 0x791 + SYS___AE_THREAD_SWAPMODE = 0x792 + SYS___GETNETBYADDR_A = 0x793 + SYS___GETNETBYNAME_A = 0x794 + SYS___GETNETENT_A = 0x795 + SYS___GETPROTOBYNAME_A = 0x796 + SYS___GETPROTOBYNUMBER_A = 0x797 + SYS___GETPROTOENT_A = 0x798 + SYS___GETSERVBYNAME_A = 0x799 + SYS_ACL_FIRST_ENTRY = 0x800 + SYS_ACL_GET_ENTRY = 0x801 + SYS_ACL_VALID = 0x802 + SYS_ACL_CREATE_ENTRY = 0x803 + SYS_ACL_DELETE_ENTRY = 0x804 + SYS_ACL_UPDATE_ENTRY = 0x805 + SYS_ACL_DELETE_FD = 0x806 + SYS_ACL_DELETE_FILE = 0x807 + SYS_ACL_GET_FD = 0x808 + SYS_ACL_GET_FILE = 0x809 + SYS___ERFL_B = 0x810 + SYS___ERFCL_B = 0x811 + SYS___LGAMMAL_B = 0x812 + SYS___SETHOOKEVENTS = 0x813 + SYS_IF_NAMETOINDEX = 0x814 + SYS_IF_INDEXTONAME = 0x815 + SYS_IF_NAMEINDEX = 0x816 + SYS_IF_FREENAMEINDEX = 0x817 + SYS_GETADDRINFO = 0x818 + SYS_GETNAMEINFO = 0x819 + SYS___DYNFREE_A = 0x820 + SYS___RES_QUERY_A = 0x821 + SYS___RES_SEARCH_A = 0x822 + SYS___RES_QUERYDOMAIN_A = 0x823 + SYS___RES_MKQUERY_A = 0x824 + SYS___RES_SEND_A = 0x825 + SYS___DN_EXPAND_A = 0x826 + SYS___DN_SKIPNAME_A = 0x827 + SYS___DN_COMP_A = 0x828 + SYS___DN_FIND_A = 0x829 + SYS___INET_NTOA_A = 0x830 + SYS___INET_NETWORK_A = 0x831 + SYS___ACCEPT_A = 0x832 + SYS___ACCEPT_AND_RECV_A = 0x833 + SYS___BIND_A = 0x834 + SYS___CONNECT_A = 0x835 + SYS___GETPEERNAME_A = 0x836 + SYS___GETSOCKNAME_A = 0x837 + SYS___RECVFROM_A = 0x838 + SYS___SENDTO_A = 0x839 + SYS___LCHATTR = 0x840 + SYS___WRITEDOWN = 0x841 + SYS_PTHREAD_MUTEX_INIT2 = 0x842 + SYS___ACOSHF_B = 0x843 + SYS___ACOSHL_B = 0x844 + SYS___ASINHF_B = 0x845 + SYS___ASINHL_B = 0x846 + SYS___ATANHF_B = 0x847 + SYS___ATANHL_B = 0x848 + SYS___CBRTF_B = 0x849 + SYS___EXP2F_B = 0x850 + SYS___EXP2L_B = 0x851 + SYS___EXPM1F_B = 0x852 + SYS___EXPM1L_B = 0x853 + SYS___FDIMF_B = 0x854 + SYS___FDIM_B = 0x855 + SYS___FDIML_B = 0x856 + SYS___HYPOTF_B = 0x857 + SYS___HYPOTL_B = 0x858 + SYS___LOG1PF_B = 0x859 + SYS___REMQUOF_B = 0x860 + SYS___REMQUO_B = 0x861 + SYS___REMQUOL_B = 0x862 + SYS___TGAMMAF_B = 0x863 + SYS___TGAMMA_B = 0x864 + SYS___TGAMMAL_B = 0x865 + SYS___TRUNCF_B = 0x866 + SYS___TRUNC_B = 0x867 + SYS___TRUNCL_B = 0x868 + SYS___LGAMMAF_B = 0x869 + SYS_ASINHF = 0x870 + SYS_ASINHL = 0x871 + SYS_ATANHF = 0x872 + SYS_ATANHL = 0x873 + SYS_CBRTF = 0x874 + SYS_CBRTL = 0x875 + SYS_COPYSIGNF = 0x876 + SYS_CPYSIGNF = 0x876 + SYS_COPYSIGNL = 0x877 + SYS_CPYSIGNL = 0x877 + SYS_COTANF = 0x878 + SYS___COTANF = 0x878 + SYS_COTAN = 0x879 + SYS___COTAN = 0x879 + SYS_FDIM = 0x881 + SYS_FDIML = 0x882 + SYS_HYPOTF = 0x883 + SYS_HYPOTL = 0x884 + SYS_LOG1PF = 0x885 + SYS_LOG1PL = 0x886 + SYS_LOG2F = 0x887 + SYS_LOG2 = 0x888 + SYS_LOG2L = 0x889 + SYS_TGAMMA = 0x890 + SYS_TGAMMAL = 0x891 + SYS_TRUNCF = 0x892 + SYS_TRUNC = 0x893 + SYS_TRUNCL = 0x894 + SYS_LGAMMAF = 0x895 + SYS_LGAMMAL = 0x896 + SYS_LROUNDF = 0x897 + SYS_LROUND = 0x898 + SYS_ERFF = 0x899 + SYS___COSHF_H = 0x900 + SYS___COSHL_H = 0x901 + SYS___COTAN_H = 0x902 + SYS___COTANF_H = 0x903 + SYS___COTANL_H = 0x904 + SYS___ERF_H = 0x905 + SYS___ERFF_H = 0x906 + SYS___ERFL_H = 0x907 + SYS___ERFC_H = 0x908 + SYS___ERFCF_H = 0x909 + SYS___FDIMF_H = 0x910 + SYS___FDIML_H = 0x911 + SYS___FMOD_H = 0x912 + SYS___FMODF_H = 0x913 + SYS___FMODL_H = 0x914 + SYS___GAMMA_H = 0x915 + SYS___HYPOT_H = 0x916 + SYS___ILOGB_H = 0x917 + SYS___LGAMMA_H = 0x918 + SYS___LGAMMAF_H = 0x919 + SYS___LOG2L_H = 0x920 + SYS___LOG1P_H = 0x921 + SYS___LOG10_H = 0x922 + SYS___LOG10F_H = 0x923 + SYS___LOG10L_H = 0x924 + SYS___LROUND_H = 0x925 + SYS___LROUNDF_H = 0x926 + SYS___NEXTAFTER_H = 0x927 + SYS___POW_H = 0x928 + SYS___POWF_H = 0x929 + SYS___SINL_H = 0x930 + SYS___SINH_H = 0x931 + SYS___SINHF_H = 0x932 + SYS___SINHL_H = 0x933 + SYS___SQRT_H = 0x934 + SYS___SQRTF_H = 0x935 + SYS___SQRTL_H = 0x936 + SYS___TAN_H = 0x937 + SYS___TANF_H = 0x938 + SYS___TANL_H = 0x939 + SYS___TRUNCF_H = 0x940 + SYS___TRUNCL_H = 0x941 + SYS___COSH_H = 0x942 + SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 + SYS_VFSCANF = 0x944 + SYS_VSCANF = 0x946 + SYS_VSSCANF = 0x948 + SYS_IMAXABS = 0x950 + SYS_IMAXDIV = 0x951 + SYS_STRTOIMAX = 0x952 + SYS_STRTOUMAX = 0x953 + SYS_WCSTOIMAX = 0x954 + SYS_WCSTOUMAX = 0x955 + SYS_ATOLL = 0x956 + SYS_STRTOF = 0x957 + SYS_STRTOLD = 0x958 + SYS_WCSTOF = 0x959 + SYS_INET6_RTH_GETADDR = 0x960 + SYS_INET6_OPT_INIT = 0x961 + SYS_INET6_OPT_APPEND = 0x962 + SYS_INET6_OPT_FINISH = 0x963 + SYS_INET6_OPT_SET_VAL = 0x964 + SYS_INET6_OPT_NEXT = 0x965 + SYS_INET6_OPT_FIND = 0x966 + SYS_INET6_OPT_GET_VAL = 0x967 + SYS___POW_I = 0x987 + SYS___POW_I_B = 0x988 + SYS___POW_I_H = 0x989 + SYS___CABS_H = 0x990 + SYS_CABSF = 0x991 + SYS___CABSF_B = 0x992 + SYS___CABSF_H = 0x993 + SYS_CABSL = 0x994 + SYS___CABSL_B = 0x995 + SYS___CABSL_H = 0x996 + SYS_CACOS = 0x997 + SYS___CACOS_B = 0x998 + SYS___CACOS_H = 0x999 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go index cedc9b0f2..7a8161c1d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go @@ -1,6 +1,7 @@ // cgo -godefs types_aix.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc && aix // +build ppc,aix package unix @@ -30,11 +31,6 @@ type Timespec struct { Nsec int32 } -type StTimespec struct { - Sec int32 - Nsec int32 -} - type Timeval struct { Sec int32 Usec int32 @@ -101,9 +97,9 @@ type Stat_t struct { Gid uint32 Rdev uint32 Size int32 - Atim StTimespec - Mtim StTimespec - Ctim StTimespec + Atim Timespec + Mtim Timespec + Ctim Timespec Blksize int32 Blocks int32 Vfstype int32 @@ -148,6 +144,17 @@ type RawSockaddrUnix struct { Path [1023]uint8 } +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [120]uint8 +} + type RawSockaddr struct { Len uint8 Family uint8 @@ -207,17 +214,19 @@ type Msghdr struct { } const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x404 - SizeofSockaddrUnix = 0x401 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofICMPv6Filter = 0x20 + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x404 + SizeofSockaddrUnix = 0x401 + SizeofSockaddrDatalink = 0x80 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofICMPv6Filter = 0x20 ) const ( diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go index f46482d27..07ed733c5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go @@ -1,6 +1,7 @@ // cgo -godefs types_aix.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && aix // +build ppc64,aix package unix @@ -30,12 +31,6 @@ type Timespec struct { Nsec int64 } -type StTimespec struct { - Sec int64 - Nsec int32 - _ [4]byte -} - type Timeval struct { Sec int64 Usec int32 @@ -103,10 +98,9 @@ type Stat_t struct { Gid uint32 Rdev uint64 Ssize int32 - _ [4]byte - Atim StTimespec - Mtim StTimespec - Ctim StTimespec + Atim Timespec + Mtim Timespec + Ctim Timespec Blksize int64 Blocks int64 Vfstype int32 @@ -154,6 +148,17 @@ type RawSockaddrUnix struct { Path [1023]uint8 } +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [120]uint8 +} + type RawSockaddr struct { Len uint8 Family uint8 @@ -205,27 +210,27 @@ type Linger struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 } const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x404 - SizeofSockaddrUnix = 0x401 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofICMPv6Filter = 0x20 + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x404 + SizeofSockaddrUnix = 0x401 + SizeofSockaddrDatalink = 0x80 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofICMPv6Filter = 0x20 ) const ( @@ -339,7 +344,6 @@ type Statfs_t struct { Ffree uint64 Fsid Fsid64_t Vfstype int32 - _ [4]byte Fsize uint64 Vfsnumber int32 Vfsoff int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go index cefe2f8ea..54db43335 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go @@ -1,6 +1,7 @@ // cgo -godefs types_darwin.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && darwin // +build 386,darwin package unix @@ -59,24 +60,24 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 } type Statfs_t struct { @@ -92,9 +93,9 @@ type Statfs_t struct { Type uint32 Flags uint32 Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte Reserved [8]uint32 } @@ -145,6 +146,10 @@ type Dirent struct { _ [3]byte } +const ( + PathMax = 0x400 +) + type RawSockaddrInet4 struct { Len uint8 Family uint8 @@ -190,6 +195,15 @@ type RawSockaddrAny struct { Pad [92]int8 } +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + type _Socklen uint32 type Linger struct { @@ -254,7 +268,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c @@ -301,7 +317,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -344,7 +359,6 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Metric int32 } @@ -365,7 +379,6 @@ type IfmaMsghdr2 struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Refcount int32 } @@ -374,7 +387,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -396,7 +408,8 @@ type RtMetrics struct { Rtt uint32 Rttvar uint32 Pksent uint32 - Filler [4]uint32 + State uint32 + Filler [3]uint32 } const ( @@ -497,3 +510,8 @@ type Clockinfo struct { Stathz int32 Profhz int32 } + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go index c6bb883c3..eb73e52fb 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_darwin.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && darwin // +build amd64,darwin package unix @@ -63,25 +64,24 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - _ [4]byte - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 } type Statfs_t struct { @@ -97,10 +97,11 @@ type Statfs_t struct { Type uint32 Flags uint32 Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 } type Flock_t struct { @@ -133,8 +134,7 @@ type Fbootstraptransfer_t struct { type Log2phys_t struct { Flags uint32 - _ [8]byte - _ [8]byte + _ [16]byte } type Fsid struct { @@ -151,6 +151,10 @@ type Dirent struct { _ [3]byte } +const ( + PathMax = 0x400 +) + type RawSockaddrInet4 struct { Len uint8 Family uint8 @@ -196,8 +200,24 @@ type RawSockaddrAny struct { Pad [92]int8 } +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + type Linger struct { Onoff int32 Linger int32 @@ -221,10 +241,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -262,7 +280,10 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofXucred = 0x4c SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 @@ -309,7 +330,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -352,7 +372,6 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Metric int32 } @@ -373,7 +392,6 @@ type IfmaMsghdr2 struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Refcount int32 } @@ -382,7 +400,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -404,7 +421,8 @@ type RtMetrics struct { Rtt uint32 Rttvar uint32 Pksent uint32 - Filler [4]uint32 + State uint32 + Filler [3]uint32 } const ( @@ -427,7 +445,6 @@ type BpfStat struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -452,7 +469,6 @@ type Termios struct { Cflag uint64 Lflag uint64 Cc [20]uint8 - _ [4]byte Ispeed uint64 Ospeed uint64 } @@ -507,3 +523,8 @@ type Clockinfo struct { Stathz int32 Profhz int32 } + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go index 94c23bc2d..8606d654e 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go @@ -1,7 +1,7 @@ -// NOTE: cgo can't generate struct Stat_t and struct Statfs_t yet -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_darwin.go +// cgo -godefs types_darwin.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && darwin // +build arm,darwin package unix @@ -31,7 +31,7 @@ type Timeval struct { Usec int32 } -type Timeval32 [0]byte +type Timeval32 struct{} type Rusage struct { Utime Timeval @@ -60,24 +60,24 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 } type Statfs_t struct { @@ -93,9 +93,9 @@ type Statfs_t struct { Type uint32 Flags uint32 Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte Reserved [8]uint32 } @@ -146,6 +146,10 @@ type Dirent struct { _ [3]byte } +const ( + PathMax = 0x400 +) + type RawSockaddrInet4 struct { Len uint8 Family uint8 @@ -191,6 +195,15 @@ type RawSockaddrAny struct { Pad [92]int8 } +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + type _Socklen uint32 type Linger struct { @@ -255,7 +268,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c @@ -302,7 +317,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -345,7 +359,6 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Metric int32 } @@ -366,7 +379,6 @@ type IfmaMsghdr2 struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Refcount int32 } @@ -375,7 +387,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -397,7 +408,8 @@ type RtMetrics struct { Rtt uint32 Rttvar uint32 Pksent uint32 - Filler [4]uint32 + State uint32 + Filler [3]uint32 } const ( @@ -498,3 +510,8 @@ type Clockinfo struct { Stathz int32 Profhz int32 } + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go index c82a930cd..dcb51f840 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go @@ -1,6 +1,7 @@ // cgo -godefs types_darwin.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && darwin // +build arm64,darwin package unix @@ -63,25 +64,24 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - _ [4]byte - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 } type Statfs_t struct { @@ -97,10 +97,11 @@ type Statfs_t struct { Type uint32 Flags uint32 Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 } type Flock_t struct { @@ -133,8 +134,7 @@ type Fbootstraptransfer_t struct { type Log2phys_t struct { Flags uint32 - _ [8]byte - _ [8]byte + _ [16]byte } type Fsid struct { @@ -151,6 +151,10 @@ type Dirent struct { _ [3]byte } +const ( + PathMax = 0x400 +) + type RawSockaddrInet4 struct { Len uint8 Family uint8 @@ -196,8 +200,24 @@ type RawSockaddrAny struct { Pad [92]int8 } +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + type Linger struct { Onoff int32 Linger int32 @@ -221,10 +241,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -262,7 +280,10 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofXucred = 0x4c SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 @@ -309,7 +330,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -352,7 +372,6 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Metric int32 } @@ -373,7 +392,6 @@ type IfmaMsghdr2 struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Refcount int32 } @@ -382,7 +400,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -404,7 +421,8 @@ type RtMetrics struct { Rtt uint32 Rttvar uint32 Pksent uint32 - Filler [4]uint32 + State uint32 + Filler [3]uint32 } const ( @@ -427,7 +445,6 @@ type BpfStat struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -452,7 +469,6 @@ type Termios struct { Cflag uint64 Lflag uint64 Cc [20]uint8 - _ [4]byte Ispeed uint64 Ospeed uint64 } @@ -507,3 +523,8 @@ type Clockinfo struct { Stathz int32 Profhz int32 } + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go index 7b34e2e2c..1d049d7a1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_dragonfly.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && dragonfly // +build amd64,dragonfly package unix @@ -57,25 +58,25 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Ino uint64 - Nlink uint32 - Dev uint32 - Mode uint16 - Padding1 uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare1 int64 - Qspare2 int64 + Ino uint64 + Nlink uint32 + Dev uint32 + Mode uint16 + _1 uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + _ uint32 + Flags uint32 + Gen uint32 + Lspare int32 + Blksize int64 + Qspare2 int64 } type Statfs_t struct { @@ -91,17 +92,15 @@ type Statfs_t struct { Owner uint32 Type int32 Flags int32 - _ [4]byte Syncwrites int64 Asyncwrites int64 - Fstypename [16]int8 - Mntonname [80]int8 + Fstypename [16]byte + Mntonname [80]byte Syncreads int64 Asyncreads int64 Spares1 int16 - Mntfromname [80]int8 + Mntfromname [80]byte Spares2 int16 - _ [4]byte Spare [2]int64 } @@ -202,10 +201,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -238,6 +235,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 @@ -269,7 +267,7 @@ type FdSet struct { const ( SizeofIfMsghdr = 0xb0 SizeofIfData = 0xa0 - SizeofIfaMsghdr = 0x14 + SizeofIfaMsghdr = 0x18 SizeofIfmaMsghdr = 0x10 SizeofIfAnnounceMsghdr = 0x18 SizeofRtMsghdr = 0x98 @@ -280,10 +278,9 @@ type IfMsghdr struct { Msglen uint16 Version uint8 Type uint8 - Addrs int32 - Flags int32 Index uint16 - _ [2]byte + Flags int32 + Addrs int32 Data IfData } @@ -294,7 +291,6 @@ type IfData struct { Hdrlen uint8 Recvquota uint8 Xmitquota uint8 - _ [2]byte Mtu uint64 Metric uint64 Link_state uint64 @@ -316,24 +312,23 @@ type IfData struct { } type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte - Metric int32 + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Addrflags int32 + Metric int32 } type IfmaMsghdr struct { Msglen uint16 Version uint8 Type uint8 - Addrs int32 - Flags int32 Index uint16 - _ [2]byte + Flags int32 + Addrs int32 } type IfAnnounceMsghdr struct { @@ -350,7 +345,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -374,7 +368,6 @@ type RtMetrics struct { Hopcount uint64 Mssopt uint16 Pad uint16 - _ [4]byte Msl uint64 Iwmaxsegs uint64 Iwcapsegs uint64 @@ -400,7 +393,6 @@ type BpfStat struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -467,3 +459,13 @@ type Utsname struct { Version [32]byte Machine [32]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go index c146c1ad3..c51bc88ff 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -1,6 +1,7 @@ // cgo -godefs types_freebsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && freebsd // +build 386,freebsd package unix @@ -62,50 +63,50 @@ const ( ) type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim_ext int32 - Atim Timespec - Mtim_ext int32 - Mtim Timespec - Ctim_ext int32 - Ctim Timespec - Btim_ext int32 - Birthtim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + _ int32 + Atim Timespec + _ int32 + Mtim Timespec + _ int32 + Ctim Timespec + _ int32 + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 } type stat_freebsd11_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Birthtim Timespec - _ [8]byte + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Btim Timespec + _ [8]byte } type Statfs_t struct { @@ -128,9 +129,9 @@ type Statfs_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [1024]int8 - Mntonname [1024]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte } type statfs_freebsd11_t struct { @@ -153,9 +154,9 @@ type statfs_freebsd11_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte } type Flock_t struct { @@ -250,6 +251,14 @@ type RawSockaddrAny struct { type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + type Linger struct { Onoff int32 Linger int32 @@ -312,7 +321,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x50 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 @@ -324,11 +335,108 @@ const ( ) const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 +) + +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 ) +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [4]byte + _ [32]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + Fs uint32 + Es uint32 + Ds uint32 + Edi uint32 + Esi uint32 + Ebp uint32 + Isp uint32 + Ebx uint32 + Edx uint32 + Ecx uint32 + Eax uint32 + Trapno uint32 + Err uint32 + Eip uint32 + Cs uint32 + Eflags uint32 + Esp uint32 + Ss uint32 + Gs uint32 +} + +type FpReg struct { + Env [7]uint32 + Acc [8][10]uint8 + Ex_sw uint32 + Pad [64]uint8 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint32 +} + type Kevent_t struct { Ident uint32 Filter int16 @@ -361,7 +469,7 @@ type ifMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Data ifData } @@ -372,7 +480,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -439,7 +546,7 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Metric int32 } @@ -450,7 +557,7 @@ type IfmaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 } type IfAnnounceMsghdr struct { @@ -467,7 +574,7 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte + _ uint16 Flags int32 Addrs int32 Pid int32 @@ -601,3 +708,13 @@ type Utsname struct { Version [256]byte Machine [256]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go index ac33a8dd4..395b69187 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_freebsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && freebsd // +build amd64,freebsd package unix @@ -62,45 +63,45 @@ const ( ) type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Birthtim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 } type stat_freebsd11_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Birthtim Timespec + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Btim Timespec } type Statfs_t struct { @@ -123,9 +124,9 @@ type Statfs_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [1024]int8 - Mntonname [1024]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte } type statfs_freebsd11_t struct { @@ -148,9 +149,9 @@ type statfs_freebsd11_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte } type Flock_t struct { @@ -246,6 +247,14 @@ type RawSockaddrAny struct { type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + type Linger struct { Onoff int32 Linger int32 @@ -275,10 +284,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -310,7 +317,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x58 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 @@ -322,11 +331,115 @@ const ( ) const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 +) + +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 ) +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + _ [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + R15 int64 + R14 int64 + R13 int64 + R12 int64 + R11 int64 + R10 int64 + R9 int64 + R8 int64 + Rdi int64 + Rsi int64 + Rbp int64 + Rbx int64 + Rdx int64 + Rcx int64 + Rax int64 + Trapno uint32 + Fs uint16 + Gs uint16 + Err uint32 + Es uint16 + Ds uint16 + Rip int64 + Cs int64 + Rflags int64 + Rsp int64 + Ss int64 +} + +type FpReg struct { + Env [4]uint64 + Acc [8][16]uint8 + Xacc [16][16]uint8 + Spare [12]uint64 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint64 +} + type Kevent_t struct { Ident uint64 Filter int16 @@ -359,7 +472,7 @@ type ifMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Data ifData } @@ -370,7 +483,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -437,7 +549,7 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Metric int32 } @@ -448,7 +560,7 @@ type IfmaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 } type IfAnnounceMsghdr struct { @@ -465,7 +577,7 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte + _ uint16 Flags int32 Addrs int32 Pid int32 @@ -519,7 +631,6 @@ type BpfZbuf struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -600,3 +711,13 @@ type Utsname struct { Version [256]byte Machine [256]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go index e27511a64..d3f9d2541 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -1,6 +1,7 @@ // cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && freebsd // +build arm,freebsd package unix @@ -64,45 +65,45 @@ const ( ) type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Birthtim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 } type stat_freebsd11_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Birthtim Timespec + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Btim Timespec } type Statfs_t struct { @@ -125,9 +126,9 @@ type Statfs_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [1024]int8 - Mntonname [1024]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte } type statfs_freebsd11_t struct { @@ -150,9 +151,9 @@ type statfs_freebsd11_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte } type Flock_t struct { @@ -248,6 +249,14 @@ type RawSockaddrAny struct { type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + type Linger struct { Onoff int32 Linger int32 @@ -310,7 +319,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x50 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 @@ -322,11 +333,92 @@ const ( ) const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 +) + +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 ) +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [4]byte + X_reason [32]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + R [13]uint32 + R_sp uint32 + R_lr uint32 + R_pc uint32 + R_cpsr uint32 +} + +type FpReg struct { + Fpr_fpsr uint32 + Fpr [8][3]uint32 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint32 +} + type Kevent_t struct { Ident uint32 Filter int16 @@ -600,3 +692,13 @@ type Utsname struct { Version [256]byte Machine [256]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go index 2aadc1a4d..434d6e8e8 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -1,6 +1,7 @@ -// cgo -godefs types_freebsd.go | go run mkpost.go +// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && freebsd // +build arm64,freebsd package unix @@ -62,45 +63,45 @@ const ( ) type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Birthtim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 } type stat_freebsd11_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Birthtim Timespec + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Btim Timespec } type Statfs_t struct { @@ -123,9 +124,9 @@ type Statfs_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [1024]int8 - Mntonname [1024]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte } type statfs_freebsd11_t struct { @@ -148,9 +149,9 @@ type statfs_freebsd11_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte } type Flock_t struct { @@ -246,6 +247,14 @@ type RawSockaddrAny struct { type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + type Linger struct { Onoff int32 Linger int32 @@ -275,10 +284,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -310,7 +317,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x58 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 @@ -322,11 +331,93 @@ const ( ) const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 ) +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + _ [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + X [30]uint64 + Lr uint64 + Sp uint64 + Elr uint64 + Spsr uint32 + _ [4]byte +} + +type FpReg struct { + Q [32][16]uint8 + Sr uint32 + Cr uint32 + _ [8]byte +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint64 +} + type Kevent_t struct { Ident uint64 Filter int16 @@ -359,7 +450,7 @@ type ifMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Data ifData } @@ -370,7 +461,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -437,7 +527,7 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Metric int32 } @@ -448,7 +538,7 @@ type IfmaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 } type IfAnnounceMsghdr struct { @@ -465,7 +555,7 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte + _ uint16 Flags int32 Addrs int32 Pid int32 @@ -519,7 +609,6 @@ type BpfZbuf struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -600,3 +689,13 @@ type Utsname struct { Version [256]byte Machine [256]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go new file mode 100644 index 000000000..1137a5a1f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go @@ -0,0 +1,40 @@ +// cgo -godefs types_illumos.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && illumos +// +build amd64,illumos + +package unix + +const ( + TUNNEWPPA = 0x540001 + TUNSETPPA = 0x540002 + + I_STR = 0x5308 + I_POP = 0x5303 + I_PUSH = 0x5302 + I_PLINK = 0x5316 + I_PUNLINK = 0x5317 + + IF_UNITSEL = -0x7ffb8cca +) + +type strbuf struct { + Maxlen int32 + Len int32 + Buf *int8 +} + +type strioctl struct { + Cmd int32 + Timout int32 + Len int32 + Dp *int8 +} + +type lifreq struct { + Name [32]int8 + Lifru1 [4]byte + Type uint32 + Lifru [336]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go new file mode 100644 index 000000000..3bfc6f732 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -0,0 +1,3737 @@ +// Code generated by mkmerge.go; DO NOT EDIT. + +//go:build linux +// +build linux + +package unix + +const ( + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + + _C_long_long int64 +) + +type ItimerSpec struct { + Interval Timespec + Value Timespec +} + +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type StatxTimestamp struct { + Sec int64 + Nsec uint32 + _ int32 +} + +type Statx_t struct { + Mask uint32 + Blksize uint32 + Attributes uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Mode uint16 + _ [1]uint16 + Ino uint64 + Size uint64 + Blocks uint64 + Attributes_mask uint64 + Atime StatxTimestamp + Btime StatxTimestamp + Ctime StatxTimestamp + Mtime StatxTimestamp + Rdev_major uint32 + Rdev_minor uint32 + Dev_major uint32 + Dev_minor uint32 + Mnt_id uint64 + _ uint64 + _ [12]uint64 +} + +type Fsid struct { + Val [2]int32 +} + +type FileCloneRange struct { + Src_fd int64 + Src_offset uint64 + Src_length uint64 + Dest_offset uint64 +} + +type RawFileDedupeRange struct { + Src_offset uint64 + Src_length uint64 + Dest_count uint16 + Reserved1 uint16 + Reserved2 uint32 +} + +type RawFileDedupeRangeInfo struct { + Dest_fd int64 + Dest_offset uint64 + Bytes_deduped uint64 + Status int32 + Reserved uint32 +} + +const ( + SizeofRawFileDedupeRange = 0x18 + SizeofRawFileDedupeRangeInfo = 0x20 + FILE_DEDUPE_RANGE_SAME = 0x0 + FILE_DEDUPE_RANGE_DIFFERS = 0x1 +) + +type FscryptPolicy struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + Master_key_descriptor [8]uint8 +} + +type FscryptKey struct { + Mode uint32 + Raw [64]uint8 + Size uint32 +} + +type FscryptPolicyV1 struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + Master_key_descriptor [8]uint8 +} + +type FscryptPolicyV2 struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + _ [4]uint8 + Master_key_identifier [16]uint8 +} + +type FscryptGetPolicyExArg struct { + Size uint64 + Policy [24]byte +} + +type FscryptKeySpecifier struct { + Type uint32 + _ uint32 + U [32]byte +} + +type FscryptAddKeyArg struct { + Key_spec FscryptKeySpecifier + Raw_size uint32 + Key_id uint32 + _ [8]uint32 +} + +type FscryptRemoveKeyArg struct { + Key_spec FscryptKeySpecifier + Removal_status_flags uint32 + _ [5]uint32 +} + +type FscryptGetKeyStatusArg struct { + Key_spec FscryptKeySpecifier + _ [6]uint32 + Status uint32 + Status_flags uint32 + User_count uint32 + _ [13]uint32 +} + +type DmIoctl struct { + Version [3]uint32 + Data_size uint32 + Data_start uint32 + Target_count uint32 + Open_count int32 + Flags uint32 + Event_nr uint32 + _ uint32 + Dev uint64 + Name [128]byte + Uuid [129]byte + Data [7]byte +} + +type DmTargetSpec struct { + Sector_start uint64 + Length uint64 + Status int32 + Next uint32 + Target_type [16]byte +} + +type DmTargetDeps struct { + Count uint32 + _ uint32 +} + +type DmTargetVersions struct { + Next uint32 + Version [3]uint32 +} + +type DmTargetMsg struct { + Sector uint64 +} + +const ( + SizeofDmIoctl = 0x138 + SizeofDmTargetSpec = 0x28 +) + +type KeyctlDHParams struct { + Private int32 + Prime int32 + Base int32 +} + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 +) + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddrHCI struct { + Family uint16 + Dev uint16 + Channel uint16 +} + +type RawSockaddrL2 struct { + Family uint16 + Psm uint16 + Bdaddr [6]uint8 + Cid uint16 + Bdaddr_type uint8 + _ [1]byte +} + +type RawSockaddrRFCOMM struct { + Family uint16 + Bdaddr [6]uint8 + Channel uint8 + _ [1]byte +} + +type RawSockaddrCAN struct { + Family uint16 + Ifindex int32 + Addr [16]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 + Flags uint8 + Zero [3]uint8 +} + +type RawSockaddrXDP struct { + Family uint16 + Flags uint16 + Ifindex uint32 + Queue_id uint32 + Shared_umem_fd uint32 +} + +type RawSockaddrPPPoX [0x1e]byte + +type RawSockaddrTIPC struct { + Family uint16 + Addrtype uint8 + Scope int8 + Addr [12]byte +} + +type RawSockaddrL2TPIP struct { + Family uint16 + Unused uint16 + Addr [4]byte /* in_addr */ + Conn_id uint32 + _ [4]uint8 +} + +type RawSockaddrL2TPIP6 struct { + Family uint16 + Unused uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + Conn_id uint32 +} + +type RawSockaddrIUCV struct { + Family uint16 + Port uint16 + Addr uint32 + Nodeid [8]int8 + User_id [8]int8 + Name [8]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type PacketMreq struct { + Ifindex int32 + Type uint16 + Alen uint16 + Address [8]uint8 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +type CanFilter struct { + Id uint32 + Mask uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofSockaddrHCI = 0x6 + SizeofSockaddrL2 = 0xe + SizeofSockaddrRFCOMM = 0xa + SizeofSockaddrCAN = 0x18 + SizeofSockaddrALG = 0x58 + SizeofSockaddrVM = 0x10 + SizeofSockaddrXDP = 0x10 + SizeofSockaddrPPPoX = 0x1e + SizeofSockaddrTIPC = 0x10 + SizeofSockaddrL2TPIP = 0x10 + SizeofSockaddrL2TPIP6 = 0x20 + SizeofSockaddrIUCV = 0x20 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofPacketMreq = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 + SizeofCanFilter = 0x8 +) + +const ( + NDA_UNSPEC = 0x0 + NDA_DST = 0x1 + NDA_LLADDR = 0x2 + NDA_CACHEINFO = 0x3 + NDA_PROBES = 0x4 + NDA_VLAN = 0x5 + NDA_PORT = 0x6 + NDA_VNI = 0x7 + NDA_IFINDEX = 0x8 + NDA_MASTER = 0x9 + NDA_LINK_NETNSID = 0xa + NDA_SRC_VNI = 0xb + NTF_USE = 0x1 + NTF_SELF = 0x2 + NTF_MASTER = 0x4 + NTF_PROXY = 0x8 + NTF_EXT_LEARNED = 0x10 + NTF_OFFLOADED = 0x20 + NTF_ROUTER = 0x80 + NUD_INCOMPLETE = 0x1 + NUD_REACHABLE = 0x2 + NUD_STALE = 0x4 + NUD_DELAY = 0x8 + NUD_PROBE = 0x10 + NUD_FAILED = 0x20 + NUD_NOARP = 0x40 + NUD_PERMANENT = 0x80 + NUD_NONE = 0x0 + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFA_FLAGS = 0x8 + IFA_RT_PRIORITY = 0x9 + IFA_TARGET_NETNSID = 0xa + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofIfaCacheinfo = 0x10 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 + SizeofNdMsg = 0xc +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + _ uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type IfaCacheinfo struct { + Prefered uint32 + Valid uint32 + Cstamp uint32 + Tstamp uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +type NdUseroptmsg struct { + Family uint8 + Pad1 uint8 + Opts_len uint16 + Ifindex int32 + Icmp_type uint8 + Icmp_code uint8 + Pad2 uint16 + Pad3 uint32 +} + +type NdMsg struct { + Family uint8 + Pad1 uint8 + Pad2 uint16 + Ifindex int32 + State uint16 + Flags uint8 + Type uint8 +} + +const ( + SizeofSockFilter = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +const SI_LOAD_SHIFT = 0x10 + +type Utsname struct { + Sysname [65]byte + Nodename [65]byte + Release [65]byte + Version [65]byte + Machine [65]byte + Domainname [65]byte +} + +const ( + AT_EMPTY_PATH = 0x1000 + AT_FDCWD = -0x64 + AT_NO_AUTOMOUNT = 0x800 + AT_REMOVEDIR = 0x200 + + AT_STATX_SYNC_AS_STAT = 0x0 + AT_STATX_FORCE_SYNC = 0x2000 + AT_STATX_DONT_SYNC = 0x4000 + + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 + + AT_EACCESS = 0x200 +) + +type OpenHow struct { + Flags uint64 + Mode uint64 + Resolve uint64 +} + +const SizeofOpenHow = 0x18 + +const ( + RESOLVE_BENEATH = 0x8 + RESOLVE_IN_ROOT = 0x10 + RESOLVE_NO_MAGICLINKS = 0x2 + RESOLVE_NO_SYMLINKS = 0x4 + RESOLVE_NO_XDEV = 0x1 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLIN = 0x1 + POLLPRI = 0x2 + POLLOUT = 0x4 + POLLERR = 0x8 + POLLHUP = 0x10 + POLLNVAL = 0x20 +) + +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + Addr_lsb uint16 + _ uint16 + Syscall int32 + Call_addr uint64 + Arch uint32 + _ [28]uint8 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + TASKSTATS_CMD_UNSPEC = 0x0 + TASKSTATS_CMD_GET = 0x1 + TASKSTATS_CMD_NEW = 0x2 + TASKSTATS_TYPE_UNSPEC = 0x0 + TASKSTATS_TYPE_PID = 0x1 + TASKSTATS_TYPE_TGID = 0x2 + TASKSTATS_TYPE_STATS = 0x3 + TASKSTATS_TYPE_AGGR_PID = 0x4 + TASKSTATS_TYPE_AGGR_TGID = 0x5 + TASKSTATS_TYPE_NULL = 0x6 + TASKSTATS_CMD_ATTR_UNSPEC = 0x0 + TASKSTATS_CMD_ATTR_PID = 0x1 + TASKSTATS_CMD_ATTR_TGID = 0x2 + TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 + TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 +) + +type CGroupStats struct { + Sleeping uint64 + Running uint64 + Stopped uint64 + Uninterruptible uint64 + Io_wait uint64 +} + +const ( + CGROUPSTATS_CMD_UNSPEC = 0x3 + CGROUPSTATS_CMD_GET = 0x4 + CGROUPSTATS_CMD_NEW = 0x5 + CGROUPSTATS_TYPE_UNSPEC = 0x0 + CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 + CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 + CGROUPSTATS_CMD_ATTR_FD = 0x1 +) + +type Genlmsghdr struct { + Cmd uint8 + Version uint8 + Reserved uint16 +} + +const ( + CTRL_CMD_UNSPEC = 0x0 + CTRL_CMD_NEWFAMILY = 0x1 + CTRL_CMD_DELFAMILY = 0x2 + CTRL_CMD_GETFAMILY = 0x3 + CTRL_CMD_NEWOPS = 0x4 + CTRL_CMD_DELOPS = 0x5 + CTRL_CMD_GETOPS = 0x6 + CTRL_CMD_NEWMCAST_GRP = 0x7 + CTRL_CMD_DELMCAST_GRP = 0x8 + CTRL_CMD_GETMCAST_GRP = 0x9 + CTRL_ATTR_UNSPEC = 0x0 + CTRL_ATTR_FAMILY_ID = 0x1 + CTRL_ATTR_FAMILY_NAME = 0x2 + CTRL_ATTR_VERSION = 0x3 + CTRL_ATTR_HDRSIZE = 0x4 + CTRL_ATTR_MAXATTR = 0x5 + CTRL_ATTR_OPS = 0x6 + CTRL_ATTR_MCAST_GROUPS = 0x7 + CTRL_ATTR_OP_UNSPEC = 0x0 + CTRL_ATTR_OP_ID = 0x1 + CTRL_ATTR_OP_FLAGS = 0x2 + CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 + CTRL_ATTR_MCAST_GRP_NAME = 0x1 + CTRL_ATTR_MCAST_GRP_ID = 0x2 +) + +const ( + _CPU_SETSIZE = 0x400 +) + +const ( + BDADDR_BREDR = 0x0 + BDADDR_LE_PUBLIC = 0x1 + BDADDR_LE_RANDOM = 0x2 +) + +type PerfEventAttr struct { + Type uint32 + Size uint32 + Config uint64 + Sample uint64 + Sample_type uint64 + Read_format uint64 + Bits uint64 + Wakeup uint32 + Bp_type uint32 + Ext1 uint64 + Ext2 uint64 + Branch_sample_type uint64 + Sample_regs_user uint64 + Sample_stack_user uint32 + Clockid int32 + Sample_regs_intr uint64 + Aux_watermark uint32 + Sample_max_stack uint16 + _ uint16 +} + +type PerfEventMmapPage struct { + Version uint32 + Compat_version uint32 + Lock uint32 + Index uint32 + Offset int64 + Time_enabled uint64 + Time_running uint64 + Capabilities uint64 + Pmc_width uint16 + Time_shift uint16 + Time_mult uint32 + Time_offset uint64 + Time_zero uint64 + Size uint32 + _ uint32 + Time_cycles uint64 + Time_mask uint64 + _ [928]uint8 + Data_head uint64 + Data_tail uint64 + Data_offset uint64 + Data_size uint64 + Aux_head uint64 + Aux_tail uint64 + Aux_offset uint64 + Aux_size uint64 +} + +const ( + PerfBitDisabled uint64 = CBitFieldMaskBit0 + PerfBitInherit = CBitFieldMaskBit1 + PerfBitPinned = CBitFieldMaskBit2 + PerfBitExclusive = CBitFieldMaskBit3 + PerfBitExcludeUser = CBitFieldMaskBit4 + PerfBitExcludeKernel = CBitFieldMaskBit5 + PerfBitExcludeHv = CBitFieldMaskBit6 + PerfBitExcludeIdle = CBitFieldMaskBit7 + PerfBitMmap = CBitFieldMaskBit8 + PerfBitComm = CBitFieldMaskBit9 + PerfBitFreq = CBitFieldMaskBit10 + PerfBitInheritStat = CBitFieldMaskBit11 + PerfBitEnableOnExec = CBitFieldMaskBit12 + PerfBitTask = CBitFieldMaskBit13 + PerfBitWatermark = CBitFieldMaskBit14 + PerfBitPreciseIPBit1 = CBitFieldMaskBit15 + PerfBitPreciseIPBit2 = CBitFieldMaskBit16 + PerfBitMmapData = CBitFieldMaskBit17 + PerfBitSampleIDAll = CBitFieldMaskBit18 + PerfBitExcludeHost = CBitFieldMaskBit19 + PerfBitExcludeGuest = CBitFieldMaskBit20 + PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 + PerfBitExcludeCallchainUser = CBitFieldMaskBit22 + PerfBitMmap2 = CBitFieldMaskBit23 + PerfBitCommExec = CBitFieldMaskBit24 + PerfBitUseClockID = CBitFieldMaskBit25 + PerfBitContextSwitch = CBitFieldMaskBit26 +) + +const ( + PERF_TYPE_HARDWARE = 0x0 + PERF_TYPE_SOFTWARE = 0x1 + PERF_TYPE_TRACEPOINT = 0x2 + PERF_TYPE_HW_CACHE = 0x3 + PERF_TYPE_RAW = 0x4 + PERF_TYPE_BREAKPOINT = 0x5 + PERF_TYPE_MAX = 0x6 + PERF_COUNT_HW_CPU_CYCLES = 0x0 + PERF_COUNT_HW_INSTRUCTIONS = 0x1 + PERF_COUNT_HW_CACHE_REFERENCES = 0x2 + PERF_COUNT_HW_CACHE_MISSES = 0x3 + PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 + PERF_COUNT_HW_BRANCH_MISSES = 0x5 + PERF_COUNT_HW_BUS_CYCLES = 0x6 + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 + PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 + PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 + PERF_COUNT_HW_MAX = 0xa + PERF_COUNT_HW_CACHE_L1D = 0x0 + PERF_COUNT_HW_CACHE_L1I = 0x1 + PERF_COUNT_HW_CACHE_LL = 0x2 + PERF_COUNT_HW_CACHE_DTLB = 0x3 + PERF_COUNT_HW_CACHE_ITLB = 0x4 + PERF_COUNT_HW_CACHE_BPU = 0x5 + PERF_COUNT_HW_CACHE_NODE = 0x6 + PERF_COUNT_HW_CACHE_MAX = 0x7 + PERF_COUNT_HW_CACHE_OP_READ = 0x0 + PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 + PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 + PERF_COUNT_HW_CACHE_OP_MAX = 0x3 + PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 + PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 + PERF_COUNT_HW_CACHE_RESULT_MAX = 0x2 + PERF_COUNT_SW_CPU_CLOCK = 0x0 + PERF_COUNT_SW_TASK_CLOCK = 0x1 + PERF_COUNT_SW_PAGE_FAULTS = 0x2 + PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 + PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 + PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 + PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 + PERF_COUNT_SW_EMULATION_FAULTS = 0x8 + PERF_COUNT_SW_DUMMY = 0x9 + PERF_COUNT_SW_BPF_OUTPUT = 0xa + PERF_COUNT_SW_MAX = 0xb + PERF_SAMPLE_IP = 0x1 + PERF_SAMPLE_TID = 0x2 + PERF_SAMPLE_TIME = 0x4 + PERF_SAMPLE_ADDR = 0x8 + PERF_SAMPLE_READ = 0x10 + PERF_SAMPLE_CALLCHAIN = 0x20 + PERF_SAMPLE_ID = 0x40 + PERF_SAMPLE_CPU = 0x80 + PERF_SAMPLE_PERIOD = 0x100 + PERF_SAMPLE_STREAM_ID = 0x200 + PERF_SAMPLE_RAW = 0x400 + PERF_SAMPLE_BRANCH_STACK = 0x800 + PERF_SAMPLE_REGS_USER = 0x1000 + PERF_SAMPLE_STACK_USER = 0x2000 + PERF_SAMPLE_WEIGHT = 0x4000 + PERF_SAMPLE_DATA_SRC = 0x8000 + PERF_SAMPLE_IDENTIFIER = 0x10000 + PERF_SAMPLE_TRANSACTION = 0x20000 + PERF_SAMPLE_REGS_INTR = 0x40000 + PERF_SAMPLE_PHYS_ADDR = 0x80000 + PERF_SAMPLE_AUX = 0x100000 + PERF_SAMPLE_CGROUP = 0x200000 + PERF_SAMPLE_MAX = 0x1000000 + PERF_SAMPLE_BRANCH_USER_SHIFT = 0x0 + PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 0x1 + PERF_SAMPLE_BRANCH_HV_SHIFT = 0x2 + PERF_SAMPLE_BRANCH_ANY_SHIFT = 0x3 + PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 0x4 + PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 0x5 + PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 0x6 + PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 0x7 + PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 0x8 + PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 0x9 + PERF_SAMPLE_BRANCH_COND_SHIFT = 0xa + PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 0xb + PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 0xc + PERF_SAMPLE_BRANCH_CALL_SHIFT = 0xd + PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 0xe + PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 0xf + PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 + PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 + PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x12 + PERF_SAMPLE_BRANCH_USER = 0x1 + PERF_SAMPLE_BRANCH_KERNEL = 0x2 + PERF_SAMPLE_BRANCH_HV = 0x4 + PERF_SAMPLE_BRANCH_ANY = 0x8 + PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 + PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 + PERF_SAMPLE_BRANCH_IND_CALL = 0x40 + PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 + PERF_SAMPLE_BRANCH_IN_TX = 0x100 + PERF_SAMPLE_BRANCH_NO_TX = 0x200 + PERF_SAMPLE_BRANCH_COND = 0x400 + PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 + PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 + PERF_SAMPLE_BRANCH_CALL = 0x2000 + PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 + PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 + PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 + PERF_SAMPLE_BRANCH_HW_INDEX = 0x20000 + PERF_SAMPLE_BRANCH_MAX = 0x40000 + PERF_BR_UNKNOWN = 0x0 + PERF_BR_COND = 0x1 + PERF_BR_UNCOND = 0x2 + PERF_BR_IND = 0x3 + PERF_BR_CALL = 0x4 + PERF_BR_IND_CALL = 0x5 + PERF_BR_RET = 0x6 + PERF_BR_SYSCALL = 0x7 + PERF_BR_SYSRET = 0x8 + PERF_BR_COND_CALL = 0x9 + PERF_BR_COND_RET = 0xa + PERF_BR_MAX = 0xb + PERF_SAMPLE_REGS_ABI_NONE = 0x0 + PERF_SAMPLE_REGS_ABI_32 = 0x1 + PERF_SAMPLE_REGS_ABI_64 = 0x2 + PERF_TXN_ELISION = 0x1 + PERF_TXN_TRANSACTION = 0x2 + PERF_TXN_SYNC = 0x4 + PERF_TXN_ASYNC = 0x8 + PERF_TXN_RETRY = 0x10 + PERF_TXN_CONFLICT = 0x20 + PERF_TXN_CAPACITY_WRITE = 0x40 + PERF_TXN_CAPACITY_READ = 0x80 + PERF_TXN_MAX = 0x100 + PERF_TXN_ABORT_MASK = -0x100000000 + PERF_TXN_ABORT_SHIFT = 0x20 + PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 + PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 + PERF_FORMAT_ID = 0x4 + PERF_FORMAT_GROUP = 0x8 + PERF_FORMAT_MAX = 0x10 + PERF_IOC_FLAG_GROUP = 0x1 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 + PERF_RECORD_MMAP2 = 0xa + PERF_RECORD_AUX = 0xb + PERF_RECORD_ITRACE_START = 0xc + PERF_RECORD_LOST_SAMPLES = 0xd + PERF_RECORD_SWITCH = 0xe + PERF_RECORD_SWITCH_CPU_WIDE = 0xf + PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_KSYMBOL = 0x11 + PERF_RECORD_BPF_EVENT = 0x12 + PERF_RECORD_CGROUP = 0x13 + PERF_RECORD_TEXT_POKE = 0x14 + PERF_RECORD_MAX = 0x15 + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0x0 + PERF_RECORD_KSYMBOL_TYPE_BPF = 0x1 + PERF_RECORD_KSYMBOL_TYPE_OOL = 0x2 + PERF_RECORD_KSYMBOL_TYPE_MAX = 0x3 + PERF_BPF_EVENT_UNKNOWN = 0x0 + PERF_BPF_EVENT_PROG_LOAD = 0x1 + PERF_BPF_EVENT_PROG_UNLOAD = 0x2 + PERF_BPF_EVENT_MAX = 0x3 + PERF_CONTEXT_HV = -0x20 + PERF_CONTEXT_KERNEL = -0x80 + PERF_CONTEXT_USER = -0x200 + PERF_CONTEXT_GUEST = -0x800 + PERF_CONTEXT_GUEST_KERNEL = -0x880 + PERF_CONTEXT_GUEST_USER = -0xa00 + PERF_CONTEXT_MAX = -0xfff +) + +type TCPMD5Sig struct { + Addr SockaddrStorage + Flags uint8 + Prefixlen uint8 + Keylen uint16 + _ uint32 + Key [80]uint8 +} + +type HDDriveCmdHdr struct { + Command uint8 + Number uint8 + Feature uint8 + Count uint8 +} + +type HDDriveID struct { + Config uint16 + Cyls uint16 + Reserved2 uint16 + Heads uint16 + Track_bytes uint16 + Sector_bytes uint16 + Sectors uint16 + Vendor0 uint16 + Vendor1 uint16 + Vendor2 uint16 + Serial_no [20]uint8 + Buf_type uint16 + Buf_size uint16 + Ecc_bytes uint16 + Fw_rev [8]uint8 + Model [40]uint8 + Max_multsect uint8 + Vendor3 uint8 + Dword_io uint16 + Vendor4 uint8 + Capability uint8 + Reserved50 uint16 + Vendor5 uint8 + TPIO uint8 + Vendor6 uint8 + TDMA uint8 + Field_valid uint16 + Cur_cyls uint16 + Cur_heads uint16 + Cur_sectors uint16 + Cur_capacity0 uint16 + Cur_capacity1 uint16 + Multsect uint8 + Multsect_valid uint8 + Lba_capacity uint32 + Dma_1word uint16 + Dma_mword uint16 + Eide_pio_modes uint16 + Eide_dma_min uint16 + Eide_dma_time uint16 + Eide_pio uint16 + Eide_pio_iordy uint16 + Words69_70 [2]uint16 + Words71_74 [4]uint16 + Queue_depth uint16 + Words76_79 [4]uint16 + Major_rev_num uint16 + Minor_rev_num uint16 + Command_set_1 uint16 + Command_set_2 uint16 + Cfsse uint16 + Cfs_enable_1 uint16 + Cfs_enable_2 uint16 + Csf_default uint16 + Dma_ultra uint16 + Trseuc uint16 + TrsEuc uint16 + CurAPMvalues uint16 + Mprc uint16 + Hw_config uint16 + Acoustic uint16 + Msrqs uint16 + Sxfert uint16 + Sal uint16 + Spg uint32 + Lba_capacity_2 uint64 + Words104_125 [22]uint16 + Last_lun uint16 + Word127 uint16 + Dlf uint16 + Csfo uint16 + Words130_155 [26]uint16 + Word156 uint16 + Words157_159 [3]uint16 + Cfa_power uint16 + Words161_175 [15]uint16 + Words176_205 [30]uint16 + Words206_254 [49]uint16 + Integrity_word uint16 +} + +const ( + ST_MANDLOCK = 0x40 + ST_NOATIME = 0x400 + ST_NODEV = 0x4 + ST_NODIRATIME = 0x800 + ST_NOEXEC = 0x8 + ST_NOSUID = 0x2 + ST_RDONLY = 0x1 + ST_RELATIME = 0x1000 + ST_SYNCHRONOUS = 0x10 +) + +type Tpacket2Hdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Nsec uint32 + Vlan_tci uint16 + Vlan_tpid uint16 + _ [4]uint8 +} + +type Tpacket3Hdr struct { + Next_offset uint32 + Sec uint32 + Nsec uint32 + Snaplen uint32 + Len uint32 + Status uint32 + Mac uint16 + Net uint16 + Hv1 TpacketHdrVariant1 + _ [8]uint8 +} + +type TpacketHdrVariant1 struct { + Rxhash uint32 + Vlan_tci uint32 + Vlan_tpid uint16 + _ uint16 +} + +type TpacketBlockDesc struct { + Version uint32 + To_priv uint32 + Hdr [40]byte +} + +type TpacketBDTS struct { + Sec uint32 + Usec uint32 +} + +type TpacketHdrV1 struct { + Block_status uint32 + Num_pkts uint32 + Offset_to_first_pkt uint32 + Blk_len uint32 + Seq_num uint64 + Ts_first_pkt TpacketBDTS + Ts_last_pkt TpacketBDTS +} + +type TpacketReq struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 +} + +type TpacketReq3 struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 + Retire_blk_tov uint32 + Sizeof_priv uint32 + Feature_req_word uint32 +} + +type TpacketStats struct { + Packets uint32 + Drops uint32 +} + +type TpacketStatsV3 struct { + Packets uint32 + Drops uint32 + Freeze_q_cnt uint32 +} + +type TpacketAuxdata struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Vlan_tci uint16 + Vlan_tpid uint16 +} + +const ( + TPACKET_V1 = 0x0 + TPACKET_V2 = 0x1 + TPACKET_V3 = 0x2 +) + +const ( + SizeofTpacket2Hdr = 0x20 + SizeofTpacket3Hdr = 0x30 + + SizeofTpacketStats = 0x8 + SizeofTpacketStatsV3 = 0xc +) + +const ( + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_TARGET_NETNSID = 0x2e + IFLA_CARRIER_UP_COUNT = 0x2f + IFLA_CARRIER_DOWN_COUNT = 0x30 + IFLA_NEW_IFINDEX = 0x31 + IFLA_MIN_MTU = 0x32 + IFLA_MAX_MTU = 0x33 + IFLA_PROP_LIST = 0x34 + IFLA_ALT_IFNAME = 0x35 + IFLA_PERM_ADDRESS = 0x36 + IFLA_PROTO_DOWN_REASON = 0x37 + IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 + IFLA_PROTO_DOWN_REASON_MASK = 0x1 + IFLA_PROTO_DOWN_REASON_VALUE = 0x2 + IFLA_PROTO_DOWN_REASON_MAX = 0x2 + IFLA_INET_UNSPEC = 0x0 + IFLA_INET_CONF = 0x1 + IFLA_INET6_UNSPEC = 0x0 + IFLA_INET6_FLAGS = 0x1 + IFLA_INET6_CONF = 0x2 + IFLA_INET6_STATS = 0x3 + IFLA_INET6_MCAST = 0x4 + IFLA_INET6_CACHEINFO = 0x5 + IFLA_INET6_ICMP6STATS = 0x6 + IFLA_INET6_TOKEN = 0x7 + IFLA_INET6_ADDR_GEN_MODE = 0x8 + IFLA_BR_UNSPEC = 0x0 + IFLA_BR_FORWARD_DELAY = 0x1 + IFLA_BR_HELLO_TIME = 0x2 + IFLA_BR_MAX_AGE = 0x3 + IFLA_BR_AGEING_TIME = 0x4 + IFLA_BR_STP_STATE = 0x5 + IFLA_BR_PRIORITY = 0x6 + IFLA_BR_VLAN_FILTERING = 0x7 + IFLA_BR_VLAN_PROTOCOL = 0x8 + IFLA_BR_GROUP_FWD_MASK = 0x9 + IFLA_BR_ROOT_ID = 0xa + IFLA_BR_BRIDGE_ID = 0xb + IFLA_BR_ROOT_PORT = 0xc + IFLA_BR_ROOT_PATH_COST = 0xd + IFLA_BR_TOPOLOGY_CHANGE = 0xe + IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 0xf + IFLA_BR_HELLO_TIMER = 0x10 + IFLA_BR_TCN_TIMER = 0x11 + IFLA_BR_TOPOLOGY_CHANGE_TIMER = 0x12 + IFLA_BR_GC_TIMER = 0x13 + IFLA_BR_GROUP_ADDR = 0x14 + IFLA_BR_FDB_FLUSH = 0x15 + IFLA_BR_MCAST_ROUTER = 0x16 + IFLA_BR_MCAST_SNOOPING = 0x17 + IFLA_BR_MCAST_QUERY_USE_IFADDR = 0x18 + IFLA_BR_MCAST_QUERIER = 0x19 + IFLA_BR_MCAST_HASH_ELASTICITY = 0x1a + IFLA_BR_MCAST_HASH_MAX = 0x1b + IFLA_BR_MCAST_LAST_MEMBER_CNT = 0x1c + IFLA_BR_MCAST_STARTUP_QUERY_CNT = 0x1d + IFLA_BR_MCAST_LAST_MEMBER_INTVL = 0x1e + IFLA_BR_MCAST_MEMBERSHIP_INTVL = 0x1f + IFLA_BR_MCAST_QUERIER_INTVL = 0x20 + IFLA_BR_MCAST_QUERY_INTVL = 0x21 + IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 0x22 + IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 0x23 + IFLA_BR_NF_CALL_IPTABLES = 0x24 + IFLA_BR_NF_CALL_IP6TABLES = 0x25 + IFLA_BR_NF_CALL_ARPTABLES = 0x26 + IFLA_BR_VLAN_DEFAULT_PVID = 0x27 + IFLA_BR_PAD = 0x28 + IFLA_BR_VLAN_STATS_ENABLED = 0x29 + IFLA_BR_MCAST_STATS_ENABLED = 0x2a + IFLA_BR_MCAST_IGMP_VERSION = 0x2b + IFLA_BR_MCAST_MLD_VERSION = 0x2c + IFLA_BR_VLAN_STATS_PER_PORT = 0x2d + IFLA_BR_MULTI_BOOLOPT = 0x2e + IFLA_BRPORT_UNSPEC = 0x0 + IFLA_BRPORT_STATE = 0x1 + IFLA_BRPORT_PRIORITY = 0x2 + IFLA_BRPORT_COST = 0x3 + IFLA_BRPORT_MODE = 0x4 + IFLA_BRPORT_GUARD = 0x5 + IFLA_BRPORT_PROTECT = 0x6 + IFLA_BRPORT_FAST_LEAVE = 0x7 + IFLA_BRPORT_LEARNING = 0x8 + IFLA_BRPORT_UNICAST_FLOOD = 0x9 + IFLA_BRPORT_PROXYARP = 0xa + IFLA_BRPORT_LEARNING_SYNC = 0xb + IFLA_BRPORT_PROXYARP_WIFI = 0xc + IFLA_BRPORT_ROOT_ID = 0xd + IFLA_BRPORT_BRIDGE_ID = 0xe + IFLA_BRPORT_DESIGNATED_PORT = 0xf + IFLA_BRPORT_DESIGNATED_COST = 0x10 + IFLA_BRPORT_ID = 0x11 + IFLA_BRPORT_NO = 0x12 + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 0x13 + IFLA_BRPORT_CONFIG_PENDING = 0x14 + IFLA_BRPORT_MESSAGE_AGE_TIMER = 0x15 + IFLA_BRPORT_FORWARD_DELAY_TIMER = 0x16 + IFLA_BRPORT_HOLD_TIMER = 0x17 + IFLA_BRPORT_FLUSH = 0x18 + IFLA_BRPORT_MULTICAST_ROUTER = 0x19 + IFLA_BRPORT_PAD = 0x1a + IFLA_BRPORT_MCAST_FLOOD = 0x1b + IFLA_BRPORT_MCAST_TO_UCAST = 0x1c + IFLA_BRPORT_VLAN_TUNNEL = 0x1d + IFLA_BRPORT_BCAST_FLOOD = 0x1e + IFLA_BRPORT_GROUP_FWD_MASK = 0x1f + IFLA_BRPORT_NEIGH_SUPPRESS = 0x20 + IFLA_BRPORT_ISOLATED = 0x21 + IFLA_BRPORT_BACKUP_PORT = 0x22 + IFLA_BRPORT_MRP_RING_OPEN = 0x23 + IFLA_BRPORT_MRP_IN_OPEN = 0x24 + IFLA_INFO_UNSPEC = 0x0 + IFLA_INFO_KIND = 0x1 + IFLA_INFO_DATA = 0x2 + IFLA_INFO_XSTATS = 0x3 + IFLA_INFO_SLAVE_KIND = 0x4 + IFLA_INFO_SLAVE_DATA = 0x5 + IFLA_VLAN_UNSPEC = 0x0 + IFLA_VLAN_ID = 0x1 + IFLA_VLAN_FLAGS = 0x2 + IFLA_VLAN_EGRESS_QOS = 0x3 + IFLA_VLAN_INGRESS_QOS = 0x4 + IFLA_VLAN_PROTOCOL = 0x5 + IFLA_VLAN_QOS_UNSPEC = 0x0 + IFLA_VLAN_QOS_MAPPING = 0x1 + IFLA_MACVLAN_UNSPEC = 0x0 + IFLA_MACVLAN_MODE = 0x1 + IFLA_MACVLAN_FLAGS = 0x2 + IFLA_MACVLAN_MACADDR_MODE = 0x3 + IFLA_MACVLAN_MACADDR = 0x4 + IFLA_MACVLAN_MACADDR_DATA = 0x5 + IFLA_MACVLAN_MACADDR_COUNT = 0x6 + IFLA_VRF_UNSPEC = 0x0 + IFLA_VRF_TABLE = 0x1 + IFLA_VRF_PORT_UNSPEC = 0x0 + IFLA_VRF_PORT_TABLE = 0x1 + IFLA_MACSEC_UNSPEC = 0x0 + IFLA_MACSEC_SCI = 0x1 + IFLA_MACSEC_PORT = 0x2 + IFLA_MACSEC_ICV_LEN = 0x3 + IFLA_MACSEC_CIPHER_SUITE = 0x4 + IFLA_MACSEC_WINDOW = 0x5 + IFLA_MACSEC_ENCODING_SA = 0x6 + IFLA_MACSEC_ENCRYPT = 0x7 + IFLA_MACSEC_PROTECT = 0x8 + IFLA_MACSEC_INC_SCI = 0x9 + IFLA_MACSEC_ES = 0xa + IFLA_MACSEC_SCB = 0xb + IFLA_MACSEC_REPLAY_PROTECT = 0xc + IFLA_MACSEC_VALIDATION = 0xd + IFLA_MACSEC_PAD = 0xe + IFLA_MACSEC_OFFLOAD = 0xf + IFLA_XFRM_UNSPEC = 0x0 + IFLA_XFRM_LINK = 0x1 + IFLA_XFRM_IF_ID = 0x2 + IFLA_IPVLAN_UNSPEC = 0x0 + IFLA_IPVLAN_MODE = 0x1 + IFLA_IPVLAN_FLAGS = 0x2 + IFLA_VXLAN_UNSPEC = 0x0 + IFLA_VXLAN_ID = 0x1 + IFLA_VXLAN_GROUP = 0x2 + IFLA_VXLAN_LINK = 0x3 + IFLA_VXLAN_LOCAL = 0x4 + IFLA_VXLAN_TTL = 0x5 + IFLA_VXLAN_TOS = 0x6 + IFLA_VXLAN_LEARNING = 0x7 + IFLA_VXLAN_AGEING = 0x8 + IFLA_VXLAN_LIMIT = 0x9 + IFLA_VXLAN_PORT_RANGE = 0xa + IFLA_VXLAN_PROXY = 0xb + IFLA_VXLAN_RSC = 0xc + IFLA_VXLAN_L2MISS = 0xd + IFLA_VXLAN_L3MISS = 0xe + IFLA_VXLAN_PORT = 0xf + IFLA_VXLAN_GROUP6 = 0x10 + IFLA_VXLAN_LOCAL6 = 0x11 + IFLA_VXLAN_UDP_CSUM = 0x12 + IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 0x13 + IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 0x14 + IFLA_VXLAN_REMCSUM_TX = 0x15 + IFLA_VXLAN_REMCSUM_RX = 0x16 + IFLA_VXLAN_GBP = 0x17 + IFLA_VXLAN_REMCSUM_NOPARTIAL = 0x18 + IFLA_VXLAN_COLLECT_METADATA = 0x19 + IFLA_VXLAN_LABEL = 0x1a + IFLA_VXLAN_GPE = 0x1b + IFLA_VXLAN_TTL_INHERIT = 0x1c + IFLA_VXLAN_DF = 0x1d + IFLA_GENEVE_UNSPEC = 0x0 + IFLA_GENEVE_ID = 0x1 + IFLA_GENEVE_REMOTE = 0x2 + IFLA_GENEVE_TTL = 0x3 + IFLA_GENEVE_TOS = 0x4 + IFLA_GENEVE_PORT = 0x5 + IFLA_GENEVE_COLLECT_METADATA = 0x6 + IFLA_GENEVE_REMOTE6 = 0x7 + IFLA_GENEVE_UDP_CSUM = 0x8 + IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 0x9 + IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 0xa + IFLA_GENEVE_LABEL = 0xb + IFLA_GENEVE_TTL_INHERIT = 0xc + IFLA_GENEVE_DF = 0xd + IFLA_BAREUDP_UNSPEC = 0x0 + IFLA_BAREUDP_PORT = 0x1 + IFLA_BAREUDP_ETHERTYPE = 0x2 + IFLA_BAREUDP_SRCPORT_MIN = 0x3 + IFLA_BAREUDP_MULTIPROTO_MODE = 0x4 + IFLA_PPP_UNSPEC = 0x0 + IFLA_PPP_DEV_FD = 0x1 + IFLA_GTP_UNSPEC = 0x0 + IFLA_GTP_FD0 = 0x1 + IFLA_GTP_FD1 = 0x2 + IFLA_GTP_PDP_HASHSIZE = 0x3 + IFLA_GTP_ROLE = 0x4 + IFLA_BOND_UNSPEC = 0x0 + IFLA_BOND_MODE = 0x1 + IFLA_BOND_ACTIVE_SLAVE = 0x2 + IFLA_BOND_MIIMON = 0x3 + IFLA_BOND_UPDELAY = 0x4 + IFLA_BOND_DOWNDELAY = 0x5 + IFLA_BOND_USE_CARRIER = 0x6 + IFLA_BOND_ARP_INTERVAL = 0x7 + IFLA_BOND_ARP_IP_TARGET = 0x8 + IFLA_BOND_ARP_VALIDATE = 0x9 + IFLA_BOND_ARP_ALL_TARGETS = 0xa + IFLA_BOND_PRIMARY = 0xb + IFLA_BOND_PRIMARY_RESELECT = 0xc + IFLA_BOND_FAIL_OVER_MAC = 0xd + IFLA_BOND_XMIT_HASH_POLICY = 0xe + IFLA_BOND_RESEND_IGMP = 0xf + IFLA_BOND_NUM_PEER_NOTIF = 0x10 + IFLA_BOND_ALL_SLAVES_ACTIVE = 0x11 + IFLA_BOND_MIN_LINKS = 0x12 + IFLA_BOND_LP_INTERVAL = 0x13 + IFLA_BOND_PACKETS_PER_SLAVE = 0x14 + IFLA_BOND_AD_LACP_RATE = 0x15 + IFLA_BOND_AD_SELECT = 0x16 + IFLA_BOND_AD_INFO = 0x17 + IFLA_BOND_AD_ACTOR_SYS_PRIO = 0x18 + IFLA_BOND_AD_USER_PORT_KEY = 0x19 + IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a + IFLA_BOND_TLB_DYNAMIC_LB = 0x1b + IFLA_BOND_PEER_NOTIF_DELAY = 0x1c + IFLA_BOND_AD_INFO_UNSPEC = 0x0 + IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 + IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 + IFLA_BOND_AD_INFO_ACTOR_KEY = 0x3 + IFLA_BOND_AD_INFO_PARTNER_KEY = 0x4 + IFLA_BOND_AD_INFO_PARTNER_MAC = 0x5 + IFLA_BOND_SLAVE_UNSPEC = 0x0 + IFLA_BOND_SLAVE_STATE = 0x1 + IFLA_BOND_SLAVE_MII_STATUS = 0x2 + IFLA_BOND_SLAVE_LINK_FAILURE_COUNT = 0x3 + IFLA_BOND_SLAVE_PERM_HWADDR = 0x4 + IFLA_BOND_SLAVE_QUEUE_ID = 0x5 + IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 + IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 + IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 + IFLA_VF_INFO_UNSPEC = 0x0 + IFLA_VF_INFO = 0x1 + IFLA_VF_UNSPEC = 0x0 + IFLA_VF_MAC = 0x1 + IFLA_VF_VLAN = 0x2 + IFLA_VF_TX_RATE = 0x3 + IFLA_VF_SPOOFCHK = 0x4 + IFLA_VF_LINK_STATE = 0x5 + IFLA_VF_RATE = 0x6 + IFLA_VF_RSS_QUERY_EN = 0x7 + IFLA_VF_STATS = 0x8 + IFLA_VF_TRUST = 0x9 + IFLA_VF_IB_NODE_GUID = 0xa + IFLA_VF_IB_PORT_GUID = 0xb + IFLA_VF_VLAN_LIST = 0xc + IFLA_VF_BROADCAST = 0xd + IFLA_VF_VLAN_INFO_UNSPEC = 0x0 + IFLA_VF_VLAN_INFO = 0x1 + IFLA_VF_LINK_STATE_AUTO = 0x0 + IFLA_VF_LINK_STATE_ENABLE = 0x1 + IFLA_VF_LINK_STATE_DISABLE = 0x2 + IFLA_VF_STATS_RX_PACKETS = 0x0 + IFLA_VF_STATS_TX_PACKETS = 0x1 + IFLA_VF_STATS_RX_BYTES = 0x2 + IFLA_VF_STATS_TX_BYTES = 0x3 + IFLA_VF_STATS_BROADCAST = 0x4 + IFLA_VF_STATS_MULTICAST = 0x5 + IFLA_VF_STATS_PAD = 0x6 + IFLA_VF_STATS_RX_DROPPED = 0x7 + IFLA_VF_STATS_TX_DROPPED = 0x8 + IFLA_VF_PORT_UNSPEC = 0x0 + IFLA_VF_PORT = 0x1 + IFLA_PORT_UNSPEC = 0x0 + IFLA_PORT_VF = 0x1 + IFLA_PORT_PROFILE = 0x2 + IFLA_PORT_VSI_TYPE = 0x3 + IFLA_PORT_INSTANCE_UUID = 0x4 + IFLA_PORT_HOST_UUID = 0x5 + IFLA_PORT_REQUEST = 0x6 + IFLA_PORT_RESPONSE = 0x7 + IFLA_IPOIB_UNSPEC = 0x0 + IFLA_IPOIB_PKEY = 0x1 + IFLA_IPOIB_MODE = 0x2 + IFLA_IPOIB_UMCAST = 0x3 + IFLA_HSR_UNSPEC = 0x0 + IFLA_HSR_SLAVE1 = 0x1 + IFLA_HSR_SLAVE2 = 0x2 + IFLA_HSR_MULTICAST_SPEC = 0x3 + IFLA_HSR_SUPERVISION_ADDR = 0x4 + IFLA_HSR_SEQ_NR = 0x5 + IFLA_HSR_VERSION = 0x6 + IFLA_HSR_PROTOCOL = 0x7 + IFLA_STATS_UNSPEC = 0x0 + IFLA_STATS_LINK_64 = 0x1 + IFLA_STATS_LINK_XSTATS = 0x2 + IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 + IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 + IFLA_STATS_AF_SPEC = 0x5 + IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 + IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 + IFLA_XDP_UNSPEC = 0x0 + IFLA_XDP_FD = 0x1 + IFLA_XDP_ATTACHED = 0x2 + IFLA_XDP_FLAGS = 0x3 + IFLA_XDP_PROG_ID = 0x4 + IFLA_XDP_DRV_PROG_ID = 0x5 + IFLA_XDP_SKB_PROG_ID = 0x6 + IFLA_XDP_HW_PROG_ID = 0x7 + IFLA_XDP_EXPECTED_FD = 0x8 + IFLA_EVENT_NONE = 0x0 + IFLA_EVENT_REBOOT = 0x1 + IFLA_EVENT_FEATURES = 0x2 + IFLA_EVENT_BONDING_FAILOVER = 0x3 + IFLA_EVENT_NOTIFY_PEERS = 0x4 + IFLA_EVENT_IGMP_RESEND = 0x5 + IFLA_EVENT_BONDING_OPTIONS = 0x6 + IFLA_TUN_UNSPEC = 0x0 + IFLA_TUN_OWNER = 0x1 + IFLA_TUN_GROUP = 0x2 + IFLA_TUN_TYPE = 0x3 + IFLA_TUN_PI = 0x4 + IFLA_TUN_VNET_HDR = 0x5 + IFLA_TUN_PERSIST = 0x6 + IFLA_TUN_MULTI_QUEUE = 0x7 + IFLA_TUN_NUM_QUEUES = 0x8 + IFLA_TUN_NUM_DISABLED_QUEUES = 0x9 + IFLA_RMNET_UNSPEC = 0x0 + IFLA_RMNET_MUX_ID = 0x1 + IFLA_RMNET_FLAGS = 0x2 +) + +const ( + NF_INET_PRE_ROUTING = 0x0 + NF_INET_LOCAL_IN = 0x1 + NF_INET_FORWARD = 0x2 + NF_INET_LOCAL_OUT = 0x3 + NF_INET_POST_ROUTING = 0x4 + NF_INET_NUMHOOKS = 0x5 +) + +const ( + NF_NETDEV_INGRESS = 0x0 + NF_NETDEV_NUMHOOKS = 0x1 +) + +const ( + NFPROTO_UNSPEC = 0x0 + NFPROTO_INET = 0x1 + NFPROTO_IPV4 = 0x2 + NFPROTO_ARP = 0x3 + NFPROTO_NETDEV = 0x5 + NFPROTO_BRIDGE = 0x7 + NFPROTO_IPV6 = 0xa + NFPROTO_DECNET = 0xc + NFPROTO_NUMPROTO = 0xd +) + +type Nfgenmsg struct { + Nfgen_family uint8 + Version uint8 + Res_id uint16 +} + +const ( + NFNL_BATCH_UNSPEC = 0x0 + NFNL_BATCH_GENID = 0x1 +) + +const ( + NFT_REG_VERDICT = 0x0 + NFT_REG_1 = 0x1 + NFT_REG_2 = 0x2 + NFT_REG_3 = 0x3 + NFT_REG_4 = 0x4 + NFT_REG32_00 = 0x8 + NFT_REG32_01 = 0x9 + NFT_REG32_02 = 0xa + NFT_REG32_03 = 0xb + NFT_REG32_04 = 0xc + NFT_REG32_05 = 0xd + NFT_REG32_06 = 0xe + NFT_REG32_07 = 0xf + NFT_REG32_08 = 0x10 + NFT_REG32_09 = 0x11 + NFT_REG32_10 = 0x12 + NFT_REG32_11 = 0x13 + NFT_REG32_12 = 0x14 + NFT_REG32_13 = 0x15 + NFT_REG32_14 = 0x16 + NFT_REG32_15 = 0x17 + NFT_CONTINUE = -0x1 + NFT_BREAK = -0x2 + NFT_JUMP = -0x3 + NFT_GOTO = -0x4 + NFT_RETURN = -0x5 + NFT_MSG_NEWTABLE = 0x0 + NFT_MSG_GETTABLE = 0x1 + NFT_MSG_DELTABLE = 0x2 + NFT_MSG_NEWCHAIN = 0x3 + NFT_MSG_GETCHAIN = 0x4 + NFT_MSG_DELCHAIN = 0x5 + NFT_MSG_NEWRULE = 0x6 + NFT_MSG_GETRULE = 0x7 + NFT_MSG_DELRULE = 0x8 + NFT_MSG_NEWSET = 0x9 + NFT_MSG_GETSET = 0xa + NFT_MSG_DELSET = 0xb + NFT_MSG_NEWSETELEM = 0xc + NFT_MSG_GETSETELEM = 0xd + NFT_MSG_DELSETELEM = 0xe + NFT_MSG_NEWGEN = 0xf + NFT_MSG_GETGEN = 0x10 + NFT_MSG_TRACE = 0x11 + NFT_MSG_NEWOBJ = 0x12 + NFT_MSG_GETOBJ = 0x13 + NFT_MSG_DELOBJ = 0x14 + NFT_MSG_GETOBJ_RESET = 0x15 + NFT_MSG_MAX = 0x19 + NFTA_LIST_UNSPEC = 0x0 + NFTA_LIST_ELEM = 0x1 + NFTA_HOOK_UNSPEC = 0x0 + NFTA_HOOK_HOOKNUM = 0x1 + NFTA_HOOK_PRIORITY = 0x2 + NFTA_HOOK_DEV = 0x3 + NFT_TABLE_F_DORMANT = 0x1 + NFTA_TABLE_UNSPEC = 0x0 + NFTA_TABLE_NAME = 0x1 + NFTA_TABLE_FLAGS = 0x2 + NFTA_TABLE_USE = 0x3 + NFTA_CHAIN_UNSPEC = 0x0 + NFTA_CHAIN_TABLE = 0x1 + NFTA_CHAIN_HANDLE = 0x2 + NFTA_CHAIN_NAME = 0x3 + NFTA_CHAIN_HOOK = 0x4 + NFTA_CHAIN_POLICY = 0x5 + NFTA_CHAIN_USE = 0x6 + NFTA_CHAIN_TYPE = 0x7 + NFTA_CHAIN_COUNTERS = 0x8 + NFTA_CHAIN_PAD = 0x9 + NFTA_RULE_UNSPEC = 0x0 + NFTA_RULE_TABLE = 0x1 + NFTA_RULE_CHAIN = 0x2 + NFTA_RULE_HANDLE = 0x3 + NFTA_RULE_EXPRESSIONS = 0x4 + NFTA_RULE_COMPAT = 0x5 + NFTA_RULE_POSITION = 0x6 + NFTA_RULE_USERDATA = 0x7 + NFTA_RULE_PAD = 0x8 + NFTA_RULE_ID = 0x9 + NFT_RULE_COMPAT_F_INV = 0x2 + NFT_RULE_COMPAT_F_MASK = 0x2 + NFTA_RULE_COMPAT_UNSPEC = 0x0 + NFTA_RULE_COMPAT_PROTO = 0x1 + NFTA_RULE_COMPAT_FLAGS = 0x2 + NFT_SET_ANONYMOUS = 0x1 + NFT_SET_CONSTANT = 0x2 + NFT_SET_INTERVAL = 0x4 + NFT_SET_MAP = 0x8 + NFT_SET_TIMEOUT = 0x10 + NFT_SET_EVAL = 0x20 + NFT_SET_OBJECT = 0x40 + NFT_SET_POL_PERFORMANCE = 0x0 + NFT_SET_POL_MEMORY = 0x1 + NFTA_SET_DESC_UNSPEC = 0x0 + NFTA_SET_DESC_SIZE = 0x1 + NFTA_SET_UNSPEC = 0x0 + NFTA_SET_TABLE = 0x1 + NFTA_SET_NAME = 0x2 + NFTA_SET_FLAGS = 0x3 + NFTA_SET_KEY_TYPE = 0x4 + NFTA_SET_KEY_LEN = 0x5 + NFTA_SET_DATA_TYPE = 0x6 + NFTA_SET_DATA_LEN = 0x7 + NFTA_SET_POLICY = 0x8 + NFTA_SET_DESC = 0x9 + NFTA_SET_ID = 0xa + NFTA_SET_TIMEOUT = 0xb + NFTA_SET_GC_INTERVAL = 0xc + NFTA_SET_USERDATA = 0xd + NFTA_SET_PAD = 0xe + NFTA_SET_OBJ_TYPE = 0xf + NFT_SET_ELEM_INTERVAL_END = 0x1 + NFTA_SET_ELEM_UNSPEC = 0x0 + NFTA_SET_ELEM_KEY = 0x1 + NFTA_SET_ELEM_DATA = 0x2 + NFTA_SET_ELEM_FLAGS = 0x3 + NFTA_SET_ELEM_TIMEOUT = 0x4 + NFTA_SET_ELEM_EXPIRATION = 0x5 + NFTA_SET_ELEM_USERDATA = 0x6 + NFTA_SET_ELEM_EXPR = 0x7 + NFTA_SET_ELEM_PAD = 0x8 + NFTA_SET_ELEM_OBJREF = 0x9 + NFTA_SET_ELEM_LIST_UNSPEC = 0x0 + NFTA_SET_ELEM_LIST_TABLE = 0x1 + NFTA_SET_ELEM_LIST_SET = 0x2 + NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 + NFTA_SET_ELEM_LIST_SET_ID = 0x4 + NFT_DATA_VALUE = 0x0 + NFT_DATA_VERDICT = 0xffffff00 + NFTA_DATA_UNSPEC = 0x0 + NFTA_DATA_VALUE = 0x1 + NFTA_DATA_VERDICT = 0x2 + NFTA_VERDICT_UNSPEC = 0x0 + NFTA_VERDICT_CODE = 0x1 + NFTA_VERDICT_CHAIN = 0x2 + NFTA_EXPR_UNSPEC = 0x0 + NFTA_EXPR_NAME = 0x1 + NFTA_EXPR_DATA = 0x2 + NFTA_IMMEDIATE_UNSPEC = 0x0 + NFTA_IMMEDIATE_DREG = 0x1 + NFTA_IMMEDIATE_DATA = 0x2 + NFTA_BITWISE_UNSPEC = 0x0 + NFTA_BITWISE_SREG = 0x1 + NFTA_BITWISE_DREG = 0x2 + NFTA_BITWISE_LEN = 0x3 + NFTA_BITWISE_MASK = 0x4 + NFTA_BITWISE_XOR = 0x5 + NFT_BYTEORDER_NTOH = 0x0 + NFT_BYTEORDER_HTON = 0x1 + NFTA_BYTEORDER_UNSPEC = 0x0 + NFTA_BYTEORDER_SREG = 0x1 + NFTA_BYTEORDER_DREG = 0x2 + NFTA_BYTEORDER_OP = 0x3 + NFTA_BYTEORDER_LEN = 0x4 + NFTA_BYTEORDER_SIZE = 0x5 + NFT_CMP_EQ = 0x0 + NFT_CMP_NEQ = 0x1 + NFT_CMP_LT = 0x2 + NFT_CMP_LTE = 0x3 + NFT_CMP_GT = 0x4 + NFT_CMP_GTE = 0x5 + NFTA_CMP_UNSPEC = 0x0 + NFTA_CMP_SREG = 0x1 + NFTA_CMP_OP = 0x2 + NFTA_CMP_DATA = 0x3 + NFT_RANGE_EQ = 0x0 + NFT_RANGE_NEQ = 0x1 + NFTA_RANGE_UNSPEC = 0x0 + NFTA_RANGE_SREG = 0x1 + NFTA_RANGE_OP = 0x2 + NFTA_RANGE_FROM_DATA = 0x3 + NFTA_RANGE_TO_DATA = 0x4 + NFT_LOOKUP_F_INV = 0x1 + NFTA_LOOKUP_UNSPEC = 0x0 + NFTA_LOOKUP_SET = 0x1 + NFTA_LOOKUP_SREG = 0x2 + NFTA_LOOKUP_DREG = 0x3 + NFTA_LOOKUP_SET_ID = 0x4 + NFTA_LOOKUP_FLAGS = 0x5 + NFT_DYNSET_OP_ADD = 0x0 + NFT_DYNSET_OP_UPDATE = 0x1 + NFT_DYNSET_F_INV = 0x1 + NFTA_DYNSET_UNSPEC = 0x0 + NFTA_DYNSET_SET_NAME = 0x1 + NFTA_DYNSET_SET_ID = 0x2 + NFTA_DYNSET_OP = 0x3 + NFTA_DYNSET_SREG_KEY = 0x4 + NFTA_DYNSET_SREG_DATA = 0x5 + NFTA_DYNSET_TIMEOUT = 0x6 + NFTA_DYNSET_EXPR = 0x7 + NFTA_DYNSET_PAD = 0x8 + NFTA_DYNSET_FLAGS = 0x9 + NFT_PAYLOAD_LL_HEADER = 0x0 + NFT_PAYLOAD_NETWORK_HEADER = 0x1 + NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 + NFT_PAYLOAD_CSUM_NONE = 0x0 + NFT_PAYLOAD_CSUM_INET = 0x1 + NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 + NFTA_PAYLOAD_UNSPEC = 0x0 + NFTA_PAYLOAD_DREG = 0x1 + NFTA_PAYLOAD_BASE = 0x2 + NFTA_PAYLOAD_OFFSET = 0x3 + NFTA_PAYLOAD_LEN = 0x4 + NFTA_PAYLOAD_SREG = 0x5 + NFTA_PAYLOAD_CSUM_TYPE = 0x6 + NFTA_PAYLOAD_CSUM_OFFSET = 0x7 + NFTA_PAYLOAD_CSUM_FLAGS = 0x8 + NFT_EXTHDR_F_PRESENT = 0x1 + NFT_EXTHDR_OP_IPV6 = 0x0 + NFT_EXTHDR_OP_TCPOPT = 0x1 + NFTA_EXTHDR_UNSPEC = 0x0 + NFTA_EXTHDR_DREG = 0x1 + NFTA_EXTHDR_TYPE = 0x2 + NFTA_EXTHDR_OFFSET = 0x3 + NFTA_EXTHDR_LEN = 0x4 + NFTA_EXTHDR_FLAGS = 0x5 + NFTA_EXTHDR_OP = 0x6 + NFTA_EXTHDR_SREG = 0x7 + NFT_META_LEN = 0x0 + NFT_META_PROTOCOL = 0x1 + NFT_META_PRIORITY = 0x2 + NFT_META_MARK = 0x3 + NFT_META_IIF = 0x4 + NFT_META_OIF = 0x5 + NFT_META_IIFNAME = 0x6 + NFT_META_OIFNAME = 0x7 + NFT_META_IIFTYPE = 0x8 + NFT_META_OIFTYPE = 0x9 + NFT_META_SKUID = 0xa + NFT_META_SKGID = 0xb + NFT_META_NFTRACE = 0xc + NFT_META_RTCLASSID = 0xd + NFT_META_SECMARK = 0xe + NFT_META_NFPROTO = 0xf + NFT_META_L4PROTO = 0x10 + NFT_META_BRI_IIFNAME = 0x11 + NFT_META_BRI_OIFNAME = 0x12 + NFT_META_PKTTYPE = 0x13 + NFT_META_CPU = 0x14 + NFT_META_IIFGROUP = 0x15 + NFT_META_OIFGROUP = 0x16 + NFT_META_CGROUP = 0x17 + NFT_META_PRANDOM = 0x18 + NFT_RT_CLASSID = 0x0 + NFT_RT_NEXTHOP4 = 0x1 + NFT_RT_NEXTHOP6 = 0x2 + NFT_RT_TCPMSS = 0x3 + NFT_HASH_JENKINS = 0x0 + NFT_HASH_SYM = 0x1 + NFTA_HASH_UNSPEC = 0x0 + NFTA_HASH_SREG = 0x1 + NFTA_HASH_DREG = 0x2 + NFTA_HASH_LEN = 0x3 + NFTA_HASH_MODULUS = 0x4 + NFTA_HASH_SEED = 0x5 + NFTA_HASH_OFFSET = 0x6 + NFTA_HASH_TYPE = 0x7 + NFTA_META_UNSPEC = 0x0 + NFTA_META_DREG = 0x1 + NFTA_META_KEY = 0x2 + NFTA_META_SREG = 0x3 + NFTA_RT_UNSPEC = 0x0 + NFTA_RT_DREG = 0x1 + NFTA_RT_KEY = 0x2 + NFT_CT_STATE = 0x0 + NFT_CT_DIRECTION = 0x1 + NFT_CT_STATUS = 0x2 + NFT_CT_MARK = 0x3 + NFT_CT_SECMARK = 0x4 + NFT_CT_EXPIRATION = 0x5 + NFT_CT_HELPER = 0x6 + NFT_CT_L3PROTOCOL = 0x7 + NFT_CT_SRC = 0x8 + NFT_CT_DST = 0x9 + NFT_CT_PROTOCOL = 0xa + NFT_CT_PROTO_SRC = 0xb + NFT_CT_PROTO_DST = 0xc + NFT_CT_LABELS = 0xd + NFT_CT_PKTS = 0xe + NFT_CT_BYTES = 0xf + NFT_CT_AVGPKT = 0x10 + NFT_CT_ZONE = 0x11 + NFT_CT_EVENTMASK = 0x12 + NFTA_CT_UNSPEC = 0x0 + NFTA_CT_DREG = 0x1 + NFTA_CT_KEY = 0x2 + NFTA_CT_DIRECTION = 0x3 + NFTA_CT_SREG = 0x4 + NFT_LIMIT_PKTS = 0x0 + NFT_LIMIT_PKT_BYTES = 0x1 + NFT_LIMIT_F_INV = 0x1 + NFTA_LIMIT_UNSPEC = 0x0 + NFTA_LIMIT_RATE = 0x1 + NFTA_LIMIT_UNIT = 0x2 + NFTA_LIMIT_BURST = 0x3 + NFTA_LIMIT_TYPE = 0x4 + NFTA_LIMIT_FLAGS = 0x5 + NFTA_LIMIT_PAD = 0x6 + NFTA_COUNTER_UNSPEC = 0x0 + NFTA_COUNTER_BYTES = 0x1 + NFTA_COUNTER_PACKETS = 0x2 + NFTA_COUNTER_PAD = 0x3 + NFTA_LOG_UNSPEC = 0x0 + NFTA_LOG_GROUP = 0x1 + NFTA_LOG_PREFIX = 0x2 + NFTA_LOG_SNAPLEN = 0x3 + NFTA_LOG_QTHRESHOLD = 0x4 + NFTA_LOG_LEVEL = 0x5 + NFTA_LOG_FLAGS = 0x6 + NFTA_QUEUE_UNSPEC = 0x0 + NFTA_QUEUE_NUM = 0x1 + NFTA_QUEUE_TOTAL = 0x2 + NFTA_QUEUE_FLAGS = 0x3 + NFTA_QUEUE_SREG_QNUM = 0x4 + NFT_QUOTA_F_INV = 0x1 + NFT_QUOTA_F_DEPLETED = 0x2 + NFTA_QUOTA_UNSPEC = 0x0 + NFTA_QUOTA_BYTES = 0x1 + NFTA_QUOTA_FLAGS = 0x2 + NFTA_QUOTA_PAD = 0x3 + NFTA_QUOTA_CONSUMED = 0x4 + NFT_REJECT_ICMP_UNREACH = 0x0 + NFT_REJECT_TCP_RST = 0x1 + NFT_REJECT_ICMPX_UNREACH = 0x2 + NFT_REJECT_ICMPX_NO_ROUTE = 0x0 + NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 + NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 + NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 + NFTA_REJECT_UNSPEC = 0x0 + NFTA_REJECT_TYPE = 0x1 + NFTA_REJECT_ICMP_CODE = 0x2 + NFT_NAT_SNAT = 0x0 + NFT_NAT_DNAT = 0x1 + NFTA_NAT_UNSPEC = 0x0 + NFTA_NAT_TYPE = 0x1 + NFTA_NAT_FAMILY = 0x2 + NFTA_NAT_REG_ADDR_MIN = 0x3 + NFTA_NAT_REG_ADDR_MAX = 0x4 + NFTA_NAT_REG_PROTO_MIN = 0x5 + NFTA_NAT_REG_PROTO_MAX = 0x6 + NFTA_NAT_FLAGS = 0x7 + NFTA_MASQ_UNSPEC = 0x0 + NFTA_MASQ_FLAGS = 0x1 + NFTA_MASQ_REG_PROTO_MIN = 0x2 + NFTA_MASQ_REG_PROTO_MAX = 0x3 + NFTA_REDIR_UNSPEC = 0x0 + NFTA_REDIR_REG_PROTO_MIN = 0x1 + NFTA_REDIR_REG_PROTO_MAX = 0x2 + NFTA_REDIR_FLAGS = 0x3 + NFTA_DUP_UNSPEC = 0x0 + NFTA_DUP_SREG_ADDR = 0x1 + NFTA_DUP_SREG_DEV = 0x2 + NFTA_FWD_UNSPEC = 0x0 + NFTA_FWD_SREG_DEV = 0x1 + NFTA_OBJREF_UNSPEC = 0x0 + NFTA_OBJREF_IMM_TYPE = 0x1 + NFTA_OBJREF_IMM_NAME = 0x2 + NFTA_OBJREF_SET_SREG = 0x3 + NFTA_OBJREF_SET_NAME = 0x4 + NFTA_OBJREF_SET_ID = 0x5 + NFTA_GEN_UNSPEC = 0x0 + NFTA_GEN_ID = 0x1 + NFTA_GEN_PROC_PID = 0x2 + NFTA_GEN_PROC_NAME = 0x3 + NFTA_FIB_UNSPEC = 0x0 + NFTA_FIB_DREG = 0x1 + NFTA_FIB_RESULT = 0x2 + NFTA_FIB_FLAGS = 0x3 + NFT_FIB_RESULT_UNSPEC = 0x0 + NFT_FIB_RESULT_OIF = 0x1 + NFT_FIB_RESULT_OIFNAME = 0x2 + NFT_FIB_RESULT_ADDRTYPE = 0x3 + NFTA_FIB_F_SADDR = 0x1 + NFTA_FIB_F_DADDR = 0x2 + NFTA_FIB_F_MARK = 0x4 + NFTA_FIB_F_IIF = 0x8 + NFTA_FIB_F_OIF = 0x10 + NFTA_FIB_F_PRESENT = 0x20 + NFTA_CT_HELPER_UNSPEC = 0x0 + NFTA_CT_HELPER_NAME = 0x1 + NFTA_CT_HELPER_L3PROTO = 0x2 + NFTA_CT_HELPER_L4PROTO = 0x3 + NFTA_OBJ_UNSPEC = 0x0 + NFTA_OBJ_TABLE = 0x1 + NFTA_OBJ_NAME = 0x2 + NFTA_OBJ_TYPE = 0x3 + NFTA_OBJ_DATA = 0x4 + NFTA_OBJ_USE = 0x5 + NFTA_TRACE_UNSPEC = 0x0 + NFTA_TRACE_TABLE = 0x1 + NFTA_TRACE_CHAIN = 0x2 + NFTA_TRACE_RULE_HANDLE = 0x3 + NFTA_TRACE_TYPE = 0x4 + NFTA_TRACE_VERDICT = 0x5 + NFTA_TRACE_ID = 0x6 + NFTA_TRACE_LL_HEADER = 0x7 + NFTA_TRACE_NETWORK_HEADER = 0x8 + NFTA_TRACE_TRANSPORT_HEADER = 0x9 + NFTA_TRACE_IIF = 0xa + NFTA_TRACE_IIFTYPE = 0xb + NFTA_TRACE_OIF = 0xc + NFTA_TRACE_OIFTYPE = 0xd + NFTA_TRACE_MARK = 0xe + NFTA_TRACE_NFPROTO = 0xf + NFTA_TRACE_POLICY = 0x10 + NFTA_TRACE_PAD = 0x11 + NFT_TRACETYPE_UNSPEC = 0x0 + NFT_TRACETYPE_POLICY = 0x1 + NFT_TRACETYPE_RETURN = 0x2 + NFT_TRACETYPE_RULE = 0x3 + NFTA_NG_UNSPEC = 0x0 + NFTA_NG_DREG = 0x1 + NFTA_NG_MODULUS = 0x2 + NFTA_NG_TYPE = 0x3 + NFTA_NG_OFFSET = 0x4 + NFT_NG_INCREMENTAL = 0x0 + NFT_NG_RANDOM = 0x1 +) + +const ( + NFTA_TARGET_UNSPEC = 0x0 + NFTA_TARGET_NAME = 0x1 + NFTA_TARGET_REV = 0x2 + NFTA_TARGET_INFO = 0x3 + NFTA_MATCH_UNSPEC = 0x0 + NFTA_MATCH_NAME = 0x1 + NFTA_MATCH_REV = 0x2 + NFTA_MATCH_INFO = 0x3 + NFTA_COMPAT_UNSPEC = 0x0 + NFTA_COMPAT_NAME = 0x1 + NFTA_COMPAT_REV = 0x2 + NFTA_COMPAT_TYPE = 0x3 +) + +type RTCTime struct { + Sec int32 + Min int32 + Hour int32 + Mday int32 + Mon int32 + Year int32 + Wday int32 + Yday int32 + Isdst int32 +} + +type RTCWkAlrm struct { + Enabled uint8 + Pending uint8 + Time RTCTime +} + +type BlkpgIoctlArg struct { + Op int32 + Flags int32 + Datalen int32 + Data *byte +} + +const ( + BLKPG_ADD_PARTITION = 0x1 + BLKPG_DEL_PARTITION = 0x2 + BLKPG_RESIZE_PARTITION = 0x3 +) + +const ( + NETNSA_NONE = 0x0 + NETNSA_NSID = 0x1 + NETNSA_PID = 0x2 + NETNSA_FD = 0x3 + NETNSA_TARGET_NSID = 0x4 + NETNSA_CURRENT_NSID = 0x5 +) + +type XDPRingOffset struct { + Producer uint64 + Consumer uint64 + Desc uint64 + Flags uint64 +} + +type XDPMmapOffsets struct { + Rx XDPRingOffset + Tx XDPRingOffset + Fr XDPRingOffset + Cr XDPRingOffset +} + +type XDPStatistics struct { + Rx_dropped uint64 + Rx_invalid_descs uint64 + Tx_invalid_descs uint64 + Rx_ring_full uint64 + Rx_fill_ring_empty_descs uint64 + Tx_ring_empty_descs uint64 +} + +type XDPDesc struct { + Addr uint64 + Len uint32 + Options uint32 +} + +const ( + NCSI_CMD_UNSPEC = 0x0 + NCSI_CMD_PKG_INFO = 0x1 + NCSI_CMD_SET_INTERFACE = 0x2 + NCSI_CMD_CLEAR_INTERFACE = 0x3 + NCSI_ATTR_UNSPEC = 0x0 + NCSI_ATTR_IFINDEX = 0x1 + NCSI_ATTR_PACKAGE_LIST = 0x2 + NCSI_ATTR_PACKAGE_ID = 0x3 + NCSI_ATTR_CHANNEL_ID = 0x4 + NCSI_PKG_ATTR_UNSPEC = 0x0 + NCSI_PKG_ATTR = 0x1 + NCSI_PKG_ATTR_ID = 0x2 + NCSI_PKG_ATTR_FORCED = 0x3 + NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 + NCSI_CHANNEL_ATTR_UNSPEC = 0x0 + NCSI_CHANNEL_ATTR = 0x1 + NCSI_CHANNEL_ATTR_ID = 0x2 + NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 + NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 + NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 + NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 + NCSI_CHANNEL_ATTR_ACTIVE = 0x7 + NCSI_CHANNEL_ATTR_FORCED = 0x8 + NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 + NCSI_CHANNEL_ATTR_VLAN_ID = 0xa +) + +type ScmTimestamping struct { + Ts [3]Timespec +} + +const ( + SOF_TIMESTAMPING_TX_HARDWARE = 0x1 + SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 + SOF_TIMESTAMPING_RX_HARDWARE = 0x4 + SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 + SOF_TIMESTAMPING_SOFTWARE = 0x10 + SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 + SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 + SOF_TIMESTAMPING_OPT_ID = 0x80 + SOF_TIMESTAMPING_TX_SCHED = 0x100 + SOF_TIMESTAMPING_TX_ACK = 0x200 + SOF_TIMESTAMPING_OPT_CMSG = 0x400 + SOF_TIMESTAMPING_OPT_TSONLY = 0x800 + SOF_TIMESTAMPING_OPT_STATS = 0x1000 + SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 + SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 + + SOF_TIMESTAMPING_LAST = 0x4000 + SOF_TIMESTAMPING_MASK = 0x7fff + + SCM_TSTAMP_SND = 0x0 + SCM_TSTAMP_SCHED = 0x1 + SCM_TSTAMP_ACK = 0x2 +) + +type SockExtendedErr struct { + Errno uint32 + Origin uint8 + Type uint8 + Code uint8 + Pad uint8 + Info uint32 + Data uint32 +} + +type FanotifyEventMetadata struct { + Event_len uint32 + Vers uint8 + Reserved uint8 + Metadata_len uint16 + Mask uint64 + Fd int32 + Pid int32 +} + +type FanotifyResponse struct { + Fd int32 + Response uint32 +} + +const ( + CRYPTO_MSG_BASE = 0x10 + CRYPTO_MSG_NEWALG = 0x10 + CRYPTO_MSG_DELALG = 0x11 + CRYPTO_MSG_UPDATEALG = 0x12 + CRYPTO_MSG_GETALG = 0x13 + CRYPTO_MSG_DELRNG = 0x14 + CRYPTO_MSG_GETSTAT = 0x15 +) + +const ( + CRYPTOCFGA_UNSPEC = 0x0 + CRYPTOCFGA_PRIORITY_VAL = 0x1 + CRYPTOCFGA_REPORT_LARVAL = 0x2 + CRYPTOCFGA_REPORT_HASH = 0x3 + CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 + CRYPTOCFGA_REPORT_AEAD = 0x5 + CRYPTOCFGA_REPORT_COMPRESS = 0x6 + CRYPTOCFGA_REPORT_RNG = 0x7 + CRYPTOCFGA_REPORT_CIPHER = 0x8 + CRYPTOCFGA_REPORT_AKCIPHER = 0x9 + CRYPTOCFGA_REPORT_KPP = 0xa + CRYPTOCFGA_REPORT_ACOMP = 0xb + CRYPTOCFGA_STAT_LARVAL = 0xc + CRYPTOCFGA_STAT_HASH = 0xd + CRYPTOCFGA_STAT_BLKCIPHER = 0xe + CRYPTOCFGA_STAT_AEAD = 0xf + CRYPTOCFGA_STAT_COMPRESS = 0x10 + CRYPTOCFGA_STAT_RNG = 0x11 + CRYPTOCFGA_STAT_CIPHER = 0x12 + CRYPTOCFGA_STAT_AKCIPHER = 0x13 + CRYPTOCFGA_STAT_KPP = 0x14 + CRYPTOCFGA_STAT_ACOMP = 0x15 +) + +const ( + BPF_REG_0 = 0x0 + BPF_REG_1 = 0x1 + BPF_REG_2 = 0x2 + BPF_REG_3 = 0x3 + BPF_REG_4 = 0x4 + BPF_REG_5 = 0x5 + BPF_REG_6 = 0x6 + BPF_REG_7 = 0x7 + BPF_REG_8 = 0x8 + BPF_REG_9 = 0x9 + BPF_REG_10 = 0xa + BPF_MAP_CREATE = 0x0 + BPF_MAP_LOOKUP_ELEM = 0x1 + BPF_MAP_UPDATE_ELEM = 0x2 + BPF_MAP_DELETE_ELEM = 0x3 + BPF_MAP_GET_NEXT_KEY = 0x4 + BPF_PROG_LOAD = 0x5 + BPF_OBJ_PIN = 0x6 + BPF_OBJ_GET = 0x7 + BPF_PROG_ATTACH = 0x8 + BPF_PROG_DETACH = 0x9 + BPF_PROG_TEST_RUN = 0xa + BPF_PROG_GET_NEXT_ID = 0xb + BPF_MAP_GET_NEXT_ID = 0xc + BPF_PROG_GET_FD_BY_ID = 0xd + BPF_MAP_GET_FD_BY_ID = 0xe + BPF_OBJ_GET_INFO_BY_FD = 0xf + BPF_PROG_QUERY = 0x10 + BPF_RAW_TRACEPOINT_OPEN = 0x11 + BPF_BTF_LOAD = 0x12 + BPF_BTF_GET_FD_BY_ID = 0x13 + BPF_TASK_FD_QUERY = 0x14 + BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 + BPF_MAP_FREEZE = 0x16 + BPF_BTF_GET_NEXT_ID = 0x17 + BPF_MAP_LOOKUP_BATCH = 0x18 + BPF_MAP_LOOKUP_AND_DELETE_BATCH = 0x19 + BPF_MAP_UPDATE_BATCH = 0x1a + BPF_MAP_DELETE_BATCH = 0x1b + BPF_LINK_CREATE = 0x1c + BPF_LINK_UPDATE = 0x1d + BPF_LINK_GET_FD_BY_ID = 0x1e + BPF_LINK_GET_NEXT_ID = 0x1f + BPF_ENABLE_STATS = 0x20 + BPF_ITER_CREATE = 0x21 + BPF_LINK_DETACH = 0x22 + BPF_PROG_BIND_MAP = 0x23 + BPF_MAP_TYPE_UNSPEC = 0x0 + BPF_MAP_TYPE_HASH = 0x1 + BPF_MAP_TYPE_ARRAY = 0x2 + BPF_MAP_TYPE_PROG_ARRAY = 0x3 + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 + BPF_MAP_TYPE_PERCPU_HASH = 0x5 + BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 + BPF_MAP_TYPE_STACK_TRACE = 0x7 + BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 + BPF_MAP_TYPE_LRU_HASH = 0x9 + BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa + BPF_MAP_TYPE_LPM_TRIE = 0xb + BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc + BPF_MAP_TYPE_HASH_OF_MAPS = 0xd + BPF_MAP_TYPE_DEVMAP = 0xe + BPF_MAP_TYPE_SOCKMAP = 0xf + BPF_MAP_TYPE_CPUMAP = 0x10 + BPF_MAP_TYPE_XSKMAP = 0x11 + BPF_MAP_TYPE_SOCKHASH = 0x12 + BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 + BPF_MAP_TYPE_QUEUE = 0x16 + BPF_MAP_TYPE_STACK = 0x17 + BPF_MAP_TYPE_SK_STORAGE = 0x18 + BPF_MAP_TYPE_DEVMAP_HASH = 0x19 + BPF_MAP_TYPE_STRUCT_OPS = 0x1a + BPF_MAP_TYPE_RINGBUF = 0x1b + BPF_MAP_TYPE_INODE_STORAGE = 0x1c + BPF_PROG_TYPE_UNSPEC = 0x0 + BPF_PROG_TYPE_SOCKET_FILTER = 0x1 + BPF_PROG_TYPE_KPROBE = 0x2 + BPF_PROG_TYPE_SCHED_CLS = 0x3 + BPF_PROG_TYPE_SCHED_ACT = 0x4 + BPF_PROG_TYPE_TRACEPOINT = 0x5 + BPF_PROG_TYPE_XDP = 0x6 + BPF_PROG_TYPE_PERF_EVENT = 0x7 + BPF_PROG_TYPE_CGROUP_SKB = 0x8 + BPF_PROG_TYPE_CGROUP_SOCK = 0x9 + BPF_PROG_TYPE_LWT_IN = 0xa + BPF_PROG_TYPE_LWT_OUT = 0xb + BPF_PROG_TYPE_LWT_XMIT = 0xc + BPF_PROG_TYPE_SOCK_OPS = 0xd + BPF_PROG_TYPE_SK_SKB = 0xe + BPF_PROG_TYPE_CGROUP_DEVICE = 0xf + BPF_PROG_TYPE_SK_MSG = 0x10 + BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 + BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 + BPF_PROG_TYPE_LIRC_MODE2 = 0x14 + BPF_PROG_TYPE_SK_REUSEPORT = 0x15 + BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 + BPF_PROG_TYPE_CGROUP_SYSCTL = 0x17 + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18 + BPF_PROG_TYPE_CGROUP_SOCKOPT = 0x19 + BPF_PROG_TYPE_TRACING = 0x1a + BPF_PROG_TYPE_STRUCT_OPS = 0x1b + BPF_PROG_TYPE_EXT = 0x1c + BPF_PROG_TYPE_LSM = 0x1d + BPF_PROG_TYPE_SK_LOOKUP = 0x1e + BPF_CGROUP_INET_INGRESS = 0x0 + BPF_CGROUP_INET_EGRESS = 0x1 + BPF_CGROUP_INET_SOCK_CREATE = 0x2 + BPF_CGROUP_SOCK_OPS = 0x3 + BPF_SK_SKB_STREAM_PARSER = 0x4 + BPF_SK_SKB_STREAM_VERDICT = 0x5 + BPF_CGROUP_DEVICE = 0x6 + BPF_SK_MSG_VERDICT = 0x7 + BPF_CGROUP_INET4_BIND = 0x8 + BPF_CGROUP_INET6_BIND = 0x9 + BPF_CGROUP_INET4_CONNECT = 0xa + BPF_CGROUP_INET6_CONNECT = 0xb + BPF_CGROUP_INET4_POST_BIND = 0xc + BPF_CGROUP_INET6_POST_BIND = 0xd + BPF_CGROUP_UDP4_SENDMSG = 0xe + BPF_CGROUP_UDP6_SENDMSG = 0xf + BPF_LIRC_MODE2 = 0x10 + BPF_FLOW_DISSECTOR = 0x11 + BPF_CGROUP_SYSCTL = 0x12 + BPF_CGROUP_UDP4_RECVMSG = 0x13 + BPF_CGROUP_UDP6_RECVMSG = 0x14 + BPF_CGROUP_GETSOCKOPT = 0x15 + BPF_CGROUP_SETSOCKOPT = 0x16 + BPF_TRACE_RAW_TP = 0x17 + BPF_TRACE_FENTRY = 0x18 + BPF_TRACE_FEXIT = 0x19 + BPF_MODIFY_RETURN = 0x1a + BPF_LSM_MAC = 0x1b + BPF_TRACE_ITER = 0x1c + BPF_CGROUP_INET4_GETPEERNAME = 0x1d + BPF_CGROUP_INET6_GETPEERNAME = 0x1e + BPF_CGROUP_INET4_GETSOCKNAME = 0x1f + BPF_CGROUP_INET6_GETSOCKNAME = 0x20 + BPF_XDP_DEVMAP = 0x21 + BPF_CGROUP_INET_SOCK_RELEASE = 0x22 + BPF_XDP_CPUMAP = 0x23 + BPF_SK_LOOKUP = 0x24 + BPF_XDP = 0x25 + BPF_LINK_TYPE_UNSPEC = 0x0 + BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 + BPF_LINK_TYPE_TRACING = 0x2 + BPF_LINK_TYPE_CGROUP = 0x3 + BPF_LINK_TYPE_ITER = 0x4 + BPF_LINK_TYPE_NETNS = 0x5 + BPF_LINK_TYPE_XDP = 0x6 + BPF_ANY = 0x0 + BPF_NOEXIST = 0x1 + BPF_EXIST = 0x2 + BPF_F_LOCK = 0x4 + BPF_F_NO_PREALLOC = 0x1 + BPF_F_NO_COMMON_LRU = 0x2 + BPF_F_NUMA_NODE = 0x4 + BPF_F_RDONLY = 0x8 + BPF_F_WRONLY = 0x10 + BPF_F_STACK_BUILD_ID = 0x20 + BPF_F_ZERO_SEED = 0x40 + BPF_F_RDONLY_PROG = 0x80 + BPF_F_WRONLY_PROG = 0x100 + BPF_F_CLONE = 0x200 + BPF_F_MMAPABLE = 0x400 + BPF_F_PRESERVE_ELEMS = 0x800 + BPF_F_INNER_MAP = 0x1000 + BPF_STATS_RUN_TIME = 0x0 + BPF_STACK_BUILD_ID_EMPTY = 0x0 + BPF_STACK_BUILD_ID_VALID = 0x1 + BPF_STACK_BUILD_ID_IP = 0x2 + BPF_F_RECOMPUTE_CSUM = 0x1 + BPF_F_INVALIDATE_HASH = 0x2 + BPF_F_HDR_FIELD_MASK = 0xf + BPF_F_PSEUDO_HDR = 0x10 + BPF_F_MARK_MANGLED_0 = 0x20 + BPF_F_MARK_ENFORCE = 0x40 + BPF_F_INGRESS = 0x1 + BPF_F_TUNINFO_IPV6 = 0x1 + BPF_F_SKIP_FIELD_MASK = 0xff + BPF_F_USER_STACK = 0x100 + BPF_F_FAST_STACK_CMP = 0x200 + BPF_F_REUSE_STACKID = 0x400 + BPF_F_USER_BUILD_ID = 0x800 + BPF_F_ZERO_CSUM_TX = 0x2 + BPF_F_DONT_FRAGMENT = 0x4 + BPF_F_SEQ_NUMBER = 0x8 + BPF_F_INDEX_MASK = 0xffffffff + BPF_F_CURRENT_CPU = 0xffffffff + BPF_F_CTXLEN_MASK = 0xfffff00000000 + BPF_F_CURRENT_NETNS = -0x1 + BPF_CSUM_LEVEL_QUERY = 0x0 + BPF_CSUM_LEVEL_INC = 0x1 + BPF_CSUM_LEVEL_DEC = 0x2 + BPF_CSUM_LEVEL_RESET = 0x3 + BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 + BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 + BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 + BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 + BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 + BPF_F_SYSCTL_BASE_NAME = 0x1 + BPF_LOCAL_STORAGE_GET_F_CREATE = 0x1 + BPF_SK_STORAGE_GET_F_CREATE = 0x1 + BPF_F_GET_BRANCH_RECORDS_SIZE = 0x1 + BPF_RB_NO_WAKEUP = 0x1 + BPF_RB_FORCE_WAKEUP = 0x2 + BPF_RB_AVAIL_DATA = 0x0 + BPF_RB_RING_SIZE = 0x1 + BPF_RB_CONS_POS = 0x2 + BPF_RB_PROD_POS = 0x3 + BPF_RINGBUF_BUSY_BIT = 0x80000000 + BPF_RINGBUF_DISCARD_BIT = 0x40000000 + BPF_RINGBUF_HDR_SZ = 0x8 + BPF_SK_LOOKUP_F_REPLACE = 0x1 + BPF_SK_LOOKUP_F_NO_REUSEPORT = 0x2 + BPF_ADJ_ROOM_NET = 0x0 + BPF_ADJ_ROOM_MAC = 0x1 + BPF_HDR_START_MAC = 0x0 + BPF_HDR_START_NET = 0x1 + BPF_LWT_ENCAP_SEG6 = 0x0 + BPF_LWT_ENCAP_SEG6_INLINE = 0x1 + BPF_LWT_ENCAP_IP = 0x2 + BPF_OK = 0x0 + BPF_DROP = 0x2 + BPF_REDIRECT = 0x7 + BPF_LWT_REROUTE = 0x80 + BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 + BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 + BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 + BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 + BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 0x10 + BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 0x20 + BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 0x40 + BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7f + BPF_SOCK_OPS_VOID = 0x0 + BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 + BPF_SOCK_OPS_RWND_INIT = 0x2 + BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 + BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 + BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 + BPF_SOCK_OPS_NEEDS_ECN = 0x6 + BPF_SOCK_OPS_BASE_RTT = 0x7 + BPF_SOCK_OPS_RTO_CB = 0x8 + BPF_SOCK_OPS_RETRANS_CB = 0x9 + BPF_SOCK_OPS_STATE_CB = 0xa + BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb + BPF_SOCK_OPS_RTT_CB = 0xc + BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 0xd + BPF_SOCK_OPS_HDR_OPT_LEN_CB = 0xe + BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 0xf + BPF_TCP_ESTABLISHED = 0x1 + BPF_TCP_SYN_SENT = 0x2 + BPF_TCP_SYN_RECV = 0x3 + BPF_TCP_FIN_WAIT1 = 0x4 + BPF_TCP_FIN_WAIT2 = 0x5 + BPF_TCP_TIME_WAIT = 0x6 + BPF_TCP_CLOSE = 0x7 + BPF_TCP_CLOSE_WAIT = 0x8 + BPF_TCP_LAST_ACK = 0x9 + BPF_TCP_LISTEN = 0xa + BPF_TCP_CLOSING = 0xb + BPF_TCP_NEW_SYN_RECV = 0xc + BPF_TCP_MAX_STATES = 0xd + TCP_BPF_IW = 0x3e9 + TCP_BPF_SNDCWND_CLAMP = 0x3ea + TCP_BPF_DELACK_MAX = 0x3eb + TCP_BPF_RTO_MIN = 0x3ec + TCP_BPF_SYN = 0x3ed + TCP_BPF_SYN_IP = 0x3ee + TCP_BPF_SYN_MAC = 0x3ef + BPF_LOAD_HDR_OPT_TCP_SYN = 0x1 + BPF_WRITE_HDR_TCP_CURRENT_MSS = 0x1 + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 0x2 + BPF_DEVCG_ACC_MKNOD = 0x1 + BPF_DEVCG_ACC_READ = 0x2 + BPF_DEVCG_ACC_WRITE = 0x4 + BPF_DEVCG_DEV_BLOCK = 0x1 + BPF_DEVCG_DEV_CHAR = 0x2 + BPF_FIB_LOOKUP_DIRECT = 0x1 + BPF_FIB_LOOKUP_OUTPUT = 0x2 + BPF_FIB_LKUP_RET_SUCCESS = 0x0 + BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 + BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 + BPF_FIB_LKUP_RET_PROHIBIT = 0x3 + BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 + BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 + BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 + BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 + BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 + BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 + BPF_FD_TYPE_TRACEPOINT = 0x1 + BPF_FD_TYPE_KPROBE = 0x2 + BPF_FD_TYPE_KRETPROBE = 0x3 + BPF_FD_TYPE_UPROBE = 0x4 + BPF_FD_TYPE_URETPROBE = 0x5 + BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 + BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 + BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 +) + +const ( + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_DECnet_IFADDR = 0xd + RTNLGRP_NOP2 = 0xe + RTNLGRP_DECnet_ROUTE = 0xf + RTNLGRP_DECnet_RULE = 0x10 + RTNLGRP_NOP4 = 0x11 + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + RTNLGRP_PHONET_IFADDR = 0x15 + RTNLGRP_PHONET_ROUTE = 0x16 + RTNLGRP_DCB = 0x17 + RTNLGRP_IPV4_NETCONF = 0x18 + RTNLGRP_IPV6_NETCONF = 0x19 + RTNLGRP_MDB = 0x1a + RTNLGRP_MPLS_ROUTE = 0x1b + RTNLGRP_NSID = 0x1c + RTNLGRP_MPLS_NETCONF = 0x1d + RTNLGRP_IPV4_MROUTE_R = 0x1e + RTNLGRP_IPV6_MROUTE_R = 0x1f + RTNLGRP_NEXTHOP = 0x20 + RTNLGRP_BRVLAN = 0x21 +) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) + +const ( + LO_FLAGS_READ_ONLY = 0x1 + LO_FLAGS_AUTOCLEAR = 0x4 + LO_FLAGS_PARTSCAN = 0x8 + LO_FLAGS_DIRECT_IO = 0x10 +) + +type LoopInfo64 struct { + Device uint64 + Inode uint64 + Rdevice uint64 + Offset uint64 + Sizelimit uint64 + Number uint32 + Encrypt_type uint32 + Encrypt_key_size uint32 + Flags uint32 + File_name [64]uint8 + Crypt_name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 +} + +type TIPCSocketAddr struct { + Ref uint32 + Node uint32 +} + +type TIPCServiceRange struct { + Type uint32 + Lower uint32 + Upper uint32 +} + +type TIPCServiceName struct { + Type uint32 + Instance uint32 + Domain uint32 +} + +type TIPCEvent struct { + Event uint32 + Lower uint32 + Upper uint32 + Port TIPCSocketAddr + S TIPCSubscr +} + +type TIPCGroupReq struct { + Type uint32 + Instance uint32 + Scope uint32 + Flags uint32 +} + +const ( + TIPC_CLUSTER_SCOPE = 0x2 + TIPC_NODE_SCOPE = 0x3 +) + +const ( + SYSLOG_ACTION_CLOSE = 0 + SYSLOG_ACTION_OPEN = 1 + SYSLOG_ACTION_READ = 2 + SYSLOG_ACTION_READ_ALL = 3 + SYSLOG_ACTION_READ_CLEAR = 4 + SYSLOG_ACTION_CLEAR = 5 + SYSLOG_ACTION_CONSOLE_OFF = 6 + SYSLOG_ACTION_CONSOLE_ON = 7 + SYSLOG_ACTION_CONSOLE_LEVEL = 8 + SYSLOG_ACTION_SIZE_UNREAD = 9 + SYSLOG_ACTION_SIZE_BUFFER = 10 +) + +const ( + DEVLINK_CMD_UNSPEC = 0x0 + DEVLINK_CMD_GET = 0x1 + DEVLINK_CMD_SET = 0x2 + DEVLINK_CMD_NEW = 0x3 + DEVLINK_CMD_DEL = 0x4 + DEVLINK_CMD_PORT_GET = 0x5 + DEVLINK_CMD_PORT_SET = 0x6 + DEVLINK_CMD_PORT_NEW = 0x7 + DEVLINK_CMD_PORT_DEL = 0x8 + DEVLINK_CMD_PORT_SPLIT = 0x9 + DEVLINK_CMD_PORT_UNSPLIT = 0xa + DEVLINK_CMD_SB_GET = 0xb + DEVLINK_CMD_SB_SET = 0xc + DEVLINK_CMD_SB_NEW = 0xd + DEVLINK_CMD_SB_DEL = 0xe + DEVLINK_CMD_SB_POOL_GET = 0xf + DEVLINK_CMD_SB_POOL_SET = 0x10 + DEVLINK_CMD_SB_POOL_NEW = 0x11 + DEVLINK_CMD_SB_POOL_DEL = 0x12 + DEVLINK_CMD_SB_PORT_POOL_GET = 0x13 + DEVLINK_CMD_SB_PORT_POOL_SET = 0x14 + DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15 + DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16 + DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17 + DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18 + DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19 + DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a + DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b + DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c + DEVLINK_CMD_ESWITCH_GET = 0x1d + DEVLINK_CMD_ESWITCH_SET = 0x1e + DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f + DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20 + DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21 + DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22 + DEVLINK_CMD_RESOURCE_SET = 0x23 + DEVLINK_CMD_RESOURCE_DUMP = 0x24 + DEVLINK_CMD_RELOAD = 0x25 + DEVLINK_CMD_PARAM_GET = 0x26 + DEVLINK_CMD_PARAM_SET = 0x27 + DEVLINK_CMD_PARAM_NEW = 0x28 + DEVLINK_CMD_PARAM_DEL = 0x29 + DEVLINK_CMD_REGION_GET = 0x2a + DEVLINK_CMD_REGION_SET = 0x2b + DEVLINK_CMD_REGION_NEW = 0x2c + DEVLINK_CMD_REGION_DEL = 0x2d + DEVLINK_CMD_REGION_READ = 0x2e + DEVLINK_CMD_PORT_PARAM_GET = 0x2f + DEVLINK_CMD_PORT_PARAM_SET = 0x30 + DEVLINK_CMD_PORT_PARAM_NEW = 0x31 + DEVLINK_CMD_PORT_PARAM_DEL = 0x32 + DEVLINK_CMD_INFO_GET = 0x33 + DEVLINK_CMD_HEALTH_REPORTER_GET = 0x34 + DEVLINK_CMD_HEALTH_REPORTER_SET = 0x35 + DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 0x36 + DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 0x37 + DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 0x38 + DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 0x39 + DEVLINK_CMD_FLASH_UPDATE = 0x3a + DEVLINK_CMD_FLASH_UPDATE_END = 0x3b + DEVLINK_CMD_FLASH_UPDATE_STATUS = 0x3c + DEVLINK_CMD_TRAP_GET = 0x3d + DEVLINK_CMD_TRAP_SET = 0x3e + DEVLINK_CMD_TRAP_NEW = 0x3f + DEVLINK_CMD_TRAP_DEL = 0x40 + DEVLINK_CMD_TRAP_GROUP_GET = 0x41 + DEVLINK_CMD_TRAP_GROUP_SET = 0x42 + DEVLINK_CMD_TRAP_GROUP_NEW = 0x43 + DEVLINK_CMD_TRAP_GROUP_DEL = 0x44 + DEVLINK_CMD_TRAP_POLICER_GET = 0x45 + DEVLINK_CMD_TRAP_POLICER_SET = 0x46 + DEVLINK_CMD_TRAP_POLICER_NEW = 0x47 + DEVLINK_CMD_TRAP_POLICER_DEL = 0x48 + DEVLINK_CMD_HEALTH_REPORTER_TEST = 0x49 + DEVLINK_CMD_MAX = 0x49 + DEVLINK_PORT_TYPE_NOTSET = 0x0 + DEVLINK_PORT_TYPE_AUTO = 0x1 + DEVLINK_PORT_TYPE_ETH = 0x2 + DEVLINK_PORT_TYPE_IB = 0x3 + DEVLINK_SB_POOL_TYPE_INGRESS = 0x0 + DEVLINK_SB_POOL_TYPE_EGRESS = 0x1 + DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0 + DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1 + DEVLINK_ESWITCH_MODE_LEGACY = 0x0 + DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0 + DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2 + DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3 + DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0 + DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1 + DEVLINK_PORT_FLAVOUR_PHYSICAL = 0x0 + DEVLINK_PORT_FLAVOUR_CPU = 0x1 + DEVLINK_PORT_FLAVOUR_DSA = 0x2 + DEVLINK_PORT_FLAVOUR_PCI_PF = 0x3 + DEVLINK_PORT_FLAVOUR_PCI_VF = 0x4 + DEVLINK_PORT_FLAVOUR_VIRTUAL = 0x5 + DEVLINK_PORT_FLAVOUR_UNUSED = 0x6 + DEVLINK_PARAM_CMODE_RUNTIME = 0x0 + DEVLINK_PARAM_CMODE_DRIVERINIT = 0x1 + DEVLINK_PARAM_CMODE_PERMANENT = 0x2 + DEVLINK_PARAM_CMODE_MAX = 0x2 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER = 0x0 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH = 0x1 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK = 0x2 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_UNKNOWN = 0x3 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN = 0x0 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS = 0x1 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER = 0x2 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK = 0x3 + DEVLINK_ATTR_STATS_RX_PACKETS = 0x0 + DEVLINK_ATTR_STATS_RX_BYTES = 0x1 + DEVLINK_ATTR_STATS_RX_DROPPED = 0x2 + DEVLINK_ATTR_STATS_MAX = 0x2 + DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT = 0x0 + DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT = 0x1 + DEVLINK_FLASH_OVERWRITE_MAX_BIT = 0x1 + DEVLINK_TRAP_ACTION_DROP = 0x0 + DEVLINK_TRAP_ACTION_TRAP = 0x1 + DEVLINK_TRAP_ACTION_MIRROR = 0x2 + DEVLINK_TRAP_TYPE_DROP = 0x0 + DEVLINK_TRAP_TYPE_EXCEPTION = 0x1 + DEVLINK_TRAP_TYPE_CONTROL = 0x2 + DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0x0 + DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 0x1 + DEVLINK_RELOAD_ACTION_UNSPEC = 0x0 + DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 0x1 + DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 0x2 + DEVLINK_RELOAD_ACTION_MAX = 0x2 + DEVLINK_RELOAD_LIMIT_UNSPEC = 0x0 + DEVLINK_RELOAD_LIMIT_NO_RESET = 0x1 + DEVLINK_RELOAD_LIMIT_MAX = 0x1 + DEVLINK_ATTR_UNSPEC = 0x0 + DEVLINK_ATTR_BUS_NAME = 0x1 + DEVLINK_ATTR_DEV_NAME = 0x2 + DEVLINK_ATTR_PORT_INDEX = 0x3 + DEVLINK_ATTR_PORT_TYPE = 0x4 + DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5 + DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6 + DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7 + DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8 + DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9 + DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa + DEVLINK_ATTR_SB_INDEX = 0xb + DEVLINK_ATTR_SB_SIZE = 0xc + DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd + DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe + DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf + DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10 + DEVLINK_ATTR_SB_POOL_INDEX = 0x11 + DEVLINK_ATTR_SB_POOL_TYPE = 0x12 + DEVLINK_ATTR_SB_POOL_SIZE = 0x13 + DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14 + DEVLINK_ATTR_SB_THRESHOLD = 0x15 + DEVLINK_ATTR_SB_TC_INDEX = 0x16 + DEVLINK_ATTR_SB_OCC_CUR = 0x17 + DEVLINK_ATTR_SB_OCC_MAX = 0x18 + DEVLINK_ATTR_ESWITCH_MODE = 0x19 + DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a + DEVLINK_ATTR_DPIPE_TABLES = 0x1b + DEVLINK_ATTR_DPIPE_TABLE = 0x1c + DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d + DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e + DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f + DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20 + DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21 + DEVLINK_ATTR_DPIPE_ENTRIES = 0x22 + DEVLINK_ATTR_DPIPE_ENTRY = 0x23 + DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24 + DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25 + DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26 + DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27 + DEVLINK_ATTR_DPIPE_MATCH = 0x28 + DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29 + DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a + DEVLINK_ATTR_DPIPE_ACTION = 0x2b + DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c + DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d + DEVLINK_ATTR_DPIPE_VALUE = 0x2e + DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f + DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30 + DEVLINK_ATTR_DPIPE_HEADERS = 0x31 + DEVLINK_ATTR_DPIPE_HEADER = 0x32 + DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33 + DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34 + DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35 + DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36 + DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37 + DEVLINK_ATTR_DPIPE_FIELD = 0x38 + DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39 + DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a + DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b + DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c + DEVLINK_ATTR_PAD = 0x3d + DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e + DEVLINK_ATTR_RESOURCE_LIST = 0x3f + DEVLINK_ATTR_RESOURCE = 0x40 + DEVLINK_ATTR_RESOURCE_NAME = 0x41 + DEVLINK_ATTR_RESOURCE_ID = 0x42 + DEVLINK_ATTR_RESOURCE_SIZE = 0x43 + DEVLINK_ATTR_RESOURCE_SIZE_NEW = 0x44 + DEVLINK_ATTR_RESOURCE_SIZE_VALID = 0x45 + DEVLINK_ATTR_RESOURCE_SIZE_MIN = 0x46 + DEVLINK_ATTR_RESOURCE_SIZE_MAX = 0x47 + DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 0x48 + DEVLINK_ATTR_RESOURCE_UNIT = 0x49 + DEVLINK_ATTR_RESOURCE_OCC = 0x4a + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 0x4b + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 0x4c + DEVLINK_ATTR_PORT_FLAVOUR = 0x4d + DEVLINK_ATTR_PORT_NUMBER = 0x4e + DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 0x4f + DEVLINK_ATTR_PARAM = 0x50 + DEVLINK_ATTR_PARAM_NAME = 0x51 + DEVLINK_ATTR_PARAM_GENERIC = 0x52 + DEVLINK_ATTR_PARAM_TYPE = 0x53 + DEVLINK_ATTR_PARAM_VALUES_LIST = 0x54 + DEVLINK_ATTR_PARAM_VALUE = 0x55 + DEVLINK_ATTR_PARAM_VALUE_DATA = 0x56 + DEVLINK_ATTR_PARAM_VALUE_CMODE = 0x57 + DEVLINK_ATTR_REGION_NAME = 0x58 + DEVLINK_ATTR_REGION_SIZE = 0x59 + DEVLINK_ATTR_REGION_SNAPSHOTS = 0x5a + DEVLINK_ATTR_REGION_SNAPSHOT = 0x5b + DEVLINK_ATTR_REGION_SNAPSHOT_ID = 0x5c + DEVLINK_ATTR_REGION_CHUNKS = 0x5d + DEVLINK_ATTR_REGION_CHUNK = 0x5e + DEVLINK_ATTR_REGION_CHUNK_DATA = 0x5f + DEVLINK_ATTR_REGION_CHUNK_ADDR = 0x60 + DEVLINK_ATTR_REGION_CHUNK_LEN = 0x61 + DEVLINK_ATTR_INFO_DRIVER_NAME = 0x62 + DEVLINK_ATTR_INFO_SERIAL_NUMBER = 0x63 + DEVLINK_ATTR_INFO_VERSION_FIXED = 0x64 + DEVLINK_ATTR_INFO_VERSION_RUNNING = 0x65 + DEVLINK_ATTR_INFO_VERSION_STORED = 0x66 + DEVLINK_ATTR_INFO_VERSION_NAME = 0x67 + DEVLINK_ATTR_INFO_VERSION_VALUE = 0x68 + DEVLINK_ATTR_SB_POOL_CELL_SIZE = 0x69 + DEVLINK_ATTR_FMSG = 0x6a + DEVLINK_ATTR_FMSG_OBJ_NEST_START = 0x6b + DEVLINK_ATTR_FMSG_PAIR_NEST_START = 0x6c + DEVLINK_ATTR_FMSG_ARR_NEST_START = 0x6d + DEVLINK_ATTR_FMSG_NEST_END = 0x6e + DEVLINK_ATTR_FMSG_OBJ_NAME = 0x6f + DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 0x70 + DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 0x71 + DEVLINK_ATTR_HEALTH_REPORTER = 0x72 + DEVLINK_ATTR_HEALTH_REPORTER_NAME = 0x73 + DEVLINK_ATTR_HEALTH_REPORTER_STATE = 0x74 + DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 0x75 + DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 0x76 + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 0x77 + DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 0x78 + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 0x79 + DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 0x7a + DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 0x7b + DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 0x7c + DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 0x7d + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 0x7e + DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 0x7f + DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 0x80 + DEVLINK_ATTR_STATS = 0x81 + DEVLINK_ATTR_TRAP_NAME = 0x82 + DEVLINK_ATTR_TRAP_ACTION = 0x83 + DEVLINK_ATTR_TRAP_TYPE = 0x84 + DEVLINK_ATTR_TRAP_GENERIC = 0x85 + DEVLINK_ATTR_TRAP_METADATA = 0x86 + DEVLINK_ATTR_TRAP_GROUP_NAME = 0x87 + DEVLINK_ATTR_RELOAD_FAILED = 0x88 + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 0x89 + DEVLINK_ATTR_NETNS_FD = 0x8a + DEVLINK_ATTR_NETNS_PID = 0x8b + DEVLINK_ATTR_NETNS_ID = 0x8c + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 0x8d + DEVLINK_ATTR_TRAP_POLICER_ID = 0x8e + DEVLINK_ATTR_TRAP_POLICER_RATE = 0x8f + DEVLINK_ATTR_TRAP_POLICER_BURST = 0x90 + DEVLINK_ATTR_PORT_FUNCTION = 0x91 + DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 0x92 + DEVLINK_ATTR_PORT_LANES = 0x93 + DEVLINK_ATTR_PORT_SPLITTABLE = 0x94 + DEVLINK_ATTR_PORT_EXTERNAL = 0x95 + DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 0x96 + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 0x97 + DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 0x98 + DEVLINK_ATTR_RELOAD_ACTION = 0x99 + DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 0x9a + DEVLINK_ATTR_RELOAD_LIMITS = 0x9b + DEVLINK_ATTR_DEV_STATS = 0x9c + DEVLINK_ATTR_RELOAD_STATS = 0x9d + DEVLINK_ATTR_RELOAD_STATS_ENTRY = 0x9e + DEVLINK_ATTR_RELOAD_STATS_LIMIT = 0x9f + DEVLINK_ATTR_RELOAD_STATS_VALUE = 0xa0 + DEVLINK_ATTR_REMOTE_RELOAD_STATS = 0xa1 + DEVLINK_ATTR_RELOAD_ACTION_INFO = 0xa2 + DEVLINK_ATTR_RELOAD_ACTION_STATS = 0xa3 + DEVLINK_ATTR_MAX = 0xa3 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 + DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 + DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0 + DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0 + DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0 + DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0 + DEVLINK_DPIPE_HEADER_ETHERNET = 0x0 + DEVLINK_DPIPE_HEADER_IPV4 = 0x1 + DEVLINK_DPIPE_HEADER_IPV6 = 0x2 + DEVLINK_RESOURCE_UNIT_ENTRY = 0x0 + DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0x0 + DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 0x1 + DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x1 +) + +type FsverityDigest struct { + Algorithm uint16 + Size uint16 +} + +type FsverityEnableArg struct { + Version uint32 + Hash_algorithm uint32 + Block_size uint32 + Salt_size uint32 + Salt_ptr uint64 + Sig_size uint32 + _ uint32 + Sig_ptr uint64 + _ [11]uint64 +} + +type Nhmsg struct { + Family uint8 + Scope uint8 + Protocol uint8 + Resvd uint8 + Flags uint32 +} + +type NexthopGrp struct { + Id uint32 + Weight uint8 + Resvd1 uint8 + Resvd2 uint16 +} + +const ( + NHA_UNSPEC = 0x0 + NHA_ID = 0x1 + NHA_GROUP = 0x2 + NHA_GROUP_TYPE = 0x3 + NHA_BLACKHOLE = 0x4 + NHA_OIF = 0x5 + NHA_GATEWAY = 0x6 + NHA_ENCAP_TYPE = 0x7 + NHA_ENCAP = 0x8 + NHA_GROUPS = 0x9 + NHA_MASTER = 0xa +) + +const ( + CAN_RAW_FILTER = 0x1 + CAN_RAW_ERR_FILTER = 0x2 + CAN_RAW_LOOPBACK = 0x3 + CAN_RAW_RECV_OWN_MSGS = 0x4 + CAN_RAW_FD_FRAMES = 0x5 + CAN_RAW_JOIN_FILTERS = 0x6 +) + +type WatchdogInfo struct { + Options uint32 + Version uint32 + Identity [32]uint8 +} + +type PPSFData struct { + Info PPSKInfo + Timeout PPSKTime +} + +type PPSKParams struct { + Api_version int32 + Mode int32 + Assert_off_tu PPSKTime + Clear_off_tu PPSKTime +} + +type PPSKTime struct { + Sec int64 + Nsec int32 + Flags uint32 +} + +const ( + LWTUNNEL_ENCAP_NONE = 0x0 + LWTUNNEL_ENCAP_MPLS = 0x1 + LWTUNNEL_ENCAP_IP = 0x2 + LWTUNNEL_ENCAP_ILA = 0x3 + LWTUNNEL_ENCAP_IP6 = 0x4 + LWTUNNEL_ENCAP_SEG6 = 0x5 + LWTUNNEL_ENCAP_BPF = 0x6 + LWTUNNEL_ENCAP_SEG6_LOCAL = 0x7 + LWTUNNEL_ENCAP_RPL = 0x8 + LWTUNNEL_ENCAP_MAX = 0x8 + + MPLS_IPTUNNEL_UNSPEC = 0x0 + MPLS_IPTUNNEL_DST = 0x1 + MPLS_IPTUNNEL_TTL = 0x2 + MPLS_IPTUNNEL_MAX = 0x2 +) + +const ( + ETHTOOL_ID_UNSPEC = 0x0 + ETHTOOL_RX_COPYBREAK = 0x1 + ETHTOOL_TX_COPYBREAK = 0x2 + ETHTOOL_PFC_PREVENTION_TOUT = 0x3 + ETHTOOL_TUNABLE_UNSPEC = 0x0 + ETHTOOL_TUNABLE_U8 = 0x1 + ETHTOOL_TUNABLE_U16 = 0x2 + ETHTOOL_TUNABLE_U32 = 0x3 + ETHTOOL_TUNABLE_U64 = 0x4 + ETHTOOL_TUNABLE_STRING = 0x5 + ETHTOOL_TUNABLE_S8 = 0x6 + ETHTOOL_TUNABLE_S16 = 0x7 + ETHTOOL_TUNABLE_S32 = 0x8 + ETHTOOL_TUNABLE_S64 = 0x9 + ETHTOOL_PHY_ID_UNSPEC = 0x0 + ETHTOOL_PHY_DOWNSHIFT = 0x1 + ETHTOOL_PHY_FAST_LINK_DOWN = 0x2 + ETHTOOL_PHY_EDPD = 0x3 + ETHTOOL_LINK_EXT_STATE_AUTONEG = 0x0 + ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 0x1 + ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 0x2 + ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 0x3 + ETHTOOL_LINK_EXT_STATE_NO_CABLE = 0x4 + ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 0x5 + ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 0x6 + ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 0x7 + ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 0x8 + ETHTOOL_LINK_EXT_STATE_OVERHEAT = 0x9 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 0x5 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 0x6 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 0x5 + ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 0x2 + ETHTOOL_FLASH_ALL_REGIONS = 0x0 + ETHTOOL_F_UNSUPPORTED__BIT = 0x0 + ETHTOOL_F_WISH__BIT = 0x1 + ETHTOOL_F_COMPAT__BIT = 0x2 + ETHTOOL_FEC_NONE_BIT = 0x0 + ETHTOOL_FEC_AUTO_BIT = 0x1 + ETHTOOL_FEC_OFF_BIT = 0x2 + ETHTOOL_FEC_RS_BIT = 0x3 + ETHTOOL_FEC_BASER_BIT = 0x4 + ETHTOOL_FEC_LLRS_BIT = 0x5 + ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0x0 + ETHTOOL_LINK_MODE_10baseT_Full_BIT = 0x1 + ETHTOOL_LINK_MODE_100baseT_Half_BIT = 0x2 + ETHTOOL_LINK_MODE_100baseT_Full_BIT = 0x3 + ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 0x4 + ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 0x5 + ETHTOOL_LINK_MODE_Autoneg_BIT = 0x6 + ETHTOOL_LINK_MODE_TP_BIT = 0x7 + ETHTOOL_LINK_MODE_AUI_BIT = 0x8 + ETHTOOL_LINK_MODE_MII_BIT = 0x9 + ETHTOOL_LINK_MODE_FIBRE_BIT = 0xa + ETHTOOL_LINK_MODE_BNC_BIT = 0xb + ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 0xc + ETHTOOL_LINK_MODE_Pause_BIT = 0xd + ETHTOOL_LINK_MODE_Asym_Pause_BIT = 0xe + ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 0xf + ETHTOOL_LINK_MODE_Backplane_BIT = 0x10 + ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 0x11 + ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 0x12 + ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 0x13 + ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 0x14 + ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 0x15 + ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 0x16 + ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 0x17 + ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 0x18 + ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 0x19 + ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 0x1a + ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 0x1b + ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 0x1c + ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 0x1d + ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 0x1e + ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 0x1f + ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 0x20 + ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 0x21 + ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 0x22 + ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 0x23 + ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 0x24 + ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 0x25 + ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 0x26 + ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 0x27 + ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 0x28 + ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 0x29 + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 0x2a + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 0x2b + ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 0x2c + ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 0x2d + ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 0x2e + ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 0x2f + ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 0x30 + ETHTOOL_LINK_MODE_FEC_NONE_BIT = 0x31 + ETHTOOL_LINK_MODE_FEC_RS_BIT = 0x32 + ETHTOOL_LINK_MODE_FEC_BASER_BIT = 0x33 + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 0x34 + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 0x35 + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 0x36 + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 0x37 + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 0x38 + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 0x39 + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 0x3a + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 0x3b + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 0x3c + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 0x3d + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 0x3e + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 0x3f + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 0x40 + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 0x41 + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 0x42 + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 0x43 + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 0x44 + ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 0x45 + ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 0x46 + ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 0x47 + ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 0x48 + ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 0x49 + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 0x4a + ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 0x4b + ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 0x4c + ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 0x4d + ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 0x4e + ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 0x4f + ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 0x50 + ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 0x51 + ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 0x52 + ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 0x53 + ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 0x54 + ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 0x55 + ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 0x56 + ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 0x57 + ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 0x58 + ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 0x59 + ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 0x5a + ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 0x5b + + ETHTOOL_MSG_USER_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET = 0x1 + ETHTOOL_MSG_LINKINFO_GET = 0x2 + ETHTOOL_MSG_LINKINFO_SET = 0x3 + ETHTOOL_MSG_LINKMODES_GET = 0x4 + ETHTOOL_MSG_LINKMODES_SET = 0x5 + ETHTOOL_MSG_LINKSTATE_GET = 0x6 + ETHTOOL_MSG_DEBUG_GET = 0x7 + ETHTOOL_MSG_DEBUG_SET = 0x8 + ETHTOOL_MSG_WOL_GET = 0x9 + ETHTOOL_MSG_WOL_SET = 0xa + ETHTOOL_MSG_FEATURES_GET = 0xb + ETHTOOL_MSG_FEATURES_SET = 0xc + ETHTOOL_MSG_PRIVFLAGS_GET = 0xd + ETHTOOL_MSG_PRIVFLAGS_SET = 0xe + ETHTOOL_MSG_RINGS_GET = 0xf + ETHTOOL_MSG_RINGS_SET = 0x10 + ETHTOOL_MSG_CHANNELS_GET = 0x11 + ETHTOOL_MSG_CHANNELS_SET = 0x12 + ETHTOOL_MSG_COALESCE_GET = 0x13 + ETHTOOL_MSG_COALESCE_SET = 0x14 + ETHTOOL_MSG_PAUSE_GET = 0x15 + ETHTOOL_MSG_PAUSE_SET = 0x16 + ETHTOOL_MSG_EEE_GET = 0x17 + ETHTOOL_MSG_EEE_SET = 0x18 + ETHTOOL_MSG_TSINFO_GET = 0x19 + ETHTOOL_MSG_CABLE_TEST_ACT = 0x1a + ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 0x1b + ETHTOOL_MSG_TUNNEL_INFO_GET = 0x1c + ETHTOOL_MSG_USER_MAX = 0x1c + ETHTOOL_MSG_KERNEL_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 + ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 + ETHTOOL_MSG_LINKINFO_NTF = 0x3 + ETHTOOL_MSG_LINKMODES_GET_REPLY = 0x4 + ETHTOOL_MSG_LINKMODES_NTF = 0x5 + ETHTOOL_MSG_LINKSTATE_GET_REPLY = 0x6 + ETHTOOL_MSG_DEBUG_GET_REPLY = 0x7 + ETHTOOL_MSG_DEBUG_NTF = 0x8 + ETHTOOL_MSG_WOL_GET_REPLY = 0x9 + ETHTOOL_MSG_WOL_NTF = 0xa + ETHTOOL_MSG_FEATURES_GET_REPLY = 0xb + ETHTOOL_MSG_FEATURES_SET_REPLY = 0xc + ETHTOOL_MSG_FEATURES_NTF = 0xd + ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 0xe + ETHTOOL_MSG_PRIVFLAGS_NTF = 0xf + ETHTOOL_MSG_RINGS_GET_REPLY = 0x10 + ETHTOOL_MSG_RINGS_NTF = 0x11 + ETHTOOL_MSG_CHANNELS_GET_REPLY = 0x12 + ETHTOOL_MSG_CHANNELS_NTF = 0x13 + ETHTOOL_MSG_COALESCE_GET_REPLY = 0x14 + ETHTOOL_MSG_COALESCE_NTF = 0x15 + ETHTOOL_MSG_PAUSE_GET_REPLY = 0x16 + ETHTOOL_MSG_PAUSE_NTF = 0x17 + ETHTOOL_MSG_EEE_GET_REPLY = 0x18 + ETHTOOL_MSG_EEE_NTF = 0x19 + ETHTOOL_MSG_TSINFO_GET_REPLY = 0x1a + ETHTOOL_MSG_CABLE_TEST_NTF = 0x1b + ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 0x1c + ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 0x1d + ETHTOOL_MSG_KERNEL_MAX = 0x1d + ETHTOOL_A_HEADER_UNSPEC = 0x0 + ETHTOOL_A_HEADER_DEV_INDEX = 0x1 + ETHTOOL_A_HEADER_DEV_NAME = 0x2 + ETHTOOL_A_HEADER_FLAGS = 0x3 + ETHTOOL_A_HEADER_MAX = 0x3 + ETHTOOL_A_BITSET_BIT_UNSPEC = 0x0 + ETHTOOL_A_BITSET_BIT_INDEX = 0x1 + ETHTOOL_A_BITSET_BIT_NAME = 0x2 + ETHTOOL_A_BITSET_BIT_VALUE = 0x3 + ETHTOOL_A_BITSET_BIT_MAX = 0x3 + ETHTOOL_A_BITSET_BITS_UNSPEC = 0x0 + ETHTOOL_A_BITSET_BITS_BIT = 0x1 + ETHTOOL_A_BITSET_BITS_MAX = 0x1 + ETHTOOL_A_BITSET_UNSPEC = 0x0 + ETHTOOL_A_BITSET_NOMASK = 0x1 + ETHTOOL_A_BITSET_SIZE = 0x2 + ETHTOOL_A_BITSET_BITS = 0x3 + ETHTOOL_A_BITSET_VALUE = 0x4 + ETHTOOL_A_BITSET_MASK = 0x5 + ETHTOOL_A_BITSET_MAX = 0x5 + ETHTOOL_A_STRING_UNSPEC = 0x0 + ETHTOOL_A_STRING_INDEX = 0x1 + ETHTOOL_A_STRING_VALUE = 0x2 + ETHTOOL_A_STRING_MAX = 0x2 + ETHTOOL_A_STRINGS_UNSPEC = 0x0 + ETHTOOL_A_STRINGS_STRING = 0x1 + ETHTOOL_A_STRINGS_MAX = 0x1 + ETHTOOL_A_STRINGSET_UNSPEC = 0x0 + ETHTOOL_A_STRINGSET_ID = 0x1 + ETHTOOL_A_STRINGSET_COUNT = 0x2 + ETHTOOL_A_STRINGSET_STRINGS = 0x3 + ETHTOOL_A_STRINGSET_MAX = 0x3 + ETHTOOL_A_STRINGSETS_UNSPEC = 0x0 + ETHTOOL_A_STRINGSETS_STRINGSET = 0x1 + ETHTOOL_A_STRINGSETS_MAX = 0x1 + ETHTOOL_A_STRSET_UNSPEC = 0x0 + ETHTOOL_A_STRSET_HEADER = 0x1 + ETHTOOL_A_STRSET_STRINGSETS = 0x2 + ETHTOOL_A_STRSET_COUNTS_ONLY = 0x3 + ETHTOOL_A_STRSET_MAX = 0x3 + ETHTOOL_A_LINKINFO_UNSPEC = 0x0 + ETHTOOL_A_LINKINFO_HEADER = 0x1 + ETHTOOL_A_LINKINFO_PORT = 0x2 + ETHTOOL_A_LINKINFO_PHYADDR = 0x3 + ETHTOOL_A_LINKINFO_TP_MDIX = 0x4 + ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 0x5 + ETHTOOL_A_LINKINFO_TRANSCEIVER = 0x6 + ETHTOOL_A_LINKINFO_MAX = 0x6 + ETHTOOL_A_LINKMODES_UNSPEC = 0x0 + ETHTOOL_A_LINKMODES_HEADER = 0x1 + ETHTOOL_A_LINKMODES_AUTONEG = 0x2 + ETHTOOL_A_LINKMODES_OURS = 0x3 + ETHTOOL_A_LINKMODES_PEER = 0x4 + ETHTOOL_A_LINKMODES_SPEED = 0x5 + ETHTOOL_A_LINKMODES_DUPLEX = 0x6 + ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7 + ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8 + ETHTOOL_A_LINKMODES_MAX = 0x8 + ETHTOOL_A_LINKSTATE_UNSPEC = 0x0 + ETHTOOL_A_LINKSTATE_HEADER = 0x1 + ETHTOOL_A_LINKSTATE_LINK = 0x2 + ETHTOOL_A_LINKSTATE_SQI = 0x3 + ETHTOOL_A_LINKSTATE_SQI_MAX = 0x4 + ETHTOOL_A_LINKSTATE_EXT_STATE = 0x5 + ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 0x6 + ETHTOOL_A_LINKSTATE_MAX = 0x6 + ETHTOOL_A_DEBUG_UNSPEC = 0x0 + ETHTOOL_A_DEBUG_HEADER = 0x1 + ETHTOOL_A_DEBUG_MSGMASK = 0x2 + ETHTOOL_A_DEBUG_MAX = 0x2 + ETHTOOL_A_WOL_UNSPEC = 0x0 + ETHTOOL_A_WOL_HEADER = 0x1 + ETHTOOL_A_WOL_MODES = 0x2 + ETHTOOL_A_WOL_SOPASS = 0x3 + ETHTOOL_A_WOL_MAX = 0x3 + ETHTOOL_A_FEATURES_UNSPEC = 0x0 + ETHTOOL_A_FEATURES_HEADER = 0x1 + ETHTOOL_A_FEATURES_HW = 0x2 + ETHTOOL_A_FEATURES_WANTED = 0x3 + ETHTOOL_A_FEATURES_ACTIVE = 0x4 + ETHTOOL_A_FEATURES_NOCHANGE = 0x5 + ETHTOOL_A_FEATURES_MAX = 0x5 + ETHTOOL_A_PRIVFLAGS_UNSPEC = 0x0 + ETHTOOL_A_PRIVFLAGS_HEADER = 0x1 + ETHTOOL_A_PRIVFLAGS_FLAGS = 0x2 + ETHTOOL_A_PRIVFLAGS_MAX = 0x2 + ETHTOOL_A_RINGS_UNSPEC = 0x0 + ETHTOOL_A_RINGS_HEADER = 0x1 + ETHTOOL_A_RINGS_RX_MAX = 0x2 + ETHTOOL_A_RINGS_RX_MINI_MAX = 0x3 + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 0x4 + ETHTOOL_A_RINGS_TX_MAX = 0x5 + ETHTOOL_A_RINGS_RX = 0x6 + ETHTOOL_A_RINGS_RX_MINI = 0x7 + ETHTOOL_A_RINGS_RX_JUMBO = 0x8 + ETHTOOL_A_RINGS_TX = 0x9 + ETHTOOL_A_RINGS_MAX = 0x9 + ETHTOOL_A_CHANNELS_UNSPEC = 0x0 + ETHTOOL_A_CHANNELS_HEADER = 0x1 + ETHTOOL_A_CHANNELS_RX_MAX = 0x2 + ETHTOOL_A_CHANNELS_TX_MAX = 0x3 + ETHTOOL_A_CHANNELS_OTHER_MAX = 0x4 + ETHTOOL_A_CHANNELS_COMBINED_MAX = 0x5 + ETHTOOL_A_CHANNELS_RX_COUNT = 0x6 + ETHTOOL_A_CHANNELS_TX_COUNT = 0x7 + ETHTOOL_A_CHANNELS_OTHER_COUNT = 0x8 + ETHTOOL_A_CHANNELS_COMBINED_COUNT = 0x9 + ETHTOOL_A_CHANNELS_MAX = 0x9 + ETHTOOL_A_COALESCE_UNSPEC = 0x0 + ETHTOOL_A_COALESCE_HEADER = 0x1 + ETHTOOL_A_COALESCE_RX_USECS = 0x2 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 0x3 + ETHTOOL_A_COALESCE_RX_USECS_IRQ = 0x4 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 0x5 + ETHTOOL_A_COALESCE_TX_USECS = 0x6 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 0x7 + ETHTOOL_A_COALESCE_TX_USECS_IRQ = 0x8 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 0x9 + ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 0xa + ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 0xb + ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 0xc + ETHTOOL_A_COALESCE_PKT_RATE_LOW = 0xd + ETHTOOL_A_COALESCE_RX_USECS_LOW = 0xe + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 0xf + ETHTOOL_A_COALESCE_TX_USECS_LOW = 0x10 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 0x11 + ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 0x12 + ETHTOOL_A_COALESCE_RX_USECS_HIGH = 0x13 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 0x14 + ETHTOOL_A_COALESCE_TX_USECS_HIGH = 0x15 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 0x16 + ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17 + ETHTOOL_A_COALESCE_MAX = 0x17 + ETHTOOL_A_PAUSE_UNSPEC = 0x0 + ETHTOOL_A_PAUSE_HEADER = 0x1 + ETHTOOL_A_PAUSE_AUTONEG = 0x2 + ETHTOOL_A_PAUSE_RX = 0x3 + ETHTOOL_A_PAUSE_TX = 0x4 + ETHTOOL_A_PAUSE_STATS = 0x5 + ETHTOOL_A_PAUSE_MAX = 0x5 + ETHTOOL_A_PAUSE_STAT_UNSPEC = 0x0 + ETHTOOL_A_PAUSE_STAT_PAD = 0x1 + ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 0x2 + ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 0x3 + ETHTOOL_A_PAUSE_STAT_MAX = 0x3 + ETHTOOL_A_EEE_UNSPEC = 0x0 + ETHTOOL_A_EEE_HEADER = 0x1 + ETHTOOL_A_EEE_MODES_OURS = 0x2 + ETHTOOL_A_EEE_MODES_PEER = 0x3 + ETHTOOL_A_EEE_ACTIVE = 0x4 + ETHTOOL_A_EEE_ENABLED = 0x5 + ETHTOOL_A_EEE_TX_LPI_ENABLED = 0x6 + ETHTOOL_A_EEE_TX_LPI_TIMER = 0x7 + ETHTOOL_A_EEE_MAX = 0x7 + ETHTOOL_A_TSINFO_UNSPEC = 0x0 + ETHTOOL_A_TSINFO_HEADER = 0x1 + ETHTOOL_A_TSINFO_TIMESTAMPING = 0x2 + ETHTOOL_A_TSINFO_TX_TYPES = 0x3 + ETHTOOL_A_TSINFO_RX_FILTERS = 0x4 + ETHTOOL_A_TSINFO_PHC_INDEX = 0x5 + ETHTOOL_A_TSINFO_MAX = 0x5 + ETHTOOL_A_CABLE_TEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_MAX = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_RESULT_CODE_OK = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 0x2 + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 0x3 + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 0x4 + ETHTOOL_A_CABLE_PAIR_A = 0x0 + ETHTOOL_A_CABLE_PAIR_B = 0x1 + ETHTOOL_A_CABLE_PAIR_C = 0x2 + ETHTOOL_A_CABLE_PAIR_D = 0x3 + ETHTOOL_A_CABLE_RESULT_UNSPEC = 0x0 + ETHTOOL_A_CABLE_RESULT_PAIR = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE = 0x2 + ETHTOOL_A_CABLE_RESULT_MAX = 0x2 + ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0x0 + ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 0x1 + ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 0x2 + ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 0x1 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2 + ETHTOOL_A_CABLE_NEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_NEST_RESULT = 0x1 + ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 0x2 + ETHTOOL_A_CABLE_NEST_MAX = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_NTF_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_NTF_STATUS = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_NEST = 0x3 + ETHTOOL_A_CABLE_TEST_NTF_MAX = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 0x4 + ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 0x4 + ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_CFG = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_MAX = 0x2 + ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 0x1 + ETHTOOL_A_CABLE_AMPLITUDE_mV = 0x2 + ETHTOOL_A_CABLE_AMPLITUDE_MAX = 0x2 + ETHTOOL_A_CABLE_PULSE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_PULSE_mV = 0x1 + ETHTOOL_A_CABLE_PULSE_MAX = 0x1 + ETHTOOL_A_CABLE_STEP_UNSPEC = 0x0 + ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 0x1 + ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 0x2 + ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 0x3 + ETHTOOL_A_CABLE_STEP_MAX = 0x3 + ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TDR_NEST_STEP = 0x1 + ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 0x2 + ETHTOOL_A_CABLE_TDR_NEST_PULSE = 0x3 + ETHTOOL_A_CABLE_TDR_NEST_MAX = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = 0x3 + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0x0 + ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 0x1 + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 0x2 + ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 0x1 + ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 0x2 + ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 0x2 + ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 0x1 + ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 0x2 + ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 0x3 + ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 0x3 + ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_TABLE = 0x1 + ETHTOOL_A_TUNNEL_UDP_MAX = 0x1 + ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_INFO_HEADER = 0x1 + ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 0x2 + ETHTOOL_A_TUNNEL_INFO_MAX = 0x2 +) + +type EthtoolDrvinfo struct { + Cmd uint32 + Driver [32]byte + Version [32]byte + Fw_version [32]byte + Bus_info [32]byte + Erom_version [32]byte + Reserved2 [12]byte + N_priv_flags uint32 + N_stats uint32 + Testinfo_len uint32 + Eedump_len uint32 + Regdump_len uint32 +} + +type ( + HIDRawReportDescriptor struct { + Size uint32 + Value [4096]uint8 + } + HIDRawDevInfo struct { + Bustype uint32 + Vendor int16 + Product int16 + } +) + +const ( + CLOSE_RANGE_UNSHARE = 0x2 + CLOSE_RANGE_CLOEXEC = 0x4 +) + +const ( + NLMSGERR_ATTR_MSG = 0x1 + NLMSGERR_ATTR_OFFS = 0x2 + NLMSGERR_ATTR_COOKIE = 0x3 +) 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 a908f259e..4d4d283de 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && linux // +build 386,linux package unix const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x4 + SizeofLong = 0x4 ) type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 + _C_long int32 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int32 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 _ uint16 @@ -114,36 +101,6 @@ type Stat_t struct { Ino uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +110,6 @@ type Dirent struct { _ [1]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -165,126 +118,16 @@ type Flock_t struct { Pid int32 } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -295,41 +138,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint32 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -346,390 +159,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x8 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Ebx int32 Ecx int32 @@ -771,15 +210,6 @@ type Sysinfo_t struct { _ [8]int8 } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint32 @@ -794,67 +224,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [32]uint32 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x41 type Termios struct { Iflag uint32 @@ -867,13 +244,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -923,279 +293,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint32 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x20 ) const ( @@ -1271,22 +375,6 @@ type SockaddrStorage struct { _ uint32 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1294,88 +382,6 @@ type HDGeometry struct { Start uint32 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int32 Bsize int32 @@ -1391,18 +397,6 @@ type Statfs_t struct { Spare [4]int32 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint32 Len uint32 @@ -1413,723 +407,214 @@ type TpacketHdr struct { Usec uint32 } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x18 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x1269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x18 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 +type CryptoStatLarval struct { + Type [64]int8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]int8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]int8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]int8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]int8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]int8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint16 + Inode uint32 + Rdevice uint16 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]int8 } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 } + +const ( + PPS_GETPARAMS = 0x800470a1 + PPS_SETPARAMS = 0x400470a2 + PPS_GETCAP = 0x800470a3 + PPS_FETCH = 0xc00470a4 +) 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 e63fa7415..8a2eed5ec 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && linux // +build amd64,linux package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -113,36 +100,6 @@ type Stat_t struct { _ [3]int64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -152,10 +109,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -165,126 +118,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -295,41 +140,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -347,390 +162,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { R15 uint64 R14 uint64 @@ -783,15 +224,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -807,67 +239,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [16]uint64 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x41 type Termios struct { Iflag uint32 @@ -880,13 +259,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -934,279 +306,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1282,22 +388,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1305,88 +395,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1402,18 +410,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1425,724 +421,218 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x20 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x1269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 +type CryptoStatLarval struct { + Type [64]int8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]int8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]int8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]int8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]int8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]int8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint64 + Inode uint64 + Rdevice uint64 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) 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 34e4e6db0..94b34add6 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && linux // +build arm,linux package unix const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x4 + SizeofLong = 0x4 ) type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 + _C_long int32 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int32 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 _ uint16 @@ -116,36 +103,6 @@ type Stat_t struct { Ino uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -155,10 +112,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -169,126 +122,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -299,41 +144,11 @@ type RawSockaddrAny struct { Pad [96]uint8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint32 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -350,390 +165,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x8 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Uregs [18]uint32 } @@ -759,15 +200,6 @@ type Sysinfo_t struct { _ [8]uint8 } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint32 @@ -783,67 +215,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [32]uint32 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x41 type Termios struct { Iflag uint32 @@ -856,13 +235,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -912,279 +284,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint32 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x20 ) const ( @@ -1260,22 +366,6 @@ type SockaddrStorage struct { _ uint32 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1283,88 +373,6 @@ type HDGeometry struct { Start uint32 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int32 Bsize int32 @@ -1381,18 +389,6 @@ type Statfs_t struct { _ [4]byte } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint32 Len uint32 @@ -1403,724 +399,217 @@ type TpacketHdr struct { Usec uint32 } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x18 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x1269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x18 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 +type CryptoStatLarval struct { + Type [64]uint8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]uint8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]uint8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]uint8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]uint8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]uint8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint16 + Inode uint32 + Rdevice uint16 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]uint8 } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x800470a1 + PPS_SETPARAMS = 0x400470a2 + PPS_GETCAP = 0x800470a3 + PPS_FETCH = 0xc00470a4 +) 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 7f2e26f15..2143de4d5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && linux // +build arm64,linux package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -114,36 +101,6 @@ type Stat_t struct { _ [2]int32 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +110,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -166,126 +119,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -296,41 +141,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -348,390 +163,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [31]uint64 Sp uint64 @@ -761,15 +202,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -786,67 +218,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [16]uint64 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x41 type Termios struct { Iflag uint32 @@ -859,13 +238,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -913,279 +285,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1261,22 +367,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1284,88 +374,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1381,18 +389,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1404,724 +400,218 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x20 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x1269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 +type CryptoStatLarval struct { + Type [64]int8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]int8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]int8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]int8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]int8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]int8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) 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 66e408fa0..a40216eee 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips && linux // +build mips,linux package unix const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x4 + SizeofLong = 0x4 ) type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 + _C_long int32 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int32 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint32 Pad1 [3]int32 @@ -115,36 +102,6 @@ type Stat_t struct { Pad5 [14]int32 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -154,10 +111,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -168,126 +121,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -298,41 +143,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint32 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -349,390 +164,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x8 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [32]uint64 Lo uint64 @@ -764,15 +205,6 @@ type Sysinfo_t struct { _ [8]int8 } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint32 @@ -788,67 +220,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [32]uint32 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x80 type Termios struct { Iflag uint32 @@ -861,13 +240,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -917,279 +289,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint32 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x20 ) const ( @@ -1265,22 +371,6 @@ type SockaddrStorage struct { _ uint32 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1288,88 +378,6 @@ type HDGeometry struct { Start uint32 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int32 Bsize int32 @@ -1387,18 +395,6 @@ type Statfs_t struct { _ [4]byte } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint32 Len uint32 @@ -1409,724 +405,217 @@ type TpacketHdr struct { Usec uint32 } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x18 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x20001269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x18 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 +type CryptoStatLarval struct { + Type [64]int8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]int8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]int8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]int8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]int8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]int8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint32 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]int8 } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) 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 e60575a35..e834b069f 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64 && linux // +build mips64,linux package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint32 Pad1 [3]uint32 @@ -114,36 +101,6 @@ type Stat_t struct { Blocks int64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +110,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -166,126 +119,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -296,41 +141,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -348,390 +163,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [32]uint64 Lo uint64 @@ -764,15 +205,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -783,72 +215,20 @@ type Ustat_t struct { type EpollEvent struct { Events uint32 + _ int32 Fd int32 Pad int32 } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [16]uint64 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x80 type Termios struct { Iflag uint32 @@ -861,13 +241,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -915,279 +288,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1263,22 +370,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1286,88 +377,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1383,18 +392,6 @@ type Statfs_t struct { Spare [5]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1406,724 +403,218 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x20 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x20001269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 +type CryptoStatLarval struct { + Type [64]int8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]int8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]int8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]int8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]int8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]int8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) 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 af5836a41..e31083b04 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64le && linux // +build mips64le,linux package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint32 Pad1 [3]uint32 @@ -114,36 +101,6 @@ type Stat_t struct { Blocks int64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +110,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -166,126 +119,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -296,41 +141,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -348,390 +163,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [32]uint64 Lo uint64 @@ -764,15 +205,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -783,72 +215,20 @@ type Ustat_t struct { type EpollEvent struct { Events uint32 + _ int32 Fd int32 Pad int32 } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [16]uint64 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x80 type Termios struct { Iflag uint32 @@ -861,13 +241,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -915,279 +288,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1263,22 +370,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1286,88 +377,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1383,18 +392,6 @@ type Statfs_t struct { Spare [5]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1406,724 +403,218 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x20 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x20001269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 +type CryptoStatLarval struct { + Type [64]int8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]int8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]int8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]int8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]int8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]int8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) 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 471706ac9..42811f7fb 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mipsle && linux // +build mipsle,linux package unix const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x4 + SizeofLong = 0x4 ) type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 + _C_long int32 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int32 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint32 Pad1 [3]int32 @@ -115,36 +102,6 @@ type Stat_t struct { Pad5 [14]int32 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -154,10 +111,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -168,126 +121,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -298,41 +143,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint32 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -349,390 +164,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x8 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [32]uint64 Lo uint64 @@ -764,15 +205,6 @@ type Sysinfo_t struct { _ [8]int8 } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint32 @@ -788,67 +220,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [32]uint32 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x80 type Termios struct { Iflag uint32 @@ -861,13 +240,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -917,279 +289,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint32 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x20 ) const ( @@ -1265,22 +371,6 @@ type SockaddrStorage struct { _ uint32 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1288,88 +378,6 @@ type HDGeometry struct { Start uint32 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int32 Bsize int32 @@ -1387,18 +395,6 @@ type Statfs_t struct { _ [4]byte } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint32 Len uint32 @@ -1409,724 +405,217 @@ type TpacketHdr struct { Usec uint32 } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x18 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x20001269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x18 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 +type CryptoStatLarval struct { + Type [64]int8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]int8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]int8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]int8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]int8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]int8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint32 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]int8 } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) 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 6cfa149fa..2a3afbaef 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && linux // +build ppc64,linux package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -115,36 +102,6 @@ type Stat_t struct { _ uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -154,10 +111,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -167,126 +120,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -297,41 +142,11 @@ type RawSockaddrAny struct { Pad [96]uint8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -349,390 +164,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Gpr [32]uint64 Nip uint64 @@ -771,15 +212,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -796,67 +228,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [16]uint64 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x41 type Termios struct { Iflag uint32 @@ -869,13 +248,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -923,279 +295,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1271,22 +377,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1294,88 +384,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1391,18 +399,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1414,724 +410,218 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x20 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x20001269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 +type CryptoStatLarval struct { + Type [64]uint8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]uint8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]uint8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]uint8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]uint8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]uint8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint64 + Inode uint64 + Rdevice uint64 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]uint8 + _ [4]byte } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) 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 acb3773ff..c0de30a65 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64le && linux // +build ppc64le,linux package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -115,36 +102,6 @@ type Stat_t struct { _ uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -154,10 +111,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -167,126 +120,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -297,41 +142,11 @@ type RawSockaddrAny struct { Pad [96]uint8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -349,390 +164,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Gpr [32]uint64 Nip uint64 @@ -771,15 +212,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -796,67 +228,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [16]uint64 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x41 type Termios struct { Iflag uint32 @@ -869,13 +248,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -923,279 +295,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1271,22 +377,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1294,88 +384,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1391,18 +399,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1414,724 +410,218 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x20 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x20001269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 +type CryptoStatLarval struct { + Type [64]uint8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]uint8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]uint8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]uint8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]uint8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]uint8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint64 + Inode uint64 + Rdevice uint64 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]uint8 + _ [4]byte } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index 9735b2576..74faf2e91 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build riscv64 && linux // +build riscv64,linux package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -114,36 +101,6 @@ type Stat_t struct { _ [2]int32 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +110,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -166,126 +119,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -296,41 +141,11 @@ type RawSockaddrAny struct { Pad [96]uint8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -348,390 +163,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Pc uint64 Ra uint64 @@ -789,15 +230,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -808,72 +240,20 @@ type Ustat_t struct { type EpollEvent struct { Events uint32 + _ int32 Fd int32 Pad int32 } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [16]uint64 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x41 type Termios struct { Iflag uint32 @@ -886,13 +266,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -940,279 +313,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1288,22 +395,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1311,88 +402,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1408,18 +417,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1431,724 +428,218 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x20 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x1269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 +type CryptoStatLarval struct { + Type [64]uint8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]uint8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]uint8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]uint8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]uint8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]uint8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]uint8 + _ [4]byte } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) 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 5369f652f..9a8f0c2c6 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build s390x && linux // +build s390x,linux package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +82,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -113,36 +100,6 @@ type Stat_t struct { _ [3]int64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -152,10 +109,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -165,126 +118,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x6 - FADV_NOREUSE = 0x7 + FADV_DONTNEED = 0x6 + FADV_NOREUSE = 0x7 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -295,41 +140,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -347,390 +162,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Psw PtracePsw Gprs [16]uint64 @@ -784,15 +225,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -809,67 +241,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [16]uint64 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x41 type Termios struct { Iflag uint32 @@ -882,13 +261,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -936,279 +308,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1284,22 +390,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1307,88 +397,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type uint32 Bsize uint32 @@ -1405,18 +413,6 @@ type Statfs_t struct { _ [4]byte } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1428,724 +424,218 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x20 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x1269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 +type CryptoStatLarval struct { + Type [64]int8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]int8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]int8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]int8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]int8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]int8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint16 + Inode uint64 + Rdevice uint16 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) 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 552dbe51e..72cdda75b 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -1,24 +1,18 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build sparc64 && linux // +build sparc64,linux package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -89,13 +83,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 _ uint16 @@ -116,36 +103,6 @@ type Stat_t struct { _ uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -155,10 +112,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -169,126 +122,18 @@ type Flock_t struct { _ [2]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - 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 RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -299,41 +144,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -351,390 +166,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [16]uint64 Tstate uint64 @@ -766,15 +207,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -791,67 +223,14 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x800 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { Val [16]uint64 } -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 +const _C__NSIG = 0x41 type Termios struct { Iflag uint32 @@ -864,13 +243,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -918,279 +290,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1266,22 +372,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1289,88 +379,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1386,18 +394,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1409,724 +405,218 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} +const ( + SizeofTpacketHdr = 0x20 +) -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 } -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte } -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} +const ( + BLKPG = 0x20001269 +) -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte } -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 } -type TpacketStats struct { - Packets uint32 - Drops uint32 +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 } -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 } -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 } -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 } -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 } -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 +type CryptoStatLarval struct { + Type [64]int8 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte +type CryptoReportLarval struct { + Type [64]int8 } -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 } -const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 } -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset +type CryptoReportComp struct { + Type [64]int8 } -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 +type CryptoReportAKCipher struct { + Type [64]int8 } -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 +type CryptoReportKPP struct { + Type [64]int8 } -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) +type CryptoReportAcomp struct { + Type [64]int8 +} -type ScmTimestamping struct { - Ts [3]Timespec +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte } -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 } -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 } -type FanotifyResponse struct { - Fd int32 - Response uint32 +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte } + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go index 2dae0c17a..b10e73abf 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -1,6 +1,7 @@ // cgo -godefs types_netbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && netbsd // +build 386,netbsd package unix @@ -57,27 +58,54 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev uint64 - Mode uint32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 + Dev uint64 + Mode uint32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 } type Statfs_t [0]byte +type Statvfs_t struct { + Flag uint32 + Bsize uint32 + Frsize uint32 + Iosize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint32 + Namemax uint32 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte +} + type Flock_t struct { Start int64 Len int64 @@ -103,6 +131,11 @@ const ( PathMax = 0x400 ) +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + const ( FADV_NORMAL = 0x0 FADV_RANDOM = 0x1 @@ -216,6 +249,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c @@ -411,6 +445,7 @@ type Ptmget struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 AT_SYMLINK_NOFOLLOW = 0x200 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go index 1f0e76c0c..28ed6d55a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_netbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && netbsd // +build amd64,netbsd package unix @@ -58,30 +59,58 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev uint64 - Mode uint32 - Pad_cgo_0 [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Pad_cgo_1 [4]byte - Rdev uint64 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - Pad_cgo_2 [4]byte + Dev uint64 + Mode uint32 + _ [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + _ [4]byte + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + _ [4]byte } type Statfs_t [0]byte +type Statvfs_t struct { + Flag uint64 + Bsize uint64 + Frsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint64 + Namemax uint64 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte + _ [4]byte +} + type Flock_t struct { Start int64 Len int64 @@ -107,6 +136,11 @@ const ( PathMax = 0x400 ) +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + const ( FADV_NORMAL = 0x0 FADV_RANDOM = 0x1 @@ -222,6 +256,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 @@ -418,6 +453,7 @@ type Ptmget struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 AT_SYMLINK_NOFOLLOW = 0x200 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go index 53f2159c7..4ba196ebe 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -1,6 +1,7 @@ // cgo -godefs types_netbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && netbsd // +build arm,netbsd package unix @@ -59,30 +60,57 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev uint64 - Mode uint32 - Pad_cgo_0 [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Pad_cgo_1 [4]byte - Rdev uint64 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - Pad_cgo_2 [4]byte + Dev uint64 + Mode uint32 + _ [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + _ [4]byte + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + _ [4]byte } type Statfs_t [0]byte +type Statvfs_t struct { + Flag uint32 + Bsize uint32 + Frsize uint32 + Iosize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint32 + Namemax uint32 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte +} + type Flock_t struct { Start int64 Len int64 @@ -108,6 +136,11 @@ const ( PathMax = 0x400 ) +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + const ( FADV_NORMAL = 0x0 FADV_RANDOM = 0x1 @@ -221,6 +254,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c @@ -416,6 +450,7 @@ type Ptmget struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 AT_SYMLINK_NOFOLLOW = 0x200 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go index 43da2c41c..dd642bd9c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -1,6 +1,7 @@ // cgo -godefs types_netbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && netbsd // +build arm64,netbsd package unix @@ -58,30 +59,58 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev uint64 - Mode uint32 - Pad_cgo_0 [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Pad_cgo_1 [4]byte - Rdev uint64 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - Pad_cgo_2 [4]byte + Dev uint64 + Mode uint32 + _ [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + _ [4]byte + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + _ [4]byte } type Statfs_t [0]byte +type Statvfs_t struct { + Flag uint64 + Bsize uint64 + Frsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint64 + Namemax uint64 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte + _ [4]byte +} + type Flock_t struct { Start int64 Len int64 @@ -107,6 +136,11 @@ const ( PathMax = 0x400 ) +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + const ( FADV_NORMAL = 0x0 FADV_RANDOM = 0x1 @@ -222,6 +256,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 @@ -418,6 +453,7 @@ type Ptmget struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 AT_SYMLINK_NOFOLLOW = 0x200 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go index 900fb4462..1fdb0e5fa 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go @@ -1,6 +1,7 @@ // cgo -godefs types_openbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && openbsd // +build 386,openbsd package unix @@ -231,6 +232,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c @@ -436,6 +438,7 @@ type Winsize struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 AT_SYMLINK_NOFOLLOW = 0x2 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go index 028fa78d7..e2fc93c7c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_openbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && openbsd // +build amd64,openbsd package unix @@ -235,6 +236,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 @@ -436,6 +438,7 @@ type Winsize struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 AT_SYMLINK_NOFOLLOW = 0x2 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go index b45d5eedf..8d34b5a2f 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -1,6 +1,7 @@ // cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && openbsd // +build arm,openbsd package unix @@ -235,6 +236,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c @@ -437,6 +439,7 @@ type Winsize struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 AT_SYMLINK_NOFOLLOW = 0x2 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go new file mode 100644 index 000000000..ea8f1a0d9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go @@ -0,0 +1,567 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 + AT_SYMLINK_NOFOLLOW = 0x2 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go new file mode 100644 index 000000000..ec6e8bc3f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go @@ -0,0 +1,567 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && openbsd +// +build mips64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 + AT_SYMLINK_NOFOLLOW = 0x2 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go index 8531a190f..85effef9c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_solaris.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && solaris // +build amd64,solaris package unix @@ -88,7 +89,6 @@ type Stat_t struct { Mtim Timespec Ctim Timespec Blksize int32 - _ [4]byte Blocks int64 Fstype [16]int8 } @@ -96,7 +96,6 @@ type Stat_t struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Sysid int32 @@ -138,12 +137,12 @@ type RawSockaddrInet4 struct { } type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - X__sin6_src_id uint32 + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + _ uint32 } type RawSockaddrUnix struct { @@ -196,10 +195,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Accrights *int8 Accrightslen int32 _ [4]byte @@ -211,6 +208,12 @@ type Cmsghdr struct { Type int32 } +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + type Inet6Pktinfo struct { Addr [16]byte /* in6_addr */ Ifindex uint32 @@ -222,7 +225,7 @@ type IPv6MTUInfo struct { } type ICMPv6Filter struct { - X__icmp6_filt [8]uint32 + Filt [8]uint32 } const ( @@ -232,10 +235,12 @@ const ( SizeofSockaddrUnix = 0x6e SizeofSockaddrDatalink = 0xfc SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc SizeofInet6Pktinfo = 0x14 SizeofIPv6MTUInfo = 0x24 SizeofICMPv6Filter = 0x20 @@ -284,7 +289,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -292,7 +296,6 @@ type IfData struct { Type uint8 Addrlen uint8 Hdrlen uint8 - _ [1]byte Mtu uint32 Metric uint32 Baudrate uint32 @@ -317,7 +320,6 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Metric int32 } @@ -326,7 +328,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -364,15 +365,14 @@ type BpfVersion struct { } type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 + Recv uint64 + Drop uint64 + Capt uint64 + _ [13]uint64 } type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } diff --git a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go new file mode 100644 index 000000000..8bffde78e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go @@ -0,0 +1,402 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +// Hand edited based on ztypes_linux_s390x.go +// TODO: auto-generate. + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 + PathMax = 0x1000 +) + +const ( + SizeofSockaddrAny = 128 + SizeofCmsghdr = 12 + SizeofIPMreq = 8 + SizeofIPv6Mreq = 20 + SizeofICMPv6Filter = 32 + SizeofIPv6MTUInfo = 32 + SizeofLinger = 8 + SizeofSockaddrInet4 = 16 + SizeofSockaddrInet6 = 28 + SizeofTCPInfo = 0x68 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type timeval_zos struct { //correct (with padding and all) + Sec int64 + _ [4]byte // pad + Usec int32 +} + +type Tms struct { //clock_t is 4-byte unsigned int in zos + Utime uint32 + Stime uint32 + Cutime uint32 + Cstime uint32 +} + +type Time_t int64 + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Utsname struct { + Sysname [65]byte + Nodename [65]byte + Release [65]byte + Version [65]byte + Machine [65]byte + Domainname [65]byte +} + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [108]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + _ [112]uint8 // pad +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Iov *Iovec + Control *byte + Flags int32 + Namelen int32 + Iovlen int32 + Controllen int32 +} + +type Cmsghdr struct { + Len int32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Addr [4]byte /* in_addr */ + Ifindex uint32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +type _Gid_t uint32 + +type rusage_zos struct { + Utime timeval_zos + Stime timeval_zos +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +// { int, short, short } in poll.h +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Stat_t struct { //Linux Definition + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int64 + Blocks int64 + _ [3]int64 +} + +type Stat_LE_t struct { + _ [4]byte // eye catcher + Length uint16 + Version uint16 + Mode int32 + Ino uint32 + Dev uint32 + Nlink int32 + Uid int32 + Gid int32 + Size int64 + Atim31 [4]byte + Mtim31 [4]byte + Ctim31 [4]byte + Rdev uint32 + Auditoraudit uint32 + Useraudit uint32 + Blksize int32 + Creatim31 [4]byte + AuditID [16]byte + _ [4]byte // rsrvd1 + File_tag struct { + Ccsid uint16 + Txtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14 + } + CharsetID [8]byte + Blocks int64 + Genvalue uint32 + Reftim31 [4]byte + Fid [8]byte + Filefmt byte + Fspflag2 byte + _ [2]byte // rsrvd2 + Ctimemsec int32 + Seclabel [8]byte + _ [4]byte // rsrvd3 + _ [4]byte // rsrvd4 + Atim Time_t + Mtim Time_t + Ctim Time_t + Creatim Time_t + Reftim Time_t + _ [24]byte // rsrvd5 +} + +type Statvfs_t struct { + ID [4]byte + Len int32 + Bsize uint64 + Blocks uint64 + Usedspace uint64 + Bavail uint64 + Flag uint64 + Maxfilesize int64 + _ [16]byte + Frsize uint64 + Bfree uint64 + Files uint32 + Ffree uint32 + Favail uint32 + Namemax31 uint32 + Invarsec uint32 + _ [4]byte + Fsid uint64 + Namemax uint64 +} + +type Statfs_t struct { + Type uint32 + Bsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint32 + Ffree uint32 + Fsid uint64 + Namelen uint64 + Frsize uint64 + Flags uint64 +} + +type Dirent struct { + Reclen uint16 + Namlen uint16 + Ino uint32 + Extra uintptr + Name [256]byte +} + +// This struct is packed on z/OS so it can't be used directly. +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 +} + +type Termios struct { + Cflag uint32 + Iflag uint32 + Lflag uint32 + Oflag uint32 + Cc [11]uint8 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type W_Mnth struct { + Hid [4]byte + Size int32 + Cur1 int32 //32bit pointer + Cur2 int32 //^ + Devno uint32 + _ [4]byte +} + +type W_Mntent struct { + Fstype uint32 + Mode uint32 + Dev uint32 + Parentdev uint32 + Rootino uint32 + Status byte + Ddname [9]byte + Fstname [9]byte + Fsname [45]byte + Pathlen uint32 + Mountpoint [1024]byte + Jobname [8]byte + PID int32 + Parmoffset int32 + Parmlen int16 + Owner [8]byte + Quiesceowner [8]byte + _ [38]byte +} diff --git a/vendor/golang.org/x/sys/windows/asm_windows_386.s b/vendor/golang.org/x/sys/windows/asm_windows_386.s deleted file mode 100644 index 21d994d31..000000000 --- a/vendor/golang.org/x/sys/windows/asm_windows_386.s +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -// -// System calls for 386, Windows are implemented in runtime/syscall_windows.goc -// - -TEXT ·getprocaddress(SB), 7, $0-16 - JMP syscall·getprocaddress(SB) - -TEXT ·loadlibrary(SB), 7, $0-12 - JMP syscall·loadlibrary(SB) diff --git a/vendor/golang.org/x/sys/windows/asm_windows_amd64.s b/vendor/golang.org/x/sys/windows/asm_windows_amd64.s deleted file mode 100644 index 5bfdf7974..000000000 --- a/vendor/golang.org/x/sys/windows/asm_windows_amd64.s +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -// -// System calls for amd64, Windows are implemented in runtime/syscall_windows.goc -// - -TEXT ·getprocaddress(SB), 7, $0-32 - JMP syscall·getprocaddress(SB) - -TEXT ·loadlibrary(SB), 7, $0-24 - JMP syscall·loadlibrary(SB) diff --git a/vendor/golang.org/x/sys/windows/asm_windows_arm.s b/vendor/golang.org/x/sys/windows/asm_windows_arm.s deleted file mode 100644 index 55d8b91a2..000000000 --- a/vendor/golang.org/x/sys/windows/asm_windows_arm.s +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -#include "textflag.h" - -TEXT ·getprocaddress(SB),NOSPLIT,$0 - B syscall·getprocaddress(SB) - -TEXT ·loadlibrary(SB),NOSPLIT,$0 - B syscall·loadlibrary(SB) diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go index ba67658db..115341fba 100644 --- a/vendor/golang.org/x/sys/windows/dll_windows.go +++ b/vendor/golang.org/x/sys/windows/dll_windows.go @@ -11,6 +11,18 @@ import ( "unsafe" ) +// We need to use LoadLibrary and GetProcAddress from the Go runtime, because +// the these symbols are loaded by the system linker and are required to +// dynamically load additional symbols. Note that in the Go runtime, these +// return syscall.Handle and syscall.Errno, but these are the same, in fact, +// as windows.Handle and windows.Errno, and we intend to keep these the same. + +//go:linkname syscall_loadlibrary syscall.loadlibrary +func syscall_loadlibrary(filename *uint16) (handle Handle, err Errno) + +//go:linkname syscall_getprocaddress syscall.getprocaddress +func syscall_getprocaddress(handle Handle, procname *uint8) (proc uintptr, err Errno) + // DLLError describes reasons for DLL load failures. type DLLError struct { Err error @@ -20,9 +32,7 @@ type DLLError struct { func (e *DLLError) Error() string { return e.Msg } -// Implemented in runtime/syscall_windows.goc; we provide jumps to them in our assembly file. -func loadlibrary(filename *uint16) (handle uintptr, err syscall.Errno) -func getprocaddress(handle uintptr, procname *uint8) (proc uintptr, err syscall.Errno) +func (e *DLLError) Unwrap() error { return e.Err } // A DLL implements access to a single DLL. type DLL struct { @@ -40,7 +50,7 @@ func LoadDLL(name string) (dll *DLL, err error) { if err != nil { return nil, err } - h, e := loadlibrary(namep) + h, e := syscall_loadlibrary(namep) if e != 0 { return nil, &DLLError{ Err: e, @@ -50,7 +60,7 @@ func LoadDLL(name string) (dll *DLL, err error) { } d := &DLL{ Name: name, - Handle: Handle(h), + Handle: h, } return d, nil } @@ -71,7 +81,7 @@ func (d *DLL) FindProc(name string) (proc *Proc, err error) { if err != nil { return nil, err } - a, e := getprocaddress(uintptr(d.Handle), namep) + a, e := syscall_getprocaddress(d.Handle, namep) if e != 0 { return nil, &DLLError{ Err: e, @@ -96,6 +106,35 @@ func (d *DLL) MustFindProc(name string) *Proc { return p } +// FindProcByOrdinal searches DLL d for procedure by ordinal and returns *Proc +// if found. It returns an error if search fails. +func (d *DLL) FindProcByOrdinal(ordinal uintptr) (proc *Proc, err error) { + a, e := GetProcAddressByOrdinal(d.Handle, ordinal) + name := "#" + itoa(int(ordinal)) + if e != nil { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), + } + } + p := &Proc{ + Dll: d, + Name: name, + addr: a, + } + return p, nil +} + +// MustFindProcByOrdinal is like FindProcByOrdinal but panics if search fails. +func (d *DLL) MustFindProcByOrdinal(ordinal uintptr) *Proc { + p, e := d.FindProcByOrdinal(ordinal) + if e != nil { + panic(e) + } + return p +} + // Release unloads DLL d from memory. func (d *DLL) Release() (err error) { return FreeLibrary(d.Handle) @@ -352,7 +391,6 @@ func loadLibraryEx(name string, system bool) (*DLL, error) { var flags uintptr if system { if canDoSearchSystem32() { - const LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x00000800 flags = LOAD_LIBRARY_SEARCH_SYSTEM32 } else if isBaseName(name) { // WindowsXP or unpatched Windows machine diff --git a/vendor/golang.org/x/sys/windows/mkerrors.go b/vendor/golang.org/x/sys/windows/empty.s similarity index 51% rename from vendor/golang.org/x/sys/windows/mkerrors.go rename to vendor/golang.org/x/sys/windows/empty.s index cbf123ef8..69309e4da 100644 --- a/vendor/golang.org/x/sys/windows/mkerrors.go +++ b/vendor/golang.org/x/sys/windows/empty.s @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -package windows +// +build !go1.12 -//go:generate ./mkerrors.bash zerrors_windows.go +// This file is here to allow bodyless functions with go:linkname for Go 1.11 +// and earlier (see https://golang.org/issue/23311). diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go index bdc71e241..92ac05ff4 100644 --- a/vendor/golang.org/x/sys/windows/env_windows.go +++ b/vendor/golang.org/x/sys/windows/env_windows.go @@ -6,7 +6,10 @@ package windows -import "syscall" +import ( + "syscall" + "unsafe" +) func Getenv(key string) (value string, found bool) { return syscall.Getenv(key) @@ -24,6 +27,28 @@ func Environ() []string { return syscall.Environ() } +// Returns a default environment associated with the token, rather than the current +// process. If inheritExisting is true, then this environment also inherits the +// environment of the current process. +func (token Token) Environ(inheritExisting bool) (env []string, err error) { + var block *uint16 + err = CreateEnvironmentBlock(&block, token, inheritExisting) + if err != nil { + return nil, err + } + defer DestroyEnvironmentBlock(block) + blockp := uintptr(unsafe.Pointer(block)) + for { + entry := UTF16PtrToString((*uint16)(unsafe.Pointer(blockp))) + if len(entry) == 0 { + break + } + env = append(env, entry) + blockp += 2 * (uintptr(len(entry)) + 1) + } + return env, nil +} + func Unsetenv(key string) error { return syscall.Unsetenv(key) } diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go index 3606c3a8b..9eb1fb633 100644 --- a/vendor/golang.org/x/sys/windows/exec_windows.go +++ b/vendor/golang.org/x/sys/windows/exec_windows.go @@ -6,6 +6,11 @@ package windows +import ( + errorspkg "errors" + "unsafe" +) + // EscapeArg rewrites command line argument s as prescribed // in http://msdn.microsoft.com/en-us/library/ms880421. // This function returns "" (2 double quotes) if s is empty. @@ -95,3 +100,33 @@ func FullPath(name string) (path string, err error) { } } } + +// NewProcThreadAttributeList allocates a new ProcThreadAttributeList, with the requested maximum number of attributes. +func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeList, error) { + var size uintptr + err := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size) + if err != ERROR_INSUFFICIENT_BUFFER { + if err == nil { + return nil, errorspkg.New("unable to query buffer size from InitializeProcThreadAttributeList") + } + return nil, err + } + const psize = unsafe.Sizeof(uintptr(0)) + // size is guaranteed to be ≥1 by InitializeProcThreadAttributeList. + al := (*ProcThreadAttributeList)(unsafe.Pointer(&make([]unsafe.Pointer, (size+psize-1)/psize)[0])) + err = initializeProcThreadAttributeList(al, maxAttrCount, 0, &size) + if err != nil { + return nil, err + } + return al, err +} + +// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute. +func (al *ProcThreadAttributeList) Update(attribute uintptr, flags uint32, value unsafe.Pointer, size uintptr, prevValue unsafe.Pointer, returnedSize *uintptr) error { + return updateProcThreadAttribute(al, flags, attribute, value, size, prevValue, returnedSize) +} + +// Delete frees ProcThreadAttributeList's resources. +func (al *ProcThreadAttributeList) Delete() { + deleteProcThreadAttributeList(al) +} diff --git a/vendor/golang.org/x/sys/windows/memory_windows.go b/vendor/golang.org/x/sys/windows/memory_windows.go index f80a4204f..1adb60739 100644 --- a/vendor/golang.org/x/sys/windows/memory_windows.go +++ b/vendor/golang.org/x/sys/windows/memory_windows.go @@ -16,11 +16,22 @@ const ( MEM_RESET_UNDO = 0x01000000 MEM_LARGE_PAGES = 0x20000000 - PAGE_NOACCESS = 0x01 - PAGE_READONLY = 0x02 - PAGE_READWRITE = 0x04 - PAGE_WRITECOPY = 0x08 - PAGE_EXECUTE_READ = 0x20 - PAGE_EXECUTE_READWRITE = 0x40 - PAGE_EXECUTE_WRITECOPY = 0x80 + PAGE_NOACCESS = 0x00000001 + PAGE_READONLY = 0x00000002 + PAGE_READWRITE = 0x00000004 + PAGE_WRITECOPY = 0x00000008 + PAGE_EXECUTE = 0x00000010 + PAGE_EXECUTE_READ = 0x00000020 + PAGE_EXECUTE_READWRITE = 0x00000040 + PAGE_EXECUTE_WRITECOPY = 0x00000080 + PAGE_GUARD = 0x00000100 + PAGE_NOCACHE = 0x00000200 + PAGE_WRITECOMBINE = 0x00000400 + PAGE_TARGETS_INVALID = 0x40000000 + PAGE_TARGETS_NO_UPDATE = 0x40000000 + + QUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002 + QUOTA_LIMITS_HARDWS_MIN_ENABLE = 0x00000001 + QUOTA_LIMITS_HARDWS_MAX_DISABLE = 0x00000008 + QUOTA_LIMITS_HARDWS_MAX_ENABLE = 0x00000004 ) diff --git a/vendor/golang.org/x/sys/windows/mkerrors.bash b/vendor/golang.org/x/sys/windows/mkerrors.bash index a70b24f39..58e0188fb 100644 --- a/vendor/golang.org/x/sys/windows/mkerrors.bash +++ b/vendor/golang.org/x/sys/windows/mkerrors.bash @@ -7,14 +7,15 @@ set -e shopt -s nullglob -[[ $# -eq 1 ]] || { echo "Usage: $0 OUTPUT_FILE.go" >&2; exit 1; } winerror="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)" [[ -n $winerror ]] || { echo "Unable to find winerror.h" >&2; exit 1; } +ntstatus="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/ntstatus.h | sort -Vr | head -n 1)" +[[ -n $ntstatus ]] || { echo "Unable to find ntstatus.h" >&2; exit 1; } declare -A errors { - echo "// Code generated by 'go generate'; DO NOT EDIT." + echo "// Code generated by 'mkerrors.bash'; DO NOT EDIT." echo echo "package windows" echo "import \"syscall\"" @@ -60,5 +61,10 @@ declare -A errors echo "$key $vtype = $value" done < "$winerror" + while read -r line; do + [[ $line =~ ^#define\ (STATUS_[^\s]+)\ +\(\(NTSTATUS\)((0x)?[0-9a-fA-F]+)L?\) ]] || continue + echo "${BASH_REMATCH[1]} NTStatus = ${BASH_REMATCH[2]}" + done < "$ntstatus" + echo ")" -} | gofmt > "$1" +} | gofmt > "zerrors_windows.go" diff --git a/vendor/golang.org/x/sys/windows/mkknownfolderids.bash b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash new file mode 100644 index 000000000..ab8924e93 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash @@ -0,0 +1,27 @@ +#!/bin/bash + +# Copyright 2019 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. + +set -e +shopt -s nullglob + +knownfolders="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)" +[[ -n $knownfolders ]] || { echo "Unable to find KnownFolders.h" >&2; exit 1; } + +{ + echo "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT." + echo + echo "package windows" + echo "type KNOWNFOLDERID GUID" + echo "var (" + while read -r line; do + [[ $line =~ DEFINE_KNOWN_FOLDER\((FOLDERID_[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+)\) ]] || continue + printf "%s = &KNOWNFOLDERID{0x%08x, 0x%04x, 0x%04x, [8]byte{0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x}}\n" \ + "${BASH_REMATCH[1]}" $(( "${BASH_REMATCH[2]}" )) $(( "${BASH_REMATCH[3]}" )) $(( "${BASH_REMATCH[4]}" )) \ + $(( "${BASH_REMATCH[5]}" )) $(( "${BASH_REMATCH[6]}" )) $(( "${BASH_REMATCH[7]}" )) $(( "${BASH_REMATCH[8]}" )) \ + $(( "${BASH_REMATCH[9]}" )) $(( "${BASH_REMATCH[10]}" )) $(( "${BASH_REMATCH[11]}" )) $(( "${BASH_REMATCH[12]}" )) + done < "$knownfolders" + echo ")" +} | gofmt > "zknownfolderids_windows.go" diff --git a/vendor/golang.org/x/sys/windows/mksyscall.go b/vendor/golang.org/x/sys/windows/mksyscall.go index fb7db0ef8..328e3b2ac 100644 --- a/vendor/golang.org/x/sys/windows/mksyscall.go +++ b/vendor/golang.org/x/sys/windows/mksyscall.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. +// +build generate + package windows -//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go +//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go index da06406c4..111c10d3a 100644 --- a/vendor/golang.org/x/sys/windows/security_windows.go +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -7,14 +7,8 @@ package windows import ( "syscall" "unsafe" -) -const ( - STANDARD_RIGHTS_REQUIRED = 0xf0000 - STANDARD_RIGHTS_READ = 0x20000 - STANDARD_RIGHTS_WRITE = 0x20000 - STANDARD_RIGHTS_EXECUTE = 0x20000 - STANDARD_RIGHTS_ALL = 0x1F0000 + "golang.org/x/sys/internal/unsafeheader" ) const ( @@ -170,15 +164,20 @@ const ( //sys CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid //sys AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid //sys createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) = advapi32.CreateWellKnownSid +//sys isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) = advapi32.IsWellKnownSid //sys FreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid //sys EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid +//sys getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) = advapi32.GetSidIdentifierAuthority +//sys getSidSubAuthorityCount(sid *SID) (count *uint8) = advapi32.GetSidSubAuthorityCount +//sys getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) = advapi32.GetSidSubAuthority +//sys isValidSid(sid *SID) (isValid bool) = advapi32.IsValidSid // The security identifier (SID) structure is a variable-length // structure used to uniquely identify users or groups. type SID struct{} // StringToSid converts a string-format security identifier -// sid into a valid, functional sid. +// SID into a valid, functional SID. func StringToSid(s string) (*SID, error) { var sid *SID p, e := UTF16PtrFromString(s) @@ -193,7 +192,7 @@ func StringToSid(s string) (*SID, error) { return sid.Copy() } -// LookupSID retrieves a security identifier sid for the account +// LookupSID retrieves a security identifier SID for the account // and the name of the domain on which the account was found. // System specify target computer to search. func LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) { @@ -230,24 +229,23 @@ func LookupSID(system, account string) (sid *SID, domain string, accType uint32, } } -// String converts sid to a string format -// suitable for display, storage, or transmission. -func (sid *SID) String() (string, error) { +// String converts SID to a string format suitable for display, storage, or transmission. +func (sid *SID) String() string { var s *uint16 e := ConvertSidToStringSid(sid, &s) if e != nil { - return "", e + return "" } defer LocalFree((Handle)(unsafe.Pointer(s))) - return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]), nil + return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]) } -// Len returns the length, in bytes, of a valid security identifier sid. +// Len returns the length, in bytes, of a valid security identifier SID. func (sid *SID) Len() int { return int(GetLengthSid(sid)) } -// Copy creates a duplicate of security identifier sid. +// Copy creates a duplicate of security identifier SID. func (sid *SID) Copy() (*SID, error) { b := make([]byte, sid.Len()) sid2 := (*SID)(unsafe.Pointer(&b[0])) @@ -258,8 +256,42 @@ func (sid *SID) Copy() (*SID, error) { return sid2, nil } -// LookupAccount retrieves the name of the account for this sid -// and the name of the first domain on which this sid is found. +// IdentifierAuthority returns the identifier authority of the SID. +func (sid *SID) IdentifierAuthority() SidIdentifierAuthority { + return *getSidIdentifierAuthority(sid) +} + +// SubAuthorityCount returns the number of sub-authorities in the SID. +func (sid *SID) SubAuthorityCount() uint8 { + return *getSidSubAuthorityCount(sid) +} + +// SubAuthority returns the sub-authority of the SID as specified by +// the index, which must be less than sid.SubAuthorityCount(). +func (sid *SID) SubAuthority(idx uint32) uint32 { + if idx >= uint32(sid.SubAuthorityCount()) { + panic("sub-authority index out of range") + } + return *getSidSubAuthority(sid, idx) +} + +// IsValid returns whether the SID has a valid revision and length. +func (sid *SID) IsValid() bool { + return isValidSid(sid) +} + +// Equals compares two SIDs for equality. +func (sid *SID) Equals(sid2 *SID) bool { + return EqualSid(sid, sid2) +} + +// IsWellKnown determines whether the SID matches the well-known sidType. +func (sid *SID) IsWellKnown(sidType WELL_KNOWN_SID_TYPE) bool { + return isWellKnownSid(sid, sidType) +} + +// LookupAccount retrieves the name of the account for this SID +// and the name of the first domain on which this SID is found. // System specify target computer to search for. func (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) { var sys *uint16 @@ -287,7 +319,7 @@ func (sid *SID) LookupAccount(system string) (account, domain string, accType ui } } -// Various types of pre-specified sids that can be synthesized at runtime. +// Various types of pre-specified SIDs that can be synthesized and compared at runtime. type WELL_KNOWN_SID_TYPE uint32 const ( @@ -413,13 +445,13 @@ const ( WinBuiltinDeviceOwnersSid = 119 ) -// Creates a sid for a well-known predefined alias, generally using the constants of the form +// Creates a SID for a well-known predefined alias, generally using the constants of the form // Win*Sid, for the local machine. func CreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE) (*SID, error) { return CreateWellKnownDomainSid(sidType, nil) } -// Creates a sid for a well-known predefined alias, generally using the constants of the form +// Creates a SID for a well-known predefined alias, generally using the constants of the form // Win*Sid, for the domain specified by the domainSid parameter. func CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) { n := uint32(50) @@ -502,6 +534,53 @@ const ( MaxTokenInfoClass ) +// Group attributes inside of Tokengroups.Groups[i].Attributes +const ( + SE_GROUP_MANDATORY = 0x00000001 + SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 + SE_GROUP_ENABLED = 0x00000004 + SE_GROUP_OWNER = 0x00000008 + SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 + SE_GROUP_INTEGRITY = 0x00000020 + SE_GROUP_INTEGRITY_ENABLED = 0x00000040 + SE_GROUP_LOGON_ID = 0xC0000000 + SE_GROUP_RESOURCE = 0x20000000 + SE_GROUP_VALID_ATTRIBUTES = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED | SE_GROUP_OWNER | SE_GROUP_USE_FOR_DENY_ONLY | SE_GROUP_LOGON_ID | SE_GROUP_RESOURCE | SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED +) + +// Privilege attributes +const ( + SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 + SE_PRIVILEGE_ENABLED = 0x00000002 + SE_PRIVILEGE_REMOVED = 0x00000004 + SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 + SE_PRIVILEGE_VALID_ATTRIBUTES = SE_PRIVILEGE_ENABLED_BY_DEFAULT | SE_PRIVILEGE_ENABLED | SE_PRIVILEGE_REMOVED | SE_PRIVILEGE_USED_FOR_ACCESS +) + +// Token types +const ( + TokenPrimary = 1 + TokenImpersonation = 2 +) + +// Impersonation levels +const ( + SecurityAnonymous = 0 + SecurityIdentification = 1 + SecurityImpersonation = 2 + SecurityDelegation = 3 +) + +type LUID struct { + LowPart uint32 + HighPart int32 +} + +type LUIDAndAttributes struct { + Luid LUID + Attributes uint32 +} + type SIDAndAttributes struct { Sid *SID Attributes uint32 @@ -517,15 +596,50 @@ type Tokenprimarygroup struct { type Tokengroups struct { GroupCount uint32 - Groups [1]SIDAndAttributes + Groups [1]SIDAndAttributes // Use AllGroups() for iterating. +} + +// AllGroups returns a slice that can be used to iterate over the groups in g. +func (g *Tokengroups) AllGroups() []SIDAndAttributes { + return (*[(1 << 28) - 1]SIDAndAttributes)(unsafe.Pointer(&g.Groups[0]))[:g.GroupCount:g.GroupCount] +} + +type Tokenprivileges struct { + PrivilegeCount uint32 + Privileges [1]LUIDAndAttributes // Use AllPrivileges() for iterating. +} + +// AllPrivileges returns a slice that can be used to iterate over the privileges in p. +func (p *Tokenprivileges) AllPrivileges() []LUIDAndAttributes { + return (*[(1 << 27) - 1]LUIDAndAttributes)(unsafe.Pointer(&p.Privileges[0]))[:p.PrivilegeCount:p.PrivilegeCount] +} + +type Tokenmandatorylabel struct { + Label SIDAndAttributes +} + +func (tml *Tokenmandatorylabel) Size() uint32 { + return uint32(unsafe.Sizeof(Tokenmandatorylabel{})) + GetLengthSid(tml.Label.Sid) } // Authorization Functions -//sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership -//sys OpenProcessToken(h Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken -//sys GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation +//sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership +//sys isTokenRestricted(tokenHandle Token) (ret bool, err error) [!failretval] = advapi32.IsTokenRestricted +//sys OpenProcessToken(process Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken +//sys OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) = advapi32.OpenThreadToken +//sys ImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf +//sys RevertToSelf() (err error) = advapi32.RevertToSelf +//sys SetThreadToken(thread *Handle, token Token) (err error) = advapi32.SetThreadToken +//sys LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) = advapi32.LookupPrivilegeValueW +//sys AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) = advapi32.AdjustTokenPrivileges +//sys AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) = advapi32.AdjustTokenGroups +//sys GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation +//sys SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) = advapi32.SetTokenInformation +//sys DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) = advapi32.DuplicateTokenEx //sys GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW //sys getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW +//sys getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetWindowsDirectoryW +//sys getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemWindowsDirectoryW // An access token contains the security information for a logon session. // The system creates an access token when a user logs on, and every @@ -536,19 +650,37 @@ type Tokengroups struct { // system-related operations on the local computer. type Token Handle -// OpenCurrentProcessToken opens the access token -// associated with current process. +// OpenCurrentProcessToken opens an access token associated with current +// process with TOKEN_QUERY access. It is a real token that needs to be closed. +// +// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...) +// with the desired access instead, or use GetCurrentProcessToken for a +// TOKEN_QUERY token. func OpenCurrentProcessToken() (Token, error) { - p, e := GetCurrentProcess() - if e != nil { - return 0, e - } - var t Token - e = OpenProcessToken(p, TOKEN_QUERY, &t) - if e != nil { - return 0, e - } - return t, nil + var token Token + err := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token) + return token, err +} + +// GetCurrentProcessToken returns the access token associated with +// the current process. It is a pseudo token that does not need +// to be closed. +func GetCurrentProcessToken() Token { + return Token(^uintptr(4 - 1)) +} + +// GetCurrentThreadToken return the access token associated with +// the current thread. It is a pseudo token that does not need +// to be closed. +func GetCurrentThreadToken() Token { + return Token(^uintptr(5 - 1)) +} + +// GetCurrentThreadEffectiveToken returns the effective access token +// associated with the current thread. It is a pseudo token that does +// not need to be closed. +func GetCurrentThreadEffectiveToken() Token { + return Token(^uintptr(6 - 1)) } // Close releases access to access token. @@ -622,8 +754,30 @@ func (t Token) GetUserProfileDirectory() (string, error) { } } -// GetSystemDirectory retrieves path to current location of the system -// directory, which is typically, though not always, C:\Windows\System32. +// IsElevated returns whether the current token is elevated from a UAC perspective. +func (token Token) IsElevated() bool { + var isElevated uint32 + var outLen uint32 + err := GetTokenInformation(token, TokenElevation, (*byte)(unsafe.Pointer(&isElevated)), uint32(unsafe.Sizeof(isElevated)), &outLen) + if err != nil { + return false + } + return outLen == uint32(unsafe.Sizeof(isElevated)) && isElevated != 0 +} + +// GetLinkedToken returns the linked token, which may be an elevated UAC token. +func (token Token) GetLinkedToken() (Token, error) { + var linkedToken Token + var outLen uint32 + err := GetTokenInformation(token, TokenLinkedToken, (*byte)(unsafe.Pointer(&linkedToken)), uint32(unsafe.Sizeof(linkedToken)), &outLen) + if err != nil { + return Token(0), err + } + return linkedToken, nil +} + +// GetSystemDirectory retrieves the path to current location of the system +// directory, which is typically, though not always, `C:\Windows\System32`. func GetSystemDirectory() (string, error) { n := uint32(MAX_PATH) for { @@ -639,6 +793,42 @@ func GetSystemDirectory() (string, error) { } } +// GetWindowsDirectory retrieves the path to current location of the Windows +// directory, which is typically, though not always, `C:\Windows`. This may +// be a private user directory in the case that the application is running +// under a terminal server. +func GetWindowsDirectory() (string, error) { + n := uint32(MAX_PATH) + for { + b := make([]uint16, n) + l, e := getWindowsDirectory(&b[0], n) + if e != nil { + return "", e + } + if l <= n { + return UTF16ToString(b[:l]), nil + } + n = l + } +} + +// GetSystemWindowsDirectory retrieves the path to current location of the +// Windows directory, which is typically, though not always, `C:\Windows`. +func GetSystemWindowsDirectory() (string, error) { + n := uint32(MAX_PATH) + for { + b := make([]uint16, n) + l, e := getSystemWindowsDirectory(&b[0], n) + if e != nil { + return "", e + } + if l <= n { + return UTF16ToString(b[:l]), nil + } + n = l + } +} + // IsMember reports whether the access token t is a member of the provided SID. func (t Token) IsMember(sid *SID) (bool, error) { var b int32 @@ -647,3 +837,607 @@ func (t Token) IsMember(sid *SID) (bool, error) { } return b != 0, nil } + +// IsRestricted reports whether the access token t is a restricted token. +func (t Token) IsRestricted() (isRestricted bool, err error) { + isRestricted, err = isTokenRestricted(t) + if !isRestricted && err == syscall.EINVAL { + // If err is EINVAL, this returned ERROR_SUCCESS indicating a non-restricted token. + err = nil + } + return +} + +const ( + WTS_CONSOLE_CONNECT = 0x1 + WTS_CONSOLE_DISCONNECT = 0x2 + WTS_REMOTE_CONNECT = 0x3 + WTS_REMOTE_DISCONNECT = 0x4 + WTS_SESSION_LOGON = 0x5 + WTS_SESSION_LOGOFF = 0x6 + WTS_SESSION_LOCK = 0x7 + WTS_SESSION_UNLOCK = 0x8 + WTS_SESSION_REMOTE_CONTROL = 0x9 + WTS_SESSION_CREATE = 0xa + WTS_SESSION_TERMINATE = 0xb +) + +const ( + WTSActive = 0 + WTSConnected = 1 + WTSConnectQuery = 2 + WTSShadow = 3 + WTSDisconnected = 4 + WTSIdle = 5 + WTSListen = 6 + WTSReset = 7 + WTSDown = 8 + WTSInit = 9 +) + +type WTSSESSION_NOTIFICATION struct { + Size uint32 + SessionID uint32 +} + +type WTS_SESSION_INFO struct { + SessionID uint32 + WindowStationName *uint16 + State uint32 +} + +//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken +//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW +//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory + +type ACL struct { + aclRevision byte + sbz1 byte + aclSize uint16 + aceCount uint16 + sbz2 uint16 +} + +type SECURITY_DESCRIPTOR struct { + revision byte + sbz1 byte + control SECURITY_DESCRIPTOR_CONTROL + owner *SID + group *SID + sacl *ACL + dacl *ACL +} + +type SECURITY_QUALITY_OF_SERVICE struct { + Length uint32 + ImpersonationLevel uint32 + ContextTrackingMode byte + EffectiveOnly byte +} + +// Constants for the ContextTrackingMode field of SECURITY_QUALITY_OF_SERVICE. +const ( + SECURITY_STATIC_TRACKING = 0 + SECURITY_DYNAMIC_TRACKING = 1 +) + +type SecurityAttributes struct { + Length uint32 + SecurityDescriptor *SECURITY_DESCRIPTOR + InheritHandle uint32 +} + +type SE_OBJECT_TYPE uint32 + +// Constants for type SE_OBJECT_TYPE +const ( + SE_UNKNOWN_OBJECT_TYPE = 0 + SE_FILE_OBJECT = 1 + SE_SERVICE = 2 + SE_PRINTER = 3 + SE_REGISTRY_KEY = 4 + SE_LMSHARE = 5 + SE_KERNEL_OBJECT = 6 + SE_WINDOW_OBJECT = 7 + SE_DS_OBJECT = 8 + SE_DS_OBJECT_ALL = 9 + SE_PROVIDER_DEFINED_OBJECT = 10 + SE_WMIGUID_OBJECT = 11 + SE_REGISTRY_WOW64_32KEY = 12 + SE_REGISTRY_WOW64_64KEY = 13 +) + +type SECURITY_INFORMATION uint32 + +// Constants for type SECURITY_INFORMATION +const ( + OWNER_SECURITY_INFORMATION = 0x00000001 + GROUP_SECURITY_INFORMATION = 0x00000002 + DACL_SECURITY_INFORMATION = 0x00000004 + SACL_SECURITY_INFORMATION = 0x00000008 + LABEL_SECURITY_INFORMATION = 0x00000010 + ATTRIBUTE_SECURITY_INFORMATION = 0x00000020 + SCOPE_SECURITY_INFORMATION = 0x00000040 + BACKUP_SECURITY_INFORMATION = 0x00010000 + PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 + PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 + UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 + UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 +) + +type SECURITY_DESCRIPTOR_CONTROL uint16 + +// Constants for type SECURITY_DESCRIPTOR_CONTROL +const ( + SE_OWNER_DEFAULTED = 0x0001 + SE_GROUP_DEFAULTED = 0x0002 + SE_DACL_PRESENT = 0x0004 + SE_DACL_DEFAULTED = 0x0008 + SE_SACL_PRESENT = 0x0010 + SE_SACL_DEFAULTED = 0x0020 + SE_DACL_AUTO_INHERIT_REQ = 0x0100 + SE_SACL_AUTO_INHERIT_REQ = 0x0200 + SE_DACL_AUTO_INHERITED = 0x0400 + SE_SACL_AUTO_INHERITED = 0x0800 + SE_DACL_PROTECTED = 0x1000 + SE_SACL_PROTECTED = 0x2000 + SE_RM_CONTROL_VALID = 0x4000 + SE_SELF_RELATIVE = 0x8000 +) + +type ACCESS_MASK uint32 + +// Constants for type ACCESS_MASK +const ( + DELETE = 0x00010000 + READ_CONTROL = 0x00020000 + WRITE_DAC = 0x00040000 + WRITE_OWNER = 0x00080000 + SYNCHRONIZE = 0x00100000 + STANDARD_RIGHTS_REQUIRED = 0x000F0000 + STANDARD_RIGHTS_READ = READ_CONTROL + STANDARD_RIGHTS_WRITE = READ_CONTROL + STANDARD_RIGHTS_EXECUTE = READ_CONTROL + STANDARD_RIGHTS_ALL = 0x001F0000 + SPECIFIC_RIGHTS_ALL = 0x0000FFFF + ACCESS_SYSTEM_SECURITY = 0x01000000 + MAXIMUM_ALLOWED = 0x02000000 + GENERIC_READ = 0x80000000 + GENERIC_WRITE = 0x40000000 + GENERIC_EXECUTE = 0x20000000 + GENERIC_ALL = 0x10000000 +) + +type ACCESS_MODE uint32 + +// Constants for type ACCESS_MODE +const ( + NOT_USED_ACCESS = 0 + GRANT_ACCESS = 1 + SET_ACCESS = 2 + DENY_ACCESS = 3 + REVOKE_ACCESS = 4 + SET_AUDIT_SUCCESS = 5 + SET_AUDIT_FAILURE = 6 +) + +// Constants for AceFlags and Inheritance fields +const ( + NO_INHERITANCE = 0x0 + SUB_OBJECTS_ONLY_INHERIT = 0x1 + SUB_CONTAINERS_ONLY_INHERIT = 0x2 + SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3 + INHERIT_NO_PROPAGATE = 0x4 + INHERIT_ONLY = 0x8 + INHERITED_ACCESS_ENTRY = 0x10 + INHERITED_PARENT = 0x10000000 + INHERITED_GRANDPARENT = 0x20000000 + OBJECT_INHERIT_ACE = 0x1 + CONTAINER_INHERIT_ACE = 0x2 + NO_PROPAGATE_INHERIT_ACE = 0x4 + INHERIT_ONLY_ACE = 0x8 + INHERITED_ACE = 0x10 + VALID_INHERIT_FLAGS = 0x1F +) + +type MULTIPLE_TRUSTEE_OPERATION uint32 + +// Constants for MULTIPLE_TRUSTEE_OPERATION +const ( + NO_MULTIPLE_TRUSTEE = 0 + TRUSTEE_IS_IMPERSONATE = 1 +) + +type TRUSTEE_FORM uint32 + +// Constants for TRUSTEE_FORM +const ( + TRUSTEE_IS_SID = 0 + TRUSTEE_IS_NAME = 1 + TRUSTEE_BAD_FORM = 2 + TRUSTEE_IS_OBJECTS_AND_SID = 3 + TRUSTEE_IS_OBJECTS_AND_NAME = 4 +) + +type TRUSTEE_TYPE uint32 + +// Constants for TRUSTEE_TYPE +const ( + TRUSTEE_IS_UNKNOWN = 0 + TRUSTEE_IS_USER = 1 + TRUSTEE_IS_GROUP = 2 + TRUSTEE_IS_DOMAIN = 3 + TRUSTEE_IS_ALIAS = 4 + TRUSTEE_IS_WELL_KNOWN_GROUP = 5 + TRUSTEE_IS_DELETED = 6 + TRUSTEE_IS_INVALID = 7 + TRUSTEE_IS_COMPUTER = 8 +) + +// Constants for ObjectsPresent field +const ( + ACE_OBJECT_TYPE_PRESENT = 0x1 + ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 +) + +type EXPLICIT_ACCESS struct { + AccessPermissions ACCESS_MASK + AccessMode ACCESS_MODE + Inheritance uint32 + Trustee TRUSTEE +} + +// This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions. +type TrusteeValue uintptr + +func TrusteeValueFromString(str string) TrusteeValue { + return TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str))) +} +func TrusteeValueFromSID(sid *SID) TrusteeValue { + return TrusteeValue(unsafe.Pointer(sid)) +} +func TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue { + return TrusteeValue(unsafe.Pointer(objectsAndSid)) +} +func TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue { + return TrusteeValue(unsafe.Pointer(objectsAndName)) +} + +type TRUSTEE struct { + MultipleTrustee *TRUSTEE + MultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION + TrusteeForm TRUSTEE_FORM + TrusteeType TRUSTEE_TYPE + TrusteeValue TrusteeValue +} + +type OBJECTS_AND_SID struct { + ObjectsPresent uint32 + ObjectTypeGuid GUID + InheritedObjectTypeGuid GUID + Sid *SID +} + +type OBJECTS_AND_NAME struct { + ObjectsPresent uint32 + ObjectType SE_OBJECT_TYPE + ObjectTypeName *uint16 + InheritedObjectTypeName *uint16 + Name *uint16 +} + +//sys getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo +//sys SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetSecurityInfo +//sys getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW +//sys SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW +//sys SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) = advapi32.SetKernelObjectSecurity + +//sys buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW +//sys initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor + +//sys getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) = advapi32.GetSecurityDescriptorControl +//sys getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorDacl +//sys getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorSacl +//sys getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorOwner +//sys getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorGroup +//sys getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) = advapi32.GetSecurityDescriptorLength +//sys getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) [failretval!=0] = advapi32.GetSecurityDescriptorRMControl +//sys isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) = advapi32.IsValidSecurityDescriptor + +//sys setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) = advapi32.SetSecurityDescriptorControl +//sys setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorDacl +//sys setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorSacl +//sys setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) = advapi32.SetSecurityDescriptorOwner +//sys setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) = advapi32.SetSecurityDescriptorGroup +//sys setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) = advapi32.SetSecurityDescriptorRMControl + +//sys convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW +//sys convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW + +//sys makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) = advapi32.MakeAbsoluteSD +//sys makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD + +//sys setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW + +// Control returns the security descriptor control bits. +func (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) { + err = getSecurityDescriptorControl(sd, &control, &revision) + return +} + +// SetControl sets the security descriptor control bits. +func (sd *SECURITY_DESCRIPTOR) SetControl(controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) error { + return setSecurityDescriptorControl(sd, controlBitsOfInterest, controlBitsToSet) +} + +// RMControl returns the security descriptor resource manager control bits. +func (sd *SECURITY_DESCRIPTOR) RMControl() (control uint8, err error) { + err = getSecurityDescriptorRMControl(sd, &control) + return +} + +// SetRMControl sets the security descriptor resource manager control bits. +func (sd *SECURITY_DESCRIPTOR) SetRMControl(rmControl uint8) { + setSecurityDescriptorRMControl(sd, &rmControl) +} + +// DACL returns the security descriptor DACL and whether it was defaulted. The dacl return value may be nil +// if a DACL exists but is an "empty DACL", meaning fully permissive. If the DACL does not exist, err returns +// ERROR_OBJECT_NOT_FOUND. +func (sd *SECURITY_DESCRIPTOR) DACL() (dacl *ACL, defaulted bool, err error) { + var present bool + err = getSecurityDescriptorDacl(sd, &present, &dacl, &defaulted) + if !present { + err = ERROR_OBJECT_NOT_FOUND + } + return +} + +// SetDACL sets the absolute security descriptor DACL. +func (absoluteSD *SECURITY_DESCRIPTOR) SetDACL(dacl *ACL, present, defaulted bool) error { + return setSecurityDescriptorDacl(absoluteSD, present, dacl, defaulted) +} + +// SACL returns the security descriptor SACL and whether it was defaulted. The sacl return value may be nil +// if a SACL exists but is an "empty SACL", meaning fully permissive. If the SACL does not exist, err returns +// ERROR_OBJECT_NOT_FOUND. +func (sd *SECURITY_DESCRIPTOR) SACL() (sacl *ACL, defaulted bool, err error) { + var present bool + err = getSecurityDescriptorSacl(sd, &present, &sacl, &defaulted) + if !present { + err = ERROR_OBJECT_NOT_FOUND + } + return +} + +// SetSACL sets the absolute security descriptor SACL. +func (absoluteSD *SECURITY_DESCRIPTOR) SetSACL(sacl *ACL, present, defaulted bool) error { + return setSecurityDescriptorSacl(absoluteSD, present, sacl, defaulted) +} + +// Owner returns the security descriptor owner and whether it was defaulted. +func (sd *SECURITY_DESCRIPTOR) Owner() (owner *SID, defaulted bool, err error) { + err = getSecurityDescriptorOwner(sd, &owner, &defaulted) + return +} + +// SetOwner sets the absolute security descriptor owner. +func (absoluteSD *SECURITY_DESCRIPTOR) SetOwner(owner *SID, defaulted bool) error { + return setSecurityDescriptorOwner(absoluteSD, owner, defaulted) +} + +// Group returns the security descriptor group and whether it was defaulted. +func (sd *SECURITY_DESCRIPTOR) Group() (group *SID, defaulted bool, err error) { + err = getSecurityDescriptorGroup(sd, &group, &defaulted) + return +} + +// SetGroup sets the absolute security descriptor owner. +func (absoluteSD *SECURITY_DESCRIPTOR) SetGroup(group *SID, defaulted bool) error { + return setSecurityDescriptorGroup(absoluteSD, group, defaulted) +} + +// Length returns the length of the security descriptor. +func (sd *SECURITY_DESCRIPTOR) Length() uint32 { + return getSecurityDescriptorLength(sd) +} + +// IsValid returns whether the security descriptor is valid. +func (sd *SECURITY_DESCRIPTOR) IsValid() bool { + return isValidSecurityDescriptor(sd) +} + +// String returns the SDDL form of the security descriptor, with a function signature that can be +// used with %v formatting directives. +func (sd *SECURITY_DESCRIPTOR) String() string { + var sddl *uint16 + err := convertSecurityDescriptorToStringSecurityDescriptor(sd, 1, 0xff, &sddl, nil) + if err != nil { + return "" + } + defer LocalFree(Handle(unsafe.Pointer(sddl))) + return UTF16PtrToString(sddl) +} + +// ToAbsolute converts a self-relative security descriptor into an absolute one. +func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DESCRIPTOR, err error) { + control, _, err := selfRelativeSD.Control() + if err != nil { + return + } + if control&SE_SELF_RELATIVE == 0 { + err = ERROR_INVALID_PARAMETER + return + } + var absoluteSDSize, daclSize, saclSize, ownerSize, groupSize uint32 + err = makeAbsoluteSD(selfRelativeSD, nil, &absoluteSDSize, + nil, &daclSize, nil, &saclSize, nil, &ownerSize, nil, &groupSize) + switch err { + case ERROR_INSUFFICIENT_BUFFER: + case nil: + // makeAbsoluteSD is expected to fail, but it succeeds. + return nil, ERROR_INTERNAL_ERROR + default: + return nil, err + } + if absoluteSDSize > 0 { + absoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0])) + } + var ( + dacl *ACL + sacl *ACL + owner *SID + group *SID + ) + if daclSize > 0 { + dacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0])) + } + if saclSize > 0 { + sacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0])) + } + if ownerSize > 0 { + owner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0])) + } + if groupSize > 0 { + group = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0])) + } + err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize, + dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize) + return +} + +// ToSelfRelative converts an absolute security descriptor into a self-relative one. +func (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURITY_DESCRIPTOR, err error) { + control, _, err := absoluteSD.Control() + if err != nil { + return + } + if control&SE_SELF_RELATIVE != 0 { + err = ERROR_INVALID_PARAMETER + return + } + var selfRelativeSDSize uint32 + err = makeSelfRelativeSD(absoluteSD, nil, &selfRelativeSDSize) + switch err { + case ERROR_INSUFFICIENT_BUFFER: + case nil: + // makeSelfRelativeSD is expected to fail, but it succeeds. + return nil, ERROR_INTERNAL_ERROR + default: + return nil, err + } + if selfRelativeSDSize > 0 { + selfRelativeSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, selfRelativeSDSize)[0])) + } + err = makeSelfRelativeSD(absoluteSD, selfRelativeSD, &selfRelativeSDSize) + return +} + +func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR { + sdLen := int(selfRelativeSD.Length()) + const min = int(unsafe.Sizeof(SECURITY_DESCRIPTOR{})) + if sdLen < min { + sdLen = min + } + + var src []byte + h := (*unsafeheader.Slice)(unsafe.Pointer(&src)) + h.Data = unsafe.Pointer(selfRelativeSD) + h.Len = sdLen + h.Cap = sdLen + + const psize = int(unsafe.Sizeof(uintptr(0))) + + var dst []byte + h = (*unsafeheader.Slice)(unsafe.Pointer(&dst)) + alloc := make([]uintptr, (sdLen+psize-1)/psize) + h.Data = (*unsafeheader.Slice)(unsafe.Pointer(&alloc)).Data + h.Len = sdLen + h.Cap = sdLen + + copy(dst, src) + return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0])) +} + +// SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a +// self-relative security descriptor object allocated on the Go heap. +func SecurityDescriptorFromString(sddl string) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + err = convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &winHeapSD, nil) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// GetSecurityInfo queries the security information for a given handle and returns the self-relative security +// descriptor result on the Go heap. +func GetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + err = getSecurityInfo(handle, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// GetNamedSecurityInfo queries the security information for a given named object and returns the self-relative security +// descriptor result on the Go heap. +func GetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + err = getNamedSecurityInfo(objectName, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// BuildSecurityDescriptor makes a new security descriptor using the input trustees, explicit access lists, and +// prior security descriptor to be merged, any of which can be nil, returning the self-relative security descriptor +// result on the Go heap. +func BuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, accessEntries []EXPLICIT_ACCESS, auditEntries []EXPLICIT_ACCESS, mergedSecurityDescriptor *SECURITY_DESCRIPTOR) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + var winHeapSDSize uint32 + var firstAccessEntry *EXPLICIT_ACCESS + if len(accessEntries) > 0 { + firstAccessEntry = &accessEntries[0] + } + var firstAuditEntry *EXPLICIT_ACCESS + if len(auditEntries) > 0 { + firstAuditEntry = &auditEntries[0] + } + err = buildSecurityDescriptor(owner, group, uint32(len(accessEntries)), firstAccessEntry, uint32(len(auditEntries)), firstAuditEntry, mergedSecurityDescriptor, &winHeapSDSize, &winHeapSD) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// NewSecurityDescriptor creates and initializes a new absolute security descriptor. +func NewSecurityDescriptor() (absoluteSD *SECURITY_DESCRIPTOR, err error) { + absoluteSD = &SECURITY_DESCRIPTOR{} + err = initializeSecurityDescriptor(absoluteSD, 1) + return +} + +// ACLFromEntries returns a new ACL on the Go heap containing a list of explicit entries as well as those of another ACL. +// Both explicitEntries and mergedACL are optional and can be nil. +func ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL, err error) { + var firstExplicitEntry *EXPLICIT_ACCESS + if len(explicitEntries) > 0 { + firstExplicitEntry = &explicitEntries[0] + } + var winHeapACL *ACL + err = setEntriesInAcl(uint32(len(explicitEntries)), firstExplicitEntry, mergedACL, &winHeapACL) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapACL))) + aclBytes := make([]byte, winHeapACL.aclSize) + copy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes):len(aclBytes)]) + return (*ACL)(unsafe.Pointer(&aclBytes[0])), nil +} diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go index 994b1290c..b269850d0 100644 --- a/vendor/golang.org/x/sys/windows/service.go +++ b/vendor/golang.org/x/sys/windows/service.go @@ -65,6 +65,7 @@ const ( SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 SERVICE_ACCEPT_POWEREVENT = 64 SERVICE_ACCEPT_SESSIONCHANGE = 128 + SERVICE_ACCEPT_PRESHUTDOWN = 256 SERVICE_CONTROL_STOP = 1 SERVICE_CONTROL_PAUSE = 2 @@ -80,26 +81,57 @@ const ( SERVICE_CONTROL_HARDWAREPROFILECHANGE = 12 SERVICE_CONTROL_POWEREVENT = 13 SERVICE_CONTROL_SESSIONCHANGE = 14 + SERVICE_CONTROL_PRESHUTDOWN = 15 SERVICE_ACTIVE = 1 SERVICE_INACTIVE = 2 SERVICE_STATE_ALL = 3 - SERVICE_QUERY_CONFIG = 1 - SERVICE_CHANGE_CONFIG = 2 - SERVICE_QUERY_STATUS = 4 - SERVICE_ENUMERATE_DEPENDENTS = 8 - SERVICE_START = 16 - SERVICE_STOP = 32 - SERVICE_PAUSE_CONTINUE = 64 - SERVICE_INTERROGATE = 128 - SERVICE_USER_DEFINED_CONTROL = 256 - SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL + SERVICE_QUERY_CONFIG = 1 + SERVICE_CHANGE_CONFIG = 2 + SERVICE_QUERY_STATUS = 4 + SERVICE_ENUMERATE_DEPENDENTS = 8 + SERVICE_START = 16 + SERVICE_STOP = 32 + SERVICE_PAUSE_CONTINUE = 64 + SERVICE_INTERROGATE = 128 + SERVICE_USER_DEFINED_CONTROL = 256 + SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL + SERVICE_RUNS_IN_SYSTEM_PROCESS = 1 - SERVICE_CONFIG_DESCRIPTION = 1 - SERVICE_CONFIG_FAILURE_ACTIONS = 2 + + SERVICE_CONFIG_DESCRIPTION = 1 + SERVICE_CONFIG_FAILURE_ACTIONS = 2 + SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3 + SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4 + SERVICE_CONFIG_SERVICE_SID_INFO = 5 + SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6 + SERVICE_CONFIG_PRESHUTDOWN_INFO = 7 + SERVICE_CONFIG_TRIGGER_INFO = 8 + SERVICE_CONFIG_PREFERRED_NODE = 9 + SERVICE_CONFIG_LAUNCH_PROTECTED = 12 + + SERVICE_SID_TYPE_NONE = 0 + SERVICE_SID_TYPE_UNRESTRICTED = 1 + SERVICE_SID_TYPE_RESTRICTED = 2 | SERVICE_SID_TYPE_UNRESTRICTED SC_ENUM_PROCESS_INFO = 0 + + SERVICE_NOTIFY_STATUS_CHANGE = 2 + SERVICE_NOTIFY_STOPPED = 0x00000001 + SERVICE_NOTIFY_START_PENDING = 0x00000002 + SERVICE_NOTIFY_STOP_PENDING = 0x00000004 + SERVICE_NOTIFY_RUNNING = 0x00000008 + SERVICE_NOTIFY_CONTINUE_PENDING = 0x00000010 + SERVICE_NOTIFY_PAUSE_PENDING = 0x00000020 + SERVICE_NOTIFY_PAUSED = 0x00000040 + SERVICE_NOTIFY_CREATED = 0x00000080 + SERVICE_NOTIFY_DELETED = 0x00000100 + SERVICE_NOTIFY_DELETE_PENDING = 0x00000200 + + SC_EVENT_DATABASE_CHANGE = 0 + SC_EVENT_PROPERTY_CHANGE = 1 + SC_EVENT_STATUS_CHANGE = 2 ) type SERVICE_STATUS struct { @@ -133,6 +165,10 @@ type SERVICE_DESCRIPTION struct { Description *uint16 } +type SERVICE_DELAYED_AUTO_START_INFO struct { + IsDelayedAutoStartUp uint32 +} + type SERVICE_STATUS_PROCESS struct { ServiceType uint32 CurrentState uint32 @@ -151,6 +187,16 @@ type ENUM_SERVICE_STATUS_PROCESS struct { ServiceStatusProcess SERVICE_STATUS_PROCESS } +type SERVICE_NOTIFY struct { + Version uint32 + NotifyCallback uintptr + Context uintptr + NotificationStatus uint32 + ServiceStatus SERVICE_STATUS_PROCESS + NotificationTriggered uint32 + ServiceNames *uint16 +} + type SERVICE_FAILURE_ACTIONS struct { ResetPeriod uint32 RebootMsg *uint16 @@ -164,12 +210,19 @@ type SC_ACTION struct { Delay uint32 } +type QUERY_SERVICE_LOCK_STATUS struct { + IsLocked uint32 + LockOwner *uint16 + LockDuration uint32 +} + //sys CloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle //sys CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW //sys OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW //sys DeleteService(service Handle) (err error) = advapi32.DeleteService //sys StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW //sys QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus +//sys QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceLockStatusW //sys ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService //sys StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW //sys SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus @@ -178,4 +231,7 @@ type SC_ACTION struct { //sys ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W //sys QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W //sys EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW -//sys QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx +//sys QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx +//sys NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) = advapi32.NotifyServiceStatusChangeW +//sys SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) = sechost.SubscribeServiceChangeNotifications? +//sys UnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications? diff --git a/vendor/golang.org/x/sys/windows/setupapierrors_windows.go b/vendor/golang.org/x/sys/windows/setupapierrors_windows.go new file mode 100644 index 000000000..1681810e0 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/setupapierrors_windows.go @@ -0,0 +1,100 @@ +// Copyright 2020 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 windows + +import "syscall" + +const ( + ERROR_EXPECTED_SECTION_NAME syscall.Errno = 0x20000000 | 0xC0000000 | 0 + ERROR_BAD_SECTION_NAME_LINE syscall.Errno = 0x20000000 | 0xC0000000 | 1 + ERROR_SECTION_NAME_TOO_LONG syscall.Errno = 0x20000000 | 0xC0000000 | 2 + ERROR_GENERAL_SYNTAX syscall.Errno = 0x20000000 | 0xC0000000 | 3 + ERROR_WRONG_INF_STYLE syscall.Errno = 0x20000000 | 0xC0000000 | 0x100 + ERROR_SECTION_NOT_FOUND syscall.Errno = 0x20000000 | 0xC0000000 | 0x101 + ERROR_LINE_NOT_FOUND syscall.Errno = 0x20000000 | 0xC0000000 | 0x102 + ERROR_NO_BACKUP syscall.Errno = 0x20000000 | 0xC0000000 | 0x103 + ERROR_NO_ASSOCIATED_CLASS syscall.Errno = 0x20000000 | 0xC0000000 | 0x200 + ERROR_CLASS_MISMATCH syscall.Errno = 0x20000000 | 0xC0000000 | 0x201 + ERROR_DUPLICATE_FOUND syscall.Errno = 0x20000000 | 0xC0000000 | 0x202 + ERROR_NO_DRIVER_SELECTED syscall.Errno = 0x20000000 | 0xC0000000 | 0x203 + ERROR_KEY_DOES_NOT_EXIST syscall.Errno = 0x20000000 | 0xC0000000 | 0x204 + ERROR_INVALID_DEVINST_NAME syscall.Errno = 0x20000000 | 0xC0000000 | 0x205 + ERROR_INVALID_CLASS syscall.Errno = 0x20000000 | 0xC0000000 | 0x206 + ERROR_DEVINST_ALREADY_EXISTS syscall.Errno = 0x20000000 | 0xC0000000 | 0x207 + ERROR_DEVINFO_NOT_REGISTERED syscall.Errno = 0x20000000 | 0xC0000000 | 0x208 + ERROR_INVALID_REG_PROPERTY syscall.Errno = 0x20000000 | 0xC0000000 | 0x209 + ERROR_NO_INF syscall.Errno = 0x20000000 | 0xC0000000 | 0x20A + ERROR_NO_SUCH_DEVINST syscall.Errno = 0x20000000 | 0xC0000000 | 0x20B + ERROR_CANT_LOAD_CLASS_ICON syscall.Errno = 0x20000000 | 0xC0000000 | 0x20C + ERROR_INVALID_CLASS_INSTALLER syscall.Errno = 0x20000000 | 0xC0000000 | 0x20D + ERROR_DI_DO_DEFAULT syscall.Errno = 0x20000000 | 0xC0000000 | 0x20E + ERROR_DI_NOFILECOPY syscall.Errno = 0x20000000 | 0xC0000000 | 0x20F + ERROR_INVALID_HWPROFILE syscall.Errno = 0x20000000 | 0xC0000000 | 0x210 + ERROR_NO_DEVICE_SELECTED syscall.Errno = 0x20000000 | 0xC0000000 | 0x211 + ERROR_DEVINFO_LIST_LOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x212 + ERROR_DEVINFO_DATA_LOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x213 + ERROR_DI_BAD_PATH syscall.Errno = 0x20000000 | 0xC0000000 | 0x214 + ERROR_NO_CLASSINSTALL_PARAMS syscall.Errno = 0x20000000 | 0xC0000000 | 0x215 + ERROR_FILEQUEUE_LOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x216 + ERROR_BAD_SERVICE_INSTALLSECT syscall.Errno = 0x20000000 | 0xC0000000 | 0x217 + ERROR_NO_CLASS_DRIVER_LIST syscall.Errno = 0x20000000 | 0xC0000000 | 0x218 + ERROR_NO_ASSOCIATED_SERVICE syscall.Errno = 0x20000000 | 0xC0000000 | 0x219 + ERROR_NO_DEFAULT_DEVICE_INTERFACE syscall.Errno = 0x20000000 | 0xC0000000 | 0x21A + ERROR_DEVICE_INTERFACE_ACTIVE syscall.Errno = 0x20000000 | 0xC0000000 | 0x21B + ERROR_DEVICE_INTERFACE_REMOVED syscall.Errno = 0x20000000 | 0xC0000000 | 0x21C + ERROR_BAD_INTERFACE_INSTALLSECT syscall.Errno = 0x20000000 | 0xC0000000 | 0x21D + ERROR_NO_SUCH_INTERFACE_CLASS syscall.Errno = 0x20000000 | 0xC0000000 | 0x21E + ERROR_INVALID_REFERENCE_STRING syscall.Errno = 0x20000000 | 0xC0000000 | 0x21F + ERROR_INVALID_MACHINENAME syscall.Errno = 0x20000000 | 0xC0000000 | 0x220 + ERROR_REMOTE_COMM_FAILURE syscall.Errno = 0x20000000 | 0xC0000000 | 0x221 + ERROR_MACHINE_UNAVAILABLE syscall.Errno = 0x20000000 | 0xC0000000 | 0x222 + ERROR_NO_CONFIGMGR_SERVICES syscall.Errno = 0x20000000 | 0xC0000000 | 0x223 + ERROR_INVALID_PROPPAGE_PROVIDER syscall.Errno = 0x20000000 | 0xC0000000 | 0x224 + ERROR_NO_SUCH_DEVICE_INTERFACE syscall.Errno = 0x20000000 | 0xC0000000 | 0x225 + ERROR_DI_POSTPROCESSING_REQUIRED syscall.Errno = 0x20000000 | 0xC0000000 | 0x226 + ERROR_INVALID_COINSTALLER syscall.Errno = 0x20000000 | 0xC0000000 | 0x227 + ERROR_NO_COMPAT_DRIVERS syscall.Errno = 0x20000000 | 0xC0000000 | 0x228 + ERROR_NO_DEVICE_ICON syscall.Errno = 0x20000000 | 0xC0000000 | 0x229 + ERROR_INVALID_INF_LOGCONFIG syscall.Errno = 0x20000000 | 0xC0000000 | 0x22A + ERROR_DI_DONT_INSTALL syscall.Errno = 0x20000000 | 0xC0000000 | 0x22B + ERROR_INVALID_FILTER_DRIVER syscall.Errno = 0x20000000 | 0xC0000000 | 0x22C + ERROR_NON_WINDOWS_NT_DRIVER syscall.Errno = 0x20000000 | 0xC0000000 | 0x22D + ERROR_NON_WINDOWS_DRIVER syscall.Errno = 0x20000000 | 0xC0000000 | 0x22E + ERROR_NO_CATALOG_FOR_OEM_INF syscall.Errno = 0x20000000 | 0xC0000000 | 0x22F + ERROR_DEVINSTALL_QUEUE_NONNATIVE syscall.Errno = 0x20000000 | 0xC0000000 | 0x230 + ERROR_NOT_DISABLEABLE syscall.Errno = 0x20000000 | 0xC0000000 | 0x231 + ERROR_CANT_REMOVE_DEVINST syscall.Errno = 0x20000000 | 0xC0000000 | 0x232 + ERROR_INVALID_TARGET syscall.Errno = 0x20000000 | 0xC0000000 | 0x233 + ERROR_DRIVER_NONNATIVE syscall.Errno = 0x20000000 | 0xC0000000 | 0x234 + ERROR_IN_WOW64 syscall.Errno = 0x20000000 | 0xC0000000 | 0x235 + ERROR_SET_SYSTEM_RESTORE_POINT syscall.Errno = 0x20000000 | 0xC0000000 | 0x236 + ERROR_SCE_DISABLED syscall.Errno = 0x20000000 | 0xC0000000 | 0x238 + ERROR_UNKNOWN_EXCEPTION syscall.Errno = 0x20000000 | 0xC0000000 | 0x239 + ERROR_PNP_REGISTRY_ERROR syscall.Errno = 0x20000000 | 0xC0000000 | 0x23A + ERROR_REMOTE_REQUEST_UNSUPPORTED syscall.Errno = 0x20000000 | 0xC0000000 | 0x23B + ERROR_NOT_AN_INSTALLED_OEM_INF syscall.Errno = 0x20000000 | 0xC0000000 | 0x23C + ERROR_INF_IN_USE_BY_DEVICES syscall.Errno = 0x20000000 | 0xC0000000 | 0x23D + ERROR_DI_FUNCTION_OBSOLETE syscall.Errno = 0x20000000 | 0xC0000000 | 0x23E + ERROR_NO_AUTHENTICODE_CATALOG syscall.Errno = 0x20000000 | 0xC0000000 | 0x23F + ERROR_AUTHENTICODE_DISALLOWED syscall.Errno = 0x20000000 | 0xC0000000 | 0x240 + ERROR_AUTHENTICODE_TRUSTED_PUBLISHER syscall.Errno = 0x20000000 | 0xC0000000 | 0x241 + ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED syscall.Errno = 0x20000000 | 0xC0000000 | 0x242 + ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED syscall.Errno = 0x20000000 | 0xC0000000 | 0x243 + ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH syscall.Errno = 0x20000000 | 0xC0000000 | 0x244 + ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE syscall.Errno = 0x20000000 | 0xC0000000 | 0x245 + ERROR_DEVICE_INSTALLER_NOT_READY syscall.Errno = 0x20000000 | 0xC0000000 | 0x246 + ERROR_DRIVER_STORE_ADD_FAILED syscall.Errno = 0x20000000 | 0xC0000000 | 0x247 + ERROR_DEVICE_INSTALL_BLOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x248 + ERROR_DRIVER_INSTALL_BLOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x249 + ERROR_WRONG_INF_TYPE syscall.Errno = 0x20000000 | 0xC0000000 | 0x24A + ERROR_FILE_HASH_NOT_IN_CATALOG syscall.Errno = 0x20000000 | 0xC0000000 | 0x24B + ERROR_DRIVER_STORE_DELETE_FAILED syscall.Errno = 0x20000000 | 0xC0000000 | 0x24C + ERROR_UNRECOVERABLE_STACK_OVERFLOW syscall.Errno = 0x20000000 | 0xC0000000 | 0x300 + EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW syscall.Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW + ERROR_NO_DEFAULT_INTERFACE_DEVICE syscall.Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE + ERROR_INTERFACE_DEVICE_ACTIVE syscall.Errno = ERROR_DEVICE_INTERFACE_ACTIVE + ERROR_INTERFACE_DEVICE_REMOVED syscall.Errno = ERROR_DEVICE_INTERFACE_REMOVED + ERROR_NO_SUCH_INTERFACE_DEVICE syscall.Errno = ERROR_NO_SUCH_DEVICE_INTERFACE +) diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go index af828a91b..6122f557a 100644 --- a/vendor/golang.org/x/sys/windows/syscall.go +++ b/vendor/golang.org/x/sys/windows/syscall.go @@ -25,17 +25,20 @@ package windows // import "golang.org/x/sys/windows" import ( + "bytes" + "strings" "syscall" + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" ) // 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, syscall.EINVAL). func ByteSliceFromString(s string) ([]byte, error) { - for i := 0; i < len(s); i++ { - if s[i] == 0 { - return nil, syscall.EINVAL - } + if strings.IndexByte(s, 0) != -1 { + return nil, syscall.EINVAL } a := make([]byte, len(s)+1) copy(a, s) @@ -53,6 +56,41 @@ func BytePtrFromString(s string) (*byte, error) { return &a[0], nil } +// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any +// bytes after the NUL removed. +func ByteSliceToString(s []byte) string { + if i := bytes.IndexByte(s, 0); i != -1 { + s = s[:i] + } + return string(s) +} + +// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. +// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated +// at a zero byte; if the zero byte is not present, the program may crash. +func BytePtrToString(p *byte) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + 1) + } + + var s []byte + h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) + h.Data = unsafe.Pointer(p) + h.Len = n + h.Cap = n + + return string(s) +} + // Single-word zero for use when we need a valid pointer to 0 bytes. // See mksyscall.pl. var _zero uintptr diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 7aff0d022..bb6aaf89e 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -8,16 +8,23 @@ package windows import ( errorspkg "errors" + "fmt" + "runtime" "sync" "syscall" + "time" "unicode/utf16" "unsafe" + + "golang.org/x/sys/internal/unsafeheader" ) type Handle uintptr +type HWND uintptr const ( InvalidHandle = ^Handle(0) + InvalidHWND = ^HWND(0) // Flags for DefineDosDevice. DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 @@ -55,6 +62,13 @@ const ( FILE_UNICODE_ON_DISK = 0x00000004 FILE_VOLUME_IS_COMPRESSED = 0x00008000 FILE_VOLUME_QUOTAS = 0x00000020 + + // Flags for LockFileEx. + LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 + LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 + + // Return value of SleepEx and other APC functions + WAIT_IO_COMPLETION = 0x000000C0 ) // StringToUTF16 is deprecated. Use UTF16FromString instead. @@ -81,11 +95,11 @@ func UTF16FromString(s string) ([]uint16, error) { } // UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, -// with a terminating NUL removed. +// with a terminating NUL and any bytes after the NUL removed. func UTF16ToString(s []uint16) string { for i, v := range s { if v == 0 { - s = s[0:i] + s = s[:i] break } } @@ -108,6 +122,32 @@ func UTF16PtrFromString(s string) (*uint16, error) { return &a[0], nil } +// UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string. +// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated +// at a zero word; if the zero word is not present, the program may crash. +func UTF16PtrToString(p *uint16) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) + } + + var s []uint16 + h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) + h.Data = unsafe.Pointer(p) + h.Len = n + h.Cap = n + + return string(utf16.Decode(s)) +} + func Getpagesize() int { return 4096 } // NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. @@ -131,10 +171,21 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW //sys FreeLibrary(handle Handle) (err error) //sys GetProcAddress(module Handle, procname string) (proc uintptr, err error) +//sys GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW +//sys GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW +//sys SetDefaultDllDirectories(directoryFlags uint32) (err error) +//sys SetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW //sys GetVersion() (ver uint32, err error) //sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW //sys ExitProcess(exitcode uint32) -//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW +//sys IsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process +//sys IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2? +//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW +//sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW +//sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) +//sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) +//sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW +//sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState //sys ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) //sys WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) //sys GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) @@ -146,6 +197,8 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys findNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW //sys FindClose(handle Handle) (err error) //sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) +//sys GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) +//sys SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) //sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW //sys SetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW //sys CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW @@ -153,23 +206,33 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys DeleteFile(path *uint16) (err error) = DeleteFileW //sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW //sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW +//sys LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) +//sys UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) //sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW //sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW //sys SetEndOfFile(handle Handle) (err error) //sys GetSystemTimeAsFileTime(time *Filetime) //sys GetSystemTimePreciseAsFileTime(time *Filetime) //sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) -//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) -//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) +//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) +//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) +//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) //sys CancelIo(s Handle) (err error) //sys CancelIoEx(s Handle, o *Overlapped) (err error) //sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW -//sys OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) +//sys initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList +//sys deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList +//sys updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute +//sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) +//sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW +//sys GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId +//sys GetShellWindow() (shellWindow HWND) = user32.GetShellWindow +//sys MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW +//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx +//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath //sys TerminateProcess(handle Handle, exitcode uint32) (err error) //sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) //sys GetStartupInfo(startupInfo *StartupInfo) (err error) = GetStartupInfoW -//sys GetCurrentProcess() (pseudoHandle Handle, err error) //sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) //sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) //sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] @@ -184,6 +247,9 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys FreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW //sys GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW //sys SetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW +//sys CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock +//sys DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock +//sys getTickCount64() (ms uint64) = kernel32.GetTickCount64 //sys SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) //sys GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW //sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW @@ -191,12 +257,14 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW //sys CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW //sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0] +//sys LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) //sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) //sys FlushFileBuffers(handle Handle) (err error) //sys GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW //sys GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW //sys GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW -//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) = kernel32.CreateFileMappingW +//sys GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW +//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW //sys MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) //sys UnmapViewOfFile(addr uintptr) (err error) //sys FlushViewOfFile(addr uintptr, length uintptr) (err error) @@ -207,41 +275,85 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect //sys TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile //sys ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW +//sys FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW +//sys FindNextChangeNotification(handle Handle) (err error) +//sys FindCloseChangeNotification(handle Handle) (err error) //sys CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW -//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) [failretval==InvalidHandle] = crypt32.CertOpenStore +//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore //sys CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore -//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore +//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore //sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore -//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain -//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain -//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext -//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext -//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy +//sys CertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore +//sys CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext +//sys PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore +//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain +//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain +//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext +//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext +//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy +//sys CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW +//sys CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension +//sys CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore +//sys CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore +//sys CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey +//sys CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject +//sys CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject +//sys CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData +//sys CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData +//sys WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx //sys RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW //sys RegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey //sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW //sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW //sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW -//sys getCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId +//sys RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue +//sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId +//sys ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId //sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode //sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode //sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo +//sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition //sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW //sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW //sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot //sys Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW //sys Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW +//sys Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) +//sys Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) //sys DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) // This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. //sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW //sys CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW //sys GetCurrentThreadId() (id uint32) -//sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) = kernel32.CreateEventW -//sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) = kernel32.CreateEventExW +//sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW +//sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW //sys OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW //sys SetEvent(event Handle) (err error) = kernel32.SetEvent //sys ResetEvent(event Handle) (err error) = kernel32.ResetEvent //sys PulseEvent(event Handle) (err error) = kernel32.PulseEvent +//sys CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW +//sys CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW +//sys OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW +//sys ReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex +//sys SleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx +//sys CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) = kernel32.CreateJobObjectW +//sys AssignProcessToJobObject(job Handle, process Handle) (err error) = kernel32.AssignProcessToJobObject +//sys TerminateJobObject(job Handle, exitCode uint32) (err error) = kernel32.TerminateJobObject +//sys SetErrorMode(mode uint32) (ret uint32) = kernel32.SetErrorMode +//sys ResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread +//sys SetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass +//sys GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass +//sys QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject +//sys SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) +//sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) +//sys GetProcessId(process Handle) (id uint32, err error) +//sys QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW +//sys OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) +//sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost +//sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) +//sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) +//sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) // Volume Management Functions //sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW @@ -252,6 +364,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW //sys FindVolumeClose(findVolume Handle) (err error) //sys FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) +//sys GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW //sys GetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW //sys GetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0] //sys GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW @@ -263,20 +376,80 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW //sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW //sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW +//sys InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW +//sys SetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters +//sys GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters +//sys clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString +//sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2 +//sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid +//sys CoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree +//sys CoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx +//sys CoUninitialize() = ole32.CoUninitialize +//sys CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject +//sys getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages +//sys getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages +//sys getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages +//sys getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages +//sys findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW +//sys SizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource +//sys LoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource +//sys LockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource + +// Process Status API (PSAPI) +//sys EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses + +// NT Native APIs +//sys rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb +//sys rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion +//sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers +//sys RtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb +//sys RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString +//sys RtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString +//sys NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile +//sys NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile +//sys RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus +//sys RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus +//sys RtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl +//sys NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess +//sys NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess // syscall interface implementation for other packages +// GetCurrentProcess returns the handle for the current process. +// It is a pseudo handle that does not need to be closed. +// The returned error is always nil. +// +// Deprecated: use CurrentProcess for the same Handle without the nil +// error. +func GetCurrentProcess() (Handle, error) { + return CurrentProcess(), nil +} + +// CurrentProcess returns the handle for the current process. +// It is a pseudo handle that does not need to be closed. +func CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) } + +// GetCurrentThread returns the handle for the current thread. +// It is a pseudo handle that does not need to be closed. +// The returned error is always nil. +// +// Deprecated: use CurrentThread for the same Handle without the nil +// error. +func GetCurrentThread() (Handle, error) { + return CurrentThread(), nil +} + +// CurrentThread returns the handle for the current thread. +// It is a pseudo handle that does not need to be closed. +func CurrentThread() Handle { return Handle(^uintptr(2 - 1)) } + // GetProcAddressByOrdinal retrieves the address of the exported // function from module by ordinal. func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) { r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0) proc = uintptr(r0) if proc == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } @@ -332,7 +505,11 @@ func Open(path string, mode int, perm uint32) (fd Handle, err error) { default: createmode = OPEN_EXISTING } - h, e := CreateFile(pathp, access, sharemode, sa, createmode, FILE_ATTRIBUTE_NORMAL, 0) + var attrs uint32 = FILE_ATTRIBUTE_NORMAL + if perm&S_IWRITE == 0 { + attrs = FILE_ATTRIBUTE_READONLY + } + h, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0) return h, e } @@ -477,6 +654,10 @@ func ComputerName() (name string, err error) { return string(utf16.Decode(b[0:n])), nil } +func DurationSinceBoot() time.Duration { + return time.Duration(getTickCount64()) * time.Millisecond +} + func Ftruncate(fd Handle, length int64) (err error) { curoffset, e := Seek(fd, 0, 1) if e != nil { @@ -560,9 +741,6 @@ func Fsync(fd Handle) (err error) { } func Chmod(path string, mode uint32) (err error) { - if mode == 0 { - return syscall.EINVAL - } p, e := UTF16PtrFromString(path) if e != nil { return e @@ -611,6 +789,8 @@ const socket_error = uintptr(^uint32(0)) //sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup //sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl //sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket +//sys sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto +//sys recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom //sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt //sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt //sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind @@ -626,6 +806,7 @@ const socket_error = uintptr(^uint32(0)) //sys WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend //sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom //sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo +//sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW //sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname //sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname //sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs @@ -639,6 +820,7 @@ const socket_error = uintptr(^uint32(0)) //sys GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo //sys SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes //sys WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW +//sys WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult //sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses //sys GetACP() (acp uint32) = kernel32.GetACP //sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar @@ -778,7 +960,7 @@ func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { for n < len(pp.Path) && pp.Path[n] != 0 { n++ } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] sa.Name = string(bytes) return sa, nil @@ -966,11 +1148,7 @@ func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlap } r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return err } @@ -982,11 +1160,7 @@ func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overl } r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0) if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return err } @@ -1039,10 +1213,27 @@ func NsecToTimespec(nsec int64) (ts Timespec) { // TODO(brainman): fix all needed for net func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS } + func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) { - return 0, nil, syscall.EWINDOWS + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + n32, err := recvfrom(fd, p, int32(flags), &rsa, &l) + n = int(n32) + if err != nil { + return + } + from, err = rsa.Sockaddr() + return +} + +func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) { + ptr, l, err := to.sockaddr() + if err != nil { + return err + } + return sendto(fd, p, int32(flags), ptr, l) } -func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) { return syscall.EWINDOWS } + func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS } // The Linger struct is wrong but we only noticed after Go 1. @@ -1072,7 +1263,12 @@ type IPv6Mreq struct { Interface uint32 } -func GetsockoptInt(fd Handle, level, opt int) (int, error) { return -1, syscall.EWINDOWS } +func GetsockoptInt(fd Handle, level, opt int) (int, error) { + v := int32(0) + l := int32(unsafe.Sizeof(v)) + err := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l) + return int(v), err +} func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)} @@ -1089,7 +1285,7 @@ func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { return syscall.EWINDOWS } -func Getpid() (pid int) { return int(getCurrentProcessId()) } +func Getpid() (pid int) { return int(GetCurrentProcessId()) } func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) { // NOTE(rsc): The Win32finddata struct is wrong for the system call: @@ -1217,3 +1413,259 @@ func Readlink(path string, buf []byte) (n int, err error) { return n, nil } + +// GUIDFromString parses a string in the form of +// "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" into a GUID. +func GUIDFromString(str string) (GUID, error) { + guid := GUID{} + str16, err := syscall.UTF16PtrFromString(str) + if err != nil { + return guid, err + } + err = clsidFromString(str16, &guid) + if err != nil { + return guid, err + } + return guid, nil +} + +// GenerateGUID creates a new random GUID. +func GenerateGUID() (GUID, error) { + guid := GUID{} + err := coCreateGuid(&guid) + if err != nil { + return guid, err + } + return guid, nil +} + +// String returns the canonical string form of the GUID, +// in the form of "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}". +func (guid GUID) String() string { + var str [100]uint16 + chars := stringFromGUID2(&guid, &str[0], int32(len(str))) + if chars <= 1 { + return "" + } + return string(utf16.Decode(str[:chars-1])) +} + +// KnownFolderPath returns a well-known folder path for the current user, specified by one of +// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. +func KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { + return Token(0).KnownFolderPath(folderID, flags) +} + +// KnownFolderPath returns a well-known folder path for the user token, specified by one of +// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. +func (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { + var p *uint16 + err := shGetKnownFolderPath(folderID, flags, t, &p) + if err != nil { + return "", err + } + defer CoTaskMemFree(unsafe.Pointer(p)) + return UTF16PtrToString(p), nil +} + +// RtlGetVersion returns the version of the underlying operating system, ignoring +// manifest semantics but is affected by the application compatibility layer. +func RtlGetVersion() *OsVersionInfoEx { + info := &OsVersionInfoEx{} + info.osVersionInfoSize = uint32(unsafe.Sizeof(*info)) + // According to documentation, this function always succeeds. + // The function doesn't even check the validity of the + // osVersionInfoSize member. Disassembling ntdll.dll indicates + // that the documentation is indeed correct about that. + _ = rtlGetVersion(info) + return info +} + +// RtlGetNtVersionNumbers returns the version of the underlying operating system, +// ignoring manifest semantics and the application compatibility layer. +func RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) { + rtlGetNtVersionNumbers(&majorVersion, &minorVersion, &buildNumber) + buildNumber &= 0xffff + return +} + +// GetProcessPreferredUILanguages retrieves the process preferred UI languages. +func GetProcessPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getProcessPreferredUILanguages) +} + +// GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread. +func GetThreadPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getThreadPreferredUILanguages) +} + +// GetUserPreferredUILanguages retrieves information about the user preferred UI languages. +func GetUserPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getUserPreferredUILanguages) +} + +// GetSystemPreferredUILanguages retrieves the system preferred UI languages. +func GetSystemPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getSystemPreferredUILanguages) +} + +func getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) { + size := uint32(128) + for { + var numLanguages uint32 + buf := make([]uint16, size) + err := f(flags, &numLanguages, &buf[0], &size) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return nil, err + } + buf = buf[:size] + if numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with "\0\0" + return []string{}, nil + } + if buf[len(buf)-1] == 0 { + buf = buf[:len(buf)-1] // remove terminating null + } + languages := make([]string, 0, numLanguages) + from := 0 + for i, c := range buf { + if c == 0 { + languages = append(languages, string(utf16.Decode(buf[from:i]))) + from = i + 1 + } + } + return languages, nil + } +} + +func SetConsoleCursorPosition(console Handle, position Coord) error { + return setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position)))) +} + +func (s NTStatus) Errno() syscall.Errno { + return rtlNtStatusToDosErrorNoTeb(s) +} + +func langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) } + +func (s NTStatus) Error() string { + b := make([]uint16, 300) + n, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil) + if err != nil { + return fmt.Sprintf("NTSTATUS 0x%08x", uint32(s)) + } + // trim terminating \r and \n + for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- { + } + return string(utf16.Decode(b[:n])) +} + +// NewNTUnicodeString returns a new NTUnicodeString structure for use with native +// NT APIs that work over the NTUnicodeString type. Note that most Windows APIs +// do not use NTUnicodeString, and instead UTF16PtrFromString should be used for +// the more common *uint16 string type. +func NewNTUnicodeString(s string) (*NTUnicodeString, error) { + var u NTUnicodeString + s16, err := UTF16PtrFromString(s) + if err != nil { + return nil, err + } + RtlInitUnicodeString(&u, s16) + return &u, nil +} + +// Slice returns a uint16 slice that aliases the data in the NTUnicodeString. +func (s *NTUnicodeString) Slice() []uint16 { + var slice []uint16 + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) + hdr.Data = unsafe.Pointer(s.Buffer) + hdr.Len = int(s.Length) + hdr.Cap = int(s.MaximumLength) + return slice +} + +func (s *NTUnicodeString) String() string { + return UTF16ToString(s.Slice()) +} + +// NewNTString returns a new NTString structure for use with native +// NT APIs that work over the NTString type. Note that most Windows APIs +// do not use NTString, and instead UTF16PtrFromString should be used for +// the more common *uint16 string type. +func NewNTString(s string) (*NTString, error) { + var nts NTString + s8, err := BytePtrFromString(s) + if err != nil { + return nil, err + } + RtlInitString(&nts, s8) + return &nts, nil +} + +// Slice returns a byte slice that aliases the data in the NTString. +func (s *NTString) Slice() []byte { + var slice []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) + hdr.Data = unsafe.Pointer(s.Buffer) + hdr.Len = int(s.Length) + hdr.Cap = int(s.MaximumLength) + return slice +} + +func (s *NTString) String() string { + return ByteSliceToString(s.Slice()) +} + +// FindResource resolves a resource of the given name and resource type. +func FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) { + var namePtr, resTypePtr uintptr + var name16, resType16 *uint16 + var err error + resolvePtr := func(i interface{}, keep **uint16) (uintptr, error) { + switch v := i.(type) { + case string: + *keep, err = UTF16PtrFromString(v) + if err != nil { + return 0, err + } + return uintptr(unsafe.Pointer(*keep)), nil + case ResourceID: + return uintptr(v), nil + } + return 0, errorspkg.New("parameter must be a ResourceID or a string") + } + namePtr, err = resolvePtr(name, &name16) + if err != nil { + return 0, err + } + resTypePtr, err = resolvePtr(resType, &resType16) + if err != nil { + return 0, err + } + resInfo, err := findResource(module, namePtr, resTypePtr) + runtime.KeepAlive(name16) + runtime.KeepAlive(resType16) + return resInfo, err +} + +func LoadResourceData(module, resInfo Handle) (data []byte, err error) { + size, err := SizeofResource(module, resInfo) + if err != nil { + return + } + resData, err := LoadResource(module, resInfo) + if err != nil { + return + } + ptr, err := LockResource(resData) + if err != nil { + return + } + h := (*unsafeheader.Slice)(unsafe.Pointer(&data)) + h.Data = unsafe.Pointer(ptr) + h.Len = int(size) + h.Cap = int(size) + return +} diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index ee2793684..23fe18ece 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -4,7 +4,15 @@ package windows -import "syscall" +import ( + "net" + "syscall" + "unsafe" +) + +// NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and +// other native functions. +type NTStatus uint32 const ( // Invented values to support what package os expects. @@ -58,11 +66,6 @@ var signals = [...]string{ } const ( - GENERIC_READ = 0x80000000 - GENERIC_WRITE = 0x40000000 - GENERIC_EXECUTE = 0x20000000 - GENERIC_ALL = 0x10000000 - FILE_LIST_DIRECTORY = 0x00000001 FILE_APPEND_DATA = 0x00000004 FILE_WRITE_ATTRIBUTES = 0x00000100 @@ -154,17 +157,43 @@ const ( WAIT_OBJECT_0 = 0x00000000 WAIT_FAILED = 0xFFFFFFFF - PROCESS_TERMINATE = 1 - PROCESS_QUERY_INFORMATION = 0x00000400 - SYNCHRONIZE = 0x00100000 + // Access rights for process. + PROCESS_CREATE_PROCESS = 0x0080 + PROCESS_CREATE_THREAD = 0x0002 + PROCESS_DUP_HANDLE = 0x0040 + PROCESS_QUERY_INFORMATION = 0x0400 + PROCESS_QUERY_LIMITED_INFORMATION = 0x1000 + PROCESS_SET_INFORMATION = 0x0200 + PROCESS_SET_QUOTA = 0x0100 + PROCESS_SUSPEND_RESUME = 0x0800 + PROCESS_TERMINATE = 0x0001 + PROCESS_VM_OPERATION = 0x0008 + PROCESS_VM_READ = 0x0010 + PROCESS_VM_WRITE = 0x0020 + + // Access rights for thread. + THREAD_DIRECT_IMPERSONATION = 0x0200 + THREAD_GET_CONTEXT = 0x0008 + THREAD_IMPERSONATE = 0x0100 + THREAD_QUERY_INFORMATION = 0x0040 + THREAD_QUERY_LIMITED_INFORMATION = 0x0800 + THREAD_SET_CONTEXT = 0x0010 + THREAD_SET_INFORMATION = 0x0020 + THREAD_SET_LIMITED_INFORMATION = 0x0400 + THREAD_SET_THREAD_TOKEN = 0x0080 + THREAD_SUSPEND_RESUME = 0x0002 + THREAD_TERMINATE = 0x0001 FILE_MAP_COPY = 0x01 FILE_MAP_WRITE = 0x02 FILE_MAP_READ = 0x04 FILE_MAP_EXECUTE = 0x20 - CTRL_C_EVENT = 0 - CTRL_BREAK_EVENT = 1 + CTRL_C_EVENT = 0 + CTRL_BREAK_EVENT = 1 + CTRL_CLOSE_EVENT = 2 + CTRL_LOGOFF_EVENT = 5 + CTRL_SHUTDOWN_EVENT = 6 // Windows reserves errors >= 1<<29 for application use. APPLICATION_ERROR = 1 << 29 @@ -190,6 +219,18 @@ const ( INHERIT_PARENT_AFFINITY = 0x00010000 ) +const ( + // attributes for ProcThreadAttributeList + PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = 0x00020000 + PROC_THREAD_ATTRIBUTE_HANDLE_LIST = 0x00020002 + PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = 0x00030003 + PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = 0x00020004 + PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = 0x00030005 + PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007 + PROC_THREAD_ATTRIBUTE_UMS_THREAD = 0x00030006 + PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = 0x0002000b +) + const ( // flags for CreateToolhelp32Snapshot TH32CS_SNAPHEAPLIST = 0x01 @@ -202,7 +243,7 @@ const ( ) const ( - // filters for ReadDirectoryChangesW + // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 @@ -224,24 +265,27 @@ const ( const ( // wincrypt.h - PROV_RSA_FULL = 1 - PROV_RSA_SIG = 2 - PROV_DSS = 3 - PROV_FORTEZZA = 4 - PROV_MS_EXCHANGE = 5 - PROV_SSL = 6 - PROV_RSA_SCHANNEL = 12 - PROV_DSS_DH = 13 - PROV_EC_ECDSA_SIG = 14 - PROV_EC_ECNRA_SIG = 15 - PROV_EC_ECDSA_FULL = 16 - PROV_EC_ECNRA_FULL = 17 - PROV_DH_SCHANNEL = 18 - PROV_SPYRUS_LYNKS = 20 - PROV_RNG = 21 - PROV_INTEL_SEC = 22 - PROV_REPLACE_OWF = 23 - PROV_RSA_AES = 24 + /* certenrolld_begin -- PROV_RSA_*/ + PROV_RSA_FULL = 1 + PROV_RSA_SIG = 2 + PROV_DSS = 3 + PROV_FORTEZZA = 4 + PROV_MS_EXCHANGE = 5 + PROV_SSL = 6 + PROV_RSA_SCHANNEL = 12 + PROV_DSS_DH = 13 + PROV_EC_ECDSA_SIG = 14 + PROV_EC_ECNRA_SIG = 15 + PROV_EC_ECDSA_FULL = 16 + PROV_EC_ECNRA_FULL = 17 + PROV_DH_SCHANNEL = 18 + PROV_SPYRUS_LYNKS = 20 + PROV_RNG = 21 + PROV_INTEL_SEC = 22 + PROV_REPLACE_OWF = 23 + PROV_RSA_AES = 24 + + /* dwFlags definitions for CryptAcquireContext */ CRYPT_VERIFYCONTEXT = 0xF0000000 CRYPT_NEWKEYSET = 0x00000008 CRYPT_DELETEKEYSET = 0x00000010 @@ -249,6 +293,34 @@ const ( CRYPT_SILENT = 0x00000040 CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080 + /* Flags for PFXImportCertStore */ + CRYPT_EXPORTABLE = 0x00000001 + CRYPT_USER_PROTECTED = 0x00000002 + CRYPT_USER_KEYSET = 0x00001000 + PKCS12_PREFER_CNG_KSP = 0x00000100 + PKCS12_ALWAYS_CNG_KSP = 0x00000200 + PKCS12_ALLOW_OVERWRITE_KEY = 0x00004000 + PKCS12_NO_PERSIST_KEY = 0x00008000 + PKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010 + + /* Flags for CryptAcquireCertificatePrivateKey */ + CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001 + CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002 + CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004 + CRYPT_ACQUIRE_NO_HEALING = 0x00000008 + CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040 + CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG = 0x00000080 + CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = 0x00070000 + CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = 0x00010000 + CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000 + CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = 0x00040000 + + /* pdwKeySpec for CryptAcquireCertificatePrivateKey */ + AT_KEYEXCHANGE = 1 + AT_SIGNATURE = 2 + CERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF + + /* Default usage match type is AND with value zero */ USAGE_MATCH_TYPE_AND = 0 USAGE_MATCH_TYPE_OR = 1 @@ -373,6 +445,89 @@ const ( CERT_TRUST_IS_CA_TRUSTED = 0x00004000 CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000 + /* Certificate Information Flags */ + CERT_INFO_VERSION_FLAG = 1 + CERT_INFO_SERIAL_NUMBER_FLAG = 2 + CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3 + CERT_INFO_ISSUER_FLAG = 4 + CERT_INFO_NOT_BEFORE_FLAG = 5 + CERT_INFO_NOT_AFTER_FLAG = 6 + CERT_INFO_SUBJECT_FLAG = 7 + CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8 + CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9 + CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10 + CERT_INFO_EXTENSION_FLAG = 11 + + /* dwFindType for CertFindCertificateInStore */ + CERT_COMPARE_MASK = 0xFFFF + CERT_COMPARE_SHIFT = 16 + CERT_COMPARE_ANY = 0 + CERT_COMPARE_SHA1_HASH = 1 + CERT_COMPARE_NAME = 2 + CERT_COMPARE_ATTR = 3 + CERT_COMPARE_MD5_HASH = 4 + CERT_COMPARE_PROPERTY = 5 + CERT_COMPARE_PUBLIC_KEY = 6 + CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH + CERT_COMPARE_NAME_STR_A = 7 + CERT_COMPARE_NAME_STR_W = 8 + CERT_COMPARE_KEY_SPEC = 9 + CERT_COMPARE_ENHKEY_USAGE = 10 + CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE + CERT_COMPARE_SUBJECT_CERT = 11 + CERT_COMPARE_ISSUER_OF = 12 + CERT_COMPARE_EXISTING = 13 + CERT_COMPARE_SIGNATURE_HASH = 14 + CERT_COMPARE_KEY_IDENTIFIER = 15 + CERT_COMPARE_CERT_ID = 16 + CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17 + CERT_COMPARE_PUBKEY_MD5_HASH = 18 + CERT_COMPARE_SUBJECT_INFO_ACCESS = 19 + CERT_COMPARE_HASH_STR = 20 + CERT_COMPARE_HAS_PRIVATE_KEY = 21 + CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) + CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) + CERT_FIND_HASH = CERT_FIND_SHA1_HASH + CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) + CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) + CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME<= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET { + return (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:] + } else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 { + return (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:] + } + return nil +} + type IpAdapterUnicastAddress struct { Length uint32 Flags uint32 @@ -1439,3 +1997,778 @@ type ConsoleScreenBufferInfo struct { } const UNIX_PATH_MAX = 108 // defined in afunix.h + +const ( + // flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags + JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 + JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 + JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 + JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 + JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 + JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 + JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 + JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 + JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 + JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 + JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 + JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 + JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 + JOB_OBJECT_LIMIT_SUBSET_AFFINITY = 0x00004000 + JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 +) + +type IO_COUNTERS struct { + ReadOperationCount uint64 + WriteOperationCount uint64 + OtherOperationCount uint64 + ReadTransferCount uint64 + WriteTransferCount uint64 + OtherTransferCount uint64 +} + +type JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct { + BasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION + IoInfo IO_COUNTERS + ProcessMemoryLimit uintptr + JobMemoryLimit uintptr + PeakProcessMemoryUsed uintptr + PeakJobMemoryUsed uintptr +} + +const ( + // UIRestrictionsClass + JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 + JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 + JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 + JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 + JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 + JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 + JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 + JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 +) + +type JOBOBJECT_BASIC_UI_RESTRICTIONS struct { + UIRestrictionsClass uint32 +} + +const ( + // JobObjectInformationClass + JobObjectAssociateCompletionPortInformation = 7 + JobObjectBasicLimitInformation = 2 + JobObjectBasicUIRestrictions = 4 + JobObjectCpuRateControlInformation = 15 + JobObjectEndOfJobTimeInformation = 6 + JobObjectExtendedLimitInformation = 9 + JobObjectGroupInformation = 11 + JobObjectGroupInformationEx = 14 + JobObjectLimitViolationInformation2 = 35 + JobObjectNetRateControlInformation = 32 + JobObjectNotificationLimitInformation = 12 + JobObjectNotificationLimitInformation2 = 34 + JobObjectSecurityLimitInformation = 5 +) + +const ( + KF_FLAG_DEFAULT = 0x00000000 + KF_FLAG_FORCE_APP_DATA_REDIRECTION = 0x00080000 + KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000 + KF_FLAG_FORCE_PACKAGE_REDIRECTION = 0x00020000 + KF_FLAG_NO_PACKAGE_REDIRECTION = 0x00010000 + KF_FLAG_FORCE_APPCONTAINER_REDIRECTION = 0x00020000 + KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000 + KF_FLAG_CREATE = 0x00008000 + KF_FLAG_DONT_VERIFY = 0x00004000 + KF_FLAG_DONT_UNEXPAND = 0x00002000 + KF_FLAG_NO_ALIAS = 0x00001000 + KF_FLAG_INIT = 0x00000800 + KF_FLAG_DEFAULT_PATH = 0x00000400 + KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200 + KF_FLAG_SIMPLE_IDLIST = 0x00000100 + KF_FLAG_ALIAS_ONLY = 0x80000000 +) + +type OsVersionInfoEx struct { + osVersionInfoSize uint32 + MajorVersion uint32 + MinorVersion uint32 + BuildNumber uint32 + PlatformId uint32 + CsdVersion [128]uint16 + ServicePackMajor uint16 + ServicePackMinor uint16 + SuiteMask uint16 + ProductType byte + _ byte +} + +const ( + EWX_LOGOFF = 0x00000000 + EWX_SHUTDOWN = 0x00000001 + EWX_REBOOT = 0x00000002 + EWX_FORCE = 0x00000004 + EWX_POWEROFF = 0x00000008 + EWX_FORCEIFHUNG = 0x00000010 + EWX_QUICKRESOLVE = 0x00000020 + EWX_RESTARTAPPS = 0x00000040 + EWX_HYBRID_SHUTDOWN = 0x00400000 + EWX_BOOTOPTIONS = 0x01000000 + + SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000 + SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000 + SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000 + SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000 + SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000 + SHTDN_REASON_FLAG_PLANNED = 0x80000000 + SHTDN_REASON_MAJOR_OTHER = 0x00000000 + SHTDN_REASON_MAJOR_NONE = 0x00000000 + SHTDN_REASON_MAJOR_HARDWARE = 0x00010000 + SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000 + SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000 + SHTDN_REASON_MAJOR_APPLICATION = 0x00040000 + SHTDN_REASON_MAJOR_SYSTEM = 0x00050000 + SHTDN_REASON_MAJOR_POWER = 0x00060000 + SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000 + SHTDN_REASON_MINOR_OTHER = 0x00000000 + SHTDN_REASON_MINOR_NONE = 0x000000ff + SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001 + SHTDN_REASON_MINOR_INSTALLATION = 0x00000002 + SHTDN_REASON_MINOR_UPGRADE = 0x00000003 + SHTDN_REASON_MINOR_RECONFIG = 0x00000004 + SHTDN_REASON_MINOR_HUNG = 0x00000005 + SHTDN_REASON_MINOR_UNSTABLE = 0x00000006 + SHTDN_REASON_MINOR_DISK = 0x00000007 + SHTDN_REASON_MINOR_PROCESSOR = 0x00000008 + SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009 + SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a + SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b + SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c + SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d + SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e + SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F + SHTDN_REASON_MINOR_SERVICEPACK = 0x00000010 + SHTDN_REASON_MINOR_HOTFIX = 0x00000011 + SHTDN_REASON_MINOR_SECURITYFIX = 0x00000012 + SHTDN_REASON_MINOR_SECURITY = 0x00000013 + SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 0x00000014 + SHTDN_REASON_MINOR_WMI = 0x00000015 + SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL = 0x00000016 + SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 0x00000017 + SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL = 0x00000018 + SHTDN_REASON_MINOR_MMC = 0x00000019 + SHTDN_REASON_MINOR_SYSTEMRESTORE = 0x0000001a + SHTDN_REASON_MINOR_TERMSRV = 0x00000020 + SHTDN_REASON_MINOR_DC_PROMOTION = 0x00000021 + SHTDN_REASON_MINOR_DC_DEMOTION = 0x00000022 + SHTDN_REASON_UNKNOWN = SHTDN_REASON_MINOR_NONE + SHTDN_REASON_LEGACY_API = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED + SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff + + SHUTDOWN_NORETRY = 0x1 +) + +// Flags used for GetModuleHandleEx +const ( + GET_MODULE_HANDLE_EX_FLAG_PIN = 1 + GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2 + GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4 +) + +// MUI function flag values +const ( + MUI_LANGUAGE_ID = 0x4 + MUI_LANGUAGE_NAME = 0x8 + MUI_MERGE_SYSTEM_FALLBACK = 0x10 + MUI_MERGE_USER_FALLBACK = 0x20 + MUI_UI_FALLBACK = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK + MUI_THREAD_LANGUAGES = 0x40 + MUI_CONSOLE_FILTER = 0x100 + MUI_COMPLEX_SCRIPT_FILTER = 0x200 + MUI_RESET_FILTERS = 0x001 + MUI_USER_PREFERRED_UI_LANGUAGES = 0x10 + MUI_USE_INSTALLED_LANGUAGES = 0x20 + MUI_USE_SEARCH_ALL_LANGUAGES = 0x40 + MUI_LANG_NEUTRAL_PE_FILE = 0x100 + MUI_NON_LANG_NEUTRAL_FILE = 0x200 + MUI_MACHINE_LANGUAGE_SETTINGS = 0x400 + MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = 0x001 + MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002 + MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = 0x004 + MUI_QUERY_TYPE = 0x001 + MUI_QUERY_CHECKSUM = 0x002 + MUI_QUERY_LANGUAGE_NAME = 0x004 + MUI_QUERY_RESOURCE_TYPES = 0x008 + MUI_FILEINFO_VERSION = 0x001 + + MUI_FULL_LANGUAGE = 0x01 + MUI_PARTIAL_LANGUAGE = 0x02 + MUI_LIP_LANGUAGE = 0x04 + MUI_LANGUAGE_INSTALLED = 0x20 + MUI_LANGUAGE_LICENSED = 0x40 +) + +// FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx +const ( + FileBasicInfo = 0 + FileStandardInfo = 1 + FileNameInfo = 2 + FileRenameInfo = 3 + FileDispositionInfo = 4 + FileAllocationInfo = 5 + FileEndOfFileInfo = 6 + FileStreamInfo = 7 + FileCompressionInfo = 8 + FileAttributeTagInfo = 9 + FileIdBothDirectoryInfo = 10 + FileIdBothDirectoryRestartInfo = 11 + FileIoPriorityHintInfo = 12 + FileRemoteProtocolInfo = 13 + FileFullDirectoryInfo = 14 + FileFullDirectoryRestartInfo = 15 + FileStorageInfo = 16 + FileAlignmentInfo = 17 + FileIdInfo = 18 + FileIdExtdDirectoryInfo = 19 + FileIdExtdDirectoryRestartInfo = 20 + FileDispositionInfoEx = 21 + FileRenameInfoEx = 22 + FileCaseSensitiveInfo = 23 + FileNormalizedNameInfo = 24 +) + +// LoadLibrary flags for determining from where to search for a DLL +const ( + DONT_RESOLVE_DLL_REFERENCES = 0x1 + LOAD_LIBRARY_AS_DATAFILE = 0x2 + LOAD_WITH_ALTERED_SEARCH_PATH = 0x8 + LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10 + LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x20 + LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x40 + LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = 0x80 + LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 0x100 + LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x200 + LOAD_LIBRARY_SEARCH_USER_DIRS = 0x400 + LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x800 + LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x1000 + LOAD_LIBRARY_SAFE_CURRENT_DIRS = 0x00002000 + LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000 + LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY = 0x00008000 +) + +// RegNotifyChangeKeyValue notifyFilter flags. +const ( + // REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted. + REG_NOTIFY_CHANGE_NAME = 0x00000001 + + // REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information. + REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 + + // REG_NOTIFY_CHANGE_LAST_SET notifies the caller of changes to a value of the key. This can include adding or deleting a value, or changing an existing value. + REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 + + // REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key. + REG_NOTIFY_CHANGE_SECURITY = 0x00000008 + + // REG_NOTIFY_THREAD_AGNOSTIC indicates that the lifetime of the registration must not be tied to the lifetime of the thread issuing the RegNotifyChangeKeyValue call. Note: This flag value is only supported in Windows 8 and later. + REG_NOTIFY_THREAD_AGNOSTIC = 0x10000000 +) + +type CommTimeouts struct { + ReadIntervalTimeout uint32 + ReadTotalTimeoutMultiplier uint32 + ReadTotalTimeoutConstant uint32 + WriteTotalTimeoutMultiplier uint32 + WriteTotalTimeoutConstant uint32 +} + +// NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING. +type NTUnicodeString struct { + Length uint16 + MaximumLength uint16 + Buffer *uint16 +} + +// NTString is an ANSI string for NT native APIs, corresponding to STRING. +type NTString struct { + Length uint16 + MaximumLength uint16 + Buffer *byte +} + +type LIST_ENTRY struct { + Flink *LIST_ENTRY + Blink *LIST_ENTRY +} + +type LDR_DATA_TABLE_ENTRY struct { + reserved1 [2]uintptr + InMemoryOrderLinks LIST_ENTRY + reserved2 [2]uintptr + DllBase uintptr + reserved3 [2]uintptr + FullDllName NTUnicodeString + reserved4 [8]byte + reserved5 [3]uintptr + reserved6 uintptr + TimeDateStamp uint32 +} + +type PEB_LDR_DATA struct { + reserved1 [8]byte + reserved2 [3]uintptr + InMemoryOrderModuleList LIST_ENTRY +} + +type CURDIR struct { + DosPath NTUnicodeString + Handle Handle +} + +type RTL_DRIVE_LETTER_CURDIR struct { + Flags uint16 + Length uint16 + TimeStamp uint32 + DosPath NTString +} + +type RTL_USER_PROCESS_PARAMETERS struct { + MaximumLength, Length uint32 + + Flags, DebugFlags uint32 + + ConsoleHandle Handle + ConsoleFlags uint32 + StandardInput, StandardOutput, StandardError Handle + + CurrentDirectory CURDIR + DllPath NTUnicodeString + ImagePathName NTUnicodeString + CommandLine NTUnicodeString + Environment unsafe.Pointer + + StartingX, StartingY, CountX, CountY, CountCharsX, CountCharsY, FillAttribute uint32 + + WindowFlags, ShowWindowFlags uint32 + WindowTitle, DesktopInfo, ShellInfo, RuntimeData NTUnicodeString + CurrentDirectories [32]RTL_DRIVE_LETTER_CURDIR + + EnvironmentSize, EnvironmentVersion uintptr + + PackageDependencyData unsafe.Pointer + ProcessGroupId uint32 + LoaderThreads uint32 + + RedirectionDllName NTUnicodeString + HeapPartitionName NTUnicodeString + DefaultThreadpoolCpuSetMasks uintptr + DefaultThreadpoolCpuSetMaskCount uint32 +} + +type PEB struct { + reserved1 [2]byte + BeingDebugged byte + BitField byte + reserved3 uintptr + ImageBaseAddress uintptr + Ldr *PEB_LDR_DATA + ProcessParameters *RTL_USER_PROCESS_PARAMETERS + reserved4 [3]uintptr + AtlThunkSListPtr uintptr + reserved5 uintptr + reserved6 uint32 + reserved7 uintptr + reserved8 uint32 + AtlThunkSListPtr32 uint32 + reserved9 [45]uintptr + reserved10 [96]byte + PostProcessInitRoutine uintptr + reserved11 [128]byte + reserved12 [1]uintptr + SessionId uint32 +} + +type OBJECT_ATTRIBUTES struct { + Length uint32 + RootDirectory Handle + ObjectName *NTUnicodeString + Attributes uint32 + SecurityDescriptor *SECURITY_DESCRIPTOR + SecurityQoS *SECURITY_QUALITY_OF_SERVICE +} + +// Values for the Attributes member of OBJECT_ATTRIBUTES. +const ( + OBJ_INHERIT = 0x00000002 + OBJ_PERMANENT = 0x00000010 + OBJ_EXCLUSIVE = 0x00000020 + OBJ_CASE_INSENSITIVE = 0x00000040 + OBJ_OPENIF = 0x00000080 + OBJ_OPENLINK = 0x00000100 + OBJ_KERNEL_HANDLE = 0x00000200 + OBJ_FORCE_ACCESS_CHECK = 0x00000400 + OBJ_IGNORE_IMPERSONATED_DEVICEMAP = 0x00000800 + OBJ_DONT_REPARSE = 0x00001000 + OBJ_VALID_ATTRIBUTES = 0x00001FF2 +) + +type IO_STATUS_BLOCK struct { + Status NTStatus + Information uintptr +} + +type RTLP_CURDIR_REF struct { + RefCount int32 + Handle Handle +} + +type RTL_RELATIVE_NAME struct { + RelativeName NTUnicodeString + ContainingDirectory Handle + CurDirRef *RTLP_CURDIR_REF +} + +const ( + // CreateDisposition flags for NtCreateFile and NtCreateNamedPipeFile. + FILE_SUPERSEDE = 0x00000000 + FILE_OPEN = 0x00000001 + FILE_CREATE = 0x00000002 + FILE_OPEN_IF = 0x00000003 + FILE_OVERWRITE = 0x00000004 + FILE_OVERWRITE_IF = 0x00000005 + FILE_MAXIMUM_DISPOSITION = 0x00000005 + + // CreateOptions flags for NtCreateFile and NtCreateNamedPipeFile. + FILE_DIRECTORY_FILE = 0x00000001 + FILE_WRITE_THROUGH = 0x00000002 + FILE_SEQUENTIAL_ONLY = 0x00000004 + FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008 + FILE_SYNCHRONOUS_IO_ALERT = 0x00000010 + FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020 + FILE_NON_DIRECTORY_FILE = 0x00000040 + FILE_CREATE_TREE_CONNECTION = 0x00000080 + FILE_COMPLETE_IF_OPLOCKED = 0x00000100 + FILE_NO_EA_KNOWLEDGE = 0x00000200 + FILE_OPEN_REMOTE_INSTANCE = 0x00000400 + FILE_RANDOM_ACCESS = 0x00000800 + FILE_DELETE_ON_CLOSE = 0x00001000 + FILE_OPEN_BY_FILE_ID = 0x00002000 + FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000 + FILE_NO_COMPRESSION = 0x00008000 + FILE_OPEN_REQUIRING_OPLOCK = 0x00010000 + FILE_DISALLOW_EXCLUSIVE = 0x00020000 + FILE_RESERVE_OPFILTER = 0x00100000 + FILE_OPEN_REPARSE_POINT = 0x00200000 + FILE_OPEN_NO_RECALL = 0x00400000 + FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000 + + // Parameter constants for NtCreateNamedPipeFile. + + FILE_PIPE_BYTE_STREAM_TYPE = 0x00000000 + FILE_PIPE_MESSAGE_TYPE = 0x00000001 + + FILE_PIPE_ACCEPT_REMOTE_CLIENTS = 0x00000000 + FILE_PIPE_REJECT_REMOTE_CLIENTS = 0x00000002 + + FILE_PIPE_TYPE_VALID_MASK = 0x00000003 + + FILE_PIPE_BYTE_STREAM_MODE = 0x00000000 + FILE_PIPE_MESSAGE_MODE = 0x00000001 + + FILE_PIPE_QUEUE_OPERATION = 0x00000000 + FILE_PIPE_COMPLETE_OPERATION = 0x00000001 + + FILE_PIPE_INBOUND = 0x00000000 + FILE_PIPE_OUTBOUND = 0x00000001 + FILE_PIPE_FULL_DUPLEX = 0x00000002 + + FILE_PIPE_DISCONNECTED_STATE = 0x00000001 + FILE_PIPE_LISTENING_STATE = 0x00000002 + FILE_PIPE_CONNECTED_STATE = 0x00000003 + FILE_PIPE_CLOSING_STATE = 0x00000004 + + FILE_PIPE_CLIENT_END = 0x00000000 + FILE_PIPE_SERVER_END = 0x00000001 +) + +// ProcessInformationClasses for NtQueryInformationProcess and NtSetInformationProcess. +const ( + ProcessBasicInformation = iota + ProcessQuotaLimits + ProcessIoCounters + ProcessVmCounters + ProcessTimes + ProcessBasePriority + ProcessRaisePriority + ProcessDebugPort + ProcessExceptionPort + ProcessAccessToken + ProcessLdtInformation + ProcessLdtSize + ProcessDefaultHardErrorMode + ProcessIoPortHandlers + ProcessPooledUsageAndLimits + ProcessWorkingSetWatch + ProcessUserModeIOPL + ProcessEnableAlignmentFaultFixup + ProcessPriorityClass + ProcessWx86Information + ProcessHandleCount + ProcessAffinityMask + ProcessPriorityBoost + ProcessDeviceMap + ProcessSessionInformation + ProcessForegroundInformation + ProcessWow64Information + ProcessImageFileName + ProcessLUIDDeviceMapsEnabled + ProcessBreakOnTermination + ProcessDebugObjectHandle + ProcessDebugFlags + ProcessHandleTracing + ProcessIoPriority + ProcessExecuteFlags + ProcessTlsInformation + ProcessCookie + ProcessImageInformation + ProcessCycleTime + ProcessPagePriority + ProcessInstrumentationCallback + ProcessThreadStackAllocation + ProcessWorkingSetWatchEx + ProcessImageFileNameWin32 + ProcessImageFileMapping + ProcessAffinityUpdateMode + ProcessMemoryAllocationMode + ProcessGroupInformation + ProcessTokenVirtualizationEnabled + ProcessConsoleHostProcess + ProcessWindowInformation + ProcessHandleInformation + ProcessMitigationPolicy + ProcessDynamicFunctionTableInformation + ProcessHandleCheckingMode + ProcessKeepAliveCount + ProcessRevokeFileHandles + ProcessWorkingSetControl + ProcessHandleTable + ProcessCheckStackExtentsMode + ProcessCommandLineInformation + ProcessProtectionInformation + ProcessMemoryExhaustion + ProcessFaultInformation + ProcessTelemetryIdInformation + ProcessCommitReleaseInformation + ProcessDefaultCpuSetsInformation + ProcessAllowedCpuSetsInformation + ProcessSubsystemProcess + ProcessJobMemoryInformation + ProcessInPrivate + ProcessRaiseUMExceptionOnInvalidHandleClose + ProcessIumChallengeResponse + ProcessChildProcessInformation + ProcessHighGraphicsPriorityInformation + ProcessSubsystemInformation + ProcessEnergyValues + ProcessActivityThrottleState + ProcessActivityThrottlePolicy + ProcessWin32kSyscallFilterInformation + ProcessDisableSystemAllowedCpuSets + ProcessWakeInformation + ProcessEnergyTrackingState + ProcessManageWritesToExecutableMemory + ProcessCaptureTrustletLiveDump + ProcessTelemetryCoverage + ProcessEnclaveInformation + ProcessEnableReadWriteVmLogging + ProcessUptimeInformation + ProcessImageSection + ProcessDebugAuthInformation + ProcessSystemResourceManagement + ProcessSequenceNumber + ProcessLoaderDetour + ProcessSecurityDomainInformation + ProcessCombineSecurityDomainsInformation + ProcessEnableLogging + ProcessLeapSecondInformation + ProcessFiberShadowStackAllocation + ProcessFreeFiberShadowStackAllocation + ProcessAltSystemCallInformation + ProcessDynamicEHContinuationTargets + ProcessDynamicEnforcedCetCompatibleRanges +) + +type PROCESS_BASIC_INFORMATION struct { + ExitStatus NTStatus + PebBaseAddress *PEB + AffinityMask uintptr + BasePriority int32 + UniqueProcessId uintptr + InheritedFromUniqueProcessId uintptr +} + +// Constants for LocalAlloc flags. +const ( + LMEM_FIXED = 0x0 + LMEM_MOVEABLE = 0x2 + LMEM_NOCOMPACT = 0x10 + LMEM_NODISCARD = 0x20 + LMEM_ZEROINIT = 0x40 + LMEM_MODIFY = 0x80 + LMEM_DISCARDABLE = 0xf00 + LMEM_VALID_FLAGS = 0xf72 + LMEM_INVALID_HANDLE = 0x8000 + LHND = LMEM_MOVEABLE | LMEM_ZEROINIT + LPTR = LMEM_FIXED | LMEM_ZEROINIT + NONZEROLHND = LMEM_MOVEABLE + NONZEROLPTR = LMEM_FIXED +) + +// Constants for the CreateNamedPipe-family of functions. +const ( + PIPE_ACCESS_INBOUND = 0x1 + PIPE_ACCESS_OUTBOUND = 0x2 + PIPE_ACCESS_DUPLEX = 0x3 + + PIPE_CLIENT_END = 0x0 + PIPE_SERVER_END = 0x1 + + PIPE_WAIT = 0x0 + PIPE_NOWAIT = 0x1 + PIPE_READMODE_BYTE = 0x0 + PIPE_READMODE_MESSAGE = 0x2 + PIPE_TYPE_BYTE = 0x0 + PIPE_TYPE_MESSAGE = 0x4 + PIPE_ACCEPT_REMOTE_CLIENTS = 0x0 + PIPE_REJECT_REMOTE_CLIENTS = 0x8 + + PIPE_UNLIMITED_INSTANCES = 255 +) + +// Constants for security attributes when opening named pipes. +const ( + SECURITY_ANONYMOUS = SecurityAnonymous << 16 + SECURITY_IDENTIFICATION = SecurityIdentification << 16 + SECURITY_IMPERSONATION = SecurityImpersonation << 16 + SECURITY_DELEGATION = SecurityDelegation << 16 + + SECURITY_CONTEXT_TRACKING = 0x40000 + SECURITY_EFFECTIVE_ONLY = 0x80000 + + SECURITY_SQOS_PRESENT = 0x100000 + SECURITY_VALID_SQOS_FLAGS = 0x1f0000 +) + +// ResourceID represents a 16-bit resource identifier, traditionally created with the MAKEINTRESOURCE macro. +type ResourceID uint16 + +// ResourceIDOrString must be either a ResourceID, to specify a resource or resource type by ID, +// or a string, to specify a resource or resource type by name. +type ResourceIDOrString interface{} + +// Predefined resource names and types. +var ( + // Predefined names. + CREATEPROCESS_MANIFEST_RESOURCE_ID ResourceID = 1 + ISOLATIONAWARE_MANIFEST_RESOURCE_ID ResourceID = 2 + ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ResourceID = 3 + ISOLATIONPOLICY_MANIFEST_RESOURCE_ID ResourceID = 4 + ISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID ResourceID = 5 + MINIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 1 // inclusive + MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 16 // inclusive + + // Predefined types. + RT_CURSOR ResourceID = 1 + RT_BITMAP ResourceID = 2 + RT_ICON ResourceID = 3 + RT_MENU ResourceID = 4 + RT_DIALOG ResourceID = 5 + RT_STRING ResourceID = 6 + RT_FONTDIR ResourceID = 7 + RT_FONT ResourceID = 8 + RT_ACCELERATOR ResourceID = 9 + RT_RCDATA ResourceID = 10 + RT_MESSAGETABLE ResourceID = 11 + RT_GROUP_CURSOR ResourceID = 12 + RT_GROUP_ICON ResourceID = 14 + RT_VERSION ResourceID = 16 + RT_DLGINCLUDE ResourceID = 17 + RT_PLUGPLAY ResourceID = 19 + RT_VXD ResourceID = 20 + RT_ANICURSOR ResourceID = 21 + RT_ANIICON ResourceID = 22 + RT_HTML ResourceID = 23 + RT_MANIFEST ResourceID = 24 +) + +type COAUTHIDENTITY struct { + User *uint16 + UserLength uint32 + Domain *uint16 + DomainLength uint32 + Password *uint16 + PasswordLength uint32 + Flags uint32 +} + +type COAUTHINFO struct { + AuthnSvc uint32 + AuthzSvc uint32 + ServerPrincName *uint16 + AuthnLevel uint32 + ImpersonationLevel uint32 + AuthIdentityData *COAUTHIDENTITY + Capabilities uint32 +} + +type COSERVERINFO struct { + Reserved1 uint32 + Aame *uint16 + AuthInfo *COAUTHINFO + Reserved2 uint32 +} + +type BIND_OPTS3 struct { + CbStruct uint32 + Flags uint32 + Mode uint32 + TickCountDeadline uint32 + TrackFlags uint32 + ClassContext uint32 + Locale uint32 + ServerInfo *COSERVERINFO + Hwnd HWND +} + +const ( + CLSCTX_INPROC_SERVER = 0x1 + CLSCTX_INPROC_HANDLER = 0x2 + CLSCTX_LOCAL_SERVER = 0x4 + CLSCTX_INPROC_SERVER16 = 0x8 + CLSCTX_REMOTE_SERVER = 0x10 + CLSCTX_INPROC_HANDLER16 = 0x20 + CLSCTX_RESERVED1 = 0x40 + CLSCTX_RESERVED2 = 0x80 + CLSCTX_RESERVED3 = 0x100 + CLSCTX_RESERVED4 = 0x200 + CLSCTX_NO_CODE_DOWNLOAD = 0x400 + CLSCTX_RESERVED5 = 0x800 + CLSCTX_NO_CUSTOM_MARSHAL = 0x1000 + CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000 + CLSCTX_NO_FAILURE_LOG = 0x4000 + CLSCTX_DISABLE_AAA = 0x8000 + CLSCTX_ENABLE_AAA = 0x10000 + CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000 + CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000 + CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000 + CLSCTX_ENABLE_CLOAKING = 0x100000 + CLSCTX_APPCONTAINER = 0x400000 + CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000 + CLSCTX_PS_DLL = 0x80000000 + + COINIT_MULTITHREADED = 0x0 + COINIT_APARTMENTTHREADED = 0x2 + COINIT_DISABLE_OLE1DDE = 0x4 + COINIT_SPEED_OVER_MEMORY = 0x8 +) + +// Flag for QueryFullProcessImageName. +const PROCESS_NAME_NATIVE = 1 diff --git a/vendor/golang.org/x/sys/windows/types_windows_386.go b/vendor/golang.org/x/sys/windows/types_windows_386.go index fe0ddd031..8bce3e2fc 100644 --- a/vendor/golang.org/x/sys/windows/types_windows_386.go +++ b/vendor/golang.org/x/sys/windows/types_windows_386.go @@ -20,3 +20,16 @@ type Servent struct { Port uint16 Proto *byte } + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 + _ uint32 // pad to 8 byte boundary +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_amd64.go b/vendor/golang.org/x/sys/windows/types_windows_amd64.go index 7e154c2df..fdddc0c70 100644 --- a/vendor/golang.org/x/sys/windows/types_windows_amd64.go +++ b/vendor/golang.org/x/sys/windows/types_windows_amd64.go @@ -20,3 +20,15 @@ type Servent struct { Proto *byte Port uint16 } + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_arm.go b/vendor/golang.org/x/sys/windows/types_windows_arm.go index 74571e360..321872c3e 100644 --- a/vendor/golang.org/x/sys/windows/types_windows_arm.go +++ b/vendor/golang.org/x/sys/windows/types_windows_arm.go @@ -20,3 +20,16 @@ type Servent struct { Port uint16 Proto *byte } + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 + _ uint32 // pad to 8 byte boundary +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_arm64.go b/vendor/golang.org/x/sys/windows/types_windows_arm64.go new file mode 100644 index 000000000..fdddc0c70 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_arm64.go @@ -0,0 +1,34 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte +} + +type Servent struct { + Name *byte + Aliases **byte + Proto *byte + Port uint16 +} + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 +} diff --git a/vendor/golang.org/x/sys/windows/zerrors_windows.go b/vendor/golang.org/x/sys/windows/zerrors_windows.go index 2b4cea5b9..0cf658fbd 100644 --- a/vendor/golang.org/x/sys/windows/zerrors_windows.go +++ b/vendor/golang.org/x/sys/windows/zerrors_windows.go @@ -1,4 +1,4 @@ -// Code generated by 'go generate'; DO NOT EDIT. +// Code generated by 'mkerrors.bash'; DO NOT EDIT. package windows @@ -146,6 +146,7 @@ const ( FACILITY_WEP = 2049 FACILITY_SYNCENGINE = 2050 FACILITY_XBOX = 2339 + FACILITY_GAME = 2340 FACILITY_PIX = 2748 ERROR_SUCCESS syscall.Errno = 0 NO_ERROR = 0 @@ -469,9 +470,18 @@ const ( ERROR_STORAGE_RESERVE_NOT_EMPTY syscall.Errno = 419 ERROR_NOT_A_DAX_VOLUME syscall.Errno = 420 ERROR_NOT_DAX_MAPPABLE syscall.Errno = 421 - ERROR_TIME_CRITICAL_THREAD syscall.Errno = 422 + ERROR_TIME_SENSITIVE_THREAD syscall.Errno = 422 ERROR_DPL_NOT_SUPPORTED_FOR_USER syscall.Errno = 423 ERROR_CASE_DIFFERING_NAMES_IN_DIR syscall.Errno = 424 + ERROR_FILE_NOT_SUPPORTED syscall.Errno = 425 + ERROR_CLOUD_FILE_REQUEST_TIMEOUT syscall.Errno = 426 + ERROR_NO_TASK_QUEUE syscall.Errno = 427 + ERROR_SRC_SRV_DLL_LOAD_FAILED syscall.Errno = 428 + ERROR_NOT_SUPPORTED_WITH_BTT syscall.Errno = 429 + ERROR_ENCRYPTION_DISABLED syscall.Errno = 430 + ERROR_ENCRYPTING_METADATA_DISALLOWED syscall.Errno = 431 + ERROR_CANT_CLEAR_ENCRYPTION_FLAG syscall.Errno = 432 + ERROR_NO_SUCH_DEVICE syscall.Errno = 433 ERROR_CAPAUTHZ_NOT_DEVUNLOCKED syscall.Errno = 450 ERROR_CAPAUTHZ_CHANGE_TYPE syscall.Errno = 451 ERROR_CAPAUTHZ_NOT_PROVISIONED syscall.Errno = 452 @@ -1593,6 +1603,8 @@ const ( ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION syscall.Errno = 4551 ERROR_SYSTEM_INTEGRITY_INVALID_POLICY syscall.Errno = 4552 ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED syscall.Errno = 4553 + ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES syscall.Errno = 4554 + ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED syscall.Errno = 4555 ERROR_VSM_NOT_INITIALIZED syscall.Errno = 4560 ERROR_VSM_DMA_PROTECTION_NOT_IN_USE syscall.Errno = 4561 ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED syscall.Errno = 4570 @@ -1824,6 +1836,7 @@ const ( ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE syscall.Errno = 6020 ERROR_CS_ENCRYPTION_FILE_NOT_CSE syscall.Errno = 6021 ERROR_ENCRYPTION_POLICY_DENIES_OPERATION syscall.Errno = 6022 + ERROR_WIP_ENCRYPTION_FAILED syscall.Errno = 6023 ERROR_NO_BROWSER_SERVERS_FOUND syscall.Errno = 6118 SCHED_E_SERVICE_NOT_LOCALSYSTEM syscall.Errno = 6200 ERROR_LOG_SECTOR_INVALID syscall.Errno = 6600 @@ -3000,6 +3013,7 @@ const ( ERROR_SMI_PRIMITIVE_INSTALLER_FAILED syscall.Errno = 14108 ERROR_GENERIC_COMMAND_FAILED syscall.Errno = 14109 ERROR_SXS_FILE_HASH_MISSING syscall.Errno = 14110 + ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS syscall.Errno = 14111 ERROR_EVT_INVALID_CHANNEL_PATH syscall.Errno = 15000 ERROR_EVT_INVALID_QUERY syscall.Errno = 15001 ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND syscall.Errno = 15002 @@ -3093,6 +3107,7 @@ const ( ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED syscall.Errno = 15157 ERROR_PRI_MERGE_INVALID_FILE_NAME syscall.Errno = 15158 ERROR_MRM_PACKAGE_NOT_FOUND syscall.Errno = 15159 + ERROR_MRM_MISSING_DEFAULT_LANGUAGE syscall.Errno = 15160 ERROR_MCA_INVALID_CAPABILITIES_STRING syscall.Errno = 15200 ERROR_MCA_INVALID_VCP_VERSION syscall.Errno = 15201 ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION syscall.Errno = 15202 @@ -3167,6 +3182,15 @@ const ( ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED syscall.Errno = 15645 ERROR_APPINSTALLER_ACTIVATION_BLOCKED syscall.Errno = 15646 ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED syscall.Errno = 15647 + ERROR_APPX_RAW_DATA_WRITE_FAILED syscall.Errno = 15648 + ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE syscall.Errno = 15649 + ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE syscall.Errno = 15650 + ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY syscall.Errno = 15651 + ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY syscall.Errno = 15652 + ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER syscall.Errno = 15653 + ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED syscall.Errno = 15654 + ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE syscall.Errno = 15655 + ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES syscall.Errno = 15656 APPMODEL_ERROR_NO_PACKAGE syscall.Errno = 15700 APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT syscall.Errno = 15701 APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT syscall.Errno = 15702 @@ -3174,6 +3198,7 @@ const ( APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED syscall.Errno = 15704 APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID syscall.Errno = 15705 APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE syscall.Errno = 15706 + APPMODEL_ERROR_NO_MUTABLE_DIRECTORY syscall.Errno = 15707 ERROR_STATE_LOAD_STORE_FAILED syscall.Errno = 15800 ERROR_STATE_GET_VERSION_FAILED syscall.Errno = 15801 ERROR_STATE_SET_VERSION_FAILED syscall.Errno = 15802 @@ -3204,7 +3229,8 @@ const ( E_NOT_SET = ERROR_NOT_FOUND E_NOT_VALID_STATE = ERROR_INVALID_STATE E_NOT_SUFFICIENT_BUFFER = ERROR_INSUFFICIENT_BUFFER - E_TIME_CRITICAL_THREAD = ERROR_TIME_CRITICAL_THREAD + E_TIME_SENSITIVE_THREAD = ERROR_TIME_SENSITIVE_THREAD + E_NO_TASK_QUEUE = ERROR_NO_TASK_QUEUE NOERROR syscall.Errno = 0 E_UNEXPECTED Handle = 0x8000FFFF E_NOTIMPL Handle = 0x80004001 @@ -3966,6 +3992,7 @@ const ( SEC_I_COMPLETE_NEEDED Handle = 0x00090313 SEC_I_COMPLETE_AND_CONTINUE Handle = 0x00090314 SEC_I_LOCAL_LOGON Handle = 0x00090315 + SEC_I_GENERIC_EXTENSION_RECEIVED Handle = 0x00090316 SEC_E_BAD_PKGID Handle = 0x80090316 SEC_E_CONTEXT_EXPIRED Handle = 0x80090317 SEC_I_CONTEXT_EXPIRED Handle = 0x00090317 @@ -4033,6 +4060,8 @@ const ( SEC_E_APPLICATION_PROTOCOL_MISMATCH Handle = 0x80090367 SEC_I_ASYNC_CALL_PENDING Handle = 0x00090368 SEC_E_INVALID_UPN_NAME Handle = 0x80090369 + SEC_E_EXT_BUFFER_TOO_SMALL Handle = 0x8009036A + SEC_E_INSUFFICIENT_BUFFERS Handle = 0x8009036B SEC_E_NO_SPM = SEC_E_INTERNAL_ERROR SEC_E_NOT_SUPPORTED = SEC_E_UNSUPPORTED_FUNCTION CRYPT_E_MSG_ERROR Handle = 0x80091001 @@ -4637,6 +4666,8 @@ const ( ERROR_GRAPHICS_PRESENT_INVALID_WINDOW Handle = 0xC026200F ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND Handle = 0xC0262010 ERROR_GRAPHICS_VAIL_STATE_CHANGED Handle = 0xC0262011 + ERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN Handle = 0xC0262012 + ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED Handle = 0xC0262013 ERROR_GRAPHICS_NO_VIDEO_MEMORY Handle = 0xC0262100 ERROR_GRAPHICS_CANT_LOCK_MEMORY Handle = 0xC0262101 ERROR_GRAPHICS_ALLOCATION_BUSY Handle = 0xC0262102 @@ -5393,6 +5424,13 @@ const ( FVE_E_NOT_DE_VOLUME Handle = 0x803100D7 FVE_E_PROTECTION_CANNOT_BE_DISABLED Handle = 0x803100D8 FVE_E_OSV_KSR_NOT_ALLOWED Handle = 0x803100D9 + FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE Handle = 0x803100DA + FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE Handle = 0x803100DB + FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE Handle = 0x803100DC + FVE_E_KEY_ROTATION_NOT_SUPPORTED Handle = 0x803100DD + FVE_E_EXECUTE_REQUEST_SENT_TOO_SOON Handle = 0x803100DE + FVE_E_KEY_ROTATION_NOT_ENABLED Handle = 0x803100DF + FVE_E_DEVICE_NOT_JOINED Handle = 0x803100E0 FWP_E_CALLOUT_NOT_FOUND Handle = 0x80320001 FWP_E_CONDITION_NOT_FOUND Handle = 0x80320002 FWP_E_FILTER_NOT_FOUND Handle = 0x80320003 @@ -5881,6 +5919,12 @@ const ( GCN_E_NETCOMPARTMENT_NOT_FOUND Handle = 0x803B0027 GCN_E_NETINTERFACE_NOT_FOUND Handle = 0x803B0028 GCN_E_DEFAULTNAMESPACE_EXISTS Handle = 0x803B0029 + HCN_E_ICS_DISABLED Handle = 0x803B002A + HCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS Handle = 0x803B002B + HCN_E_ENTITY_HAS_REFERENCES Handle = 0x803B002C + HCN_E_INVALID_INTERNAL_PORT Handle = 0x803B002D + HCN_E_NAMESPACE_ATTACH_FAILED Handle = 0x803B002E + HCN_E_ADDR_INVALID_OR_RESERVED Handle = 0x803B002F SDIAG_E_CANCELLED syscall.Errno = 0x803C0100 SDIAG_E_SCRIPT syscall.Errno = 0x803C0101 SDIAG_E_POWERSHELL syscall.Errno = 0x803C0102 @@ -6846,8 +6890,2579 @@ const ( UTC_E_INSUFFICIENT_SPACE_TO_START_TRACE Handle = 0x87C51059 UTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN Handle = 0x87C5105A UTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED Handle = 0x87C5105B + UTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED Handle = 0x87C5105C WINML_ERR_INVALID_DEVICE Handle = 0x88900001 WINML_ERR_INVALID_BINDING Handle = 0x88900002 WINML_ERR_VALUE_NOTFOUND Handle = 0x88900003 WINML_ERR_SIZE_MISMATCH Handle = 0x88900004 + STATUS_WAIT_0 NTStatus = 0x00000000 + STATUS_SUCCESS NTStatus = 0x00000000 + STATUS_WAIT_1 NTStatus = 0x00000001 + STATUS_WAIT_2 NTStatus = 0x00000002 + STATUS_WAIT_3 NTStatus = 0x00000003 + STATUS_WAIT_63 NTStatus = 0x0000003F + STATUS_ABANDONED NTStatus = 0x00000080 + STATUS_ABANDONED_WAIT_0 NTStatus = 0x00000080 + STATUS_ABANDONED_WAIT_63 NTStatus = 0x000000BF + STATUS_USER_APC NTStatus = 0x000000C0 + STATUS_ALREADY_COMPLETE NTStatus = 0x000000FF + STATUS_KERNEL_APC NTStatus = 0x00000100 + STATUS_ALERTED NTStatus = 0x00000101 + STATUS_TIMEOUT NTStatus = 0x00000102 + STATUS_PENDING NTStatus = 0x00000103 + STATUS_REPARSE NTStatus = 0x00000104 + STATUS_MORE_ENTRIES NTStatus = 0x00000105 + STATUS_NOT_ALL_ASSIGNED NTStatus = 0x00000106 + STATUS_SOME_NOT_MAPPED NTStatus = 0x00000107 + STATUS_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0x00000108 + STATUS_VOLUME_MOUNTED NTStatus = 0x00000109 + STATUS_RXACT_COMMITTED NTStatus = 0x0000010A + STATUS_NOTIFY_CLEANUP NTStatus = 0x0000010B + STATUS_NOTIFY_ENUM_DIR NTStatus = 0x0000010C + STATUS_NO_QUOTAS_FOR_ACCOUNT NTStatus = 0x0000010D + STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED NTStatus = 0x0000010E + STATUS_PAGE_FAULT_TRANSITION NTStatus = 0x00000110 + STATUS_PAGE_FAULT_DEMAND_ZERO NTStatus = 0x00000111 + STATUS_PAGE_FAULT_COPY_ON_WRITE NTStatus = 0x00000112 + STATUS_PAGE_FAULT_GUARD_PAGE NTStatus = 0x00000113 + STATUS_PAGE_FAULT_PAGING_FILE NTStatus = 0x00000114 + STATUS_CACHE_PAGE_LOCKED NTStatus = 0x00000115 + STATUS_CRASH_DUMP NTStatus = 0x00000116 + STATUS_BUFFER_ALL_ZEROS NTStatus = 0x00000117 + STATUS_REPARSE_OBJECT NTStatus = 0x00000118 + STATUS_RESOURCE_REQUIREMENTS_CHANGED NTStatus = 0x00000119 + STATUS_TRANSLATION_COMPLETE NTStatus = 0x00000120 + STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY NTStatus = 0x00000121 + STATUS_NOTHING_TO_TERMINATE NTStatus = 0x00000122 + STATUS_PROCESS_NOT_IN_JOB NTStatus = 0x00000123 + STATUS_PROCESS_IN_JOB NTStatus = 0x00000124 + STATUS_VOLSNAP_HIBERNATE_READY NTStatus = 0x00000125 + STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY NTStatus = 0x00000126 + STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED NTStatus = 0x00000127 + STATUS_INTERRUPT_STILL_CONNECTED NTStatus = 0x00000128 + STATUS_PROCESS_CLONED NTStatus = 0x00000129 + STATUS_FILE_LOCKED_WITH_ONLY_READERS NTStatus = 0x0000012A + STATUS_FILE_LOCKED_WITH_WRITERS NTStatus = 0x0000012B + STATUS_VALID_IMAGE_HASH NTStatus = 0x0000012C + STATUS_VALID_CATALOG_HASH NTStatus = 0x0000012D + STATUS_VALID_STRONG_CODE_HASH NTStatus = 0x0000012E + STATUS_GHOSTED NTStatus = 0x0000012F + STATUS_DATA_OVERWRITTEN NTStatus = 0x00000130 + STATUS_RESOURCEMANAGER_READ_ONLY NTStatus = 0x00000202 + STATUS_RING_PREVIOUSLY_EMPTY NTStatus = 0x00000210 + STATUS_RING_PREVIOUSLY_FULL NTStatus = 0x00000211 + STATUS_RING_PREVIOUSLY_ABOVE_QUOTA NTStatus = 0x00000212 + STATUS_RING_NEWLY_EMPTY NTStatus = 0x00000213 + STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT NTStatus = 0x00000214 + STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE NTStatus = 0x00000215 + STATUS_OPLOCK_HANDLE_CLOSED NTStatus = 0x00000216 + STATUS_WAIT_FOR_OPLOCK NTStatus = 0x00000367 + STATUS_REPARSE_GLOBAL NTStatus = 0x00000368 + STATUS_FLT_IO_COMPLETE NTStatus = 0x001C0001 + STATUS_OBJECT_NAME_EXISTS NTStatus = 0x40000000 + STATUS_THREAD_WAS_SUSPENDED NTStatus = 0x40000001 + STATUS_WORKING_SET_LIMIT_RANGE NTStatus = 0x40000002 + STATUS_IMAGE_NOT_AT_BASE NTStatus = 0x40000003 + STATUS_RXACT_STATE_CREATED NTStatus = 0x40000004 + STATUS_SEGMENT_NOTIFICATION NTStatus = 0x40000005 + STATUS_LOCAL_USER_SESSION_KEY NTStatus = 0x40000006 + STATUS_BAD_CURRENT_DIRECTORY NTStatus = 0x40000007 + STATUS_SERIAL_MORE_WRITES NTStatus = 0x40000008 + STATUS_REGISTRY_RECOVERED NTStatus = 0x40000009 + STATUS_FT_READ_RECOVERY_FROM_BACKUP NTStatus = 0x4000000A + STATUS_FT_WRITE_RECOVERY NTStatus = 0x4000000B + STATUS_SERIAL_COUNTER_TIMEOUT NTStatus = 0x4000000C + STATUS_NULL_LM_PASSWORD NTStatus = 0x4000000D + STATUS_IMAGE_MACHINE_TYPE_MISMATCH NTStatus = 0x4000000E + STATUS_RECEIVE_PARTIAL NTStatus = 0x4000000F + STATUS_RECEIVE_EXPEDITED NTStatus = 0x40000010 + STATUS_RECEIVE_PARTIAL_EXPEDITED NTStatus = 0x40000011 + STATUS_EVENT_DONE NTStatus = 0x40000012 + STATUS_EVENT_PENDING NTStatus = 0x40000013 + STATUS_CHECKING_FILE_SYSTEM NTStatus = 0x40000014 + STATUS_FATAL_APP_EXIT NTStatus = 0x40000015 + STATUS_PREDEFINED_HANDLE NTStatus = 0x40000016 + STATUS_WAS_UNLOCKED NTStatus = 0x40000017 + STATUS_SERVICE_NOTIFICATION NTStatus = 0x40000018 + STATUS_WAS_LOCKED NTStatus = 0x40000019 + STATUS_LOG_HARD_ERROR NTStatus = 0x4000001A + STATUS_ALREADY_WIN32 NTStatus = 0x4000001B + STATUS_WX86_UNSIMULATE NTStatus = 0x4000001C + STATUS_WX86_CONTINUE NTStatus = 0x4000001D + STATUS_WX86_SINGLE_STEP NTStatus = 0x4000001E + STATUS_WX86_BREAKPOINT NTStatus = 0x4000001F + STATUS_WX86_EXCEPTION_CONTINUE NTStatus = 0x40000020 + STATUS_WX86_EXCEPTION_LASTCHANCE NTStatus = 0x40000021 + STATUS_WX86_EXCEPTION_CHAIN NTStatus = 0x40000022 + STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE NTStatus = 0x40000023 + STATUS_NO_YIELD_PERFORMED NTStatus = 0x40000024 + STATUS_TIMER_RESUME_IGNORED NTStatus = 0x40000025 + STATUS_ARBITRATION_UNHANDLED NTStatus = 0x40000026 + STATUS_CARDBUS_NOT_SUPPORTED NTStatus = 0x40000027 + STATUS_WX86_CREATEWX86TIB NTStatus = 0x40000028 + STATUS_MP_PROCESSOR_MISMATCH NTStatus = 0x40000029 + STATUS_HIBERNATED NTStatus = 0x4000002A + STATUS_RESUME_HIBERNATION NTStatus = 0x4000002B + STATUS_FIRMWARE_UPDATED NTStatus = 0x4000002C + STATUS_DRIVERS_LEAKING_LOCKED_PAGES NTStatus = 0x4000002D + STATUS_MESSAGE_RETRIEVED NTStatus = 0x4000002E + STATUS_SYSTEM_POWERSTATE_TRANSITION NTStatus = 0x4000002F + STATUS_ALPC_CHECK_COMPLETION_LIST NTStatus = 0x40000030 + STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION NTStatus = 0x40000031 + STATUS_ACCESS_AUDIT_BY_POLICY NTStatus = 0x40000032 + STATUS_ABANDON_HIBERFILE NTStatus = 0x40000033 + STATUS_BIZRULES_NOT_ENABLED NTStatus = 0x40000034 + STATUS_FT_READ_FROM_COPY NTStatus = 0x40000035 + STATUS_IMAGE_AT_DIFFERENT_BASE NTStatus = 0x40000036 + STATUS_PATCH_DEFERRED NTStatus = 0x40000037 + STATUS_HEURISTIC_DAMAGE_POSSIBLE NTStatus = 0x40190001 + STATUS_GUARD_PAGE_VIOLATION NTStatus = 0x80000001 + STATUS_DATATYPE_MISALIGNMENT NTStatus = 0x80000002 + STATUS_BREAKPOINT NTStatus = 0x80000003 + STATUS_SINGLE_STEP NTStatus = 0x80000004 + STATUS_BUFFER_OVERFLOW NTStatus = 0x80000005 + STATUS_NO_MORE_FILES NTStatus = 0x80000006 + STATUS_WAKE_SYSTEM_DEBUGGER NTStatus = 0x80000007 + STATUS_HANDLES_CLOSED NTStatus = 0x8000000A + STATUS_NO_INHERITANCE NTStatus = 0x8000000B + STATUS_GUID_SUBSTITUTION_MADE NTStatus = 0x8000000C + STATUS_PARTIAL_COPY NTStatus = 0x8000000D + STATUS_DEVICE_PAPER_EMPTY NTStatus = 0x8000000E + STATUS_DEVICE_POWERED_OFF NTStatus = 0x8000000F + STATUS_DEVICE_OFF_LINE NTStatus = 0x80000010 + STATUS_DEVICE_BUSY NTStatus = 0x80000011 + STATUS_NO_MORE_EAS NTStatus = 0x80000012 + STATUS_INVALID_EA_NAME NTStatus = 0x80000013 + STATUS_EA_LIST_INCONSISTENT NTStatus = 0x80000014 + STATUS_INVALID_EA_FLAG NTStatus = 0x80000015 + STATUS_VERIFY_REQUIRED NTStatus = 0x80000016 + STATUS_EXTRANEOUS_INFORMATION NTStatus = 0x80000017 + STATUS_RXACT_COMMIT_NECESSARY NTStatus = 0x80000018 + STATUS_NO_MORE_ENTRIES NTStatus = 0x8000001A + STATUS_FILEMARK_DETECTED NTStatus = 0x8000001B + STATUS_MEDIA_CHANGED NTStatus = 0x8000001C + STATUS_BUS_RESET NTStatus = 0x8000001D + STATUS_END_OF_MEDIA NTStatus = 0x8000001E + STATUS_BEGINNING_OF_MEDIA NTStatus = 0x8000001F + STATUS_MEDIA_CHECK NTStatus = 0x80000020 + STATUS_SETMARK_DETECTED NTStatus = 0x80000021 + STATUS_NO_DATA_DETECTED NTStatus = 0x80000022 + STATUS_REDIRECTOR_HAS_OPEN_HANDLES NTStatus = 0x80000023 + STATUS_SERVER_HAS_OPEN_HANDLES NTStatus = 0x80000024 + STATUS_ALREADY_DISCONNECTED NTStatus = 0x80000025 + STATUS_LONGJUMP NTStatus = 0x80000026 + STATUS_CLEANER_CARTRIDGE_INSTALLED NTStatus = 0x80000027 + STATUS_PLUGPLAY_QUERY_VETOED NTStatus = 0x80000028 + STATUS_UNWIND_CONSOLIDATE NTStatus = 0x80000029 + STATUS_REGISTRY_HIVE_RECOVERED NTStatus = 0x8000002A + STATUS_DLL_MIGHT_BE_INSECURE NTStatus = 0x8000002B + STATUS_DLL_MIGHT_BE_INCOMPATIBLE NTStatus = 0x8000002C + STATUS_STOPPED_ON_SYMLINK NTStatus = 0x8000002D + STATUS_CANNOT_GRANT_REQUESTED_OPLOCK NTStatus = 0x8000002E + STATUS_NO_ACE_CONDITION NTStatus = 0x8000002F + STATUS_DEVICE_SUPPORT_IN_PROGRESS NTStatus = 0x80000030 + STATUS_DEVICE_POWER_CYCLE_REQUIRED NTStatus = 0x80000031 + STATUS_NO_WORK_DONE NTStatus = 0x80000032 + STATUS_CLUSTER_NODE_ALREADY_UP NTStatus = 0x80130001 + STATUS_CLUSTER_NODE_ALREADY_DOWN NTStatus = 0x80130002 + STATUS_CLUSTER_NETWORK_ALREADY_ONLINE NTStatus = 0x80130003 + STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE NTStatus = 0x80130004 + STATUS_CLUSTER_NODE_ALREADY_MEMBER NTStatus = 0x80130005 + STATUS_FLT_BUFFER_TOO_SMALL NTStatus = 0x801C0001 + STATUS_FVE_PARTIAL_METADATA NTStatus = 0x80210001 + STATUS_FVE_TRANSIENT_STATE NTStatus = 0x80210002 + STATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH NTStatus = 0x8000CF00 + STATUS_UNSUCCESSFUL NTStatus = 0xC0000001 + STATUS_NOT_IMPLEMENTED NTStatus = 0xC0000002 + STATUS_INVALID_INFO_CLASS NTStatus = 0xC0000003 + STATUS_INFO_LENGTH_MISMATCH NTStatus = 0xC0000004 + STATUS_ACCESS_VIOLATION NTStatus = 0xC0000005 + STATUS_IN_PAGE_ERROR NTStatus = 0xC0000006 + STATUS_PAGEFILE_QUOTA NTStatus = 0xC0000007 + STATUS_INVALID_HANDLE NTStatus = 0xC0000008 + STATUS_BAD_INITIAL_STACK NTStatus = 0xC0000009 + STATUS_BAD_INITIAL_PC NTStatus = 0xC000000A + STATUS_INVALID_CID NTStatus = 0xC000000B + STATUS_TIMER_NOT_CANCELED NTStatus = 0xC000000C + STATUS_INVALID_PARAMETER NTStatus = 0xC000000D + STATUS_NO_SUCH_DEVICE NTStatus = 0xC000000E + STATUS_NO_SUCH_FILE NTStatus = 0xC000000F + STATUS_INVALID_DEVICE_REQUEST NTStatus = 0xC0000010 + STATUS_END_OF_FILE NTStatus = 0xC0000011 + STATUS_WRONG_VOLUME NTStatus = 0xC0000012 + STATUS_NO_MEDIA_IN_DEVICE NTStatus = 0xC0000013 + STATUS_UNRECOGNIZED_MEDIA NTStatus = 0xC0000014 + STATUS_NONEXISTENT_SECTOR NTStatus = 0xC0000015 + STATUS_MORE_PROCESSING_REQUIRED NTStatus = 0xC0000016 + STATUS_NO_MEMORY NTStatus = 0xC0000017 + STATUS_CONFLICTING_ADDRESSES NTStatus = 0xC0000018 + STATUS_NOT_MAPPED_VIEW NTStatus = 0xC0000019 + STATUS_UNABLE_TO_FREE_VM NTStatus = 0xC000001A + STATUS_UNABLE_TO_DELETE_SECTION NTStatus = 0xC000001B + STATUS_INVALID_SYSTEM_SERVICE NTStatus = 0xC000001C + STATUS_ILLEGAL_INSTRUCTION NTStatus = 0xC000001D + STATUS_INVALID_LOCK_SEQUENCE NTStatus = 0xC000001E + STATUS_INVALID_VIEW_SIZE NTStatus = 0xC000001F + STATUS_INVALID_FILE_FOR_SECTION NTStatus = 0xC0000020 + STATUS_ALREADY_COMMITTED NTStatus = 0xC0000021 + STATUS_ACCESS_DENIED NTStatus = 0xC0000022 + STATUS_BUFFER_TOO_SMALL NTStatus = 0xC0000023 + STATUS_OBJECT_TYPE_MISMATCH NTStatus = 0xC0000024 + STATUS_NONCONTINUABLE_EXCEPTION NTStatus = 0xC0000025 + STATUS_INVALID_DISPOSITION NTStatus = 0xC0000026 + STATUS_UNWIND NTStatus = 0xC0000027 + STATUS_BAD_STACK NTStatus = 0xC0000028 + STATUS_INVALID_UNWIND_TARGET NTStatus = 0xC0000029 + STATUS_NOT_LOCKED NTStatus = 0xC000002A + STATUS_PARITY_ERROR NTStatus = 0xC000002B + STATUS_UNABLE_TO_DECOMMIT_VM NTStatus = 0xC000002C + STATUS_NOT_COMMITTED NTStatus = 0xC000002D + STATUS_INVALID_PORT_ATTRIBUTES NTStatus = 0xC000002E + STATUS_PORT_MESSAGE_TOO_LONG NTStatus = 0xC000002F + STATUS_INVALID_PARAMETER_MIX NTStatus = 0xC0000030 + STATUS_INVALID_QUOTA_LOWER NTStatus = 0xC0000031 + STATUS_DISK_CORRUPT_ERROR NTStatus = 0xC0000032 + STATUS_OBJECT_NAME_INVALID NTStatus = 0xC0000033 + STATUS_OBJECT_NAME_NOT_FOUND NTStatus = 0xC0000034 + STATUS_OBJECT_NAME_COLLISION NTStatus = 0xC0000035 + STATUS_PORT_DO_NOT_DISTURB NTStatus = 0xC0000036 + STATUS_PORT_DISCONNECTED NTStatus = 0xC0000037 + STATUS_DEVICE_ALREADY_ATTACHED NTStatus = 0xC0000038 + STATUS_OBJECT_PATH_INVALID NTStatus = 0xC0000039 + STATUS_OBJECT_PATH_NOT_FOUND NTStatus = 0xC000003A + STATUS_OBJECT_PATH_SYNTAX_BAD NTStatus = 0xC000003B + STATUS_DATA_OVERRUN NTStatus = 0xC000003C + STATUS_DATA_LATE_ERROR NTStatus = 0xC000003D + STATUS_DATA_ERROR NTStatus = 0xC000003E + STATUS_CRC_ERROR NTStatus = 0xC000003F + STATUS_SECTION_TOO_BIG NTStatus = 0xC0000040 + STATUS_PORT_CONNECTION_REFUSED NTStatus = 0xC0000041 + STATUS_INVALID_PORT_HANDLE NTStatus = 0xC0000042 + STATUS_SHARING_VIOLATION NTStatus = 0xC0000043 + STATUS_QUOTA_EXCEEDED NTStatus = 0xC0000044 + STATUS_INVALID_PAGE_PROTECTION NTStatus = 0xC0000045 + STATUS_MUTANT_NOT_OWNED NTStatus = 0xC0000046 + STATUS_SEMAPHORE_LIMIT_EXCEEDED NTStatus = 0xC0000047 + STATUS_PORT_ALREADY_SET NTStatus = 0xC0000048 + STATUS_SECTION_NOT_IMAGE NTStatus = 0xC0000049 + STATUS_SUSPEND_COUNT_EXCEEDED NTStatus = 0xC000004A + STATUS_THREAD_IS_TERMINATING NTStatus = 0xC000004B + STATUS_BAD_WORKING_SET_LIMIT NTStatus = 0xC000004C + STATUS_INCOMPATIBLE_FILE_MAP NTStatus = 0xC000004D + STATUS_SECTION_PROTECTION NTStatus = 0xC000004E + STATUS_EAS_NOT_SUPPORTED NTStatus = 0xC000004F + STATUS_EA_TOO_LARGE NTStatus = 0xC0000050 + STATUS_NONEXISTENT_EA_ENTRY NTStatus = 0xC0000051 + STATUS_NO_EAS_ON_FILE NTStatus = 0xC0000052 + STATUS_EA_CORRUPT_ERROR NTStatus = 0xC0000053 + STATUS_FILE_LOCK_CONFLICT NTStatus = 0xC0000054 + STATUS_LOCK_NOT_GRANTED NTStatus = 0xC0000055 + STATUS_DELETE_PENDING NTStatus = 0xC0000056 + STATUS_CTL_FILE_NOT_SUPPORTED NTStatus = 0xC0000057 + STATUS_UNKNOWN_REVISION NTStatus = 0xC0000058 + STATUS_REVISION_MISMATCH NTStatus = 0xC0000059 + STATUS_INVALID_OWNER NTStatus = 0xC000005A + STATUS_INVALID_PRIMARY_GROUP NTStatus = 0xC000005B + STATUS_NO_IMPERSONATION_TOKEN NTStatus = 0xC000005C + STATUS_CANT_DISABLE_MANDATORY NTStatus = 0xC000005D + STATUS_NO_LOGON_SERVERS NTStatus = 0xC000005E + STATUS_NO_SUCH_LOGON_SESSION NTStatus = 0xC000005F + STATUS_NO_SUCH_PRIVILEGE NTStatus = 0xC0000060 + STATUS_PRIVILEGE_NOT_HELD NTStatus = 0xC0000061 + STATUS_INVALID_ACCOUNT_NAME NTStatus = 0xC0000062 + STATUS_USER_EXISTS NTStatus = 0xC0000063 + STATUS_NO_SUCH_USER NTStatus = 0xC0000064 + STATUS_GROUP_EXISTS NTStatus = 0xC0000065 + STATUS_NO_SUCH_GROUP NTStatus = 0xC0000066 + STATUS_MEMBER_IN_GROUP NTStatus = 0xC0000067 + STATUS_MEMBER_NOT_IN_GROUP NTStatus = 0xC0000068 + STATUS_LAST_ADMIN NTStatus = 0xC0000069 + STATUS_WRONG_PASSWORD NTStatus = 0xC000006A + STATUS_ILL_FORMED_PASSWORD NTStatus = 0xC000006B + STATUS_PASSWORD_RESTRICTION NTStatus = 0xC000006C + STATUS_LOGON_FAILURE NTStatus = 0xC000006D + STATUS_ACCOUNT_RESTRICTION NTStatus = 0xC000006E + STATUS_INVALID_LOGON_HOURS NTStatus = 0xC000006F + STATUS_INVALID_WORKSTATION NTStatus = 0xC0000070 + STATUS_PASSWORD_EXPIRED NTStatus = 0xC0000071 + STATUS_ACCOUNT_DISABLED NTStatus = 0xC0000072 + STATUS_NONE_MAPPED NTStatus = 0xC0000073 + STATUS_TOO_MANY_LUIDS_REQUESTED NTStatus = 0xC0000074 + STATUS_LUIDS_EXHAUSTED NTStatus = 0xC0000075 + STATUS_INVALID_SUB_AUTHORITY NTStatus = 0xC0000076 + STATUS_INVALID_ACL NTStatus = 0xC0000077 + STATUS_INVALID_SID NTStatus = 0xC0000078 + STATUS_INVALID_SECURITY_DESCR NTStatus = 0xC0000079 + STATUS_PROCEDURE_NOT_FOUND NTStatus = 0xC000007A + STATUS_INVALID_IMAGE_FORMAT NTStatus = 0xC000007B + STATUS_NO_TOKEN NTStatus = 0xC000007C + STATUS_BAD_INHERITANCE_ACL NTStatus = 0xC000007D + STATUS_RANGE_NOT_LOCKED NTStatus = 0xC000007E + STATUS_DISK_FULL NTStatus = 0xC000007F + STATUS_SERVER_DISABLED NTStatus = 0xC0000080 + STATUS_SERVER_NOT_DISABLED NTStatus = 0xC0000081 + STATUS_TOO_MANY_GUIDS_REQUESTED NTStatus = 0xC0000082 + STATUS_GUIDS_EXHAUSTED NTStatus = 0xC0000083 + STATUS_INVALID_ID_AUTHORITY NTStatus = 0xC0000084 + STATUS_AGENTS_EXHAUSTED NTStatus = 0xC0000085 + STATUS_INVALID_VOLUME_LABEL NTStatus = 0xC0000086 + STATUS_SECTION_NOT_EXTENDED NTStatus = 0xC0000087 + STATUS_NOT_MAPPED_DATA NTStatus = 0xC0000088 + STATUS_RESOURCE_DATA_NOT_FOUND NTStatus = 0xC0000089 + STATUS_RESOURCE_TYPE_NOT_FOUND NTStatus = 0xC000008A + STATUS_RESOURCE_NAME_NOT_FOUND NTStatus = 0xC000008B + STATUS_ARRAY_BOUNDS_EXCEEDED NTStatus = 0xC000008C + STATUS_FLOAT_DENORMAL_OPERAND NTStatus = 0xC000008D + STATUS_FLOAT_DIVIDE_BY_ZERO NTStatus = 0xC000008E + STATUS_FLOAT_INEXACT_RESULT NTStatus = 0xC000008F + STATUS_FLOAT_INVALID_OPERATION NTStatus = 0xC0000090 + STATUS_FLOAT_OVERFLOW NTStatus = 0xC0000091 + STATUS_FLOAT_STACK_CHECK NTStatus = 0xC0000092 + STATUS_FLOAT_UNDERFLOW NTStatus = 0xC0000093 + STATUS_INTEGER_DIVIDE_BY_ZERO NTStatus = 0xC0000094 + STATUS_INTEGER_OVERFLOW NTStatus = 0xC0000095 + STATUS_PRIVILEGED_INSTRUCTION NTStatus = 0xC0000096 + STATUS_TOO_MANY_PAGING_FILES NTStatus = 0xC0000097 + STATUS_FILE_INVALID NTStatus = 0xC0000098 + STATUS_ALLOTTED_SPACE_EXCEEDED NTStatus = 0xC0000099 + STATUS_INSUFFICIENT_RESOURCES NTStatus = 0xC000009A + STATUS_DFS_EXIT_PATH_FOUND NTStatus = 0xC000009B + STATUS_DEVICE_DATA_ERROR NTStatus = 0xC000009C + STATUS_DEVICE_NOT_CONNECTED NTStatus = 0xC000009D + STATUS_DEVICE_POWER_FAILURE NTStatus = 0xC000009E + STATUS_FREE_VM_NOT_AT_BASE NTStatus = 0xC000009F + STATUS_MEMORY_NOT_ALLOCATED NTStatus = 0xC00000A0 + STATUS_WORKING_SET_QUOTA NTStatus = 0xC00000A1 + STATUS_MEDIA_WRITE_PROTECTED NTStatus = 0xC00000A2 + STATUS_DEVICE_NOT_READY NTStatus = 0xC00000A3 + STATUS_INVALID_GROUP_ATTRIBUTES NTStatus = 0xC00000A4 + STATUS_BAD_IMPERSONATION_LEVEL NTStatus = 0xC00000A5 + STATUS_CANT_OPEN_ANONYMOUS NTStatus = 0xC00000A6 + STATUS_BAD_VALIDATION_CLASS NTStatus = 0xC00000A7 + STATUS_BAD_TOKEN_TYPE NTStatus = 0xC00000A8 + STATUS_BAD_MASTER_BOOT_RECORD NTStatus = 0xC00000A9 + STATUS_INSTRUCTION_MISALIGNMENT NTStatus = 0xC00000AA + STATUS_INSTANCE_NOT_AVAILABLE NTStatus = 0xC00000AB + STATUS_PIPE_NOT_AVAILABLE NTStatus = 0xC00000AC + STATUS_INVALID_PIPE_STATE NTStatus = 0xC00000AD + STATUS_PIPE_BUSY NTStatus = 0xC00000AE + STATUS_ILLEGAL_FUNCTION NTStatus = 0xC00000AF + STATUS_PIPE_DISCONNECTED NTStatus = 0xC00000B0 + STATUS_PIPE_CLOSING NTStatus = 0xC00000B1 + STATUS_PIPE_CONNECTED NTStatus = 0xC00000B2 + STATUS_PIPE_LISTENING NTStatus = 0xC00000B3 + STATUS_INVALID_READ_MODE NTStatus = 0xC00000B4 + STATUS_IO_TIMEOUT NTStatus = 0xC00000B5 + STATUS_FILE_FORCED_CLOSED NTStatus = 0xC00000B6 + STATUS_PROFILING_NOT_STARTED NTStatus = 0xC00000B7 + STATUS_PROFILING_NOT_STOPPED NTStatus = 0xC00000B8 + STATUS_COULD_NOT_INTERPRET NTStatus = 0xC00000B9 + STATUS_FILE_IS_A_DIRECTORY NTStatus = 0xC00000BA + STATUS_NOT_SUPPORTED NTStatus = 0xC00000BB + STATUS_REMOTE_NOT_LISTENING NTStatus = 0xC00000BC + STATUS_DUPLICATE_NAME NTStatus = 0xC00000BD + STATUS_BAD_NETWORK_PATH NTStatus = 0xC00000BE + STATUS_NETWORK_BUSY NTStatus = 0xC00000BF + STATUS_DEVICE_DOES_NOT_EXIST NTStatus = 0xC00000C0 + STATUS_TOO_MANY_COMMANDS NTStatus = 0xC00000C1 + STATUS_ADAPTER_HARDWARE_ERROR NTStatus = 0xC00000C2 + STATUS_INVALID_NETWORK_RESPONSE NTStatus = 0xC00000C3 + STATUS_UNEXPECTED_NETWORK_ERROR NTStatus = 0xC00000C4 + STATUS_BAD_REMOTE_ADAPTER NTStatus = 0xC00000C5 + STATUS_PRINT_QUEUE_FULL NTStatus = 0xC00000C6 + STATUS_NO_SPOOL_SPACE NTStatus = 0xC00000C7 + STATUS_PRINT_CANCELLED NTStatus = 0xC00000C8 + STATUS_NETWORK_NAME_DELETED NTStatus = 0xC00000C9 + STATUS_NETWORK_ACCESS_DENIED NTStatus = 0xC00000CA + STATUS_BAD_DEVICE_TYPE NTStatus = 0xC00000CB + STATUS_BAD_NETWORK_NAME NTStatus = 0xC00000CC + STATUS_TOO_MANY_NAMES NTStatus = 0xC00000CD + STATUS_TOO_MANY_SESSIONS NTStatus = 0xC00000CE + STATUS_SHARING_PAUSED NTStatus = 0xC00000CF + STATUS_REQUEST_NOT_ACCEPTED NTStatus = 0xC00000D0 + STATUS_REDIRECTOR_PAUSED NTStatus = 0xC00000D1 + STATUS_NET_WRITE_FAULT NTStatus = 0xC00000D2 + STATUS_PROFILING_AT_LIMIT NTStatus = 0xC00000D3 + STATUS_NOT_SAME_DEVICE NTStatus = 0xC00000D4 + STATUS_FILE_RENAMED NTStatus = 0xC00000D5 + STATUS_VIRTUAL_CIRCUIT_CLOSED NTStatus = 0xC00000D6 + STATUS_NO_SECURITY_ON_OBJECT NTStatus = 0xC00000D7 + STATUS_CANT_WAIT NTStatus = 0xC00000D8 + STATUS_PIPE_EMPTY NTStatus = 0xC00000D9 + STATUS_CANT_ACCESS_DOMAIN_INFO NTStatus = 0xC00000DA + STATUS_CANT_TERMINATE_SELF NTStatus = 0xC00000DB + STATUS_INVALID_SERVER_STATE NTStatus = 0xC00000DC + STATUS_INVALID_DOMAIN_STATE NTStatus = 0xC00000DD + STATUS_INVALID_DOMAIN_ROLE NTStatus = 0xC00000DE + STATUS_NO_SUCH_DOMAIN NTStatus = 0xC00000DF + STATUS_DOMAIN_EXISTS NTStatus = 0xC00000E0 + STATUS_DOMAIN_LIMIT_EXCEEDED NTStatus = 0xC00000E1 + STATUS_OPLOCK_NOT_GRANTED NTStatus = 0xC00000E2 + STATUS_INVALID_OPLOCK_PROTOCOL NTStatus = 0xC00000E3 + STATUS_INTERNAL_DB_CORRUPTION NTStatus = 0xC00000E4 + STATUS_INTERNAL_ERROR NTStatus = 0xC00000E5 + STATUS_GENERIC_NOT_MAPPED NTStatus = 0xC00000E6 + STATUS_BAD_DESCRIPTOR_FORMAT NTStatus = 0xC00000E7 + STATUS_INVALID_USER_BUFFER NTStatus = 0xC00000E8 + STATUS_UNEXPECTED_IO_ERROR NTStatus = 0xC00000E9 + STATUS_UNEXPECTED_MM_CREATE_ERR NTStatus = 0xC00000EA + STATUS_UNEXPECTED_MM_MAP_ERROR NTStatus = 0xC00000EB + STATUS_UNEXPECTED_MM_EXTEND_ERR NTStatus = 0xC00000EC + STATUS_NOT_LOGON_PROCESS NTStatus = 0xC00000ED + STATUS_LOGON_SESSION_EXISTS NTStatus = 0xC00000EE + STATUS_INVALID_PARAMETER_1 NTStatus = 0xC00000EF + STATUS_INVALID_PARAMETER_2 NTStatus = 0xC00000F0 + STATUS_INVALID_PARAMETER_3 NTStatus = 0xC00000F1 + STATUS_INVALID_PARAMETER_4 NTStatus = 0xC00000F2 + STATUS_INVALID_PARAMETER_5 NTStatus = 0xC00000F3 + STATUS_INVALID_PARAMETER_6 NTStatus = 0xC00000F4 + STATUS_INVALID_PARAMETER_7 NTStatus = 0xC00000F5 + STATUS_INVALID_PARAMETER_8 NTStatus = 0xC00000F6 + STATUS_INVALID_PARAMETER_9 NTStatus = 0xC00000F7 + STATUS_INVALID_PARAMETER_10 NTStatus = 0xC00000F8 + STATUS_INVALID_PARAMETER_11 NTStatus = 0xC00000F9 + STATUS_INVALID_PARAMETER_12 NTStatus = 0xC00000FA + STATUS_REDIRECTOR_NOT_STARTED NTStatus = 0xC00000FB + STATUS_REDIRECTOR_STARTED NTStatus = 0xC00000FC + STATUS_STACK_OVERFLOW NTStatus = 0xC00000FD + STATUS_NO_SUCH_PACKAGE NTStatus = 0xC00000FE + STATUS_BAD_FUNCTION_TABLE NTStatus = 0xC00000FF + STATUS_VARIABLE_NOT_FOUND NTStatus = 0xC0000100 + STATUS_DIRECTORY_NOT_EMPTY NTStatus = 0xC0000101 + STATUS_FILE_CORRUPT_ERROR NTStatus = 0xC0000102 + STATUS_NOT_A_DIRECTORY NTStatus = 0xC0000103 + STATUS_BAD_LOGON_SESSION_STATE NTStatus = 0xC0000104 + STATUS_LOGON_SESSION_COLLISION NTStatus = 0xC0000105 + STATUS_NAME_TOO_LONG NTStatus = 0xC0000106 + STATUS_FILES_OPEN NTStatus = 0xC0000107 + STATUS_CONNECTION_IN_USE NTStatus = 0xC0000108 + STATUS_MESSAGE_NOT_FOUND NTStatus = 0xC0000109 + STATUS_PROCESS_IS_TERMINATING NTStatus = 0xC000010A + STATUS_INVALID_LOGON_TYPE NTStatus = 0xC000010B + STATUS_NO_GUID_TRANSLATION NTStatus = 0xC000010C + STATUS_CANNOT_IMPERSONATE NTStatus = 0xC000010D + STATUS_IMAGE_ALREADY_LOADED NTStatus = 0xC000010E + STATUS_ABIOS_NOT_PRESENT NTStatus = 0xC000010F + STATUS_ABIOS_LID_NOT_EXIST NTStatus = 0xC0000110 + STATUS_ABIOS_LID_ALREADY_OWNED NTStatus = 0xC0000111 + STATUS_ABIOS_NOT_LID_OWNER NTStatus = 0xC0000112 + STATUS_ABIOS_INVALID_COMMAND NTStatus = 0xC0000113 + STATUS_ABIOS_INVALID_LID NTStatus = 0xC0000114 + STATUS_ABIOS_SELECTOR_NOT_AVAILABLE NTStatus = 0xC0000115 + STATUS_ABIOS_INVALID_SELECTOR NTStatus = 0xC0000116 + STATUS_NO_LDT NTStatus = 0xC0000117 + STATUS_INVALID_LDT_SIZE NTStatus = 0xC0000118 + STATUS_INVALID_LDT_OFFSET NTStatus = 0xC0000119 + STATUS_INVALID_LDT_DESCRIPTOR NTStatus = 0xC000011A + STATUS_INVALID_IMAGE_NE_FORMAT NTStatus = 0xC000011B + STATUS_RXACT_INVALID_STATE NTStatus = 0xC000011C + STATUS_RXACT_COMMIT_FAILURE NTStatus = 0xC000011D + STATUS_MAPPED_FILE_SIZE_ZERO NTStatus = 0xC000011E + STATUS_TOO_MANY_OPENED_FILES NTStatus = 0xC000011F + STATUS_CANCELLED NTStatus = 0xC0000120 + STATUS_CANNOT_DELETE NTStatus = 0xC0000121 + STATUS_INVALID_COMPUTER_NAME NTStatus = 0xC0000122 + STATUS_FILE_DELETED NTStatus = 0xC0000123 + STATUS_SPECIAL_ACCOUNT NTStatus = 0xC0000124 + STATUS_SPECIAL_GROUP NTStatus = 0xC0000125 + STATUS_SPECIAL_USER NTStatus = 0xC0000126 + STATUS_MEMBERS_PRIMARY_GROUP NTStatus = 0xC0000127 + STATUS_FILE_CLOSED NTStatus = 0xC0000128 + STATUS_TOO_MANY_THREADS NTStatus = 0xC0000129 + STATUS_THREAD_NOT_IN_PROCESS NTStatus = 0xC000012A + STATUS_TOKEN_ALREADY_IN_USE NTStatus = 0xC000012B + STATUS_PAGEFILE_QUOTA_EXCEEDED NTStatus = 0xC000012C + STATUS_COMMITMENT_LIMIT NTStatus = 0xC000012D + STATUS_INVALID_IMAGE_LE_FORMAT NTStatus = 0xC000012E + STATUS_INVALID_IMAGE_NOT_MZ NTStatus = 0xC000012F + STATUS_INVALID_IMAGE_PROTECT NTStatus = 0xC0000130 + STATUS_INVALID_IMAGE_WIN_16 NTStatus = 0xC0000131 + STATUS_LOGON_SERVER_CONFLICT NTStatus = 0xC0000132 + STATUS_TIME_DIFFERENCE_AT_DC NTStatus = 0xC0000133 + STATUS_SYNCHRONIZATION_REQUIRED NTStatus = 0xC0000134 + STATUS_DLL_NOT_FOUND NTStatus = 0xC0000135 + STATUS_OPEN_FAILED NTStatus = 0xC0000136 + STATUS_IO_PRIVILEGE_FAILED NTStatus = 0xC0000137 + STATUS_ORDINAL_NOT_FOUND NTStatus = 0xC0000138 + STATUS_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000139 + STATUS_CONTROL_C_EXIT NTStatus = 0xC000013A + STATUS_LOCAL_DISCONNECT NTStatus = 0xC000013B + STATUS_REMOTE_DISCONNECT NTStatus = 0xC000013C + STATUS_REMOTE_RESOURCES NTStatus = 0xC000013D + STATUS_LINK_FAILED NTStatus = 0xC000013E + STATUS_LINK_TIMEOUT NTStatus = 0xC000013F + STATUS_INVALID_CONNECTION NTStatus = 0xC0000140 + STATUS_INVALID_ADDRESS NTStatus = 0xC0000141 + STATUS_DLL_INIT_FAILED NTStatus = 0xC0000142 + STATUS_MISSING_SYSTEMFILE NTStatus = 0xC0000143 + STATUS_UNHANDLED_EXCEPTION NTStatus = 0xC0000144 + STATUS_APP_INIT_FAILURE NTStatus = 0xC0000145 + STATUS_PAGEFILE_CREATE_FAILED NTStatus = 0xC0000146 + STATUS_NO_PAGEFILE NTStatus = 0xC0000147 + STATUS_INVALID_LEVEL NTStatus = 0xC0000148 + STATUS_WRONG_PASSWORD_CORE NTStatus = 0xC0000149 + STATUS_ILLEGAL_FLOAT_CONTEXT NTStatus = 0xC000014A + STATUS_PIPE_BROKEN NTStatus = 0xC000014B + STATUS_REGISTRY_CORRUPT NTStatus = 0xC000014C + STATUS_REGISTRY_IO_FAILED NTStatus = 0xC000014D + STATUS_NO_EVENT_PAIR NTStatus = 0xC000014E + STATUS_UNRECOGNIZED_VOLUME NTStatus = 0xC000014F + STATUS_SERIAL_NO_DEVICE_INITED NTStatus = 0xC0000150 + STATUS_NO_SUCH_ALIAS NTStatus = 0xC0000151 + STATUS_MEMBER_NOT_IN_ALIAS NTStatus = 0xC0000152 + STATUS_MEMBER_IN_ALIAS NTStatus = 0xC0000153 + STATUS_ALIAS_EXISTS NTStatus = 0xC0000154 + STATUS_LOGON_NOT_GRANTED NTStatus = 0xC0000155 + STATUS_TOO_MANY_SECRETS NTStatus = 0xC0000156 + STATUS_SECRET_TOO_LONG NTStatus = 0xC0000157 + STATUS_INTERNAL_DB_ERROR NTStatus = 0xC0000158 + STATUS_FULLSCREEN_MODE NTStatus = 0xC0000159 + STATUS_TOO_MANY_CONTEXT_IDS NTStatus = 0xC000015A + STATUS_LOGON_TYPE_NOT_GRANTED NTStatus = 0xC000015B + STATUS_NOT_REGISTRY_FILE NTStatus = 0xC000015C + STATUS_NT_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000015D + STATUS_DOMAIN_CTRLR_CONFIG_ERROR NTStatus = 0xC000015E + STATUS_FT_MISSING_MEMBER NTStatus = 0xC000015F + STATUS_ILL_FORMED_SERVICE_ENTRY NTStatus = 0xC0000160 + STATUS_ILLEGAL_CHARACTER NTStatus = 0xC0000161 + STATUS_UNMAPPABLE_CHARACTER NTStatus = 0xC0000162 + STATUS_UNDEFINED_CHARACTER NTStatus = 0xC0000163 + STATUS_FLOPPY_VOLUME NTStatus = 0xC0000164 + STATUS_FLOPPY_ID_MARK_NOT_FOUND NTStatus = 0xC0000165 + STATUS_FLOPPY_WRONG_CYLINDER NTStatus = 0xC0000166 + STATUS_FLOPPY_UNKNOWN_ERROR NTStatus = 0xC0000167 + STATUS_FLOPPY_BAD_REGISTERS NTStatus = 0xC0000168 + STATUS_DISK_RECALIBRATE_FAILED NTStatus = 0xC0000169 + STATUS_DISK_OPERATION_FAILED NTStatus = 0xC000016A + STATUS_DISK_RESET_FAILED NTStatus = 0xC000016B + STATUS_SHARED_IRQ_BUSY NTStatus = 0xC000016C + STATUS_FT_ORPHANING NTStatus = 0xC000016D + STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT NTStatus = 0xC000016E + STATUS_PARTITION_FAILURE NTStatus = 0xC0000172 + STATUS_INVALID_BLOCK_LENGTH NTStatus = 0xC0000173 + STATUS_DEVICE_NOT_PARTITIONED NTStatus = 0xC0000174 + STATUS_UNABLE_TO_LOCK_MEDIA NTStatus = 0xC0000175 + STATUS_UNABLE_TO_UNLOAD_MEDIA NTStatus = 0xC0000176 + STATUS_EOM_OVERFLOW NTStatus = 0xC0000177 + STATUS_NO_MEDIA NTStatus = 0xC0000178 + STATUS_NO_SUCH_MEMBER NTStatus = 0xC000017A + STATUS_INVALID_MEMBER NTStatus = 0xC000017B + STATUS_KEY_DELETED NTStatus = 0xC000017C + STATUS_NO_LOG_SPACE NTStatus = 0xC000017D + STATUS_TOO_MANY_SIDS NTStatus = 0xC000017E + STATUS_LM_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000017F + STATUS_KEY_HAS_CHILDREN NTStatus = 0xC0000180 + STATUS_CHILD_MUST_BE_VOLATILE NTStatus = 0xC0000181 + STATUS_DEVICE_CONFIGURATION_ERROR NTStatus = 0xC0000182 + STATUS_DRIVER_INTERNAL_ERROR NTStatus = 0xC0000183 + STATUS_INVALID_DEVICE_STATE NTStatus = 0xC0000184 + STATUS_IO_DEVICE_ERROR NTStatus = 0xC0000185 + STATUS_DEVICE_PROTOCOL_ERROR NTStatus = 0xC0000186 + STATUS_BACKUP_CONTROLLER NTStatus = 0xC0000187 + STATUS_LOG_FILE_FULL NTStatus = 0xC0000188 + STATUS_TOO_LATE NTStatus = 0xC0000189 + STATUS_NO_TRUST_LSA_SECRET NTStatus = 0xC000018A + STATUS_NO_TRUST_SAM_ACCOUNT NTStatus = 0xC000018B + STATUS_TRUSTED_DOMAIN_FAILURE NTStatus = 0xC000018C + STATUS_TRUSTED_RELATIONSHIP_FAILURE NTStatus = 0xC000018D + STATUS_EVENTLOG_FILE_CORRUPT NTStatus = 0xC000018E + STATUS_EVENTLOG_CANT_START NTStatus = 0xC000018F + STATUS_TRUST_FAILURE NTStatus = 0xC0000190 + STATUS_MUTANT_LIMIT_EXCEEDED NTStatus = 0xC0000191 + STATUS_NETLOGON_NOT_STARTED NTStatus = 0xC0000192 + STATUS_ACCOUNT_EXPIRED NTStatus = 0xC0000193 + STATUS_POSSIBLE_DEADLOCK NTStatus = 0xC0000194 + STATUS_NETWORK_CREDENTIAL_CONFLICT NTStatus = 0xC0000195 + STATUS_REMOTE_SESSION_LIMIT NTStatus = 0xC0000196 + STATUS_EVENTLOG_FILE_CHANGED NTStatus = 0xC0000197 + STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT NTStatus = 0xC0000198 + STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT NTStatus = 0xC0000199 + STATUS_NOLOGON_SERVER_TRUST_ACCOUNT NTStatus = 0xC000019A + STATUS_DOMAIN_TRUST_INCONSISTENT NTStatus = 0xC000019B + STATUS_FS_DRIVER_REQUIRED NTStatus = 0xC000019C + STATUS_IMAGE_ALREADY_LOADED_AS_DLL NTStatus = 0xC000019D + STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING NTStatus = 0xC000019E + STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME NTStatus = 0xC000019F + STATUS_SECURITY_STREAM_IS_INCONSISTENT NTStatus = 0xC00001A0 + STATUS_INVALID_LOCK_RANGE NTStatus = 0xC00001A1 + STATUS_INVALID_ACE_CONDITION NTStatus = 0xC00001A2 + STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT NTStatus = 0xC00001A3 + STATUS_NOTIFICATION_GUID_ALREADY_DEFINED NTStatus = 0xC00001A4 + STATUS_INVALID_EXCEPTION_HANDLER NTStatus = 0xC00001A5 + STATUS_DUPLICATE_PRIVILEGES NTStatus = 0xC00001A6 + STATUS_NOT_ALLOWED_ON_SYSTEM_FILE NTStatus = 0xC00001A7 + STATUS_REPAIR_NEEDED NTStatus = 0xC00001A8 + STATUS_QUOTA_NOT_ENABLED NTStatus = 0xC00001A9 + STATUS_NO_APPLICATION_PACKAGE NTStatus = 0xC00001AA + STATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS NTStatus = 0xC00001AB + STATUS_NOT_SAME_OBJECT NTStatus = 0xC00001AC + STATUS_FATAL_MEMORY_EXHAUSTION NTStatus = 0xC00001AD + STATUS_ERROR_PROCESS_NOT_IN_JOB NTStatus = 0xC00001AE + STATUS_CPU_SET_INVALID NTStatus = 0xC00001AF + STATUS_IO_DEVICE_INVALID_DATA NTStatus = 0xC00001B0 + STATUS_IO_UNALIGNED_WRITE NTStatus = 0xC00001B1 + STATUS_NETWORK_OPEN_RESTRICTION NTStatus = 0xC0000201 + STATUS_NO_USER_SESSION_KEY NTStatus = 0xC0000202 + STATUS_USER_SESSION_DELETED NTStatus = 0xC0000203 + STATUS_RESOURCE_LANG_NOT_FOUND NTStatus = 0xC0000204 + STATUS_INSUFF_SERVER_RESOURCES NTStatus = 0xC0000205 + STATUS_INVALID_BUFFER_SIZE NTStatus = 0xC0000206 + STATUS_INVALID_ADDRESS_COMPONENT NTStatus = 0xC0000207 + STATUS_INVALID_ADDRESS_WILDCARD NTStatus = 0xC0000208 + STATUS_TOO_MANY_ADDRESSES NTStatus = 0xC0000209 + STATUS_ADDRESS_ALREADY_EXISTS NTStatus = 0xC000020A + STATUS_ADDRESS_CLOSED NTStatus = 0xC000020B + STATUS_CONNECTION_DISCONNECTED NTStatus = 0xC000020C + STATUS_CONNECTION_RESET NTStatus = 0xC000020D + STATUS_TOO_MANY_NODES NTStatus = 0xC000020E + STATUS_TRANSACTION_ABORTED NTStatus = 0xC000020F + STATUS_TRANSACTION_TIMED_OUT NTStatus = 0xC0000210 + STATUS_TRANSACTION_NO_RELEASE NTStatus = 0xC0000211 + STATUS_TRANSACTION_NO_MATCH NTStatus = 0xC0000212 + STATUS_TRANSACTION_RESPONDED NTStatus = 0xC0000213 + STATUS_TRANSACTION_INVALID_ID NTStatus = 0xC0000214 + STATUS_TRANSACTION_INVALID_TYPE NTStatus = 0xC0000215 + STATUS_NOT_SERVER_SESSION NTStatus = 0xC0000216 + STATUS_NOT_CLIENT_SESSION NTStatus = 0xC0000217 + STATUS_CANNOT_LOAD_REGISTRY_FILE NTStatus = 0xC0000218 + STATUS_DEBUG_ATTACH_FAILED NTStatus = 0xC0000219 + STATUS_SYSTEM_PROCESS_TERMINATED NTStatus = 0xC000021A + STATUS_DATA_NOT_ACCEPTED NTStatus = 0xC000021B + STATUS_NO_BROWSER_SERVERS_FOUND NTStatus = 0xC000021C + STATUS_VDM_HARD_ERROR NTStatus = 0xC000021D + STATUS_DRIVER_CANCEL_TIMEOUT NTStatus = 0xC000021E + STATUS_REPLY_MESSAGE_MISMATCH NTStatus = 0xC000021F + STATUS_MAPPED_ALIGNMENT NTStatus = 0xC0000220 + STATUS_IMAGE_CHECKSUM_MISMATCH NTStatus = 0xC0000221 + STATUS_LOST_WRITEBEHIND_DATA NTStatus = 0xC0000222 + STATUS_CLIENT_SERVER_PARAMETERS_INVALID NTStatus = 0xC0000223 + STATUS_PASSWORD_MUST_CHANGE NTStatus = 0xC0000224 + STATUS_NOT_FOUND NTStatus = 0xC0000225 + STATUS_NOT_TINY_STREAM NTStatus = 0xC0000226 + STATUS_RECOVERY_FAILURE NTStatus = 0xC0000227 + STATUS_STACK_OVERFLOW_READ NTStatus = 0xC0000228 + STATUS_FAIL_CHECK NTStatus = 0xC0000229 + STATUS_DUPLICATE_OBJECTID NTStatus = 0xC000022A + STATUS_OBJECTID_EXISTS NTStatus = 0xC000022B + STATUS_CONVERT_TO_LARGE NTStatus = 0xC000022C + STATUS_RETRY NTStatus = 0xC000022D + STATUS_FOUND_OUT_OF_SCOPE NTStatus = 0xC000022E + STATUS_ALLOCATE_BUCKET NTStatus = 0xC000022F + STATUS_PROPSET_NOT_FOUND NTStatus = 0xC0000230 + STATUS_MARSHALL_OVERFLOW NTStatus = 0xC0000231 + STATUS_INVALID_VARIANT NTStatus = 0xC0000232 + STATUS_DOMAIN_CONTROLLER_NOT_FOUND NTStatus = 0xC0000233 + STATUS_ACCOUNT_LOCKED_OUT NTStatus = 0xC0000234 + STATUS_HANDLE_NOT_CLOSABLE NTStatus = 0xC0000235 + STATUS_CONNECTION_REFUSED NTStatus = 0xC0000236 + STATUS_GRACEFUL_DISCONNECT NTStatus = 0xC0000237 + STATUS_ADDRESS_ALREADY_ASSOCIATED NTStatus = 0xC0000238 + STATUS_ADDRESS_NOT_ASSOCIATED NTStatus = 0xC0000239 + STATUS_CONNECTION_INVALID NTStatus = 0xC000023A + STATUS_CONNECTION_ACTIVE NTStatus = 0xC000023B + STATUS_NETWORK_UNREACHABLE NTStatus = 0xC000023C + STATUS_HOST_UNREACHABLE NTStatus = 0xC000023D + STATUS_PROTOCOL_UNREACHABLE NTStatus = 0xC000023E + STATUS_PORT_UNREACHABLE NTStatus = 0xC000023F + STATUS_REQUEST_ABORTED NTStatus = 0xC0000240 + STATUS_CONNECTION_ABORTED NTStatus = 0xC0000241 + STATUS_BAD_COMPRESSION_BUFFER NTStatus = 0xC0000242 + STATUS_USER_MAPPED_FILE NTStatus = 0xC0000243 + STATUS_AUDIT_FAILED NTStatus = 0xC0000244 + STATUS_TIMER_RESOLUTION_NOT_SET NTStatus = 0xC0000245 + STATUS_CONNECTION_COUNT_LIMIT NTStatus = 0xC0000246 + STATUS_LOGIN_TIME_RESTRICTION NTStatus = 0xC0000247 + STATUS_LOGIN_WKSTA_RESTRICTION NTStatus = 0xC0000248 + STATUS_IMAGE_MP_UP_MISMATCH NTStatus = 0xC0000249 + STATUS_INSUFFICIENT_LOGON_INFO NTStatus = 0xC0000250 + STATUS_BAD_DLL_ENTRYPOINT NTStatus = 0xC0000251 + STATUS_BAD_SERVICE_ENTRYPOINT NTStatus = 0xC0000252 + STATUS_LPC_REPLY_LOST NTStatus = 0xC0000253 + STATUS_IP_ADDRESS_CONFLICT1 NTStatus = 0xC0000254 + STATUS_IP_ADDRESS_CONFLICT2 NTStatus = 0xC0000255 + STATUS_REGISTRY_QUOTA_LIMIT NTStatus = 0xC0000256 + STATUS_PATH_NOT_COVERED NTStatus = 0xC0000257 + STATUS_NO_CALLBACK_ACTIVE NTStatus = 0xC0000258 + STATUS_LICENSE_QUOTA_EXCEEDED NTStatus = 0xC0000259 + STATUS_PWD_TOO_SHORT NTStatus = 0xC000025A + STATUS_PWD_TOO_RECENT NTStatus = 0xC000025B + STATUS_PWD_HISTORY_CONFLICT NTStatus = 0xC000025C + STATUS_PLUGPLAY_NO_DEVICE NTStatus = 0xC000025E + STATUS_UNSUPPORTED_COMPRESSION NTStatus = 0xC000025F + STATUS_INVALID_HW_PROFILE NTStatus = 0xC0000260 + STATUS_INVALID_PLUGPLAY_DEVICE_PATH NTStatus = 0xC0000261 + STATUS_DRIVER_ORDINAL_NOT_FOUND NTStatus = 0xC0000262 + STATUS_DRIVER_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000263 + STATUS_RESOURCE_NOT_OWNED NTStatus = 0xC0000264 + STATUS_TOO_MANY_LINKS NTStatus = 0xC0000265 + STATUS_QUOTA_LIST_INCONSISTENT NTStatus = 0xC0000266 + STATUS_FILE_IS_OFFLINE NTStatus = 0xC0000267 + STATUS_EVALUATION_EXPIRATION NTStatus = 0xC0000268 + STATUS_ILLEGAL_DLL_RELOCATION NTStatus = 0xC0000269 + STATUS_LICENSE_VIOLATION NTStatus = 0xC000026A + STATUS_DLL_INIT_FAILED_LOGOFF NTStatus = 0xC000026B + STATUS_DRIVER_UNABLE_TO_LOAD NTStatus = 0xC000026C + STATUS_DFS_UNAVAILABLE NTStatus = 0xC000026D + STATUS_VOLUME_DISMOUNTED NTStatus = 0xC000026E + STATUS_WX86_INTERNAL_ERROR NTStatus = 0xC000026F + STATUS_WX86_FLOAT_STACK_CHECK NTStatus = 0xC0000270 + STATUS_VALIDATE_CONTINUE NTStatus = 0xC0000271 + STATUS_NO_MATCH NTStatus = 0xC0000272 + STATUS_NO_MORE_MATCHES NTStatus = 0xC0000273 + STATUS_NOT_A_REPARSE_POINT NTStatus = 0xC0000275 + STATUS_IO_REPARSE_TAG_INVALID NTStatus = 0xC0000276 + STATUS_IO_REPARSE_TAG_MISMATCH NTStatus = 0xC0000277 + STATUS_IO_REPARSE_DATA_INVALID NTStatus = 0xC0000278 + STATUS_IO_REPARSE_TAG_NOT_HANDLED NTStatus = 0xC0000279 + STATUS_PWD_TOO_LONG NTStatus = 0xC000027A + STATUS_STOWED_EXCEPTION NTStatus = 0xC000027B + STATUS_CONTEXT_STOWED_EXCEPTION NTStatus = 0xC000027C + STATUS_REPARSE_POINT_NOT_RESOLVED NTStatus = 0xC0000280 + STATUS_DIRECTORY_IS_A_REPARSE_POINT NTStatus = 0xC0000281 + STATUS_RANGE_LIST_CONFLICT NTStatus = 0xC0000282 + STATUS_SOURCE_ELEMENT_EMPTY NTStatus = 0xC0000283 + STATUS_DESTINATION_ELEMENT_FULL NTStatus = 0xC0000284 + STATUS_ILLEGAL_ELEMENT_ADDRESS NTStatus = 0xC0000285 + STATUS_MAGAZINE_NOT_PRESENT NTStatus = 0xC0000286 + STATUS_REINITIALIZATION_NEEDED NTStatus = 0xC0000287 + STATUS_DEVICE_REQUIRES_CLEANING NTStatus = 0x80000288 + STATUS_DEVICE_DOOR_OPEN NTStatus = 0x80000289 + STATUS_ENCRYPTION_FAILED NTStatus = 0xC000028A + STATUS_DECRYPTION_FAILED NTStatus = 0xC000028B + STATUS_RANGE_NOT_FOUND NTStatus = 0xC000028C + STATUS_NO_RECOVERY_POLICY NTStatus = 0xC000028D + STATUS_NO_EFS NTStatus = 0xC000028E + STATUS_WRONG_EFS NTStatus = 0xC000028F + STATUS_NO_USER_KEYS NTStatus = 0xC0000290 + STATUS_FILE_NOT_ENCRYPTED NTStatus = 0xC0000291 + STATUS_NOT_EXPORT_FORMAT NTStatus = 0xC0000292 + STATUS_FILE_ENCRYPTED NTStatus = 0xC0000293 + STATUS_WAKE_SYSTEM NTStatus = 0x40000294 + STATUS_WMI_GUID_NOT_FOUND NTStatus = 0xC0000295 + STATUS_WMI_INSTANCE_NOT_FOUND NTStatus = 0xC0000296 + STATUS_WMI_ITEMID_NOT_FOUND NTStatus = 0xC0000297 + STATUS_WMI_TRY_AGAIN NTStatus = 0xC0000298 + STATUS_SHARED_POLICY NTStatus = 0xC0000299 + STATUS_POLICY_OBJECT_NOT_FOUND NTStatus = 0xC000029A + STATUS_POLICY_ONLY_IN_DS NTStatus = 0xC000029B + STATUS_VOLUME_NOT_UPGRADED NTStatus = 0xC000029C + STATUS_REMOTE_STORAGE_NOT_ACTIVE NTStatus = 0xC000029D + STATUS_REMOTE_STORAGE_MEDIA_ERROR NTStatus = 0xC000029E + STATUS_NO_TRACKING_SERVICE NTStatus = 0xC000029F + STATUS_SERVER_SID_MISMATCH NTStatus = 0xC00002A0 + STATUS_DS_NO_ATTRIBUTE_OR_VALUE NTStatus = 0xC00002A1 + STATUS_DS_INVALID_ATTRIBUTE_SYNTAX NTStatus = 0xC00002A2 + STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED NTStatus = 0xC00002A3 + STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS NTStatus = 0xC00002A4 + STATUS_DS_BUSY NTStatus = 0xC00002A5 + STATUS_DS_UNAVAILABLE NTStatus = 0xC00002A6 + STATUS_DS_NO_RIDS_ALLOCATED NTStatus = 0xC00002A7 + STATUS_DS_NO_MORE_RIDS NTStatus = 0xC00002A8 + STATUS_DS_INCORRECT_ROLE_OWNER NTStatus = 0xC00002A9 + STATUS_DS_RIDMGR_INIT_ERROR NTStatus = 0xC00002AA + STATUS_DS_OBJ_CLASS_VIOLATION NTStatus = 0xC00002AB + STATUS_DS_CANT_ON_NON_LEAF NTStatus = 0xC00002AC + STATUS_DS_CANT_ON_RDN NTStatus = 0xC00002AD + STATUS_DS_CANT_MOD_OBJ_CLASS NTStatus = 0xC00002AE + STATUS_DS_CROSS_DOM_MOVE_FAILED NTStatus = 0xC00002AF + STATUS_DS_GC_NOT_AVAILABLE NTStatus = 0xC00002B0 + STATUS_DIRECTORY_SERVICE_REQUIRED NTStatus = 0xC00002B1 + STATUS_REPARSE_ATTRIBUTE_CONFLICT NTStatus = 0xC00002B2 + STATUS_CANT_ENABLE_DENY_ONLY NTStatus = 0xC00002B3 + STATUS_FLOAT_MULTIPLE_FAULTS NTStatus = 0xC00002B4 + STATUS_FLOAT_MULTIPLE_TRAPS NTStatus = 0xC00002B5 + STATUS_DEVICE_REMOVED NTStatus = 0xC00002B6 + STATUS_JOURNAL_DELETE_IN_PROGRESS NTStatus = 0xC00002B7 + STATUS_JOURNAL_NOT_ACTIVE NTStatus = 0xC00002B8 + STATUS_NOINTERFACE NTStatus = 0xC00002B9 + STATUS_DS_RIDMGR_DISABLED NTStatus = 0xC00002BA + STATUS_DS_ADMIN_LIMIT_EXCEEDED NTStatus = 0xC00002C1 + STATUS_DRIVER_FAILED_SLEEP NTStatus = 0xC00002C2 + STATUS_MUTUAL_AUTHENTICATION_FAILED NTStatus = 0xC00002C3 + STATUS_CORRUPT_SYSTEM_FILE NTStatus = 0xC00002C4 + STATUS_DATATYPE_MISALIGNMENT_ERROR NTStatus = 0xC00002C5 + STATUS_WMI_READ_ONLY NTStatus = 0xC00002C6 + STATUS_WMI_SET_FAILURE NTStatus = 0xC00002C7 + STATUS_COMMITMENT_MINIMUM NTStatus = 0xC00002C8 + STATUS_REG_NAT_CONSUMPTION NTStatus = 0xC00002C9 + STATUS_TRANSPORT_FULL NTStatus = 0xC00002CA + STATUS_DS_SAM_INIT_FAILURE NTStatus = 0xC00002CB + STATUS_ONLY_IF_CONNECTED NTStatus = 0xC00002CC + STATUS_DS_SENSITIVE_GROUP_VIOLATION NTStatus = 0xC00002CD + STATUS_PNP_RESTART_ENUMERATION NTStatus = 0xC00002CE + STATUS_JOURNAL_ENTRY_DELETED NTStatus = 0xC00002CF + STATUS_DS_CANT_MOD_PRIMARYGROUPID NTStatus = 0xC00002D0 + STATUS_SYSTEM_IMAGE_BAD_SIGNATURE NTStatus = 0xC00002D1 + STATUS_PNP_REBOOT_REQUIRED NTStatus = 0xC00002D2 + STATUS_POWER_STATE_INVALID NTStatus = 0xC00002D3 + STATUS_DS_INVALID_GROUP_TYPE NTStatus = 0xC00002D4 + STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D5 + STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D6 + STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D7 + STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC00002D8 + STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D9 + STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER NTStatus = 0xC00002DA + STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER NTStatus = 0xC00002DB + STATUS_DS_HAVE_PRIMARY_MEMBERS NTStatus = 0xC00002DC + STATUS_WMI_NOT_SUPPORTED NTStatus = 0xC00002DD + STATUS_INSUFFICIENT_POWER NTStatus = 0xC00002DE + STATUS_SAM_NEED_BOOTKEY_PASSWORD NTStatus = 0xC00002DF + STATUS_SAM_NEED_BOOTKEY_FLOPPY NTStatus = 0xC00002E0 + STATUS_DS_CANT_START NTStatus = 0xC00002E1 + STATUS_DS_INIT_FAILURE NTStatus = 0xC00002E2 + STATUS_SAM_INIT_FAILURE NTStatus = 0xC00002E3 + STATUS_DS_GC_REQUIRED NTStatus = 0xC00002E4 + STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY NTStatus = 0xC00002E5 + STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS NTStatus = 0xC00002E6 + STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED NTStatus = 0xC00002E7 + STATUS_MULTIPLE_FAULT_VIOLATION NTStatus = 0xC00002E8 + STATUS_CURRENT_DOMAIN_NOT_ALLOWED NTStatus = 0xC00002E9 + STATUS_CANNOT_MAKE NTStatus = 0xC00002EA + STATUS_SYSTEM_SHUTDOWN NTStatus = 0xC00002EB + STATUS_DS_INIT_FAILURE_CONSOLE NTStatus = 0xC00002EC + STATUS_DS_SAM_INIT_FAILURE_CONSOLE NTStatus = 0xC00002ED + STATUS_UNFINISHED_CONTEXT_DELETED NTStatus = 0xC00002EE + STATUS_NO_TGT_REPLY NTStatus = 0xC00002EF + STATUS_OBJECTID_NOT_FOUND NTStatus = 0xC00002F0 + STATUS_NO_IP_ADDRESSES NTStatus = 0xC00002F1 + STATUS_WRONG_CREDENTIAL_HANDLE NTStatus = 0xC00002F2 + STATUS_CRYPTO_SYSTEM_INVALID NTStatus = 0xC00002F3 + STATUS_MAX_REFERRALS_EXCEEDED NTStatus = 0xC00002F4 + STATUS_MUST_BE_KDC NTStatus = 0xC00002F5 + STATUS_STRONG_CRYPTO_NOT_SUPPORTED NTStatus = 0xC00002F6 + STATUS_TOO_MANY_PRINCIPALS NTStatus = 0xC00002F7 + STATUS_NO_PA_DATA NTStatus = 0xC00002F8 + STATUS_PKINIT_NAME_MISMATCH NTStatus = 0xC00002F9 + STATUS_SMARTCARD_LOGON_REQUIRED NTStatus = 0xC00002FA + STATUS_KDC_INVALID_REQUEST NTStatus = 0xC00002FB + STATUS_KDC_UNABLE_TO_REFER NTStatus = 0xC00002FC + STATUS_KDC_UNKNOWN_ETYPE NTStatus = 0xC00002FD + STATUS_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FE + STATUS_SERVER_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FF + STATUS_NOT_SUPPORTED_ON_SBS NTStatus = 0xC0000300 + STATUS_WMI_GUID_DISCONNECTED NTStatus = 0xC0000301 + STATUS_WMI_ALREADY_DISABLED NTStatus = 0xC0000302 + STATUS_WMI_ALREADY_ENABLED NTStatus = 0xC0000303 + STATUS_MFT_TOO_FRAGMENTED NTStatus = 0xC0000304 + STATUS_COPY_PROTECTION_FAILURE NTStatus = 0xC0000305 + STATUS_CSS_AUTHENTICATION_FAILURE NTStatus = 0xC0000306 + STATUS_CSS_KEY_NOT_PRESENT NTStatus = 0xC0000307 + STATUS_CSS_KEY_NOT_ESTABLISHED NTStatus = 0xC0000308 + STATUS_CSS_SCRAMBLED_SECTOR NTStatus = 0xC0000309 + STATUS_CSS_REGION_MISMATCH NTStatus = 0xC000030A + STATUS_CSS_RESETS_EXHAUSTED NTStatus = 0xC000030B + STATUS_PASSWORD_CHANGE_REQUIRED NTStatus = 0xC000030C + STATUS_LOST_MODE_LOGON_RESTRICTION NTStatus = 0xC000030D + STATUS_PKINIT_FAILURE NTStatus = 0xC0000320 + STATUS_SMARTCARD_SUBSYSTEM_FAILURE NTStatus = 0xC0000321 + STATUS_NO_KERB_KEY NTStatus = 0xC0000322 + STATUS_HOST_DOWN NTStatus = 0xC0000350 + STATUS_UNSUPPORTED_PREAUTH NTStatus = 0xC0000351 + STATUS_EFS_ALG_BLOB_TOO_BIG NTStatus = 0xC0000352 + STATUS_PORT_NOT_SET NTStatus = 0xC0000353 + STATUS_DEBUGGER_INACTIVE NTStatus = 0xC0000354 + STATUS_DS_VERSION_CHECK_FAILURE NTStatus = 0xC0000355 + STATUS_AUDITING_DISABLED NTStatus = 0xC0000356 + STATUS_PRENT4_MACHINE_ACCOUNT NTStatus = 0xC0000357 + STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC0000358 + STATUS_INVALID_IMAGE_WIN_32 NTStatus = 0xC0000359 + STATUS_INVALID_IMAGE_WIN_64 NTStatus = 0xC000035A + STATUS_BAD_BINDINGS NTStatus = 0xC000035B + STATUS_NETWORK_SESSION_EXPIRED NTStatus = 0xC000035C + STATUS_APPHELP_BLOCK NTStatus = 0xC000035D + STATUS_ALL_SIDS_FILTERED NTStatus = 0xC000035E + STATUS_NOT_SAFE_MODE_DRIVER NTStatus = 0xC000035F + STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT NTStatus = 0xC0000361 + STATUS_ACCESS_DISABLED_BY_POLICY_PATH NTStatus = 0xC0000362 + STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER NTStatus = 0xC0000363 + STATUS_ACCESS_DISABLED_BY_POLICY_OTHER NTStatus = 0xC0000364 + STATUS_FAILED_DRIVER_ENTRY NTStatus = 0xC0000365 + STATUS_DEVICE_ENUMERATION_ERROR NTStatus = 0xC0000366 + STATUS_MOUNT_POINT_NOT_RESOLVED NTStatus = 0xC0000368 + STATUS_INVALID_DEVICE_OBJECT_PARAMETER NTStatus = 0xC0000369 + STATUS_MCA_OCCURED NTStatus = 0xC000036A + STATUS_DRIVER_BLOCKED_CRITICAL NTStatus = 0xC000036B + STATUS_DRIVER_BLOCKED NTStatus = 0xC000036C + STATUS_DRIVER_DATABASE_ERROR NTStatus = 0xC000036D + STATUS_SYSTEM_HIVE_TOO_LARGE NTStatus = 0xC000036E + STATUS_INVALID_IMPORT_OF_NON_DLL NTStatus = 0xC000036F + STATUS_DS_SHUTTING_DOWN NTStatus = 0x40000370 + STATUS_NO_SECRETS NTStatus = 0xC0000371 + STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY NTStatus = 0xC0000372 + STATUS_FAILED_STACK_SWITCH NTStatus = 0xC0000373 + STATUS_HEAP_CORRUPTION NTStatus = 0xC0000374 + STATUS_SMARTCARD_WRONG_PIN NTStatus = 0xC0000380 + STATUS_SMARTCARD_CARD_BLOCKED NTStatus = 0xC0000381 + STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED NTStatus = 0xC0000382 + STATUS_SMARTCARD_NO_CARD NTStatus = 0xC0000383 + STATUS_SMARTCARD_NO_KEY_CONTAINER NTStatus = 0xC0000384 + STATUS_SMARTCARD_NO_CERTIFICATE NTStatus = 0xC0000385 + STATUS_SMARTCARD_NO_KEYSET NTStatus = 0xC0000386 + STATUS_SMARTCARD_IO_ERROR NTStatus = 0xC0000387 + STATUS_DOWNGRADE_DETECTED NTStatus = 0xC0000388 + STATUS_SMARTCARD_CERT_REVOKED NTStatus = 0xC0000389 + STATUS_ISSUING_CA_UNTRUSTED NTStatus = 0xC000038A + STATUS_REVOCATION_OFFLINE_C NTStatus = 0xC000038B + STATUS_PKINIT_CLIENT_FAILURE NTStatus = 0xC000038C + STATUS_SMARTCARD_CERT_EXPIRED NTStatus = 0xC000038D + STATUS_DRIVER_FAILED_PRIOR_UNLOAD NTStatus = 0xC000038E + STATUS_SMARTCARD_SILENT_CONTEXT NTStatus = 0xC000038F + STATUS_PER_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000401 + STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000402 + STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000403 + STATUS_DS_NAME_NOT_UNIQUE NTStatus = 0xC0000404 + STATUS_DS_DUPLICATE_ID_FOUND NTStatus = 0xC0000405 + STATUS_DS_GROUP_CONVERSION_ERROR NTStatus = 0xC0000406 + STATUS_VOLSNAP_PREPARE_HIBERNATE NTStatus = 0xC0000407 + STATUS_USER2USER_REQUIRED NTStatus = 0xC0000408 + STATUS_STACK_BUFFER_OVERRUN NTStatus = 0xC0000409 + STATUS_NO_S4U_PROT_SUPPORT NTStatus = 0xC000040A + STATUS_CROSSREALM_DELEGATION_FAILURE NTStatus = 0xC000040B + STATUS_REVOCATION_OFFLINE_KDC NTStatus = 0xC000040C + STATUS_ISSUING_CA_UNTRUSTED_KDC NTStatus = 0xC000040D + STATUS_KDC_CERT_EXPIRED NTStatus = 0xC000040E + STATUS_KDC_CERT_REVOKED NTStatus = 0xC000040F + STATUS_PARAMETER_QUOTA_EXCEEDED NTStatus = 0xC0000410 + STATUS_HIBERNATION_FAILURE NTStatus = 0xC0000411 + STATUS_DELAY_LOAD_FAILED NTStatus = 0xC0000412 + STATUS_AUTHENTICATION_FIREWALL_FAILED NTStatus = 0xC0000413 + STATUS_VDM_DISALLOWED NTStatus = 0xC0000414 + STATUS_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC0000415 + STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE NTStatus = 0xC0000416 + STATUS_INVALID_CRUNTIME_PARAMETER NTStatus = 0xC0000417 + STATUS_NTLM_BLOCKED NTStatus = 0xC0000418 + STATUS_DS_SRC_SID_EXISTS_IN_FOREST NTStatus = 0xC0000419 + STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041A + STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041B + STATUS_INVALID_USER_PRINCIPAL_NAME NTStatus = 0xC000041C + STATUS_FATAL_USER_CALLBACK_EXCEPTION NTStatus = 0xC000041D + STATUS_ASSERTION_FAILURE NTStatus = 0xC0000420 + STATUS_VERIFIER_STOP NTStatus = 0xC0000421 + STATUS_CALLBACK_POP_STACK NTStatus = 0xC0000423 + STATUS_INCOMPATIBLE_DRIVER_BLOCKED NTStatus = 0xC0000424 + STATUS_HIVE_UNLOADED NTStatus = 0xC0000425 + STATUS_COMPRESSION_DISABLED NTStatus = 0xC0000426 + STATUS_FILE_SYSTEM_LIMITATION NTStatus = 0xC0000427 + STATUS_INVALID_IMAGE_HASH NTStatus = 0xC0000428 + STATUS_NOT_CAPABLE NTStatus = 0xC0000429 + STATUS_REQUEST_OUT_OF_SEQUENCE NTStatus = 0xC000042A + STATUS_IMPLEMENTATION_LIMIT NTStatus = 0xC000042B + STATUS_ELEVATION_REQUIRED NTStatus = 0xC000042C + STATUS_NO_SECURITY_CONTEXT NTStatus = 0xC000042D + STATUS_PKU2U_CERT_FAILURE NTStatus = 0xC000042F + STATUS_BEYOND_VDL NTStatus = 0xC0000432 + STATUS_ENCOUNTERED_WRITE_IN_PROGRESS NTStatus = 0xC0000433 + STATUS_PTE_CHANGED NTStatus = 0xC0000434 + STATUS_PURGE_FAILED NTStatus = 0xC0000435 + STATUS_CRED_REQUIRES_CONFIRMATION NTStatus = 0xC0000440 + STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE NTStatus = 0xC0000441 + STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER NTStatus = 0xC0000442 + STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE NTStatus = 0xC0000443 + STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE NTStatus = 0xC0000444 + STATUS_CS_ENCRYPTION_FILE_NOT_CSE NTStatus = 0xC0000445 + STATUS_INVALID_LABEL NTStatus = 0xC0000446 + STATUS_DRIVER_PROCESS_TERMINATED NTStatus = 0xC0000450 + STATUS_AMBIGUOUS_SYSTEM_DEVICE NTStatus = 0xC0000451 + STATUS_SYSTEM_DEVICE_NOT_FOUND NTStatus = 0xC0000452 + STATUS_RESTART_BOOT_APPLICATION NTStatus = 0xC0000453 + STATUS_INSUFFICIENT_NVRAM_RESOURCES NTStatus = 0xC0000454 + STATUS_INVALID_SESSION NTStatus = 0xC0000455 + STATUS_THREAD_ALREADY_IN_SESSION NTStatus = 0xC0000456 + STATUS_THREAD_NOT_IN_SESSION NTStatus = 0xC0000457 + STATUS_INVALID_WEIGHT NTStatus = 0xC0000458 + STATUS_REQUEST_PAUSED NTStatus = 0xC0000459 + STATUS_NO_RANGES_PROCESSED NTStatus = 0xC0000460 + STATUS_DISK_RESOURCES_EXHAUSTED NTStatus = 0xC0000461 + STATUS_NEEDS_REMEDIATION NTStatus = 0xC0000462 + STATUS_DEVICE_FEATURE_NOT_SUPPORTED NTStatus = 0xC0000463 + STATUS_DEVICE_UNREACHABLE NTStatus = 0xC0000464 + STATUS_INVALID_TOKEN NTStatus = 0xC0000465 + STATUS_SERVER_UNAVAILABLE NTStatus = 0xC0000466 + STATUS_FILE_NOT_AVAILABLE NTStatus = 0xC0000467 + STATUS_DEVICE_INSUFFICIENT_RESOURCES NTStatus = 0xC0000468 + STATUS_PACKAGE_UPDATING NTStatus = 0xC0000469 + STATUS_NOT_READ_FROM_COPY NTStatus = 0xC000046A + STATUS_FT_WRITE_FAILURE NTStatus = 0xC000046B + STATUS_FT_DI_SCAN_REQUIRED NTStatus = 0xC000046C + STATUS_OBJECT_NOT_EXTERNALLY_BACKED NTStatus = 0xC000046D + STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN NTStatus = 0xC000046E + STATUS_COMPRESSION_NOT_BENEFICIAL NTStatus = 0xC000046F + STATUS_DATA_CHECKSUM_ERROR NTStatus = 0xC0000470 + STATUS_INTERMIXED_KERNEL_EA_OPERATION NTStatus = 0xC0000471 + STATUS_TRIM_READ_ZERO_NOT_SUPPORTED NTStatus = 0xC0000472 + STATUS_TOO_MANY_SEGMENT_DESCRIPTORS NTStatus = 0xC0000473 + STATUS_INVALID_OFFSET_ALIGNMENT NTStatus = 0xC0000474 + STATUS_INVALID_FIELD_IN_PARAMETER_LIST NTStatus = 0xC0000475 + STATUS_OPERATION_IN_PROGRESS NTStatus = 0xC0000476 + STATUS_INVALID_INITIATOR_TARGET_PATH NTStatus = 0xC0000477 + STATUS_SCRUB_DATA_DISABLED NTStatus = 0xC0000478 + STATUS_NOT_REDUNDANT_STORAGE NTStatus = 0xC0000479 + STATUS_RESIDENT_FILE_NOT_SUPPORTED NTStatus = 0xC000047A + STATUS_COMPRESSED_FILE_NOT_SUPPORTED NTStatus = 0xC000047B + STATUS_DIRECTORY_NOT_SUPPORTED NTStatus = 0xC000047C + STATUS_IO_OPERATION_TIMEOUT NTStatus = 0xC000047D + STATUS_SYSTEM_NEEDS_REMEDIATION NTStatus = 0xC000047E + STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN NTStatus = 0xC000047F + STATUS_SHARE_UNAVAILABLE NTStatus = 0xC0000480 + STATUS_APISET_NOT_HOSTED NTStatus = 0xC0000481 + STATUS_APISET_NOT_PRESENT NTStatus = 0xC0000482 + STATUS_DEVICE_HARDWARE_ERROR NTStatus = 0xC0000483 + STATUS_FIRMWARE_SLOT_INVALID NTStatus = 0xC0000484 + STATUS_FIRMWARE_IMAGE_INVALID NTStatus = 0xC0000485 + STATUS_STORAGE_TOPOLOGY_ID_MISMATCH NTStatus = 0xC0000486 + STATUS_WIM_NOT_BOOTABLE NTStatus = 0xC0000487 + STATUS_BLOCKED_BY_PARENTAL_CONTROLS NTStatus = 0xC0000488 + STATUS_NEEDS_REGISTRATION NTStatus = 0xC0000489 + STATUS_QUOTA_ACTIVITY NTStatus = 0xC000048A + STATUS_CALLBACK_INVOKE_INLINE NTStatus = 0xC000048B + STATUS_BLOCK_TOO_MANY_REFERENCES NTStatus = 0xC000048C + STATUS_MARKED_TO_DISALLOW_WRITES NTStatus = 0xC000048D + STATUS_NETWORK_ACCESS_DENIED_EDP NTStatus = 0xC000048E + STATUS_ENCLAVE_FAILURE NTStatus = 0xC000048F + STATUS_PNP_NO_COMPAT_DRIVERS NTStatus = 0xC0000490 + STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND NTStatus = 0xC0000491 + STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND NTStatus = 0xC0000492 + STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE NTStatus = 0xC0000493 + STATUS_PNP_FUNCTION_DRIVER_REQUIRED NTStatus = 0xC0000494 + STATUS_PNP_DEVICE_CONFIGURATION_PENDING NTStatus = 0xC0000495 + STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL NTStatus = 0xC0000496 + STATUS_PACKAGE_NOT_AVAILABLE NTStatus = 0xC0000497 + STATUS_DEVICE_IN_MAINTENANCE NTStatus = 0xC0000499 + STATUS_NOT_SUPPORTED_ON_DAX NTStatus = 0xC000049A + STATUS_FREE_SPACE_TOO_FRAGMENTED NTStatus = 0xC000049B + STATUS_DAX_MAPPING_EXISTS NTStatus = 0xC000049C + STATUS_CHILD_PROCESS_BLOCKED NTStatus = 0xC000049D + STATUS_STORAGE_LOST_DATA_PERSISTENCE NTStatus = 0xC000049E + STATUS_VRF_CFG_ENABLED NTStatus = 0xC000049F + STATUS_PARTITION_TERMINATING NTStatus = 0xC00004A0 + STATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED NTStatus = 0xC00004A1 + STATUS_ENCLAVE_VIOLATION NTStatus = 0xC00004A2 + STATUS_FILE_PROTECTED_UNDER_DPL NTStatus = 0xC00004A3 + STATUS_VOLUME_NOT_CLUSTER_ALIGNED NTStatus = 0xC00004A4 + STATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND NTStatus = 0xC00004A5 + STATUS_APPX_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A6 + STATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A7 + STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET NTStatus = 0xC00004A8 + STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE NTStatus = 0xC00004A9 + STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER NTStatus = 0xC00004AA + STATUS_FT_READ_FAILURE NTStatus = 0xC00004AB + STATUS_PATCH_CONFLICT NTStatus = 0xC00004AC + STATUS_STORAGE_RESERVE_ID_INVALID NTStatus = 0xC00004AD + STATUS_STORAGE_RESERVE_DOES_NOT_EXIST NTStatus = 0xC00004AE + STATUS_STORAGE_RESERVE_ALREADY_EXISTS NTStatus = 0xC00004AF + STATUS_STORAGE_RESERVE_NOT_EMPTY NTStatus = 0xC00004B0 + STATUS_NOT_A_DAX_VOLUME NTStatus = 0xC00004B1 + STATUS_NOT_DAX_MAPPABLE NTStatus = 0xC00004B2 + STATUS_CASE_DIFFERING_NAMES_IN_DIR NTStatus = 0xC00004B3 + STATUS_FILE_NOT_SUPPORTED NTStatus = 0xC00004B4 + STATUS_NOT_SUPPORTED_WITH_BTT NTStatus = 0xC00004B5 + STATUS_ENCRYPTION_DISABLED NTStatus = 0xC00004B6 + STATUS_ENCRYPTING_METADATA_DISALLOWED NTStatus = 0xC00004B7 + STATUS_CANT_CLEAR_ENCRYPTION_FLAG NTStatus = 0xC00004B8 + STATUS_INVALID_TASK_NAME NTStatus = 0xC0000500 + STATUS_INVALID_TASK_INDEX NTStatus = 0xC0000501 + STATUS_THREAD_ALREADY_IN_TASK NTStatus = 0xC0000502 + STATUS_CALLBACK_BYPASS NTStatus = 0xC0000503 + STATUS_UNDEFINED_SCOPE NTStatus = 0xC0000504 + STATUS_INVALID_CAP NTStatus = 0xC0000505 + STATUS_NOT_GUI_PROCESS NTStatus = 0xC0000506 + STATUS_DEVICE_HUNG NTStatus = 0xC0000507 + STATUS_CONTAINER_ASSIGNED NTStatus = 0xC0000508 + STATUS_JOB_NO_CONTAINER NTStatus = 0xC0000509 + STATUS_DEVICE_UNRESPONSIVE NTStatus = 0xC000050A + STATUS_REPARSE_POINT_ENCOUNTERED NTStatus = 0xC000050B + STATUS_ATTRIBUTE_NOT_PRESENT NTStatus = 0xC000050C + STATUS_NOT_A_TIERED_VOLUME NTStatus = 0xC000050D + STATUS_ALREADY_HAS_STREAM_ID NTStatus = 0xC000050E + STATUS_JOB_NOT_EMPTY NTStatus = 0xC000050F + STATUS_ALREADY_INITIALIZED NTStatus = 0xC0000510 + STATUS_ENCLAVE_NOT_TERMINATED NTStatus = 0xC0000511 + STATUS_ENCLAVE_IS_TERMINATING NTStatus = 0xC0000512 + STATUS_SMB1_NOT_AVAILABLE NTStatus = 0xC0000513 + STATUS_SMR_GARBAGE_COLLECTION_REQUIRED NTStatus = 0xC0000514 + STATUS_INTERRUPTED NTStatus = 0xC0000515 + STATUS_THREAD_NOT_RUNNING NTStatus = 0xC0000516 + STATUS_FAIL_FAST_EXCEPTION NTStatus = 0xC0000602 + STATUS_IMAGE_CERT_REVOKED NTStatus = 0xC0000603 + STATUS_DYNAMIC_CODE_BLOCKED NTStatus = 0xC0000604 + STATUS_IMAGE_CERT_EXPIRED NTStatus = 0xC0000605 + STATUS_STRICT_CFG_VIOLATION NTStatus = 0xC0000606 + STATUS_SET_CONTEXT_DENIED NTStatus = 0xC000060A + STATUS_CROSS_PARTITION_VIOLATION NTStatus = 0xC000060B + STATUS_PORT_CLOSED NTStatus = 0xC0000700 + STATUS_MESSAGE_LOST NTStatus = 0xC0000701 + STATUS_INVALID_MESSAGE NTStatus = 0xC0000702 + STATUS_REQUEST_CANCELED NTStatus = 0xC0000703 + STATUS_RECURSIVE_DISPATCH NTStatus = 0xC0000704 + STATUS_LPC_RECEIVE_BUFFER_EXPECTED NTStatus = 0xC0000705 + STATUS_LPC_INVALID_CONNECTION_USAGE NTStatus = 0xC0000706 + STATUS_LPC_REQUESTS_NOT_ALLOWED NTStatus = 0xC0000707 + STATUS_RESOURCE_IN_USE NTStatus = 0xC0000708 + STATUS_HARDWARE_MEMORY_ERROR NTStatus = 0xC0000709 + STATUS_THREADPOOL_HANDLE_EXCEPTION NTStatus = 0xC000070A + STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED NTStatus = 0xC000070B + STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED NTStatus = 0xC000070C + STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED NTStatus = 0xC000070D + STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED NTStatus = 0xC000070E + STATUS_THREADPOOL_RELEASED_DURING_OPERATION NTStatus = 0xC000070F + STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000710 + STATUS_APC_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000711 + STATUS_PROCESS_IS_PROTECTED NTStatus = 0xC0000712 + STATUS_MCA_EXCEPTION NTStatus = 0xC0000713 + STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE NTStatus = 0xC0000714 + STATUS_SYMLINK_CLASS_DISABLED NTStatus = 0xC0000715 + STATUS_INVALID_IDN_NORMALIZATION NTStatus = 0xC0000716 + STATUS_NO_UNICODE_TRANSLATION NTStatus = 0xC0000717 + STATUS_ALREADY_REGISTERED NTStatus = 0xC0000718 + STATUS_CONTEXT_MISMATCH NTStatus = 0xC0000719 + STATUS_PORT_ALREADY_HAS_COMPLETION_LIST NTStatus = 0xC000071A + STATUS_CALLBACK_RETURNED_THREAD_PRIORITY NTStatus = 0xC000071B + STATUS_INVALID_THREAD NTStatus = 0xC000071C + STATUS_CALLBACK_RETURNED_TRANSACTION NTStatus = 0xC000071D + STATUS_CALLBACK_RETURNED_LDR_LOCK NTStatus = 0xC000071E + STATUS_CALLBACK_RETURNED_LANG NTStatus = 0xC000071F + STATUS_CALLBACK_RETURNED_PRI_BACK NTStatus = 0xC0000720 + STATUS_CALLBACK_RETURNED_THREAD_AFFINITY NTStatus = 0xC0000721 + STATUS_LPC_HANDLE_COUNT_EXCEEDED NTStatus = 0xC0000722 + STATUS_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000723 + STATUS_KERNEL_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000724 + STATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000725 + STATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000726 + STATUS_DISK_REPAIR_DISABLED NTStatus = 0xC0000800 + STATUS_DS_DOMAIN_RENAME_IN_PROGRESS NTStatus = 0xC0000801 + STATUS_DISK_QUOTA_EXCEEDED NTStatus = 0xC0000802 + STATUS_DATA_LOST_REPAIR NTStatus = 0x80000803 + STATUS_CONTENT_BLOCKED NTStatus = 0xC0000804 + STATUS_BAD_CLUSTERS NTStatus = 0xC0000805 + STATUS_VOLUME_DIRTY NTStatus = 0xC0000806 + STATUS_DISK_REPAIR_REDIRECTED NTStatus = 0x40000807 + STATUS_DISK_REPAIR_UNSUCCESSFUL NTStatus = 0xC0000808 + STATUS_CORRUPT_LOG_OVERFULL NTStatus = 0xC0000809 + STATUS_CORRUPT_LOG_CORRUPTED NTStatus = 0xC000080A + STATUS_CORRUPT_LOG_UNAVAILABLE NTStatus = 0xC000080B + STATUS_CORRUPT_LOG_DELETED_FULL NTStatus = 0xC000080C + STATUS_CORRUPT_LOG_CLEARED NTStatus = 0xC000080D + STATUS_ORPHAN_NAME_EXHAUSTED NTStatus = 0xC000080E + STATUS_PROACTIVE_SCAN_IN_PROGRESS NTStatus = 0xC000080F + STATUS_ENCRYPTED_IO_NOT_POSSIBLE NTStatus = 0xC0000810 + STATUS_CORRUPT_LOG_UPLEVEL_RECORDS NTStatus = 0xC0000811 + STATUS_FILE_CHECKED_OUT NTStatus = 0xC0000901 + STATUS_CHECKOUT_REQUIRED NTStatus = 0xC0000902 + STATUS_BAD_FILE_TYPE NTStatus = 0xC0000903 + STATUS_FILE_TOO_LARGE NTStatus = 0xC0000904 + STATUS_FORMS_AUTH_REQUIRED NTStatus = 0xC0000905 + STATUS_VIRUS_INFECTED NTStatus = 0xC0000906 + STATUS_VIRUS_DELETED NTStatus = 0xC0000907 + STATUS_BAD_MCFG_TABLE NTStatus = 0xC0000908 + STATUS_CANNOT_BREAK_OPLOCK NTStatus = 0xC0000909 + STATUS_BAD_KEY NTStatus = 0xC000090A + STATUS_BAD_DATA NTStatus = 0xC000090B + STATUS_NO_KEY NTStatus = 0xC000090C + STATUS_FILE_HANDLE_REVOKED NTStatus = 0xC0000910 + STATUS_WOW_ASSERTION NTStatus = 0xC0009898 + STATUS_INVALID_SIGNATURE NTStatus = 0xC000A000 + STATUS_HMAC_NOT_SUPPORTED NTStatus = 0xC000A001 + STATUS_AUTH_TAG_MISMATCH NTStatus = 0xC000A002 + STATUS_INVALID_STATE_TRANSITION NTStatus = 0xC000A003 + STATUS_INVALID_KERNEL_INFO_VERSION NTStatus = 0xC000A004 + STATUS_INVALID_PEP_INFO_VERSION NTStatus = 0xC000A005 + STATUS_HANDLE_REVOKED NTStatus = 0xC000A006 + STATUS_EOF_ON_GHOSTED_RANGE NTStatus = 0xC000A007 + STATUS_IPSEC_QUEUE_OVERFLOW NTStatus = 0xC000A010 + STATUS_ND_QUEUE_OVERFLOW NTStatus = 0xC000A011 + STATUS_HOPLIMIT_EXCEEDED NTStatus = 0xC000A012 + STATUS_PROTOCOL_NOT_SUPPORTED NTStatus = 0xC000A013 + STATUS_FASTPATH_REJECTED NTStatus = 0xC000A014 + STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED NTStatus = 0xC000A080 + STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR NTStatus = 0xC000A081 + STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR NTStatus = 0xC000A082 + STATUS_XML_PARSE_ERROR NTStatus = 0xC000A083 + STATUS_XMLDSIG_ERROR NTStatus = 0xC000A084 + STATUS_WRONG_COMPARTMENT NTStatus = 0xC000A085 + STATUS_AUTHIP_FAILURE NTStatus = 0xC000A086 + STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS NTStatus = 0xC000A087 + STATUS_DS_OID_NOT_FOUND NTStatus = 0xC000A088 + STATUS_INCORRECT_ACCOUNT_TYPE NTStatus = 0xC000A089 + STATUS_HASH_NOT_SUPPORTED NTStatus = 0xC000A100 + STATUS_HASH_NOT_PRESENT NTStatus = 0xC000A101 + STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED NTStatus = 0xC000A121 + STATUS_GPIO_CLIENT_INFORMATION_INVALID NTStatus = 0xC000A122 + STATUS_GPIO_VERSION_NOT_SUPPORTED NTStatus = 0xC000A123 + STATUS_GPIO_INVALID_REGISTRATION_PACKET NTStatus = 0xC000A124 + STATUS_GPIO_OPERATION_DENIED NTStatus = 0xC000A125 + STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE NTStatus = 0xC000A126 + STATUS_GPIO_INTERRUPT_ALREADY_UNMASKED NTStatus = 0x8000A127 + STATUS_CANNOT_SWITCH_RUNLEVEL NTStatus = 0xC000A141 + STATUS_INVALID_RUNLEVEL_SETTING NTStatus = 0xC000A142 + STATUS_RUNLEVEL_SWITCH_TIMEOUT NTStatus = 0xC000A143 + STATUS_SERVICES_FAILED_AUTOSTART NTStatus = 0x4000A144 + STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT NTStatus = 0xC000A145 + STATUS_RUNLEVEL_SWITCH_IN_PROGRESS NTStatus = 0xC000A146 + STATUS_NOT_APPCONTAINER NTStatus = 0xC000A200 + STATUS_NOT_SUPPORTED_IN_APPCONTAINER NTStatus = 0xC000A201 + STATUS_INVALID_PACKAGE_SID_LENGTH NTStatus = 0xC000A202 + STATUS_LPAC_ACCESS_DENIED NTStatus = 0xC000A203 + STATUS_ADMINLESS_ACCESS_DENIED NTStatus = 0xC000A204 + STATUS_APP_DATA_NOT_FOUND NTStatus = 0xC000A281 + STATUS_APP_DATA_EXPIRED NTStatus = 0xC000A282 + STATUS_APP_DATA_CORRUPT NTStatus = 0xC000A283 + STATUS_APP_DATA_LIMIT_EXCEEDED NTStatus = 0xC000A284 + STATUS_APP_DATA_REBOOT_REQUIRED NTStatus = 0xC000A285 + STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A1 + STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A2 + STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A3 + STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A4 + STATUS_WOF_WIM_HEADER_CORRUPT NTStatus = 0xC000A2A5 + STATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A6 + STATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A7 + STATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE NTStatus = 0xC000CE01 + STATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT NTStatus = 0xC000CE02 + STATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY NTStatus = 0xC000CE03 + STATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN NTStatus = 0xC000CE04 + STATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION NTStatus = 0xC000CE05 + STATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT NTStatus = 0xC000CF00 + STATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING NTStatus = 0xC000CF01 + STATUS_CLOUD_FILE_METADATA_CORRUPT NTStatus = 0xC000CF02 + STATUS_CLOUD_FILE_METADATA_TOO_LARGE NTStatus = 0xC000CF03 + STATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE NTStatus = 0x8000CF04 + STATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS NTStatus = 0x8000CF05 + STATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED NTStatus = 0xC000CF06 + STATUS_NOT_A_CLOUD_FILE NTStatus = 0xC000CF07 + STATUS_CLOUD_FILE_NOT_IN_SYNC NTStatus = 0xC000CF08 + STATUS_CLOUD_FILE_ALREADY_CONNECTED NTStatus = 0xC000CF09 + STATUS_CLOUD_FILE_NOT_SUPPORTED NTStatus = 0xC000CF0A + STATUS_CLOUD_FILE_INVALID_REQUEST NTStatus = 0xC000CF0B + STATUS_CLOUD_FILE_READ_ONLY_VOLUME NTStatus = 0xC000CF0C + STATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY NTStatus = 0xC000CF0D + STATUS_CLOUD_FILE_VALIDATION_FAILED NTStatus = 0xC000CF0E + STATUS_CLOUD_FILE_AUTHENTICATION_FAILED NTStatus = 0xC000CF0F + STATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES NTStatus = 0xC000CF10 + STATUS_CLOUD_FILE_NETWORK_UNAVAILABLE NTStatus = 0xC000CF11 + STATUS_CLOUD_FILE_UNSUCCESSFUL NTStatus = 0xC000CF12 + STATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT NTStatus = 0xC000CF13 + STATUS_CLOUD_FILE_IN_USE NTStatus = 0xC000CF14 + STATUS_CLOUD_FILE_PINNED NTStatus = 0xC000CF15 + STATUS_CLOUD_FILE_REQUEST_ABORTED NTStatus = 0xC000CF16 + STATUS_CLOUD_FILE_PROPERTY_CORRUPT NTStatus = 0xC000CF17 + STATUS_CLOUD_FILE_ACCESS_DENIED NTStatus = 0xC000CF18 + STATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS NTStatus = 0xC000CF19 + STATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT NTStatus = 0xC000CF1A + STATUS_CLOUD_FILE_REQUEST_CANCELED NTStatus = 0xC000CF1B + STATUS_CLOUD_FILE_PROVIDER_TERMINATED NTStatus = 0xC000CF1D + STATUS_NOT_A_CLOUD_SYNC_ROOT NTStatus = 0xC000CF1E + STATUS_CLOUD_FILE_REQUEST_TIMEOUT NTStatus = 0xC000CF1F + STATUS_ACPI_INVALID_OPCODE NTStatus = 0xC0140001 + STATUS_ACPI_STACK_OVERFLOW NTStatus = 0xC0140002 + STATUS_ACPI_ASSERT_FAILED NTStatus = 0xC0140003 + STATUS_ACPI_INVALID_INDEX NTStatus = 0xC0140004 + STATUS_ACPI_INVALID_ARGUMENT NTStatus = 0xC0140005 + STATUS_ACPI_FATAL NTStatus = 0xC0140006 + STATUS_ACPI_INVALID_SUPERNAME NTStatus = 0xC0140007 + STATUS_ACPI_INVALID_ARGTYPE NTStatus = 0xC0140008 + STATUS_ACPI_INVALID_OBJTYPE NTStatus = 0xC0140009 + STATUS_ACPI_INVALID_TARGETTYPE NTStatus = 0xC014000A + STATUS_ACPI_INCORRECT_ARGUMENT_COUNT NTStatus = 0xC014000B + STATUS_ACPI_ADDRESS_NOT_MAPPED NTStatus = 0xC014000C + STATUS_ACPI_INVALID_EVENTTYPE NTStatus = 0xC014000D + STATUS_ACPI_HANDLER_COLLISION NTStatus = 0xC014000E + STATUS_ACPI_INVALID_DATA NTStatus = 0xC014000F + STATUS_ACPI_INVALID_REGION NTStatus = 0xC0140010 + STATUS_ACPI_INVALID_ACCESS_SIZE NTStatus = 0xC0140011 + STATUS_ACPI_ACQUIRE_GLOBAL_LOCK NTStatus = 0xC0140012 + STATUS_ACPI_ALREADY_INITIALIZED NTStatus = 0xC0140013 + STATUS_ACPI_NOT_INITIALIZED NTStatus = 0xC0140014 + STATUS_ACPI_INVALID_MUTEX_LEVEL NTStatus = 0xC0140015 + STATUS_ACPI_MUTEX_NOT_OWNED NTStatus = 0xC0140016 + STATUS_ACPI_MUTEX_NOT_OWNER NTStatus = 0xC0140017 + STATUS_ACPI_RS_ACCESS NTStatus = 0xC0140018 + STATUS_ACPI_INVALID_TABLE NTStatus = 0xC0140019 + STATUS_ACPI_REG_HANDLER_FAILED NTStatus = 0xC0140020 + STATUS_ACPI_POWER_REQUEST_FAILED NTStatus = 0xC0140021 + STATUS_CTX_WINSTATION_NAME_INVALID NTStatus = 0xC00A0001 + STATUS_CTX_INVALID_PD NTStatus = 0xC00A0002 + STATUS_CTX_PD_NOT_FOUND NTStatus = 0xC00A0003 + STATUS_CTX_CDM_CONNECT NTStatus = 0x400A0004 + STATUS_CTX_CDM_DISCONNECT NTStatus = 0x400A0005 + STATUS_CTX_CLOSE_PENDING NTStatus = 0xC00A0006 + STATUS_CTX_NO_OUTBUF NTStatus = 0xC00A0007 + STATUS_CTX_MODEM_INF_NOT_FOUND NTStatus = 0xC00A0008 + STATUS_CTX_INVALID_MODEMNAME NTStatus = 0xC00A0009 + STATUS_CTX_RESPONSE_ERROR NTStatus = 0xC00A000A + STATUS_CTX_MODEM_RESPONSE_TIMEOUT NTStatus = 0xC00A000B + STATUS_CTX_MODEM_RESPONSE_NO_CARRIER NTStatus = 0xC00A000C + STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE NTStatus = 0xC00A000D + STATUS_CTX_MODEM_RESPONSE_BUSY NTStatus = 0xC00A000E + STATUS_CTX_MODEM_RESPONSE_VOICE NTStatus = 0xC00A000F + STATUS_CTX_TD_ERROR NTStatus = 0xC00A0010 + STATUS_CTX_LICENSE_CLIENT_INVALID NTStatus = 0xC00A0012 + STATUS_CTX_LICENSE_NOT_AVAILABLE NTStatus = 0xC00A0013 + STATUS_CTX_LICENSE_EXPIRED NTStatus = 0xC00A0014 + STATUS_CTX_WINSTATION_NOT_FOUND NTStatus = 0xC00A0015 + STATUS_CTX_WINSTATION_NAME_COLLISION NTStatus = 0xC00A0016 + STATUS_CTX_WINSTATION_BUSY NTStatus = 0xC00A0017 + STATUS_CTX_BAD_VIDEO_MODE NTStatus = 0xC00A0018 + STATUS_CTX_GRAPHICS_INVALID NTStatus = 0xC00A0022 + STATUS_CTX_NOT_CONSOLE NTStatus = 0xC00A0024 + STATUS_CTX_CLIENT_QUERY_TIMEOUT NTStatus = 0xC00A0026 + STATUS_CTX_CONSOLE_DISCONNECT NTStatus = 0xC00A0027 + STATUS_CTX_CONSOLE_CONNECT NTStatus = 0xC00A0028 + STATUS_CTX_SHADOW_DENIED NTStatus = 0xC00A002A + STATUS_CTX_WINSTATION_ACCESS_DENIED NTStatus = 0xC00A002B + STATUS_CTX_INVALID_WD NTStatus = 0xC00A002E + STATUS_CTX_WD_NOT_FOUND NTStatus = 0xC00A002F + STATUS_CTX_SHADOW_INVALID NTStatus = 0xC00A0030 + STATUS_CTX_SHADOW_DISABLED NTStatus = 0xC00A0031 + STATUS_RDP_PROTOCOL_ERROR NTStatus = 0xC00A0032 + STATUS_CTX_CLIENT_LICENSE_NOT_SET NTStatus = 0xC00A0033 + STATUS_CTX_CLIENT_LICENSE_IN_USE NTStatus = 0xC00A0034 + STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE NTStatus = 0xC00A0035 + STATUS_CTX_SHADOW_NOT_RUNNING NTStatus = 0xC00A0036 + STATUS_CTX_LOGON_DISABLED NTStatus = 0xC00A0037 + STATUS_CTX_SECURITY_LAYER_ERROR NTStatus = 0xC00A0038 + STATUS_TS_INCOMPATIBLE_SESSIONS NTStatus = 0xC00A0039 + STATUS_TS_VIDEO_SUBSYSTEM_ERROR NTStatus = 0xC00A003A + STATUS_PNP_BAD_MPS_TABLE NTStatus = 0xC0040035 + STATUS_PNP_TRANSLATION_FAILED NTStatus = 0xC0040036 + STATUS_PNP_IRQ_TRANSLATION_FAILED NTStatus = 0xC0040037 + STATUS_PNP_INVALID_ID NTStatus = 0xC0040038 + STATUS_IO_REISSUE_AS_CACHED NTStatus = 0xC0040039 + STATUS_MUI_FILE_NOT_FOUND NTStatus = 0xC00B0001 + STATUS_MUI_INVALID_FILE NTStatus = 0xC00B0002 + STATUS_MUI_INVALID_RC_CONFIG NTStatus = 0xC00B0003 + STATUS_MUI_INVALID_LOCALE_NAME NTStatus = 0xC00B0004 + STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME NTStatus = 0xC00B0005 + STATUS_MUI_FILE_NOT_LOADED NTStatus = 0xC00B0006 + STATUS_RESOURCE_ENUM_USER_STOP NTStatus = 0xC00B0007 + STATUS_FLT_NO_HANDLER_DEFINED NTStatus = 0xC01C0001 + STATUS_FLT_CONTEXT_ALREADY_DEFINED NTStatus = 0xC01C0002 + STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST NTStatus = 0xC01C0003 + STATUS_FLT_DISALLOW_FAST_IO NTStatus = 0xC01C0004 + STATUS_FLT_INVALID_NAME_REQUEST NTStatus = 0xC01C0005 + STATUS_FLT_NOT_SAFE_TO_POST_OPERATION NTStatus = 0xC01C0006 + STATUS_FLT_NOT_INITIALIZED NTStatus = 0xC01C0007 + STATUS_FLT_FILTER_NOT_READY NTStatus = 0xC01C0008 + STATUS_FLT_POST_OPERATION_CLEANUP NTStatus = 0xC01C0009 + STATUS_FLT_INTERNAL_ERROR NTStatus = 0xC01C000A + STATUS_FLT_DELETING_OBJECT NTStatus = 0xC01C000B + STATUS_FLT_MUST_BE_NONPAGED_POOL NTStatus = 0xC01C000C + STATUS_FLT_DUPLICATE_ENTRY NTStatus = 0xC01C000D + STATUS_FLT_CBDQ_DISABLED NTStatus = 0xC01C000E + STATUS_FLT_DO_NOT_ATTACH NTStatus = 0xC01C000F + STATUS_FLT_DO_NOT_DETACH NTStatus = 0xC01C0010 + STATUS_FLT_INSTANCE_ALTITUDE_COLLISION NTStatus = 0xC01C0011 + STATUS_FLT_INSTANCE_NAME_COLLISION NTStatus = 0xC01C0012 + STATUS_FLT_FILTER_NOT_FOUND NTStatus = 0xC01C0013 + STATUS_FLT_VOLUME_NOT_FOUND NTStatus = 0xC01C0014 + STATUS_FLT_INSTANCE_NOT_FOUND NTStatus = 0xC01C0015 + STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND NTStatus = 0xC01C0016 + STATUS_FLT_INVALID_CONTEXT_REGISTRATION NTStatus = 0xC01C0017 + STATUS_FLT_NAME_CACHE_MISS NTStatus = 0xC01C0018 + STATUS_FLT_NO_DEVICE_OBJECT NTStatus = 0xC01C0019 + STATUS_FLT_VOLUME_ALREADY_MOUNTED NTStatus = 0xC01C001A + STATUS_FLT_ALREADY_ENLISTED NTStatus = 0xC01C001B + STATUS_FLT_CONTEXT_ALREADY_LINKED NTStatus = 0xC01C001C + STATUS_FLT_NO_WAITER_FOR_REPLY NTStatus = 0xC01C0020 + STATUS_FLT_REGISTRATION_BUSY NTStatus = 0xC01C0023 + STATUS_SXS_SECTION_NOT_FOUND NTStatus = 0xC0150001 + STATUS_SXS_CANT_GEN_ACTCTX NTStatus = 0xC0150002 + STATUS_SXS_INVALID_ACTCTXDATA_FORMAT NTStatus = 0xC0150003 + STATUS_SXS_ASSEMBLY_NOT_FOUND NTStatus = 0xC0150004 + STATUS_SXS_MANIFEST_FORMAT_ERROR NTStatus = 0xC0150005 + STATUS_SXS_MANIFEST_PARSE_ERROR NTStatus = 0xC0150006 + STATUS_SXS_ACTIVATION_CONTEXT_DISABLED NTStatus = 0xC0150007 + STATUS_SXS_KEY_NOT_FOUND NTStatus = 0xC0150008 + STATUS_SXS_VERSION_CONFLICT NTStatus = 0xC0150009 + STATUS_SXS_WRONG_SECTION_TYPE NTStatus = 0xC015000A + STATUS_SXS_THREAD_QUERIES_DISABLED NTStatus = 0xC015000B + STATUS_SXS_ASSEMBLY_MISSING NTStatus = 0xC015000C + STATUS_SXS_RELEASE_ACTIVATION_CONTEXT NTStatus = 0x4015000D + STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET NTStatus = 0xC015000E + STATUS_SXS_EARLY_DEACTIVATION NTStatus = 0xC015000F + STATUS_SXS_INVALID_DEACTIVATION NTStatus = 0xC0150010 + STATUS_SXS_MULTIPLE_DEACTIVATION NTStatus = 0xC0150011 + STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY NTStatus = 0xC0150012 + STATUS_SXS_PROCESS_TERMINATION_REQUESTED NTStatus = 0xC0150013 + STATUS_SXS_CORRUPT_ACTIVATION_STACK NTStatus = 0xC0150014 + STATUS_SXS_CORRUPTION NTStatus = 0xC0150015 + STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE NTStatus = 0xC0150016 + STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME NTStatus = 0xC0150017 + STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE NTStatus = 0xC0150018 + STATUS_SXS_IDENTITY_PARSE_ERROR NTStatus = 0xC0150019 + STATUS_SXS_COMPONENT_STORE_CORRUPT NTStatus = 0xC015001A + STATUS_SXS_FILE_HASH_MISMATCH NTStatus = 0xC015001B + STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT NTStatus = 0xC015001C + STATUS_SXS_IDENTITIES_DIFFERENT NTStatus = 0xC015001D + STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT NTStatus = 0xC015001E + STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY NTStatus = 0xC015001F + STATUS_ADVANCED_INSTALLER_FAILED NTStatus = 0xC0150020 + STATUS_XML_ENCODING_MISMATCH NTStatus = 0xC0150021 + STATUS_SXS_MANIFEST_TOO_BIG NTStatus = 0xC0150022 + STATUS_SXS_SETTING_NOT_REGISTERED NTStatus = 0xC0150023 + STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE NTStatus = 0xC0150024 + STATUS_SMI_PRIMITIVE_INSTALLER_FAILED NTStatus = 0xC0150025 + STATUS_GENERIC_COMMAND_FAILED NTStatus = 0xC0150026 + STATUS_SXS_FILE_HASH_MISSING NTStatus = 0xC0150027 + STATUS_CLUSTER_INVALID_NODE NTStatus = 0xC0130001 + STATUS_CLUSTER_NODE_EXISTS NTStatus = 0xC0130002 + STATUS_CLUSTER_JOIN_IN_PROGRESS NTStatus = 0xC0130003 + STATUS_CLUSTER_NODE_NOT_FOUND NTStatus = 0xC0130004 + STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND NTStatus = 0xC0130005 + STATUS_CLUSTER_NETWORK_EXISTS NTStatus = 0xC0130006 + STATUS_CLUSTER_NETWORK_NOT_FOUND NTStatus = 0xC0130007 + STATUS_CLUSTER_NETINTERFACE_EXISTS NTStatus = 0xC0130008 + STATUS_CLUSTER_NETINTERFACE_NOT_FOUND NTStatus = 0xC0130009 + STATUS_CLUSTER_INVALID_REQUEST NTStatus = 0xC013000A + STATUS_CLUSTER_INVALID_NETWORK_PROVIDER NTStatus = 0xC013000B + STATUS_CLUSTER_NODE_DOWN NTStatus = 0xC013000C + STATUS_CLUSTER_NODE_UNREACHABLE NTStatus = 0xC013000D + STATUS_CLUSTER_NODE_NOT_MEMBER NTStatus = 0xC013000E + STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS NTStatus = 0xC013000F + STATUS_CLUSTER_INVALID_NETWORK NTStatus = 0xC0130010 + STATUS_CLUSTER_NO_NET_ADAPTERS NTStatus = 0xC0130011 + STATUS_CLUSTER_NODE_UP NTStatus = 0xC0130012 + STATUS_CLUSTER_NODE_PAUSED NTStatus = 0xC0130013 + STATUS_CLUSTER_NODE_NOT_PAUSED NTStatus = 0xC0130014 + STATUS_CLUSTER_NO_SECURITY_CONTEXT NTStatus = 0xC0130015 + STATUS_CLUSTER_NETWORK_NOT_INTERNAL NTStatus = 0xC0130016 + STATUS_CLUSTER_POISONED NTStatus = 0xC0130017 + STATUS_CLUSTER_NON_CSV_PATH NTStatus = 0xC0130018 + STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL NTStatus = 0xC0130019 + STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0xC0130020 + STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR NTStatus = 0xC0130021 + STATUS_CLUSTER_CSV_REDIRECTED NTStatus = 0xC0130022 + STATUS_CLUSTER_CSV_NOT_REDIRECTED NTStatus = 0xC0130023 + STATUS_CLUSTER_CSV_VOLUME_DRAINING NTStatus = 0xC0130024 + STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS NTStatus = 0xC0130025 + STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL NTStatus = 0xC0130026 + STATUS_CLUSTER_CSV_NO_SNAPSHOTS NTStatus = 0xC0130027 + STATUS_CSV_IO_PAUSE_TIMEOUT NTStatus = 0xC0130028 + STATUS_CLUSTER_CSV_INVALID_HANDLE NTStatus = 0xC0130029 + STATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR NTStatus = 0xC0130030 + STATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED NTStatus = 0xC0130031 + STATUS_TRANSACTIONAL_CONFLICT NTStatus = 0xC0190001 + STATUS_INVALID_TRANSACTION NTStatus = 0xC0190002 + STATUS_TRANSACTION_NOT_ACTIVE NTStatus = 0xC0190003 + STATUS_TM_INITIALIZATION_FAILED NTStatus = 0xC0190004 + STATUS_RM_NOT_ACTIVE NTStatus = 0xC0190005 + STATUS_RM_METADATA_CORRUPT NTStatus = 0xC0190006 + STATUS_TRANSACTION_NOT_JOINED NTStatus = 0xC0190007 + STATUS_DIRECTORY_NOT_RM NTStatus = 0xC0190008 + STATUS_COULD_NOT_RESIZE_LOG NTStatus = 0x80190009 + STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE NTStatus = 0xC019000A + STATUS_LOG_RESIZE_INVALID_SIZE NTStatus = 0xC019000B + STATUS_REMOTE_FILE_VERSION_MISMATCH NTStatus = 0xC019000C + STATUS_CRM_PROTOCOL_ALREADY_EXISTS NTStatus = 0xC019000F + STATUS_TRANSACTION_PROPAGATION_FAILED NTStatus = 0xC0190010 + STATUS_CRM_PROTOCOL_NOT_FOUND NTStatus = 0xC0190011 + STATUS_TRANSACTION_SUPERIOR_EXISTS NTStatus = 0xC0190012 + STATUS_TRANSACTION_REQUEST_NOT_VALID NTStatus = 0xC0190013 + STATUS_TRANSACTION_NOT_REQUESTED NTStatus = 0xC0190014 + STATUS_TRANSACTION_ALREADY_ABORTED NTStatus = 0xC0190015 + STATUS_TRANSACTION_ALREADY_COMMITTED NTStatus = 0xC0190016 + STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER NTStatus = 0xC0190017 + STATUS_CURRENT_TRANSACTION_NOT_VALID NTStatus = 0xC0190018 + STATUS_LOG_GROWTH_FAILED NTStatus = 0xC0190019 + STATUS_OBJECT_NO_LONGER_EXISTS NTStatus = 0xC0190021 + STATUS_STREAM_MINIVERSION_NOT_FOUND NTStatus = 0xC0190022 + STATUS_STREAM_MINIVERSION_NOT_VALID NTStatus = 0xC0190023 + STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION NTStatus = 0xC0190024 + STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT NTStatus = 0xC0190025 + STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS NTStatus = 0xC0190026 + STATUS_HANDLE_NO_LONGER_VALID NTStatus = 0xC0190028 + STATUS_NO_TXF_METADATA NTStatus = 0x80190029 + STATUS_LOG_CORRUPTION_DETECTED NTStatus = 0xC0190030 + STATUS_CANT_RECOVER_WITH_HANDLE_OPEN NTStatus = 0x80190031 + STATUS_RM_DISCONNECTED NTStatus = 0xC0190032 + STATUS_ENLISTMENT_NOT_SUPERIOR NTStatus = 0xC0190033 + STATUS_RECOVERY_NOT_NEEDED NTStatus = 0x40190034 + STATUS_RM_ALREADY_STARTED NTStatus = 0x40190035 + STATUS_FILE_IDENTITY_NOT_PERSISTENT NTStatus = 0xC0190036 + STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY NTStatus = 0xC0190037 + STATUS_CANT_CROSS_RM_BOUNDARY NTStatus = 0xC0190038 + STATUS_TXF_DIR_NOT_EMPTY NTStatus = 0xC0190039 + STATUS_INDOUBT_TRANSACTIONS_EXIST NTStatus = 0xC019003A + STATUS_TM_VOLATILE NTStatus = 0xC019003B + STATUS_ROLLBACK_TIMER_EXPIRED NTStatus = 0xC019003C + STATUS_TXF_ATTRIBUTE_CORRUPT NTStatus = 0xC019003D + STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC019003E + STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED NTStatus = 0xC019003F + STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE NTStatus = 0xC0190040 + STATUS_TXF_METADATA_ALREADY_PRESENT NTStatus = 0x80190041 + STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET NTStatus = 0x80190042 + STATUS_TRANSACTION_REQUIRED_PROMOTION NTStatus = 0xC0190043 + STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION NTStatus = 0xC0190044 + STATUS_TRANSACTIONS_NOT_FROZEN NTStatus = 0xC0190045 + STATUS_TRANSACTION_FREEZE_IN_PROGRESS NTStatus = 0xC0190046 + STATUS_NOT_SNAPSHOT_VOLUME NTStatus = 0xC0190047 + STATUS_NO_SAVEPOINT_WITH_OPEN_FILES NTStatus = 0xC0190048 + STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190049 + STATUS_TM_IDENTITY_MISMATCH NTStatus = 0xC019004A + STATUS_FLOATED_SECTION NTStatus = 0xC019004B + STATUS_CANNOT_ACCEPT_TRANSACTED_WORK NTStatus = 0xC019004C + STATUS_CANNOT_ABORT_TRANSACTIONS NTStatus = 0xC019004D + STATUS_TRANSACTION_NOT_FOUND NTStatus = 0xC019004E + STATUS_RESOURCEMANAGER_NOT_FOUND NTStatus = 0xC019004F + STATUS_ENLISTMENT_NOT_FOUND NTStatus = 0xC0190050 + STATUS_TRANSACTIONMANAGER_NOT_FOUND NTStatus = 0xC0190051 + STATUS_TRANSACTIONMANAGER_NOT_ONLINE NTStatus = 0xC0190052 + STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION NTStatus = 0xC0190053 + STATUS_TRANSACTION_NOT_ROOT NTStatus = 0xC0190054 + STATUS_TRANSACTION_OBJECT_EXPIRED NTStatus = 0xC0190055 + STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190056 + STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED NTStatus = 0xC0190057 + STATUS_TRANSACTION_RECORD_TOO_LONG NTStatus = 0xC0190058 + STATUS_NO_LINK_TRACKING_IN_TRANSACTION NTStatus = 0xC0190059 + STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION NTStatus = 0xC019005A + STATUS_TRANSACTION_INTEGRITY_VIOLATED NTStatus = 0xC019005B + STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH NTStatus = 0xC019005C + STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT NTStatus = 0xC019005D + STATUS_TRANSACTION_MUST_WRITETHROUGH NTStatus = 0xC019005E + STATUS_TRANSACTION_NO_SUPERIOR NTStatus = 0xC019005F + STATUS_EXPIRED_HANDLE NTStatus = 0xC0190060 + STATUS_TRANSACTION_NOT_ENLISTED NTStatus = 0xC0190061 + STATUS_LOG_SECTOR_INVALID NTStatus = 0xC01A0001 + STATUS_LOG_SECTOR_PARITY_INVALID NTStatus = 0xC01A0002 + STATUS_LOG_SECTOR_REMAPPED NTStatus = 0xC01A0003 + STATUS_LOG_BLOCK_INCOMPLETE NTStatus = 0xC01A0004 + STATUS_LOG_INVALID_RANGE NTStatus = 0xC01A0005 + STATUS_LOG_BLOCKS_EXHAUSTED NTStatus = 0xC01A0006 + STATUS_LOG_READ_CONTEXT_INVALID NTStatus = 0xC01A0007 + STATUS_LOG_RESTART_INVALID NTStatus = 0xC01A0008 + STATUS_LOG_BLOCK_VERSION NTStatus = 0xC01A0009 + STATUS_LOG_BLOCK_INVALID NTStatus = 0xC01A000A + STATUS_LOG_READ_MODE_INVALID NTStatus = 0xC01A000B + STATUS_LOG_NO_RESTART NTStatus = 0x401A000C + STATUS_LOG_METADATA_CORRUPT NTStatus = 0xC01A000D + STATUS_LOG_METADATA_INVALID NTStatus = 0xC01A000E + STATUS_LOG_METADATA_INCONSISTENT NTStatus = 0xC01A000F + STATUS_LOG_RESERVATION_INVALID NTStatus = 0xC01A0010 + STATUS_LOG_CANT_DELETE NTStatus = 0xC01A0011 + STATUS_LOG_CONTAINER_LIMIT_EXCEEDED NTStatus = 0xC01A0012 + STATUS_LOG_START_OF_LOG NTStatus = 0xC01A0013 + STATUS_LOG_POLICY_ALREADY_INSTALLED NTStatus = 0xC01A0014 + STATUS_LOG_POLICY_NOT_INSTALLED NTStatus = 0xC01A0015 + STATUS_LOG_POLICY_INVALID NTStatus = 0xC01A0016 + STATUS_LOG_POLICY_CONFLICT NTStatus = 0xC01A0017 + STATUS_LOG_PINNED_ARCHIVE_TAIL NTStatus = 0xC01A0018 + STATUS_LOG_RECORD_NONEXISTENT NTStatus = 0xC01A0019 + STATUS_LOG_RECORDS_RESERVED_INVALID NTStatus = 0xC01A001A + STATUS_LOG_SPACE_RESERVED_INVALID NTStatus = 0xC01A001B + STATUS_LOG_TAIL_INVALID NTStatus = 0xC01A001C + STATUS_LOG_FULL NTStatus = 0xC01A001D + STATUS_LOG_MULTIPLEXED NTStatus = 0xC01A001E + STATUS_LOG_DEDICATED NTStatus = 0xC01A001F + STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS NTStatus = 0xC01A0020 + STATUS_LOG_ARCHIVE_IN_PROGRESS NTStatus = 0xC01A0021 + STATUS_LOG_EPHEMERAL NTStatus = 0xC01A0022 + STATUS_LOG_NOT_ENOUGH_CONTAINERS NTStatus = 0xC01A0023 + STATUS_LOG_CLIENT_ALREADY_REGISTERED NTStatus = 0xC01A0024 + STATUS_LOG_CLIENT_NOT_REGISTERED NTStatus = 0xC01A0025 + STATUS_LOG_FULL_HANDLER_IN_PROGRESS NTStatus = 0xC01A0026 + STATUS_LOG_CONTAINER_READ_FAILED NTStatus = 0xC01A0027 + STATUS_LOG_CONTAINER_WRITE_FAILED NTStatus = 0xC01A0028 + STATUS_LOG_CONTAINER_OPEN_FAILED NTStatus = 0xC01A0029 + STATUS_LOG_CONTAINER_STATE_INVALID NTStatus = 0xC01A002A + STATUS_LOG_STATE_INVALID NTStatus = 0xC01A002B + STATUS_LOG_PINNED NTStatus = 0xC01A002C + STATUS_LOG_METADATA_FLUSH_FAILED NTStatus = 0xC01A002D + STATUS_LOG_INCONSISTENT_SECURITY NTStatus = 0xC01A002E + STATUS_LOG_APPENDED_FLUSH_FAILED NTStatus = 0xC01A002F + STATUS_LOG_PINNED_RESERVATION NTStatus = 0xC01A0030 + STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC01B00EA + STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED NTStatus = 0x801B00EB + STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST NTStatus = 0x401B00EC + STATUS_MONITOR_NO_DESCRIPTOR NTStatus = 0xC01D0001 + STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT NTStatus = 0xC01D0002 + STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM NTStatus = 0xC01D0003 + STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK NTStatus = 0xC01D0004 + STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED NTStatus = 0xC01D0005 + STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK NTStatus = 0xC01D0006 + STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK NTStatus = 0xC01D0007 + STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA NTStatus = 0xC01D0008 + STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK NTStatus = 0xC01D0009 + STATUS_MONITOR_INVALID_MANUFACTURE_DATE NTStatus = 0xC01D000A + STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER NTStatus = 0xC01E0000 + STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER NTStatus = 0xC01E0001 + STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER NTStatus = 0xC01E0002 + STATUS_GRAPHICS_ADAPTER_WAS_RESET NTStatus = 0xC01E0003 + STATUS_GRAPHICS_INVALID_DRIVER_MODEL NTStatus = 0xC01E0004 + STATUS_GRAPHICS_PRESENT_MODE_CHANGED NTStatus = 0xC01E0005 + STATUS_GRAPHICS_PRESENT_OCCLUDED NTStatus = 0xC01E0006 + STATUS_GRAPHICS_PRESENT_DENIED NTStatus = 0xC01E0007 + STATUS_GRAPHICS_CANNOTCOLORCONVERT NTStatus = 0xC01E0008 + STATUS_GRAPHICS_DRIVER_MISMATCH NTStatus = 0xC01E0009 + STATUS_GRAPHICS_PARTIAL_DATA_POPULATED NTStatus = 0x401E000A + STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED NTStatus = 0xC01E000B + STATUS_GRAPHICS_PRESENT_UNOCCLUDED NTStatus = 0xC01E000C + STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE NTStatus = 0xC01E000D + STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED NTStatus = 0xC01E000E + STATUS_GRAPHICS_PRESENT_INVALID_WINDOW NTStatus = 0xC01E000F + STATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND NTStatus = 0xC01E0010 + STATUS_GRAPHICS_VAIL_STATE_CHANGED NTStatus = 0xC01E0011 + STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN NTStatus = 0xC01E0012 + STATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED NTStatus = 0xC01E0013 + STATUS_GRAPHICS_NO_VIDEO_MEMORY NTStatus = 0xC01E0100 + STATUS_GRAPHICS_CANT_LOCK_MEMORY NTStatus = 0xC01E0101 + STATUS_GRAPHICS_ALLOCATION_BUSY NTStatus = 0xC01E0102 + STATUS_GRAPHICS_TOO_MANY_REFERENCES NTStatus = 0xC01E0103 + STATUS_GRAPHICS_TRY_AGAIN_LATER NTStatus = 0xC01E0104 + STATUS_GRAPHICS_TRY_AGAIN_NOW NTStatus = 0xC01E0105 + STATUS_GRAPHICS_ALLOCATION_INVALID NTStatus = 0xC01E0106 + STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE NTStatus = 0xC01E0107 + STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED NTStatus = 0xC01E0108 + STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION NTStatus = 0xC01E0109 + STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE NTStatus = 0xC01E0110 + STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION NTStatus = 0xC01E0111 + STATUS_GRAPHICS_ALLOCATION_CLOSED NTStatus = 0xC01E0112 + STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE NTStatus = 0xC01E0113 + STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE NTStatus = 0xC01E0114 + STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE NTStatus = 0xC01E0115 + STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST NTStatus = 0xC01E0116 + STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE NTStatus = 0xC01E0200 + STATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION NTStatus = 0x401E0201 + STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY NTStatus = 0xC01E0300 + STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED NTStatus = 0xC01E0301 + STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED NTStatus = 0xC01E0302 + STATUS_GRAPHICS_INVALID_VIDPN NTStatus = 0xC01E0303 + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE NTStatus = 0xC01E0304 + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET NTStatus = 0xC01E0305 + STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED NTStatus = 0xC01E0306 + STATUS_GRAPHICS_MODE_NOT_PINNED NTStatus = 0x401E0307 + STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET NTStatus = 0xC01E0308 + STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET NTStatus = 0xC01E0309 + STATUS_GRAPHICS_INVALID_FREQUENCY NTStatus = 0xC01E030A + STATUS_GRAPHICS_INVALID_ACTIVE_REGION NTStatus = 0xC01E030B + STATUS_GRAPHICS_INVALID_TOTAL_REGION NTStatus = 0xC01E030C + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE NTStatus = 0xC01E0310 + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE NTStatus = 0xC01E0311 + STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET NTStatus = 0xC01E0312 + STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY NTStatus = 0xC01E0313 + STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET NTStatus = 0xC01E0314 + STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET NTStatus = 0xC01E0315 + STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET NTStatus = 0xC01E0316 + STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET NTStatus = 0xC01E0317 + STATUS_GRAPHICS_TARGET_ALREADY_IN_SET NTStatus = 0xC01E0318 + STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH NTStatus = 0xC01E0319 + STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY NTStatus = 0xC01E031A + STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET NTStatus = 0xC01E031B + STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE NTStatus = 0xC01E031C + STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET NTStatus = 0xC01E031D + STATUS_GRAPHICS_NO_PREFERRED_MODE NTStatus = 0x401E031E + STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET NTStatus = 0xC01E031F + STATUS_GRAPHICS_STALE_MODESET NTStatus = 0xC01E0320 + STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET NTStatus = 0xC01E0321 + STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE NTStatus = 0xC01E0322 + STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN NTStatus = 0xC01E0323 + STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0324 + STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION NTStatus = 0xC01E0325 + STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES NTStatus = 0xC01E0326 + STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY NTStatus = 0xC01E0327 + STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE NTStatus = 0xC01E0328 + STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET NTStatus = 0xC01E0329 + STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET NTStatus = 0xC01E032A + STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR NTStatus = 0xC01E032B + STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET NTStatus = 0xC01E032C + STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET NTStatus = 0xC01E032D + STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE NTStatus = 0xC01E032E + STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE NTStatus = 0xC01E032F + STATUS_GRAPHICS_RESOURCES_NOT_RELATED NTStatus = 0xC01E0330 + STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0331 + STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0332 + STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET NTStatus = 0xC01E0333 + STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER NTStatus = 0xC01E0334 + STATUS_GRAPHICS_NO_VIDPNMGR NTStatus = 0xC01E0335 + STATUS_GRAPHICS_NO_ACTIVE_VIDPN NTStatus = 0xC01E0336 + STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY NTStatus = 0xC01E0337 + STATUS_GRAPHICS_MONITOR_NOT_CONNECTED NTStatus = 0xC01E0338 + STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY NTStatus = 0xC01E0339 + STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE NTStatus = 0xC01E033A + STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE NTStatus = 0xC01E033B + STATUS_GRAPHICS_INVALID_STRIDE NTStatus = 0xC01E033C + STATUS_GRAPHICS_INVALID_PIXELFORMAT NTStatus = 0xC01E033D + STATUS_GRAPHICS_INVALID_COLORBASIS NTStatus = 0xC01E033E + STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE NTStatus = 0xC01E033F + STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY NTStatus = 0xC01E0340 + STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT NTStatus = 0xC01E0341 + STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE NTStatus = 0xC01E0342 + STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN NTStatus = 0xC01E0343 + STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL NTStatus = 0xC01E0344 + STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION NTStatus = 0xC01E0345 + STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED NTStatus = 0xC01E0346 + STATUS_GRAPHICS_INVALID_GAMMA_RAMP NTStatus = 0xC01E0347 + STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED NTStatus = 0xC01E0348 + STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED NTStatus = 0xC01E0349 + STATUS_GRAPHICS_MODE_NOT_IN_MODESET NTStatus = 0xC01E034A + STATUS_GRAPHICS_DATASET_IS_EMPTY NTStatus = 0x401E034B + STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET NTStatus = 0x401E034C + STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON NTStatus = 0xC01E034D + STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE NTStatus = 0xC01E034E + STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE NTStatus = 0xC01E034F + STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS NTStatus = 0xC01E0350 + STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED NTStatus = 0x401E0351 + STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING NTStatus = 0xC01E0352 + STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED NTStatus = 0xC01E0353 + STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS NTStatus = 0xC01E0354 + STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT NTStatus = 0xC01E0355 + STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM NTStatus = 0xC01E0356 + STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN NTStatus = 0xC01E0357 + STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT NTStatus = 0xC01E0358 + STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED NTStatus = 0xC01E0359 + STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION NTStatus = 0xC01E035A + STATUS_GRAPHICS_INVALID_CLIENT_TYPE NTStatus = 0xC01E035B + STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET NTStatus = 0xC01E035C + STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED NTStatus = 0xC01E0400 + STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED NTStatus = 0xC01E0401 + STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS NTStatus = 0x401E042F + STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER NTStatus = 0xC01E0430 + STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED NTStatus = 0xC01E0431 + STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED NTStatus = 0xC01E0432 + STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY NTStatus = 0xC01E0433 + STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED NTStatus = 0xC01E0434 + STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON NTStatus = 0xC01E0435 + STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE NTStatus = 0xC01E0436 + STATUS_GRAPHICS_LEADLINK_START_DEFERRED NTStatus = 0x401E0437 + STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER NTStatus = 0xC01E0438 + STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY NTStatus = 0x401E0439 + STATUS_GRAPHICS_START_DEFERRED NTStatus = 0x401E043A + STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED NTStatus = 0xC01E043B + STATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS NTStatus = 0x401E043C + STATUS_GRAPHICS_OPM_NOT_SUPPORTED NTStatus = 0xC01E0500 + STATUS_GRAPHICS_COPP_NOT_SUPPORTED NTStatus = 0xC01E0501 + STATUS_GRAPHICS_UAB_NOT_SUPPORTED NTStatus = 0xC01E0502 + STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS NTStatus = 0xC01E0503 + STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST NTStatus = 0xC01E0505 + STATUS_GRAPHICS_OPM_INTERNAL_ERROR NTStatus = 0xC01E050B + STATUS_GRAPHICS_OPM_INVALID_HANDLE NTStatus = 0xC01E050C + STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH NTStatus = 0xC01E050E + STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED NTStatus = 0xC01E050F + STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED NTStatus = 0xC01E0510 + STATUS_GRAPHICS_PVP_HFS_FAILED NTStatus = 0xC01E0511 + STATUS_GRAPHICS_OPM_INVALID_SRM NTStatus = 0xC01E0512 + STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP NTStatus = 0xC01E0513 + STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP NTStatus = 0xC01E0514 + STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA NTStatus = 0xC01E0515 + STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET NTStatus = 0xC01E0516 + STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH NTStatus = 0xC01E0517 + STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE NTStatus = 0xC01E0518 + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS NTStatus = 0xC01E051A + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS NTStatus = 0xC01E051C + STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST NTStatus = 0xC01E051D + STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR NTStatus = 0xC01E051E + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS NTStatus = 0xC01E051F + STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED NTStatus = 0xC01E0520 + STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST NTStatus = 0xC01E0521 + STATUS_GRAPHICS_I2C_NOT_SUPPORTED NTStatus = 0xC01E0580 + STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST NTStatus = 0xC01E0581 + STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA NTStatus = 0xC01E0582 + STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA NTStatus = 0xC01E0583 + STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED NTStatus = 0xC01E0584 + STATUS_GRAPHICS_DDCCI_INVALID_DATA NTStatus = 0xC01E0585 + STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE NTStatus = 0xC01E0586 + STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING NTStatus = 0xC01E0587 + STATUS_GRAPHICS_MCA_INTERNAL_ERROR NTStatus = 0xC01E0588 + STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND NTStatus = 0xC01E0589 + STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH NTStatus = 0xC01E058A + STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM NTStatus = 0xC01E058B + STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE NTStatus = 0xC01E058C + STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS NTStatus = 0xC01E058D + STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED NTStatus = 0xC01E05E0 + STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME NTStatus = 0xC01E05E1 + STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP NTStatus = 0xC01E05E2 + STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED NTStatus = 0xC01E05E3 + STATUS_GRAPHICS_INVALID_POINTER NTStatus = 0xC01E05E4 + STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE NTStatus = 0xC01E05E5 + STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL NTStatus = 0xC01E05E6 + STATUS_GRAPHICS_INTERNAL_ERROR NTStatus = 0xC01E05E7 + STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS NTStatus = 0xC01E05E8 + STATUS_FVE_LOCKED_VOLUME NTStatus = 0xC0210000 + STATUS_FVE_NOT_ENCRYPTED NTStatus = 0xC0210001 + STATUS_FVE_BAD_INFORMATION NTStatus = 0xC0210002 + STATUS_FVE_TOO_SMALL NTStatus = 0xC0210003 + STATUS_FVE_FAILED_WRONG_FS NTStatus = 0xC0210004 + STATUS_FVE_BAD_PARTITION_SIZE NTStatus = 0xC0210005 + STATUS_FVE_FS_NOT_EXTENDED NTStatus = 0xC0210006 + STATUS_FVE_FS_MOUNTED NTStatus = 0xC0210007 + STATUS_FVE_NO_LICENSE NTStatus = 0xC0210008 + STATUS_FVE_ACTION_NOT_ALLOWED NTStatus = 0xC0210009 + STATUS_FVE_BAD_DATA NTStatus = 0xC021000A + STATUS_FVE_VOLUME_NOT_BOUND NTStatus = 0xC021000B + STATUS_FVE_NOT_DATA_VOLUME NTStatus = 0xC021000C + STATUS_FVE_CONV_READ_ERROR NTStatus = 0xC021000D + STATUS_FVE_CONV_WRITE_ERROR NTStatus = 0xC021000E + STATUS_FVE_OVERLAPPED_UPDATE NTStatus = 0xC021000F + STATUS_FVE_FAILED_SECTOR_SIZE NTStatus = 0xC0210010 + STATUS_FVE_FAILED_AUTHENTICATION NTStatus = 0xC0210011 + STATUS_FVE_NOT_OS_VOLUME NTStatus = 0xC0210012 + STATUS_FVE_KEYFILE_NOT_FOUND NTStatus = 0xC0210013 + STATUS_FVE_KEYFILE_INVALID NTStatus = 0xC0210014 + STATUS_FVE_KEYFILE_NO_VMK NTStatus = 0xC0210015 + STATUS_FVE_TPM_DISABLED NTStatus = 0xC0210016 + STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO NTStatus = 0xC0210017 + STATUS_FVE_TPM_INVALID_PCR NTStatus = 0xC0210018 + STATUS_FVE_TPM_NO_VMK NTStatus = 0xC0210019 + STATUS_FVE_PIN_INVALID NTStatus = 0xC021001A + STATUS_FVE_AUTH_INVALID_APPLICATION NTStatus = 0xC021001B + STATUS_FVE_AUTH_INVALID_CONFIG NTStatus = 0xC021001C + STATUS_FVE_DEBUGGER_ENABLED NTStatus = 0xC021001D + STATUS_FVE_DRY_RUN_FAILED NTStatus = 0xC021001E + STATUS_FVE_BAD_METADATA_POINTER NTStatus = 0xC021001F + STATUS_FVE_OLD_METADATA_COPY NTStatus = 0xC0210020 + STATUS_FVE_REBOOT_REQUIRED NTStatus = 0xC0210021 + STATUS_FVE_RAW_ACCESS NTStatus = 0xC0210022 + STATUS_FVE_RAW_BLOCKED NTStatus = 0xC0210023 + STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY NTStatus = 0xC0210024 + STATUS_FVE_MOR_FAILED NTStatus = 0xC0210025 + STATUS_FVE_NO_FEATURE_LICENSE NTStatus = 0xC0210026 + STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED NTStatus = 0xC0210027 + STATUS_FVE_CONV_RECOVERY_FAILED NTStatus = 0xC0210028 + STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG NTStatus = 0xC0210029 + STATUS_FVE_INVALID_DATUM_TYPE NTStatus = 0xC021002A + STATUS_FVE_VOLUME_TOO_SMALL NTStatus = 0xC0210030 + STATUS_FVE_ENH_PIN_INVALID NTStatus = 0xC0210031 + STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210032 + STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210033 + STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK NTStatus = 0xC0210034 + STATUS_FVE_NOT_ALLOWED_ON_CLUSTER NTStatus = 0xC0210035 + STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING NTStatus = 0xC0210036 + STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE NTStatus = 0xC0210037 + STATUS_FVE_EDRIVE_DRY_RUN_FAILED NTStatus = 0xC0210038 + STATUS_FVE_SECUREBOOT_DISABLED NTStatus = 0xC0210039 + STATUS_FVE_SECUREBOOT_CONFIG_CHANGE NTStatus = 0xC021003A + STATUS_FVE_DEVICE_LOCKEDOUT NTStatus = 0xC021003B + STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT NTStatus = 0xC021003C + STATUS_FVE_NOT_DE_VOLUME NTStatus = 0xC021003D + STATUS_FVE_PROTECTION_DISABLED NTStatus = 0xC021003E + STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED NTStatus = 0xC021003F + STATUS_FVE_OSV_KSR_NOT_ALLOWED NTStatus = 0xC0210040 + STATUS_FWP_CALLOUT_NOT_FOUND NTStatus = 0xC0220001 + STATUS_FWP_CONDITION_NOT_FOUND NTStatus = 0xC0220002 + STATUS_FWP_FILTER_NOT_FOUND NTStatus = 0xC0220003 + STATUS_FWP_LAYER_NOT_FOUND NTStatus = 0xC0220004 + STATUS_FWP_PROVIDER_NOT_FOUND NTStatus = 0xC0220005 + STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND NTStatus = 0xC0220006 + STATUS_FWP_SUBLAYER_NOT_FOUND NTStatus = 0xC0220007 + STATUS_FWP_NOT_FOUND NTStatus = 0xC0220008 + STATUS_FWP_ALREADY_EXISTS NTStatus = 0xC0220009 + STATUS_FWP_IN_USE NTStatus = 0xC022000A + STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS NTStatus = 0xC022000B + STATUS_FWP_WRONG_SESSION NTStatus = 0xC022000C + STATUS_FWP_NO_TXN_IN_PROGRESS NTStatus = 0xC022000D + STATUS_FWP_TXN_IN_PROGRESS NTStatus = 0xC022000E + STATUS_FWP_TXN_ABORTED NTStatus = 0xC022000F + STATUS_FWP_SESSION_ABORTED NTStatus = 0xC0220010 + STATUS_FWP_INCOMPATIBLE_TXN NTStatus = 0xC0220011 + STATUS_FWP_TIMEOUT NTStatus = 0xC0220012 + STATUS_FWP_NET_EVENTS_DISABLED NTStatus = 0xC0220013 + STATUS_FWP_INCOMPATIBLE_LAYER NTStatus = 0xC0220014 + STATUS_FWP_KM_CLIENTS_ONLY NTStatus = 0xC0220015 + STATUS_FWP_LIFETIME_MISMATCH NTStatus = 0xC0220016 + STATUS_FWP_BUILTIN_OBJECT NTStatus = 0xC0220017 + STATUS_FWP_TOO_MANY_CALLOUTS NTStatus = 0xC0220018 + STATUS_FWP_NOTIFICATION_DROPPED NTStatus = 0xC0220019 + STATUS_FWP_TRAFFIC_MISMATCH NTStatus = 0xC022001A + STATUS_FWP_INCOMPATIBLE_SA_STATE NTStatus = 0xC022001B + STATUS_FWP_NULL_POINTER NTStatus = 0xC022001C + STATUS_FWP_INVALID_ENUMERATOR NTStatus = 0xC022001D + STATUS_FWP_INVALID_FLAGS NTStatus = 0xC022001E + STATUS_FWP_INVALID_NET_MASK NTStatus = 0xC022001F + STATUS_FWP_INVALID_RANGE NTStatus = 0xC0220020 + STATUS_FWP_INVALID_INTERVAL NTStatus = 0xC0220021 + STATUS_FWP_ZERO_LENGTH_ARRAY NTStatus = 0xC0220022 + STATUS_FWP_NULL_DISPLAY_NAME NTStatus = 0xC0220023 + STATUS_FWP_INVALID_ACTION_TYPE NTStatus = 0xC0220024 + STATUS_FWP_INVALID_WEIGHT NTStatus = 0xC0220025 + STATUS_FWP_MATCH_TYPE_MISMATCH NTStatus = 0xC0220026 + STATUS_FWP_TYPE_MISMATCH NTStatus = 0xC0220027 + STATUS_FWP_OUT_OF_BOUNDS NTStatus = 0xC0220028 + STATUS_FWP_RESERVED NTStatus = 0xC0220029 + STATUS_FWP_DUPLICATE_CONDITION NTStatus = 0xC022002A + STATUS_FWP_DUPLICATE_KEYMOD NTStatus = 0xC022002B + STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002C + STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER NTStatus = 0xC022002D + STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002E + STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT NTStatus = 0xC022002F + STATUS_FWP_INCOMPATIBLE_AUTH_METHOD NTStatus = 0xC0220030 + STATUS_FWP_INCOMPATIBLE_DH_GROUP NTStatus = 0xC0220031 + STATUS_FWP_EM_NOT_SUPPORTED NTStatus = 0xC0220032 + STATUS_FWP_NEVER_MATCH NTStatus = 0xC0220033 + STATUS_FWP_PROVIDER_CONTEXT_MISMATCH NTStatus = 0xC0220034 + STATUS_FWP_INVALID_PARAMETER NTStatus = 0xC0220035 + STATUS_FWP_TOO_MANY_SUBLAYERS NTStatus = 0xC0220036 + STATUS_FWP_CALLOUT_NOTIFICATION_FAILED NTStatus = 0xC0220037 + STATUS_FWP_INVALID_AUTH_TRANSFORM NTStatus = 0xC0220038 + STATUS_FWP_INVALID_CIPHER_TRANSFORM NTStatus = 0xC0220039 + STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM NTStatus = 0xC022003A + STATUS_FWP_INVALID_TRANSFORM_COMBINATION NTStatus = 0xC022003B + STATUS_FWP_DUPLICATE_AUTH_METHOD NTStatus = 0xC022003C + STATUS_FWP_INVALID_TUNNEL_ENDPOINT NTStatus = 0xC022003D + STATUS_FWP_L2_DRIVER_NOT_READY NTStatus = 0xC022003E + STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED NTStatus = 0xC022003F + STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL NTStatus = 0xC0220040 + STATUS_FWP_CONNECTIONS_DISABLED NTStatus = 0xC0220041 + STATUS_FWP_INVALID_DNS_NAME NTStatus = 0xC0220042 + STATUS_FWP_STILL_ON NTStatus = 0xC0220043 + STATUS_FWP_IKEEXT_NOT_RUNNING NTStatus = 0xC0220044 + STATUS_FWP_TCPIP_NOT_READY NTStatus = 0xC0220100 + STATUS_FWP_INJECT_HANDLE_CLOSING NTStatus = 0xC0220101 + STATUS_FWP_INJECT_HANDLE_STALE NTStatus = 0xC0220102 + STATUS_FWP_CANNOT_PEND NTStatus = 0xC0220103 + STATUS_FWP_DROP_NOICMP NTStatus = 0xC0220104 + STATUS_NDIS_CLOSING NTStatus = 0xC0230002 + STATUS_NDIS_BAD_VERSION NTStatus = 0xC0230004 + STATUS_NDIS_BAD_CHARACTERISTICS NTStatus = 0xC0230005 + STATUS_NDIS_ADAPTER_NOT_FOUND NTStatus = 0xC0230006 + STATUS_NDIS_OPEN_FAILED NTStatus = 0xC0230007 + STATUS_NDIS_DEVICE_FAILED NTStatus = 0xC0230008 + STATUS_NDIS_MULTICAST_FULL NTStatus = 0xC0230009 + STATUS_NDIS_MULTICAST_EXISTS NTStatus = 0xC023000A + STATUS_NDIS_MULTICAST_NOT_FOUND NTStatus = 0xC023000B + STATUS_NDIS_REQUEST_ABORTED NTStatus = 0xC023000C + STATUS_NDIS_RESET_IN_PROGRESS NTStatus = 0xC023000D + STATUS_NDIS_NOT_SUPPORTED NTStatus = 0xC02300BB + STATUS_NDIS_INVALID_PACKET NTStatus = 0xC023000F + STATUS_NDIS_ADAPTER_NOT_READY NTStatus = 0xC0230011 + STATUS_NDIS_INVALID_LENGTH NTStatus = 0xC0230014 + STATUS_NDIS_INVALID_DATA NTStatus = 0xC0230015 + STATUS_NDIS_BUFFER_TOO_SHORT NTStatus = 0xC0230016 + STATUS_NDIS_INVALID_OID NTStatus = 0xC0230017 + STATUS_NDIS_ADAPTER_REMOVED NTStatus = 0xC0230018 + STATUS_NDIS_UNSUPPORTED_MEDIA NTStatus = 0xC0230019 + STATUS_NDIS_GROUP_ADDRESS_IN_USE NTStatus = 0xC023001A + STATUS_NDIS_FILE_NOT_FOUND NTStatus = 0xC023001B + STATUS_NDIS_ERROR_READING_FILE NTStatus = 0xC023001C + STATUS_NDIS_ALREADY_MAPPED NTStatus = 0xC023001D + STATUS_NDIS_RESOURCE_CONFLICT NTStatus = 0xC023001E + STATUS_NDIS_MEDIA_DISCONNECTED NTStatus = 0xC023001F + STATUS_NDIS_INVALID_ADDRESS NTStatus = 0xC0230022 + STATUS_NDIS_INVALID_DEVICE_REQUEST NTStatus = 0xC0230010 + STATUS_NDIS_PAUSED NTStatus = 0xC023002A + STATUS_NDIS_INTERFACE_NOT_FOUND NTStatus = 0xC023002B + STATUS_NDIS_UNSUPPORTED_REVISION NTStatus = 0xC023002C + STATUS_NDIS_INVALID_PORT NTStatus = 0xC023002D + STATUS_NDIS_INVALID_PORT_STATE NTStatus = 0xC023002E + STATUS_NDIS_LOW_POWER_STATE NTStatus = 0xC023002F + STATUS_NDIS_REINIT_REQUIRED NTStatus = 0xC0230030 + STATUS_NDIS_NO_QUEUES NTStatus = 0xC0230031 + STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED NTStatus = 0xC0232000 + STATUS_NDIS_DOT11_MEDIA_IN_USE NTStatus = 0xC0232001 + STATUS_NDIS_DOT11_POWER_STATE_INVALID NTStatus = 0xC0232002 + STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL NTStatus = 0xC0232003 + STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL NTStatus = 0xC0232004 + STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232005 + STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232006 + STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED NTStatus = 0xC0232007 + STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED NTStatus = 0xC0232008 + STATUS_NDIS_INDICATION_REQUIRED NTStatus = 0x40230001 + STATUS_NDIS_OFFLOAD_POLICY NTStatus = 0xC023100F + STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED NTStatus = 0xC0231012 + STATUS_NDIS_OFFLOAD_PATH_REJECTED NTStatus = 0xC0231013 + STATUS_TPM_ERROR_MASK NTStatus = 0xC0290000 + STATUS_TPM_AUTHFAIL NTStatus = 0xC0290001 + STATUS_TPM_BADINDEX NTStatus = 0xC0290002 + STATUS_TPM_BAD_PARAMETER NTStatus = 0xC0290003 + STATUS_TPM_AUDITFAILURE NTStatus = 0xC0290004 + STATUS_TPM_CLEAR_DISABLED NTStatus = 0xC0290005 + STATUS_TPM_DEACTIVATED NTStatus = 0xC0290006 + STATUS_TPM_DISABLED NTStatus = 0xC0290007 + STATUS_TPM_DISABLED_CMD NTStatus = 0xC0290008 + STATUS_TPM_FAIL NTStatus = 0xC0290009 + STATUS_TPM_BAD_ORDINAL NTStatus = 0xC029000A + STATUS_TPM_INSTALL_DISABLED NTStatus = 0xC029000B + STATUS_TPM_INVALID_KEYHANDLE NTStatus = 0xC029000C + STATUS_TPM_KEYNOTFOUND NTStatus = 0xC029000D + STATUS_TPM_INAPPROPRIATE_ENC NTStatus = 0xC029000E + STATUS_TPM_MIGRATEFAIL NTStatus = 0xC029000F + STATUS_TPM_INVALID_PCR_INFO NTStatus = 0xC0290010 + STATUS_TPM_NOSPACE NTStatus = 0xC0290011 + STATUS_TPM_NOSRK NTStatus = 0xC0290012 + STATUS_TPM_NOTSEALED_BLOB NTStatus = 0xC0290013 + STATUS_TPM_OWNER_SET NTStatus = 0xC0290014 + STATUS_TPM_RESOURCES NTStatus = 0xC0290015 + STATUS_TPM_SHORTRANDOM NTStatus = 0xC0290016 + STATUS_TPM_SIZE NTStatus = 0xC0290017 + STATUS_TPM_WRONGPCRVAL NTStatus = 0xC0290018 + STATUS_TPM_BAD_PARAM_SIZE NTStatus = 0xC0290019 + STATUS_TPM_SHA_THREAD NTStatus = 0xC029001A + STATUS_TPM_SHA_ERROR NTStatus = 0xC029001B + STATUS_TPM_FAILEDSELFTEST NTStatus = 0xC029001C + STATUS_TPM_AUTH2FAIL NTStatus = 0xC029001D + STATUS_TPM_BADTAG NTStatus = 0xC029001E + STATUS_TPM_IOERROR NTStatus = 0xC029001F + STATUS_TPM_ENCRYPT_ERROR NTStatus = 0xC0290020 + STATUS_TPM_DECRYPT_ERROR NTStatus = 0xC0290021 + STATUS_TPM_INVALID_AUTHHANDLE NTStatus = 0xC0290022 + STATUS_TPM_NO_ENDORSEMENT NTStatus = 0xC0290023 + STATUS_TPM_INVALID_KEYUSAGE NTStatus = 0xC0290024 + STATUS_TPM_WRONG_ENTITYTYPE NTStatus = 0xC0290025 + STATUS_TPM_INVALID_POSTINIT NTStatus = 0xC0290026 + STATUS_TPM_INAPPROPRIATE_SIG NTStatus = 0xC0290027 + STATUS_TPM_BAD_KEY_PROPERTY NTStatus = 0xC0290028 + STATUS_TPM_BAD_MIGRATION NTStatus = 0xC0290029 + STATUS_TPM_BAD_SCHEME NTStatus = 0xC029002A + STATUS_TPM_BAD_DATASIZE NTStatus = 0xC029002B + STATUS_TPM_BAD_MODE NTStatus = 0xC029002C + STATUS_TPM_BAD_PRESENCE NTStatus = 0xC029002D + STATUS_TPM_BAD_VERSION NTStatus = 0xC029002E + STATUS_TPM_NO_WRAP_TRANSPORT NTStatus = 0xC029002F + STATUS_TPM_AUDITFAIL_UNSUCCESSFUL NTStatus = 0xC0290030 + STATUS_TPM_AUDITFAIL_SUCCESSFUL NTStatus = 0xC0290031 + STATUS_TPM_NOTRESETABLE NTStatus = 0xC0290032 + STATUS_TPM_NOTLOCAL NTStatus = 0xC0290033 + STATUS_TPM_BAD_TYPE NTStatus = 0xC0290034 + STATUS_TPM_INVALID_RESOURCE NTStatus = 0xC0290035 + STATUS_TPM_NOTFIPS NTStatus = 0xC0290036 + STATUS_TPM_INVALID_FAMILY NTStatus = 0xC0290037 + STATUS_TPM_NO_NV_PERMISSION NTStatus = 0xC0290038 + STATUS_TPM_REQUIRES_SIGN NTStatus = 0xC0290039 + STATUS_TPM_KEY_NOTSUPPORTED NTStatus = 0xC029003A + STATUS_TPM_AUTH_CONFLICT NTStatus = 0xC029003B + STATUS_TPM_AREA_LOCKED NTStatus = 0xC029003C + STATUS_TPM_BAD_LOCALITY NTStatus = 0xC029003D + STATUS_TPM_READ_ONLY NTStatus = 0xC029003E + STATUS_TPM_PER_NOWRITE NTStatus = 0xC029003F + STATUS_TPM_FAMILYCOUNT NTStatus = 0xC0290040 + STATUS_TPM_WRITE_LOCKED NTStatus = 0xC0290041 + STATUS_TPM_BAD_ATTRIBUTES NTStatus = 0xC0290042 + STATUS_TPM_INVALID_STRUCTURE NTStatus = 0xC0290043 + STATUS_TPM_KEY_OWNER_CONTROL NTStatus = 0xC0290044 + STATUS_TPM_BAD_COUNTER NTStatus = 0xC0290045 + STATUS_TPM_NOT_FULLWRITE NTStatus = 0xC0290046 + STATUS_TPM_CONTEXT_GAP NTStatus = 0xC0290047 + STATUS_TPM_MAXNVWRITES NTStatus = 0xC0290048 + STATUS_TPM_NOOPERATOR NTStatus = 0xC0290049 + STATUS_TPM_RESOURCEMISSING NTStatus = 0xC029004A + STATUS_TPM_DELEGATE_LOCK NTStatus = 0xC029004B + STATUS_TPM_DELEGATE_FAMILY NTStatus = 0xC029004C + STATUS_TPM_DELEGATE_ADMIN NTStatus = 0xC029004D + STATUS_TPM_TRANSPORT_NOTEXCLUSIVE NTStatus = 0xC029004E + STATUS_TPM_OWNER_CONTROL NTStatus = 0xC029004F + STATUS_TPM_DAA_RESOURCES NTStatus = 0xC0290050 + STATUS_TPM_DAA_INPUT_DATA0 NTStatus = 0xC0290051 + STATUS_TPM_DAA_INPUT_DATA1 NTStatus = 0xC0290052 + STATUS_TPM_DAA_ISSUER_SETTINGS NTStatus = 0xC0290053 + STATUS_TPM_DAA_TPM_SETTINGS NTStatus = 0xC0290054 + STATUS_TPM_DAA_STAGE NTStatus = 0xC0290055 + STATUS_TPM_DAA_ISSUER_VALIDITY NTStatus = 0xC0290056 + STATUS_TPM_DAA_WRONG_W NTStatus = 0xC0290057 + STATUS_TPM_BAD_HANDLE NTStatus = 0xC0290058 + STATUS_TPM_BAD_DELEGATE NTStatus = 0xC0290059 + STATUS_TPM_BADCONTEXT NTStatus = 0xC029005A + STATUS_TPM_TOOMANYCONTEXTS NTStatus = 0xC029005B + STATUS_TPM_MA_TICKET_SIGNATURE NTStatus = 0xC029005C + STATUS_TPM_MA_DESTINATION NTStatus = 0xC029005D + STATUS_TPM_MA_SOURCE NTStatus = 0xC029005E + STATUS_TPM_MA_AUTHORITY NTStatus = 0xC029005F + STATUS_TPM_PERMANENTEK NTStatus = 0xC0290061 + STATUS_TPM_BAD_SIGNATURE NTStatus = 0xC0290062 + STATUS_TPM_NOCONTEXTSPACE NTStatus = 0xC0290063 + STATUS_TPM_20_E_ASYMMETRIC NTStatus = 0xC0290081 + STATUS_TPM_20_E_ATTRIBUTES NTStatus = 0xC0290082 + STATUS_TPM_20_E_HASH NTStatus = 0xC0290083 + STATUS_TPM_20_E_VALUE NTStatus = 0xC0290084 + STATUS_TPM_20_E_HIERARCHY NTStatus = 0xC0290085 + STATUS_TPM_20_E_KEY_SIZE NTStatus = 0xC0290087 + STATUS_TPM_20_E_MGF NTStatus = 0xC0290088 + STATUS_TPM_20_E_MODE NTStatus = 0xC0290089 + STATUS_TPM_20_E_TYPE NTStatus = 0xC029008A + STATUS_TPM_20_E_HANDLE NTStatus = 0xC029008B + STATUS_TPM_20_E_KDF NTStatus = 0xC029008C + STATUS_TPM_20_E_RANGE NTStatus = 0xC029008D + STATUS_TPM_20_E_AUTH_FAIL NTStatus = 0xC029008E + STATUS_TPM_20_E_NONCE NTStatus = 0xC029008F + STATUS_TPM_20_E_PP NTStatus = 0xC0290090 + STATUS_TPM_20_E_SCHEME NTStatus = 0xC0290092 + STATUS_TPM_20_E_SIZE NTStatus = 0xC0290095 + STATUS_TPM_20_E_SYMMETRIC NTStatus = 0xC0290096 + STATUS_TPM_20_E_TAG NTStatus = 0xC0290097 + STATUS_TPM_20_E_SELECTOR NTStatus = 0xC0290098 + STATUS_TPM_20_E_INSUFFICIENT NTStatus = 0xC029009A + STATUS_TPM_20_E_SIGNATURE NTStatus = 0xC029009B + STATUS_TPM_20_E_KEY NTStatus = 0xC029009C + STATUS_TPM_20_E_POLICY_FAIL NTStatus = 0xC029009D + STATUS_TPM_20_E_INTEGRITY NTStatus = 0xC029009F + STATUS_TPM_20_E_TICKET NTStatus = 0xC02900A0 + STATUS_TPM_20_E_RESERVED_BITS NTStatus = 0xC02900A1 + STATUS_TPM_20_E_BAD_AUTH NTStatus = 0xC02900A2 + STATUS_TPM_20_E_EXPIRED NTStatus = 0xC02900A3 + STATUS_TPM_20_E_POLICY_CC NTStatus = 0xC02900A4 + STATUS_TPM_20_E_BINDING NTStatus = 0xC02900A5 + STATUS_TPM_20_E_CURVE NTStatus = 0xC02900A6 + STATUS_TPM_20_E_ECC_POINT NTStatus = 0xC02900A7 + STATUS_TPM_20_E_INITIALIZE NTStatus = 0xC0290100 + STATUS_TPM_20_E_FAILURE NTStatus = 0xC0290101 + STATUS_TPM_20_E_SEQUENCE NTStatus = 0xC0290103 + STATUS_TPM_20_E_PRIVATE NTStatus = 0xC029010B + STATUS_TPM_20_E_HMAC NTStatus = 0xC0290119 + STATUS_TPM_20_E_DISABLED NTStatus = 0xC0290120 + STATUS_TPM_20_E_EXCLUSIVE NTStatus = 0xC0290121 + STATUS_TPM_20_E_ECC_CURVE NTStatus = 0xC0290123 + STATUS_TPM_20_E_AUTH_TYPE NTStatus = 0xC0290124 + STATUS_TPM_20_E_AUTH_MISSING NTStatus = 0xC0290125 + STATUS_TPM_20_E_POLICY NTStatus = 0xC0290126 + STATUS_TPM_20_E_PCR NTStatus = 0xC0290127 + STATUS_TPM_20_E_PCR_CHANGED NTStatus = 0xC0290128 + STATUS_TPM_20_E_UPGRADE NTStatus = 0xC029012D + STATUS_TPM_20_E_TOO_MANY_CONTEXTS NTStatus = 0xC029012E + STATUS_TPM_20_E_AUTH_UNAVAILABLE NTStatus = 0xC029012F + STATUS_TPM_20_E_REBOOT NTStatus = 0xC0290130 + STATUS_TPM_20_E_UNBALANCED NTStatus = 0xC0290131 + STATUS_TPM_20_E_COMMAND_SIZE NTStatus = 0xC0290142 + STATUS_TPM_20_E_COMMAND_CODE NTStatus = 0xC0290143 + STATUS_TPM_20_E_AUTHSIZE NTStatus = 0xC0290144 + STATUS_TPM_20_E_AUTH_CONTEXT NTStatus = 0xC0290145 + STATUS_TPM_20_E_NV_RANGE NTStatus = 0xC0290146 + STATUS_TPM_20_E_NV_SIZE NTStatus = 0xC0290147 + STATUS_TPM_20_E_NV_LOCKED NTStatus = 0xC0290148 + STATUS_TPM_20_E_NV_AUTHORIZATION NTStatus = 0xC0290149 + STATUS_TPM_20_E_NV_UNINITIALIZED NTStatus = 0xC029014A + STATUS_TPM_20_E_NV_SPACE NTStatus = 0xC029014B + STATUS_TPM_20_E_NV_DEFINED NTStatus = 0xC029014C + STATUS_TPM_20_E_BAD_CONTEXT NTStatus = 0xC0290150 + STATUS_TPM_20_E_CPHASH NTStatus = 0xC0290151 + STATUS_TPM_20_E_PARENT NTStatus = 0xC0290152 + STATUS_TPM_20_E_NEEDS_TEST NTStatus = 0xC0290153 + STATUS_TPM_20_E_NO_RESULT NTStatus = 0xC0290154 + STATUS_TPM_20_E_SENSITIVE NTStatus = 0xC0290155 + STATUS_TPM_COMMAND_BLOCKED NTStatus = 0xC0290400 + STATUS_TPM_INVALID_HANDLE NTStatus = 0xC0290401 + STATUS_TPM_DUPLICATE_VHANDLE NTStatus = 0xC0290402 + STATUS_TPM_EMBEDDED_COMMAND_BLOCKED NTStatus = 0xC0290403 + STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED NTStatus = 0xC0290404 + STATUS_TPM_RETRY NTStatus = 0xC0290800 + STATUS_TPM_NEEDS_SELFTEST NTStatus = 0xC0290801 + STATUS_TPM_DOING_SELFTEST NTStatus = 0xC0290802 + STATUS_TPM_DEFEND_LOCK_RUNNING NTStatus = 0xC0290803 + STATUS_TPM_COMMAND_CANCELED NTStatus = 0xC0291001 + STATUS_TPM_TOO_MANY_CONTEXTS NTStatus = 0xC0291002 + STATUS_TPM_NOT_FOUND NTStatus = 0xC0291003 + STATUS_TPM_ACCESS_DENIED NTStatus = 0xC0291004 + STATUS_TPM_INSUFFICIENT_BUFFER NTStatus = 0xC0291005 + STATUS_TPM_PPI_FUNCTION_UNSUPPORTED NTStatus = 0xC0291006 + STATUS_PCP_ERROR_MASK NTStatus = 0xC0292000 + STATUS_PCP_DEVICE_NOT_READY NTStatus = 0xC0292001 + STATUS_PCP_INVALID_HANDLE NTStatus = 0xC0292002 + STATUS_PCP_INVALID_PARAMETER NTStatus = 0xC0292003 + STATUS_PCP_FLAG_NOT_SUPPORTED NTStatus = 0xC0292004 + STATUS_PCP_NOT_SUPPORTED NTStatus = 0xC0292005 + STATUS_PCP_BUFFER_TOO_SMALL NTStatus = 0xC0292006 + STATUS_PCP_INTERNAL_ERROR NTStatus = 0xC0292007 + STATUS_PCP_AUTHENTICATION_FAILED NTStatus = 0xC0292008 + STATUS_PCP_AUTHENTICATION_IGNORED NTStatus = 0xC0292009 + STATUS_PCP_POLICY_NOT_FOUND NTStatus = 0xC029200A + STATUS_PCP_PROFILE_NOT_FOUND NTStatus = 0xC029200B + STATUS_PCP_VALIDATION_FAILED NTStatus = 0xC029200C + STATUS_PCP_DEVICE_NOT_FOUND NTStatus = 0xC029200D + STATUS_PCP_WRONG_PARENT NTStatus = 0xC029200E + STATUS_PCP_KEY_NOT_LOADED NTStatus = 0xC029200F + STATUS_PCP_NO_KEY_CERTIFICATION NTStatus = 0xC0292010 + STATUS_PCP_KEY_NOT_FINALIZED NTStatus = 0xC0292011 + STATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET NTStatus = 0xC0292012 + STATUS_PCP_NOT_PCR_BOUND NTStatus = 0xC0292013 + STATUS_PCP_KEY_ALREADY_FINALIZED NTStatus = 0xC0292014 + STATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED NTStatus = 0xC0292015 + STATUS_PCP_KEY_USAGE_POLICY_INVALID NTStatus = 0xC0292016 + STATUS_PCP_SOFT_KEY_ERROR NTStatus = 0xC0292017 + STATUS_PCP_KEY_NOT_AUTHENTICATED NTStatus = 0xC0292018 + STATUS_PCP_KEY_NOT_AIK NTStatus = 0xC0292019 + STATUS_PCP_KEY_NOT_SIGNING_KEY NTStatus = 0xC029201A + STATUS_PCP_LOCKED_OUT NTStatus = 0xC029201B + STATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED NTStatus = 0xC029201C + STATUS_PCP_TPM_VERSION_NOT_SUPPORTED NTStatus = 0xC029201D + STATUS_PCP_BUFFER_LENGTH_MISMATCH NTStatus = 0xC029201E + STATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED NTStatus = 0xC029201F + STATUS_PCP_TICKET_MISSING NTStatus = 0xC0292020 + STATUS_PCP_RAW_POLICY_NOT_SUPPORTED NTStatus = 0xC0292021 + STATUS_PCP_KEY_HANDLE_INVALIDATED NTStatus = 0xC0292022 + STATUS_PCP_UNSUPPORTED_PSS_SALT NTStatus = 0x40292023 + STATUS_RTPM_CONTEXT_CONTINUE NTStatus = 0x00293000 + STATUS_RTPM_CONTEXT_COMPLETE NTStatus = 0x00293001 + STATUS_RTPM_NO_RESULT NTStatus = 0xC0293002 + STATUS_RTPM_PCR_READ_INCOMPLETE NTStatus = 0xC0293003 + STATUS_RTPM_INVALID_CONTEXT NTStatus = 0xC0293004 + STATUS_RTPM_UNSUPPORTED_CMD NTStatus = 0xC0293005 + STATUS_TPM_ZERO_EXHAUST_ENABLED NTStatus = 0xC0294000 + STATUS_HV_INVALID_HYPERCALL_CODE NTStatus = 0xC0350002 + STATUS_HV_INVALID_HYPERCALL_INPUT NTStatus = 0xC0350003 + STATUS_HV_INVALID_ALIGNMENT NTStatus = 0xC0350004 + STATUS_HV_INVALID_PARAMETER NTStatus = 0xC0350005 + STATUS_HV_ACCESS_DENIED NTStatus = 0xC0350006 + STATUS_HV_INVALID_PARTITION_STATE NTStatus = 0xC0350007 + STATUS_HV_OPERATION_DENIED NTStatus = 0xC0350008 + STATUS_HV_UNKNOWN_PROPERTY NTStatus = 0xC0350009 + STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE NTStatus = 0xC035000A + STATUS_HV_INSUFFICIENT_MEMORY NTStatus = 0xC035000B + STATUS_HV_PARTITION_TOO_DEEP NTStatus = 0xC035000C + STATUS_HV_INVALID_PARTITION_ID NTStatus = 0xC035000D + STATUS_HV_INVALID_VP_INDEX NTStatus = 0xC035000E + STATUS_HV_INVALID_PORT_ID NTStatus = 0xC0350011 + STATUS_HV_INVALID_CONNECTION_ID NTStatus = 0xC0350012 + STATUS_HV_INSUFFICIENT_BUFFERS NTStatus = 0xC0350013 + STATUS_HV_NOT_ACKNOWLEDGED NTStatus = 0xC0350014 + STATUS_HV_INVALID_VP_STATE NTStatus = 0xC0350015 + STATUS_HV_ACKNOWLEDGED NTStatus = 0xC0350016 + STATUS_HV_INVALID_SAVE_RESTORE_STATE NTStatus = 0xC0350017 + STATUS_HV_INVALID_SYNIC_STATE NTStatus = 0xC0350018 + STATUS_HV_OBJECT_IN_USE NTStatus = 0xC0350019 + STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO NTStatus = 0xC035001A + STATUS_HV_NO_DATA NTStatus = 0xC035001B + STATUS_HV_INACTIVE NTStatus = 0xC035001C + STATUS_HV_NO_RESOURCES NTStatus = 0xC035001D + STATUS_HV_FEATURE_UNAVAILABLE NTStatus = 0xC035001E + STATUS_HV_INSUFFICIENT_BUFFER NTStatus = 0xC0350033 + STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS NTStatus = 0xC0350038 + STATUS_HV_CPUID_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003C + STATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003D + STATUS_HV_PROCESSOR_STARTUP_TIMEOUT NTStatus = 0xC035003E + STATUS_HV_SMX_ENABLED NTStatus = 0xC035003F + STATUS_HV_INVALID_LP_INDEX NTStatus = 0xC0350041 + STATUS_HV_INVALID_REGISTER_VALUE NTStatus = 0xC0350050 + STATUS_HV_INVALID_VTL_STATE NTStatus = 0xC0350051 + STATUS_HV_NX_NOT_DETECTED NTStatus = 0xC0350055 + STATUS_HV_INVALID_DEVICE_ID NTStatus = 0xC0350057 + STATUS_HV_INVALID_DEVICE_STATE NTStatus = 0xC0350058 + STATUS_HV_PENDING_PAGE_REQUESTS NTStatus = 0x00350059 + STATUS_HV_PAGE_REQUEST_INVALID NTStatus = 0xC0350060 + STATUS_HV_INVALID_CPU_GROUP_ID NTStatus = 0xC035006F + STATUS_HV_INVALID_CPU_GROUP_STATE NTStatus = 0xC0350070 + STATUS_HV_OPERATION_FAILED NTStatus = 0xC0350071 + STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE NTStatus = 0xC0350072 + STATUS_HV_INSUFFICIENT_ROOT_MEMORY NTStatus = 0xC0350073 + STATUS_HV_NOT_PRESENT NTStatus = 0xC0351000 + STATUS_VID_DUPLICATE_HANDLER NTStatus = 0xC0370001 + STATUS_VID_TOO_MANY_HANDLERS NTStatus = 0xC0370002 + STATUS_VID_QUEUE_FULL NTStatus = 0xC0370003 + STATUS_VID_HANDLER_NOT_PRESENT NTStatus = 0xC0370004 + STATUS_VID_INVALID_OBJECT_NAME NTStatus = 0xC0370005 + STATUS_VID_PARTITION_NAME_TOO_LONG NTStatus = 0xC0370006 + STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG NTStatus = 0xC0370007 + STATUS_VID_PARTITION_ALREADY_EXISTS NTStatus = 0xC0370008 + STATUS_VID_PARTITION_DOES_NOT_EXIST NTStatus = 0xC0370009 + STATUS_VID_PARTITION_NAME_NOT_FOUND NTStatus = 0xC037000A + STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS NTStatus = 0xC037000B + STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT NTStatus = 0xC037000C + STATUS_VID_MB_STILL_REFERENCED NTStatus = 0xC037000D + STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED NTStatus = 0xC037000E + STATUS_VID_INVALID_NUMA_SETTINGS NTStatus = 0xC037000F + STATUS_VID_INVALID_NUMA_NODE_INDEX NTStatus = 0xC0370010 + STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED NTStatus = 0xC0370011 + STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE NTStatus = 0xC0370012 + STATUS_VID_PAGE_RANGE_OVERFLOW NTStatus = 0xC0370013 + STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE NTStatus = 0xC0370014 + STATUS_VID_INVALID_GPA_RANGE_HANDLE NTStatus = 0xC0370015 + STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE NTStatus = 0xC0370016 + STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED NTStatus = 0xC0370017 + STATUS_VID_INVALID_PPM_HANDLE NTStatus = 0xC0370018 + STATUS_VID_MBPS_ARE_LOCKED NTStatus = 0xC0370019 + STATUS_VID_MESSAGE_QUEUE_CLOSED NTStatus = 0xC037001A + STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED NTStatus = 0xC037001B + STATUS_VID_STOP_PENDING NTStatus = 0xC037001C + STATUS_VID_INVALID_PROCESSOR_STATE NTStatus = 0xC037001D + STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT NTStatus = 0xC037001E + STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED NTStatus = 0xC037001F + STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET NTStatus = 0xC0370020 + STATUS_VID_MMIO_RANGE_DESTROYED NTStatus = 0xC0370021 + STATUS_VID_INVALID_CHILD_GPA_PAGE_SET NTStatus = 0xC0370022 + STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED NTStatus = 0xC0370023 + STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL NTStatus = 0xC0370024 + STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE NTStatus = 0xC0370025 + STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT NTStatus = 0xC0370026 + STATUS_VID_SAVED_STATE_CORRUPT NTStatus = 0xC0370027 + STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM NTStatus = 0xC0370028 + STATUS_VID_SAVED_STATE_INCOMPATIBLE NTStatus = 0xC0370029 + STATUS_VID_VTL_ACCESS_DENIED NTStatus = 0xC037002A + STATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED NTStatus = 0x80370001 + STATUS_IPSEC_BAD_SPI NTStatus = 0xC0360001 + STATUS_IPSEC_SA_LIFETIME_EXPIRED NTStatus = 0xC0360002 + STATUS_IPSEC_WRONG_SA NTStatus = 0xC0360003 + STATUS_IPSEC_REPLAY_CHECK_FAILED NTStatus = 0xC0360004 + STATUS_IPSEC_INVALID_PACKET NTStatus = 0xC0360005 + STATUS_IPSEC_INTEGRITY_CHECK_FAILED NTStatus = 0xC0360006 + STATUS_IPSEC_CLEAR_TEXT_DROP NTStatus = 0xC0360007 + STATUS_IPSEC_AUTH_FIREWALL_DROP NTStatus = 0xC0360008 + STATUS_IPSEC_THROTTLE_DROP NTStatus = 0xC0360009 + STATUS_IPSEC_DOSP_BLOCK NTStatus = 0xC0368000 + STATUS_IPSEC_DOSP_RECEIVED_MULTICAST NTStatus = 0xC0368001 + STATUS_IPSEC_DOSP_INVALID_PACKET NTStatus = 0xC0368002 + STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED NTStatus = 0xC0368003 + STATUS_IPSEC_DOSP_MAX_ENTRIES NTStatus = 0xC0368004 + STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED NTStatus = 0xC0368005 + STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES NTStatus = 0xC0368006 + STATUS_VOLMGR_INCOMPLETE_REGENERATION NTStatus = 0x80380001 + STATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION NTStatus = 0x80380002 + STATUS_VOLMGR_DATABASE_FULL NTStatus = 0xC0380001 + STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED NTStatus = 0xC0380002 + STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC NTStatus = 0xC0380003 + STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED NTStatus = 0xC0380004 + STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME NTStatus = 0xC0380005 + STATUS_VOLMGR_DISK_DUPLICATE NTStatus = 0xC0380006 + STATUS_VOLMGR_DISK_DYNAMIC NTStatus = 0xC0380007 + STATUS_VOLMGR_DISK_ID_INVALID NTStatus = 0xC0380008 + STATUS_VOLMGR_DISK_INVALID NTStatus = 0xC0380009 + STATUS_VOLMGR_DISK_LAST_VOTER NTStatus = 0xC038000A + STATUS_VOLMGR_DISK_LAYOUT_INVALID NTStatus = 0xC038000B + STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS NTStatus = 0xC038000C + STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED NTStatus = 0xC038000D + STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL NTStatus = 0xC038000E + STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS NTStatus = 0xC038000F + STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS NTStatus = 0xC0380010 + STATUS_VOLMGR_DISK_MISSING NTStatus = 0xC0380011 + STATUS_VOLMGR_DISK_NOT_EMPTY NTStatus = 0xC0380012 + STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE NTStatus = 0xC0380013 + STATUS_VOLMGR_DISK_REVECTORING_FAILED NTStatus = 0xC0380014 + STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID NTStatus = 0xC0380015 + STATUS_VOLMGR_DISK_SET_NOT_CONTAINED NTStatus = 0xC0380016 + STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS NTStatus = 0xC0380017 + STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES NTStatus = 0xC0380018 + STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED NTStatus = 0xC0380019 + STATUS_VOLMGR_EXTENT_ALREADY_USED NTStatus = 0xC038001A + STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS NTStatus = 0xC038001B + STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION NTStatus = 0xC038001C + STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED NTStatus = 0xC038001D + STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION NTStatus = 0xC038001E + STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH NTStatus = 0xC038001F + STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED NTStatus = 0xC0380020 + STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0380021 + STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS NTStatus = 0xC0380022 + STATUS_VOLMGR_MEMBER_IN_SYNC NTStatus = 0xC0380023 + STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE NTStatus = 0xC0380024 + STATUS_VOLMGR_MEMBER_INDEX_INVALID NTStatus = 0xC0380025 + STATUS_VOLMGR_MEMBER_MISSING NTStatus = 0xC0380026 + STATUS_VOLMGR_MEMBER_NOT_DETACHED NTStatus = 0xC0380027 + STATUS_VOLMGR_MEMBER_REGENERATING NTStatus = 0xC0380028 + STATUS_VOLMGR_ALL_DISKS_FAILED NTStatus = 0xC0380029 + STATUS_VOLMGR_NO_REGISTERED_USERS NTStatus = 0xC038002A + STATUS_VOLMGR_NO_SUCH_USER NTStatus = 0xC038002B + STATUS_VOLMGR_NOTIFICATION_RESET NTStatus = 0xC038002C + STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID NTStatus = 0xC038002D + STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID NTStatus = 0xC038002E + STATUS_VOLMGR_PACK_DUPLICATE NTStatus = 0xC038002F + STATUS_VOLMGR_PACK_ID_INVALID NTStatus = 0xC0380030 + STATUS_VOLMGR_PACK_INVALID NTStatus = 0xC0380031 + STATUS_VOLMGR_PACK_NAME_INVALID NTStatus = 0xC0380032 + STATUS_VOLMGR_PACK_OFFLINE NTStatus = 0xC0380033 + STATUS_VOLMGR_PACK_HAS_QUORUM NTStatus = 0xC0380034 + STATUS_VOLMGR_PACK_WITHOUT_QUORUM NTStatus = 0xC0380035 + STATUS_VOLMGR_PARTITION_STYLE_INVALID NTStatus = 0xC0380036 + STATUS_VOLMGR_PARTITION_UPDATE_FAILED NTStatus = 0xC0380037 + STATUS_VOLMGR_PLEX_IN_SYNC NTStatus = 0xC0380038 + STATUS_VOLMGR_PLEX_INDEX_DUPLICATE NTStatus = 0xC0380039 + STATUS_VOLMGR_PLEX_INDEX_INVALID NTStatus = 0xC038003A + STATUS_VOLMGR_PLEX_LAST_ACTIVE NTStatus = 0xC038003B + STATUS_VOLMGR_PLEX_MISSING NTStatus = 0xC038003C + STATUS_VOLMGR_PLEX_REGENERATING NTStatus = 0xC038003D + STATUS_VOLMGR_PLEX_TYPE_INVALID NTStatus = 0xC038003E + STATUS_VOLMGR_PLEX_NOT_RAID5 NTStatus = 0xC038003F + STATUS_VOLMGR_PLEX_NOT_SIMPLE NTStatus = 0xC0380040 + STATUS_VOLMGR_STRUCTURE_SIZE_INVALID NTStatus = 0xC0380041 + STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS NTStatus = 0xC0380042 + STATUS_VOLMGR_TRANSACTION_IN_PROGRESS NTStatus = 0xC0380043 + STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE NTStatus = 0xC0380044 + STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK NTStatus = 0xC0380045 + STATUS_VOLMGR_VOLUME_ID_INVALID NTStatus = 0xC0380046 + STATUS_VOLMGR_VOLUME_LENGTH_INVALID NTStatus = 0xC0380047 + STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE NTStatus = 0xC0380048 + STATUS_VOLMGR_VOLUME_NOT_MIRRORED NTStatus = 0xC0380049 + STATUS_VOLMGR_VOLUME_NOT_RETAINED NTStatus = 0xC038004A + STATUS_VOLMGR_VOLUME_OFFLINE NTStatus = 0xC038004B + STATUS_VOLMGR_VOLUME_RETAINED NTStatus = 0xC038004C + STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID NTStatus = 0xC038004D + STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE NTStatus = 0xC038004E + STATUS_VOLMGR_BAD_BOOT_DISK NTStatus = 0xC038004F + STATUS_VOLMGR_PACK_CONFIG_OFFLINE NTStatus = 0xC0380050 + STATUS_VOLMGR_PACK_CONFIG_ONLINE NTStatus = 0xC0380051 + STATUS_VOLMGR_NOT_PRIMARY_PACK NTStatus = 0xC0380052 + STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED NTStatus = 0xC0380053 + STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID NTStatus = 0xC0380054 + STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID NTStatus = 0xC0380055 + STATUS_VOLMGR_VOLUME_MIRRORED NTStatus = 0xC0380056 + STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED NTStatus = 0xC0380057 + STATUS_VOLMGR_NO_VALID_LOG_COPIES NTStatus = 0xC0380058 + STATUS_VOLMGR_PRIMARY_PACK_PRESENT NTStatus = 0xC0380059 + STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID NTStatus = 0xC038005A + STATUS_VOLMGR_MIRROR_NOT_SUPPORTED NTStatus = 0xC038005B + STATUS_VOLMGR_RAID5_NOT_SUPPORTED NTStatus = 0xC038005C + STATUS_BCD_NOT_ALL_ENTRIES_IMPORTED NTStatus = 0x80390001 + STATUS_BCD_TOO_MANY_ELEMENTS NTStatus = 0xC0390002 + STATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED NTStatus = 0x80390003 + STATUS_VHD_DRIVE_FOOTER_MISSING NTStatus = 0xC03A0001 + STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH NTStatus = 0xC03A0002 + STATUS_VHD_DRIVE_FOOTER_CORRUPT NTStatus = 0xC03A0003 + STATUS_VHD_FORMAT_UNKNOWN NTStatus = 0xC03A0004 + STATUS_VHD_FORMAT_UNSUPPORTED_VERSION NTStatus = 0xC03A0005 + STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH NTStatus = 0xC03A0006 + STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION NTStatus = 0xC03A0007 + STATUS_VHD_SPARSE_HEADER_CORRUPT NTStatus = 0xC03A0008 + STATUS_VHD_BLOCK_ALLOCATION_FAILURE NTStatus = 0xC03A0009 + STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT NTStatus = 0xC03A000A + STATUS_VHD_INVALID_BLOCK_SIZE NTStatus = 0xC03A000B + STATUS_VHD_BITMAP_MISMATCH NTStatus = 0xC03A000C + STATUS_VHD_PARENT_VHD_NOT_FOUND NTStatus = 0xC03A000D + STATUS_VHD_CHILD_PARENT_ID_MISMATCH NTStatus = 0xC03A000E + STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH NTStatus = 0xC03A000F + STATUS_VHD_METADATA_READ_FAILURE NTStatus = 0xC03A0010 + STATUS_VHD_METADATA_WRITE_FAILURE NTStatus = 0xC03A0011 + STATUS_VHD_INVALID_SIZE NTStatus = 0xC03A0012 + STATUS_VHD_INVALID_FILE_SIZE NTStatus = 0xC03A0013 + STATUS_VIRTDISK_PROVIDER_NOT_FOUND NTStatus = 0xC03A0014 + STATUS_VIRTDISK_NOT_VIRTUAL_DISK NTStatus = 0xC03A0015 + STATUS_VHD_PARENT_VHD_ACCESS_DENIED NTStatus = 0xC03A0016 + STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH NTStatus = 0xC03A0017 + STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED NTStatus = 0xC03A0018 + STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT NTStatus = 0xC03A0019 + STATUS_VIRTUAL_DISK_LIMITATION NTStatus = 0xC03A001A + STATUS_VHD_INVALID_TYPE NTStatus = 0xC03A001B + STATUS_VHD_INVALID_STATE NTStatus = 0xC03A001C + STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE NTStatus = 0xC03A001D + STATUS_VIRTDISK_DISK_ALREADY_OWNED NTStatus = 0xC03A001E + STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE NTStatus = 0xC03A001F + STATUS_CTLOG_TRACKING_NOT_INITIALIZED NTStatus = 0xC03A0020 + STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE NTStatus = 0xC03A0021 + STATUS_CTLOG_VHD_CHANGED_OFFLINE NTStatus = 0xC03A0022 + STATUS_CTLOG_INVALID_TRACKING_STATE NTStatus = 0xC03A0023 + STATUS_CTLOG_INCONSISTENT_TRACKING_FILE NTStatus = 0xC03A0024 + STATUS_VHD_METADATA_FULL NTStatus = 0xC03A0028 + STATUS_VHD_INVALID_CHANGE_TRACKING_ID NTStatus = 0xC03A0029 + STATUS_VHD_CHANGE_TRACKING_DISABLED NTStatus = 0xC03A002A + STATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION NTStatus = 0xC03A0030 + STATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA NTStatus = 0xC03A0031 + STATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0032 + STATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0033 + STATUS_QUERY_STORAGE_ERROR NTStatus = 0x803A0001 + STATUS_GDI_HANDLE_LEAK NTStatus = 0x803F0001 + STATUS_RKF_KEY_NOT_FOUND NTStatus = 0xC0400001 + STATUS_RKF_DUPLICATE_KEY NTStatus = 0xC0400002 + STATUS_RKF_BLOB_FULL NTStatus = 0xC0400003 + STATUS_RKF_STORE_FULL NTStatus = 0xC0400004 + STATUS_RKF_FILE_BLOCKED NTStatus = 0xC0400005 + STATUS_RKF_ACTIVE_KEY NTStatus = 0xC0400006 + STATUS_RDBSS_RESTART_OPERATION NTStatus = 0xC0410001 + STATUS_RDBSS_CONTINUE_OPERATION NTStatus = 0xC0410002 + STATUS_RDBSS_POST_OPERATION NTStatus = 0xC0410003 + STATUS_RDBSS_RETRY_LOOKUP NTStatus = 0xC0410004 + STATUS_BTH_ATT_INVALID_HANDLE NTStatus = 0xC0420001 + STATUS_BTH_ATT_READ_NOT_PERMITTED NTStatus = 0xC0420002 + STATUS_BTH_ATT_WRITE_NOT_PERMITTED NTStatus = 0xC0420003 + STATUS_BTH_ATT_INVALID_PDU NTStatus = 0xC0420004 + STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION NTStatus = 0xC0420005 + STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED NTStatus = 0xC0420006 + STATUS_BTH_ATT_INVALID_OFFSET NTStatus = 0xC0420007 + STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION NTStatus = 0xC0420008 + STATUS_BTH_ATT_PREPARE_QUEUE_FULL NTStatus = 0xC0420009 + STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND NTStatus = 0xC042000A + STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG NTStatus = 0xC042000B + STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE NTStatus = 0xC042000C + STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH NTStatus = 0xC042000D + STATUS_BTH_ATT_UNLIKELY NTStatus = 0xC042000E + STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION NTStatus = 0xC042000F + STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE NTStatus = 0xC0420010 + STATUS_BTH_ATT_INSUFFICIENT_RESOURCES NTStatus = 0xC0420011 + STATUS_BTH_ATT_UNKNOWN_ERROR NTStatus = 0xC0421000 + STATUS_SECUREBOOT_ROLLBACK_DETECTED NTStatus = 0xC0430001 + STATUS_SECUREBOOT_POLICY_VIOLATION NTStatus = 0xC0430002 + STATUS_SECUREBOOT_INVALID_POLICY NTStatus = 0xC0430003 + STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND NTStatus = 0xC0430004 + STATUS_SECUREBOOT_POLICY_NOT_SIGNED NTStatus = 0xC0430005 + STATUS_SECUREBOOT_NOT_ENABLED NTStatus = 0x80430006 + STATUS_SECUREBOOT_FILE_REPLACED NTStatus = 0xC0430007 + STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED NTStatus = 0xC0430008 + STATUS_SECUREBOOT_POLICY_UNKNOWN NTStatus = 0xC0430009 + STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION NTStatus = 0xC043000A + STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH NTStatus = 0xC043000B + STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED NTStatus = 0xC043000C + STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH NTStatus = 0xC043000D + STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING NTStatus = 0xC043000E + STATUS_SECUREBOOT_NOT_BASE_POLICY NTStatus = 0xC043000F + STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY NTStatus = 0xC0430010 + STATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED NTStatus = 0xC0EB0001 + STATUS_PLATFORM_MANIFEST_INVALID NTStatus = 0xC0EB0002 + STATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED NTStatus = 0xC0EB0003 + STATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED NTStatus = 0xC0EB0004 + STATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND NTStatus = 0xC0EB0005 + STATUS_PLATFORM_MANIFEST_NOT_ACTIVE NTStatus = 0xC0EB0006 + STATUS_PLATFORM_MANIFEST_NOT_SIGNED NTStatus = 0xC0EB0007 + STATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED NTStatus = 0xC0E90001 + STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION NTStatus = 0xC0E90002 + STATUS_SYSTEM_INTEGRITY_INVALID_POLICY NTStatus = 0xC0E90003 + STATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED NTStatus = 0xC0E90004 + STATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES NTStatus = 0xC0E90005 + STATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED NTStatus = 0xC0E90006 + STATUS_NO_APPLICABLE_APP_LICENSES_FOUND NTStatus = 0xC0EA0001 + STATUS_CLIP_LICENSE_NOT_FOUND NTStatus = 0xC0EA0002 + STATUS_CLIP_DEVICE_LICENSE_MISSING NTStatus = 0xC0EA0003 + STATUS_CLIP_LICENSE_INVALID_SIGNATURE NTStatus = 0xC0EA0004 + STATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID NTStatus = 0xC0EA0005 + STATUS_CLIP_LICENSE_EXPIRED NTStatus = 0xC0EA0006 + STATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE NTStatus = 0xC0EA0007 + STATUS_CLIP_LICENSE_NOT_SIGNED NTStatus = 0xC0EA0008 + STATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE NTStatus = 0xC0EA0009 + STATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH NTStatus = 0xC0EA000A + STATUS_AUDIO_ENGINE_NODE_NOT_FOUND NTStatus = 0xC0440001 + STATUS_HDAUDIO_EMPTY_CONNECTION_LIST NTStatus = 0xC0440002 + STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED NTStatus = 0xC0440003 + STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED NTStatus = 0xC0440004 + STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY NTStatus = 0xC0440005 + STATUS_SPACES_REPAIRED NTStatus = 0x00E70000 + STATUS_SPACES_PAUSE NTStatus = 0x00E70001 + STATUS_SPACES_COMPLETE NTStatus = 0x00E70002 + STATUS_SPACES_REDIRECT NTStatus = 0x00E70003 + STATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID NTStatus = 0xC0E70001 + STATUS_SPACES_RESILIENCY_TYPE_INVALID NTStatus = 0xC0E70003 + STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID NTStatus = 0xC0E70004 + STATUS_SPACES_DRIVE_REDUNDANCY_INVALID NTStatus = 0xC0E70006 + STATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID NTStatus = 0xC0E70007 + STATUS_SPACES_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0E70009 + STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID NTStatus = 0xC0E7000A + STATUS_SPACES_NOT_ENOUGH_DRIVES NTStatus = 0xC0E7000B + STATUS_SPACES_EXTENDED_ERROR NTStatus = 0xC0E7000C + STATUS_SPACES_PROVISIONING_TYPE_INVALID NTStatus = 0xC0E7000D + STATUS_SPACES_ALLOCATION_SIZE_INVALID NTStatus = 0xC0E7000E + STATUS_SPACES_ENCLOSURE_AWARE_INVALID NTStatus = 0xC0E7000F + STATUS_SPACES_WRITE_CACHE_SIZE_INVALID NTStatus = 0xC0E70010 + STATUS_SPACES_NUMBER_OF_GROUPS_INVALID NTStatus = 0xC0E70011 + STATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID NTStatus = 0xC0E70012 + STATUS_SPACES_UPDATE_COLUMN_STATE NTStatus = 0xC0E70013 + STATUS_SPACES_MAP_REQUIRED NTStatus = 0xC0E70014 + STATUS_SPACES_UNSUPPORTED_VERSION NTStatus = 0xC0E70015 + STATUS_SPACES_CORRUPT_METADATA NTStatus = 0xC0E70016 + STATUS_SPACES_DRT_FULL NTStatus = 0xC0E70017 + STATUS_SPACES_INCONSISTENCY NTStatus = 0xC0E70018 + STATUS_SPACES_LOG_NOT_READY NTStatus = 0xC0E70019 + STATUS_SPACES_NO_REDUNDANCY NTStatus = 0xC0E7001A + STATUS_SPACES_DRIVE_NOT_READY NTStatus = 0xC0E7001B + STATUS_SPACES_DRIVE_SPLIT NTStatus = 0xC0E7001C + STATUS_SPACES_DRIVE_LOST_DATA NTStatus = 0xC0E7001D + STATUS_SPACES_ENTRY_INCOMPLETE NTStatus = 0xC0E7001E + STATUS_SPACES_ENTRY_INVALID NTStatus = 0xC0E7001F + STATUS_SPACES_MARK_DIRTY NTStatus = 0xC0E70020 + STATUS_VOLSNAP_BOOTFILE_NOT_VALID NTStatus = 0xC0500003 + STATUS_VOLSNAP_ACTIVATION_TIMEOUT NTStatus = 0xC0500004 + STATUS_IO_PREEMPTED NTStatus = 0xC0510001 + STATUS_SVHDX_ERROR_STORED NTStatus = 0xC05C0000 + STATUS_SVHDX_ERROR_NOT_AVAILABLE NTStatus = 0xC05CFF00 + STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE NTStatus = 0xC05CFF01 + STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED NTStatus = 0xC05CFF02 + STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED NTStatus = 0xC05CFF03 + STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED NTStatus = 0xC05CFF04 + STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED NTStatus = 0xC05CFF05 + STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED NTStatus = 0xC05CFF06 + STATUS_SVHDX_RESERVATION_CONFLICT NTStatus = 0xC05CFF07 + STATUS_SVHDX_WRONG_FILE_TYPE NTStatus = 0xC05CFF08 + STATUS_SVHDX_VERSION_MISMATCH NTStatus = 0xC05CFF09 + STATUS_VHD_SHARED NTStatus = 0xC05CFF0A + STATUS_SVHDX_NO_INITIATOR NTStatus = 0xC05CFF0B + STATUS_VHDSET_BACKING_STORAGE_NOT_FOUND NTStatus = 0xC05CFF0C + STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP NTStatus = 0xC05D0000 + STATUS_SMB_BAD_CLUSTER_DIALECT NTStatus = 0xC05D0001 + STATUS_SMB_GUEST_LOGON_BLOCKED NTStatus = 0xC05D0002 + STATUS_SECCORE_INVALID_COMMAND NTStatus = 0xC0E80000 + STATUS_VSM_NOT_INITIALIZED NTStatus = 0xC0450000 + STATUS_VSM_DMA_PROTECTION_NOT_IN_USE NTStatus = 0xC0450001 + STATUS_APPEXEC_CONDITION_NOT_SATISFIED NTStatus = 0xC0EC0000 + STATUS_APPEXEC_HANDLE_INVALIDATED NTStatus = 0xC0EC0001 + STATUS_APPEXEC_INVALID_HOST_GENERATION NTStatus = 0xC0EC0002 + STATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION NTStatus = 0xC0EC0003 + STATUS_APPEXEC_INVALID_HOST_STATE NTStatus = 0xC0EC0004 + STATUS_APPEXEC_NO_DONOR NTStatus = 0xC0EC0005 + STATUS_APPEXEC_HOST_ID_MISMATCH NTStatus = 0xC0EC0006 + STATUS_APPEXEC_UNKNOWN_USER NTStatus = 0xC0EC0007 ) diff --git a/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go b/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go new file mode 100644 index 000000000..6048ac679 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go @@ -0,0 +1,149 @@ +// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT. + +package windows + +type KNOWNFOLDERID GUID + +var ( + FOLDERID_NetworkFolder = &KNOWNFOLDERID{0xd20beec4, 0x5ca8, 0x4905, [8]byte{0xae, 0x3b, 0xbf, 0x25, 0x1e, 0xa0, 0x9b, 0x53}} + FOLDERID_ComputerFolder = &KNOWNFOLDERID{0x0ac0837c, 0xbbf8, 0x452a, [8]byte{0x85, 0x0d, 0x79, 0xd0, 0x8e, 0x66, 0x7c, 0xa7}} + FOLDERID_InternetFolder = &KNOWNFOLDERID{0x4d9f7874, 0x4e0c, 0x4904, [8]byte{0x96, 0x7b, 0x40, 0xb0, 0xd2, 0x0c, 0x3e, 0x4b}} + FOLDERID_ControlPanelFolder = &KNOWNFOLDERID{0x82a74aeb, 0xaeb4, 0x465c, [8]byte{0xa0, 0x14, 0xd0, 0x97, 0xee, 0x34, 0x6d, 0x63}} + FOLDERID_PrintersFolder = &KNOWNFOLDERID{0x76fc4e2d, 0xd6ad, 0x4519, [8]byte{0xa6, 0x63, 0x37, 0xbd, 0x56, 0x06, 0x81, 0x85}} + FOLDERID_SyncManagerFolder = &KNOWNFOLDERID{0x43668bf8, 0xc14e, 0x49b2, [8]byte{0x97, 0xc9, 0x74, 0x77, 0x84, 0xd7, 0x84, 0xb7}} + FOLDERID_SyncSetupFolder = &KNOWNFOLDERID{0x0f214138, 0xb1d3, 0x4a90, [8]byte{0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a}} + FOLDERID_ConflictFolder = &KNOWNFOLDERID{0x4bfefb45, 0x347d, 0x4006, [8]byte{0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92}} + FOLDERID_SyncResultsFolder = &KNOWNFOLDERID{0x289a9a43, 0xbe44, 0x4057, [8]byte{0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9}} + FOLDERID_RecycleBinFolder = &KNOWNFOLDERID{0xb7534046, 0x3ecb, 0x4c18, [8]byte{0xbe, 0x4e, 0x64, 0xcd, 0x4c, 0xb7, 0xd6, 0xac}} + FOLDERID_ConnectionsFolder = &KNOWNFOLDERID{0x6f0cd92b, 0x2e97, 0x45d1, [8]byte{0x88, 0xff, 0xb0, 0xd1, 0x86, 0xb8, 0xde, 0xdd}} + FOLDERID_Fonts = &KNOWNFOLDERID{0xfd228cb7, 0xae11, 0x4ae3, [8]byte{0x86, 0x4c, 0x16, 0xf3, 0x91, 0x0a, 0xb8, 0xfe}} + FOLDERID_Desktop = &KNOWNFOLDERID{0xb4bfcc3a, 0xdb2c, 0x424c, [8]byte{0xb0, 0x29, 0x7f, 0xe9, 0x9a, 0x87, 0xc6, 0x41}} + FOLDERID_Startup = &KNOWNFOLDERID{0xb97d20bb, 0xf46a, 0x4c97, [8]byte{0xba, 0x10, 0x5e, 0x36, 0x08, 0x43, 0x08, 0x54}} + FOLDERID_Programs = &KNOWNFOLDERID{0xa77f5d77, 0x2e2b, 0x44c3, [8]byte{0xa6, 0xa2, 0xab, 0xa6, 0x01, 0x05, 0x4a, 0x51}} + FOLDERID_StartMenu = &KNOWNFOLDERID{0x625b53c3, 0xab48, 0x4ec1, [8]byte{0xba, 0x1f, 0xa1, 0xef, 0x41, 0x46, 0xfc, 0x19}} + FOLDERID_Recent = &KNOWNFOLDERID{0xae50c081, 0xebd2, 0x438a, [8]byte{0x86, 0x55, 0x8a, 0x09, 0x2e, 0x34, 0x98, 0x7a}} + FOLDERID_SendTo = &KNOWNFOLDERID{0x8983036c, 0x27c0, 0x404b, [8]byte{0x8f, 0x08, 0x10, 0x2d, 0x10, 0xdc, 0xfd, 0x74}} + FOLDERID_Documents = &KNOWNFOLDERID{0xfdd39ad0, 0x238f, 0x46af, [8]byte{0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7}} + FOLDERID_Favorites = &KNOWNFOLDERID{0x1777f761, 0x68ad, 0x4d8a, [8]byte{0x87, 0xbd, 0x30, 0xb7, 0x59, 0xfa, 0x33, 0xdd}} + FOLDERID_NetHood = &KNOWNFOLDERID{0xc5abbf53, 0xe17f, 0x4121, [8]byte{0x89, 0x00, 0x86, 0x62, 0x6f, 0xc2, 0xc9, 0x73}} + FOLDERID_PrintHood = &KNOWNFOLDERID{0x9274bd8d, 0xcfd1, 0x41c3, [8]byte{0xb3, 0x5e, 0xb1, 0x3f, 0x55, 0xa7, 0x58, 0xf4}} + FOLDERID_Templates = &KNOWNFOLDERID{0xa63293e8, 0x664e, 0x48db, [8]byte{0xa0, 0x79, 0xdf, 0x75, 0x9e, 0x05, 0x09, 0xf7}} + FOLDERID_CommonStartup = &KNOWNFOLDERID{0x82a5ea35, 0xd9cd, 0x47c5, [8]byte{0x96, 0x29, 0xe1, 0x5d, 0x2f, 0x71, 0x4e, 0x6e}} + FOLDERID_CommonPrograms = &KNOWNFOLDERID{0x0139d44e, 0x6afe, 0x49f2, [8]byte{0x86, 0x90, 0x3d, 0xaf, 0xca, 0xe6, 0xff, 0xb8}} + FOLDERID_CommonStartMenu = &KNOWNFOLDERID{0xa4115719, 0xd62e, 0x491d, [8]byte{0xaa, 0x7c, 0xe7, 0x4b, 0x8b, 0xe3, 0xb0, 0x67}} + FOLDERID_PublicDesktop = &KNOWNFOLDERID{0xc4aa340d, 0xf20f, 0x4863, [8]byte{0xaf, 0xef, 0xf8, 0x7e, 0xf2, 0xe6, 0xba, 0x25}} + FOLDERID_ProgramData = &KNOWNFOLDERID{0x62ab5d82, 0xfdc1, 0x4dc3, [8]byte{0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97}} + FOLDERID_CommonTemplates = &KNOWNFOLDERID{0xb94237e7, 0x57ac, 0x4347, [8]byte{0x91, 0x51, 0xb0, 0x8c, 0x6c, 0x32, 0xd1, 0xf7}} + FOLDERID_PublicDocuments = &KNOWNFOLDERID{0xed4824af, 0xdce4, 0x45a8, [8]byte{0x81, 0xe2, 0xfc, 0x79, 0x65, 0x08, 0x36, 0x34}} + FOLDERID_RoamingAppData = &KNOWNFOLDERID{0x3eb685db, 0x65f9, 0x4cf6, [8]byte{0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d}} + FOLDERID_LocalAppData = &KNOWNFOLDERID{0xf1b32785, 0x6fba, 0x4fcf, [8]byte{0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}} + FOLDERID_LocalAppDataLow = &KNOWNFOLDERID{0xa520a1a4, 0x1780, 0x4ff6, [8]byte{0xbd, 0x18, 0x16, 0x73, 0x43, 0xc5, 0xaf, 0x16}} + FOLDERID_InternetCache = &KNOWNFOLDERID{0x352481e8, 0x33be, 0x4251, [8]byte{0xba, 0x85, 0x60, 0x07, 0xca, 0xed, 0xcf, 0x9d}} + FOLDERID_Cookies = &KNOWNFOLDERID{0x2b0f765d, 0xc0e9, 0x4171, [8]byte{0x90, 0x8e, 0x08, 0xa6, 0x11, 0xb8, 0x4f, 0xf6}} + FOLDERID_History = &KNOWNFOLDERID{0xd9dc8a3b, 0xb784, 0x432e, [8]byte{0xa7, 0x81, 0x5a, 0x11, 0x30, 0xa7, 0x59, 0x63}} + FOLDERID_System = &KNOWNFOLDERID{0x1ac14e77, 0x02e7, 0x4e5d, [8]byte{0xb7, 0x44, 0x2e, 0xb1, 0xae, 0x51, 0x98, 0xb7}} + FOLDERID_SystemX86 = &KNOWNFOLDERID{0xd65231b0, 0xb2f1, 0x4857, [8]byte{0xa4, 0xce, 0xa8, 0xe7, 0xc6, 0xea, 0x7d, 0x27}} + FOLDERID_Windows = &KNOWNFOLDERID{0xf38bf404, 0x1d43, 0x42f2, [8]byte{0x93, 0x05, 0x67, 0xde, 0x0b, 0x28, 0xfc, 0x23}} + FOLDERID_Profile = &KNOWNFOLDERID{0x5e6c858f, 0x0e22, 0x4760, [8]byte{0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73}} + FOLDERID_Pictures = &KNOWNFOLDERID{0x33e28130, 0x4e1e, 0x4676, [8]byte{0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb}} + FOLDERID_ProgramFilesX86 = &KNOWNFOLDERID{0x7c5a40ef, 0xa0fb, 0x4bfc, [8]byte{0x87, 0x4a, 0xc0, 0xf2, 0xe0, 0xb9, 0xfa, 0x8e}} + FOLDERID_ProgramFilesCommonX86 = &KNOWNFOLDERID{0xde974d24, 0xd9c6, 0x4d3e, [8]byte{0xbf, 0x91, 0xf4, 0x45, 0x51, 0x20, 0xb9, 0x17}} + FOLDERID_ProgramFilesX64 = &KNOWNFOLDERID{0x6d809377, 0x6af0, 0x444b, [8]byte{0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e}} + FOLDERID_ProgramFilesCommonX64 = &KNOWNFOLDERID{0x6365d5a7, 0x0f0d, 0x45e5, [8]byte{0x87, 0xf6, 0x0d, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d}} + FOLDERID_ProgramFiles = &KNOWNFOLDERID{0x905e63b6, 0xc1bf, 0x494e, [8]byte{0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a}} + FOLDERID_ProgramFilesCommon = &KNOWNFOLDERID{0xf7f1ed05, 0x9f6d, 0x47a2, [8]byte{0xaa, 0xae, 0x29, 0xd3, 0x17, 0xc6, 0xf0, 0x66}} + FOLDERID_UserProgramFiles = &KNOWNFOLDERID{0x5cd7aee2, 0x2219, 0x4a67, [8]byte{0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb}} + FOLDERID_UserProgramFilesCommon = &KNOWNFOLDERID{0xbcbd3057, 0xca5c, 0x4622, [8]byte{0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16}} + FOLDERID_AdminTools = &KNOWNFOLDERID{0x724ef170, 0xa42d, 0x4fef, [8]byte{0x9f, 0x26, 0xb6, 0x0e, 0x84, 0x6f, 0xba, 0x4f}} + FOLDERID_CommonAdminTools = &KNOWNFOLDERID{0xd0384e7d, 0xbac3, 0x4797, [8]byte{0x8f, 0x14, 0xcb, 0xa2, 0x29, 0xb3, 0x92, 0xb5}} + FOLDERID_Music = &KNOWNFOLDERID{0x4bd8d571, 0x6d19, 0x48d3, [8]byte{0xbe, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0e, 0x43}} + FOLDERID_Videos = &KNOWNFOLDERID{0x18989b1d, 0x99b5, 0x455b, [8]byte{0x84, 0x1c, 0xab, 0x7c, 0x74, 0xe4, 0xdd, 0xfc}} + FOLDERID_Ringtones = &KNOWNFOLDERID{0xc870044b, 0xf49e, 0x4126, [8]byte{0xa9, 0xc3, 0xb5, 0x2a, 0x1f, 0xf4, 0x11, 0xe8}} + FOLDERID_PublicPictures = &KNOWNFOLDERID{0xb6ebfb86, 0x6907, 0x413c, [8]byte{0x9a, 0xf7, 0x4f, 0xc2, 0xab, 0xf0, 0x7c, 0xc5}} + FOLDERID_PublicMusic = &KNOWNFOLDERID{0x3214fab5, 0x9757, 0x4298, [8]byte{0xbb, 0x61, 0x92, 0xa9, 0xde, 0xaa, 0x44, 0xff}} + FOLDERID_PublicVideos = &KNOWNFOLDERID{0x2400183a, 0x6185, 0x49fb, [8]byte{0xa2, 0xd8, 0x4a, 0x39, 0x2a, 0x60, 0x2b, 0xa3}} + FOLDERID_PublicRingtones = &KNOWNFOLDERID{0xe555ab60, 0x153b, 0x4d17, [8]byte{0x9f, 0x04, 0xa5, 0xfe, 0x99, 0xfc, 0x15, 0xec}} + FOLDERID_ResourceDir = &KNOWNFOLDERID{0x8ad10c31, 0x2adb, 0x4296, [8]byte{0xa8, 0xf7, 0xe4, 0x70, 0x12, 0x32, 0xc9, 0x72}} + FOLDERID_LocalizedResourcesDir = &KNOWNFOLDERID{0x2a00375e, 0x224c, 0x49de, [8]byte{0xb8, 0xd1, 0x44, 0x0d, 0xf7, 0xef, 0x3d, 0xdc}} + FOLDERID_CommonOEMLinks = &KNOWNFOLDERID{0xc1bae2d0, 0x10df, 0x4334, [8]byte{0xbe, 0xdd, 0x7a, 0xa2, 0x0b, 0x22, 0x7a, 0x9d}} + FOLDERID_CDBurning = &KNOWNFOLDERID{0x9e52ab10, 0xf80d, 0x49df, [8]byte{0xac, 0xb8, 0x43, 0x30, 0xf5, 0x68, 0x78, 0x55}} + FOLDERID_UserProfiles = &KNOWNFOLDERID{0x0762d272, 0xc50a, 0x4bb0, [8]byte{0xa3, 0x82, 0x69, 0x7d, 0xcd, 0x72, 0x9b, 0x80}} + FOLDERID_Playlists = &KNOWNFOLDERID{0xde92c1c7, 0x837f, 0x4f69, [8]byte{0xa3, 0xbb, 0x86, 0xe6, 0x31, 0x20, 0x4a, 0x23}} + FOLDERID_SamplePlaylists = &KNOWNFOLDERID{0x15ca69b3, 0x30ee, 0x49c1, [8]byte{0xac, 0xe1, 0x6b, 0x5e, 0xc3, 0x72, 0xaf, 0xb5}} + FOLDERID_SampleMusic = &KNOWNFOLDERID{0xb250c668, 0xf57d, 0x4ee1, [8]byte{0xa6, 0x3c, 0x29, 0x0e, 0xe7, 0xd1, 0xaa, 0x1f}} + FOLDERID_SamplePictures = &KNOWNFOLDERID{0xc4900540, 0x2379, 0x4c75, [8]byte{0x84, 0x4b, 0x64, 0xe6, 0xfa, 0xf8, 0x71, 0x6b}} + FOLDERID_SampleVideos = &KNOWNFOLDERID{0x859ead94, 0x2e85, 0x48ad, [8]byte{0xa7, 0x1a, 0x09, 0x69, 0xcb, 0x56, 0xa6, 0xcd}} + FOLDERID_PhotoAlbums = &KNOWNFOLDERID{0x69d2cf90, 0xfc33, 0x4fb7, [8]byte{0x9a, 0x0c, 0xeb, 0xb0, 0xf0, 0xfc, 0xb4, 0x3c}} + FOLDERID_Public = &KNOWNFOLDERID{0xdfdf76a2, 0xc82a, 0x4d63, [8]byte{0x90, 0x6a, 0x56, 0x44, 0xac, 0x45, 0x73, 0x85}} + FOLDERID_ChangeRemovePrograms = &KNOWNFOLDERID{0xdf7266ac, 0x9274, 0x4867, [8]byte{0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d}} + FOLDERID_AppUpdates = &KNOWNFOLDERID{0xa305ce99, 0xf527, 0x492b, [8]byte{0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4}} + FOLDERID_AddNewPrograms = &KNOWNFOLDERID{0xde61d971, 0x5ebc, 0x4f02, [8]byte{0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04}} + FOLDERID_Downloads = &KNOWNFOLDERID{0x374de290, 0x123f, 0x4565, [8]byte{0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b}} + FOLDERID_PublicDownloads = &KNOWNFOLDERID{0x3d644c9b, 0x1fb8, 0x4f30, [8]byte{0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0}} + FOLDERID_SavedSearches = &KNOWNFOLDERID{0x7d1d3a04, 0xdebb, 0x4115, [8]byte{0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda}} + FOLDERID_QuickLaunch = &KNOWNFOLDERID{0x52a4f021, 0x7b75, 0x48a9, [8]byte{0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f}} + FOLDERID_Contacts = &KNOWNFOLDERID{0x56784854, 0xc6cb, 0x462b, [8]byte{0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82}} + FOLDERID_SidebarParts = &KNOWNFOLDERID{0xa75d362e, 0x50fc, 0x4fb7, [8]byte{0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93}} + FOLDERID_SidebarDefaultParts = &KNOWNFOLDERID{0x7b396e54, 0x9ec5, 0x4300, [8]byte{0xbe, 0x0a, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26}} + FOLDERID_PublicGameTasks = &KNOWNFOLDERID{0xdebf2536, 0xe1a8, 0x4c59, [8]byte{0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea}} + FOLDERID_GameTasks = &KNOWNFOLDERID{0x054fae61, 0x4dd8, 0x4787, [8]byte{0x80, 0xb6, 0x09, 0x02, 0x20, 0xc4, 0xb7, 0x00}} + FOLDERID_SavedGames = &KNOWNFOLDERID{0x4c5c32ff, 0xbb9d, 0x43b0, [8]byte{0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4}} + FOLDERID_Games = &KNOWNFOLDERID{0xcac52c1a, 0xb53d, 0x4edc, [8]byte{0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34}} + FOLDERID_SEARCH_MAPI = &KNOWNFOLDERID{0x98ec0e18, 0x2098, 0x4d44, [8]byte{0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81}} + FOLDERID_SEARCH_CSC = &KNOWNFOLDERID{0xee32e446, 0x31ca, 0x4aba, [8]byte{0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e}} + FOLDERID_Links = &KNOWNFOLDERID{0xbfb9d5e0, 0xc6a9, 0x404c, [8]byte{0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68}} + FOLDERID_UsersFiles = &KNOWNFOLDERID{0xf3ce0f7c, 0x4901, 0x4acc, [8]byte{0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f}} + FOLDERID_UsersLibraries = &KNOWNFOLDERID{0xa302545d, 0xdeff, 0x464b, [8]byte{0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b}} + FOLDERID_SearchHome = &KNOWNFOLDERID{0x190337d1, 0xb8ca, 0x4121, [8]byte{0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a}} + FOLDERID_OriginalImages = &KNOWNFOLDERID{0x2c36c0aa, 0x5812, 0x4b87, [8]byte{0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39}} + FOLDERID_DocumentsLibrary = &KNOWNFOLDERID{0x7b0db17d, 0x9cd2, 0x4a93, [8]byte{0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c}} + FOLDERID_MusicLibrary = &KNOWNFOLDERID{0x2112ab0a, 0xc86a, 0x4ffe, [8]byte{0xa3, 0x68, 0x0d, 0xe9, 0x6e, 0x47, 0x01, 0x2e}} + FOLDERID_PicturesLibrary = &KNOWNFOLDERID{0xa990ae9f, 0xa03b, 0x4e80, [8]byte{0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x04}} + FOLDERID_VideosLibrary = &KNOWNFOLDERID{0x491e922f, 0x5643, 0x4af4, [8]byte{0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74}} + FOLDERID_RecordedTVLibrary = &KNOWNFOLDERID{0x1a6fdba2, 0xf42d, 0x4358, [8]byte{0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5}} + FOLDERID_HomeGroup = &KNOWNFOLDERID{0x52528a6b, 0xb9e3, 0x4add, [8]byte{0xb6, 0x0d, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d}} + FOLDERID_HomeGroupCurrentUser = &KNOWNFOLDERID{0x9b74b6a3, 0x0dfd, 0x4f11, [8]byte{0x9e, 0x78, 0x5f, 0x78, 0x00, 0xf2, 0xe7, 0x72}} + FOLDERID_DeviceMetadataStore = &KNOWNFOLDERID{0x5ce4a5e9, 0xe4eb, 0x479d, [8]byte{0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55}} + FOLDERID_Libraries = &KNOWNFOLDERID{0x1b3ea5dc, 0xb587, 0x4786, [8]byte{0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae}} + FOLDERID_PublicLibraries = &KNOWNFOLDERID{0x48daf80b, 0xe6cf, 0x4f4e, [8]byte{0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84}} + FOLDERID_UserPinned = &KNOWNFOLDERID{0x9e3995ab, 0x1f9c, 0x4f13, [8]byte{0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74}} + FOLDERID_ImplicitAppShortcuts = &KNOWNFOLDERID{0xbcb5256f, 0x79f6, 0x4cee, [8]byte{0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x02, 0xfd, 0x46}} + FOLDERID_AccountPictures = &KNOWNFOLDERID{0x008ca0b1, 0x55b4, 0x4c56, [8]byte{0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe}} + FOLDERID_PublicUserTiles = &KNOWNFOLDERID{0x0482af6c, 0x08f1, 0x4c34, [8]byte{0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17}} + FOLDERID_AppsFolder = &KNOWNFOLDERID{0x1e87508d, 0x89c2, 0x42f0, [8]byte{0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58}} + FOLDERID_StartMenuAllPrograms = &KNOWNFOLDERID{0xf26305ef, 0x6948, 0x40b9, [8]byte{0xb2, 0x55, 0x81, 0x45, 0x3d, 0x09, 0xc7, 0x85}} + FOLDERID_CommonStartMenuPlaces = &KNOWNFOLDERID{0xa440879f, 0x87a0, 0x4f7d, [8]byte{0xb7, 0x00, 0x02, 0x07, 0xb9, 0x66, 0x19, 0x4a}} + FOLDERID_ApplicationShortcuts = &KNOWNFOLDERID{0xa3918781, 0xe5f2, 0x4890, [8]byte{0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c}} + FOLDERID_RoamingTiles = &KNOWNFOLDERID{0x00bcfc5a, 0xed94, 0x4e48, [8]byte{0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90}} + FOLDERID_RoamedTileImages = &KNOWNFOLDERID{0xaaa8d5a5, 0xf1d6, 0x4259, [8]byte{0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e}} + FOLDERID_Screenshots = &KNOWNFOLDERID{0xb7bede81, 0xdf94, 0x4682, [8]byte{0xa7, 0xd8, 0x57, 0xa5, 0x26, 0x20, 0xb8, 0x6f}} + FOLDERID_CameraRoll = &KNOWNFOLDERID{0xab5fb87b, 0x7ce2, 0x4f83, [8]byte{0x91, 0x5d, 0x55, 0x08, 0x46, 0xc9, 0x53, 0x7b}} + FOLDERID_SkyDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} + FOLDERID_OneDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} + FOLDERID_SkyDriveDocuments = &KNOWNFOLDERID{0x24d89e24, 0x2f19, 0x4534, [8]byte{0x9d, 0xde, 0x6a, 0x66, 0x71, 0xfb, 0xb8, 0xfe}} + FOLDERID_SkyDrivePictures = &KNOWNFOLDERID{0x339719b5, 0x8c47, 0x4894, [8]byte{0x94, 0xc2, 0xd8, 0xf7, 0x7a, 0xdd, 0x44, 0xa6}} + FOLDERID_SkyDriveMusic = &KNOWNFOLDERID{0xc3f2459e, 0x80d6, 0x45dc, [8]byte{0xbf, 0xef, 0x1f, 0x76, 0x9f, 0x2b, 0xe7, 0x30}} + FOLDERID_SkyDriveCameraRoll = &KNOWNFOLDERID{0x767e6811, 0x49cb, 0x4273, [8]byte{0x87, 0xc2, 0x20, 0xf3, 0x55, 0xe1, 0x08, 0x5b}} + FOLDERID_SearchHistory = &KNOWNFOLDERID{0x0d4c3db6, 0x03a3, 0x462f, [8]byte{0xa0, 0xe6, 0x08, 0x92, 0x4c, 0x41, 0xb5, 0xd4}} + FOLDERID_SearchTemplates = &KNOWNFOLDERID{0x7e636bfe, 0xdfa9, 0x4d5e, [8]byte{0xb4, 0x56, 0xd7, 0xb3, 0x98, 0x51, 0xd8, 0xa9}} + FOLDERID_CameraRollLibrary = &KNOWNFOLDERID{0x2b20df75, 0x1eda, 0x4039, [8]byte{0x80, 0x97, 0x38, 0x79, 0x82, 0x27, 0xd5, 0xb7}} + FOLDERID_SavedPictures = &KNOWNFOLDERID{0x3b193882, 0xd3ad, 0x4eab, [8]byte{0x96, 0x5a, 0x69, 0x82, 0x9d, 0x1f, 0xb5, 0x9f}} + FOLDERID_SavedPicturesLibrary = &KNOWNFOLDERID{0xe25b5812, 0xbe88, 0x4bd9, [8]byte{0x94, 0xb0, 0x29, 0x23, 0x34, 0x77, 0xb6, 0xc3}} + FOLDERID_RetailDemo = &KNOWNFOLDERID{0x12d4c69e, 0x24ad, 0x4923, [8]byte{0xbe, 0x19, 0x31, 0x32, 0x1c, 0x43, 0xa7, 0x67}} + FOLDERID_Device = &KNOWNFOLDERID{0x1c2ac1dc, 0x4358, 0x4b6c, [8]byte{0x97, 0x33, 0xaf, 0x21, 0x15, 0x65, 0x76, 0xf0}} + FOLDERID_DevelopmentFiles = &KNOWNFOLDERID{0xdbe8e08e, 0x3053, 0x4bbc, [8]byte{0xb1, 0x83, 0x2a, 0x7b, 0x2b, 0x19, 0x1e, 0x59}} + FOLDERID_Objects3D = &KNOWNFOLDERID{0x31c0dd25, 0x9439, 0x4f12, [8]byte{0xbf, 0x41, 0x7f, 0xf4, 0xed, 0xa3, 0x87, 0x22}} + FOLDERID_AppCaptures = &KNOWNFOLDERID{0xedc0fe71, 0x98d8, 0x4f4a, [8]byte{0xb9, 0x20, 0xc8, 0xdc, 0x13, 0x3c, 0xb1, 0x65}} + FOLDERID_LocalDocuments = &KNOWNFOLDERID{0xf42ee2d3, 0x909f, 0x4907, [8]byte{0x88, 0x71, 0x4c, 0x22, 0xfc, 0x0b, 0xf7, 0x56}} + FOLDERID_LocalPictures = &KNOWNFOLDERID{0x0ddd015d, 0xb06c, 0x45d5, [8]byte{0x8c, 0x4c, 0xf5, 0x97, 0x13, 0x85, 0x46, 0x39}} + FOLDERID_LocalVideos = &KNOWNFOLDERID{0x35286a68, 0x3c57, 0x41a1, [8]byte{0xbb, 0xb1, 0x0e, 0xae, 0x73, 0xd7, 0x6c, 0x95}} + FOLDERID_LocalMusic = &KNOWNFOLDERID{0xa0c69a99, 0x21c8, 0x4671, [8]byte{0x87, 0x03, 0x79, 0x34, 0x16, 0x2f, 0xcf, 0x1d}} + FOLDERID_LocalDownloads = &KNOWNFOLDERID{0x7d83ee9b, 0x2244, 0x4e70, [8]byte{0xb1, 0xf5, 0x53, 0x93, 0x04, 0x2a, 0xf1, 0xe4}} + FOLDERID_RecordedCalls = &KNOWNFOLDERID{0x2f8b40c2, 0x83ed, 0x48ee, [8]byte{0xb3, 0x83, 0xa1, 0xf1, 0x57, 0xec, 0x6f, 0x9a}} + FOLDERID_AllAppMods = &KNOWNFOLDERID{0x7ad67899, 0x66af, 0x43ba, [8]byte{0x91, 0x56, 0x6a, 0xad, 0x42, 0xe6, 0xc5, 0x96}} + FOLDERID_CurrentAppMods = &KNOWNFOLDERID{0x3db40b20, 0x2a30, 0x4dbe, [8]byte{0x91, 0x7e, 0x77, 0x1d, 0xd2, 0x1d, 0xd0, 0x99}} + FOLDERID_AppDataDesktop = &KNOWNFOLDERID{0xb2c5e279, 0x7add, 0x439f, [8]byte{0xb2, 0x8c, 0xc4, 0x1f, 0xe1, 0xbb, 0xf6, 0x72}} + FOLDERID_AppDataDocuments = &KNOWNFOLDERID{0x7be16610, 0x1f7f, 0x44ac, [8]byte{0xbf, 0xf0, 0x83, 0xe1, 0x5f, 0x2f, 0xfc, 0xa1}} + FOLDERID_AppDataFavorites = &KNOWNFOLDERID{0x7cfbefbc, 0xde1f, 0x45aa, [8]byte{0xb8, 0x43, 0xa5, 0x42, 0xac, 0x53, 0x6c, 0xc9}} + FOLDERID_AppDataProgramData = &KNOWNFOLDERID{0x559d40a3, 0xa036, 0x40fa, [8]byte{0xaf, 0x61, 0x84, 0xcb, 0x43, 0x0a, 0x4d, 0x34}} +) diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index eb9f06296..559bc845c 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -17,6 +17,7 @@ const ( var ( errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) + errERROR_EINVAL error = syscall.EINVAL ) // errnoErr returns common boxed Errno values, to prevent @@ -24,7 +25,7 @@ var ( func errnoErr(e syscall.Errno) error { switch e { case 0: - return nil + return errERROR_EINVAL case errnoERROR_IO_PENDING: return errERROR_IO_PENDING } @@ -36,347 +37,461 @@ func errnoErr(e syscall.Errno) error { var ( modadvapi32 = NewLazySystemDLL("advapi32.dll") - modkernel32 = NewLazySystemDLL("kernel32.dll") - modshell32 = NewLazySystemDLL("shell32.dll") - modmswsock = NewLazySystemDLL("mswsock.dll") modcrypt32 = NewLazySystemDLL("crypt32.dll") - modws2_32 = NewLazySystemDLL("ws2_32.dll") moddnsapi = NewLazySystemDLL("dnsapi.dll") modiphlpapi = NewLazySystemDLL("iphlpapi.dll") - modsecur32 = NewLazySystemDLL("secur32.dll") + modkernel32 = NewLazySystemDLL("kernel32.dll") + modmswsock = NewLazySystemDLL("mswsock.dll") modnetapi32 = NewLazySystemDLL("netapi32.dll") + modntdll = NewLazySystemDLL("ntdll.dll") + modole32 = NewLazySystemDLL("ole32.dll") + modpsapi = NewLazySystemDLL("psapi.dll") + modsechost = NewLazySystemDLL("sechost.dll") + modsecur32 = NewLazySystemDLL("secur32.dll") + modshell32 = NewLazySystemDLL("shell32.dll") + moduser32 = NewLazySystemDLL("user32.dll") moduserenv = NewLazySystemDLL("userenv.dll") - - procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") - procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") - procReportEventW = modadvapi32.NewProc("ReportEventW") - procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") - procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") - procCreateServiceW = modadvapi32.NewProc("CreateServiceW") - procOpenServiceW = modadvapi32.NewProc("OpenServiceW") - procDeleteService = modadvapi32.NewProc("DeleteService") - procStartServiceW = modadvapi32.NewProc("StartServiceW") - procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") - procControlService = modadvapi32.NewProc("ControlService") - procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") - procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") - procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") - procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") - procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") - procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") - procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") - procQueryServiceStatusEx = modadvapi32.NewProc("QueryServiceStatusEx") - procGetLastError = modkernel32.NewProc("GetLastError") - procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") - procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") - procFreeLibrary = modkernel32.NewProc("FreeLibrary") - procGetProcAddress = modkernel32.NewProc("GetProcAddress") - procGetVersion = modkernel32.NewProc("GetVersion") - procFormatMessageW = modkernel32.NewProc("FormatMessageW") - procExitProcess = modkernel32.NewProc("ExitProcess") - procCreateFileW = modkernel32.NewProc("CreateFileW") - procReadFile = modkernel32.NewProc("ReadFile") - procWriteFile = modkernel32.NewProc("WriteFile") - procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") - procSetFilePointer = modkernel32.NewProc("SetFilePointer") - procCloseHandle = modkernel32.NewProc("CloseHandle") - procGetStdHandle = modkernel32.NewProc("GetStdHandle") - procSetStdHandle = modkernel32.NewProc("SetStdHandle") - procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") - procFindNextFileW = modkernel32.NewProc("FindNextFileW") - procFindClose = modkernel32.NewProc("FindClose") - procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") - procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") - procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") - procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") - procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") - procDeleteFileW = modkernel32.NewProc("DeleteFileW") - procMoveFileW = modkernel32.NewProc("MoveFileW") - procMoveFileExW = modkernel32.NewProc("MoveFileExW") - procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") - procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") - procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") - procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime") - procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") - procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") - procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") - procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") - procCancelIo = modkernel32.NewProc("CancelIo") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") - procCreateProcessW = modkernel32.NewProc("CreateProcessW") - procOpenProcess = modkernel32.NewProc("OpenProcess") - procTerminateProcess = modkernel32.NewProc("TerminateProcess") - procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") - procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") - procGetCurrentProcess = modkernel32.NewProc("GetCurrentProcess") - procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") - procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") - procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") - procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") - procGetTempPathW = modkernel32.NewProc("GetTempPathW") - procCreatePipe = modkernel32.NewProc("CreatePipe") - procGetFileType = modkernel32.NewProc("GetFileType") - procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") - procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") - procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") - procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") - procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") - procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetFileTime = modkernel32.NewProc("SetFileTime") - procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") - procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") - procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") - procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") - procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") - procLocalFree = modkernel32.NewProc("LocalFree") - procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") - procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") - procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") - procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") - procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") - procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") - procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") - procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") - procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") - procVirtualLock = modkernel32.NewProc("VirtualLock") - procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") - procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") - procVirtualFree = modkernel32.NewProc("VirtualFree") - procVirtualProtect = modkernel32.NewProc("VirtualProtect") - procTransmitFile = modmswsock.NewProc("TransmitFile") - procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") - procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") - procCertOpenStore = modcrypt32.NewProc("CertOpenStore") - procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") - procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") - procCertCloseStore = modcrypt32.NewProc("CertCloseStore") - procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") - procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") - procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") - procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") - procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") - procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") - procRegCloseKey = modadvapi32.NewProc("RegCloseKey") - procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") - procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") - procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") - procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") - procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") - procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") - procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") - procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") - procReadConsoleW = modkernel32.NewProc("ReadConsoleW") - procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") - procProcess32FirstW = modkernel32.NewProc("Process32FirstW") - procProcess32NextW = modkernel32.NewProc("Process32NextW") - procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") - procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") - procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") - procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") - procCreateEventW = modkernel32.NewProc("CreateEventW") - procCreateEventExW = modkernel32.NewProc("CreateEventExW") - procOpenEventW = modkernel32.NewProc("OpenEventW") - procSetEvent = modkernel32.NewProc("SetEvent") - procResetEvent = modkernel32.NewProc("ResetEvent") - procPulseEvent = modkernel32.NewProc("PulseEvent") - procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") - procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") - procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") - procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW") - procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW") - procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW") - procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") - procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") - procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW") - procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") - procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") - procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW") - procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW") - procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW") - procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW") - procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW") - procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") - procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") - procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") - procWSAStartup = modws2_32.NewProc("WSAStartup") - procWSACleanup = modws2_32.NewProc("WSACleanup") - procWSAIoctl = modws2_32.NewProc("WSAIoctl") - procsocket = modws2_32.NewProc("socket") - procsetsockopt = modws2_32.NewProc("setsockopt") - procgetsockopt = modws2_32.NewProc("getsockopt") - procbind = modws2_32.NewProc("bind") - procconnect = modws2_32.NewProc("connect") - procgetsockname = modws2_32.NewProc("getsockname") - procgetpeername = modws2_32.NewProc("getpeername") - proclisten = modws2_32.NewProc("listen") - procshutdown = modws2_32.NewProc("shutdown") - procclosesocket = modws2_32.NewProc("closesocket") - procAcceptEx = modmswsock.NewProc("AcceptEx") - procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") - procWSARecv = modws2_32.NewProc("WSARecv") - procWSASend = modws2_32.NewProc("WSASend") - procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") - procWSASendTo = modws2_32.NewProc("WSASendTo") - procgethostbyname = modws2_32.NewProc("gethostbyname") - procgetservbyname = modws2_32.NewProc("getservbyname") - procntohs = modws2_32.NewProc("ntohs") - procgetprotobyname = modws2_32.NewProc("getprotobyname") - procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") - procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") - procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") - procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") - procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") - procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") - procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") - procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") - procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") - procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") - procGetACP = modkernel32.NewProc("GetACP") - procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") - procTranslateNameW = modsecur32.NewProc("TranslateNameW") - procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") - procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") - procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") - procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") - procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") - procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") - procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") - procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") - procGetLengthSid = modadvapi32.NewProc("GetLengthSid") - procCopySid = modadvapi32.NewProc("CopySid") - procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") - procCreateWellKnownSid = modadvapi32.NewProc("CreateWellKnownSid") - procFreeSid = modadvapi32.NewProc("FreeSid") - procEqualSid = modadvapi32.NewProc("EqualSid") - procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") - procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") - procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") - procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") - procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW") + modwintrust = NewLazySystemDLL("wintrust.dll") + modws2_32 = NewLazySystemDLL("ws2_32.dll") + modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") + + procAdjustTokenGroups = modadvapi32.NewProc("AdjustTokenGroups") + procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") + procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") + procBuildSecurityDescriptorW = modadvapi32.NewProc("BuildSecurityDescriptorW") + procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") + procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") + procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") + procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") + procControlService = modadvapi32.NewProc("ControlService") + procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW") + procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") + procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW") + procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") + procCopySid = modadvapi32.NewProc("CopySid") + procCreateServiceW = modadvapi32.NewProc("CreateServiceW") + procCreateWellKnownSid = modadvapi32.NewProc("CreateWellKnownSid") + procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") + procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") + procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") + procDeleteService = modadvapi32.NewProc("DeleteService") + procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") + procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx") + procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") + procEqualSid = modadvapi32.NewProc("EqualSid") + procFreeSid = modadvapi32.NewProc("FreeSid") + procGetLengthSid = modadvapi32.NewProc("GetLengthSid") + procGetNamedSecurityInfoW = modadvapi32.NewProc("GetNamedSecurityInfoW") + procGetSecurityDescriptorControl = modadvapi32.NewProc("GetSecurityDescriptorControl") + procGetSecurityDescriptorDacl = modadvapi32.NewProc("GetSecurityDescriptorDacl") + procGetSecurityDescriptorGroup = modadvapi32.NewProc("GetSecurityDescriptorGroup") + procGetSecurityDescriptorLength = modadvapi32.NewProc("GetSecurityDescriptorLength") + procGetSecurityDescriptorOwner = modadvapi32.NewProc("GetSecurityDescriptorOwner") + procGetSecurityDescriptorRMControl = modadvapi32.NewProc("GetSecurityDescriptorRMControl") + procGetSecurityDescriptorSacl = modadvapi32.NewProc("GetSecurityDescriptorSacl") + procGetSecurityInfo = modadvapi32.NewProc("GetSecurityInfo") + procGetSidIdentifierAuthority = modadvapi32.NewProc("GetSidIdentifierAuthority") + procGetSidSubAuthority = modadvapi32.NewProc("GetSidSubAuthority") + procGetSidSubAuthorityCount = modadvapi32.NewProc("GetSidSubAuthorityCount") + procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") + procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") + procInitializeSecurityDescriptor = modadvapi32.NewProc("InitializeSecurityDescriptor") + procInitiateSystemShutdownExW = modadvapi32.NewProc("InitiateSystemShutdownExW") + procIsTokenRestricted = modadvapi32.NewProc("IsTokenRestricted") + procIsValidSecurityDescriptor = modadvapi32.NewProc("IsValidSecurityDescriptor") + procIsValidSid = modadvapi32.NewProc("IsValidSid") + procIsWellKnownSid = modadvapi32.NewProc("IsWellKnownSid") + procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") + procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") + procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") + procMakeAbsoluteSD = modadvapi32.NewProc("MakeAbsoluteSD") + procMakeSelfRelativeSD = modadvapi32.NewProc("MakeSelfRelativeSD") + procNotifyServiceStatusChangeW = modadvapi32.NewProc("NotifyServiceStatusChangeW") + procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") + procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") + procOpenServiceW = modadvapi32.NewProc("OpenServiceW") + procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") + procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") + procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") + procQueryServiceLockStatusW = modadvapi32.NewProc("QueryServiceLockStatusW") + procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") + procQueryServiceStatusEx = modadvapi32.NewProc("QueryServiceStatusEx") + procRegCloseKey = modadvapi32.NewProc("RegCloseKey") + procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") + procRegNotifyChangeKeyValue = modadvapi32.NewProc("RegNotifyChangeKeyValue") + procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") + procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") + procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") + procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") + procReportEventW = modadvapi32.NewProc("ReportEventW") + procRevertToSelf = modadvapi32.NewProc("RevertToSelf") + procSetEntriesInAclW = modadvapi32.NewProc("SetEntriesInAclW") + procSetKernelObjectSecurity = modadvapi32.NewProc("SetKernelObjectSecurity") + procSetNamedSecurityInfoW = modadvapi32.NewProc("SetNamedSecurityInfoW") + procSetSecurityDescriptorControl = modadvapi32.NewProc("SetSecurityDescriptorControl") + procSetSecurityDescriptorDacl = modadvapi32.NewProc("SetSecurityDescriptorDacl") + procSetSecurityDescriptorGroup = modadvapi32.NewProc("SetSecurityDescriptorGroup") + procSetSecurityDescriptorOwner = modadvapi32.NewProc("SetSecurityDescriptorOwner") + procSetSecurityDescriptorRMControl = modadvapi32.NewProc("SetSecurityDescriptorRMControl") + procSetSecurityDescriptorSacl = modadvapi32.NewProc("SetSecurityDescriptorSacl") + procSetSecurityInfo = modadvapi32.NewProc("SetSecurityInfo") + procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") + procSetThreadToken = modadvapi32.NewProc("SetThreadToken") + procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation") + procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") + procStartServiceW = modadvapi32.NewProc("StartServiceW") + procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") + procCertCloseStore = modcrypt32.NewProc("CertCloseStore") + procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") + procCertDeleteCertificateFromStore = modcrypt32.NewProc("CertDeleteCertificateFromStore") + procCertDuplicateCertificateContext = modcrypt32.NewProc("CertDuplicateCertificateContext") + procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") + procCertFindCertificateInStore = modcrypt32.NewProc("CertFindCertificateInStore") + procCertFindChainInStore = modcrypt32.NewProc("CertFindChainInStore") + procCertFindExtension = modcrypt32.NewProc("CertFindExtension") + procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") + procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") + procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") + procCertGetNameStringW = modcrypt32.NewProc("CertGetNameStringW") + procCertOpenStore = modcrypt32.NewProc("CertOpenStore") + procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") + procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") + procCryptAcquireCertificatePrivateKey = modcrypt32.NewProc("CryptAcquireCertificatePrivateKey") + procCryptDecodeObject = modcrypt32.NewProc("CryptDecodeObject") + procCryptProtectData = modcrypt32.NewProc("CryptProtectData") + procCryptQueryObject = modcrypt32.NewProc("CryptQueryObject") + procCryptUnprotectData = modcrypt32.NewProc("CryptUnprotectData") + procPFXImportCertStore = modcrypt32.NewProc("PFXImportCertStore") + procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") + procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") + procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") + procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") + procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") + procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") + procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") + procCancelIo = modkernel32.NewProc("CancelIo") + procCancelIoEx = modkernel32.NewProc("CancelIoEx") + procCloseHandle = modkernel32.NewProc("CloseHandle") + procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") + procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") + procCreateEventExW = modkernel32.NewProc("CreateEventExW") + procCreateEventW = modkernel32.NewProc("CreateEventW") + procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") + procCreateFileW = modkernel32.NewProc("CreateFileW") + procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") + procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") + procCreateJobObjectW = modkernel32.NewProc("CreateJobObjectW") + procCreateMutexExW = modkernel32.NewProc("CreateMutexExW") + procCreateMutexW = modkernel32.NewProc("CreateMutexW") + procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") + procCreatePipe = modkernel32.NewProc("CreatePipe") + procCreateProcessW = modkernel32.NewProc("CreateProcessW") + procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") + procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") + procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") + procDeleteFileW = modkernel32.NewProc("DeleteFileW") + procDeleteProcThreadAttributeList = modkernel32.NewProc("DeleteProcThreadAttributeList") + procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") + procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") + procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") + procExitProcess = modkernel32.NewProc("ExitProcess") + procFindClose = modkernel32.NewProc("FindClose") + procFindCloseChangeNotification = modkernel32.NewProc("FindCloseChangeNotification") + procFindFirstChangeNotificationW = modkernel32.NewProc("FindFirstChangeNotificationW") + procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") + procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW") + procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") + procFindNextChangeNotification = modkernel32.NewProc("FindNextChangeNotification") + procFindNextFileW = modkernel32.NewProc("FindNextFileW") + procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW") + procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW") + procFindResourceW = modkernel32.NewProc("FindResourceW") + procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") + procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") + procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") + procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") + procFormatMessageW = modkernel32.NewProc("FormatMessageW") + procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") + procFreeLibrary = modkernel32.NewProc("FreeLibrary") + procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") + procGetACP = modkernel32.NewProc("GetACP") + procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts") + procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") + procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") + procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") + procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") + procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") + procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") + procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") + procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") + procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW") + procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW") + procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") + procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") + procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") + procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") + procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") + procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") + procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") + procGetFileType = modkernel32.NewProc("GetFileType") + procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") + procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") + procGetLastError = modkernel32.NewProc("GetLastError") + procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") + procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") + procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") + procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW") + procGetModuleHandleExW = modkernel32.NewProc("GetModuleHandleExW") + procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") + procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") + procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") + procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") + procGetProcAddress = modkernel32.NewProc("GetProcAddress") + procGetProcessId = modkernel32.NewProc("GetProcessId") + procGetProcessPreferredUILanguages = modkernel32.NewProc("GetProcessPreferredUILanguages") + procGetProcessShutdownParameters = modkernel32.NewProc("GetProcessShutdownParameters") + procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") + procGetProcessWorkingSetSizeEx = modkernel32.NewProc("GetProcessWorkingSetSizeEx") + procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") + procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") + procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") + procGetStdHandle = modkernel32.NewProc("GetStdHandle") + procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW") + procGetSystemPreferredUILanguages = modkernel32.NewProc("GetSystemPreferredUILanguages") + procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") + procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime") + procGetSystemWindowsDirectoryW = modkernel32.NewProc("GetSystemWindowsDirectoryW") + procGetTempPathW = modkernel32.NewProc("GetTempPathW") + procGetThreadPreferredUILanguages = modkernel32.NewProc("GetThreadPreferredUILanguages") + procGetTickCount64 = modkernel32.NewProc("GetTickCount64") + procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") + procGetUserPreferredUILanguages = modkernel32.NewProc("GetUserPreferredUILanguages") + procGetVersion = modkernel32.NewProc("GetVersion") + procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW") + procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW") + procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW") + procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW") + procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW") + procGetWindowsDirectoryW = modkernel32.NewProc("GetWindowsDirectoryW") + procInitializeProcThreadAttributeList = modkernel32.NewProc("InitializeProcThreadAttributeList") + procIsWow64Process = modkernel32.NewProc("IsWow64Process") + procIsWow64Process2 = modkernel32.NewProc("IsWow64Process2") + procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") + procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") + procLoadResource = modkernel32.NewProc("LoadResource") + procLocalAlloc = modkernel32.NewProc("LocalAlloc") + procLocalFree = modkernel32.NewProc("LocalFree") + procLockFileEx = modkernel32.NewProc("LockFileEx") + procLockResource = modkernel32.NewProc("LockResource") + procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") + procMoveFileExW = modkernel32.NewProc("MoveFileExW") + procMoveFileW = modkernel32.NewProc("MoveFileW") + procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") + procOpenEventW = modkernel32.NewProc("OpenEventW") + procOpenMutexW = modkernel32.NewProc("OpenMutexW") + procOpenProcess = modkernel32.NewProc("OpenProcess") + procOpenThread = modkernel32.NewProc("OpenThread") + procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") + procProcess32FirstW = modkernel32.NewProc("Process32FirstW") + procProcess32NextW = modkernel32.NewProc("Process32NextW") + procProcessIdToSessionId = modkernel32.NewProc("ProcessIdToSessionId") + procPulseEvent = modkernel32.NewProc("PulseEvent") + procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") + procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW") + procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") + procReadConsoleW = modkernel32.NewProc("ReadConsoleW") + procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") + procReadFile = modkernel32.NewProc("ReadFile") + procReleaseMutex = modkernel32.NewProc("ReleaseMutex") + procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") + procResetEvent = modkernel32.NewProc("ResetEvent") + procResumeThread = modkernel32.NewProc("ResumeThread") + procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") + procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") + procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") + procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") + procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") + procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") + procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") + procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") + procSetErrorMode = modkernel32.NewProc("SetErrorMode") + procSetEvent = modkernel32.NewProc("SetEvent") + procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") + procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") + procSetFileInformationByHandle = modkernel32.NewProc("SetFileInformationByHandle") + procSetFilePointer = modkernel32.NewProc("SetFilePointer") + procSetFileTime = modkernel32.NewProc("SetFileTime") + procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") + procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") + procSetNamedPipeHandleState = modkernel32.NewProc("SetNamedPipeHandleState") + procSetPriorityClass = modkernel32.NewProc("SetPriorityClass") + procSetProcessPriorityBoost = modkernel32.NewProc("SetProcessPriorityBoost") + procSetProcessShutdownParameters = modkernel32.NewProc("SetProcessShutdownParameters") + procSetProcessWorkingSetSizeEx = modkernel32.NewProc("SetProcessWorkingSetSizeEx") + procSetStdHandle = modkernel32.NewProc("SetStdHandle") + procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") + procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") + procSizeofResource = modkernel32.NewProc("SizeofResource") + procSleepEx = modkernel32.NewProc("SleepEx") + procTerminateJobObject = modkernel32.NewProc("TerminateJobObject") + procTerminateProcess = modkernel32.NewProc("TerminateProcess") + procThread32First = modkernel32.NewProc("Thread32First") + procThread32Next = modkernel32.NewProc("Thread32Next") + procUnlockFileEx = modkernel32.NewProc("UnlockFileEx") + procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") + procUpdateProcThreadAttribute = modkernel32.NewProc("UpdateProcThreadAttribute") + procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") + procVirtualFree = modkernel32.NewProc("VirtualFree") + procVirtualLock = modkernel32.NewProc("VirtualLock") + procVirtualProtect = modkernel32.NewProc("VirtualProtect") + procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") + procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") + procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") + procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") + procWriteFile = modkernel32.NewProc("WriteFile") + procAcceptEx = modmswsock.NewProc("AcceptEx") + procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") + procTransmitFile = modmswsock.NewProc("TransmitFile") + procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") + procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") + procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") + procNtCreateFile = modntdll.NewProc("NtCreateFile") + procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") + procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess") + procNtSetInformationProcess = modntdll.NewProc("NtSetInformationProcess") + procRtlDefaultNpAcl = modntdll.NewProc("RtlDefaultNpAcl") + procRtlDosPathNameToNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToNtPathName_U_WithStatus") + procRtlDosPathNameToRelativeNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToRelativeNtPathName_U_WithStatus") + procRtlGetCurrentPeb = modntdll.NewProc("RtlGetCurrentPeb") + procRtlGetNtVersionNumbers = modntdll.NewProc("RtlGetNtVersionNumbers") + procRtlGetVersion = modntdll.NewProc("RtlGetVersion") + procRtlInitString = modntdll.NewProc("RtlInitString") + procRtlInitUnicodeString = modntdll.NewProc("RtlInitUnicodeString") + procRtlNtStatusToDosErrorNoTeb = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb") + procCLSIDFromString = modole32.NewProc("CLSIDFromString") + procCoCreateGuid = modole32.NewProc("CoCreateGuid") + procCoGetObject = modole32.NewProc("CoGetObject") + procCoInitializeEx = modole32.NewProc("CoInitializeEx") + procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") + procCoUninitialize = modole32.NewProc("CoUninitialize") + procStringFromGUID2 = modole32.NewProc("StringFromGUID2") + procEnumProcesses = modpsapi.NewProc("EnumProcesses") + procSubscribeServiceChangeNotifications = modsechost.NewProc("SubscribeServiceChangeNotifications") + procUnsubscribeServiceChangeNotifications = modsechost.NewProc("UnsubscribeServiceChangeNotifications") + procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") + procTranslateNameW = modsecur32.NewProc("TranslateNameW") + procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") + procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") + procShellExecuteW = modshell32.NewProc("ShellExecuteW") + procExitWindowsEx = moduser32.NewProc("ExitWindowsEx") + procGetShellWindow = moduser32.NewProc("GetShellWindow") + procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId") + procMessageBoxW = moduser32.NewProc("MessageBoxW") + procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") + procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") + procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") + procWinVerifyTrustEx = modwintrust.NewProc("WinVerifyTrustEx") + procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") + procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") + procWSACleanup = modws2_32.NewProc("WSACleanup") + procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") + procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") + procWSAIoctl = modws2_32.NewProc("WSAIoctl") + procWSARecv = modws2_32.NewProc("WSARecv") + procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") + procWSASend = modws2_32.NewProc("WSASend") + procWSASendTo = modws2_32.NewProc("WSASendTo") + procWSASocketW = modws2_32.NewProc("WSASocketW") + procWSAStartup = modws2_32.NewProc("WSAStartup") + procbind = modws2_32.NewProc("bind") + procclosesocket = modws2_32.NewProc("closesocket") + procconnect = modws2_32.NewProc("connect") + procgethostbyname = modws2_32.NewProc("gethostbyname") + procgetpeername = modws2_32.NewProc("getpeername") + procgetprotobyname = modws2_32.NewProc("getprotobyname") + procgetservbyname = modws2_32.NewProc("getservbyname") + procgetsockname = modws2_32.NewProc("getsockname") + procgetsockopt = modws2_32.NewProc("getsockopt") + proclisten = modws2_32.NewProc("listen") + procntohs = modws2_32.NewProc("ntohs") + procrecvfrom = modws2_32.NewProc("recvfrom") + procsendto = modws2_32.NewProc("sendto") + procsetsockopt = modws2_32.NewProc("setsockopt") + procshutdown = modws2_32.NewProc("shutdown") + procsocket = modws2_32.NewProc("socket") + procWTSEnumerateSessionsW = modwtsapi32.NewProc("WTSEnumerateSessionsW") + procWTSFreeMemory = modwtsapi32.NewProc("WTSFreeMemory") + procWTSQueryUserToken = modwtsapi32.NewProc("WTSQueryUserToken") ) -func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) { + var _p0 uint32 + if resetToDefault { + _p0 = 1 } - return -} - -func DeregisterEventSource(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) { + var _p0 uint32 + if disableAllPrivileges { + _p0 = 1 } - return -} - -func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + if r1 == 0 { + err = errnoErr(e1) } return } -func CloseServiceHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) +func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { + r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) { + r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { + r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) + if r1 == 0 { + err = errnoErr(e1) } return } -func DeleteService(service Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) +func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { + r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) +func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { + r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) +func CloseServiceHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } @@ -384,1436 +499,1015 @@ func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) +func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) +func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) +func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(str) + if err != nil { + return + } + return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size) +} + +func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) +func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { + r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) +func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { + r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) } return } -func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) +func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) +func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetLastError() (lasterr error) { - r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) - if r0 != 0 { - lasterr = syscall.Errno(r0) +func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { + r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) + if r1 == 0 { + err = errnoErr(e1) } return } -func LoadLibrary(libname string) (handle Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(libname) - if err != nil { - return +func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) } - return _LoadLibrary(_p0) + return } -func _LoadLibrary(libname *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func DeleteService(service Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(libname) - if err != nil { - return +func DeregisterEventSource(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } - return _LoadLibraryEx(_p0, zero, flags) + return } -func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { + r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) + if r1 == 0 { + err = errnoErr(e1) } return } -func FreeLibrary(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) +func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { + r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(procname) - if err != nil { - return - } - return _GetProcAddress(module, _p0) +func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { + r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) + isEqual = r0 != 0 + return } -func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { - r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) - proc = uintptr(r0) - if proc == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FreeSid(sid *SID) (err error) { + r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + if r1 != 0 { + err = errnoErr(e1) } return } -func GetVersion() (ver uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) - ver = uint32(r0) - if ver == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func GetLengthSid(sid *SID) (len uint32) { + r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + len = uint32(r0) return } -func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { +func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { var _p0 *uint16 - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + _p0, ret = syscall.UTF16PtrFromString(objectName) + if ret != nil { + return } - return + return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd) } -func ExitProcess(exitcode uint32) { - syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) +func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { + r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } return } -func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) + if r1 == 0 { + err = errnoErr(e1) } return } -func ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] +func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) { + var _p0 uint32 + if *daclPresent { + _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + var _p1 uint32 + if *daclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + *daclPresent = _p0 != 0 + *daclDefaulted = _p1 != 0 if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] +func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) { + var _p0 uint32 + if *groupDefaulted { + _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) + *groupDefaulted = _p0 != 0 if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { +func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) { + r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + len = uint32(r0) + return +} + +func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) { var _p0 uint32 - if wait { + if *ownerDefaulted { _p0 = 1 - } else { - _p0 = 0 } - r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) + r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) + *ownerDefaulted = _p0 != 0 if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { - r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) - newlowoffset = uint32(r0) - if newlowoffset == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) { + r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) +func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) { + var _p0 uint32 + if *saclPresent { + _p0 = 1 + } + var _p1 uint32 + if *saclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + *saclPresent = _p0 != 0 + *saclDefaulted = _p1 != 0 if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetStdHandle(stdhandle uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { + r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func SetStdHandle(stdhandle uint32, handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { + r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) return } -func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { + r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) + subAuthority = (*uint32)(unsafe.Pointer(r0)) return } -func findNextFile1(handle Handle, data *win32finddata1) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func getSidSubAuthorityCount(sid *SID) (count *uint8) { + r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + count = (*uint8)(unsafe.Pointer(r0)) return } -func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) +func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) +func ImpersonateSelf(impersonationlevel uint32) (err error) { + r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) { + r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func SetCurrentDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) +func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) { + var _p0 uint32 + if forceAppsClosed { + _p0 = 1 + } + var _p1 uint32 + if rebootAfterShutdown { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { - r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func isTokenRestricted(tokenHandle Token) (ret bool, err error) { + r0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0) + ret = r0 != 0 + if !ret { + err = errnoErr(e1) } return } -func RemoveDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { + r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + isValid = r0 != 0 return } -func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func isValidSid(sid *SID) (isValid bool) { + r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + isValid = r0 != 0 return } -func MoveFile(from *uint16, to *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) +func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { + r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) + isWellKnown = r0 != 0 + return +} + +func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) +func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetComputerName(buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) +func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { + r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) +func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetEndOfFile(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) +func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetSystemTimeAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) +func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) { + r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) + if r0 != 0 { + ret = syscall.Errno(r0) + } return } -func GetSystemTimePreciseAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) +func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { + r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) + if r1 == 0 { + err = errnoErr(e1) + } return } -func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) - rc = uint32(r0) - if rc == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) } return } -func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) +func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) handle = Handle(r0) if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) +func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) { + var _p0 uint32 + if openAsSelf { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) +func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) +func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CancelIoEx(s Handle, o *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) +func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { - var _p0 uint32 - if inheritHandles { - _p0 = 1 - } else { - _p0 = 0 +func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) + if r1 == 0 { + err = errnoErr(e1) } - r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) + return +} + +func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) + } + return +} + +func RegCloseKey(key Handle) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { + r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) } return } -func OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) { +func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) { var _p0 uint32 - if inheritHandle { + if watchSubtree { _p0 = 1 - } else { - _p0 = 0 } - r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(da), uintptr(_p0), uintptr(pid)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + var _p1 uint32 + if asynchronous { + _p1 = 1 + } + r0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) } return } -func TerminateProcess(handle Handle, exitcode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) } return } -func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { + r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) + if r0 != 0 { + regerrno = syscall.Errno(r0) } return } -func GetStartupInfo(startupInfo *StartupInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) + if r0 != 0 { + regerrno = syscall.Errno(r0) } return } -func GetCurrentProcess() (pseudoHandle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentProcess.Addr(), 0, 0, 0, 0) - pseudoHandle = Handle(r0) - if pseudoHandle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) } return } -func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) +func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { - var _p0 uint32 - if bInheritHandle { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) +func RevertToSelf() (err error) { + r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { - r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) - event = uint32(r0) - if event == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) { + r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { - var _p0 uint32 - if waitAll { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) - event = uint32(r0) - if event == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) { + r1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) + if r1 == 0 { + err = errnoErr(e1) } return } -func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { + var _p0 *uint16 + _p0, ret = syscall.UTF16PtrFromString(objectName) + if ret != nil { + return } - return + return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl) } -func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { + r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func GetFileType(filehandle Handle) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) { + r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) + if r1 == 0 { + err = errnoErr(e1) } return } -func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) +func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) { + var _p0 uint32 + if daclPresent { + _p0 = 1 + } + var _p1 uint32 + if daclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) +func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) { + var _p0 uint32 + if groupDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { - r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) +func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) { + var _p0 uint32 + if ownerDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetEnvironmentStrings() (envs *uint16, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) - envs = (*uint16)(unsafe.Pointer(r0)) - if envs == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { + syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) return } -func FreeEnvironmentStrings(envs *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) +func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) { + var _p0 uint32 + if saclPresent { + _p0 = 1 + } + var _p1 uint32 + if saclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { + r0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) +func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) +func SetThreadToken(thread *Handle, token Token) (err error) { + r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetFileAttributes(name *uint16) (attrs uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - attrs = uint32(r0) - if attrs == INVALID_FILE_ATTRIBUTES { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func SetFileAttributes(name *uint16, attrs uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) +func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { + r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) +func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) - cmd = (*uint16)(unsafe.Pointer(r0)) +func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { + r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } return } -func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { - r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) - argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) - if argv == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CertCloseStore(store Handle, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func LocalFree(hmem Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) - handle = Handle(r0) - if handle != 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { + r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) + context = (*CertContext)(unsafe.Pointer(r0)) + if context == nil { + err = errnoErr(e1) } return } -func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) +func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { + r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func FlushFileBuffers(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) { + r0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + dupContext = (*CertContext)(unsafe.Pointer(r0)) return } -func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { + r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) + context = (*CertContext)(unsafe.Pointer(r0)) + if context == nil { + err = errnoErr(e1) } return } -func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) { + r0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) + cert = (*CertContext)(unsafe.Pointer(r0)) + if cert == nil { + err = errnoErr(e1) } return } -func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) { + r0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) + certchain = (*CertChainContext)(unsafe.Pointer(r0)) + if certchain == nil { + err = errnoErr(e1) } return } -func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) { + r0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) + ret = (*CertExtension)(unsafe.Pointer(r0)) return } -func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) - addr = uintptr(r0) - if addr == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func UnmapViewOfFile(addr uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FlushViewOfFile(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func CertFreeCertificateChain(ctx *CertChainContext) { + syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) return } -func VirtualLock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) +func CertFreeCertificateContext(ctx *CertContext) (err error) { + r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func VirtualUnlock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) +func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { + r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) - value = uintptr(r0) - if value == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) { + r0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) + chars = uint32(r0) return } -func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) } return } -func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { + r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) + store = Handle(r0) + if store == 0 { + err = errnoErr(e1) } return } -func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) +func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { + r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { +func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) { var _p0 uint32 - if watchSubTree { + if *callerFreeProvOrNCryptKey { _p0 = 1 - } else { - _p0 = 0 } - r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) + r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) + *callerFreeProvOrNCryptKey = _p0 != 0 if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) - store = Handle(r0) - if store == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { - r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) +func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CertCloseStore(store Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) +func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { - r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) +func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CertFreeCertificateChain(ctx *CertChainContext) { - syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - return -} - -func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) { + r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) + store = Handle(r0) + if store == 0 { + err = errnoErr(e1) } return } -func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { + r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) + same = r0 != 0 return } -func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { - r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + var _p0 *uint16 + _p0, status = syscall.UTF16PtrFromString(name) + if status != nil { + return } - return + return _DnsQuery(_p0, qtype, options, extra, qrs, pr) } -func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) +func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) if r0 != 0 { - regerrno = syscall.Errno(r0) + status = syscall.Errno(r0) } return } -func RegCloseKey(key Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } +func DnsRecordListFree(rl *DNSRecord, freetype uint32) { + syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) return } -func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) +func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { + r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) if r0 != 0 { - regerrno = syscall.Errno(r0) + errcode = syscall.Errno(r0) } return } -func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) +func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { + r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) if r0 != 0 { - regerrno = syscall.Errno(r0) + errcode = syscall.Errno(r0) } return } -func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) +func GetIfEntry(pIfRow *MibIfRow) (errcode error) { + r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) if r0 != 0 { - regerrno = syscall.Errno(r0) + errcode = syscall.Errno(r0) } return } -func getCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) - pid = uint32(r0) - return -} - -func GetConsoleMode(console Handle, mode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) +func AssignProcessToJobObject(job Handle, process Handle) (err error) { + r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetConsoleMode(console Handle, mode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) +func CancelIo(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) +func CancelIoEx(s Handle, o *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) +func CloseHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) +func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { + r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) - if r1&0xff == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } @@ -1821,946 +1515,2125 @@ func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags u func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) if r1&0xff == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) - id = uint32(r0) +func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } return } -func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) +func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) handle = Handle(r0) if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) +func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { +func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) { var _p0 uint32 - if inheritHandle { + if initialOwner { _p0 = 1 - } else { - _p0 = 0 } - r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func SetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func ResetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) +func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func PulseEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { + var _p0 uint32 + if inheritHandles { + _p0 = 1 } - return -} - -func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) + r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) + if r1&0xff == 0 { + err = errnoErr(e1) } return } -func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) +func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) handle = Handle(r0) if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) + if r1 == 0 { + err = errnoErr(e1) } return } -func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) +func DeleteFile(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { + syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) return } -func FindVolumeClose(findVolume Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) +func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) +func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetDriveType(rootPathName *uint16) (driveType uint32) { - r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) - driveType = uint32(r0) - return -} - -func GetLogicalDrives() (drivesBitMask uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) - drivesBitMask = uint32(r0) - if drivesBitMask == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { + var _p0 uint32 + if bInheritHandle { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func ExitProcess(exitcode uint32) { + syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) return } -func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) +func FindClose(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) +func FindCloseChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(path) + if err != nil { + return } - return + return _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter) } -func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { + var _p1 uint32 + if watchSubtree { + _p1 = 1 + } + r0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) +func FindNextChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { - r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) - if r0 != 0 { - sockerr = syscall.Errno(r0) +func findNextFile1(handle Handle, data *win32finddata1) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func WSACleanup() (err error) { - r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + if r1 == 0 { + err = errnoErr(e1) } return } -func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) + if r1 == 0 { + err = errnoErr(e1) } return } -func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType)) + resInfo = Handle(r0) + if resInfo == 0 { + err = errnoErr(e1) } return } -func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { - r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindVolumeClose(findVolume Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { - r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FlushFileBuffers(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FlushViewOfFile(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { + var _p0 *uint16 + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FreeEnvironmentStrings(envs *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func listen(s Handle, backlog int32) (err error) { - r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FreeLibrary(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func shutdown(s Handle, how int32) (err error) { - r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func Closesocket(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func GetACP() (acp uint32) { + r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) + acp = uint32(r0) return } -func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) +func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { - syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) +func GetCommandLine() (cmd *uint16) { + r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) + cmd = (*uint16)(unsafe.Pointer(r0)) return } -func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) + if r1 == 0 { + err = errnoErr(e1) } return } -func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetComputerName(buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetConsoleMode(console Handle, mode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func GetHostByName(name string) (h *Hostent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return +func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } - return _GetHostByName(_p0) + return } -func _GetHostByName(name *byte) (h *Hostent, err error) { - r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - h = (*Hostent)(unsafe.Pointer(r0)) - if h == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func GetCurrentProcessId() (pid uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) + pid = uint32(r0) return } -func GetServByName(name string, proto string) (s *Servent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - var _p1 *byte - _p1, err = syscall.BytePtrFromString(proto) - if err != nil { - return - } - return _GetServByName(_p0, _p1) +func GetCurrentThreadId() (id uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) + id = uint32(r0) + return } -func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { - r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) - s = (*Servent)(unsafe.Pointer(r0)) - if s == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { + r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func Ntohs(netshort uint16) (u uint16) { - r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) - u = uint16(r0) +func GetDriveType(rootPathName *uint16) (driveType uint32) { + r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) + driveType = uint32(r0) return } -func GetProtoByName(name string) (p *Protoent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return +func GetEnvironmentStrings() (envs *uint16, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) + envs = (*uint16)(unsafe.Pointer(r0)) + if envs == nil { + err = errnoErr(e1) } - return _GetProtoByName(_p0) + return } -func _GetProtoByName(name *byte) (p *Protoent, err error) { - r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - p = (*Protoent)(unsafe.Pointer(r0)) - if p == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - var _p0 *uint16 - _p0, status = syscall.UTF16PtrFromString(name) - if status != nil { - return +func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) + if r1 == 0 { + err = errnoErr(e1) } - return _DnsQuery(_p0, qtype, options, extra, qrs, pr) + return } -func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) - if r0 != 0 { - status = syscall.Errno(r0) +func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) + if r1 == 0 { + err = errnoErr(e1) } return } -func DnsRecordListFree(rl *DNSRecord, freetype uint32) { - syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) +func GetFileAttributes(name *uint16) (attrs uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + attrs = uint32(r0) + if attrs == INVALID_FILE_ATTRIBUTES { + err = errnoErr(e1) + } return } -func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { - r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) - same = r0 != 0 +func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + if r1 == 0 { + err = errnoErr(e1) + } return } -func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { - r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) - if r0 != 0 { - sockerr = syscall.Errno(r0) +func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func FreeAddrInfoW(addrinfo *AddrinfoW) { - syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) +func GetFileType(filehandle Handle) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } return } -func GetIfEntry(pIfRow *MibIfRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) - if r0 != 0 { - errcode = syscall.Errno(r0) +func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) +func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetLastError() (lasterr error) { + r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) if r0 != 0 { - errcode = syscall.Errno(r0) + lasterr = syscall.Errno(r0) } return } -func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { - r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) - n = int32(r0) - if n == -1 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetLogicalDrives() (drivesBitMask uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) + drivesBitMask = uint32(r0) + if drivesBitMask == 0 { + err = errnoErr(e1) } return } -func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { - r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) +func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func GetACP() (acp uint32) { - r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) - acp = uint32(r0) +func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } return } -func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { - r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) - nwrite = int32(r0) - if nwrite == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) { + r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) + if r1 == 0 { + err = errnoErr(e1) } return } -func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) - if r1&0xff == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) - if r1&0xff == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { - r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) - if r0 != 0 { - neterr = syscall.Errno(r0) +func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { + var _p0 uint32 + if wait { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { - r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) - if r0 != 0 { - neterr = syscall.Errno(r0) +func GetPriorityClass(process Handle) (ret uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) + ret = uint32(r0) + if ret == 0 { + err = errnoErr(e1) } return } -func NetApiBufferFree(buf *byte) (neterr error) { - r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) - if r0 != 0 { - neterr = syscall.Errno(r0) +func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(procname) + if err != nil { + return + } + return _GetProcAddress(module, _p0) +} + +func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { + r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) + proc = uintptr(r0) + if proc == 0 { + err = errnoErr(e1) } return } -func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) +func GetProcessId(process Handle) (id uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) + id = uint32(r0) + if id == 0 { + err = errnoErr(e1) + } + return +} + +func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) +func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) +func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) +func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { + syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0) + return +} + +func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) +func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetStartupInfo(startupInfo *StartupInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetStdHandle(stdhandle uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) len = uint32(r0) + if len == 0 { + err = errnoErr(e1) + } return } -func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) +func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) +func GetSystemTimeAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + return +} + +func GetSystemTimePreciseAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + return +} + +func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) + } + return +} + +func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) +func getTickCount64() (ms uint64) { + r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) + ms = uint64(r0) + return +} + +func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) + rc = uint32(r0) + if rc == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func FreeSid(sid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - if r1 != 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetVersion() (ver uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) + ver = uint32(r0) + if ver == 0 { + err = errnoErr(e1) } return } -func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { - r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) - isEqual = r0 != 0 +func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + if r1 == 0 { + err = errnoErr(e1) + } return } -func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { - r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) +func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func OpenProcessToken(h Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(h), uintptr(access), uintptr(unsafe.Pointer(token))) +func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(t), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) +func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) +func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) +func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) len = uint32(r0) if len == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) + } + return +} + +func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func IsWow64Process(handle Handle, isWow64 *bool) (err error) { + var _p0 uint32 + if *isWow64 { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0) + *isWow64 = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) { + err = procIsWow64Process2.Find() + if err != nil { + return + } + r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return + } + return _LoadLibraryEx(_p0, zero, flags) +} + +func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func LoadLibrary(libname string) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return + } + return _LoadLibrary(_p0) +} + +func _LoadLibrary(libname *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + resData = Handle(r0) + if resData == 0 { + err = errnoErr(e1) + } + return +} + +func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { + r0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0) + ptr = uintptr(r0) + if ptr == 0 { + err = errnoErr(e1) + } + return +} + +func LocalFree(hmem Handle) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) + handle = Handle(r0) + if handle != 0 { + err = errnoErr(e1) + } + return +} + +func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LockResource(resData Handle) (addr uintptr, err error) { + r0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0) + addr = uintptr(r0) + if addr == 0 { + err = errnoErr(e1) + } + return +} + +func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) + addr = uintptr(r0) + if addr == 0 { + err = errnoErr(e1) + } + return +} + +func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func MoveFile(from *uint16, to *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { + r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) + nwrite = int32(r0) + if nwrite == 0 { + err = errnoErr(e1) + } + return +} + +func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func PulseEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { + var _p0 uint32 + if watchSubTree { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReleaseMutex(mutex Handle) (err error) { + r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func RemoveDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ResetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ResumeThread(thread Handle) (ret uint32, err error) { + r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) + ret = uint32(r0) + if ret == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setConsoleCursorPosition(console Handle, position uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetConsoleMode(console Handle, mode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCurrentDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetDefaultDllDirectories(directoryFlags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetDllDirectory(path string) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(path) + if err != nil { + return + } + return _SetDllDirectory(_p0) +} + +func _SetDllDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetEndOfFile(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetErrorMode(mode uint32) (ret uint32) { + r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) + ret = uint32(r0) + return +} + +func SetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileAttributes(name *uint16, attrs uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { + r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) + newlowoffset = uint32(r0) + if newlowoffset == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { + r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) + ret = int(r0) + if ret == 0 { + err = errnoErr(e1) + } + return +} + +func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetPriorityClass(process Handle, priorityClass uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetProcessPriorityBoost(process Handle, disable bool) (err error) { + var _p0 uint32 + if disable { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetStdHandle(stdhandle uint32, handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { + r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + size = uint32(r0) + if size == 0 { + err = errnoErr(e1) + } + return +} + +func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { + var _p0 uint32 + if alertable { + _p0 = 1 + } + r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) + ret = uint32(r0) + return +} + +func TerminateJobObject(job Handle, exitCode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func TerminateProcess(handle Handle, exitcode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func UnmapViewOfFile(addr uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) { + r1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) + value = uintptr(r0) + if value == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualLock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualUnlock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { + var _p0 uint32 + if waitAll { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) + event = uint32(r0) + if event == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { + r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) + event = uint32(r0) + if event == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { + syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) + return +} + +func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func NetApiBufferFree(buf *byte) (neterr error) { + r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { + r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { + r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) { + r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { + r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlGetCurrentPeb() (peb *PEB) { + r0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0) + peb = (*PEB)(unsafe.Pointer(r0)) + return +} + +func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { + syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) + return +} + +func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { + r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlInitString(destinationString *NTString, sourceString *byte) { + syscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + return +} + +func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) { + syscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + return +} + +func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) { + r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0) + ret = syscall.Errno(r0) + return +} + +func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { + r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func coCreateGuid(pguid *GUID) (ret error) { + r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) { + r0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { + r0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CoTaskMemFree(address unsafe.Pointer) { + syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) + return +} + +func CoUninitialize() { + syscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0) + return +} + +func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { + r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) + chars = int32(r0) + return +} + +func EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) { + var _p0 *uint32 + if len(processIds) > 0 { + _p0 = &processIds[0] + } + r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(processIds)), uintptr(unsafe.Pointer(bytesReturned))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) { + ret = procSubscribeServiceChangeNotifications.Find() + if ret != nil { + return + } + r0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) { + err = procUnsubscribeServiceChangeNotifications.Find() + if err != nil { + return + } + syscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0) + return +} + +func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { + r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) + argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) + if argv == nil { + err = errnoErr(e1) + } + return +} + +func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { + r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { + r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) + if r1 <= 32 { + err = errnoErr(e1) + } + return +} + +func ExitWindowsEx(flags uint32, reason uint32) (err error) { + r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetShellWindow() (shellWindow HWND) { + r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) + shellWindow = HWND(r0) + return +} + +func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0) + tid = uint32(r0) + if tid == 0 { + err = errnoErr(e1) + } + return +} + +func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { + r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) + ret = int32(r0) + if ret == 0 { + err = errnoErr(e1) + } + return +} + +func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) { + var _p0 uint32 + if inheritExisting { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DestroyEnvironmentBlock(block *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { + r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func FreeAddrInfoW(addrinfo *AddrinfoW) { + syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) + return +} + +func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { + r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) + if r0 != 0 { + sockerr = syscall.Errno(r0) + } + return +} + +func WSACleanup() (err error) { + r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { + r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) + n = int32(r0) + if n == -1 { + err = errnoErr(e1) + } + return +} + +func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) { + var _p0 uint32 + if wait { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { + r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { + r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) + if r0 != 0 { + sockerr = syscall.Errno(r0) + } + return +} + +func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Closesocket(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func GetHostByName(name string) (h *Hostent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + return _GetHostByName(_p0) +} + +func _GetHostByName(name *byte) (h *Hostent, err error) { + r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + h = (*Hostent)(unsafe.Pointer(r0)) + if h == nil { + err = errnoErr(e1) + } + return +} + +func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func GetProtoByName(name string) (p *Protoent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + return _GetProtoByName(_p0) +} + +func _GetProtoByName(name *byte) (p *Protoent, err error) { + r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + p = (*Protoent)(unsafe.Pointer(r0)) + if p == nil { + err = errnoErr(e1) + } + return +} + +func GetServByName(name string, proto string) (s *Servent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = syscall.BytePtrFromString(proto) + if err != nil { + return + } + return _GetServByName(_p0, _p1) +} + +func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { + r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) + s = (*Servent)(unsafe.Pointer(r0)) + if s == nil { + err = errnoErr(e1) + } + return +} + +func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { + r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func listen(s Handle, backlog int32) (err error) { + r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Ntohs(netshort uint16) (u uint16) { + r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) + u = uint16(r0) + return +} + +func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int32(r0) + if n == -1 { + err = errnoErr(e1) + } + return +} + +func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { + r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func shutdown(s Handle, how int32) (err error) { + r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WTSFreeMemory(ptr uintptr) { + syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) + return +} + +func WTSQueryUserToken(session uint32, token *Token) (err error) { + r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go index fe47b9b35..48ec64b40 100644 --- a/vendor/golang.org/x/text/transform/transform.go +++ b/vendor/golang.org/x/text/transform/transform.go @@ -78,8 +78,8 @@ type SpanningTransformer interface { // considering the error err. // // A nil error means that all input bytes are known to be identical to the - // output produced by the Transformer. A nil error can be be returned - // regardless of whether atEOF is true. If err is nil, then then n must + // output produced by the Transformer. A nil error can be returned + // regardless of whether atEOF is true. If err is nil, then n must // equal len(src); the converse is not necessarily true. // // ErrEndOfSpan means that the Transformer output may differ from the @@ -493,7 +493,7 @@ func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err erro return dstL.n, srcL.p, err } -// Deprecated: use runes.Remove instead. +// Deprecated: Use runes.Remove instead. func RemoveFunc(f func(r rune) bool) Transformer { return removeF(f) } @@ -648,7 +648,8 @@ func String(t Transformer, s string) (result string, n int, err error) { // Transform the remaining input, growing dst and src buffers as necessary. for { n := copy(src, s[pSrc:]) - nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], pSrc+n == len(s)) + atEOF := pSrc+n == len(s) + nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], atEOF) pDst += nDst pSrc += nSrc @@ -659,6 +660,9 @@ func String(t Transformer, s string) (result string, n int, err error) { dst = grow(dst, pDst) } } else if err == ErrShortSrc { + if atEOF { + return string(dst[:pDst]), pSrc, err + } if nSrc == 0 { src = grow(src, 0) } diff --git a/vendor/golang.org/x/text/unicode/norm/composition.go b/vendor/golang.org/x/text/unicode/norm/composition.go index bab4c5de0..e2087bce5 100644 --- a/vendor/golang.org/x/text/unicode/norm/composition.go +++ b/vendor/golang.org/x/text/unicode/norm/composition.go @@ -407,7 +407,7 @@ func decomposeHangul(buf []byte, r rune) int { // decomposeHangul algorithmically decomposes a Hangul rune into // its Jamo components. -// See http://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul. +// See https://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul. func (rb *reorderBuffer) decomposeHangul(r rune) { r -= hangulBase x := r % jamoTCount @@ -420,7 +420,7 @@ func (rb *reorderBuffer) decomposeHangul(r rune) { } // combineHangul algorithmically combines Jamo character components into Hangul. -// See http://unicode.org/reports/tr15/#Hangul for details on combining Hangul. +// See https://unicode.org/reports/tr15/#Hangul for details on combining Hangul. func (rb *reorderBuffer) combineHangul(s, i, k int) { b := rb.rune[:] bn := rb.nrune @@ -461,6 +461,10 @@ func (rb *reorderBuffer) combineHangul(s, i, k int) { // It should only be used to recompose a single segment, as it will not // handle alternations between Hangul and non-Hangul characters correctly. func (rb *reorderBuffer) compose() { + // Lazily load the map used by the combine func below, but do + // it outside of the loop. + recompMapOnce.Do(buildRecompMap) + // UAX #15, section X5 , including Corrigendum #5 // "In any character sequence beginning with starter S, a character C is // blocked from S if and only if there is some character B between S diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go index e67e7655c..526c7033a 100644 --- a/vendor/golang.org/x/text/unicode/norm/forminfo.go +++ b/vendor/golang.org/x/text/unicode/norm/forminfo.go @@ -4,6 +4,8 @@ package norm +import "encoding/binary" + // This file contains Form-specific logic and wrappers for data in tables.go. // Rune info is stored in a separate trie per composing form. A composing form @@ -178,6 +180,17 @@ func (p Properties) TrailCCC() uint8 { return ccc[p.tccc] } +func buildRecompMap() { + recompMap = make(map[uint32]rune, len(recompMapPacked)/8) + var buf [8]byte + for i := 0; i < len(recompMapPacked); i += 8 { + copy(buf[:], recompMapPacked[i:i+8]) + key := binary.BigEndian.Uint32(buf[:4]) + val := binary.BigEndian.Uint32(buf[4:]) + recompMap[key] = rune(val) + } +} + // Recomposition // We use 32-bit keys instead of 64-bit for the two codepoint keys. // This clips off the bits of three entries, but we know this will not @@ -186,8 +199,14 @@ func (p Properties) TrailCCC() uint8 { // Note that the recomposition map for NFC and NFKC are identical. // combine returns the combined rune or 0 if it doesn't exist. +// +// The caller is responsible for calling +// recompMapOnce.Do(buildRecompMap) sometime before this is called. func combine(a, b rune) rune { key := uint32(uint16(a))<<16 + uint32(uint16(b)) + if recompMap == nil { + panic("caller error") // see func comment + } return recompMap[key] } diff --git a/vendor/golang.org/x/text/unicode/norm/iter.go b/vendor/golang.org/x/text/unicode/norm/iter.go index ce17f96c2..417c6b268 100644 --- a/vendor/golang.org/x/text/unicode/norm/iter.go +++ b/vendor/golang.org/x/text/unicode/norm/iter.go @@ -128,8 +128,9 @@ func (i *Iter) Next() []byte { func nextASCIIBytes(i *Iter) []byte { p := i.p + 1 if p >= i.rb.nsrc { + p0 := i.p i.setDone() - return i.rb.src.bytes[i.p:p] + return i.rb.src.bytes[p0:p] } if i.rb.src.bytes[p] < utf8.RuneSelf { p0 := i.p diff --git a/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go index e28ac641a..95efcf26e 100644 --- a/vendor/golang.org/x/text/unicode/norm/normalize.go +++ b/vendor/golang.org/x/text/unicode/norm/normalize.go @@ -29,8 +29,8 @@ import ( // proceed independently on both sides: // f(x) == append(f(x[0:n]), f(x[n:])...) // -// References: http://unicode.org/reports/tr15/ and -// http://unicode.org/notes/tn5/. +// References: https://unicode.org/reports/tr15/ and +// https://unicode.org/notes/tn5/. type Form int const ( diff --git a/vendor/golang.org/x/text/unicode/norm/readwriter.go b/vendor/golang.org/x/text/unicode/norm/readwriter.go index d926ee903..b38096f5c 100644 --- a/vendor/golang.org/x/text/unicode/norm/readwriter.go +++ b/vendor/golang.org/x/text/unicode/norm/readwriter.go @@ -60,8 +60,8 @@ func (w *normWriter) Close() error { } // Writer returns a new writer that implements Write(b) -// by writing f(b) to w. The returned writer may use an -// an internal buffer to maintain state across Write calls. +// by writing f(b) to w. The returned writer may use an +// internal buffer to maintain state across Write calls. // Calling its Close method writes any buffered data to w. func (f Form) Writer(w io.Writer) io.WriteCloser { wr := &normWriter{rb: reorderBuffer{}, w: w} diff --git a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go index 44dd3978c..26fbd55a1 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go @@ -1,9 +1,11 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -// +build go1.10 +// +build go1.10,!go1.13 package norm +import "sync" + const ( // Version is the Unicode edition from which the tables are derived. Version = "10.0.0" @@ -6707,947 +6709,949 @@ var nfkcSparseValues = [869]valueRange{ } // recompMap: 7520 bytes (entries only) -var recompMap = map[uint32]rune{ - 0x00410300: 0x00C0, - 0x00410301: 0x00C1, - 0x00410302: 0x00C2, - 0x00410303: 0x00C3, - 0x00410308: 0x00C4, - 0x0041030A: 0x00C5, - 0x00430327: 0x00C7, - 0x00450300: 0x00C8, - 0x00450301: 0x00C9, - 0x00450302: 0x00CA, - 0x00450308: 0x00CB, - 0x00490300: 0x00CC, - 0x00490301: 0x00CD, - 0x00490302: 0x00CE, - 0x00490308: 0x00CF, - 0x004E0303: 0x00D1, - 0x004F0300: 0x00D2, - 0x004F0301: 0x00D3, - 0x004F0302: 0x00D4, - 0x004F0303: 0x00D5, - 0x004F0308: 0x00D6, - 0x00550300: 0x00D9, - 0x00550301: 0x00DA, - 0x00550302: 0x00DB, - 0x00550308: 0x00DC, - 0x00590301: 0x00DD, - 0x00610300: 0x00E0, - 0x00610301: 0x00E1, - 0x00610302: 0x00E2, - 0x00610303: 0x00E3, - 0x00610308: 0x00E4, - 0x0061030A: 0x00E5, - 0x00630327: 0x00E7, - 0x00650300: 0x00E8, - 0x00650301: 0x00E9, - 0x00650302: 0x00EA, - 0x00650308: 0x00EB, - 0x00690300: 0x00EC, - 0x00690301: 0x00ED, - 0x00690302: 0x00EE, - 0x00690308: 0x00EF, - 0x006E0303: 0x00F1, - 0x006F0300: 0x00F2, - 0x006F0301: 0x00F3, - 0x006F0302: 0x00F4, - 0x006F0303: 0x00F5, - 0x006F0308: 0x00F6, - 0x00750300: 0x00F9, - 0x00750301: 0x00FA, - 0x00750302: 0x00FB, - 0x00750308: 0x00FC, - 0x00790301: 0x00FD, - 0x00790308: 0x00FF, - 0x00410304: 0x0100, - 0x00610304: 0x0101, - 0x00410306: 0x0102, - 0x00610306: 0x0103, - 0x00410328: 0x0104, - 0x00610328: 0x0105, - 0x00430301: 0x0106, - 0x00630301: 0x0107, - 0x00430302: 0x0108, - 0x00630302: 0x0109, - 0x00430307: 0x010A, - 0x00630307: 0x010B, - 0x0043030C: 0x010C, - 0x0063030C: 0x010D, - 0x0044030C: 0x010E, - 0x0064030C: 0x010F, - 0x00450304: 0x0112, - 0x00650304: 0x0113, - 0x00450306: 0x0114, - 0x00650306: 0x0115, - 0x00450307: 0x0116, - 0x00650307: 0x0117, - 0x00450328: 0x0118, - 0x00650328: 0x0119, - 0x0045030C: 0x011A, - 0x0065030C: 0x011B, - 0x00470302: 0x011C, - 0x00670302: 0x011D, - 0x00470306: 0x011E, - 0x00670306: 0x011F, - 0x00470307: 0x0120, - 0x00670307: 0x0121, - 0x00470327: 0x0122, - 0x00670327: 0x0123, - 0x00480302: 0x0124, - 0x00680302: 0x0125, - 0x00490303: 0x0128, - 0x00690303: 0x0129, - 0x00490304: 0x012A, - 0x00690304: 0x012B, - 0x00490306: 0x012C, - 0x00690306: 0x012D, - 0x00490328: 0x012E, - 0x00690328: 0x012F, - 0x00490307: 0x0130, - 0x004A0302: 0x0134, - 0x006A0302: 0x0135, - 0x004B0327: 0x0136, - 0x006B0327: 0x0137, - 0x004C0301: 0x0139, - 0x006C0301: 0x013A, - 0x004C0327: 0x013B, - 0x006C0327: 0x013C, - 0x004C030C: 0x013D, - 0x006C030C: 0x013E, - 0x004E0301: 0x0143, - 0x006E0301: 0x0144, - 0x004E0327: 0x0145, - 0x006E0327: 0x0146, - 0x004E030C: 0x0147, - 0x006E030C: 0x0148, - 0x004F0304: 0x014C, - 0x006F0304: 0x014D, - 0x004F0306: 0x014E, - 0x006F0306: 0x014F, - 0x004F030B: 0x0150, - 0x006F030B: 0x0151, - 0x00520301: 0x0154, - 0x00720301: 0x0155, - 0x00520327: 0x0156, - 0x00720327: 0x0157, - 0x0052030C: 0x0158, - 0x0072030C: 0x0159, - 0x00530301: 0x015A, - 0x00730301: 0x015B, - 0x00530302: 0x015C, - 0x00730302: 0x015D, - 0x00530327: 0x015E, - 0x00730327: 0x015F, - 0x0053030C: 0x0160, - 0x0073030C: 0x0161, - 0x00540327: 0x0162, - 0x00740327: 0x0163, - 0x0054030C: 0x0164, - 0x0074030C: 0x0165, - 0x00550303: 0x0168, - 0x00750303: 0x0169, - 0x00550304: 0x016A, - 0x00750304: 0x016B, - 0x00550306: 0x016C, - 0x00750306: 0x016D, - 0x0055030A: 0x016E, - 0x0075030A: 0x016F, - 0x0055030B: 0x0170, - 0x0075030B: 0x0171, - 0x00550328: 0x0172, - 0x00750328: 0x0173, - 0x00570302: 0x0174, - 0x00770302: 0x0175, - 0x00590302: 0x0176, - 0x00790302: 0x0177, - 0x00590308: 0x0178, - 0x005A0301: 0x0179, - 0x007A0301: 0x017A, - 0x005A0307: 0x017B, - 0x007A0307: 0x017C, - 0x005A030C: 0x017D, - 0x007A030C: 0x017E, - 0x004F031B: 0x01A0, - 0x006F031B: 0x01A1, - 0x0055031B: 0x01AF, - 0x0075031B: 0x01B0, - 0x0041030C: 0x01CD, - 0x0061030C: 0x01CE, - 0x0049030C: 0x01CF, - 0x0069030C: 0x01D0, - 0x004F030C: 0x01D1, - 0x006F030C: 0x01D2, - 0x0055030C: 0x01D3, - 0x0075030C: 0x01D4, - 0x00DC0304: 0x01D5, - 0x00FC0304: 0x01D6, - 0x00DC0301: 0x01D7, - 0x00FC0301: 0x01D8, - 0x00DC030C: 0x01D9, - 0x00FC030C: 0x01DA, - 0x00DC0300: 0x01DB, - 0x00FC0300: 0x01DC, - 0x00C40304: 0x01DE, - 0x00E40304: 0x01DF, - 0x02260304: 0x01E0, - 0x02270304: 0x01E1, - 0x00C60304: 0x01E2, - 0x00E60304: 0x01E3, - 0x0047030C: 0x01E6, - 0x0067030C: 0x01E7, - 0x004B030C: 0x01E8, - 0x006B030C: 0x01E9, - 0x004F0328: 0x01EA, - 0x006F0328: 0x01EB, - 0x01EA0304: 0x01EC, - 0x01EB0304: 0x01ED, - 0x01B7030C: 0x01EE, - 0x0292030C: 0x01EF, - 0x006A030C: 0x01F0, - 0x00470301: 0x01F4, - 0x00670301: 0x01F5, - 0x004E0300: 0x01F8, - 0x006E0300: 0x01F9, - 0x00C50301: 0x01FA, - 0x00E50301: 0x01FB, - 0x00C60301: 0x01FC, - 0x00E60301: 0x01FD, - 0x00D80301: 0x01FE, - 0x00F80301: 0x01FF, - 0x0041030F: 0x0200, - 0x0061030F: 0x0201, - 0x00410311: 0x0202, - 0x00610311: 0x0203, - 0x0045030F: 0x0204, - 0x0065030F: 0x0205, - 0x00450311: 0x0206, - 0x00650311: 0x0207, - 0x0049030F: 0x0208, - 0x0069030F: 0x0209, - 0x00490311: 0x020A, - 0x00690311: 0x020B, - 0x004F030F: 0x020C, - 0x006F030F: 0x020D, - 0x004F0311: 0x020E, - 0x006F0311: 0x020F, - 0x0052030F: 0x0210, - 0x0072030F: 0x0211, - 0x00520311: 0x0212, - 0x00720311: 0x0213, - 0x0055030F: 0x0214, - 0x0075030F: 0x0215, - 0x00550311: 0x0216, - 0x00750311: 0x0217, - 0x00530326: 0x0218, - 0x00730326: 0x0219, - 0x00540326: 0x021A, - 0x00740326: 0x021B, - 0x0048030C: 0x021E, - 0x0068030C: 0x021F, - 0x00410307: 0x0226, - 0x00610307: 0x0227, - 0x00450327: 0x0228, - 0x00650327: 0x0229, - 0x00D60304: 0x022A, - 0x00F60304: 0x022B, - 0x00D50304: 0x022C, - 0x00F50304: 0x022D, - 0x004F0307: 0x022E, - 0x006F0307: 0x022F, - 0x022E0304: 0x0230, - 0x022F0304: 0x0231, - 0x00590304: 0x0232, - 0x00790304: 0x0233, - 0x00A80301: 0x0385, - 0x03910301: 0x0386, - 0x03950301: 0x0388, - 0x03970301: 0x0389, - 0x03990301: 0x038A, - 0x039F0301: 0x038C, - 0x03A50301: 0x038E, - 0x03A90301: 0x038F, - 0x03CA0301: 0x0390, - 0x03990308: 0x03AA, - 0x03A50308: 0x03AB, - 0x03B10301: 0x03AC, - 0x03B50301: 0x03AD, - 0x03B70301: 0x03AE, - 0x03B90301: 0x03AF, - 0x03CB0301: 0x03B0, - 0x03B90308: 0x03CA, - 0x03C50308: 0x03CB, - 0x03BF0301: 0x03CC, - 0x03C50301: 0x03CD, - 0x03C90301: 0x03CE, - 0x03D20301: 0x03D3, - 0x03D20308: 0x03D4, - 0x04150300: 0x0400, - 0x04150308: 0x0401, - 0x04130301: 0x0403, - 0x04060308: 0x0407, - 0x041A0301: 0x040C, - 0x04180300: 0x040D, - 0x04230306: 0x040E, - 0x04180306: 0x0419, - 0x04380306: 0x0439, - 0x04350300: 0x0450, - 0x04350308: 0x0451, - 0x04330301: 0x0453, - 0x04560308: 0x0457, - 0x043A0301: 0x045C, - 0x04380300: 0x045D, - 0x04430306: 0x045E, - 0x0474030F: 0x0476, - 0x0475030F: 0x0477, - 0x04160306: 0x04C1, - 0x04360306: 0x04C2, - 0x04100306: 0x04D0, - 0x04300306: 0x04D1, - 0x04100308: 0x04D2, - 0x04300308: 0x04D3, - 0x04150306: 0x04D6, - 0x04350306: 0x04D7, - 0x04D80308: 0x04DA, - 0x04D90308: 0x04DB, - 0x04160308: 0x04DC, - 0x04360308: 0x04DD, - 0x04170308: 0x04DE, - 0x04370308: 0x04DF, - 0x04180304: 0x04E2, - 0x04380304: 0x04E3, - 0x04180308: 0x04E4, - 0x04380308: 0x04E5, - 0x041E0308: 0x04E6, - 0x043E0308: 0x04E7, - 0x04E80308: 0x04EA, - 0x04E90308: 0x04EB, - 0x042D0308: 0x04EC, - 0x044D0308: 0x04ED, - 0x04230304: 0x04EE, - 0x04430304: 0x04EF, - 0x04230308: 0x04F0, - 0x04430308: 0x04F1, - 0x0423030B: 0x04F2, - 0x0443030B: 0x04F3, - 0x04270308: 0x04F4, - 0x04470308: 0x04F5, - 0x042B0308: 0x04F8, - 0x044B0308: 0x04F9, - 0x06270653: 0x0622, - 0x06270654: 0x0623, - 0x06480654: 0x0624, - 0x06270655: 0x0625, - 0x064A0654: 0x0626, - 0x06D50654: 0x06C0, - 0x06C10654: 0x06C2, - 0x06D20654: 0x06D3, - 0x0928093C: 0x0929, - 0x0930093C: 0x0931, - 0x0933093C: 0x0934, - 0x09C709BE: 0x09CB, - 0x09C709D7: 0x09CC, - 0x0B470B56: 0x0B48, - 0x0B470B3E: 0x0B4B, - 0x0B470B57: 0x0B4C, - 0x0B920BD7: 0x0B94, - 0x0BC60BBE: 0x0BCA, - 0x0BC70BBE: 0x0BCB, - 0x0BC60BD7: 0x0BCC, - 0x0C460C56: 0x0C48, - 0x0CBF0CD5: 0x0CC0, - 0x0CC60CD5: 0x0CC7, - 0x0CC60CD6: 0x0CC8, - 0x0CC60CC2: 0x0CCA, - 0x0CCA0CD5: 0x0CCB, - 0x0D460D3E: 0x0D4A, - 0x0D470D3E: 0x0D4B, - 0x0D460D57: 0x0D4C, - 0x0DD90DCA: 0x0DDA, - 0x0DD90DCF: 0x0DDC, - 0x0DDC0DCA: 0x0DDD, - 0x0DD90DDF: 0x0DDE, - 0x1025102E: 0x1026, - 0x1B051B35: 0x1B06, - 0x1B071B35: 0x1B08, - 0x1B091B35: 0x1B0A, - 0x1B0B1B35: 0x1B0C, - 0x1B0D1B35: 0x1B0E, - 0x1B111B35: 0x1B12, - 0x1B3A1B35: 0x1B3B, - 0x1B3C1B35: 0x1B3D, - 0x1B3E1B35: 0x1B40, - 0x1B3F1B35: 0x1B41, - 0x1B421B35: 0x1B43, - 0x00410325: 0x1E00, - 0x00610325: 0x1E01, - 0x00420307: 0x1E02, - 0x00620307: 0x1E03, - 0x00420323: 0x1E04, - 0x00620323: 0x1E05, - 0x00420331: 0x1E06, - 0x00620331: 0x1E07, - 0x00C70301: 0x1E08, - 0x00E70301: 0x1E09, - 0x00440307: 0x1E0A, - 0x00640307: 0x1E0B, - 0x00440323: 0x1E0C, - 0x00640323: 0x1E0D, - 0x00440331: 0x1E0E, - 0x00640331: 0x1E0F, - 0x00440327: 0x1E10, - 0x00640327: 0x1E11, - 0x0044032D: 0x1E12, - 0x0064032D: 0x1E13, - 0x01120300: 0x1E14, - 0x01130300: 0x1E15, - 0x01120301: 0x1E16, - 0x01130301: 0x1E17, - 0x0045032D: 0x1E18, - 0x0065032D: 0x1E19, - 0x00450330: 0x1E1A, - 0x00650330: 0x1E1B, - 0x02280306: 0x1E1C, - 0x02290306: 0x1E1D, - 0x00460307: 0x1E1E, - 0x00660307: 0x1E1F, - 0x00470304: 0x1E20, - 0x00670304: 0x1E21, - 0x00480307: 0x1E22, - 0x00680307: 0x1E23, - 0x00480323: 0x1E24, - 0x00680323: 0x1E25, - 0x00480308: 0x1E26, - 0x00680308: 0x1E27, - 0x00480327: 0x1E28, - 0x00680327: 0x1E29, - 0x0048032E: 0x1E2A, - 0x0068032E: 0x1E2B, - 0x00490330: 0x1E2C, - 0x00690330: 0x1E2D, - 0x00CF0301: 0x1E2E, - 0x00EF0301: 0x1E2F, - 0x004B0301: 0x1E30, - 0x006B0301: 0x1E31, - 0x004B0323: 0x1E32, - 0x006B0323: 0x1E33, - 0x004B0331: 0x1E34, - 0x006B0331: 0x1E35, - 0x004C0323: 0x1E36, - 0x006C0323: 0x1E37, - 0x1E360304: 0x1E38, - 0x1E370304: 0x1E39, - 0x004C0331: 0x1E3A, - 0x006C0331: 0x1E3B, - 0x004C032D: 0x1E3C, - 0x006C032D: 0x1E3D, - 0x004D0301: 0x1E3E, - 0x006D0301: 0x1E3F, - 0x004D0307: 0x1E40, - 0x006D0307: 0x1E41, - 0x004D0323: 0x1E42, - 0x006D0323: 0x1E43, - 0x004E0307: 0x1E44, - 0x006E0307: 0x1E45, - 0x004E0323: 0x1E46, - 0x006E0323: 0x1E47, - 0x004E0331: 0x1E48, - 0x006E0331: 0x1E49, - 0x004E032D: 0x1E4A, - 0x006E032D: 0x1E4B, - 0x00D50301: 0x1E4C, - 0x00F50301: 0x1E4D, - 0x00D50308: 0x1E4E, - 0x00F50308: 0x1E4F, - 0x014C0300: 0x1E50, - 0x014D0300: 0x1E51, - 0x014C0301: 0x1E52, - 0x014D0301: 0x1E53, - 0x00500301: 0x1E54, - 0x00700301: 0x1E55, - 0x00500307: 0x1E56, - 0x00700307: 0x1E57, - 0x00520307: 0x1E58, - 0x00720307: 0x1E59, - 0x00520323: 0x1E5A, - 0x00720323: 0x1E5B, - 0x1E5A0304: 0x1E5C, - 0x1E5B0304: 0x1E5D, - 0x00520331: 0x1E5E, - 0x00720331: 0x1E5F, - 0x00530307: 0x1E60, - 0x00730307: 0x1E61, - 0x00530323: 0x1E62, - 0x00730323: 0x1E63, - 0x015A0307: 0x1E64, - 0x015B0307: 0x1E65, - 0x01600307: 0x1E66, - 0x01610307: 0x1E67, - 0x1E620307: 0x1E68, - 0x1E630307: 0x1E69, - 0x00540307: 0x1E6A, - 0x00740307: 0x1E6B, - 0x00540323: 0x1E6C, - 0x00740323: 0x1E6D, - 0x00540331: 0x1E6E, - 0x00740331: 0x1E6F, - 0x0054032D: 0x1E70, - 0x0074032D: 0x1E71, - 0x00550324: 0x1E72, - 0x00750324: 0x1E73, - 0x00550330: 0x1E74, - 0x00750330: 0x1E75, - 0x0055032D: 0x1E76, - 0x0075032D: 0x1E77, - 0x01680301: 0x1E78, - 0x01690301: 0x1E79, - 0x016A0308: 0x1E7A, - 0x016B0308: 0x1E7B, - 0x00560303: 0x1E7C, - 0x00760303: 0x1E7D, - 0x00560323: 0x1E7E, - 0x00760323: 0x1E7F, - 0x00570300: 0x1E80, - 0x00770300: 0x1E81, - 0x00570301: 0x1E82, - 0x00770301: 0x1E83, - 0x00570308: 0x1E84, - 0x00770308: 0x1E85, - 0x00570307: 0x1E86, - 0x00770307: 0x1E87, - 0x00570323: 0x1E88, - 0x00770323: 0x1E89, - 0x00580307: 0x1E8A, - 0x00780307: 0x1E8B, - 0x00580308: 0x1E8C, - 0x00780308: 0x1E8D, - 0x00590307: 0x1E8E, - 0x00790307: 0x1E8F, - 0x005A0302: 0x1E90, - 0x007A0302: 0x1E91, - 0x005A0323: 0x1E92, - 0x007A0323: 0x1E93, - 0x005A0331: 0x1E94, - 0x007A0331: 0x1E95, - 0x00680331: 0x1E96, - 0x00740308: 0x1E97, - 0x0077030A: 0x1E98, - 0x0079030A: 0x1E99, - 0x017F0307: 0x1E9B, - 0x00410323: 0x1EA0, - 0x00610323: 0x1EA1, - 0x00410309: 0x1EA2, - 0x00610309: 0x1EA3, - 0x00C20301: 0x1EA4, - 0x00E20301: 0x1EA5, - 0x00C20300: 0x1EA6, - 0x00E20300: 0x1EA7, - 0x00C20309: 0x1EA8, - 0x00E20309: 0x1EA9, - 0x00C20303: 0x1EAA, - 0x00E20303: 0x1EAB, - 0x1EA00302: 0x1EAC, - 0x1EA10302: 0x1EAD, - 0x01020301: 0x1EAE, - 0x01030301: 0x1EAF, - 0x01020300: 0x1EB0, - 0x01030300: 0x1EB1, - 0x01020309: 0x1EB2, - 0x01030309: 0x1EB3, - 0x01020303: 0x1EB4, - 0x01030303: 0x1EB5, - 0x1EA00306: 0x1EB6, - 0x1EA10306: 0x1EB7, - 0x00450323: 0x1EB8, - 0x00650323: 0x1EB9, - 0x00450309: 0x1EBA, - 0x00650309: 0x1EBB, - 0x00450303: 0x1EBC, - 0x00650303: 0x1EBD, - 0x00CA0301: 0x1EBE, - 0x00EA0301: 0x1EBF, - 0x00CA0300: 0x1EC0, - 0x00EA0300: 0x1EC1, - 0x00CA0309: 0x1EC2, - 0x00EA0309: 0x1EC3, - 0x00CA0303: 0x1EC4, - 0x00EA0303: 0x1EC5, - 0x1EB80302: 0x1EC6, - 0x1EB90302: 0x1EC7, - 0x00490309: 0x1EC8, - 0x00690309: 0x1EC9, - 0x00490323: 0x1ECA, - 0x00690323: 0x1ECB, - 0x004F0323: 0x1ECC, - 0x006F0323: 0x1ECD, - 0x004F0309: 0x1ECE, - 0x006F0309: 0x1ECF, - 0x00D40301: 0x1ED0, - 0x00F40301: 0x1ED1, - 0x00D40300: 0x1ED2, - 0x00F40300: 0x1ED3, - 0x00D40309: 0x1ED4, - 0x00F40309: 0x1ED5, - 0x00D40303: 0x1ED6, - 0x00F40303: 0x1ED7, - 0x1ECC0302: 0x1ED8, - 0x1ECD0302: 0x1ED9, - 0x01A00301: 0x1EDA, - 0x01A10301: 0x1EDB, - 0x01A00300: 0x1EDC, - 0x01A10300: 0x1EDD, - 0x01A00309: 0x1EDE, - 0x01A10309: 0x1EDF, - 0x01A00303: 0x1EE0, - 0x01A10303: 0x1EE1, - 0x01A00323: 0x1EE2, - 0x01A10323: 0x1EE3, - 0x00550323: 0x1EE4, - 0x00750323: 0x1EE5, - 0x00550309: 0x1EE6, - 0x00750309: 0x1EE7, - 0x01AF0301: 0x1EE8, - 0x01B00301: 0x1EE9, - 0x01AF0300: 0x1EEA, - 0x01B00300: 0x1EEB, - 0x01AF0309: 0x1EEC, - 0x01B00309: 0x1EED, - 0x01AF0303: 0x1EEE, - 0x01B00303: 0x1EEF, - 0x01AF0323: 0x1EF0, - 0x01B00323: 0x1EF1, - 0x00590300: 0x1EF2, - 0x00790300: 0x1EF3, - 0x00590323: 0x1EF4, - 0x00790323: 0x1EF5, - 0x00590309: 0x1EF6, - 0x00790309: 0x1EF7, - 0x00590303: 0x1EF8, - 0x00790303: 0x1EF9, - 0x03B10313: 0x1F00, - 0x03B10314: 0x1F01, - 0x1F000300: 0x1F02, - 0x1F010300: 0x1F03, - 0x1F000301: 0x1F04, - 0x1F010301: 0x1F05, - 0x1F000342: 0x1F06, - 0x1F010342: 0x1F07, - 0x03910313: 0x1F08, - 0x03910314: 0x1F09, - 0x1F080300: 0x1F0A, - 0x1F090300: 0x1F0B, - 0x1F080301: 0x1F0C, - 0x1F090301: 0x1F0D, - 0x1F080342: 0x1F0E, - 0x1F090342: 0x1F0F, - 0x03B50313: 0x1F10, - 0x03B50314: 0x1F11, - 0x1F100300: 0x1F12, - 0x1F110300: 0x1F13, - 0x1F100301: 0x1F14, - 0x1F110301: 0x1F15, - 0x03950313: 0x1F18, - 0x03950314: 0x1F19, - 0x1F180300: 0x1F1A, - 0x1F190300: 0x1F1B, - 0x1F180301: 0x1F1C, - 0x1F190301: 0x1F1D, - 0x03B70313: 0x1F20, - 0x03B70314: 0x1F21, - 0x1F200300: 0x1F22, - 0x1F210300: 0x1F23, - 0x1F200301: 0x1F24, - 0x1F210301: 0x1F25, - 0x1F200342: 0x1F26, - 0x1F210342: 0x1F27, - 0x03970313: 0x1F28, - 0x03970314: 0x1F29, - 0x1F280300: 0x1F2A, - 0x1F290300: 0x1F2B, - 0x1F280301: 0x1F2C, - 0x1F290301: 0x1F2D, - 0x1F280342: 0x1F2E, - 0x1F290342: 0x1F2F, - 0x03B90313: 0x1F30, - 0x03B90314: 0x1F31, - 0x1F300300: 0x1F32, - 0x1F310300: 0x1F33, - 0x1F300301: 0x1F34, - 0x1F310301: 0x1F35, - 0x1F300342: 0x1F36, - 0x1F310342: 0x1F37, - 0x03990313: 0x1F38, - 0x03990314: 0x1F39, - 0x1F380300: 0x1F3A, - 0x1F390300: 0x1F3B, - 0x1F380301: 0x1F3C, - 0x1F390301: 0x1F3D, - 0x1F380342: 0x1F3E, - 0x1F390342: 0x1F3F, - 0x03BF0313: 0x1F40, - 0x03BF0314: 0x1F41, - 0x1F400300: 0x1F42, - 0x1F410300: 0x1F43, - 0x1F400301: 0x1F44, - 0x1F410301: 0x1F45, - 0x039F0313: 0x1F48, - 0x039F0314: 0x1F49, - 0x1F480300: 0x1F4A, - 0x1F490300: 0x1F4B, - 0x1F480301: 0x1F4C, - 0x1F490301: 0x1F4D, - 0x03C50313: 0x1F50, - 0x03C50314: 0x1F51, - 0x1F500300: 0x1F52, - 0x1F510300: 0x1F53, - 0x1F500301: 0x1F54, - 0x1F510301: 0x1F55, - 0x1F500342: 0x1F56, - 0x1F510342: 0x1F57, - 0x03A50314: 0x1F59, - 0x1F590300: 0x1F5B, - 0x1F590301: 0x1F5D, - 0x1F590342: 0x1F5F, - 0x03C90313: 0x1F60, - 0x03C90314: 0x1F61, - 0x1F600300: 0x1F62, - 0x1F610300: 0x1F63, - 0x1F600301: 0x1F64, - 0x1F610301: 0x1F65, - 0x1F600342: 0x1F66, - 0x1F610342: 0x1F67, - 0x03A90313: 0x1F68, - 0x03A90314: 0x1F69, - 0x1F680300: 0x1F6A, - 0x1F690300: 0x1F6B, - 0x1F680301: 0x1F6C, - 0x1F690301: 0x1F6D, - 0x1F680342: 0x1F6E, - 0x1F690342: 0x1F6F, - 0x03B10300: 0x1F70, - 0x03B50300: 0x1F72, - 0x03B70300: 0x1F74, - 0x03B90300: 0x1F76, - 0x03BF0300: 0x1F78, - 0x03C50300: 0x1F7A, - 0x03C90300: 0x1F7C, - 0x1F000345: 0x1F80, - 0x1F010345: 0x1F81, - 0x1F020345: 0x1F82, - 0x1F030345: 0x1F83, - 0x1F040345: 0x1F84, - 0x1F050345: 0x1F85, - 0x1F060345: 0x1F86, - 0x1F070345: 0x1F87, - 0x1F080345: 0x1F88, - 0x1F090345: 0x1F89, - 0x1F0A0345: 0x1F8A, - 0x1F0B0345: 0x1F8B, - 0x1F0C0345: 0x1F8C, - 0x1F0D0345: 0x1F8D, - 0x1F0E0345: 0x1F8E, - 0x1F0F0345: 0x1F8F, - 0x1F200345: 0x1F90, - 0x1F210345: 0x1F91, - 0x1F220345: 0x1F92, - 0x1F230345: 0x1F93, - 0x1F240345: 0x1F94, - 0x1F250345: 0x1F95, - 0x1F260345: 0x1F96, - 0x1F270345: 0x1F97, - 0x1F280345: 0x1F98, - 0x1F290345: 0x1F99, - 0x1F2A0345: 0x1F9A, - 0x1F2B0345: 0x1F9B, - 0x1F2C0345: 0x1F9C, - 0x1F2D0345: 0x1F9D, - 0x1F2E0345: 0x1F9E, - 0x1F2F0345: 0x1F9F, - 0x1F600345: 0x1FA0, - 0x1F610345: 0x1FA1, - 0x1F620345: 0x1FA2, - 0x1F630345: 0x1FA3, - 0x1F640345: 0x1FA4, - 0x1F650345: 0x1FA5, - 0x1F660345: 0x1FA6, - 0x1F670345: 0x1FA7, - 0x1F680345: 0x1FA8, - 0x1F690345: 0x1FA9, - 0x1F6A0345: 0x1FAA, - 0x1F6B0345: 0x1FAB, - 0x1F6C0345: 0x1FAC, - 0x1F6D0345: 0x1FAD, - 0x1F6E0345: 0x1FAE, - 0x1F6F0345: 0x1FAF, - 0x03B10306: 0x1FB0, - 0x03B10304: 0x1FB1, - 0x1F700345: 0x1FB2, - 0x03B10345: 0x1FB3, - 0x03AC0345: 0x1FB4, - 0x03B10342: 0x1FB6, - 0x1FB60345: 0x1FB7, - 0x03910306: 0x1FB8, - 0x03910304: 0x1FB9, - 0x03910300: 0x1FBA, - 0x03910345: 0x1FBC, - 0x00A80342: 0x1FC1, - 0x1F740345: 0x1FC2, - 0x03B70345: 0x1FC3, - 0x03AE0345: 0x1FC4, - 0x03B70342: 0x1FC6, - 0x1FC60345: 0x1FC7, - 0x03950300: 0x1FC8, - 0x03970300: 0x1FCA, - 0x03970345: 0x1FCC, - 0x1FBF0300: 0x1FCD, - 0x1FBF0301: 0x1FCE, - 0x1FBF0342: 0x1FCF, - 0x03B90306: 0x1FD0, - 0x03B90304: 0x1FD1, - 0x03CA0300: 0x1FD2, - 0x03B90342: 0x1FD6, - 0x03CA0342: 0x1FD7, - 0x03990306: 0x1FD8, - 0x03990304: 0x1FD9, - 0x03990300: 0x1FDA, - 0x1FFE0300: 0x1FDD, - 0x1FFE0301: 0x1FDE, - 0x1FFE0342: 0x1FDF, - 0x03C50306: 0x1FE0, - 0x03C50304: 0x1FE1, - 0x03CB0300: 0x1FE2, - 0x03C10313: 0x1FE4, - 0x03C10314: 0x1FE5, - 0x03C50342: 0x1FE6, - 0x03CB0342: 0x1FE7, - 0x03A50306: 0x1FE8, - 0x03A50304: 0x1FE9, - 0x03A50300: 0x1FEA, - 0x03A10314: 0x1FEC, - 0x00A80300: 0x1FED, - 0x1F7C0345: 0x1FF2, - 0x03C90345: 0x1FF3, - 0x03CE0345: 0x1FF4, - 0x03C90342: 0x1FF6, - 0x1FF60345: 0x1FF7, - 0x039F0300: 0x1FF8, - 0x03A90300: 0x1FFA, - 0x03A90345: 0x1FFC, - 0x21900338: 0x219A, - 0x21920338: 0x219B, - 0x21940338: 0x21AE, - 0x21D00338: 0x21CD, - 0x21D40338: 0x21CE, - 0x21D20338: 0x21CF, - 0x22030338: 0x2204, - 0x22080338: 0x2209, - 0x220B0338: 0x220C, - 0x22230338: 0x2224, - 0x22250338: 0x2226, - 0x223C0338: 0x2241, - 0x22430338: 0x2244, - 0x22450338: 0x2247, - 0x22480338: 0x2249, - 0x003D0338: 0x2260, - 0x22610338: 0x2262, - 0x224D0338: 0x226D, - 0x003C0338: 0x226E, - 0x003E0338: 0x226F, - 0x22640338: 0x2270, - 0x22650338: 0x2271, - 0x22720338: 0x2274, - 0x22730338: 0x2275, - 0x22760338: 0x2278, - 0x22770338: 0x2279, - 0x227A0338: 0x2280, - 0x227B0338: 0x2281, - 0x22820338: 0x2284, - 0x22830338: 0x2285, - 0x22860338: 0x2288, - 0x22870338: 0x2289, - 0x22A20338: 0x22AC, - 0x22A80338: 0x22AD, - 0x22A90338: 0x22AE, - 0x22AB0338: 0x22AF, - 0x227C0338: 0x22E0, - 0x227D0338: 0x22E1, - 0x22910338: 0x22E2, - 0x22920338: 0x22E3, - 0x22B20338: 0x22EA, - 0x22B30338: 0x22EB, - 0x22B40338: 0x22EC, - 0x22B50338: 0x22ED, - 0x304B3099: 0x304C, - 0x304D3099: 0x304E, - 0x304F3099: 0x3050, - 0x30513099: 0x3052, - 0x30533099: 0x3054, - 0x30553099: 0x3056, - 0x30573099: 0x3058, - 0x30593099: 0x305A, - 0x305B3099: 0x305C, - 0x305D3099: 0x305E, - 0x305F3099: 0x3060, - 0x30613099: 0x3062, - 0x30643099: 0x3065, - 0x30663099: 0x3067, - 0x30683099: 0x3069, - 0x306F3099: 0x3070, - 0x306F309A: 0x3071, - 0x30723099: 0x3073, - 0x3072309A: 0x3074, - 0x30753099: 0x3076, - 0x3075309A: 0x3077, - 0x30783099: 0x3079, - 0x3078309A: 0x307A, - 0x307B3099: 0x307C, - 0x307B309A: 0x307D, - 0x30463099: 0x3094, - 0x309D3099: 0x309E, - 0x30AB3099: 0x30AC, - 0x30AD3099: 0x30AE, - 0x30AF3099: 0x30B0, - 0x30B13099: 0x30B2, - 0x30B33099: 0x30B4, - 0x30B53099: 0x30B6, - 0x30B73099: 0x30B8, - 0x30B93099: 0x30BA, - 0x30BB3099: 0x30BC, - 0x30BD3099: 0x30BE, - 0x30BF3099: 0x30C0, - 0x30C13099: 0x30C2, - 0x30C43099: 0x30C5, - 0x30C63099: 0x30C7, - 0x30C83099: 0x30C9, - 0x30CF3099: 0x30D0, - 0x30CF309A: 0x30D1, - 0x30D23099: 0x30D3, - 0x30D2309A: 0x30D4, - 0x30D53099: 0x30D6, - 0x30D5309A: 0x30D7, - 0x30D83099: 0x30D9, - 0x30D8309A: 0x30DA, - 0x30DB3099: 0x30DC, - 0x30DB309A: 0x30DD, - 0x30A63099: 0x30F4, - 0x30EF3099: 0x30F7, - 0x30F03099: 0x30F8, - 0x30F13099: 0x30F9, - 0x30F23099: 0x30FA, - 0x30FD3099: 0x30FE, - 0x109910BA: 0x1109A, - 0x109B10BA: 0x1109C, - 0x10A510BA: 0x110AB, - 0x11311127: 0x1112E, - 0x11321127: 0x1112F, - 0x1347133E: 0x1134B, - 0x13471357: 0x1134C, - 0x14B914BA: 0x114BB, - 0x14B914B0: 0x114BC, - 0x14B914BD: 0x114BE, - 0x15B815AF: 0x115BA, - 0x15B915AF: 0x115BB, -} +var recompMap map[uint32]rune +var recompMapOnce sync.Once -// Total size of tables: 53KB (54226 bytes) +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 53KB (54226 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go new file mode 100644 index 000000000..2c58f09ba --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go @@ -0,0 +1,7693 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// +build go1.13,!go1.14 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "11.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2C9E + endMulti = 0x2F60 + firstLeadingCCC = 0x49AE + firstCCCZeroExcept = 0x4A78 + firstStarterWithNLead = 0x4A9F + lastDecomp = 0x4AA1 + maxDecomp = 0x8000 +) + +// decomps: 19105 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, + 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, + 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, + 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, + 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, + 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, + 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, + 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, + 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, + 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, + 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, + 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, + 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, + 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, + 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, + 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, + 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, + 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, + 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, + 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, + 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, + 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, + 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, + 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, + 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, + 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, + 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, + 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, + 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, + // Bytes 1a80 - 1abf + 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, + 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, + 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, + 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, + 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, + 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, + 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, + 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, + // Bytes 1ac0 - 1aff + 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, + 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, + 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, + 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, + 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, + 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, + 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, + 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, + // Bytes 1b00 - 1b3f + 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, + 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, + 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, + 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, + 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, + 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, + 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, + 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, + // Bytes 1b40 - 1b7f + 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, + 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, + 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, + 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, + 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, + 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, + 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, + 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, + // Bytes 1b80 - 1bbf + 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, + 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, + 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, + 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, + 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, + 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, + 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, + 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, + // Bytes 1bc0 - 1bff + 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, + 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, + 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, + 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, + 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, + 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, + 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, + // Bytes 1c00 - 1c3f + 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, + 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, + 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, + 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, + 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, + 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, + 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, + 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, + // Bytes 1c40 - 1c7f + 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, + 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, + 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, + 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, + 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, + 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, + 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, + 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, + // Bytes 1c80 - 1cbf + 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, + 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, + 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, + 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, + 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, + 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, + 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, + 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, + // Bytes 1cc0 - 1cff + 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, + 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, + 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, + 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, + 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, + 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, + 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, + 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, + // Bytes 1d00 - 1d3f + 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, + 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, + 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, + 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, + 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, + 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, + 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, + 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, + // Bytes 1d40 - 1d7f + 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, + 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, + 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, + 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, + 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, + 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, + 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, + 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, + // Bytes 1d80 - 1dbf + 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, + 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, + 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, + 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, + 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, + 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, + 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, + 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, + // Bytes 1dc0 - 1dff + 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, + 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, + 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, + 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, + 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, + 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, + 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, + 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, + // Bytes 1e00 - 1e3f + 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, + 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, + 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, + 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, + 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, + 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, + 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, + 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, + // Bytes 1e40 - 1e7f + 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, + 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, + 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, + 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, + 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, + 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, + 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, + 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1e80 - 1ebf + 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, + 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, + 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, + 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, + 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, + 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, + 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, + 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, + // Bytes 1ec0 - 1eff + 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, + 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, + 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, + 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, + 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, + 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, + 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, + 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, + // Bytes 1f00 - 1f3f + 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, + 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, + 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, + 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, + 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, + 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, + 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, + 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, + // Bytes 1f40 - 1f7f + 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, + 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, + 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, + 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, + 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, + 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, + 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, + 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, + // Bytes 1f80 - 1fbf + 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, + 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, + 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, + 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, + 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, + 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, + 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, + 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, + // Bytes 1fc0 - 1fff + 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, + 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, + 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, + 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, + 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, + 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, + 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, + 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, + // Bytes 2000 - 203f + 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, + 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, + 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, + 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, + 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, + 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, + 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, + 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, + // Bytes 2040 - 207f + 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, + 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, + 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, + 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, + // Bytes 2080 - 20bf + 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, + 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, + // Bytes 20c0 - 20ff + 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, + 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, + 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, + 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, + // Bytes 2100 - 213f + 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, + 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, + 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, + 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, + 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, + 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, + // Bytes 2140 - 217f + 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, + 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, + 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, + 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, + 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, + 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, + // Bytes 2180 - 21bf + 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, + 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, + // Bytes 21c0 - 21ff + 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, + // Bytes 2200 - 223f + 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, + // Bytes 2240 - 227f + 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, + // Bytes 2280 - 22bf + 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + // Bytes 22c0 - 22ff + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, + 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, + 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, + 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, + 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, + // Bytes 2300 - 233f + 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, + 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, + // Bytes 2340 - 237f + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, + // Bytes 2380 - 23bf + 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, + // Bytes 23c0 - 23ff + 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, + 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, + // Bytes 2400 - 243f + 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, + 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, + 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, + 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, + // Bytes 2440 - 247f + 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, + // Bytes 2480 - 24bf + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, + 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, + // Bytes 24c0 - 24ff + 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, + // Bytes 2500 - 253f + 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, + // Bytes 2540 - 257f + 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, + 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2580 - 25bf + 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, + 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, + // Bytes 25c0 - 25ff + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, + 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, + 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, + 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, + // Bytes 2640 - 267f + 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, + 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, + 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, + 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, + 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, + // Bytes 26c0 - 26ff + 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, + 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, + 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, + 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, + 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, + 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, + // Bytes 2700 - 273f + 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, + 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, + 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, + 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, + 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, + // Bytes 2740 - 277f + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, + // Bytes 2780 - 27bf + 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, + 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, + 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, + // Bytes 27c0 - 27ff + 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, + 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, + 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, + 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, + 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, + 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, + 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, + // Bytes 2800 - 283f + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, + 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, + // Bytes 2840 - 287f + 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, + 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, + // Bytes 2880 - 28bf + 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, + 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, + 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, + 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, + // Bytes 28c0 - 28ff + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, + 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, + 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, + 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, + 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, + // Bytes 2940 - 297f + 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, + 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, + 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, + // Bytes 2980 - 29bf + 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, + 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, + // Bytes 29c0 - 29ff + 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2a40 - 2a7f + 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + // Bytes 2a80 - 2abf + 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, + 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, + 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, + 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, + 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, + // Bytes 2b00 - 2b3f + 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, + // Bytes 2b40 - 2b7f + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, + 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, + // Bytes 2bc0 - 2bff + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, + 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, + 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, + 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, + 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, + 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, + // Bytes 2c80 - 2cbf + 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, + 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, + 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2cc0 - 2cff + 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, + 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2d00 - 2d3f + 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, + 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, + 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, + 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + // Bytes 2d40 - 2d7f + 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, + // Bytes 2d80 - 2dbf + 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, + 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, + 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, + 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, + 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, + 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, + 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, + 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, + // Bytes 2dc0 - 2dff + 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, + 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, + 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, + 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, + 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, + 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, + 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, + // Bytes 2e00 - 2e3f + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e40 - 2e7f + 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, + 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e80 - 2ebf + 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, + 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, + 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, + 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, + 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, + 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, + // Bytes 2f00 - 2f3f + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, + // Bytes 2f40 - 2f7f + 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, + 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, + 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, + 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, + 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, + 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, + // Bytes 2f80 - 2fbf + 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, + 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, + 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, + 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, + 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, + 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, + 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, + 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, + // Bytes 2fc0 - 2fff + 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, + 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, + 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, + 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, + 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, + 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, + 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, + 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, + // Bytes 3000 - 303f + 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, + 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, + 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, + 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, + 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, + 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, + 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, + 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, + // Bytes 3040 - 307f + 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, + 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, + 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, + 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, + 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, + 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, + 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, + 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, + // Bytes 3080 - 30bf + 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, + 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, + 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, + 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, + 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, + 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, + 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, + 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, + // Bytes 30c0 - 30ff + 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, + 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, + 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, + 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, + 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, + 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, + 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, + 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, + // Bytes 3100 - 313f + 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, + 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, + 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, + 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, + 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, + 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, + 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, + 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, + // Bytes 3140 - 317f + 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, + 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, + 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, + 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, + 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, + 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, + 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, + 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, + // Bytes 3180 - 31bf + 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, + 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, + 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, + 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, + 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, + 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, + 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, + 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, + // Bytes 31c0 - 31ff + 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, + 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, + 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, + 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, + 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, + 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, + 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, + 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, + // Bytes 3200 - 323f + 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, + 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, + 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, + 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, + 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, + 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, + 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, + 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, + // Bytes 3240 - 327f + 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, + 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, + 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, + 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, + 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, + 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, + 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, + // Bytes 3280 - 32bf + 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, + 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, + 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, + 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, + 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, + 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, + 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, + 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, + // Bytes 32c0 - 32ff + 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, + 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, + 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, + 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, + 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, + 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, + 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, + 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, + // Bytes 3300 - 333f + 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, + 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, + 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, + 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, + 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, + 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, + 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, + 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, + // Bytes 3340 - 337f + 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, + 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, + 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, + 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, + 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, + 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, + 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, + 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3380 - 33bf + 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, + 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, + 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, + 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, + 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, + 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, + 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, + 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, + // Bytes 33c0 - 33ff + 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, + 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, + 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, + 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, + 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, + 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, + 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, + 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, + // Bytes 3400 - 343f + 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, + 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, + 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, + 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, + 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, + 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, + 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, + 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, + // Bytes 3440 - 347f + 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, + 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, + 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, + 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, + 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, + 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, + 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, + 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, + // Bytes 3480 - 34bf + 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, + 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, + 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, + 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, + 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, + 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, + 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, + 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, + // Bytes 34c0 - 34ff + 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, + 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, + 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, + 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, + 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, + 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, + 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, + 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, + // Bytes 3500 - 353f + 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, + 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, + 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, + 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, + 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, + 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, + 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, + 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, + // Bytes 3540 - 357f + 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, + 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, + 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, + 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, + 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, + 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, + 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, + // Bytes 3580 - 35bf + 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, + 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, + 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, + 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, + 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, + 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, + 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, + 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, + // Bytes 35c0 - 35ff + 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, + 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, + 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, + 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, + 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, + // Bytes 3600 - 363f + 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, + 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, + // Bytes 3640 - 367f + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, + // Bytes 3680 - 36bf + 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, + 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, + 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, + // Bytes 36c0 - 36ff + 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, + 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, + 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, + 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, + 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, + 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, + // Bytes 3700 - 373f + 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, + 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3740 - 377f + 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, + 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, + 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, + 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, + 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, + // Bytes 3780 - 37bf + 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, + // Bytes 37c0 - 37ff + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, + 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, + 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, + 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, + 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3800 - 383f + 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, + 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, + 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, + 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, + 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, + 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, + 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, + 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, + // Bytes 3840 - 387f + 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, + 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, + 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, + 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, + 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3880 - 38bf + 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, + 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, + 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, + 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, + // Bytes 38c0 - 38ff + 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, + 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, + 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, + 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, + // Bytes 3900 - 393f + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, + 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, + // Bytes 3940 - 397f + 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, + 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, + 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + // Bytes 3980 - 39bf + 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, + 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, + 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, + 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, + 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, + 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, + // Bytes 39c0 - 39ff + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, + 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + // Bytes 3a00 - 3a3f + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, + 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, + 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + // Bytes 3a40 - 3a7f + 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, + 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, + 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, + 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, + 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, + 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, + // Bytes 3a80 - 3abf + 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, + 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, + 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + // Bytes 3ac0 - 3aff + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, + 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + // Bytes 3b00 - 3b3f + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, + 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, + 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, + 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, + // Bytes 3b40 - 3b7f + 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, + 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, + // Bytes 3b80 - 3bbf + 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, + 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, + 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, + 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, + 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, + 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, + 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, + // Bytes 3bc0 - 3bff + 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3c00 - 3c3f + 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3c40 - 3c7f + 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + // Bytes 3c80 - 3cbf + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, + // Bytes 3cc0 - 3cff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, + 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + // Bytes 3d00 - 3d3f + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3d40 - 3d7f + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + // Bytes 3d80 - 3dbf + 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + // Bytes 3dc0 - 3dff + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + // Bytes 3e00 - 3e3f + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3e40 - 3e7f + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + // Bytes 3e80 - 3ebf + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + // Bytes 3ec0 - 3eff + 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, + 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, + // Bytes 3f00 - 3f3f + 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f40 - 3f7f + 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f80 - 3fbf + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, + // Bytes 3fc0 - 3fff + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4000 - 403f + 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4040 - 407f + 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4080 - 40bf + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 40c0 - 40ff + 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + // Bytes 4100 - 413f + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + // Bytes 4140 - 417f + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, + // Bytes 4180 - 41bf + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + // Bytes 41c0 - 41ff + 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + // Bytes 4200 - 423f + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, + // Bytes 4240 - 427f + 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, + 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, + 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, + 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, + 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, + 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, + 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, + 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, + // Bytes 4280 - 42bf + 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, + 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, + 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, + 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, + 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, + 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, + 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, + 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, + // Bytes 42c0 - 42ff + 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, + 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, + 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, + 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, + 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, + 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, + 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, + // Bytes 4300 - 433f + 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, + 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, + // Bytes 4340 - 437f + 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, + 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, + 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, + // Bytes 4380 - 43bf + 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, + 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, + // Bytes 43c0 - 43ff + 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, + 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, + 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, + // Bytes 4400 - 443f + 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, + 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, + 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, + 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, + 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, + 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, + 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, + // Bytes 4440 - 447f + 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, + 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, + 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, + 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, + 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, + // Bytes 4480 - 44bf + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, + // Bytes 44c0 - 44ff + 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, + 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, + 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, + 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, + 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, + 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, + // Bytes 4500 - 453f + 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, + 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, + 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, + 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, + // Bytes 4600 - 463f + 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, + 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, + 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + // Bytes 4640 - 467f + 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, + 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, + 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, + 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + // Bytes 4680 - 46bf + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, + 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, + 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, + 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, + 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, + 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, + 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, + 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 46c0 - 46ff + 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, + 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, + 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, + 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, + 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, + 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, + 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, + 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, + // Bytes 4700 - 473f + 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, + 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, + 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, + 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, + 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, + 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, + 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, + 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, + // Bytes 4740 - 477f + 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, + 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, + 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, + 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, + 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, + 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, + 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, + 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + // Bytes 4780 - 47bf + 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, + 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, + 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, + 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, + 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, + 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, + // Bytes 47c0 - 47ff + 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, + // Bytes 4800 - 483f + 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, + 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, + 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, + 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, + // Bytes 4840 - 487f + 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, + 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, + 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, + 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, + 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, + // Bytes 4880 - 48bf + 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + // Bytes 48c0 - 48ff + 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + // Bytes 4900 - 493f + 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + // Bytes 4940 - 497f + 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + // Bytes 4980 - 49bf + 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, + 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, + 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, + // Bytes 49c0 - 49ff + 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, + // Bytes 4a00 - 4a3f + 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, + // Bytes 4a40 - 4a7f + 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, + 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, + 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, + 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, + // Bytes 4a80 - 4abf + 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, + 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, + 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 46: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 46 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 48 blocks, 3072 entries, 6144 bytes +// The third block is the zero block. +var nfcValues = [3072]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, + // Block 0x5, offset 0x140 + 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a1, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, + 0x2c6: 0xa000, 0x2c7: 0x3709, + 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3733, 0x302: 0x37b7, + 0x310: 0x370f, 0x311: 0x3793, + 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, + 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, + 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, + 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, + 0x338: 0x3787, 0x339: 0x380b, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d, + 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d, + 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d, + 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132, + 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132, + 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, + 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, + 0x412: 0x2d4e, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d56, + 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132, + 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132, + 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132, + 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132, + 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132, + 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132, + 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132, + 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132, + 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132, + 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132, + 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d, + // Block 0x12, offset 0x480 + 0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2, + 0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0, + 0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df, + 0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85, + 0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93, + 0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c, + 0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370, + 0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a, + 0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de, + 0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7, + 0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a, + 0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e, + 0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9, + 0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465, + 0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26, + 0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791, + 0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b, + 0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4, + 0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f, + 0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49, + 0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519, + // Block 0x14, offset 0x500 + 0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532, + 0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541, + 0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582, + 0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6, + 0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1, + 0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f, + 0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15, + 0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23, + 0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a, + 0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c, + 0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69, + // Block 0x15, offset 0x540 + 0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70, + 0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1, + 0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf, + 0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6, + 0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5, + 0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11, + 0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73, + 0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a, + 0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578, + 0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a, + // Block 0x16, offset 0x580 + 0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e, + 0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6, + 0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c, + 0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0, + 0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00, + 0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966, + 0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8, + 0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6, + 0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38, + 0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30, + 0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60, + 0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58, + 0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a, + 0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8, + 0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70, + 0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996, + 0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2, + 0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916, + 0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a, + 0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c, + 0x5fc: 0x4870, 0x5fd: 0x4342, + // Block 0x18, offset 0x600 + 0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac, + 0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee, + 0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0, + 0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2, + 0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134, + 0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a, + 0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88, + 0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a, + 0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98, + 0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee, + 0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100, + // Block 0x19, offset 0x640 + 0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0, + 0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa, + 0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af, + 0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10, + 0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4, + 0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec, + 0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b, + 0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081, + 0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8, + 0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318, + 0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100, + // Block 0x1a, offset 0x680 + 0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000, + 0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b, + 0x68d: 0xa000, + 0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29, + 0x6a4: 0xa000, 0x6a5: 0xa000, + 0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a, + 0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45, + 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000, + 0x6bc: 0xa000, 0x6bd: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d, + 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b, + 0x6d1: 0xa000, + 0x6d2: 0xa000, + 0x6e2: 0xa000, + 0x6e8: 0xa000, 0x6e9: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5, + 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, + // Block 0x1c, offset 0x700 + 0x706: 0xa000, 0x70b: 0xa000, + 0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000, + 0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000, + 0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000, + 0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60, + 0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78, + 0x72f: 0xa000, + 0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000, + 0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000, + 0x73c: 0x3fc0, 0x73d: 0x3fc8, + // Block 0x1d, offset 0x740 + 0x754: 0x3f00, + 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, + 0x75e: 0x3fd0, + 0x766: 0xa000, + 0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000, + 0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000, + 0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000, + 0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040, + 0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050, + 0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060, + 0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080, + 0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0, + 0x7af: 0xa000, + 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8, + 0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0, + 0x7bd: 0xa000, 0x7be: 0x40c8, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb, + 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943, + 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3, + 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43, + 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87, + 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283, + 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f, + 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853, + 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b, + 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b, + 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b, + // Block 0x20, offset 0x800 + 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b, + 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f, + 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7, + 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127, + 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357, + 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873, + 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3, + 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b, + 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57, + 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb, + 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b, + // Block 0x21, offset 0x840 + 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f, + 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3, + 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83, + 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193, + 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b, + 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b, + 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f, + 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b, + 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753, + 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777, + 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73, + // Block 0x22, offset 0x880 + 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3, + 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47, + 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af, + 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df, + 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817, + 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3, + 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457, + 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b, + 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27, + 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f, + 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03, + 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27, + 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af, + 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3, + 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb, + 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353, + 0x8e5: 0x1407, 0x8e6: 0x1433, + 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7, + 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897, + 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93, + 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3, + // Block 0x24, offset 0x900 + 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b, + 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f, + 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f, + 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f, + 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff, + 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f, + 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f, + 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3, + 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7, + 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963, + 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f, + // Block 0x25, offset 0x940 + 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b, + 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb, + 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf, + 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f, + 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013, + 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f, + 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b, + 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b, + 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb, + 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343, + 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f, + // Block 0x26, offset 0x980 + 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b, + 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b, + 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2, + 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809, + 0x998: 0x1617, 0x999: 0x1627, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757, + 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773, + 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3, + 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf, + 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff, + 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f, + 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867, + 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af, + 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93, + 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3, + 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917, + // Block 0x28, offset 0xa00 + 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f, + 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983, + 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf, + 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3, + 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef, + 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23, + 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37, + 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63, + 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f, + 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692, + 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7, + // Block 0x29, offset 0xa40 + 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb, + 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f, + 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6, + 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9, + 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83, + 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3, + 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf, + 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7, + 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f, + 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b, + 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87, + 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb, + 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7, + 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663, + 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd, + 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7, + 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b, + 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f, + 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7, + 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700, + 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23, + 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53, + 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714, + 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b, + 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719, + 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728, + 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37, + 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57, + 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737, + 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741, + 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff, + 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637, + 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f, + 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093, + 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782, + 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3, + 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7, + 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133, + 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa, + 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4, + 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197, + // Block 0x2d, offset 0xb40 + 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7, + 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7, + 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b, + 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd, + 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f, + 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f, + 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273, + 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677, + 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7, + 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb, + 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f, + // Block 0x2e, offset 0xb80 + 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5, + 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa, + 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b, + 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7, + 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665, + 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f, + 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477, + 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693, + 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb, + 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b, + 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567, + 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7, + 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7, + 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef, + 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, + 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, + 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, + 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, + 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, + 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, + // Block 0x5, offset 0x140 + 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, + 0x14d: 0x5c, + 0x15c: 0x5d, 0x15f: 0x5e, + 0x162: 0x5f, 0x164: 0x60, + 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, + 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f, + 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, + 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + 0x374: 0xa1, + 0x37d: 0xa2, + // Block 0xe, offset 0x380 + 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6, + 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa, + 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf, + 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1, + 0x3a0: 0xb2, + 0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5, + 0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xb8, 0x3ec: 0xb9, + // Block 0x10, offset 0x400 + 0x432: 0xba, + // Block 0x11, offset 0x440 + 0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd, + 0x449: 0xbe, + // Block 0x12, offset 0x480 + 0x480: 0xbf, + 0x4a3: 0xc0, 0x4a5: 0xc1, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xc2, + // Block 0x14, offset 0x500 + 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, + 0x528: 0x2d, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 149 entries, 298 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa} + +// nfcSparseValues: 684 entries, 2736 bytes +var nfcSparseValues = [684]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4840, lo: 0x8a, hi: 0x8a}, + {value: 0x485e, lo: 0x8b, hi: 0x8b}, + {value: 0x36c7, lo: 0x8c, hi: 0x8c}, + {value: 0x36df, lo: 0x8d, hi: 0x8d}, + {value: 0x4876, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x36fd, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xd, offset 0x63 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x68 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x6a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x72 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x79 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x7c + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x84 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0x88 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0x8c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0x8e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0x90 + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0x99 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0x9d + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xa4 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xa9 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xac + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xc0 + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xc8 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xcb + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xcd + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x23, offset 0xcf + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x24, offset 0xd1 + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xd6 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0xe7 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0xf3 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0xf5 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0xfb + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0xfd + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0xff + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x101 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x103 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x105 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x107 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x10a + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x10d + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x10f + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x112 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x115 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x119 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x11e + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x127 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x129 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x12c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x12e + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x139 + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3c, offset 0x13d + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3d, offset 0x14b + {value: 0x427b, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x3e, offset 0x14e + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x3f, offset 0x154 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x40, offset 0x15a + {value: 0x6408, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x41, offset 0x165 + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x42, offset 0x169 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x43, offset 0x16b + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x44, offset 0x16d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x45, offset 0x16f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x46, offset 0x171 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x47, offset 0x173 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x48, offset 0x179 + {value: 0x0000, lo: 0x03}, + {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, + {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, + {value: 0x4a9f, lo: 0xba, hi: 0xbf}, + // Block 0x49, offset 0x17d + {value: 0x0000, lo: 0x01}, + {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, + // Block 0x4a, offset 0x17f + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4b, offset 0x181 + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4c, offset 0x189 + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4d, offset 0x18d + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x4e, offset 0x190 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x4f, offset 0x192 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x50, offset 0x194 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x51, offset 0x196 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x52, offset 0x199 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x53, offset 0x19b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x54, offset 0x19d + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x55, offset 0x19f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x56, offset 0x1a1 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x57, offset 0x1a7 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x58, offset 0x1aa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x59, offset 0x1ac + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5a, offset 0x1b3 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5b, offset 0x1b9 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5c, offset 0x1bf + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5d, offset 0x1c7 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x5e, offset 0x1cd + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x5f, offset 0x1d3 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x60, offset 0x1d9 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x61, offset 0x1dd + {value: 0x0006, lo: 0x0d}, + {value: 0x4390, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4402, lo: 0x9f, hi: 0x9f}, + {value: 0x43f0, lo: 0xaa, hi: 0xab}, + {value: 0x44f4, lo: 0xac, hi: 0xac}, + {value: 0x44fc, lo: 0xad, hi: 0xad}, + {value: 0x4348, lo: 0xae, hi: 0xb1}, + {value: 0x4366, lo: 0xb2, hi: 0xb4}, + {value: 0x437e, lo: 0xb5, hi: 0xb6}, + {value: 0x438a, lo: 0xb8, hi: 0xb8}, + {value: 0x4396, lo: 0xb9, hi: 0xbb}, + {value: 0x43ae, lo: 0xbc, hi: 0xbc}, + {value: 0x43b4, lo: 0xbe, hi: 0xbe}, + // Block 0x62, offset 0x1eb + {value: 0x0006, lo: 0x08}, + {value: 0x43ba, lo: 0x80, hi: 0x81}, + {value: 0x43c6, lo: 0x83, hi: 0x84}, + {value: 0x43d8, lo: 0x86, hi: 0x89}, + {value: 0x43fc, lo: 0x8a, hi: 0x8a}, + {value: 0x4378, lo: 0x8b, hi: 0x8b}, + {value: 0x4360, lo: 0x8c, hi: 0x8c}, + {value: 0x43a8, lo: 0x8d, hi: 0x8d}, + {value: 0x43d2, lo: 0x8e, hi: 0x8e}, + // Block 0x63, offset 0x1f4 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x64, offset 0x1f7 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x65, offset 0x1fa + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x66, offset 0x1fc + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x67, offset 0x1ff + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x68, offset 0x201 + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x69, offset 0x205 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6a, offset 0x20a + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6b, offset 0x20c + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6c, offset 0x20e + {value: 0x0000, lo: 0x04}, + {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, + {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, + {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, + {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, + // Block 0x6d, offset 0x213 + {value: 0x0000, lo: 0x05}, + {value: 0x4a9f, lo: 0x82, hi: 0x87}, + {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, + {value: 0x4a9f, lo: 0x92, hi: 0x97}, + {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x6e, offset 0x219 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6f, offset 0x21b + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x70, offset 0x21d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x71, offset 0x21f + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x225 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x73, offset 0x228 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x74, offset 0x22a + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x75, offset 0x230 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x233 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x77, offset 0x23b + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x78, offset 0x242 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x79, offset 0x245 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x7a, offset 0x248 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7b, offset 0x24a + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x7c, offset 0x24d + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7d, offset 0x255 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7e, offset 0x259 + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7f, offset 0x260 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x80, offset 0x263 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x81, offset 0x269 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x82, offset 0x26b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x83, offset 0x26e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x84, offset 0x270 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x85, offset 0x273 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x86, offset 0x275 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x87, offset 0x277 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x88, offset 0x279 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x89, offset 0x27c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x8a, offset 0x27e + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x8b, offset 0x280 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x8c, offset 0x282 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8d, offset 0x284 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8e, offset 0x291 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x8f, offset 0x29b + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x90, offset 0x29d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x91, offset 0x29f + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x92, offset 0x2a5 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x93, offset 0x2a7 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x94, offset 0x2aa + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 92: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 92 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 94 blocks, 6016 entries, 12032 bytes +// The third block is the zero block. +var nfkcValues = [6016]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, + // Block 0x5, offset 0x140 + 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2dee, 0x185: 0x2df4, + 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, + 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a5, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425a, 0x285: 0x447b, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, + 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, + 0x306: 0xa000, 0x307: 0x3709, + 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3733, 0x342: 0x37b7, + 0x350: 0x370f, 0x351: 0x3793, + 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, + 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, + 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, + 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, + 0x378: 0x3787, 0x379: 0x380b, + // Block 0xe, offset 0x380 + 0x387: 0x1d61, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d84, + 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, + // Block 0x10, offset 0x400 + 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, + 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, + 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d, + 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d, + 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d, + 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, + 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132, + 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132, + // Block 0x11, offset 0x440 + 0x445: 0xa000, + 0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000, + 0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000, + 0x452: 0x2d4e, + 0x474: 0x8102, 0x475: 0x9900, + 0x47a: 0xa000, 0x47b: 0x2d56, + 0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000, + // Block 0x12, offset 0x480 + 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, + 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, + 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, + 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9, + 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be, + 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5, + 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa, + 0x4aa: 0x01fd, + 0x4b8: 0x020c, + // Block 0x13, offset 0x4c0 + 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, + 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, + 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128, + 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, + 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, + 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, + 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0, + // Block 0x14, offset 0x500 + 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132, + 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132, + 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132, + 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132, + 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132, + 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132, + 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132, + 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132, + 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132, + 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132, + 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d, + // Block 0x15, offset 0x540 + 0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2, + 0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0, + 0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df, + 0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85, + 0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93, + 0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c, + 0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370, + 0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a, + 0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de, + 0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7, + 0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc, + // Block 0x16, offset 0x580 + 0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a, + 0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e, + 0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9, + 0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465, + 0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26, + 0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791, + 0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b, + 0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4, + 0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f, + 0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49, + 0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532, + 0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541, + 0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582, + 0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6, + 0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7, + 0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f, + 0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15, + 0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23, + 0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a, + 0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c, + 0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69, + // Block 0x18, offset 0x600 + 0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70, + 0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1, + 0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf, + 0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6, + 0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5, + 0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11, + 0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73, + 0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a, + 0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578, + 0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a, + // Block 0x19, offset 0x640 + 0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e, + 0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6, + 0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c, + 0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0, + 0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00, + 0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966, + 0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8, + 0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6, + 0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38, + 0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30, + 0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40, + // Block 0x1a, offset 0x680 + 0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60, + 0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58, + 0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a, + 0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8, + 0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70, + 0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996, + 0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2, + 0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916, + 0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a, + 0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c, + 0x6bc: 0x4870, 0x6bd: 0x4342, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac, + 0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee, + 0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0, + 0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2, + 0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134, + 0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a, + 0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88, + 0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a, + 0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98, + 0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee, + 0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287, + // Block 0x1c, offset 0x700 + 0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0, + 0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa, + 0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af, + 0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10, + 0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e, + 0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec, + 0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b, + 0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081, + 0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8, + 0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318, + 0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c, + // Block 0x1d, offset 0x740 + 0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8, + 0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051, + 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, + 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d, + 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, + 0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8, + 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075, + 0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, + 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215, + 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98, + 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0, + // Block 0x1e, offset 0x780 + 0x780: 0x0463, 0x785: 0x0049, + 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, + 0x790: 0x222e, 0x791: 0x223a, + 0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8, + 0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0, + 0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963, + 0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071, + 0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, + 0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62, + 0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50, + 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000, + 0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b, + 0x7cd: 0xa000, + 0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29, + 0x7e4: 0xa000, 0x7e5: 0xa000, + 0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a, + 0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45, + 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000, + 0x7fc: 0xa000, 0x7fd: 0xa000, + // Block 0x20, offset 0x800 + 0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d, + 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b, + 0x811: 0xa000, + 0x812: 0xa000, + 0x822: 0xa000, + 0x828: 0xa000, 0x829: 0xa000, + 0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5, + 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, + // Block 0x21, offset 0x840 + 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, + 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882, + 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894, + 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c, + 0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84, + 0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a, + // Block 0x22, offset 0x880 + 0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8, + 0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb, + 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60, + 0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78, + 0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8, + 0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10, + 0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28, + 0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40, + 0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58, + 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, + 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713, + 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab, + 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803, + 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887, + 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db, + 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb, + 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b, + 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7, + 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33, + 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63, + 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f, + // Block 0x24, offset 0x900 + 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb, + 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b, + 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb, + 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3, + 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f, + 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83, + 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7, + 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f, + 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf, + 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f, + 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187, + // Block 0x25, offset 0x940 + 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3, + 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb, + 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b, + 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b, + 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf, + 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f, + 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f, + 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503, + 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f, + 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f, + 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593, + // Block 0x26, offset 0x980 + 0x986: 0xa000, 0x98b: 0xa000, + 0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000, + 0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000, + 0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000, + 0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60, + 0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78, + 0x9af: 0xa000, + 0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000, + 0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000, + 0x9bc: 0x3fc0, 0x9bd: 0x3fc8, + // Block 0x27, offset 0x9c0 + 0x9d4: 0x3f00, + 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000, + 0x9de: 0x3fd0, 0x9df: 0x26b4, + 0x9e6: 0xa000, + 0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000, + 0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000, + 0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000, + 0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000, + // Block 0x28, offset 0xa00 + 0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040, + 0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050, + 0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060, + 0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080, + 0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0, + 0xa2f: 0xa000, + 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8, + 0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0, + 0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9, + // Block 0x29, offset 0xa40 + 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337, + 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f, + 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9, + 0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed, + 0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11, + 0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35, + 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef, + 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403, + 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383, + 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b, + 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab, + // Block 0x2a, offset 0xa80 + 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb, + 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7, + 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3, + 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7, + 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff, + 0xa9e: 0x098f, 0xa9f: 0x072f, + // Block 0x2b, offset 0xac0 + 0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072, + 0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096, + 0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741, + 0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780, + 0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac, + 0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108, + 0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0, + 0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e, + 0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144, + 0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114, + 0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6, + // Block 0x2c, offset 0xb00 + 0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03, + 0xb06: 0x0ca7, 0xb07: 0x10c7, + 0xb10: 0x1bc4, 0xb11: 0x18a9, + 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb, + 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3, + 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327, + 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b, + 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20, + 0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50, + 0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88, + 0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58, + // Block 0x2d, offset 0xb40 + 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af, + 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f, + 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b, + 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f, + 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f, + 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b, + 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f, + 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b, + 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee, + 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900, + 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11, + 0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0, + 0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3, + 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7, + 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f, + 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b, + 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543, + 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b, + 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f, + 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597, + 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a, + 0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2, + 0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6, + 0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c, + 0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6, + 0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da, + 0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8, + 0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51, + 0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920, + 0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06, + 0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de, + // Block 0x30, offset 0xc00 + 0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c, + 0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90, + 0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6, + 0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984, + 0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07, + 0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4, + 0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2, + 0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a, + 0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47, + 0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701, + 0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0, + // Block 0x31, offset 0xc40 + 0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969, + 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35, + 0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c, + 0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9, + 0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0, + 0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40, + 0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996, + 0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad, + 0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38, + 0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b, + 0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984, + // Block 0x32, offset 0xc80 + 0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd, + 0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e, + 0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e, + 0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990, + 0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4, + 0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee, + 0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186, + 0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0, + 0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258, + 0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e, + 0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb, + 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943, + 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3, + 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43, + 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87, + 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283, + 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f, + 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853, + 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b, + 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b, + 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b, + // Block 0x34, offset 0xd00 + 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b, + 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f, + 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7, + 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127, + 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357, + 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873, + 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3, + 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b, + 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57, + 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb, + 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b, + // Block 0x35, offset 0xd40 + 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f, + 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3, + 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83, + 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193, + 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b, + 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b, + 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f, + 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b, + 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753, + 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777, + 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73, + // Block 0x36, offset 0xd80 + 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3, + 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47, + 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af, + 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df, + 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817, + 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3, + 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457, + 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b, + 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27, + 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f, + 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03, + 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27, + 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af, + 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3, + 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb, + 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353, + 0xde5: 0x1407, 0xde6: 0x1433, + 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7, + 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897, + 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93, + 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3, + // Block 0x38, offset 0xe00 + 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b, + 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f, + 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f, + 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f, + 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff, + 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f, + 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f, + 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3, + 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7, + 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963, + 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f, + // Block 0x39, offset 0xe40 + 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b, + 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb, + 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf, + 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f, + 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013, + 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f, + 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b, + 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b, + 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb, + 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343, + 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f, + // Block 0x3a, offset 0xe80 + 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b, + 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b, + 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2, + 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809, + 0xe98: 0x1617, 0xe99: 0x1627, + // Block 0x3b, offset 0xec0 + 0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f, + 0xec6: 0x1a5f, + 0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70, + 0xedd: 0x4390, + 0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221, + 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017, + 0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e, + 0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e, + 0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2, + 0xefc: 0x43ae, 0xefe: 0x43b4, + // Block 0x3c, offset 0xf00 + 0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc, + 0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378, + 0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299, + 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5, + 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab, + 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8, + 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c, + 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2, + 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1, + 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4, + 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7, + // Block 0x3d, offset 0xf40 + 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd, + 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9, + 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5, + 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1, + 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de, + 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7, + 0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed, + 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308, + 0xf70: 0x4468, 0xf71: 0x4468, + // Block 0x3e, offset 0xf80 + 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6, + 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f, + 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc, + 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d, + 0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9, + 0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c, + 0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0, + 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89, + 0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb, + 0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded, + 0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29, + 0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b, + 0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9, + 0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00, + 0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32, + 0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50, + 0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e, + 0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf, + 0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd, + 0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff, + 0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022, + 0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c, + 0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6, + 0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7, + 0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6, + 0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8, + 0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10, + 0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55, + // Block 0x41, offset 0x1040 + 0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96, + 0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1, + 0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027, + 0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1, + 0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e, + 0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5, + 0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29, + 0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60, + 0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9, + 0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05, + 0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d, + // Block 0x42, offset 0x1080 + 0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64, + 0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91, + 0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe, + 0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff, + 0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031, + 0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4, + 0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92, + 0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0, + 0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1, + 0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74, + 0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba, + 0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88, + 0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1, + 0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74, + 0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f, + 0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd, + 0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d, + 0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88, + 0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b, + 0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb, + 0x10fc: 0x4408, 0x10fd: 0x4408, + // Block 0x44, offset 0x1100 + 0x1110: 0x2311, 0x1111: 0x2326, + 0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357, + 0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4, + 0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5, + 0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc, + 0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430, + 0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c, + 0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f, + 0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499, + // Block 0x45, offset 0x1140 + 0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df, + 0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e, + 0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c, + 0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548, + 0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c, + 0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365, + 0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406, + 0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e, + 0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca, + 0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7, + 0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f, + // Block 0x46, offset 0x1180 + 0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b, + 0x1186: 0x23c0, 0x1187: 0x2556, + 0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da, + 0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc, + 0x11bc: 0x27d1, + // Block 0x47, offset 0x11c0 + 0x11d0: 0x0019, 0x11d1: 0x0483, + 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf, + 0x11d8: 0x04c3, 0x11d9: 0x1b5c, + 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132, + 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d, + 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132, + 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, + 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab, + 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b, + // Block 0x48, offset 0x1200 + 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7, + 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269, + 0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483, + 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, + 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7, + 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, + 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, + 0x122a: 0x000b, 0x122b: 0x0041, + 0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4, + 0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e, + 0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a, + // Block 0x49, offset 0x1240 + 0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456, + 0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462, + 0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c, + 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242, + 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248, + 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b, + 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251, + 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a, + 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260, + 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263, + 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c, + 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f, + 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275, + 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278, + 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e, + 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281, + 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287, + 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d, + 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00, + 0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82, + 0x12bc: 0x1f82, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, + 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, + 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, + 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, + 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, + 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f, + 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7, + 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f, + 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb, + 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503, + 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f, + 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547, + 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f, + 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583, + 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7, + 0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b, + 0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327, + 0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b, + 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337, + 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f, + 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b, + // Block 0x4d, offset 0x1340 + 0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf, + 0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7, + 0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff, + 0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23, + 0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35, + 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264, + 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b, + 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, + 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, + 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, + 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, + 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, + 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, + 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176, + 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188, + 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a, + 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9, + 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0, + 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209, + 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, + 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, + 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, + 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, + 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, + 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, + 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, + 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, + 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, + // Block 0x50, offset 0x1400 + 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a, + 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e, + 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, + 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4, + 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, + 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290, + 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272, + // Block 0x51, offset 0x1440 + 0x1442: 0x0248, + 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e, + 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263, + 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e, + 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4, + 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248, + 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, + 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, + 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242, + 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, + 0x147c: 0x0293, 0x147e: 0x02cc, + // Block 0x52, offset 0x1480 + 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a, + 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e, + 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263, + 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e, + 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272, + 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251, + 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290, + 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f, + 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242, + 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8, + 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927, + 0x14d0: 0x1a8c, 0x14d1: 0x1a90, + 0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8, + 0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0, + 0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8, + 0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0, + 0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1, + 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, + 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, + 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, + // Block 0x54, offset 0x1500 + 0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503, + 0x1510: 0x0c0f, 0x1511: 0x0a47, + 0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff, + 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b, + 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b, + 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf, + 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b, + 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43, + 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443, + // Block 0x55, offset 0x1540 + 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757, + 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773, + 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3, + 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf, + 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff, + 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f, + 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867, + 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af, + 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93, + 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3, + 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917, + // Block 0x56, offset 0x1580 + 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f, + 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983, + 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf, + 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3, + 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef, + 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23, + 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37, + 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63, + 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f, + 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692, + 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb, + 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f, + 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6, + 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9, + 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83, + 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3, + 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf, + 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7, + 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f, + 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b, + 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f, + // Block 0x58, offset 0x1600 + 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87, + 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb, + 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7, + 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663, + 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd, + 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7, + 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b, + 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f, + 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7, + 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700, + 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb, + // Block 0x59, offset 0x1640 + 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23, + 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53, + 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714, + 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b, + 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719, + 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728, + 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37, + 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57, + 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737, + 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741, + 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b, + // Block 0x5a, offset 0x1680 + 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff, + 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637, + 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f, + 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093, + 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782, + 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3, + 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7, + 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133, + 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa, + 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4, + 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7, + 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7, + 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b, + 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd, + 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f, + 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f, + 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273, + 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677, + 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7, + 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb, + 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f, + // Block 0x5c, offset 0x1700 + 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5, + 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa, + 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b, + 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7, + 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665, + 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f, + 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477, + 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693, + 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb, + 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b, + 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b, + // Block 0x5d, offset 0x1740 + 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567, + 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7, + 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7, + 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef, + 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, + 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, + 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, + 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, + 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, + // Block 0x5, offset 0x140 + 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, + 0x14d: 0x8a, + 0x15c: 0x8b, 0x15f: 0x8c, + 0x162: 0x8d, 0x164: 0x8e, + 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, + 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, + 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28, + 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, + 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, + 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, + 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + 0x374: 0xcb, + 0x37d: 0xcc, + // Block 0xe, offset 0x380 + 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0, + 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4, + 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9, + 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc, + 0x3a0: 0xdd, + 0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0, + 0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xe3, 0x3ec: 0xe4, + // Block 0x10, offset 0x400 + 0x432: 0xe5, + // Block 0x11, offset 0x440 + 0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8, + 0x449: 0xe9, + 0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1, + 0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d, + // Block 0x12, offset 0x480 + 0x480: 0xf8, + 0x4a3: 0xf9, 0x4a5: 0xfa, + 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc, + 0x4c8: 0x52, 0x4c9: 0xfd, + // Block 0x14, offset 0x500 + 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, + 0x528: 0x5b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 162 entries, 324 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d} + +// nfkcSparseValues: 871 entries, 3484 bytes +var nfkcSparseValues = [871]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x4278, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4264, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425a, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4291, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221c, lo: 0xbc, hi: 0xbc}, + {value: 0x2210, lo: 0xbd, hi: 0xbd}, + {value: 0x22b2, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x426e, lo: 0x98, hi: 0x98}, + {value: 0x4273, lo: 0x99, hi: 0x9a}, + {value: 0x4296, lo: 0x9b, hi: 0x9b}, + {value: 0x425f, lo: 0x9c, hi: 0x9c}, + {value: 0x4282, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xc, offset 0x70 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x75 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x77 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0xf, offset 0x7f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x10, offset 0x86 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x11, offset 0x89 + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x91 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x13, offset 0x95 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x14, offset 0x99 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x16, offset 0x9d + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x17, offset 0xa6 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x18, offset 0xaa + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x19, offset 0xb1 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1a, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0xb9 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xc3 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1d, offset 0xc6 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1e, offset 0xcd + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x1f, offset 0xd5 + {value: 0x0000, lo: 0x03}, + {value: 0x2621, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x20, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x21, offset 0xdb + {value: 0x0000, lo: 0x02}, + {value: 0x2636, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x22, offset 0xde + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x2628, lo: 0x9c, hi: 0x9c}, + {value: 0x262f, lo: 0x9d, hi: 0x9d}, + // Block 0x23, offset 0xe2 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x24, offset 0xe8 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x45f4, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x45ff, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x25, offset 0xf9 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0x105 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x27, offset 0x107 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x28, offset 0x10d + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x29, offset 0x10f + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2a, offset 0x111 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x115 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x117 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x119 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x11b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x11e + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x121 + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x123 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x126 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x129 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x12d + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x132 + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x13b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x13d + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x140 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x142 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x14d + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x158 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429b, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2691, lo: 0xb3, hi: 0xb3}, + {value: 0x27fe, lo: 0xb4, hi: 0xb4}, + {value: 0x2698, lo: 0xb6, hi: 0xb6}, + {value: 0x2808, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x4269, lo: 0xbe, hi: 0xbe}, + // Block 0x3d, offset 0x166 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x298e, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x174 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x1999, lo: 0xa8, hi: 0xa8}, + // Block 0x3f, offset 0x184 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x40, offset 0x192 + {value: 0x0007, lo: 0x06}, + {value: 0x2180, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x199 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x19f + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0x269f, lo: 0xac, hi: 0xad}, + {value: 0x26a6, lo: 0xaf, hi: 0xaf}, + {value: 0x281c, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x1ae + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x1b2 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x1b4 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x46, offset 0x1b8 + {value: 0x0000, lo: 0x01}, + {value: 0x299b, lo: 0x8c, hi: 0x8c}, + // Block 0x47, offset 0x1ba + {value: 0x0263, lo: 0x02}, + {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x48, offset 0x1bd + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x49, offset 0x1bf + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4a, offset 0x1c2 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4b, offset 0x1c4 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4c, offset 0x1c7 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4d, offset 0x1c9 + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x4e, offset 0x1cb + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x4f, offset 0x1cd + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x50, offset 0x1d9 + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x51, offset 0x1e3 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a41, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a4d, lo: 0xba, hi: 0xbf}, + // Block 0x52, offset 0x1ed + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x53, offset 0x1f0 + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x54, offset 0x1f4 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x55, offset 0x1f6 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x56, offset 0x1f8 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x57, offset 0x1fa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x58, offset 0x1fc + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x59, offset 0x1ff + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5a, offset 0x201 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5b, offset 0x203 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5c, offset 0x205 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5d, offset 0x207 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x5e, offset 0x20d + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x5f, offset 0x210 + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x60, offset 0x214 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x61, offset 0x216 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x62, offset 0x21d + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x63, offset 0x223 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x64, offset 0x229 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x65, offset 0x231 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x66, offset 0x237 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x67, offset 0x23d + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x68, offset 0x243 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x69, offset 0x247 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6a, offset 0x249 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6b, offset 0x24b + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6c, offset 0x24d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6d, offset 0x24f + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x6e, offset 0x255 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x6f, offset 0x258 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x70, offset 0x25a + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x71, offset 0x260 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x263 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x73, offset 0x26b + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x74, offset 0x272 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x75, offset 0x275 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x76, offset 0x278 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x77, offset 0x27a + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x78, offset 0x27d + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x79, offset 0x285 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7a, offset 0x289 + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7b, offset 0x290 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7c, offset 0x293 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7d, offset 0x299 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7e, offset 0x29b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7f, offset 0x29d + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x80, offset 0x2a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x81, offset 0x2a2 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x82, offset 0x2a5 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x83, offset 0x2a7 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x84, offset 0x2a9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x85, offset 0x2ab + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x86, offset 0x2ae + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x87, offset 0x2b0 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x88, offset 0x2b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x89, offset 0x2b4 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8a, offset 0x2b6 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8b, offset 0x2c3 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x8c, offset 0x2cd + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x8d, offset 0x2cf + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8e, offset 0x2d1 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x8f, offset 0x2d5 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x90, offset 0x2da + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x91, offset 0x2e6 + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x92, offset 0x2eb + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x93, offset 0x2f4 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x94, offset 0x2fa + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x95, offset 0x2ff + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x96, offset 0x303 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x97, offset 0x308 + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x98, offset 0x30c + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x99, offset 0x31c + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x9a, offset 0x32a + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x9b, offset 0x338 + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x9c, offset 0x346 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x9d, offset 0x34c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x9e, offset 0x34e + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x9f, offset 0x351 + {value: 0x0002, lo: 0x09}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1981, lo: 0x8b, hi: 0x8b}, + {value: 0x199c, lo: 0x8c, hi: 0x8c}, + {value: 0x19a2, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, + {value: 0x19ae, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + // Block 0xa0, offset 0x35b + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0xa1, offset 0x35d + {value: 0x0028, lo: 0x09}, + {value: 0x2862, lo: 0x80, hi: 0x80}, + {value: 0x2826, lo: 0x81, hi: 0x81}, + {value: 0x2830, lo: 0x82, hi: 0x82}, + {value: 0x2844, lo: 0x83, hi: 0x84}, + {value: 0x284e, lo: 0x85, hi: 0x86}, + {value: 0x283a, lo: 0x87, hi: 0x87}, + {value: 0x2858, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 53KB (54514 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go new file mode 100644 index 000000000..10f5202c6 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go @@ -0,0 +1,7710 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// +build go1.14 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "12.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2CA1 + endMulti = 0x2F63 + firstLeadingCCC = 0x49B1 + firstCCCZeroExcept = 0x4A7B + firstStarterWithNLead = 0x4AA2 + lastDecomp = 0x4AA4 + maxDecomp = 0x8000 +) + +// decomps: 19108 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x52, 0x42, 0x4D, 0x56, 0x42, + 0x4D, 0x57, 0x42, 0x4E, 0x4A, 0x42, 0x4E, 0x6A, + 0x42, 0x4E, 0x6F, 0x42, 0x50, 0x48, 0x42, 0x50, + 0x52, 0x42, 0x50, 0x61, 0x42, 0x52, 0x73, 0x42, + 0x53, 0x44, 0x42, 0x53, 0x4D, 0x42, 0x53, 0x53, + 0x42, 0x53, 0x76, 0x42, 0x54, 0x4D, 0x42, 0x56, + 0x49, 0x42, 0x57, 0x43, 0x42, 0x57, 0x5A, 0x42, + 0x57, 0x62, 0x42, 0x58, 0x49, 0x42, 0x63, 0x63, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x64, 0x42, 0x63, 0x6D, 0x42, 0x64, + 0x42, 0x42, 0x64, 0x61, 0x42, 0x64, 0x6C, 0x42, + 0x64, 0x6D, 0x42, 0x64, 0x7A, 0x42, 0x65, 0x56, + 0x42, 0x66, 0x66, 0x42, 0x66, 0x69, 0x42, 0x66, + 0x6C, 0x42, 0x66, 0x6D, 0x42, 0x68, 0x61, 0x42, + 0x69, 0x69, 0x42, 0x69, 0x6A, 0x42, 0x69, 0x6E, + 0x42, 0x69, 0x76, 0x42, 0x69, 0x78, 0x42, 0x6B, + 0x41, 0x42, 0x6B, 0x56, 0x42, 0x6B, 0x57, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x67, 0x42, 0x6B, 0x6C, 0x42, 0x6B, 0x6D, + 0x42, 0x6B, 0x74, 0x42, 0x6C, 0x6A, 0x42, 0x6C, + 0x6D, 0x42, 0x6C, 0x6E, 0x42, 0x6C, 0x78, 0x42, + 0x6D, 0x32, 0x42, 0x6D, 0x33, 0x42, 0x6D, 0x41, + 0x42, 0x6D, 0x56, 0x42, 0x6D, 0x57, 0x42, 0x6D, + 0x62, 0x42, 0x6D, 0x67, 0x42, 0x6D, 0x6C, 0x42, + 0x6D, 0x6D, 0x42, 0x6D, 0x73, 0x42, 0x6E, 0x41, + 0x42, 0x6E, 0x46, 0x42, 0x6E, 0x56, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x57, 0x42, 0x6E, 0x6A, 0x42, 0x6E, 0x6D, 0x42, + 0x6E, 0x73, 0x42, 0x6F, 0x56, 0x42, 0x70, 0x41, + 0x42, 0x70, 0x46, 0x42, 0x70, 0x56, 0x42, 0x70, + 0x57, 0x42, 0x70, 0x63, 0x42, 0x70, 0x73, 0x42, + 0x73, 0x72, 0x42, 0x73, 0x74, 0x42, 0x76, 0x69, + 0x42, 0x78, 0x69, 0x43, 0x28, 0x31, 0x29, 0x43, + 0x28, 0x32, 0x29, 0x43, 0x28, 0x33, 0x29, 0x43, + 0x28, 0x34, 0x29, 0x43, 0x28, 0x35, 0x29, 0x43, + // Bytes 1a80 - 1abf + 0x28, 0x36, 0x29, 0x43, 0x28, 0x37, 0x29, 0x43, + 0x28, 0x38, 0x29, 0x43, 0x28, 0x39, 0x29, 0x43, + 0x28, 0x41, 0x29, 0x43, 0x28, 0x42, 0x29, 0x43, + 0x28, 0x43, 0x29, 0x43, 0x28, 0x44, 0x29, 0x43, + 0x28, 0x45, 0x29, 0x43, 0x28, 0x46, 0x29, 0x43, + 0x28, 0x47, 0x29, 0x43, 0x28, 0x48, 0x29, 0x43, + 0x28, 0x49, 0x29, 0x43, 0x28, 0x4A, 0x29, 0x43, + 0x28, 0x4B, 0x29, 0x43, 0x28, 0x4C, 0x29, 0x43, + // Bytes 1ac0 - 1aff + 0x28, 0x4D, 0x29, 0x43, 0x28, 0x4E, 0x29, 0x43, + 0x28, 0x4F, 0x29, 0x43, 0x28, 0x50, 0x29, 0x43, + 0x28, 0x51, 0x29, 0x43, 0x28, 0x52, 0x29, 0x43, + 0x28, 0x53, 0x29, 0x43, 0x28, 0x54, 0x29, 0x43, + 0x28, 0x55, 0x29, 0x43, 0x28, 0x56, 0x29, 0x43, + 0x28, 0x57, 0x29, 0x43, 0x28, 0x58, 0x29, 0x43, + 0x28, 0x59, 0x29, 0x43, 0x28, 0x5A, 0x29, 0x43, + 0x28, 0x61, 0x29, 0x43, 0x28, 0x62, 0x29, 0x43, + // Bytes 1b00 - 1b3f + 0x28, 0x63, 0x29, 0x43, 0x28, 0x64, 0x29, 0x43, + 0x28, 0x65, 0x29, 0x43, 0x28, 0x66, 0x29, 0x43, + 0x28, 0x67, 0x29, 0x43, 0x28, 0x68, 0x29, 0x43, + 0x28, 0x69, 0x29, 0x43, 0x28, 0x6A, 0x29, 0x43, + 0x28, 0x6B, 0x29, 0x43, 0x28, 0x6C, 0x29, 0x43, + 0x28, 0x6D, 0x29, 0x43, 0x28, 0x6E, 0x29, 0x43, + 0x28, 0x6F, 0x29, 0x43, 0x28, 0x70, 0x29, 0x43, + 0x28, 0x71, 0x29, 0x43, 0x28, 0x72, 0x29, 0x43, + // Bytes 1b40 - 1b7f + 0x28, 0x73, 0x29, 0x43, 0x28, 0x74, 0x29, 0x43, + 0x28, 0x75, 0x29, 0x43, 0x28, 0x76, 0x29, 0x43, + 0x28, 0x77, 0x29, 0x43, 0x28, 0x78, 0x29, 0x43, + 0x28, 0x79, 0x29, 0x43, 0x28, 0x7A, 0x29, 0x43, + 0x2E, 0x2E, 0x2E, 0x43, 0x31, 0x30, 0x2E, 0x43, + 0x31, 0x31, 0x2E, 0x43, 0x31, 0x32, 0x2E, 0x43, + 0x31, 0x33, 0x2E, 0x43, 0x31, 0x34, 0x2E, 0x43, + 0x31, 0x35, 0x2E, 0x43, 0x31, 0x36, 0x2E, 0x43, + // Bytes 1b80 - 1bbf + 0x31, 0x37, 0x2E, 0x43, 0x31, 0x38, 0x2E, 0x43, + 0x31, 0x39, 0x2E, 0x43, 0x32, 0x30, 0x2E, 0x43, + 0x3A, 0x3A, 0x3D, 0x43, 0x3D, 0x3D, 0x3D, 0x43, + 0x43, 0x6F, 0x2E, 0x43, 0x46, 0x41, 0x58, 0x43, + 0x47, 0x48, 0x7A, 0x43, 0x47, 0x50, 0x61, 0x43, + 0x49, 0x49, 0x49, 0x43, 0x4C, 0x54, 0x44, 0x43, + 0x4C, 0xC2, 0xB7, 0x43, 0x4D, 0x48, 0x7A, 0x43, + 0x4D, 0x50, 0x61, 0x43, 0x4D, 0xCE, 0xA9, 0x43, + // Bytes 1bc0 - 1bff + 0x50, 0x50, 0x4D, 0x43, 0x50, 0x50, 0x56, 0x43, + 0x50, 0x54, 0x45, 0x43, 0x54, 0x45, 0x4C, 0x43, + 0x54, 0x48, 0x7A, 0x43, 0x56, 0x49, 0x49, 0x43, + 0x58, 0x49, 0x49, 0x43, 0x61, 0x2F, 0x63, 0x43, + 0x61, 0x2F, 0x73, 0x43, 0x61, 0xCA, 0xBE, 0x43, + 0x62, 0x61, 0x72, 0x43, 0x63, 0x2F, 0x6F, 0x43, + 0x63, 0x2F, 0x75, 0x43, 0x63, 0x61, 0x6C, 0x43, + 0x63, 0x6D, 0x32, 0x43, 0x63, 0x6D, 0x33, 0x43, + // Bytes 1c00 - 1c3f + 0x64, 0x6D, 0x32, 0x43, 0x64, 0x6D, 0x33, 0x43, + 0x65, 0x72, 0x67, 0x43, 0x66, 0x66, 0x69, 0x43, + 0x66, 0x66, 0x6C, 0x43, 0x67, 0x61, 0x6C, 0x43, + 0x68, 0x50, 0x61, 0x43, 0x69, 0x69, 0x69, 0x43, + 0x6B, 0x48, 0x7A, 0x43, 0x6B, 0x50, 0x61, 0x43, + 0x6B, 0x6D, 0x32, 0x43, 0x6B, 0x6D, 0x33, 0x43, + 0x6B, 0xCE, 0xA9, 0x43, 0x6C, 0x6F, 0x67, 0x43, + 0x6C, 0xC2, 0xB7, 0x43, 0x6D, 0x69, 0x6C, 0x43, + // Bytes 1c40 - 1c7f + 0x6D, 0x6D, 0x32, 0x43, 0x6D, 0x6D, 0x33, 0x43, + 0x6D, 0x6F, 0x6C, 0x43, 0x72, 0x61, 0x64, 0x43, + 0x76, 0x69, 0x69, 0x43, 0x78, 0x69, 0x69, 0x43, + 0xC2, 0xB0, 0x43, 0x43, 0xC2, 0xB0, 0x46, 0x43, + 0xCA, 0xBC, 0x6E, 0x43, 0xCE, 0xBC, 0x41, 0x43, + 0xCE, 0xBC, 0x46, 0x43, 0xCE, 0xBC, 0x56, 0x43, + 0xCE, 0xBC, 0x57, 0x43, 0xCE, 0xBC, 0x67, 0x43, + 0xCE, 0xBC, 0x6C, 0x43, 0xCE, 0xBC, 0x6D, 0x43, + // Bytes 1c80 - 1cbf + 0xCE, 0xBC, 0x73, 0x44, 0x28, 0x31, 0x30, 0x29, + 0x44, 0x28, 0x31, 0x31, 0x29, 0x44, 0x28, 0x31, + 0x32, 0x29, 0x44, 0x28, 0x31, 0x33, 0x29, 0x44, + 0x28, 0x31, 0x34, 0x29, 0x44, 0x28, 0x31, 0x35, + 0x29, 0x44, 0x28, 0x31, 0x36, 0x29, 0x44, 0x28, + 0x31, 0x37, 0x29, 0x44, 0x28, 0x31, 0x38, 0x29, + 0x44, 0x28, 0x31, 0x39, 0x29, 0x44, 0x28, 0x32, + 0x30, 0x29, 0x44, 0x30, 0xE7, 0x82, 0xB9, 0x44, + // Bytes 1cc0 - 1cff + 0x31, 0xE2, 0x81, 0x84, 0x44, 0x31, 0xE6, 0x97, + 0xA5, 0x44, 0x31, 0xE6, 0x9C, 0x88, 0x44, 0x31, + 0xE7, 0x82, 0xB9, 0x44, 0x32, 0xE6, 0x97, 0xA5, + 0x44, 0x32, 0xE6, 0x9C, 0x88, 0x44, 0x32, 0xE7, + 0x82, 0xB9, 0x44, 0x33, 0xE6, 0x97, 0xA5, 0x44, + 0x33, 0xE6, 0x9C, 0x88, 0x44, 0x33, 0xE7, 0x82, + 0xB9, 0x44, 0x34, 0xE6, 0x97, 0xA5, 0x44, 0x34, + 0xE6, 0x9C, 0x88, 0x44, 0x34, 0xE7, 0x82, 0xB9, + // Bytes 1d00 - 1d3f + 0x44, 0x35, 0xE6, 0x97, 0xA5, 0x44, 0x35, 0xE6, + 0x9C, 0x88, 0x44, 0x35, 0xE7, 0x82, 0xB9, 0x44, + 0x36, 0xE6, 0x97, 0xA5, 0x44, 0x36, 0xE6, 0x9C, + 0x88, 0x44, 0x36, 0xE7, 0x82, 0xB9, 0x44, 0x37, + 0xE6, 0x97, 0xA5, 0x44, 0x37, 0xE6, 0x9C, 0x88, + 0x44, 0x37, 0xE7, 0x82, 0xB9, 0x44, 0x38, 0xE6, + 0x97, 0xA5, 0x44, 0x38, 0xE6, 0x9C, 0x88, 0x44, + 0x38, 0xE7, 0x82, 0xB9, 0x44, 0x39, 0xE6, 0x97, + // Bytes 1d40 - 1d7f + 0xA5, 0x44, 0x39, 0xE6, 0x9C, 0x88, 0x44, 0x39, + 0xE7, 0x82, 0xB9, 0x44, 0x56, 0x49, 0x49, 0x49, + 0x44, 0x61, 0x2E, 0x6D, 0x2E, 0x44, 0x6B, 0x63, + 0x61, 0x6C, 0x44, 0x70, 0x2E, 0x6D, 0x2E, 0x44, + 0x76, 0x69, 0x69, 0x69, 0x44, 0xD5, 0xA5, 0xD6, + 0x82, 0x44, 0xD5, 0xB4, 0xD5, 0xA5, 0x44, 0xD5, + 0xB4, 0xD5, 0xAB, 0x44, 0xD5, 0xB4, 0xD5, 0xAD, + 0x44, 0xD5, 0xB4, 0xD5, 0xB6, 0x44, 0xD5, 0xBE, + // Bytes 1d80 - 1dbf + 0xD5, 0xB6, 0x44, 0xD7, 0x90, 0xD7, 0x9C, 0x44, + 0xD8, 0xA7, 0xD9, 0xB4, 0x44, 0xD8, 0xA8, 0xD8, + 0xAC, 0x44, 0xD8, 0xA8, 0xD8, 0xAD, 0x44, 0xD8, + 0xA8, 0xD8, 0xAE, 0x44, 0xD8, 0xA8, 0xD8, 0xB1, + 0x44, 0xD8, 0xA8, 0xD8, 0xB2, 0x44, 0xD8, 0xA8, + 0xD9, 0x85, 0x44, 0xD8, 0xA8, 0xD9, 0x86, 0x44, + 0xD8, 0xA8, 0xD9, 0x87, 0x44, 0xD8, 0xA8, 0xD9, + 0x89, 0x44, 0xD8, 0xA8, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1dc0 - 1dff + 0xAA, 0xD8, 0xAC, 0x44, 0xD8, 0xAA, 0xD8, 0xAD, + 0x44, 0xD8, 0xAA, 0xD8, 0xAE, 0x44, 0xD8, 0xAA, + 0xD8, 0xB1, 0x44, 0xD8, 0xAA, 0xD8, 0xB2, 0x44, + 0xD8, 0xAA, 0xD9, 0x85, 0x44, 0xD8, 0xAA, 0xD9, + 0x86, 0x44, 0xD8, 0xAA, 0xD9, 0x87, 0x44, 0xD8, + 0xAA, 0xD9, 0x89, 0x44, 0xD8, 0xAA, 0xD9, 0x8A, + 0x44, 0xD8, 0xAB, 0xD8, 0xAC, 0x44, 0xD8, 0xAB, + 0xD8, 0xB1, 0x44, 0xD8, 0xAB, 0xD8, 0xB2, 0x44, + // Bytes 1e00 - 1e3f + 0xD8, 0xAB, 0xD9, 0x85, 0x44, 0xD8, 0xAB, 0xD9, + 0x86, 0x44, 0xD8, 0xAB, 0xD9, 0x87, 0x44, 0xD8, + 0xAB, 0xD9, 0x89, 0x44, 0xD8, 0xAB, 0xD9, 0x8A, + 0x44, 0xD8, 0xAC, 0xD8, 0xAD, 0x44, 0xD8, 0xAC, + 0xD9, 0x85, 0x44, 0xD8, 0xAC, 0xD9, 0x89, 0x44, + 0xD8, 0xAC, 0xD9, 0x8A, 0x44, 0xD8, 0xAD, 0xD8, + 0xAC, 0x44, 0xD8, 0xAD, 0xD9, 0x85, 0x44, 0xD8, + 0xAD, 0xD9, 0x89, 0x44, 0xD8, 0xAD, 0xD9, 0x8A, + // Bytes 1e40 - 1e7f + 0x44, 0xD8, 0xAE, 0xD8, 0xAC, 0x44, 0xD8, 0xAE, + 0xD8, 0xAD, 0x44, 0xD8, 0xAE, 0xD9, 0x85, 0x44, + 0xD8, 0xAE, 0xD9, 0x89, 0x44, 0xD8, 0xAE, 0xD9, + 0x8A, 0x44, 0xD8, 0xB3, 0xD8, 0xAC, 0x44, 0xD8, + 0xB3, 0xD8, 0xAD, 0x44, 0xD8, 0xB3, 0xD8, 0xAE, + 0x44, 0xD8, 0xB3, 0xD8, 0xB1, 0x44, 0xD8, 0xB3, + 0xD9, 0x85, 0x44, 0xD8, 0xB3, 0xD9, 0x87, 0x44, + 0xD8, 0xB3, 0xD9, 0x89, 0x44, 0xD8, 0xB3, 0xD9, + // Bytes 1e80 - 1ebf + 0x8A, 0x44, 0xD8, 0xB4, 0xD8, 0xAC, 0x44, 0xD8, + 0xB4, 0xD8, 0xAD, 0x44, 0xD8, 0xB4, 0xD8, 0xAE, + 0x44, 0xD8, 0xB4, 0xD8, 0xB1, 0x44, 0xD8, 0xB4, + 0xD9, 0x85, 0x44, 0xD8, 0xB4, 0xD9, 0x87, 0x44, + 0xD8, 0xB4, 0xD9, 0x89, 0x44, 0xD8, 0xB4, 0xD9, + 0x8A, 0x44, 0xD8, 0xB5, 0xD8, 0xAD, 0x44, 0xD8, + 0xB5, 0xD8, 0xAE, 0x44, 0xD8, 0xB5, 0xD8, 0xB1, + 0x44, 0xD8, 0xB5, 0xD9, 0x85, 0x44, 0xD8, 0xB5, + // Bytes 1ec0 - 1eff + 0xD9, 0x89, 0x44, 0xD8, 0xB5, 0xD9, 0x8A, 0x44, + 0xD8, 0xB6, 0xD8, 0xAC, 0x44, 0xD8, 0xB6, 0xD8, + 0xAD, 0x44, 0xD8, 0xB6, 0xD8, 0xAE, 0x44, 0xD8, + 0xB6, 0xD8, 0xB1, 0x44, 0xD8, 0xB6, 0xD9, 0x85, + 0x44, 0xD8, 0xB6, 0xD9, 0x89, 0x44, 0xD8, 0xB6, + 0xD9, 0x8A, 0x44, 0xD8, 0xB7, 0xD8, 0xAD, 0x44, + 0xD8, 0xB7, 0xD9, 0x85, 0x44, 0xD8, 0xB7, 0xD9, + 0x89, 0x44, 0xD8, 0xB7, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1f00 - 1f3f + 0xB8, 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD8, 0xAC, + 0x44, 0xD8, 0xB9, 0xD9, 0x85, 0x44, 0xD8, 0xB9, + 0xD9, 0x89, 0x44, 0xD8, 0xB9, 0xD9, 0x8A, 0x44, + 0xD8, 0xBA, 0xD8, 0xAC, 0x44, 0xD8, 0xBA, 0xD9, + 0x85, 0x44, 0xD8, 0xBA, 0xD9, 0x89, 0x44, 0xD8, + 0xBA, 0xD9, 0x8A, 0x44, 0xD9, 0x81, 0xD8, 0xAC, + 0x44, 0xD9, 0x81, 0xD8, 0xAD, 0x44, 0xD9, 0x81, + 0xD8, 0xAE, 0x44, 0xD9, 0x81, 0xD9, 0x85, 0x44, + // Bytes 1f40 - 1f7f + 0xD9, 0x81, 0xD9, 0x89, 0x44, 0xD9, 0x81, 0xD9, + 0x8A, 0x44, 0xD9, 0x82, 0xD8, 0xAD, 0x44, 0xD9, + 0x82, 0xD9, 0x85, 0x44, 0xD9, 0x82, 0xD9, 0x89, + 0x44, 0xD9, 0x82, 0xD9, 0x8A, 0x44, 0xD9, 0x83, + 0xD8, 0xA7, 0x44, 0xD9, 0x83, 0xD8, 0xAC, 0x44, + 0xD9, 0x83, 0xD8, 0xAD, 0x44, 0xD9, 0x83, 0xD8, + 0xAE, 0x44, 0xD9, 0x83, 0xD9, 0x84, 0x44, 0xD9, + 0x83, 0xD9, 0x85, 0x44, 0xD9, 0x83, 0xD9, 0x89, + // Bytes 1f80 - 1fbf + 0x44, 0xD9, 0x83, 0xD9, 0x8A, 0x44, 0xD9, 0x84, + 0xD8, 0xA7, 0x44, 0xD9, 0x84, 0xD8, 0xAC, 0x44, + 0xD9, 0x84, 0xD8, 0xAD, 0x44, 0xD9, 0x84, 0xD8, + 0xAE, 0x44, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0xD9, + 0x84, 0xD9, 0x87, 0x44, 0xD9, 0x84, 0xD9, 0x89, + 0x44, 0xD9, 0x84, 0xD9, 0x8A, 0x44, 0xD9, 0x85, + 0xD8, 0xA7, 0x44, 0xD9, 0x85, 0xD8, 0xAC, 0x44, + 0xD9, 0x85, 0xD8, 0xAD, 0x44, 0xD9, 0x85, 0xD8, + // Bytes 1fc0 - 1fff + 0xAE, 0x44, 0xD9, 0x85, 0xD9, 0x85, 0x44, 0xD9, + 0x85, 0xD9, 0x89, 0x44, 0xD9, 0x85, 0xD9, 0x8A, + 0x44, 0xD9, 0x86, 0xD8, 0xAC, 0x44, 0xD9, 0x86, + 0xD8, 0xAD, 0x44, 0xD9, 0x86, 0xD8, 0xAE, 0x44, + 0xD9, 0x86, 0xD8, 0xB1, 0x44, 0xD9, 0x86, 0xD8, + 0xB2, 0x44, 0xD9, 0x86, 0xD9, 0x85, 0x44, 0xD9, + 0x86, 0xD9, 0x86, 0x44, 0xD9, 0x86, 0xD9, 0x87, + 0x44, 0xD9, 0x86, 0xD9, 0x89, 0x44, 0xD9, 0x86, + // Bytes 2000 - 203f + 0xD9, 0x8A, 0x44, 0xD9, 0x87, 0xD8, 0xAC, 0x44, + 0xD9, 0x87, 0xD9, 0x85, 0x44, 0xD9, 0x87, 0xD9, + 0x89, 0x44, 0xD9, 0x87, 0xD9, 0x8A, 0x44, 0xD9, + 0x88, 0xD9, 0xB4, 0x44, 0xD9, 0x8A, 0xD8, 0xAC, + 0x44, 0xD9, 0x8A, 0xD8, 0xAD, 0x44, 0xD9, 0x8A, + 0xD8, 0xAE, 0x44, 0xD9, 0x8A, 0xD8, 0xB1, 0x44, + 0xD9, 0x8A, 0xD8, 0xB2, 0x44, 0xD9, 0x8A, 0xD9, + 0x85, 0x44, 0xD9, 0x8A, 0xD9, 0x86, 0x44, 0xD9, + // Bytes 2040 - 207f + 0x8A, 0xD9, 0x87, 0x44, 0xD9, 0x8A, 0xD9, 0x89, + 0x44, 0xD9, 0x8A, 0xD9, 0x8A, 0x44, 0xD9, 0x8A, + 0xD9, 0xB4, 0x44, 0xDB, 0x87, 0xD9, 0xB4, 0x45, + 0x28, 0xE1, 0x84, 0x80, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x82, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x83, + 0x29, 0x45, 0x28, 0xE1, 0x84, 0x85, 0x29, 0x45, + 0x28, 0xE1, 0x84, 0x86, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x87, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x89, + // Bytes 2080 - 20bf + 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x45, + 0x28, 0xE1, 0x84, 0x8C, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x8E, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8F, + 0x29, 0x45, 0x28, 0xE1, 0x84, 0x90, 0x29, 0x45, + 0x28, 0xE1, 0x84, 0x91, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x92, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x80, + 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x45, + 0x28, 0xE4, 0xB8, 0x89, 0x29, 0x45, 0x28, 0xE4, + // Bytes 20c0 - 20ff + 0xB9, 0x9D, 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x8C, + 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x45, + 0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x45, 0x28, 0xE4, + 0xBC, 0x81, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x91, + 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x45, + 0x28, 0xE5, 0x85, 0xAD, 0x29, 0x45, 0x28, 0xE5, + 0x8A, 0xB4, 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x81, + 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x45, + // Bytes 2100 - 213f + 0x28, 0xE5, 0x90, 0x8D, 0x29, 0x45, 0x28, 0xE5, + 0x91, 0xBC, 0x29, 0x45, 0x28, 0xE5, 0x9B, 0x9B, + 0x29, 0x45, 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x45, + 0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x45, 0x28, 0xE6, + 0x97, 0xA5, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x88, + 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x89, 0x29, 0x45, + 0x28, 0xE6, 0x9C, 0xA8, 0x29, 0x45, 0x28, 0xE6, + 0xA0, 0xAA, 0x29, 0x45, 0x28, 0xE6, 0xB0, 0xB4, + // Bytes 2140 - 217f + 0x29, 0x45, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x45, + 0x28, 0xE7, 0x89, 0xB9, 0x29, 0x45, 0x28, 0xE7, + 0x9B, 0xA3, 0x29, 0x45, 0x28, 0xE7, 0xA4, 0xBE, + 0x29, 0x45, 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x45, + 0x28, 0xE7, 0xA5, 0xAD, 0x29, 0x45, 0x28, 0xE8, + 0x87, 0xAA, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xB3, + 0x29, 0x45, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x45, + 0x28, 0xE8, 0xB3, 0x87, 0x29, 0x45, 0x28, 0xE9, + // Bytes 2180 - 21bf + 0x87, 0x91, 0x29, 0x45, 0x30, 0xE2, 0x81, 0x84, + 0x33, 0x45, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x45, + 0x31, 0x30, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x30, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x31, 0xE6, 0x97, + 0xA5, 0x45, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x45, + 0x31, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x32, + 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x32, 0xE6, 0x9C, + 0x88, 0x45, 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x45, + // Bytes 21c0 - 21ff + 0x31, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x33, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x34, 0xE6, 0x97, + 0xA5, 0x45, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x45, + 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x35, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x36, 0xE6, 0x97, + 0xA5, 0x45, 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x45, + 0x31, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x37, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x38, 0xE6, 0x97, + // Bytes 2200 - 223f + 0xA5, 0x45, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x45, + 0x31, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x39, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0xE2, 0x81, 0x84, + 0x32, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x45, + 0x31, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x31, 0xE2, + 0x81, 0x84, 0x35, 0x45, 0x31, 0xE2, 0x81, 0x84, + 0x36, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x37, 0x45, + 0x31, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x31, 0xE2, + // Bytes 2240 - 227f + 0x81, 0x84, 0x39, 0x45, 0x32, 0x30, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x45, + 0x32, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x31, + 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x32, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x45, + 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x33, + 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x34, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x45, + // Bytes 2280 - 22bf + 0x32, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x36, + 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x37, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x38, 0xE6, 0x97, 0xA5, 0x45, + 0x32, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0xE2, + 0x81, 0x84, 0x33, 0x45, 0x32, 0xE2, 0x81, 0x84, + 0x35, 0x45, 0x33, 0x30, 0xE6, 0x97, 0xA5, 0x45, + 0x33, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0xE2, + 0x81, 0x84, 0x34, 0x45, 0x33, 0xE2, 0x81, 0x84, + // Bytes 22c0 - 22ff + 0x35, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x38, 0x45, + 0x34, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x35, 0xE2, + 0x81, 0x84, 0x36, 0x45, 0x35, 0xE2, 0x81, 0x84, + 0x38, 0x45, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x45, + 0x41, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x56, 0xE2, + 0x88, 0x95, 0x6D, 0x45, 0x6D, 0xE2, 0x88, 0x95, + 0x73, 0x46, 0x31, 0xE2, 0x81, 0x84, 0x31, 0x30, + 0x46, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x46, + // Bytes 2300 - 233f + 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x46, 0xD8, + 0xA8, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xA8, + 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0x46, + 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, + // Bytes 2340 - 237f + 0xAA, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD9, + 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD9, 0x85, + 0xD8, 0xAD, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, + 0xAE, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, + 0xAC, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, + // Bytes 2380 - 23bf + 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAC, 0xD9, + 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, + 0x8A, 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD8, + 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xB3, + 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD8, + // Bytes 23c0 - 23ff + 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAD, + 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xB4, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD9, + 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xB4, 0xD9, 0x85, + // Bytes 2400 - 243f + 0xD9, 0x85, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, + 0xAD, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x46, + 0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD8, + 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB6, + 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xB6, 0xD8, + 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB6, 0xD8, 0xAE, + 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, + // Bytes 2440 - 247f + 0xAD, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8, + 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB9, + 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xB9, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xBA, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2480 - 24bf + 0x46, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD9, 0x81, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, + 0x82, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD9, 0x82, + 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x82, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x82, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, + 0x85, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0x46, + // Bytes 24c0 - 24ff + 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x84, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAD, + 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9, + // Bytes 2500 - 253f + 0x85, 0xD8, 0xAC, 0xD8, 0xAE, 0x46, 0xD9, 0x85, + 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAD, + 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + // Bytes 2540 - 257f + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x86, 0xD8, 0xAC, + 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD9, + // Bytes 2580 - 25bf + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x87, 0xD9, 0x85, + 0xD8, 0xAC, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD9, + 0x85, 0x46, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xA7, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD8, 0xAC, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + // Bytes 25c0 - 25ff + 0xD8, 0xAD, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xAE, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB1, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD9, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD9, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x89, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x95, 0x46, 0xE0, 0xB9, 0x8D, + 0xE0, 0xB8, 0xB2, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, + 0xBA, 0x99, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, + 0xA1, 0x46, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, + // Bytes 2640 - 267f + 0x46, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0x46, + 0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, + 0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, + 0x91, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x96, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x9B, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x90, 0xE0, 0xBE, + 0xB5, 0x46, 0xE0, 0xBE, 0x92, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBE, 0x9C, 0xE0, 0xBE, 0xB7, 0x46, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xA1, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, + 0xBE, 0xA6, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0xAB, 0xE0, 0xBE, 0xB7, 0x46, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x46, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x46, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0x46, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, + 0x46, 0xE3, 0x81, 0xBB, 0xE3, 0x81, 0x8B, 0x46, + 0xE3, 0x82, 0x88, 0xE3, 0x82, 0x8A, 0x46, 0xE3, + // Bytes 26c0 - 26ff + 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0x46, 0xE3, 0x82, + 0xB3, 0xE3, 0x82, 0xB3, 0x46, 0xE3, 0x82, 0xB3, + 0xE3, 0x83, 0x88, 0x46, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x8A, 0xE3, 0x83, + 0x8E, 0x46, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3, + 0x46, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0x46, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0x46, 0xE3, + 0x83, 0xAC, 0xE3, 0x83, 0xA0, 0x46, 0xE5, 0xA4, + // Bytes 2700 - 273f + 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, 0xB9, 0xB3, + 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, 0x8E, 0xE6, + 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, 0xE5, 0x92, + 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, + 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, 0xE3, 0x80, + 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x82, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x83, + // Bytes 2740 - 277f + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, + // Bytes 2780 - 27bf + 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8E, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, + 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, 0xD8, 0xA8, + // Bytes 27c0 - 27ff + 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, + 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, 0xD8, 0xB3, + 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, 0xB1, 0xDB, + 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, 0xD8, 0xB5, + 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0x48, 0xD8, + 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x48, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAF, + 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, + // Bytes 2800 - 283f + 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x49, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, + 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xB8, 0x89, + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE4, + 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + // Bytes 2840 - 287f + 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x89, 0x93, + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, + 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x9B, 0x97, + // Bytes 2880 - 28bf + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, 0xA2, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, + 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, 0x83, + 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3, + 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xAA, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, 0xE3, 0x82, + 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0x49, + // Bytes 28c0 - 28ff + 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82, + 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, 0xBB, 0xE3, + 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, + 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x49, + 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82, + 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x8E, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, 0x49, + 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, 0x95, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0x49, + 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83, + // Bytes 2940 - 297f + 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9B, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, + 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0x49, + 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, 0xA4, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, + // Bytes 2980 - 29bf + 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0x49, + 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x4C, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82, 0xA2, 0xE3, + 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, + 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3, + // Bytes 29c0 - 29ff + 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, + 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD, 0xE3, + 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83, + 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAF, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C, 0xE3, 0x82, + 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, + 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF, 0xE3, 0x82, + // Bytes 2a40 - 2a7f + 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x4C, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA3, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4C, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + // Bytes 2a80 - 2abf + 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, + 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0x4C, + 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x83, 0xA1, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, + 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83, + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, + 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, + 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, + 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE, 0x29, 0x4F, + // Bytes 2b00 - 2b3f + 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8, 0xAC, 0xD9, + 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x87, 0x4F, + 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4F, + 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0x4F, + 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4F, + // Bytes 2b40 - 2b7f + 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x4F, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAB, 0x4F, + 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82, + 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x4F, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0x4F, + 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x4F, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x51, + 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, + 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1, 0x86, 0xAB, + // Bytes 2bc0 - 2bff + 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x52, + 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x82, + // Bytes 2c00 - 2c3f + 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, + 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3, + 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD, + 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, + 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xB9, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0xAC, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, + 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0x61, + // Bytes 2c80 - 2cbf + 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x20, 0xD8, + 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x20, + 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, + 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, + 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, + 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA7, 0x97, + 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE, + 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x96, + // Bytes 2cc0 - 2cff + 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97, + 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97, + 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE, + 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97, + 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE, + 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95, + 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, + 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96, + // Bytes 2d00 - 2d3f + 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE, + 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB5, 0x97, + 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE, + 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F, + 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, + 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5, + // Bytes 2d40 - 2d7f + 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5, + // Bytes 2d80 - 2dbf + 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1, 0xF0, 0x91, + 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB2, + 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, + 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE, 0x01, 0x08, + 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8D, 0x97, + 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, + 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, + 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08, 0xF0, 0x91, + // Bytes 2dc0 - 2dff + 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD, 0x01, 0x08, + 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91, 0x96, 0xAF, + 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9, 0xF0, 0x91, + 0x96, 0xAF, 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, + 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, + 0x12, 0x44, 0x44, 0x5A, 0xCC, 0x8C, 0xC9, 0x44, + 0x44, 0x7A, 0xCC, 0x8C, 0xC9, 0x44, 0x64, 0x7A, + // Bytes 2e00 - 2e3f + 0xCC, 0x8C, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x93, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x94, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x46, 0xE1, 0x84, 0x80, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1, + // Bytes 2e40 - 2e7f + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, + 0x85, 0xAE, 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1, + // Bytes 2e80 - 2ebf + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1, + 0x85, 0xA1, 0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3, + 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, 0xE1, + 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, + 0xE1, 0x85, 0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0x0D, 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x4C, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE1, + 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F, + 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, + 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x4F, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, + // Bytes 2f00 - 2f3f + 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, + 0x0D, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, + 0x99, 0x0D, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x82, 0xA8, 0xE3, + 0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x52, + // Bytes 2f40 - 2f7f + 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x86, 0xE0, 0xB3, 0x86, 0xE0, + 0xB3, 0x82, 0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05, + 0x03, 0x3D, 0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC, + 0xB8, 0x05, 0x03, 0x41, 0xCC, 0x80, 0xC9, 0x03, + 0x41, 0xCC, 0x81, 0xC9, 0x03, 0x41, 0xCC, 0x83, + // Bytes 2f80 - 2fbf + 0xC9, 0x03, 0x41, 0xCC, 0x84, 0xC9, 0x03, 0x41, + 0xCC, 0x89, 0xC9, 0x03, 0x41, 0xCC, 0x8C, 0xC9, + 0x03, 0x41, 0xCC, 0x8F, 0xC9, 0x03, 0x41, 0xCC, + 0x91, 0xC9, 0x03, 0x41, 0xCC, 0xA5, 0xB5, 0x03, + 0x41, 0xCC, 0xA8, 0xA5, 0x03, 0x42, 0xCC, 0x87, + 0xC9, 0x03, 0x42, 0xCC, 0xA3, 0xB5, 0x03, 0x42, + 0xCC, 0xB1, 0xB5, 0x03, 0x43, 0xCC, 0x81, 0xC9, + 0x03, 0x43, 0xCC, 0x82, 0xC9, 0x03, 0x43, 0xCC, + // Bytes 2fc0 - 2fff + 0x87, 0xC9, 0x03, 0x43, 0xCC, 0x8C, 0xC9, 0x03, + 0x44, 0xCC, 0x87, 0xC9, 0x03, 0x44, 0xCC, 0x8C, + 0xC9, 0x03, 0x44, 0xCC, 0xA3, 0xB5, 0x03, 0x44, + 0xCC, 0xA7, 0xA5, 0x03, 0x44, 0xCC, 0xAD, 0xB5, + 0x03, 0x44, 0xCC, 0xB1, 0xB5, 0x03, 0x45, 0xCC, + 0x80, 0xC9, 0x03, 0x45, 0xCC, 0x81, 0xC9, 0x03, + 0x45, 0xCC, 0x83, 0xC9, 0x03, 0x45, 0xCC, 0x86, + 0xC9, 0x03, 0x45, 0xCC, 0x87, 0xC9, 0x03, 0x45, + // Bytes 3000 - 303f + 0xCC, 0x88, 0xC9, 0x03, 0x45, 0xCC, 0x89, 0xC9, + 0x03, 0x45, 0xCC, 0x8C, 0xC9, 0x03, 0x45, 0xCC, + 0x8F, 0xC9, 0x03, 0x45, 0xCC, 0x91, 0xC9, 0x03, + 0x45, 0xCC, 0xA8, 0xA5, 0x03, 0x45, 0xCC, 0xAD, + 0xB5, 0x03, 0x45, 0xCC, 0xB0, 0xB5, 0x03, 0x46, + 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x81, 0xC9, + 0x03, 0x47, 0xCC, 0x82, 0xC9, 0x03, 0x47, 0xCC, + 0x84, 0xC9, 0x03, 0x47, 0xCC, 0x86, 0xC9, 0x03, + // Bytes 3040 - 307f + 0x47, 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x8C, + 0xC9, 0x03, 0x47, 0xCC, 0xA7, 0xA5, 0x03, 0x48, + 0xCC, 0x82, 0xC9, 0x03, 0x48, 0xCC, 0x87, 0xC9, + 0x03, 0x48, 0xCC, 0x88, 0xC9, 0x03, 0x48, 0xCC, + 0x8C, 0xC9, 0x03, 0x48, 0xCC, 0xA3, 0xB5, 0x03, + 0x48, 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0xAE, + 0xB5, 0x03, 0x49, 0xCC, 0x80, 0xC9, 0x03, 0x49, + 0xCC, 0x81, 0xC9, 0x03, 0x49, 0xCC, 0x82, 0xC9, + // Bytes 3080 - 30bf + 0x03, 0x49, 0xCC, 0x83, 0xC9, 0x03, 0x49, 0xCC, + 0x84, 0xC9, 0x03, 0x49, 0xCC, 0x86, 0xC9, 0x03, + 0x49, 0xCC, 0x87, 0xC9, 0x03, 0x49, 0xCC, 0x89, + 0xC9, 0x03, 0x49, 0xCC, 0x8C, 0xC9, 0x03, 0x49, + 0xCC, 0x8F, 0xC9, 0x03, 0x49, 0xCC, 0x91, 0xC9, + 0x03, 0x49, 0xCC, 0xA3, 0xB5, 0x03, 0x49, 0xCC, + 0xA8, 0xA5, 0x03, 0x49, 0xCC, 0xB0, 0xB5, 0x03, + 0x4A, 0xCC, 0x82, 0xC9, 0x03, 0x4B, 0xCC, 0x81, + // Bytes 30c0 - 30ff + 0xC9, 0x03, 0x4B, 0xCC, 0x8C, 0xC9, 0x03, 0x4B, + 0xCC, 0xA3, 0xB5, 0x03, 0x4B, 0xCC, 0xA7, 0xA5, + 0x03, 0x4B, 0xCC, 0xB1, 0xB5, 0x03, 0x4C, 0xCC, + 0x81, 0xC9, 0x03, 0x4C, 0xCC, 0x8C, 0xC9, 0x03, + 0x4C, 0xCC, 0xA7, 0xA5, 0x03, 0x4C, 0xCC, 0xAD, + 0xB5, 0x03, 0x4C, 0xCC, 0xB1, 0xB5, 0x03, 0x4D, + 0xCC, 0x81, 0xC9, 0x03, 0x4D, 0xCC, 0x87, 0xC9, + 0x03, 0x4D, 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, + // Bytes 3100 - 313f + 0x80, 0xC9, 0x03, 0x4E, 0xCC, 0x81, 0xC9, 0x03, + 0x4E, 0xCC, 0x83, 0xC9, 0x03, 0x4E, 0xCC, 0x87, + 0xC9, 0x03, 0x4E, 0xCC, 0x8C, 0xC9, 0x03, 0x4E, + 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0xA7, 0xA5, + 0x03, 0x4E, 0xCC, 0xAD, 0xB5, 0x03, 0x4E, 0xCC, + 0xB1, 0xB5, 0x03, 0x4F, 0xCC, 0x80, 0xC9, 0x03, + 0x4F, 0xCC, 0x81, 0xC9, 0x03, 0x4F, 0xCC, 0x86, + 0xC9, 0x03, 0x4F, 0xCC, 0x89, 0xC9, 0x03, 0x4F, + // Bytes 3140 - 317f + 0xCC, 0x8B, 0xC9, 0x03, 0x4F, 0xCC, 0x8C, 0xC9, + 0x03, 0x4F, 0xCC, 0x8F, 0xC9, 0x03, 0x4F, 0xCC, + 0x91, 0xC9, 0x03, 0x50, 0xCC, 0x81, 0xC9, 0x03, + 0x50, 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x81, + 0xC9, 0x03, 0x52, 0xCC, 0x87, 0xC9, 0x03, 0x52, + 0xCC, 0x8C, 0xC9, 0x03, 0x52, 0xCC, 0x8F, 0xC9, + 0x03, 0x52, 0xCC, 0x91, 0xC9, 0x03, 0x52, 0xCC, + 0xA7, 0xA5, 0x03, 0x52, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3180 - 31bf + 0x53, 0xCC, 0x82, 0xC9, 0x03, 0x53, 0xCC, 0x87, + 0xC9, 0x03, 0x53, 0xCC, 0xA6, 0xB5, 0x03, 0x53, + 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0x87, 0xC9, + 0x03, 0x54, 0xCC, 0x8C, 0xC9, 0x03, 0x54, 0xCC, + 0xA3, 0xB5, 0x03, 0x54, 0xCC, 0xA6, 0xB5, 0x03, + 0x54, 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0xAD, + 0xB5, 0x03, 0x54, 0xCC, 0xB1, 0xB5, 0x03, 0x55, + 0xCC, 0x80, 0xC9, 0x03, 0x55, 0xCC, 0x81, 0xC9, + // Bytes 31c0 - 31ff + 0x03, 0x55, 0xCC, 0x82, 0xC9, 0x03, 0x55, 0xCC, + 0x86, 0xC9, 0x03, 0x55, 0xCC, 0x89, 0xC9, 0x03, + 0x55, 0xCC, 0x8A, 0xC9, 0x03, 0x55, 0xCC, 0x8B, + 0xC9, 0x03, 0x55, 0xCC, 0x8C, 0xC9, 0x03, 0x55, + 0xCC, 0x8F, 0xC9, 0x03, 0x55, 0xCC, 0x91, 0xC9, + 0x03, 0x55, 0xCC, 0xA3, 0xB5, 0x03, 0x55, 0xCC, + 0xA4, 0xB5, 0x03, 0x55, 0xCC, 0xA8, 0xA5, 0x03, + 0x55, 0xCC, 0xAD, 0xB5, 0x03, 0x55, 0xCC, 0xB0, + // Bytes 3200 - 323f + 0xB5, 0x03, 0x56, 0xCC, 0x83, 0xC9, 0x03, 0x56, + 0xCC, 0xA3, 0xB5, 0x03, 0x57, 0xCC, 0x80, 0xC9, + 0x03, 0x57, 0xCC, 0x81, 0xC9, 0x03, 0x57, 0xCC, + 0x82, 0xC9, 0x03, 0x57, 0xCC, 0x87, 0xC9, 0x03, + 0x57, 0xCC, 0x88, 0xC9, 0x03, 0x57, 0xCC, 0xA3, + 0xB5, 0x03, 0x58, 0xCC, 0x87, 0xC9, 0x03, 0x58, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x80, 0xC9, + 0x03, 0x59, 0xCC, 0x81, 0xC9, 0x03, 0x59, 0xCC, + // Bytes 3240 - 327f + 0x82, 0xC9, 0x03, 0x59, 0xCC, 0x83, 0xC9, 0x03, + 0x59, 0xCC, 0x84, 0xC9, 0x03, 0x59, 0xCC, 0x87, + 0xC9, 0x03, 0x59, 0xCC, 0x88, 0xC9, 0x03, 0x59, + 0xCC, 0x89, 0xC9, 0x03, 0x59, 0xCC, 0xA3, 0xB5, + 0x03, 0x5A, 0xCC, 0x81, 0xC9, 0x03, 0x5A, 0xCC, + 0x82, 0xC9, 0x03, 0x5A, 0xCC, 0x87, 0xC9, 0x03, + 0x5A, 0xCC, 0x8C, 0xC9, 0x03, 0x5A, 0xCC, 0xA3, + 0xB5, 0x03, 0x5A, 0xCC, 0xB1, 0xB5, 0x03, 0x61, + // Bytes 3280 - 32bf + 0xCC, 0x80, 0xC9, 0x03, 0x61, 0xCC, 0x81, 0xC9, + 0x03, 0x61, 0xCC, 0x83, 0xC9, 0x03, 0x61, 0xCC, + 0x84, 0xC9, 0x03, 0x61, 0xCC, 0x89, 0xC9, 0x03, + 0x61, 0xCC, 0x8C, 0xC9, 0x03, 0x61, 0xCC, 0x8F, + 0xC9, 0x03, 0x61, 0xCC, 0x91, 0xC9, 0x03, 0x61, + 0xCC, 0xA5, 0xB5, 0x03, 0x61, 0xCC, 0xA8, 0xA5, + 0x03, 0x62, 0xCC, 0x87, 0xC9, 0x03, 0x62, 0xCC, + 0xA3, 0xB5, 0x03, 0x62, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 32c0 - 32ff + 0x63, 0xCC, 0x81, 0xC9, 0x03, 0x63, 0xCC, 0x82, + 0xC9, 0x03, 0x63, 0xCC, 0x87, 0xC9, 0x03, 0x63, + 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0x87, 0xC9, + 0x03, 0x64, 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, + 0xA3, 0xB5, 0x03, 0x64, 0xCC, 0xA7, 0xA5, 0x03, + 0x64, 0xCC, 0xAD, 0xB5, 0x03, 0x64, 0xCC, 0xB1, + 0xB5, 0x03, 0x65, 0xCC, 0x80, 0xC9, 0x03, 0x65, + 0xCC, 0x81, 0xC9, 0x03, 0x65, 0xCC, 0x83, 0xC9, + // Bytes 3300 - 333f + 0x03, 0x65, 0xCC, 0x86, 0xC9, 0x03, 0x65, 0xCC, + 0x87, 0xC9, 0x03, 0x65, 0xCC, 0x88, 0xC9, 0x03, + 0x65, 0xCC, 0x89, 0xC9, 0x03, 0x65, 0xCC, 0x8C, + 0xC9, 0x03, 0x65, 0xCC, 0x8F, 0xC9, 0x03, 0x65, + 0xCC, 0x91, 0xC9, 0x03, 0x65, 0xCC, 0xA8, 0xA5, + 0x03, 0x65, 0xCC, 0xAD, 0xB5, 0x03, 0x65, 0xCC, + 0xB0, 0xB5, 0x03, 0x66, 0xCC, 0x87, 0xC9, 0x03, + 0x67, 0xCC, 0x81, 0xC9, 0x03, 0x67, 0xCC, 0x82, + // Bytes 3340 - 337f + 0xC9, 0x03, 0x67, 0xCC, 0x84, 0xC9, 0x03, 0x67, + 0xCC, 0x86, 0xC9, 0x03, 0x67, 0xCC, 0x87, 0xC9, + 0x03, 0x67, 0xCC, 0x8C, 0xC9, 0x03, 0x67, 0xCC, + 0xA7, 0xA5, 0x03, 0x68, 0xCC, 0x82, 0xC9, 0x03, + 0x68, 0xCC, 0x87, 0xC9, 0x03, 0x68, 0xCC, 0x88, + 0xC9, 0x03, 0x68, 0xCC, 0x8C, 0xC9, 0x03, 0x68, + 0xCC, 0xA3, 0xB5, 0x03, 0x68, 0xCC, 0xA7, 0xA5, + 0x03, 0x68, 0xCC, 0xAE, 0xB5, 0x03, 0x68, 0xCC, + // Bytes 3380 - 33bf + 0xB1, 0xB5, 0x03, 0x69, 0xCC, 0x80, 0xC9, 0x03, + 0x69, 0xCC, 0x81, 0xC9, 0x03, 0x69, 0xCC, 0x82, + 0xC9, 0x03, 0x69, 0xCC, 0x83, 0xC9, 0x03, 0x69, + 0xCC, 0x84, 0xC9, 0x03, 0x69, 0xCC, 0x86, 0xC9, + 0x03, 0x69, 0xCC, 0x89, 0xC9, 0x03, 0x69, 0xCC, + 0x8C, 0xC9, 0x03, 0x69, 0xCC, 0x8F, 0xC9, 0x03, + 0x69, 0xCC, 0x91, 0xC9, 0x03, 0x69, 0xCC, 0xA3, + 0xB5, 0x03, 0x69, 0xCC, 0xA8, 0xA5, 0x03, 0x69, + // Bytes 33c0 - 33ff + 0xCC, 0xB0, 0xB5, 0x03, 0x6A, 0xCC, 0x82, 0xC9, + 0x03, 0x6A, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, + 0x81, 0xC9, 0x03, 0x6B, 0xCC, 0x8C, 0xC9, 0x03, + 0x6B, 0xCC, 0xA3, 0xB5, 0x03, 0x6B, 0xCC, 0xA7, + 0xA5, 0x03, 0x6B, 0xCC, 0xB1, 0xB5, 0x03, 0x6C, + 0xCC, 0x81, 0xC9, 0x03, 0x6C, 0xCC, 0x8C, 0xC9, + 0x03, 0x6C, 0xCC, 0xA7, 0xA5, 0x03, 0x6C, 0xCC, + 0xAD, 0xB5, 0x03, 0x6C, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3400 - 343f + 0x6D, 0xCC, 0x81, 0xC9, 0x03, 0x6D, 0xCC, 0x87, + 0xC9, 0x03, 0x6D, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, + 0xCC, 0x80, 0xC9, 0x03, 0x6E, 0xCC, 0x81, 0xC9, + 0x03, 0x6E, 0xCC, 0x83, 0xC9, 0x03, 0x6E, 0xCC, + 0x87, 0xC9, 0x03, 0x6E, 0xCC, 0x8C, 0xC9, 0x03, + 0x6E, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0xA7, + 0xA5, 0x03, 0x6E, 0xCC, 0xAD, 0xB5, 0x03, 0x6E, + 0xCC, 0xB1, 0xB5, 0x03, 0x6F, 0xCC, 0x80, 0xC9, + // Bytes 3440 - 347f + 0x03, 0x6F, 0xCC, 0x81, 0xC9, 0x03, 0x6F, 0xCC, + 0x86, 0xC9, 0x03, 0x6F, 0xCC, 0x89, 0xC9, 0x03, + 0x6F, 0xCC, 0x8B, 0xC9, 0x03, 0x6F, 0xCC, 0x8C, + 0xC9, 0x03, 0x6F, 0xCC, 0x8F, 0xC9, 0x03, 0x6F, + 0xCC, 0x91, 0xC9, 0x03, 0x70, 0xCC, 0x81, 0xC9, + 0x03, 0x70, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, + 0x81, 0xC9, 0x03, 0x72, 0xCC, 0x87, 0xC9, 0x03, + 0x72, 0xCC, 0x8C, 0xC9, 0x03, 0x72, 0xCC, 0x8F, + // Bytes 3480 - 34bf + 0xC9, 0x03, 0x72, 0xCC, 0x91, 0xC9, 0x03, 0x72, + 0xCC, 0xA7, 0xA5, 0x03, 0x72, 0xCC, 0xB1, 0xB5, + 0x03, 0x73, 0xCC, 0x82, 0xC9, 0x03, 0x73, 0xCC, + 0x87, 0xC9, 0x03, 0x73, 0xCC, 0xA6, 0xB5, 0x03, + 0x73, 0xCC, 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0x87, + 0xC9, 0x03, 0x74, 0xCC, 0x88, 0xC9, 0x03, 0x74, + 0xCC, 0x8C, 0xC9, 0x03, 0x74, 0xCC, 0xA3, 0xB5, + 0x03, 0x74, 0xCC, 0xA6, 0xB5, 0x03, 0x74, 0xCC, + // Bytes 34c0 - 34ff + 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0xAD, 0xB5, 0x03, + 0x74, 0xCC, 0xB1, 0xB5, 0x03, 0x75, 0xCC, 0x80, + 0xC9, 0x03, 0x75, 0xCC, 0x81, 0xC9, 0x03, 0x75, + 0xCC, 0x82, 0xC9, 0x03, 0x75, 0xCC, 0x86, 0xC9, + 0x03, 0x75, 0xCC, 0x89, 0xC9, 0x03, 0x75, 0xCC, + 0x8A, 0xC9, 0x03, 0x75, 0xCC, 0x8B, 0xC9, 0x03, + 0x75, 0xCC, 0x8C, 0xC9, 0x03, 0x75, 0xCC, 0x8F, + 0xC9, 0x03, 0x75, 0xCC, 0x91, 0xC9, 0x03, 0x75, + // Bytes 3500 - 353f + 0xCC, 0xA3, 0xB5, 0x03, 0x75, 0xCC, 0xA4, 0xB5, + 0x03, 0x75, 0xCC, 0xA8, 0xA5, 0x03, 0x75, 0xCC, + 0xAD, 0xB5, 0x03, 0x75, 0xCC, 0xB0, 0xB5, 0x03, + 0x76, 0xCC, 0x83, 0xC9, 0x03, 0x76, 0xCC, 0xA3, + 0xB5, 0x03, 0x77, 0xCC, 0x80, 0xC9, 0x03, 0x77, + 0xCC, 0x81, 0xC9, 0x03, 0x77, 0xCC, 0x82, 0xC9, + 0x03, 0x77, 0xCC, 0x87, 0xC9, 0x03, 0x77, 0xCC, + 0x88, 0xC9, 0x03, 0x77, 0xCC, 0x8A, 0xC9, 0x03, + // Bytes 3540 - 357f + 0x77, 0xCC, 0xA3, 0xB5, 0x03, 0x78, 0xCC, 0x87, + 0xC9, 0x03, 0x78, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x80, 0xC9, 0x03, 0x79, 0xCC, 0x81, 0xC9, + 0x03, 0x79, 0xCC, 0x82, 0xC9, 0x03, 0x79, 0xCC, + 0x83, 0xC9, 0x03, 0x79, 0xCC, 0x84, 0xC9, 0x03, + 0x79, 0xCC, 0x87, 0xC9, 0x03, 0x79, 0xCC, 0x88, + 0xC9, 0x03, 0x79, 0xCC, 0x89, 0xC9, 0x03, 0x79, + 0xCC, 0x8A, 0xC9, 0x03, 0x79, 0xCC, 0xA3, 0xB5, + // Bytes 3580 - 35bf + 0x03, 0x7A, 0xCC, 0x81, 0xC9, 0x03, 0x7A, 0xCC, + 0x82, 0xC9, 0x03, 0x7A, 0xCC, 0x87, 0xC9, 0x03, + 0x7A, 0xCC, 0x8C, 0xC9, 0x03, 0x7A, 0xCC, 0xA3, + 0xB5, 0x03, 0x7A, 0xCC, 0xB1, 0xB5, 0x04, 0xC2, + 0xA8, 0xCC, 0x80, 0xCA, 0x04, 0xC2, 0xA8, 0xCC, + 0x81, 0xCA, 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCA, + 0x04, 0xC3, 0x86, 0xCC, 0x81, 0xC9, 0x04, 0xC3, + 0x86, 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0x98, 0xCC, + // Bytes 35c0 - 35ff + 0x81, 0xC9, 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xC9, + 0x04, 0xC3, 0xA6, 0xCC, 0x84, 0xC9, 0x04, 0xC3, + 0xB8, 0xCC, 0x81, 0xC9, 0x04, 0xC5, 0xBF, 0xCC, + 0x87, 0xC9, 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, + 0x04, 0xCA, 0x92, 0xCC, 0x8C, 0xC9, 0x04, 0xCE, + 0x91, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x91, 0xCC, + 0x81, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xC9, + 0x04, 0xCE, 0x91, 0xCC, 0x86, 0xC9, 0x04, 0xCE, + // Bytes 3600 - 363f + 0x91, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0x95, 0xCC, + 0x80, 0xC9, 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xC9, + 0x04, 0xCE, 0x97, 0xCC, 0x80, 0xC9, 0x04, 0xCE, + 0x97, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, 0xCD, + 0x85, 0xD9, 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xC9, + 0x04, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x04, 0xCE, + 0x99, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x99, 0xCC, + 0x86, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xC9, + // Bytes 3640 - 367f + 0x04, 0xCE, 0x9F, 0xCC, 0x80, 0xC9, 0x04, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA1, 0xCC, + 0x94, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xC9, + 0x04, 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, + 0xA5, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, + 0x86, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x04, 0xCE, 0xA9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, + 0xA9, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA9, 0xCD, + // Bytes 3680 - 36bf + 0x85, 0xD9, 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xC9, + 0x04, 0xCE, 0xB1, 0xCC, 0x86, 0xC9, 0x04, 0xCE, + 0xB1, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB5, 0xCC, + 0x80, 0xC9, 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xC9, + 0x04, 0xCE, 0xB7, 0xCD, 0x85, 0xD9, 0x04, 0xCE, + 0xB9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, + 0x81, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xC9, + 0x04, 0xCE, 0xB9, 0xCC, 0x86, 0xC9, 0x04, 0xCE, + // Bytes 36c0 - 36ff + 0xB9, 0xCD, 0x82, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, + 0x80, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, + 0x04, 0xCF, 0x81, 0xCC, 0x93, 0xC9, 0x04, 0xCF, + 0x81, 0xCC, 0x94, 0xC9, 0x04, 0xCF, 0x85, 0xCC, + 0x80, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xC9, + 0x04, 0xCF, 0x85, 0xCC, 0x84, 0xC9, 0x04, 0xCF, + 0x85, 0xCC, 0x86, 0xC9, 0x04, 0xCF, 0x85, 0xCD, + 0x82, 0xC9, 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xD9, + // Bytes 3700 - 373f + 0x04, 0xCF, 0x92, 0xCC, 0x81, 0xC9, 0x04, 0xCF, + 0x92, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x86, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xC9, + 0x04, 0xD0, 0x90, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0x93, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x95, 0xCC, + 0x80, 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xC9, + 0x04, 0xD0, 0x95, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0x96, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x96, 0xCC, + // Bytes 3740 - 377f + 0x88, 0xC9, 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xC9, + 0x04, 0xD0, 0x98, 0xCC, 0x80, 0xC9, 0x04, 0xD0, + 0x98, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0x98, 0xCC, + 0x86, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xC9, + 0x04, 0xD0, 0x9A, 0xCC, 0x81, 0xC9, 0x04, 0xD0, + 0x9E, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, + 0x84, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xC9, + 0x04, 0xD0, 0xA3, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + // Bytes 3780 - 37bf + 0xA3, 0xCC, 0x8B, 0xC9, 0x04, 0xD0, 0xA7, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xC9, + 0x04, 0xD0, 0xAD, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0xB0, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xC9, + 0x04, 0xD0, 0xB5, 0xCC, 0x80, 0xC9, 0x04, 0xD0, + 0xB5, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xC9, + // Bytes 37c0 - 37ff + 0x04, 0xD0, 0xB6, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0xB7, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, + 0x80, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xC9, + 0x04, 0xD0, 0xB8, 0xCC, 0x86, 0xC9, 0x04, 0xD0, + 0xB8, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xBA, 0xCC, + 0x81, 0xC9, 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xC9, + 0x04, 0xD1, 0x83, 0xCC, 0x84, 0xC9, 0x04, 0xD1, + 0x83, 0xCC, 0x86, 0xC9, 0x04, 0xD1, 0x83, 0xCC, + // Bytes 3800 - 383f + 0x88, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xC9, + 0x04, 0xD1, 0x87, 0xCC, 0x88, 0xC9, 0x04, 0xD1, + 0x8B, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8D, 0xCC, + 0x88, 0xC9, 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xC9, + 0x04, 0xD1, 0xB4, 0xCC, 0x8F, 0xC9, 0x04, 0xD1, + 0xB5, 0xCC, 0x8F, 0xC9, 0x04, 0xD3, 0x98, 0xCC, + 0x88, 0xC9, 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xC9, + 0x04, 0xD3, 0xA8, 0xCC, 0x88, 0xC9, 0x04, 0xD3, + // Bytes 3840 - 387f + 0xA9, 0xCC, 0x88, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, + 0x93, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x04, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, 0x04, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x04, 0xD9, 0x8A, 0xD9, + 0x94, 0xC9, 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xC9, + 0x04, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x04, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x05, 0x41, 0xCC, 0x82, + 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, + // Bytes 3880 - 38bf + 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, + 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCA, + 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, + 0x41, 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x41, + 0xCC, 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, 0x87, + 0xCC, 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x88, 0xCC, + 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, + // Bytes 38c0 - 38ff + 0xCA, 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, + 0x43, 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x45, + 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x45, 0xCC, + 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, + 0xCC, 0x83, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x89, 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + // Bytes 3900 - 393f + 0x05, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x49, + 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x4C, 0xCC, + 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x82, + 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, + 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, + 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3940 - 397f + 0x4F, 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x4F, 0xCC, + 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x84, + 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x87, 0xCC, + 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + // Bytes 3980 - 39bf + 0xCC, 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0xA3, 0xB6, 0x05, 0x4F, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, + 0x84, 0xCA, 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCA, + 0x05, 0x53, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, + 0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x55, + 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, + // Bytes 39c0 - 39ff + 0x84, 0xCC, 0x88, 0xCA, 0x05, 0x55, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, + 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, + 0x55, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x55, + 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + // Bytes 3a00 - 3a3f + 0xCC, 0xA3, 0xB6, 0x05, 0x61, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x61, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x61, + 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x87, 0xCC, + // Bytes 3a40 - 3a7f + 0x84, 0xCA, 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, + 0xCA, 0x05, 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, + 0x05, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x61, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x63, + 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, + 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, 0x82, + 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, + 0x83, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, + // Bytes 3a80 - 3abf + 0xCA, 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x65, + 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x69, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x6C, 0xCC, 0xA3, + 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + // Bytes 3ac0 - 3aff + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x6F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x6F, 0xCC, 0x84, + 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, + 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, + 0xCA, 0x05, 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, + // Bytes 3b00 - 3b3f + 0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + 0xCC, 0xA3, 0xB6, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, + 0x82, 0xCA, 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, + 0xCA, 0x05, 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, + 0x73, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x73, + // Bytes 3b40 - 3b7f + 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x75, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x84, + 0xCC, 0x88, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, + 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, + 0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x75, + 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, + // Bytes 3b80 - 3bbf + 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x89, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0xA3, 0xB6, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, + 0xCA, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCA, + 0x05, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0xCA, 0x05, + 0xE1, 0xBF, 0xBE, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBF, 0xBE, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBF, + 0xBE, 0xCD, 0x82, 0xCA, 0x05, 0xE2, 0x86, 0x90, + // Bytes 3bc0 - 3bff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x87, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, + 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC, + // Bytes 3c00 - 3c3f + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x8D, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, + // Bytes 3c40 - 3c7f + 0x05, 0x05, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0xB7, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xBA, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05, + // Bytes 3c80 - 3cbf + 0x05, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x87, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0x91, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3cc0 - 3cff + 0xE2, 0x8A, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xB4, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5, + 0xCC, 0xB8, 0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x91, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x95, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94, + // Bytes 3d00 - 3d3f + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x97, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x97, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x99, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, + // Bytes 3d40 - 3d7f + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, + // Bytes 3d80 - 3dbf + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xA9, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xA9, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x80, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x81, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCD, 0x82, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB5, 0xCC, 0x93, + // Bytes 3dc0 - 3dff + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB7, 0xCC, 0x80, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x81, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCD, 0x82, + // Bytes 3e00 - 3e3f + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, + // Bytes 3e40 - 3e7f + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, + // Bytes 3e80 - 3ebf + 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, + 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x89, 0xCC, 0x80, + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x81, + // Bytes 3ec0 - 3eff + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCD, 0x82, + 0xCD, 0x85, 0xDA, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, + 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, + 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, + 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xB1, 0x86, 0xE0, + 0xB1, 0x96, 0x85, 0x06, 0xE0, 0xB7, 0x99, 0xE0, + // Bytes 3f00 - 3f3f + 0xB7, 0x8A, 0x11, 0x06, 0xE3, 0x81, 0x86, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8B, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8D, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8F, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x91, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x93, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x95, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x97, 0xE3, + // Bytes 3f40 - 3f7f + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x99, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9B, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9D, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9F, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA1, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA4, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA6, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA8, 0xE3, + // Bytes 3f80 - 3fbf + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3, + // Bytes 3fc0 - 3fff + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x82, 0x9D, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xA6, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAD, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB1, 0xE3, + // Bytes 4000 - 403f + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB3, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB5, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB7, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBB, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBD, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x81, 0xE3, + // Bytes 4040 - 407f + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x84, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x86, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3, + // Bytes 4080 - 40bf + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0xAF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB0, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB1, 0xE3, + // Bytes 40c0 - 40ff + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB2, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xBD, 0xE3, + 0x82, 0x99, 0x0D, 0x08, 0xCE, 0x91, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, + // Bytes 4100 - 413f + 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + // Bytes 4140 - 417f + 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, + 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, + // Bytes 4180 - 41bf + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 41c0 - 41ff + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, + 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, + // Bytes 4200 - 423f + 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, + 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, + 0xCD, 0x85, 0xDB, 0x08, 0xF0, 0x91, 0x82, 0x99, + // Bytes 4240 - 427f + 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, + 0x82, 0x9B, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, + 0xF0, 0x91, 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, + 0x09, 0x42, 0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC, + 0x81, 0xC9, 0x43, 0x20, 0xCC, 0x83, 0xC9, 0x43, + 0x20, 0xCC, 0x84, 0xC9, 0x43, 0x20, 0xCC, 0x85, + 0xC9, 0x43, 0x20, 0xCC, 0x86, 0xC9, 0x43, 0x20, + 0xCC, 0x87, 0xC9, 0x43, 0x20, 0xCC, 0x88, 0xC9, + // Bytes 4280 - 42bf + 0x43, 0x20, 0xCC, 0x8A, 0xC9, 0x43, 0x20, 0xCC, + 0x8B, 0xC9, 0x43, 0x20, 0xCC, 0x93, 0xC9, 0x43, + 0x20, 0xCC, 0x94, 0xC9, 0x43, 0x20, 0xCC, 0xA7, + 0xA5, 0x43, 0x20, 0xCC, 0xA8, 0xA5, 0x43, 0x20, + 0xCC, 0xB3, 0xB5, 0x43, 0x20, 0xCD, 0x82, 0xC9, + 0x43, 0x20, 0xCD, 0x85, 0xD9, 0x43, 0x20, 0xD9, + 0x8B, 0x59, 0x43, 0x20, 0xD9, 0x8C, 0x5D, 0x43, + 0x20, 0xD9, 0x8D, 0x61, 0x43, 0x20, 0xD9, 0x8E, + // Bytes 42c0 - 42ff + 0x65, 0x43, 0x20, 0xD9, 0x8F, 0x69, 0x43, 0x20, + 0xD9, 0x90, 0x6D, 0x43, 0x20, 0xD9, 0x91, 0x71, + 0x43, 0x20, 0xD9, 0x92, 0x75, 0x43, 0x41, 0xCC, + 0x8A, 0xC9, 0x43, 0x73, 0xCC, 0x87, 0xC9, 0x44, + 0x20, 0xE3, 0x82, 0x99, 0x0D, 0x44, 0x20, 0xE3, + 0x82, 0x9A, 0x0D, 0x44, 0xC2, 0xA8, 0xCC, 0x81, + 0xCA, 0x44, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x44, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x97, + // Bytes 4300 - 433f + 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x99, 0xCC, 0x81, + 0xC9, 0x44, 0xCE, 0x9F, 0xCC, 0x81, 0xC9, 0x44, + 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, + 0xCC, 0x88, 0xC9, 0x44, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x44, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x44, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB7, + 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB9, 0xCC, 0x81, + 0xC9, 0x44, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x44, + // Bytes 4340 - 437f + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x89, + 0xCC, 0x81, 0xC9, 0x44, 0xD7, 0x90, 0xD6, 0xB7, + 0x31, 0x44, 0xD7, 0x90, 0xD6, 0xB8, 0x35, 0x44, + 0xD7, 0x90, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBF, + 0x49, 0x44, 0xD7, 0x92, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x93, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x94, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x95, 0xD6, 0xB9, + // Bytes 4380 - 43bf + 0x39, 0x44, 0xD7, 0x95, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x96, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x98, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x99, 0xD6, 0xB4, + 0x25, 0x44, 0xD7, 0x99, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x9A, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBF, + 0x49, 0x44, 0xD7, 0x9C, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x9E, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA0, + // Bytes 43c0 - 43ff + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA1, 0xD6, 0xBC, + 0x41, 0x44, 0xD7, 0xA3, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0xA4, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, + 0xD6, 0xBF, 0x49, 0x44, 0xD7, 0xA6, 0xD6, 0xBC, + 0x41, 0x44, 0xD7, 0xA7, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0xA8, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD7, 0x81, + 0x4D, 0x44, 0xD7, 0xA9, 0xD7, 0x82, 0x51, 0x44, + // Bytes 4400 - 443f + 0xD7, 0xAA, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xB2, + 0xD6, 0xB7, 0x31, 0x44, 0xD8, 0xA7, 0xD9, 0x8B, + 0x59, 0x44, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x44, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x44, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x44, 0xD8, 0xB0, 0xD9, 0xB0, + 0x79, 0x44, 0xD8, 0xB1, 0xD9, 0xB0, 0x79, 0x44, + 0xD9, 0x80, 0xD9, 0x8B, 0x59, 0x44, 0xD9, 0x80, + 0xD9, 0x8E, 0x65, 0x44, 0xD9, 0x80, 0xD9, 0x8F, + // Bytes 4440 - 447f + 0x69, 0x44, 0xD9, 0x80, 0xD9, 0x90, 0x6D, 0x44, + 0xD9, 0x80, 0xD9, 0x91, 0x71, 0x44, 0xD9, 0x80, + 0xD9, 0x92, 0x75, 0x44, 0xD9, 0x87, 0xD9, 0xB0, + 0x79, 0x44, 0xD9, 0x88, 0xD9, 0x94, 0xC9, 0x44, + 0xD9, 0x89, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x8A, + 0xD9, 0x94, 0xC9, 0x44, 0xDB, 0x92, 0xD9, 0x94, + 0xC9, 0x44, 0xDB, 0x95, 0xD9, 0x94, 0xC9, 0x45, + 0x20, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x45, 0x20, + // Bytes 4480 - 44bf + 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, + 0x88, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xD9, 0x8C, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, + // Bytes 44c0 - 44ff + 0x8D, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8E, + 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8F, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91, + 0x72, 0x45, 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7A, + 0x45, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46, + 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, + 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, + 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0x4E, 0x46, + // Bytes 4500 - 453f + 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0x52, 0x46, + 0xD9, 0x80, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x46, + 0xD9, 0x80, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x46, + 0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x46, + 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0x9C, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA6, 0xA1, 0xE0, 0xA6, 0xBC, 0x09, 0x46, + 0xE0, 0xA6, 0xA2, 0xE0, 0xA6, 0xBC, 0x09, 0x46, + 0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0xAB, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0x09, 0x46, + 0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0x09, 0x46, + 0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0x9D, 0x46, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0x9D, 0x46, + 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, 0x48, + 0xF0, 0x9D, 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, + 0xAD, 0x48, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, + 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xB9, + 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, + 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x49, + 0xE0, 0xBE, 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + // Bytes 4600 - 463f + 0x80, 0x9E, 0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x4C, 0xF0, 0x9D, + 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, + 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xAE, 0x4C, + 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, + // Bytes 4640 - 467f + 0xF0, 0x9D, 0x85, 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, + 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xB2, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, + 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, + 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, + 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, + // Bytes 4680 - 46bf + 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xAF, 0xAE, 0x83, 0x41, 0xCC, 0x82, 0xC9, + 0x83, 0x41, 0xCC, 0x86, 0xC9, 0x83, 0x41, 0xCC, + 0x87, 0xC9, 0x83, 0x41, 0xCC, 0x88, 0xC9, 0x83, + 0x41, 0xCC, 0x8A, 0xC9, 0x83, 0x41, 0xCC, 0xA3, + 0xB5, 0x83, 0x43, 0xCC, 0xA7, 0xA5, 0x83, 0x45, + 0xCC, 0x82, 0xC9, 0x83, 0x45, 0xCC, 0x84, 0xC9, + 0x83, 0x45, 0xCC, 0xA3, 0xB5, 0x83, 0x45, 0xCC, + // Bytes 46c0 - 46ff + 0xA7, 0xA5, 0x83, 0x49, 0xCC, 0x88, 0xC9, 0x83, + 0x4C, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0x82, + 0xC9, 0x83, 0x4F, 0xCC, 0x83, 0xC9, 0x83, 0x4F, + 0xCC, 0x84, 0xC9, 0x83, 0x4F, 0xCC, 0x87, 0xC9, + 0x83, 0x4F, 0xCC, 0x88, 0xC9, 0x83, 0x4F, 0xCC, + 0x9B, 0xAD, 0x83, 0x4F, 0xCC, 0xA3, 0xB5, 0x83, + 0x4F, 0xCC, 0xA8, 0xA5, 0x83, 0x52, 0xCC, 0xA3, + 0xB5, 0x83, 0x53, 0xCC, 0x81, 0xC9, 0x83, 0x53, + // Bytes 4700 - 473f + 0xCC, 0x8C, 0xC9, 0x83, 0x53, 0xCC, 0xA3, 0xB5, + 0x83, 0x55, 0xCC, 0x83, 0xC9, 0x83, 0x55, 0xCC, + 0x84, 0xC9, 0x83, 0x55, 0xCC, 0x88, 0xC9, 0x83, + 0x55, 0xCC, 0x9B, 0xAD, 0x83, 0x61, 0xCC, 0x82, + 0xC9, 0x83, 0x61, 0xCC, 0x86, 0xC9, 0x83, 0x61, + 0xCC, 0x87, 0xC9, 0x83, 0x61, 0xCC, 0x88, 0xC9, + 0x83, 0x61, 0xCC, 0x8A, 0xC9, 0x83, 0x61, 0xCC, + 0xA3, 0xB5, 0x83, 0x63, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 4740 - 477f + 0x65, 0xCC, 0x82, 0xC9, 0x83, 0x65, 0xCC, 0x84, + 0xC9, 0x83, 0x65, 0xCC, 0xA3, 0xB5, 0x83, 0x65, + 0xCC, 0xA7, 0xA5, 0x83, 0x69, 0xCC, 0x88, 0xC9, + 0x83, 0x6C, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + 0x82, 0xC9, 0x83, 0x6F, 0xCC, 0x83, 0xC9, 0x83, + 0x6F, 0xCC, 0x84, 0xC9, 0x83, 0x6F, 0xCC, 0x87, + 0xC9, 0x83, 0x6F, 0xCC, 0x88, 0xC9, 0x83, 0x6F, + 0xCC, 0x9B, 0xAD, 0x83, 0x6F, 0xCC, 0xA3, 0xB5, + // Bytes 4780 - 47bf + 0x83, 0x6F, 0xCC, 0xA8, 0xA5, 0x83, 0x72, 0xCC, + 0xA3, 0xB5, 0x83, 0x73, 0xCC, 0x81, 0xC9, 0x83, + 0x73, 0xCC, 0x8C, 0xC9, 0x83, 0x73, 0xCC, 0xA3, + 0xB5, 0x83, 0x75, 0xCC, 0x83, 0xC9, 0x83, 0x75, + 0xCC, 0x84, 0xC9, 0x83, 0x75, 0xCC, 0x88, 0xC9, + 0x83, 0x75, 0xCC, 0x9B, 0xAD, 0x84, 0xCE, 0x91, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x91, 0xCC, 0x94, + 0xC9, 0x84, 0xCE, 0x95, 0xCC, 0x93, 0xC9, 0x84, + // Bytes 47c0 - 47ff + 0xCE, 0x95, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x97, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x94, + 0xC9, 0x84, 0xCE, 0x99, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0x99, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x9F, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x94, + 0xC9, 0x84, 0xCE, 0xA5, 0xCC, 0x94, 0xC9, 0x84, + 0xCE, 0xA9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xA9, + 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x80, + // Bytes 4800 - 483f + 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x84, + 0xCE, 0xB1, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB1, + 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCD, 0x82, + 0xC9, 0x84, 0xCE, 0xB5, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0xB5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, + 0xCC, 0x80, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x81, + 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0xB7, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, + // Bytes 4840 - 487f + 0xCD, 0x82, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x88, + 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0xB9, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xBF, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x94, + 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x88, 0xC9, 0x84, + 0xCF, 0x85, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x85, + 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x80, + 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x84, + // Bytes 4880 - 48bf + 0xCF, 0x89, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x89, + 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCD, 0x82, + 0xC9, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 48c0 - 48ff + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, + // Bytes 4900 - 493f + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, + // Bytes 4940 - 497f + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 4980 - 49bf + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x42, 0xCC, 0x80, 0xC9, 0x32, 0x42, 0xCC, + 0x81, 0xC9, 0x32, 0x42, 0xCC, 0x93, 0xC9, 0x32, + // Bytes 49c0 - 49ff + 0x43, 0xE1, 0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xA2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xA6, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB, + // Bytes 4a00 - 4a3f + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xAE, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xB2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1, + // Bytes 4a40 - 4a7f + 0x86, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC, + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2, + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xB5, 0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x32, 0x43, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4a80 - 4abf + 0x03, 0x43, 0xE3, 0x82, 0x9A, 0x0D, 0x03, 0x46, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x9E, 0x26, + 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, + 0x26, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, + 0x9E, 0x26, 0x00, 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10610 bytes (10.36 KiB). Checksum: 95e8869a9f81e5e6. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 46: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 46 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 48 blocks, 3072 entries, 6144 bytes +// The third block is the zero block. +var nfcValues = [3072]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f, + 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe, + 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107, + 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0, + 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238, + 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288, + 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6, + 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753, + 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762, + 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6, + 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c, + // Block 0x4, offset 0x100 + 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab, + 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9, + 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8, + 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305, + 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c, + 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355, + 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391, + 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9, + 0x130: 0x308f, 0x134: 0x30b7, 0x135: 0x33c3, + 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df, + 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, + // Block 0x5, offset 0x140 + 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b, + 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, + 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f, + 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486, + 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490, + 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd, + 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799, + 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5, + 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b, + 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a, + 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143, + 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb, + 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53, + 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8, + 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2, + 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0, + 0x1b0: 0x33c8, 0x1b4: 0x302b, 0x1b5: 0x3337, + 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49, + 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319, + 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af, + 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c, + 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9, + 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8, + 0x1de: 0x305d, 0x1df: 0x3369, + 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e, + 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c, + 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a4, + 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628, + 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac, + 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3724, 0x2c1: 0x3730, 0x2c3: 0x371e, + 0x2c6: 0xa000, 0x2c7: 0x370c, + 0x2cc: 0x3760, 0x2cd: 0x3748, 0x2ce: 0x3772, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3754, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d8, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3736, 0x302: 0x37ba, + 0x310: 0x3712, 0x311: 0x3796, + 0x312: 0x3718, 0x313: 0x379c, 0x316: 0x372a, 0x317: 0x37ae, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x382c, 0x31b: 0x3832, 0x31c: 0x373c, 0x31d: 0x37c0, + 0x31e: 0x3742, 0x31f: 0x37c6, 0x322: 0x374e, 0x323: 0x37d2, + 0x324: 0x375a, 0x325: 0x37de, 0x326: 0x3766, 0x327: 0x37ea, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3838, 0x32b: 0x383e, 0x32c: 0x3790, 0x32d: 0x3814, 0x32e: 0x376c, 0x32f: 0x37f0, + 0x330: 0x3778, 0x331: 0x37fc, 0x332: 0x377e, 0x333: 0x3802, 0x334: 0x3784, 0x335: 0x3808, + 0x338: 0x378a, 0x339: 0x380e, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d, + 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d, + 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d, + 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132, + 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132, + 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d29, 0x407: 0xa000, 0x408: 0x2d31, 0x409: 0xa000, 0x40a: 0x2d39, 0x40b: 0xa000, + 0x40c: 0x2d41, 0x40d: 0xa000, 0x40e: 0x2d49, 0x411: 0xa000, + 0x412: 0x2d51, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d59, + 0x43c: 0xa000, 0x43d: 0x2d61, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132, + 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132, + 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132, + 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132, + 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132, + 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132, + 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132, + 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132, + 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132, + 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132, + 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d, + // Block 0x12, offset 0x480 + 0x480: 0x2f9a, 0x481: 0x32a6, 0x482: 0x2fa4, 0x483: 0x32b0, 0x484: 0x2fa9, 0x485: 0x32b5, + 0x486: 0x2fae, 0x487: 0x32ba, 0x488: 0x38cf, 0x489: 0x3a5e, 0x48a: 0x2fc7, 0x48b: 0x32d3, + 0x48c: 0x2fd1, 0x48d: 0x32dd, 0x48e: 0x2fe0, 0x48f: 0x32ec, 0x490: 0x2fd6, 0x491: 0x32e2, + 0x492: 0x2fdb, 0x493: 0x32e7, 0x494: 0x38f2, 0x495: 0x3a81, 0x496: 0x38f9, 0x497: 0x3a88, + 0x498: 0x301c, 0x499: 0x3328, 0x49a: 0x3021, 0x49b: 0x332d, 0x49c: 0x3907, 0x49d: 0x3a96, + 0x49e: 0x3026, 0x49f: 0x3332, 0x4a0: 0x3035, 0x4a1: 0x3341, 0x4a2: 0x3053, 0x4a3: 0x335f, + 0x4a4: 0x3062, 0x4a5: 0x336e, 0x4a6: 0x3058, 0x4a7: 0x3364, 0x4a8: 0x3067, 0x4a9: 0x3373, + 0x4aa: 0x306c, 0x4ab: 0x3378, 0x4ac: 0x30b2, 0x4ad: 0x33be, 0x4ae: 0x390e, 0x4af: 0x3a9d, + 0x4b0: 0x30bc, 0x4b1: 0x33cd, 0x4b2: 0x30c6, 0x4b3: 0x33d7, 0x4b4: 0x30d0, 0x4b5: 0x33e1, + 0x4b6: 0x46c7, 0x4b7: 0x4758, 0x4b8: 0x3915, 0x4b9: 0x3aa4, 0x4ba: 0x30e9, 0x4bb: 0x33fa, + 0x4bc: 0x30e4, 0x4bd: 0x33f5, 0x4be: 0x30ee, 0x4bf: 0x33ff, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x30f3, 0x4c1: 0x3404, 0x4c2: 0x30f8, 0x4c3: 0x3409, 0x4c4: 0x310c, 0x4c5: 0x341d, + 0x4c6: 0x3116, 0x4c7: 0x3427, 0x4c8: 0x3125, 0x4c9: 0x3436, 0x4ca: 0x3120, 0x4cb: 0x3431, + 0x4cc: 0x3938, 0x4cd: 0x3ac7, 0x4ce: 0x3946, 0x4cf: 0x3ad5, 0x4d0: 0x394d, 0x4d1: 0x3adc, + 0x4d2: 0x3954, 0x4d3: 0x3ae3, 0x4d4: 0x3152, 0x4d5: 0x3463, 0x4d6: 0x3157, 0x4d7: 0x3468, + 0x4d8: 0x3161, 0x4d9: 0x3472, 0x4da: 0x46f4, 0x4db: 0x4785, 0x4dc: 0x399a, 0x4dd: 0x3b29, + 0x4de: 0x317a, 0x4df: 0x348b, 0x4e0: 0x3184, 0x4e1: 0x3495, 0x4e2: 0x4703, 0x4e3: 0x4794, + 0x4e4: 0x39a1, 0x4e5: 0x3b30, 0x4e6: 0x39a8, 0x4e7: 0x3b37, 0x4e8: 0x39af, 0x4e9: 0x3b3e, + 0x4ea: 0x3193, 0x4eb: 0x34a4, 0x4ec: 0x319d, 0x4ed: 0x34b3, 0x4ee: 0x31b1, 0x4ef: 0x34c7, + 0x4f0: 0x31ac, 0x4f1: 0x34c2, 0x4f2: 0x31ed, 0x4f3: 0x3503, 0x4f4: 0x31fc, 0x4f5: 0x3512, + 0x4f6: 0x31f7, 0x4f7: 0x350d, 0x4f8: 0x39b6, 0x4f9: 0x3b45, 0x4fa: 0x39bd, 0x4fb: 0x3b4c, + 0x4fc: 0x3201, 0x4fd: 0x3517, 0x4fe: 0x3206, 0x4ff: 0x351c, + // Block 0x14, offset 0x500 + 0x500: 0x320b, 0x501: 0x3521, 0x502: 0x3210, 0x503: 0x3526, 0x504: 0x321f, 0x505: 0x3535, + 0x506: 0x321a, 0x507: 0x3530, 0x508: 0x3224, 0x509: 0x353f, 0x50a: 0x3229, 0x50b: 0x3544, + 0x50c: 0x322e, 0x50d: 0x3549, 0x50e: 0x324c, 0x50f: 0x3567, 0x510: 0x3265, 0x511: 0x3585, + 0x512: 0x3274, 0x513: 0x3594, 0x514: 0x3279, 0x515: 0x3599, 0x516: 0x337d, 0x517: 0x34a9, + 0x518: 0x353a, 0x519: 0x3576, 0x51b: 0x35d4, + 0x520: 0x46a4, 0x521: 0x4735, 0x522: 0x2f86, 0x523: 0x3292, + 0x524: 0x387b, 0x525: 0x3a0a, 0x526: 0x3874, 0x527: 0x3a03, 0x528: 0x3889, 0x529: 0x3a18, + 0x52a: 0x3882, 0x52b: 0x3a11, 0x52c: 0x38c1, 0x52d: 0x3a50, 0x52e: 0x3897, 0x52f: 0x3a26, + 0x530: 0x3890, 0x531: 0x3a1f, 0x532: 0x38a5, 0x533: 0x3a34, 0x534: 0x389e, 0x535: 0x3a2d, + 0x536: 0x38c8, 0x537: 0x3a57, 0x538: 0x46b8, 0x539: 0x4749, 0x53a: 0x3003, 0x53b: 0x330f, + 0x53c: 0x2fef, 0x53d: 0x32fb, 0x53e: 0x38dd, 0x53f: 0x3a6c, + // Block 0x15, offset 0x540 + 0x540: 0x38d6, 0x541: 0x3a65, 0x542: 0x38eb, 0x543: 0x3a7a, 0x544: 0x38e4, 0x545: 0x3a73, + 0x546: 0x3900, 0x547: 0x3a8f, 0x548: 0x3094, 0x549: 0x33a0, 0x54a: 0x30a8, 0x54b: 0x33b4, + 0x54c: 0x46ea, 0x54d: 0x477b, 0x54e: 0x3139, 0x54f: 0x344a, 0x550: 0x3923, 0x551: 0x3ab2, + 0x552: 0x391c, 0x553: 0x3aab, 0x554: 0x3931, 0x555: 0x3ac0, 0x556: 0x392a, 0x557: 0x3ab9, + 0x558: 0x398c, 0x559: 0x3b1b, 0x55a: 0x3970, 0x55b: 0x3aff, 0x55c: 0x3969, 0x55d: 0x3af8, + 0x55e: 0x397e, 0x55f: 0x3b0d, 0x560: 0x3977, 0x561: 0x3b06, 0x562: 0x3985, 0x563: 0x3b14, + 0x564: 0x31e8, 0x565: 0x34fe, 0x566: 0x31ca, 0x567: 0x34e0, 0x568: 0x39e7, 0x569: 0x3b76, + 0x56a: 0x39e0, 0x56b: 0x3b6f, 0x56c: 0x39f5, 0x56d: 0x3b84, 0x56e: 0x39ee, 0x56f: 0x3b7d, + 0x570: 0x39fc, 0x571: 0x3b8b, 0x572: 0x3233, 0x573: 0x354e, 0x574: 0x325b, 0x575: 0x357b, + 0x576: 0x3256, 0x577: 0x3571, 0x578: 0x3242, 0x579: 0x355d, + // Block 0x16, offset 0x580 + 0x580: 0x4807, 0x581: 0x480d, 0x582: 0x4921, 0x583: 0x4939, 0x584: 0x4929, 0x585: 0x4941, + 0x586: 0x4931, 0x587: 0x4949, 0x588: 0x47ad, 0x589: 0x47b3, 0x58a: 0x4891, 0x58b: 0x48a9, + 0x58c: 0x4899, 0x58d: 0x48b1, 0x58e: 0x48a1, 0x58f: 0x48b9, 0x590: 0x4819, 0x591: 0x481f, + 0x592: 0x3dbb, 0x593: 0x3dcb, 0x594: 0x3dc3, 0x595: 0x3dd3, + 0x598: 0x47b9, 0x599: 0x47bf, 0x59a: 0x3ceb, 0x59b: 0x3cfb, 0x59c: 0x3cf3, 0x59d: 0x3d03, + 0x5a0: 0x4831, 0x5a1: 0x4837, 0x5a2: 0x4951, 0x5a3: 0x4969, + 0x5a4: 0x4959, 0x5a5: 0x4971, 0x5a6: 0x4961, 0x5a7: 0x4979, 0x5a8: 0x47c5, 0x5a9: 0x47cb, + 0x5aa: 0x48c1, 0x5ab: 0x48d9, 0x5ac: 0x48c9, 0x5ad: 0x48e1, 0x5ae: 0x48d1, 0x5af: 0x48e9, + 0x5b0: 0x4849, 0x5b1: 0x484f, 0x5b2: 0x3e1b, 0x5b3: 0x3e33, 0x5b4: 0x3e23, 0x5b5: 0x3e3b, + 0x5b6: 0x3e2b, 0x5b7: 0x3e43, 0x5b8: 0x47d1, 0x5b9: 0x47d7, 0x5ba: 0x3d1b, 0x5bb: 0x3d33, + 0x5bc: 0x3d23, 0x5bd: 0x3d3b, 0x5be: 0x3d2b, 0x5bf: 0x3d43, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4855, 0x5c1: 0x485b, 0x5c2: 0x3e4b, 0x5c3: 0x3e5b, 0x5c4: 0x3e53, 0x5c5: 0x3e63, + 0x5c8: 0x47dd, 0x5c9: 0x47e3, 0x5ca: 0x3d4b, 0x5cb: 0x3d5b, + 0x5cc: 0x3d53, 0x5cd: 0x3d63, 0x5d0: 0x4867, 0x5d1: 0x486d, + 0x5d2: 0x3e83, 0x5d3: 0x3e9b, 0x5d4: 0x3e8b, 0x5d5: 0x3ea3, 0x5d6: 0x3e93, 0x5d7: 0x3eab, + 0x5d9: 0x47e9, 0x5db: 0x3d6b, 0x5dd: 0x3d73, + 0x5df: 0x3d7b, 0x5e0: 0x487f, 0x5e1: 0x4885, 0x5e2: 0x4981, 0x5e3: 0x4999, + 0x5e4: 0x4989, 0x5e5: 0x49a1, 0x5e6: 0x4991, 0x5e7: 0x49a9, 0x5e8: 0x47ef, 0x5e9: 0x47f5, + 0x5ea: 0x48f1, 0x5eb: 0x4909, 0x5ec: 0x48f9, 0x5ed: 0x4911, 0x5ee: 0x4901, 0x5ef: 0x4919, + 0x5f0: 0x47fb, 0x5f1: 0x4321, 0x5f2: 0x3694, 0x5f3: 0x4327, 0x5f4: 0x4825, 0x5f5: 0x432d, + 0x5f6: 0x36a6, 0x5f7: 0x4333, 0x5f8: 0x36c4, 0x5f9: 0x4339, 0x5fa: 0x36dc, 0x5fb: 0x433f, + 0x5fc: 0x4873, 0x5fd: 0x4345, + // Block 0x18, offset 0x600 + 0x600: 0x3da3, 0x601: 0x3dab, 0x602: 0x4187, 0x603: 0x41a5, 0x604: 0x4191, 0x605: 0x41af, + 0x606: 0x419b, 0x607: 0x41b9, 0x608: 0x3cdb, 0x609: 0x3ce3, 0x60a: 0x40d3, 0x60b: 0x40f1, + 0x60c: 0x40dd, 0x60d: 0x40fb, 0x60e: 0x40e7, 0x60f: 0x4105, 0x610: 0x3deb, 0x611: 0x3df3, + 0x612: 0x41c3, 0x613: 0x41e1, 0x614: 0x41cd, 0x615: 0x41eb, 0x616: 0x41d7, 0x617: 0x41f5, + 0x618: 0x3d0b, 0x619: 0x3d13, 0x61a: 0x410f, 0x61b: 0x412d, 0x61c: 0x4119, 0x61d: 0x4137, + 0x61e: 0x4123, 0x61f: 0x4141, 0x620: 0x3ec3, 0x621: 0x3ecb, 0x622: 0x41ff, 0x623: 0x421d, + 0x624: 0x4209, 0x625: 0x4227, 0x626: 0x4213, 0x627: 0x4231, 0x628: 0x3d83, 0x629: 0x3d8b, + 0x62a: 0x414b, 0x62b: 0x4169, 0x62c: 0x4155, 0x62d: 0x4173, 0x62e: 0x415f, 0x62f: 0x417d, + 0x630: 0x3688, 0x631: 0x3682, 0x632: 0x3d93, 0x633: 0x368e, 0x634: 0x3d9b, + 0x636: 0x4813, 0x637: 0x3db3, 0x638: 0x35f8, 0x639: 0x35f2, 0x63a: 0x35e6, 0x63b: 0x42f1, + 0x63c: 0x35fe, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100, + // Block 0x19, offset 0x640 + 0x640: 0x8100, 0x641: 0x35aa, 0x642: 0x3ddb, 0x643: 0x36a0, 0x644: 0x3de3, + 0x646: 0x483d, 0x647: 0x3dfb, 0x648: 0x3604, 0x649: 0x42f7, 0x64a: 0x3610, 0x64b: 0x42fd, + 0x64c: 0x361c, 0x64d: 0x3b92, 0x64e: 0x3b99, 0x64f: 0x3ba0, 0x650: 0x36b8, 0x651: 0x36b2, + 0x652: 0x3e03, 0x653: 0x44e7, 0x656: 0x36be, 0x657: 0x3e13, + 0x658: 0x3634, 0x659: 0x362e, 0x65a: 0x3622, 0x65b: 0x4303, 0x65d: 0x3ba7, + 0x65e: 0x3bae, 0x65f: 0x3bb5, 0x660: 0x36ee, 0x661: 0x36e8, 0x662: 0x3e6b, 0x663: 0x44ef, + 0x664: 0x36d0, 0x665: 0x36d6, 0x666: 0x36f4, 0x667: 0x3e7b, 0x668: 0x3664, 0x669: 0x365e, + 0x66a: 0x3652, 0x66b: 0x430f, 0x66c: 0x364c, 0x66d: 0x359e, 0x66e: 0x42eb, 0x66f: 0x0081, + 0x672: 0x3eb3, 0x673: 0x36fa, 0x674: 0x3ebb, + 0x676: 0x488b, 0x677: 0x3ed3, 0x678: 0x3640, 0x679: 0x4309, 0x67a: 0x3670, 0x67b: 0x431b, + 0x67c: 0x367c, 0x67d: 0x4259, 0x67e: 0xa100, + // Block 0x1a, offset 0x680 + 0x681: 0x3c09, 0x683: 0xa000, 0x684: 0x3c10, 0x685: 0xa000, + 0x687: 0x3c17, 0x688: 0xa000, 0x689: 0x3c1e, + 0x68d: 0xa000, + 0x6a0: 0x2f68, 0x6a1: 0xa000, 0x6a2: 0x3c2c, + 0x6a4: 0xa000, 0x6a5: 0xa000, + 0x6ad: 0x3c25, 0x6ae: 0x2f63, 0x6af: 0x2f6d, + 0x6b0: 0x3c33, 0x6b1: 0x3c3a, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c41, 0x6b5: 0x3c48, + 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4f, 0x6b9: 0x3c56, 0x6ba: 0xa000, 0x6bb: 0xa000, + 0x6bc: 0xa000, 0x6bd: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3c5d, 0x6c1: 0x3c64, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c79, 0x6c5: 0x3c80, + 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c87, 0x6c9: 0x3c8e, + 0x6d1: 0xa000, + 0x6d2: 0xa000, + 0x6e2: 0xa000, + 0x6e8: 0xa000, 0x6e9: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3ca3, 0x6ed: 0x3caa, 0x6ee: 0x3cb1, 0x6ef: 0x3cb8, + 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, + // Block 0x1c, offset 0x700 + 0x706: 0xa000, 0x70b: 0xa000, + 0x70c: 0x3f0b, 0x70d: 0xa000, 0x70e: 0x3f13, 0x70f: 0xa000, 0x710: 0x3f1b, 0x711: 0xa000, + 0x712: 0x3f23, 0x713: 0xa000, 0x714: 0x3f2b, 0x715: 0xa000, 0x716: 0x3f33, 0x717: 0xa000, + 0x718: 0x3f3b, 0x719: 0xa000, 0x71a: 0x3f43, 0x71b: 0xa000, 0x71c: 0x3f4b, 0x71d: 0xa000, + 0x71e: 0x3f53, 0x71f: 0xa000, 0x720: 0x3f5b, 0x721: 0xa000, 0x722: 0x3f63, + 0x724: 0xa000, 0x725: 0x3f6b, 0x726: 0xa000, 0x727: 0x3f73, 0x728: 0xa000, 0x729: 0x3f7b, + 0x72f: 0xa000, + 0x730: 0x3f83, 0x731: 0x3f8b, 0x732: 0xa000, 0x733: 0x3f93, 0x734: 0x3f9b, 0x735: 0xa000, + 0x736: 0x3fa3, 0x737: 0x3fab, 0x738: 0xa000, 0x739: 0x3fb3, 0x73a: 0x3fbb, 0x73b: 0xa000, + 0x73c: 0x3fc3, 0x73d: 0x3fcb, + // Block 0x1d, offset 0x740 + 0x754: 0x3f03, + 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, + 0x75e: 0x3fd3, + 0x766: 0xa000, + 0x76b: 0xa000, 0x76c: 0x3fe3, 0x76d: 0xa000, 0x76e: 0x3feb, 0x76f: 0xa000, + 0x770: 0x3ff3, 0x771: 0xa000, 0x772: 0x3ffb, 0x773: 0xa000, 0x774: 0x4003, 0x775: 0xa000, + 0x776: 0x400b, 0x777: 0xa000, 0x778: 0x4013, 0x779: 0xa000, 0x77a: 0x401b, 0x77b: 0xa000, + 0x77c: 0x4023, 0x77d: 0xa000, 0x77e: 0x402b, 0x77f: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x4033, 0x781: 0xa000, 0x782: 0x403b, 0x784: 0xa000, 0x785: 0x4043, + 0x786: 0xa000, 0x787: 0x404b, 0x788: 0xa000, 0x789: 0x4053, + 0x78f: 0xa000, 0x790: 0x405b, 0x791: 0x4063, + 0x792: 0xa000, 0x793: 0x406b, 0x794: 0x4073, 0x795: 0xa000, 0x796: 0x407b, 0x797: 0x4083, + 0x798: 0xa000, 0x799: 0x408b, 0x79a: 0x4093, 0x79b: 0xa000, 0x79c: 0x409b, 0x79d: 0x40a3, + 0x7af: 0xa000, + 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fdb, + 0x7b7: 0x40ab, 0x7b8: 0x40b3, 0x7b9: 0x40bb, 0x7ba: 0x40c3, + 0x7bd: 0xa000, 0x7be: 0x40cb, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb, + 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943, + 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3, + 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43, + 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87, + 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283, + 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f, + 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853, + 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b, + 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b, + 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b, + // Block 0x20, offset 0x800 + 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b, + 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f, + 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7, + 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127, + 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357, + 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873, + 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3, + 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b, + 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57, + 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb, + 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b, + // Block 0x21, offset 0x840 + 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f, + 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3, + 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83, + 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193, + 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b, + 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b, + 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f, + 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b, + 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753, + 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777, + 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73, + // Block 0x22, offset 0x880 + 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3, + 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47, + 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af, + 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df, + 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817, + 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3, + 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457, + 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b, + 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27, + 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f, + 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03, + 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27, + 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af, + 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3, + 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb, + 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353, + 0x8e5: 0x1407, 0x8e6: 0x1433, + 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7, + 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897, + 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93, + 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3, + // Block 0x24, offset 0x900 + 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b, + 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f, + 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f, + 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f, + 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff, + 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f, + 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f, + 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3, + 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7, + 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963, + 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f, + // Block 0x25, offset 0x940 + 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b, + 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb, + 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf, + 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f, + 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013, + 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f, + 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b, + 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b, + 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb, + 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343, + 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f, + // Block 0x26, offset 0x980 + 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b, + 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b, + 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2, + 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809, + 0x998: 0x1617, 0x999: 0x1627, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757, + 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773, + 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3, + 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf, + 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff, + 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f, + 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867, + 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af, + 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93, + 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3, + 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917, + // Block 0x28, offset 0xa00 + 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f, + 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983, + 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf, + 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3, + 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef, + 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23, + 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37, + 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63, + 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f, + 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692, + 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7, + // Block 0x29, offset 0xa40 + 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb, + 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f, + 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6, + 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9, + 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83, + 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3, + 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf, + 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7, + 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f, + 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b, + 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87, + 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb, + 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7, + 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663, + 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd, + 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7, + 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b, + 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f, + 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7, + 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700, + 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23, + 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53, + 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714, + 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b, + 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719, + 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728, + 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37, + 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57, + 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737, + 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741, + 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff, + 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637, + 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f, + 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093, + 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782, + 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3, + 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7, + 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133, + 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa, + 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4, + 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197, + // Block 0x2d, offset 0xb40 + 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7, + 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7, + 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b, + 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd, + 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f, + 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f, + 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273, + 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677, + 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7, + 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb, + 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f, + // Block 0x2e, offset 0xb80 + 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5, + 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa, + 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b, + 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7, + 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665, + 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f, + 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477, + 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693, + 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb, + 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b, + 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567, + 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7, + 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7, + 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef, + 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, + 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, + 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, + 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, + 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, + 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, + // Block 0x5, offset 0x140 + 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, + 0x14d: 0x5c, + 0x15c: 0x5d, 0x15f: 0x5e, + 0x162: 0x5f, 0x164: 0x60, + 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, + 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f, + 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, + 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + 0x374: 0xa1, + 0x37d: 0xa2, + // Block 0xe, offset 0x380 + 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6, + 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa, + 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf, + 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1, + 0x3a0: 0xb2, 0x3a7: 0xb3, + 0x3a8: 0xb4, 0x3a9: 0xb5, 0x3aa: 0xb6, + 0x3b0: 0x73, 0x3b5: 0xb7, 0x3b6: 0xb8, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xb9, 0x3ec: 0xba, + // Block 0x10, offset 0x400 + 0x432: 0xbb, + // Block 0x11, offset 0x440 + 0x445: 0xbc, 0x446: 0xbd, 0x447: 0xbe, + 0x449: 0xbf, + // Block 0x12, offset 0x480 + 0x480: 0xc0, 0x484: 0xba, + 0x48b: 0xc1, + 0x4a3: 0xc2, 0x4a5: 0xc3, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xc4, + // Block 0x14, offset 0x500 + 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, + 0x528: 0x2d, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 151 entries, 302 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x11f, 0x128, 0x12a, 0x12d, 0x12f, 0x13a, 0x13e, 0x14c, 0x14f, 0x155, 0x15b, 0x166, 0x16a, 0x16c, 0x16e, 0x170, 0x172, 0x174, 0x17a, 0x17e, 0x180, 0x182, 0x18a, 0x18e, 0x191, 0x193, 0x195, 0x197, 0x19a, 0x19c, 0x19e, 0x1a0, 0x1a2, 0x1a8, 0x1ab, 0x1ad, 0x1b4, 0x1ba, 0x1c0, 0x1c8, 0x1ce, 0x1d4, 0x1da, 0x1de, 0x1ec, 0x1f5, 0x1f8, 0x1fb, 0x1fd, 0x200, 0x202, 0x206, 0x20b, 0x20d, 0x20f, 0x214, 0x21a, 0x21c, 0x21e, 0x220, 0x226, 0x229, 0x22b, 0x231, 0x234, 0x23c, 0x243, 0x246, 0x249, 0x24b, 0x24e, 0x256, 0x25a, 0x261, 0x264, 0x26a, 0x26c, 0x26f, 0x271, 0x274, 0x276, 0x278, 0x27a, 0x27c, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x294, 0x29e, 0x2a0, 0x2a2, 0x2a8, 0x2aa, 0x2ac, 0x2af} + +// nfcSparseValues: 689 entries, 2756 bytes +var nfcSparseValues = [689]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e5, lo: 0xa0, hi: 0xa1}, + {value: 0x4717, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4843, lo: 0x8a, hi: 0x8a}, + {value: 0x4861, lo: 0x8b, hi: 0x8b}, + {value: 0x36ca, lo: 0x8c, hi: 0x8c}, + {value: 0x36e2, lo: 0x8d, hi: 0x8d}, + {value: 0x4879, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3700, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a8, lo: 0x90, hi: 0x90}, + {value: 0x37b4, lo: 0x91, hi: 0x91}, + {value: 0x37a2, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x381a, lo: 0x97, hi: 0x97}, + {value: 0x37e4, lo: 0x9c, hi: 0x9c}, + {value: 0x37cc, lo: 0x9d, hi: 0x9d}, + {value: 0x37f6, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x3820, lo: 0xb6, hi: 0xb6}, + {value: 0x3826, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3844, lo: 0xa2, hi: 0xa2}, + {value: 0x384a, lo: 0xa3, hi: 0xa3}, + {value: 0x3856, lo: 0xa4, hi: 0xa4}, + {value: 0x3850, lo: 0xa5, hi: 0xa5}, + {value: 0x385c, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386e, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x3862, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3868, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xd, offset 0x63 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x68 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x6a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3edb, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee3, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3eeb, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x72 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451f, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x79 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x7c + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ca1, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455f, lo: 0x9c, hi: 0x9d}, + {value: 0x456f, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x84 + {value: 0x0000, lo: 0x03}, + {value: 0x4597, lo: 0xb3, hi: 0xb3}, + {value: 0x459f, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0x88 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4577, lo: 0x99, hi: 0x9b}, + {value: 0x458f, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0x8c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0x8e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0x90 + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb9, lo: 0x88, hi: 0x88}, + {value: 0x2cb1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cc1, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a7, lo: 0x9c, hi: 0x9c}, + {value: 0x45af, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0x99 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc9, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0x9d + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cd1, lo: 0x8a, hi: 0x8a}, + {value: 0x2ce1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd9, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xa4 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef3, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xa9 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xac + {value: 0x0000, lo: 0x09}, + {value: 0x2ce9, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cf1, lo: 0x87, hi: 0x87}, + {value: 0x2cf9, lo: 0x88, hi: 0x88}, + {value: 0x2f53, lo: 0x8a, hi: 0x8a}, + {value: 0x2ddb, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2d01, lo: 0x8a, hi: 0x8a}, + {value: 0x2d11, lo: 0x8b, hi: 0x8b}, + {value: 0x2d09, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xc0 + {value: 0x6be7, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3efb, lo: 0x9a, hi: 0x9a}, + {value: 0x2f5b, lo: 0x9c, hi: 0x9c}, + {value: 0x2de6, lo: 0x9d, hi: 0x9d}, + {value: 0x2d19, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xc8 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xcb + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xcd + {value: 0x0000, lo: 0x02}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x23, offset 0xd0 + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x24, offset 0xd2 + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xd7 + {value: 0x0000, lo: 0x10}, + {value: 0x2647, lo: 0x83, hi: 0x83}, + {value: 0x264e, lo: 0x8d, hi: 0x8d}, + {value: 0x2655, lo: 0x92, hi: 0x92}, + {value: 0x265c, lo: 0x97, hi: 0x97}, + {value: 0x2663, lo: 0x9c, hi: 0x9c}, + {value: 0x2640, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a87, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a90, lo: 0xb5, hi: 0xb5}, + {value: 0x45b7, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bf, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0xe8 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a99, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x2671, lo: 0x93, hi: 0x93}, + {value: 0x2678, lo: 0x9d, hi: 0x9d}, + {value: 0x267f, lo: 0xa2, hi: 0xa2}, + {value: 0x2686, lo: 0xa7, hi: 0xa7}, + {value: 0x268d, lo: 0xac, hi: 0xac}, + {value: 0x266a, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0xf4 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0xf6 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d21, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0xfc + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0xfe + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x100 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x102 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x104 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x106 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x108 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x10b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x110 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x113 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x116 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x11a + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x11f + {value: 0x0000, lo: 0x08}, + {value: 0x2d69, lo: 0x80, hi: 0x80}, + {value: 0x2d71, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d79, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x128 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x12a + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x12d + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x12f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x13a + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3c, offset 0x13e + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3d, offset 0x14c + {value: 0x427e, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x3e, offset 0x14f + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bbc, lo: 0x9a, hi: 0x9b}, + {value: 0x3bca, lo: 0xae, hi: 0xae}, + // Block 0x3f, offset 0x155 + {value: 0x000e, lo: 0x05}, + {value: 0x3bd1, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd8, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x40, offset 0x15b + {value: 0x6405, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be6, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bed, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf4, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bfb, lo: 0xa4, hi: 0xa5}, + {value: 0x3c02, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x41, offset 0x166 + {value: 0x0007, lo: 0x03}, + {value: 0x3c6b, lo: 0xa0, hi: 0xa1}, + {value: 0x3c95, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbf, lo: 0xaa, hi: 0xad}, + // Block 0x42, offset 0x16a + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x43, offset 0x16c + {value: 0x0000, lo: 0x01}, + {value: 0x44e0, lo: 0x9c, hi: 0x9c}, + // Block 0x44, offset 0x16e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x45, offset 0x170 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x46, offset 0x172 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x47, offset 0x174 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x48, offset 0x17a + {value: 0x0000, lo: 0x03}, + {value: 0x4aa2, lo: 0xb3, hi: 0xb3}, + {value: 0x4aa2, lo: 0xb5, hi: 0xb6}, + {value: 0x4aa2, lo: 0xba, hi: 0xbf}, + // Block 0x49, offset 0x17e + {value: 0x0000, lo: 0x01}, + {value: 0x4aa2, lo: 0x8f, hi: 0xa3}, + // Block 0x4a, offset 0x180 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4b, offset 0x182 + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4c, offset 0x18a + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4d, offset 0x18e + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x4e, offset 0x191 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x4f, offset 0x193 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x50, offset 0x195 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x51, offset 0x197 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x52, offset 0x19a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x53, offset 0x19c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x54, offset 0x19e + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x55, offset 0x1a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x56, offset 0x1a2 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x57, offset 0x1a8 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x58, offset 0x1ab + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x59, offset 0x1ad + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5a, offset 0x1b4 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5b, offset 0x1ba + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5c, offset 0x1c0 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5d, offset 0x1c8 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x5e, offset 0x1ce + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x5f, offset 0x1d4 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x60, offset 0x1da + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x61, offset 0x1de + {value: 0x0006, lo: 0x0d}, + {value: 0x4393, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4405, lo: 0x9f, hi: 0x9f}, + {value: 0x43f3, lo: 0xaa, hi: 0xab}, + {value: 0x44f7, lo: 0xac, hi: 0xac}, + {value: 0x44ff, lo: 0xad, hi: 0xad}, + {value: 0x434b, lo: 0xae, hi: 0xb1}, + {value: 0x4369, lo: 0xb2, hi: 0xb4}, + {value: 0x4381, lo: 0xb5, hi: 0xb6}, + {value: 0x438d, lo: 0xb8, hi: 0xb8}, + {value: 0x4399, lo: 0xb9, hi: 0xbb}, + {value: 0x43b1, lo: 0xbc, hi: 0xbc}, + {value: 0x43b7, lo: 0xbe, hi: 0xbe}, + // Block 0x62, offset 0x1ec + {value: 0x0006, lo: 0x08}, + {value: 0x43bd, lo: 0x80, hi: 0x81}, + {value: 0x43c9, lo: 0x83, hi: 0x84}, + {value: 0x43db, lo: 0x86, hi: 0x89}, + {value: 0x43ff, lo: 0x8a, hi: 0x8a}, + {value: 0x437b, lo: 0x8b, hi: 0x8b}, + {value: 0x4363, lo: 0x8c, hi: 0x8c}, + {value: 0x43ab, lo: 0x8d, hi: 0x8d}, + {value: 0x43d5, lo: 0x8e, hi: 0x8e}, + // Block 0x63, offset 0x1f5 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x64, offset 0x1f8 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x65, offset 0x1fb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x66, offset 0x1fd + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x67, offset 0x200 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x68, offset 0x202 + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x69, offset 0x206 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6a, offset 0x20b + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6b, offset 0x20d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6c, offset 0x20f + {value: 0x0000, lo: 0x04}, + {value: 0x4aa2, lo: 0x9e, hi: 0x9f}, + {value: 0x4aa2, lo: 0xa3, hi: 0xa3}, + {value: 0x4aa2, lo: 0xa5, hi: 0xa6}, + {value: 0x4aa2, lo: 0xaa, hi: 0xaf}, + // Block 0x6d, offset 0x214 + {value: 0x0000, lo: 0x05}, + {value: 0x4aa2, lo: 0x82, hi: 0x87}, + {value: 0x4aa2, lo: 0x8a, hi: 0x8f}, + {value: 0x4aa2, lo: 0x92, hi: 0x97}, + {value: 0x4aa2, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x6e, offset 0x21a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6f, offset 0x21c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x70, offset 0x21e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x71, offset 0x220 + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x226 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x73, offset 0x229 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x74, offset 0x22b + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x75, offset 0x231 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x234 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x423b, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4245, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424f, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x77, offset 0x23c + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d81, lo: 0xae, hi: 0xae}, + {value: 0x2d8b, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x78, offset 0x243 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x79, offset 0x246 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x7a, offset 0x249 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7b, offset 0x24b + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x7c, offset 0x24e + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d95, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9f, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7d, offset 0x256 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7e, offset 0x25a + {value: 0x6b57, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db3, lo: 0xbb, hi: 0xbb}, + {value: 0x2da9, lo: 0xbc, hi: 0xbd}, + {value: 0x2dbd, lo: 0xbe, hi: 0xbe}, + // Block 0x7f, offset 0x261 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x80, offset 0x264 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc7, lo: 0xba, hi: 0xba}, + {value: 0x2dd1, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x81, offset 0x26a + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x82, offset 0x26c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x83, offset 0x26f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x84, offset 0x271 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x85, offset 0x274 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + // Block 0x86, offset 0x276 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x87, offset 0x278 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x88, offset 0x27a + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x89, offset 0x27c + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x8a, offset 0x27f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x8b, offset 0x281 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x8c, offset 0x283 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x8d, offset 0x285 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8e, offset 0x287 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cf, lo: 0x9e, hi: 0x9e}, + {value: 0x45d9, lo: 0x9f, hi: 0x9f}, + {value: 0x460d, lo: 0xa0, hi: 0xa0}, + {value: 0x461b, lo: 0xa1, hi: 0xa1}, + {value: 0x4629, lo: 0xa2, hi: 0xa2}, + {value: 0x4637, lo: 0xa3, hi: 0xa3}, + {value: 0x4645, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8f, offset 0x294 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e3, lo: 0xbb, hi: 0xbb}, + {value: 0x45ed, lo: 0xbc, hi: 0xbc}, + {value: 0x4653, lo: 0xbd, hi: 0xbd}, + {value: 0x466f, lo: 0xbe, hi: 0xbe}, + {value: 0x4661, lo: 0xbf, hi: 0xbf}, + // Block 0x90, offset 0x29e + {value: 0x0000, lo: 0x01}, + {value: 0x467d, lo: 0x80, hi: 0x80}, + // Block 0x91, offset 0x2a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x92, offset 0x2a2 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x93, offset 0x2a8 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xac, hi: 0xaf}, + // Block 0x94, offset 0x2aa + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x95, offset 0x2ac + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x96, offset 0x2af + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 18684 bytes (18.25 KiB). Checksum: 113e23c477adfabd. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 92: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 92 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 94 blocks, 6016 entries, 12032 bytes +// The third block is the zero block. +var nfkcValues = [6016]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f, + 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe, + 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107, + 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0, + 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238, + 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288, + 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6, + 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753, + 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762, + 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6, + 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c, + // Block 0x4, offset 0x100 + 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab, + 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9, + 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8, + 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305, + 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c, + 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355, + 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391, + 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9, + 0x130: 0x308f, 0x132: 0x195d, 0x133: 0x19ea, 0x134: 0x30b7, 0x135: 0x33c3, + 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df, + 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, 0x13f: 0x1baf, + // Block 0x5, offset 0x140 + 0x140: 0x1c37, 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b, + 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, 0x149: 0x1c5f, + 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f, + 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486, + 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490, + 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd, + 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799, + 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5, + 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b, + 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a, + 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2df1, 0x185: 0x2df7, + 0x186: 0x2dfd, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a0b, 0x18a: 0x198a, 0x18b: 0x198d, + 0x18c: 0x1a41, 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143, + 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb, + 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53, + 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8, + 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2, + 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0, + 0x1b0: 0x33c8, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19d2, 0x1b4: 0x302b, 0x1b5: 0x3337, + 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49, + 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319, + 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af, + 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c, + 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9, + 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8, + 0x1de: 0x305d, 0x1df: 0x3369, + 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e, + 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c, + 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a8, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425d, 0x285: 0x447e, + 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628, + 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac, + 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4843, 0x2cb: 0x4861, + 0x2cc: 0x36ca, 0x2cd: 0x36e2, 0x2ce: 0x4879, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430f, 0x2d4: 0x4315, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3724, 0x301: 0x3730, 0x303: 0x371e, + 0x306: 0xa000, 0x307: 0x370c, + 0x30c: 0x3760, 0x30d: 0x3748, 0x30e: 0x3772, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3754, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d8, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3736, 0x342: 0x37ba, + 0x350: 0x3712, 0x351: 0x3796, + 0x352: 0x3718, 0x353: 0x379c, 0x356: 0x372a, 0x357: 0x37ae, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x382c, 0x35b: 0x3832, 0x35c: 0x373c, 0x35d: 0x37c0, + 0x35e: 0x3742, 0x35f: 0x37c6, 0x362: 0x374e, 0x363: 0x37d2, + 0x364: 0x375a, 0x365: 0x37de, 0x366: 0x3766, 0x367: 0x37ea, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3838, 0x36b: 0x383e, 0x36c: 0x3790, 0x36d: 0x3814, 0x36e: 0x376c, 0x36f: 0x37f0, + 0x370: 0x3778, 0x371: 0x37fc, 0x372: 0x377e, 0x373: 0x3802, 0x374: 0x3784, 0x375: 0x3808, + 0x378: 0x378a, 0x379: 0x380e, + // Block 0xe, offset 0x380 + 0x387: 0x1d64, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d87, + 0x3f6: 0x2016, 0x3f7: 0x2052, 0x3f8: 0x204d, + // Block 0x10, offset 0x400 + 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, + 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, + 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d, + 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d, + 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d, + 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, + 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132, + 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132, + // Block 0x11, offset 0x440 + 0x445: 0xa000, + 0x446: 0x2d29, 0x447: 0xa000, 0x448: 0x2d31, 0x449: 0xa000, 0x44a: 0x2d39, 0x44b: 0xa000, + 0x44c: 0x2d41, 0x44d: 0xa000, 0x44e: 0x2d49, 0x451: 0xa000, + 0x452: 0x2d51, + 0x474: 0x8102, 0x475: 0x9900, + 0x47a: 0xa000, 0x47b: 0x2d59, + 0x47c: 0xa000, 0x47d: 0x2d61, 0x47e: 0xa000, 0x47f: 0xa000, + // Block 0x12, offset 0x480 + 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, + 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, + 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, + 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9, + 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be, + 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5, + 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa, + 0x4aa: 0x01fd, + 0x4b8: 0x020c, + // Block 0x13, offset 0x4c0 + 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, + 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, + 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128, + 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, + 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, + 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, + 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0, + // Block 0x14, offset 0x500 + 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132, + 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132, + 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132, + 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132, + 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132, + 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132, + 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132, + 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132, + 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132, + 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132, + 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d, + // Block 0x15, offset 0x540 + 0x540: 0x2f9a, 0x541: 0x32a6, 0x542: 0x2fa4, 0x543: 0x32b0, 0x544: 0x2fa9, 0x545: 0x32b5, + 0x546: 0x2fae, 0x547: 0x32ba, 0x548: 0x38cf, 0x549: 0x3a5e, 0x54a: 0x2fc7, 0x54b: 0x32d3, + 0x54c: 0x2fd1, 0x54d: 0x32dd, 0x54e: 0x2fe0, 0x54f: 0x32ec, 0x550: 0x2fd6, 0x551: 0x32e2, + 0x552: 0x2fdb, 0x553: 0x32e7, 0x554: 0x38f2, 0x555: 0x3a81, 0x556: 0x38f9, 0x557: 0x3a88, + 0x558: 0x301c, 0x559: 0x3328, 0x55a: 0x3021, 0x55b: 0x332d, 0x55c: 0x3907, 0x55d: 0x3a96, + 0x55e: 0x3026, 0x55f: 0x3332, 0x560: 0x3035, 0x561: 0x3341, 0x562: 0x3053, 0x563: 0x335f, + 0x564: 0x3062, 0x565: 0x336e, 0x566: 0x3058, 0x567: 0x3364, 0x568: 0x3067, 0x569: 0x3373, + 0x56a: 0x306c, 0x56b: 0x3378, 0x56c: 0x30b2, 0x56d: 0x33be, 0x56e: 0x390e, 0x56f: 0x3a9d, + 0x570: 0x30bc, 0x571: 0x33cd, 0x572: 0x30c6, 0x573: 0x33d7, 0x574: 0x30d0, 0x575: 0x33e1, + 0x576: 0x46c7, 0x577: 0x4758, 0x578: 0x3915, 0x579: 0x3aa4, 0x57a: 0x30e9, 0x57b: 0x33fa, + 0x57c: 0x30e4, 0x57d: 0x33f5, 0x57e: 0x30ee, 0x57f: 0x33ff, + // Block 0x16, offset 0x580 + 0x580: 0x30f3, 0x581: 0x3404, 0x582: 0x30f8, 0x583: 0x3409, 0x584: 0x310c, 0x585: 0x341d, + 0x586: 0x3116, 0x587: 0x3427, 0x588: 0x3125, 0x589: 0x3436, 0x58a: 0x3120, 0x58b: 0x3431, + 0x58c: 0x3938, 0x58d: 0x3ac7, 0x58e: 0x3946, 0x58f: 0x3ad5, 0x590: 0x394d, 0x591: 0x3adc, + 0x592: 0x3954, 0x593: 0x3ae3, 0x594: 0x3152, 0x595: 0x3463, 0x596: 0x3157, 0x597: 0x3468, + 0x598: 0x3161, 0x599: 0x3472, 0x59a: 0x46f4, 0x59b: 0x4785, 0x59c: 0x399a, 0x59d: 0x3b29, + 0x59e: 0x317a, 0x59f: 0x348b, 0x5a0: 0x3184, 0x5a1: 0x3495, 0x5a2: 0x4703, 0x5a3: 0x4794, + 0x5a4: 0x39a1, 0x5a5: 0x3b30, 0x5a6: 0x39a8, 0x5a7: 0x3b37, 0x5a8: 0x39af, 0x5a9: 0x3b3e, + 0x5aa: 0x3193, 0x5ab: 0x34a4, 0x5ac: 0x319d, 0x5ad: 0x34b3, 0x5ae: 0x31b1, 0x5af: 0x34c7, + 0x5b0: 0x31ac, 0x5b1: 0x34c2, 0x5b2: 0x31ed, 0x5b3: 0x3503, 0x5b4: 0x31fc, 0x5b5: 0x3512, + 0x5b6: 0x31f7, 0x5b7: 0x350d, 0x5b8: 0x39b6, 0x5b9: 0x3b45, 0x5ba: 0x39bd, 0x5bb: 0x3b4c, + 0x5bc: 0x3201, 0x5bd: 0x3517, 0x5be: 0x3206, 0x5bf: 0x351c, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x320b, 0x5c1: 0x3521, 0x5c2: 0x3210, 0x5c3: 0x3526, 0x5c4: 0x321f, 0x5c5: 0x3535, + 0x5c6: 0x321a, 0x5c7: 0x3530, 0x5c8: 0x3224, 0x5c9: 0x353f, 0x5ca: 0x3229, 0x5cb: 0x3544, + 0x5cc: 0x322e, 0x5cd: 0x3549, 0x5ce: 0x324c, 0x5cf: 0x3567, 0x5d0: 0x3265, 0x5d1: 0x3585, + 0x5d2: 0x3274, 0x5d3: 0x3594, 0x5d4: 0x3279, 0x5d5: 0x3599, 0x5d6: 0x337d, 0x5d7: 0x34a9, + 0x5d8: 0x353a, 0x5d9: 0x3576, 0x5da: 0x1be3, 0x5db: 0x42da, + 0x5e0: 0x46a4, 0x5e1: 0x4735, 0x5e2: 0x2f86, 0x5e3: 0x3292, + 0x5e4: 0x387b, 0x5e5: 0x3a0a, 0x5e6: 0x3874, 0x5e7: 0x3a03, 0x5e8: 0x3889, 0x5e9: 0x3a18, + 0x5ea: 0x3882, 0x5eb: 0x3a11, 0x5ec: 0x38c1, 0x5ed: 0x3a50, 0x5ee: 0x3897, 0x5ef: 0x3a26, + 0x5f0: 0x3890, 0x5f1: 0x3a1f, 0x5f2: 0x38a5, 0x5f3: 0x3a34, 0x5f4: 0x389e, 0x5f5: 0x3a2d, + 0x5f6: 0x38c8, 0x5f7: 0x3a57, 0x5f8: 0x46b8, 0x5f9: 0x4749, 0x5fa: 0x3003, 0x5fb: 0x330f, + 0x5fc: 0x2fef, 0x5fd: 0x32fb, 0x5fe: 0x38dd, 0x5ff: 0x3a6c, + // Block 0x18, offset 0x600 + 0x600: 0x38d6, 0x601: 0x3a65, 0x602: 0x38eb, 0x603: 0x3a7a, 0x604: 0x38e4, 0x605: 0x3a73, + 0x606: 0x3900, 0x607: 0x3a8f, 0x608: 0x3094, 0x609: 0x33a0, 0x60a: 0x30a8, 0x60b: 0x33b4, + 0x60c: 0x46ea, 0x60d: 0x477b, 0x60e: 0x3139, 0x60f: 0x344a, 0x610: 0x3923, 0x611: 0x3ab2, + 0x612: 0x391c, 0x613: 0x3aab, 0x614: 0x3931, 0x615: 0x3ac0, 0x616: 0x392a, 0x617: 0x3ab9, + 0x618: 0x398c, 0x619: 0x3b1b, 0x61a: 0x3970, 0x61b: 0x3aff, 0x61c: 0x3969, 0x61d: 0x3af8, + 0x61e: 0x397e, 0x61f: 0x3b0d, 0x620: 0x3977, 0x621: 0x3b06, 0x622: 0x3985, 0x623: 0x3b14, + 0x624: 0x31e8, 0x625: 0x34fe, 0x626: 0x31ca, 0x627: 0x34e0, 0x628: 0x39e7, 0x629: 0x3b76, + 0x62a: 0x39e0, 0x62b: 0x3b6f, 0x62c: 0x39f5, 0x62d: 0x3b84, 0x62e: 0x39ee, 0x62f: 0x3b7d, + 0x630: 0x39fc, 0x631: 0x3b8b, 0x632: 0x3233, 0x633: 0x354e, 0x634: 0x325b, 0x635: 0x357b, + 0x636: 0x3256, 0x637: 0x3571, 0x638: 0x3242, 0x639: 0x355d, + // Block 0x19, offset 0x640 + 0x640: 0x4807, 0x641: 0x480d, 0x642: 0x4921, 0x643: 0x4939, 0x644: 0x4929, 0x645: 0x4941, + 0x646: 0x4931, 0x647: 0x4949, 0x648: 0x47ad, 0x649: 0x47b3, 0x64a: 0x4891, 0x64b: 0x48a9, + 0x64c: 0x4899, 0x64d: 0x48b1, 0x64e: 0x48a1, 0x64f: 0x48b9, 0x650: 0x4819, 0x651: 0x481f, + 0x652: 0x3dbb, 0x653: 0x3dcb, 0x654: 0x3dc3, 0x655: 0x3dd3, + 0x658: 0x47b9, 0x659: 0x47bf, 0x65a: 0x3ceb, 0x65b: 0x3cfb, 0x65c: 0x3cf3, 0x65d: 0x3d03, + 0x660: 0x4831, 0x661: 0x4837, 0x662: 0x4951, 0x663: 0x4969, + 0x664: 0x4959, 0x665: 0x4971, 0x666: 0x4961, 0x667: 0x4979, 0x668: 0x47c5, 0x669: 0x47cb, + 0x66a: 0x48c1, 0x66b: 0x48d9, 0x66c: 0x48c9, 0x66d: 0x48e1, 0x66e: 0x48d1, 0x66f: 0x48e9, + 0x670: 0x4849, 0x671: 0x484f, 0x672: 0x3e1b, 0x673: 0x3e33, 0x674: 0x3e23, 0x675: 0x3e3b, + 0x676: 0x3e2b, 0x677: 0x3e43, 0x678: 0x47d1, 0x679: 0x47d7, 0x67a: 0x3d1b, 0x67b: 0x3d33, + 0x67c: 0x3d23, 0x67d: 0x3d3b, 0x67e: 0x3d2b, 0x67f: 0x3d43, + // Block 0x1a, offset 0x680 + 0x680: 0x4855, 0x681: 0x485b, 0x682: 0x3e4b, 0x683: 0x3e5b, 0x684: 0x3e53, 0x685: 0x3e63, + 0x688: 0x47dd, 0x689: 0x47e3, 0x68a: 0x3d4b, 0x68b: 0x3d5b, + 0x68c: 0x3d53, 0x68d: 0x3d63, 0x690: 0x4867, 0x691: 0x486d, + 0x692: 0x3e83, 0x693: 0x3e9b, 0x694: 0x3e8b, 0x695: 0x3ea3, 0x696: 0x3e93, 0x697: 0x3eab, + 0x699: 0x47e9, 0x69b: 0x3d6b, 0x69d: 0x3d73, + 0x69f: 0x3d7b, 0x6a0: 0x487f, 0x6a1: 0x4885, 0x6a2: 0x4981, 0x6a3: 0x4999, + 0x6a4: 0x4989, 0x6a5: 0x49a1, 0x6a6: 0x4991, 0x6a7: 0x49a9, 0x6a8: 0x47ef, 0x6a9: 0x47f5, + 0x6aa: 0x48f1, 0x6ab: 0x4909, 0x6ac: 0x48f9, 0x6ad: 0x4911, 0x6ae: 0x4901, 0x6af: 0x4919, + 0x6b0: 0x47fb, 0x6b1: 0x4321, 0x6b2: 0x3694, 0x6b3: 0x4327, 0x6b4: 0x4825, 0x6b5: 0x432d, + 0x6b6: 0x36a6, 0x6b7: 0x4333, 0x6b8: 0x36c4, 0x6b9: 0x4339, 0x6ba: 0x36dc, 0x6bb: 0x433f, + 0x6bc: 0x4873, 0x6bd: 0x4345, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3da3, 0x6c1: 0x3dab, 0x6c2: 0x4187, 0x6c3: 0x41a5, 0x6c4: 0x4191, 0x6c5: 0x41af, + 0x6c6: 0x419b, 0x6c7: 0x41b9, 0x6c8: 0x3cdb, 0x6c9: 0x3ce3, 0x6ca: 0x40d3, 0x6cb: 0x40f1, + 0x6cc: 0x40dd, 0x6cd: 0x40fb, 0x6ce: 0x40e7, 0x6cf: 0x4105, 0x6d0: 0x3deb, 0x6d1: 0x3df3, + 0x6d2: 0x41c3, 0x6d3: 0x41e1, 0x6d4: 0x41cd, 0x6d5: 0x41eb, 0x6d6: 0x41d7, 0x6d7: 0x41f5, + 0x6d8: 0x3d0b, 0x6d9: 0x3d13, 0x6da: 0x410f, 0x6db: 0x412d, 0x6dc: 0x4119, 0x6dd: 0x4137, + 0x6de: 0x4123, 0x6df: 0x4141, 0x6e0: 0x3ec3, 0x6e1: 0x3ecb, 0x6e2: 0x41ff, 0x6e3: 0x421d, + 0x6e4: 0x4209, 0x6e5: 0x4227, 0x6e6: 0x4213, 0x6e7: 0x4231, 0x6e8: 0x3d83, 0x6e9: 0x3d8b, + 0x6ea: 0x414b, 0x6eb: 0x4169, 0x6ec: 0x4155, 0x6ed: 0x4173, 0x6ee: 0x415f, 0x6ef: 0x417d, + 0x6f0: 0x3688, 0x6f1: 0x3682, 0x6f2: 0x3d93, 0x6f3: 0x368e, 0x6f4: 0x3d9b, + 0x6f6: 0x4813, 0x6f7: 0x3db3, 0x6f8: 0x35f8, 0x6f9: 0x35f2, 0x6fa: 0x35e6, 0x6fb: 0x42f1, + 0x6fc: 0x35fe, 0x6fd: 0x428a, 0x6fe: 0x01d3, 0x6ff: 0x428a, + // Block 0x1c, offset 0x700 + 0x700: 0x42a3, 0x701: 0x4485, 0x702: 0x3ddb, 0x703: 0x36a0, 0x704: 0x3de3, + 0x706: 0x483d, 0x707: 0x3dfb, 0x708: 0x3604, 0x709: 0x42f7, 0x70a: 0x3610, 0x70b: 0x42fd, + 0x70c: 0x361c, 0x70d: 0x448c, 0x70e: 0x4493, 0x70f: 0x449a, 0x710: 0x36b8, 0x711: 0x36b2, + 0x712: 0x3e03, 0x713: 0x44e7, 0x716: 0x36be, 0x717: 0x3e13, + 0x718: 0x3634, 0x719: 0x362e, 0x71a: 0x3622, 0x71b: 0x4303, 0x71d: 0x44a1, + 0x71e: 0x44a8, 0x71f: 0x44af, 0x720: 0x36ee, 0x721: 0x36e8, 0x722: 0x3e6b, 0x723: 0x44ef, + 0x724: 0x36d0, 0x725: 0x36d6, 0x726: 0x36f4, 0x727: 0x3e7b, 0x728: 0x3664, 0x729: 0x365e, + 0x72a: 0x3652, 0x72b: 0x430f, 0x72c: 0x364c, 0x72d: 0x4477, 0x72e: 0x447e, 0x72f: 0x0081, + 0x732: 0x3eb3, 0x733: 0x36fa, 0x734: 0x3ebb, + 0x736: 0x488b, 0x737: 0x3ed3, 0x738: 0x3640, 0x739: 0x4309, 0x73a: 0x3670, 0x73b: 0x431b, + 0x73c: 0x367c, 0x73d: 0x425d, 0x73e: 0x428f, + // Block 0x1d, offset 0x740 + 0x740: 0x1bdb, 0x741: 0x1bdf, 0x742: 0x0047, 0x743: 0x1c57, 0x745: 0x1beb, + 0x746: 0x1bef, 0x747: 0x00e9, 0x749: 0x1c5b, 0x74a: 0x008f, 0x74b: 0x0051, + 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, + 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1990, + 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, + 0x760: 0x19a2, 0x761: 0x1bcb, 0x762: 0x19ab, + 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075, + 0x76a: 0x0057, 0x76b: 0x42d5, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, + 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215, + 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b9b, + 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0, + // Block 0x1e, offset 0x780 + 0x780: 0x0463, 0x785: 0x0049, + 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, + 0x790: 0x2231, 0x791: 0x223d, + 0x792: 0x22f1, 0x793: 0x2219, 0x794: 0x229d, 0x795: 0x2225, 0x796: 0x22a3, 0x797: 0x22bb, + 0x798: 0x22c7, 0x799: 0x222b, 0x79a: 0x22cd, 0x79b: 0x2237, 0x79c: 0x22c1, 0x79d: 0x22d3, + 0x79e: 0x22d9, 0x79f: 0x1cbf, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba7, 0x7a3: 0x1963, + 0x7a4: 0x006d, 0x7a5: 0x19ae, 0x7a6: 0x1bd3, 0x7a7: 0x1d4b, 0x7a8: 0x1966, 0x7a9: 0x0071, + 0x7aa: 0x19ba, 0x7ab: 0x1bd7, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, + 0x7b0: 0x0093, 0x7b1: 0x19e7, 0x7b2: 0x1c1b, 0x7b3: 0x19f0, 0x7b4: 0x00ad, 0x7b5: 0x1a65, + 0x7b6: 0x1c4f, 0x7b7: 0x1d5f, 0x7b8: 0x19f3, 0x7b9: 0x00b1, 0x7ba: 0x1a68, 0x7bb: 0x1c53, + 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x3c09, 0x7c3: 0xa000, 0x7c4: 0x3c10, 0x7c5: 0xa000, + 0x7c7: 0x3c17, 0x7c8: 0xa000, 0x7c9: 0x3c1e, + 0x7cd: 0xa000, + 0x7e0: 0x2f68, 0x7e1: 0xa000, 0x7e2: 0x3c2c, + 0x7e4: 0xa000, 0x7e5: 0xa000, + 0x7ed: 0x3c25, 0x7ee: 0x2f63, 0x7ef: 0x2f6d, + 0x7f0: 0x3c33, 0x7f1: 0x3c3a, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c41, 0x7f5: 0x3c48, + 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4f, 0x7f9: 0x3c56, 0x7fa: 0xa000, 0x7fb: 0xa000, + 0x7fc: 0xa000, 0x7fd: 0xa000, + // Block 0x20, offset 0x800 + 0x800: 0x3c5d, 0x801: 0x3c64, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c79, 0x805: 0x3c80, + 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c87, 0x809: 0x3c8e, + 0x811: 0xa000, + 0x812: 0xa000, + 0x822: 0xa000, + 0x828: 0xa000, 0x829: 0xa000, + 0x82b: 0xa000, 0x82c: 0x3ca3, 0x82d: 0x3caa, 0x82e: 0x3cb1, 0x82f: 0x3cb8, + 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, + // Block 0x21, offset 0x840 + 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, + 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882, + 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894, + 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a6b, 0x875: 0x1a6f, + 0x876: 0x1a73, 0x877: 0x1a77, 0x878: 0x1a7b, 0x879: 0x1a7f, 0x87a: 0x1a83, 0x87b: 0x1a87, + 0x87c: 0x1a8b, 0x87d: 0x1c83, 0x87e: 0x1c88, 0x87f: 0x1c8d, + // Block 0x22, offset 0x880 + 0x880: 0x1c92, 0x881: 0x1c97, 0x882: 0x1c9c, 0x883: 0x1ca1, 0x884: 0x1ca6, 0x885: 0x1cab, + 0x886: 0x1cb0, 0x887: 0x1cb5, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb, + 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b63, + 0x892: 0x1b67, 0x893: 0x1b6b, 0x894: 0x1b6f, 0x895: 0x1b73, 0x896: 0x1b77, 0x897: 0x1b7b, + 0x898: 0x1b7f, 0x899: 0x1b83, 0x89a: 0x1b87, 0x89b: 0x1b8b, 0x89c: 0x1af7, 0x89d: 0x1afb, + 0x89e: 0x1aff, 0x89f: 0x1b03, 0x8a0: 0x1b07, 0x8a1: 0x1b0b, 0x8a2: 0x1b0f, 0x8a3: 0x1b13, + 0x8a4: 0x1b17, 0x8a5: 0x1b1b, 0x8a6: 0x1b1f, 0x8a7: 0x1b23, 0x8a8: 0x1b27, 0x8a9: 0x1b2b, + 0x8aa: 0x1b2f, 0x8ab: 0x1b33, 0x8ac: 0x1b37, 0x8ad: 0x1b3b, 0x8ae: 0x1b3f, 0x8af: 0x1b43, + 0x8b0: 0x1b47, 0x8b1: 0x1b4b, 0x8b2: 0x1b4f, 0x8b3: 0x1b53, 0x8b4: 0x1b57, 0x8b5: 0x1b5b, + 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, + 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713, + 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab, + 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803, + 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887, + 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db, + 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb, + 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b, + 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7, + 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33, + 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63, + 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f, + // Block 0x24, offset 0x900 + 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb, + 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b, + 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb, + 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3, + 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f, + 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83, + 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7, + 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f, + 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf, + 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f, + 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187, + // Block 0x25, offset 0x940 + 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3, + 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb, + 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b, + 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b, + 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf, + 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f, + 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f, + 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503, + 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f, + 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f, + 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593, + // Block 0x26, offset 0x980 + 0x986: 0xa000, 0x98b: 0xa000, + 0x98c: 0x3f0b, 0x98d: 0xa000, 0x98e: 0x3f13, 0x98f: 0xa000, 0x990: 0x3f1b, 0x991: 0xa000, + 0x992: 0x3f23, 0x993: 0xa000, 0x994: 0x3f2b, 0x995: 0xa000, 0x996: 0x3f33, 0x997: 0xa000, + 0x998: 0x3f3b, 0x999: 0xa000, 0x99a: 0x3f43, 0x99b: 0xa000, 0x99c: 0x3f4b, 0x99d: 0xa000, + 0x99e: 0x3f53, 0x99f: 0xa000, 0x9a0: 0x3f5b, 0x9a1: 0xa000, 0x9a2: 0x3f63, + 0x9a4: 0xa000, 0x9a5: 0x3f6b, 0x9a6: 0xa000, 0x9a7: 0x3f73, 0x9a8: 0xa000, 0x9a9: 0x3f7b, + 0x9af: 0xa000, + 0x9b0: 0x3f83, 0x9b1: 0x3f8b, 0x9b2: 0xa000, 0x9b3: 0x3f93, 0x9b4: 0x3f9b, 0x9b5: 0xa000, + 0x9b6: 0x3fa3, 0x9b7: 0x3fab, 0x9b8: 0xa000, 0x9b9: 0x3fb3, 0x9ba: 0x3fbb, 0x9bb: 0xa000, + 0x9bc: 0x3fc3, 0x9bd: 0x3fcb, + // Block 0x27, offset 0x9c0 + 0x9d4: 0x3f03, + 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42df, 0x9dc: 0x42e5, 0x9dd: 0xa000, + 0x9de: 0x3fd3, 0x9df: 0x26b7, + 0x9e6: 0xa000, + 0x9eb: 0xa000, 0x9ec: 0x3fe3, 0x9ed: 0xa000, 0x9ee: 0x3feb, 0x9ef: 0xa000, + 0x9f0: 0x3ff3, 0x9f1: 0xa000, 0x9f2: 0x3ffb, 0x9f3: 0xa000, 0x9f4: 0x4003, 0x9f5: 0xa000, + 0x9f6: 0x400b, 0x9f7: 0xa000, 0x9f8: 0x4013, 0x9f9: 0xa000, 0x9fa: 0x401b, 0x9fb: 0xa000, + 0x9fc: 0x4023, 0x9fd: 0xa000, 0x9fe: 0x402b, 0x9ff: 0xa000, + // Block 0x28, offset 0xa00 + 0xa00: 0x4033, 0xa01: 0xa000, 0xa02: 0x403b, 0xa04: 0xa000, 0xa05: 0x4043, + 0xa06: 0xa000, 0xa07: 0x404b, 0xa08: 0xa000, 0xa09: 0x4053, + 0xa0f: 0xa000, 0xa10: 0x405b, 0xa11: 0x4063, + 0xa12: 0xa000, 0xa13: 0x406b, 0xa14: 0x4073, 0xa15: 0xa000, 0xa16: 0x407b, 0xa17: 0x4083, + 0xa18: 0xa000, 0xa19: 0x408b, 0xa1a: 0x4093, 0xa1b: 0xa000, 0xa1c: 0x409b, 0xa1d: 0x40a3, + 0xa2f: 0xa000, + 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fdb, + 0xa37: 0x40ab, 0xa38: 0x40b3, 0xa39: 0x40bb, 0xa3a: 0x40c3, + 0xa3d: 0xa000, 0xa3e: 0x40cb, 0xa3f: 0x26cc, + // Block 0x29, offset 0xa40 + 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337, + 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f, + 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49c0, 0xa50: 0x49c6, 0xa51: 0x49cc, + 0xa52: 0x49d2, 0xa53: 0x49d8, 0xa54: 0x49de, 0xa55: 0x49e4, 0xa56: 0x49ea, 0xa57: 0x49f0, + 0xa58: 0x49f6, 0xa59: 0x49fc, 0xa5a: 0x4a02, 0xa5b: 0x4a08, 0xa5c: 0x4a0e, 0xa5d: 0x4a14, + 0xa5e: 0x4a1a, 0xa5f: 0x4a20, 0xa60: 0x4a26, 0xa61: 0x4a2c, 0xa62: 0x4a32, 0xa63: 0x4a38, + 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef, + 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403, + 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383, + 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b, + 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab, + // Block 0x2a, offset 0xa80 + 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb, + 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7, + 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3, + 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7, + 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff, + 0xa9e: 0x098f, 0xa9f: 0x072f, + // Block 0x2b, offset 0xac0 + 0xac0: 0x2057, 0xac1: 0x205d, 0xac2: 0x2063, 0xac3: 0x2069, 0xac4: 0x206f, 0xac5: 0x2075, + 0xac6: 0x207b, 0xac7: 0x2081, 0xac8: 0x2087, 0xac9: 0x208d, 0xaca: 0x2093, 0xacb: 0x2099, + 0xacc: 0x209f, 0xacd: 0x20a5, 0xace: 0x2729, 0xacf: 0x2732, 0xad0: 0x273b, 0xad1: 0x2744, + 0xad2: 0x274d, 0xad3: 0x2756, 0xad4: 0x275f, 0xad5: 0x2768, 0xad6: 0x2771, 0xad7: 0x2783, + 0xad8: 0x278c, 0xad9: 0x2795, 0xada: 0x279e, 0xadb: 0x27a7, 0xadc: 0x277a, 0xadd: 0x2baf, + 0xade: 0x2af0, 0xae0: 0x20ab, 0xae1: 0x20c3, 0xae2: 0x20b7, 0xae3: 0x210b, + 0xae4: 0x20c9, 0xae5: 0x20e7, 0xae6: 0x20b1, 0xae7: 0x20e1, 0xae8: 0x20bd, 0xae9: 0x20f3, + 0xaea: 0x2123, 0xaeb: 0x2141, 0xaec: 0x213b, 0xaed: 0x212f, 0xaee: 0x217d, 0xaef: 0x2111, + 0xaf0: 0x211d, 0xaf1: 0x2135, 0xaf2: 0x2129, 0xaf3: 0x2153, 0xaf4: 0x20ff, 0xaf5: 0x2147, + 0xaf6: 0x2171, 0xaf7: 0x2159, 0xaf8: 0x20ed, 0xaf9: 0x20cf, 0xafa: 0x2105, 0xafb: 0x2117, + 0xafc: 0x214d, 0xafd: 0x20d5, 0xafe: 0x2177, 0xaff: 0x20f9, + // Block 0x2c, offset 0xb00 + 0xb00: 0x215f, 0xb01: 0x20db, 0xb02: 0x2165, 0xb03: 0x216b, 0xb04: 0x092f, 0xb05: 0x0b03, + 0xb06: 0x0ca7, 0xb07: 0x10c7, + 0xb10: 0x1bc7, 0xb11: 0x18a9, + 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb, + 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3, + 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327, + 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b, + 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e1b, 0xb2f: 0x2e23, + 0xb30: 0x2e2b, 0xb31: 0x2e33, 0xb32: 0x2e3b, 0xb33: 0x2e43, 0xb34: 0x2e4b, 0xb35: 0x2e53, + 0xb36: 0x2e63, 0xb37: 0x2e6b, 0xb38: 0x2e73, 0xb39: 0x2e7b, 0xb3a: 0x2e83, 0xb3b: 0x2e8b, + 0xb3c: 0x2ed6, 0xb3d: 0x2e9e, 0xb3e: 0x2e5b, + // Block 0x2d, offset 0xb40 + 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af, + 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f, + 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b, + 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f, + 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f, + 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b, + 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f, + 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b, + 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee, + 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900, + 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1cc9, 0xb81: 0x1cd8, 0xb82: 0x1ce7, 0xb83: 0x1cf6, 0xb84: 0x1d05, 0xb85: 0x1d14, + 0xb86: 0x1d23, 0xb87: 0x1d32, 0xb88: 0x1d41, 0xb89: 0x218f, 0xb8a: 0x21a1, 0xb8b: 0x21b3, + 0xb8c: 0x1954, 0xb8d: 0x1c07, 0xb8e: 0x19d5, 0xb8f: 0x1bab, 0xb90: 0x04cb, 0xb91: 0x04d3, + 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7, + 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f, + 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b, + 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543, + 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b, + 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f, + 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597, + 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2b0f, 0xbc1: 0x29ab, 0xbc2: 0x2b1f, 0xbc3: 0x2883, 0xbc4: 0x2ee7, 0xbc5: 0x288d, + 0xbc6: 0x2897, 0xbc7: 0x2f2b, 0xbc8: 0x29b8, 0xbc9: 0x28a1, 0xbca: 0x28ab, 0xbcb: 0x28b5, + 0xbcc: 0x29df, 0xbcd: 0x29ec, 0xbce: 0x29c5, 0xbcf: 0x29d2, 0xbd0: 0x2eac, 0xbd1: 0x29f9, + 0xbd2: 0x2a06, 0xbd3: 0x2bc1, 0xbd4: 0x26be, 0xbd5: 0x2bd4, 0xbd6: 0x2be7, 0xbd7: 0x2b2f, + 0xbd8: 0x2a13, 0xbd9: 0x2bfa, 0xbda: 0x2c0d, 0xbdb: 0x2a20, 0xbdc: 0x28bf, 0xbdd: 0x28c9, + 0xbde: 0x2eba, 0xbdf: 0x2a2d, 0xbe0: 0x2b3f, 0xbe1: 0x2ef8, 0xbe2: 0x28d3, 0xbe3: 0x28dd, + 0xbe4: 0x2a3a, 0xbe5: 0x28e7, 0xbe6: 0x28f1, 0xbe7: 0x26d3, 0xbe8: 0x26da, 0xbe9: 0x28fb, + 0xbea: 0x2905, 0xbeb: 0x2c20, 0xbec: 0x2a47, 0xbed: 0x2b4f, 0xbee: 0x2c33, 0xbef: 0x2a54, + 0xbf0: 0x2919, 0xbf1: 0x290f, 0xbf2: 0x2f3f, 0xbf3: 0x2a61, 0xbf4: 0x2c46, 0xbf5: 0x2923, + 0xbf6: 0x2b5f, 0xbf7: 0x292d, 0xbf8: 0x2a7b, 0xbf9: 0x2937, 0xbfa: 0x2a88, 0xbfb: 0x2f09, + 0xbfc: 0x2a6e, 0xbfd: 0x2b6f, 0xbfe: 0x2a95, 0xbff: 0x26e1, + // Block 0x30, offset 0xc00 + 0xc00: 0x2f1a, 0xc01: 0x2941, 0xc02: 0x294b, 0xc03: 0x2aa2, 0xc04: 0x2955, 0xc05: 0x295f, + 0xc06: 0x2969, 0xc07: 0x2b7f, 0xc08: 0x2aaf, 0xc09: 0x26e8, 0xc0a: 0x2c59, 0xc0b: 0x2e93, + 0xc0c: 0x2b8f, 0xc0d: 0x2abc, 0xc0e: 0x2ec8, 0xc0f: 0x2973, 0xc10: 0x297d, 0xc11: 0x2ac9, + 0xc12: 0x26ef, 0xc13: 0x2ad6, 0xc14: 0x2b9f, 0xc15: 0x26f6, 0xc16: 0x2c6c, 0xc17: 0x2987, + 0xc18: 0x1cba, 0xc19: 0x1cce, 0xc1a: 0x1cdd, 0xc1b: 0x1cec, 0xc1c: 0x1cfb, 0xc1d: 0x1d0a, + 0xc1e: 0x1d19, 0xc1f: 0x1d28, 0xc20: 0x1d37, 0xc21: 0x1d46, 0xc22: 0x2195, 0xc23: 0x21a7, + 0xc24: 0x21b9, 0xc25: 0x21c5, 0xc26: 0x21d1, 0xc27: 0x21dd, 0xc28: 0x21e9, 0xc29: 0x21f5, + 0xc2a: 0x2201, 0xc2b: 0x220d, 0xc2c: 0x2249, 0xc2d: 0x2255, 0xc2e: 0x2261, 0xc2f: 0x226d, + 0xc30: 0x2279, 0xc31: 0x1c17, 0xc32: 0x19c9, 0xc33: 0x1936, 0xc34: 0x1be7, 0xc35: 0x1a4a, + 0xc36: 0x1a59, 0xc37: 0x19cf, 0xc38: 0x1bff, 0xc39: 0x1c03, 0xc3a: 0x1960, 0xc3b: 0x2704, + 0xc3c: 0x2712, 0xc3d: 0x26fd, 0xc3e: 0x270b, 0xc3f: 0x2ae3, + // Block 0x31, offset 0xc40 + 0xc40: 0x1a4d, 0xc41: 0x1a35, 0xc42: 0x1c63, 0xc43: 0x1a1d, 0xc44: 0x19f6, 0xc45: 0x1969, + 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf3, 0xc49: 0x1d55, 0xc4a: 0x1a50, 0xc4b: 0x1a38, + 0xc4c: 0x1c67, 0xc4d: 0x1c73, 0xc4e: 0x1a29, 0xc4f: 0x19ff, 0xc50: 0x1957, 0xc51: 0x1c1f, + 0xc52: 0x1bb3, 0xc53: 0x1b9f, 0xc54: 0x1bcf, 0xc55: 0x1c77, 0xc56: 0x1a2c, 0xc57: 0x19cc, + 0xc58: 0x1a02, 0xc59: 0x19e1, 0xc5a: 0x1a44, 0xc5b: 0x1c7b, 0xc5c: 0x1a2f, 0xc5d: 0x19c3, + 0xc5e: 0x1a05, 0xc5f: 0x1c3f, 0xc60: 0x1bf7, 0xc61: 0x1a17, 0xc62: 0x1c27, 0xc63: 0x1c43, + 0xc64: 0x1bfb, 0xc65: 0x1a1a, 0xc66: 0x1c2b, 0xc67: 0x22eb, 0xc68: 0x22ff, 0xc69: 0x1999, + 0xc6a: 0x1c23, 0xc6b: 0x1bb7, 0xc6c: 0x1ba3, 0xc6d: 0x1c4b, 0xc6e: 0x2719, 0xc6f: 0x27b0, + 0xc70: 0x1a5c, 0xc71: 0x1a47, 0xc72: 0x1c7f, 0xc73: 0x1a32, 0xc74: 0x1a53, 0xc75: 0x1a3b, + 0xc76: 0x1c6b, 0xc77: 0x1a20, 0xc78: 0x19f9, 0xc79: 0x1984, 0xc7a: 0x1a56, 0xc7b: 0x1a3e, + 0xc7c: 0x1c6f, 0xc7d: 0x1a23, 0xc7e: 0x19fc, 0xc7f: 0x1987, + // Block 0x32, offset 0xc80 + 0xc80: 0x1c2f, 0xc81: 0x1bbb, 0xc82: 0x1d50, 0xc83: 0x1939, 0xc84: 0x19bd, 0xc85: 0x19c0, + 0xc86: 0x22f8, 0xc87: 0x1b97, 0xc88: 0x19c6, 0xc89: 0x194b, 0xc8a: 0x19e4, 0xc8b: 0x194e, + 0xc8c: 0x19ed, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a08, 0xc90: 0x1a0e, 0xc91: 0x1a11, + 0xc92: 0x1c33, 0xc93: 0x1a14, 0xc94: 0x1a26, 0xc95: 0x1c3b, 0xc96: 0x1c47, 0xc97: 0x1993, + 0xc98: 0x1d5a, 0xc99: 0x1bbf, 0xc9a: 0x1996, 0xc9b: 0x1a5f, 0xc9c: 0x19a8, 0xc9d: 0x19b7, + 0xc9e: 0x22e5, 0xc9f: 0x22df, 0xca0: 0x1cc4, 0xca1: 0x1cd3, 0xca2: 0x1ce2, 0xca3: 0x1cf1, + 0xca4: 0x1d00, 0xca5: 0x1d0f, 0xca6: 0x1d1e, 0xca7: 0x1d2d, 0xca8: 0x1d3c, 0xca9: 0x2189, + 0xcaa: 0x219b, 0xcab: 0x21ad, 0xcac: 0x21bf, 0xcad: 0x21cb, 0xcae: 0x21d7, 0xcaf: 0x21e3, + 0xcb0: 0x21ef, 0xcb1: 0x21fb, 0xcb2: 0x2207, 0xcb3: 0x2243, 0xcb4: 0x224f, 0xcb5: 0x225b, + 0xcb6: 0x2267, 0xcb7: 0x2273, 0xcb8: 0x227f, 0xcb9: 0x2285, 0xcba: 0x228b, 0xcbb: 0x2291, + 0xcbc: 0x2297, 0xcbd: 0x22a9, 0xcbe: 0x22af, 0xcbf: 0x1c13, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb, + 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943, + 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3, + 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43, + 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87, + 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283, + 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f, + 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853, + 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b, + 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b, + 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b, + // Block 0x34, offset 0xd00 + 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b, + 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f, + 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7, + 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127, + 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357, + 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873, + 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3, + 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b, + 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57, + 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb, + 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b, + // Block 0x35, offset 0xd40 + 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f, + 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3, + 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83, + 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193, + 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b, + 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b, + 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f, + 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b, + 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753, + 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777, + 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73, + // Block 0x36, offset 0xd80 + 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3, + 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47, + 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af, + 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df, + 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817, + 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3, + 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457, + 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b, + 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27, + 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f, + 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03, + 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27, + 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af, + 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3, + 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb, + 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353, + 0xde5: 0x1407, 0xde6: 0x1433, + 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7, + 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897, + 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93, + 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3, + // Block 0x38, offset 0xe00 + 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b, + 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f, + 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f, + 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f, + 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff, + 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f, + 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f, + 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3, + 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7, + 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963, + 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f, + // Block 0x39, offset 0xe40 + 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b, + 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb, + 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf, + 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f, + 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013, + 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f, + 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b, + 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b, + 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb, + 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343, + 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f, + // Block 0x3a, offset 0xe80 + 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b, + 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b, + 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2, + 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809, + 0xe98: 0x1617, 0xe99: 0x1627, + // Block 0x3b, offset 0xec0 + 0xec0: 0x19d8, 0xec1: 0x19db, 0xec2: 0x19de, 0xec3: 0x1c0b, 0xec4: 0x1c0f, 0xec5: 0x1a62, + 0xec6: 0x1a62, + 0xed3: 0x1d78, 0xed4: 0x1d69, 0xed5: 0x1d6e, 0xed6: 0x1d7d, 0xed7: 0x1d73, + 0xedd: 0x4393, + 0xede: 0x8115, 0xedf: 0x4405, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221, + 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017, + 0xeea: 0x43f3, 0xeeb: 0x43f9, 0xeec: 0x44f7, 0xeed: 0x44ff, 0xeee: 0x434b, 0xeef: 0x4351, + 0xef0: 0x4357, 0xef1: 0x435d, 0xef2: 0x4369, 0xef3: 0x436f, 0xef4: 0x4375, 0xef5: 0x4381, + 0xef6: 0x4387, 0xef8: 0x438d, 0xef9: 0x4399, 0xefa: 0x439f, 0xefb: 0x43a5, + 0xefc: 0x43b1, 0xefe: 0x43b7, + // Block 0x3c, offset 0xf00 + 0xf00: 0x43bd, 0xf01: 0x43c3, 0xf03: 0x43c9, 0xf04: 0x43cf, + 0xf06: 0x43db, 0xf07: 0x43e1, 0xf08: 0x43e7, 0xf09: 0x43ed, 0xf0a: 0x43ff, 0xf0b: 0x437b, + 0xf0c: 0x4363, 0xf0d: 0x43ab, 0xf0e: 0x43d5, 0xf0f: 0x1d82, 0xf10: 0x0299, 0xf11: 0x0299, + 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5, + 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab, + 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8, + 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c, + 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2, + 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1, + 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4, + 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7, + // Block 0x3d, offset 0xf40 + 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd, + 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9, + 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5, + 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1, + 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de, + 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7, + 0xf64: 0x4471, 0xf65: 0x4471, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed, + 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308, + 0xf70: 0x446b, 0xf71: 0x446b, + // Block 0x3e, offset 0xf80 + 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6, + 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x2052, + 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc, + 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d, + 0xfaa: 0x25ad, 0xfab: 0x25ad, 0xfac: 0x261d, 0xfad: 0x261d, 0xfae: 0x25ec, 0xfaf: 0x25ec, + 0xfb0: 0x2608, 0xfb1: 0x2608, 0xfb2: 0x2601, 0xfb3: 0x2601, 0xfb4: 0x260f, 0xfb5: 0x260f, + 0xfb6: 0x2616, 0xfb7: 0x2616, 0xfb8: 0x2616, 0xfb9: 0x25f3, 0xfba: 0x25f3, 0xfbb: 0x25f3, + 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x25b4, 0xfc1: 0x25bb, 0xfc2: 0x25d7, 0xfc3: 0x25f3, 0xfc4: 0x25fa, 0xfc5: 0x1d8c, + 0xfc6: 0x1d91, 0xfc7: 0x1d96, 0xfc8: 0x1da5, 0xfc9: 0x1db4, 0xfca: 0x1db9, 0xfcb: 0x1dbe, + 0xfcc: 0x1dc3, 0xfcd: 0x1dc8, 0xfce: 0x1dd7, 0xfcf: 0x1de6, 0xfd0: 0x1deb, 0xfd1: 0x1df0, + 0xfd2: 0x1dff, 0xfd3: 0x1e0e, 0xfd4: 0x1e13, 0xfd5: 0x1e18, 0xfd6: 0x1e1d, 0xfd7: 0x1e2c, + 0xfd8: 0x1e31, 0xfd9: 0x1e40, 0xfda: 0x1e45, 0xfdb: 0x1e4a, 0xfdc: 0x1e59, 0xfdd: 0x1e5e, + 0xfde: 0x1e63, 0xfdf: 0x1e6d, 0xfe0: 0x1ea9, 0xfe1: 0x1eb8, 0xfe2: 0x1ec7, 0xfe3: 0x1ecc, + 0xfe4: 0x1ed1, 0xfe5: 0x1edb, 0xfe6: 0x1eea, 0xfe7: 0x1eef, 0xfe8: 0x1efe, 0xfe9: 0x1f03, + 0xfea: 0x1f08, 0xfeb: 0x1f17, 0xfec: 0x1f1c, 0xfed: 0x1f2b, 0xfee: 0x1f30, 0xfef: 0x1f35, + 0xff0: 0x1f3a, 0xff1: 0x1f3f, 0xff2: 0x1f44, 0xff3: 0x1f49, 0xff4: 0x1f4e, 0xff5: 0x1f53, + 0xff6: 0x1f58, 0xff7: 0x1f5d, 0xff8: 0x1f62, 0xff9: 0x1f67, 0xffa: 0x1f6c, 0xffb: 0x1f71, + 0xffc: 0x1f76, 0xffd: 0x1f7b, 0xffe: 0x1f80, 0xfff: 0x1f8a, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f8f, 0x1001: 0x1f94, 0x1002: 0x1f99, 0x1003: 0x1fa3, 0x1004: 0x1fa8, 0x1005: 0x1fb2, + 0x1006: 0x1fb7, 0x1007: 0x1fbc, 0x1008: 0x1fc1, 0x1009: 0x1fc6, 0x100a: 0x1fcb, 0x100b: 0x1fd0, + 0x100c: 0x1fd5, 0x100d: 0x1fda, 0x100e: 0x1fe9, 0x100f: 0x1ff8, 0x1010: 0x1ffd, 0x1011: 0x2002, + 0x1012: 0x2007, 0x1013: 0x200c, 0x1014: 0x2011, 0x1015: 0x201b, 0x1016: 0x2020, 0x1017: 0x2025, + 0x1018: 0x2034, 0x1019: 0x2043, 0x101a: 0x2048, 0x101b: 0x4423, 0x101c: 0x4429, 0x101d: 0x445f, + 0x101e: 0x44b6, 0x101f: 0x44bd, 0x1020: 0x44c4, 0x1021: 0x44cb, 0x1022: 0x44d2, 0x1023: 0x44d9, + 0x1024: 0x25c9, 0x1025: 0x25d0, 0x1026: 0x25d7, 0x1027: 0x25de, 0x1028: 0x25f3, 0x1029: 0x25fa, + 0x102a: 0x1d9b, 0x102b: 0x1da0, 0x102c: 0x1da5, 0x102d: 0x1daa, 0x102e: 0x1db4, 0x102f: 0x1db9, + 0x1030: 0x1dcd, 0x1031: 0x1dd2, 0x1032: 0x1dd7, 0x1033: 0x1ddc, 0x1034: 0x1de6, 0x1035: 0x1deb, + 0x1036: 0x1df5, 0x1037: 0x1dfa, 0x1038: 0x1dff, 0x1039: 0x1e04, 0x103a: 0x1e0e, 0x103b: 0x1e13, + 0x103c: 0x1f3f, 0x103d: 0x1f44, 0x103e: 0x1f53, 0x103f: 0x1f58, + // Block 0x41, offset 0x1040 + 0x1040: 0x1f5d, 0x1041: 0x1f71, 0x1042: 0x1f76, 0x1043: 0x1f7b, 0x1044: 0x1f80, 0x1045: 0x1f99, + 0x1046: 0x1fa3, 0x1047: 0x1fa8, 0x1048: 0x1fad, 0x1049: 0x1fc1, 0x104a: 0x1fdf, 0x104b: 0x1fe4, + 0x104c: 0x1fe9, 0x104d: 0x1fee, 0x104e: 0x1ff8, 0x104f: 0x1ffd, 0x1050: 0x445f, 0x1051: 0x202a, + 0x1052: 0x202f, 0x1053: 0x2034, 0x1054: 0x2039, 0x1055: 0x2043, 0x1056: 0x2048, 0x1057: 0x25b4, + 0x1058: 0x25bb, 0x1059: 0x25c2, 0x105a: 0x25d7, 0x105b: 0x25e5, 0x105c: 0x1d8c, 0x105d: 0x1d91, + 0x105e: 0x1d96, 0x105f: 0x1da5, 0x1060: 0x1daf, 0x1061: 0x1dbe, 0x1062: 0x1dc3, 0x1063: 0x1dc8, + 0x1064: 0x1dd7, 0x1065: 0x1de1, 0x1066: 0x1dff, 0x1067: 0x1e18, 0x1068: 0x1e1d, 0x1069: 0x1e2c, + 0x106a: 0x1e31, 0x106b: 0x1e40, 0x106c: 0x1e4a, 0x106d: 0x1e59, 0x106e: 0x1e5e, 0x106f: 0x1e63, + 0x1070: 0x1e6d, 0x1071: 0x1ea9, 0x1072: 0x1eae, 0x1073: 0x1eb8, 0x1074: 0x1ec7, 0x1075: 0x1ecc, + 0x1076: 0x1ed1, 0x1077: 0x1edb, 0x1078: 0x1eea, 0x1079: 0x1efe, 0x107a: 0x1f03, 0x107b: 0x1f08, + 0x107c: 0x1f17, 0x107d: 0x1f1c, 0x107e: 0x1f2b, 0x107f: 0x1f30, + // Block 0x42, offset 0x1080 + 0x1080: 0x1f35, 0x1081: 0x1f3a, 0x1082: 0x1f49, 0x1083: 0x1f4e, 0x1084: 0x1f62, 0x1085: 0x1f67, + 0x1086: 0x1f6c, 0x1087: 0x1f71, 0x1088: 0x1f76, 0x1089: 0x1f8a, 0x108a: 0x1f8f, 0x108b: 0x1f94, + 0x108c: 0x1f99, 0x108d: 0x1f9e, 0x108e: 0x1fb2, 0x108f: 0x1fb7, 0x1090: 0x1fbc, 0x1091: 0x1fc1, + 0x1092: 0x1fd0, 0x1093: 0x1fd5, 0x1094: 0x1fda, 0x1095: 0x1fe9, 0x1096: 0x1ff3, 0x1097: 0x2002, + 0x1098: 0x2007, 0x1099: 0x4453, 0x109a: 0x201b, 0x109b: 0x2020, 0x109c: 0x2025, 0x109d: 0x2034, + 0x109e: 0x203e, 0x109f: 0x25d7, 0x10a0: 0x25e5, 0x10a1: 0x1da5, 0x10a2: 0x1daf, 0x10a3: 0x1dd7, + 0x10a4: 0x1de1, 0x10a5: 0x1dff, 0x10a6: 0x1e09, 0x10a7: 0x1e6d, 0x10a8: 0x1e72, 0x10a9: 0x1e95, + 0x10aa: 0x1e9a, 0x10ab: 0x1f71, 0x10ac: 0x1f76, 0x10ad: 0x1f99, 0x10ae: 0x1fe9, 0x10af: 0x1ff3, + 0x10b0: 0x2034, 0x10b1: 0x203e, 0x10b2: 0x4507, 0x10b3: 0x450f, 0x10b4: 0x4517, 0x10b5: 0x1ef4, + 0x10b6: 0x1ef9, 0x10b7: 0x1f0d, 0x10b8: 0x1f12, 0x10b9: 0x1f21, 0x10ba: 0x1f26, 0x10bb: 0x1e77, + 0x10bc: 0x1e7c, 0x10bd: 0x1e9f, 0x10be: 0x1ea4, 0x10bf: 0x1e36, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x1e3b, 0x10c1: 0x1e22, 0x10c2: 0x1e27, 0x10c3: 0x1e4f, 0x10c4: 0x1e54, 0x10c5: 0x1ebd, + 0x10c6: 0x1ec2, 0x10c7: 0x1ee0, 0x10c8: 0x1ee5, 0x10c9: 0x1e81, 0x10ca: 0x1e86, 0x10cb: 0x1e8b, + 0x10cc: 0x1e95, 0x10cd: 0x1e90, 0x10ce: 0x1e68, 0x10cf: 0x1eb3, 0x10d0: 0x1ed6, 0x10d1: 0x1ef4, + 0x10d2: 0x1ef9, 0x10d3: 0x1f0d, 0x10d4: 0x1f12, 0x10d5: 0x1f21, 0x10d6: 0x1f26, 0x10d7: 0x1e77, + 0x10d8: 0x1e7c, 0x10d9: 0x1e9f, 0x10da: 0x1ea4, 0x10db: 0x1e36, 0x10dc: 0x1e3b, 0x10dd: 0x1e22, + 0x10de: 0x1e27, 0x10df: 0x1e4f, 0x10e0: 0x1e54, 0x10e1: 0x1ebd, 0x10e2: 0x1ec2, 0x10e3: 0x1ee0, + 0x10e4: 0x1ee5, 0x10e5: 0x1e81, 0x10e6: 0x1e86, 0x10e7: 0x1e8b, 0x10e8: 0x1e95, 0x10e9: 0x1e90, + 0x10ea: 0x1e68, 0x10eb: 0x1eb3, 0x10ec: 0x1ed6, 0x10ed: 0x1e81, 0x10ee: 0x1e86, 0x10ef: 0x1e8b, + 0x10f0: 0x1e95, 0x10f1: 0x1e72, 0x10f2: 0x1e9a, 0x10f3: 0x1eef, 0x10f4: 0x1e59, 0x10f5: 0x1e5e, + 0x10f6: 0x1e63, 0x10f7: 0x1e81, 0x10f8: 0x1e86, 0x10f9: 0x1e8b, 0x10fa: 0x1eef, 0x10fb: 0x1efe, + 0x10fc: 0x440b, 0x10fd: 0x440b, + // Block 0x44, offset 0x1100 + 0x1110: 0x2314, 0x1111: 0x2329, + 0x1112: 0x2329, 0x1113: 0x2330, 0x1114: 0x2337, 0x1115: 0x234c, 0x1116: 0x2353, 0x1117: 0x235a, + 0x1118: 0x237d, 0x1119: 0x237d, 0x111a: 0x23a0, 0x111b: 0x2399, 0x111c: 0x23b5, 0x111d: 0x23a7, + 0x111e: 0x23ae, 0x111f: 0x23d1, 0x1120: 0x23d1, 0x1121: 0x23ca, 0x1122: 0x23d8, 0x1123: 0x23d8, + 0x1124: 0x2402, 0x1125: 0x2402, 0x1126: 0x241e, 0x1127: 0x23e6, 0x1128: 0x23e6, 0x1129: 0x23df, + 0x112a: 0x23f4, 0x112b: 0x23f4, 0x112c: 0x23fb, 0x112d: 0x23fb, 0x112e: 0x2425, 0x112f: 0x2433, + 0x1130: 0x2433, 0x1131: 0x243a, 0x1132: 0x243a, 0x1133: 0x2441, 0x1134: 0x2448, 0x1135: 0x244f, + 0x1136: 0x2456, 0x1137: 0x2456, 0x1138: 0x245d, 0x1139: 0x246b, 0x113a: 0x2479, 0x113b: 0x2472, + 0x113c: 0x2480, 0x113d: 0x2480, 0x113e: 0x2495, 0x113f: 0x249c, + // Block 0x45, offset 0x1140 + 0x1140: 0x24cd, 0x1141: 0x24db, 0x1142: 0x24d4, 0x1143: 0x24b8, 0x1144: 0x24b8, 0x1145: 0x24e2, + 0x1146: 0x24e2, 0x1147: 0x24e9, 0x1148: 0x24e9, 0x1149: 0x2513, 0x114a: 0x251a, 0x114b: 0x2521, + 0x114c: 0x24f7, 0x114d: 0x2505, 0x114e: 0x2528, 0x114f: 0x252f, + 0x1152: 0x24fe, 0x1153: 0x2583, 0x1154: 0x258a, 0x1155: 0x2560, 0x1156: 0x2567, 0x1157: 0x254b, + 0x1158: 0x254b, 0x1159: 0x2552, 0x115a: 0x257c, 0x115b: 0x2575, 0x115c: 0x259f, 0x115d: 0x259f, + 0x115e: 0x230d, 0x115f: 0x2322, 0x1160: 0x231b, 0x1161: 0x2345, 0x1162: 0x233e, 0x1163: 0x2368, + 0x1164: 0x2361, 0x1165: 0x238b, 0x1166: 0x236f, 0x1167: 0x2384, 0x1168: 0x23bc, 0x1169: 0x2409, + 0x116a: 0x23ed, 0x116b: 0x242c, 0x116c: 0x24c6, 0x116d: 0x24f0, 0x116e: 0x2598, 0x116f: 0x2591, + 0x1170: 0x25a6, 0x1171: 0x253d, 0x1172: 0x24a3, 0x1173: 0x256e, 0x1174: 0x2495, 0x1175: 0x24cd, + 0x1176: 0x2464, 0x1177: 0x24b1, 0x1178: 0x2544, 0x1179: 0x2536, 0x117a: 0x24bf, 0x117b: 0x24aa, + 0x117c: 0x24bf, 0x117d: 0x2544, 0x117e: 0x2376, 0x117f: 0x2392, + // Block 0x46, offset 0x1180 + 0x1180: 0x250c, 0x1181: 0x2487, 0x1182: 0x2306, 0x1183: 0x24aa, 0x1184: 0x244f, 0x1185: 0x241e, + 0x1186: 0x23c3, 0x1187: 0x2559, + 0x11b0: 0x2417, 0x11b1: 0x248e, 0x11b2: 0x27c2, 0x11b3: 0x27b9, 0x11b4: 0x27ef, 0x11b5: 0x27dd, + 0x11b6: 0x27cb, 0x11b7: 0x27e6, 0x11b8: 0x27f8, 0x11b9: 0x2410, 0x11ba: 0x2c7f, 0x11bb: 0x2aff, + 0x11bc: 0x27d4, + // Block 0x47, offset 0x11c0 + 0x11d0: 0x0019, 0x11d1: 0x0483, + 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf, + 0x11d8: 0x04c3, 0x11d9: 0x1b5f, + 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132, + 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d, + 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132, + 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, + 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab, + 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b, + // Block 0x48, offset 0x1200 + 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7, + 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x426c, 0x120a: 0x426c, 0x120b: 0x426c, + 0x120c: 0x426c, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483, + 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, + 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7, + 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, + 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, + 0x122a: 0x000b, 0x122b: 0x0041, + 0x1230: 0x42ad, 0x1231: 0x442f, 0x1232: 0x42b2, 0x1234: 0x42b7, + 0x1236: 0x42bc, 0x1237: 0x4435, 0x1238: 0x42c1, 0x1239: 0x443b, 0x123a: 0x42c6, 0x123b: 0x4441, + 0x123c: 0x42cb, 0x123d: 0x4447, 0x123e: 0x42d0, 0x123f: 0x444d, + // Block 0x49, offset 0x1240 + 0x1240: 0x0236, 0x1241: 0x4411, 0x1242: 0x4411, 0x1243: 0x4417, 0x1244: 0x4417, 0x1245: 0x4459, + 0x1246: 0x4459, 0x1247: 0x441d, 0x1248: 0x441d, 0x1249: 0x4465, 0x124a: 0x4465, 0x124b: 0x4465, + 0x124c: 0x4465, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c, + 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242, + 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248, + 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b, + 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251, + 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a, + 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260, + 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263, + 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c, + 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f, + 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275, + 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278, + 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e, + 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281, + 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287, + 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d, + 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e03, + 0x12b6: 0x2e03, 0x12b7: 0x2e0b, 0x12b8: 0x2e0b, 0x12b9: 0x2e13, 0x12ba: 0x2e13, 0x12bb: 0x1f85, + 0x12bc: 0x1f85, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, + 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, + 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, + 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, + 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, + 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f, + 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7, + 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f, + 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb, + 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503, + 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f, + 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547, + 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f, + 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583, + 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7, + 0x131e: 0x4a7b, 0x131f: 0x4a81, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3e, + 0x1324: 0x031b, 0x1325: 0x4a44, 0x1326: 0x4a4a, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327, + 0x132a: 0x4a50, 0x132b: 0x4a56, 0x132c: 0x4a5c, 0x132d: 0x4a62, 0x132e: 0x4a68, 0x132f: 0x4a6e, + 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337, + 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f, + 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b, + // Block 0x4d, offset 0x1340 + 0x1342: 0x49c0, 0x1343: 0x49c6, 0x1344: 0x49cc, 0x1345: 0x49d2, + 0x1346: 0x49d8, 0x1347: 0x49de, 0x134a: 0x49e4, 0x134b: 0x49ea, + 0x134c: 0x49f0, 0x134d: 0x49f6, 0x134e: 0x49fc, 0x134f: 0x4a02, + 0x1352: 0x4a08, 0x1353: 0x4a0e, 0x1354: 0x4a14, 0x1355: 0x4a1a, 0x1356: 0x4a20, 0x1357: 0x4a26, + 0x135a: 0x4a2c, 0x135b: 0x4a32, 0x135c: 0x4a38, + 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4267, + 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b, + 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, + 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, + 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, + 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, + 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, + 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, + 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176, + 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188, + 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a, + 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9, + 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0, + 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209, + 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, + 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, + 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, + 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, + 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, + 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, + 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, + 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, + 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, + // Block 0x50, offset 0x1400 + 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a, + 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e, + 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, + 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4, + 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, + 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290, + 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272, + // Block 0x51, offset 0x1440 + 0x1442: 0x0248, + 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e, + 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263, + 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e, + 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4, + 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248, + 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, + 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, + 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242, + 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, + 0x147c: 0x0293, 0x147e: 0x02cc, + // Block 0x52, offset 0x1480 + 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a, + 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e, + 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263, + 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e, + 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272, + 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251, + 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290, + 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f, + 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242, + 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8, + 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927, + 0x14d0: 0x1a8f, 0x14d1: 0x1a93, + 0x14d2: 0x1a97, 0x14d3: 0x1a9b, 0x14d4: 0x1a9f, 0x14d5: 0x1aa3, 0x14d6: 0x1aa7, 0x14d7: 0x1aab, + 0x14d8: 0x1aaf, 0x14d9: 0x1ab3, 0x14da: 0x1ab7, 0x14db: 0x1abb, 0x14dc: 0x1abf, 0x14dd: 0x1ac3, + 0x14de: 0x1ac7, 0x14df: 0x1acb, 0x14e0: 0x1acf, 0x14e1: 0x1ad3, 0x14e2: 0x1ad7, 0x14e3: 0x1adb, + 0x14e4: 0x1adf, 0x14e5: 0x1ae3, 0x14e6: 0x1ae7, 0x14e7: 0x1aeb, 0x14e8: 0x1aef, 0x14e9: 0x1af3, + 0x14ea: 0x2721, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b4, + 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, + 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, + 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, + // Block 0x54, offset 0x1500 + 0x1500: 0x26b0, 0x1501: 0x26c5, 0x1502: 0x0503, + 0x1510: 0x0c0f, 0x1511: 0x0a47, + 0x1512: 0x08d3, 0x1513: 0x45c7, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff, + 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b, + 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b, + 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf, + 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b, + 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43, + 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443, + // Block 0x55, offset 0x1540 + 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757, + 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773, + 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3, + 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf, + 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff, + 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f, + 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867, + 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af, + 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93, + 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3, + 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917, + // Block 0x56, offset 0x1580 + 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f, + 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983, + 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf, + 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3, + 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef, + 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23, + 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37, + 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63, + 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f, + 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692, + 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb, + 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f, + 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6, + 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9, + 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83, + 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3, + 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf, + 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7, + 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f, + 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b, + 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f, + // Block 0x58, offset 0x1600 + 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87, + 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb, + 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7, + 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663, + 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd, + 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7, + 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b, + 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f, + 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7, + 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700, + 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb, + // Block 0x59, offset 0x1640 + 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23, + 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53, + 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714, + 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b, + 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719, + 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728, + 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37, + 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57, + 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737, + 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741, + 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b, + // Block 0x5a, offset 0x1680 + 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff, + 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637, + 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f, + 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093, + 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782, + 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3, + 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7, + 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133, + 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa, + 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4, + 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7, + 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7, + 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b, + 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd, + 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f, + 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f, + 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273, + 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677, + 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7, + 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb, + 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f, + // Block 0x5c, offset 0x1700 + 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5, + 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa, + 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b, + 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7, + 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665, + 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f, + 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477, + 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693, + 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb, + 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b, + 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b, + // Block 0x5d, offset 0x1740 + 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567, + 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7, + 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7, + 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef, + 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, + 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, + 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, + 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, + 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, + // Block 0x5, offset 0x140 + 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, + 0x14d: 0x8a, + 0x15c: 0x8b, 0x15f: 0x8c, + 0x162: 0x8d, 0x164: 0x8e, + 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, + 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, + 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28, + 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, + 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, + 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, + 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + 0x374: 0xcb, + 0x37d: 0xcc, + // Block 0xe, offset 0x380 + 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0, + 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4, + 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9, + 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc, + 0x3a0: 0xdd, 0x3a7: 0xde, + 0x3a8: 0xdf, 0x3a9: 0xe0, 0x3aa: 0xe1, + 0x3b0: 0xda, 0x3b5: 0xe2, 0x3b6: 0xe3, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xe4, 0x3ec: 0xe5, + // Block 0x10, offset 0x400 + 0x432: 0xe6, + // Block 0x11, offset 0x440 + 0x445: 0xe7, 0x446: 0xe8, 0x447: 0xe9, + 0x449: 0xea, + 0x450: 0xeb, 0x451: 0xec, 0x452: 0xed, 0x453: 0xee, 0x454: 0xef, 0x455: 0xf0, 0x456: 0xf1, 0x457: 0xf2, + 0x458: 0xf3, 0x459: 0xf4, 0x45a: 0x4c, 0x45b: 0xf5, 0x45c: 0xf6, 0x45d: 0xf7, 0x45e: 0xf8, 0x45f: 0x4d, + // Block 0x12, offset 0x480 + 0x480: 0xf9, 0x484: 0xe5, + 0x48b: 0xfa, + 0x4a3: 0xfb, 0x4a5: 0xfc, + 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x51, 0x4c5: 0xfd, 0x4c6: 0xfe, + 0x4c8: 0x52, 0x4c9: 0xff, + // Block 0x14, offset 0x500 + 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, + 0x528: 0x5b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 164 entries, 328 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x133, 0x13c, 0x13e, 0x141, 0x143, 0x14e, 0x159, 0x167, 0x175, 0x185, 0x193, 0x19a, 0x1a0, 0x1af, 0x1b3, 0x1b5, 0x1b9, 0x1bb, 0x1be, 0x1c0, 0x1c3, 0x1c5, 0x1c8, 0x1ca, 0x1cc, 0x1ce, 0x1da, 0x1e4, 0x1ee, 0x1f1, 0x1f5, 0x1f7, 0x1f9, 0x1fb, 0x1fd, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20e, 0x211, 0x215, 0x217, 0x21e, 0x224, 0x22a, 0x232, 0x238, 0x23e, 0x244, 0x248, 0x24a, 0x24c, 0x24e, 0x250, 0x256, 0x259, 0x25b, 0x261, 0x264, 0x26c, 0x273, 0x276, 0x279, 0x27b, 0x27e, 0x286, 0x28a, 0x291, 0x294, 0x29a, 0x29c, 0x29e, 0x2a1, 0x2a3, 0x2a6, 0x2a8, 0x2aa, 0x2ac, 0x2ae, 0x2b1, 0x2b3, 0x2b5, 0x2b7, 0x2b9, 0x2c6, 0x2d0, 0x2d2, 0x2d4, 0x2d8, 0x2dd, 0x2e9, 0x2ee, 0x2f7, 0x2fd, 0x302, 0x306, 0x30b, 0x30f, 0x31f, 0x32d, 0x33b, 0x349, 0x34f, 0x351, 0x353, 0x356, 0x361, 0x363} + +// nfkcSparseValues: 877 entries, 3508 bytes +var nfkcSparseValues = [877]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x427b, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4267, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425d, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4294, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221f, lo: 0xbc, hi: 0xbc}, + {value: 0x2213, lo: 0xbd, hi: 0xbd}, + {value: 0x22b5, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e5, lo: 0xa0, hi: 0xa1}, + {value: 0x4717, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x4271, lo: 0x98, hi: 0x98}, + {value: 0x4276, lo: 0x99, hi: 0x9a}, + {value: 0x4299, lo: 0x9b, hi: 0x9b}, + {value: 0x4262, lo: 0x9c, hi: 0x9c}, + {value: 0x4285, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a8, lo: 0x90, hi: 0x90}, + {value: 0x37b4, lo: 0x91, hi: 0x91}, + {value: 0x37a2, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x381a, lo: 0x97, hi: 0x97}, + {value: 0x37e4, lo: 0x9c, hi: 0x9c}, + {value: 0x37cc, lo: 0x9d, hi: 0x9d}, + {value: 0x37f6, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x3820, lo: 0xb6, hi: 0xb6}, + {value: 0x3826, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3844, lo: 0xa2, hi: 0xa2}, + {value: 0x384a, lo: 0xa3, hi: 0xa3}, + {value: 0x3856, lo: 0xa4, hi: 0xa4}, + {value: 0x3850, lo: 0xa5, hi: 0xa5}, + {value: 0x385c, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386e, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x3862, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3868, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xc, offset 0x70 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x75 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x77 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3edb, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee3, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3eeb, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0xf, offset 0x7f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451f, lo: 0x98, hi: 0x9f}, + // Block 0x10, offset 0x86 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x11, offset 0x89 + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ca1, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455f, lo: 0x9c, hi: 0x9d}, + {value: 0x456f, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x91 + {value: 0x0000, lo: 0x03}, + {value: 0x4597, lo: 0xb3, hi: 0xb3}, + {value: 0x459f, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x13, offset 0x95 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4577, lo: 0x99, hi: 0x9b}, + {value: 0x458f, lo: 0x9e, hi: 0x9e}, + // Block 0x14, offset 0x99 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x16, offset 0x9d + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb9, lo: 0x88, hi: 0x88}, + {value: 0x2cb1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cc1, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a7, lo: 0x9c, hi: 0x9c}, + {value: 0x45af, lo: 0x9d, hi: 0x9d}, + // Block 0x17, offset 0xa6 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc9, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x18, offset 0xaa + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cd1, lo: 0x8a, hi: 0x8a}, + {value: 0x2ce1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd9, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x19, offset 0xb1 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef3, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1a, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0xb9 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce9, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cf1, lo: 0x87, hi: 0x87}, + {value: 0x2cf9, lo: 0x88, hi: 0x88}, + {value: 0x2f53, lo: 0x8a, hi: 0x8a}, + {value: 0x2ddb, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xc3 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1d, offset 0xc6 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2d01, lo: 0x8a, hi: 0x8a}, + {value: 0x2d11, lo: 0x8b, hi: 0x8b}, + {value: 0x2d09, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1e, offset 0xcd + {value: 0x6be7, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3efb, lo: 0x9a, hi: 0x9a}, + {value: 0x2f5b, lo: 0x9c, hi: 0x9c}, + {value: 0x2de6, lo: 0x9d, hi: 0x9d}, + {value: 0x2d19, lo: 0x9e, hi: 0x9f}, + // Block 0x1f, offset 0xd5 + {value: 0x0000, lo: 0x03}, + {value: 0x2624, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x20, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x21, offset 0xdb + {value: 0x0000, lo: 0x03}, + {value: 0x2639, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xdf + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x262b, lo: 0x9c, hi: 0x9c}, + {value: 0x2632, lo: 0x9d, hi: 0x9d}, + // Block 0x23, offset 0xe3 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x24, offset 0xe9 + {value: 0x0000, lo: 0x10}, + {value: 0x2647, lo: 0x83, hi: 0x83}, + {value: 0x264e, lo: 0x8d, hi: 0x8d}, + {value: 0x2655, lo: 0x92, hi: 0x92}, + {value: 0x265c, lo: 0x97, hi: 0x97}, + {value: 0x2663, lo: 0x9c, hi: 0x9c}, + {value: 0x2640, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a87, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a90, lo: 0xb5, hi: 0xb5}, + {value: 0x45b7, lo: 0xb6, hi: 0xb6}, + {value: 0x45f7, lo: 0xb7, hi: 0xb7}, + {value: 0x45bf, lo: 0xb8, hi: 0xb8}, + {value: 0x4602, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x25, offset 0xfa + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a99, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x2671, lo: 0x93, hi: 0x93}, + {value: 0x2678, lo: 0x9d, hi: 0x9d}, + {value: 0x267f, lo: 0xa2, hi: 0xa2}, + {value: 0x2686, lo: 0xa7, hi: 0xa7}, + {value: 0x268d, lo: 0xac, hi: 0xac}, + {value: 0x266a, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0x106 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x27, offset 0x108 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d21, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x28, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x29, offset 0x110 + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2a, offset 0x112 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x114 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x116 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x118 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x11a + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x11c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x11f + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x122 + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x124 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x127 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x12a + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x12e + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x133 + {value: 0x0000, lo: 0x08}, + {value: 0x2d69, lo: 0x80, hi: 0x80}, + {value: 0x2d71, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d79, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x13c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x13e + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x141 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x143 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x14e + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x159 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429e, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5f, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2694, lo: 0xb3, hi: 0xb3}, + {value: 0x2801, lo: 0xb4, hi: 0xb4}, + {value: 0x269b, lo: 0xb6, hi: 0xb6}, + {value: 0x280b, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x426c, lo: 0xbe, hi: 0xbe}, + // Block 0x3d, offset 0x167 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x2991, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x175 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x199c, lo: 0xa8, hi: 0xa8}, + // Block 0x3f, offset 0x185 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x40, offset 0x193 + {value: 0x0007, lo: 0x06}, + {value: 0x2183, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bbc, lo: 0x9a, hi: 0x9b}, + {value: 0x3bca, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x19a + {value: 0x000e, lo: 0x05}, + {value: 0x3bd1, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd8, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x1a0 + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be6, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bed, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf4, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bfb, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3c02, lo: 0xa6, hi: 0xa6}, + {value: 0x26a2, lo: 0xac, hi: 0xad}, + {value: 0x26a9, lo: 0xaf, hi: 0xaf}, + {value: 0x281f, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x1af + {value: 0x0007, lo: 0x03}, + {value: 0x3c6b, lo: 0xa0, hi: 0xa1}, + {value: 0x3c95, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbf, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x1b3 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x1b5 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x46, offset 0x1b9 + {value: 0x0000, lo: 0x01}, + {value: 0x299e, lo: 0x8c, hi: 0x8c}, + // Block 0x47, offset 0x1bb + {value: 0x0266, lo: 0x02}, + {value: 0x1b8f, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x48, offset 0x1be + {value: 0x0000, lo: 0x01}, + {value: 0x44e0, lo: 0x9c, hi: 0x9c}, + // Block 0x49, offset 0x1c0 + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4a, offset 0x1c3 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4b, offset 0x1c5 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4c, offset 0x1c8 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4d, offset 0x1ca + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x4e, offset 0x1cc + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x4f, offset 0x1ce + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x50, offset 0x1da + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x51, offset 0x1e4 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3e, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a44, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a50, lo: 0xba, hi: 0xbf}, + // Block 0x52, offset 0x1ee + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x53, offset 0x1f1 + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x54, offset 0x1f5 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x55, offset 0x1f7 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x56, offset 0x1f9 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x57, offset 0x1fb + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x58, offset 0x1fd + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x59, offset 0x200 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5a, offset 0x202 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5b, offset 0x204 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5c, offset 0x206 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5d, offset 0x208 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x5e, offset 0x20e + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x5f, offset 0x211 + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x60, offset 0x215 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x61, offset 0x217 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x62, offset 0x21e + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x63, offset 0x224 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x64, offset 0x22a + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x65, offset 0x232 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x66, offset 0x238 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x67, offset 0x23e + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x68, offset 0x244 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x69, offset 0x248 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6a, offset 0x24a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6b, offset 0x24c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6c, offset 0x24e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6d, offset 0x250 + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x6e, offset 0x256 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x6f, offset 0x259 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x70, offset 0x25b + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x71, offset 0x261 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x264 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x423b, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4245, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424f, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x73, offset 0x26c + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d81, lo: 0xae, hi: 0xae}, + {value: 0x2d8b, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x74, offset 0x273 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x75, offset 0x276 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x76, offset 0x279 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x77, offset 0x27b + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x78, offset 0x27e + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d95, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9f, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x79, offset 0x286 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7a, offset 0x28a + {value: 0x6b57, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db3, lo: 0xbb, hi: 0xbb}, + {value: 0x2da9, lo: 0xbc, hi: 0xbd}, + {value: 0x2dbd, lo: 0xbe, hi: 0xbe}, + // Block 0x7b, offset 0x291 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7c, offset 0x294 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc7, lo: 0xba, hi: 0xba}, + {value: 0x2dd1, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7d, offset 0x29a + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7e, offset 0x29c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7f, offset 0x29e + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x80, offset 0x2a1 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x81, offset 0x2a3 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x82, offset 0x2a6 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + // Block 0x83, offset 0x2a8 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x84, offset 0x2aa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x85, offset 0x2ac + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x86, offset 0x2ae + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x87, offset 0x2b1 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x88, offset 0x2b3 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x89, offset 0x2b5 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x8a, offset 0x2b7 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8b, offset 0x2b9 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cf, lo: 0x9e, hi: 0x9e}, + {value: 0x45d9, lo: 0x9f, hi: 0x9f}, + {value: 0x460d, lo: 0xa0, hi: 0xa0}, + {value: 0x461b, lo: 0xa1, hi: 0xa1}, + {value: 0x4629, lo: 0xa2, hi: 0xa2}, + {value: 0x4637, lo: 0xa3, hi: 0xa3}, + {value: 0x4645, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8c, offset 0x2c6 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e3, lo: 0xbb, hi: 0xbb}, + {value: 0x45ed, lo: 0xbc, hi: 0xbc}, + {value: 0x4653, lo: 0xbd, hi: 0xbd}, + {value: 0x466f, lo: 0xbe, hi: 0xbe}, + {value: 0x4661, lo: 0xbf, hi: 0xbf}, + // Block 0x8d, offset 0x2d0 + {value: 0x0000, lo: 0x01}, + {value: 0x467d, lo: 0x80, hi: 0x80}, + // Block 0x8e, offset 0x2d2 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8f, offset 0x2d4 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x90, offset 0x2d8 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x91, offset 0x2dd + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x92, offset 0x2e9 + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x93, offset 0x2ee + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x94, offset 0x2f7 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x95, offset 0x2fd + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x96, offset 0x302 + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x97, offset 0x306 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x98, offset 0x30b + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x99, offset 0x30f + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x9a, offset 0x31f + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x9b, offset 0x32d + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x9c, offset 0x33b + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x9d, offset 0x349 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x9e, offset 0x34f + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xac, hi: 0xaf}, + // Block 0x9f, offset 0x351 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0xa0, offset 0x353 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0xa1, offset 0x356 + {value: 0x0002, lo: 0x0a}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1984, lo: 0x8b, hi: 0x8b}, + {value: 0x199f, lo: 0x8c, hi: 0x8c}, + {value: 0x19a5, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc3, lo: 0x8e, hi: 0x8e}, + {value: 0x19b1, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + {value: 0x1981, lo: 0xac, hi: 0xac}, + // Block 0xa2, offset 0x361 + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0xa3, offset 0x363 + {value: 0x0028, lo: 0x09}, + {value: 0x2865, lo: 0x80, hi: 0x80}, + {value: 0x2829, lo: 0x81, hi: 0x81}, + {value: 0x2833, lo: 0x82, hi: 0x82}, + {value: 0x2847, lo: 0x83, hi: 0x84}, + {value: 0x2851, lo: 0x85, hi: 0x86}, + {value: 0x283d, lo: 0x87, hi: 0x87}, + {value: 0x285b, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 55KB (55977 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go index a01274a8e..942906929 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go @@ -4,6 +4,8 @@ package norm +import "sync" + const ( // Version is the Unicode edition from which the tables are derived. Version = "9.0.0" @@ -6687,947 +6689,949 @@ var nfkcSparseValues = [875]valueRange{ } // recompMap: 7520 bytes (entries only) -var recompMap = map[uint32]rune{ - 0x00410300: 0x00C0, - 0x00410301: 0x00C1, - 0x00410302: 0x00C2, - 0x00410303: 0x00C3, - 0x00410308: 0x00C4, - 0x0041030A: 0x00C5, - 0x00430327: 0x00C7, - 0x00450300: 0x00C8, - 0x00450301: 0x00C9, - 0x00450302: 0x00CA, - 0x00450308: 0x00CB, - 0x00490300: 0x00CC, - 0x00490301: 0x00CD, - 0x00490302: 0x00CE, - 0x00490308: 0x00CF, - 0x004E0303: 0x00D1, - 0x004F0300: 0x00D2, - 0x004F0301: 0x00D3, - 0x004F0302: 0x00D4, - 0x004F0303: 0x00D5, - 0x004F0308: 0x00D6, - 0x00550300: 0x00D9, - 0x00550301: 0x00DA, - 0x00550302: 0x00DB, - 0x00550308: 0x00DC, - 0x00590301: 0x00DD, - 0x00610300: 0x00E0, - 0x00610301: 0x00E1, - 0x00610302: 0x00E2, - 0x00610303: 0x00E3, - 0x00610308: 0x00E4, - 0x0061030A: 0x00E5, - 0x00630327: 0x00E7, - 0x00650300: 0x00E8, - 0x00650301: 0x00E9, - 0x00650302: 0x00EA, - 0x00650308: 0x00EB, - 0x00690300: 0x00EC, - 0x00690301: 0x00ED, - 0x00690302: 0x00EE, - 0x00690308: 0x00EF, - 0x006E0303: 0x00F1, - 0x006F0300: 0x00F2, - 0x006F0301: 0x00F3, - 0x006F0302: 0x00F4, - 0x006F0303: 0x00F5, - 0x006F0308: 0x00F6, - 0x00750300: 0x00F9, - 0x00750301: 0x00FA, - 0x00750302: 0x00FB, - 0x00750308: 0x00FC, - 0x00790301: 0x00FD, - 0x00790308: 0x00FF, - 0x00410304: 0x0100, - 0x00610304: 0x0101, - 0x00410306: 0x0102, - 0x00610306: 0x0103, - 0x00410328: 0x0104, - 0x00610328: 0x0105, - 0x00430301: 0x0106, - 0x00630301: 0x0107, - 0x00430302: 0x0108, - 0x00630302: 0x0109, - 0x00430307: 0x010A, - 0x00630307: 0x010B, - 0x0043030C: 0x010C, - 0x0063030C: 0x010D, - 0x0044030C: 0x010E, - 0x0064030C: 0x010F, - 0x00450304: 0x0112, - 0x00650304: 0x0113, - 0x00450306: 0x0114, - 0x00650306: 0x0115, - 0x00450307: 0x0116, - 0x00650307: 0x0117, - 0x00450328: 0x0118, - 0x00650328: 0x0119, - 0x0045030C: 0x011A, - 0x0065030C: 0x011B, - 0x00470302: 0x011C, - 0x00670302: 0x011D, - 0x00470306: 0x011E, - 0x00670306: 0x011F, - 0x00470307: 0x0120, - 0x00670307: 0x0121, - 0x00470327: 0x0122, - 0x00670327: 0x0123, - 0x00480302: 0x0124, - 0x00680302: 0x0125, - 0x00490303: 0x0128, - 0x00690303: 0x0129, - 0x00490304: 0x012A, - 0x00690304: 0x012B, - 0x00490306: 0x012C, - 0x00690306: 0x012D, - 0x00490328: 0x012E, - 0x00690328: 0x012F, - 0x00490307: 0x0130, - 0x004A0302: 0x0134, - 0x006A0302: 0x0135, - 0x004B0327: 0x0136, - 0x006B0327: 0x0137, - 0x004C0301: 0x0139, - 0x006C0301: 0x013A, - 0x004C0327: 0x013B, - 0x006C0327: 0x013C, - 0x004C030C: 0x013D, - 0x006C030C: 0x013E, - 0x004E0301: 0x0143, - 0x006E0301: 0x0144, - 0x004E0327: 0x0145, - 0x006E0327: 0x0146, - 0x004E030C: 0x0147, - 0x006E030C: 0x0148, - 0x004F0304: 0x014C, - 0x006F0304: 0x014D, - 0x004F0306: 0x014E, - 0x006F0306: 0x014F, - 0x004F030B: 0x0150, - 0x006F030B: 0x0151, - 0x00520301: 0x0154, - 0x00720301: 0x0155, - 0x00520327: 0x0156, - 0x00720327: 0x0157, - 0x0052030C: 0x0158, - 0x0072030C: 0x0159, - 0x00530301: 0x015A, - 0x00730301: 0x015B, - 0x00530302: 0x015C, - 0x00730302: 0x015D, - 0x00530327: 0x015E, - 0x00730327: 0x015F, - 0x0053030C: 0x0160, - 0x0073030C: 0x0161, - 0x00540327: 0x0162, - 0x00740327: 0x0163, - 0x0054030C: 0x0164, - 0x0074030C: 0x0165, - 0x00550303: 0x0168, - 0x00750303: 0x0169, - 0x00550304: 0x016A, - 0x00750304: 0x016B, - 0x00550306: 0x016C, - 0x00750306: 0x016D, - 0x0055030A: 0x016E, - 0x0075030A: 0x016F, - 0x0055030B: 0x0170, - 0x0075030B: 0x0171, - 0x00550328: 0x0172, - 0x00750328: 0x0173, - 0x00570302: 0x0174, - 0x00770302: 0x0175, - 0x00590302: 0x0176, - 0x00790302: 0x0177, - 0x00590308: 0x0178, - 0x005A0301: 0x0179, - 0x007A0301: 0x017A, - 0x005A0307: 0x017B, - 0x007A0307: 0x017C, - 0x005A030C: 0x017D, - 0x007A030C: 0x017E, - 0x004F031B: 0x01A0, - 0x006F031B: 0x01A1, - 0x0055031B: 0x01AF, - 0x0075031B: 0x01B0, - 0x0041030C: 0x01CD, - 0x0061030C: 0x01CE, - 0x0049030C: 0x01CF, - 0x0069030C: 0x01D0, - 0x004F030C: 0x01D1, - 0x006F030C: 0x01D2, - 0x0055030C: 0x01D3, - 0x0075030C: 0x01D4, - 0x00DC0304: 0x01D5, - 0x00FC0304: 0x01D6, - 0x00DC0301: 0x01D7, - 0x00FC0301: 0x01D8, - 0x00DC030C: 0x01D9, - 0x00FC030C: 0x01DA, - 0x00DC0300: 0x01DB, - 0x00FC0300: 0x01DC, - 0x00C40304: 0x01DE, - 0x00E40304: 0x01DF, - 0x02260304: 0x01E0, - 0x02270304: 0x01E1, - 0x00C60304: 0x01E2, - 0x00E60304: 0x01E3, - 0x0047030C: 0x01E6, - 0x0067030C: 0x01E7, - 0x004B030C: 0x01E8, - 0x006B030C: 0x01E9, - 0x004F0328: 0x01EA, - 0x006F0328: 0x01EB, - 0x01EA0304: 0x01EC, - 0x01EB0304: 0x01ED, - 0x01B7030C: 0x01EE, - 0x0292030C: 0x01EF, - 0x006A030C: 0x01F0, - 0x00470301: 0x01F4, - 0x00670301: 0x01F5, - 0x004E0300: 0x01F8, - 0x006E0300: 0x01F9, - 0x00C50301: 0x01FA, - 0x00E50301: 0x01FB, - 0x00C60301: 0x01FC, - 0x00E60301: 0x01FD, - 0x00D80301: 0x01FE, - 0x00F80301: 0x01FF, - 0x0041030F: 0x0200, - 0x0061030F: 0x0201, - 0x00410311: 0x0202, - 0x00610311: 0x0203, - 0x0045030F: 0x0204, - 0x0065030F: 0x0205, - 0x00450311: 0x0206, - 0x00650311: 0x0207, - 0x0049030F: 0x0208, - 0x0069030F: 0x0209, - 0x00490311: 0x020A, - 0x00690311: 0x020B, - 0x004F030F: 0x020C, - 0x006F030F: 0x020D, - 0x004F0311: 0x020E, - 0x006F0311: 0x020F, - 0x0052030F: 0x0210, - 0x0072030F: 0x0211, - 0x00520311: 0x0212, - 0x00720311: 0x0213, - 0x0055030F: 0x0214, - 0x0075030F: 0x0215, - 0x00550311: 0x0216, - 0x00750311: 0x0217, - 0x00530326: 0x0218, - 0x00730326: 0x0219, - 0x00540326: 0x021A, - 0x00740326: 0x021B, - 0x0048030C: 0x021E, - 0x0068030C: 0x021F, - 0x00410307: 0x0226, - 0x00610307: 0x0227, - 0x00450327: 0x0228, - 0x00650327: 0x0229, - 0x00D60304: 0x022A, - 0x00F60304: 0x022B, - 0x00D50304: 0x022C, - 0x00F50304: 0x022D, - 0x004F0307: 0x022E, - 0x006F0307: 0x022F, - 0x022E0304: 0x0230, - 0x022F0304: 0x0231, - 0x00590304: 0x0232, - 0x00790304: 0x0233, - 0x00A80301: 0x0385, - 0x03910301: 0x0386, - 0x03950301: 0x0388, - 0x03970301: 0x0389, - 0x03990301: 0x038A, - 0x039F0301: 0x038C, - 0x03A50301: 0x038E, - 0x03A90301: 0x038F, - 0x03CA0301: 0x0390, - 0x03990308: 0x03AA, - 0x03A50308: 0x03AB, - 0x03B10301: 0x03AC, - 0x03B50301: 0x03AD, - 0x03B70301: 0x03AE, - 0x03B90301: 0x03AF, - 0x03CB0301: 0x03B0, - 0x03B90308: 0x03CA, - 0x03C50308: 0x03CB, - 0x03BF0301: 0x03CC, - 0x03C50301: 0x03CD, - 0x03C90301: 0x03CE, - 0x03D20301: 0x03D3, - 0x03D20308: 0x03D4, - 0x04150300: 0x0400, - 0x04150308: 0x0401, - 0x04130301: 0x0403, - 0x04060308: 0x0407, - 0x041A0301: 0x040C, - 0x04180300: 0x040D, - 0x04230306: 0x040E, - 0x04180306: 0x0419, - 0x04380306: 0x0439, - 0x04350300: 0x0450, - 0x04350308: 0x0451, - 0x04330301: 0x0453, - 0x04560308: 0x0457, - 0x043A0301: 0x045C, - 0x04380300: 0x045D, - 0x04430306: 0x045E, - 0x0474030F: 0x0476, - 0x0475030F: 0x0477, - 0x04160306: 0x04C1, - 0x04360306: 0x04C2, - 0x04100306: 0x04D0, - 0x04300306: 0x04D1, - 0x04100308: 0x04D2, - 0x04300308: 0x04D3, - 0x04150306: 0x04D6, - 0x04350306: 0x04D7, - 0x04D80308: 0x04DA, - 0x04D90308: 0x04DB, - 0x04160308: 0x04DC, - 0x04360308: 0x04DD, - 0x04170308: 0x04DE, - 0x04370308: 0x04DF, - 0x04180304: 0x04E2, - 0x04380304: 0x04E3, - 0x04180308: 0x04E4, - 0x04380308: 0x04E5, - 0x041E0308: 0x04E6, - 0x043E0308: 0x04E7, - 0x04E80308: 0x04EA, - 0x04E90308: 0x04EB, - 0x042D0308: 0x04EC, - 0x044D0308: 0x04ED, - 0x04230304: 0x04EE, - 0x04430304: 0x04EF, - 0x04230308: 0x04F0, - 0x04430308: 0x04F1, - 0x0423030B: 0x04F2, - 0x0443030B: 0x04F3, - 0x04270308: 0x04F4, - 0x04470308: 0x04F5, - 0x042B0308: 0x04F8, - 0x044B0308: 0x04F9, - 0x06270653: 0x0622, - 0x06270654: 0x0623, - 0x06480654: 0x0624, - 0x06270655: 0x0625, - 0x064A0654: 0x0626, - 0x06D50654: 0x06C0, - 0x06C10654: 0x06C2, - 0x06D20654: 0x06D3, - 0x0928093C: 0x0929, - 0x0930093C: 0x0931, - 0x0933093C: 0x0934, - 0x09C709BE: 0x09CB, - 0x09C709D7: 0x09CC, - 0x0B470B56: 0x0B48, - 0x0B470B3E: 0x0B4B, - 0x0B470B57: 0x0B4C, - 0x0B920BD7: 0x0B94, - 0x0BC60BBE: 0x0BCA, - 0x0BC70BBE: 0x0BCB, - 0x0BC60BD7: 0x0BCC, - 0x0C460C56: 0x0C48, - 0x0CBF0CD5: 0x0CC0, - 0x0CC60CD5: 0x0CC7, - 0x0CC60CD6: 0x0CC8, - 0x0CC60CC2: 0x0CCA, - 0x0CCA0CD5: 0x0CCB, - 0x0D460D3E: 0x0D4A, - 0x0D470D3E: 0x0D4B, - 0x0D460D57: 0x0D4C, - 0x0DD90DCA: 0x0DDA, - 0x0DD90DCF: 0x0DDC, - 0x0DDC0DCA: 0x0DDD, - 0x0DD90DDF: 0x0DDE, - 0x1025102E: 0x1026, - 0x1B051B35: 0x1B06, - 0x1B071B35: 0x1B08, - 0x1B091B35: 0x1B0A, - 0x1B0B1B35: 0x1B0C, - 0x1B0D1B35: 0x1B0E, - 0x1B111B35: 0x1B12, - 0x1B3A1B35: 0x1B3B, - 0x1B3C1B35: 0x1B3D, - 0x1B3E1B35: 0x1B40, - 0x1B3F1B35: 0x1B41, - 0x1B421B35: 0x1B43, - 0x00410325: 0x1E00, - 0x00610325: 0x1E01, - 0x00420307: 0x1E02, - 0x00620307: 0x1E03, - 0x00420323: 0x1E04, - 0x00620323: 0x1E05, - 0x00420331: 0x1E06, - 0x00620331: 0x1E07, - 0x00C70301: 0x1E08, - 0x00E70301: 0x1E09, - 0x00440307: 0x1E0A, - 0x00640307: 0x1E0B, - 0x00440323: 0x1E0C, - 0x00640323: 0x1E0D, - 0x00440331: 0x1E0E, - 0x00640331: 0x1E0F, - 0x00440327: 0x1E10, - 0x00640327: 0x1E11, - 0x0044032D: 0x1E12, - 0x0064032D: 0x1E13, - 0x01120300: 0x1E14, - 0x01130300: 0x1E15, - 0x01120301: 0x1E16, - 0x01130301: 0x1E17, - 0x0045032D: 0x1E18, - 0x0065032D: 0x1E19, - 0x00450330: 0x1E1A, - 0x00650330: 0x1E1B, - 0x02280306: 0x1E1C, - 0x02290306: 0x1E1D, - 0x00460307: 0x1E1E, - 0x00660307: 0x1E1F, - 0x00470304: 0x1E20, - 0x00670304: 0x1E21, - 0x00480307: 0x1E22, - 0x00680307: 0x1E23, - 0x00480323: 0x1E24, - 0x00680323: 0x1E25, - 0x00480308: 0x1E26, - 0x00680308: 0x1E27, - 0x00480327: 0x1E28, - 0x00680327: 0x1E29, - 0x0048032E: 0x1E2A, - 0x0068032E: 0x1E2B, - 0x00490330: 0x1E2C, - 0x00690330: 0x1E2D, - 0x00CF0301: 0x1E2E, - 0x00EF0301: 0x1E2F, - 0x004B0301: 0x1E30, - 0x006B0301: 0x1E31, - 0x004B0323: 0x1E32, - 0x006B0323: 0x1E33, - 0x004B0331: 0x1E34, - 0x006B0331: 0x1E35, - 0x004C0323: 0x1E36, - 0x006C0323: 0x1E37, - 0x1E360304: 0x1E38, - 0x1E370304: 0x1E39, - 0x004C0331: 0x1E3A, - 0x006C0331: 0x1E3B, - 0x004C032D: 0x1E3C, - 0x006C032D: 0x1E3D, - 0x004D0301: 0x1E3E, - 0x006D0301: 0x1E3F, - 0x004D0307: 0x1E40, - 0x006D0307: 0x1E41, - 0x004D0323: 0x1E42, - 0x006D0323: 0x1E43, - 0x004E0307: 0x1E44, - 0x006E0307: 0x1E45, - 0x004E0323: 0x1E46, - 0x006E0323: 0x1E47, - 0x004E0331: 0x1E48, - 0x006E0331: 0x1E49, - 0x004E032D: 0x1E4A, - 0x006E032D: 0x1E4B, - 0x00D50301: 0x1E4C, - 0x00F50301: 0x1E4D, - 0x00D50308: 0x1E4E, - 0x00F50308: 0x1E4F, - 0x014C0300: 0x1E50, - 0x014D0300: 0x1E51, - 0x014C0301: 0x1E52, - 0x014D0301: 0x1E53, - 0x00500301: 0x1E54, - 0x00700301: 0x1E55, - 0x00500307: 0x1E56, - 0x00700307: 0x1E57, - 0x00520307: 0x1E58, - 0x00720307: 0x1E59, - 0x00520323: 0x1E5A, - 0x00720323: 0x1E5B, - 0x1E5A0304: 0x1E5C, - 0x1E5B0304: 0x1E5D, - 0x00520331: 0x1E5E, - 0x00720331: 0x1E5F, - 0x00530307: 0x1E60, - 0x00730307: 0x1E61, - 0x00530323: 0x1E62, - 0x00730323: 0x1E63, - 0x015A0307: 0x1E64, - 0x015B0307: 0x1E65, - 0x01600307: 0x1E66, - 0x01610307: 0x1E67, - 0x1E620307: 0x1E68, - 0x1E630307: 0x1E69, - 0x00540307: 0x1E6A, - 0x00740307: 0x1E6B, - 0x00540323: 0x1E6C, - 0x00740323: 0x1E6D, - 0x00540331: 0x1E6E, - 0x00740331: 0x1E6F, - 0x0054032D: 0x1E70, - 0x0074032D: 0x1E71, - 0x00550324: 0x1E72, - 0x00750324: 0x1E73, - 0x00550330: 0x1E74, - 0x00750330: 0x1E75, - 0x0055032D: 0x1E76, - 0x0075032D: 0x1E77, - 0x01680301: 0x1E78, - 0x01690301: 0x1E79, - 0x016A0308: 0x1E7A, - 0x016B0308: 0x1E7B, - 0x00560303: 0x1E7C, - 0x00760303: 0x1E7D, - 0x00560323: 0x1E7E, - 0x00760323: 0x1E7F, - 0x00570300: 0x1E80, - 0x00770300: 0x1E81, - 0x00570301: 0x1E82, - 0x00770301: 0x1E83, - 0x00570308: 0x1E84, - 0x00770308: 0x1E85, - 0x00570307: 0x1E86, - 0x00770307: 0x1E87, - 0x00570323: 0x1E88, - 0x00770323: 0x1E89, - 0x00580307: 0x1E8A, - 0x00780307: 0x1E8B, - 0x00580308: 0x1E8C, - 0x00780308: 0x1E8D, - 0x00590307: 0x1E8E, - 0x00790307: 0x1E8F, - 0x005A0302: 0x1E90, - 0x007A0302: 0x1E91, - 0x005A0323: 0x1E92, - 0x007A0323: 0x1E93, - 0x005A0331: 0x1E94, - 0x007A0331: 0x1E95, - 0x00680331: 0x1E96, - 0x00740308: 0x1E97, - 0x0077030A: 0x1E98, - 0x0079030A: 0x1E99, - 0x017F0307: 0x1E9B, - 0x00410323: 0x1EA0, - 0x00610323: 0x1EA1, - 0x00410309: 0x1EA2, - 0x00610309: 0x1EA3, - 0x00C20301: 0x1EA4, - 0x00E20301: 0x1EA5, - 0x00C20300: 0x1EA6, - 0x00E20300: 0x1EA7, - 0x00C20309: 0x1EA8, - 0x00E20309: 0x1EA9, - 0x00C20303: 0x1EAA, - 0x00E20303: 0x1EAB, - 0x1EA00302: 0x1EAC, - 0x1EA10302: 0x1EAD, - 0x01020301: 0x1EAE, - 0x01030301: 0x1EAF, - 0x01020300: 0x1EB0, - 0x01030300: 0x1EB1, - 0x01020309: 0x1EB2, - 0x01030309: 0x1EB3, - 0x01020303: 0x1EB4, - 0x01030303: 0x1EB5, - 0x1EA00306: 0x1EB6, - 0x1EA10306: 0x1EB7, - 0x00450323: 0x1EB8, - 0x00650323: 0x1EB9, - 0x00450309: 0x1EBA, - 0x00650309: 0x1EBB, - 0x00450303: 0x1EBC, - 0x00650303: 0x1EBD, - 0x00CA0301: 0x1EBE, - 0x00EA0301: 0x1EBF, - 0x00CA0300: 0x1EC0, - 0x00EA0300: 0x1EC1, - 0x00CA0309: 0x1EC2, - 0x00EA0309: 0x1EC3, - 0x00CA0303: 0x1EC4, - 0x00EA0303: 0x1EC5, - 0x1EB80302: 0x1EC6, - 0x1EB90302: 0x1EC7, - 0x00490309: 0x1EC8, - 0x00690309: 0x1EC9, - 0x00490323: 0x1ECA, - 0x00690323: 0x1ECB, - 0x004F0323: 0x1ECC, - 0x006F0323: 0x1ECD, - 0x004F0309: 0x1ECE, - 0x006F0309: 0x1ECF, - 0x00D40301: 0x1ED0, - 0x00F40301: 0x1ED1, - 0x00D40300: 0x1ED2, - 0x00F40300: 0x1ED3, - 0x00D40309: 0x1ED4, - 0x00F40309: 0x1ED5, - 0x00D40303: 0x1ED6, - 0x00F40303: 0x1ED7, - 0x1ECC0302: 0x1ED8, - 0x1ECD0302: 0x1ED9, - 0x01A00301: 0x1EDA, - 0x01A10301: 0x1EDB, - 0x01A00300: 0x1EDC, - 0x01A10300: 0x1EDD, - 0x01A00309: 0x1EDE, - 0x01A10309: 0x1EDF, - 0x01A00303: 0x1EE0, - 0x01A10303: 0x1EE1, - 0x01A00323: 0x1EE2, - 0x01A10323: 0x1EE3, - 0x00550323: 0x1EE4, - 0x00750323: 0x1EE5, - 0x00550309: 0x1EE6, - 0x00750309: 0x1EE7, - 0x01AF0301: 0x1EE8, - 0x01B00301: 0x1EE9, - 0x01AF0300: 0x1EEA, - 0x01B00300: 0x1EEB, - 0x01AF0309: 0x1EEC, - 0x01B00309: 0x1EED, - 0x01AF0303: 0x1EEE, - 0x01B00303: 0x1EEF, - 0x01AF0323: 0x1EF0, - 0x01B00323: 0x1EF1, - 0x00590300: 0x1EF2, - 0x00790300: 0x1EF3, - 0x00590323: 0x1EF4, - 0x00790323: 0x1EF5, - 0x00590309: 0x1EF6, - 0x00790309: 0x1EF7, - 0x00590303: 0x1EF8, - 0x00790303: 0x1EF9, - 0x03B10313: 0x1F00, - 0x03B10314: 0x1F01, - 0x1F000300: 0x1F02, - 0x1F010300: 0x1F03, - 0x1F000301: 0x1F04, - 0x1F010301: 0x1F05, - 0x1F000342: 0x1F06, - 0x1F010342: 0x1F07, - 0x03910313: 0x1F08, - 0x03910314: 0x1F09, - 0x1F080300: 0x1F0A, - 0x1F090300: 0x1F0B, - 0x1F080301: 0x1F0C, - 0x1F090301: 0x1F0D, - 0x1F080342: 0x1F0E, - 0x1F090342: 0x1F0F, - 0x03B50313: 0x1F10, - 0x03B50314: 0x1F11, - 0x1F100300: 0x1F12, - 0x1F110300: 0x1F13, - 0x1F100301: 0x1F14, - 0x1F110301: 0x1F15, - 0x03950313: 0x1F18, - 0x03950314: 0x1F19, - 0x1F180300: 0x1F1A, - 0x1F190300: 0x1F1B, - 0x1F180301: 0x1F1C, - 0x1F190301: 0x1F1D, - 0x03B70313: 0x1F20, - 0x03B70314: 0x1F21, - 0x1F200300: 0x1F22, - 0x1F210300: 0x1F23, - 0x1F200301: 0x1F24, - 0x1F210301: 0x1F25, - 0x1F200342: 0x1F26, - 0x1F210342: 0x1F27, - 0x03970313: 0x1F28, - 0x03970314: 0x1F29, - 0x1F280300: 0x1F2A, - 0x1F290300: 0x1F2B, - 0x1F280301: 0x1F2C, - 0x1F290301: 0x1F2D, - 0x1F280342: 0x1F2E, - 0x1F290342: 0x1F2F, - 0x03B90313: 0x1F30, - 0x03B90314: 0x1F31, - 0x1F300300: 0x1F32, - 0x1F310300: 0x1F33, - 0x1F300301: 0x1F34, - 0x1F310301: 0x1F35, - 0x1F300342: 0x1F36, - 0x1F310342: 0x1F37, - 0x03990313: 0x1F38, - 0x03990314: 0x1F39, - 0x1F380300: 0x1F3A, - 0x1F390300: 0x1F3B, - 0x1F380301: 0x1F3C, - 0x1F390301: 0x1F3D, - 0x1F380342: 0x1F3E, - 0x1F390342: 0x1F3F, - 0x03BF0313: 0x1F40, - 0x03BF0314: 0x1F41, - 0x1F400300: 0x1F42, - 0x1F410300: 0x1F43, - 0x1F400301: 0x1F44, - 0x1F410301: 0x1F45, - 0x039F0313: 0x1F48, - 0x039F0314: 0x1F49, - 0x1F480300: 0x1F4A, - 0x1F490300: 0x1F4B, - 0x1F480301: 0x1F4C, - 0x1F490301: 0x1F4D, - 0x03C50313: 0x1F50, - 0x03C50314: 0x1F51, - 0x1F500300: 0x1F52, - 0x1F510300: 0x1F53, - 0x1F500301: 0x1F54, - 0x1F510301: 0x1F55, - 0x1F500342: 0x1F56, - 0x1F510342: 0x1F57, - 0x03A50314: 0x1F59, - 0x1F590300: 0x1F5B, - 0x1F590301: 0x1F5D, - 0x1F590342: 0x1F5F, - 0x03C90313: 0x1F60, - 0x03C90314: 0x1F61, - 0x1F600300: 0x1F62, - 0x1F610300: 0x1F63, - 0x1F600301: 0x1F64, - 0x1F610301: 0x1F65, - 0x1F600342: 0x1F66, - 0x1F610342: 0x1F67, - 0x03A90313: 0x1F68, - 0x03A90314: 0x1F69, - 0x1F680300: 0x1F6A, - 0x1F690300: 0x1F6B, - 0x1F680301: 0x1F6C, - 0x1F690301: 0x1F6D, - 0x1F680342: 0x1F6E, - 0x1F690342: 0x1F6F, - 0x03B10300: 0x1F70, - 0x03B50300: 0x1F72, - 0x03B70300: 0x1F74, - 0x03B90300: 0x1F76, - 0x03BF0300: 0x1F78, - 0x03C50300: 0x1F7A, - 0x03C90300: 0x1F7C, - 0x1F000345: 0x1F80, - 0x1F010345: 0x1F81, - 0x1F020345: 0x1F82, - 0x1F030345: 0x1F83, - 0x1F040345: 0x1F84, - 0x1F050345: 0x1F85, - 0x1F060345: 0x1F86, - 0x1F070345: 0x1F87, - 0x1F080345: 0x1F88, - 0x1F090345: 0x1F89, - 0x1F0A0345: 0x1F8A, - 0x1F0B0345: 0x1F8B, - 0x1F0C0345: 0x1F8C, - 0x1F0D0345: 0x1F8D, - 0x1F0E0345: 0x1F8E, - 0x1F0F0345: 0x1F8F, - 0x1F200345: 0x1F90, - 0x1F210345: 0x1F91, - 0x1F220345: 0x1F92, - 0x1F230345: 0x1F93, - 0x1F240345: 0x1F94, - 0x1F250345: 0x1F95, - 0x1F260345: 0x1F96, - 0x1F270345: 0x1F97, - 0x1F280345: 0x1F98, - 0x1F290345: 0x1F99, - 0x1F2A0345: 0x1F9A, - 0x1F2B0345: 0x1F9B, - 0x1F2C0345: 0x1F9C, - 0x1F2D0345: 0x1F9D, - 0x1F2E0345: 0x1F9E, - 0x1F2F0345: 0x1F9F, - 0x1F600345: 0x1FA0, - 0x1F610345: 0x1FA1, - 0x1F620345: 0x1FA2, - 0x1F630345: 0x1FA3, - 0x1F640345: 0x1FA4, - 0x1F650345: 0x1FA5, - 0x1F660345: 0x1FA6, - 0x1F670345: 0x1FA7, - 0x1F680345: 0x1FA8, - 0x1F690345: 0x1FA9, - 0x1F6A0345: 0x1FAA, - 0x1F6B0345: 0x1FAB, - 0x1F6C0345: 0x1FAC, - 0x1F6D0345: 0x1FAD, - 0x1F6E0345: 0x1FAE, - 0x1F6F0345: 0x1FAF, - 0x03B10306: 0x1FB0, - 0x03B10304: 0x1FB1, - 0x1F700345: 0x1FB2, - 0x03B10345: 0x1FB3, - 0x03AC0345: 0x1FB4, - 0x03B10342: 0x1FB6, - 0x1FB60345: 0x1FB7, - 0x03910306: 0x1FB8, - 0x03910304: 0x1FB9, - 0x03910300: 0x1FBA, - 0x03910345: 0x1FBC, - 0x00A80342: 0x1FC1, - 0x1F740345: 0x1FC2, - 0x03B70345: 0x1FC3, - 0x03AE0345: 0x1FC4, - 0x03B70342: 0x1FC6, - 0x1FC60345: 0x1FC7, - 0x03950300: 0x1FC8, - 0x03970300: 0x1FCA, - 0x03970345: 0x1FCC, - 0x1FBF0300: 0x1FCD, - 0x1FBF0301: 0x1FCE, - 0x1FBF0342: 0x1FCF, - 0x03B90306: 0x1FD0, - 0x03B90304: 0x1FD1, - 0x03CA0300: 0x1FD2, - 0x03B90342: 0x1FD6, - 0x03CA0342: 0x1FD7, - 0x03990306: 0x1FD8, - 0x03990304: 0x1FD9, - 0x03990300: 0x1FDA, - 0x1FFE0300: 0x1FDD, - 0x1FFE0301: 0x1FDE, - 0x1FFE0342: 0x1FDF, - 0x03C50306: 0x1FE0, - 0x03C50304: 0x1FE1, - 0x03CB0300: 0x1FE2, - 0x03C10313: 0x1FE4, - 0x03C10314: 0x1FE5, - 0x03C50342: 0x1FE6, - 0x03CB0342: 0x1FE7, - 0x03A50306: 0x1FE8, - 0x03A50304: 0x1FE9, - 0x03A50300: 0x1FEA, - 0x03A10314: 0x1FEC, - 0x00A80300: 0x1FED, - 0x1F7C0345: 0x1FF2, - 0x03C90345: 0x1FF3, - 0x03CE0345: 0x1FF4, - 0x03C90342: 0x1FF6, - 0x1FF60345: 0x1FF7, - 0x039F0300: 0x1FF8, - 0x03A90300: 0x1FFA, - 0x03A90345: 0x1FFC, - 0x21900338: 0x219A, - 0x21920338: 0x219B, - 0x21940338: 0x21AE, - 0x21D00338: 0x21CD, - 0x21D40338: 0x21CE, - 0x21D20338: 0x21CF, - 0x22030338: 0x2204, - 0x22080338: 0x2209, - 0x220B0338: 0x220C, - 0x22230338: 0x2224, - 0x22250338: 0x2226, - 0x223C0338: 0x2241, - 0x22430338: 0x2244, - 0x22450338: 0x2247, - 0x22480338: 0x2249, - 0x003D0338: 0x2260, - 0x22610338: 0x2262, - 0x224D0338: 0x226D, - 0x003C0338: 0x226E, - 0x003E0338: 0x226F, - 0x22640338: 0x2270, - 0x22650338: 0x2271, - 0x22720338: 0x2274, - 0x22730338: 0x2275, - 0x22760338: 0x2278, - 0x22770338: 0x2279, - 0x227A0338: 0x2280, - 0x227B0338: 0x2281, - 0x22820338: 0x2284, - 0x22830338: 0x2285, - 0x22860338: 0x2288, - 0x22870338: 0x2289, - 0x22A20338: 0x22AC, - 0x22A80338: 0x22AD, - 0x22A90338: 0x22AE, - 0x22AB0338: 0x22AF, - 0x227C0338: 0x22E0, - 0x227D0338: 0x22E1, - 0x22910338: 0x22E2, - 0x22920338: 0x22E3, - 0x22B20338: 0x22EA, - 0x22B30338: 0x22EB, - 0x22B40338: 0x22EC, - 0x22B50338: 0x22ED, - 0x304B3099: 0x304C, - 0x304D3099: 0x304E, - 0x304F3099: 0x3050, - 0x30513099: 0x3052, - 0x30533099: 0x3054, - 0x30553099: 0x3056, - 0x30573099: 0x3058, - 0x30593099: 0x305A, - 0x305B3099: 0x305C, - 0x305D3099: 0x305E, - 0x305F3099: 0x3060, - 0x30613099: 0x3062, - 0x30643099: 0x3065, - 0x30663099: 0x3067, - 0x30683099: 0x3069, - 0x306F3099: 0x3070, - 0x306F309A: 0x3071, - 0x30723099: 0x3073, - 0x3072309A: 0x3074, - 0x30753099: 0x3076, - 0x3075309A: 0x3077, - 0x30783099: 0x3079, - 0x3078309A: 0x307A, - 0x307B3099: 0x307C, - 0x307B309A: 0x307D, - 0x30463099: 0x3094, - 0x309D3099: 0x309E, - 0x30AB3099: 0x30AC, - 0x30AD3099: 0x30AE, - 0x30AF3099: 0x30B0, - 0x30B13099: 0x30B2, - 0x30B33099: 0x30B4, - 0x30B53099: 0x30B6, - 0x30B73099: 0x30B8, - 0x30B93099: 0x30BA, - 0x30BB3099: 0x30BC, - 0x30BD3099: 0x30BE, - 0x30BF3099: 0x30C0, - 0x30C13099: 0x30C2, - 0x30C43099: 0x30C5, - 0x30C63099: 0x30C7, - 0x30C83099: 0x30C9, - 0x30CF3099: 0x30D0, - 0x30CF309A: 0x30D1, - 0x30D23099: 0x30D3, - 0x30D2309A: 0x30D4, - 0x30D53099: 0x30D6, - 0x30D5309A: 0x30D7, - 0x30D83099: 0x30D9, - 0x30D8309A: 0x30DA, - 0x30DB3099: 0x30DC, - 0x30DB309A: 0x30DD, - 0x30A63099: 0x30F4, - 0x30EF3099: 0x30F7, - 0x30F03099: 0x30F8, - 0x30F13099: 0x30F9, - 0x30F23099: 0x30FA, - 0x30FD3099: 0x30FE, - 0x109910BA: 0x1109A, - 0x109B10BA: 0x1109C, - 0x10A510BA: 0x110AB, - 0x11311127: 0x1112E, - 0x11321127: 0x1112F, - 0x1347133E: 0x1134B, - 0x13471357: 0x1134C, - 0x14B914BA: 0x114BB, - 0x14B914B0: 0x114BC, - 0x14B914BD: 0x114BE, - 0x15B815AF: 0x115BA, - 0x15B915AF: 0x115BB, -} +var recompMap map[uint32]rune +var recompMapOnce sync.Once -// Total size of tables: 53KB (54006 bytes) +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 53KB (54006 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/transform.go b/vendor/golang.org/x/text/unicode/norm/transform.go index 9f47efbaf..a1d366ae4 100644 --- a/vendor/golang.org/x/text/unicode/norm/transform.go +++ b/vendor/golang.org/x/text/unicode/norm/transform.go @@ -18,7 +18,6 @@ func (Form) Reset() {} // Users should either catch ErrShortDst and allow dst to grow or have dst be at // least of size MaxTransformChunkSize to be guaranteed of progress. func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := 0 // Cap the maximum number of src bytes to check. b := src eof := atEOF @@ -27,13 +26,14 @@ func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) eof = false b = b[:ns] } - i, ok := formTable[f].quickSpan(inputBytes(b), n, len(b), eof) - n += copy(dst[n:], b[n:i]) + i, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), eof) + n := copy(dst, b[:i]) if !ok { nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF) return nDst + n, nSrc + n, err } - if n < len(src) && !atEOF { + + if err == nil && n < len(src) && !atEOF { err = transform.ErrShortSrc } return n, n, err @@ -79,7 +79,7 @@ func (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) nSrc += n nDst += n if ok { - if n < rb.nsrc && !atEOF { + if err == nil && n < rb.nsrc && !atEOF { err = transform.ErrShortSrc } return nDst, nSrc, err diff --git a/vendor/modules.txt b/vendor/modules.txt index 0daa75375..df838a640 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,5 +1,3 @@ -# github.com/BurntSushi/toml v0.3.1 -## explicit # github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 ## explicit github.com/andreyvit/diff @@ -35,24 +33,19 @@ github.com/hashicorp/hcl/json/parser github.com/hashicorp/hcl/json/scanner github.com/hashicorp/hcl/json/token # github.com/inconshreveable/mousetrap v1.0.0 -## explicit github.com/inconshreveable/mousetrap # github.com/konsorten/go-windows-terminal-sequences v1.0.1 -## explicit github.com/konsorten/go-windows-terminal-sequences # github.com/magiconair/properties v1.8.0 github.com/magiconair/properties # github.com/mattn/go-colorable v0.0.9 -## explicit github.com/mattn/go-colorable # github.com/mattn/go-isatty v0.0.4 -## explicit github.com/mattn/go-isatty # github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b ## explicit github.com/mgutz/ansi # github.com/mitchellh/mapstructure v1.1.2 -## explicit github.com/mitchellh/mapstructure # github.com/pelletier/go-toml v1.2.0 github.com/pelletier/go-toml @@ -62,9 +55,8 @@ github.com/pmezard/go-difflib/difflib ## explicit github.com/rs/cors # github.com/sergi/go-diff v1.0.0 -## explicit github.com/sergi/go-diff/diffmatchpatch -# github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 +# github.com/shopspring/decimal v1.1.0 ## explicit github.com/shopspring/decimal # github.com/sirupsen/logrus v1.1.1 @@ -73,6 +65,65 @@ github.com/sirupsen/logrus # github.com/skycoin/encodertest v0.0.0-20190217072920-14c2e31898b9 ## explicit github.com/skycoin/encodertest +# github.com/skycoin/skycoin v0.25.2-0.20211109103940-9ca7016bd686 +## explicit +github.com/skycoin/skycoin/cmd/monitor-peers/connection +github.com/skycoin/skycoin/src/api +github.com/skycoin/skycoin/src/cipher +github.com/skycoin/skycoin/src/cipher/base58 +github.com/skycoin/skycoin/src/cipher/bip32 +github.com/skycoin/skycoin/src/cipher/bip39 +github.com/skycoin/skycoin/src/cipher/bip39/wordlists +github.com/skycoin/skycoin/src/cipher/bip44 +github.com/skycoin/skycoin/src/cipher/chacha20poly1305 +github.com/skycoin/skycoin/src/cipher/chacha20poly1305/internal/chacha20 +github.com/skycoin/skycoin/src/cipher/crypto +github.com/skycoin/skycoin/src/cipher/encoder +github.com/skycoin/skycoin/src/cipher/encrypt +github.com/skycoin/skycoin/src/cipher/pbkdf2 +github.com/skycoin/skycoin/src/cipher/poly1305 +github.com/skycoin/skycoin/src/cipher/ripemd160 +github.com/skycoin/skycoin/src/cipher/scrypt +github.com/skycoin/skycoin/src/cipher/secp256k1-go +github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2 +github.com/skycoin/skycoin/src/cipher/testsuite +github.com/skycoin/skycoin/src/cli +github.com/skycoin/skycoin/src/coin +github.com/skycoin/skycoin/src/daemon +github.com/skycoin/skycoin/src/daemon/gnet +github.com/skycoin/skycoin/src/daemon/pex +github.com/skycoin/skycoin/src/daemon/strand +github.com/skycoin/skycoin/src/fiber +github.com/skycoin/skycoin/src/kvstorage +github.com/skycoin/skycoin/src/params +github.com/skycoin/skycoin/src/readable +github.com/skycoin/skycoin/src/skycoin +github.com/skycoin/skycoin/src/testutil +github.com/skycoin/skycoin/src/testutil/assert +github.com/skycoin/skycoin/src/testutil/require +github.com/skycoin/skycoin/src/transaction +github.com/skycoin/skycoin/src/util/apputil +github.com/skycoin/skycoin/src/util/certutil +github.com/skycoin/skycoin/src/util/droplet +github.com/skycoin/skycoin/src/util/elapse +github.com/skycoin/skycoin/src/util/fee +github.com/skycoin/skycoin/src/util/file +github.com/skycoin/skycoin/src/util/gziphandler +github.com/skycoin/skycoin/src/util/http +github.com/skycoin/skycoin/src/util/iputil +github.com/skycoin/skycoin/src/util/logging +github.com/skycoin/skycoin/src/util/mathutil +github.com/skycoin/skycoin/src/util/timeutil +github.com/skycoin/skycoin/src/util/useragent +github.com/skycoin/skycoin/src/visor +github.com/skycoin/skycoin/src/visor/blockdb +github.com/skycoin/skycoin/src/visor/dbutil +github.com/skycoin/skycoin/src/visor/historydb +github.com/skycoin/skycoin/src/wallet +github.com/skycoin/skycoin/src/wallet/bip44wallet +github.com/skycoin/skycoin/src/wallet/collection +github.com/skycoin/skycoin/src/wallet/deterministic +github.com/skycoin/skycoin/src/wallet/xpubwallet # github.com/spf13/afero v1.1.2 github.com/spf13/afero github.com/spf13/afero/mem @@ -90,7 +141,6 @@ github.com/spf13/pflag ## explicit github.com/spf13/viper # github.com/stretchr/objx v0.1.1 -## explicit github.com/stretchr/objx # github.com/stretchr/testify v1.2.2 ## explicit @@ -103,16 +153,18 @@ github.com/toqueteos/webbrowser # github.com/urfave/cli v1.20.0 ## explicit github.com/urfave/cli -# golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 +# golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 ## explicit golang.org/x/crypto/ssh/terminal -# golang.org/x/net v0.0.0-20200226121028-0de0cce0169b +# golang.org/x/net v0.0.0-20201021035429-f5854403a974 ## explicit golang.org/x/net/context -# golang.org/x/sys v0.0.0-20190412213103-97732733099d +# golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750 +## explicit +golang.org/x/sys/internal/unsafeheader golang.org/x/sys/unix golang.org/x/sys/windows -# golang.org/x/text v0.3.0 +# golang.org/x/text v0.3.3 golang.org/x/text/transform golang.org/x/text/unicode/norm # gopkg.in/yaml.v2 v2.2.1 From 2b3f97bc0a1c7fc0c274fcfb51333887d72e06fd Mon Sep 17 00:00:00 2001 From: root Date: Thu, 17 Nov 2022 10:04:27 -0500 Subject: [PATCH 2/4] gui --- .gitignore | 2 +- src/gui/static/dist/index.html | 2 +- src/gui/static/dist/main.791a855438c44b565332.js | 1 + src/gui/static/dist/polyfills-es5.740f167f3a597dada26d.js | 1 + src/gui/static/dist/polyfills.233e9ccb55abf7ea77c2.js | 1 + src/gui/static/index.html | 2 +- src/gui/static/src/index.html | 2 +- 7 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 src/gui/static/dist/main.791a855438c44b565332.js create mode 100644 src/gui/static/dist/polyfills-es5.740f167f3a597dada26d.js create mode 100644 src/gui/static/dist/polyfills.233e9ccb55abf7ea77c2.js diff --git a/.gitignore b/.gitignore index 86b6a2a08..e09423d9c 100644 --- a/.gitignore +++ b/.gitignore @@ -159,4 +159,4 @@ seeds.csv histogram -dist/ + diff --git a/src/gui/static/dist/index.html b/src/gui/static/dist/index.html index e2308863f..51df3dd5c 100644 --- a/src/gui/static/dist/index.html +++ b/src/gui/static/dist/index.html @@ -38,7 +38,7 @@
- +
diff --git a/src/gui/static/dist/main.791a855438c44b565332.js b/src/gui/static/dist/main.791a855438c44b565332.js new file mode 100644 index 000000000..27442d4dc --- /dev/null +++ b/src/gui/static/dist/main.791a855438c44b565332.js @@ -0,0 +1 @@ +(self.webpackChunkdesktopwallet=self.webpackChunkdesktopwallet||[]).push([[179],{98255:function(e){function t(e){return Promise.resolve().then(function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t})}t.keys=function(){return[]},t.resolve=t,t.id=98255,e.exports=t},61295:function(e,t,n){var i=n(27015).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");var t=new Uint8Array(256);t.fill(255);for(var n=0;n>>0,c=new Uint8Array(l);e[n];){var d=t[e.charCodeAt(n)];if(255===d)return;for(var h=0,f=l-1;(0!==d||h>>0)%256>>>0,d=d/256>>>0;if(0!==d)throw new Error("Non-zero carry");a=h,n++}if(" "!==e[n]){for(var p=l-a;p!==l&&0===c[p];)p++;var m=i.allocUnsafe(r+(l-p));m.fill(0,0,r);for(var g=r;p!==l;)m[g++]=c[p++];return m}}}return{encode:function(t){if(!i.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var n=0,r=0,a=0,u=t.length;a!==u&&0===t[a];)a++,n++;for(var c=(u-a)*l+1>>>0,d=new Uint8Array(c);a!==u;){for(var h=t[a],f=0,p=c-1;(0!==h||f>>0)%o>>>0,h=h/o>>>0;if(0!==h)throw new Error("Non-zero carry");r=f,a++}for(var m=c-r;m!==c&&0===d[m];)m++;for(var g=s.repeat(n);m0?o-4:o;for(n=0;n>16&255,l[c++]=t>>8&255,l[c++]=255&t;return 2===s&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,l[c++]=255&t),1===s&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,l[c++]=t>>8&255,l[c++]=255&t),l},t.fromByteArray=function(e){for(var t,i=e.length,r=i%3,a=[],o=16383,s=0,u=i-r;su?u:s+o));return 1===r?a.push(n[(t=e[i-1])>>2]+n[t<<4&63]+"=="):2===r&&a.push(n[(t=(e[i-2]<<8)+e[i-1])>>10]+n[t>>4&63]+n[t<<2&63]+"="),a.join("")};for(var n=[],i=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,s=a.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,i){for(var r,a=[],o=t;o>18&63]+n[r>>12&63]+n[r>>6&63]+n[63&r]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},61287:function(e,t,n){var i;!function(r){"use strict";var a,o=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,s=Math.ceil,u=Math.floor,l="[BigNumber Error] ",c=l+"Number primitive has more than 15 significant digits: ",d=1e14,h=14,f=9007199254740991,p=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],m=1e7,g=1e9;function v(e){var t=0|e;return e>0||e===t?t:t-1}function _(e){for(var t,n,i=1,r=e.length,a=e[0]+"";il^n?1:-1;for(s=(u=r.length)<(l=a.length)?u:l,o=0;oa[o]^n?1:-1;return u==l?0:u>l^n?1:-1}function b(e,t,n,i){if(en||e!==(e<0?s(e):u(e)))throw Error(l+(i||"Argument")+("number"==typeof e?en?" out of range: ":" not an integer: ":" not a primitive number: ")+e)}function w(e){return"[object Array]"==Object.prototype.toString.call(e)}function k(e){var t=e.c.length-1;return v(e.e/h)==t&&e.c[t]%2!=0}function M(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function S(e,t,n){var i,r;if(t<0){for(r=n+".";++t;r+=n);e=r+e}else if(++t>(i=e.length)){for(r=n,t-=i;--t;r+=n);e+=r}else t=10;d/=10,l++);return v.e=l,void(v.c=[e])}g=e+""}else{if(!o.test(g=e+""))return r(v,g,p);v.s=45==g.charCodeAt(0)?(g=g.slice(1),-1):1}(l=g.indexOf("."))>-1&&(g=g.replace(".","")),(d=g.search(/e/i))>0?(l<0&&(l=d),l+=+g.slice(d+1),g=g.substring(0,d)):l<0&&(l=g.length)}else{if(b(t,2,V.length,"Base"),g=e+"",10==t)return K(v=new U(e instanceof U?e:g),P+v.e+1,A);if(p="number"==typeof e){if(0*e!=0)return r(v,g,p,t);if(v.s=1/e<0?(g=g.slice(1),-1):1,U.DEBUG&&g.replace(/^0\.0*|\./,"").length>15)throw Error(c+e);p=!1}else v.s=45===g.charCodeAt(0)?(g=g.slice(1),-1):1;for(n=V.slice(0,t),l=d=0,m=g.length;dl){l=m;continue}}else if(!s&&(g==g.toUpperCase()&&(g=g.toLowerCase())||g==g.toLowerCase()&&(g=g.toUpperCase()))){s=!0,d=-1,l=0;continue}return r(v,e+"",p,t)}(l=(g=i(g,t,10,v.s)).indexOf("."))>-1?g=g.replace(".",""):l=g.length}for(d=0;48===g.charCodeAt(d);d++);for(m=g.length;48===g.charCodeAt(--m););if(g=g.slice(d,++m)){if(m-=d,p&&U.DEBUG&&m>15&&(e>f||e!==u(e)))throw Error(c+v.s*e);if((l=l-d-1)>H)v.c=v.e=null;else if(ls){if(--t>0)for(u+=".";t--;u+="0");}else if((t+=a-s)>0)for(a+1==s&&(u+=".");t--;u+="0");return e.s<0&&r?"-"+u:u}function q(e,t){var n,i,r=0;for(w(e[0])&&(e=e[0]),n=new U(e[0]);++r=10;r/=10,i++);return(n=i+n*h-1)>H?e.c=e.e=null:n=10;l/=10,r++);if((a=t-r)<0)a+=h,m=(c=g[f=0])/v[r-(o=t)-1]%10|0;else if((f=s((a+1)/h))>=g.length){if(!i)break e;for(;g.length<=f;g.push(0));c=m=0,r=1,o=(a%=h)-h+1}else{for(c=l=g[f],r=1;l>=10;l/=10,r++);m=(o=(a%=h)-h+r)<0?0:c/v[r-o-1]%10|0}if(i=i||t<0||null!=g[f+1]||(o<0?c:c%v[r-o-1]),i=n<4?(m||i)&&(0==n||n==(e.s<0?3:2)):m>5||5==m&&(4==n||i||6==n&&(a>0?o>0?c/v[r-o]:0:g[f-1])%10&1||n==(e.s<0?8:7)),t<1||!g[0])return g.length=0,i?(g[0]=v[(h-(t-=e.e+1)%h)%h],e.e=-t||0):g[0]=e.e=0,e;if(0==a?(g.length=f,l=1,f--):(g.length=f+1,l=v[h-a],g[f]=o>0?u(c/v[r-o]%v[o])*l:0),i)for(;;){if(0==f){for(a=1,o=g[0];o>=10;o/=10,a++);for(o=g[0]+=l,l=1;o>=10;o/=10,l++);a!=l&&(e.e++,g[0]==d&&(g[0]=1));break}if(g[f]+=l,g[f]!=d)break;g[f--]=0,l=1}for(a=g.length;0===g[--a];g.pop());}e.e>H?e.c=e.e=null:e.e>>11))>=9e15?(n=crypto.getRandomValues(new Uint32Array(2)),t[o]=n[0],t[o+1]=n[1]):(c.push(a%1e14),o+=2);o=r/2}else{if(!crypto.randomBytes)throw j=!1,Error(l+"crypto unavailable");for(t=crypto.randomBytes(r*=7);o=9e15?crypto.randomBytes(7).copy(t,o):(c.push(a%1e14),o+=7);o=r/7}if(!j)for(;o=10;a/=10,o++);on-1&&(null==o[r+1]&&(o[r+1]=0),o[r+1]+=o[r]/n|0,o[r]%=n)}return o.reverse()}return function(i,r,a,o,s){var u,l,c,d,h,f,p,m,g=i.indexOf("."),v=P,y=A;for(g>=0&&(d=B,B=0,i=i.replace(".",""),f=(m=new U(r)).pow(i.length-g),B=d,m.c=t(S(_(f.c),f.e,"0"),10,a,e),m.e=m.c.length),c=d=(p=t(i,r,a,s?(u=V,e):(u=e,V))).length;0==p[--d];p.pop());if(!p[0])return u.charAt(0);if(g<0?--c:(f.c=p,f.e=c,f.s=o,p=(f=n(f,m,v,y,a)).c,h=f.r,c=f.e),g=p[l=c+v+1],d=a/2,h=h||l<0||null!=p[l+1],h=y<4?(null!=g||h)&&(0==y||y==(f.s<0?3:2)):g>d||g==d&&(4==y||h||6==y&&1&p[l-1]||y==(f.s<0?8:7)),l<1||!p[0])i=h?S(u.charAt(1),-v,u.charAt(0)):u.charAt(0);else{if(p.length=l,h)for(--a;++p[--l]>a;)p[l]=0,l||(++c,p=[1].concat(p));for(d=p.length;!p[--d];);for(g=0,i="";g<=d;i+=u.charAt(p[g++]));i=S(i,c,u.charAt(0))}return i}}(),n=function(){function e(e,t,n){var i,r,a,o,s=0,u=e.length,l=t%m,c=t/m|0;for(e=e.slice();u--;)s=((r=l*(a=e[u]%m)+(i=c*a+(o=e[u]/m|0)*l)%m*m+s)/n|0)+(i/m|0)+c*o,e[u]=r%n;return s&&(e=[s].concat(e)),e}function t(e,t,n,i){var r,a;if(n!=i)a=n>i?1:-1;else for(r=a=0;rt[r]?1:-1;break}return a}function n(e,t,n,i){for(var r=0;n--;)e[n]-=r,e[n]=(r=e[n]1;e.splice(0,1));}return function(i,r,a,o,s){var l,c,f,p,m,g,_,y,b,w,k,M,S,C,L,x,T,D=i.s==r.s?1:-1,O=i.c,E=r.c;if(!(O&&O[0]&&E&&E[0]))return new U(i.s&&r.s&&(O?!E||O[0]!=E[0]:E)?O&&0==O[0]||!E?0*D:D/0:NaN);for(b=(y=new U(D)).c=[],D=a+(c=i.e-r.e)+1,s||(s=d,c=v(i.e/h)-v(r.e/h),D=D/h|0),f=0;E[f]==(O[f]||0);f++);if(E[f]>(O[f]||0)&&c--,D<0)b.push(1),p=!0;else{for(C=O.length,x=E.length,f=0,D+=2,(m=u(s/(E[0]+1)))>1&&(E=e(E,m,s),O=e(O,m,s),x=E.length,C=O.length),S=x,k=(w=O.slice(0,x)).length;k=s/2&&L++;do{if(m=0,(l=t(E,w,x,k))<0){if(M=w[0],x!=k&&(M=M*s+(w[1]||0)),(m=u(M/L))>1)for(m>=s&&(m=s-1),_=(g=e(E,m,s)).length,k=w.length;1==t(g,w,_,k);)m--,n(g,x<_?T:E,_,s),_=g.length,l=1;else 0==m&&(l=m=1),_=(g=E.slice()).length;if(_=10;D/=10,f++);K(y,a+(y.e=f+c*h-1)+1,o,p)}else y.e=c,y.r=+p;return y}}(),L=/^(-?)0([xbo])(?=\w[\w.]*$)/i,x=/^([^.]+)\.$/,T=/^\.([^.]+)$/,D=/^-?(Infinity|NaN)$/,O=/^\s*\+(?=[\w.])|^\s+|\s+$/g,r=function(e,t,n,i){var r,a=n?t:t.replace(O,"");if(D.test(a))e.s=isNaN(a)?null:a<0?-1:1,e.c=e.e=null;else{if(!n&&(a=a.replace(L,function(e,t,n){return r="x"==(n=n.toLowerCase())?16:"b"==n?2:8,i&&i!=r?e:t}),i&&(r=i,a=a.replace(x,"$1").replace(T,"0.$1")),t!=a))return new U(a,r);if(U.DEBUG)throw Error(l+"Not a"+(i?" base "+i:"")+" number: "+t);e.c=e.e=e.s=null}},E.absoluteValue=E.abs=function(){var e=new U(this);return e.s<0&&(e.s=1),e},E.comparedTo=function(e,t){return y(this,new U(e,t))},E.decimalPlaces=E.dp=function(e,t){var n,i,r,a=this;if(null!=e)return b(e,0,g),null==t?t=A:b(t,0,8),K(new U(a),e+a.e+1,t);if(!(n=a.c))return null;if(i=((r=n.length-1)-v(this.e/h))*h,r=n[r])for(;r%10==0;r/=10,i--);return i<0&&(i=0),i},E.dividedBy=E.div=function(e,t){return n(this,new U(e,t),P,A)},E.dividedToIntegerBy=E.idiv=function(e,t){return n(this,new U(e,t),0,1)},E.exponentiatedBy=E.pow=function(e,t){var n,i,r,a,o,c,d,f=this;if((e=new U(e)).c&&!e.isInteger())throw Error(l+"Exponent not an integer: "+e);if(null!=t&&(t=new U(t)),a=e.e>14,!f.c||!f.c[0]||1==f.c[0]&&!f.e&&1==f.c.length||!e.c||!e.c[0])return d=new U(Math.pow(+f.valueOf(),a?2-k(e):+e)),t?d.mod(t):d;if(o=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new U(NaN);(i=!o&&f.isInteger()&&t.isInteger())&&(f=f.mod(t))}else{if(e.e>9&&(f.e>0||f.e<-1||(0==f.e?f.c[0]>1||a&&f.c[1]>=24e7:f.c[0]<8e13||a&&f.c[0]<=9999975e7)))return r=f.s<0&&k(e)?-0:0,f.e>-1&&(r=1/r),new U(o?1/r:r);B&&(r=s(B/h+2))}for(a?(n=new U(.5),c=k(e)):c=e%2,o&&(e.s=1),d=new U(Y);;){if(c){if(!(d=d.times(f)).c)break;r?d.c.length>r&&(d.c.length=r):i&&(d=d.mod(t))}if(a){if(K(e=e.times(n),e.e+1,1),!e.c[0])break;a=e.e>14,c=k(e)}else{if(!(e=u(e/2)))break;c=e%2}f=f.times(f),r?f.c&&f.c.length>r&&(f.c.length=r):i&&(f=f.mod(t))}return i?d:(o&&(d=Y.div(d)),t?d.mod(t):r?K(d,B,A,void 0):d)},E.integerValue=function(e){var t=new U(this);return null==e?e=A:b(e,0,8),K(t,t.e+1,e)},E.isEqualTo=E.eq=function(e,t){return 0===y(this,new U(e,t))},E.isFinite=function(){return!!this.c},E.isGreaterThan=E.gt=function(e,t){return y(this,new U(e,t))>0},E.isGreaterThanOrEqualTo=E.gte=function(e,t){return 1===(t=y(this,new U(e,t)))||0===t},E.isInteger=function(){return!!this.c&&v(this.e/h)>this.c.length-2},E.isLessThan=E.lt=function(e,t){return y(this,new U(e,t))<0},E.isLessThanOrEqualTo=E.lte=function(e,t){return-1===(t=y(this,new U(e,t)))||0===t},E.isNaN=function(){return!this.s},E.isNegative=function(){return this.s<0},E.isPositive=function(){return this.s>0},E.isZero=function(){return!!this.c&&0==this.c[0]},E.minus=function(e,t){var n,i,r,a,o=this,s=o.s;if(t=(e=new U(e,t)).s,!s||!t)return new U(NaN);if(s!=t)return e.s=-t,o.plus(e);var u=o.e/h,l=e.e/h,c=o.c,f=e.c;if(!u||!l){if(!c||!f)return c?(e.s=-t,e):new U(f?o:NaN);if(!c[0]||!f[0])return f[0]?(e.s=-t,e):new U(c[0]?o:3==A?-0:0)}if(u=v(u),l=v(l),c=c.slice(),s=u-l){for((a=s<0)?(s=-s,r=c):(l=u,r=f),r.reverse(),t=s;t--;r.push(0));r.reverse()}else for(i=(a=(s=c.length)<(t=f.length))?s:t,s=t=0;t0)for(;t--;c[n++]=0);for(t=d-1;i>s;){if(c[--i]=0;){for(n=0,p=M[r]%b,g=M[r]/b|0,a=r+(o=u);a>r;)n=((l=p*(l=k[--o]%b)+(s=g*l+(c=k[o]/b|0)*p)%b*b+_[a]+n)/y|0)+(s/b|0)+g*c,_[a--]=l%y;_[a]=n}return n?++i:_.splice(0,1),G(e,_,i)},E.negated=function(){var e=new U(this);return e.s=-e.s||null,e},E.plus=function(e,t){var n,i=this,r=i.s;if(t=(e=new U(e,t)).s,!r||!t)return new U(NaN);if(r!=t)return e.s=-t,i.minus(e);var a=i.e/h,o=e.e/h,s=i.c,u=e.c;if(!a||!o){if(!s||!u)return new U(r/0);if(!s[0]||!u[0])return u[0]?e:new U(s[0]?i:0*r)}if(a=v(a),o=v(o),s=s.slice(),r=a-o){for(r>0?(o=a,n=u):(r=-r,n=s),n.reverse();r--;n.push(0));n.reverse()}for((r=s.length)-(t=u.length)<0&&(n=u,u=s,s=n,t=r),r=0;t;)r=(s[--t]=s[t]+u[t]+r)/d|0,s[t]=d===s[t]?0:s[t]%d;return r&&(s=[r].concat(s),++o),G(e,s,o)},E.precision=E.sd=function(e,t){var n,i,r,a=this;if(null!=e&&e!==!!e)return b(e,1,g),null==t?t=A:b(t,0,8),K(new U(a),e,t);if(!(n=a.c))return null;if(i=(r=n.length-1)*h+1,r=n[r]){for(;r%10==0;r/=10,i--);for(r=n[0];r>=10;r/=10,i++);}return e&&a.e+1>i&&(i=a.e+1),i},E.shiftedBy=function(e){return b(e,-9007199254740991,f),this.times("1e"+e)},E.squareRoot=E.sqrt=function(){var e,t,i,r,a,o=this,s=o.c,u=o.s,l=o.e,c=P+4,d=new U("0.5");if(1!==u||!s||!s[0])return new U(!u||u<0&&(!s||s[0])?NaN:s?o:1/0);if(0==(u=Math.sqrt(+o))||u==1/0?(((t=_(s)).length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=v((l+1)/2)-(l<0||l%2),i=new U(t=u==1/0?"1e"+l:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+l)):i=new U(u+""),i.c[0])for((u=(l=i.e)+c)<3&&(u=0);;)if(i=d.times((a=i).plus(n(o,a,c,1))),_(a.c).slice(0,u)===(t=_(i.c)).slice(0,u)){if(i.e0&&h>0){for(u=d.substr(0,i=h%a||a);i0&&(u+=s+d.slice(i)),c&&(u="-"+u)}n=l?u+W.decimalSeparator+((o=+W.fractionGroupSize)?l.replace(new RegExp("\\d{"+o+"}\\B","g"),"$&"+W.fractionGroupSeparator):l):u}return n},E.toFraction=function(e){var t,i,r,a,o,s,u,c,d,f,m,g,v=this,y=v.c;if(null!=e&&(!(c=new U(e)).isInteger()&&(c.c||1!==c.s)||c.lt(Y)))throw Error(l+"Argument "+(c.isInteger()?"out of range: ":"not an integer: ")+e);if(!y)return v.toString();for(i=new U(Y),f=r=new U(Y),a=d=new U(Y),g=_(y),s=i.e=g.length-v.e-1,i.c[0]=p[(u=s%h)<0?h+u:u],e=!e||c.comparedTo(i)>0?s>0?i:f:c,u=H,H=1/0,c=new U(g),d.c[0]=0;m=n(c,i,0,1),1!=(o=r.plus(m.times(a))).comparedTo(e);)r=a,a=o,f=d.plus(m.times(o=f)),d=o,i=c.minus(m.times(o=i)),c=o;return o=n(e.minus(r),a,0,1),d=d.plus(o.times(f)),r=r.plus(o.times(a)),d.s=f.s=v.s,t=n(f,a,s*=2,A).minus(v).abs().comparedTo(n(d,r,s,A).minus(v).abs())<1?[f.toString(),a.toString()]:[d.toString(),r.toString()],H=u,t},E.toNumber=function(){return+this},E.toPrecision=function(e,t){return null!=e&&b(e,1,g),z(this,e,t,2)},E.toString=function(e){var t,n=this,r=n.s,a=n.e;return null===a?r?(t="Infinity",r<0&&(t="-"+t)):t="NaN":(t=_(n.c),null==e?t=a<=I||a>=R?M(t,a):S(t,a,"0"):(b(e,2,V.length,"Base"),t=i(S(t,a,"0"),10,e,r,!0)),r<0&&n.c[0]&&(t="-"+t)),t},E.valueOf=E.toJSON=function(){var e,t=this,n=t.e;return null===n?t.toString():(e=_(t.c),e=n<=I||n>=R?M(e,n):S(e,n,"0"),t.s<0?"-"+e:e)},E._isBigNumber=!0,null!=t&&U.set(t),U}()).default=a.BigNumber=a,void 0===(i=(function(){return a}).call(t,n,t,e))||(e.exports=i)}()},23833:function(e,t,n){"use strict";var i=n(26698),r=n(42390),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=function(e){return+e!=e&&(e=0),u.alloc(+e)},t.INSPECT_MAX_BYTES=50;var o=2147483647;function s(e){if(e>o)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return l(e,t,n)}function l(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var n=0|m(e,t),i=s(n),r=i.write(e,t);return r!==n&&(i=i.slice(0,r)),i}(e,t);if(ArrayBuffer.isView(e))return function(e){if(B(e,Uint8Array)){var t=new Uint8Array(e);return f(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(B(e,ArrayBuffer)||e&&B(e.buffer,ArrayBuffer))return f(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(B(e,SharedArrayBuffer)||e&&B(e.buffer,SharedArrayBuffer)))return f(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');var i=e.valueOf&&e.valueOf();if(null!=i&&i!==e)return u.from(i,t,n);var r=function(e){if(u.isBuffer(e)){var t=0|p(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||W(e.length)?s(0):h(e):"Buffer"===e.type&&Array.isArray(e.data)?h(e.data):void 0}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return c(e),s(e<0?0:0|p(e))}function h(e){for(var t=e.length<0?0:0|p(e.length),n=s(t),i=0;i=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|e}function m(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||B(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var n=e.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return j(e).length;default:if(r)return i?-1:H(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return L(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return D(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function v(e,t,n){var i=e[t];e[t]=e[n],e[n]=i}function _(e,t,n,i,r){if(0===e.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),W(n=+n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=u.from(t,i)),u.isBuffer(t))return 0===t.length?-1:y(e,t,n,i,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,i,r);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,i,r){var a,o=1,s=e.length,u=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;o=2,s/=2,u/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(r){var c=-1;for(a=n;as&&(n=s-u),a=n;a>=0;a--){for(var d=!0,h=0;hr&&(i=r):i=r;var a=t.length;i>a/2&&(i=a/2);for(var o=0;o>8,r.push(n%256),r.push(i);return r}(t,e.length-n),e,n,i)}function C(e,t,n){return i.fromByteArray(0===t&&n===e.length?e:e.slice(t,n))}function L(e,t,n){n=Math.min(e.length,n);for(var i=[],r=t;r239?4:l>223?3:l>191?2:1;if(r+d<=n)switch(d){case 1:l<128&&(c=l);break;case 2:128==(192&(a=e[r+1]))&&(u=(31&l)<<6|63&a)>127&&(c=u);break;case 3:o=e[r+2],128==(192&(a=e[r+1]))&&128==(192&o)&&(u=(15&l)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:o=e[r+2],s=e[r+3],128==(192&(a=e[r+1]))&&128==(192&o)&&128==(192&s)&&(u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,d=1):c>65535&&(i.push((c-=65536)>>>10&1023|55296),c=56320|1023&c),i.push(c),r+=d}return function(e){var t=e.length;if(t<=x)return String.fromCharCode.apply(String,e);for(var n="",i=0;ii.length?u.from(a).copy(i,r):Uint8Array.prototype.set.call(i,a,r);else{if(!u.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(i,r)}r+=a.length}return i},u.byteLength=m,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;tn&&(e+=" ... "),""},a&&(u.prototype[a]=u.prototype.inspect),u.prototype.compare=function(e,t,n,i,r){if(B(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===r&&(r=this.length),t<0||n>e.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=n)return 0;if(i>=r)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(r>>>=0)-(i>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(a,o),l=this.slice(i,r),c=e.slice(t,n),d=0;d>>=0,isFinite(n)?(n>>>=0,void 0===i&&(i="utf8")):(i=n,n=void 0)}var r=this.length-t;if((void 0===n||n>r)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var a=!1;;)switch(i){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":case"latin1":case"binary":return k(this,e,t,n);case"base64":return M(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var x=4096;function T(e,t,n){var i="";n=Math.min(e.length,n);for(var r=t;ri)&&(n=i);for(var r="",a=t;an)throw new RangeError("Trying to access beyond buffer length")}function P(e,t,n,i,r,a){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function A(e,t,n,i,r,a){if(n+i>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function I(e,t,n,i,a){return t=+t,n>>>=0,a||A(e,0,n,4),r.write(e,t,n,i,23,4),n+4}function R(e,t,n,i,a){return t=+t,n>>>=0,a||A(e,0,n,8),r.write(e,t,n,i,52,8),n+8}u.prototype.slice=function(e,t){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||Y(e,t,this.length);for(var i=this[e],r=1,a=0;++a>>=0,t>>>=0,n||Y(e,t,this.length);for(var i=this[e+--t],r=1;t>0&&(r*=256);)i+=this[e+--t]*r;return i},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||Y(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||Y(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||Y(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||Y(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||Y(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||Y(e,t,this.length);for(var i=this[e],r=1,a=0;++a=(r*=128)&&(i-=Math.pow(2,8*t)),i},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||Y(e,t,this.length);for(var i=t,r=1,a=this[e+--i];i>0&&(r*=256);)a+=this[e+--i]*r;return a>=(r*=128)&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return e>>>=0,t||Y(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||Y(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||Y(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||Y(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||Y(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return e>>>=0,t||Y(e,4,this.length),r.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||Y(e,4,this.length),r.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||Y(e,8,this.length),r.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||Y(e,8,this.length),r.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,i){e=+e,t>>>=0,n>>>=0,i||P(this,e,t,n,Math.pow(2,8*n)-1,0);var r=1,a=0;for(this[t]=255&e;++a>>=0,n>>>=0,i||P(this,e,t,n,Math.pow(2,8*n)-1,0);var r=n-1,a=1;for(this[t+r]=255&e;--r>=0&&(a*=256);)this[t+r]=e/a&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t>>>=0,!i){var r=Math.pow(2,8*n-1);P(this,e,t,n,r-1,-r)}var a=0,o=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t>>>=0,!i){var r=Math.pow(2,8*n-1);P(this,e,t,n,r-1,-r)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeFloatLE=function(e,t,n){return I(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return I(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return R(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return R(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,i){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===i){(t-=3)>-1&&a.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&a.push(239,191,189);if(r=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function j(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function N(e,t,n,i){for(var r=0;r=t.length||r>=e.length);++r)t[r+n]=e[r];return r}function B(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function W(e){return e!=e}var V=function(){for(var e="0123456789abcdef",t=new Array(256),n=0;n<16;++n)for(var i=16*n,r=0;r<16;++r)t[i+r]=e[n]+e[r];return t}()},42390:function(e,t){t.read=function(e,t,n,i,r){var a,o,s=8*r-i-1,u=(1<>1,c=-7,d=n?r-1:0,h=n?-1:1,f=e[t+d];for(d+=h,a=f&(1<<-c)-1,f>>=-c,c+=s;c>0;a=256*a+e[t+d],d+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=i;c>0;o=256*o+e[t+d],d+=h,c-=8);if(0===a)a=1-l;else{if(a===u)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,i),a-=l}return(f?-1:1)*o*Math.pow(2,a-i)},t.write=function(e,t,n,i,r,a){var o,s,u,l=8*a-r-1,c=(1<>1,h=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:a-1,p=i?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+d>=1?h/u:h*Math.pow(2,1-d))*u>=2&&(o++,u/=2),o+d>=c?(s=0,o=c):o+d>=1?(s=(t*u-1)*Math.pow(2,r),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,r),o=0));r>=8;e[n+f]=255&s,f+=p,s/=256,r-=8);for(o=o<0;e[n+f]=255&o,f+=p,o/=256,l-=8);e[n+f-p]|=128*m}},90776:function(e,t,n){!function(e){"use strict";e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(29609))},42758:function(e,t,n){!function(e){"use strict";var t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},i=function(e){return function(i,r,a,o){var s=t(i),u=n[e][t(i)];return 2===s&&(u=u[r?0:1]),u.replace(/%d/i,i)}},r=["\u062c\u0627\u0646\u0641\u064a","\u0641\u064a\u0641\u0631\u064a","\u0645\u0627\u0631\u0633","\u0623\u0641\u0631\u064a\u0644","\u0645\u0627\u064a","\u062c\u0648\u0627\u0646","\u062c\u0648\u064a\u0644\u064a\u0629","\u0623\u0648\u062a","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];e.defineLocale("ar-dz",{months:r,monthsShort:r,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,t,n){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:0,doy:4}})}(n(29609))},64980:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}(n(29609))},9602:function(e,t,n){!function(e){"use strict";var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},i={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},r=function(e){return function(t,r,a,o){var s=n(t),u=i[e][n(t)];return 2===s&&(u=u[r?0:1]),u.replace(/%d/i,t)}},a=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];e.defineLocale("ar-ly",{months:a,monthsShort:a,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,t,n){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(n(29609))},52500:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(n(29609))},36909:function(e,t,n){!function(e){"use strict";var t={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},n={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};e.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,t,n){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return n[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(n(29609))},92735:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(n(29609))},67634:function(e,t,n){!function(e){"use strict";var t={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},n={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},i=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},a=function(e){return function(t,n,a,o){var s=i(t),u=r[e][i(t)];return 2===s&&(u=u[n?0:1]),u.replace(/%d/i,t)}},o=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];e.defineLocale("ar",{months:o,monthsShort:o,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,t,n){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return n[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(n(29609))},27798:function(e,t,n){!function(e){"use strict";var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"bir ne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gec\u0259":e<12?"s\u0259h\u0259r":e<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){if(0===e)return e+"-\u0131nc\u0131";var n=e%10;return e+(t[n]||t[e%100-n]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(29609))},29949:function(e,t,n){!function(e){"use strict";function t(e,t,n){return"m"===n?t?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===n?t?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":e+" "+(i=+e,r={ss:t?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:t?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:t?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[n].split("_"),i%10==1&&i%100!=11?r[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?r[1]:r[2]);var i,r}e.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:t,mm:t,h:t,hh:t,d:"\u0434\u0437\u0435\u043d\u044c",dd:t,M:"\u043c\u0435\u0441\u044f\u0446",MM:t,y:"\u0433\u043e\u0434",yy:t},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"\u043d\u043e\u0447\u044b":e<12?"\u0440\u0430\u043d\u0456\u0446\u044b":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-\u044b":e+"-\u0456";case"D":return e+"-\u0433\u0430";default:return e}},week:{dow:1,doy:7}})}(n(29609))},44590:function(e,t,n){!function(e){"use strict";e.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0443_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u041c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u041c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",w:"\u0441\u0435\u0434\u043c\u0438\u0446\u0430",ww:"%d \u0441\u0435\u0434\u043c\u0438\u0446\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-\u0435\u0432":0===n?e+"-\u0435\u043d":n>10&&n<20?e+"-\u0442\u0438":1===t?e+"-\u0432\u0438":2===t?e+"-\u0440\u0438":7===t||8===t?e+"-\u043c\u0438":e+"-\u0442\u0438"},week:{dow:1,doy:7}})}(n(29609))},15938:function(e,t,n){!function(e){"use strict";e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(29609))},51942:function(e,t,n){!function(e){"use strict";var t={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},n={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};e.defineLocale("bn-bd",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u09b0\u09be\u09a4|\u09ad\u09cb\u09b0|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be|\u09b0\u09be\u09a4/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u09b0\u09be\u09a4"===t?e<4?e:e+12:"\u09ad\u09cb\u09b0"===t||"\u09b8\u0995\u09be\u09b2"===t?e:"\u09a6\u09c1\u09aa\u09c1\u09b0"===t?e>=3?e:e+12:"\u09ac\u09bf\u0995\u09be\u09b2"===t||"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"\u09b0\u09be\u09a4":e<6?"\u09ad\u09cb\u09b0":e<12?"\u09b8\u0995\u09be\u09b2":e<15?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<18?"\u09ac\u09bf\u0995\u09be\u09b2":e<20?"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(n(29609))},60595:function(e,t,n){!function(e){"use strict";var t={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},n={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};e.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u09b0\u09be\u09a4"===t&&e>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===t&&e<5||"\u09ac\u09bf\u0995\u09be\u09b2"===t?e+12:e},meridiem:function(e,t,n){return e<4?"\u09b0\u09be\u09a4":e<10?"\u09b8\u0995\u09be\u09b2":e<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(n(29609))},4756:function(e,t,n){!function(e){"use strict";var t={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},n={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};e.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b1_\u0f5f\u0fb3\u0f0b2_\u0f5f\u0fb3\u0f0b3_\u0f5f\u0fb3\u0f0b4_\u0f5f\u0fb3\u0f0b5_\u0f5f\u0fb3\u0f0b6_\u0f5f\u0fb3\u0f0b7_\u0f5f\u0fb3\u0f0b8_\u0f5f\u0fb3\u0f0b9_\u0f5f\u0fb3\u0f0b10_\u0f5f\u0fb3\u0f0b11_\u0f5f\u0fb3\u0f0b12".split("_"),monthsShortRegex:/^(\u0f5f\u0fb3\u0f0b\d{1,2})/,monthsParseExact:!0,weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72_\u0f5f\u0fb3_\u0f58\u0f72\u0f42_\u0f63\u0fb7\u0f42_\u0f55\u0f74\u0f62_\u0f66\u0f44\u0f66_\u0f66\u0fa4\u0f7a\u0f53".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(e){return e.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===t&&e>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===t&&e<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===t?e+12:e},meridiem:function(e,t,n){return e<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":e<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":e<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":e<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(n(29609))},17277:function(e,t,n){!function(e){"use strict";function t(e,t,n){return e+" "+function(e,t){return 2===t?function(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}function n(e){return e>9?n(e%10):e}var i=[/^gen/i,/^c[\u02bc\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],r=/^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,a=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_C\u02bchwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C\u02bchwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc\u02bcher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:a,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[\u02bc\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:a,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc\u02bchoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec\u02bch da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s \u02bczo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(n(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(e){return e+(1===e?"a\xf1":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,n){return e<12?"a.m.":"g.m."}})}(n(29609))},4166:function(e,t,n){!function(e){"use strict";function t(e,t,n){var i=e+" ";switch(n){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(29609))},13943:function(e,t,n){!function(e){"use strict";e.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"\xe8";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(29609))},53474:function(e,t,n){!function(e){"use strict";var t="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),n="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_"),i=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],r=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;function a(e){return e>1&&e<5&&1!=~~(e/10)}function o(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return t||i?r+(a(e)?"sekundy":"sekund"):r+"sekundami";case"m":return t?"minuta":i?"minutu":"minutou";case"mm":return t||i?r+(a(e)?"minuty":"minut"):r+"minutami";case"h":return t?"hodina":i?"hodinu":"hodinou";case"hh":return t||i?r+(a(e)?"hodiny":"hodin"):r+"hodinami";case"d":return t||i?"den":"dnem";case"dd":return t||i?r+(a(e)?"dny":"dn\xed"):r+"dny";case"M":return t||i?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return t||i?r+(a(e)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):r+"m\u011bs\xedci";case"y":return t||i?"rok":"rokem";case"yy":return t||i?r+(a(e)?"roky":"let"):r+"lety"}}e.defineLocale("cs",{months:t,monthsShort:n,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:o,ss:o,m:o,mm:o,h:o,hh:o,d:o,dd:o,M:o,MM:o,y:o,yy:o},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},92218:function(e,t,n){!function(e){"use strict";e.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(e){return e+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(e)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(e)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}(n(29609))},21061:function(e,t,n){!function(e){"use strict";e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(n(29609))},82743:function(e,t,n){!function(e){"use strict";e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},28580:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}e.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},3264:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}e.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},31899:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}e.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},98784:function(e,t,n){!function(e){"use strict";var t=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],n=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(e){return"\u0789\u078a"===e},meridiem:function(e,t,n){return e<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:7,doy:12}})}(n(29609))},54654:function(e,t,n){!function(e){"use strict";e.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(e,t,n){return e>11?n?"\u03bc\u03bc":"\u039c\u039c":n?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(e){return"\u03bc"===(e+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT";default:return"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n,i=this._calendarEl[e],r=t&&t.hours();return n=i,("undefined"!=typeof Function&&n instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(i=i.apply(t)),i.replace("{}",r%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}(n(29609))},56277:function(e,t,n){!function(e){"use strict";e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:4}})}(n(29609))},76896:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(29609))},71609:function(e,t,n){!function(e){"use strict";e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(29609))},24557:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(29609))},15836:function(e,t,n){!function(e){"use strict";e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(29609))},30262:function(e,t,n){!function(e){"use strict";e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(n(29609))},43586:function(e,t,n){!function(e){"use strict";e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(29609))},38965:function(e,t,n){!function(e){"use strict";e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(29609))},62777:function(e,t,n){!function(e){"use strict";e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_a\u016dg_sept_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return e>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(29609))},3128:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(n(29609))},69179:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-mx",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:4},invalidDate:"Fecha inv\xe1lida"})}(n(29609))},83256:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}})}(n(29609))},63357:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4},invalidDate:"Fecha inv\xe1lida"})}(n(29609))},2654:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){var r={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[e+" minuti",e+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[e+" tunni",e+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[e+" kuu",e+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[e+" aasta",e+" aastat"]};return t?r[n][2]?r[n][2]:r[n][1]:i?r[n][0]:r[n][1]}e.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d p\xe4eva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},57287:function(e,t,n){!function(e){"use strict";e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(29609))},73875:function(e,t,n){!function(e){"use strict";var t={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},n={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};e.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(e){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(e)},meridiem:function(e,t,n){return e<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"%d \u062b\u0627\u0646\u06cc\u0647",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(e){return e.replace(/[\u06f0-\u06f9]/g,function(e){return n[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(n(29609))},73431:function(e,t,n){!function(e){"use strict";var t="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),n=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",t[7],t[8],t[9]];function i(e,i,r,a){var o="";switch(r){case"s":return a?"muutaman sekunnin":"muutama sekunti";case"ss":o=a?"sekunnin":"sekuntia";break;case"m":return a?"minuutin":"minuutti";case"mm":o=a?"minuutin":"minuuttia";break;case"h":return a?"tunnin":"tunti";case"hh":o=a?"tunnin":"tuntia";break;case"d":return a?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":o=a?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return a?"kuukauden":"kuukausi";case"MM":o=a?"kuukauden":"kuukautta";break;case"y":return a?"vuoden":"vuosi";case"yy":o=a?"vuoden":"vuotta"}return function(e,i){return e<10?i?n[e]:t[e]:e}(e,a)+" "+o}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},39606:function(e,t,n){!function(e){"use strict";e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(29609))},41781:function(e,t,n){!function(e){"use strict";e.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0ur",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},11539:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(n(29609))},19847:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(29609))},61717:function(e,t,n){!function(e){"use strict";var t=/(janv\.?|f\xe9vr\.?|mars|avr\.?|mai|juin|juil\.?|ao\xfbt|sept\.?|oct\.?|nov\.?|d\xe9c\.?|janvier|f\xe9vrier|mars|avril|mai|juin|juillet|ao\xfbt|septembre|octobre|novembre|d\xe9cembre)/i,n=[/^janv/i,/^f\xe9vr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^ao\xfbt/i,/^sept/i,/^oct/i,/^nov/i,/^d\xe9c/i];e.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsRegex:t,monthsShortRegex:t,monthsStrictRegex:/^(janvier|f\xe9vrier|mars|avril|mai|juin|juillet|ao\xfbt|septembre|octobre|novembre|d\xe9cembre)/i,monthsShortStrictRegex:/(janv\.?|f\xe9vr\.?|mars|avr\.?|mai|juin|juil\.?|ao\xfbt|sept\.?|oct\.?|nov\.?|d\xe9c\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",w:"une semaine",ww:"%d semaines",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(29609))},42250:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(29609))},47665:function(e,t,n){!function(e){"use strict";e.defineLocale("ga",{months:["Ean\xe1ir","Feabhra","M\xe1rta","Aibre\xe1n","Bealtaine","Meitheamh","I\xfail","L\xfanasa","Me\xe1n F\xf3mhair","Deireadh F\xf3mhair","Samhain","Nollaig"],monthsShort:["Ean","Feabh","M\xe1rt","Aib","Beal","Meith","I\xfail","L\xfan","M.F.","D.F.","Samh","Noll"],monthsParseExact:!0,weekdays:["D\xe9 Domhnaigh","D\xe9 Luain","D\xe9 M\xe1irt","D\xe9 C\xe9adaoin","D\xe9ardaoin","D\xe9 hAoine","D\xe9 Sathairn"],weekdaysShort:["Domh","Luan","M\xe1irt","C\xe9ad","D\xe9ar","Aoine","Sath"],weekdaysMin:["Do","Lu","M\xe1","C\xe9","D\xe9","A","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Am\xe1rach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inn\xe9 ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s \xf3 shin",s:"c\xfapla soicind",ss:"%d soicind",m:"n\xf3im\xe9ad",mm:"%d n\xf3im\xe9ad",h:"uair an chloig",hh:"%d uair an chloig",d:"l\xe1",dd:"%d l\xe1",M:"m\xed",MM:"%d m\xedonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(29609))},85214:function(e,t,n){!function(e){"use strict";e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(29609))},36154:function(e,t,n){!function(e){"use strict";e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(n(29609))},68222:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){var r={s:["\u0925\u094b\u0921\u092f\u093e \u0938\u0945\u0915\u0902\u0921\u093e\u0902\u0928\u0940","\u0925\u094b\u0921\u0947 \u0938\u0945\u0915\u0902\u0921"],ss:[e+" \u0938\u0945\u0915\u0902\u0921\u093e\u0902\u0928\u0940",e+" \u0938\u0945\u0915\u0902\u0921"],m:["\u090f\u0915\u093e \u092e\u093f\u0923\u091f\u093e\u0928","\u090f\u0915 \u092e\u093f\u0928\u0942\u091f"],mm:[e+" \u092e\u093f\u0923\u091f\u093e\u0902\u0928\u0940",e+" \u092e\u093f\u0923\u091f\u093e\u0902"],h:["\u090f\u0915\u093e \u0935\u0930\u093e\u0928","\u090f\u0915 \u0935\u0930"],hh:[e+" \u0935\u0930\u093e\u0902\u0928\u0940",e+" \u0935\u0930\u093e\u0902"],d:["\u090f\u0915\u093e \u0926\u093f\u0938\u093e\u0928","\u090f\u0915 \u0926\u0940\u0938"],dd:[e+" \u0926\u093f\u0938\u093e\u0902\u0928\u0940",e+" \u0926\u0940\u0938"],M:["\u090f\u0915\u093e \u092e\u094d\u0939\u092f\u0928\u094d\u092f\u093e\u0928","\u090f\u0915 \u092e\u094d\u0939\u092f\u0928\u094b"],MM:[e+" \u092e\u094d\u0939\u092f\u0928\u094d\u092f\u093e\u0928\u0940",e+" \u092e\u094d\u0939\u092f\u0928\u0947"],y:["\u090f\u0915\u093e \u0935\u0930\u094d\u0938\u093e\u0928","\u090f\u0915 \u0935\u0930\u094d\u0938"],yy:[e+" \u0935\u0930\u094d\u0938\u093e\u0902\u0928\u0940",e+" \u0935\u0930\u094d\u0938\u093e\u0902"]};return i?r[n][0]:r[n][1]}e.defineLocale("gom-deva",{months:{standalone:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u0940\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u092f_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),format:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u091a\u094d\u092f\u093e_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940\u091a\u094d\u092f\u093e_\u092e\u093e\u0930\u094d\u091a\u093e\u091a\u094d\u092f\u093e_\u090f\u092a\u094d\u0930\u0940\u0932\u093e\u091a\u094d\u092f\u093e_\u092e\u0947\u092f\u093e\u091a\u094d\u092f\u093e_\u091c\u0942\u0928\u093e\u091a\u094d\u092f\u093e_\u091c\u0941\u0932\u092f\u093e\u091a\u094d\u092f\u093e_\u0911\u0917\u0938\u094d\u091f\u093e\u091a\u094d\u092f\u093e_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u093e\u091a\u094d\u092f\u093e_\u0911\u0915\u094d\u091f\u094b\u092c\u0930\u093e\u091a\u094d\u092f\u093e_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u093e\u091a\u094d\u092f\u093e_\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u093e\u091a\u094d\u092f\u093e".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u0940._\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u092f\u0924\u093e\u0930_\u0938\u094b\u092e\u093e\u0930_\u092e\u0902\u0917\u0933\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u092c\u093f\u0930\u0947\u0938\u094d\u0924\u093e\u0930_\u0938\u0941\u0915\u094d\u0930\u093e\u0930_\u0936\u0947\u0928\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0906\u092f\u0924._\u0938\u094b\u092e._\u092e\u0902\u0917\u0933._\u092c\u0941\u0927._\u092c\u094d\u0930\u0947\u0938\u094d\u0924._\u0938\u0941\u0915\u094d\u0930._\u0936\u0947\u0928.".split("_"),weekdaysMin:"\u0906_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u092c\u094d\u0930\u0947_\u0938\u0941_\u0936\u0947".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [\u0935\u093e\u091c\u0924\u093e\u0902]",LTS:"A h:mm:ss [\u0935\u093e\u091c\u0924\u093e\u0902]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [\u0935\u093e\u091c\u0924\u093e\u0902]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [\u0935\u093e\u091c\u0924\u093e\u0902]",llll:"ddd, D MMM YYYY, A h:mm [\u0935\u093e\u091c\u0924\u093e\u0902]"},calendar:{sameDay:"[\u0906\u092f\u091c] LT",nextDay:"[\u092b\u093e\u0932\u094d\u092f\u093e\u0902] LT",nextWeek:"[\u092b\u0941\u0921\u0932\u094b] dddd[,] LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092b\u093e\u091f\u0932\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s \u0906\u0926\u0940\u0902",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(\u0935\u0947\u0930)/,ordinal:function(e,t){switch(t){case"D":return e+"\u0935\u0947\u0930";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:0,doy:3},meridiemParse:/\u0930\u093e\u0924\u0940|\u0938\u0915\u093e\u0933\u0940\u0902|\u0926\u0928\u092a\u093e\u0930\u093e\u0902|\u0938\u093e\u0902\u091c\u0947/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0930\u093e\u0924\u0940"===t?e<4?e:e+12:"\u0938\u0915\u093e\u0933\u0940\u0902"===t?e:"\u0926\u0928\u092a\u093e\u0930\u093e\u0902"===t?e>12?e:e+12:"\u0938\u093e\u0902\u091c\u0947"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"\u0930\u093e\u0924\u0940":e<12?"\u0938\u0915\u093e\u0933\u0940\u0902":e<16?"\u0926\u0928\u092a\u093e\u0930\u093e\u0902":e<20?"\u0938\u093e\u0902\u091c\u0947":"\u0930\u093e\u0924\u0940"}})}(n(29609))},18518:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){var r={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return i?r[n][0]:r[n][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:0,doy:3},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(n(29609))},89221:function(e,t,n){!function(e){"use strict";var t={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},n={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};e.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ab9\u0ac7\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(e){return e.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0ab0\u0abe\u0aa4"===t?e<4?e:e+12:"\u0ab8\u0ab5\u0abe\u0ab0"===t?e:"\u0aac\u0aaa\u0acb\u0ab0"===t?e>=10?e:e+12:"\u0ab8\u0abe\u0a82\u0a9c"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"\u0ab0\u0abe\u0aa4":e<10?"\u0ab8\u0ab5\u0abe\u0ab0":e<17?"\u0aac\u0aaa\u0acb\u0ab0":e<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(n(29609))},64743:function(e,t,n){!function(e){"use strict";e.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(e){return 2===e?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":e+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(e){return 2===e?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":e+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(e){return 2===e?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":e+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(e){return 2===e?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":e%10==0&&10!==e?e+" \u05e9\u05e0\u05d4":e+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(e){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(e)},meridiem:function(e,t,n){return e<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":e<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":e<12?n?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":e<18?n?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}(n(29609))},77339:function(e,t,n){!function(e){"use strict";var t={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},n={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"},i=[/^\u091c\u0928/i,/^\u092b\u093c\u0930|\u092b\u0930/i,/^\u092e\u093e\u0930\u094d\u091a/i,/^\u0905\u092a\u094d\u0930\u0948/i,/^\u092e\u0908/i,/^\u091c\u0942\u0928/i,/^\u091c\u0941\u0932/i,/^\u0905\u0917/i,/^\u0938\u093f\u0924\u0902|\u0938\u093f\u0924/i,/^\u0905\u0915\u094d\u091f\u0942/i,/^\u0928\u0935|\u0928\u0935\u0902/i,/^\u0926\u093f\u0938\u0902|\u0926\u093f\u0938/i];e.defineLocale("hi",{months:{format:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),standalone:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u0902\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u0902\u092c\u0930_\u0926\u093f\u0938\u0902\u092c\u0930".split("_")},monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},monthsParse:i,longMonthsParse:i,shortMonthsParse:[/^\u091c\u0928/i,/^\u092b\u093c\u0930/i,/^\u092e\u093e\u0930\u094d\u091a/i,/^\u0905\u092a\u094d\u0930\u0948/i,/^\u092e\u0908/i,/^\u091c\u0942\u0928/i,/^\u091c\u0941\u0932/i,/^\u0905\u0917/i,/^\u0938\u093f\u0924/i,/^\u0905\u0915\u094d\u091f\u0942/i,/^\u0928\u0935/i,/^\u0926\u093f\u0938/i],monthsRegex:/^(\u091c\u0928\u0935\u0930\u0940|\u091c\u0928\.?|\u092b\u093c\u0930\u0935\u0930\u0940|\u092b\u0930\u0935\u0930\u0940|\u092b\u093c\u0930\.?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\u0932|\u0905\u092a\u094d\u0930\u0948\.?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\u093e\u0908|\u091c\u0941\u0932\.?|\u0905\u0917\u0938\u094d\u0924|\u0905\u0917\.?|\u0938\u093f\u0924\u092e\u094d\u092c\u0930|\u0938\u093f\u0924\u0902\u092c\u0930|\u0938\u093f\u0924\.?|\u0905\u0915\u094d\u091f\u0942\u092c\u0930|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\u092e\u094d\u092c\u0930|\u0928\u0935\u0902\u092c\u0930|\u0928\u0935\.?|\u0926\u093f\u0938\u092e\u094d\u092c\u0930|\u0926\u093f\u0938\u0902\u092c\u0930|\u0926\u093f\u0938\.?)/i,monthsShortRegex:/^(\u091c\u0928\u0935\u0930\u0940|\u091c\u0928\.?|\u092b\u093c\u0930\u0935\u0930\u0940|\u092b\u0930\u0935\u0930\u0940|\u092b\u093c\u0930\.?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\u0932|\u0905\u092a\u094d\u0930\u0948\.?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\u093e\u0908|\u091c\u0941\u0932\.?|\u0905\u0917\u0938\u094d\u0924|\u0905\u0917\.?|\u0938\u093f\u0924\u092e\u094d\u092c\u0930|\u0938\u093f\u0924\u0902\u092c\u0930|\u0938\u093f\u0924\.?|\u0905\u0915\u094d\u091f\u0942\u092c\u0930|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\u092e\u094d\u092c\u0930|\u0928\u0935\u0902\u092c\u0930|\u0928\u0935\.?|\u0926\u093f\u0938\u092e\u094d\u092c\u0930|\u0926\u093f\u0938\u0902\u092c\u0930|\u0926\u093f\u0938\.?)/i,monthsStrictRegex:/^(\u091c\u0928\u0935\u0930\u0940?|\u092b\u093c\u0930\u0935\u0930\u0940|\u092b\u0930\u0935\u0930\u0940?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\u0932?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\u093e\u0908?|\u0905\u0917\u0938\u094d\u0924?|\u0938\u093f\u0924\u092e\u094d\u092c\u0930|\u0938\u093f\u0924\u0902\u092c\u0930|\u0938\u093f\u0924?\.?|\u0905\u0915\u094d\u091f\u0942\u092c\u0930|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\u092e\u094d\u092c\u0930|\u0928\u0935\u0902\u092c\u0930?|\u0926\u093f\u0938\u092e\u094d\u092c\u0930|\u0926\u093f\u0938\u0902\u092c\u0930?)/i,monthsShortStrictRegex:/^(\u091c\u0928\.?|\u092b\u093c\u0930\.?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\.?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\.?|\u0905\u0917\.?|\u0938\u093f\u0924\.?|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\.?|\u0926\u093f\u0938\.?)/i,calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0930\u093e\u0924"===t?e<4?e:e+12:"\u0938\u0941\u092c\u0939"===t?e:"\u0926\u094b\u092a\u0939\u0930"===t?e>=10?e:e+12:"\u0936\u093e\u092e"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"\u0930\u093e\u0924":e<10?"\u0938\u0941\u092c\u0939":e<17?"\u0926\u094b\u092a\u0939\u0930":e<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(n(29609))},13224:function(e,t,n){!function(e){"use strict";function t(e,t,n){var i=e+" ";switch(n){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}e.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:return"[pro\u0161lu] [nedjelju] [u] LT";case 3:return"[pro\u0161lu] [srijedu] [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(29609))},50856:function(e,t,n){!function(e){"use strict";var t="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function n(e,t,n,i){var r=e;switch(n){case"s":return i||t?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return r+(i||t)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(i||t?" perc":" perce");case"mm":return r+(i||t?" perc":" perce");case"h":return"egy"+(i||t?" \xf3ra":" \xf3r\xe1ja");case"hh":return r+(i||t?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(i||t?" nap":" napja");case"dd":return r+(i||t?" nap":" napja");case"M":return"egy"+(i||t?" h\xf3nap":" h\xf3napja");case"MM":return r+(i||t?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(i||t?" \xe9v":" \xe9ve");case"yy":return r+(i||t?" \xe9v":" \xe9ve")}return""}function i(e){return(e?"":"[m\xfalt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan._feb._m\xe1rc._\xe1pr._m\xe1j._j\xfan._j\xfal._aug._szept._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return i.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return i.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},76855:function(e,t,n){!function(e){"use strict";e.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(e){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(e)},meridiem:function(e){return e<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":e<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":e<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-\u056b\u0576":e+"-\u0580\u0564";default:return e}},week:{dow:1,doy:7}})}(n(29609))},2190:function(e,t,n){!function(e){"use strict";e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(n(29609))},53887:function(e,t,n){!function(e){"use strict";function t(e){return e%100==11||e%10!=1}function n(e,n,i,r){var a=e+" ";switch(i){case"s":return n||r?"nokkrar sek\xfandur":"nokkrum sek\xfandum";case"ss":return t(e)?a+(n||r?"sek\xfandur":"sek\xfandum"):a+"sek\xfanda";case"m":return n?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return t(e)?a+(n||r?"m\xedn\xfatur":"m\xedn\xfatum"):n?a+"m\xedn\xfata":a+"m\xedn\xfatu";case"hh":return t(e)?a+(n||r?"klukkustundir":"klukkustundum"):a+"klukkustund";case"d":return n?"dagur":r?"dag":"degi";case"dd":return t(e)?n?a+"dagar":a+(r?"daga":"d\xf6gum"):n?a+"dagur":a+(r?"dag":"degi");case"M":return n?"m\xe1nu\xf0ur":r?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return t(e)?n?a+"m\xe1nu\xf0ir":a+(r?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):n?a+"m\xe1nu\xf0ur":a+(r?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return n||r?"\xe1r":"\xe1ri";case"yy":return t(e)?a+(n||r?"\xe1r":"\xe1rum"):a+(n||r?"\xe1r":"\xe1ri")}}e.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},85890:function(e,t,n){!function(e){"use strict";e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(n(29609))},19270:function(e,t,n){!function(e){"use strict";e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){switch(this.day()){case 0:return"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT";default:return"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"}},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",w:"una settimana",ww:"%d settimane",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(n(29609))},46595:function(e,t,n){!function(e){"use strict";e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"\u4ee4\u548c",narrow:"\u32ff",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"\u5e73\u6210",narrow:"\u337b",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"\u662d\u548c",narrow:"\u337c",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"\u5927\u6b63",narrow:"\u337d",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"\u660e\u6cbb",narrow:"\u337e",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"\u897f\u66a6",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"\u7d00\u5143\u524d",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(\u5143|\d+)\u5e74/,eraYearOrdinalParse:function(e,t){return"\u5143"===t[1]?1:parseInt(t[1]||e,10)},months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(e){return"\u5348\u5f8c"===e},meridiem:function(e,t,n){return e<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(e){return e.week()!==this.week()?"[\u6765\u9031]dddd LT":"dddd LT"},lastDay:"[\u6628\u65e5] LT",lastWeek:function(e){return this.week()!==e.week()?"[\u5148\u9031]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(e,t){switch(t){case"y":return 1===e?"\u5143\u5e74":e+"\u5e74";case"d":case"D":case"DDD":return e+"\u65e5";default:return e}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u6570\u79d2",ss:"%d\u79d2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65e5",dd:"%d\u65e5",M:"1\u30f6\u6708",MM:"%d\u30f6\u6708",y:"1\u5e74",yy:"%d\u5e74"}})}(n(29609))},93081:function(e,t,n){!function(e){"use strict";e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(29609))},27477:function(e,t,n){!function(e){"use strict";e.defineLocale("ka",{months:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(\u10ec\u10d0\u10db|\u10ec\u10e3\u10d7|\u10e1\u10d0\u10d0\u10d7|\u10ec\u10d4\u10da|\u10d3\u10e6|\u10d7\u10d5)(\u10d8|\u10d4)/,function(e,t,n){return"\u10d8"===n?t+"\u10e8\u10d8":t+n+"\u10e8\u10d8"})},past:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(e)?e.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(e)?e.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):e},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(e){return 0===e?e:1===e?e+"-\u10da\u10d8":e<20||e<=100&&e%20==0||e%100==0?"\u10db\u10d4-"+e:e+"-\u10d4"},week:{dow:1,doy:7}})}(n(29609))},13978:function(e,t,n){!function(e){"use strict";var t={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};e.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(29609))},19205:function(e,t,n){!function(e){"use strict";var t={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},n={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};e.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(e){return"\u179b\u17d2\u1784\u17b6\u1785"===e},meridiem:function(e,t,n){return e<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(e){return e.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},week:{dow:1,doy:4}})}(n(29609))},60025:function(e,t,n){!function(e){"use strict";var t={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},n={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};e.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(e){return e.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===t?e<4?e:e+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===t?e:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===t?e>=10?e:e+12:"\u0cb8\u0c82\u0c9c\u0cc6"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":e<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":e<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":e<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(e){return e+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(n(29609))},50427:function(e,t,n){!function(e){"use strict";e.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"\uc77c";case"M":return e+"\uc6d4";case"w":case"W":return e+"\uc8fc";default:return e}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(e){return"\uc624\ud6c4"===e},meridiem:function(e,t,n){return e<12?"\uc624\uc804":"\uc624\ud6c4"}})}(n(29609))},79089:function(e,t,n){!function(e){"use strict";var t={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},n={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},i=["\u06a9\u0627\u0646\u0648\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0634\u0648\u0628\u0627\u062a","\u0626\u0627\u0632\u0627\u0631","\u0646\u06cc\u0633\u0627\u0646","\u0626\u0627\u06cc\u0627\u0631","\u062d\u0648\u0632\u06d5\u06cc\u0631\u0627\u0646","\u062a\u06d5\u0645\u0645\u0648\u0632","\u0626\u0627\u0628","\u0626\u06d5\u06cc\u0644\u0648\u0648\u0644","\u062a\u0634\u0631\u06cc\u0646\u06cc \u06cc\u06d5\u0643\u06d5\u0645","\u062a\u0634\u0631\u06cc\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0643\u0627\u0646\u0648\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645"];e.defineLocale("ku",{months:i,monthsShort:i,weekdays:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u062f\u0648\u0648\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0633\u06ce\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysShort:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645_\u062f\u0648\u0648\u0634\u0647\u200c\u0645_\u0633\u06ce\u0634\u0647\u200c\u0645_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u0647_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,isPM:function(e){return/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(e)},meridiem:function(e,t,n){return e<12?"\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc":"\u0626\u06ce\u0648\u0627\u0631\u0647\u200c"},calendar:{sameDay:"[\u0626\u0647\u200c\u0645\u0631\u06c6 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextDay:"[\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastDay:"[\u062f\u0648\u06ce\u0646\u06ce \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",sameElse:"L"},relativeTime:{future:"\u0644\u0647\u200c %s",past:"%s",s:"\u0686\u0647\u200c\u0646\u062f \u0686\u0631\u0643\u0647\u200c\u06cc\u0647\u200c\u0643",ss:"\u0686\u0631\u0643\u0647\u200c %d",m:"\u06cc\u0647\u200c\u0643 \u062e\u0648\u0644\u0647\u200c\u0643",mm:"%d \u062e\u0648\u0644\u0647\u200c\u0643",h:"\u06cc\u0647\u200c\u0643 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",hh:"%d \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",d:"\u06cc\u0647\u200c\u0643 \u0695\u06c6\u0698",dd:"%d \u0695\u06c6\u0698",M:"\u06cc\u0647\u200c\u0643 \u0645\u0627\u0646\u06af",MM:"%d \u0645\u0627\u0646\u06af",y:"\u06cc\u0647\u200c\u0643 \u0633\u0627\u06b5",yy:"%d \u0633\u0627\u06b5"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return n[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(n(29609))},19314:function(e,t,n){!function(e){"use strict";var t={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};e.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u044d\u044d \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u04e9\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(29609))},23136:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?r[n][0]:r[n][1]}function n(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return n(0===t?e/10:t)}if(e<1e4){for(;e>=10;)e/=10;return n(e)}return n(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return n(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return n(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d M\xe9int",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},29115:function(e,t,n){!function(e){"use strict";e.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(e){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===e},meridiem:function(e,t,n){return e<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(e){return"\u0e97\u0eb5\u0ec8"+e}})}(n(29609))},27087:function(e,t,n){!function(e){"use strict";var t={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function n(e,t,n,i){return t?r(n)[0]:i?r(n)[1]:r(n)[2]}function i(e){return e%10==0||e>10&&e<20}function r(e){return t[e].split("_")}function a(e,t,a,o){var s=e+" ";return 1===e?s+n(0,t,a[0],o):t?s+(i(e)?r(a)[1]:r(a)[0]):o?s+r(a)[1]:s+(i(e)?r(a)[1]:r(a)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function(e,t,n,i){return t?"kelios sekund\u0117s":i?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:a,m:n,mm:a,h:n,hh:a,d:n,dd:a,M:n,MM:a,y:n,yy:a},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(n(29609))},95683:function(e,t,n){!function(e){"use strict";var t={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function i(e,i,r){return e+" "+n(t[r],e,i)}function r(e,i,r){return n(t[r],e,i)}e.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function(e,t){return t?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:i,m:r,mm:i,h:r,hh:i,d:r,dd:i,M:r,MM:i,y:r,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},79454:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,i){var r=t.words[i];return 1===i.length?n?r[0]:r[1]:e+" "+t.correctGrammaticalCase(e,r)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(29609))},35507:function(e,t,n){!function(e){"use strict";e.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(n(29609))},98466:function(e,t,n){!function(e){"use strict";e.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u0435\u0434\u043d\u0430 \u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0435\u0434\u0435\u043d \u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0435\u0434\u0435\u043d \u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u0435\u0434\u0435\u043d \u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0435\u0434\u043d\u0430 \u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-\u0435\u0432":0===n?e+"-\u0435\u043d":n>10&&n<20?e+"-\u0442\u0438":1===t?e+"-\u0432\u0438":2===t?e+"-\u0440\u0438":7===t||8===t?e+"-\u043c\u0438":e+"-\u0442\u0438"},week:{dow:1,doy:7}})}(n(29609))},82933:function(e,t,n){!function(e){"use strict";e.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===t&&e>=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===t||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===t?e+12:e},meridiem:function(e,t,n){return e<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":e<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":e<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":e<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}(n(29609))},19477:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){switch(n){case"s":return t?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return e+(t?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return e+(t?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return e+(t?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return e+(t?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return e+(t?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return e+(t?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return e}}e.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(e){return"\u04ae\u0425"===e},meridiem:function(e,t,n){return e<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" \u04e9\u0434\u04e9\u0440";default:return e}}})}(n(29609))},43597:function(e,t,n){!function(e){"use strict";var t={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},n={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function i(e,t,n,i){var r="";if(t)switch(n){case"s":r="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":r="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":r="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":r="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":r="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":r="%d \u0924\u093e\u0938";break;case"d":r="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":r="%d \u0926\u093f\u0935\u0938";break;case"M":r="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":r="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":r="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":r="%d \u0935\u0930\u094d\u0937\u0947"}else switch(n){case"s":r="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":r="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":r="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":r="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":r="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":r="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":r="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":r="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":r="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":r="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":r="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":r="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return r.replace(/%d/i,e)}e.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u092a\u0939\u093e\u091f\u0947|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940|\u0930\u093e\u0924\u094d\u0930\u0940/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u092a\u0939\u093e\u091f\u0947"===t||"\u0938\u0915\u093e\u0933\u0940"===t?e:"\u0926\u0941\u092a\u093e\u0930\u0940"===t||"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===t||"\u0930\u093e\u0924\u094d\u0930\u0940"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,n){return e>=0&&e<6?"\u092a\u0939\u093e\u091f\u0947":e<12?"\u0938\u0915\u093e\u0933\u0940":e<17?"\u0926\u0941\u092a\u093e\u0930\u0940":e<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(n(29609))},99965:function(e,t,n){!function(e){"use strict";e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(29609))},85529:function(e,t,n){!function(e){"use strict";e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(29609))},30259:function(e,t,n){!function(e){"use strict";e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(n(29609))},88061:function(e,t,n){!function(e){"use strict";var t={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},n={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};e.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(e){return e.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},week:{dow:1,doy:4}})}(n(29609))},72618:function(e,t,n){!function(e){"use strict";e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",w:"en uke",ww:"%d uker",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},28452:function(e,t,n){!function(e){"use strict";var t={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},n={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};e.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0930\u093e\u0924\u093f"===t?e<4?e:e+12:"\u092c\u093f\u0939\u093e\u0928"===t?e:"\u0926\u093f\u0909\u0901\u0938\u094b"===t?e>=10?e:e+12:"\u0938\u093e\u0901\u091d"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"\u0930\u093e\u0924\u093f":e<12?"\u092c\u093f\u0939\u093e\u0928":e<16?"\u0926\u093f\u0909\u0901\u0938\u094b":e<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(n(29609))},60413:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),i=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(29609))},1885:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),i=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",w:"\xe9\xe9n week",ww:"%d weken",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(29609))},45107:function(e,t,n){!function(e){"use strict";e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._m\xe5._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",w:"ei veke",ww:"%d veker",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},71763:function(e,t,n){!function(e){"use strict";e.defineLocale("oc-lnc",{months:{standalone:"geni\xe8r_febri\xe8r_mar\xe7_abril_mai_junh_julhet_agost_setembre_oct\xf2bre_novembre_decembre".split("_"),format:"de geni\xe8r_de febri\xe8r_de mar\xe7_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'oct\xf2bre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dim\xe8cres_dij\xf2us_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[u\xe8i a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[i\xe8r a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"\xe8";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(29609))},702:function(e,t,n){!function(e){"use strict";var t={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},n={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};e.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(e){return e.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0a30\u0a3e\u0a24"===t?e<4?e:e+12:"\u0a38\u0a35\u0a47\u0a30"===t?e:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===t?e>=10?e:e+12:"\u0a38\u0a3c\u0a3e\u0a2e"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"\u0a30\u0a3e\u0a24":e<10?"\u0a38\u0a35\u0a47\u0a30":e<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":e<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(n(29609))},31711:function(e,t,n){!function(e){"use strict";var t="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_"),i=[/^sty/i,/^lut/i,/^mar/i,/^kwi/i,/^maj/i,/^cze/i,/^lip/i,/^sie/i,/^wrz/i,/^pa\u017a/i,/^lis/i,/^gru/i];function r(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function a(e,t,n){var i=e+" ";switch(n){case"ss":return i+(r(e)?"sekundy":"sekund");case"m":return t?"minuta":"minut\u0119";case"mm":return i+(r(e)?"minuty":"minut");case"h":return t?"godzina":"godzin\u0119";case"hh":return i+(r(e)?"godziny":"godzin");case"ww":return i+(r(e)?"tygodnie":"tygodni");case"MM":return i+(r(e)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return i+(r(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,i){return e?/D MMMM/.test(i)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:a,m:a,mm:a,h:a,hh:a,d:"1 dzie\u0144",dd:"%d dni",w:"tydzie\u0144",ww:a,M:"miesi\u0105c",MM:a,y:"rok",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},58238:function(e,t,n){!function(e){"use strict";e.defineLocale("pt-br",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_ter\xe7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xe1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_s\xe1b".split("_"),weekdaysMin:"do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",invalidDate:"Data inv\xe1lida"})}(n(29609))},10594:function(e,t,n){!function(e){"use strict";e.defineLocale("pt",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",w:"uma semana",ww:"%d semanas",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(n(29609))},74681:function(e,t,n){!function(e){"use strict";function t(e,t,n){var i=" ";return(e%100>=20||e>=100&&e%100==0)&&(i=" de "),e+i+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",ww:"s\u0103pt\u0103m\xe2ni",MM:"luni",yy:"ani"}[n]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:t,m:"un minut",mm:t,h:"o or\u0103",hh:t,d:"o zi",dd:t,w:"o s\u0103pt\u0103m\xe2n\u0103",ww:t,M:"o lun\u0103",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(n(29609))},16201:function(e,t,n){!function(e){"use strict";function t(e,t,n){return"m"===n?t?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":e+" "+(i=+e,r={ss:t?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:t?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",ww:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043d\u0435\u0434\u0435\u043b\u0438_\u043d\u0435\u0434\u0435\u043b\u044c",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[n].split("_"),i%10==1&&i%100!=11?r[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?r[1]:r[2]);var i,r}var n=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];e.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:t,m:t,mm:t,h:"\u0447\u0430\u0441",hh:t,d:"\u0434\u0435\u043d\u044c",dd:t,w:"\u043d\u0435\u0434\u0435\u043b\u044f",ww:t,M:"\u043c\u0435\u0441\u044f\u0446",MM:t,y:"\u0433\u043e\u0434",yy:t},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"\u043d\u043e\u0447\u0438":e<12?"\u0443\u0442\u0440\u0430":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-\u0439";case"D":return e+"-\u0433\u043e";case"w":case"W":return e+"-\u044f";default:return e}},week:{dow:1,doy:4}})}(n(29609))},62912:function(e,t,n){!function(e){"use strict";var t=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],n=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"\u0634\u0627\u0645"===e},meridiem:function(e,t,n){return e<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(n(29609))},6002:function(e,t,n){!function(e){"use strict";e.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},67942:function(e,t,n){!function(e){"use strict";e.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(e){return e+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(e){return"\u0db4.\u0dc0."===e||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===e},meridiem:function(e,t,n){return e>11?n?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":n?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}(n(29609))},25577:function(e,t,n){!function(e){"use strict";var t="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),n="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function i(e){return e>1&&e<5}function r(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return t||r?a+(i(e)?"sekundy":"sek\xfand"):a+"sekundami";case"m":return t?"min\xfata":r?"min\xfatu":"min\xfatou";case"mm":return t||r?a+(i(e)?"min\xfaty":"min\xfat"):a+"min\xfatami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?a+(i(e)?"hodiny":"hod\xedn"):a+"hodinami";case"d":return t||r?"de\u0148":"d\u0148om";case"dd":return t||r?a+(i(e)?"dni":"dn\xed"):a+"d\u0148ami";case"M":return t||r?"mesiac":"mesiacom";case"MM":return t||r?a+(i(e)?"mesiace":"mesiacov"):a+"mesiacmi";case"y":return t||r?"rok":"rokom";case"yy":return t||r?a+(i(e)?"roky":"rokov"):a+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 4:case 5:return"[minul\xfd] dddd [o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},41775:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"nekaj sekund":"nekaj sekundami";case"ss":return r+(1===e?t?"sekundo":"sekundi":2===e?t||i?"sekundi":"sekundah":e<5?t||i?"sekunde":"sekundah":"sekund");case"m":return t?"ena minuta":"eno minuto";case"mm":return r+(1===e?t?"minuta":"minuto":2===e?t||i?"minuti":"minutama":e<5?t||i?"minute":"minutami":t||i?"minut":"minutami");case"h":return t?"ena ura":"eno uro";case"hh":return r+(1===e?t?"ura":"uro":2===e?t||i?"uri":"urama":e<5?t||i?"ure":"urami":t||i?"ur":"urami");case"d":return t||i?"en dan":"enim dnem";case"dd":return r+(1===e?t||i?"dan":"dnem":2===e?t||i?"dni":"dnevoma":t||i?"dni":"dnevi");case"M":return t||i?"en mesec":"enim mesecem";case"MM":return r+(1===e?t||i?"mesec":"mesecem":2===e?t||i?"meseca":"mesecema":e<5?t||i?"mesece":"meseci":t||i?"mesecev":"meseci");case"y":return t||i?"eno leto":"enim letom";case"yy":return r+(1===e?t||i?"leto":"letom":2===e?t||i?"leti":"letoma":e<5?t||i?"leta":"leti":t||i?"let":"leti")}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(29609))},36823:function(e,t,n){!function(e){"use strict";e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},83848:function(e,t,n){!function(e){"use strict";var t={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,i){var r=t.words[i];return 1===i.length?n?r[0]:r[1]:e+" "+t.correctGrammaticalCase(e,r)}};e.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"\u0434\u0430\u043d",dd:t.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:t.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(29609))},59038:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,i){var r=t.words[i];return 1===i.length?n?r[0]:r[1]:e+" "+t.correctGrammaticalCase(e,r)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(29609))},96173:function(e,t,n){!function(e){"use strict";e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(29609))},5788:function(e,t,n){!function(e){"use strict";e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(n(29609))},76882:function(e,t,n){!function(e){"use strict";e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(29609))},82678:function(e,t,n){!function(e){"use strict";var t={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},n={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};e.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(e){return e+"\u0bb5\u0ba4\u0bc1"},preparse:function(e){return e.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(e,t,n){return e<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":e<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":e<10?" \u0b95\u0bbe\u0bb2\u0bc8":e<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":e<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":e<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(e,t){return 12===e&&(e=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===t?e<2?e:e+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===t||"\u0b95\u0bbe\u0bb2\u0bc8"===t||"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(n(29609))},82797:function(e,t,n){!function(e){"use strict";e.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===t?e<4?e:e+12:"\u0c09\u0c26\u0c2f\u0c02"===t?e:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===t?e>=10?e:e+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":e<10?"\u0c09\u0c26\u0c2f\u0c02":e<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":e<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}(n(29609))},52447:function(e,t,n){!function(e){"use strict";e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"segundu balun",ss:"segundu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(29609))},31335:function(e,t,n){!function(e){"use strict";var t={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};e.defineLocale("tg",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0430\u043b\u0438_\u043c\u0430\u0440\u0442\u0438_\u0430\u043f\u0440\u0435\u043b\u0438_\u043c\u0430\u0439\u0438_\u0438\u044e\u043d\u0438_\u0438\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442\u0438_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u0438_\u043e\u043a\u0442\u044f\u0431\u0440\u0438_\u043d\u043e\u044f\u0431\u0440\u0438_\u0434\u0435\u043a\u0430\u0431\u0440\u0438".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_")},monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u0424\u0430\u0440\u0434\u043e \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u0448\u0430\u0431"===t?e<4?e:e+12:"\u0441\u0443\u0431\u04b3"===t?e:"\u0440\u04ef\u0437"===t?e>=11?e:e+12:"\u0431\u0435\u0433\u043e\u04b3"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"\u0448\u0430\u0431":e<11?"\u0441\u0443\u0431\u04b3":e<16?"\u0440\u04ef\u0437":e<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(29609))},68667:function(e,t,n){!function(e){"use strict";e.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(e){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===e},meridiem:function(e,t,n){return e<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",w:"1 \u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c",ww:"%d \u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}(n(29609))},9222:function(e,t,n){!function(e){"use strict";var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'\xfcnji",4:"'\xfcnji",100:"'\xfcnji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"\xddanwar_Fewral_Mart_Aprel_Ma\xfd_I\xfdun_I\xfdul_Awgust_Sent\xfdabr_Okt\xfdabr_No\xfdabr_Dekabr".split("_"),monthsShort:"\xddan_Few_Mar_Apr_Ma\xfd_I\xfdn_I\xfdl_Awg_Sen_Okt_No\xfd_Dek".split("_"),weekdays:"\xddek\u015fenbe_Du\u015fenbe_Si\u015fenbe_\xc7ar\u015fenbe_Pen\u015fenbe_Anna_\u015eenbe".split("_"),weekdaysShort:"\xddek_Du\u015f_Si\u015f_\xc7ar_Pen_Ann_\u015een".split("_"),weekdaysMin:"\xddk_D\u015f_S\u015f_\xc7r_Pn_An_\u015en".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[d\xfc\xfdn] LT",lastWeek:"[ge\xe7en] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s so\u0148",past:"%s \xf6\u0148",s:"birn\xe4\xe7e sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir a\xfd",MM:"%d a\xfd",y:"bir \xfdyl",yy:"%d \xfdyl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var i=e%10;return e+(t[i]||t[e%100-i]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(29609))},99914:function(e,t,n){!function(e){"use strict";e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(29609))},71389:function(e,t,n){!function(e){"use strict";var t="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e,n,i,r){var a=function(e){var n=Math.floor(e%1e3/100),i=Math.floor(e%100/10),r=e%10,a="";return n>0&&(a+=t[n]+"vatlh"),i>0&&(a+=(""!==a?" ":"")+t[i]+"maH"),r>0&&(a+=(""!==a?" ":"")+t[r]),""===a?"pagh":a}(e);switch(i){case"ss":return a+" lup";case"mm":return a+" tup";case"hh":return a+" rep";case"dd":return a+" jaj";case"MM":return a+" jar";case"yy":return a+" DIS"}}e.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu\u2019":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:n,m:"wa\u2019 tup",mm:n,h:"wa\u2019 rep",hh:n,d:"wa\u2019 jaj",dd:n,M:"wa\u2019 jar",MM:n,y:"wa\u2019 DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},3578:function(e,t,n){!function(e){"use strict";var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};e.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),meridiem:function(e,t,n){return e<12?n?"\xf6\xf6":"\xd6\xd6":n?"\xf6s":"\xd6S"},meridiemParse:/\xf6\xf6|\xd6\xd6|\xf6s|\xd6S/,isPM:function(e){return"\xf6s"===e||"\xd6S"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",w:"bir hafta",ww:"%d hafta",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'\u0131nc\u0131";var i=e%10;return e+(t[i]||t[e%100-i]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(29609))},36969:function(e,t,n){!function(e){"use strict";function t(e,t,n,i){var r={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[e+" m\xeduts",e+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[e+" \xfeoras",e+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return i||t?r[n][0]:r[n][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(29609))},690:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(29609))},76509:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}(n(29609))},20055:function(e,t,n){!function(e){"use strict";e.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===t||"\u0633\u06d5\u06be\u06d5\u0631"===t||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===t?e:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===t||"\u0643\u06d5\u0686"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var i=100*e+t;return i<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":i<900?"\u0633\u06d5\u06be\u06d5\u0631":i<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":i<1230?"\u0686\u06c8\u0634":i<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return e+"-\u06be\u06d5\u067e\u062a\u06d5";default:return e}},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}(n(29609))},22452:function(e,t,n){!function(e){"use strict";function t(e,t,n){return"m"===n?t?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===n?t?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":e+" "+(i=+e,r={ss:t?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:t?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:t?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[n].split("_"),i%10==1&&i%100!=11?r[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?r[1]:r[2]);var i,r}function n(e){return function(){return e+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}e.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function(e,t){var n={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(t)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:n("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:n("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:n("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:n("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return n("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return n("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:t,m:t,mm:t,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:t,d:"\u0434\u0435\u043d\u044c",dd:t,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:t,y:"\u0440\u0456\u043a",yy:t},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"\u043d\u043e\u0447\u0456":e<12?"\u0440\u0430\u043d\u043a\u0443":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-\u0439";case"D":return e+"-\u0433\u043e";default:return e}},week:{dow:1,doy:7}})}(n(29609))},91151:function(e,t,n){!function(e){"use strict";var t=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],n=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"\u0634\u0627\u0645"===e},meridiem:function(e,t,n){return e<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(n(29609))},46547:function(e,t,n){!function(e){"use strict";e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(29609))},31555:function(e,t,n){!function(e){"use strict";e.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}(n(29609))},16541:function(e,t,n){!function(e){"use strict";e.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n tr\u01b0\u1edbc l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",w:"m\u1ed9t tu\u1ea7n",ww:"%d tu\u1ea7n",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(29609))},42401:function(e,t,n){!function(e){"use strict";e.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(29609))},2341:function(e,t,n){!function(e){"use strict";e.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}(n(29609))},80619:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u51cc\u6668"===t||"\u65e9\u4e0a"===t||"\u4e0a\u5348"===t?e:"\u4e0b\u5348"===t||"\u665a\u4e0a"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var i=100*e+t;return i<600?"\u51cc\u6668":i<900?"\u65e9\u4e0a":i<1130?"\u4e0a\u5348":i<1230?"\u4e2d\u5348":i<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:function(e){return e.week()!==this.week()?"[\u4e0b]dddLT":"[\u672c]dddLT"},lastDay:"[\u6628\u5929]LT",lastWeek:function(e){return this.week()!==e.week()?"[\u4e0a]dddLT":"[\u672c]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u5468";default:return e}},relativeTime:{future:"%s\u540e",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",w:"1 \u5468",ww:"%d \u5468",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}(n(29609))},67058:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u51cc\u6668"===t||"\u65e9\u4e0a"===t||"\u4e0a\u5348"===t?e:"\u4e2d\u5348"===t?e>=11?e:e+12:"\u4e0b\u5348"===t||"\u665a\u4e0a"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"\u51cc\u6668":i<900?"\u65e9\u4e0a":i<1200?"\u4e0a\u5348":1200===i?"\u4e2d\u5348":i<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u9031";default:return e}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(n(29609))},89141:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-mo",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"D/M/YYYY",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u51cc\u6668"===t||"\u65e9\u4e0a"===t||"\u4e0a\u5348"===t?e:"\u4e2d\u5348"===t?e>=11?e:e+12:"\u4e0b\u5348"===t||"\u665a\u4e0a"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"\u51cc\u6668":i<900?"\u65e9\u4e0a":i<1130?"\u4e0a\u5348":i<1230?"\u4e2d\u5348":i<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u9031";default:return e}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(n(29609))},22782:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"\u51cc\u6668"===t||"\u65e9\u4e0a"===t||"\u4e0a\u5348"===t?e:"\u4e2d\u5348"===t?e>=11?e:e+12:"\u4e0b\u5348"===t||"\u665a\u4e0a"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"\u51cc\u6668":i<900?"\u65e9\u4e0a":i<1130?"\u4e0a\u5348":i<1230?"\u4e2d\u5348":i<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u9031";default:return e}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(n(29609))},29609:function(e,t,n){(e=n.nmd(e)).exports=function(){"use strict";var t,i;function r(){return t.apply(null,arguments)}function a(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function o(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(s(e,t))return!1;return!0}function l(e){return void 0===e}function c(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function h(e,t){var n,i=[];for(n=0;n>>0;for(t=0;t0)for(n=0;n<_.length;n++)l(r=t[i=_[n]])||(e[i]=r);return e}function w(e){b(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===y&&(y=!0,r.updateOffset(this),y=!1)}function k(e){return e instanceof w||null!=e&&null!=e._isAMomentObject}function M(e){!1===r.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function S(e,t){var n=!0;return f(function(){if(null!=r.deprecationHandler&&r.deprecationHandler(null,e),n){var i,a,o,u=[];for(a=0;a=0?n?"+":"":"-")+Math.pow(10,Math.max(0,t-i.length)).toString().substr(1)+i}r.suppressDeprecationWarnings=!1,r.deprecationHandler=null,C=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)s(e,t)&&n.push(t);return n};var Y=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,P=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,A={},I={};function R(e,t,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),e&&(I[e]=r),t&&(I[t[0]]=function(){return E(r.apply(this,arguments),t[1],t[2])}),n&&(I[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),e)})}function F(e,t){return e.isValid()?(t=H(t,e.localeData()),A[t]=A[t]||function(e){var t,n,i,r=e.match(Y);for(t=0,n=r.length;t=0&&P.test(e);)e=e.replace(P,i),P.lastIndex=0,n-=1;return e}var j={};function N(e,t){var n=e.toLowerCase();j[n]=j[n+"s"]=j[t]=e}function B(e){return"string"==typeof e?j[e]||j[e.toLowerCase()]:void 0}function W(e){var t,n,i={};for(n in e)s(e,n)&&(t=B(n))&&(i[t]=e[n]);return i}var V={};function U(e,t){V[e]=t}function z(e){return e%4==0&&e%100!=0||e%400==0}function q(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function G(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=q(t)),n}function K(e,t){return function(n){return null!=n?(Z(this,e,n),r.updateOffset(this,t),this):J(this,e)}}function J(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function Z(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&z(e.year())&&1===e.month()&&29===e.date()?(n=G(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),ke(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}var $,X=/\d/,Q=/\d\d/,ee=/\d{3}/,te=/\d{4}/,ne=/[+-]?\d{6}/,ie=/\d\d?/,re=/\d\d\d\d?/,ae=/\d\d\d\d\d\d?/,oe=/\d{1,3}/,se=/\d{1,4}/,ue=/[+-]?\d{1,6}/,le=/\d+/,ce=/[+-]?\d+/,de=/Z|[+-]\d\d:?\d\d/gi,he=/Z|[+-]\d\d(?::?\d\d)?/gi,fe=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function pe(e,t,n){$[e]=T(t)?t:function(e,i){return e&&n?n:t}}function me(e,t){return s($,e)?$[e](t._strict,t._locale):new RegExp(ge(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,i,r){return t||n||i||r})))}function ge(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}$={};var ve,_e={};function ye(e,t){var n,i=t;for("string"==typeof e&&(e=[e]),c(t)&&(i=function(e,n){n[t]=G(e)}),n=0;n68?1900:2e3)};var Pe=K("FullYear",!0);function Ae(e,t,n,i,r,a,o){var s;return e<100&&e>=0?(s=new Date(e+400,t,n,i,r,a,o),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,i,r,a,o),s}function Ie(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Re(e,t,n){var i=7+t-n;return-(7+Ie(e,0,i).getUTCDay()-t)%7+i-1}function Fe(e,t,n,i,r){var a,o,s=1+7*(t-1)+(7+n-i)%7+Re(e,i,r);return s<=0?o=Ye(a=e-1)+s:s>Ye(e)?(a=e+1,o=s-Ye(e)):(a=e,o=s),{year:a,dayOfYear:o}}function He(e,t,n){var i,r,a=Re(e.year(),t,n),o=Math.floor((e.dayOfYear()-a-1)/7)+1;return o<1?i=o+je(r=e.year()-1,t,n):o>je(e.year(),t,n)?(i=o-je(e.year(),t,n),r=e.year()+1):(r=e.year(),i=o),{week:i,year:r}}function je(e,t,n){var i=Re(e,t,n),r=Re(e+1,t,n);return(Ye(e)-i+r)/7}function Ne(e,t){return e.slice(t,7).concat(e.slice(0,t))}R("w",["ww",2],"wo","week"),R("W",["WW",2],"Wo","isoWeek"),N("week","w"),N("isoWeek","W"),U("week",5),U("isoWeek",5),pe("w",ie),pe("ww",ie,Q),pe("W",ie),pe("WW",ie,Q),be(["w","ww","W","WW"],function(e,t,n,i){t[i.substr(0,1)]=G(e)}),R("d",0,"do","day"),R("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),R("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),R("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),R("e",0,0,"weekday"),R("E",0,0,"isoWeekday"),N("day","d"),N("weekday","e"),N("isoWeekday","E"),U("day",11),U("weekday",11),U("isoWeekday",11),pe("d",ie),pe("e",ie),pe("E",ie),pe("dd",function(e,t){return t.weekdaysMinRegex(e)}),pe("ddd",function(e,t){return t.weekdaysShortRegex(e)}),pe("dddd",function(e,t){return t.weekdaysRegex(e)}),be(["dd","ddd","dddd"],function(e,t,n,i){var r=n._locale.weekdaysParse(e,i,n._strict);null!=r?t.d=r:m(n).invalidWeekday=e}),be(["d","e","E"],function(e,t,n,i){t[i]=G(e)});var Be="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),We="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ve="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ue=fe,ze=fe,qe=fe;function Ge(e,t,n){var i,r,a,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)a=p([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(a,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(r=ve.call(this._weekdaysParse,o))?r:null:"ddd"===t?-1!==(r=ve.call(this._shortWeekdaysParse,o))?r:null:-1!==(r=ve.call(this._minWeekdaysParse,o))?r:null:"dddd"===t?-1!==(r=ve.call(this._weekdaysParse,o))||-1!==(r=ve.call(this._shortWeekdaysParse,o))||-1!==(r=ve.call(this._minWeekdaysParse,o))?r:null:"ddd"===t?-1!==(r=ve.call(this._shortWeekdaysParse,o))||-1!==(r=ve.call(this._weekdaysParse,o))||-1!==(r=ve.call(this._minWeekdaysParse,o))?r:null:-1!==(r=ve.call(this._minWeekdaysParse,o))||-1!==(r=ve.call(this._weekdaysParse,o))||-1!==(r=ve.call(this._shortWeekdaysParse,o))?r:null}function Ke(){function e(e,t){return t.length-e.length}var t,n,i,r,a,o=[],s=[],u=[],l=[];for(t=0;t<7;t++)n=p([2e3,1]).day(t),i=ge(this.weekdaysMin(n,"")),r=ge(this.weekdaysShort(n,"")),a=ge(this.weekdays(n,"")),o.push(i),s.push(r),u.push(a),l.push(i),l.push(r),l.push(a);o.sort(e),s.sort(e),u.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Je(){return this.hours()%12||12}function Ze(e,t){R(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function $e(e,t){return t._meridiemParse}R("H",["HH",2],0,"hour"),R("h",["hh",2],0,Je),R("k",["kk",2],0,function(){return this.hours()||24}),R("hmm",0,0,function(){return""+Je.apply(this)+E(this.minutes(),2)}),R("hmmss",0,0,function(){return""+Je.apply(this)+E(this.minutes(),2)+E(this.seconds(),2)}),R("Hmm",0,0,function(){return""+this.hours()+E(this.minutes(),2)}),R("Hmmss",0,0,function(){return""+this.hours()+E(this.minutes(),2)+E(this.seconds(),2)}),Ze("a",!0),Ze("A",!1),N("hour","h"),U("hour",13),pe("a",$e),pe("A",$e),pe("H",ie),pe("h",ie),pe("k",ie),pe("HH",ie,Q),pe("hh",ie,Q),pe("kk",ie,Q),pe("hmm",re),pe("hmmss",ae),pe("Hmm",re),pe("Hmmss",ae),ye(["H","HH"],3),ye(["k","kk"],function(e,t,n){var i=G(e);t[3]=24===i?0:i}),ye(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ye(["h","hh"],function(e,t,n){t[3]=G(e),m(n).bigHour=!0}),ye("hmm",function(e,t,n){var i=e.length-2;t[3]=G(e.substr(0,i)),t[4]=G(e.substr(i)),m(n).bigHour=!0}),ye("hmmss",function(e,t,n){var i=e.length-4,r=e.length-2;t[3]=G(e.substr(0,i)),t[4]=G(e.substr(i,2)),t[5]=G(e.substr(r)),m(n).bigHour=!0}),ye("Hmm",function(e,t,n){var i=e.length-2;t[3]=G(e.substr(0,i)),t[4]=G(e.substr(i))}),ye("Hmmss",function(e,t,n){var i=e.length-4,r=e.length-2;t[3]=G(e.substr(0,i)),t[4]=G(e.substr(i,2)),t[5]=G(e.substr(r))});var Xe,Qe=K("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Me,monthsShort:Se,week:{dow:0,doy:6},weekdays:Be,weekdaysMin:Ve,weekdaysShort:We,meridiemParse:/[ap]\.?m?\.?/i},tt={},nt={};function it(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n0;){if(i=at(r.slice(0,t).join("-")))return i;if(n&&n.length>=t&&it(r,n)>=t-1)break;t--}a++}return Xe}(e)}function lt(e){var t,n=e._a;return n&&-2===m(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>ke(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,m(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),m(e)._overflowWeeks&&-1===t&&(t=7),m(e)._overflowWeekday&&-1===t&&(t=8),m(e).overflow=t),e}var ct=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,dt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ht=/Z|[+-]\d\d(?::?\d\d)?/,ft=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],pt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],mt=/^\/?Date\((-?\d+)/i,gt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,vt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function _t(e){var t,n,i,r,a,o,s=e._i,u=ct.exec(s)||dt.exec(s);if(u){for(m(e).iso=!0,t=0,n=ft.length;t7)&&(u=!0)):(a=e._locale._week.dow,o=e._locale._week.doy,l=He(Ct(),a,o),n=bt(t.gg,e._a[0],l.year),i=bt(t.w,l.week),null!=t.d?((r=t.d)<0||r>6)&&(u=!0):null!=t.e?(r=t.e+a,(t.e<0||t.e>6)&&(u=!0)):r=a),i<1||i>je(n,a,o)?m(e)._overflowWeeks=!0:null!=u?m(e)._overflowWeekday=!0:(s=Fe(n,i,r,a,o),e._a[0]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(o=bt(e._a[0],i[0]),(e._dayOfYear>Ye(o)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),n=Ie(o,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=i[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Ie:Ae).apply(null,s),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==a&&(m(e).weekdayMismatch=!0)}}function kt(e){if(e._f!==r.ISO_8601)if(e._f!==r.RFC_2822){e._a=[],m(e).empty=!0;var t,n,i,a,o,s,u=""+e._i,l=u.length,c=0;for(i=H(e._f,e._locale).match(Y)||[],t=0;t0&&m(e).unusedInput.push(o),u=u.slice(u.indexOf(n)+n.length),c+=n.length),I[a]?(n?m(e).empty=!1:m(e).unusedTokens.push(a),we(a,n,e)):e._strict&&!n&&m(e).unusedTokens.push(a);m(e).charsLeftOver=l-c,u.length>0&&m(e).unusedInput.push(u),e._a[3]<=12&&!0===m(e).bigHour&&e._a[3]>0&&(m(e).bigHour=void 0),m(e).parsedDateParts=e._a.slice(0),m(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var i;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((i=e.isPM(n))&&t<12&&(t+=12),i||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),null!==(s=m(e).era)&&(e._a[0]=e._locale.erasConvertYear(s,e._a[0])),wt(e),lt(e)}else yt(e);else _t(e)}function Mt(e){var t=e._i,n=e._f;return e._locale=e._locale||ut(e._l),null===t||void 0===n&&""===t?v({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),k(t)?new w(lt(t)):(d(t)?e._d=t:a(n)?function(e){var t,n,i,r,a,o,s=!1;if(0===e._f.length)return m(e).invalidFormat=!0,void(e._d=new Date(NaN));for(r=0;rthis?this:e:v()});function Tt(e,t){var n,i;if(1===t.length&&a(t[0])&&(t=t[0]),!t.length)return Ct();for(n=t[0],i=1;i=0?new Date(e+400,t,n)-an:new Date(e,t,n).valueOf()}function un(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-an:Date.UTC(e,t,n)}function ln(e,t){return t.erasAbbrRegex(e)}function cn(){var e,t,n=[],i=[],r=[],a=[],o=this.eras();for(e=0,t=o.length;e(a=je(e,i,r))&&(t=a),fn.call(this,e,t,n,i,r))}function fn(e,t,n,i,r){var a=Fe(e,t,n,i,r),o=Ie(a.year,0,a.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}R("N",0,0,"eraAbbr"),R("NN",0,0,"eraAbbr"),R("NNN",0,0,"eraAbbr"),R("NNNN",0,0,"eraName"),R("NNNNN",0,0,"eraNarrow"),R("y",["y",1],"yo","eraYear"),R("y",["yy",2],0,"eraYear"),R("y",["yyy",3],0,"eraYear"),R("y",["yyyy",4],0,"eraYear"),pe("N",ln),pe("NN",ln),pe("NNN",ln),pe("NNNN",function(e,t){return t.erasNameRegex(e)}),pe("NNNNN",function(e,t){return t.erasNarrowRegex(e)}),ye(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,i){var r=n._locale.erasParse(e,i,n._strict);r?m(n).era=r:m(n).invalidEra=e}),pe("y",le),pe("yy",le),pe("yyy",le),pe("yyyy",le),pe("yo",function(e,t){return t._eraYearOrdinalRegex||le}),ye(["y","yy","yyy","yyyy"],0),ye(["yo"],function(e,t,n,i){var r;n._locale._eraYearOrdinalRegex&&(r=e.match(n._locale._eraYearOrdinalRegex)),t[0]=n._locale.eraYearOrdinalParse?n._locale.eraYearOrdinalParse(e,r):parseInt(e,10)}),R(0,["gg",2],0,function(){return this.weekYear()%100}),R(0,["GG",2],0,function(){return this.isoWeekYear()%100}),dn("gggg","weekYear"),dn("ggggg","weekYear"),dn("GGGG","isoWeekYear"),dn("GGGGG","isoWeekYear"),N("weekYear","gg"),N("isoWeekYear","GG"),U("weekYear",1),U("isoWeekYear",1),pe("G",ce),pe("g",ce),pe("GG",ie,Q),pe("gg",ie,Q),pe("GGGG",se,te),pe("gggg",se,te),pe("GGGGG",ue,ne),pe("ggggg",ue,ne),be(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,i){t[i.substr(0,2)]=G(e)}),be(["gg","GG"],function(e,t,n,i){t[i]=r.parseTwoDigitYear(e)}),R("Q",0,"Qo","quarter"),N("quarter","Q"),U("quarter",7),pe("Q",X),ye("Q",function(e,t){t[1]=3*(G(e)-1)}),R("D",["DD",2],"Do","date"),N("date","D"),U("date",9),pe("D",ie),pe("DD",ie,Q),pe("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ye(["D","DD"],2),ye("Do",function(e,t){t[2]=G(e.match(ie)[0])});var pn=K("Date",!0);R("DDD",["DDDD",3],"DDDo","dayOfYear"),N("dayOfYear","DDD"),U("dayOfYear",4),pe("DDD",oe),pe("DDDD",ee),ye(["DDD","DDDD"],function(e,t,n){n._dayOfYear=G(e)}),R("m",["mm",2],0,"minute"),N("minute","m"),U("minute",14),pe("m",ie),pe("mm",ie,Q),ye(["m","mm"],4);var mn=K("Minutes",!1);R("s",["ss",2],0,"second"),N("second","s"),U("second",15),pe("s",ie),pe("ss",ie,Q),ye(["s","ss"],5);var gn,vn,_n=K("Seconds",!1);for(R("S",0,0,function(){return~~(this.millisecond()/100)}),R(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),R(0,["SSS",3],0,"millisecond"),R(0,["SSSS",4],0,function(){return 10*this.millisecond()}),R(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),R(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),R(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),R(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),R(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),N("millisecond","ms"),U("millisecond",16),pe("S",oe,X),pe("SS",oe,Q),pe("SSS",oe,ee),gn="SSSS";gn.length<=9;gn+="S")pe(gn,le);function yn(e,t){t[6]=G(1e3*("0."+e))}for(gn="S";gn.length<=9;gn+="S")ye(gn,yn);vn=K("Milliseconds",!1),R("z",0,0,"zoneAbbr"),R("zz",0,0,"zoneName");var bn=w.prototype;function wn(e){return e}bn.add=qt,bn.calendar=function(e,t){1===arguments.length&&(arguments[0]?Jt(arguments[0])?(e=arguments[0],t=void 0):Zt(arguments[0])&&(t=arguments[0],e=void 0):(e=void 0,t=void 0));var n=e||Ct(),i=Rt(n,this).startOf("day"),a=r.calendarFormat(this,i)||"sameElse",o=t&&(T(t[a])?t[a].call(this,n):t[a]);return this.format(o||this.localeData().calendar(a,this,Ct(n)))},bn.clone=function(){return new w(this)},bn.diff=function(e,t,n){var i,r,a;if(!this.isValid())return NaN;if(!(i=Rt(e,this)).isValid())return NaN;switch(r=6e4*(i.utcOffset()-this.utcOffset()),t=B(t)){case"year":a=$t(this,i)/12;break;case"month":a=$t(this,i);break;case"quarter":a=$t(this,i)/3;break;case"second":a=(this-i)/1e3;break;case"minute":a=(this-i)/6e4;break;case"hour":a=(this-i)/36e5;break;case"day":a=(this-i-r)/864e5;break;case"week":a=(this-i-r)/6048e5;break;default:a=this-i}return n?a:q(a)},bn.endOf=function(e){var t,n;if(void 0===(e=B(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?un:sn,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=rn-on(t+(this._isUTC?0:this.utcOffset()*nn),rn)-1;break;case"minute":t=this._d.valueOf(),t+=nn-on(t,nn)-1;break;case"second":t=this._d.valueOf(),t+=tn-on(t,tn)-1}return this._d.setTime(t),r.updateOffset(this,!0),this},bn.format=function(e){e||(e=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var t=F(this,e);return this.localeData().postformat(t)},bn.from=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||Ct(e).isValid())?Bt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},bn.fromNow=function(e){return this.from(Ct(),e)},bn.to=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||Ct(e).isValid())?Bt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},bn.toNow=function(e){return this.to(Ct(),e)},bn.get=function(e){return T(this[e=B(e)])?this[e]():this},bn.invalidAt=function(){return m(this).overflow},bn.isAfter=function(e,t){var n=k(e)?e:Ct(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=B(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?F(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",F(n,"Z")):F(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},bn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n="moment",i="";return this.isLocal()||(n=0===this.utcOffset()?"moment.utc":"moment.parseZone",i="Z"),e="["+n+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+i+'[")]')},"undefined"!=typeof Symbol&&null!=Symbol.for&&(bn[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),bn.toJSON=function(){return this.isValid()?this.toISOString():null},bn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},bn.unix=function(){return Math.floor(this.valueOf()/1e3)},bn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},bn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},bn.eraName=function(){var e,t,n,i=this.localeData().eras();for(e=0,t=i.length;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},bn.isLocal=function(){return!!this.isValid()&&!this._isUTC},bn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},bn.isUtc=Ht,bn.isUTC=Ht,bn.zoneAbbr=function(){return this._isUTC?"UTC":""},bn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},bn.dates=S("dates accessor is deprecated. Use date instead.",pn),bn.months=S("months accessor is deprecated. Use month instead",Oe),bn.years=S("years accessor is deprecated. Use year instead",Pe),bn.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),bn.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return b(t,this),(t=Mt(t))._a?(e=t._isUTC?p(t._a):Ct(t._a),this._isDSTShifted=this.isValid()&&function(e,t,n){var i,r=Math.min(e.length,t.length),a=Math.abs(e.length-t.length),o=0;for(i=0;i0):this._isDSTShifted=!1,this._isDSTShifted});var kn=O.prototype;function Mn(e,t,n,i){var r=ut(),a=p().set(i,t);return r[n](a,e)}function Sn(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return Mn(e,t,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=Mn(e,i,n,"month");return r}function Cn(e,t,n,i){"boolean"==typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var r,a=ut(),o=e?a._week.dow:0,s=[];if(null!=n)return Mn(t,(n+o)%7,i,"day");for(r=0;r<7;r++)s[r]=Mn(t,(r+o)%7,i,"day");return s}kn.calendar=function(e,t,n){var i=this._calendar[e]||this._calendar.sameElse;return T(i)?i.call(t,n):i},kn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(Y).map(function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e}).join(""),this._longDateFormat[e])},kn.invalidDate=function(){return this._invalidDate},kn.ordinal=function(e){return this._ordinal.replace("%d",e)},kn.preparse=wn,kn.postformat=wn,kn.relativeTime=function(e,t,n,i){var r=this._relativeTime[n];return T(r)?r(e,t,n,i):r.replace(/%d/i,e)},kn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return T(n)?n(t):n.replace(/%s/i,t)},kn.set=function(e){var t,n;for(n in e)s(e,n)&&(T(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},kn.eras=function(e,t){var n,i,a,o=this._eras||ut("en")._eras;for(n=0,i=o.length;n=0)return u[i]},kn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?r(e.since).year():r(e.since).year()+(t-e.offset)*n},kn.erasAbbrRegex=function(e){return s(this,"_erasAbbrRegex")||cn.call(this),e?this._erasAbbrRegex:this._erasRegex},kn.erasNameRegex=function(e){return s(this,"_erasNameRegex")||cn.call(this),e?this._erasNameRegex:this._erasRegex},kn.erasNarrowRegex=function(e){return s(this,"_erasNarrowRegex")||cn.call(this),e?this._erasNarrowRegex:this._erasRegex},kn.months=function(e,t){return e?a(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ce).test(t)?"format":"standalone"][e.month()]:a(this._months)?this._months:this._months.standalone},kn.monthsShort=function(e,t){return e?a(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ce.test(t)?"format":"standalone"][e.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},kn.monthsParse=function(e,t,n){var i,r,a;if(this._monthsParseExact)return Te.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(r=p([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(a="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[i]=new RegExp(a.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[i].test(e))return i;if(n&&"MMM"===t&&this._shortMonthsParse[i].test(e))return i;if(!n&&this._monthsParse[i].test(e))return i}},kn.monthsRegex=function(e){return this._monthsParseExact?(s(this,"_monthsRegex")||Ee.call(this),e?this._monthsStrictRegex:this._monthsRegex):(s(this,"_monthsRegex")||(this._monthsRegex=xe),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},kn.monthsShortRegex=function(e){return this._monthsParseExact?(s(this,"_monthsRegex")||Ee.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(s(this,"_monthsShortRegex")||(this._monthsShortRegex=Le),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},kn.week=function(e){return He(e,this._week.dow,this._week.doy).week},kn.firstDayOfYear=function(){return this._week.doy},kn.firstDayOfWeek=function(){return this._week.dow},kn.weekdays=function(e,t){var n=a(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ne(n,this._week.dow):e?n[e.day()]:n},kn.weekdaysMin=function(e){return!0===e?Ne(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},kn.weekdaysShort=function(e){return!0===e?Ne(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},kn.weekdaysParse=function(e,t,n){var i,r,a;if(this._weekdaysParseExact)return Ge.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=p([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(a="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(a.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(n&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(n&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!n&&this._weekdaysParse[i].test(e))return i}},kn.weekdaysRegex=function(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Ke.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(s(this,"_weekdaysRegex")||(this._weekdaysRegex=Ue),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},kn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Ke.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(s(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},kn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Ke.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(s(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qe),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},kn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},kn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},ot("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===G(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),r.lang=S("moment.lang is deprecated. Use moment.locale instead.",ot),r.langData=S("moment.langData is deprecated. Use moment.localeData instead.",ut);var Ln=Math.abs;function xn(e,t,n,i){var r=Bt(t,n);return e._milliseconds+=i*r._milliseconds,e._days+=i*r._days,e._months+=i*r._months,e._bubble()}function Tn(e){return e<0?Math.floor(e):Math.ceil(e)}function Dn(e){return 4800*e/146097}function On(e){return 146097*e/4800}function En(e){return function(){return this.as(e)}}var Yn=En("ms"),Pn=En("s"),An=En("m"),In=En("h"),Rn=En("d"),Fn=En("w"),Hn=En("M"),jn=En("Q"),Nn=En("y");function Bn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Wn=Bn("milliseconds"),Vn=Bn("seconds"),Un=Bn("minutes"),zn=Bn("hours"),qn=Bn("days"),Gn=Bn("months"),Kn=Bn("years"),Jn=Math.round,Zn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function $n(e,t,n,i,r){return r.relativeTime(t||1,!!n,e,i)}var Xn=Math.abs;function Qn(e){return(e>0)-(e<0)||+e}function ei(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,i,r,a,o,s,u=Xn(this._milliseconds)/1e3,l=Xn(this._days),c=Xn(this._months),d=this.asSeconds();return d?(e=q(u/60),t=q(e/60),u%=60,e%=60,n=q(c/12),c%=12,i=u?u.toFixed(3).replace(/\.?0+$/,""):"",r=d<0?"-":"",a=Qn(this._months)!==Qn(d)?"-":"",o=Qn(this._days)!==Qn(d)?"-":"",s=Qn(this._milliseconds)!==Qn(d)?"-":"",r+"P"+(n?a+n+"Y":"")+(c?a+c+"M":"")+(l?o+l+"D":"")+(t||e||u?"T":"")+(t?s+t+"H":"")+(e?s+e+"M":"")+(u?s+i+"S":"")):"P0D"}var ti=Ot.prototype;return ti.isValid=function(){return this._isValid},ti.abs=function(){var e=this._data;return this._milliseconds=Ln(this._milliseconds),this._days=Ln(this._days),this._months=Ln(this._months),e.milliseconds=Ln(e.milliseconds),e.seconds=Ln(e.seconds),e.minutes=Ln(e.minutes),e.hours=Ln(e.hours),e.months=Ln(e.months),e.years=Ln(e.years),this},ti.add=function(e,t){return xn(this,e,t,1)},ti.subtract=function(e,t){return xn(this,e,t,-1)},ti.as=function(e){if(!this.isValid())return NaN;var t,n,i=this._milliseconds;if("month"===(e=B(e))||"quarter"===e||"year"===e)switch(n=this._months+Dn(t=this._days+i/864e5),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(On(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}},ti.asMilliseconds=Yn,ti.asSeconds=Pn,ti.asMinutes=An,ti.asHours=In,ti.asDays=Rn,ti.asWeeks=Fn,ti.asMonths=Hn,ti.asQuarters=jn,ti.asYears=Nn,ti.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*G(this._months/12):NaN},ti._bubble=function(){var e,t,n,i,r,a=this._milliseconds,o=this._days,s=this._months,u=this._data;return a>=0&&o>=0&&s>=0||a<=0&&o<=0&&s<=0||(a+=864e5*Tn(On(s)+o),o=0,s=0),u.milliseconds=a%1e3,e=q(a/1e3),u.seconds=e%60,t=q(e/60),u.minutes=t%60,n=q(t/60),u.hours=n%24,o+=q(n/24),s+=r=q(Dn(o)),o-=Tn(On(r)),i=q(s/12),s%=12,u.days=o,u.months=s,u.years=i,this},ti.clone=function(){return Bt(this)},ti.get=function(e){return e=B(e),this.isValid()?this[e+"s"]():NaN},ti.milliseconds=Wn,ti.seconds=Vn,ti.minutes=Un,ti.hours=zn,ti.days=qn,ti.weeks=function(){return q(this.days()/7)},ti.months=Gn,ti.years=Kn,ti.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,i,r=!1,a=Zn;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(r=e),"object"==typeof t&&(a=Object.assign({},Zn,t),null!=t.s&&null==t.ss&&(a.ss=t.s-1)),i=function(e,t,n,i){var r=Bt(e).abs(),a=Jn(r.as("s")),o=Jn(r.as("m")),s=Jn(r.as("h")),u=Jn(r.as("d")),l=Jn(r.as("M")),c=Jn(r.as("w")),d=Jn(r.as("y")),h=a<=n.ss&&["s",a]||a0,h[4]=i,$n.apply(null,h)}(this,!r,a,n=this.localeData()),r&&(i=n.pastFuture(+this,i)),n.postformat(i)},ti.toISOString=ei,ti.toString=ei,ti.toJSON=ei,ti.locale=Xt,ti.localeData=en,ti.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ei),ti.lang=Qt,R("X",0,0,"unix"),R("x",0,0,"valueOf"),pe("x",ce),pe("X",/[+-]?\d+(\.\d{1,3})?/),ye("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e))}),ye("x",function(e,t,n){n._d=new Date(G(e))}),r.version="2.29.1",t=Ct,r.fn=bn,r.min=function(){return Tt("isBefore",[].slice.call(arguments,0))},r.max=function(){return Tt("isAfter",[].slice.call(arguments,0))},r.now=function(){return Date.now?Date.now():+new Date},r.utc=p,r.unix=function(e){return Ct(1e3*e)},r.months=function(e,t){return Sn(e,t,"months")},r.isDate=d,r.locale=ot,r.invalid=v,r.duration=Bt,r.isMoment=k,r.weekdays=function(e,t,n){return Cn(e,t,n,"weekdays")},r.parseZone=function(){return Ct.apply(null,arguments).parseZone()},r.localeData=ut,r.isDuration=Et,r.monthsShort=function(e,t){return Sn(e,t,"monthsShort")},r.weekdaysMin=function(e,t,n){return Cn(e,t,n,"weekdaysMin")},r.defineLocale=st,r.updateLocale=function(e,t){if(null!=t){var n,i,r=et;null!=tt[e]&&null!=tt[e].parentLocale?tt[e].set(D(tt[e]._config,t)):(null!=(i=at(e))&&(r=i._config),t=D(r,t),null==i&&(t.abbr=e),(n=new O(t)).parentLocale=tt[e],tt[e]=n),ot(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?(tt[e]=tt[e].parentLocale,e===ot()&&ot(e)):null!=tt[e]&&delete tt[e]);return tt[e]},r.locales=function(){return C(tt)},r.weekdaysShort=function(e,t,n){return Cn(e,t,n,"weekdaysShort")},r.normalizeUnits=B,r.relativeTimeRounding=function(e){return void 0===e?Jn:"function"==typeof e&&(Jn=e,!0)},r.relativeTimeThreshold=function(e,t){return void 0!==Zn[e]&&(void 0===t?Zn[e]:(Zn[e]=t,"s"===e&&(Zn.ss=t-1),!0))},r.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},r.prototype=bn,r.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()},27015:function(e,t,n){var i=n(23833),r=i.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return r(e,t,n)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=i:(a(i,t),t.Buffer=o),o.prototype=Object.create(r.prototype),a(r,o),o.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return r(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var i=r(e);return void 0!==t?"string"==typeof n?i.fill(t,n):i.fill(t):i.fill(0),i},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i.SlowBuffer(e)}},58819:function(e,t,n){"use strict";function i(e){return(i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function r(e,t,n){return(r="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=i(e)););return e}(e,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(n):a.value}})(e,t,n||e)}function a(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var i,r,a=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(i=n.next()).done)&&(a.push(i.value),!t||a.length!==t);o=!0);}catch(u){s=!0,r=u}finally{try{o||null==n.return||n.return()}finally{if(s)throw r}}return a}}(e,t)||g(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||g(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t,n){return(w=c()?Reflect.construct:function(e,t,n){var i=[null];i.push.apply(i,t);var r=new(Function.bind.apply(e,i));return n&&u(r,n.prototype),r}).apply(null,arguments)}function k(e){var t="function"==typeof Map?new Map:void 0;return(k=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return w(e,arguments,i(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),u(n,e)})(e)}var M=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();function S(e){return null!==e&&"object"==typeof e}function C(e){return"function"==typeof e}var L=function(){function e(e){return Error.call(this),this.message=e?"".concat(e.length," errors occurred during unsubscription:\n").concat(e.map(function(e,t){return"".concat(t+1,") ").concat(e.toString())}).join("\n ")):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),x=function(){var e=function(){function e(t){s(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}return o(e,[{key:"unsubscribe",value:function(){var t;if(!this.closed){var n=this._parentOrParents,i=this._ctorUnsubscribe,r=this._unsubscribe,a=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var o=0;o2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return"function"==typeof t?function(i){return i.pipe(ue(function(n,i){return re(e(n,i)).pipe(K(function(e,r){return t(n,e,i,r)}))},n))}:("number"==typeof t&&(n=t),function(t){return t.lift(new le(e,n))})}var le=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;s(this,e),this.project=t,this.concurrent=n}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new ce(e,this.project,this.concurrent))}}]),e}(),ce=function(e){l(n,e);var t=p(n);function n(e,i){var r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return s(this,n),(r=t.call(this,e)).project=i,r.concurrent=a,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return o(n,[{key:"_next",value:function(e){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),n}(oe),de=ue;function he(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return ue(F,e)}function fe(e,t){return t?ie(e,t):new N($(e))}function pe(){for(var e=Number.POSITIVE_INFINITY,t=null,n=arguments.length,i=new Array(n),r=0;r1&&"number"==typeof i[i.length-1]&&(e=i.pop())):"number"==typeof a&&(e=i.pop()),null===t&&1===i.length&&i[0]instanceof N?i[0]:he(e)(fe(i,t))}function me(){return function(e){return e.lift(new ge(e))}}var ge=function(){function e(t){s(this,e),this.connectable=t}return o(e,[{key:"call",value:function(e,t){var n=this.connectable;n._refCount++;var i=new ve(e,n),r=t.subscribe(i);return i.closed||(i.connection=n.connect()),r}}]),e}(),ve=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e)).connectable=i,r}return o(n,[{key:"_unsubscribe",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,i=e._connection;this.connection=null,!i||n&&i!==n||i.unsubscribe()}}else this.connection=null}}]),n}(A),_e=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this)).source=e,r.subjectFactory=i,r._refCount=0,r._isComplete=!1,r}return o(n,[{key:"_subscribe",value:function(e){return this.getSubject().subscribe(e)}},{key:"getSubject",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:"connect",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new x).add(this.source.subscribe(new be(this.getSubject(),this))),e.closed&&(this._connection=null,e=x.EMPTY)),e}},{key:"refCount",value:function(){return me()(this)}}]),n}(N),ye=function(){var e=_e.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}}(),be=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e)).connectable=i,r}return o(n,[{key:"_error",value:function(e){this._unsubscribe(),r(i(n.prototype),"_error",this).call(this,e)}},{key:"_complete",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),r(i(n.prototype),"_complete",this).call(this)}},{key:"_unsubscribe",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),n}(U);function we(){return new z}function ke(){return function(e){return me()((t=we,function(e){var n;n="function"==typeof t?t:function(){return t};var i=Object.create(e,ye);return i.source=e,i.subjectFactory=n,i})(e));var t}}function Me(e){for(var t in e)if(e[t]===Me)return t;throw Error("Could not find renamed property on target object.")}function Se(e,t){for(var n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function Ce(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(Ce).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return"".concat(e.overriddenName);if(e.name)return"".concat(e.name);var t=e.toString();if(null==t)return""+t;var n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function Le(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}var xe=Me({__forward_ref__:Me});function Te(e){return e.__forward_ref__=Te,e.toString=function(){return Ce(this())},e}function De(e){return Oe(e)?e():e}function Oe(e){return"function"==typeof e&&e.hasOwnProperty(xe)&&e.__forward_ref__===Te}var Ee=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,function(e,t){var n=e?"NG0".concat(e,": "):"";return"".concat(n).concat(t)}(e,i))).code=e,r}return n}(k(Error));function Ye(e){return"string"==typeof e?e:null==e?"":String(e)}function Pe(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():Ye(e)}function Ae(e,t){var n=t?" in ".concat(t):"";throw new Ee("201","No provider for ".concat(Pe(e)," found").concat(n))}function Ie(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function Re(e){return{providers:e.providers||[],imports:e.imports||[]}}function Fe(e){return He(e,Be)||He(e,Ve)}function He(e,t){return e.hasOwnProperty(t)?e[t]:null}function je(e){return e&&(e.hasOwnProperty(We)||e.hasOwnProperty(Ue))?e[We]:null}var Ne,Be=Me({"\u0275prov":Me}),We=Me({"\u0275inj":Me}),Ve=Me({ngInjectableDef:Me}),Ue=Me({ngInjectorDef:Me}),ze=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}({});function qe(){return Ne}function Ge(e){var t=Ne;return Ne=e,t}function Ke(e,t,n){var i=Fe(e);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:n&ze.Optional?null:void 0!==t?t:void Ae(Ce(e),"Injector")}function Je(e){return{toString:e}.toString()}var Ze=function(e){return e[e.OnPush=0]="OnPush",e[e.Default=1]="Default",e}({}),$e=function(e){return e[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",e}({}),Xe="undefined"!=typeof globalThis&&globalThis,Qe="undefined"!=typeof window&&window,et="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,tt="undefined"!=typeof global&&global,nt=Xe||tt||Qe||et,it={},rt=[],at=Me({"\u0275cmp":Me}),ot=Me({"\u0275dir":Me}),st=Me({"\u0275pipe":Me}),ut=Me({"\u0275mod":Me}),lt=Me({"\u0275loc":Me}),ct=Me({"\u0275fac":Me}),dt=Me({__NG_ELEMENT_ID__:Me}),ht=0;function ft(e){return Je(function(){var t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===Ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||rt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||$e.Emulated,id:"c",styles:e.styles||rt,_:null,setInput:null,schemas:e.schemas||null,tView:null},i=e.directives,r=e.features,a=e.pipes;return n.id+=ht++,n.inputs=yt(e.inputs,t),n.outputs=yt(e.outputs),r&&r.forEach(function(e){return e(n)}),n.directiveDefs=i?function(){return("function"==typeof i?i():i).map(mt)}:null,n.pipeDefs=a?function(){return("function"==typeof a?a():a).map(gt)}:null,n})}function pt(e,t,n){var i=e.\u0275cmp;i.directiveDefs=function(){return t.map(mt)},i.pipeDefs=function(){return n.map(gt)}}function mt(e){return kt(e)||function(e){return e[ot]||null}(e)}function gt(e){return function(e){return e[st]||null}(e)}var vt={};function _t(e){return Je(function(){var t={type:e.type,bootstrap:e.bootstrap||rt,declarations:e.declarations||rt,imports:e.imports||rt,exports:e.exports||rt,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&(vt[e.id]=e.type),t})}function yt(e,t){if(null==e)return it;var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i],a=r;Array.isArray(r)&&(a=r[1],r=r[0]),n[r]=i,t&&(t[r]=a)}return n}var bt=ft;function wt(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,onDestroy:e.type.prototype.ngOnDestroy||null}}function kt(e){return e[at]||null}function Mt(e,t){var n=e[ut]||null;if(!n&&!0===t)throw new Error("Type ".concat(Ce(e)," does not have '\u0275mod' property."));return n}var St=20,Ct=10;function Lt(e){return Array.isArray(e)&&"object"==typeof e[1]}function xt(e){return Array.isArray(e)&&!0===e[1]}function Tt(e){return 0!=(8&e.flags)}function Dt(e){return 2==(2&e.flags)}function Ot(e){return 1==(1&e.flags)}function Et(e){return null!==e.template}function Yt(e,t){return e.hasOwnProperty(ct)?e[ct]:null}var Pt=function(){function e(t,n,i){s(this,e),this.previousValue=t,this.currentValue=n,this.firstChange=i}return o(e,[{key:"isFirstChange",value:function(){return this.firstChange}}]),e}();function At(){return It}function It(e){return e.type.prototype.ngOnChanges&&(e.setInput=Ft),Rt}function Rt(){var e=Ht(this),t=null==e?void 0:e.current;if(t){var n=e.previous;if(n===it)e.previous=t;else for(var i in t)n[i]=t[i];e.current=null,this.ngOnChanges(t)}}function Ft(e,t,n,i){var r=Ht(e)||function(e,t){return e.__ngSimpleChanges__=t}(e,{previous:it,current:null}),a=r.current||(r.current={}),o=r.previous,s=this.declaredInputs[n],u=o[s];a[s]=new Pt(u&&u.currentValue,t,o===it),e[i]=t}function Ht(e){return e.__ngSimpleChanges__||null}At.ngInherit=!0;var jt="http://www.w3.org/2000/svg",Nt=void 0;function Bt(){return void 0!==Nt?Nt:"undefined"!=typeof document?document:void 0}function Wt(e){return!!e.listen}var Vt={createRenderer:function(e,t){return Bt()}};function Ut(e){for(;Array.isArray(e);)e=e[0];return e}function zt(e,t){return Ut(t[e])}function qt(e,t){return Ut(t[e.index])}function Gt(e,t){return e.data[t]}function Kt(e,t){return e[t]}function Jt(e,t){var n=t[e];return Lt(n)?n:n[0]}function Zt(e){return 4==(4&e[2])}function $t(e){return 128==(128&e[2])}function Xt(e,t){return null==t?null:e[t]}function Qt(e){e[18]=0}function en(e,t){e[5]+=t;for(var n=e,i=e[3];null!==i&&(1===t&&1===n[5]||-1===t&&0===n[5]);)i[5]+=t,n=i,i=i[3]}var tn={lFrame:Ln(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function nn(){return tn.bindingsEnabled}function rn(){return tn.lFrame.lView}function an(){return tn.lFrame.tView}function on(e){return tn.lFrame.contextLView=e,e[8]}function sn(){for(var e=un();null!==e&&64===e.type;)e=e.parent;return e}function un(){return tn.lFrame.currentTNode}function ln(e,t){var n=tn.lFrame;n.currentTNode=e,n.isParent=t}function cn(){return tn.lFrame.isParent}function dn(){tn.lFrame.isParent=!1}function hn(){return tn.isInCheckNoChangesMode}function fn(e){tn.isInCheckNoChangesMode=e}function pn(){var e=tn.lFrame,t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function mn(){return tn.lFrame.bindingIndex}function gn(){return tn.lFrame.bindingIndex++}function vn(e){var t=tn.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function _n(e){tn.lFrame.currentDirectiveIndex=e}function yn(e){var t=tn.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}function bn(){return tn.lFrame.currentQueryIndex}function wn(e){tn.lFrame.currentQueryIndex=e}function kn(e){var t=e[1];return 2===t.type?t.declTNode:1===t.type?e[6]:null}function Mn(e,t,n){if(n&ze.SkipSelf){for(var i=t,r=e;!(null!==(i=i.parent)||n&ze.Host||null===(i=kn(r))||(r=r[15],10&i.type)););if(null===i)return!1;t=i,e=r}var a=tn.lFrame=Cn();return a.currentTNode=t,a.lView=e,!0}function Sn(e){var t=Cn(),n=e[1];tn.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function Cn(){var e=tn.lFrame,t=null===e?null:e.child;return null===t?Ln(e):t}function Ln(e){var t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}function xn(){var e=tn.lFrame;return tn.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var Tn=xn;function Dn(){var e=xn();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function On(e){return(tn.lFrame.contextLView=function(e,t){for(;e>0;)t=t[15],e--;return t}(e,tn.lFrame.contextLView))[8]}function En(){return tn.lFrame.selectedIndex}function Yn(e){tn.lFrame.selectedIndex=e}function Pn(){var e=tn.lFrame;return Gt(e.tView,e.selectedIndex)}function An(){tn.lFrame.currentNamespace=jt}function In(){tn.lFrame.currentNamespace=null}function Rn(e,t){for(var n=t.directiveStart,i=t.directiveEnd;n=i)break}else t[s]<0&&(e[18]+=65536),(o>11>16&&(3&e[2])===t){e[2]+=2048;try{a.call(o)}finally{}}}else try{a.call(o)}finally{}}var Wn=-1,Vn=function e(t,n,i){s(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=i};function Un(e,t,n){for(var i=Wt(e),r=0;rt){o=a-1;break}}}for(;a>16,i=t;n>0;)i=i[15],n--;return i}var Xn=!0;function Qn(e){var t=Xn;return Xn=e,t}var ei=0;function ti(e,t){var n=ii(e,t);if(-1!==n)return n;var i=t[1];i.firstCreatePass&&(e.injectorIndex=t.length,ni(i.data,e),ni(t,null),ni(i.blueprint,null));var r=ri(e,t),a=e.injectorIndex;if(Jn(r))for(var o=Zn(r),s=$n(r,t),u=s[1].data,l=0;l<8;l++)t[a+l]=s[o+l]|u[o+l];return t[a+8]=r,a}function ni(e,t){e.push(0,0,0,0,0,0,0,0,t)}function ii(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function ri(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=0,i=null,r=t;null!==r;){var a=r[1],o=a.type;if(null===(i=2===o?a.declTNode:1===o?r[6]:null))return Wn;if(n++,r=r[15],-1!==i.injectorIndex)return i.injectorIndex|n<<16}return Wn}function ai(e,t,n){!function(e,t,n){var i;"string"==typeof n?i=n.charCodeAt(0)||0:n.hasOwnProperty(dt)&&(i=n[dt]),null==i&&(i=n[dt]=ei++);var r=255&i;t.data[e+(r>>5)]|=1<3&&void 0!==arguments[3]?arguments[3]:ze.Default,r=arguments.length>4?arguments[4]:void 0;if(null!==e){var a=pi(n);if("function"==typeof a){if(!Mn(t,e,i))return i&ze.Host?oi(r,n,i):si(t,n,i,r);try{var o=a(i);if(null!=o||i&ze.Optional)return o;Ae(n)}finally{Tn()}}else if("number"==typeof a){var s=null,u=ii(e,t),l=Wn,c=i&ze.Host?t[16][6]:null;for((-1===u||i&ze.SkipSelf)&&((l=-1===u?ri(e,t):t[u+8])!==Wn&&gi(i,!1)?(s=t[1],u=Zn(l),t=$n(l,t)):u=-1);-1!==u;){var d=t[1];if(mi(a,u,d.data)){var h=di(u,t,n,s,i,c);if(h!==li)return h}(l=t[u+8])!==Wn&&gi(i,t[1].data[u+8]===c)&&mi(a,u,t)?(s=d,u=Zn(l),t=$n(l,t)):u=-1}}}return si(t,n,i,r)}var li={};function ci(){return new vi(sn(),rn())}function di(e,t,n,i,r,a){var o=t[1],s=o.data[e+8],u=hi(s,o,n,null==i?Dt(s)&&Xn:i!=o&&0!=(3&s.type),r&ze.Host&&a===s);return null!==u?fi(t,o,u,s):li}function hi(e,t,n,i,r){for(var a=e.providerIndexes,o=t.data,s=1048575&a,u=e.directiveStart,l=a>>20,c=r?s+l:e.directiveEnd,d=i?s:s+l;d=u&&h.type===n)return d}if(r){var f=o[u];if(f&&Et(f)&&f.type===n)return u}return null}function fi(e,t,n,i){var r=e[n],a=t.data;if(r instanceof Vn){var o=r;o.resolving&&function(e,t){throw new Ee("200","Circular dependency in DI detected for ".concat(e).concat(""))}(Pe(a[n]));var s=Qn(o.canSeeViewProviders);o.resolving=!0;var u=o.injectImpl?Ge(o.injectImpl):null;Mn(e,i,ze.Default);try{r=e[n]=o.factory(void 0,a,e,i),t.firstCreatePass&&n>=i.directiveStart&&function(e,t,n){var i=t.type.prototype,r=i.ngOnInit,a=i.ngDoCheck;if(i.ngOnChanges){var o=It(t);(n.preOrderHooks||(n.preOrderHooks=[])).push(e,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,o)}r&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-e,r),a&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,a),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,a))}(n,a[n],t)}finally{null!==u&&Ge(u),Qn(s),o.resolving=!1,Tn()}}return r}function pi(e){if("string"==typeof e)return e.charCodeAt(0)||0;var t=e.hasOwnProperty(dt)?e[dt]:void 0;return"number"==typeof t?t>=0?255&t:ci:t}function mi(e,t,n){return!!(n[t+(e>>5)]&1<=e.length?e.push(n):e.splice(t,0,n)}function Di(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Oi(e,t){for(var n=[],i=0;i=0?e[1|i]=n:function(e,t,n,i){var r=e.length;if(r==t)e.push(n,i);else if(1===r)e.push(i,e[0]),e[0]=n;else{for(r--,e.push(e[r-1],e[r]);r>t;)e[r]=e[r-2],r--;e[t]=n,e[t+1]=i}}(e,i=~i,t,n),i}function Yi(e,t){var n=Pi(e,t);if(n>=0)return e[1|n]}function Pi(e,t){return function(e,t,n){for(var i=0,r=e.length>>1;r!==i;){var a=i+(r-i>>1),o=e[a<<1];if(t===o)return a<<1;o>t?r=a:i=a+1}return~(r<<1)}(e,t)}var Ai={},Ii=/\n/gm,Ri="__source",Fi=Me({provide:String,useValue:Me}),Hi=void 0;function ji(e){var t=Hi;return Hi=e,t}function Ni(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ze.Default;if(void 0===Hi)throw new Error("inject() must be called from an injection context");return null===Hi?Ke(e,void 0,t):Hi.get(e,t&ze.Optional?null:void 0,t)}function Bi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ze.Default;return(qe()||Ni)(De(e),t)}var Wi=Bi;function Vi(e){for(var t=[],n=0;n3&&void 0!==arguments[3]?arguments[3]:null;e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.substr(2):e;var r=Ce(t);if(Array.isArray(t))r=t.map(Ce).join(" -> ");else if("object"==typeof t){var a=[];for(var o in t)if(t.hasOwnProperty(o)){var s=t[o];a.push(o+":"+("string"==typeof s?JSON.stringify(s):Ce(s)))}r="{".concat(a.join(", "),"}")}return"".concat(n).concat(i?"("+i+")":"","[").concat(r,"]: ").concat(e.replace(Ii,"\n "))}("\n"+e.message,r,n,i),e.ngTokenPath=r,e.ngTempTokenPath=null,e}var qi,Gi,Ki=Ui(ki("Inject",function(e){return{token:e}}),-1),Ji=Ui(ki("Optional"),8),Zi=Ui(ki("SkipSelf"),4);function $i(e){var t;return(null===(t=function(){if(void 0===qi&&(qi=null,nt.trustedTypes))try{qi=nt.trustedTypes.createPolicy("angular",{createHTML:function(e){return e},createScript:function(e){return e},createScriptURL:function(e){return e}})}catch(t){}return qi}())||void 0===t?void 0:t.createHTML(e))||e}function Xi(e){var t;return(null===(t=function(){if(void 0===Gi&&(Gi=null,nt.trustedTypes))try{Gi=nt.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:function(e){return e},createScript:function(e){return e},createScriptURL:function(e){return e}})}catch(t){}return Gi}())||void 0===t?void 0:t.createHTML(e))||e}var Qi=function(){function e(t){s(this,e),this.changingThisBreaksApplicationSecurity=t}return o(e,[{key:"toString",value:function(){return"SafeValue must use [property]=binding: ".concat(this.changingThisBreaksApplicationSecurity)+" (see https://g.co/ng/security#xss)"}}]),e}(),er=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"getTypeName",value:function(){return"HTML"}}]),n}(Qi),tr=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"getTypeName",value:function(){return"Style"}}]),n}(Qi),nr=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"getTypeName",value:function(){return"Script"}}]),n}(Qi),ir=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"getTypeName",value:function(){return"URL"}}]),n}(Qi),rr=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"getTypeName",value:function(){return"ResourceURL"}}]),n}(Qi);function ar(e){return e instanceof Qi?e.changingThisBreaksApplicationSecurity:e}function or(e,t){var n=sr(e);if(null!=n&&n!==t){if("ResourceURL"===n&&"URL"===t)return!0;throw new Error("Required a safe ".concat(t,", got a ").concat(n," (see https://g.co/ng/security#xss)"))}return n===t}function sr(e){return e instanceof Qi&&e.getTypeName()||null}var ur=function(){function e(t){s(this,e),this.inertDocumentHelper=t}return o(e,[{key:"getInertBodyElement",value:function(e){e=""+e;try{var t=(new window.DOMParser).parseFromString($i(e),"text/html").body;return null===t?this.inertDocumentHelper.getInertBodyElement(e):(t.removeChild(t.firstChild),t)}catch(n){return null}}}]),e}(),lr=function(){function e(t){if(s(this,e),this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){var n=this.inertDocument.createElement("html");this.inertDocument.appendChild(n);var i=this.inertDocument.createElement("body");n.appendChild(i)}}return o(e,[{key:"getInertBodyElement",value:function(e){var t=this.inertDocument.createElement("template");if("content"in t)return t.innerHTML=$i(e),t;var n=this.inertDocument.createElement("body");return n.innerHTML=$i(e),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(n),n}},{key:"stripCustomNsAttrs",value:function(e){for(var t=e.attributes,n=t.length-1;0"),!0}},{key:"endElement",value:function(e){var t=e.nodeName.toLowerCase();br.hasOwnProperty(t)&&!gr.hasOwnProperty(t)&&(this.buf.push(""))}},{key:"chars",value:function(e){this.buf.push(Tr(e))}},{key:"checkClobberedElement",value:function(e,t){if(t&&(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error("Failed to sanitize html because the element is clobbered: ".concat(e.outerHTML));return t}}]),e}(),Lr=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,xr=/([^\#-~ |!])/g;function Tr(e){return e.replace(/&/g,"&").replace(Lr,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(xr,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}function Dr(e,t){var n=null;try{mr=mr||function(e){var t=new lr(e);return function(){try{return!!(new window.DOMParser).parseFromString($i(""),"text/html")}catch(e){return!1}}()?new ur(t):t}(e);var i=t?String(t):"";n=mr.getInertBodyElement(i);var r=5,a=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=a,a=n.innerHTML,n=mr.getInertBodyElement(i)}while(i!==a);return $i((new Cr).sanitizeChildren(Or(n)||n))}finally{if(n)for(var o=Or(n)||n;o.firstChild;)o.removeChild(o.firstChild)}}function Or(e){return"content"in e&&function(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName}(e)?e.content:null}var Er=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}({});function Yr(e){var t=Ar();return t?Xi(t.sanitize(Er.HTML,e)||""):or(e,"HTML")?Xi(ar(e)):Dr(Bt(),Ye(e))}function Pr(e){var t=Ar();return t?t.sanitize(Er.URL,e)||"":or(e,"URL")?ar(e):hr(Ye(e))}function Ar(){var e=rn();return e&&e[12]}function Ir(e,t){e.__ngContext__=t}function Rr(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function Fr(e){return e.ngOriginalError}function Hr(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i0&&(e[i-1][4]=r[4]);var o=Di(e,Ct+t);pa(r[1],n=r,n[11],2,null,null),n[0]=null,n[6]=null;var s=o[19];null!==s&&s.detachView(o[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}}function ea(e,t){if(!(256&t[2])){var n=t[11];Wt(n)&&n.destroyNode&&pa(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return ta(e[1],e);for(;t;){var n=null;if(Lt(t))n=t[13];else{var i=t[10];i&&(n=i)}if(!n){for(;t&&!t[4]&&t!==e;)Lt(t)&&ta(t[1],t),t=t[3];null===t&&(t=e),Lt(t)&&ta(t[1],t),n=t&&t[4]}t=n}}(t)}}function ta(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var i=0;i=0?i[r=l]():i[r=-l].unsubscribe(),a+=2}else{var c=i[r=n[a+1]];n[a].call(c)}if(null!==i){for(var d=r+1;da?"":r[c+1].toLowerCase();var h=8&i?d:null;if(h&&-1!==ya(h,l,0)||2&i&&l!==d){if(Ca(i))return!1;o=!0}}}}else{if(!o&&!Ca(i)&&!Ca(u))return!1;if(o&&Ca(u))continue;o=!1,i=u|1&i}}return Ca(i)||o}function Ca(e){return 0==(1&e)}function La(e,t,n,i){if(null===t)return-1;var r=0;if(i||!n){for(var a=!1;r-1)for(n++;n2&&void 0!==arguments[2]&&arguments[2],i=0;i0?'="'+s+'"':"")+"]"}else 8&i?r+="."+o:4&i&&(r+=" "+o);else""===r||Ca(o)||(t+=Da(a,r),r=""),i=o,a=a||!Ca(i);n++}return""!==r&&(t+=Da(a,r)),t}var Ea={};function Ya(e){Pa(an(),rn(),En()+e,hn())}function Pa(e,t,n,i){if(!i)if(3==(3&t[2])){var r=e.preOrderCheckHooks;null!==r&&Fn(t,r,n)}else{var a=e.preOrderHooks;null!==a&&Hn(t,a,0,n)}Yn(n)}function Aa(e,t){return e<<17|t<<2}function Ia(e){return e>>17&32767}function Ra(e){return 2|e}function Fa(e){return(131068&e)>>2}function Ha(e,t){return-131069&e|t<<2}function ja(e){return 1|e}function Na(e,t){var n=e.contentQueries;if(null!==n)for(var i=0;iSt&&Pa(e,t,St,hn()),n(i,r)}finally{Yn(a)}}function Ka(e,t,n){if(Tt(t))for(var i=t.directiveEnd,r=t.directiveStart;r2&&void 0!==arguments[2]?arguments[2]:qt,i=t.localNames;if(null!==i)for(var r=t.index+1,a=0;a0;){var n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(s)!=u&&s.push(u),s.push(i,r,o)}}function ro(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function ao(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function oo(e,t,n){if(n){if(t.exportAs)for(var i=0;i0&&mo(n)}}function mo(e){for(var t=qr(e);null!==t;t=Gr(t))for(var n=Ct;n0&&mo(i)}var a=e[1].components;if(null!==a)for(var o=0;o0&&mo(s)}}function go(e,t){var n=Jt(t,e),i=n[1];!function(e,t){for(var n=t.length;n1&&void 0!==arguments[1]?arguments[1]:Ai;if(t===Ai){var n=new Error("NullInjectorError: No provider for ".concat(Ce(e),"!"));throw n.name="NullInjectorError",n}return t}}]),e}(),Yo=new Mi("Set Injector scope."),Po={},Ao={},Io=void 0;function Ro(){return void 0===Io&&(Io=new Eo),Io}function Fo(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3?arguments[3]:void 0;return new Ho(e,n,t||Ro(),i)}var Ho=function(){function e(t,n,i){var r=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;s(this,e),this.parent=i,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var o=[];n&&xi(n,function(e){return r.processProvider(e,t,n)}),xi([t],function(e){return r.processInjectorType(e,[],o)}),this.records.set(Oo,Bo(void 0,this));var u=this.records.get(Yo);this.scope=null!=u?u.value:null,this.source=a||("object"==typeof t?null:Ce(t))}return o(e,[{key:"destroyed",get:function(){return this._destroyed}},{key:"destroy",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(function(e){return e.ngOnDestroy()})}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ai,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ze.Default;this.assertNotDestroyed();var i=ji(this),r=Ge(void 0);try{if(!(n&ze.SkipSelf)){var a=this.records.get(e);if(void 0===a){var o=Uo(e)&&Fe(e);a=o&&this.injectableDefInScope(o)?Bo(jo(e),Po):null,this.records.set(e,a)}if(null!=a)return this.hydrate(e,a)}var s=n&ze.Self?Ro():this.parent;return s.get(e,t=n&ze.Optional&&t===Ai?null:t)}catch(l){if("NullInjectorError"===l.name){var u=l.ngTempTokenPath=l.ngTempTokenPath||[];if(u.unshift(Ce(e)),i)throw l;return zi(l,e,"R3InjectorError",this.source)}throw l}finally{Ge(r),ji(i)}}},{key:"_resolveInjectorDefTypes",value:function(){var e=this;this.injectorDefTypes.forEach(function(t){return e.get(t)})}},{key:"toString",value:function(){var e=[];return this.records.forEach(function(t,n){return e.push(Ce(n))}),"R3Injector[".concat(e.join(", "),"]")}},{key:"assertNotDestroyed",value:function(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}},{key:"processInjectorType",value:function(e,t,n){var i=this;if(!(e=De(e)))return!1;var r=je(e),a=null==r&&e.ngModule||void 0,o=void 0===a?e:a,s=-1!==n.indexOf(o);if(void 0!==a&&(r=je(a)),null==r)return!1;if(null!=r.imports&&!s){var u;n.push(o);try{xi(r.imports,function(e){i.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))})}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,r=t.providers;xi(r,function(e){return i.processProvider(e,n,r||rt)})},c=0;c0){var n=Oi(t,"?");throw new Error("Can't resolve all parameters for ".concat(Ce(e),": (").concat(n.join(", "),")."))}var i=function(e){var t=e&&(e[Be]||e[Ve]);if(t){var n=function(e){if(e.hasOwnProperty("name"))return e.name;var t=(""+e).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token "'.concat(n,'" that inherits its @Injectable decorator but does not provide one itself.\n')+'This will become an error in a future version of Angular. Please add @Injectable() to the "'.concat(n,'" class.')),t}return null}(e);return null!==i?function(){return i.factory(e)}:function(){return new e}}(e);throw new Error("unreachable")}function No(e,t,n){var i,r=void 0;if(Vo(e)){var a=De(e);return Yt(a)||jo(a)}if(Wo(e))r=function(){return De(e.useValue)};else if((i=e)&&i.useFactory)r=function(){return e.useFactory.apply(e,b(Vi(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))r=function(){return Bi(De(e.useExisting))};else{var o=De(e&&(e.useClass||e.provide));if(!function(e){return!!e.deps}(e))return Yt(o)||jo(o);r=function(){return w(o,b(Vi(e.deps)))}}return r}function Bo(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function Wo(e){return null!==e&&"object"==typeof e&&Fi in e}function Vo(e){return"function"==typeof e}function Uo(e){return"function"==typeof e||"object"==typeof e&&e instanceof Mi}var zo=function(e,t,n){return function(e){var t=Fo(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,arguments.length>3?arguments[3]:void 0);return t._resolveInjectorDefTypes(),t}({name:n},t,e,n)},qo=function(){var e=function(){function e(){s(this,e)}return o(e,null,[{key:"create",value:function(e,t){return Array.isArray(e)?zo(e,t,""):zo(e.providers,e.parent,e.name||"")}}]),e}();return e.THROW_IF_NOT_FOUND=Ai,e.NULL=new Eo,e.\u0275prov=Ie({token:e,providedIn:"any",factory:function(){return Bi(Oo)}}),e.__NG_ELEMENT_ID__=-1,e}();function Go(e,t){Rn(Rr(e)[1],sn())}function Ko(e){for(var t=Object.getPrototypeOf(e.type.prototype).constructor,n=!0,i=[e];t;){var r=void 0;if(Et(e))r=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new Error("Directives cannot inherit Components");r=t.\u0275dir}if(r){if(n){i.push(r);var a=e;a.inputs=Jo(e.inputs),a.declaredInputs=Jo(e.declaredInputs),a.outputs=Jo(e.outputs);var o=r.hostBindings;o&&Xo(e,o);var s=r.viewQuery,u=r.contentQueries;if(s&&Zo(e,s),u&&$o(e,u),Se(e.inputs,r.inputs),Se(e.declaredInputs,r.declaredInputs),Se(e.outputs,r.outputs),Et(r)&&r.data.animation){var l=e.data;l.animation=(l.animation||[]).concat(r.data.animation)}}var c=r.features;if(c)for(var d=0;d=0;i--){var r=e[i];r.hostVars=t+=r.hostVars,r.hostAttrs=Gn(r.hostAttrs,n=Gn(n,r.hostAttrs))}}(i)}function Jo(e){return e===it?{}:e===rt?[]:e}function Zo(e,t){var n=e.viewQuery;e.viewQuery=n?function(e,i){t(e,i),n(e,i)}:t}function $o(e,t){var n=e.contentQueries;e.contentQueries=n?function(e,i,r){t(e,i,r),n(e,i,r)}:t}function Xo(e,t){var n=e.hostBindings;e.hostBindings=n?function(e,i){t(e,i),n(e,i)}:t}var Qo=null;function es(){if(!Qo){var e=nt.Symbol;if(e&&e.iterator)Qo=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n1&&void 0!==arguments[1]?arguments[1]:ze.Default,n=rn();if(null===n)return Bi(e,t);var i=sn();return ui(i,n,De(e),t)}function ms(e,t,n){var i=rn();return as(i,gn(),t)&&to(an(),Pn(),i,e,t,i[11],n,!1),ms}function gs(e,t,n,i,r){var a=r?"class":"style";xo(e,n,t.inputs[a],a,i)}function vs(e,t,n,i){var r=rn(),a=an(),o=St+e,s=r[11],u=r[o]=$r(s,t,tn.lFrame.currentNamespace),l=a.firstCreatePass?function(e,t,n,i,r,a,o){var s=t.consts,u=Wa(t,e,2,r,Xt(s,a));return no(t,n,u,Xt(s,o)),null!==u.attrs&&Do(u,u.attrs,!1),null!==u.mergedAttrs&&Do(u,u.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,u),u}(o,a,r,0,t,n,i):a.data[o];ln(l,!0);var c=l.mergedAttrs;null!==c&&Un(s,u,c);var d=l.classes;null!==d&&_a(s,u,d);var h=l.styles;null!==h&&va(s,u,h),64!=(64&l.flags)&&la(a,r,u,l),0===tn.lFrame.elementDepthCount&&Ir(u,r),tn.lFrame.elementDepthCount++,Ot(l)&&(Ja(a,r,l),Ka(a,l,r)),null!==i&&Za(r,l)}function _s(){var e=sn();cn()?dn():ln(e=e.parent,!1);var t=e;tn.lFrame.elementDepthCount--;var n=an();n.firstCreatePass&&(Rn(n,e),Tt(e)&&n.queries.elementEnd(e)),null!=t.classesWithoutHost&&function(e){return 0!=(16&e.flags)}(t)&&gs(n,t,rn(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function(e){return 0!=(32&e.flags)}(t)&&gs(n,t,rn(),t.stylesWithoutHost,!1)}function ys(e,t,n,i){vs(e,t,n,i),_s()}function bs(e,t,n){var i=rn(),r=an(),a=e+St,o=r.firstCreatePass?function(e,t,n,i,r){var a=t.consts,o=Xt(a,i),s=Wa(t,e,8,"ng-container",o);return null!==o&&Do(s,o,!0),no(t,n,s,Xt(a,r)),null!==t.queries&&t.queries.elementStart(t,s),s}(a,r,i,t,n):r.data[a];ln(o,!0);var s=i[a]=i[11].createComment("");la(r,i,s,o),Ir(s,i),Ot(o)&&(Ja(r,i,o),Ka(r,o,i)),null!=n&&Za(i,o)}function ws(){var e=sn(),t=an();cn()?dn():ln(e=e.parent,!1),t.firstCreatePass&&(Rn(t,e),Tt(e)&&t.queries.elementEnd(e))}function ks(e,t,n){bs(e,t,n),ws()}function Ms(){return rn()}function Ss(e){return!!e&&"function"==typeof e.then}function Cs(e){return!!e&&"function"==typeof e.subscribe}var Ls=Cs;function xs(e,t,n,i){var r=rn(),a=an(),o=sn();return Ds(a,r,r[11],o,e,t,!!n,i),xs}function Ts(e,t){var n=sn(),i=rn(),r=an();return Ds(r,i,Co(yn(r.data),n,i),n,e,t,!1),Ts}function Ds(e,t,n,i,r,a,o,s){var u=Ot(i),l=e.firstCreatePass&&So(e),c=Mo(t),d=!0;if(3&i.type||s){var h=qt(i,t),f=s?s(h):h,p=c.length,m=s?function(e){return s(Ut(e[i.index]))}:i.index;if(Wt(n)){var g=null;if(!s&&u&&(g=function(e,t,n,i){var r=e.cleanup;if(null!=r)for(var a=0;au?s[u]:null}"string"==typeof o&&(a+=2)}return null}(e,t,r,i.index)),null!==g)(g.__ngLastListenerFn__||g).__ngNextListenerFn__=a,g.__ngLastListenerFn__=a,d=!1;else{a=Es(i,t,0,a,!1);var v=n.listen(f,r,a);c.push(a,v),l&&l.push(r,m,p,p+1)}}else a=Es(i,t,0,a,!0),f.addEventListener(r,a,o),c.push(a),l&&l.push(r,m,p,o)}else a=Es(i,t,0,a,!1);var _,y=i.outputs;if(d&&null!==y&&(_=y[r])){var b=_.length;if(b)for(var w=0;w0&&void 0!==arguments[0]?arguments[0]:1;return On(e)}function Ps(e,t){for(var n=null,i=function(e){var t=e.attrs;if(null!=t){var n=t.indexOf(5);if(0==(1&n))return t[n+1]}return null}(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0,i=rn(),r=an(),a=Wa(r,St+e,16,null,n||null);null===a.projection&&(a.projection=t),dn(),64!=(64&a.flags)&&ma(r,i,a)}function Rs(e,t,n){return Fs(e,"",t,"",n),Rs}function Fs(e,t,n,i,r){var a=rn(),o=cs(a,t,n,i);return o!==Ea&&to(an(),Pn(),a,e,o,a[11],r,!1),Fs}function Hs(e,t,n,i,r,a,o,s,u){var l=rn(),c=ds(l,t,n,i,r,a,o,s);return c!==Ea&&to(an(),Pn(),l,e,c,l[11],u,!1),Hs}function js(e,t,n,i,r){for(var a=e[n+1],o=null===t,s=i?Ia(a):Fa(a),u=!1;0!==s&&(!1===u||o);){var l=e[s+1];Ns(e[s],t)&&(u=!0,e[s+1]=i?ja(l):Ra(l)),s=i?Ia(l):Fa(l)}u&&(e[n+1]=i?Ra(a):ja(a))}function Ns(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Pi(e,t)>=0}var Bs={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Ws(e){return e.substring(Bs.key,Bs.keyEnd)}function Vs(e,t){var n=Bs.textEnd;return n===t?-1:(t=Bs.keyEnd=function(e,t,n){for(;t32;)t++;return t}(e,Bs.key=t,n),Us(e,t,n))}function Us(e,t,n){for(;t=0;n=Vs(t,n))Ei(e,Ws(t),!0)}function Ks(e,t,n,i){var r=rn(),a=an(),o=vn(2);a.firstUpdatePass&&$s(a,e,o,i),t!==Ea&&as(r,o,t)&&eu(a,a.data[En()],r,r[11],e,r[o+1]=function(e,t){return null==e||("string"==typeof t?e+=t:"object"==typeof e&&(e=Ce(ar(e)))),e}(t,n),i,o)}function Js(e,t,n,i){var r=an(),a=vn(2);r.firstUpdatePass&&$s(r,null,a,i);var o=rn();if(n!==Ea&&as(o,a,n)){var s=r.data[En()];if(iu(s,i)&&!Zs(r,a)){var u=i?s.classesWithoutHost:s.stylesWithoutHost;null!==u&&(n=Le(u,n||"")),gs(r,s,o,n,i)}else!function(e,t,n,i,r,a,o,s){r===Ea&&(r=rt);for(var u=0,l=0,c=0=e.expandoStartIndex}function $s(e,t,n,i){var r=e.data;if(null===r[n+1]){var a=r[En()],o=Zs(e,n);iu(a,i)&&null===t&&!o&&(t=!1),t=function(e,t,n,i){var r=yn(e),a=i?t.residualClasses:t.residualStyles;if(null===r)0===(i?t.classBindings:t.styleBindings)&&(n=Qs(n=Xs(null,e,t,n,i),t.attrs,i),a=null);else{var o=t.directiveStylingLast;if(-1===o||e[o]!==r)if(n=Xs(r,e,t,n,i),null===a){var s=function(e,t,n){var i=n?t.classBindings:t.styleBindings;if(0!==Fa(i))return e[Ia(i)]}(e,t,i);void 0!==s&&Array.isArray(s)&&function(e,t,n,i){e[Ia(n?t.classBindings:t.styleBindings)]=i}(e,t,i,s=Qs(s=Xs(null,e,t,s[1],i),t.attrs,i))}else a=function(e,t,n){for(var i=void 0,r=t.directiveEnd,a=1+t.directiveStylingLast;a0)&&(c=!0):l=n,r)if(0!==u){var d=Ia(e[s+1]);e[i+1]=Aa(d,s),0!==d&&(e[d+1]=Ha(e[d+1],i)),e[s+1]=131071&e[s+1]|i<<17}else e[i+1]=Aa(s,0),0!==s&&(e[s+1]=Ha(e[s+1],i)),s=i;else e[i+1]=Aa(u,0),0===s?s=i:e[u+1]=Ha(e[u+1],i),u=i;c&&(e[i+1]=Ra(e[i+1])),js(e,l,i,!0),js(e,l,i,!1),function(e,t,n,i,r){var a=r?e.residualClasses:e.residualStyles;null!=a&&"string"==typeof t&&Pi(a,t)>=0&&(n[i+1]=ja(n[i+1]))}(t,l,e,i,a),o=Aa(s,u),a?t.classBindings=o:t.styleBindings=o}(r,a,t,n,o,i)}}function Xs(e,t,n,i,r){var a=null,o=n.directiveEnd,s=n.directiveStylingLast;for(-1===s?s=n.directiveStart:s++;s0;){var u=e[r],l=Array.isArray(u),c=l?u[1]:u,d=null===c,h=n[r+1];h===Ea&&(h=d?rt:void 0);var f=d?Yi(h,i):c===i?h:void 0;if(l&&!nu(f)&&(f=Yi(u,i)),nu(f)&&(s=f,o))return s;var p=e[r+1];r=o?Ia(p):Fa(p)}if(null!==t){var m=a?t.residualClasses:t.residualStyles;null!=m&&(s=Yi(m,i))}return s}function nu(e){return void 0!==e}function iu(e,t){return 0!=(e.flags&(t?16:32))}function ru(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=rn(),i=an(),r=e+St,a=i.firstCreatePass?Wa(i,r,1,t,null):i.data[r],o=n[r]=Zr(n[11],t);la(i,n,o,a),ln(a,!1)}function au(e){return ou("",e,""),au}function ou(e,t,n){var i=rn(),r=cs(i,e,t,n);return r!==Ea&&To(i,En(),r),ou}function su(e,t,n,i,r){var a=rn(),o=function(e,t,n,i,r,a){var o=os(e,mn(),n,r);return vn(2),o?t+Ye(n)+i+Ye(r)+a:Ea}(a,e,t,n,i,r);return o!==Ea&&To(a,En(),o),su}function uu(e,t,n,i,r,a,o){var s=rn(),u=ds(s,e,t,n,i,r,a,o);return u!==Ea&&To(s,En(),u),uu}function lu(e,t,n,i,r,a,o,s,u){var l=rn(),c=function(e,t,n,i,r,a,o,s,u,l){var c=us(e,mn(),n,r,o,u);return vn(4),c?t+Ye(n)+i+Ye(r)+a+Ye(o)+s+Ye(u)+l:Ea}(l,e,t,n,i,r,a,o,s,u);return c!==Ea&&To(l,En(),c),lu}function cu(e,t,n){Js(Ei,Gs,cs(rn(),e,t,n),!0)}function du(e,t,n){var i=rn();return as(i,gn(),t)&&to(an(),Pn(),i,e,t,i[11],n,!0),du}function hu(e,t,n){var i=rn();if(as(i,gn(),t)){var r=an(),a=Pn();to(r,a,i,e,t,Co(yn(r.data),a,i),n,!0)}return hu}var fu=void 0,pu=["en",[["a","p"],["AM","PM"],fu],[["AM","PM"],fu,fu],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],fu,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],fu,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",fu,"{1} 'at' {0}",fu],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\.?/,"").length;return 1===t&&0===n?1:5}],mu={};function gu(e){var t=function(e){return e.toLowerCase().replace(/_/g,"-")}(e),n=vu(t);if(n)return n;var i=t.split("-")[0];if(n=vu(i))return n;if("en"===i)return pu;throw new Error('Missing locale data for the locale "'.concat(e,'".'))}function vu(e){return e in mu||(mu[e]=nt.ng&&nt.ng.common&&nt.ng.common.locales&&nt.ng.common.locales[e]),mu[e]}var _u=function(e){return e[e.LocaleId=0]="LocaleId",e[e.DayPeriodsFormat=1]="DayPeriodsFormat",e[e.DayPeriodsStandalone=2]="DayPeriodsStandalone",e[e.DaysFormat=3]="DaysFormat",e[e.DaysStandalone=4]="DaysStandalone",e[e.MonthsFormat=5]="MonthsFormat",e[e.MonthsStandalone=6]="MonthsStandalone",e[e.Eras=7]="Eras",e[e.FirstDayOfWeek=8]="FirstDayOfWeek",e[e.WeekendRange=9]="WeekendRange",e[e.DateFormat=10]="DateFormat",e[e.TimeFormat=11]="TimeFormat",e[e.DateTimeFormat=12]="DateTimeFormat",e[e.NumberSymbols=13]="NumberSymbols",e[e.NumberFormats=14]="NumberFormats",e[e.CurrencyCode=15]="CurrencyCode",e[e.CurrencySymbol=16]="CurrencySymbol",e[e.CurrencyName=17]="CurrencyName",e[e.Currencies=18]="Currencies",e[e.Directionality=19]="Directionality",e[e.PluralCase=20]="PluralCase",e[e.ExtraData=21]="ExtraData",e}({}),yu="en-US";function bu(e){var t,n;n="Expected localeId to be defined",null==(t=e)&&function(e,t,n,i){throw new Error("ASSERTION ERROR: ".concat(e)+" [Expected=> ".concat(null," ").concat("!="," ").concat(t," <=Actual]"))}(n,t),"string"==typeof e&&e.toLowerCase().replace(/_/g,"-")}function wu(e,t,n){var i=an();if(i.firstCreatePass){var r=Et(e);ku(n,i.data,i.blueprint,r,!0),ku(t,i.data,i.blueprint,r,!1)}}function ku(e,t,n,i,r){if(e=De(e),Array.isArray(e))for(var a=0;a>20;if(Vo(e)||!e.multi){var p=new Vn(l,r,ps),m=Cu(u,t,r?d:d+f,h);-1===m?(ai(ti(c,s),o,u),Mu(o,e,t.length),t.push(u),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=1048576),n.push(p),s.push(p)):(n[m]=p,s[m]=p)}else{var g=Cu(u,t,d+f,h),v=Cu(u,t,d,d+f),_=v>=0&&n[v];if(r&&!_||!r&&!(g>=0&&n[g])){ai(ti(c,s),o,u);var y=function(e,t,n,i,r){var a=new Vn(e,n,ps);return a.multi=[],a.index=t,a.componentProviders=0,Su(a,r,i&&!n),a}(r?xu:Lu,n.length,r,i,l);!r&&_&&(n[v].providerFactory=y),Mu(o,e,t.length,0),t.push(u),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=1048576),n.push(y),s.push(y)}else Mu(o,e,g>-1?g:v,Su(n[r?v:g],l,!r&&i));!r&&i&&_&&n[v].componentProviders++}}}function Mu(e,t,n,i){var r=Vo(t);if(r||t.useClass){var a=(t.useClass||t).prototype.ngOnDestroy;if(a){var o=e.destroyHooks||(e.destroyHooks=[]);if(!r&&t.multi){var s=o.indexOf(n);-1===s?o.push(n,[i,a]):o[s+1].push(i,a)}else o.push(n,a)}}}function Su(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function Cu(e,t,n,i){for(var r=n;r1&&void 0!==arguments[1]?arguments[1]:[];return function(n){n.providersResolver=function(n,i){return wu(n,i?i(e):e,t)}}}var Ou=function e(){s(this,e)},Eu=function e(){s(this,e)},Yu=function(){function e(){s(this,e)}return o(e,[{key:"resolveComponentFactory",value:function(e){throw function(e){var t=Error("No component factory found for ".concat(Ce(e),". Did you add it to @NgModule.entryComponents?"));return t.ngComponent=e,t}(e)}}]),e}(),Pu=function(){var e=function e(){s(this,e)};return e.NULL=new Yu,e}();function Au(){}function Iu(e,t){return new Fu(qt(e,t))}var Ru=function(){return Iu(sn(),rn())},Fu=function(){var e=function e(t){s(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=Ru,e}();function Hu(e){return e instanceof Fu?e.nativeElement:e}var ju=function e(){s(this,e)},Nu=function(){var e=function e(){s(this,e)};return e.__NG_ELEMENT_ID__=function(){return Bu()},e}(),Bu=function(){var e=rn(),t=Jt(sn().index,e);return function(e){return e[11]}(Lt(t)?t:e)},Wu=function(){var e=function e(){s(this,e)};return e.\u0275prov=Ie({token:e,providedIn:"root",factory:function(){return null}}),e}(),Vu=function e(t){s(this,e),this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")},Uu=new Vu("12.2.3"),zu=function(){function e(){s(this,e)}return o(e,[{key:"supports",value:function(e){return ns(e)}},{key:"create",value:function(e){return new Gu(e)}}]),e}(),qu=function(e,t){return t},Gu=function(){function e(t){s(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||qu}return o(e,[{key:"forEachItem",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:"forEachOperation",value:function(e){for(var t=this._itHead,n=this._removalsHead,i=0,r=null;t||n;){var a=!n||t&&t.currentIndex<$u(n,i,r)?t:n,o=$u(a,i,r),s=a.currentIndex;if(a===n)i--,n=n._nextRemoved;else if(t=t._next,null==a.previousIndex)i++;else{r||(r=[]);var u=o-i,l=s-i;if(u!=l){for(var c=0;c4&&void 0!==arguments[4]&&arguments[4];null!==n;){var a=t[n.index];if(null!==a&&i.push(Ut(a)),xt(a))for(var o=Ct;o-1&&(Qr(e,n),Di(t,n))}this._attachedToViewContainer=!1}ea(this._lView[1],this._lView)}},{key:"onDestroy",value:function(e){Qa(this._lView[1],this._lView,null,e)}},{key:"markForCheck",value:function(){_o(this._cdRefInjectingView||this._lView)}},{key:"detach",value:function(){this._lView[2]&=-129}},{key:"reattach",value:function(){this._lView[2]|=128}},{key:"detectChanges",value:function(){yo(this._lView[1],this._lView,this.context)}},{key:"checkNoChanges",value:function(){!function(e,t,n){fn(!0);try{yo(e,t,n)}finally{fn(!1)}}(this._lView[1],this._lView,this.context)}},{key:"attachToViewContainerRef",value:function(){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}},{key:"detachFromAppRef",value:function(){var e;this._appRef=null,pa(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:"attachToAppRef",value:function(e){if(this._attachedToViewContainer)throw new Error("This view is already attached to a ViewContainer!");this._appRef=e}}]),e}(),sl=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this,e))._view=e,i}return o(n,[{key:"detectChanges",value:function(){bo(this._view)}},{key:"checkNoChanges",value:function(){!function(e){fn(!0);try{bo(e)}finally{fn(!1)}}(this._view)}},{key:"context",get:function(){return null}}]),n}(ol),ul=function(e){return function(e,t,n){if(Dt(e)&&!n){var i=Jt(e.index,t);return new ol(i,i)}return 47&e.type?new ol(t[16],t):null}(sn(),rn(),16==(16&e))},ll=function(){var e=function e(){s(this,e)};return e.__NG_ELEMENT_ID__=ul,e}(),cl=[new Xu],dl=new nl([new zu]),hl=new rl(cl),fl=function(){return gl(sn(),rn())},pl=function(){var e=function e(){s(this,e)};return e.__NG_ELEMENT_ID__=fl,e}(),ml=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this))._declarationLView=e,a._declarationTContainer=i,a.elementRef=r,a}return o(n,[{key:"createEmbeddedView",value:function(e){var t=this._declarationTContainer.tViews,n=Ba(this._declarationLView,t,e,16,null,t.declTNode,null,null,null,null);n[17]=this._declarationLView[this._declarationTContainer.index];var i=this._declarationLView[19];return null!==i&&(n[19]=i.createEmbeddedView(t)),Ua(t,n,e),new ol(n)}}]),n}(pl);function gl(e,t){return 4&e.type?new ml(t,e,Iu(e,t)):null}var vl=function e(){s(this,e)},_l=function e(){s(this,e)},yl=function(){return Sl(sn(),rn())},bl=function(){var e=function e(){s(this,e)};return e.__NG_ELEMENT_ID__=yl,e}(),wl=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this))._lContainer=e,a._hostTNode=i,a._hostLView=r,a}return o(n,[{key:"element",get:function(){return Iu(this._hostTNode,this._hostLView)}},{key:"injector",get:function(){return new vi(this._hostTNode,this._hostLView)}},{key:"parentInjector",get:function(){var e=ri(this._hostTNode,this._hostLView);if(Jn(e)){var t=$n(e,this._hostLView),n=Zn(e);return new vi(t[1].data[n+8],t)}return new vi(null,this._hostLView)}},{key:"clear",value:function(){for(;this.length>0;)this.remove(this.length-1)}},{key:"get",value:function(e){var t=kl(this._lContainer);return null!==t&&t[e]||null}},{key:"length",get:function(){return this._lContainer.length-Ct}},{key:"createEmbeddedView",value:function(e,t,n){var i=e.createEmbeddedView(t||{});return this.insert(i,n),i}},{key:"createComponent",value:function(e,t,n,i,r){var a=n||this.parentInjector;if(!r&&null==e.ngModule&&a){var o=a.get(vl,null);o&&(r=o)}var s=e.create(a,i,void 0,r);return this.insert(s.hostView,t),s}},{key:"insert",value:function(e,t){var n=e._lView,i=n[1];if(xt(n[3])){var r=this.indexOf(e);if(-1!==r)this.detach(r);else{var a=n[3],o=new wl(a,a[6],a[3]);o.detach(o.indexOf(e))}}var s=this._adjustIndex(t),u=this._lContainer;!function(e,t,n,i){var r=Ct+i,a=n.length;i>0&&(n[r-1][4]=t),i1&&void 0!==arguments[1]?arguments[1]:0;return null==e?this.length+t:e}}]),n}(bl);function kl(e){return e[8]}function Ml(e){return e[8]||(e[8]=[])}function Sl(e,t){var n,i=t[e.index];if(xt(i))n=i;else{var r;if(8&e.type)r=Ut(i);else{var a=t[11];r=a.createComment("");var o=qt(e,t);ia(a,oa(a,o),r,function(e,t){return Wt(e)?e.nextSibling(t):t.nextSibling}(a,o),!1)}t[e.index]=n=fo(i,t,r,e),vo(t,n)}return new wl(n,e,t)}var Cl={},Ll=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this)).ngModule=e,i}return o(n,[{key:"resolveComponentFactory",value:function(e){var t=kt(e);return new Dl(t,this.ngModule)}}]),n}(Pu);function xl(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Tl=new Mi("SCHEDULER_TOKEN",{providedIn:"root",factory:function(){return Nr}}),Dl=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this)).componentDef=e,r.ngModule=i,r.componentType=e.type,r.selector=e.selectors.map(Oa).join(","),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!i,r}return o(n,[{key:"inputs",get:function(){return xl(this.componentDef.inputs)}},{key:"outputs",get:function(){return xl(this.componentDef.outputs)}},{key:"create",value:function(e,t,n,i){var r,a,o=(i=i||this.ngModule)?function(e,t){return{get:function(n,i,r){var a=e.get(n,Cl,r);return a!==Cl||i===Cl?a:t.get(n,i,r)}}}(e,i.injector):e,s=o.get(ju,Vt),u=o.get(Wu,null),l=s.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||"div",d=n?function(e,t,n){if(Wt(e))return e.selectRootElement(t,n===$e.ShadowDom);var i="string"==typeof t?e.querySelector(t):t;return i.textContent="",i}(l,n,this.componentDef.encapsulation):$r(s.createRenderer(null,this.componentDef),c,function(e){var t=e.toLowerCase();return"svg"===t?jt:"math"===t?"http://www.w3.org/1998/MathML/":null}(c)),h=this.componentDef.onPush?576:528,f={components:[],scheduler:Nr,clean:ko,playerHandler:null,flags:0},p=Xa(0,null,null,1,0,null,null,null,null,null),m=Ba(null,p,f,h,null,null,s,l,u,o);Sn(m);try{var g=function(e,t,n,i,r,a){var o=n[1];n[20]=e;var s=Wa(o,20,2,"#host",null),u=s.mergedAttrs=t.hostAttrs;null!==u&&(Do(s,u,!0),null!==e&&(Un(r,e,u),null!==s.classes&&_a(r,e,s.classes),null!==s.styles&&va(r,e,s.styles)));var l=i.createRenderer(e,t),c=Ba(n,$a(t),null,t.onPush?64:16,n[20],s,i,l,null,null);return o.firstCreatePass&&(ai(ti(s,n),o,t.type),ao(o,s),so(s,n.length,1)),vo(n,c),n[20]=c}(d,this.componentDef,m,s,l);if(d)if(n)Un(l,d,["ng-version",Uu.full]);else{var v=function(e){for(var t=[],n=[],i=1,r=2;i0&&_a(l,d,y.join(" "))}if(a=Gt(p,St),void 0!==t)for(var b=a.projection=[],w=0;w1&&void 0!==arguments[1]?arguments[1]:qo.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ze.Default;return e===qo||e===vl||e===Oo?this:this._r3Injector.get(e,t,n)}},{key:"destroy",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(function(e){return e()}),this.destroyCbs=null}},{key:"onDestroy",value:function(e){this.destroyCbs.push(e)}}]),n}(vl),Pl=function(e){l(n,e);var t=p(n);function n(e){var i,r,a;return s(this,n),(i=t.call(this)).moduleType=e,null!==Mt(e)&&(r=e,a=new Set,function e(t){var n=Mt(t,!0),i=n.id;null!==i&&(function(e,t,n){if(t&&t!==n)throw new Error("Duplicate module registered for ".concat(e," - ").concat(Ce(t)," vs ").concat(Ce(t.name)))}(i,El.get(i),t),El.set(i,t));var r,o=v(Wr(n.imports));try{for(o.s();!(r=o.n()).done;){var s=r.value;a.has(s)||(a.add(s),e(s))}}catch(u){o.e(u)}finally{o.f()}}(r)),i}return o(n,[{key:"create",value:function(e){return new Yl(this.moduleType,e)}}]),n}(_l);function Al(e,t,n){var i=pn()+e,r=rn();return r[i]===Ea?rs(r,i,n?t.call(n):t()):function(e,t){return e[t]}(r,i)}function Il(e,t,n,i){return jl(rn(),pn(),e,t,n,i)}function Rl(e,t,n,i,r){return Nl(rn(),pn(),e,t,n,i,r)}function Fl(e,t,n,i,r,a){return Bl(rn(),pn(),e,t,n,i,r,a)}function Hl(e,t){var n=e[t];return n===Ea?void 0:n}function jl(e,t,n,i,r,a){var o=t+n;return as(e,o,r)?rs(e,o+1,a?i.call(a,r):i(r)):Hl(e,o+1)}function Nl(e,t,n,i,r,a,o){var s=t+n;return os(e,s,r,a)?rs(e,s+2,o?i.call(o,r,a):i(r,a)):Hl(e,s+2)}function Bl(e,t,n,i,r,a,o,s){var u=t+n;return ss(e,u,r,a,o)?rs(e,u+3,s?i.call(s,r,a,o):i(r,a,o)):Hl(e,u+3)}function Wl(e,t){var n,i=an(),r=e+St;i.firstCreatePass?(n=function(e,t){if(t)for(var n=t.length-1;n>=0;n--){var i=t[n];if(e===i.name)return i}throw new Ee("302","The pipe '".concat(e,"' could not be found!"))}(t,i.pipeRegistry),i.data[r]=n,n.onDestroy&&(i.destroyHooks||(i.destroyHooks=[])).push(r,n.onDestroy)):n=i.data[r];var a=n.factory||(n.factory=Yt(n.type)),o=Ge(ps);try{var s=Qn(!1),u=a();return Qn(s),function(e,t,n,i){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=i}(i,rn(),r,u),u}finally{Ge(o)}}function Vl(e,t,n){var i=e+St,r=rn(),a=Kt(r,i);return Kl(r,Gl(r,i)?jl(r,pn(),t,a.transform,n,a):a.transform(n))}function Ul(e,t,n,i){var r=e+St,a=rn(),o=Kt(a,r);return Kl(a,Gl(a,r)?Nl(a,pn(),t,o.transform,n,i,o):o.transform(n,i))}function zl(e,t,n,i,r){var a=e+St,o=rn(),s=Kt(o,a);return Kl(o,Gl(o,a)?Bl(o,pn(),t,s.transform,n,i,r,s):s.transform(n,i,r))}function ql(e,t,n,i,r,a){var o=e+St,s=rn(),u=Kt(s,o);return Kl(s,Gl(s,o)?function(e,t,n,i,r,a,o,s,u){var l=t+n;return us(e,l,r,a,o,s)?rs(e,l+4,u?i.call(u,r,a,o,s):i(r,a,o,s)):Hl(e,l+4)}(s,pn(),t,u.transform,n,i,r,a,u):u.transform(n,i,r,a))}function Gl(e,t){return e[1].data[t].pure}function Kl(e,t){return ts.isWrapped(t)&&(t=ts.unwrap(t),e[mn()]=Ea),t}function Jl(e){return function(t){setTimeout(e,void 0,t)}}var Zl=function(e){l(n,e);var t=p(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return s(this,n),(e=t.call(this)).__isAsync=i,e}return o(n,[{key:"emit",value:function(e){r(i(n.prototype),"next",this).call(this,e)}},{key:"subscribe",value:function(e,t,a){var o,s,u,l=e,c=t||function(){return null},d=a;if(e&&"object"==typeof e){var h=e;l=null===(o=h.next)||void 0===o?void 0:o.bind(h),c=null===(s=h.error)||void 0===s?void 0:s.bind(h),d=null===(u=h.complete)||void 0===u?void 0:u.bind(h)}this.__isAsync&&(c=Jl(c),l&&(l=Jl(l)),d&&(d=Jl(d)));var f=r(i(n.prototype),"subscribe",this).call(this,{next:l,error:c,complete:d});return e instanceof x&&e.add(f),f}}]),n}(z);function $l(){return this._results[es()]()}var Xl=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];s(this,e),this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;var n=es(),i=e.prototype;i[n]||(i[n]=$l)}return o(e,[{key:"changes",get:function(){return this._changes||(this._changes=new Zl)}},{key:"get",value:function(e){return this._results[e]}},{key:"map",value:function(e){return this._results.map(e)}},{key:"filter",value:function(e){return this._results.filter(e)}},{key:"find",value:function(e){return this._results.find(e)}},{key:"reduce",value:function(e,t){return this._results.reduce(e,t)}},{key:"forEach",value:function(e){this._results.forEach(e)}},{key:"some",value:function(e){return this._results.some(e)}},{key:"toArray",value:function(){return this._results.slice()}},{key:"toString",value:function(){return this._results.toString()}},{key:"reset",value:function(e,t){var n=this;n.dirty=!1;var i=Li(e);(this._changesDetected=!function(e,t,n){if(e.length!==t.length)return!1;for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:[];s(this,e),this.queries=t}return o(e,[{key:"createEmbeddedView",value:function(t){var n=t.queries;if(null!==n){for(var i=null!==t.contentQueries?t.contentQueries[0]:n.length,r=[],a=0;a2&&void 0!==arguments[2]?arguments[2]:null;s(this,e),this.predicate=t,this.flags=n,this.read=i},nc=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];s(this,e),this.queries=t}return o(e,[{key:"elementStart",value:function(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:-1;s(this,e),this.metadata=t,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=n}return o(e,[{key:"elementStart",value:function(e,t){this.isApplyingToNode(t)&&this.matchTNode(e,t)}},{key:"elementEnd",value:function(e){this._declarationNodeIndex===e.index&&(this._appliesToNextNode=!1)}},{key:"template",value:function(e,t){this.elementStart(e,t)}},{key:"embeddedTView",value:function(t,n){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,n),new e(this.metadata)):null}},{key:"isApplyingToNode",value:function(e){if(this._appliesToNextNode&&1!=(1&this.metadata.flags)){for(var t=this._declarationNodeIndex,n=e.parent;null!==n&&8&n.type&&n.index!==t;)n=n.parent;return t===(null!==n?n.index:-1)}return this._appliesToNextNode}},{key:"matchTNode",value:function(e,t){var n=this.metadata.predicate;if(Array.isArray(n))for(var i=0;i0)i.push(o[s/2]);else{for(var l=a[s+1],c=t[-u],d=Ct;d0&&(r=setTimeout(function(){i._callbacks=i._callbacks.filter(function(e){return e.timeoutId!==r}),e(i._didWork,i.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}},{key:"whenStable",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:"getPendingRequestCount",value:function(){return this._pendingCount}},{key:"findProviders",value:function(e,t,n){return[]}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Fc))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),qc=function(){var e=function(){function e(){s(this,e),this._applications=new Map,Gc.addToWindow(this)}return o(e,[{key:"registerApplication",value:function(e,t){this._applications.set(e,t)}},{key:"unregisterApplication",value:function(e){this._applications.delete(e)}},{key:"unregisterAllApplications",value:function(){this._applications.clear()}},{key:"getTestability",value:function(e){return this._applications.get(e)||null}},{key:"getAllTestabilities",value:function(){return Array.from(this._applications.values())}},{key:"getAllRootElements",value:function(){return Array.from(this._applications.keys())}},{key:"findTestabilityInTree",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Gc.findTestabilityInTree(this,e,t)}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),Gc=new(function(){function e(){s(this,e)}return o(e,[{key:"addToWindow",value:function(e){}},{key:"findTestabilityInTree",value:function(e,t,n){return null}}]),e}()),Kc=!0,Jc=!1;function Zc(){return Jc=!0,Kc}var $c=function(e,t,n){var i=new Pl(n);return Promise.resolve(i)},Xc=new Mi("AllowMultipleToken"),Qc=function e(t,n){s(this,e),this.name=t,this.token=n};function ed(e){if(Vc&&!Vc.destroyed&&!Vc.injector.get(Xc,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");Vc=e.get(rd);var t=e.get(wc,null);return t&&t.forEach(function(e){return e()}),Vc}function td(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i="Platform: ".concat(t),r=new Mi(i);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],a=id();if(!a||a.injector.get(Xc,!1))if(e)e(n.concat(t).concat({provide:r,useValue:!0}));else{var o=n.concat(t).concat({provide:r,useValue:!0},{provide:Yo,useValue:"platform"});ed(qo.create({providers:o,name:i}))}return nd(r)}}function nd(e){var t=id();if(!t)throw new Error("No platform exists!");if(!t.injector.get(e,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return t}function id(){return Vc&&!Vc.destroyed?Vc:null}var rd=function(){var e=function(){function e(t){s(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return o(e,[{key:"bootstrapModuleFactory",value:function(e,t){var n,i,r=this,a=(i={ngZoneEventCoalescing:t&&t.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:t&&t.ngZoneRunCoalescing||!1},"noop"===(n=t?t.ngZone:void 0)?new Uc:("zone.js"===n?void 0:n)||new Fc({enableLongStackTrace:Zc(),shouldCoalesceEventChangeDetection:!!(null==i?void 0:i.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==i?void 0:i.ngZoneRunCoalescing)})),o=[{provide:Fc,useValue:a}];return a.run(function(){var t=qo.create({providers:o,parent:r.injector,name:e.moduleType.name}),n=e.create(t),i=n.injector.get(jr,null);if(!i)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return a.runOutsideAngular(function(){var e=a.onError.subscribe({next:function(e){i.handleError(e)}});n.onDestroy(function(){sd(r._modules,n),e.unsubscribe()})}),function(e,t,i){try{var a=((o=n.injector.get(vc)).runInitializers(),o.donePromise.then(function(){return bu(n.injector.get(Cc,yu)||yu),r._moduleDoBootstrap(n),n}));return Ss(a)?a.catch(function(n){throw t.runOutsideAngular(function(){return e.handleError(n)}),n}):a}catch(s){throw t.runOutsideAngular(function(){return e.handleError(s)}),s}var o}(i,a)})}},{key:"bootstrapModule",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=ad({},n);return $c(0,0,e).then(function(e){return t.bootstrapModuleFactory(e,i)})}},{key:"_moduleDoBootstrap",value:function(e){var t=e.injector.get(od);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(function(e){return t.bootstrap(e)});else{if(!e.instance.ngDoBootstrap)throw new Error("The module ".concat(Ce(e.instance.constructor),' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. ')+"Please define one of these.");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:"onDestroy",value:function(e){this._destroyListeners.push(e)}},{key:"injector",get:function(){return this._injector}},{key:"destroy",value:function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(function(e){return e.destroy()}),this._destroyListeners.forEach(function(e){return e()}),this._destroyed=!0}},{key:"destroyed",get:function(){return this._destroyed}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(qo))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}();function ad(e,t){return Array.isArray(t)?t.reduce(ad,e):Object.assign(Object.assign({},e),t)}var od=function(){var e=function(){function e(t,n,i,r,a){var o=this;s(this,e),this._zone=t,this._injector=n,this._exceptionHandler=i,this._componentFactoryResolver=r,this._initStatus=a,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:function(){o._zone.run(function(){o.tick()})}});var u=new N(function(e){o._stable=o._zone.isStable&&!o._zone.hasPendingMacrotasks&&!o._zone.hasPendingMicrotasks,o._zone.runOutsideAngular(function(){e.next(o._stable),e.complete()})}),l=new N(function(e){var t;o._zone.runOutsideAngular(function(){t=o._zone.onStable.subscribe(function(){Fc.assertNotInAngularZone(),Rc(function(){o._stable||o._zone.hasPendingMacrotasks||o._zone.hasPendingMicrotasks||(o._stable=!0,e.next(!0))})})});var n=o._zone.onUnstable.subscribe(function(){Fc.assertInAngularZone(),o._stable&&(o._stable=!1,o._zone.runOutsideAngular(function(){e.next(!1)}))});return function(){t.unsubscribe(),n.unsubscribe()}});this.isStable=pe(u,l.pipe(ke()))}return o(e,[{key:"bootstrap",value:function(e,t){var n,i=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");n=e instanceof Eu?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var r=n.isBoundToModule?void 0:this._injector.get(vl),a=n.create(qo.NULL,[],t||n.selector,r),o=a.location.nativeElement,s=a.injector.get(zc,null),u=s&&a.injector.get(qc);return s&&u&&u.registerApplication(o,s),a.onDestroy(function(){i.detachView(a.hostView),sd(i.components,a),u&&u.unregisterApplication(o)}),this._loadComponent(a),a}},{key:"tick",value:function(){var e=this;if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");try{this._runningTick=!0;var t,n=v(this._views);try{for(n.s();!(t=n.n()).done;)t.value.detectChanges()}catch(i){n.e(i)}finally{n.f()}}catch(r){this._zone.runOutsideAngular(function(){return e._exceptionHandler.handleError(r)})}finally{this._runningTick=!1}}},{key:"attachView",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:"detachView",value:function(e){var t=e;sd(this._views,t),t.detachFromAppRef()}},{key:"_loadComponent",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Mc,[]).concat(this._bootstrapListeners).forEach(function(t){return t(e)})}},{key:"ngOnDestroy",value:function(){this._views.slice().forEach(function(e){return e.destroy()}),this._onMicrotaskEmptySubscription.unsubscribe()}},{key:"viewCount",get:function(){return this._views.length}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Fc),Bi(qo),Bi(jr),Bi(Pu),Bi(vc))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}();function sd(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var ud=function e(){s(this,e)},ld=function e(){s(this,e)},cd={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},dd=function(){var e=function(){function e(t,n){s(this,e),this._compiler=t,this._config=n||cd}return o(e,[{key:"load",value:function(e){return this.loadAndCompile(e)}},{key:"loadAndCompile",value:function(e){var t=this,i=_(e.split("#"),2),r=i[0],a=i[1];return void 0===a&&(a="default"),n(98255)(r).then(function(e){return e[a]}).then(function(e){return hd(e,r,a)}).then(function(e){return t._compiler.compileModuleAsync(e)})}},{key:"loadFactory",value:function(e){var t=_(e.split("#"),2),i=t[0],r=t[1],a="NgFactory";return void 0===r&&(r="default",a=""),n(98255)(this._config.factoryPathPrefix+i+this._config.factoryPathSuffix).then(function(e){return e[r+a]}).then(function(e){return hd(e,i,r)})}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Ac),Bi(ld,8))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}();function hd(e,t,n){if(!e)throw new Error("Cannot find '".concat(n,"' in '").concat(t,"'"));return e}var fd=td(null,"core",[{provide:kc,useValue:"unknown"},{provide:rd,deps:[qo]},{provide:qc,deps:[]},{provide:Sc,deps:[]}]),pd=[{provide:od,useClass:od,deps:[Fc,qo,jr,Pu,vc]},{provide:Tl,deps:[Fc],useFactory:function(e){var t=[];return e.onStable.subscribe(function(){for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:vc,useClass:vc,deps:[[new Ji,gc]]},{provide:Ac,useClass:Ac,deps:[]},yc,{provide:nl,useFactory:function(){return dl},deps:[]},{provide:rl,useFactory:function(){return hl},deps:[]},{provide:Cc,useFactory:function(e){return bu(e=e||"undefined"!=typeof $localize&&$localize.locale||yu),e},deps:[[new Ki(Cc),new Ji,new Zi]]},{provide:Lc,useValue:"USD"}],md=function(){var e=function e(t){s(this,e)};return e.\u0275fac=function(t){return new(t||e)(Bi(od))},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:pd}),e}(),gd=null;function vd(){return gd}var _d=function e(){s(this,e)},yd=new Mi("DocumentToken"),bd=function(){var e=function(){function e(){s(this,e)}return o(e,[{key:"historyGo",value:function(e){throw new Error("Not implemented")}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=Ie({factory:wd,token:e,providedIn:"platform"}),e}();function wd(){return Bi(Md)}var kd=new Mi("Location Initialized"),Md=function(){var e=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this))._doc=e,i._init(),i}return o(n,[{key:"_init",value:function(){this.location=window.location,this._history=window.history}},{key:"getBaseHrefFromDOM",value:function(){return vd().getBaseHref(this._doc)}},{key:"onPopState",value:function(e){var t=vd().getGlobalEventTarget(this._doc,"window");return t.addEventListener("popstate",e,!1),function(){return t.removeEventListener("popstate",e)}}},{key:"onHashChange",value:function(e){var t=vd().getGlobalEventTarget(this._doc,"window");return t.addEventListener("hashchange",e,!1),function(){return t.removeEventListener("hashchange",e)}}},{key:"href",get:function(){return this.location.href}},{key:"protocol",get:function(){return this.location.protocol}},{key:"hostname",get:function(){return this.location.hostname}},{key:"port",get:function(){return this.location.port}},{key:"pathname",get:function(){return this.location.pathname},set:function(e){this.location.pathname=e}},{key:"search",get:function(){return this.location.search}},{key:"hash",get:function(){return this.location.hash}},{key:"pushState",value:function(e,t,n){Sd()?this._history.pushState(e,t,n):this.location.hash=n}},{key:"replaceState",value:function(e,t,n){Sd()?this._history.replaceState(e,t,n):this.location.hash=n}},{key:"forward",value:function(){this._history.forward()}},{key:"back",value:function(){this._history.back()}},{key:"historyGo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this._history.go(e)}},{key:"getState",value:function(){return this._history.state}}]),n}(bd);return e.\u0275fac=function(t){return new(t||e)(Bi(yd))},e.\u0275prov=Ie({factory:Cd,token:e,providedIn:"platform"}),e}();function Sd(){return!!window.history.pushState}function Cd(){return new Md(Bi(yd))}function Ld(e,t){if(0==e.length)return t;if(0==t.length)return e;var n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,2==n?e+t.substring(1):1==n?e+t:e+"/"+t}function xd(e){var t=e.match(/#|\?|$/),n=t&&t.index||e.length;return e.slice(0,n-("/"===e[n-1]?1:0))+e.slice(n)}function Td(e){return e&&"?"!==e[0]?"?"+e:e}var Dd=function(){var e=function(){function e(){s(this,e)}return o(e,[{key:"historyGo",value:function(e){throw new Error("Not implemented")}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=Ie({factory:Od,token:e,providedIn:"root"}),e}();function Od(e){var t=Bi(yd).location;return new Yd(Bi(bd),t&&t.origin||"")}var Ed=new Mi("appBaseHref"),Yd=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i){var r;if(s(this,n),(r=t.call(this))._platformLocation=e,r._removeListenerFns=[],null==i&&(i=r._platformLocation.getBaseHrefFromDOM()),null==i)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");return r._baseHref=i,r}return o(n,[{key:"ngOnDestroy",value:function(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}},{key:"onPopState",value:function(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}},{key:"getBaseHref",value:function(){return this._baseHref}},{key:"prepareExternalUrl",value:function(e){return Ld(this._baseHref,e)}},{key:"path",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this._platformLocation.pathname+Td(this._platformLocation.search),n=this._platformLocation.hash;return n&&e?"".concat(t).concat(n):t}},{key:"pushState",value:function(e,t,n,i){var r=this.prepareExternalUrl(n+Td(i));this._platformLocation.pushState(e,t,r)}},{key:"replaceState",value:function(e,t,n,i){var r=this.prepareExternalUrl(n+Td(i));this._platformLocation.replaceState(e,t,r)}},{key:"forward",value:function(){this._platformLocation.forward()}},{key:"back",value:function(){this._platformLocation.back()}},{key:"historyGo",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;null===(t=(e=this._platformLocation).historyGo)||void 0===t||t.call(e,n)}}]),n}(Dd);return e.\u0275fac=function(t){return new(t||e)(Bi(bd),Bi(Ed,8))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),Pd=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this))._platformLocation=e,r._baseHref="",r._removeListenerFns=[],null!=i&&(r._baseHref=i),r}return o(n,[{key:"ngOnDestroy",value:function(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}},{key:"onPopState",value:function(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}},{key:"getBaseHref",value:function(){return this._baseHref}},{key:"path",value:function(){var e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e}},{key:"prepareExternalUrl",value:function(e){var t=Ld(this._baseHref,e);return t.length>0?"#"+t:t}},{key:"pushState",value:function(e,t,n,i){var r=this.prepareExternalUrl(n+Td(i));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.pushState(e,t,r)}},{key:"replaceState",value:function(e,t,n,i){var r=this.prepareExternalUrl(n+Td(i));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.replaceState(e,t,r)}},{key:"forward",value:function(){this._platformLocation.forward()}},{key:"back",value:function(){this._platformLocation.back()}},{key:"historyGo",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;null===(t=(e=this._platformLocation).historyGo)||void 0===t||t.call(e,n)}}]),n}(Dd);return e.\u0275fac=function(t){return new(t||e)(Bi(bd),Bi(Ed,8))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),Ad=function(){var e=function(){function e(t,n){var i=this;s(this,e),this._subject=new Zl,this._urlChangeListeners=[],this._platformStrategy=t;var r=this._platformStrategy.getBaseHref();this._platformLocation=n,this._baseHref=xd(Rd(r)),this._platformStrategy.onPopState(function(e){i._subject.emit({url:i.path(!0),pop:!0,state:e.state,type:e.type})})}return o(e,[{key:"path",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.normalize(this._platformStrategy.path(e))}},{key:"getState",value:function(){return this._platformLocation.getState()}},{key:"isCurrentPathEqualTo",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return this.path()==this.normalize(e+Td(t))}},{key:"normalize",value:function(t){return e.stripTrailingSlash(function(e,t){return e&&t.startsWith(e)?t.substring(e.length):t}(this._baseHref,Rd(t)))}},{key:"prepareExternalUrl",value:function(e){return e&&"/"!==e[0]&&(e="/"+e),this._platformStrategy.prepareExternalUrl(e)}},{key:"go",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._platformStrategy.pushState(n,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Td(t)),n)}},{key:"replaceState",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._platformStrategy.replaceState(n,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Td(t)),n)}},{key:"forward",value:function(){this._platformStrategy.forward()}},{key:"back",value:function(){this._platformStrategy.back()}},{key:"historyGo",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;null===(t=(e=this._platformStrategy).historyGo)||void 0===t||t.call(e,n)}},{key:"onUrlChange",value:function(e){var t=this;this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(function(e){t._notifyUrlChangeListeners(e.url,e.state)}))}},{key:"_notifyUrlChangeListeners",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;this._urlChangeListeners.forEach(function(n){return n(e,t)})}},{key:"subscribe",value:function(e,t,n){return this._subject.subscribe({next:e,error:t,complete:n})}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Dd),Bi(bd))},e.normalizeQueryParams=Td,e.joinWithSlash=Ld,e.stripTrailingSlash=xd,e.\u0275prov=Ie({factory:Id,token:e,providedIn:"root"}),e}();function Id(){return new Ad(Bi(Dd),Bi(bd))}function Rd(e){return e.replace(/\/index.html$/,"")}var Fd={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,2],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"\u09f3"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,"\u0440.",2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN\xa5","\xa5"],COP:[void 0,"$",2],CRC:[void 0,"\u20a1",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"K\u010d",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E\xa3"],ESP:[void 0,"\u20a7",0],EUR:["\u20ac"],FJD:[void 0,"$"],FKP:[void 0,"\xa3"],GBP:["\xa3"],GEL:[void 0,"\u20be"],GIP:[void 0,"\xa3"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",2],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",2],ILS:["\u20aa"],INR:["\u20b9"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["\xa5",void 0,0],KHR:[void 0,"\u17db"],KMF:[void 0,"CF",0],KPW:[void 0,"\u20a9",0],KRW:["\u20a9",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"\u20b8"],LAK:[void 0,"\u20ad",0],LBP:[void 0,"L\xa3",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"\u20ae",2],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",2],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"\u20a6"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:[void 0,"\u20b1"],PKR:[void 0,"Rs",2],PLN:[void 0,"z\u0142"],PYG:[void 0,"\u20b2",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"\u20bd"],RUR:[void 0,"\u0440."],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"\xa3"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"\xa3"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"\xa3",0],THB:[void 0,"\u0e3f"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"\u20ba"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,2],UAH:[void 0,"\u20b4"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,"Bs",2],VND:["\u20ab",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["CFA",void 0,0],XPF:["CFPF",void 0,0],XXX:["\xa4"],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]},Hd=function(e){return e[e.Decimal=0]="Decimal",e[e.Percent=1]="Percent",e[e.Currency=2]="Currency",e[e.Scientific=3]="Scientific",e}({}),jd=function(e){return e[e.Zero=0]="Zero",e[e.One=1]="One",e[e.Two=2]="Two",e[e.Few=3]="Few",e[e.Many=4]="Many",e[e.Other=5]="Other",e}({}),Nd=function(e){return e[e.Decimal=0]="Decimal",e[e.Group=1]="Group",e[e.List=2]="List",e[e.PercentSign=3]="PercentSign",e[e.PlusSign=4]="PlusSign",e[e.MinusSign=5]="MinusSign",e[e.Exponential=6]="Exponential",e[e.SuperscriptingExponent=7]="SuperscriptingExponent",e[e.PerMille=8]="PerMille",e[e[1/0]=9]="Infinity",e[e.NaN=10]="NaN",e[e.TimeSeparator=11]="TimeSeparator",e[e.CurrencyDecimal=12]="CurrencyDecimal",e[e.CurrencyGroup=13]="CurrencyGroup",e}({});function Bd(e,t){var n=gu(e),i=n[_u.NumberSymbols][t];if(void 0===i){if(t===Nd.CurrencyDecimal)return n[_u.NumberSymbols][Nd.Decimal];if(t===Nd.CurrencyGroup)return n[_u.NumberSymbols][Nd.Group]}return i}function Wd(e,t){return gu(e)[_u.NumberFormats][t]}function Vd(e){return gu(e)[_u.Currencies]}function Ud(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en",i=Vd(n)[e]||Fd[e]||[],r=i[1];return"narrow"===t&&"string"==typeof r?r:i[0]||e}var zd=/^(\d+)?\.((\d+)(-(\d+))?)?$/,qd=".",Gd="0",Kd="#";function Jd(e,t,n,i,r,a){var o=arguments.length>6&&void 0!==arguments[6]&&arguments[6],s="",u=!1;if(isFinite(e)){var l=Qd(e);o&&(l=Xd(l));var c=t.minInt,d=t.minFrac,h=t.maxFrac;if(a){var f=a.match(zd);if(null===f)throw new Error("".concat(a," is not a valid digit info"));var p=f[1],m=f[3],g=f[5];null!=p&&(c=th(p)),null!=m&&(d=th(m)),null!=g?h=th(g):null!=m&&d>h&&(h=d)}eh(l,d,h);var v=l.digits,_=l.integerLen,y=l.exponent,b=[];for(u=v.every(function(e){return!e});_0?b=v.splice(_,v.length):(b=v,v=[0]);var w=[];for(v.length>=t.lgSize&&w.unshift(v.splice(-t.lgSize,v.length).join(""));v.length>t.gSize;)w.unshift(v.splice(-t.gSize,v.length).join(""));v.length&&w.unshift(v.join("")),s=w.join(Bd(n,i)),b.length&&(s+=Bd(n,r)+b.join("")),y&&(s+=Bd(n,Nd.Exponential)+"+"+y)}else s=Bd(n,Nd.Infinity);return e<0&&!u?t.negPre+s+t.negSuf:t.posPre+s+t.posSuf}function Zd(e,t,n,i,r){var a=$d(Wd(t,Hd.Currency),Bd(t,Nd.MinusSign));return a.minFrac=function(e){var t,n=Fd[e];return n&&(t=n[2]),"number"==typeof t?t:2}(i),a.maxFrac=a.minFrac,Jd(e,a,t,Nd.CurrencyGroup,Nd.CurrencyDecimal,r).replace("\xa4",n).replace("\xa4","").trim()}function $d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"-",n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=e.split(";"),r=i[0],a=i[1],o=-1!==r.indexOf(qd)?r.split(qd):[r.substring(0,r.lastIndexOf(Gd)+1),r.substring(r.lastIndexOf(Gd)+1)],s=o[0],u=o[1]||"";n.posPre=s.substr(0,s.indexOf(Kd));for(var l=0;l-1&&(o=o.replace(qd,"")),(i=o.search(/e/i))>0?(n<0&&(n=i),n+=+o.slice(i+1),o=o.substring(0,i)):n<0&&(n=o.length),i=0;o.charAt(i)===Gd;i++);if(i===(a=o.length))t=[0],n=1;else{for(a--;o.charAt(a)===Gd;)a--;for(n-=i,t=[],r=0;i<=a;i++,r++)t[r]=Number(o.charAt(i))}return n>22&&(t=t.splice(0,21),s=n-1,n=1),{digits:t,exponent:s,integerLen:n}}function eh(e,t,n){if(t>n)throw new Error("The minimum number of digits after fraction (".concat(t,") is higher than the maximum (").concat(n,")."));var i=e.digits,r=i.length-e.integerLen,a=Math.min(Math.max(t,r),n),o=a+e.integerLen,s=i[o];if(o>0){i.splice(Math.max(e.integerLen,o));for(var u=o;u=5)if(o-1<0){for(var c=0;c>o;c--)i.unshift(0),e.integerLen++;i.unshift(1),e.integerLen++}else i[o-1]++;for(;r=h?i.pop():d=!1),t>=10?1:0},0);f&&(i.unshift(f),e.integerLen++)}function th(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t}var nh=function e(){s(this,e)},ih=function(){var e=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this)).locale=e,i}return o(n,[{key:"getPluralCategory",value:function(e,t){switch(function(e){return gu(e)[_u.PluralCase]}(t||this.locale)(e)){case jd.Zero:return"zero";case jd.One:return"one";case jd.Two:return"two";case jd.Few:return"few";case jd.Many:return"many";default:return"other"}}}]),n}(nh);return e.\u0275fac=function(t){return new(t||e)(Bi(Cc))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}();function rh(e,t){t=encodeURIComponent(t);var n,i=v(e.split(";"));try{for(i.s();!(n=i.n()).done;){var r=n.value,a=r.indexOf("="),o=_(-1==a?[r,""]:[r.slice(0,a),r.slice(a+1)],2),s=o[1];if(o[0].trim()===t)return decodeURIComponent(s)}}catch(u){i.e(u)}finally{i.f()}return null}var ah=function(){var e=function(){function e(t,n,i,r){s(this,e),this._iterableDiffers=t,this._keyValueDiffers=n,this._ngEl=i,this._renderer=r,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}return o(e,[{key:"klass",set:function(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}},{key:"ngClass",set:function(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(ns(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}},{key:"ngDoCheck",value:function(){if(this._iterableDiffer){var e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){var t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}},{key:"_applyKeyValueChanges",value:function(e){var t=this;e.forEachAddedItem(function(e){return t._toggleClass(e.key,e.currentValue)}),e.forEachChangedItem(function(e){return t._toggleClass(e.key,e.currentValue)}),e.forEachRemovedItem(function(e){e.previousValue&&t._toggleClass(e.key,!1)})}},{key:"_applyIterableChanges",value:function(e){var t=this;e.forEachAddedItem(function(e){if("string"!=typeof e.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got ".concat(Ce(e.item)));t._toggleClass(e.item,!0)}),e.forEachRemovedItem(function(e){return t._toggleClass(e.item,!1)})}},{key:"_applyClasses",value:function(e){var t=this;e&&(Array.isArray(e)||e instanceof Set?e.forEach(function(e){return t._toggleClass(e,!0)}):Object.keys(e).forEach(function(n){return t._toggleClass(n,!!e[n])}))}},{key:"_removeClasses",value:function(e){var t=this;e&&(Array.isArray(e)||e instanceof Set?e.forEach(function(e){return t._toggleClass(e,!1)}):Object.keys(e).forEach(function(e){return t._toggleClass(e,!1)}))}},{key:"_toggleClass",value:function(e,t){var n=this;(e=e.trim())&&e.split(/\s+/g).forEach(function(e){t?n._renderer.addClass(n._ngEl.nativeElement,e):n._renderer.removeClass(n._ngEl.nativeElement,e)})}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(nl),ps(rl),ps(Fu),ps(Nu))},e.\u0275dir=bt({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),e}(),oh=function(){function e(t,n,i,r){s(this,e),this.$implicit=t,this.ngForOf=n,this.index=i,this.count=r}return o(e,[{key:"first",get:function(){return 0===this.index}},{key:"last",get:function(){return this.index===this.count-1}},{key:"even",get:function(){return this.index%2==0}},{key:"odd",get:function(){return!this.even}}]),e}(),sh=function(){var e=function(){function e(t,n,i){s(this,e),this._viewContainer=t,this._template=n,this._differs=i,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}return o(e,[{key:"ngForOf",set:function(e){this._ngForOf=e,this._ngForOfDirty=!0}},{key:"ngForTrackBy",get:function(){return this._trackByFn},set:function(e){this._trackByFn=e}},{key:"ngForTemplate",set:function(e){e&&(this._template=e)}},{key:"ngDoCheck",value:function(){if(this._ngForOfDirty){this._ngForOfDirty=!1;var e=this._ngForOf;if(!this._differ&&e)try{this._differ=this._differs.find(e).create(this.ngForTrackBy)}catch(i){throw new Error("Cannot find a differ supporting object '".concat(e,"' of type '").concat((t=e).name||typeof t,"'. NgFor only supports binding to Iterables such as Arrays."))}}var t;if(this._differ){var n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}},{key:"_applyChanges",value:function(e){var t=this,n=[];e.forEachOperation(function(e,i,r){if(null==e.previousIndex){var a=t._viewContainer.createEmbeddedView(t._template,new oh(null,t._ngForOf,-1,-1),null===r?void 0:r),o=new uh(e,a);n.push(o)}else if(null==r)t._viewContainer.remove(null===i?void 0:i);else if(null!==i){var s=t._viewContainer.get(i);t._viewContainer.move(s,r);var u=new uh(e,s);n.push(u)}});for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:"USD";s(this,e),this._locale=t,this._defaultCurrencyCode=n}return o(e,[{key:"transform",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._defaultCurrencyCode,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"symbol",r=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;if(!Lh(t))return null;a=a||this._locale,"boolean"==typeof i&&(i=i?"symbol":"code");var o=n||this._defaultCurrencyCode;"code"!==i&&(o="symbol"===i||"symbol-narrow"===i?Ud(o,"symbol"===i?"wide":"narrow",a):i);try{var s=xh(t);return Zd(s,a,o,n,r)}catch(u){throw _h(e,u.message)}}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Cc,16),ps(Lc,16))},e.\u0275pipe=wt({name:"currency",type:e,pure:!0}),e}();function Lh(e){return!(null==e||""===e||e!=e)}function xh(e){if("string"==typeof e&&!isNaN(Number(e)-parseFloat(e)))return Number(e);if("number"!=typeof e)throw new Error("".concat(e," is not a number"));return e}var Th=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[{provide:nh,useClass:ih}]}),e}(),Dh=function(){var e=function e(){s(this,e)};return e.\u0275prov=Ie({token:e,providedIn:"root",factory:function(){return new Oh(Bi(yd),window)}}),e}(),Oh=function(){function e(t,n){s(this,e),this.document=t,this.window=n,this.offset=function(){return[0,0]}}return o(e,[{key:"setOffset",value:function(e){this.offset=Array.isArray(e)?function(){return e}:e}},{key:"getScrollPosition",value:function(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}},{key:"scrollToPosition",value:function(e){this.supportsScrolling()&&this.window.scrollTo(e[0],e[1])}},{key:"scrollToAnchor",value:function(e){if(this.supportsScrolling()){var t=function(e,t){var n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if("function"==typeof e.createTreeWalker&&e.body&&(e.body.createShadowRoot||e.body.attachShadow))for(var i=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT),r=i.currentNode;r;){var a=r.shadowRoot;if(a){var o=a.getElementById(t)||a.querySelector('[name="'.concat(t,'"]'));if(o)return o}r=i.nextNode()}return null}(this.document,e);t&&(this.scrollToElement(t),this.attemptFocus(t))}}},{key:"setHistoryScrollRestoration",value:function(e){if(this.supportScrollRestoration()){var t=this.window.history;t&&t.scrollRestoration&&(t.scrollRestoration=e)}}},{key:"scrollToElement",value:function(e){var t=e.getBoundingClientRect(),n=t.left+this.window.pageXOffset,i=t.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(n-r[0],i-r[1])}},{key:"attemptFocus",value:function(e){return e.focus(),this.document.activeElement===e}},{key:"supportScrollRestoration",value:function(){try{if(!this.supportsScrolling())return!1;var e=Eh(this.window.history)||Eh(Object.getPrototypeOf(this.window.history));return!(!e||!e.writable&&!e.set)}catch(t){return!1}}},{key:"supportsScrolling",value:function(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch(e){return!1}}}]),e}();function Eh(e){return Object.getOwnPropertyDescriptor(e,"scrollRestoration")}var Yh,Ph=function e(){s(this,e)},Ah=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"onAndCancel",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:"dispatchEvent",value:function(e,t){e.dispatchEvent(t)}},{key:"remove",value:function(e){e.parentNode&&e.parentNode.removeChild(e)}},{key:"createElement",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:"createHtmlDocument",value:function(){return document.implementation.createHTMLDocument("fakeTitle")}},{key:"getDefaultDocument",value:function(){return document}},{key:"isElementNode",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:"isShadowRoot",value:function(e){return e instanceof DocumentFragment}},{key:"getGlobalEventTarget",value:function(e,t){return"window"===t?window:"document"===t?e:"body"===t?e.body:null}},{key:"getBaseHref",value:function(e){var t=(Ih=Ih||document.querySelector("base"))?Ih.getAttribute("href"):null;return null==t?null:function(e){(Yh=Yh||document.createElement("a")).setAttribute("href",e);var t=Yh.pathname;return"/"===t.charAt(0)?t:"/".concat(t)}(t)}},{key:"resetBaseElement",value:function(){Ih=null}},{key:"getUserAgent",value:function(){return window.navigator.userAgent}},{key:"getCookie",value:function(e){return rh(document.cookie,e)}}],[{key:"makeCurrent",value:function(){var e;e=new n,gd||(gd=e)}}]),n}(function(e){l(n,e);var t=p(n);function n(){var e;return s(this,n),(e=t.apply(this,arguments)).supportsDOMEvents=!0,e}return n}(_d)),Ih=null,Rh=new Mi("TRANSITION_ID"),Fh=[{provide:gc,useFactory:function(e,t,n){return function(){n.get(vc).donePromise.then(function(){for(var n=vd(),i=t.querySelectorAll('style[ng-transition="'.concat(e,'"]')),r=0;r1&&void 0!==arguments[1])||arguments[1],i=e.findTestabilityInTree(t,n);if(null==i)throw new Error("Could not find testability for element.");return i},nt.getAllAngularTestabilities=function(){return e.getAllTestabilities()},nt.getAllAngularRootElements=function(){return e.getAllRootElements()},nt.frameworkStabilizers||(nt.frameworkStabilizers=[]),nt.frameworkStabilizers.push(function(e){var t=nt.getAllAngularTestabilities(),n=t.length,i=!1,r=function(t){i=i||t,0==--n&&e(i)};t.forEach(function(e){e.whenStable(r)})})}},{key:"findTestabilityInTree",value:function(e,t,n){if(null==t)return null;var i=e.getTestability(t);return null!=i?i:n?vd().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:"init",value:function(){var t;t=new e,Gc=t}}]),e}(),jh=function(){var e=function(){function e(){s(this,e)}return o(e,[{key:"build",value:function(){return new XMLHttpRequest}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),Nh=new Mi("EventManagerPlugins"),Bh=function(){var e=function(){function e(t,n){var i=this;s(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach(function(e){return e.manager=i}),this._plugins=t.slice().reverse()}return o(e,[{key:"addEventListener",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:"addGlobalEventListener",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:"getZone",value:function(){return this._zone}},{key:"_findPluginFor",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,i=0;i-1&&(t.splice(n,1),a+=e+".")}),a+=r,0!=t.length||0===r.length)return null;var o={};return o.domEventName=i,o.fullKey=a,o}},{key:"getEventFullKey",value:function(e){var t="",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return"Unidentified";t.startsWith("U+")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&sf.hasOwnProperty(t)&&(t=sf[t]))}return of[t]||t}(e);return" "===(n=n.toLowerCase())?n="space":"."===n&&(n="dot"),af.forEach(function(i){i!=n&&(0,uf[i])(e)&&(t+=i+".")}),t+=n}},{key:"eventCallback",value:function(e,t,i){return function(r){n.getEventFullKey(r)===e&&i.runGuarded(function(){return t(r)})}}},{key:"_normalizeKey",value:function(e){switch(e){case"esc":return"escape";default:return e}}}]),n}(Wh);return e.\u0275fac=function(t){return new(t||e)(Bi(yd))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),cf=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=Ie({factory:function(){return Bi(hf)},token:e,providedIn:"root"}),e}();function df(e){return new hf(e.get(yd))}var hf=function(){var e=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this))._doc=e,i}return o(n,[{key:"sanitize",value:function(e,t){if(null==t)return null;switch(e){case Er.NONE:return t;case Er.HTML:return or(t,"HTML")?ar(t):Dr(this._doc,String(t)).toString();case Er.STYLE:return or(t,"Style")?ar(t):t;case Er.SCRIPT:if(or(t,"Script"))return ar(t);throw new Error("unsafe value used in a script context");case Er.URL:return sr(t),or(t,"URL")?ar(t):hr(String(t));case Er.RESOURCE_URL:if(or(t,"ResourceURL"))return ar(t);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext ".concat(e," (see https://g.co/ng/security#xss)"))}}},{key:"bypassSecurityTrustHtml",value:function(e){return new er(e)}},{key:"bypassSecurityTrustStyle",value:function(e){return new tr(e)}},{key:"bypassSecurityTrustScript",value:function(e){return new nr(e)}},{key:"bypassSecurityTrustUrl",value:function(e){return new ir(e)}},{key:"bypassSecurityTrustResourceUrl",value:function(e){return new rr(e)}}]),n}(cf);return e.\u0275fac=function(t){return new(t||e)(Bi(yd))},e.\u0275prov=Ie({factory:function(){return df(Bi(Oo))},token:e,providedIn:"root"}),e}(),ff=td(fd,"browser",[{provide:kc,useValue:"browser"},{provide:wc,useValue:function(){Ah.makeCurrent(),Hh.init()},multi:!0},{provide:yd,useFactory:function(){return function(e){Nt=e}(document),document},deps:[]}]),pf=[[],{provide:Yo,useValue:"root"},{provide:jr,useFactory:function(){return new jr},deps:[]},{provide:Nh,useClass:rf,multi:!0,deps:[yd,Fc,kc]},{provide:Nh,useClass:lf,multi:!0,deps:[yd]},[],{provide:Qh,useClass:Qh,deps:[Bh,Uh,_c]},{provide:ju,useExisting:Qh},{provide:Vh,useExisting:Uh},{provide:Uh,useClass:Uh,deps:[yd]},{provide:zc,useClass:zc,deps:[Fc]},{provide:Bh,useClass:Bh,deps:[Nh,Fc]},{provide:Ph,useClass:jh,deps:[]},[]],mf=function(){var e=function(){function e(t){if(s(this,e),t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}return o(e,null,[{key:"withServerTransition",value:function(t){return{ngModule:e,providers:[{provide:_c,useValue:t.appId},{provide:Rh,useExisting:_c},Fh]}}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(e,12))},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:pf,imports:[Th,md]}),e}();"undefined"!=typeof window&&window;var gf=function(e,t){return(gf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function vf(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}gf(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var _f=function(){return(_f=Object.assign||function(e){for(var t,n=1,i=arguments.length;ne?{max:{max:e,actual:t.value}}:null}}function If(e){return xf(e.value)?{required:!0}:null}function Rf(e){return function(t){return Tf(t.value)&&t.value.length>e?{maxlength:{requiredLength:e,actualLength:t.value.length}}:null}}function Ff(e){return null}function Hf(e){return null!=e}function jf(e){var t=Ss(e)?re(e):e;return Ls(t),t}function Nf(e){var t={};return e.forEach(function(e){t=null!=e?Object.assign(Object.assign({},t),e):t}),0===Object.keys(t).length?null:t}function Bf(e,t){return t.map(function(t){return t(e)})}function Wf(e){return e.map(function(e){return function(e){return!e.validate}(e)?e:function(t){return e.validate(t)}})}function Vf(e){if(!e)return null;var t=e.filter(Hf);return 0==t.length?null:function(e){return Nf(Bf(e,t))}}function Uf(e){return null!=e?Vf(Wf(e)):null}function zf(e){if(!e)return null;var t=e.filter(Hf);return 0==t.length?null:function(e){return yf(Bf(e,t).map(jf)).pipe(K(Nf))}}function qf(e){return null!=e?zf(Wf(e)):null}function Gf(e,t){return null===e?[t]:Array.isArray(e)?[].concat(b(e),[t]):[e,t]}function Kf(e){return e._rawValidators}function Jf(e){return e._rawAsyncValidators}function Zf(e){return e?Array.isArray(e)?e:[e]:[]}function $f(e,t){return Array.isArray(e)?e.includes(t):e===t}function Xf(e,t){var n=Zf(t);return Zf(e).forEach(function(e){$f(n,e)||n.push(e)}),n}function Qf(e,t){return Zf(t).filter(function(t){return!$f(e,t)})}var ep=function(){var e=function(){function e(){s(this,e),this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}return o(e,[{key:"value",get:function(){return this.control?this.control.value:null}},{key:"valid",get:function(){return this.control?this.control.valid:null}},{key:"invalid",get:function(){return this.control?this.control.invalid:null}},{key:"pending",get:function(){return this.control?this.control.pending:null}},{key:"disabled",get:function(){return this.control?this.control.disabled:null}},{key:"enabled",get:function(){return this.control?this.control.enabled:null}},{key:"errors",get:function(){return this.control?this.control.errors:null}},{key:"pristine",get:function(){return this.control?this.control.pristine:null}},{key:"dirty",get:function(){return this.control?this.control.dirty:null}},{key:"touched",get:function(){return this.control?this.control.touched:null}},{key:"status",get:function(){return this.control?this.control.status:null}},{key:"untouched",get:function(){return this.control?this.control.untouched:null}},{key:"statusChanges",get:function(){return this.control?this.control.statusChanges:null}},{key:"valueChanges",get:function(){return this.control?this.control.valueChanges:null}},{key:"path",get:function(){return null}},{key:"_setValidators",value:function(e){this._rawValidators=e||[],this._composedValidatorFn=Uf(this._rawValidators)}},{key:"_setAsyncValidators",value:function(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=qf(this._rawAsyncValidators)}},{key:"validator",get:function(){return this._composedValidatorFn||null}},{key:"asyncValidator",get:function(){return this._composedAsyncValidatorFn||null}},{key:"_registerOnDestroy",value:function(e){this._onDestroyCallbacks.push(e)}},{key:"_invokeOnDestroyCallbacks",value:function(){this._onDestroyCallbacks.forEach(function(e){return e()}),this._onDestroyCallbacks=[]}},{key:"reset",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;this.control&&this.control.reset(e)}},{key:"hasError",value:function(e,t){return!!this.control&&this.control.hasError(e,t)}},{key:"getError",value:function(e,t){return this.control?this.control.getError(e,t):null}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275dir=bt({type:e}),e}(),tp=function(){var e=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"formDirective",get:function(){return null}},{key:"path",get:function(){return null}}]),n}(ep);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275dir=bt({type:e,features:[Ko]}),e}(),np=function(e){l(n,e);var t=p(n);function n(){var e;return s(this,n),(e=t.apply(this,arguments))._parent=null,e.name=null,e.valueAccessor=null,e}return n}(ep),ip=function(){function e(t){s(this,e),this._cd=t}return o(e,[{key:"is",value:function(e){var t,n,i;return"submitted"===e?!!(null===(t=this._cd)||void 0===t?void 0:t.submitted):!!(null===(i=null===(n=this._cd)||void 0===n?void 0:n.control)||void 0===i?void 0:i[e])}}]),e}(),rp=function(){var e=function(e){l(n,e);var t=p(n);function n(e){return s(this,n),t.call(this,e)}return n}(ip);return e.\u0275fac=function(t){return new(t||e)(ps(np,2))},e.\u0275dir=bt({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,t){2&e&&qs("ng-untouched",t.is("untouched"))("ng-touched",t.is("touched"))("ng-pristine",t.is("pristine"))("ng-dirty",t.is("dirty"))("ng-valid",t.is("valid"))("ng-invalid",t.is("invalid"))("ng-pending",t.is("pending"))},features:[Ko]}),e}(),ap=function(){var e=function(e){l(n,e);var t=p(n);function n(e){return s(this,n),t.call(this,e)}return n}(ip);return e.\u0275fac=function(t){return new(t||e)(ps(tp,10))},e.\u0275dir=bt({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(e,t){2&e&&qs("ng-untouched",t.is("untouched"))("ng-touched",t.is("touched"))("ng-pristine",t.is("pristine"))("ng-dirty",t.is("dirty"))("ng-valid",t.is("valid"))("ng-invalid",t.is("invalid"))("ng-pending",t.is("pending"))("ng-submitted",t.is("submitted"))},features:[Ko]}),e}();function op(e,t){return[].concat(b(t.path),[e])}function sp(e,t){cp(e,t),t.valueAccessor.writeValue(e.value),function(e,t){t.valueAccessor.registerOnChange(function(n){e._pendingValue=n,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&hp(e,t)})}(e,t),function(e,t){var n=function(e,n){t.valueAccessor.writeValue(e),n&&t.viewToModelUpdate(e)};e.registerOnChange(n),t._registerOnDestroy(function(){e._unregisterOnChange(n)})}(e,t),function(e,t){t.valueAccessor.registerOnTouched(function(){e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&hp(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),function(e,t){if(t.valueAccessor.setDisabledState){var n=function(e){t.valueAccessor.setDisabledState(e)};e.registerOnDisabledChange(n),t._registerOnDestroy(function(){e._unregisterOnDisabledChange(n)})}}(e,t)}function up(e,t){var n=function(){};t.valueAccessor&&(t.valueAccessor.registerOnChange(n),t.valueAccessor.registerOnTouched(n)),dp(e,t),e&&(t._invokeOnDestroyCallbacks(),e._registerOnCollectionChange(function(){}))}function lp(e,t){e.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function cp(e,t){var n=Kf(e);null!==t.validator?e.setValidators(Gf(n,t.validator)):"function"==typeof n&&e.setValidators([n]);var i=Jf(e);null!==t.asyncValidator?e.setAsyncValidators(Gf(i,t.asyncValidator)):"function"==typeof i&&e.setAsyncValidators([i]);var r=function(){return e.updateValueAndValidity()};lp(t._rawValidators,r),lp(t._rawAsyncValidators,r)}function dp(e,t){var n=!1;if(null!==e){if(null!==t.validator){var i=Kf(e);if(Array.isArray(i)&&i.length>0){var r=i.filter(function(e){return e!==t.validator});r.length!==i.length&&(n=!0,e.setValidators(r))}}if(null!==t.asyncValidator){var a=Jf(e);if(Array.isArray(a)&&a.length>0){var o=a.filter(function(e){return e!==t.asyncValidator});o.length!==a.length&&(n=!0,e.setAsyncValidators(o))}}}var s=function(){};return lp(t._rawValidators,s),lp(t._rawAsyncValidators,s),n}function hp(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function fp(e,t){cp(e,t)}function pp(e,t){e._syncPendingControls(),t.forEach(function(e){var t=e.control;"submit"===t.updateOn&&t._pendingChange&&(e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1)})}function mp(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var gp="VALID",vp="INVALID",_p="PENDING",yp="DISABLED";function bp(e){return(Sp(e)?e.validators:e)||null}function wp(e){return Array.isArray(e)?Uf(e):e||null}function kp(e,t){return(Sp(t)?t.asyncValidators:e)||null}function Mp(e){return Array.isArray(e)?qf(e):e||null}function Sp(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}var Cp=function(){function e(t,n){s(this,e),this._hasOwnPendingAsyncValidator=!1,this._onCollectionChange=function(){},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=t,this._rawAsyncValidators=n,this._composedValidatorFn=wp(this._rawValidators),this._composedAsyncValidatorFn=Mp(this._rawAsyncValidators)}return o(e,[{key:"validator",get:function(){return this._composedValidatorFn},set:function(e){this._rawValidators=this._composedValidatorFn=e}},{key:"asyncValidator",get:function(){return this._composedAsyncValidatorFn},set:function(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}},{key:"parent",get:function(){return this._parent}},{key:"valid",get:function(){return this.status===gp}},{key:"invalid",get:function(){return this.status===vp}},{key:"pending",get:function(){return this.status==_p}},{key:"disabled",get:function(){return this.status===yp}},{key:"enabled",get:function(){return this.status!==yp}},{key:"dirty",get:function(){return!this.pristine}},{key:"untouched",get:function(){return!this.touched}},{key:"updateOn",get:function(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}},{key:"setValidators",value:function(e){this._rawValidators=e,this._composedValidatorFn=wp(e)}},{key:"setAsyncValidators",value:function(e){this._rawAsyncValidators=e,this._composedAsyncValidatorFn=Mp(e)}},{key:"addValidators",value:function(e){this.setValidators(Xf(e,this._rawValidators))}},{key:"addAsyncValidators",value:function(e){this.setAsyncValidators(Xf(e,this._rawAsyncValidators))}},{key:"removeValidators",value:function(e){this.setValidators(Qf(e,this._rawValidators))}},{key:"removeAsyncValidators",value:function(e){this.setAsyncValidators(Qf(e,this._rawAsyncValidators))}},{key:"hasValidator",value:function(e){return $f(this._rawValidators,e)}},{key:"hasAsyncValidator",value:function(e){return $f(this._rawAsyncValidators,e)}},{key:"clearValidators",value:function(){this.validator=null}},{key:"clearAsyncValidators",value:function(){this.asyncValidator=null}},{key:"markAsTouched",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)}},{key:"markAllAsTouched",value:function(){this.markAsTouched({onlySelf:!0}),this._forEachChild(function(e){return e.markAllAsTouched()})}},{key:"markAsUntouched",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.touched=!1,this._pendingTouched=!1,this._forEachChild(function(e){e.markAsUntouched({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}},{key:"markAsDirty",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)}},{key:"markAsPristine",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.pristine=!0,this._pendingDirty=!1,this._forEachChild(function(e){e.markAsPristine({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}},{key:"markAsPending",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.status=_p,!1!==e.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!e.onlySelf&&this._parent.markAsPending(e)}},{key:"disable",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._parentMarkedDirty(e.onlySelf);this.status=yp,this.errors=null,this._forEachChild(function(t){t.disable(Object.assign(Object.assign({},e),{onlySelf:!0}))}),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach(function(e){return e(!0)})}},{key:"enable",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._parentMarkedDirty(e.onlySelf);this.status=gp,this._forEachChild(function(t){t.enable(Object.assign(Object.assign({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach(function(e){return e(!1)})}},{key:"_updateAncestors",value:function(e){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}},{key:"setParent",value:function(e){this._parent=e}},{key:"updateValueAndValidity",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),this.status!==gp&&this.status!==_p||this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)}},{key:"_updateTreeValidity",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{emitEvent:!0};this._forEachChild(function(t){return t._updateTreeValidity(e)}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}},{key:"_setInitialStatus",value:function(){this.status=this._allControlsDisabled()?yp:gp}},{key:"_runValidator",value:function(){return this.validator?this.validator(this):null}},{key:"_runAsyncValidator",value:function(e){var t=this;if(this.asyncValidator){this.status=_p,this._hasOwnPendingAsyncValidator=!0;var n=jf(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(function(n){t._hasOwnPendingAsyncValidator=!1,t.setErrors(n,{emitEvent:e})})}}},{key:"_cancelExistingSubscription",value:function(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}},{key:"setErrors",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.errors=e,this._updateControlsErrors(!1!==t.emitEvent)}},{key:"get",value:function(e){return function(e,t,n){if(null==t)return null;if(Array.isArray(t)||(t=t.split(".")),Array.isArray(t)&&0===t.length)return null;var i=e;return t.forEach(function(e){i=i instanceof xp?i.controls.hasOwnProperty(e)?i.controls[e]:null:i instanceof Tp&&i.at(e)||null}),i}(this,e)}},{key:"getError",value:function(e,t){var n=t?this.get(t):this;return n&&n.errors?n.errors[e]:null}},{key:"hasError",value:function(e,t){return!!this.getError(e,t)}},{key:"root",get:function(){for(var e=this;e._parent;)e=e._parent;return e}},{key:"_updateControlsErrors",value:function(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)}},{key:"_initObservables",value:function(){this.valueChanges=new Zl,this.statusChanges=new Zl}},{key:"_calculateStatus",value:function(){return this._allControlsDisabled()?yp:this.errors?vp:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(_p)?_p:this._anyControlsHaveStatus(vp)?vp:gp}},{key:"_anyControlsHaveStatus",value:function(e){return this._anyControls(function(t){return t.status===e})}},{key:"_anyControlsDirty",value:function(){return this._anyControls(function(e){return e.dirty})}},{key:"_anyControlsTouched",value:function(){return this._anyControls(function(e){return e.touched})}},{key:"_updatePristine",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}},{key:"_updateTouched",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}},{key:"_isBoxedValue",value:function(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}},{key:"_registerOnCollectionChange",value:function(e){this._onCollectionChange=e}},{key:"_setUpdateStrategy",value:function(e){Sp(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)}},{key:"_parentMarkedDirty",value:function(e){return!e&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}]),e}(),Lp=function(e){l(n,e);var t=p(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1?arguments[1]:void 0,a=arguments.length>2?arguments[2]:void 0;return s(this,n),(e=t.call(this,bp(r),kp(a,r)))._onChange=[],e._applyFormState(i),e._setUpdateStrategy(r),e._initObservables(),e.updateValueAndValidity({onlySelf:!0,emitEvent:!!e.asyncValidator}),e}return o(n,[{key:"setValue",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.value=this._pendingValue=e,this._onChange.length&&!1!==n.emitModelToViewChange&&this._onChange.forEach(function(e){return e(t.value,!1!==n.emitViewToModelChange)}),this.updateValueAndValidity(n)}},{key:"patchValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.setValue(e,t)}},{key:"reset",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}},{key:"_updateValue",value:function(){}},{key:"_anyControls",value:function(e){return!1}},{key:"_allControlsDisabled",value:function(){return this.disabled}},{key:"registerOnChange",value:function(e){this._onChange.push(e)}},{key:"_unregisterOnChange",value:function(e){mp(this._onChange,e)}},{key:"registerOnDisabledChange",value:function(e){this._onDisabledChange.push(e)}},{key:"_unregisterOnDisabledChange",value:function(e){mp(this._onDisabledChange,e)}},{key:"_forEachChild",value:function(e){}},{key:"_syncPendingControls",value:function(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}},{key:"_applyFormState",value:function(e){this._isBoxedValue(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}}]),n}(Cp),xp=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,bp(i),kp(r,i))).controls=e,a._initObservables(),a._setUpdateStrategy(i),a._setUpControls(),a.updateValueAndValidity({onlySelf:!0,emitEvent:!!a.asyncValidator}),a}return o(n,[{key:"registerControl",value:function(e,t){return this.controls[e]?this.controls[e]:(this.controls[e]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}},{key:"addControl",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.registerControl(e,t),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}},{key:"removeControl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),delete this.controls[e],this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}},{key:"setControl",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),delete this.controls[e],t&&this.registerControl(e,t),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}},{key:"contains",value:function(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}},{key:"setValue",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._checkAllValuesPresent(e),Object.keys(e).forEach(function(i){t._throwIfControlMissing(i),t.controls[i].setValue(e[i],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n)}},{key:"patchValue",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};null!=e&&(Object.keys(e).forEach(function(i){t.controls[i]&&t.controls[i].patchValue(e[i],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n))}},{key:"reset",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._forEachChild(function(n,i){n.reset(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}},{key:"getRawValue",value:function(){return this._reduceChildren({},function(e,t,n){return e[n]=t instanceof Lp?t.value:t.getRawValue(),e})}},{key:"_syncPendingControls",value:function(){var e=this._reduceChildren(!1,function(e,t){return!!t._syncPendingControls()||e});return e&&this.updateValueAndValidity({onlySelf:!0}),e}},{key:"_throwIfControlMissing",value:function(e){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[e])throw new Error("Cannot find form control with name: ".concat(e,"."))}},{key:"_forEachChild",value:function(e){var t=this;Object.keys(this.controls).forEach(function(n){var i=t.controls[n];i&&e(i,n)})}},{key:"_setUpControls",value:function(){var e=this;this._forEachChild(function(t){t.setParent(e),t._registerOnCollectionChange(e._onCollectionChange)})}},{key:"_updateValue",value:function(){this.value=this._reduceValue()}},{key:"_anyControls",value:function(e){for(var t=0,n=Object.keys(this.controls);t0||this.disabled}},{key:"_checkAllValuesPresent",value:function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control with name: '".concat(n,"'."))})}}]),n}(Cp),Tp=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,bp(i),kp(r,i))).controls=e,a._initObservables(),a._setUpdateStrategy(i),a._setUpControls(),a.updateValueAndValidity({onlySelf:!0,emitEvent:!!a.asyncValidator}),a}return o(n,[{key:"at",value:function(e){return this.controls[e]}},{key:"push",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.controls.push(e),this._registerControl(e),this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}},{key:"insert",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity({emitEvent:n.emitEvent})}},{key:"removeAt",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),this.updateValueAndValidity({emitEvent:t.emitEvent})}},{key:"setControl",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),t&&(this.controls.splice(e,0,t),this._registerControl(t)),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}},{key:"length",get:function(){return this.controls.length}},{key:"setValue",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._checkAllValuesPresent(e),e.forEach(function(e,i){t._throwIfControlMissing(i),t.at(i).setValue(e,{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n)}},{key:"patchValue",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};null!=e&&(e.forEach(function(e,i){t.at(i)&&t.at(i).patchValue(e,{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n))}},{key:"reset",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._forEachChild(function(n,i){n.reset(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}},{key:"getRawValue",value:function(){return this.controls.map(function(e){return e instanceof Lp?e.value:e.getRawValue()})}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.controls.length<1||(this._forEachChild(function(e){return e._registerOnCollectionChange(function(){})}),this.controls.splice(0),this.updateValueAndValidity({emitEvent:e.emitEvent}))}},{key:"_syncPendingControls",value:function(){var e=this.controls.reduce(function(e,t){return!!t._syncPendingControls()||e},!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}},{key:"_throwIfControlMissing",value:function(e){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(e))throw new Error("Cannot find form control at index ".concat(e))}},{key:"_forEachChild",value:function(e){this.controls.forEach(function(t,n){e(t,n)})}},{key:"_updateValue",value:function(){var e=this;this.value=this.controls.filter(function(t){return t.enabled||e.disabled}).map(function(e){return e.value})}},{key:"_anyControls",value:function(e){return this.controls.some(function(t){return t.enabled&&e(t)})}},{key:"_setUpControls",value:function(){var e=this;this._forEachChild(function(t){return e._registerControl(t)})}},{key:"_checkAllValuesPresent",value:function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control at index: ".concat(n,"."))})}},{key:"_allControlsDisabled",value:function(){var e,t=v(this.controls);try{for(t.s();!(e=t.n()).done;)if(e.value.enabled)return!1}catch(n){t.e(n)}finally{t.f()}return this.controls.length>0||this.disabled}},{key:"_registerControl",value:function(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}}]),n}(Cp),Dp={provide:tp,useExisting:Te(function(){return Ep})},Op=function(){return Promise.resolve(null)}(),Ep=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this)).submitted=!1,r._directives=[],r.ngSubmit=new Zl,r.form=new xp({},Uf(e),qf(i)),r}return o(n,[{key:"ngAfterViewInit",value:function(){this._setUpdateStrategy()}},{key:"formDirective",get:function(){return this}},{key:"control",get:function(){return this.form}},{key:"path",get:function(){return[]}},{key:"controls",get:function(){return this.form.controls}},{key:"addControl",value:function(e){var t=this;Op.then(function(){var n=t._findContainer(e.path);e.control=n.registerControl(e.name,e.control),sp(e.control,e),e.control.updateValueAndValidity({emitEvent:!1}),t._directives.push(e)})}},{key:"getControl",value:function(e){return this.form.get(e.path)}},{key:"removeControl",value:function(e){var t=this;Op.then(function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name),mp(t._directives,e)})}},{key:"addFormGroup",value:function(e){var t=this;Op.then(function(){var n=t._findContainer(e.path),i=new xp({});fp(i,e),n.registerControl(e.name,i),i.updateValueAndValidity({emitEvent:!1})})}},{key:"removeFormGroup",value:function(e){var t=this;Op.then(function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)})}},{key:"getFormGroup",value:function(e){return this.form.get(e.path)}},{key:"updateModel",value:function(e,t){var n=this;Op.then(function(){n.form.get(e.path).setValue(t)})}},{key:"setValue",value:function(e){this.control.setValue(e)}},{key:"onSubmit",value:function(e){return this.submitted=!0,pp(this.form,this._directives),this.ngSubmit.emit(e),!1}},{key:"onReset",value:function(){this.resetForm()}},{key:"resetForm",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;this.form.reset(e),this.submitted=!1}},{key:"_setUpdateStrategy",value:function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}},{key:"_findContainer",value:function(e){return e.pop(),e.length?this.form.get(e):this.form}}]),n}(tp);return e.\u0275fac=function(t){return new(t||e)(ps(Df,10),ps(Of,10))},e.\u0275dir=bt({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(e,t){1&e&&xs("submit",function(e){return t.onSubmit(e)})("reset",function(){return t.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Du([Dp]),Ko]}),e}(),Yp=function(){var e=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"ngOnInit",value:function(){this._checkParentType(),this.formDirective.addFormGroup(this)}},{key:"ngOnDestroy",value:function(){this.formDirective&&this.formDirective.removeFormGroup(this)}},{key:"control",get:function(){return this.formDirective.getFormGroup(this)}},{key:"path",get:function(){return op(null==this.name?this.name:this.name.toString(),this._parent)}},{key:"formDirective",get:function(){return this._parent?this._parent.formDirective:null}},{key:"_checkParentType",value:function(){}}]),n}(tp);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275dir=bt({type:e,features:[Ko]}),e}(),Pp=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275dir=bt({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),e}(),Ap={provide:Mf,useExisting:Te(function(){return Ip}),multi:!0},Ip=function(){var e=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"writeValue",value:function(e){this.setProperty("value",null==e?"":e)}},{key:"registerOnChange",value:function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}}}]),n}(kf);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275dir=bt({type:e,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(e,t){1&e&&xs("input",function(e){return t.onChange(e.target.value)})("blur",function(){return t.onTouched()})},features:[Du([Ap]),Ko]}),e}(),Rp=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({}),e}(),Fp=new Mi("NgModelWithFormControlWarning"),Hp={provide:tp,useExisting:Te(function(){return jp})},jp=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this)).validators=e,r.asyncValidators=i,r.submitted=!1,r._onCollectionChange=function(){return r._updateDomValue()},r.directives=[],r.form=null,r.ngSubmit=new Zl,r._setValidators(e),r._setAsyncValidators(i),r}return o(n,[{key:"ngOnChanges",value:function(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}},{key:"ngOnDestroy",value:function(){this.form&&(dp(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(function(){}))}},{key:"formDirective",get:function(){return this}},{key:"control",get:function(){return this.form}},{key:"path",get:function(){return[]}},{key:"addControl",value:function(e){var t=this.form.get(e.path);return sp(t,e),t.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),t}},{key:"getControl",value:function(e){return this.form.get(e.path)}},{key:"removeControl",value:function(e){up(e.control||null,e),mp(this.directives,e)}},{key:"addFormGroup",value:function(e){this._setUpFormContainer(e)}},{key:"removeFormGroup",value:function(e){this._cleanUpFormContainer(e)}},{key:"getFormGroup",value:function(e){return this.form.get(e.path)}},{key:"addFormArray",value:function(e){this._setUpFormContainer(e)}},{key:"removeFormArray",value:function(e){this._cleanUpFormContainer(e)}},{key:"getFormArray",value:function(e){return this.form.get(e.path)}},{key:"updateModel",value:function(e,t){this.form.get(e.path).setValue(t)}},{key:"onSubmit",value:function(e){return this.submitted=!0,pp(this.form,this.directives),this.ngSubmit.emit(e),!1}},{key:"onReset",value:function(){this.resetForm()}},{key:"resetForm",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;this.form.reset(e),this.submitted=!1}},{key:"_updateDomValue",value:function(){var e=this;this.directives.forEach(function(t){var n=t.control,i=e.form.get(t.path);n!==i&&(up(n||null,t),i instanceof Lp&&(sp(i,t),t.control=i))}),this.form._updateTreeValidity({emitEvent:!1})}},{key:"_setUpFormContainer",value:function(e){var t=this.form.get(e.path);fp(t,e),t.updateValueAndValidity({emitEvent:!1})}},{key:"_cleanUpFormContainer",value:function(e){if(this.form){var t=this.form.get(e.path);t&&function(e,t){return dp(e,t)}(t,e)&&t.updateValueAndValidity({emitEvent:!1})}}},{key:"_updateRegistrations",value:function(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){})}},{key:"_updateValidators",value:function(){cp(this.form,this),this._oldForm&&dp(this._oldForm,this)}},{key:"_checkFormPresent",value:function(){}}]),n}(tp);return e.\u0275fac=function(t){return new(t||e)(ps(Df,10),ps(Of,10))},e.\u0275dir=bt({type:e,selectors:[["","formGroup",""]],hostBindings:function(e,t){1&e&&xs("submit",function(e){return t.onSubmit(e)})("reset",function(){return t.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Du([Hp]),Ko,At]}),e}(),Np={provide:tp,useExisting:Te(function(){return Bp})},Bp=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this))._parent=e,a._setValidators(i),a._setAsyncValidators(r),a}return o(n,[{key:"_checkParentType",value:function(){Up(this._parent)}}]),n}(Yp);return e.\u0275fac=function(t){return new(t||e)(ps(tp,13),ps(Df,10),ps(Of,10))},e.\u0275dir=bt({type:e,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[Du([Np]),Ko]}),e}(),Wp={provide:tp,useExisting:Te(function(){return Vp})},Vp=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this))._parent=e,a._setValidators(i),a._setAsyncValidators(r),a}return o(n,[{key:"ngOnInit",value:function(){this._checkParentType(),this.formDirective.addFormArray(this)}},{key:"ngOnDestroy",value:function(){this.formDirective&&this.formDirective.removeFormArray(this)}},{key:"control",get:function(){return this.formDirective.getFormArray(this)}},{key:"formDirective",get:function(){return this._parent?this._parent.formDirective:null}},{key:"path",get:function(){return op(null==this.name?this.name:this.name.toString(),this._parent)}},{key:"_checkParentType",value:function(){Up(this._parent)}}]),n}(tp);return e.\u0275fac=function(t){return new(t||e)(ps(tp,13),ps(Df,10),ps(Of,10))},e.\u0275dir=bt({type:e,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[Du([Wp]),Ko]}),e}();function Up(e){return!(e instanceof Bp||e instanceof jp||e instanceof Vp)}var zp={provide:np,useExisting:Te(function(){return qp})},qp=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o){var u;return s(this,n),(u=t.call(this))._ngModelWarningConfig=o,u._added=!1,u.update=new Zl,u._ngModelWarningSent=!1,u._parent=e,u._setValidators(i),u._setAsyncValidators(r),u.valueAccessor=function(e,t){if(!t)return null;Array.isArray(t);var n=void 0,i=void 0,r=void 0;return t.forEach(function(e){e.constructor===Lf?n=e:Object.getPrototypeOf(e.constructor)===kf?i=e:r=e}),r||i||n||null}(h(u),a),u}return o(n,[{key:"isDisabled",set:function(e){}},{key:"ngOnChanges",value:function(e){this._added||this._setUpControl(),function(e,t){if(!e.hasOwnProperty("model"))return!1;var n=e.model;return!!n.isFirstChange()||!Object.is(t,n.currentValue)}(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}},{key:"ngOnDestroy",value:function(){this.formDirective&&this.formDirective.removeControl(this)}},{key:"viewToModelUpdate",value:function(e){this.viewModel=e,this.update.emit(e)}},{key:"path",get:function(){return op(null==this.name?this.name:this.name.toString(),this._parent)}},{key:"formDirective",get:function(){return this._parent?this._parent.formDirective:null}},{key:"_checkParentType",value:function(){}},{key:"_setUpControl",value:function(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0}}]),n}(np);return e.\u0275fac=function(t){return new(t||e)(ps(tp,13),ps(Df,10),ps(Of,10),ps(Mf,10),ps(Fp,8))},e.\u0275dir=bt({type:e,selectors:[["","formControlName",""]],inputs:{isDisabled:["disabled","isDisabled"],name:["formControlName","name"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[Du([zp]),Ko,At]}),e._ngModelWarningSentOnce=!1,e}(),Gp={provide:Mf,useExisting:Te(function(){return Jp}),multi:!0};function Kp(e,t){return null==e?"".concat(t):(t&&"object"==typeof t&&(t="Object"),"".concat(e,": ").concat(t).slice(0,50))}var Jp=function(){var e=function(e){l(n,e);var t=p(n);function n(){var e;return s(this,n),(e=t.apply(this,arguments))._optionMap=new Map,e._idCounter=0,e._compareWith=Object.is,e}return o(n,[{key:"compareWith",set:function(e){this._compareWith=e}},{key:"writeValue",value:function(e){this.value=e;var t=this._getOptionId(e);null==t&&this.setProperty("selectedIndex",-1);var n=Kp(t,e);this.setProperty("value",n)}},{key:"registerOnChange",value:function(e){var t=this;this.onChange=function(n){t.value=t._getOptionValue(n),e(t.value)}}},{key:"_registerOption",value:function(){return(this._idCounter++).toString()}},{key:"_getOptionId",value:function(e){for(var t=0,n=Array.from(this._optionMap.keys());t-1)}}else t=function(e,t){e._setSelected(!1)};this._optionMap.forEach(t)}},{key:"registerOnChange",value:function(e){var t=this;this.onChange=function(n){var i=[];if(void 0!==n.selectedOptions)for(var r=n.selectedOptions,a=0;a1&&void 0!==arguments[1]?arguments[1]:null,n=this._reduceControls(e),i=null,r=null,a=void 0;return null!=t&&(hm(t)?(i=null!=t.validators?t.validators:null,r=null!=t.asyncValidators?t.asyncValidators:null,a=null!=t.updateOn?t.updateOn:void 0):(i=null!=t.validator?t.validator:null,r=null!=t.asyncValidator?t.asyncValidator:null)),new xp(n,{asyncValidators:r,updateOn:a,validators:i})}},{key:"control",value:function(e,t,n){return new Lp(e,t,n)}},{key:"array",value:function(e,t,n){var i=this,r=e.map(function(e){return i._createControl(e)});return new Tp(r,t,n)}},{key:"_reduceControls",value:function(e){var t=this,n={};return Object.keys(e).forEach(function(i){n[i]=t._createControl(e[i])}),n}},{key:"_createControl",value:function(e){return e instanceof Lp||e instanceof xp||e instanceof Tp?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=Ie({factory:function(){return new e},token:e,providedIn:dm}),e}();function pm(e){return null!=e&&"false"!=="".concat(e)}function mm(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return gm(e)?Number(e):t}function gm(e){return!isNaN(parseFloat(e))&&!isNaN(Number(e))}function vm(e){return Array.isArray(e)?e:[e]}function _m(e){return null==e?"":"string"==typeof e?e:"".concat(e,"px")}function ym(e){return e instanceof Fu?e.nativeElement:e}function bm(){for(var e=arguments.length,t=new Array(e),n=0;n1?Array.prototype.slice.call(arguments):e)},i,n)})}function km(e,t,n,i,r){var a;if(function(e){return e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener}(e)){var o=e;e.addEventListener(t,n,r),a=function(){return o.removeEventListener(t,n,r)}}else if(function(e){return e&&"function"==typeof e.on&&"function"==typeof e.off}(e)){var s=e;e.on(t,n),a=function(){return s.off(t,n)}}else if(function(e){return e&&"function"==typeof e.addListener&&"function"==typeof e.removeListener}(e)){var u=e;e.addListener(t,n),a=function(){return u.removeListener(t,n)}}else{if(!e||!e.length)throw new TypeError("Invalid event target");for(var l=0,c=e.length;l1&&void 0!==arguments[1]?arguments[1]:0;if(this.closed)return this;this.state=e;var n=this.id,i=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(i,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(i,this.id,t),this}},{key:"requestAsyncId",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return setInterval(e.flush.bind(e,this),n)}},{key:"recycleAsyncId",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(null!==n&&this.delay===n&&!1===this.pending)return t;clearInterval(t)}},{key:"execute",value:function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}},{key:"_execute",value:function(e,t){var n=!1,i=void 0;try{this.work(e)}catch(r){n=!0,i=!!r&&r||new Error(r)}if(n)return this.unsubscribe(),i}},{key:"_unsubscribe",value:function(){var e=this.id,t=this.scheduler,n=t.actions,i=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==i&&n.splice(i,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null}}]),n}(function(e){l(n,e);var t=p(n);function n(e,i){return s(this,n),t.call(this)}return o(n,[{key:"schedule",value:function(e){return this}}]),n}(x)),Sm=function(){var e=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.now;s(this,e),this.SchedulerAction=t,this.now=n}return o(e,[{key:"schedule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0;return new this.SchedulerAction(this,e).schedule(n,t)}}]),e}();return e.now=function(){return Date.now()},e}(),Cm=function(e){l(n,e);var t=p(n);function n(e){var i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Sm.now;return s(this,n),(i=t.call(this,e,function(){return n.delegate&&n.delegate!==h(i)?n.delegate.now():r()})).actions=[],i.active=!1,i.scheduled=void 0,i}return o(n,[{key:"schedule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2?arguments[2]:void 0;return n.delegate&&n.delegate!==this?n.delegate.schedule(e,t,a):r(i(n.prototype),"schedule",this).call(this,e,t,a)}},{key:"flush",value:function(e){var t=this.actions;if(this.active)t.push(e);else{var n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}}}]),n}(Sm),Lm=1,xm=function(){return Promise.resolve()}(),Tm={};function Dm(e){return e in Tm&&(delete Tm[e],!0)}var Om=function(e){var t=Lm++;return Tm[t]=!0,xm.then(function(){return Dm(t)&&e()}),t},Em=function(e){Dm(e)},Ym=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e,i)).scheduler=e,r.work=i,r}return o(n,[{key:"requestAsyncId",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return null!==a&&a>0?r(i(n.prototype),"requestAsyncId",this).call(this,e,t,a):(e.actions.push(this),e.scheduled||(e.scheduled=Om(e.flush.bind(e,null))))}},{key:"recycleAsyncId",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(null!==a&&a>0||null===a&&this.delay>0)return r(i(n.prototype),"recycleAsyncId",this).call(this,e,t,a);0===e.actions.length&&(Em(t),e.scheduled=void 0)}}]),n}(Mm),Pm=new(function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"flush",value:function(e){this.active=!0,this.scheduled=void 0;var t,n=this.actions,i=-1,r=n.length;e=e||n.shift();do{if(t=e.execute(e.state,e.delay))break}while(++i=0}function Wm(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,i=-1;return Bm(t)?i=Number(t)<1?1:Number(t):G(t)&&(n=t),G(n)||(n=Fm),new N(function(t){var r=Bm(e)?e:+e-n.now();return n.schedule(Vm,r,{index:0,period:i,subscriber:t})})}function Vm(e){var t=e.index,n=e.period,i=e.subscriber;if(i.next(t),!i.closed){if(-1===n)return i.complete();e.index=t+1,this.schedule(e,n)}}function Um(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fm;return Hm(function(){return Wm(e,t)})}function zm(e,t){return function(n){return n.lift(new qm(e,t))}}var qm=function(){function e(t,n){s(this,e),this.predicate=t,this.thisArg=n}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new Gm(e,this.predicate,this.thisArg))}}]),e}(),Gm=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e)).predicate=i,a.thisArg=r,a.count=0,a}return o(n,[{key:"_next",value:function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}t&&this.destination.next(e)}}]),n}(A);function Km(e){return function(t){return t.lift(new Jm(e))}}var Jm=function(){function e(t){s(this,e),this.notifier=t}return o(e,[{key:"call",value:function(e,t){var n=new Zm(e),i=se(this.notifier,new ae(n));return i&&!n.seenValue?(n.add(i),t.subscribe(n)):n}}]),e}(),Zm=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this,e)).seenValue=!1,i}return o(n,[{key:"notifyNext",value:function(){this.seenValue=!0,this.complete()}},{key:"notifyComplete",value:function(){}}]),n}(oe);function $m(){return he(1)}function Xm(){return $m()(bm.apply(void 0,arguments))}function Qm(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:0;return t>0?r(i(n.prototype),"schedule",this).call(this,e,t):(this.delay=t,this.state=e,this.scheduler.flush(this),this)}},{key:"execute",value:function(e,t){return t>0||this.closed?r(i(n.prototype),"execute",this).call(this,e,t):this._execute(e,t)}},{key:"requestAsyncId",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return null!==a&&a>0||null===a&&this.delay>0?r(i(n.prototype),"requestAsyncId",this).call(this,e,t,a):e.flush(this)}}]),n}(Mm),rg=new(function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return n}(Cm))(ig),ag=new N(function(e){return e.complete()});function og(e){return e?function(e){return new N(function(t){return e.schedule(function(){return t.complete()})})}(e):ag}function sg(e,t){return new N(t?function(n){return t.schedule(ug,0,{error:e,subscriber:n})}:function(t){return t.error(e)})}function ug(e){e.subscriber.error(e.error)}var lg,cg=function(){var e=function(){function e(t,n,i){s(this,e),this.kind=t,this.value=n,this.error=i,this.hasValue="N"===t}return o(e,[{key:"observe",value:function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}}},{key:"do",value:function(e,t,n){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return n&&n()}}},{key:"accept",value:function(e,t,n){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,n)}},{key:"toObservable",value:function(){switch(this.kind){case"N":return bm(this.value);case"E":return sg(this.error);case"C":return og()}throw new Error("unexpected notification kind value")}}],[{key:"createNext",value:function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification}},{key:"createError",value:function(t){return new e("E",void 0,t)}},{key:"createComplete",value:function(){return e.completeNotification}}]),e}();return e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}(),dg=function(e){l(n,e);var t=p(n);function n(e,i){var r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return s(this,n),(r=t.call(this,e)).scheduler=i,r.delay=a,r}return o(n,[{key:"scheduleMessage",value:function(e){this.destination.add(this.scheduler.schedule(n.dispatch,this.delay,new hg(e,this.destination)))}},{key:"_next",value:function(e){this.scheduleMessage(cg.createNext(e))}},{key:"_error",value:function(e){this.scheduleMessage(cg.createError(e)),this.unsubscribe()}},{key:"_complete",value:function(){this.scheduleMessage(cg.createComplete()),this.unsubscribe()}}],[{key:"dispatch",value:function(e){e.notification.observe(e.destination),this.unsubscribe()}}]),n}(A),hg=function e(t,n){s(this,e),this.notification=t,this.destination=n},fg=function(e){l(n,e);var t=p(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY,a=arguments.length>2?arguments[2]:void 0;return s(this,n),(e=t.call(this)).scheduler=a,e._events=[],e._infiniteTimeWindow=!1,e._bufferSize=i<1?1:i,e._windowTime=r<1?1:r,r===Number.POSITIVE_INFINITY?(e._infiniteTimeWindow=!0,e.next=e.nextInfiniteTimeWindow):e.next=e.nextTimeWindow,e}return o(n,[{key:"nextInfiniteTimeWindow",value:function(e){if(!this.isStopped){var t=this._events;t.push(e),t.length>this._bufferSize&&t.shift()}r(i(n.prototype),"next",this).call(this,e)}},{key:"nextTimeWindow",value:function(e){this.isStopped||(this._events.push(new pg(this._getNow(),e)),this._trimBufferThenGetEvents()),r(i(n.prototype),"next",this).call(this,e)}},{key:"_subscribe",value:function(e){var t,n=this._infiniteTimeWindow,i=n?this._events:this._trimBufferThenGetEvents(),r=this.scheduler,a=i.length;if(this.closed)throw new W;if(this.isStopped||this.hasError?t=x.EMPTY:(this.observers.push(e),t=new V(this,e)),r&&e.add(e=new dg(e,r)),n)for(var o=0;ot&&(a=Math.max(a,r-t)),a>0&&i.splice(0,a),i}}]),n}(z),pg=function e(t,n){s(this,e),this.time=t,this.value=n};try{lg="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(ZN){lg=!1}var mg,gg,vg,_g,yg=function(){var e=function e(t){s(this,e),this._platformId=t,this.isBrowser=this._platformId?"browser"===this._platformId:"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!lg)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT};return e.\u0275fac=function(t){return new(t||e)(Bi(kc))},e.\u0275prov=Ie({factory:function(){return new e(Bi(kc))},token:e,providedIn:"root"}),e}(),bg=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({}),e}(),wg=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function kg(){if(mg)return mg;if("object"!=typeof document||!document)return mg=new Set(wg);var e=document.createElement("input");return mg=new Set(wg.filter(function(t){return e.setAttribute("type",t),e.type===t}))}function Mg(e){return function(){if(null==gg&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){return gg=!0}}))}finally{gg=gg||!1}return gg}()?e:!!e.capture}function Sg(){if(null==vg){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return vg=!1;if("scrollBehavior"in document.documentElement.style)vg=!0;else{var e=Element.prototype.scrollTo;vg=!!e&&!/\{\s*\[native code\]\s*\}/.test(e.toString())}}return vg}function Cg(e){if(function(){if(null==_g){var e="undefined"!=typeof document?document.head:null;_g=!(!e||!e.createShadowRoot&&!e.attachShadow)}return _g}()){var t=e.getRootNode?e.getRootNode():null;if("undefined"!=typeof ShadowRoot&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}function Lg(){for(var e="undefined"!=typeof document&&document?document.activeElement:null;e&&e.shadowRoot;){var t=e.shadowRoot.activeElement;if(t===e)break;e=t}return e}function xg(e){return e.composedPath?e.composedPath()[0]:e.target}var Tg=new Mi("cdk-dir-doc",{providedIn:"root",factory:function(){return Wi(yd)}}),Dg=function(){var e=function(){function e(t){if(s(this,e),this.value="ltr",this.change=new Zl,t){var n=(t.body?t.body.dir:null)||(t.documentElement?t.documentElement.dir:null);this.value="ltr"===n||"rtl"===n?n:"ltr"}}return o(e,[{key:"ngOnDestroy",value:function(){this.change.complete()}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Tg,8))},e.\u0275prov=Ie({factory:function(){return new e(Bi(Tg,8))},token:e,providedIn:"root"}),e}(),Og=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({}),e}(),Eg=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=arguments.length>1?arguments[1]:void 0,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];s(this,e),this._multiple=n,this._emitChanges=r,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new z,i&&i.length&&(n?i.forEach(function(e){return t._markSelected(e)}):this._markSelected(i[0]),this._selectedToEmit.length=0)}return o(e,[{key:"selected",get:function(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}},{key:"select",value:function(){for(var e=this,t=arguments.length,n=new Array(t),i=0;i0&&void 0!==arguments[0]?arguments[0]:20;return this._platform.isBrowser?new N(function(n){e._globalSubscription||e._addGlobalListener();var i=t>0?e._scrolled.pipe(Um(t)).subscribe(n):e._scrolled.subscribe(n);return e._scrolledCount++,function(){i.unsubscribe(),e._scrolledCount--,e._scrolledCount||e._removeGlobalListener()}}):bm()}},{key:"ngOnDestroy",value:function(){var e=this;this._removeGlobalListener(),this.scrollContainers.forEach(function(t,n){return e.deregister(n)}),this._scrolled.complete()}},{key:"ancestorScrolled",value:function(e,t){var n=this.getAncestorScrollContainers(e);return this.scrolled(t).pipe(zm(function(e){return!e||n.indexOf(e)>-1}))}},{key:"getAncestorScrollContainers",value:function(e){var t=this,n=[];return this.scrollContainers.forEach(function(i,r){t._scrollableContainsElement(r,e)&&n.push(r)}),n}},{key:"_getWindow",value:function(){return this._document.defaultView||window}},{key:"_scrollableContainsElement",value:function(e,t){var n=ym(t),i=e.getElementRef().nativeElement;do{if(n==i)return!0}while(n=n.parentElement);return!1}},{key:"_addGlobalListener",value:function(){var e=this;this._globalSubscription=this._ngZone.runOutsideAngular(function(){return wm(e._getWindow().document,"scroll").subscribe(function(){return e._scrolled.next()})})}},{key:"_removeGlobalListener",value:function(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Fc),Bi(yg),Bi(yd,8))},e.\u0275prov=Ie({factory:function(){return new e(Bi(Fc),Bi(yg),Bi(yd,8))},token:e,providedIn:"root"}),e}(),Pg=function(){var e=function(){function e(t,n,i){var r=this;s(this,e),this._platform=t,this._change=new z,this._changeListener=function(e){r._change.next(e)},this._document=i,n.runOutsideAngular(function(){if(t.isBrowser){var e=r._getWindow();e.addEventListener("resize",r._changeListener),e.addEventListener("orientationchange",r._changeListener)}r.change().subscribe(function(){return r._viewportSize=null})})}return o(e,[{key:"ngOnDestroy",value:function(){if(this._platform.isBrowser){var e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}},{key:"getViewportSize",value:function(){this._viewportSize||this._updateViewportSize();var e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}},{key:"getViewportRect",value:function(){var e=this.getViewportScrollPosition(),t=this.getViewportSize(),n=t.width,i=t.height;return{top:e.top,left:e.left,bottom:e.top+i,right:e.left+n,height:i,width:n}}},{key:"getViewportScrollPosition",value:function(){if(!this._platform.isBrowser)return{top:0,left:0};var e=this._document,t=this._getWindow(),n=e.documentElement,i=n.getBoundingClientRect();return{top:-i.top||e.body.scrollTop||t.scrollY||n.scrollTop||0,left:-i.left||e.body.scrollLeft||t.scrollX||n.scrollLeft||0}}},{key:"change",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20;return e>0?this._change.pipe(Um(e)):this._change}},{key:"_getWindow",value:function(){return this._document.defaultView||window}},{key:"_updateViewportSize",value:function(){var e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(yg),Bi(Fc),Bi(yd,8))},e.\u0275prov=Ie({factory:function(){return new e(Bi(yg),Bi(Fc),Bi(yd,8))},token:e,providedIn:"root"}),e}(),Ag=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({}),e}(),Ig=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[Og,bg,Ag],Og,Ag]}),e}(),Rg=function(){function e(){s(this,e)}return o(e,[{key:"attach",value:function(e){return this._attachedHost=e,e.attach(this)}},{key:"detach",value:function(){var e=this._attachedHost;null!=e&&(this._attachedHost=null,e.detach())}},{key:"isAttached",get:function(){return null!=this._attachedHost}},{key:"setAttachedHost",value:function(e){this._attachedHost=e}}]),e}(),Fg=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;return s(this,n),(o=t.call(this)).component=e,o.viewContainerRef=i,o.injector=r,o.componentFactoryResolver=a,o}return n}(Rg),Hg=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this)).templateRef=e,a.viewContainerRef=i,a.context=r,a}return o(n,[{key:"origin",get:function(){return this.templateRef.elementRef}},{key:"attach",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.context;return this.context=t,r(i(n.prototype),"attach",this).call(this,e)}},{key:"detach",value:function(){return this.context=void 0,r(i(n.prototype),"detach",this).call(this)}}]),n}(Rg),jg=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this)).element=e instanceof Fu?e.nativeElement:e,i}return n}(Rg),Ng=function(){function e(){s(this,e),this._isDisposed=!1,this.attachDomPortal=null}return o(e,[{key:"hasAttached",value:function(){return!!this._attachedPortal}},{key:"attach",value:function(e){return e instanceof Fg?(this._attachedPortal=e,this.attachComponentPortal(e)):e instanceof Hg?(this._attachedPortal=e,this.attachTemplatePortal(e)):this.attachDomPortal&&e instanceof jg?(this._attachedPortal=e,this.attachDomPortal(e)):void 0}},{key:"detach",value:function(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}},{key:"dispose",value:function(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}},{key:"setDisposeFn",value:function(e){this._disposeFn=e}},{key:"_invokeDisposeFn",value:function(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}]),e}(),Bg=function(e){l(n,e);var t=p(n);function n(e,a,o,u,l){var c,d;return s(this,n),(d=t.call(this)).outletElement=e,d._componentFactoryResolver=a,d._appRef=o,d._defaultInjector=u,d.attachDomPortal=function(e){var t=e.element,a=d._document.createComment("dom-portal");t.parentNode.insertBefore(a,t),d.outletElement.appendChild(t),d._attachedPortal=e,r((c=h(d),i(n.prototype)),"setDisposeFn",c).call(c,function(){a.parentNode&&a.parentNode.replaceChild(t,a)})},d._document=l,d}return o(n,[{key:"attachComponentPortal",value:function(e){var t,n=this,i=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component);return e.viewContainerRef?(t=e.viewContainerRef.createComponent(i,e.viewContainerRef.length,e.injector||e.viewContainerRef.injector),this.setDisposeFn(function(){return t.destroy()})):(t=i.create(e.injector||this._defaultInjector),this._appRef.attachView(t.hostView),this.setDisposeFn(function(){n._appRef.detachView(t.hostView),t.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(t)),this._attachedPortal=e,t}},{key:"attachTemplatePortal",value:function(e){var t=this,n=e.viewContainerRef,i=n.createEmbeddedView(e.templateRef,e.context);return i.rootNodes.forEach(function(e){return t.outletElement.appendChild(e)}),i.detectChanges(),this.setDisposeFn(function(){var e=n.indexOf(i);-1!==e&&n.remove(e)}),this._attachedPortal=e,i}},{key:"dispose",value:function(){r(i(n.prototype),"dispose",this).call(this),null!=this.outletElement.parentNode&&this.outletElement.parentNode.removeChild(this.outletElement)}},{key:"_getComponentRootNode",value:function(e){return e.hostView.rootNodes[0]}}]),n}(Ng),Wg=function(){var e=function(e){l(n,e);var t=p(n);function n(e,a,o){var u,l;return s(this,n),(l=t.call(this))._componentFactoryResolver=e,l._viewContainerRef=a,l._isInitialized=!1,l.attached=new Zl,l.attachDomPortal=function(e){var t=e.element,a=l._document.createComment("dom-portal");e.setAttachedHost(h(l)),t.parentNode.insertBefore(a,t),l._getRootNode().appendChild(t),l._attachedPortal=e,r((u=h(l),i(n.prototype)),"setDisposeFn",u).call(u,function(){a.parentNode&&a.parentNode.replaceChild(t,a)})},l._document=o,l}return o(n,[{key:"portal",get:function(){return this._attachedPortal},set:function(e){(!this.hasAttached()||e||this._isInitialized)&&(this.hasAttached()&&r(i(n.prototype),"detach",this).call(this),e&&r(i(n.prototype),"attach",this).call(this,e),this._attachedPortal=e)}},{key:"attachedRef",get:function(){return this._attachedRef}},{key:"ngOnInit",value:function(){this._isInitialized=!0}},{key:"ngOnDestroy",value:function(){r(i(n.prototype),"dispose",this).call(this),this._attachedPortal=null,this._attachedRef=null}},{key:"attachComponentPortal",value:function(e){e.setAttachedHost(this);var t=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,a=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),o=t.createComponent(a,t.length,e.injector||t.injector);return t!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),r(i(n.prototype),"setDisposeFn",this).call(this,function(){return o.destroy()}),this._attachedPortal=e,this._attachedRef=o,this.attached.emit(o),o}},{key:"attachTemplatePortal",value:function(e){var t=this;e.setAttachedHost(this);var a=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context);return r(i(n.prototype),"setDisposeFn",this).call(this,function(){return t._viewContainerRef.clear()}),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}},{key:"_getRootNode",value:function(){var e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}}]),n}(Ng);return e.\u0275fac=function(t){return new(t||e)(ps(Pu),ps(bl),ps(yd))},e.\u0275dir=bt({type:e,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[Ko]}),e}(),Vg=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({}),e}(),Ug=function(){function e(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return e.prototype=Object.create(Error.prototype),e}();function zg(e){return function(t){return 0===e?og():t.lift(new qg(e))}}var qg=function(){function e(t){if(s(this,e),this.total=t,this.total<0)throw new Ug}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new Gg(e,this.total))}}]),e}(),Gg=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e)).total=i,r.count=0,r}return o(n,[{key:"_next",value:function(e){var t=this.total,n=++this.count;n<=t&&(this.destination.next(e),n===t&&(this.destination.complete(),this.unsubscribe()))}}]),n}(A),Kg=function(){function e(t,n){s(this,e),this.predicate=t,this.inclusive=n}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new Jg(e,this.predicate,this.inclusive))}}]),e}(),Jg=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e)).predicate=i,a.inclusive=r,a.index=0,a}return o(n,[{key:"_next",value:function(e){var t,n=this.destination;try{t=this.predicate(e,this.index++)}catch(i){return void n.error(i)}this.nextOrComplete(e,t)}},{key:"nextOrComplete",value:function(e,t){var n=this.destination;Boolean(t)?n.next(e):(this.inclusive&&n.next(e),n.complete())}}]),n}(A),Zg=27,$g=38,Xg=40;function Qg(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;it.height||e.scrollWidth>t.width}}]),e}(),nv=function(){function e(t,n,i,r){var a=this;s(this,e),this._scrollDispatcher=t,this._ngZone=n,this._viewportRuler=i,this._config=r,this._scrollSubscription=null,this._detach=function(){a.disable(),a._overlayRef.hasAttached()&&a._ngZone.run(function(){return a._overlayRef.detach()})}}return o(e,[{key:"attach",value:function(e){this._overlayRef=e}},{key:"enable",value:function(){var e=this;if(!this._scrollSubscription){var t=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(function(){var t=e._viewportRuler.getViewportScrollPosition().top;Math.abs(t-e._initialScrollPosition)>e._config.threshold?e._detach():e._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}}},{key:"disable",value:function(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}},{key:"detach",value:function(){this.disable(),this._overlayRef=null}}]),e}(),iv=function(){function e(){s(this,e)}return o(e,[{key:"enable",value:function(){}},{key:"disable",value:function(){}},{key:"attach",value:function(){}}]),e}();function rv(e,t){return t.some(function(t){return e.bottomt.bottom||e.rightt.right})}function av(e,t){return t.some(function(t){return e.topt.bottom||e.leftt.right})}var ov=function(){function e(t,n,i,r){s(this,e),this._scrollDispatcher=t,this._viewportRuler=n,this._ngZone=i,this._config=r,this._scrollSubscription=null}return o(e,[{key:"attach",value:function(e){this._overlayRef=e}},{key:"enable",value:function(){var e=this;this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(function(){if(e._overlayRef.updatePosition(),e._config&&e._config.autoClose){var t=e._overlayRef.overlayElement.getBoundingClientRect(),n=e._viewportRuler.getViewportSize(),i=n.width,r=n.height;rv(t,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(e.disable(),e._ngZone.run(function(){return e._overlayRef.detach()}))}}))}},{key:"disable",value:function(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}},{key:"detach",value:function(){this.disable(),this._overlayRef=null}}]),e}(),sv=function(){var e=function e(t,n,i,r){var a=this;s(this,e),this._scrollDispatcher=t,this._viewportRuler=n,this._ngZone=i,this.noop=function(){return new iv},this.close=function(e){return new nv(a._scrollDispatcher,a._ngZone,a._viewportRuler,e)},this.block=function(){return new tv(a._viewportRuler,a._document)},this.reposition=function(e){return new ov(a._scrollDispatcher,a._viewportRuler,a._ngZone,e)},this._document=r};return e.\u0275fac=function(t){return new(t||e)(Bi(Yg),Bi(Pg),Bi(Fc),Bi(yd))},e.\u0275prov=Ie({factory:function(){return new e(Bi(Yg),Bi(Pg),Bi(Fc),Bi(yd))},token:e,providedIn:"root"}),e}(),uv=function e(t){if(s(this,e),this.scrollStrategy=new iv,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t)for(var n=0,i=Object.keys(t);n-1&&this._attachedOverlays.splice(t,1),0===this._attachedOverlays.length&&this.detach()}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(yd))},e.\u0275prov=Ie({factory:function(){return new e(Bi(yd))},token:e,providedIn:"root"}),e}(),hv=function(){var e=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this,e))._keydownListener=function(e){for(var t=i._attachedOverlays,n=t.length-1;n>-1;n--)if(t[n]._keydownEvents.observers.length>0){t[n]._keydownEvents.next(e);break}},i}return o(n,[{key:"add",value:function(e){r(i(n.prototype),"add",this).call(this,e),this._isAttached||(this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}},{key:"detach",value:function(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}]),n}(dv);return e.\u0275fac=function(t){return new(t||e)(Bi(yd))},e.\u0275prov=Ie({factory:function(){return new e(Bi(yd))},token:e,providedIn:"root"}),e}(),fv=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e))._platform=i,r._cursorStyleIsSet=!1,r._clickListener=function(e){for(var t=xg(e),n=r._attachedOverlays.slice(),i=n.length-1;i>-1;i--){var a=n[i];if(!(a._outsidePointerEvents.observers.length<1)&&a.hasAttached()){if(a.overlayElement.contains(t))break;a._outsidePointerEvents.next(e)}}},r}return o(n,[{key:"add",value:function(e){if(r(i(n.prototype),"add",this).call(this,e),!this._isAttached){var t=this._document.body;t.addEventListener("click",this._clickListener,!0),t.addEventListener("auxclick",this._clickListener,!0),t.addEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=t.style.cursor,t.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}},{key:"detach",value:function(){if(this._isAttached){var e=this._document.body;e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}}]),n}(dv);return e.\u0275fac=function(t){return new(t||e)(Bi(yd),Bi(yg))},e.\u0275prov=Ie({factory:function(){return new e(Bi(yd),Bi(yg))},token:e,providedIn:"root"}),e}(),pv="undefined"!=typeof window?window:{},mv=void 0!==pv.__karma__&&!!pv.__karma__||void 0!==pv.jasmine&&!!pv.jasmine||void 0!==pv.jest&&!!pv.jest||void 0!==pv.Mocha&&!!pv.Mocha,gv=function(){var e=function(){function e(t,n){s(this,e),this._platform=n,this._document=t}return o(e,[{key:"ngOnDestroy",value:function(){var e=this._containerElement;e&&e.parentNode&&e.parentNode.removeChild(e)}},{key:"getContainerElement",value:function(){return this._containerElement||this._createContainer(),this._containerElement}},{key:"_createContainer",value:function(){var e="cdk-overlay-container";if(this._platform.isBrowser||mv)for(var t=this._document.querySelectorAll(".".concat(e,'[platform="server"], ')+".".concat(e,'[platform="test"]')),n=0;nf&&(f=g,h=m)}}catch(_){p.e(_)}finally{p.f()}return this._isPushed=!1,void this._applyPosition(h.position,h.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(e.position,e.originPoint);this._applyPosition(e.position,e.originPoint)}}},{key:"detach",value:function(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}},{key:"dispose",value:function(){this._isDisposed||(this._boundingBox&&wv(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(_v),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}},{key:"reapplyLastPosition",value:function(){if(!this._isDisposed&&(!this._platform||this._platform.isBrowser)){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect();var e=this._lastPosition||this._preferredPositions[0],t=this._getOriginPoint(this._originRect,e);this._applyPosition(e,t)}}},{key:"withScrollableContainers",value:function(e){return this._scrollables=e,this}},{key:"withPositions",value:function(e){return this._preferredPositions=e,-1===e.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}},{key:"withViewportMargin",value:function(e){return this._viewportMargin=e,this}},{key:"withFlexibleDimensions",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._hasFlexibleDimensions=e,this}},{key:"withGrowAfterOpen",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._growAfterOpen=e,this}},{key:"withPush",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._canPush=e,this}},{key:"withLockedPosition",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._positionLocked=e,this}},{key:"setOrigin",value:function(e){return this._origin=e,this}},{key:"withDefaultOffsetX",value:function(e){return this._offsetX=e,this}},{key:"withDefaultOffsetY",value:function(e){return this._offsetY=e,this}},{key:"withTransformOriginOn",value:function(e){return this._transformOriginSelector=e,this}},{key:"_getOriginPoint",value:function(e,t){var n;if("center"==t.originX)n=e.left+e.width/2;else{var i=this._isRtl()?e.right:e.left,r=this._isRtl()?e.left:e.right;n="start"==t.originX?i:r}return{x:n,y:"center"==t.originY?e.top+e.height/2:"top"==t.originY?e.top:e.bottom}}},{key:"_getOverlayPoint",value:function(e,t,n){var i;return i="center"==n.overlayX?-t.width/2:"start"===n.overlayX?this._isRtl()?-t.width:0:this._isRtl()?0:-t.width,{x:e.x+i,y:e.y+("center"==n.overlayY?-t.height/2:"top"==n.overlayY?0:-t.height)}}},{key:"_getOverlayFit",value:function(e,t,n,i){var r=Mv(t),a=e.x,o=e.y,s=this._getOffset(i,"x"),u=this._getOffset(i,"y");s&&(a+=s),u&&(o+=u);var l=0-o,c=o+r.height-n.height,d=this._subtractOverflows(r.width,0-a,a+r.width-n.width),h=this._subtractOverflows(r.height,l,c),f=d*h;return{visibleArea:f,isCompletelyWithinViewport:r.width*r.height===f,fitsInViewportVertically:h===r.height,fitsInViewportHorizontally:d==r.width}}},{key:"_canFitWithFlexibleDimensions",value:function(e,t,n){if(this._hasFlexibleDimensions){var i=n.bottom-t.y,r=n.right-t.x,a=kv(this._overlayRef.getConfig().minHeight),o=kv(this._overlayRef.getConfig().minWidth);return(e.fitsInViewportVertically||null!=a&&a<=i)&&(e.fitsInViewportHorizontally||null!=o&&o<=r)}return!1}},{key:"_pushOverlayOnScreen",value:function(e,t,n){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};var i,r,a=Mv(t),o=this._viewportRect,s=Math.max(e.x+a.width-o.width,0),u=Math.max(e.y+a.height-o.height,0),l=Math.max(o.top-n.top-e.y,0),c=Math.max(o.left-n.left-e.x,0);return this._previousPushAmount={x:i=a.width<=o.width?c||-s:e.xd&&!this._isInitialRender&&!this._growAfterOpen&&(i=e.y-d/2)}if("end"===t.overlayX&&!l||"start"===t.overlayX&&l)s=u.width-e.x+this._viewportMargin,a=e.x-this._viewportMargin;else if("start"===t.overlayX&&!l||"end"===t.overlayX&&l)o=e.x,a=u.right-e.x;else{var h=Math.min(u.right-e.x+u.left,e.x),f=this._lastBoundingBoxSize.width;o=e.x-h,(a=2*h)>f&&!this._isInitialRender&&!this._growAfterOpen&&(o=e.x-f/2)}return{top:i,left:o,bottom:r,right:s,width:a,height:n}}},{key:"_setBoundingBoxStyles",value:function(e,t){var n=this._calculateBoundingBoxRect(e,t);this._isInitialRender||this._growAfterOpen||(n.height=Math.min(n.height,this._lastBoundingBoxSize.height),n.width=Math.min(n.width,this._lastBoundingBoxSize.width));var i={};if(this._hasExactPosition())i.top=i.left="0",i.bottom=i.right=i.maxHeight=i.maxWidth="",i.width=i.height="100%";else{var r=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;i.height=_m(n.height),i.top=_m(n.top),i.bottom=_m(n.bottom),i.width=_m(n.width),i.left=_m(n.left),i.right=_m(n.right),i.alignItems="center"===t.overlayX?"center":"end"===t.overlayX?"flex-end":"flex-start",i.justifyContent="center"===t.overlayY?"center":"bottom"===t.overlayY?"flex-end":"flex-start",r&&(i.maxHeight=_m(r)),a&&(i.maxWidth=_m(a))}this._lastBoundingBoxSize=n,wv(this._boundingBox.style,i)}},{key:"_resetBoundingBoxStyles",value:function(){wv(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}},{key:"_resetOverlayElementStyles",value:function(){wv(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}},{key:"_setOverlayElementStyles",value:function(e,t){var n={},i=this._hasExactPosition(),r=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(i){var o=this._viewportRuler.getViewportScrollPosition();wv(n,this._getExactOverlayY(t,e,o)),wv(n,this._getExactOverlayX(t,e,o))}else n.position="static";var s="",u=this._getOffset(t,"x"),l=this._getOffset(t,"y");u&&(s+="translateX(".concat(u,"px) ")),l&&(s+="translateY(".concat(l,"px)")),n.transform=s.trim(),a.maxHeight&&(i?n.maxHeight=_m(a.maxHeight):r&&(n.maxHeight="")),a.maxWidth&&(i?n.maxWidth=_m(a.maxWidth):r&&(n.maxWidth="")),wv(this._pane.style,n)}},{key:"_getExactOverlayY",value:function(e,t,n){var i={top:"",bottom:""},r=this._getOverlayPoint(t,this._overlayRect,e);this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,n));var a=this._overlayContainer.getContainerElement().getBoundingClientRect().top;return r.y-=a,"bottom"===e.overlayY?i.bottom="".concat(this._document.documentElement.clientHeight-(r.y+this._overlayRect.height),"px"):i.top=_m(r.y),i}},{key:"_getExactOverlayX",value:function(e,t,n){var i={left:"",right:""},r=this._getOverlayPoint(t,this._overlayRect,e);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,n)),"right"==(this._isRtl()?"end"===e.overlayX?"left":"right":"end"===e.overlayX?"right":"left")?i.right="".concat(this._document.documentElement.clientWidth-(r.x+this._overlayRect.width),"px"):i.left=_m(r.x),i}},{key:"_getScrollVisibility",value:function(){var e=this._getOriginRect(),t=this._pane.getBoundingClientRect(),n=this._scrollables.map(function(e){return e.getElementRef().nativeElement.getBoundingClientRect()});return{isOriginClipped:av(e,n),isOriginOutsideView:rv(e,n),isOverlayClipped:av(t,n),isOverlayOutsideView:rv(t,n)}}},{key:"_subtractOverflows",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i0&&void 0!==arguments[0]?arguments[0]:"";return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}},{key:"left",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this._rightOffset="",this._leftOffset=e,this._justifyContent="flex-start",this}},{key:"bottom",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}},{key:"right",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this._leftOffset="",this._rightOffset=e,this._justifyContent="flex-end",this}},{key:"width",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}},{key:"height",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}},{key:"centerHorizontally",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.left(e),this._justifyContent="center",this}},{key:"centerVertically",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.top(e),this._alignItems="center",this}},{key:"apply",value:function(){if(this._overlayRef&&this._overlayRef.hasAttached()){var e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement.style,n=this._overlayRef.getConfig(),i=n.width,r=n.height,a=n.maxWidth,o=n.maxHeight,s=!("100%"!==i&&"100vw"!==i||a&&"100%"!==a&&"100vw"!==a),u=!("100%"!==r&&"100vh"!==r||o&&"100%"!==o&&"100vh"!==o);e.position=this._cssPosition,e.marginLeft=s?"0":this._leftOffset,e.marginTop=u?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=this._rightOffset,s?t.justifyContent="flex-start":"center"===this._justifyContent?t.justifyContent="center":"rtl"===this._overlayRef.getConfig().direction?"flex-start"===this._justifyContent?t.justifyContent="flex-end":"flex-end"===this._justifyContent&&(t.justifyContent="flex-start"):t.justifyContent=this._justifyContent,t.alignItems=u?"flex-start":this._alignItems}}},{key:"dispose",value:function(){if(!this._isDisposed&&this._overlayRef){var e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement,n=t.style;t.classList.remove(Cv),n.justifyContent=n.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}}}]),e}(),xv=function(){var e=function(){function e(t,n,i,r){s(this,e),this._viewportRuler=t,this._document=n,this._platform=i,this._overlayContainer=r}return o(e,[{key:"global",value:function(){return new Lv}},{key:"connectedTo",value:function(e,t,n){return new Sv(t,n,e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}},{key:"flexibleConnectedTo",value:function(e){return new bv(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Pg),Bi(yd),Bi(yg),Bi(gv))},e.\u0275prov=Ie({factory:function(){return new e(Bi(Pg),Bi(yd),Bi(yg),Bi(gv))},token:e,providedIn:"root"}),e}(),Tv=0,Dv=function(){var e=function(){function e(t,n,i,r,a,o,u,l,c,d,h){s(this,e),this.scrollStrategies=t,this._overlayContainer=n,this._componentFactoryResolver=i,this._positionBuilder=r,this._keyboardDispatcher=a,this._injector=o,this._ngZone=u,this._document=l,this._directionality=c,this._location=d,this._outsideClickDispatcher=h}return o(e,[{key:"create",value:function(e){var t=this._createHostElement(),n=this._createPaneElement(t),i=this._createPortalOutlet(n),r=new uv(e);return r.direction=r.direction||this._directionality.value,new vv(i,t,n,r,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher)}},{key:"position",value:function(){return this._positionBuilder}},{key:"_createPaneElement",value:function(e){var t=this._document.createElement("div");return t.id="cdk-overlay-".concat(Tv++),t.classList.add("cdk-overlay-pane"),e.appendChild(t),t}},{key:"_createHostElement",value:function(){var e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}},{key:"_createPortalOutlet",value:function(e){return this._appRef||(this._appRef=this._injector.get(od)),new Bg(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(sv),Bi(gv),Bi(Pu),Bi(xv),Bi(hv),Bi(qo),Bi(Fc),Bi(yd),Bi(Dg),Bi(Ad),Bi(fv))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),Ov=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Ev=new Mi("cdk-connected-overlay-scroll-strategy"),Yv=function(){var e=function e(t){s(this,e),this.elementRef=t};return e.\u0275fac=function(t){return new(t||e)(ps(Fu))},e.\u0275dir=bt({type:e,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),e}(),Pv=function(){var e=function(){function e(t,n,i,r,a){s(this,e),this._overlay=t,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=x.EMPTY,this._attachSubscription=x.EMPTY,this._detachSubscription=x.EMPTY,this._positionSubscription=x.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new Zl,this.positionChange=new Zl,this.attach=new Zl,this.detach=new Zl,this.overlayKeydown=new Zl,this.overlayOutsideClick=new Zl,this._templatePortal=new Hg(n,i),this._scrollStrategyFactory=r,this.scrollStrategy=this._scrollStrategyFactory()}return o(e,[{key:"offsetX",get:function(){return this._offsetX},set:function(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}},{key:"offsetY",get:function(){return this._offsetY},set:function(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}},{key:"hasBackdrop",get:function(){return this._hasBackdrop},set:function(e){this._hasBackdrop=pm(e)}},{key:"lockPosition",get:function(){return this._lockPosition},set:function(e){this._lockPosition=pm(e)}},{key:"flexibleDimensions",get:function(){return this._flexibleDimensions},set:function(e){this._flexibleDimensions=pm(e)}},{key:"growAfterOpen",get:function(){return this._growAfterOpen},set:function(e){this._growAfterOpen=pm(e)}},{key:"push",get:function(){return this._push},set:function(e){this._push=pm(e)}},{key:"overlayRef",get:function(){return this._overlayRef}},{key:"dir",get:function(){return this._dir?this._dir.value:"ltr"}},{key:"ngOnDestroy",value:function(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}},{key:"ngOnChanges",value:function(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}},{key:"_createOverlay",value:function(){var e=this;this.positions&&this.positions.length||(this.positions=Ov);var t=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=t.attachments().subscribe(function(){return e.attach.emit()}),this._detachSubscription=t.detachments().subscribe(function(){return e.detach.emit()}),t.keydownEvents().subscribe(function(t){e.overlayKeydown.next(t),t.keyCode!==Zg||e.disableClose||Qg(t)||(t.preventDefault(),e._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(function(t){e.overlayOutsideClick.next(t)})}},{key:"_buildConfig",value:function(){var e=this._position=this.positionStrategy||this._createPositionStrategy(),t=new uv({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(t.width=this.width),(this.height||0===this.height)&&(t.height=this.height),(this.minWidth||0===this.minWidth)&&(t.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(t.minHeight=this.minHeight),this.backdropClass&&(t.backdropClass=this.backdropClass),this.panelClass&&(t.panelClass=this.panelClass),t}},{key:"_updatePositionStrategy",value:function(e){var t=this,n=this.positions.map(function(e){return{originX:e.originX,originY:e.originY,overlayX:e.overlayX,overlayY:e.overlayY,offsetX:e.offsetX||t.offsetX,offsetY:e.offsetY||t.offsetY,panelClass:e.panelClass||void 0}});return e.setOrigin(this.origin.elementRef).withPositions(n).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}},{key:"_createPositionStrategy",value:function(){var e=this._overlay.position().flexibleConnectedTo(this.origin.elementRef);return this._updatePositionStrategy(e),e}},{key:"_attachOverlay",value:function(){var e=this;this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(function(t){e.backdropClick.emit(t)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(n){return n.lift(new Kg(e,t))}}(function(){return e.positionChange.observers.length>0})).subscribe(function(t){e.positionChange.emit(t),0===e.positionChange.observers.length&&e._positionSubscription.unsubscribe()}))}},{key:"_detachOverlay",value:function(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Dv),ps(pl),ps(bl),ps(Ev),ps(Dg,8))},e.\u0275dir=bt({type:e,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"],positions:["cdkConnectedOverlayPositions","positions"],origin:["cdkConnectedOverlayOrigin","origin"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[At]}),e}(),Av={provide:Ev,deps:[Dv],useFactory:function(e){return function(){return e.scrollStrategies.reposition()}}},Iv=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[Dv,Av],imports:[[Og,Vg,Ig],Ig]}),e}(),Rv=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this))._value=e,i}return o(n,[{key:"value",get:function(){return this.getValue()}},{key:"_subscribe",value:function(e){var t=r(i(n.prototype),"_subscribe",this).call(this,e);return t&&!t.closed&&e.next(this._value),t}},{key:"getValue",value:function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new W;return this._value}},{key:"next",value:function(e){r(i(n.prototype),"next",this).call(this,this._value=e)}}]),n}(z);function Fv(){}function Hv(e,t,n){return function(i){return i.lift(new jv(e,t,n))}}var jv=function(){function e(t,n,i){s(this,e),this.nextOrObserver=t,this.error=n,this.complete=i}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new Nv(e,this.nextOrObserver,this.error,this.complete))}}]),e}(),Nv=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;return s(this,n),(o=t.call(this,e))._tapNext=Fv,o._tapError=Fv,o._tapComplete=Fv,o._tapError=r||Fv,o._tapComplete=a||Fv,C(i)?(o._context=h(o),o._tapNext=i):i&&(o._context=i,o._tapNext=i.next||Fv,o._tapError=i.error||Fv,o._tapComplete=i.complete||Fv),o}return o(n,[{key:"_next",value:function(e){try{this._tapNext.call(this._context,e)}catch(t){return void this.destination.error(t)}this.destination.next(e)}},{key:"_error",value:function(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)}},{key:"_complete",value:function(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()}}]),n}(A);function Bv(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fm;return function(n){return n.lift(new Wv(e,t))}}var Wv=function(){function e(t,n){s(this,e),this.dueTime=t,this.scheduler=n}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new Vv(e,this.dueTime,this.scheduler))}}]),e}(),Vv=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e)).dueTime=i,a.scheduler=r,a.debouncedSubscription=null,a.lastValue=null,a.hasValue=!1,a}return o(n,[{key:"_next",value:function(e){this.clearDebounce(),this.lastValue=e,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(Uv,this.dueTime,this))}},{key:"_complete",value:function(){this.debouncedNext(),this.destination.complete()}},{key:"debouncedNext",value:function(){if(this.clearDebounce(),this.hasValue){var e=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(e)}}},{key:"clearDebounce",value:function(){var e=this.debouncedSubscription;null!==e&&(this.remove(e),e.unsubscribe(),this.debouncedSubscription=null)}}]),n}(A);function Uv(e){e.debouncedNext()}function zv(e){return function(t){return t.lift(new qv(e))}}var qv=function(){function e(t){s(this,e),this.total=t}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new Gv(e,this.total))}}]),e}(),Gv=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e)).total=i,r.count=0,r}return o(n,[{key:"_next",value:function(e){++this.count>this.total&&this.destination.next(e)}}]),n}(A),Kv=function(){var e=function(){function e(){s(this,e)}return o(e,[{key:"create",value:function(e){return"undefined"==typeof MutationObserver?null:new MutationObserver(e)}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=Ie({factory:function(){return new e},token:e,providedIn:"root"}),e}(),Jv=function(){var e=function(){function e(t){s(this,e),this._mutationObserverFactory=t,this._observedElements=new Map}return o(e,[{key:"ngOnDestroy",value:function(){var e=this;this._observedElements.forEach(function(t,n){return e._cleanupObserver(n)})}},{key:"observe",value:function(e){var t=this,n=ym(e);return new N(function(e){var i=t._observeElement(n).subscribe(e);return function(){i.unsubscribe(),t._unobserveElement(n)}})}},{key:"_observeElement",value:function(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{var t=new z,n=this._mutationObserverFactory.create(function(e){return t.next(e)});n&&n.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:n,stream:t,count:1})}return this._observedElements.get(e).stream}},{key:"_unobserveElement",value:function(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}},{key:"_cleanupObserver",value:function(e){if(this._observedElements.has(e)){var t=this._observedElements.get(e),n=t.observer,i=t.stream;n&&n.disconnect(),i.complete(),this._observedElements.delete(e)}}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Kv))},e.\u0275prov=Ie({factory:function(){return new e(Bi(Kv))},token:e,providedIn:"root"}),e}(),Zv=function(){var e=function(){function e(t,n,i){s(this,e),this._contentObserver=t,this._elementRef=n,this._ngZone=i,this.event=new Zl,this._disabled=!1,this._currentSubscription=null}return o(e,[{key:"disabled",get:function(){return this._disabled},set:function(e){this._disabled=pm(e),this._disabled?this._unsubscribe():this._subscribe()}},{key:"debounce",get:function(){return this._debounce},set:function(e){this._debounce=mm(e),this._subscribe()}},{key:"ngAfterContentInit",value:function(){this._currentSubscription||this.disabled||this._subscribe()}},{key:"ngOnDestroy",value:function(){this._unsubscribe()}},{key:"_subscribe",value:function(){var e=this;this._unsubscribe();var t=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(function(){e._currentSubscription=(e.debounce?t.pipe(Bv(e.debounce)):t).subscribe(e.event)})}},{key:"_unsubscribe",value:function(){var e;null===(e=this._currentSubscription)||void 0===e||e.unsubscribe()}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Jv),ps(Fu),ps(Fc))},e.\u0275dir=bt({type:e,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),e}(),$v=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[Kv]}),e}();function Xv(e,t){return(e.getAttribute(t)||"").match(/\S+/g)||[]}var Qv="cdk-describedby-message-container",e_="cdk-describedby-message",t_="cdk-describedby-host",n_=0,i_=new Map,r_=null,a_=function(){var e=function(){function e(t){s(this,e),this._document=t}return o(e,[{key:"describe",value:function(e,t,n){if(this._canBeDescribed(e,t)){var i=o_(t,n);"string"!=typeof t?(s_(t),i_.set(i,{messageElement:t,referenceCount:0})):i_.has(i)||this._createMessageElement(t,n),this._isElementDescribedByMessage(e,i)||this._addMessageReference(e,i)}}},{key:"removeDescription",value:function(e,t,n){if(t&&this._isElementNode(e)){var i=o_(t,n);if(this._isElementDescribedByMessage(e,i)&&this._removeMessageReference(e,i),"string"==typeof t){var r=i_.get(i);r&&0===r.referenceCount&&this._deleteMessageElement(i)}r_&&0===r_.childNodes.length&&this._deleteMessagesContainer()}}},{key:"ngOnDestroy",value:function(){for(var e=this._document.querySelectorAll("[".concat(t_,"]")),t=0;t-1&&t!==n._activeItemIndex&&(n._activeItemIndex=t)}})}return o(e,[{key:"skipPredicate",value:function(e){return this._skipPredicateFn=e,this}},{key:"withWrap",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._wrap=e,this}},{key:"withVerticalOrientation",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._vertical=e,this}},{key:"withHorizontalOrientation",value:function(e){return this._horizontal=e,this}},{key:"withAllowedModifierKeys",value:function(e){return this._allowedModifierKeys=e,this}},{key:"withTypeAhead",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:200;return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(Hv(function(t){return e._pressedLetters.push(t)}),Bv(t),zm(function(){return e._pressedLetters.length>0}),K(function(){return e._pressedLetters.join("")})).subscribe(function(t){for(var n=e._getItemsArray(),i=1;i0&&void 0!==arguments[0])||arguments[0];return this._homeAndEnd=e,this}},{key:"setActiveItem",value:function(e){var t=this._activeItem;this.updateActiveItem(e),this._activeItem!==t&&this.change.next(this._activeItemIndex)}},{key:"onKeydown",value:function(e){var t=this,n=e.keyCode,i=["altKey","ctrlKey","metaKey","shiftKey"].every(function(n){return!e[n]||t._allowedModifierKeys.indexOf(n)>-1});switch(n){case 9:return void this.tabOut.next();case Xg:if(this._vertical&&i){this.setNextItemActive();break}return;case $g:if(this._vertical&&i){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&i){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&i){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&i){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&i){this.setLastItemActive();break}return;default:return void((i||Qg(e,"shiftKey"))&&(e.key&&1===e.key.length?this._letterKeyStream.next(e.key.toLocaleUpperCase()):(n>=65&&n<=90||n>=48&&n<=57)&&this._letterKeyStream.next(String.fromCharCode(n))))}this._pressedLetters=[],e.preventDefault()}},{key:"activeItemIndex",get:function(){return this._activeItemIndex}},{key:"activeItem",get:function(){return this._activeItem}},{key:"isTyping",value:function(){return this._pressedLetters.length>0}},{key:"setFirstItemActive",value:function(){this._setActiveItemByIndex(0,1)}},{key:"setLastItemActive",value:function(){this._setActiveItemByIndex(this._items.length-1,-1)}},{key:"setNextItemActive",value:function(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}},{key:"setPreviousItemActive",value:function(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}},{key:"updateActiveItem",value:function(e){var t=this._getItemsArray(),n="number"==typeof e?e:t.indexOf(e),i=t[n];this._activeItem=null==i?null:i,this._activeItemIndex=n}},{key:"_setActiveItemByDelta",value:function(e){this._wrap?this._setActiveInWrapMode(e):this._setActiveInDefaultMode(e)}},{key:"_setActiveInWrapMode",value:function(e){for(var t=this._getItemsArray(),n=1;n<=t.length;n++){var i=(this._activeItemIndex+e*n+t.length)%t.length;if(!this._skipPredicateFn(t[i]))return void this.setActiveItem(i)}}},{key:"_setActiveInDefaultMode",value:function(e){this._setActiveItemByIndex(this._activeItemIndex+e,e)}},{key:"_setActiveItemByIndex",value:function(e,t){var n=this._getItemsArray();if(n[e]){for(;this._skipPredicateFn(n[e]);)if(!n[e+=t])return;this.setActiveItem(e)}}},{key:"_getItemsArray",value:function(){return this._items instanceof Xl?this._items.toArray():this._items}}]),e}(),l_=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"setActiveItem",value:function(e){this.activeItem&&this.activeItem.setInactiveStyles(),r(i(n.prototype),"setActiveItem",this).call(this,e),this.activeItem&&this.activeItem.setActiveStyles()}}]),n}(u_),c_=function(e){l(n,e);var t=p(n);function n(){var e;return s(this,n),(e=t.apply(this,arguments))._origin="program",e}return o(n,[{key:"setFocusOrigin",value:function(e){return this._origin=e,this}},{key:"setActiveItem",value:function(e){r(i(n.prototype),"setActiveItem",this).call(this,e),this.activeItem&&this.activeItem.focus(this._origin)}}]),n}(u_),d_=function(){var e=function(){function e(t){s(this,e),this._platform=t}return o(e,[{key:"isDisabled",value:function(e){return e.hasAttribute("disabled")}},{key:"isVisible",value:function(e){return function(e){return!!(e.offsetWidth||e.offsetHeight||"function"==typeof e.getClientRects&&e.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}},{key:"isTabbable",value:function(e){if(!this._platform.isBrowser)return!1;var t,n=function(e){try{return e.frameElement}catch(ZN){return null}}((t=e).ownerDocument&&t.ownerDocument.defaultView||window);if(n){if(-1===f_(n))return!1;if(!this.isVisible(n))return!1}var i=e.nodeName.toLowerCase(),r=f_(e);return e.hasAttribute("contenteditable")?-1!==r:"iframe"!==i&&"object"!==i&&!(this._platform.WEBKIT&&this._platform.IOS&&!function(e){var t=e.nodeName.toLowerCase(),n="input"===t&&e.type;return"text"===n||"password"===n||"select"===t||"textarea"===t}(e))&&("audio"===i?!!e.hasAttribute("controls")&&-1!==r:"video"===i?-1!==r&&(null!==r||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}},{key:"isFocusable",value:function(e,t){return function(e){return!function(e){return function(e){return"input"==e.nodeName.toLowerCase()}(e)&&"hidden"==e.type}(e)&&(function(e){var t=e.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}(e)||function(e){return function(e){return"a"==e.nodeName.toLowerCase()}(e)&&e.hasAttribute("href")}(e)||e.hasAttribute("contenteditable")||h_(e))}(e)&&!this.isDisabled(e)&&((null==t?void 0:t.ignoreVisibility)||this.isVisible(e))}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(yg))},e.\u0275prov=Ie({factory:function(){return new e(Bi(yg))},token:e,providedIn:"root"}),e}();function h_(e){if(!e.hasAttribute("tabindex")||void 0===e.tabIndex)return!1;var t=e.getAttribute("tabindex");return"-32768"!=t&&!(!t||isNaN(parseInt(t,10)))}function f_(e){if(!h_(e))return null;var t=parseInt(e.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}var p_=function(){function e(t,n,i,r){var a=this,o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];s(this,e),this._element=t,this._checker=n,this._ngZone=i,this._document=r,this._hasAttached=!1,this.startAnchorListener=function(){return a.focusLastTabbableElement()},this.endAnchorListener=function(){return a.focusFirstTabbableElement()},this._enabled=!0,o||this.attachAnchors()}return o(e,[{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}},{key:"destroy",value:function(){var e=this._startAnchor,t=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.parentNode&&e.parentNode.removeChild(e)),t&&(t.removeEventListener("focus",this.endAnchorListener),t.parentNode&&t.parentNode.removeChild(t)),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}},{key:"attachAnchors",value:function(){var e=this;return!!this._hasAttached||(this._ngZone.runOutsideAngular(function(){e._startAnchor||(e._startAnchor=e._createAnchor(),e._startAnchor.addEventListener("focus",e.startAnchorListener)),e._endAnchor||(e._endAnchor=e._createAnchor(),e._endAnchor.addEventListener("focus",e.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}},{key:"focusInitialElementWhenReady",value:function(e){var t=this;return new Promise(function(n){t._executeOnStable(function(){return n(t.focusInitialElement(e))})})}},{key:"focusFirstTabbableElementWhenReady",value:function(e){var t=this;return new Promise(function(n){t._executeOnStable(function(){return n(t.focusFirstTabbableElement(e))})})}},{key:"focusLastTabbableElementWhenReady",value:function(e){var t=this;return new Promise(function(n){t._executeOnStable(function(){return n(t.focusLastTabbableElement(e))})})}},{key:"_getRegionBoundary",value:function(e){for(var t=this._element.querySelectorAll("[cdk-focus-region-".concat(e,"], ")+"[cdkFocusRegion".concat(e,"], ")+"[cdk-focus-".concat(e,"]")),n=0;n=0;n--){var i=t[n].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(t[n]):null;if(i)return i}return null}},{key:"_createAnchor",value:function(){var e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}},{key:"_toggleAnchorTabIndex",value:function(e,t){e?t.setAttribute("tabindex","0"):t.removeAttribute("tabindex")}},{key:"toggleAnchors",value:function(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}},{key:"_executeOnStable",value:function(e){this._ngZone.isStable?e():this._ngZone.onStable.pipe(zg(1)).subscribe(e)}}]),e}(),m_=function(){var e=function(){function e(t,n,i){s(this,e),this._checker=t,this._ngZone=n,this._document=i}return o(e,[{key:"create",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new p_(e,this._checker,this._ngZone,this._document,t)}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(d_),Bi(Fc),Bi(yd))},e.\u0275prov=Ie({factory:function(){return new e(Bi(d_),Bi(Fc),Bi(yd))},token:e,providedIn:"root"}),e}();function g_(e){return 0===e.offsetX&&0===e.offsetY}function v_(e){var t=e.touches&&e.touches[0]||e.changedTouches&&e.changedTouches[0];return!(!t||-1!==t.identifier||null!=t.radiusX&&1!==t.radiusX||null!=t.radiusY&&1!==t.radiusY)}"undefined"!=typeof Element&∈var __=new Mi("cdk-input-modality-detector-options"),y_={ignoreKeys:[18,17,224,91,16]},b_=Mg({passive:!0,capture:!0}),w_=function(){var e=function(){function e(t,n,i,r){var a=this;s(this,e),this._platform=t,this._mostRecentTarget=null,this._modality=new Rv(null),this._lastTouchMs=0,this._onKeydown=function(e){var t,n;(null===(n=null===(t=a._options)||void 0===t?void 0:t.ignoreKeys)||void 0===n?void 0:n.some(function(t){return t===e.keyCode}))||(a._modality.next("keyboard"),a._mostRecentTarget=xg(e))},this._onMousedown=function(e){Date.now()-a._lastTouchMs<650||(a._modality.next(g_(e)?"keyboard":"mouse"),a._mostRecentTarget=xg(e))},this._onTouchstart=function(e){v_(e)?a._modality.next("keyboard"):(a._lastTouchMs=Date.now(),a._modality.next("touch"),a._mostRecentTarget=xg(e))},this._options=Object.assign(Object.assign({},y_),r),this.modalityDetected=this._modality.pipe(zv(1)),this.modalityChanged=this.modalityDetected.pipe(Am()),t.isBrowser&&n.runOutsideAngular(function(){i.addEventListener("keydown",a._onKeydown,b_),i.addEventListener("mousedown",a._onMousedown,b_),i.addEventListener("touchstart",a._onTouchstart,b_)})}return o(e,[{key:"mostRecentModality",get:function(){return this._modality.value}},{key:"ngOnDestroy",value:function(){this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,b_),document.removeEventListener("mousedown",this._onMousedown,b_),document.removeEventListener("touchstart",this._onTouchstart,b_))}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(yg),Bi(Fc),Bi(yd),Bi(__,8))},e.\u0275prov=Ie({factory:function(){return new e(Bi(yg),Bi(Fc),Bi(yd),Bi(__,8))},token:e,providedIn:"root"}),e}(),k_=new Mi("liveAnnouncerElement",{providedIn:"root",factory:function(){return null}}),M_=new Mi("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),S_=function(){var e=function(){function e(t,n,i,r){s(this,e),this._ngZone=n,this._defaultOptions=r,this._document=i,this._liveElement=t||this._createLiveElement()}return o(e,[{key:"announce",value:function(e){for(var t,n,i=this,r=this._defaultOptions,a=arguments.length,o=new Array(a>1?a-1:0),s=1;s1&&void 0!==arguments[1]&&arguments[1],n=ym(e);if(!this._platform.isBrowser||1!==n.nodeType)return bm(null);var i=Cg(n)||this._getDocument(),r=this._elementInfo.get(n);if(r)return t&&(r.checkChildren=!0),r.subject;var a={checkChildren:t,subject:new z,rootNode:i};return this._elementInfo.set(n,a),this._registerGlobalListeners(a),a.subject}},{key:"stopMonitoring",value:function(e){var t=ym(e),n=this._elementInfo.get(t);n&&(n.subject.complete(),this._setClasses(t),this._elementInfo.delete(t),this._removeGlobalListeners(n))}},{key:"focusVia",value:function(e,t,n){var i=this,r=ym(e);r===this._getDocument().activeElement?this._getClosestElementsInfo(r).forEach(function(e){var n=_(e,2);return i._originChanged(n[0],t,n[1])}):(this._setOrigin(t),"function"==typeof r.focus&&r.focus(n))}},{key:"ngOnDestroy",value:function(){var e=this;this._elementInfo.forEach(function(t,n){return e.stopMonitoring(n)})}},{key:"_getDocument",value:function(){return this._document||document}},{key:"_getWindow",value:function(){return this._getDocument().defaultView||window}},{key:"_toggleClass",value:function(e,t,n){n?e.classList.add(t):e.classList.remove(t)}},{key:"_getFocusOrigin",value:function(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:"program"}},{key:"_shouldBeAttributedToTouch",value:function(e){return 1===this._detectionMode||!!(null==e?void 0:e.contains(this._inputModalityDetector._mostRecentTarget))}},{key:"_setClasses",value:function(e,t){this._toggleClass(e,"cdk-focused",!!t),this._toggleClass(e,"cdk-touch-focused","touch"===t),this._toggleClass(e,"cdk-keyboard-focused","keyboard"===t),this._toggleClass(e,"cdk-mouse-focused","mouse"===t),this._toggleClass(e,"cdk-program-focused","program"===t)}},{key:"_setOrigin",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._ngZone.runOutsideAngular(function(){t._origin=e,t._originFromTouchInteraction="touch"===e&&n,0===t._detectionMode&&(clearTimeout(t._originTimeoutId),t._originTimeoutId=setTimeout(function(){return t._origin=null},t._originFromTouchInteraction?650:1))})}},{key:"_onFocus",value:function(e,t){var n=this._elementInfo.get(t),i=xg(e);n&&(n.checkChildren||t===i)&&this._originChanged(t,this._getFocusOrigin(i),n)}},{key:"_onBlur",value:function(e,t){var n=this._elementInfo.get(t);!n||n.checkChildren&&e.relatedTarget instanceof Node&&t.contains(e.relatedTarget)||(this._setClasses(t),this._emitOrigin(n.subject,null))}},{key:"_emitOrigin",value:function(e,t){this._ngZone.run(function(){return e.next(t)})}},{key:"_registerGlobalListeners",value:function(e){var t=this;if(this._platform.isBrowser){var n=e.rootNode,i=this._rootNodeFocusListenerCount.get(n)||0;i||this._ngZone.runOutsideAngular(function(){n.addEventListener("focus",t._rootNodeFocusAndBlurListener,L_),n.addEventListener("blur",t._rootNodeFocusAndBlurListener,L_)}),this._rootNodeFocusListenerCount.set(n,i+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(function(){t._getWindow().addEventListener("focus",t._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Km(this._stopInputModalityDetector)).subscribe(function(e){t._setOrigin(e,!0)}))}}},{key:"_removeGlobalListeners",value:function(e){var t=e.rootNode;if(this._rootNodeFocusListenerCount.has(t)){var n=this._rootNodeFocusListenerCount.get(t);n>1?this._rootNodeFocusListenerCount.set(t,n-1):(t.removeEventListener("focus",this._rootNodeFocusAndBlurListener,L_),t.removeEventListener("blur",this._rootNodeFocusAndBlurListener,L_),this._rootNodeFocusListenerCount.delete(t))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}},{key:"_originChanged",value:function(e,t,n){this._setClasses(e,t),this._emitOrigin(n.subject,t),this._lastFocusOrigin=t}},{key:"_getClosestElementsInfo",value:function(e){var t=[];return this._elementInfo.forEach(function(n,i){(i===e||n.checkChildren&&i.contains(e))&&t.push([i,n])}),t}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Fc),Bi(yg),Bi(w_),Bi(yd,8),Bi(C_,8))},e.\u0275prov=Ie({factory:function(){return new e(Bi(Fc),Bi(yg),Bi(w_),Bi(yd,8),Bi(C_,8))},token:e,providedIn:"root"}),e}(),T_="cdk-high-contrast-black-on-white",D_="cdk-high-contrast-white-on-black",O_="cdk-high-contrast-active",E_=function(){var e=function(){function e(t,n){s(this,e),this._platform=t,this._document=n}return o(e,[{key:"getHighContrastMode",value:function(){if(!this._platform.isBrowser)return 0;var e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);var t=this._document.defaultView||window,n=t&&t.getComputedStyle?t.getComputedStyle(e):null,i=(n&&n.backgroundColor||"").replace(/ /g,"");switch(this._document.body.removeChild(e),i){case"rgb(0,0,0)":return 2;case"rgb(255,255,255)":return 1}return 0}},{key:"_applyBodyHighContrastModeCssClasses",value:function(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){var e=this._document.body.classList;e.remove(O_),e.remove(T_),e.remove(D_),this._hasCheckedHighContrastMode=!0;var t=this.getHighContrastMode();1===t?(e.add(O_),e.add(T_)):2===t&&(e.add(O_),e.add(D_))}}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(yg),Bi(yd))},e.\u0275prov=Ie({factory:function(){return new e(Bi(yg),Bi(yd))},token:e,providedIn:"root"}),e}(),Y_=function(){var e=function e(t){s(this,e),t._applyBodyHighContrastModeCssClasses()};return e.\u0275fac=function(t){return new(t||e)(Bi(E_))},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[bg,$v]]}),e}(),P_=new Vu("12.2.3"),A_=function e(){s(this,e)},I_=function e(){s(this,e)},R_="*";function F_(e,t){return{type:7,name:e,definitions:t,options:{}}}function H_(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return{type:4,styles:t,timings:e}}function j_(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return{type:2,steps:e,options:t}}function N_(e){return{type:6,styles:e,offset:null}}function B_(e,t,n){return{type:0,name:e,styles:t,options:n}}function W_(e){return{type:5,steps:e}}function V_(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return{type:1,expr:e,animation:t,options:n}}function U_(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return{type:9,options:e}}function z_(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return{type:11,selector:e,animation:t,options:n}}function q_(e){Promise.resolve(null).then(e)}var G_=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;s(this,e),this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+n}return o(e,[{key:"_onFinish",value:function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])}},{key:"onStart",value:function(e){this._onStartFns.push(e)}},{key:"onDone",value:function(e){this._onDoneFns.push(e)}},{key:"onDestroy",value:function(e){this._onDestroyFns.push(e)}},{key:"hasStarted",value:function(){return this._started}},{key:"init",value:function(){}},{key:"play",value:function(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}},{key:"triggerMicrotask",value:function(){var e=this;q_(function(){return e._onFinish()})}},{key:"_onStart",value:function(){this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[]}},{key:"pause",value:function(){}},{key:"restart",value:function(){}},{key:"finish",value:function(){this._onFinish()}},{key:"destroy",value:function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])}},{key:"reset",value:function(){this._started=!1}},{key:"setPosition",value:function(e){this._position=this.totalTime?e*this.totalTime:1}},{key:"getPosition",value:function(){return this.totalTime?this._position/this.totalTime:1}},{key:"triggerCallback",value:function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(function(e){return e()}),t.length=0}}]),e}(),K_=function(){function e(t){var n=this;s(this,e),this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;var i=0,r=0,a=0,o=this.players.length;0==o?q_(function(){return n._onFinish()}):this.players.forEach(function(e){e.onDone(function(){++i==o&&n._onFinish()}),e.onDestroy(function(){++r==o&&n._onDestroy()}),e.onStart(function(){++a==o&&n._onStart()})}),this.totalTime=this.players.reduce(function(e,t){return Math.max(e,t.totalTime)},0)}return o(e,[{key:"_onFinish",value:function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])}},{key:"init",value:function(){this.players.forEach(function(e){return e.init()})}},{key:"onStart",value:function(e){this._onStartFns.push(e)}},{key:"_onStart",value:function(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[])}},{key:"onDone",value:function(e){this._onDoneFns.push(e)}},{key:"onDestroy",value:function(e){this._onDestroyFns.push(e)}},{key:"hasStarted",value:function(){return this._started}},{key:"play",value:function(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(function(e){return e.play()})}},{key:"pause",value:function(){this.players.forEach(function(e){return e.pause()})}},{key:"restart",value:function(){this.players.forEach(function(e){return e.restart()})}},{key:"finish",value:function(){this._onFinish(),this.players.forEach(function(e){return e.finish()})}},{key:"destroy",value:function(){this._onDestroy()}},{key:"_onDestroy",value:function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(function(e){return e.destroy()}),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])}},{key:"reset",value:function(){this.players.forEach(function(e){return e.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1}},{key:"setPosition",value:function(e){var t=e*this.totalTime;this.players.forEach(function(e){var n=e.totalTime?Math.min(1,t/e.totalTime):1;e.setPosition(n)})}},{key:"getPosition",value:function(){var e=this.players.reduce(function(e,t){return null===e||t.totalTime>e.totalTime?t:e},null);return null!=e?e.getPosition():0}},{key:"beforeDestroy",value:function(){this.players.forEach(function(e){e.beforeDestroy&&e.beforeDestroy()})}},{key:"triggerCallback",value:function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(function(e){return e()}),t.length=0}}]),e}(),J_="!";function Z_(){return"undefined"!=typeof window&&void 0!==window.document}function $_(){return"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)}function X_(e){switch(e.length){case 0:return new G_;case 1:return e[0];default:return new K_(e)}}function Q_(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},o=[],s=[],u=-1,l=null;if(i.forEach(function(e){var n=e.offset,i=n==u,c=i&&l||{};Object.keys(e).forEach(function(n){var i=n,s=e[n];if("offset"!==n)switch(i=t.normalizePropertyName(i,o),s){case J_:s=r[n];break;case R_:s=a[n];break;default:s=t.normalizeStyleValue(n,i,s,o)}c[i]=s}),i||s.push(c),l=c,u=n}),o.length){var c="\n - ";throw new Error("Unable to animate due to the following errors:".concat(c).concat(o.join(c)))}return s}function ey(e,t,n,i){switch(t){case"start":e.onStart(function(){return i(n&&ty(n,"start",e))});break;case"done":e.onDone(function(){return i(n&&ty(n,"done",e))});break;case"destroy":e.onDestroy(function(){return i(n&&ty(n,"destroy",e))})}}function ty(e,t,n){var i=n.totalTime,r=ny(e.element,e.triggerName,e.fromState,e.toState,t||e.phaseName,null==i?e.totalTime:i,!!n.disabled),a=e._data;return null!=a&&(r._data=a),r}function ny(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6?arguments[6]:void 0;return{element:e,triggerName:t,fromState:n,toState:i,phaseName:r,totalTime:a,disabled:!!o}}function iy(e,t,n){var i;return e instanceof Map?(i=e.get(t))||e.set(t,i=n):(i=e[t])||(i=e[t]=n),i}function ry(e){var t=e.indexOf(":");return[e.substring(1,t),e.substr(t+1)]}var ay=function(e,t){return!1},oy=function(e,t){return!1},sy=function(e,t,n){return[]},uy=$_();(uy||"undefined"!=typeof Element)&&(ay=Z_()?function(e,t){for(;t&&t!==document.documentElement;){if(t===e)return!0;t=t.parentNode||t.host}return!1}:function(e,t){return e.contains(t)},oy=function(){if(uy||Element.prototype.matches)return function(e,t){return e.matches(t)};var e=Element.prototype,t=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;return t?function(e,n){return t.apply(e,[n])}:oy}(),sy=function(e,t,n){var i=[];if(n)for(var r=e.querySelectorAll(t),a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).forEach(function(n){t[n]=e[n]}),t}function Ty(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t)for(var i in e)n[i]=e[i];else xy(e,n);return n}function Dy(e,t,n){return n?t+":"+n+";":""}function Oy(e){for(var t="",n=0;n *";case":leave":return"* => void";case":increment":return function(e,t){return parseFloat(t)>parseFloat(e)};case":decrement":return function(e,t){return parseFloat(t) *"}}(e,n);if("function"==typeof i)return void t.push(i);e=i}var r=e.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==r||r.length<4)return n.push('The provided transition expression "'.concat(e,'" is not supported')),t;var a=r[1],o=r[2],s=r[3];t.push(Gy(a,s)),"<"!=o[0]||a==Uy&&s==Uy||t.push(Gy(s,a))}(e,r,i)}):r.push(n),r),animation:a,queryCount:t.queryCount,depCount:t.depCount,options:eb(e.options)}}},{key:"visitSequence",value:function(e,t){var n=this;return{type:2,steps:e.steps.map(function(e){return Wy(n,e,t)}),options:eb(e.options)}}},{key:"visitGroup",value:function(e,t){var n=this,i=t.currentTime,r=0,a=e.steps.map(function(e){t.currentTime=i;var a=Wy(n,e,t);return r=Math.max(r,t.currentTime),a});return t.currentTime=r,{type:3,steps:a,options:eb(e.options)}}},{key:"visitAnimate",value:function(e,t){var n,i=function(e,t){var n=null;if(e.hasOwnProperty("duration"))n=e;else if("number"==typeof e)return tb(Ly(e,t).duration,0,"");var i=e;if(i.split(/\s+/).some(function(e){return"{"==e.charAt(0)&&"{"==e.charAt(1)})){var r=tb(0,0,"");return r.dynamic=!0,r.strValue=i,r}return tb((n=n||Ly(i,t)).duration,n.delay,n.easing)}(e.timings,t.errors);t.currentAnimateTimings=i;var r=e.styles?e.styles:N_({});if(5==r.type)n=this.visitKeyframes(r,t);else{var a=e.styles,o=!1;if(!a){o=!0;var s={};i.easing&&(s.easing=i.easing),a=N_(s)}t.currentTime+=i.duration+i.delay;var u=this.visitStyle(a,t);u.isEmptyStep=o,n=u}return t.currentAnimateTimings=null,{type:4,timings:i,style:n,options:null}}},{key:"visitStyle",value:function(e,t){var n=this._makeStyleAst(e,t);return this._validateStyleAst(n,t),n}},{key:"_makeStyleAst",value:function(e,t){var n=[];Array.isArray(e.styles)?e.styles.forEach(function(e){"string"==typeof e?e==R_?n.push(e):t.errors.push("The provided style string value ".concat(e," is not allowed.")):n.push(e)}):n.push(e.styles);var i=!1,r=null;return n.forEach(function(e){if(Qy(e)){var t=e,n=t.easing;if(n&&(r=n,delete t.easing),!i)for(var a in t)if(t[a].toString().indexOf("{{")>=0){i=!0;break}}}),{type:6,styles:n,easing:r,offset:e.offset,containsDynamicStyles:i,options:null}}},{key:"_validateStyleAst",value:function(e,t){var n=this,i=t.currentAnimateTimings,r=t.currentTime,a=t.currentTime;i&&a>0&&(a-=i.duration+i.delay),e.styles.forEach(function(e){"string"!=typeof e&&Object.keys(e).forEach(function(i){if(n._driver.validateStyleProperty(i)){var o=t.collectedStyles[t.currentQuerySelector],s=o[i],u=!0;s&&(a!=r&&a>=s.startTime&&r<=s.endTime&&(t.errors.push('The CSS property "'.concat(i,'" that exists between the times of "').concat(s.startTime,'ms" and "').concat(s.endTime,'ms" is also being animated in a parallel animation between the times of "').concat(a,'ms" and "').concat(r,'ms"')),u=!1),a=s.startTime),u&&(o[i]={startTime:a,endTime:r}),t.options&&(l=t.errors,c=t.options.params||{},(d=Iy(e[i])).length&&d.forEach(function(e){c.hasOwnProperty(e)||l.push("Unable to resolve the local animation param ".concat(e," in the given list of values"))}))}else t.errors.push('The provided animation property "'.concat(i,'" is not a supported CSS property for animations'));var l,c,d})})}},{key:"visitKeyframes",value:function(e,t){var n=this,i={type:5,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push("keyframes() must be placed inside of a call to animate()"),i;var r=0,a=[],o=!1,s=!1,u=0,l=e.steps.map(function(e){var i=n._makeStyleAst(e,t),l=null!=i.offset?i.offset:function(e){if("string"==typeof e)return null;var t=null;if(Array.isArray(e))e.forEach(function(e){if(Qy(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}});else if(Qy(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}return t}(i.styles),c=0;return null!=l&&(r++,c=i.offset=l),s=s||c<0||c>1,o=o||c0&&r0?r==h?1:d*r:a[r],s=o*m;t.currentTime=f+p.delay+s,p.duration=s,n._validateStyleAst(e,t),e.offset=o,i.styles.push(e)}),i}},{key:"visitReference",value:function(e,t){return{type:8,animation:Wy(this,Py(e.animation),t),options:eb(e.options)}}},{key:"visitAnimateChild",value:function(e,t){return t.depCount++,{type:9,options:eb(e.options)}}},{key:"visitAnimateRef",value:function(e,t){return{type:10,animation:this.visitReference(e.animation,t),options:eb(e.options)}}},{key:"visitQuery",value:function(e,t){var n=t.currentQuerySelector,i=e.options||{};t.queryCount++,t.currentQuery=e;var r=_(function(e){var t=!!e.split(/\s*,\s*/).find(function(e){return e==Ky});return t&&(e=e.replace(Jy,"")),[e=e.replace(/@\*/g,wy).replace(/@\w+/g,function(e){return".ng-trigger-"+e.substr(1)}).replace(/:animating/g,My),t]}(e.selector),2),a=r[0],o=r[1];t.currentQuerySelector=n.length?n+" "+a:a,iy(t.collectedStyles,t.currentQuerySelector,{});var s=Wy(this,Py(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=n,{type:11,selector:a,limit:i.limit||0,optional:!!i.optional,includeSelf:o,animation:s,originalSelector:e.selector,options:eb(e.options)}}},{key:"visitStagger",value:function(e,t){t.currentQuery||t.errors.push("stagger() can only be used inside of query()");var n="full"===e.timings?{duration:0,delay:0,easing:"full"}:Ly(e.timings,t.errors,!0);return{type:12,animation:Wy(this,Py(e.animation),t),timings:n,options:null}}}]),e}(),Xy=function e(t){s(this,e),this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null};function Qy(e){return!Array.isArray(e)&&"object"==typeof e}function eb(e){var t;return e?(e=xy(e)).params&&(e.params=(t=e.params)?xy(t):null):e={},e}function tb(e,t,n){return{duration:e,delay:t,easing:n}}function nb(e,t,n,i,r,a){var o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,s=arguments.length>7&&void 0!==arguments[7]&&arguments[7];return{type:1,element:e,keyframes:t,preStyleProps:n,postStyleProps:i,duration:r,delay:a,totalTime:r+a,easing:o,subTimeline:s}}var ib=function(){function e(){s(this,e),this._map=new Map}return o(e,[{key:"consume",value:function(e){var t=this._map.get(e);return t?this._map.delete(e):t=[],t}},{key:"append",value:function(e,t){var n,i=this._map.get(e);i||this._map.set(e,i=[]),(n=i).push.apply(n,b(t))}},{key:"has",value:function(e){return this._map.has(e)}},{key:"clear",value:function(){this._map.clear()}}]),e}(),rb=new RegExp(":enter","g"),ab=new RegExp(":leave","g");function ob(e,t,n,i,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},s=arguments.length>7?arguments[7]:void 0,u=arguments.length>8?arguments[8]:void 0,l=arguments.length>9&&void 0!==arguments[9]?arguments[9]:[];return(new sb).buildKeyframes(e,t,n,i,r,a,o,s,u,l)}var sb=function(){function e(){s(this,e)}return o(e,[{key:"buildKeyframes",value:function(e,t,n,i,r,a,o,s,u){var l=arguments.length>9&&void 0!==arguments[9]?arguments[9]:[];u=u||new ib;var c=new lb(e,t,u,i,r,l,[]);c.options=s,c.currentTimeline.setStyles([a],null,c.errors,s),Wy(this,n,c);var d=c.timelines.filter(function(e){return e.containsAnimation()});if(d.length&&Object.keys(o).length){var h=d[d.length-1];h.allowOnlyTimelineStyles()||h.setStyles([o],null,c.errors,s)}return d.length?d.map(function(e){return e.buildKeyframes()}):[nb(t,[],[],[],0,0,"",!1)]}},{key:"visitTrigger",value:function(e,t){}},{key:"visitState",value:function(e,t){}},{key:"visitTransition",value:function(e,t){}},{key:"visitAnimateChild",value:function(e,t){var n=t.subInstructions.consume(t.element);if(n){var i=t.createSubContext(e.options),r=t.currentTimeline.currentTime,a=this._visitSubInstructions(n,i,i.options);r!=a&&t.transformIntoNewTimeline(a)}t.previousNode=e}},{key:"visitAnimateRef",value:function(e,t){var n=t.createSubContext(e.options);n.transformIntoNewTimeline(),this.visitReference(e.animation,n),t.transformIntoNewTimeline(n.currentTimeline.currentTime),t.previousNode=e}},{key:"_visitSubInstructions",value:function(e,t,n){var i=t.currentTimeline.currentTime,r=null!=n.duration?Sy(n.duration):null,a=null!=n.delay?Sy(n.delay):null;return 0!==r&&e.forEach(function(e){var n=t.appendInstructionToTimeline(e,r,a);i=Math.max(i,n.duration+n.delay)}),i}},{key:"visitReference",value:function(e,t){t.updateOptions(e.options,!0),Wy(this,e.animation,t),t.previousNode=e}},{key:"visitSequence",value:function(e,t){var n=this,i=t.subContextCount,r=t,a=e.options;if(a&&(a.params||a.delay)&&((r=t.createSubContext(a)).transformIntoNewTimeline(),null!=a.delay)){6==r.previousNode.type&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=ub);var o=Sy(a.delay);r.delayNextStep(o)}e.steps.length&&(e.steps.forEach(function(e){return Wy(n,e,r)}),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),t.previousNode=e}},{key:"visitGroup",value:function(e,t){var n=this,i=[],r=t.currentTimeline.currentTime,a=e.options&&e.options.delay?Sy(e.options.delay):0;e.steps.forEach(function(o){var s=t.createSubContext(e.options);a&&s.delayNextStep(a),Wy(n,o,s),r=Math.max(r,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(function(e){return t.currentTimeline.mergeTimelineCollectedStyles(e)}),t.transformIntoNewTimeline(r),t.previousNode=e}},{key:"_visitTiming",value:function(e,t){if(e.dynamic){var n=e.strValue;return Ly(t.params?Ry(n,t.params,t.errors):n,t.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}}},{key:"visitAnimate",value:function(e,t){var n=t.currentAnimateTimings=this._visitTiming(e.timings,t),i=t.currentTimeline;n.delay&&(t.incrementTime(n.delay),i.snapshotCurrentStyles());var r=e.style;5==r.type?this.visitKeyframes(r,t):(t.incrementTime(n.duration),this.visitStyle(r,t),i.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e}},{key:"visitStyle",value:function(e,t){var n=t.currentTimeline,i=t.currentAnimateTimings;!i&&n.getCurrentStyleProperties().length&&n.forwardFrame();var r=i&&i.easing||e.easing;e.isEmptyStep?n.applyEmptyStep(r):n.setStyles(e.styles,r,t.errors,t.options),t.previousNode=e}},{key:"visitKeyframes",value:function(e,t){var n=t.currentAnimateTimings,i=t.currentTimeline.duration,r=n.duration,a=t.createSubContext().currentTimeline;a.easing=n.easing,e.styles.forEach(function(e){a.forwardTime((e.offset||0)*r),a.setStyles(e.styles,e.easing,t.errors,t.options),a.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(a),t.transformIntoNewTimeline(i+r),t.previousNode=e}},{key:"visitQuery",value:function(e,t){var n=this,i=t.currentTimeline.currentTime,r=e.options||{},a=r.delay?Sy(r.delay):0;a&&(6===t.previousNode.type||0==i&&t.currentTimeline.getCurrentStyleProperties().length)&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=ub);var o=i,s=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!r.optional,t.errors);t.currentQueryTotal=s.length;var u=null;s.forEach(function(i,r){t.currentQueryIndex=r;var s=t.createSubContext(e.options,i);a&&s.delayNextStep(a),i===t.element&&(u=s.currentTimeline),Wy(n,e.animation,s),s.currentTimeline.applyStylesToKeyframe(),o=Math.max(o,s.currentTimeline.currentTime)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(o),u&&(t.currentTimeline.mergeTimelineCollectedStyles(u),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e}},{key:"visitStagger",value:function(e,t){var n=t.parentContext,i=t.currentTimeline,r=e.timings,a=Math.abs(r.duration),o=a*(t.currentQueryTotal-1),s=a*t.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":s=o-s;break;case"full":s=n.currentStaggerTime}var u=t.currentTimeline;s&&u.delayNextStep(s);var l=u.currentTime;Wy(this,e.animation,t),t.previousNode=e,n.currentStaggerTime=i.currentTime-l+(i.startTime-n.currentTimeline.startTime)}}]),e}(),ub={},lb=function(){function e(t,n,i,r,a,o,u,l){s(this,e),this._driver=t,this.element=n,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=a,this.errors=o,this.timelines=u,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=ub,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=l||new cb(this._driver,n,0),u.push(this.currentTimeline)}return o(e,[{key:"params",get:function(){return this.options.params}},{key:"updateOptions",value:function(e,t){var n=this;if(e){var i=e,r=this.options;null!=i.duration&&(r.duration=Sy(i.duration)),null!=i.delay&&(r.delay=Sy(i.delay));var a=i.params;if(a){var o=r.params;o||(o=this.options.params={}),Object.keys(a).forEach(function(e){t&&o.hasOwnProperty(e)||(o[e]=Ry(a[e],o,n.errors))})}}}},{key:"_copyOptions",value:function(){var e={};if(this.options){var t=this.options.params;if(t){var n=e.params={};Object.keys(t).forEach(function(e){n[e]=t[e]})}}return e}},{key:"createSubContext",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0,r=n||this.element,a=new e(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return a.previousNode=this.previousNode,a.currentAnimateTimings=this.currentAnimateTimings,a.options=this._copyOptions(),a.updateOptions(t),a.currentQueryIndex=this.currentQueryIndex,a.currentQueryTotal=this.currentQueryTotal,a.parentContext=this,this.subContextCount++,a}},{key:"transformIntoNewTimeline",value:function(e){return this.previousNode=ub,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}},{key:"appendInstructionToTimeline",value:function(e,t,n){var i={duration:null!=t?t:e.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+e.delay,easing:""},r=new db(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,i,e.stretchStartingKeyframe);return this.timelines.push(r),i}},{key:"incrementTime",value:function(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}},{key:"delayNextStep",value:function(e){e>0&&this.currentTimeline.delayNextStep(e)}},{key:"invokeQuery",value:function(e,t,n,i,r,a){var o=[];if(i&&o.push(this.element),e.length>0){e=(e=e.replace(rb,"."+this._enterClassName)).replace(ab,"."+this._leaveClassName);var s=this._driver.query(this.element,e,1!=n);0!==n&&(s=n<0?s.slice(s.length+n,s.length):s.slice(0,n)),o.push.apply(o,b(s))}return r||0!=o.length||a.push('`query("'.concat(t,'")` returned zero elements. (Use `query("').concat(t,'", { optional: true })` if you wish to allow this.)')),o}}]),e}(),cb=function(){function e(t,n,i,r){s(this,e),this._driver=t,this.element=n,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(n),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(n,this._localTimelineStyles)),this._loadKeyframe()}return o(e,[{key:"containsAnimation",value:function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}},{key:"getCurrentStyleProperties",value:function(){return Object.keys(this._currentKeyframe)}},{key:"currentTime",get:function(){return this.startTime+this.duration}},{key:"delayNextStep",value:function(e){var t=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e}},{key:"fork",value:function(t,n){return this.applyStylesToKeyframe(),new e(this._driver,t,n||this.currentTime,this._elementTimelineStylesLookup)}},{key:"_loadKeyframe",value:function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}},{key:"forwardFrame",value:function(){this.duration+=1,this._loadKeyframe()}},{key:"forwardTime",value:function(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}},{key:"_updateStyle",value:function(e,t){this._localTimelineStyles[e]=t,this._globalTimelineStyles[e]=t,this._styleSummary[e]={time:this.currentTime,value:t}}},{key:"allowOnlyTimelineStyles",value:function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}},{key:"applyEmptyStep",value:function(e){var t=this;e&&(this._previousKeyframe.easing=e),Object.keys(this._globalTimelineStyles).forEach(function(e){t._backFill[e]=t._globalTimelineStyles[e]||R_,t._currentKeyframe[e]=R_}),this._currentEmptyStepKeyframe=this._currentKeyframe}},{key:"setStyles",value:function(e,t,n,i){var r=this;t&&(this._previousKeyframe.easing=t);var a=i&&i.params||{},o=function(e,t){var n,i={};return e.forEach(function(e){"*"===e?(n=n||Object.keys(t)).forEach(function(e){i[e]=R_}):Ty(e,!1,i)}),i}(e,this._globalTimelineStyles);Object.keys(o).forEach(function(e){var t=Ry(o[e],a,n);r._pendingStyles[e]=t,r._localTimelineStyles.hasOwnProperty(e)||(r._backFill[e]=r._globalTimelineStyles.hasOwnProperty(e)?r._globalTimelineStyles[e]:R_),r._updateStyle(e,t)})}},{key:"applyStylesToKeyframe",value:function(){var e=this,t=this._pendingStyles,n=Object.keys(t);0!=n.length&&(this._pendingStyles={},n.forEach(function(n){e._currentKeyframe[n]=t[n]}),Object.keys(this._localTimelineStyles).forEach(function(t){e._currentKeyframe.hasOwnProperty(t)||(e._currentKeyframe[t]=e._localTimelineStyles[t])}))}},{key:"snapshotCurrentStyles",value:function(){var e=this;Object.keys(this._localTimelineStyles).forEach(function(t){var n=e._localTimelineStyles[t];e._pendingStyles[t]=n,e._updateStyle(t,n)})}},{key:"getFinalKeyframe",value:function(){return this._keyframes.get(this.duration)}},{key:"properties",get:function(){var e=[];for(var t in this._currentKeyframe)e.push(t);return e}},{key:"mergeTimelineCollectedStyles",value:function(e){var t=this;Object.keys(e._styleSummary).forEach(function(n){var i=t._styleSummary[n],r=e._styleSummary[n];(!i||r.time>i.time)&&t._updateStyle(n,r.value)})}},{key:"buildKeyframes",value:function(){var e=this;this.applyStylesToKeyframe();var t=new Set,n=new Set,i=1===this._keyframes.size&&0===this.duration,r=[];this._keyframes.forEach(function(a,o){var s=Ty(a,!0);Object.keys(s).forEach(function(e){var i=s[e];i==J_?t.add(e):i==R_&&n.add(e)}),i||(s.offset=o/e.duration),r.push(s)});var a=t.size?Fy(t.values()):[],o=n.size?Fy(n.values()):[];if(i){var s=r[0],u=xy(s);s.offset=0,u.offset=1,r=[s,u]}return nb(this.element,r,a,o,this.duration,this.startTime,this.easing,!1)}}]),e}(),db=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o,u){var l,c=arguments.length>6&&void 0!==arguments[6]&&arguments[6];return s(this,n),(l=t.call(this,e,i,u.delay)).keyframes=r,l.preStyleProps=a,l.postStyleProps=o,l._stretchStartingKeyframe=c,l.timings={duration:u.duration,delay:u.delay,easing:u.easing},l}return o(n,[{key:"containsAnimation",value:function(){return this.keyframes.length>1}},{key:"buildKeyframes",value:function(){var e=this.keyframes,t=this.timings,n=t.delay,i=t.duration,r=t.easing;if(this._stretchStartingKeyframe&&n){var a=[],o=i+n,s=n/o,u=Ty(e[0],!1);u.offset=0,a.push(u);var l=Ty(e[0],!1);l.offset=hb(s),a.push(l);for(var c=e.length-1,d=1;d<=c;d++){var h=Ty(e[d],!1);h.offset=hb((n+h.offset*i)/o),a.push(h)}i=o,n=0,r="",e=a}return nb(this.element,e,this.preStyleProps,this.postStyleProps,i,n,r,!0)}}]),n}(cb);function hb(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=Math.pow(10,t-1);return Math.round(e*n)/n}var fb=function e(){s(this,e)},pb=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"normalizePropertyName",value:function(e,t){return jy(e)}},{key:"normalizeStyleValue",value:function(e,t,n,i){var r="",a=n.toString().trim();if(mb[t]&&0!==n&&"0"!==n)if("number"==typeof n)r="px";else{var o=n.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&0==o[1].length&&i.push("Please provide a CSS unit value for ".concat(e,":").concat(n))}return a+r}}]),n}(fb),mb=function(){return function(e){var t={};return e.forEach(function(e){return t[e]=!0}),t}("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(","))}();function gb(e,t,n,i,r,a,o,s,u,l,c,d,h){return{type:0,element:e,triggerName:t,isRemovalTransition:r,fromState:n,fromStyles:a,toState:i,toStyles:o,timelines:s,queriedElements:u,preStyleProps:l,postStyleProps:c,totalTime:d,errors:h}}var vb={},_b=function(){function e(t,n,i){s(this,e),this._triggerName=t,this.ast=n,this._stateStyles=i}return o(e,[{key:"match",value:function(e,t,n,i){return function(e,t,n,i,r){return e.some(function(e){return e(t,n,i,r)})}(this.ast.matchers,e,t,n,i)}},{key:"buildStyles",value:function(e,t,n){var i=this._stateStyles["*"],r=this._stateStyles[e],a=i?i.buildStyles(t,n):{};return r?r.buildStyles(t,n):a}},{key:"build",value:function(e,t,n,i,r,a,o,s,u,l){var c=[],d=this.ast.options&&this.ast.options.params||vb,h=this.buildStyles(n,o&&o.params||vb,c),f=s&&s.params||vb,p=this.buildStyles(i,f,c),m=new Set,g=new Map,v=new Map,_="void"===i,y={params:Object.assign(Object.assign({},d),f)},b=l?[]:ob(e,t,this.ast.animation,r,a,h,p,y,u,c),w=0;if(b.forEach(function(e){w=Math.max(e.duration+e.delay,w)}),c.length)return gb(t,this._triggerName,n,i,_,h,p,[],[],g,v,w,c);b.forEach(function(e){var n=e.element,i=iy(g,n,{});e.preStyleProps.forEach(function(e){return i[e]=!0});var r=iy(v,n,{});e.postStyleProps.forEach(function(e){return r[e]=!0}),n!==t&&m.add(n)});var k=Fy(m.values());return gb(t,this._triggerName,n,i,_,h,p,b,k,g,v,w)}}]),e}(),yb=function(){function e(t,n,i){s(this,e),this.styles=t,this.defaultParams=n,this.normalizer=i}return o(e,[{key:"buildStyles",value:function(e,t){var n=this,i={},r=xy(this.defaultParams);return Object.keys(e).forEach(function(t){var n=e[t];null!=n&&(r[t]=n)}),this.styles.styles.forEach(function(e){if("string"!=typeof e){var a=e;Object.keys(a).forEach(function(e){var o=a[e];o.length>1&&(o=Ry(o,r,t));var s=n.normalizer.normalizePropertyName(e,t);o=n.normalizer.normalizeStyleValue(e,s,o,t),i[s]=o})}}),i}}]),e}(),bb=function(){function e(t,n,i){var r=this;s(this,e),this.name=t,this.ast=n,this._normalizer=i,this.transitionFactories=[],this.states={},n.states.forEach(function(e){r.states[e.name]=new yb(e.style,e.options&&e.options.params||{},i)}),wb(this.states,"true","1"),wb(this.states,"false","0"),n.transitions.forEach(function(e){r.transitionFactories.push(new _b(t,e,r.states))}),this.fallbackTransition=new _b(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(e,t){return!0}],options:null,queryCount:0,depCount:0},this.states)}return o(e,[{key:"containsQueries",get:function(){return this.ast.queryCount>0}},{key:"matchTransition",value:function(e,t,n,i){return this.transitionFactories.find(function(r){return r.match(e,t,n,i)})||null}},{key:"matchStyles",value:function(e,t,n){return this.fallbackTransition.buildStyles(e,t,n)}}]),e}();function wb(e,t,n){e.hasOwnProperty(t)?e.hasOwnProperty(n)||(e[n]=e[t]):e.hasOwnProperty(n)&&(e[t]=e[n])}var kb=new ib,Mb=function(){function e(t,n,i){s(this,e),this.bodyNode=t,this._driver=n,this._normalizer=i,this._animations={},this._playersById={},this.players=[]}return o(e,[{key:"register",value:function(e,t){var n=[],i=Zy(this._driver,t,n);if(n.length)throw new Error("Unable to build the animation due to the following errors: ".concat(n.join("\n")));this._animations[e]=i}},{key:"_buildPlayer",value:function(e,t,n){var i=e.element,r=Q_(this._driver,this._normalizer,i,e.keyframes,t,n);return this._driver.animate(i,r,e.duration,e.delay,e.easing,[],!0)}},{key:"create",value:function(e,t){var n,i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=[],o=this._animations[e],s=new Map;if(o?(n=ob(this._driver,t,o,_y,yy,{},{},r,kb,a)).forEach(function(e){var t=iy(s,e.element,{});e.postStyleProps.forEach(function(e){return t[e]=null})}):(a.push("The requested animation doesn't exist or has already been destroyed"),n=[]),a.length)throw new Error("Unable to create the animation due to the following errors: ".concat(a.join("\n")));s.forEach(function(e,t){Object.keys(e).forEach(function(n){e[n]=i._driver.computeStyle(t,n,R_)})});var u=n.map(function(e){var t=s.get(e.element);return i._buildPlayer(e,{},t)}),l=X_(u);return this._playersById[e]=l,l.onDestroy(function(){return i.destroy(e)}),this.players.push(l),l}},{key:"destroy",value:function(e){var t=this._getPlayer(e);t.destroy(),delete this._playersById[e];var n=this.players.indexOf(t);n>=0&&this.players.splice(n,1)}},{key:"_getPlayer",value:function(e){var t=this._playersById[e];if(!t)throw new Error("Unable to find the timeline player referenced by ".concat(e));return t}},{key:"listen",value:function(e,t,n,i){var r=ny(t,"","","");return ey(this._getPlayer(e),n,r,i),function(){}}},{key:"command",value:function(e,t,n,i){if("register"!=n)if("create"!=n){var r=this._getPlayer(e);switch(n){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(i[0]));break;case"destroy":this.destroy(e)}}else this.create(e,t,i[0]||{});else this.register(e,i[0])}}]),e}(),Sb="ng-animate-queued",Cb="ng-animate-disabled",Lb=".ng-animate-disabled",xb="ng-star-inserted",Tb=[],Db={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Ob={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Eb=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";s(this,e),this.namespaceId=n;var i=t&&t.hasOwnProperty("value"),r=i?t.value:t;if(this.value=Fb(r),i){var a=xy(t);delete a.value,this.options=a}else this.options={};this.options.params||(this.options.params={})}return o(e,[{key:"params",get:function(){return this.options.params}},{key:"absorbOptions",value:function(e){var t=e.params;if(t){var n=this.options.params;Object.keys(t).forEach(function(e){null==n[e]&&(n[e]=t[e])})}}}]),e}(),Yb="void",Pb=new Eb(Yb),Ab=function(){function e(t,n,i){s(this,e),this.id=t,this.hostElement=n,this._engine=i,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,Wb(n,this._hostClassName)}return o(e,[{key:"listen",value:function(e,t,n,i){var r,a=this;if(!this._triggers.hasOwnProperty(t))throw new Error('Unable to listen on the animation trigger event "'.concat(n,'" because the animation trigger "').concat(t,"\" doesn't exist!"));if(null==n||0==n.length)throw new Error('Unable to listen on the animation trigger "'.concat(t,'" because the provided event is undefined!'));if("start"!=(r=n)&&"done"!=r)throw new Error('The provided animation trigger event "'.concat(n,'" for the animation trigger "').concat(t,'" is not supported!'));var o=iy(this._elementListeners,e,[]),s={name:t,phase:n,callback:i};o.push(s);var u=iy(this._engine.statesByElement,e,{});return u.hasOwnProperty(t)||(Wb(e,by),Wb(e,"ng-trigger-"+t),u[t]=Pb),function(){a._engine.afterFlush(function(){var e=o.indexOf(s);e>=0&&o.splice(e,1),a._triggers[t]||delete u[t]})}}},{key:"register",value:function(e,t){return!this._triggers[e]&&(this._triggers[e]=t,!0)}},{key:"_getTrigger",value:function(e){var t=this._triggers[e];if(!t)throw new Error('The provided animation trigger "'.concat(e,'" has not been registered!'));return t}},{key:"trigger",value:function(e,t,n){var i=this,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=this._getTrigger(t),o=new Rb(this.id,t,e),s=this._engine.statesByElement.get(e);s||(Wb(e,by),Wb(e,"ng-trigger-"+t),this._engine.statesByElement.set(e,s={}));var u=s[t],l=new Eb(n,this.id),c=n&&n.hasOwnProperty("value");!c&&u&&l.absorbOptions(u.options),s[t]=l,u||(u=Pb);var d=l.value===Yb;if(d||u.value!==l.value){var h=iy(this._engine.playersByElement,e,[]);h.forEach(function(e){e.namespaceId==i.id&&e.triggerName==t&&e.queued&&e.destroy()});var f=a.matchTransition(u.value,l.value,e,l.params),p=!1;if(!f){if(!r)return;f=a.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:f,fromState:u,toState:l,player:o,isFallbackTransition:p}),p||(Wb(e,Sb),o.onStart(function(){Vb(e,Sb)})),o.onDone(function(){var t=i.players.indexOf(o);t>=0&&i.players.splice(t,1);var n=i._engine.playersByElement.get(e);if(n){var r=n.indexOf(o);r>=0&&n.splice(r,1)}}),this.players.push(o),h.push(o),o}if(!qb(u.params,l.params)){var m=[],g=a.matchStyles(u.value,u.params,m),v=a.matchStyles(l.value,l.params,m);m.length?this._engine.reportError(m):this._engine.afterFlush(function(){Yy(e,g),Ey(e,v)})}}},{key:"deregister",value:function(e){var t=this;delete this._triggers[e],this._engine.statesByElement.forEach(function(t,n){delete t[e]}),this._elementListeners.forEach(function(n,i){t._elementListeners.set(i,n.filter(function(t){return t.name!=e}))})}},{key:"clearElementCache",value:function(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);var t=this._engine.playersByElement.get(e);t&&(t.forEach(function(e){return e.destroy()}),this._engine.playersByElement.delete(e))}},{key:"_signalRemovalForInnerTriggers",value:function(e,t){var n=this,i=this._engine.driver.query(e,wy,!0);i.forEach(function(e){if(!e.__ng_removed){var i=n._engine.fetchNamespacesByElement(e);i.size?i.forEach(function(n){return n.triggerLeaveAnimation(e,t,!1,!0)}):n.clearElementCache(e)}}),this._engine.afterFlushAnimationsDone(function(){return i.forEach(function(e){return n.clearElementCache(e)})})}},{key:"triggerLeaveAnimation",value:function(e,t,n,i){var r=this,a=this._engine.statesByElement.get(e);if(a){var o=[];if(Object.keys(a).forEach(function(t){if(r._triggers[t]){var n=r.trigger(e,t,Yb,i);n&&o.push(n)}}),o.length)return this._engine.markElementAsRemoved(this.id,e,!0,t),n&&X_(o).onDone(function(){return r._engine.processLeaveNode(e)}),!0}return!1}},{key:"prepareLeaveAnimationListeners",value:function(e){var t=this,n=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(n&&i){var r=new Set;n.forEach(function(n){var a=n.name;if(!r.has(a)){r.add(a);var o=t._triggers[a].fallbackTransition,s=i[a]||Pb,u=new Eb(Yb),l=new Rb(t.id,a,e);t._engine.totalQueuedPlayers++,t._queue.push({element:e,triggerName:a,transition:o,fromState:s,toState:u,player:l,isFallbackTransition:!0})}})}}},{key:"removeNode",value:function(e,t){var n=this,i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t),!this.triggerLeaveAnimation(e,t,!0)){var r=!1;if(i.totalAnimations){var a=i.players.length?i.playersByQueriedElement.get(e):[];if(a&&a.length)r=!0;else for(var o=e;o=o.parentNode;)if(i.statesByElement.get(o)){r=!0;break}}if(this.prepareLeaveAnimationListeners(e),r)i.markElementAsRemoved(this.id,e,!1,t);else{var s=e.__ng_removed;s&&s!==Db||(i.afterFlush(function(){return n.clearElementCache(e)}),i.destroyInnerAnimations(e),i._onRemovalComplete(e,t))}}}},{key:"insertNode",value:function(e,t){Wb(e,this._hostClassName)}},{key:"drainQueuedTransitions",value:function(e){var t=this,n=[];return this._queue.forEach(function(i){var r=i.player;if(!r.destroyed){var a=i.element,o=t._elementListeners.get(a);o&&o.forEach(function(t){if(t.name==i.triggerName){var n=ny(a,i.triggerName,i.fromState.value,i.toState.value);n._data=e,ey(i.player,t.phase,n,t.callback)}}),r.markedForDestroy?t._engine.afterFlush(function(){r.destroy()}):n.push(i)}}),this._queue=[],n.sort(function(e,n){var i=e.transition.ast.depCount,r=n.transition.ast.depCount;return 0==i||0==r?i-r:t._engine.driver.containsElement(e.element,n.element)?1:-1})}},{key:"destroy",value:function(e){this.players.forEach(function(e){return e.destroy()}),this._signalRemovalForInnerTriggers(this.hostElement,e)}},{key:"elementContainsData",value:function(e){var t=!1;return this._elementListeners.has(e)&&(t=!0),!!this._queue.find(function(t){return t.element===e})||t}}]),e}(),Ib=function(){function e(t,n,i){s(this,e),this.bodyNode=t,this.driver=n,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=function(e,t){}}return o(e,[{key:"_onRemovalComplete",value:function(e,t){this.onRemovalComplete(e,t)}},{key:"queuedPlayers",get:function(){var e=[];return this._namespaceList.forEach(function(t){t.players.forEach(function(t){t.queued&&e.push(t)})}),e}},{key:"createNamespace",value:function(e,t){var n=new Ab(e,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(n,t):(this.newHostElements.set(t,n),this.collectEnterElement(t)),this._namespaceLookup[e]=n}},{key:"_balanceNamespaceList",value:function(e,t){var n=this._namespaceList.length-1;if(n>=0){for(var i=!1,r=n;r>=0;r--)if(this.driver.containsElement(this._namespaceList[r].hostElement,t)){this._namespaceList.splice(r+1,0,e),i=!0;break}i||this._namespaceList.splice(0,0,e)}else this._namespaceList.push(e);return this.namespacesByHostElement.set(t,e),e}},{key:"register",value:function(e,t){var n=this._namespaceLookup[e];return n||(n=this.createNamespace(e,t)),n}},{key:"registerTrigger",value:function(e,t,n){var i=this._namespaceLookup[e];i&&i.register(t,n)&&this.totalAnimations++}},{key:"destroy",value:function(e,t){var n=this;if(e){var i=this._fetchNamespace(e);this.afterFlush(function(){n.namespacesByHostElement.delete(i.hostElement),delete n._namespaceLookup[e];var t=n._namespaceList.indexOf(i);t>=0&&n._namespaceList.splice(t,1)}),this.afterFlushAnimationsDone(function(){return i.destroy(t)})}}},{key:"_fetchNamespace",value:function(e){return this._namespaceLookup[e]}},{key:"fetchNamespacesByElement",value:function(e){var t=new Set,n=this.statesByElement.get(e);if(n)for(var i=Object.keys(n),r=0;r=0&&this.collectedLeaveElements.splice(a,1)}if(e){var o=this._fetchNamespace(e);o&&o.insertNode(t,n)}i&&this.collectEnterElement(t)}}},{key:"collectEnterElement",value:function(e){this.collectedEnterElements.push(e)}},{key:"markElementAsDisabled",value:function(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Wb(e,Cb)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Vb(e,Cb))}},{key:"removeNode",value:function(e,t,n,i){if(Hb(t)){var r=e?this._fetchNamespace(e):null;if(r?r.removeNode(t,i):this.markElementAsRemoved(e,t,!1,i),n){var a=this.namespacesByHostElement.get(t);a&&a.id!==e&&a.removeNode(t,i)}}else this._onRemovalComplete(t,i)}},{key:"markElementAsRemoved",value:function(e,t,n,i){this.collectedLeaveElements.push(t),t.__ng_removed={namespaceId:e,setForRemoval:i,hasAnimation:n,removedBeforeQueried:!1}}},{key:"listen",value:function(e,t,n,i,r){return Hb(t)?this._fetchNamespace(e).listen(t,n,i,r):function(){}}},{key:"_buildInstruction",value:function(e,t,n,i,r){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,n,i,e.fromState.options,e.toState.options,t,r)}},{key:"destroyInnerAnimations",value:function(e){var t=this,n=this.driver.query(e,wy,!0);n.forEach(function(e){return t.destroyActiveAnimationsForElement(e)}),0!=this.playersByQueriedElement.size&&(n=this.driver.query(e,My,!0)).forEach(function(e){return t.finishActiveQueriedAnimationOnElement(e)})}},{key:"destroyActiveAnimationsForElement",value:function(e){var t=this.playersByElement.get(e);t&&t.forEach(function(e){e.queued?e.markedForDestroy=!0:e.destroy()})}},{key:"finishActiveQueriedAnimationOnElement",value:function(e){var t=this.playersByQueriedElement.get(e);t&&t.forEach(function(e){return e.finish()})}},{key:"whenRenderingDone",value:function(){var e=this;return new Promise(function(t){if(e.players.length)return X_(e.players).onDone(function(){return t()});t()})}},{key:"processLeaveNode",value:function(e){var t=this,n=e.__ng_removed;if(n&&n.setForRemoval){if(e.__ng_removed=Db,n.namespaceId){this.destroyInnerAnimations(e);var i=this._fetchNamespace(n.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,n.setForRemoval)}this.driver.matchesElement(e,Lb)&&this.markElementAsDisabled(e,!1),this.driver.query(e,Lb,!0).forEach(function(e){t.markElementAsDisabled(e,!1)})}},{key:"flush",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,n=[];if(this.newHostElements.size&&(this.newHostElements.forEach(function(t,n){return e._balanceNamespaceList(t,n)}),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(var i=0;i=0;x--)this._namespaceList[x].drainQueuedTransitions(t).forEach(function(e){var t=e.player,a=e.element;if(C.push(t),n.collectedEnterElements.length){var c=a.__ng_removed;if(c&&c.setForMove)return void t.destroy()}var h=!d||!n.driver.containsElement(d,a),f=M.get(a),m=p.get(a),g=n._buildInstruction(e,i,m,f,h);if(g.errors&&g.errors.length)L.push(g);else{if(h)return t.onStart(function(){return Yy(a,g.fromStyles)}),t.onDestroy(function(){return Ey(a,g.toStyles)}),void r.push(t);if(e.isFallbackTransition)return t.onStart(function(){return Yy(a,g.fromStyles)}),t.onDestroy(function(){return Ey(a,g.toStyles)}),void r.push(t);g.timelines.forEach(function(e){return e.stretchStartingKeyframe=!0}),i.append(a,g.timelines),o.push({instruction:g,player:t,element:a}),g.queriedElements.forEach(function(e){return iy(s,e,[]).push(t)}),g.preStyleProps.forEach(function(e,t){var n=Object.keys(e);if(n.length){var i=u.get(t);i||u.set(t,i=new Set),n.forEach(function(e){return i.add(e)})}}),g.postStyleProps.forEach(function(e,t){var n=Object.keys(e),i=l.get(t);i||l.set(t,i=new Set),n.forEach(function(e){return i.add(e)})})}});if(L.length){var T=[];L.forEach(function(e){T.push("@".concat(e.triggerName," has failed due to:\n")),e.errors.forEach(function(e){return T.push("- ".concat(e,"\n"))})}),C.forEach(function(e){return e.destroy()}),this.reportError(T)}var D=new Map,O=new Map;o.forEach(function(e){var t=e.element;i.has(t)&&(O.set(t,t),n._beforeAnimationBuild(e.player.namespaceId,e.instruction,D))}),r.forEach(function(e){var t=e.element;n._getPreviousPlayers(t,!1,e.namespaceId,e.triggerName,null).forEach(function(e){iy(D,t,[]).push(e),e.destroy()})});var E=g.filter(function(e){return Gb(e,u,l)}),Y=new Map;Nb(Y,this.driver,_,l,R_).forEach(function(e){Gb(e,u,l)&&E.push(e)});var P=new Map;f.forEach(function(e,t){Nb(P,n.driver,new Set(e),u,J_)}),E.forEach(function(e){var t=Y.get(e),n=P.get(e);Y.set(e,Object.assign(Object.assign({},t),n))});var A=[],I=[],R={};o.forEach(function(e){var t=e.element,o=e.player,s=e.instruction;if(i.has(t)){if(c.has(t))return o.onDestroy(function(){return Ey(t,s.toStyles)}),o.disabled=!0,o.overrideTotalTime(s.totalTime),void r.push(o);var u=R;if(O.size>1){for(var l=t,d=[];l=l.parentNode;){var h=O.get(l);if(h){u=h;break}d.push(l)}d.forEach(function(e){return O.set(e,u)})}var f=n._buildAnimation(o.namespaceId,s,D,a,P,Y);if(o.setRealPlayer(f),u===R)A.push(o);else{var p=n.playersByElement.get(u);p&&p.length&&(o.parentPlayer=X_(p)),r.push(o)}}else Yy(t,s.fromStyles),o.onDestroy(function(){return Ey(t,s.toStyles)}),I.push(o),c.has(t)&&r.push(o)}),I.forEach(function(e){var t=a.get(e.element);if(t&&t.length){var n=X_(t);e.setRealPlayer(n)}}),r.forEach(function(e){e.parentPlayer?e.syncPlayerEvents(e.parentPlayer):e.destroy()});for(var F=0;F0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,n):new G_(e.duration,e.delay)}}]),e}(),Rb=function(){function e(t,n,i){s(this,e),this.namespaceId=t,this.triggerName=n,this.element=i,this._player=new G_,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}return o(e,[{key:"setRealPlayer",value:function(e){var t=this;this._containsRealPlayer||(this._player=e,Object.keys(this._queuedCallbacks).forEach(function(n){t._queuedCallbacks[n].forEach(function(t){return ey(e,n,void 0,t)})}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}},{key:"getRealPlayer",value:function(){return this._player}},{key:"overrideTotalTime",value:function(e){this.totalTime=e}},{key:"syncPlayerEvents",value:function(e){var t=this,n=this._player;n.triggerCallback&&e.onStart(function(){return n.triggerCallback("start")}),e.onDone(function(){return t.finish()}),e.onDestroy(function(){return t.destroy()})}},{key:"_queueEvent",value:function(e,t){iy(this._queuedCallbacks,e,[]).push(t)}},{key:"onDone",value:function(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}},{key:"onStart",value:function(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}},{key:"onDestroy",value:function(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}},{key:"init",value:function(){this._player.init()}},{key:"hasStarted",value:function(){return!this.queued&&this._player.hasStarted()}},{key:"play",value:function(){!this.queued&&this._player.play()}},{key:"pause",value:function(){!this.queued&&this._player.pause()}},{key:"restart",value:function(){!this.queued&&this._player.restart()}},{key:"finish",value:function(){this._player.finish()}},{key:"destroy",value:function(){this.destroyed=!0,this._player.destroy()}},{key:"reset",value:function(){!this.queued&&this._player.reset()}},{key:"setPosition",value:function(e){this.queued||this._player.setPosition(e)}},{key:"getPosition",value:function(){return this.queued?0:this._player.getPosition()}},{key:"triggerCallback",value:function(e){var t=this._player;t.triggerCallback&&t.triggerCallback(e)}}]),e}();function Fb(e){return null!=e?e:null}function Hb(e){return e&&1===e.nodeType}function jb(e,t){var n=e.style.display;return e.style.display=null!=t?t:"none",n}function Nb(e,t,n,i,r){var a=[];n.forEach(function(e){return a.push(jb(e))});var o=[];i.forEach(function(n,i){var a={};n.forEach(function(e){var n=a[e]=t.computeStyle(i,e,r);n&&0!=n.length||(i.__ng_removed=Ob,o.push(i))}),e.set(i,a)});var s=0;return n.forEach(function(e){return jb(e,a[s++])}),o}function Bb(e,t){var n=new Map;if(e.forEach(function(e){return n.set(e,[])}),0==t.length)return n;var i=new Set(t),r=new Map;function a(e){if(!e)return 1;var t=r.get(e);if(t)return t;var o=e.parentNode;return t=n.has(o)?o:i.has(o)?1:a(o),r.set(e,t),t}return t.forEach(function(e){var t=a(e);1!==t&&n.get(t).push(e)}),n}function Wb(e,t){if(e.classList)e.classList.add(t);else{var n=e.$$classes;n||(n=e.$$classes={}),n[t]=!0}}function Vb(e,t){if(e.classList)e.classList.remove(t);else{var n=e.$$classes;n&&delete n[t]}}function Ub(e,t,n){X_(n).onDone(function(){return e.processLeaveNode(t)})}function zb(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:-1;this._transitionEngine.flush(e)}},{key:"players",get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)}},{key:"whenRenderingDone",value:function(){return this._transitionEngine.whenRenderingDone()}}]),e}();function Jb(e,t){var n=null,i=null;return Array.isArray(t)&&t.length?(n=$b(t[0]),t.length>1&&(i=$b(t[t.length-1]))):t&&(n=$b(t)),n||i?new Zb(e,n,i):null}var Zb=function(){var e=function(){function e(t,n,i){s(this,e),this._element=t,this._startStyles=n,this._endStyles=i,this._state=0;var r=e.initialStylesByElement.get(t);r||e.initialStylesByElement.set(t,r={}),this._initialStyles=r}return o(e,[{key:"start",value:function(){this._state<1&&(this._startStyles&&Ey(this._element,this._startStyles,this._initialStyles),this._state=1)}},{key:"finish",value:function(){this.start(),this._state<2&&(Ey(this._element,this._initialStyles),this._endStyles&&(Ey(this._element,this._endStyles),this._endStyles=null),this._state=1)}},{key:"destroy",value:function(){this.finish(),this._state<3&&(e.initialStylesByElement.delete(this._element),this._startStyles&&(Yy(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Yy(this._element,this._endStyles),this._endStyles=null),Ey(this._element,this._initialStyles),this._state=3)}}]),e}();return e.initialStylesByElement=new WeakMap,e}();function $b(e){for(var t=null,n=Object.keys(e),i=0;i=this._delay&&n>=this._duration&&this.finish()}},{key:"finish",value:function(){this._finished||(this._finished=!0,this._onDoneFn(),aw(this._element,this._eventFn,!0))}},{key:"destroy",value:function(){var e,t,n,i;this._destroyed||(this._destroyed=!0,this.finish(),t=this._name,(i=rw(n=sw(e=this._element,"").split(","),t))>=0&&(n.splice(i,1),ow(e,"",n.join(","))))}}]),e}();function nw(e,t,n){ow(e,"PlayState",n,iw(e,t))}function iw(e,t){var n=sw(e,"");return n.indexOf(",")>0?rw(n.split(","),t):rw([n],t)}function rw(e,t){for(var n=0;n=0)return n;return-1}function aw(e,t,n){n?e.removeEventListener(ew,t):e.addEventListener(ew,t)}function ow(e,t,n,i){var r=Qb+t;if(null!=i){var a=e.style[r];if(a.length){var o=a.split(",");o[i]=n,n=o.join(",")}}e.style[r]=n}function sw(e,t){return e.style[Qb+t]||""}var uw=function(){function e(t,n,i,r,a,o,u,l){s(this,e),this.element=t,this.keyframes=n,this.animationName=i,this._duration=r,this._delay=a,this._finalStyles=u,this._specialStyles=l,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this.currentSnapshot={},this._state=0,this.easing=o||"linear",this.totalTime=r+a,this._buildStyler()}return o(e,[{key:"onStart",value:function(e){this._onStartFns.push(e)}},{key:"onDone",value:function(e){this._onDoneFns.push(e)}},{key:"onDestroy",value:function(e){this._onDestroyFns.push(e)}},{key:"destroy",value:function(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])}},{key:"_flushDoneFns",value:function(){this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[]}},{key:"_flushStartFns",value:function(){this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[]}},{key:"finish",value:function(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())}},{key:"setPosition",value:function(e){this._styler.setPosition(e)}},{key:"getPosition",value:function(){return this._styler.getPosition()}},{key:"hasStarted",value:function(){return this._state>=2}},{key:"init",value:function(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())}},{key:"play",value:function(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()}},{key:"pause",value:function(){this.init(),this._styler.pause()}},{key:"restart",value:function(){this.reset(),this.play()}},{key:"reset",value:function(){this._state=0,this._styler.destroy(),this._buildStyler(),this._styler.apply()}},{key:"_buildStyler",value:function(){var e=this;this._styler=new tw(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",function(){return e.finish()})}},{key:"triggerCallback",value:function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(function(e){return e()}),t.length=0}},{key:"beforeDestroy",value:function(){var e=this;this.init();var t={};if(this.hasStarted()){var n=this._state>=3;Object.keys(this._finalStyles).forEach(function(i){"offset"!=i&&(t[i]=n?e._finalStyles[i]:Vy(e.element,i))})}this.currentSnapshot=t}}]),e}(),lw=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this)).element=e,r._startingStyles={},r.__initialized=!1,r._styles=my(i),r}return o(n,[{key:"init",value:function(){var e=this;!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach(function(t){e._startingStyles[t]=e.element.style[t]}),r(i(n.prototype),"init",this).call(this))}},{key:"play",value:function(){var e=this;this._startingStyles&&(this.init(),Object.keys(this._styles).forEach(function(t){return e.element.style.setProperty(t,e._styles[t])}),r(i(n.prototype),"play",this).call(this))}},{key:"destroy",value:function(){var e=this;this._startingStyles&&(Object.keys(this._startingStyles).forEach(function(t){var n=e._startingStyles[t];n?e.element.style.setProperty(t,n):e.element.style.removeProperty(t)}),this._startingStyles=null,r(i(n.prototype),"destroy",this).call(this))}}]),n}(G_),cw="gen_css_kf_",dw=function(){function e(){s(this,e),this._count=0}return o(e,[{key:"validateStyleProperty",value:function(e){return dy(e)}},{key:"matchesElement",value:function(e,t){return hy(e,t)}},{key:"containsElement",value:function(e,t){return fy(e,t)}},{key:"query",value:function(e,t,n){return py(e,t,n)}},{key:"computeStyle",value:function(e,t,n){return window.getComputedStyle(e)[t]}},{key:"buildKeyframeElement",value:function(e,t,n){n=n.map(function(e){return my(e)});var i="@keyframes ".concat(t," {\n"),r="";n.forEach(function(e){r=" ";var t=parseFloat(e.offset);i+="".concat(r).concat(100*t,"% {\n"),r+=" ",Object.keys(e).forEach(function(t){var n=e[t];switch(t){case"offset":return;case"easing":return void(n&&(i+="".concat(r,"animation-timing-function: ").concat(n,";\n")));default:return void(i+="".concat(r).concat(t,": ").concat(n,";\n"))}}),i+="".concat(r,"}\n")}),i+="}\n";var a=document.createElement("style");return a.textContent=i,a}},{key:"animate",value:function(e,t,n,i,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],o=a.filter(function(e){return e instanceof uw}),s={};Ny(n,i)&&o.forEach(function(e){var t=e.currentSnapshot;Object.keys(t).forEach(function(e){return s[e]=t[e]})});var u=fw(t=By(e,t,s));if(0==n)return new lw(e,u);var l="".concat(cw).concat(this._count++),c=this.buildKeyframeElement(e,l,t),d=hw(e);d.appendChild(c);var h=Jb(e,t),f=new uw(e,t,l,n,i,r,u,h);return f.onDestroy(function(){return pw(c)}),f}}]),e}();function hw(e){var t,n=null===(t=e.getRootNode)||void 0===t?void 0:t.call(e);return"undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot?n:document.head}function fw(e){var t={};return e&&(Array.isArray(e)?e:[e]).forEach(function(e){Object.keys(e).forEach(function(n){"offset"!=n&&"easing"!=n&&(t[n]=e[n])})}),t}function pw(e){e.parentNode.removeChild(e)}var mw=function(){function e(t,n,i,r){s(this,e),this.element=t,this.keyframes=n,this.options=i,this._specialStyles=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}return o(e,[{key:"_onFinish",value:function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])}},{key:"init",value:function(){this._buildPlayer(),this._preparePlayerBeforeStart()}},{key:"_buildPlayer",value:function(){var e=this;if(!this._initialized){this._initialized=!0;var t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this.domPlayer.addEventListener("finish",function(){return e._onFinish()})}}},{key:"_preparePlayerBeforeStart",value:function(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}},{key:"_triggerWebAnimation",value:function(e,t,n){return e.animate(t,n)}},{key:"onStart",value:function(e){this._onStartFns.push(e)}},{key:"onDone",value:function(e){this._onDoneFns.push(e)}},{key:"onDestroy",value:function(e){this._onDestroyFns.push(e)}},{key:"play",value:function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}},{key:"pause",value:function(){this.init(),this.domPlayer.pause()}},{key:"finish",value:function(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}},{key:"reset",value:function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1}},{key:"_resetDomPlayerState",value:function(){this.domPlayer&&this.domPlayer.cancel()}},{key:"restart",value:function(){this.reset(),this.play()}},{key:"hasStarted",value:function(){return this._started}},{key:"destroy",value:function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])}},{key:"setPosition",value:function(e){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=e*this.time}},{key:"getPosition",value:function(){return this.domPlayer.currentTime/this.time}},{key:"totalTime",get:function(){return this._delay+this._duration}},{key:"beforeDestroy",value:function(){var e=this,t={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(function(n){"offset"!=n&&(t[n]=e._finished?e._finalKeyframe[n]:Vy(e.element,n))}),this.currentSnapshot=t}},{key:"triggerCallback",value:function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(function(e){return e()}),t.length=0}}]),e}(),gw=function(){function e(){s(this,e),this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(vw().toString()),this._cssKeyframesDriver=new dw}return o(e,[{key:"validateStyleProperty",value:function(e){return dy(e)}},{key:"matchesElement",value:function(e,t){return hy(e,t)}},{key:"containsElement",value:function(e,t){return fy(e,t)}},{key:"query",value:function(e,t,n){return py(e,t,n)}},{key:"computeStyle",value:function(e,t,n){return window.getComputedStyle(e)[t]}},{key:"overrideWebAnimationsSupport",value:function(e){this._isNativeImpl=e}},{key:"animate",value:function(e,t,n,i,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],o=arguments.length>6?arguments[6]:void 0,s=!o&&!this._isNativeImpl;if(s)return this._cssKeyframesDriver.animate(e,t,n,i,r,a);var u=0==i?"both":"forwards",l={duration:n,delay:i,fill:u};r&&(l.easing=r);var c={},d=a.filter(function(e){return e instanceof mw});Ny(n,i)&&d.forEach(function(e){var t=e.currentSnapshot;Object.keys(t).forEach(function(e){return c[e]=t[e]})});var h=Jb(e,t=By(e,t=t.map(function(e){return Ty(e,!1)}),c));return new mw(e,t,l,h)}}]),e}();function vw(){return Z_()&&Element.prototype.animate||{}}var _w=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this))._nextAnimationId=0,r._renderer=e.createRenderer(i.body,{id:"0",encapsulation:$e.None,styles:[],data:{animation:[]}}),r}return o(n,[{key:"build",value:function(e){var t=this._nextAnimationId.toString();this._nextAnimationId++;var n=Array.isArray(e)?j_(e):e;return ww(this._renderer,null,t,"register",[n]),new yw(t,this._renderer)}}]),n}(A_);return e.\u0275fac=function(t){return new(t||e)(Bi(ju),Bi(yd))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),yw=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this))._id=e,r._renderer=i,r}return o(n,[{key:"create",value:function(e,t){return new bw(this._id,e,t||{},this._renderer)}}]),n}(I_),bw=function(){function e(t,n,i,r){s(this,e),this.id=t,this.element=n,this._renderer=r,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}return o(e,[{key:"_listen",value:function(e,t){return this._renderer.listen(this.element,"@@".concat(this.id,":").concat(e),t)}},{key:"_command",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i=0&&e3&&void 0!==arguments[3])||arguments[3];this.delegate.insertBefore(e,t,n),this.engine.onInsert(this.namespaceId,t,e,i)}},{key:"removeChild",value:function(e,t,n){this.engine.onRemove(this.namespaceId,t,this.delegate,n)}},{key:"selectRootElement",value:function(e,t){return this.delegate.selectRootElement(e,t)}},{key:"parentNode",value:function(e){return this.delegate.parentNode(e)}},{key:"nextSibling",value:function(e){return this.delegate.nextSibling(e)}},{key:"setAttribute",value:function(e,t,n,i){this.delegate.setAttribute(e,t,n,i)}},{key:"removeAttribute",value:function(e,t,n){this.delegate.removeAttribute(e,t,n)}},{key:"addClass",value:function(e,t){this.delegate.addClass(e,t)}},{key:"removeClass",value:function(e,t){this.delegate.removeClass(e,t)}},{key:"setStyle",value:function(e,t,n,i){this.delegate.setStyle(e,t,n,i)}},{key:"removeStyle",value:function(e,t,n){this.delegate.removeStyle(e,t,n)}},{key:"setProperty",value:function(e,t,n){t.charAt(0)==kw&&t==Mw?this.disableAnimations(e,!!n):this.delegate.setProperty(e,t,n)}},{key:"setValue",value:function(e,t){this.delegate.setValue(e,t)}},{key:"listen",value:function(e,t,n){return this.delegate.listen(e,t,n)}},{key:"disableAnimations",value:function(e,t){this.engine.disableAnimations(e,t)}}]),e}(),Lw=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;return s(this,n),(o=t.call(this,i,r,a)).factory=e,o.namespaceId=i,o}return o(n,[{key:"setProperty",value:function(e,t,n){t.charAt(0)==kw?"."==t.charAt(1)&&t==Mw?this.disableAnimations(e,n=void 0===n||!!n):this.engine.process(this.namespaceId,e,t.substr(1),n):this.delegate.setProperty(e,t,n)}},{key:"listen",value:function(e,t,n){var i,r,a=this;if(t.charAt(0)==kw){var o=function(e){switch(e){case"body":return document.body;case"document":return document;case"window":return window;default:return e}}(e),s=t.substr(1),u="";if(s.charAt(0)!=kw){var l=_((r=(i=s).indexOf("."),[i.substring(0,r),i.substr(r+1)]),2);s=l[0],u=l[1]}return this.engine.listen(this.namespaceId,o,s,u,function(e){a.factory.scheduleListenerCallback(e._data||-1,n,e)})}return this.delegate.listen(e,t,n)}}]),n}(Cw),xw=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r){return s(this,n),t.call(this,e.body,i,r)}return o(n,[{key:"ngOnDestroy",value:function(){this.flush()}}]),n}(Kb);return e.\u0275fac=function(t){return new(t||e)(Bi(yd),Bi(vy),Bi(fb))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),Tw=new Mi("AnimationModuleType"),Dw=[{provide:A_,useClass:_w},{provide:fb,useFactory:function(){return new pb}},{provide:Kb,useClass:xw},{provide:ju,useFactory:function(e,t,n){return new Sw(e,t,n)},deps:[Qh,Kb,Fc]}],Ow=([{provide:vy,useFactory:function(){return"function"==typeof vw()?new gw:new dw}},{provide:Tw,useValue:"BrowserAnimations"}].concat(Dw),[{provide:vy,useClass:gy},{provide:Tw,useValue:"NoopAnimations"}].concat(Dw)),Ew=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:Ow,imports:[mf]}),e}(),Yw=["*",[["mat-option"],["ng-container"]]],Pw=["*","mat-option, ng-container"];function Aw(e,t){if(1&e&&ys(0,"mat-pseudo-checkbox",4),2&e){var n=Ys();ms("state",n.selected?"checked":"unchecked")("disabled",n.disabled)}}function Iw(e,t){if(1&e&&(vs(0,"span",5),ru(1),_s()),2&e){var n=Ys();Ya(1),ou("(",n.group.label,")")}}var Rw=["*"],Fw=new Vu("12.2.3"),Hw=new Mi("mat-sanity-checks",{providedIn:"root",factory:function(){return!0}}),jw=function(){var e=function(){function e(t,n,i){s(this,e),this._hasDoneGlobalChecks=!1,this._document=i,t._applyBodyHighContrastModeCssClasses(),this._sanityChecks=n,this._hasDoneGlobalChecks||(this._checkDoctypeIsDefined(),this._checkThemeIsPresent(),this._checkCdkVersionMatch(),this._hasDoneGlobalChecks=!0)}return o(e,[{key:"_getWindow",value:function(){var e=this._document.defaultView||window;return"object"==typeof e&&e?e:null}},{key:"_checkIsEnabled",value:function(e){return!(!Zc()||this._isTestEnv())&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}},{key:"_isTestEnv",value:function(){var e=this._getWindow();return e&&(e.__karma__||e.jasmine)}},{key:"_checkDoctypeIsDefined",value:function(){this._checkIsEnabled("doctype")&&!this._document.doctype&&console.warn("Current document does not have a doctype. This may cause some Angular Material components not to behave as expected.")}},{key:"_checkThemeIsPresent",value:function(){if(this._checkIsEnabled("theme")&&this._document.body&&"function"==typeof getComputedStyle){var e=this._document.createElement("div");e.classList.add("mat-theme-loaded-marker"),this._document.body.appendChild(e);var t=getComputedStyle(e);t&&"none"!==t.display&&console.warn("Could not find Angular Material core theme. Most Material components may not work as expected. For more info refer to the theming guide: https://material.angular.io/guide/theming"),this._document.body.removeChild(e)}}},{key:"_checkCdkVersionMatch",value:function(){this._checkIsEnabled("version")&&Fw.full!==P_.full&&console.warn("The Angular Material version ("+Fw.full+") does not match the Angular CDK version ("+P_.full+").\nPlease ensure the versions of these two packages exactly match.")}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(E_),Bi(Hw,8),Bi(yd))},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[Og],Og]}),e}();function Nw(e){return function(e){l(n,e);var t=p(n);function n(){var e;s(this,n);for(var i=arguments.length,r=new Array(i),a=0;a1&&void 0!==arguments[1]?arguments[1]:0;return function(e){l(i,e);var n=p(i);function i(){var e;s(this,i);for(var r=arguments.length,a=new Array(r),o=0;o2&&void 0!==arguments[2]?arguments[2]:{},r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),a=Object.assign(Object.assign({},Kw),i.animation);i.centered&&(e=r.left+r.width/2,t=r.top+r.height/2);var o=i.radius||ek(e,t,r),s=e-r.left,u=t-r.top,l=a.enterDuration,c=document.createElement("div");c.classList.add("mat-ripple-element"),c.style.left="".concat(s-o,"px"),c.style.top="".concat(u-o,"px"),c.style.height="".concat(2*o,"px"),c.style.width="".concat(2*o,"px"),null!=i.color&&(c.style.backgroundColor=i.color),c.style.transitionDuration="".concat(l,"ms"),this._containerElement.appendChild(c),Qw(c),c.style.transform="scale(1)";var d=new Gw(this,c,i);return d.state=0,this._activeRipples.add(d),i.persistent||(this._mostRecentTransientRipple=d),this._runTimeoutOutsideZone(function(){var e=d===n._mostRecentTransientRipple;d.state=1,i.persistent||e&&n._isPointerDown||d.fadeOut()},l),d}},{key:"fadeOutRipple",value:function(e){var t=this._activeRipples.delete(e);if(e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),this._activeRipples.size||(this._containerRect=null),t){var n=e.element,i=Object.assign(Object.assign({},Kw),e.config.animation);n.style.transitionDuration="".concat(i.exitDuration,"ms"),n.style.opacity="0",e.state=2,this._runTimeoutOutsideZone(function(){e.state=3,n.parentNode.removeChild(n)},i.exitDuration)}}},{key:"fadeOutAll",value:function(){this._activeRipples.forEach(function(e){return e.fadeOut()})}},{key:"fadeOutAllNonPersistent",value:function(){this._activeRipples.forEach(function(e){e.config.persistent||e.fadeOut()})}},{key:"setupTriggerEvents",value:function(e){var t=ym(e);t&&t!==this._triggerElement&&(this._removeTriggerEvents(),this._triggerElement=t,this._registerEvents(Zw))}},{key:"handleEvent",value:function(e){"mousedown"===e.type?this._onMousedown(e):"touchstart"===e.type?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._registerEvents($w),this._pointerUpEventsRegistered=!0)}},{key:"_onMousedown",value:function(e){var t=g_(e),n=this._lastTouchStartEvent&&Date.now()1&&void 0!==arguments[1]?arguments[1]:0;this._ngZone.runOutsideAngular(function(){return setTimeout(e,t)})}},{key:"_registerEvents",value:function(e){var t=this;this._ngZone.runOutsideAngular(function(){e.forEach(function(e){t._triggerElement.addEventListener(e,t,Jw)})})}},{key:"_removeTriggerEvents",value:function(){var e=this;this._triggerElement&&(Zw.forEach(function(t){e._triggerElement.removeEventListener(t,e,Jw)}),this._pointerUpEventsRegistered&&$w.forEach(function(t){e._triggerElement.removeEventListener(t,e,Jw)}))}}]),e}();function Qw(e){window.getComputedStyle(e).getPropertyValue("opacity")}function ek(e,t,n){var i=Math.max(Math.abs(e-n.left),Math.abs(e-n.right)),r=Math.max(Math.abs(t-n.top),Math.abs(t-n.bottom));return Math.sqrt(i*i+r*r)}var tk=new Mi("mat-ripple-global-options"),nk=function(){var e=function(){function e(t,n,i,r,a){s(this,e),this._elementRef=t,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=r||{},this._rippleRenderer=new Xw(this,n,t,i)}return o(e,[{key:"disabled",get:function(){return this._disabled},set:function(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}},{key:"trigger",get:function(){return this._trigger||this._elementRef.nativeElement},set:function(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}},{key:"ngOnInit",value:function(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}},{key:"ngOnDestroy",value:function(){this._rippleRenderer._removeTriggerEvents()}},{key:"fadeOutAll",value:function(){this._rippleRenderer.fadeOutAll()}},{key:"fadeOutAllNonPersistent",value:function(){this._rippleRenderer.fadeOutAllNonPersistent()}},{key:"rippleConfig",get:function(){return{centered:this.centered,radius:this.radius,color:this.color,animation:Object.assign(Object.assign(Object.assign({},this._globalOptions.animation),"NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}},{key:"rippleDisabled",get:function(){return this.disabled||!!this._globalOptions.disabled}},{key:"_setupTriggerEventsIfEnabled",value:function(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}},{key:"launch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0;return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,t,Object.assign(Object.assign({},this.rippleConfig),n)):this._rippleRenderer.fadeInRipple(0,0,Object.assign(Object.assign({},this.rippleConfig),e))}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(Fc),ps(yg),ps(tk,8),ps(Tw,8))},e.\u0275dir=bt({type:e,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(e,t){2&e&&qs("mat-ripple-unbounded",t.unbounded)},inputs:{radius:["matRippleRadius","radius"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"],color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],animation:["matRippleAnimation","animation"]},exportAs:["matRipple"]}),e}(),ik=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[jw,bg],jw]}),e}(),rk=function(){var e=function e(t){s(this,e),this._animationMode=t,this.state="unchecked",this.disabled=!1};return e.\u0275fac=function(t){return new(t||e)(ps(Tw,8))},e.\u0275cmp=ft({type:e,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:8,hostBindings:function(e,t){2&e&&qs("mat-pseudo-checkbox-indeterminate","indeterminate"===t.state)("mat-pseudo-checkbox-checked","checked"===t.state)("mat-pseudo-checkbox-disabled",t.disabled)("_mat-animation-noopable","NoopAnimations"===t._animationMode)},inputs:{state:"state",disabled:"disabled"},decls:0,vars:0,template:function(e,t){},styles:['.mat-pseudo-checkbox{width:16px;height:16px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\n'],encapsulation:2,changeDetection:0}),e}(),ak=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[jw]]}),e}(),ok=new Mi("MAT_OPTION_PARENT_COMPONENT"),sk=Nw(function(){return function e(){s(this,e)}}()),uk=0,lk=function(){var e=function(e){l(n,e);var t=p(n);function n(e){var i,r;return s(this,n),(i=t.call(this))._labelId="mat-optgroup-label-".concat(uk++),i._inert=null!==(r=null==e?void 0:e.inertGroups)&&void 0!==r&&r,i}return n}(sk);return e.\u0275fac=function(t){return new(t||e)(ps(ok,8))},e.\u0275dir=bt({type:e,inputs:{label:"label"},features:[Ko]}),e}(),ck=new Mi("MatOptgroup"),dk=function(){var e=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return n}(lk);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275cmp=ft({type:e,selectors:[["mat-optgroup"]],hostAttrs:[1,"mat-optgroup"],hostVars:5,hostBindings:function(e,t){2&e&&(ls("role",t._inert?null:"group")("aria-disabled",t._inert?null:t.disabled.toString())("aria-labelledby",t._inert?null:t._labelId),qs("mat-optgroup-disabled",t.disabled))},inputs:{disabled:"disabled"},exportAs:["matOptgroup"],features:[Du([{provide:ck,useExisting:e}]),Ko],ngContentSelectors:Pw,decls:6,vars:2,consts:[["aria-hidden","true",1,"mat-optgroup-label",3,"id"]],template:function(e,t){1&e&&(As(Yw),vs(0,"span",0),ru(1),Is(2),_s(),ru(3,"\n"),Is(4,1),ru(5,"\n")),2&e&&(ms("id",t._labelId),Ya(1),ou("",t.label," "))},styles:[".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\n"],encapsulation:2,changeDetection:0}),e}(),hk=0,fk=function e(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s(this,e),this.source=t,this.isUserInput=n},pk=function(){var e=function(){function e(t,n,i,r){s(this,e),this._element=t,this._changeDetectorRef=n,this._parent=i,this.group=r,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-".concat(hk++),this.onSelectionChange=new Zl,this._stateChanges=new z}return o(e,[{key:"multiple",get:function(){return this._parent&&this._parent.multiple}},{key:"selected",get:function(){return this._selected}},{key:"disabled",get:function(){return this.group&&this.group.disabled||this._disabled},set:function(e){this._disabled=pm(e)}},{key:"disableRipple",get:function(){return this._parent&&this._parent.disableRipple}},{key:"active",get:function(){return this._active}},{key:"viewValue",get:function(){return(this._getHostElement().textContent||"").trim()}},{key:"select",value:function(){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}},{key:"deselect",value:function(){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}},{key:"focus",value:function(e,t){var n=this._getHostElement();"function"==typeof n.focus&&n.focus(t)}},{key:"setActiveStyles",value:function(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}},{key:"setInactiveStyles",value:function(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}},{key:"getLabel",value:function(){return this.viewValue}},{key:"_handleKeydown",value:function(e){13!==e.keyCode&&32!==e.keyCode||Qg(e)||(this._selectViaInteraction(),e.preventDefault())}},{key:"_selectViaInteraction",value:function(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}},{key:"_getAriaSelected",value:function(){return this.selected||!this.multiple&&null}},{key:"_getTabIndex",value:function(){return this.disabled?"-1":"0"}},{key:"_getHostElement",value:function(){return this._element.nativeElement}},{key:"ngAfterViewChecked",value:function(){if(this._selected){var e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue=e,this._stateChanges.next())}}},{key:"ngOnDestroy",value:function(){this._stateChanges.complete()}},{key:"_emitSelectionChangeEvent",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.onSelectionChange.emit(new fk(this,e))}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(ll),ps(void 0),ps(lk))},e.\u0275dir=bt({type:e,inputs:{id:"id",disabled:"disabled",value:"value"},outputs:{onSelectionChange:"onSelectionChange"}}),e}(),mk=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a){return s(this,n),t.call(this,e,i,r,a)}return n}(pk);return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(ll),ps(ok,8),ps(ck,8))},e.\u0275cmp=ft({type:e,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-option","mat-focus-indicator"],hostVars:12,hostBindings:function(e,t){1&e&&xs("click",function(){return t._selectViaInteraction()})("keydown",function(e){return t._handleKeydown(e)}),2&e&&(du("id",t.id),ls("tabindex",t._getTabIndex())("aria-selected",t._getAriaSelected())("aria-disabled",t.disabled.toString()),qs("mat-selected",t.selected)("mat-option-multiple",t.multiple)("mat-active",t.active)("mat-option-disabled",t.disabled))},exportAs:["matOption"],features:[Ko],ngContentSelectors:Rw,decls:11,vars:4,consts:[["class","mat-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mat-option-text"],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-option-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-option-pseudo-checkbox",3,"state","disabled"],[1,"cdk-visually-hidden"]],template:function(e,t){1&e&&(As(),hs(0,Aw,1,2,"mat-pseudo-checkbox",0),ru(1,"\n\n"),vs(2,"span",1),Is(3),_s(),ru(4,"\n\n"),ru(5,"\n"),hs(6,Iw,2,1,"span",2),ru(7,"\n\n"),vs(8,"div",3),ru(9,"\n"),_s(),ru(10,"\n")),2&e&&(ms("ngIf",t.multiple),Ya(6),ms("ngIf",t.group&&t.group._inert),Ya(2),ms("matRippleTrigger",t._getHostElement())("matRippleDisabled",t.disabled||t.disableRipple))},directives:[lh,nk,rk],styles:[".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\n"],encapsulation:2,changeDetection:0}),e}();function gk(e,t,n){if(n.length){for(var i=t.toArray(),r=n.toArray(),a=0,o=0;on+i?Math.max(0,e-i+t):n}var _k=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[ik,Th,jw,ak]]}),e}();function yk(e){return new N(function(t){var n;try{n=e()}catch(i){return void t.error(i)}return(n?re(n):og()).subscribe(t)})}function bk(e,t){}var wk=function e(){s(this,e),this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.autoFocus=!0,this.restoreFocus=!0,this.closeOnNavigation=!0},kk={dialogContainer:F_("dialogContainer",[B_("void, exit",N_({opacity:0,transform:"scale(0.7)"})),B_("enter",N_({transform:"none"})),V_("* => enter",H_("150ms cubic-bezier(0, 0, 0.2, 1)",N_({transform:"none",opacity:1}))),V_("* => void, * => exit",H_("75ms cubic-bezier(0.4, 0.0, 0.2, 1)",N_({opacity:0})))])},Mk=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o,u){var l;return s(this,n),(l=t.call(this))._elementRef=e,l._focusTrapFactory=i,l._changeDetectorRef=r,l._config=o,l._focusMonitor=u,l._animationStateChanged=new Zl,l._elementFocusedBeforeDialogWasOpened=null,l._closeInteractionType=null,l.attachDomPortal=function(e){return l._portalOutlet.hasAttached(),l._portalOutlet.attachDomPortal(e)},l._ariaLabelledBy=o.ariaLabelledBy||null,l._document=a,l}return o(n,[{key:"_initializeWithAttachedContent",value:function(){this._setupFocusTrap(),this._capturePreviouslyFocusedElement(),this._focusDialogContainer()}},{key:"attachComponentPortal",value:function(e){return this._portalOutlet.hasAttached(),this._portalOutlet.attachComponentPortal(e)}},{key:"attachTemplatePortal",value:function(e){return this._portalOutlet.hasAttached(),this._portalOutlet.attachTemplatePortal(e)}},{key:"_recaptureFocus",value:function(){this._containsFocus()||(!this._config.autoFocus||!this._focusTrap.focusInitialElement())&&this._elementRef.nativeElement.focus()}},{key:"_trapFocus",value:function(){this._config.autoFocus?this._focusTrap.focusInitialElementWhenReady():this._containsFocus()||this._elementRef.nativeElement.focus()}},{key:"_restoreFocus",value:function(){var e=this._elementFocusedBeforeDialogWasOpened;if(this._config.restoreFocus&&e&&"function"==typeof e.focus){var t=Lg(),n=this._elementRef.nativeElement;t&&t!==this._document.body&&t!==n&&!n.contains(t)||(this._focusMonitor?(this._focusMonitor.focusVia(e,this._closeInteractionType),this._closeInteractionType=null):e.focus())}this._focusTrap&&this._focusTrap.destroy()}},{key:"_setupFocusTrap",value:function(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement)}},{key:"_capturePreviouslyFocusedElement",value:function(){this._document&&(this._elementFocusedBeforeDialogWasOpened=Lg())}},{key:"_focusDialogContainer",value:function(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}},{key:"_containsFocus",value:function(){var e=this._elementRef.nativeElement,t=Lg();return e===t||e.contains(t)}}]),n}(Ng);return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(m_),ps(ll),ps(yd,8),ps(wk),ps(x_))},e.\u0275dir=bt({type:e,viewQuery:function(e,t){var n;1&e&&lc(Wg,7),2&e&&uc(n=dc())&&(t._portalOutlet=n.first)},features:[Ko]}),e}(),Sk=function(){var e=function(e){l(n,e);var t=p(n);function n(){var e;return s(this,n),(e=t.apply(this,arguments))._state="enter",e}return o(n,[{key:"_onAnimationDone",value:function(e){var t=e.toState,n=e.totalTime;"enter"===t?(this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:n})):"exit"===t&&(this._restoreFocus(),this._animationStateChanged.next({state:"closed",totalTime:n}))}},{key:"_onAnimationStart",value:function(e){var t=e.toState,n=e.totalTime;"enter"===t?this._animationStateChanged.next({state:"opening",totalTime:n}):"exit"!==t&&"void"!==t||this._animationStateChanged.next({state:"closing",totalTime:n})}},{key:"_startExitAnimation",value:function(){this._state="exit",this._changeDetectorRef.markForCheck()}}]),n}(Mk);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275cmp=ft({type:e,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1","aria-modal","true",1,"mat-dialog-container"],hostVars:6,hostBindings:function(e,t){1&e&&Ts("@dialogContainer.start",function(e){return t._onAnimationStart(e)})("@dialogContainer.done",function(e){return t._onAnimationDone(e)}),2&e&&(du("id",t._id),ls("role",t._config.role)("aria-labelledby",t._config.ariaLabel?null:t._ariaLabelledBy)("aria-label",t._config.ariaLabel)("aria-describedby",t._config.ariaDescribedBy||null),hu("@dialogContainer",t._state))},features:[Ko],decls:2,vars:0,consts:[["cdkPortalOutlet",""]],template:function(e,t){1&e&&(hs(0,bk,0,0,"ng-template",0),ru(1,"\n"))},directives:[Wg],styles:[".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"],encapsulation:2,data:{animation:[kk.dialogContainer]}}),e}(),Ck=0,Lk=function(){function e(t,n){var i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mat-dialog-".concat(Ck++);s(this,e),this._overlayRef=t,this._containerInstance=n,this.id=r,this.disableClose=this._containerInstance._config.disableClose,this._afterOpened=new z,this._afterClosed=new z,this._beforeClosed=new z,this._state=0,n._id=r,n._animationStateChanged.pipe(zm(function(e){return"opened"===e.state}),zg(1)).subscribe(function(){i._afterOpened.next(),i._afterOpened.complete()}),n._animationStateChanged.pipe(zm(function(e){return"closed"===e.state}),zg(1)).subscribe(function(){clearTimeout(i._closeFallbackTimeout),i._finishDialogClose()}),t.detachments().subscribe(function(){i._beforeClosed.next(i._result),i._beforeClosed.complete(),i._afterClosed.next(i._result),i._afterClosed.complete(),i.componentInstance=null,i._overlayRef.dispose()}),t.keydownEvents().pipe(zm(function(e){return e.keyCode===Zg&&!i.disableClose&&!Qg(e)})).subscribe(function(e){e.preventDefault(),xk(i,"keyboard")}),t.backdropClick().subscribe(function(){i.disableClose?i._containerInstance._recaptureFocus():xk(i,"mouse")})}return o(e,[{key:"close",value:function(e){var t=this;this._result=e,this._containerInstance._animationStateChanged.pipe(zm(function(e){return"closing"===e.state}),zg(1)).subscribe(function(n){t._beforeClosed.next(e),t._beforeClosed.complete(),t._overlayRef.detachBackdrop(),t._closeFallbackTimeout=setTimeout(function(){return t._finishDialogClose()},n.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}},{key:"afterOpened",value:function(){return this._afterOpened}},{key:"afterClosed",value:function(){return this._afterClosed}},{key:"beforeClosed",value:function(){return this._beforeClosed}},{key:"backdropClick",value:function(){return this._overlayRef.backdropClick()}},{key:"keydownEvents",value:function(){return this._overlayRef.keydownEvents()}},{key:"updatePosition",value:function(e){var t=this._getPositionStrategy();return e&&(e.left||e.right)?e.left?t.left(e.left):t.right(e.right):t.centerHorizontally(),e&&(e.top||e.bottom)?e.top?t.top(e.top):t.bottom(e.bottom):t.centerVertically(),this._overlayRef.updatePosition(),this}},{key:"updateSize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return this._overlayRef.updateSize({width:e,height:t}),this._overlayRef.updatePosition(),this}},{key:"addPanelClass",value:function(e){return this._overlayRef.addPanelClass(e),this}},{key:"removePanelClass",value:function(e){return this._overlayRef.removePanelClass(e),this}},{key:"getState",value:function(){return this._state}},{key:"_finishDialogClose",value:function(){this._state=2,this._overlayRef.dispose()}},{key:"_getPositionStrategy",value:function(){return this._overlayRef.getConfig().positionStrategy}}]),e}();function xk(e,t,n){return void 0!==e._containerInstance&&(e._containerInstance._closeInteractionType=t),e.close(n)}var Tk=new Mi("MatDialogData"),Dk=new Mi("mat-dialog-default-options"),Ok=new Mi("mat-dialog-scroll-strategy"),Ek={provide:Ok,deps:[Dv],useFactory:function(e){return function(){return e.scrollStrategies.block()}}},Yk=function(){var e=function(){function e(t,n,i,r,a,o,u,l,c){var d=this;s(this,e),this._overlay=t,this._injector=n,this._defaultOptions=i,this._parentDialog=r,this._overlayContainer=a,this._dialogRefConstructor=u,this._dialogContainerType=l,this._dialogDataToken=c,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new z,this._afterOpenedAtThisLevel=new z,this._ariaHiddenElements=new Map,this.afterAllClosed=yk(function(){return d.openDialogs.length?d._getAfterAllClosed():d._getAfterAllClosed().pipe(Qm(void 0))}),this._scrollStrategy=o}return o(e,[{key:"openDialogs",get:function(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}},{key:"afterOpened",get:function(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}},{key:"_getAfterAllClosed",value:function(){var e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}},{key:"open",value:function(e,t){var n=this;(t=function(e,t){return Object.assign(Object.assign({},t),e)}(t,this._defaultOptions||new wk)).id&&this.getDialogById(t.id);var i=this._createOverlay(t),r=this._attachDialogContainer(i,t),a=this._attachDialogContent(e,r,i,t);return this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(a),a.afterClosed().subscribe(function(){return n._removeOpenDialog(a)}),this.afterOpened.next(a),r._initializeWithAttachedContent(),a}},{key:"closeAll",value:function(){this._closeDialogs(this.openDialogs)}},{key:"getDialogById",value:function(e){return this.openDialogs.find(function(t){return t.id===e})}},{key:"ngOnDestroy",value:function(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}},{key:"_createOverlay",value:function(e){var t=this._getOverlayConfig(e);return this._overlay.create(t)}},{key:"_getOverlayConfig",value:function(e){var t=new uv({positionStrategy:this._overlay.position().global(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(t.backdropClass=e.backdropClass),t}},{key:"_attachDialogContainer",value:function(e,t){var n=qo.create({parent:t&&t.viewContainerRef&&t.viewContainerRef.injector||this._injector,providers:[{provide:wk,useValue:t}]}),i=new Fg(this._dialogContainerType,t.viewContainerRef,n,t.componentFactoryResolver);return e.attach(i).instance}},{key:"_attachDialogContent",value:function(e,t,n,i){var r=new this._dialogRefConstructor(n,t,i.id);if(e instanceof pl)t.attachTemplatePortal(new Hg(e,null,{$implicit:i.data,dialogRef:r}));else{var a=this._createInjector(i,r,t),o=t.attachComponentPortal(new Fg(e,i.viewContainerRef,a));r.componentInstance=o.instance}return r.updateSize(i.width,i.height).updatePosition(i.position),r}},{key:"_createInjector",value:function(e,t,n){var i=e&&e.viewContainerRef&&e.viewContainerRef.injector,r=[{provide:this._dialogContainerType,useValue:n},{provide:this._dialogDataToken,useValue:e.data},{provide:this._dialogRefConstructor,useValue:t}];return!e.direction||i&&i.get(Dg,null,ze.Optional)||r.push({provide:Dg,useValue:{value:e.direction,change:bm()}}),qo.create({parent:i||this._injector,providers:r})}},{key:"_removeOpenDialog",value:function(e){var t=this.openDialogs.indexOf(e);t>-1&&(this.openDialogs.splice(t,1),this.openDialogs.length||(this._ariaHiddenElements.forEach(function(e,t){e?t.setAttribute("aria-hidden",e):t.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),this._getAfterAllClosed().next()))}},{key:"_hideNonDialogContentFromAssistiveTechnology",value:function(){var e=this._overlayContainer.getContainerElement();if(e.parentElement)for(var t=e.parentElement.children,n=t.length-1;n>-1;n--){var i=t[n];i===e||"SCRIPT"===i.nodeName||"STYLE"===i.nodeName||i.hasAttribute("aria-live")||(this._ariaHiddenElements.set(i,i.getAttribute("aria-hidden")),i.setAttribute("aria-hidden","true"))}}},{key:"_closeDialogs",value:function(e){for(var t=e.length;t--;)e[t].close()}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Dv),ps(qo),ps(void 0),ps(void 0),ps(gv),ps(void 0),ps(Ci),ps(Ci),ps(Mi))},e.\u0275dir=bt({type:e}),e}(),Pk=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o,u,l){return s(this,n),t.call(this,e,i,a,u,l,o,Lk,Sk,Tk)}return n}(Yk);return e.\u0275fac=function(t){return new(t||e)(Bi(Dv),Bi(qo),Bi(Ad,8),Bi(Dk,8),Bi(Ok),Bi(e,12),Bi(gv))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),Ak=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275dir=bt({type:e,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-dialog-content"]}),e}(),Ik=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[Pk,Ek],imports:[[Iv,Vg,jw],jw]}),e}();function Rk(e,t){if(1&e){var n=Ms();vs(0,"img",3),xs("click",function(){return on(n),Ys().closePopup()}),_s()}}var Fk=function(e){return{"red-title":e}},Hk=["*"],jk=function(){function e(e){this.matDialog=e,this.useRedTitle=!1}return Object.defineProperty(e.prototype,"dialog",{set:function(e){e.disableClose=!0,this.dialogInternal=e},enumerable:!1,configurable:!0}),e.prototype.onKeyUp=function(){this.closePopup()},e.prototype.closePopup=function(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()},e.\u0275fac=function(t){return new(t||e)(ps(Pk))},e.\u0275cmp=ft({type:e,selectors:[["app-modal"]],hostBindings:function(e,t){1&e&&xs("keyup.esc",function(){return t.onKeyUp()},!1,Br)},inputs:{useRedTitle:"useRedTitle",headline:"headline",disableDismiss:"disableDismiss",dialog:"dialog"},ngContentSelectors:Hk,decls:13,vars:5,consts:[[1,"-header",3,"ngClass"],["class","image-button","src","assets/img/delete-grey.png",3,"click",4,"ngIf"],[1,"modal"],["src","assets/img/delete-grey.png",1,"image-button",3,"click"]],template:function(e,t){1&e&&(As(),vs(0,"div",0),ru(1),hs(2,Rk,1,0,"img",1),ru(3,"\n"),_s(),ru(4,"\n"),vs(5,"div",2),ru(6,"\n "),vs(7,"mat-dialog-content"),ru(8,"\n "),Is(9),ru(10,"\n "),_s(),ru(11,"\n"),_s(),ru(12,"\n")),2&e&&(ms("ngClass",Il(3,Fk,t.useRedTitle)),Ya(1),ou("\n ",t.headline,"\n "),Ya(1),ms("ngIf",!t.disableDismiss))},directives:[ah,lh,Ak],styles:['.-header[_ngcontent-%COMP%]{background-color:#f7f7f7;line-height:50px;position:relative;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 32px;font-size:14px}.-header[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:32px;position:absolute;right:9px;top:9px}mat-dialog-content[_ngcontent-%COMP%]:after, mat-dialog-content[_ngcontent-%COMP%]:before{content:"";padding-top:24px;height:0;display:block}.red-title[_ngcontent-%COMP%]{text-transform:uppercase;font-weight:700;letter-spacing:1px;color:#ff004e}']}),e}();function Nk(e,t){var n=!1;return arguments.length>=2&&(n=!0),function(i){return i.lift(new Bk(e,t,n))}}var Bk=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];s(this,e),this.accumulator=t,this.seed=n,this.hasSeed=i}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new Wk(e,this.accumulator,this.seed,this.hasSeed))}}]),e}(),Wk=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;return s(this,n),(o=t.call(this,e)).accumulator=i,o._seed=r,o.hasSeed=a,o.index=0,o}return o(n,[{key:"seed",get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e}},{key:"_next",value:function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)}},{key:"_tryNext",value:function(e){var t,n=this.index++;try{t=this.accumulator(this.seed,e,n)}catch(i){this.destination.error(i)}this.seed=t,this.destination.next(t)}}]),n}(A);function Vk(e){return function(t){return 0===e?og():t.lift(new Uk(e))}}var Uk=function(){function e(t){if(s(this,e),this.total=t,this.total<0)throw new Ug}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new zk(e,this.total))}}]),e}(),zk=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e)).total=i,r.ring=new Array,r.count=0,r}return o(n,[{key:"_next",value:function(e){var t=this.ring,n=this.total,i=this.count++;t.length0)for(var n=this.count>=this.total?this.total:this.count,i=this.ring,r=0;r0&&void 0!==arguments[0]?arguments[0]:null;return function(t){return t.lift(new Gk(e))}}var Gk=function(){function e(t){s(this,e),this.defaultValue=t}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new Kk(e,this.defaultValue))}}]),e}(),Kk=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e)).defaultValue=i,r.isEmpty=!0,r}return o(n,[{key:"_next",value:function(e){this.isEmpty=!1,this.destination.next(e)}},{key:"_complete",value:function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}]),n}(A);function Jk(e,t,n){return 0===n?[t]:(e.push(t),e)}var Zk=function e(){s(this,e)},$k=function(){var e=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"getTranslation",value:function(e){return bm({})}}]),n}(Zk);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),Xk=function e(){s(this,e)},Qk=function(){var e=function(){function e(){s(this,e)}return o(e,[{key:"handle",value:function(e){return e.key}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),eM=function e(){s(this,e)},tM=function(){var e=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return o(n,[{key:"compile",value:function(e,t){return e}},{key:"compileTranslations",value:function(e,t){return e}}]),n}(eM);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}();function nM(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&&t!=t)return!0;var n,i,r,a=typeof e;if(a==typeof t&&"object"==a){if(!Array.isArray(e)){if(Array.isArray(t))return!1;for(i in r=Object.create(null),e){if(!nM(e[i],t[i]))return!1;r[i]=!0}for(i in t)if(!(i in r)&&void 0!==t[i])return!1;return!0}if(!Array.isArray(t))return!1;if((n=e.length)==t.length){for(i=0;i5&&void 0!==arguments[5])||arguments[5],u=arguments.length>6&&void 0!==arguments[6]&&arguments[6];s(this,e),this.store=t,this.currentLoader=n,this.compiler=i,this.parser=r,this.missingTranslationHandler=a,this.useDefaultLang=o,this.isolate=u,this.pending=!1,this._onTranslationChange=new Zl,this._onLangChange=new Zl,this._onDefaultLangChange=new Zl,this._langs=[],this._translations={},this._translationRequests={}}return o(e,[{key:"onTranslationChange",get:function(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}},{key:"onLangChange",get:function(){return this.isolate?this._onLangChange:this.store.onLangChange}},{key:"onDefaultLangChange",get:function(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}},{key:"defaultLang",get:function(){return this.isolate?this._defaultLang:this.store.defaultLang},set:function(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}},{key:"currentLang",get:function(){return this.isolate?this._currentLang:this.store.currentLang},set:function(e){this.isolate?this._currentLang=e:this.store.currentLang=e}},{key:"langs",get:function(){return this.isolate?this._langs:this.store.langs},set:function(e){this.isolate?this._langs=e:this.store.langs=e}},{key:"translations",get:function(){return this.isolate?this._translations:this.store.translations},set:function(e){this.isolate?this._translations=e:this.store.translations=e}},{key:"setDefaultLang",value:function(e){var t=this;if(e!==this.defaultLang){var n=this.retrieveTranslations(e);void 0!==n?(this.defaultLang||(this.defaultLang=e),n.pipe(zg(1)).subscribe(function(n){t.changeDefaultLang(e)})):this.changeDefaultLang(e)}}},{key:"getDefaultLang",value:function(){return this.defaultLang}},{key:"use",value:function(e){var t=this;if(e===this.currentLang)return bm(this.translations[e]);var n=this.retrieveTranslations(e);return void 0!==n?(this.currentLang||(this.currentLang=e),n.pipe(zg(1)).subscribe(function(n){t.changeLang(e)}),n):(this.changeLang(e),bm(this.translations[e]))}},{key:"retrieveTranslations",value:function(e){var t;return void 0===this.translations[e]&&(this._translationRequests[e]=this._translationRequests[e]||this.getTranslation(e),t=this._translationRequests[e]),t}},{key:"getTranslation",value:function(e){var t=this;return this.pending=!0,this.loadingTranslations=this.currentLoader.getTranslation(e).pipe(ke()),this.loadingTranslations.pipe(zg(1)).subscribe(function(n){t.translations[e]=t.compiler.compileTranslations(n,e),t.updateLangs(),t.pending=!1},function(e){t.pending=!1}),this.loadingTranslations}},{key:"setTranslation",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=this.compiler.compileTranslations(t,e),this.translations[e]=n&&this.translations[e]?aM(this.translations[e],t):t,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}},{key:"getLangs",value:function(){return this.langs}},{key:"addLangs",value:function(e){var t=this;e.forEach(function(e){-1===t.langs.indexOf(e)&&t.langs.push(e)})}},{key:"updateLangs",value:function(){this.addLangs(Object.keys(this.translations))}},{key:"getParsedResult",value:function(e,t,n){var i;if(t instanceof Array){var r,a={},o=!1,s=v(t);try{for(s.s();!(r=s.n()).done;){var u=r.value;a[u]=this.getParsedResult(e,u,n),"function"==typeof a[u].subscribe&&(o=!0)}}catch(m){s.e(m)}finally{s.f()}if(o){var l,c,d=v(t);try{for(d.s();!(c=d.n()).done;){var h=c.value,f="function"==typeof a[h].subscribe?a[h]:bm(a[h]);l=void 0===l?f:pe(l,f)}}catch(m){d.e(m)}finally{d.f()}return l.pipe(function(e,t){return arguments.length>=2?function(n){return H(Nk(e,t),Vk(1),qk(t))(n)}:function(t){return H(Nk(function(t,n,i){return e(t,n,i+1)}),Vk(1))(t)}}(Jk,[]),K(function(e){var n={};return e.forEach(function(e,i){n[t[i]]=e}),n}))}return a}if(e&&(i=this.parser.interpolate(this.parser.getValue(e,t),n)),void 0===i&&this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(i=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],t),n)),void 0===i){var p={key:t,translateService:this};void 0!==n&&(p.interpolateParams=n),i=this.missingTranslationHandler.handle(p)}return void 0!==i?i:t}},{key:"get",value:function(e,t){var n=this;if(!iM(e)||!e.length)throw new Error('Parameter "key" required');if(this.pending)return N.create(function(i){var r=function(e){i.next(e),i.complete()},a=function(e){i.error(e)};n.loadingTranslations.subscribe(function(i){"function"==typeof(i=n.getParsedResult(n.compiler.compileTranslations(i,n.currentLang),e,t)).subscribe?i.subscribe(r,a):r(i)},a)});var i=this.getParsedResult(this.translations[this.currentLang],e,t);return"function"==typeof i.subscribe?i:bm(i)}},{key:"stream",value:function(e,t){var n=this;if(!iM(e)||!e.length)throw new Error('Parameter "key" required');return Xm(this.get(e,t),this.onLangChange.pipe(eg(function(i){var r=n.getParsedResult(i.translations,e,t);return"function"==typeof r.subscribe?r:bm(r)})))}},{key:"instant",value:function(e,t){if(!iM(e)||!e.length)throw new Error('Parameter "key" required');var n=this.getParsedResult(this.translations[this.currentLang],e,t);if(void 0!==n.subscribe){if(e instanceof Array){var i={};return e.forEach(function(t,n){i[e[n]]=e[n]}),i}return e}return n}},{key:"set",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.currentLang;this.translations[n][e]=this.compiler.compile(t,n),this.updateLangs(),this.onTranslationChange.emit({lang:n,translations:this.translations[n]})}},{key:"changeLang",value:function(e){this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang||this.changeDefaultLang(e)}},{key:"changeDefaultLang",value:function(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}},{key:"reloadLang",value:function(e){return this.resetLang(e),this.getTranslation(e)}},{key:"resetLang",value:function(e){this._translationRequests[e]=void 0,this.translations[e]=void 0}},{key:"getBrowserLang",value:function(){if("undefined"!=typeof window&&void 0!==window.navigator){var e=window.navigator.languages?window.navigator.languages[0]:null;return-1!==(e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage).indexOf("-")&&(e=e.split("-")[0]),-1!==e.indexOf("_")&&(e=e.split("_")[0]),e}}},{key:"getBrowserCultureLang",value:function(){if("undefined"!=typeof window&&void 0!==window.navigator)return(window.navigator.languages?window.navigator.languages[0]:null)||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(uM),Bi(Zk),Bi(eM),Bi(oM),Bi(Xk),Bi(cM),Bi(lM))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),hM=function(){var e=function(){function e(t,n){s(this,e),this.translate=t,this._ref=n,this.value=""}return o(e,[{key:"updateValue",value:function(e,t,n){var i=this,r=function(t){i.value=void 0!==t?t:e,i.lastKey=e,i._ref.markForCheck()};if(n){var a=this.translate.getParsedResult(n,e,t);"function"==typeof a.subscribe?a.subscribe(r):r(a)}this.translate.get(e,t).subscribe(r)}},{key:"transform",value:function(e){var t,n=this;if(!e||0===e.length)return e;for(var i=arguments.length,r=new Array(i>1?i-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{};return{ngModule:e,providers:[t.loader||{provide:Zk,useClass:$k},t.compiler||{provide:eM,useClass:tM},t.parser||{provide:oM,useClass:sM},t.missingTranslationHandler||{provide:Xk,useClass:Qk},uM,{provide:lM,useValue:t.isolate},{provide:cM,useValue:t.useDefaultLang},dM]}}},{key:"forChild",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{ngModule:e,providers:[t.loader||{provide:Zk,useClass:$k},t.compiler||{provide:eM,useClass:tM},t.parser||{provide:oM,useClass:sM},t.missingTranslationHandler||{provide:Xk,useClass:Qk},{provide:lM,useValue:t.isolate},{provide:cM,useValue:t.useDefaultLang},dM]}}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({}),e}(),pM=function(){function e(e){this.dialogRef=e}return e.openDialog=function(t){var n=new wk;return n.autoFocus=!1,n.width="450px",t.open(e,n)},e.\u0275fac=function(t){return new(t||e)(ps(Lk))},e.\u0275cmp=ft({type:e,selectors:[["app-hw-added-dialog"]],decls:16,vars:13,consts:[[3,"headline","dialog"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),vs(3,"p"),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),vs(7,"p"),ru(8),Wl(9,"translate"),_s(),ru(10,"\n "),vs(11,"p"),ru(12),Wl(13,"translate"),_s(),ru(14,"\n"),_s(),ru(15,"\n")),2&e&&(ms("headline",Vl(1,5,"hardware-wallet.pin-help.title"))("dialog",t.dialogRef),Ya(4),au(Vl(5,7,"hardware-wallet.pin-help.part1")),Ya(4),au(Vl(9,9,"hardware-wallet.pin-help.part2")),Ya(4),au(Vl(13,11,"hardware-wallet.pin-help.part3")))},directives:[jk],pipes:[hM],styles:[""]}),e}();function mM(e,t){if(1&e&&(An(),ys(0,"circle",3)),2&e){var n=Ys();zs("animation-name","mat-progress-spinner-stroke-rotate-"+n._spinnerAnimationLabel)("stroke-dashoffset",n._getStrokeDashOffset(),"px")("stroke-dasharray",n._getStrokeCircumference(),"px")("stroke-width",n._getCircleStrokeWidth(),"%"),ls("r",n._getCircleRadius())}}function gM(e,t){if(1&e&&(An(),ys(0,"circle",3)),2&e){var n=Ys();zs("stroke-dashoffset",n._getStrokeDashOffset(),"px")("stroke-dasharray",n._getStrokeCircumference(),"px")("stroke-width",n._getCircleStrokeWidth(),"%"),ls("r",n._getCircleRadius())}}function vM(e,t){if(1&e&&(An(),ys(0,"circle",3)),2&e){var n=Ys();zs("animation-name","mat-progress-spinner-stroke-rotate-"+n._spinnerAnimationLabel)("stroke-dashoffset",n._getStrokeDashOffset(),"px")("stroke-dasharray",n._getStrokeCircumference(),"px")("stroke-width",n._getCircleStrokeWidth(),"%"),ls("r",n._getCircleRadius())}}function _M(e,t){if(1&e&&(An(),ys(0,"circle",3)),2&e){var n=Ys();zs("stroke-dashoffset",n._getStrokeDashOffset(),"px")("stroke-dasharray",n._getStrokeCircumference(),"px")("stroke-width",n._getCircleStrokeWidth(),"%"),ls("r",n._getCircleRadius())}}var yM=".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:currentColor;stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{animation:mat-progress-spinner-stroke-rotate-fallback 10000ms cubic-bezier(0.87, 0.03, 0.33, 1) infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition-property:stroke}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}@keyframes mat-progress-spinner-stroke-rotate-fallback{0%{transform:rotate(0deg)}25%{transform:rotate(1170deg)}50%{transform:rotate(2340deg)}75%{transform:rotate(3510deg)}100%{transform:rotate(4680deg)}}\n",bM=Bw(function(){return function e(t){s(this,e),this._elementRef=t}}(),"primary"),wM=new Mi("mat-progress-spinner-default-options",{providedIn:"root",factory:function(){return{diameter:100}}}),kM=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o){var u;s(this,n),(u=t.call(this,e))._document=r,u._diameter=100,u._value=0,u._fallbackAnimation=!1,u.mode="determinate";var l=n._diameters;return u._spinnerAnimationLabel=u._getSpinnerAnimationLabel(),l.has(r.head)||l.set(r.head,new Set([100])),u._fallbackAnimation=i.EDGE||i.TRIDENT,u._noopAnimations="NoopAnimations"===a&&!!o&&!o._forceAnimations,o&&(o.diameter&&(u.diameter=o.diameter),o.strokeWidth&&(u.strokeWidth=o.strokeWidth)),u}return o(n,[{key:"diameter",get:function(){return this._diameter},set:function(e){this._diameter=mm(e),this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),!this._fallbackAnimation&&this._styleRoot&&this._attachStyleNode()}},{key:"strokeWidth",get:function(){return this._strokeWidth||this.diameter/10},set:function(e){this._strokeWidth=mm(e)}},{key:"value",get:function(){return"determinate"===this.mode?this._value:0},set:function(e){this._value=Math.max(0,Math.min(100,mm(e)))}},{key:"ngOnInit",value:function(){var e=this._elementRef.nativeElement;this._styleRoot=Cg(e)||this._document.head,this._attachStyleNode();var t="mat-progress-spinner-indeterminate".concat(this._fallbackAnimation?"-fallback":"","-animation");e.classList.add(t)}},{key:"_getCircleRadius",value:function(){return(this.diameter-10)/2}},{key:"_getViewBox",value:function(){var e=2*this._getCircleRadius()+this.strokeWidth;return"0 0 ".concat(e," ").concat(e)}},{key:"_getStrokeCircumference",value:function(){return 2*Math.PI*this._getCircleRadius()}},{key:"_getStrokeDashOffset",value:function(){return"determinate"===this.mode?this._getStrokeCircumference()*(100-this._value)/100:this._fallbackAnimation&&"indeterminate"===this.mode?.2*this._getStrokeCircumference():null}},{key:"_getCircleStrokeWidth",value:function(){return this.strokeWidth/this.diameter*100}},{key:"_attachStyleNode",value:function(){var e=this._styleRoot,t=this._diameter,i=n._diameters,r=i.get(e);if(!r||!r.has(t)){var a=this._document.createElement("style");a.setAttribute("mat-spinner-animation",this._spinnerAnimationLabel),a.textContent=this._getAnimationText(),e.appendChild(a),r||(r=new Set,i.set(e,r)),r.add(t)}}},{key:"_getAnimationText",value:function(){var e=this._getStrokeCircumference();return"\n @keyframes mat-progress-spinner-stroke-rotate-DIAMETER {\n 0% { stroke-dashoffset: START_VALUE; transform: rotate(0); }\n 12.5% { stroke-dashoffset: END_VALUE; transform: rotate(0); }\n 12.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n 25% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n\n 25.0001% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); }\n 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); }\n 37.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n 50% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n\n 50.0001% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); }\n 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); }\n 62.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n 75% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n\n 75.0001% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); }\n 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); }\n 87.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n }\n".replace(/START_VALUE/g,"".concat(.95*e)).replace(/END_VALUE/g,"".concat(.2*e)).replace(/DIAMETER/g,"".concat(this._spinnerAnimationLabel))}},{key:"_getSpinnerAnimationLabel",value:function(){return this.diameter.toString().replace(".","_")}}]),n}(bM);return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(yg),ps(yd,8),ps(Tw,8),ps(wM))},e.\u0275cmp=ft({type:e,selectors:[["mat-progress-spinner"]],hostAttrs:["role","progressbar","tabindex","-1",1,"mat-progress-spinner"],hostVars:10,hostBindings:function(e,t){2&e&&(ls("aria-valuemin","determinate"===t.mode?0:null)("aria-valuemax","determinate"===t.mode?100:null)("aria-valuenow","determinate"===t.mode?t.value:null)("mode",t.mode),zs("width",t.diameter,"px")("height",t.diameter,"px"),qs("_mat-animation-noopable",t._noopAnimations))},inputs:{color:"color",mode:"mode",diameter:"diameter",strokeWidth:"strokeWidth",value:"value"},exportAs:["matProgressSpinner"],features:[Ko],decls:10,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function(e,t){1&e&&(ru(0,"\n"),ru(1,"\n"),An(),vs(2,"svg",0),ru(3,"\n\n "),ru(4,"\n "),hs(5,mM,1,9,"circle",1),ru(6,"\n\n "),hs(7,gM,1,7,"circle",2),ru(8,"\n"),_s(),ru(9,"\n")),2&e&&(Ya(2),zs("width",t.diameter,"px")("height",t.diameter,"px"),ms("ngSwitch","indeterminate"===t.mode),ls("viewBox",t._getViewBox()),Ya(3),ms("ngSwitchCase",!0),Ya(2),ms("ngSwitchCase",!1))},directives:[fh,ph],styles:[yM],encapsulation:2,changeDetection:0}),e._diameters=new WeakMap,e}(),MM=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o){var u;return s(this,n),(u=t.call(this,e,i,r,a,o)).mode="indeterminate",u}return n}(kM);return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(yg),ps(yd,8),ps(Tw,8),ps(wM))},e.\u0275cmp=ft({type:e,selectors:[["mat-spinner"]],hostAttrs:["role","progressbar","mode","indeterminate",1,"mat-spinner","mat-progress-spinner"],hostVars:6,hostBindings:function(e,t){2&e&&(zs("width",t.diameter,"px")("height",t.diameter,"px"),qs("_mat-animation-noopable",t._noopAnimations))},inputs:{color:"color"},features:[Ko],decls:10,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function(e,t){1&e&&(ru(0,"\n"),ru(1,"\n"),An(),vs(2,"svg",0),ru(3,"\n\n "),ru(4,"\n "),hs(5,vM,1,9,"circle",1),ru(6,"\n\n "),hs(7,_M,1,7,"circle",2),ru(8,"\n"),_s(),ru(9,"\n")),2&e&&(Ya(2),zs("width",t.diameter,"px")("height",t.diameter,"px"),ms("ngSwitch","indeterminate"===t.mode),ls("viewBox",t._getViewBox()),Ya(3),ms("ngSwitchCase",!0),Ya(2),ms("ngSwitchCase",!1))},directives:[fh,ph],styles:[yM],encapsulation:2,changeDetection:0}),e}(),SM=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[jw,Th],jw]}),e}(),CM=n(61287),LM=n.n(CM);function xM(e){return function(t){return t.lift(new TM(e,t))}}var TM=function(){function e(t,n){s(this,e),this.notifier=t,this.source=n}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new DM(e,this.notifier,this.source))}}]),e}(),DM=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e)).notifier=i,a.source=r,a}return o(n,[{key:"error",value:function(e){if(!this.isStopped){var t=this.errors,a=this.retries,o=this.retriesSubscription;if(a)this.errors=void 0,this.retriesSubscription=void 0;else{t=new z;try{a=(0,this.notifier)(t)}catch(s){return r(i(n.prototype),"error",this).call(this,s)}o=se(a,new ae(this))}this._unsubscribeAndRecycle(),this.errors=t,this.retries=a,this.retriesSubscription=o,t.next(e)}}},{key:"_unsubscribe",value:function(){var e=this.errors,t=this.retriesSubscription;e&&(e.unsubscribe(),this.errors=void 0),t&&(t.unsubscribe(),this.retriesSubscription=void 0),this.retries=void 0}},{key:"notifyNext",value:function(){var e=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=e,this.source.subscribe(this)}}]),n}(oe);function OM(e){return e instanceof Date&&!isNaN(+e)}function EM(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fm,n=OM(e),i=n?+e-t.now():Math.abs(e);return function(e){return e.lift(new YM(i,t))}}var YM=function(){function e(t,n){s(this,e),this.delay=t,this.scheduler=n}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new PM(e,this.delay,this.scheduler))}}]),e}(),PM=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e)).delay=i,a.scheduler=r,a.queue=[],a.active=!1,a.errored=!1,a}return o(n,[{key:"_schedule",value:function(e){this.active=!0,this.destination.add(e.schedule(n.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))}},{key:"scheduleNotification",value:function(e){if(!0!==this.errored){var t=this.scheduler,n=new AM(t.now()+this.delay,e);this.queue.push(n),!1===this.active&&this._schedule(t)}}},{key:"_next",value:function(e){this.scheduleNotification(cg.createNext(e))}},{key:"_error",value:function(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()}},{key:"_complete",value:function(){this.scheduleNotification(cg.createComplete()),this.unsubscribe()}}],[{key:"dispatch",value:function(e){for(var t=e.source,n=t.queue,i=e.scheduler,r=e.destination;n.length>0&&n[0].time-i.now()<=0;)n.shift().notification.observe(r);if(n.length>0){var a=Math.max(0,n[0].time-i.now());this.schedule(e,a)}else this.unsubscribe(),t.active=!1}}]),n}(A),AM=function e(t,n){s(this,e),this.time=t,this.notification=n};function IM(e){var t=document.createElement("textarea");t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.opacity="0",t.value=e,document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),document.body.removeChild(t)}var RM=function(){return function(){}}();function FM(e){var t;try{t=new URL(e)}catch(i){}if(!t||!t.protocol||"skycoin:"!==t.protocol.toLowerCase()||!t.pathname)return null;var n=new RM;return n.address=t.pathname,n.coins=t.searchParams.get("amount"),n.hours=t.searchParams.get("hours"),n.message=t.searchParams.get("message"),n}function HM(e){if(e){var t=new RegExp(",","g");return e.replace(t,"")}return e}var jM={otcEnabled:!1,maxHardwareWalletAddresses:1,maxAddressesGap:20,priceApiId:"ness-privateness",uriSpecificatioPrefix:"privateness",mediumModalWidth:"566px",urlForHwWalletVersionChecking:"https://version.skycoin.com/skywallet/version.txt",hwWalletDownloadUrlAndPrefix:"https://downloads.skycoin.com/skywallet/skywallet-firmware-v",hwWalletDaemonDownloadUrl:"https://www.skycoin.com/downloads/",urlForVersionChecking:"https://version.skycoin.com/skycoin/version.txt",walletDownloadUrl:"https://www.skycoin.com/downloads/",languages:[{code:"en",name:"English",iconName:"en.png"},{code:"zh",name:"\u4e2d\u6587",iconName:"zh.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"}],defaultLanguage:"en"},NM=function(e){return e.NoInternet="NoInternet",e.Unauthorized="Unauthorized",e.ApiDisabled="ApiDisabled",e.Unknown="Unknown",e}({}),BM=function(e){return e.Success="Success",e.FailedOrRefused="FailedOrRefused",e.PinMismatch="PinMismatch",e.WithoutSeed="WithoutSeed",e.WrongPin="WrongPin",e.IncorrectHardwareWallet="IncorrectHardwareWallet",e.WrongWord="WrongWord",e.InvalidSeed="InvalidSeed",e.WrongSeed="WrongSeed",e.UndefinedError="UndefinedError",e.Disconnected="Disconnected",e.DaemonConnectionError="DaemonConnectionError",e.InvalidAddress="InvalidAddress",e.Timeout="Timeout",e.NotInBootloaderMode="NotInBootloaderMode",e.AddressGeneratorProblem="AddressGeneratorProblem",e}({}),WM=function(){return function(){}}();function VM(e){if(e.type)return e;var t=new WM;if(t.originalError=e,!e||"string"==typeof e)return t.originalServerErrorMsg=e||"",t.translatableErrorMsg=e||"service.api.unknown-error",t.type=NM.Unknown,t;t.originalServerErrorMsg=UM(e);var n=e;return null!=n.status&&(0===n.status||504===n.status?(t.type=NM.NoInternet,t.translatableErrorMsg="service.api.no-internet-error"):0===n.status||403===n.status?(t.type=NM.ApiDisabled,t.translatableErrorMsg="service.api.api-disabled-error"):400===n.status&&-1!==t.originalServerErrorMsg.toUpperCase().indexOf("Invalid password".toUpperCase())&&(t.type=NM.Unauthorized,t.translatableErrorMsg="service.api.incorrect-password-error")),t.type||(t.type=NM.Unknown,t.translatableErrorMsg=t.originalServerErrorMsg?function(e){if(!e||0===e.length)return e;var t,n,i=(n=null,(t=(t=e).toUpperCase()).includes("CHANGEADDRESS MUST NOT BE THE NULL ADDRESS")?n="null-change-address-error":t.includes("TO IS REQUIRED")?n="to-required-error":t.includes("TO.COINS MUST NOT BE ZERO")?n="zero-coins-error":t.includes("TO.ADDRESS MUST NOT BE THE NULL ADDRESS")?n="null-destination-error":t.includes("TO CONTAINS DUPLICATE VALUES")?n="duplicate-destination-error":t.includes("TO.HOURS MUST BE ZERO FOR AUTO TYPE HOURS SELECTION")?n="hours-in-automatic-mode-error":t.includes("HOURSSELECTION.MODE IS REQUIRED FOR AUTO TYPE HOURS SELECTION")?n="hours-allocation-mode-needed-error":t.includes("INVALID HOURSSELECTION.MODE")?n="invalid-hours-allocation-mode-error":t.includes("HOURSSELECTION.MODE CANNOT BE USED FOR MANUAL TYPE HOURS SELECTION")?n="hours-allocation-mode-not-needed-error":t.includes("INVALID HOURSSELECTION.TYPE")?n="invalid-hours-mode-error":t.includes("HOURSSELECTION.SHAREFACTOR MUST BE SET FOR SHARE MODE")?n="share-factor-needed-error":t.includes("HOURSSELECTION.SHAREFACTOR CAN ONLY BE USED FOR SHARE MODE")?n="share-factor-not-needed-error":t.includes("HOURSSELECTION.SHAREFACTOR MUST BE >= 0 AND <= 1")?n="invalid-share-factor-error":t.includes("TRANSACTION VIOLATES HARD CONSTRAINT: DUPLICATE OUTPUT IN TRANSACTION")?n="change-equal-to-destination-error":t.includes("FINGERPRINT CONFLICT FOR")&&(n="repeated-wallet"),n?"send.known-node-errors."+n:null);if(i)return i;if(-1!==e.indexOf('"error":'))try{e=JSON.parse(e).error.message}catch(o){}if(e.startsWith("400")||e.startsWith("403")){var r=e.split(" - ",2);e=2===r.length?r[1]:e}var a=(e=e.trim()).substr(0,1);return a.toUpperCase()!==a&&(e=a.toUpperCase()+e.substr(1,e.length-1)),e.endsWith(".")||e.endsWith(",")||e.endsWith(":")||e.endsWith(";")||e.endsWith("?")||e.endsWith("!")||(e+="."),e}(t.originalServerErrorMsg):"service.api.unknown-error"),t}function UM(e){if(e){if("string"==typeof e._body)return e._body;if(e.originalServerErrorMsg&&"string"==typeof e.originalServerErrorMsg)return e.originalServerErrorMsg;if(e.error&&"string"==typeof e.error)return e.error;if(e.error&&e.error.error&&e.error.error.message)return e.error.error.message;if(e.error&&e.error.error&&"string"==typeof e.error.error)return e.error.error;if(e.message)return e.message;if(e._body&&e._body.error)return e._body.error;try{return JSON.parse(e._body).error}catch(t){}}return null}function zM(e){window.location.assign("assets/error-alert/index.html?"+e)}function qM(e){return function(t){var n=new GM(e),i=t.lift(n);return n.caught=i}}var GM=function(){function e(t){s(this,e),this.selector=t}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new KM(e,this.selector,this.caught))}}]),e}(),KM=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e)).selector=i,a.caught=r,a}return o(n,[{key:"error",value:function(e){if(!this.isStopped){var t;try{t=this.selector(e,this.caught)}catch(s){return void r(i(n.prototype),"error",this).call(this,s)}this._unsubscribeAndRecycle();var a=new ae(this);this.add(a);var o=se(t,a);o!==a&&this.add(o)}}}]),n}(oe),JM=function(){function e(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return e.prototype=Object.create(Error.prototype),e}();function ZM(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:QM;return function(t){return t.lift(new $M(e))}}var $M=function(){function e(t){s(this,e),this.errorFactory=t}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new XM(e,this.errorFactory))}}]),e}(),XM=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e)).errorFactory=i,r.hasValue=!1,r}return o(n,[{key:"_next",value:function(e){this.hasValue=!0,this.destination.next(e)}},{key:"_complete",value:function(){if(this.hasValue)return this.destination.complete();var e;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)}}]),n}(A);function QM(){return new JM}function eS(e,t){var n=arguments.length>=2;return function(i){return i.pipe(e?zm(function(t,n){return e(t,n,i)}):F,zg(1),n?qk(t):ZM(function(){return new JM}))}}function tS(e,t){return ue(e,t,1)}var nS=function e(){s(this,e)},iS=function e(){s(this,e)},rS=function(){function e(t){var n=this;s(this,e),this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?function(){n.headers=new Map,t.split("\n").forEach(function(e){var t=e.indexOf(":");if(t>0){var i=e.slice(0,t),r=i.toLowerCase(),a=e.slice(t+1).trim();n.maybeSetNormalizedName(i,r),n.headers.has(r)?n.headers.get(r).push(a):n.headers.set(r,[a])}})}:function(){n.headers=new Map,Object.keys(t).forEach(function(e){var i=t[e],r=e.toLowerCase();"string"==typeof i&&(i=[i]),i.length>0&&(n.headers.set(r,i),n.maybeSetNormalizedName(e,r))})}:this.headers=new Map}return o(e,[{key:"has",value:function(e){return this.init(),this.headers.has(e.toLowerCase())}},{key:"get",value:function(e){this.init();var t=this.headers.get(e.toLowerCase());return t&&t.length>0?t[0]:null}},{key:"keys",value:function(){return this.init(),Array.from(this.normalizedNames.values())}},{key:"getAll",value:function(e){return this.init(),this.headers.get(e.toLowerCase())||null}},{key:"append",value:function(e,t){return this.clone({name:e,value:t,op:"a"})}},{key:"set",value:function(e,t){return this.clone({name:e,value:t,op:"s"})}},{key:"delete",value:function(e,t){return this.clone({name:e,value:t,op:"d"})}},{key:"maybeSetNormalizedName",value:function(e,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,e)}},{key:"init",value:function(){var t=this;this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(function(e){return t.applyUpdate(e)}),this.lazyUpdate=null))}},{key:"copyFrom",value:function(e){var t=this;e.init(),Array.from(e.headers.keys()).forEach(function(n){t.headers.set(n,e.headers.get(n)),t.normalizedNames.set(n,e.normalizedNames.get(n))})}},{key:"clone",value:function(t){var n=new e;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}},{key:"applyUpdate",value:function(e){var t=e.name.toLowerCase();switch(e.op){case"a":case"s":var n=e.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(e.name,t);var i=("a"===e.op?this.headers.get(t):void 0)||[];i.push.apply(i,b(n)),this.headers.set(t,i);break;case"d":var r=e.value;if(r){var a=this.headers.get(t);if(!a)return;0===(a=a.filter(function(e){return-1===r.indexOf(e)})).length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,a)}else this.headers.delete(t),this.normalizedNames.delete(t)}}},{key:"forEach",value:function(e){var t=this;this.init(),Array.from(this.normalizedNames.keys()).forEach(function(n){return e(t.normalizedNames.get(n),t.headers.get(n))})}}]),e}(),aS=function(){function e(){s(this,e)}return o(e,[{key:"encodeKey",value:function(e){return lS(e)}},{key:"encodeValue",value:function(e){return lS(e)}},{key:"decodeKey",value:function(e){return decodeURIComponent(e)}},{key:"decodeValue",value:function(e){return decodeURIComponent(e)}}]),e}();function oS(e,t){var n=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(function(e){var i=e.indexOf("="),r=_(-1==i?[t.decodeKey(e),""]:[t.decodeKey(e.slice(0,i)),t.decodeValue(e.slice(i+1))],2),a=r[0],o=r[1],s=n.get(a)||[];s.push(o),n.set(a,s)}),n}var sS=/%(\d[a-f0-9])/gi,uS={40:"@","3A":":",24:"$","2C":",","3B":";","2B":"+","3D":"=","3F":"?","2F":"/"};function lS(e){return encodeURIComponent(e).replace(sS,function(e,t){var n;return null!==(n=uS[t])&&void 0!==n?n:e})}function cS(e){return"".concat(e)}var dS=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(s(this,e),this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new aS,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=oS(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(function(e){var i=n.fromObject[e];t.map.set(e,Array.isArray(i)?i:[i])})):this.map=null}return o(e,[{key:"has",value:function(e){return this.init(),this.map.has(e)}},{key:"get",value:function(e){this.init();var t=this.map.get(e);return t?t[0]:null}},{key:"getAll",value:function(e){return this.init(),this.map.get(e)||null}},{key:"keys",value:function(){return this.init(),Array.from(this.map.keys())}},{key:"append",value:function(e,t){return this.clone({param:e,value:t,op:"a"})}},{key:"appendAll",value:function(e){var t=[];return Object.keys(e).forEach(function(n){var i=e[n];Array.isArray(i)?i.forEach(function(e){t.push({param:n,value:e,op:"a"})}):t.push({param:n,value:i,op:"a"})}),this.clone(t)}},{key:"set",value:function(e,t){return this.clone({param:e,value:t,op:"s"})}},{key:"delete",value:function(e,t){return this.clone({param:e,value:t,op:"d"})}},{key:"toString",value:function(){var e=this;return this.init(),this.keys().map(function(t){var n=e.encoder.encodeKey(t);return e.map.get(t).map(function(t){return n+"="+e.encoder.encodeValue(t)}).join("&")}).filter(function(e){return""!==e}).join("&")}},{key:"clone",value:function(t){var n=new e({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}},{key:"init",value:function(){var e=this;null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(function(t){return e.map.set(t,e.cloneFrom.map.get(t))}),this.updates.forEach(function(t){switch(t.op){case"a":case"s":var n=("a"===t.op?e.map.get(t.param):void 0)||[];n.push(cS(t.value)),e.map.set(t.param,n);break;case"d":if(void 0===t.value){e.map.delete(t.param);break}var i=e.map.get(t.param)||[],r=i.indexOf(cS(t.value));-1!==r&&i.splice(r,1),i.length>0?e.map.set(t.param,i):e.map.delete(t.param)}}),this.cloneFrom=this.updates=null)}}]),e}(),hS=function(){function e(){s(this,e),this.map=new Map}return o(e,[{key:"set",value:function(e,t){return this.map.set(e,t),this}},{key:"get",value:function(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}},{key:"delete",value:function(e){return this.map.delete(e),this}},{key:"keys",value:function(){return this.map.keys()}}]),e}();function fS(e){return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer}function pS(e){return"undefined"!=typeof Blob&&e instanceof Blob}function mS(e){return"undefined"!=typeof FormData&&e instanceof FormData}var gS=function(){function e(t,n,i,r){var a;if(s(this,e),this.url=n,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,a=r):a=i,a&&(this.reportProgress=!!a.reportProgress,this.withCredentials=!!a.withCredentials,a.responseType&&(this.responseType=a.responseType),a.headers&&(this.headers=a.headers),a.context&&(this.context=a.context),a.params&&(this.params=a.params)),this.headers||(this.headers=new rS),this.context||(this.context=new hS),this.params){var o=this.params.toString();if(0===o.length)this.urlWithParams=n;else{var u=n.indexOf("?");this.urlWithParams=n+(-1===u?"?":u0&&void 0!==arguments[0]?arguments[0]:{},i=n.method||this.method,r=n.url||this.url,a=n.responseType||this.responseType,o=void 0!==n.body?n.body:this.body,s=void 0!==n.withCredentials?n.withCredentials:this.withCredentials,u=void 0!==n.reportProgress?n.reportProgress:this.reportProgress,l=n.headers||this.headers,c=n.params||this.params,d=null!==(t=n.context)&&void 0!==t?t:this.context;return void 0!==n.setHeaders&&(l=Object.keys(n.setHeaders).reduce(function(e,t){return e.set(t,n.setHeaders[t])},l)),n.setParams&&(c=Object.keys(n.setParams).reduce(function(e,t){return e.set(t,n.setParams[t])},c)),new e(i,r,o,{params:c,headers:l,context:d,reportProgress:u,responseType:a,withCredentials:s})}}]),e}(),vS=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}({}),_S=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"OK";s(this,e),this.headers=t.headers||new rS,this.status=void 0!==t.status?t.status:n,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300},yS=function(e){l(n,e);var t=p(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return s(this,n),(e=t.call(this,i)).type=vS.ResponseHeader,e}return o(n,[{key:"clone",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new n({headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}]),n}(_S),bS=function(e){l(n,e);var t=p(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return s(this,n),(e=t.call(this,i)).type=vS.Response,e.body=void 0!==i.body?i.body:null,e}return o(n,[{key:"clone",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new n({body:void 0!==e.body?e.body:this.body,headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}]),n}(_S),wS=function(e){l(n,e);var t=p(n);function n(e){var i;return s(this,n),(i=t.call(this,e,0,"Unknown Error")).name="HttpErrorResponse",i.ok=!1,i.message=i.status>=200&&i.status<300?"Http failure during parsing for ".concat(e.url||"(unknown url)"):"Http failure response for ".concat(e.url||"(unknown url)",": ").concat(e.status," ").concat(e.statusText),i.error=e.error||null,i}return n}(_S);function kS(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials}}var MS=function(){var e=function(){function e(t){s(this,e),this.handler=t}return o(e,[{key:"request",value:function(e,t){var n,i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e instanceof gS)n=e;else{var a=void 0;a=r.headers instanceof rS?r.headers:new rS(r.headers);var o=void 0;r.params&&(o=r.params instanceof dS?r.params:new dS({fromObject:r.params})),n=new gS(e,t,void 0!==r.body?r.body:null,{headers:a,context:r.context,params:o,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials})}var s=bm(n).pipe(tS(function(e){return i.handler.handle(e)}));if(e instanceof gS||"events"===r.observe)return s;var u=s.pipe(zm(function(e){return e instanceof bS}));switch(r.observe||"body"){case"body":switch(n.responseType){case"arraybuffer":return u.pipe(K(function(e){if(null!==e.body&&!(e.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return e.body}));case"blob":return u.pipe(K(function(e){if(null!==e.body&&!(e.body instanceof Blob))throw new Error("Response is not a Blob.");return e.body}));case"text":return u.pipe(K(function(e){if(null!==e.body&&"string"!=typeof e.body)throw new Error("Response is not a string.");return e.body}));case"json":default:return u.pipe(K(function(e){return e.body}))}case"response":return u;default:throw new Error("Unreachable: unhandled observe type ".concat(r.observe,"}"))}}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("DELETE",e,t)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("GET",e,t)}},{key:"head",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("HEAD",e,t)}},{key:"jsonp",value:function(e,t){return this.request("JSONP",e,{params:(new dS).append(t,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}},{key:"options",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("OPTIONS",e,t)}},{key:"patch",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PATCH",e,kS(n,t))}},{key:"post",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("POST",e,kS(n,t))}},{key:"put",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PUT",e,kS(n,t))}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(nS))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),SS=function(){function e(t,n){s(this,e),this.next=t,this.interceptor=n}return o(e,[{key:"handle",value:function(e){return this.interceptor.intercept(e,this.next)}}]),e}(),CS=new Mi("HTTP_INTERCEPTORS"),LS=function(){var e=function(){function e(){s(this,e)}return o(e,[{key:"intercept",value:function(e,t){return t.handle(e)}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),xS=/^\)\]\}',?\n/,TS=function(){var e=function(){function e(t){s(this,e),this.xhrFactory=t}return o(e,[{key:"handle",value:function(e){var t=this;if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new N(function(n){var i=t.xhrFactory.build();if(i.open(e.method,e.urlWithParams),e.withCredentials&&(i.withCredentials=!0),e.headers.forEach(function(e,t){return i.setRequestHeader(e,t.join(","))}),e.headers.has("Accept")||i.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){var r=e.detectContentTypeHeader();null!==r&&i.setRequestHeader("Content-Type",r)}if(e.responseType){var a=e.responseType.toLowerCase();i.responseType="json"!==a?a:"text"}var o=e.serializeBody(),s=null,u=function(){if(null!==s)return s;var t=1223===i.status?204:i.status,n=i.statusText||"OK",r=new rS(i.getAllResponseHeaders()),a=function(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(i)||e.url;return s=new yS({headers:r,status:t,statusText:n,url:a})},l=function(){var t=u(),r=t.headers,a=t.status,o=t.statusText,s=t.url,l=null;204!==a&&(l=void 0===i.response?i.responseText:i.response),0===a&&(a=l?200:0);var c=a>=200&&a<300;if("json"===e.responseType&&"string"==typeof l){var d=l;l=l.replace(xS,"");try{l=""!==l?JSON.parse(l):null}catch(h){l=d,c&&(c=!1,l={error:h,text:l})}}c?(n.next(new bS({body:l,headers:r,status:a,statusText:o,url:s||void 0})),n.complete()):n.error(new wS({error:l,headers:r,status:a,statusText:o,url:s||void 0}))},c=function(e){var t=u(),r=new wS({error:e,status:i.status||0,statusText:i.statusText||"Unknown Error",url:t.url||void 0});n.error(r)},d=!1,h=function(t){d||(n.next(u()),d=!0);var r={type:vS.DownloadProgress,loaded:t.loaded};t.lengthComputable&&(r.total=t.total),"text"===e.responseType&&i.responseText&&(r.partialText=i.responseText),n.next(r)},f=function(e){var t={type:vS.UploadProgress,loaded:e.loaded};e.lengthComputable&&(t.total=e.total),n.next(t)};return i.addEventListener("load",l),i.addEventListener("error",c),i.addEventListener("timeout",c),i.addEventListener("abort",c),e.reportProgress&&(i.addEventListener("progress",h),null!==o&&i.upload&&i.upload.addEventListener("progress",f)),i.send(o),n.next({type:vS.Sent}),function(){i.removeEventListener("error",c),i.removeEventListener("abort",c),i.removeEventListener("load",l),i.removeEventListener("timeout",c),e.reportProgress&&(i.removeEventListener("progress",h),null!==o&&i.upload&&i.upload.removeEventListener("progress",f)),i.readyState!==i.DONE&&i.abort()}})}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Ph))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),DS=new Mi("XSRF_COOKIE_NAME"),OS=new Mi("XSRF_HEADER_NAME"),ES=function e(){s(this,e)},YS=function(){var e=function(){function e(t,n,i){s(this,e),this.doc=t,this.platform=n,this.cookieName=i,this.lastCookieString="",this.lastToken=null,this.parseCount=0}return o(e,[{key:"getToken",value:function(){if("server"===this.platform)return null;var e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=rh(e,this.cookieName),this.lastCookieString=e),this.lastToken}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(yd),Bi(kc),Bi(DS))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),PS=function(){var e=function(){function e(t,n){s(this,e),this.tokenService=t,this.headerName=n}return o(e,[{key:"intercept",value:function(e,t){var n=e.url.toLowerCase();if("GET"===e.method||"HEAD"===e.method||n.startsWith("http://")||n.startsWith("https://"))return t.handle(e);var i=this.tokenService.getToken();return null===i||e.headers.has(this.headerName)||(e=e.clone({headers:e.headers.set(this.headerName,i)})),t.handle(e)}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(ES),Bi(OS))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),AS=function(){var e=function(){function e(t,n){s(this,e),this.backend=t,this.injector=n,this.chain=null}return o(e,[{key:"handle",value:function(e){if(null===this.chain){var t=this.injector.get(CS,[]);this.chain=t.reduceRight(function(e,t){return new SS(e,t)},this.backend)}return this.chain.handle(e)}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(iS),Bi(qo))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),IS=function(){var e=function(){function e(){s(this,e)}return o(e,null,[{key:"disable",value:function(){return{ngModule:e,providers:[{provide:PS,useClass:LS}]}}},{key:"withOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{ngModule:e,providers:[t.cookieName?{provide:DS,useValue:t.cookieName}:[],t.headerName?{provide:OS,useValue:t.headerName}:[]]}}}]),e}();return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[PS,{provide:CS,useExisting:PS,multi:!0},{provide:ES,useClass:YS},{provide:DS,useValue:"XSRF-TOKEN"},{provide:OS,useValue:"X-XSRF-TOKEN"}]}),e}(),RS=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[MS,{provide:nS,useClass:AS},TS,{provide:iS,useExisting:TS}],imports:[[IS.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),e}(),FS="w4bxe2tbf9beb72r",HS=function(){function e(e){this.http=e,this.url="/api/"}return e.prototype.get=function(e,t,n){var i=this;return void 0===t&&(t=null),void 0===n&&(n=null),n=n?Object.assign(this.createDefaultRequestOptions(),n):this.createDefaultRequestOptions(),this.http.get(this.getUrl(e,t,n.useV2),this.returnRequestOptions(n,null)).pipe(qM(function(e){return i.processConnectionError(e)}))},e.prototype.post=function(e,t,n){var i=this;return void 0===t&&(t=null),void 0===n&&(n=null),n=n?Object.assign(this.createDefaultRequestOptions(),n):this.createDefaultRequestOptions(),this.getCsrf().pipe(eS(),ue(function(r){return n.useV2&&(n.sendDataAsJson=!0),i.http.post(i.getUrl(e,null,n.useV2),n.sendDataAsJson?t?JSON.stringify(t):"":i.getQueryString(t),i.returnRequestOptions(n,r)).pipe(qM(function(e){return i.processConnectionError(e)}))}))},e.prototype.createDefaultRequestOptions=function(){return{useV2:!1,sendDataAsJson:!1}},e.prototype.getCsrf=function(){return this.get("csrf").pipe(K(function(e){return e.csrf_token}))},e.prototype.returnRequestOptions=function(e,t){var n={};return n.headers=new rS,n.headers=n.headers.append("Content-Type",e.sendDataAsJson?"application/json":"application/x-www-form-urlencoded"),t&&(n.headers=n.headers.append("X-CSRF-Token",t)),n},e.prototype.getQueryString=function(e){return void 0===e&&(e=null),e?Object.keys(e).reduce(function(t,n){return t.push(n+"="+encodeURIComponent(e[n])),t},[]).join("&"):""},e.prototype.getUrl=function(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=!1),e.startsWith("/")&&(e=e.substr(1,e.length-1)),this.url+(n?"v2/":"v1/")+e+"?"+this.getQueryString(t)},e.prototype.processConnectionError=function(e){return sg(VM(e))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(MS))}}),e}(),jS=function(){function e(e,t){this.apiService=e,this.http=t,this.csrfDisabledInternal=!1,this.fullCoinNameInternal=" ",this.coinNameInternal=" ",this.hoursNameInternal=" ",this.hoursNameSingularInternal=" ",this.explorerUrlInternal=" ",this.currentMaxDecimalsInternal=6,this.burnRateInternal=new CM.BigNumber(2),this.updateAvailableInternal=!1,this.lastestVersionInternal="",this.uriSpecificatioPrefixInternal=""}return Object.defineProperty(e.prototype,"csrfDisabled",{get:function(){return this.csrfDisabledInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nodeVersion",{get:function(){return this.nodeVersionInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"fullCoinName",{get:function(){return this.fullCoinNameInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"coinName",{get:function(){return this.coinNameInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hoursName",{get:function(){return this.hoursNameInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hoursNameSingular",{get:function(){return this.hoursNameSingularInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"explorerUrl",{get:function(){return this.explorerUrlInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentMaxDecimals",{get:function(){return this.currentMaxDecimalsInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"burnRate",{get:function(){return this.burnRateInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"updateAvailable",{get:function(){return this.updateAvailableInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastestVersion",{get:function(){return this.lastestVersionInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"uriSpecificatioPrefix",{get:function(){return this.uriSpecificatioPrefixInternal},enumerable:!1,configurable:!0}),e.prototype.UpdateData=function(){var e=this;this.apiService.get("health").subscribe(function(t){e.nodeVersionInternal=t.version.version,e.burnRateInternal=new CM.BigNumber(t.user_verify_transaction.burn_factor),e.currentMaxDecimalsInternal=t.user_verify_transaction.max_decimals,e.detectUpdateAvailable(),e.fullCoinNameInternal=t.fiber.display_name,e.coinNameInternal=t.fiber.ticker,e.hoursNameInternal=t.fiber.coin_hours_display_name,e.hoursNameSingularInternal=t.fiber.coin_hours_display_name_singular,e.explorerUrlInternal=t.fiber.explorer_url,e.uriSpecificatioPrefixInternal=t.fiber.qr_uri_prefix,e.explorerUrlInternal.endsWith("/")&&(e.explorerUrlInternal=e.explorerUrlInternal.substr(0,e.explorerUrl.length-1)),t.csrf_enabled||(e.csrfDisabledInternal=!0)},function(){return zM(2)})},e.prototype.detectUpdateAvailable=function(){var e=this;jM.urlForVersionChecking&&this.http.get(jM.urlForVersionChecking,{responseType:"text"}).pipe(xM(function(e){return e.pipe(EM(3e4))})).subscribe(function(t){e.lastestVersionInternal=t.trim(),e.lastestVersionInternal.startsWith("v")&&(e.lastestVersionInternal=e.lastestVersionInternal.substr(1)),e.updateAvailableInternal=function(e,t){for(var n=t.split("."),i=e.split("-"),r=i[0].split("."),a=0;a<3;a++){var o=Number(n[a]),s=Number(r[a]);if(o>s)return!0;if(o2&&void 0!==arguments[2]?arguments[2]:Fm;return function(i){var r=OM(e),a=r?+e-n.now():Math.abs(e);return i.lift(new dC(a,r,t,n))}}var dC=function(){function e(t,n,i,r){s(this,e),this.waitFor=t,this.absoluteTimeout=n,this.withObservable=i,this.scheduler=r}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new hC(e,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))}}]),e}(),hC=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o){var u;return s(this,n),(u=t.call(this,e)).absoluteTimeout=i,u.waitFor=r,u.withObservable=a,u.scheduler=o,u.scheduleTimeout(),u}return o(n,[{key:"scheduleTimeout",value:function(){var e=this.action;e?this.action=e.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(n.dispatchTimeout,this.waitFor,this))}},{key:"_next",value:function(e){this.absoluteTimeout||this.scheduleTimeout(),r(i(n.prototype),"_next",this).call(this,e)}},{key:"_unsubscribe",value:function(){this.action=void 0,this.scheduler=null,this.withObservable=null}}],[{key:"dispatchTimeout",value:function(e){var t=e.withObservable;e._unsubscribeAndRecycle(),e.add(se(t,new ae(e)))}}]),n}(oe),fC=function(){function e(e){this.dialog=e}return Object.defineProperty(e.prototype,"requestWordComponent",{set:function(e){this.requestWordComponentInternal=e},enumerable:!1,configurable:!0}),e.prototype.requestWord=function(){return this.requestWordComponentInternal.openDialog(this.dialog,{reason:"HWWalletOperation"}).afterClosed().pipe(K(function(e){return e}))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(Pk))}}),e}(),pC=function(){function e(e,t,n,i){this.http=e,this.hwWalletPinService=t,this.hwWalletSeedWordService=n,this.ngZone=i,this.url="http://127.0.0.1:9510/api/v1/",this.timeoutMs=55e3,this.connectionEventSubject=new Rv(!1),this.hwConnected=!1,this.disconnectedChecks=0,this.maxFastDisconnectedChecks=32,this.updatePeriod=1e4,this.fastUpdatePeriod=2e3}return Object.defineProperty(e.prototype,"connectionEvent",{get:function(){return this.connectionEventSubject.asObservable()},enumerable:!1,configurable:!0}),e.prototype.get=function(e){return this.checkResponse(this.http.get(this.getUrl(e),this.returnRequestOptions()),e.includes("/available"))},e.prototype.post=function(e,t){return void 0===t&&(t=null),t||(t={}),this.checkResponse(this.http.post(this.getUrl(e),JSON.stringify(t),this.returnRequestOptions()))},e.prototype.put=function(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=!1),this.checkResponse(this.http.put(this.getUrl(e),t,this.returnRequestOptions(n)),!1)},e.prototype.delete=function(e){return this.checkResponse(this.http.delete(this.getUrl(e),this.returnRequestOptions()))},e.prototype.checkResponse=function(e,t){var n=this;return void 0===t&&(t=!1),e.pipe(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fm;return cC(e,sg(new lC),t)}(this.timeoutMs),ue(function(e){return e.data&&e.data.length&&1===e.data.length&&(e.data=e.data[0]),t?n.ngZone.run(function(){return n.updateHwConnected(!!e.data)}):n.updateHwConnected(!0),"string"==typeof e.data&&-1!==e.data.indexOf("PinMatrixRequest")?n.hwWalletPinService.requestPin().pipe(ue(function(e){return e?n.post("/intermediate/pin_matrix",{pin:e}):n.put("/cancel").pipe(ue(function(){var e=new WM;return e.originalError=null,e.originalServerErrorMsg="",e.type=BM.FailedOrRefused,e.translatableErrorMsg=n.getHardwareWalletErrorMsg(e.type),sg(e)}))})):"string"==typeof e.data&&-1!==e.data.indexOf("WordRequest")?n.hwWalletSeedWordService.requestWord().pipe(ue(function(e){return e?n.post("/intermediate/word",{word:e}):n.put("/cancel").pipe(ue(function(){var e=new WM;return e.originalError=null,e.originalServerErrorMsg="",e.type=BM.FailedOrRefused,e.translatableErrorMsg=n.getHardwareWalletErrorMsg(e.type),sg(e)}))})):"string"==typeof e.data&&-1!==e.data.indexOf("ButtonRequest")?n.post("/intermediate/button"):bm(e)}),qM(function(e){if(e.type)return sg(e);var t=new WM;return t.originalError=e,e&&e.name&&"TimeoutError"===e.name?(n.put("/cancel").subscribe(),t.originalServerErrorMsg=e.name,t.type=BM.Timeout,t.translatableErrorMsg=n.getHardwareWalletErrorMsg(t.type),sg(t)):null==e.status||0!==e.status&&504!==e.status?(t.originalServerErrorMsg=UM(e),t.type=n.getHardwareWalletErrorType(t.originalServerErrorMsg),t.translatableErrorMsg=n.getHardwareWalletErrorMsg(t.type),sg(t)):(t.originalServerErrorMsg=UM(e),t.type=BM.DaemonConnectionError,t.translatableErrorMsg=n.getHardwareWalletErrorMsg(t.type),sg(t))}))},e.prototype.returnRequestOptions=function(e){void 0===e&&(e=!1);var t={};return t.headers=new rS,e||(t.headers=t.headers.append("Content-Type","application/json")),t},e.prototype.checkHw=function(e){var t=this;this.checkHwSubscription&&this.checkHwSubscription.unsubscribe(),this.ngZone.runOutsideAngular(function(){t.checkHwSubscription=bm(1).pipe(EM(e?t.hwConnected||t.disconnectedChecks*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n"],encapsulation:2,changeDetection:0}),e}(),CC=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[ik,jw],jw]}),e}();function LC(e){return function(t){return t.lift(new xC(e))}}var xC=function(){function e(t){s(this,e),this.callback=t}return o(e,[{key:"call",value:function(e,t){return t.subscribe(new TC(e,this.callback))}}]),e}(),TC=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e)).add(new x(i)),r}return n}(A),DC=["*"];function OC(e){return Error('Unable to find icon with the name "'.concat(e,'"'))}function EC(e){return Error("The URL provided to MatIconRegistry was not trusted as a resource URL "+"via Angular's DomSanitizer. Attempted URL was \"".concat(e,'".'))}function YC(e){return Error("The literal provided to MatIconRegistry was not trusted as safe HTML by "+"Angular's DomSanitizer. Attempted literal was \"".concat(e,'".'))}var PC=function e(t,n,i){s(this,e),this.url=t,this.svgText=n,this.options=i},AC=function(){var e=function(){function e(t,n,i,r){s(this,e),this._httpClient=t,this._sanitizer=n,this._errorHandler=r,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass="material-icons",this._document=i}return o(e,[{key:"addSvgIcon",value:function(e,t,n){return this.addSvgIconInNamespace("",e,t,n)}},{key:"addSvgIconLiteral",value:function(e,t,n){return this.addSvgIconLiteralInNamespace("",e,t,n)}},{key:"addSvgIconInNamespace",value:function(e,t,n,i){return this._addSvgIconConfig(e,t,new PC(n,null,i))}},{key:"addSvgIconResolver",value:function(e){return this._resolvers.push(e),this}},{key:"addSvgIconLiteralInNamespace",value:function(e,t,n,i){var r=this._sanitizer.sanitize(Er.HTML,n);if(!r)throw YC(n);return this._addSvgIconConfig(e,t,new PC("",r,i))}},{key:"addSvgIconSet",value:function(e,t){return this.addSvgIconSetInNamespace("",e,t)}},{key:"addSvgIconSetLiteral",value:function(e,t){return this.addSvgIconSetLiteralInNamespace("",e,t)}},{key:"addSvgIconSetInNamespace",value:function(e,t,n){return this._addSvgIconSetConfig(e,new PC(t,null,n))}},{key:"addSvgIconSetLiteralInNamespace",value:function(e,t,n){var i=this._sanitizer.sanitize(Er.HTML,t);if(!i)throw YC(t);return this._addSvgIconSetConfig(e,new PC("",i,n))}},{key:"registerFontClassAlias",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return this._fontCssClassesByAlias.set(e,t),this}},{key:"classNameForFontAlias",value:function(e){return this._fontCssClassesByAlias.get(e)||e}},{key:"setDefaultFontSetClass",value:function(e){return this._defaultFontSetClass=e,this}},{key:"getDefaultFontSetClass",value:function(){return this._defaultFontSetClass}},{key:"getSvgIconFromUrl",value:function(e){var t=this,n=this._sanitizer.sanitize(Er.RESOURCE_URL,e);if(!n)throw EC(e);var i=this._cachedIconsByUrl.get(n);return i?bm(IC(i)):this._loadSvgIconFromConfig(new PC(e,null)).pipe(Hv(function(e){return t._cachedIconsByUrl.set(n,e)}),K(function(e){return IC(e)}))}},{key:"getNamedSvgIcon",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=RC(t,e),i=this._svgIconConfigs.get(n);if(i)return this._getSvgFromConfig(i);if(i=this._getIconConfigFromResolvers(t,e))return this._svgIconConfigs.set(n,i),this._getSvgFromConfig(i);var r=this._iconSetConfigs.get(t);return r?this._getSvgFromIconSetConfigs(e,r):sg(OC(n))}},{key:"ngOnDestroy",value:function(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}},{key:"_getSvgFromConfig",value:function(e){return e.svgText?bm(IC(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(K(function(e){return IC(e)}))}},{key:"_getSvgFromIconSetConfigs",value:function(e,t){var n=this,i=this._extractIconWithNameFromAnySet(e,t);return i?bm(i):yf(t.filter(function(e){return!e.svgText}).map(function(e){return n._loadSvgIconSetFromConfig(e).pipe(qM(function(t){var i=n._sanitizer.sanitize(Er.RESOURCE_URL,e.url),r="Loading icon set URL: ".concat(i," failed: ").concat(t.message);return n._errorHandler.handleError(new Error(r)),bm(null)}))})).pipe(K(function(){var i=n._extractIconWithNameFromAnySet(e,t);if(!i)throw OC(e);return i}))}},{key:"_extractIconWithNameFromAnySet",value:function(e,t){for(var n=t.length-1;n>=0;n--){var i=t[n];if(i.svgText&&i.svgText.indexOf(e)>-1){var r=this._svgElementFromConfig(i),a=this._extractSvgIconFromSet(r,e,i.options);if(a)return a}}return null}},{key:"_loadSvgIconFromConfig",value:function(e){var t=this;return this._fetchIcon(e).pipe(Hv(function(t){return e.svgText=t}),K(function(){return t._svgElementFromConfig(e)}))}},{key:"_loadSvgIconSetFromConfig",value:function(e){return e.svgText?bm(null):this._fetchIcon(e).pipe(Hv(function(t){return e.svgText=t}))}},{key:"_extractSvgIconFromSet",value:function(e,t,n){var i=e.querySelector('[id="'.concat(t,'"]'));if(!i)return null;var r=i.cloneNode(!0);if(r.removeAttribute("id"),"svg"===r.nodeName.toLowerCase())return this._setSvgAttributes(r,n);if("symbol"===r.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(r),n);var a=this._svgElementFromString("");return a.appendChild(r),this._setSvgAttributes(a,n)}},{key:"_svgElementFromString",value:function(e){var t=this._document.createElement("DIV");t.innerHTML=e;var n=t.querySelector("svg");if(!n)throw Error(" tag not found");return n}},{key:"_toSvgElement",value:function(e){for(var t=this._svgElementFromString(""),n=e.attributes,i=0;i0&&t<10?this.addNumber(t.toString()):8===e.keyCode?this.removeNumber():13===e.keyCode&&this.sendPin()},t.prototype.addNumber=function(e){var t=this.form.value.pin;t.length<8&&this.form.get("pin").setValue(t+e)},t.prototype.removeNumber=function(){var e=this.form.value.pin;this.form.get("pin").setValue(e.substring(0,e.length-1))},t.prototype.sendPin=function(){this.form.valid&&this.dialogRef.close(this.form.value.pin)},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(fm),ps(Pk),ps(gC))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-pin-dialog"]],hostBindings:function(e,t){1&e&&xs("keyup",function(e){return t.keyEvent(e)},!1,Br)},features:[Ko],decls:90,vars:24,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"form-field","text-center"],[4,"ngIf"],[1,"link",3,"click"],["formControlName","pin","id","pin","type","password","readonly",""],[1,"light-button-theme"],[1,"num-pad-row"],["mat-button","","color","primary",3,"click"],[1,"material-icons"],[1,"-buttons"],[1,"primary-button",3,"disabled","action"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n\n "),ru(3,"\n "),vs(4,"div",1),ru(5,"\n "),vs(6,"div",2),ru(7,"\n "),vs(8,"div"),ru(9,"\n "),hs(10,$C,3,3,"span",3),ru(11,"\n "),hs(12,XC,3,3,"span",3),ru(13,"\n "),hs(14,QC,3,3,"span",3),ru(15,"\n "),vs(16,"span",4),xs("click",function(){return t.openHelp()}),ru(17),Wl(18,"translate"),_s(),ru(19,"\n "),_s(),ru(20,"\n "),ys(21,"input",5),ru(22,"\n "),_s(),ru(23,"\n "),_s(),ru(24,"\n\n "),ru(25,"\n "),vs(26,"div",6),ru(27,"\n "),vs(28,"div",7),ru(29,"\n "),vs(30,"button",8),xs("click",function(){return t.addNumber("7")}),vs(31,"span"),ru(32),_s(),_s(),ru(33,"\n "),vs(34,"button",8),xs("click",function(){return t.addNumber("8")}),vs(35,"span"),ru(36),_s(),_s(),ru(37,"\n "),vs(38,"button",8),xs("click",function(){return t.addNumber("9")}),vs(39,"span"),ru(40),_s(),_s(),ru(41,"\n "),_s(),ru(42,"\n "),vs(43,"div",7),ru(44,"\n "),vs(45,"button",8),xs("click",function(){return t.addNumber("4")}),vs(46,"span"),ru(47),_s(),_s(),ru(48,"\n "),vs(49,"button",8),xs("click",function(){return t.addNumber("5")}),vs(50,"span"),ru(51),_s(),_s(),ru(52,"\n "),vs(53,"button",8),xs("click",function(){return t.addNumber("6")}),vs(54,"span"),ru(55),_s(),_s(),ru(56,"\n "),_s(),ru(57,"\n "),vs(58,"div",7),ru(59,"\n "),vs(60,"button",8),xs("click",function(){return t.addNumber("1")}),vs(61,"span"),ru(62),_s(),_s(),ru(63,"\n "),vs(64,"button",8),xs("click",function(){return t.addNumber("2")}),vs(65,"span"),ru(66),_s(),_s(),ru(67,"\n "),vs(68,"button",8),xs("click",function(){return t.addNumber("3")}),vs(69,"span"),ru(70),_s(),_s(),ru(71,"\n "),_s(),ru(72,"\n "),vs(73,"div",7),ru(74,"\n "),vs(75,"button",8),xs("click",function(){return t.removeNumber()}),vs(76,"span",9),ru(77,"backspace"),_s(),_s(),ru(78,"\n "),_s(),ru(79,"\n "),_s(),ru(80,"\n\n "),ru(81,"\n "),vs(82,"div",10),ru(83,"\n "),vs(84,"app-button",11),xs("action",function(){return t.sendPin()}),ru(85),Wl(86,"translate"),_s(),ru(87,"\n "),_s(),ru(88,"\n"),_s(),ru(89,"\n")),2&e&&(ms("headline",Vl(1,18,t.title))("dialog",t.dialogRef),Ya(4),ms("formGroup",t.form),Ya(6),ms("ngIf",t.data.signingTx&&!t.data.changingPin),Ya(2),ms("ngIf",t.data.changingPin&&t.data.changePinState===t.changePinStates.RequestingNewPin),Ya(2),ms("ngIf",!(t.data.signingTx||t.data.changingPin&&t.data.changePinState===t.changePinStates.RequestingNewPin)),Ya(3),au(Vl(18,20,"hardware-wallet.enter-pin.help")),Ya(15),au(t.buttonsContent),Ya(4),au(t.buttonsContent),Ya(4),au(t.buttonsContent),Ya(7),au(t.buttonsContent),Ya(4),au(t.buttonsContent),Ya(4),au(t.buttonsContent),Ya(7),au(t.buttonsContent),Ya(4),au(t.buttonsContent),Ya(4),au(t.buttonsContent),Ya(14),ms("disabled",!t.form.valid),Ya(1),ou("\n ",Vl(86,22,"common.continue-button"),"\n "))},directives:[jk,ap,jp,lh,Lf,rp,qp,SC,ZC],pipes:[hM],styles:["mat-form-field[_ngcontent-%COMP%]{width:100%}.form-field[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{font-size:25px;line-height:1;letter-spacing:15px;text-align:center;margin-top:5px}.num-pad-row[_ngcontent-%COMP%]{display:flex}.num-pad-row[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{flex-grow:1;height:50px;border:1px solid rgba(30,34,39,.05);margin:2px}.num-pad-row[_ngcontent-%COMP%] button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#1e2227}"]}),t}(yC),tL=function(e){function t(t,n,i){var r=e.call(this,i,n)||this;return r.data=t,r.dialogRef=n,r}return vf(t,e),t.openDialog=function(e,n){var i=new wk;return i.data=n,i.autoFocus=!1,i.width="600px",e.open(t,i)},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(gC))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-confirm-tx-dialog"]],features:[Ko],decls:9,vars:13,consts:[[3,"headline","dialog","disableDismiss"],[3,"text","lowerText","icon","outputsList"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),ys(4,"app-hw-message",1),Wl(5,"translate"),Wl(6,"translate"),ru(7,"\n"),_s(),ru(8,"\n")),2&e&&(ms("headline",Vl(1,7,"hardware-wallet.create-tx.title"))("dialog",t.dialogRef)("disableDismiss",!0),Ya(4),ms("text",Vl(5,9,"hardware-wallet.create-tx.upper-text"))("lowerText",Vl(6,11,"hardware-wallet.create-tx.lower-text"))("icon",t.msgIcons.Confirm)("outputsList",t.data))},directives:[jk,oC],pipes:[hM],styles:[""]}),t}(yC),nL=function(){function e(){this.lastSearchTerm="",this.searchRequestSubject=new z,this.wordMap=new Map}return Object.defineProperty(e.prototype,"searchResults",{get:function(){var e=this;return this.searchRequestSubject.asObservable().pipe(Bv(100),K(function(t){return t.length>1&&e.wordList?e.wordList.filter(function(e){return e.startsWith(t)}):[]}))},enumerable:!1,configurable:!0}),e.prototype.initialize=function(){var e=this;re(n(69769)("./bip39-word-list.json")).subscribe(function(t){e.wordList=t.list,e.wordList.forEach(function(t){e.wordMap.set(t,!0)}),e.searchRequestSubject.next(e.lastSearchTerm)})},e.prototype.setSearchTerm=function(e){this.lastSearchTerm=e,this.wordList&&this.searchRequestSubject.next(e)},e.prototype.validateWord=function(e){return this.wordList?!!this.wordMap.has(e):null},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)}}),e}();function iL(e,t){if(1&e&&(vs(0,"div",9),vs(1,"mat-icon"),ru(2),_s(),_s()),2&e){var n=Ys(2);Ya(2),au(n.config.icon)}}function rL(e,t){if(1&e&&(vs(0,"div",10),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(2);Ya(1),au(Vl(2,1,n.config.title))}}function aL(e,t){if(1&e&&(vs(0,"a",11),ru(1),_s()),2&e){var n=Ys(2);ms("href",n.config.link,Pr),Ya(1),au(n.config.link)}}function oL(e,t){if(1&e){var n=Ms();vs(0,"div",1),ru(1,"\n "),vs(2,"div"),ru(3,"\n "),hs(4,iL,3,1,"div",2),ru(5,"\n "),vs(6,"div",3),ru(7,"\n "),hs(8,rL,3,3,"div",4),ru(9,"\n "),vs(10,"div",5),ru(11),Wl(12,"translate"),hs(13,aL,2,2,"a",6),_s(),ru(14,"\n "),_s(),ru(15,"\n "),vs(16,"div",7),vs(17,"mat-icon",8),xs("click",function(){return on(n),Ys().hide()}),ru(18,"close"),_s(),_s(),ru(19,"\n "),_s(),ru(20,"\n"),_s()}if(2&e){var i=Ys();Ya(2),Js(Ei,Gs,"internal-container "+(i.config.color?i.config.color:"red-background"),!0),Ya(2),ms("ngIf",i.config.icon),Ya(4),ms("ngIf",i.config.title),Ya(3),ou("",Vl(12,6,i.config.text),"\n "),Ya(2),ms("ngIf",i.config.link)}}var sL=function(e){return e.Error="error",e.Done="done",e.Warning="warning",e}({}),uL=function(e){return e.Red="red-background",e.Green="green-background",e.Yellow="yellow-background",e}({}),lL=function(){return function(){}}(),cL=function(){function e(){this.config=new lL,this.visible=!1}return e.prototype.show=function(){var e=this;this.visible?(this.visible=!1,setTimeout(function(){return e.visible=!0},32)):this.visible=!0},e.prototype.hide=function(){this.visible=!1},e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ft({type:e,selectors:[["app-msg-bar"]],decls:2,vars:1,consts:[["class","main-container",4,"ngIf"],[1,"main-container"],["class","icon-container",4,"ngIf"],[1,"text-container"],["class","title",4,"ngIf"],[1,"text"],["class","link","target","_blank","rel","noreferrer nofollow noopener",3,"href",4,"ngIf"],[1,"close-container"],[1,"image-button",3,"click"],[1,"icon-container"],[1,"title"],["target","_blank","rel","noreferrer nofollow noopener",1,"link",3,"href"]],template:function(e,t){1&e&&(hs(0,oL,21,8,"div",0),ru(1,"\n")),2&e&&ms("ngIf",t.visible)},directives:[lh,WC],pipes:[hM],styles:[".main-container[_ngcontent-%COMP%]{position:fixed;bottom:0;width:100%;z-index:1000000;display:flex;flex-direction:row;justify-content:center}.internal-container[_ngcontent-%COMP%]{color:#fff;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:40%;max-width:90%;display:flex;padding:10px;border-top-left-radius:6px;border-top-right-radius:6px}.red-background[_ngcontent-%COMP%]{background-color:rgba(255,0,0,.7)}.green-background[_ngcontent-%COMP%]{background-color:rgba(31,177,31,.7)}.yellow-background[_ngcontent-%COMP%]{background-color:rgba(255,94,0,.7)}.icon-container[_ngcontent-%COMP%], .text-container[_ngcontent-%COMP%]{margin-right:10px}.text-container[_ngcontent-%COMP%]{flex-grow:1}.text-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:15px;margin-top:-1px}.text-container[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{font-size:13px;margin-top:2px}.text-container[_ngcontent-%COMP%] .link[_ngcontent-%COMP%]{color:#fff}"]}),e}(),dL=function(){function e(){}return Object.defineProperty(e.prototype,"msgBarComponent",{set:function(e){this.msgBarComponentInternal=e},enumerable:!1,configurable:!0}),e.prototype.hide=function(){this.msgBarComponentInternal&&this.msgBarComponentInternal.hide()},e.prototype.showError=function(e,t){void 0===t&&(t=2e4);var n=new lL;n.text=VM(e).translatableErrorMsg,n.title="common.error-title",n.icon=sL.Error,n.color=uL.Red,e.type&&e.type===BM.DaemonConnectionError&&(n.text="hardware-wallet.errors.daemon-connection-with-configurable-link",n.link=jM.hwWalletDaemonDownloadUrl),this.show(n),this.setTimer(t)},e.prototype.showWarning=function(e,t){void 0===t&&(t=2e4);var n=new lL;n.text=VM(e).translatableErrorMsg,n.title="common.warning-title",n.icon=sL.Warning,n.color=uL.Yellow,this.show(n),this.setTimer(t)},e.prototype.showDone=function(e,t){void 0===t&&(t=1e4);var n=new lL;n.text=e,n.title="common.done-title",n.icon=sL.Done,n.color=uL.Green,this.show(n),this.setTimer(t)},e.prototype.show=function(e){this.msgBarComponentInternal&&(this.msgBarComponentInternal.config=e,this.msgBarComponentInternal.show())},e.prototype.setTimer=function(e){var t=this;void 0===e&&(e=1e4),this.timeSubscription&&this.timeSubscription.unsubscribe(),this.timeSubscription=bm(1).pipe(EM(e)).subscribe(function(){return t.hide()})},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)}}),e}();function hL(e,t){1&e&&(ys(0,"app-hw-message",11),Wl(1,"translate"),Wl(2,"translate")),2&e&&ms("upperBigText",Vl(1,2,"hardware-wallet.seed-word.enter-word"))("text",Vl(2,4,"hardware-wallet.seed-word.info"))}var fL=function(e){return{number:e}};function pL(e,t){if(1&e&&(ys(0,"app-hw-message",11),Wl(1,"translate"),Wl(2,"translate")),2&e){var n=Ys();ms("upperBigText",Ul(1,2,"wallet.new.seed.enter-word",Il(7,fL,n.data.wordNumber)))("text",Vl(2,5,n.data.reason===n.wordAskedReasons.CreatingSoftwareWallet?"wallet.new.seed.new-seed-info":"wallet.new.seed.recover-seed-info"))}}function mL(e,t){1&e&&(vs(0,"label",12),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"hardware-wallet.seed-word.word-label")))}function gL(e,t){if(1&e){var n=Ms();vs(0,"mat-option",13),xs("click",function(){return on(n),Ys().sendWord()}),ru(1),_s()}if(2&e){var i=t.$implicit;ms("value",i),Ya(1),au(i)}}var vL=function(e){return e.HWWalletOperation="HWWalletOperation",e.CreatingSoftwareWallet="CreatingSoftwareWallet",e.RecoveringSoftwareWallet="RecoveringSoftwareWallet",e}({}),_L=function(){function e(e,t,n,i,r,a,o){var s=this;this.data=e,this.dialogRef=t,this.formBuilder=n,this.bip38WordList=i,this.msgBarService=r,this.translateService=a,this.msgIcons=aC,this.wordAskedReasons=vL,this.inputErrorMsg="",this.sendingWord=!1,e.reason===vL.HWWalletOperation&&(this.hwConnectionSubscription=o.walletConnectedAsyncEvent.subscribe(function(e){e||s.dialogRef.close()}))}return e.openDialog=function(t,n){var i=new wk;return i.data=n,i.autoFocus=!0,i.width="350px",t.open(e,i)},e.prototype.ngOnInit=function(){var e=this;this.form=this.formBuilder.group({word:[""]}),this.form.setValidators(this.validateForm.bind(this)),this.valueChangeSubscription=this.form.controls.word.valueChanges.subscribe(function(t){e.bip38WordList.setSearchTerm(t.trim().toLowerCase())}),this.filteredOptions=this.bip38WordList.searchResults.pipe(K(function(e){return e}))},e.prototype.ngOnDestroy=function(){this.msgBarService.hide(),this.valueChangeSubscription.unsubscribe(),this.hwConnectionSubscription&&this.hwConnectionSubscription.unsubscribe()},e.prototype.sendWord=function(){var e=this;this.sendingWord||(this.sendingWord=!0,this.msgBarService.hide(),setTimeout(function(){if(e.form.valid){var t=e.bip38WordList.validateWord(e.form.value.word.trim().toLowerCase());t?e.dialogRef.close(e.form.value.word.trim().toLowerCase()):e.msgBarService.showError(e.translateService.instant(null===t?"hardware-wallet.seed-word.error-loading-words":"hardware-wallet.seed-word.error-invalid-word"))}e.sendingWord=!1},32))},e.prototype.validateForm=function(){this.inputErrorMsg="";var e=!0;return this.form.get("word").value||(e=!1,this.form.get("word").touched&&(this.inputErrorMsg="wallet.new.seed.word-error-info")),e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(Tk),ps(Lk),ps(fm),ps(nL),ps(dL),ps(dM),ps(gC))},e.\u0275cmp=ft({type:e,selectors:[["app-seed-word-dialog"]],decls:34,vars:18,consts:[[3,"headline","dialog"],[3,"upperBigText","text",4,"ngIf"],[1,"modal-form-container",3,"formGroup"],[1,"form-field"],["for","word",4,"ngIf"],["matInput","","formControlName","word","id","word",3,"matAutocomplete","appFormFieldError","keydown.enter","blur"],[3,"autoActiveFirstOption"],["auto","matAutocomplete"],["class","option",3,"value","click",4,"ngFor","ngForOf"],[1,"-buttons"],[1,"primary-button",3,"disabled","action"],[3,"upperBigText","text"],["for","word"],[1,"option",3,"value","click"]],template:function(e,t){if(1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,hL,3,6,"app-hw-message",1),ru(5,"\n "),hs(6,pL,3,9,"app-hw-message",1),ru(7,"\n\n "),ru(8,"\n "),vs(9,"div",2),ru(10,"\n "),vs(11,"div",3),ru(12,"\n "),hs(13,mL,3,3,"label",4),ru(14,"\n "),vs(15,"input",5),xs("keydown.enter",function(){return t.sendWord()})("blur",function(){return t.validateForm()}),_s(),ru(16,"\n "),vs(17,"mat-autocomplete",6,7),ru(19,"\n "),hs(20,gL,2,2,"mat-option",8),Wl(21,"async"),ru(22,"\n "),_s(),ru(23,"\n "),_s(),ru(24,"\n "),_s(),ru(25,"\n "),vs(26,"div",9),ru(27,"\n "),vs(28,"app-button",10),xs("action",function(){return t.sendWord()}),ru(29),Wl(30,"translate"),_s(),ru(31,"\n "),_s(),ru(32,"\n"),_s(),ru(33,"\n")),2&e){var n=fs(18);ms("headline",Vl(1,12,t.data.reason===t.wordAskedReasons.HWWalletOperation?"hardware-wallet.seed-word.title":"wallet.new.seed-label"))("dialog",t.dialogRef),Ya(4),ms("ngIf",t.data.reason===t.wordAskedReasons.HWWalletOperation),Ya(2),ms("ngIf",t.data.reason!==t.wordAskedReasons.HWWalletOperation),Ya(3),ms("formGroup",t.form),Ya(4),ms("ngIf",t.data.reason===t.wordAskedReasons.HWWalletOperation),Ya(2),ms("matAutocomplete",n)("appFormFieldError",t.inputErrorMsg),Ya(2),ms("autoActiveFirstOption",!0),Ya(3),ms("ngForOf",Vl(21,14,t.filteredOptions)),Ya(8),ms("disabled",!t.form.valid),Ya(1),ou("\n ",Vl(30,16,"common.continue-button"),"\n ")}},styles:[".option[_ngcontent-%COMP%]{font-size:13px;height:42px}"]}),e}(),yL=function(e){return e.CLIENT="client",e.NOTES="txid",e}({}),bL=function(){function e(e){this.apiService=e}return e.prototype.get=function(e,t){var n={type:e};return t&&(n.key=t),this.apiService.get("data",n,{useV2:!0})},e.prototype.store=function(e,t,n){return this.apiService.post("data",{type:e,key:t,val:n},{useV2:!0})},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(HS))}}),e}(),wL=function(){return function(e){Object.assign(this,e)}}(),kL=function(){function e(e,t){this.translate=e,this.storageService=t,this.currentLanguageInternal=new fg(1),this.savedSelectedLanguageLoadedInternal=new fg(1),this.languagesInternal=[],this.storageKey="lang"}return Object.defineProperty(e.prototype,"currentLanguage",{get:function(){return this.currentLanguageInternal.asObservable()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"savedSelectedLanguageLoaded",{get:function(){return this.savedSelectedLanguageLoadedInternal.asObservable()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languages",{get:function(){return this.languagesInternal},enumerable:!1,configurable:!0}),e.prototype.initialize=function(){var e=this,t=[];jM.languages.forEach(function(n){var i=new wL(n);e.languagesInternal.push(i),t.push(i.code)}),this.translate.addLangs(t),this.translate.setDefaultLang(jM.defaultLanguage),this.translate.onLangChange.subscribe(function(t){return e.onLanguageChanged(t)}),this.loadCurrentLanguage()},e.prototype.changeLanguage=function(e){this.translate.use(e)},e.prototype.onLanguageChanged=function(e){this.currentLanguageInternal.next(this.languages.find(function(t){return t.code===e.lang})),this.subscription&&this.subscription.unsubscribe(),this.subscription=this.storageService.store(yL.CLIENT,this.storageKey,e.lang).subscribe()},e.prototype.loadCurrentLanguage=function(){var e=this;this.storageService.get(yL.CLIENT,this.storageKey).subscribe(function(t){t.data&&-1!==e.translate.getLangs().indexOf(t.data)?(setTimeout(function(){e.changeLanguage(t.data)},16),e.savedSelectedLanguageLoadedInternal.next(!0)):e.savedSelectedLanguageLoadedInternal.next(!1)},function(){e.savedSelectedLanguageLoadedInternal.next(!1)})},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(dM),Bi(bL))}}),e}();function ML(e,t){if(1&e){var n=Ms();vs(0,"button",3),xs("click",function(){var e=on(n).$implicit;return Ys().closePopup(e)}),ru(1,"\n "),ys(2,"img",4),ru(3,"\n "),vs(4,"div",5),ru(5),_s(),ru(6,"\n "),_s()}if(2&e){var i=t.$implicit;Ya(2),ms("src","assets/img/lang/"+i.iconName,Pr),Ya(3),au(i.name)}}var SL=function(){function e(e,t){this.dialogRef=e,this.languageService=t}return e.openDialog=function(t,n){void 0===n&&(n=!1);var i=new wk;return i.autoFocus=!1,i.disableClose=n,i.width="600px",t.open(e,i)},e.prototype.ngOnInit=function(){this.disableDismiss=this.dialogRef.disableClose,this.languages=this.languageService.languages},e.prototype.closePopup=function(e){void 0===e&&(e=null),e&&this.languageService.changeLanguage(e.code),this.dialogRef.close()},e.\u0275fac=function(t){return new(t||e)(ps(Lk),ps(kL))},e.\u0275cmp=ft({type:e,selectors:[["app-select-language"]],decls:9,vars:6,consts:[[1,"e2e-language-modal",3,"headline","disableDismiss","dialog"],[1,"options-container","light-button-theme"],["mat-button","","color","primary","class","button",3,"click",4,"ngFor","ngForOf"],["mat-button","","color","primary",1,"button",3,"click"],[3,"src"],[1,"label"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),vs(3,"div",1),ru(4,"\n "),hs(5,ML,7,2,"button",2),ru(6,"\n "),_s(),ru(7,"\n"),_s(),ru(8,"\n")),2&e&&(ms("headline",Vl(1,4,"language.title"))("disableDismiss",t.disableDismiss)("dialog",t.dialogRef),Ya(5),ms("ngForOf",t.languages))},directives:[jk,sh,SC],pipes:[hM],styles:[".options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] .button[_ngcontent-%COMP%]{width:118px;margin:20px;font-size:12px;line-height:1.4;padding:0;min-width:0}.options-container[_ngcontent-%COMP%] .button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}.options-container[_ngcontent-%COMP%] .button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{background-color:rgba(30,34,39,.05);padding:4px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1e2227}"]}),e}(),CL=function(){return function(){this.label="",this.id="",this.addresses=[],this.encrypted=!1,this.temporal=!1,this.isHardware=!1,this.hasHwSecurityWarnings=!1,this.stopShowingHwSecurityPopup=!1}}(),LL=function(){return function(){this.address="",this.confirmed=!1}}();function xL(e,t){var n=new CL;return Object.assign(n,e),DL(!0,n),n.addresses=[],t&&e.addresses.forEach(function(e){n.addresses.push(TL(e))}),n}function TL(e){var t=new LL;return Object.assign(t,e),DL(!1,t),t}function DL(e,t){var n=new Map,i=e?new CL:new LL;Object.keys(i).forEach(function(e){n.set(e,!0)});var r=[];Object.keys(t).forEach(function(e){n.has(e)||r.push(e)}),r.forEach(function(e){delete t[e]})}var OL=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.coins=new(LM())(0),t.hours=new(LM())(0),t.addresses=[],t}return vf(t,e),t}(CL),EL=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.coins=new(LM())(0),t.hours=new(LM())(0),t}return vf(t,e),t}(LL),YL=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.addresses=[],t}return vf(t,e),t}(CL),PL=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.outputs=[],t}return vf(t,e),t}(LL),AL=function(){function e(e,t,n,i){this.apiService=e,this.hwWalletService=t,this.translate=n,this.storageService=i,this.hwWalletsDataStorageKey="hw-wallets",this.walletsSubject=new fg(1),this.initialLoadFailed=new Rv(!1),this.loadWallets()}return Object.defineProperty(e.prototype,"errorDuringinitialLoad",{get:function(){return this.initialLoadFailed.asObservable()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"allWallets",{get:function(){return this.walletsSubject.asObservable()},enumerable:!1,configurable:!0}),e.prototype.addAddressesToWallet=function(e,t,n){var i=this;if(e.isHardware)return this.hwWalletService.getAddresses(t,e.addresses.length).pipe(K(function(t){var n=i.walletsList.find(function(t){return t.id===e.id}),r=[];return t.rawResponse.forEach(function(e){var t={address:e,confirmed:!1};r.push(t),n.addresses.push(t)}),i.saveHardwareWalletsAndInformUpdate(),r}));var r=new Object;return r.id=e.id,r.num=t,n&&(r.password=n),this.apiService.post("wallet/newAddress",r).pipe(K(function(t){var n=i.walletsList.find(function(t){return t.id===e.id}),r=[];return t.addresses.forEach(function(e){var t={address:e,confirmed:!0};r.push(t),n.addresses.push(t)}),i.informDataUpdated(),r}))},e.prototype.scanAddresses=function(e,t){var n=this;if(e.isHardware)return bm(!1);var i=new Object;return i.id=e.id,t&&(i.password=t),this.apiService.post("wallet/scan",i).pipe(K(function(t){var i=n.walletsList.find(function(t){return t.id===e.id}),r=t.addresses;return!!(r&&r.length>0)&&(r.forEach(function(e){i.addresses.push({address:e,confirmed:!0})}),n.informDataUpdated(),!0)}))},e.prototype.informValuesUpdated=function(e){var t=this.walletsList.findIndex(function(t){return t.id===e.id});if(-1!==t){var n=xL(e,!0);this.walletsList[t]=n,e.isHardware?this.saveHardwareWalletsAndInformUpdate():this.informDataUpdated()}},e.prototype.createSoftwareWallet=function(e,t,n,i){var r=this,a={label:t||"undefined",seed:n=n.replace(/(\n|\r\n)$/,""),scan:100,type:"deterministic"};return!e&&i&&(a.password=i,a.encrypt=!0),this.apiService.post(e?"wallet/createTemp":"wallet/create",a).pipe(K(function(t){var n={label:t.meta.label,id:t.meta.filename,addresses:[],encrypted:t.meta.encrypted,temporal:e,isHardware:!1,hasHwSecurityWarnings:!1,stopShowingHwSecurityPopup:!0};t.entries.forEach(function(e){return n.addresses.push({address:e.address,confirmed:!0})}),r.walletsList.push(n),r.informDataUpdated()}))},e.prototype.createHardwareWallet=function(){var e,t=this,n=0,i=new Map,r=new Map;return this.hwWalletService.getAddresses(jM.maxHardwareWalletAddresses,0).pipe(ue(function(n){(e=n.rawResponse).forEach(function(e){i.set(e,!0)});var r=!1;if(t.walletsList.forEach(function(e){i.has(e.id)&&(r=!0)}),r)return sg(VM("The wallet already exists"));var a=e.join(",");return t.apiService.post("transactions",{addrs:a})}),K(function(a){a.forEach(function(e){e.txn.outputs.forEach(function(e){i.has(e.dst)&&r.set(e.dst,!0)})}),e.forEach(function(e,t){r.has(e)&&(n=t)});var o=t.createHardwareWalletData(t.translate.instant("hardware-wallet.general.default-wallet-name"),e.slice(0,n+1).map(function(e){return{address:e,confirmed:!1}}),!0,!1);o.id=o.addresses[0].address;for(var s=t.walletsList.length-1,u=0;u4&&void 0!==arguments[4]?arguments[4]:new RL(e,n,i);if(!r.closed)return t instanceof N?t.subscribe(r):ne(t)(r)}var HL={};function jL(){for(var e=arguments.length,t=new Array(e),n=0;n2&&void 0!==arguments[2]?arguments[2]:"imperative",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return s(this,n),(r=t.call(this,e,i)).navigationTrigger=a,r.restoredState=o,r}return o(n,[{key:"toString",value:function(){return"NavigationStart(id: ".concat(this.id,", url: '").concat(this.url,"')")}}]),n}(WL),UL=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e,i)).urlAfterRedirects=r,a}return o(n,[{key:"toString",value:function(){return"NavigationEnd(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"')")}}]),n}(WL),zL=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e,i)).reason=r,a}return o(n,[{key:"toString",value:function(){return"NavigationCancel(id: ".concat(this.id,", url: '").concat(this.url,"')")}}]),n}(WL),qL=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e,i)).error=r,a}return o(n,[{key:"toString",value:function(){return"NavigationError(id: ".concat(this.id,", url: '").concat(this.url,"', error: ").concat(this.error,")")}}]),n}(WL),GL=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;return s(this,n),(o=t.call(this,e,i)).urlAfterRedirects=r,o.state=a,o}return o(n,[{key:"toString",value:function(){return"RoutesRecognized(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,")")}}]),n}(WL),KL=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;return s(this,n),(o=t.call(this,e,i)).urlAfterRedirects=r,o.state=a,o}return o(n,[{key:"toString",value:function(){return"GuardsCheckStart(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,")")}}]),n}(WL),JL=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o){var u;return s(this,n),(u=t.call(this,e,i)).urlAfterRedirects=r,u.state=a,u.shouldActivate=o,u}return o(n,[{key:"toString",value:function(){return"GuardsCheckEnd(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,", shouldActivate: ").concat(this.shouldActivate,")")}}]),n}(WL),ZL=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;return s(this,n),(o=t.call(this,e,i)).urlAfterRedirects=r,o.state=a,o}return o(n,[{key:"toString",value:function(){return"ResolveStart(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,")")}}]),n}(WL),$L=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;return s(this,n),(o=t.call(this,e,i)).urlAfterRedirects=r,o.state=a,o}return o(n,[{key:"toString",value:function(){return"ResolveEnd(id: ".concat(this.id,", url: '").concat(this.url,"', urlAfterRedirects: '").concat(this.urlAfterRedirects,"', state: ").concat(this.state,")")}}]),n}(WL),XL=function(){function e(t){s(this,e),this.route=t}return o(e,[{key:"toString",value:function(){return"RouteConfigLoadStart(path: ".concat(this.route.path,")")}}]),e}(),QL=function(){function e(t){s(this,e),this.route=t}return o(e,[{key:"toString",value:function(){return"RouteConfigLoadEnd(path: ".concat(this.route.path,")")}}]),e}(),ex=function(){function e(t){s(this,e),this.snapshot=t}return o(e,[{key:"toString",value:function(){return"ChildActivationStart(path: '".concat(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"","')")}}]),e}(),tx=function(){function e(t){s(this,e),this.snapshot=t}return o(e,[{key:"toString",value:function(){return"ChildActivationEnd(path: '".concat(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"","')")}}]),e}(),nx=function(){function e(t){s(this,e),this.snapshot=t}return o(e,[{key:"toString",value:function(){return"ActivationStart(path: '".concat(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"","')")}}]),e}(),ix=function(){function e(t){s(this,e),this.snapshot=t}return o(e,[{key:"toString",value:function(){return"ActivationEnd(path: '".concat(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"","')")}}]),e}(),rx=function(){function e(t,n,i){s(this,e),this.routerEvent=t,this.position=n,this.anchor=i}return o(e,[{key:"toString",value:function(){var e=this.position?"".concat(this.position[0],", ").concat(this.position[1]):null;return"Scroll(anchor: '".concat(this.anchor,"', position: '").concat(e,"')")}}]),e}(),ax="primary",ox=function(){function e(t){s(this,e),this.params=t||{}}return o(e,[{key:"has",value:function(e){return Object.prototype.hasOwnProperty.call(this.params,e)}},{key:"get",value:function(e){if(this.has(e)){var t=this.params[e];return Array.isArray(t)?t[0]:t}return null}},{key:"getAll",value:function(e){if(this.has(e)){var t=this.params[e];return Array.isArray(t)?t:[t]}return[]}},{key:"keys",get:function(){return Object.keys(this.params)}}]),e}();function sx(e){return new ox(e)}function ux(e){var t=Error("NavigationCancelingError: "+e);return t.ngNavigationCancelingError=!0,t}function lx(e,t,n){var i=n.path.split("/");if(i.length>e.length)return null;if("full"===n.pathMatch&&(t.hasChildren()||i.length0?e[e.length-1]:null}function px(e,t){for(var n in e)e.hasOwnProperty(n)&&t(e[n],n)}function mx(e){return Ls(e)?e:Ss(e)?re(Promise.resolve(e)):bm(e)}var gx={exact:function e(t,n,i){if(!Cx(t.segments,n.segments))return!1;if(!wx(t.segments,n.segments,i))return!1;if(t.numberOfChildren!==n.numberOfChildren)return!1;for(var r in n.children){if(!t.children[r])return!1;if(!e(t.children[r],n.children[r],i))return!1}return!0},subset:yx},vx={exact:function(e,t){return cx(e,t)},subset:function(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(function(n){return dx(e[n],t[n])})},ignored:function(){return!0}};function _x(e,t,n){return gx[n.paths](e.root,t.root,n.matrixParams)&&vx[n.queryParams](e.queryParams,t.queryParams)&&!("exact"===n.fragment&&e.fragment!==t.fragment)}function yx(e,t,n){return bx(e,t,t.segments,n)}function bx(e,t,n,i){if(e.segments.length>n.length){var r=e.segments.slice(0,n.length);return!!Cx(r,n)&&!t.hasChildren()&&!!wx(r,n,i)}if(e.segments.length===n.length){if(!Cx(e.segments,n))return!1;if(!wx(e.segments,n,i))return!1;for(var a in t.children){if(!e.children[a])return!1;if(!yx(e.children[a],t.children[a],i))return!1}return!0}var o=n.slice(0,e.segments.length),s=n.slice(e.segments.length);return!!Cx(e.segments,o)&&!!wx(e.segments,o,i)&&!!e.children.primary&&bx(e.children.primary,t,s,i)}function wx(e,t,n){return t.every(function(t,i){return vx[n](e[i].parameters,t.parameters)})}var kx=function(){function e(t,n,i){s(this,e),this.root=t,this.queryParams=n,this.fragment=i}return o(e,[{key:"queryParamMap",get:function(){return this._queryParamMap||(this._queryParamMap=sx(this.queryParams)),this._queryParamMap}},{key:"toString",value:function(){return Tx.serialize(this)}}]),e}(),Mx=function(){function e(t,n){var i=this;s(this,e),this.segments=t,this.children=n,this.parent=null,px(n,function(e,t){return e.parent=i})}return o(e,[{key:"hasChildren",value:function(){return this.numberOfChildren>0}},{key:"numberOfChildren",get:function(){return Object.keys(this.children).length}},{key:"toString",value:function(){return Dx(this)}}]),e}(),Sx=function(){function e(t,n){s(this,e),this.path=t,this.parameters=n}return o(e,[{key:"parameterMap",get:function(){return this._parameterMap||(this._parameterMap=sx(this.parameters)),this._parameterMap}},{key:"toString",value:function(){return Rx(this)}}]),e}();function Cx(e,t){return e.length===t.length&&e.every(function(e,n){return e.path===t[n].path})}var Lx=function e(){s(this,e)},xx=function(){function e(){s(this,e)}return o(e,[{key:"parse",value:function(e){var t=new Bx(e);return new kx(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}},{key:"serialize",value:function(e){var t,n,i="/".concat(Ox(e.root,!0)),r=(t=e.queryParams,(n=Object.keys(t).map(function(e){var n=t[e];return Array.isArray(n)?n.map(function(t){return"".concat(Yx(e),"=").concat(Yx(t))}).join("&"):"".concat(Yx(e),"=").concat(Yx(n))}).filter(function(e){return!!e})).length?"?".concat(n.join("&")):""),a="string"==typeof e.fragment?"#".concat(encodeURI(e.fragment)):"";return"".concat(i).concat(r).concat(a)}}]),e}(),Tx=new xx;function Dx(e){return e.segments.map(function(e){return Rx(e)}).join("/")}function Ox(e,t){if(!e.hasChildren())return Dx(e);if(t){var n=e.children.primary?Ox(e.children.primary,!1):"",i=[];return px(e.children,function(e,t){t!==ax&&i.push("".concat(t,":").concat(Ox(e,!1)))}),i.length>0?"".concat(n,"(").concat(i.join("//"),")"):n}var r=function(e,t){var n=[];return px(e.children,function(e,i){i===ax&&(n=n.concat(t(e,i)))}),px(e.children,function(e,i){i!==ax&&(n=n.concat(t(e,i)))}),n}(e,function(t,n){return n===ax?[Ox(e.children.primary,!1)]:["".concat(n,":").concat(Ox(t,!1))]});return 1===Object.keys(e.children).length&&null!=e.children.primary?"".concat(Dx(e),"/").concat(r[0]):"".concat(Dx(e),"/(").concat(r.join("//"),")")}function Ex(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Yx(e){return Ex(e).replace(/%3B/gi,";")}function Px(e){return Ex(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Ax(e){return decodeURIComponent(e)}function Ix(e){return Ax(e.replace(/\+/g,"%20"))}function Rx(e){return"".concat(Px(e.path)).concat((t=e.parameters,Object.keys(t).map(function(e){return";".concat(Px(e),"=").concat(Px(t[e]))}).join("")));var t}var Fx=/^[^\/()?;=#]+/;function Hx(e){var t=e.match(Fx);return t?t[0]:""}var jx=/^[^=?&#]+/,Nx=/^[^?&#]+/,Bx=function(){function e(t){s(this,e),this.url=t,this.remaining=t}return o(e,[{key:"parseRootSegment",value:function(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Mx([],{}):new Mx([],this.parseChildren())}},{key:"parseQueryParams",value:function(){var e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e}},{key:"parseFragment",value:function(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}},{key:"parseChildren",value:function(){if(""===this.remaining)return{};this.consumeOptional("/");var e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());var t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));var n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(n.primary=new Mx(e,t)),n}},{key:"parseSegment",value:function(){var e=Hx(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '".concat(this.remaining,"'."));return this.capture(e),new Sx(Ax(e),this.parseMatrixParams())}},{key:"parseMatrixParams",value:function(){for(var e={};this.consumeOptional(";");)this.parseParam(e);return e}},{key:"parseParam",value:function(e){var t=Hx(this.remaining);if(t){this.capture(t);var n="";if(this.consumeOptional("=")){var i=Hx(this.remaining);i&&this.capture(n=i)}e[Ax(t)]=Ax(n)}}},{key:"parseQueryParam",value:function(e){var t=function(e){var t=e.match(jx);return t?t[0]:""}(this.remaining);if(t){this.capture(t);var n="";if(this.consumeOptional("=")){var i=function(e){var t=e.match(Nx);return t?t[0]:""}(this.remaining);i&&this.capture(n=i)}var r=Ix(t),a=Ix(n);if(e.hasOwnProperty(r)){var o=e[r];Array.isArray(o)||(e[r]=o=[o]),o.push(a)}else e[r]=a}}},{key:"parseParens",value:function(e){var t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){var n=Hx(this.remaining),i=this.remaining[n.length];if("/"!==i&&")"!==i&&";"!==i)throw new Error("Cannot parse url '".concat(this.url,"'"));var r=void 0;n.indexOf(":")>-1?(r=n.substr(0,n.indexOf(":")),this.capture(r),this.capture(":")):e&&(r=ax);var a=this.parseChildren();t[r]=1===Object.keys(a).length?a.primary:new Mx([],a),this.consumeOptional("//")}return t}},{key:"peekStartsWith",value:function(e){return this.remaining.startsWith(e)}},{key:"consumeOptional",value:function(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}},{key:"capture",value:function(e){if(!this.consumeOptional(e))throw new Error('Expected "'.concat(e,'".'))}}]),e}(),Wx=function(){function e(t){s(this,e),this._root=t}return o(e,[{key:"root",get:function(){return this._root.value}},{key:"parent",value:function(e){var t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null}},{key:"children",value:function(e){var t=Vx(e,this._root);return t?t.children.map(function(e){return e.value}):[]}},{key:"firstChild",value:function(e){var t=Vx(e,this._root);return t&&t.children.length>0?t.children[0].value:null}},{key:"siblings",value:function(e){var t=Ux(e,this._root);return t.length<2?[]:t[t.length-2].children.map(function(e){return e.value}).filter(function(t){return t!==e})}},{key:"pathFromRoot",value:function(e){return Ux(e,this._root).map(function(e){return e.value})}}]),e}();function Vx(e,t){if(e===t.value)return t;var n,i=v(t.children);try{for(i.s();!(n=i.n()).done;){var r=Vx(e,n.value);if(r)return r}}catch(a){i.e(a)}finally{i.f()}return null}function Ux(e,t){if(e===t.value)return[t];var n,i=v(t.children);try{for(i.s();!(n=i.n()).done;){var r=Ux(e,n.value);if(r.length)return r.unshift(t),r}}catch(a){i.e(a)}finally{i.f()}return[]}var zx=function(){function e(t,n){s(this,e),this.value=t,this.children=n}return o(e,[{key:"toString",value:function(){return"TreeNode(".concat(this.value,")")}}]),e}();function qx(e){var t={};return e&&e.children.forEach(function(e){return t[e.value.outlet]=e}),t}var Gx=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e)).snapshot=i,eT(h(r),e),r}return o(n,[{key:"toString",value:function(){return this.snapshot.toString()}}]),n}(Wx);function Kx(e,t){var n=function(e,t){var n=new Xx([],{},{},"",{},ax,t,null,e.root,-1,{});return new Qx("",new zx(n,[]))}(e,t),i=new Rv([new Sx("",{})]),r=new Rv({}),a=new Rv({}),o=new Rv({}),s=new Rv(""),u=new Jx(i,r,o,s,a,ax,t,n.root);return u.snapshot=n.root,new Gx(new zx(u,[]),n)}var Jx=function(){function e(t,n,i,r,a,o,u,l){s(this,e),this.url=t,this.params=n,this.queryParams=i,this.fragment=r,this.data=a,this.outlet=o,this.component=u,this._futureSnapshot=l}return o(e,[{key:"routeConfig",get:function(){return this._futureSnapshot.routeConfig}},{key:"root",get:function(){return this._routerState.root}},{key:"parent",get:function(){return this._routerState.parent(this)}},{key:"firstChild",get:function(){return this._routerState.firstChild(this)}},{key:"children",get:function(){return this._routerState.children(this)}},{key:"pathFromRoot",get:function(){return this._routerState.pathFromRoot(this)}},{key:"paramMap",get:function(){return this._paramMap||(this._paramMap=this.params.pipe(K(function(e){return sx(e)}))),this._paramMap}},{key:"queryParamMap",get:function(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(K(function(e){return sx(e)}))),this._queryParamMap}},{key:"toString",value:function(){return this.snapshot?this.snapshot.toString():"Future(".concat(this._futureSnapshot,")")}}]),e}();function Zx(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"emptyOnly",n=e.pathFromRoot,i=0;if("always"!==t)for(i=n.length-1;i>=1;){var r=n[i],a=n[i-1];if(r.routeConfig&&""===r.routeConfig.path)i--;else{if(a.component)break;i--}}return $x(n.slice(i))}function $x(e){return e.reduce(function(e,t){return{params:Object.assign(Object.assign({},e.params),t.params),data:Object.assign(Object.assign({},e.data),t.data),resolve:Object.assign(Object.assign({},e.resolve),t._resolvedData)}},{params:{},data:{},resolve:{}})}var Xx=function(){function e(t,n,i,r,a,o,u,l,c,d,h){s(this,e),this.url=t,this.params=n,this.queryParams=i,this.fragment=r,this.data=a,this.outlet=o,this.component=u,this.routeConfig=l,this._urlSegment=c,this._lastPathIndex=d,this._resolve=h}return o(e,[{key:"root",get:function(){return this._routerState.root}},{key:"parent",get:function(){return this._routerState.parent(this)}},{key:"firstChild",get:function(){return this._routerState.firstChild(this)}},{key:"children",get:function(){return this._routerState.children(this)}},{key:"pathFromRoot",get:function(){return this._routerState.pathFromRoot(this)}},{key:"paramMap",get:function(){return this._paramMap||(this._paramMap=sx(this.params)),this._paramMap}},{key:"queryParamMap",get:function(){return this._queryParamMap||(this._queryParamMap=sx(this.queryParams)),this._queryParamMap}},{key:"toString",value:function(){var e=this.url.map(function(e){return e.toString()}).join("/"),t=this.routeConfig?this.routeConfig.path:"";return"Route(url:'".concat(e,"', path:'").concat(t,"')")}}]),e}(),Qx=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,i)).url=e,eT(h(r),i),r}return o(n,[{key:"toString",value:function(){return tT(this._root)}}]),n}(Wx);function eT(e,t){t.value._routerState=e,t.children.forEach(function(t){return eT(e,t)})}function tT(e){var t=e.children.length>0?" { ".concat(e.children.map(tT).join(", ")," } "):"";return"".concat(e.value).concat(t)}function nT(e){if(e.snapshot){var t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,cx(t.queryParams,n.queryParams)||e.queryParams.next(n.queryParams),t.fragment!==n.fragment&&e.fragment.next(n.fragment),cx(t.params,n.params)||e.params.next(n.params),function(e,t){if(e.length!==t.length)return!1;for(var n=0;nr;){if(a-=r,!(i=i.parent))throw new Error("Invalid number of '../'");r=i.segments.length}return new hT(i,!1,r-a)}(n.snapshot._urlSegment,n.snapshot._lastPathIndex+r,e.numberOfDoubleDots)}(a,t,e),s=o.processChildren?pT(o.segmentGroup,o.index,a.commands):fT(o.segmentGroup,o.index,a.commands);return lT(o.segmentGroup,s,t,i,r)}function sT(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function uT(e){return"object"==typeof e&&null!=e&&e.outlets}function lT(e,t,n,i,r){var a={};return i&&px(i,function(e,t){a[t]=Array.isArray(e)?e.map(function(e){return"".concat(e)}):"".concat(e)}),new kx(n.root===e?t:cT(n.root,e,t),a,r)}function cT(e,t,n){var i={};return px(e.children,function(e,r){i[r]=e===t?n:cT(e,t,n)}),new Mx(e.segments,i)}var dT=function(){function e(t,n,i){if(s(this,e),this.isAbsolute=t,this.numberOfDoubleDots=n,this.commands=i,t&&i.length>0&&sT(i[0]))throw new Error("Root segment cannot have matrix parameters");var r=i.find(uT);if(r&&r!==fx(i))throw new Error("{outlets:{}} has to be the last command")}return o(e,[{key:"toRoot",value:function(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}]),e}(),hT=function e(t,n,i){s(this,e),this.segmentGroup=t,this.processChildren=n,this.index=i};function fT(e,t,n){if(e||(e=new Mx([],{})),0===e.segments.length&&e.hasChildren())return pT(e,t,n);var i=function(e,t,n){for(var i=0,r=t,a={match:!1,pathIndex:0,commandIndex:0};r=n.length)return a;var o=e.segments[r],s=n[i];if(uT(s))break;var u="".concat(s),l=i0&&void 0===u)break;if(u&&l&&"object"==typeof l&&void 0===l.outlets){if(!_T(u,l,o))return a;i+=2}else{if(!_T(u,{},o))return a;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}(e,t,n),r=n.slice(i.commandIndex);if(i.match&&i.pathIndex1&&void 0!==arguments[1]?arguments[1]:"",n=0;n0)?Object.assign({},PT):{matched:!0,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};var r=(t.matcher||lx)(n,e,t);if(!r)return Object.assign({},PT);var a={};px(r.posParams,function(e,t){a[t]=e.path});var o=r.consumed.length>0?Object.assign(Object.assign({},a),r.consumed[r.consumed.length-1].parameters):a;return{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,parameters:o,positionalParamSegments:null!==(i=r.posParams)&&void 0!==i?i:{}}}function IT(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"corrected";if(n.length>0&&HT(e,n,i)){var a=new Mx(t,FT(e,t,i,new Mx(n,e.children)));return a._sourceSegment=e,a._segmentIndexShift=t.length,{segmentGroup:a,slicedSegments:[]}}if(0===n.length&&jT(e,n,i)){var o=new Mx(e.segments,RT(e,t,n,i,e.children,r));return o._sourceSegment=e,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:n}}var s=new Mx(e.segments,e.children);return s._sourceSegment=e,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:n}}function RT(e,t,n,i,r,a){var o,s={},u=v(i);try{for(u.s();!(o=u.n()).done;){var l=o.value;if(NT(e,n,l)&&!r[ET(l)]){var c=new Mx([],{});c._sourceSegment=e,c._segmentIndexShift="legacy"===a?e.segments.length:t.length,s[ET(l)]=c}}}catch(d){u.e(d)}finally{u.f()}return Object.assign(Object.assign({},r),s)}function FT(e,t,n,i){var r={};r.primary=i,i._sourceSegment=e,i._segmentIndexShift=t.length;var a,o=v(n);try{for(o.s();!(a=o.n()).done;){var s=a.value;if(""===s.path&&ET(s)!==ax){var u=new Mx([],{});u._sourceSegment=e,u._segmentIndexShift=t.length,r[ET(s)]=u}}}catch(l){o.e(l)}finally{o.f()}return r}function HT(e,t,n){return n.some(function(n){return NT(e,t,n)&&ET(n)!==ax})}function jT(e,t,n){return n.some(function(n){return NT(e,t,n)})}function NT(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&""===n.path}function BT(e,t,n,i){return!!(ET(e)===i||i!==ax&&NT(t,n,e))&&("**"===e.path||AT(t,e,n).matched)}function WT(e,t,n){return 0===t.length&&!e.children[n]}var VT=function e(t){s(this,e),this.segmentGroup=t||null},UT=function e(t){s(this,e),this.urlTree=t};function zT(e){return new N(function(t){return t.error(new VT(e))})}function qT(e){return new N(function(t){return t.error(new UT(e))})}function GT(e){return new N(function(t){return t.error(new Error("Only absolute redirects can have named outlets. redirectTo: '".concat(e,"'")))})}var KT=function(){function e(t,n,i,r,a){s(this,e),this.configLoader=n,this.urlSerializer=i,this.urlTree=r,this.config=a,this.allowRedirects=!0,this.ngModule=t.get(vl)}return o(e,[{key:"apply",value:function(){var e=this,t=IT(this.urlTree.root,[],[],this.config).segmentGroup,n=new Mx(t.segments,t.children);return this.expandSegmentGroup(this.ngModule,this.config,n,ax).pipe(K(function(t){return e.createUrlTree(JT(t),e.urlTree.queryParams,e.urlTree.fragment)})).pipe(qM(function(t){if(t instanceof UT)return e.allowRedirects=!1,e.match(t.urlTree);if(t instanceof VT)throw e.noMatchError(t);throw t}))}},{key:"match",value:function(e){var t=this;return this.expandSegmentGroup(this.ngModule,this.config,e.root,ax).pipe(K(function(n){return t.createUrlTree(JT(n),e.queryParams,e.fragment)})).pipe(qM(function(e){if(e instanceof VT)throw t.noMatchError(e);throw e}))}},{key:"noMatchError",value:function(e){return new Error("Cannot match any routes. URL Segment: '".concat(e.segmentGroup,"'"))}},{key:"createUrlTree",value:function(e,t,n){var i=e.segments.length>0?new Mx([],y({},ax,e)):e;return new kx(i,t,n)}},{key:"expandSegmentGroup",value:function(e,t,n,i){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(e,t,n).pipe(K(function(e){return new Mx([],e)})):this.expandSegment(e,n,t,n.segments,i,!0)}},{key:"expandChildren",value:function(e,t,n){for(var i=this,r=[],a=0,o=Object.keys(n.children);a=2;return function(i){return i.pipe(e?zm(function(t,n){return e(t,n,i)}):F,Vk(1),n?qk(t):ZM(function(){return new JM}))}}())}},{key:"expandSegment",value:function(e,t,n,i,r,a){var o=this;return re(n).pipe(tS(function(s){return o.expandSegmentAgainstRoute(e,t,n,s,i,r,a).pipe(qM(function(e){if(e instanceof VT)return bm(null);throw e}))}),eS(function(e){return!!e}),qM(function(e,n){if(e instanceof JM||"EmptyError"===e.name){if(WT(t,i,r))return bm(new Mx([],{}));throw new VT(t)}throw e}))}},{key:"expandSegmentAgainstRoute",value:function(e,t,n,i,r,a,o){return BT(i,t,r,a)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(e,t,i,r,a):o&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(e,t,n,i,r,a):zT(t):zT(t)}},{key:"expandSegmentAgainstRouteUsingRedirect",value:function(e,t,n,i,r,a){return"**"===i.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(e,n,i,a):this.expandRegularSegmentAgainstRouteUsingRedirect(e,t,n,i,r,a)}},{key:"expandWildCardWithParamsAgainstRouteUsingRedirect",value:function(e,t,n,i){var r=this,a=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?qT(a):this.lineralizeSegments(n,a).pipe(ue(function(n){var a=new Mx(n,{});return r.expandSegment(e,a,t,n,i,!1)}))}},{key:"expandRegularSegmentAgainstRouteUsingRedirect",value:function(e,t,n,i,r,a){var o=this,s=AT(t,i,r),u=s.consumedSegments,l=s.lastChild,c=s.positionalParamSegments;if(!s.matched)return zT(t);var d=this.applyRedirectCommands(u,i.redirectTo,c);return i.redirectTo.startsWith("/")?qT(d):this.lineralizeSegments(i,d).pipe(ue(function(i){return o.expandSegment(e,t,n,i.concat(r.slice(l)),a,!1)}))}},{key:"matchSegmentAgainstRoute",value:function(e,t,n,i,r){var a=this;if("**"===n.path)return n.loadChildren?(n._loadedConfig?bm(n._loadedConfig):this.configLoader.load(e.injector,n)).pipe(K(function(e){return n._loadedConfig=e,new Mx(i,{})})):bm(new Mx(i,{}));var o=AT(t,n,i),s=o.consumedSegments,u=o.lastChild;if(!o.matched)return zT(t);var l=i.slice(u);return this.getChildConfig(e,n,i).pipe(ue(function(e){var i=e.module,o=e.routes,u=IT(t,s,l,o),c=u.segmentGroup,d=u.slicedSegments,h=new Mx(c.segments,c.children);if(0===d.length&&h.hasChildren())return a.expandChildren(i,o,h).pipe(K(function(e){return new Mx(s,e)}));if(0===o.length&&0===d.length)return bm(new Mx(s,{}));var f=ET(n)===r;return a.expandSegment(i,h,o,d,f?ax:r,!0).pipe(K(function(e){return new Mx(s.concat(e.segments),e.children)}))}))}},{key:"getChildConfig",value:function(e,t,n){var i=this;return t.children?bm(new wT(t.children,e)):t.loadChildren?void 0!==t._loadedConfig?bm(t._loadedConfig):this.runCanLoadGuards(e.injector,t,n).pipe(ue(function(n){return n?i.configLoader.load(e.injector,t).pipe(K(function(e){return t._loadedConfig=e,e})):function(e){return new N(function(t){return t.error(ux("Cannot load children because the guard of the route \"path: '".concat(e.path,"'\" returned false")))})}(t)})):bm(new wT([],e))}},{key:"runCanLoadGuards",value:function(e,t,n){var i=this,r=t.canLoad;return r&&0!==r.length?bm(r.map(function(i){var r,a=e.get(i);if(function(e){return e&&kT(e.canLoad)}(a))r=a.canLoad(t,n);else{if(!kT(a))throw new Error("Invalid CanLoad guard");r=a(t,n)}return mx(r)})).pipe(CT(),Hv(function(e){if(MT(e)){var t=ux('Redirecting to "'.concat(i.urlSerializer.serialize(e),'"'));throw t.url=e,t}}),K(function(e){return!0===e})):bm(!0)}},{key:"lineralizeSegments",value:function(e,t){for(var n=[],i=t.root;;){if(n=n.concat(i.segments),0===i.numberOfChildren)return bm(n);if(i.numberOfChildren>1||!i.children.primary)return GT(e.redirectTo);i=i.children.primary}}},{key:"applyRedirectCommands",value:function(e,t,n){return this.applyRedirectCreatreUrlTree(t,this.urlSerializer.parse(t),e,n)}},{key:"applyRedirectCreatreUrlTree",value:function(e,t,n,i){var r=this.createSegmentGroup(e,t.root,n,i);return new kx(r,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}},{key:"createQueryParams",value:function(e,t){var n={};return px(e,function(e,i){if("string"==typeof e&&e.startsWith(":")){var r=e.substring(1);n[i]=t[r]}else n[i]=e}),n}},{key:"createSegmentGroup",value:function(e,t,n,i){var r=this,a=this.createSegments(e,t.segments,n,i),o={};return px(t.children,function(t,a){o[a]=r.createSegmentGroup(e,t,n,i)}),new Mx(a,o)}},{key:"createSegments",value:function(e,t,n,i){var r=this;return t.map(function(t){return t.path.startsWith(":")?r.findPosParam(e,t,i):r.findOrReturn(t,n)})}},{key:"findPosParam",value:function(e,t,n){var i=n[t.path.substring(1)];if(!i)throw new Error("Cannot redirect to '".concat(e,"'. Cannot find '").concat(t.path,"'."));return i}},{key:"findOrReturn",value:function(e,t){var n,i=0,r=v(t);try{for(r.s();!(n=r.n()).done;){var a=n.value;if(a.path===e.path)return t.splice(i),a;i++}}catch(o){r.e(o)}finally{r.f()}return e}}]),e}();function JT(e){for(var t={},n=0,i=Object.keys(e.children);n0||a.hasChildren())&&(t[r]=a)}return function(e){if(1===e.numberOfChildren&&e.children.primary){var t=e.children.primary;return new Mx(e.segments.concat(t.segments),t.children)}return e}(new Mx(e.segments,t))}var ZT=function e(t){s(this,e),this.path=t,this.route=this.path[this.path.length-1]},$T=function e(t,n){s(this,e),this.component=t,this.route=n};function XT(e,t,n){var i=function(e){if(!e)return null;for(var t=e.parent;t;t=t.parent){var n=t.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig}return null}(t);return(i?i.module.injector:n).get(e)}function QT(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{canDeactivateChecks:[],canActivateChecks:[]},a=qx(t);return e.children.forEach(function(e){eD(e,a[e.value.outlet],n,i.concat([e.value]),r),delete a[e.value.outlet]}),px(a,function(e,t){return nD(e,n.getContext(t),r)}),r}function eD(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{canDeactivateChecks:[],canActivateChecks:[]},a=e.value,o=t?t.value:null,s=n?n.getContext(e.value.outlet):null;if(o&&a.routeConfig===o.routeConfig){var u=tD(o,a,a.routeConfig.runGuardsAndResolvers);u?r.canActivateChecks.push(new ZT(i)):(a.data=o.data,a._resolvedData=o._resolvedData),QT(e,t,a.component?s?s.children:null:n,i,r),u&&s&&s.outlet&&s.outlet.isActivated&&r.canDeactivateChecks.push(new $T(s.outlet.component,o))}else o&&nD(t,s,r),r.canActivateChecks.push(new ZT(i)),QT(e,null,a.component?s?s.children:null:n,i,r);return r}function tD(e,t,n){if("function"==typeof n)return n(e,t);switch(n){case"pathParamsChange":return!Cx(e.url,t.url);case"pathParamsOrQueryParamsChange":return!Cx(e.url,t.url)||!cx(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!iT(e,t)||!cx(e.queryParams,t.queryParams);case"paramsChange":default:return!iT(e,t)}}function nD(e,t,n){var i=qx(e),r=e.value;px(i,function(e,i){nD(e,r.component?t?t.children.getContext(i):null:t,n)}),n.canDeactivateChecks.push(new $T(r.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,r))}var iD=function e(){s(this,e)};function rD(e){return new N(function(t){return t.error(e)})}var aD=function(){function e(t,n,i,r,a,o){s(this,e),this.rootComponentType=t,this.config=n,this.urlTree=i,this.url=r,this.paramsInheritanceStrategy=a,this.relativeLinkResolution=o}return o(e,[{key:"recognize",value:function(){var e=IT(this.urlTree.root,[],[],this.config.filter(function(e){return void 0===e.redirectTo}),this.relativeLinkResolution).segmentGroup,t=this.processSegmentGroup(this.config,e,ax);if(null===t)return null;var n=new Xx([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},ax,this.rootComponentType,null,this.urlTree.root,-1,{}),i=new zx(n,t),r=new Qx(this.url,i);return this.inheritParamsAndData(r._root),r}},{key:"inheritParamsAndData",value:function(e){var t=this,n=e.value,i=Zx(n,this.paramsInheritanceStrategy);n.params=Object.freeze(i.params),n.data=Object.freeze(i.data),e.children.forEach(function(e){return t.inheritParamsAndData(e)})}},{key:"processSegmentGroup",value:function(e,t,n){return 0===t.segments.length&&t.hasChildren()?this.processChildren(e,t):this.processSegment(e,t,t.segments,n)}},{key:"processChildren",value:function(e,t){for(var n=[],i=0,r=Object.keys(t.children);i0?fx(n).parameters:{};r=new Xx(n,s,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,lD(e),ET(e),e.component,e,sD(t),uD(t)+n.length,cD(e))}else{var u=AT(t,e,n);if(!u.matched)return null;a=u.consumedSegments,o=n.slice(u.lastChild),r=new Xx(a,u.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,lD(e),ET(e),e.component,e,sD(t),uD(t)+a.length,cD(e))}var l=function(e){return e.children?e.children:e.loadChildren?e._loadedConfig.routes:[]}(e),c=IT(t,a,o,l.filter(function(e){return void 0===e.redirectTo}),this.relativeLinkResolution),d=c.segmentGroup,h=c.slicedSegments;if(0===h.length&&d.hasChildren()){var f=this.processChildren(l,d);return null===f?null:[new zx(r,f)]}if(0===l.length&&0===h.length)return[new zx(r,[])];var p=ET(e)===i,m=this.processSegment(l,d,h,p?ax:i);return null===m?null:[new zx(r,m)]}}]),e}();function oD(e){var t,n=[],i=new Set,r=v(e);try{var a=function(){var e=t.value;if(!function(e){var t=e.value.routeConfig;return t&&""===t.path&&void 0===t.redirectTo}(e))return n.push(e),"continue";var r,a=n.find(function(t){return e.value.routeConfig===t.value.routeConfig});void 0!==a?((r=a.children).push.apply(r,b(e.children)),i.add(a)):n.push(e)};for(r.s();!(t=r.n()).done;)a()}catch(c){r.e(c)}finally{r.f()}var o,s=v(i);try{for(s.s();!(o=s.n()).done;){var u=o.value,l=oD(u.children);n.push(new zx(u.value,l))}}catch(c){s.e(c)}finally{s.f()}return n.filter(function(e){return!i.has(e)})}function sD(e){for(var t=e;t._sourceSegment;)t=t._sourceSegment;return t}function uD(e){for(var t=e,n=t._segmentIndexShift?t._segmentIndexShift:0;t._sourceSegment;)n+=(t=t._sourceSegment)._segmentIndexShift?t._segmentIndexShift:0;return n-1}function lD(e){return e.data||{}}function cD(e){return e.resolve||{}}function dD(e){return eg(function(t){var n=e(t);return n?re(n).pipe(K(function(){return t})):bm(t)})}var hD=function(e){l(n,e);var t=p(n);function n(){return s(this,n),t.apply(this,arguments)}return n}(function(){function e(){s(this,e)}return o(e,[{key:"shouldDetach",value:function(e){return!1}},{key:"store",value:function(e,t){}},{key:"shouldAttach",value:function(e){return!1}},{key:"retrieve",value:function(e){return null}},{key:"shouldReuseRoute",value:function(e,t){return e.routeConfig===t.routeConfig}}]),e}()),fD=new Mi("ROUTES"),pD=function(){function e(t,n,i,r){s(this,e),this.loader=t,this.compiler=n,this.onLoadStartListener=i,this.onLoadEndListener=r}return o(e,[{key:"load",value:function(e,t){var n=this;if(t._loader$)return t._loader$;this.onLoadStartListener&&this.onLoadStartListener(t);var i=this.loadModuleFactory(t.loadChildren).pipe(K(function(i){n.onLoadEndListener&&n.onLoadEndListener(t);var r=i.create(e);return new wT(hx(r.injector.get(fD,void 0,ze.Self|ze.Optional)).map(OT),r)}),qM(function(e){throw t._loader$=void 0,e}));return t._loader$=new _e(i,function(){return new z}).pipe(me()),t._loader$}},{key:"loadModuleFactory",value:function(e){var t=this;return"string"==typeof e?re(this.loader.load(e)):mx(e()).pipe(ue(function(e){return e instanceof _l?bm(e):re(t.compiler.compileModuleAsync(e))}))}}]),e}(),mD=function e(){s(this,e),this.outlet=null,this.route=null,this.resolver=null,this.children=new gD,this.attachRef=null},gD=function(){function e(){s(this,e),this.contexts=new Map}return o(e,[{key:"onChildOutletCreated",value:function(e,t){var n=this.getOrCreateContext(e);n.outlet=t,this.contexts.set(e,n)}},{key:"onChildOutletDestroyed",value:function(e){var t=this.getContext(e);t&&(t.outlet=null)}},{key:"onOutletDeactivated",value:function(){var e=this.contexts;return this.contexts=new Map,e}},{key:"onOutletReAttached",value:function(e){this.contexts=e}},{key:"getOrCreateContext",value:function(e){var t=this.getContext(e);return t||(t=new mD,this.contexts.set(e,t)),t}},{key:"getContext",value:function(e){return this.contexts.get(e)||null}}]),e}(),vD=function(){function e(){s(this,e)}return o(e,[{key:"shouldProcessUrl",value:function(e){return!0}},{key:"extract",value:function(e){return e}},{key:"merge",value:function(e,t){return e}}]),e}();function _D(e){throw e}function yD(e,t,n){return t.parse("/")}function bD(e,t){return bm(null)}var wD={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},kD={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},MD=function(){var e=function(){function e(t,n,i,r,a,o,u,l){var c=this;s(this,e),this.rootComponentType=t,this.urlSerializer=n,this.rootContexts=i,this.location=r,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.lastLocationChangeInfo=null,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new z,this.errorHandler=_D,this.malformedUriErrorHandler=yD,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:bD,afterPreactivation:bD},this.urlHandlingStrategy=new vD,this.routeReuseStrategy=new hD,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.ngModule=a.get(vl),this.console=a.get(Sc);var d=a.get(Fc);this.isNgZoneEnabled=d instanceof Fc&&Fc.isInAngularZone(),this.resetConfig(l),this.currentUrlTree=new kx(new Mx([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new pD(o,u,function(e){return c.triggerEvent(new XL(e))},function(e){return c.triggerEvent(new QL(e))}),this.routerState=Kx(this.currentUrlTree,this.rootComponentType),this.transitions=new Rv({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}return o(e,[{key:"browserPageId",get:function(){var e;return null===(e=this.location.getState())||void 0===e?void 0:e.\u0275routerPageId}},{key:"setupNavigations",value:function(e){var t=this,n=this.events;return e.pipe(zm(function(e){return 0!==e.id}),K(function(e){return Object.assign(Object.assign({},e),{extractedUrl:t.urlHandlingStrategy.extract(e.rawUrl)})}),eg(function(e){var i,r,a,o=!1,s=!1;return bm(e).pipe(Hv(function(e){t.currentNavigation={id:e.id,initialUrl:e.currentRawUrl,extractedUrl:e.extractedUrl,trigger:e.source,extras:e.extras,previousNavigation:t.lastSuccessfulNavigation?Object.assign(Object.assign({},t.lastSuccessfulNavigation),{previousNavigation:null}):null}}),eg(function(e){var i=!t.navigated||e.extractedUrl.toString()!==t.browserUrlTree.toString(),r=("reload"===t.onSameUrlNavigation||i)&&t.urlHandlingStrategy.shouldProcessUrl(e.rawUrl);if(CD(e.source)&&(t.browserUrlTree=e.rawUrl),r)return bm(e).pipe(eg(function(e){var i=t.transitions.getValue();return n.next(new VL(e.id,t.serializeUrl(e.extractedUrl),e.source,e.restoredState)),i!==t.transitions.getValue()?ag:Promise.resolve(e)}),function(e,t,n,i){return eg(function(r){return function(e,t,n,i,r){return new KT(e,t,n,i,r).apply()}(e,t,n,r.extractedUrl,i).pipe(K(function(e){return Object.assign(Object.assign({},r),{urlAfterRedirects:e})}))})}(t.ngModule.injector,t.configLoader,t.urlSerializer,t.config),Hv(function(e){t.currentNavigation=Object.assign(Object.assign({},t.currentNavigation),{finalUrl:e.urlAfterRedirects})}),function(e,n,i,r,a){return ue(function(i){return function(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"emptyOnly",a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"legacy";try{var o=new aD(e,t,n,i,r,a).recognize();return null===o?rD(new iD):bm(o)}catch(s){return rD(s)}}(e,n,i.urlAfterRedirects,(o=i.urlAfterRedirects,t.serializeUrl(o)),r,a).pipe(K(function(e){return Object.assign(Object.assign({},i),{targetSnapshot:e})}));var o})}(t.rootComponentType,t.config,0,t.paramsInheritanceStrategy,t.relativeLinkResolution),Hv(function(e){"eager"===t.urlUpdateStrategy&&(e.extras.skipLocationChange||t.setBrowserUrl(e.urlAfterRedirects,e),t.browserUrlTree=e.urlAfterRedirects);var i=new GL(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);n.next(i)}));if(i&&t.rawUrlTree&&t.urlHandlingStrategy.shouldProcessUrl(t.rawUrlTree)){var a=e.extractedUrl,o=e.source,s=e.restoredState,u=e.extras,l=new VL(e.id,t.serializeUrl(a),o,s);n.next(l);var c=Kx(a,t.rootComponentType).snapshot;return bm(Object.assign(Object.assign({},e),{targetSnapshot:c,urlAfterRedirects:a,extras:Object.assign(Object.assign({},u),{skipLocationChange:!1,replaceUrl:!1})}))}return t.rawUrlTree=e.rawUrl,t.browserUrlTree=e.urlAfterRedirects,e.resolve(null),ag}),dD(function(e){var n=e.extras;return t.hooks.beforePreactivation(e.targetSnapshot,{navigationId:e.id,appliedUrlTree:e.extractedUrl,rawUrlTree:e.rawUrl,skipLocationChange:!!n.skipLocationChange,replaceUrl:!!n.replaceUrl})}),Hv(function(e){var n=new KL(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)}),K(function(e){return Object.assign(Object.assign({},e),{guards:(n=e.targetSnapshot,i=e.currentSnapshot,r=t.rootContexts,a=n._root,QT(a,i?i._root:null,r,[a.value]))});var n,i,r,a}),function(e,t){return ue(function(n){var i=n.targetSnapshot,r=n.currentSnapshot,a=n.guards,o=a.canActivateChecks,s=a.canDeactivateChecks;return 0===s.length&&0===o.length?bm(Object.assign(Object.assign({},n),{guardsResult:!0})):function(e,t,n,i){return re(e).pipe(ue(function(e){return function(e,t,n,i,r){var a=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return a&&0!==a.length?bm(a.map(function(a){var o,s=XT(a,t,r);if(function(e){return e&&kT(e.canDeactivate)}(s))o=mx(s.canDeactivate(e,t,n,i));else{if(!kT(s))throw new Error("Invalid CanDeactivate guard");o=mx(s(e,t,n,i))}return o.pipe(eS())})).pipe(CT()):bm(!0)}(e.component,e.route,n,t,i)}),eS(function(e){return!0!==e},!0))}(s,i,r,e).pipe(ue(function(n){return n&&"boolean"==typeof n?function(e,t,n,i){return re(t).pipe(tS(function(t){return Xm(function(e,t){return null!==e&&t&&t(new ex(e)),bm(!0)}(t.route.parent,i),function(e,t){return null!==e&&t&&t(new nx(e)),bm(!0)}(t.route,i),function(e,t,n){var i=t[t.length-1],r=t.slice(0,t.length-1).reverse().map(function(e){return function(e){var t=e.routeConfig?e.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null}(e)}).filter(function(e){return null!==e}).map(function(t){return yk(function(){return bm(t.guards.map(function(r){var a,o=XT(r,t.node,n);if(function(e){return e&&kT(e.canActivateChild)}(o))a=mx(o.canActivateChild(i,e));else{if(!kT(o))throw new Error("Invalid CanActivateChild guard");a=mx(o(i,e))}return a.pipe(eS())})).pipe(CT())})});return bm(r).pipe(CT())}(e,t.path,n),function(e,t,n){var i=t.routeConfig?t.routeConfig.canActivate:null;return i&&0!==i.length?bm(i.map(function(i){return yk(function(){var r,a=XT(i,t,n);if(function(e){return e&&kT(e.canActivate)}(a))r=mx(a.canActivate(t,e));else{if(!kT(a))throw new Error("Invalid CanActivate guard");r=mx(a(t,e))}return r.pipe(eS())})})).pipe(CT()):bm(!0)}(e,t.route,n))}),eS(function(e){return!0!==e},!0))}(i,o,e,t):bm(n)}),K(function(e){return Object.assign(Object.assign({},n),{guardsResult:e})}))})}(t.ngModule.injector,function(e){return t.triggerEvent(e)}),Hv(function(e){if(MT(e.guardsResult)){var n=ux('Redirecting to "'.concat(t.serializeUrl(e.guardsResult),'"'));throw n.url=e.guardsResult,n}var i=new JL(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot,!!e.guardsResult);t.triggerEvent(i)}),zm(function(e){return!!e.guardsResult||(t.restoreHistory(e),t.cancelNavigationTransition(e,""),!1)}),dD(function(e){if(e.guards.canActivateChecks.length)return bm(e).pipe(Hv(function(e){var n=new ZL(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)}),eg(function(e){var n,i,r=!1;return bm(e).pipe((n=t.paramsInheritanceStrategy,i=t.ngModule.injector,ue(function(e){var t=e.targetSnapshot,r=e.guards.canActivateChecks;if(!r.length)return bm(e);var a=0;return re(r).pipe(tS(function(e){return function(e,t,n,i){return function(e,t,n,i){var r=Object.keys(e);if(0===r.length)return bm({});var a={};return re(r).pipe(ue(function(r){return function(e,t,n,i){var r=XT(e,t,i);return mx(r.resolve?r.resolve(t,n):r(t,n))}(e[r],t,n,i).pipe(Hv(function(e){a[r]=e}))}),Vk(1),ue(function(){return Object.keys(a).length===r.length?bm(a):ag}))}(e._resolve,e,t,i).pipe(K(function(t){return e._resolvedData=t,e.data=Object.assign(Object.assign({},e.data),Zx(e,n).resolve),null}))}(e.route,t,n,i)}),Hv(function(){return a++}),Vk(1),ue(function(t){return a===r.length?bm(e):ag}))})),Hv({next:function(){return r=!0},complete:function(){r||(t.restoreHistory(e),t.cancelNavigationTransition(e,"At least one route resolver didn't emit any value."))}}))}),Hv(function(e){var n=new $L(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)}))}),dD(function(e){var n=e.extras;return t.hooks.afterPreactivation(e.targetSnapshot,{navigationId:e.id,appliedUrlTree:e.extractedUrl,rawUrlTree:e.rawUrl,skipLocationChange:!!n.skipLocationChange,replaceUrl:!!n.replaceUrl})}),K(function(e){var n,i,r,a=(r=rT(t.routeReuseStrategy,(n=e.targetSnapshot)._root,(i=e.currentRouterState)?i._root:void 0),new Gx(r,n));return Object.assign(Object.assign({},e),{targetRouterState:a})}),Hv(function(e){t.currentUrlTree=e.urlAfterRedirects,t.rawUrlTree=t.urlHandlingStrategy.merge(t.currentUrlTree,e.rawUrl),t.routerState=e.targetRouterState,"deferred"===t.urlUpdateStrategy&&(e.extras.skipLocationChange||t.setBrowserUrl(t.rawUrlTree,e),t.browserUrlTree=e.urlAfterRedirects)}),(i=t.rootContexts,r=t.routeReuseStrategy,a=function(e){return t.triggerEvent(e)},K(function(e){return new yT(r,e.targetRouterState,e.currentRouterState,a).activate(i),e})),Hv({next:function(){o=!0},complete:function(){o=!0}}),LC(function(){if(!o&&!s){var n="Navigation ID ".concat(e.id," is not equal to the current navigation id ").concat(t.navigationId);"replace"===t.canceledNavigationResolution?(t.restoreHistory(e),t.cancelNavigationTransition(e,n)):t.cancelNavigationTransition(e,n)}t.currentNavigation=null}),qM(function(i){if(s=!0,(u=i)&&u.ngNavigationCancelingError){var r=MT(i.url);r||(t.navigated=!0,t.restoreHistory(e,!0));var a=new zL(e.id,t.serializeUrl(e.extractedUrl),i.message);n.next(a),r?setTimeout(function(){var n=t.urlHandlingStrategy.merge(i.url,t.rawUrlTree),r={skipLocationChange:e.extras.skipLocationChange,replaceUrl:"eager"===t.urlUpdateStrategy||CD(e.source)};t.scheduleNavigation(n,"imperative",null,r,{resolve:e.resolve,reject:e.reject,promise:e.promise})},0):e.resolve(!1)}else{t.restoreHistory(e,!0);var o=new qL(e.id,t.serializeUrl(e.extractedUrl),i);n.next(o);try{e.resolve(t.errorHandler(i))}catch(l){e.reject(l)}}var u;return ag}))}))}},{key:"resetRootComponentType",value:function(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType}},{key:"getTransition",value:function(){var e=this.transitions.value;return e.urlAfterRedirects=this.browserUrlTree,e}},{key:"setTransition",value:function(e){this.transitions.next(Object.assign(Object.assign({},this.getTransition()),e))}},{key:"initialNavigation",value:function(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}},{key:"setUpLocationChangeListener",value:function(){var e=this;this.locationSubscription||(this.locationSubscription=this.location.subscribe(function(t){var n=e.extractLocationChangeInfoFromEvent(t);e.shouldScheduleNavigation(e.lastLocationChangeInfo,n)&&setTimeout(function(){var t=n.source,i=n.state,r=n.urlTree,a={replaceUrl:!0};if(i){var o=Object.assign({},i);delete o.navigationId,delete o.\u0275routerPageId,0!==Object.keys(o).length&&(a.state=o)}e.scheduleNavigation(r,t,i,a)},0),e.lastLocationChangeInfo=n}))}},{key:"extractLocationChangeInfoFromEvent",value:function(e){var t;return{source:"popstate"===e.type?"popstate":"hashchange",urlTree:this.parseUrl(e.url),state:(null===(t=e.state)||void 0===t?void 0:t.navigationId)?e.state:null,transitionId:this.getTransition().id}}},{key:"shouldScheduleNavigation",value:function(e,t){if(!e)return!0;var n=t.urlTree.toString()===e.urlTree.toString();return!(t.transitionId===e.transitionId&&n&&("hashchange"===t.source&&"popstate"===e.source||"popstate"===t.source&&"hashchange"===e.source))}},{key:"url",get:function(){return this.serializeUrl(this.currentUrlTree)}},{key:"getCurrentNavigation",value:function(){return this.currentNavigation}},{key:"triggerEvent",value:function(e){this.events.next(e)}},{key:"resetConfig",value:function(e){xT(e),this.config=e.map(OT),this.navigated=!1,this.lastSuccessfulId=-1}},{key:"ngOnDestroy",value:function(){this.dispose()}},{key:"dispose",value:function(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}},{key:"createUrlTree",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.relativeTo,i=t.queryParams,r=t.fragment,a=t.queryParamsHandling,o=t.preserveFragment,s=n||this.routerState.root,u=o?this.currentUrlTree.fragment:r,l=null;switch(a){case"merge":l=Object.assign(Object.assign({},this.currentUrlTree.queryParams),i);break;case"preserve":l=this.currentUrlTree.queryParams;break;default:l=i||null}return null!==l&&(l=this.removeEmptyProps(l)),oT(s,this.currentUrlTree,e,l,null!=u?u:null)}},{key:"navigateByUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{skipLocationChange:!1},n=MT(e)?e:this.parseUrl(e),i=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(i,"imperative",null,t)}},{key:"navigate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{skipLocationChange:!1};return SD(e),this.navigateByUrl(this.createUrlTree(e,t),t)}},{key:"serializeUrl",value:function(e){return this.urlSerializer.serialize(e)}},{key:"parseUrl",value:function(e){var t;try{t=this.urlSerializer.parse(e)}catch(n){t=this.malformedUriErrorHandler(n,this.urlSerializer,e)}return t}},{key:"isActive",value:function(e,t){var n;if(n=!0===t?Object.assign({},wD):!1===t?Object.assign({},kD):t,MT(e))return _x(this.currentUrlTree,e,n);var i=this.parseUrl(e);return _x(this.currentUrlTree,i,n)}},{key:"removeEmptyProps",value:function(e){return Object.keys(e).reduce(function(t,n){var i=e[n];return null!=i&&(t[n]=i),t},{})}},{key:"processNavigations",value:function(){var e=this;this.navigations.subscribe(function(t){e.navigated=!0,e.lastSuccessfulId=t.id,e.currentPageId=t.targetPageId,e.events.next(new UL(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(e.currentUrlTree))),e.lastSuccessfulNavigation=e.currentNavigation,t.resolve(!0)},function(t){e.console.warn("Unhandled Navigation Error: ")})}},{key:"scheduleNavigation",value:function(e,t,n,i,r){var a,o;if(this.disposed)return Promise.resolve(!1);var s,u,l,c=this.getTransition(),d=CD(t)&&c&&!CD(c.source),h=(this.lastSuccessfulId===c.id||this.currentNavigation?c.rawUrl:c.urlAfterRedirects).toString()===e.toString();if(d&&h)return Promise.resolve(!0);r?(s=r.resolve,u=r.reject,l=r.promise):l=new Promise(function(e,t){s=e,u=t});var f,p=++this.navigationId;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(n=this.location.getState()),f=n&&n.\u0275routerPageId?n.\u0275routerPageId:i.replaceUrl||i.skipLocationChange?null!==(a=this.browserPageId)&&void 0!==a?a:0:(null!==(o=this.browserPageId)&&void 0!==o?o:0)+1):f=0,this.setTransition({id:p,targetPageId:f,source:t,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:e,extras:i,resolve:s,reject:u,promise:l,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),l.catch(function(e){return Promise.reject(e)})}},{key:"setBrowserUrl",value:function(e,t){var n=this.urlSerializer.serialize(e),i=Object.assign(Object.assign({},t.extras.state),this.generateNgRouterState(t.id,t.targetPageId));this.location.isCurrentPathEqualTo(n)||t.extras.replaceUrl?this.location.replaceState(n,"",i):this.location.go(n,"",i)}},{key:"restoreHistory",value:function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("computed"===this.canceledNavigationResolution){var r=this.currentPageId-e.targetPageId,a="popstate"===e.source||"eager"===this.urlUpdateStrategy||this.currentUrlTree===(null===(t=this.currentNavigation)||void 0===t?void 0:t.finalUrl);a&&0!==r?this.location.historyGo(r):this.currentUrlTree===(null===(n=this.currentNavigation)||void 0===n?void 0:n.finalUrl)&&0===r&&(this.resetState(e),this.browserUrlTree=e.currentUrlTree,this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}},{key:"resetState",value:function(e){this.routerState=e.currentRouterState,this.currentUrlTree=e.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.rawUrl)}},{key:"resetUrlToCurrentUrlTree",value:function(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}},{key:"cancelNavigationTransition",value:function(e,t){var n=new zL(e.id,this.serializeUrl(e.extractedUrl),t);this.triggerEvent(n),e.resolve(!1)}},{key:"generateNgRouterState",value:function(e,t){return"computed"===this.canceledNavigationResolution?{navigationId:e,"\u0275routerPageId":t}:{navigationId:e}}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(Ci),Bi(Lx),Bi(gD),Bi(Ad),Bi(qo),Bi(ud),Bi(Ac),Bi(void 0))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}();function SD(e){for(var t=0;t2&&void 0!==arguments[2]?arguments[2]:{};s(this,e),this.router=t,this.viewportScroller=n,this.options=i,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},i.scrollPositionRestoration=i.scrollPositionRestoration||"disabled",i.anchorScrolling=i.anchorScrolling||"disabled"}return o(e,[{key:"init",value:function(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}},{key:"createScrollEvents",value:function(){var e=this;return this.router.events.subscribe(function(t){t instanceof VL?(e.store[e.lastId]=e.viewportScroller.getScrollPosition(),e.lastSource=t.navigationTrigger,e.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof UL&&(e.lastId=t.id,e.scheduleScrollEvent(t,e.router.parseUrl(t.urlAfterRedirects).fragment))})}},{key:"consumeScrollEvents",value:function(){var e=this;return this.router.events.subscribe(function(t){t instanceof rx&&(t.position?"top"===e.options.scrollPositionRestoration?e.viewportScroller.scrollToPosition([0,0]):"enabled"===e.options.scrollPositionRestoration&&e.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===e.options.anchorScrolling?e.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==e.options.scrollPositionRestoration&&e.viewportScroller.scrollToPosition([0,0]))})}},{key:"scheduleScrollEvent",value:function(e,t){this.router.triggerEvent(new rx(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,t))}},{key:"ngOnDestroy",value:function(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(MD),Bi(Dh),Bi(void 0))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}(),FD=new Mi("ROUTER_CONFIGURATION"),HD=new Mi("ROUTER_FORROOT_GUARD"),jD=[Ad,{provide:Lx,useClass:xx},{provide:MD,useFactory:function(e,t,n,i,r,a,o){var s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},u=arguments.length>8?arguments[8]:void 0,l=arguments.length>9?arguments[9]:void 0,c=new MD(null,e,t,n,i,r,a,hx(o));return u&&(c.urlHandlingStrategy=u),l&&(c.routeReuseStrategy=l),qD(s,c),s.enableTracing&&c.events.subscribe(function(e){var t,n;null===(t=console.group)||void 0===t||t.call(console,"Router Event: ".concat(e.constructor.name)),console.log(e.toString()),console.log(e),null===(n=console.groupEnd)||void 0===n||n.call(console)}),c},deps:[Lx,gD,Ad,qo,ud,Ac,fD,FD,[function e(){s(this,e)},new Ji],[function e(){s(this,e)},new Ji]]},gD,{provide:Jx,useFactory:function(e){return e.routerState.root},deps:[MD]},{provide:ud,useClass:dd},ID,AD,PD,{provide:FD,useValue:{enableTracing:!1}}];function ND(){return new Qc("Router",MD)}var BD=function(){var e=function(){function e(t,n){s(this,e)}return o(e,null,[{key:"forRoot",value:function(t,n){return{ngModule:e,providers:[jD,zD(t),{provide:HD,useFactory:UD,deps:[[MD,new Ji,new Zi]]},{provide:FD,useValue:n||{}},{provide:Dd,useFactory:VD,deps:[bd,[new Ki(Ed),new Ji],FD]},{provide:RD,useFactory:WD,deps:[MD,Dh,FD]},{provide:YD,useExisting:n&&n.preloadingStrategy?n.preloadingStrategy:AD},{provide:Qc,multi:!0,useFactory:ND},[GD,{provide:gc,multi:!0,useFactory:KD,deps:[GD]},{provide:ZD,useFactory:JD,deps:[GD]},{provide:Mc,multi:!0,useExisting:ZD}]]}}},{key:"forChild",value:function(t){return{ngModule:e,providers:[zD(t)]}}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(HD,8),Bi(MD,8))},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({}),e}();function WD(e,t,n){return n.scrollOffset&&t.setOffset(n.scrollOffset),new RD(e,t,n)}function VD(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.useHash?new Pd(e,t):new Yd(e,t)}function UD(e){return"guarded"}function zD(e){return[{provide:Si,multi:!0,useValue:e},{provide:fD,multi:!0,useValue:e}]}function qD(e,t){e.errorHandler&&(t.errorHandler=e.errorHandler),e.malformedUriErrorHandler&&(t.malformedUriErrorHandler=e.malformedUriErrorHandler),e.onSameUrlNavigation&&(t.onSameUrlNavigation=e.onSameUrlNavigation),e.paramsInheritanceStrategy&&(t.paramsInheritanceStrategy=e.paramsInheritanceStrategy),e.relativeLinkResolution&&(t.relativeLinkResolution=e.relativeLinkResolution),e.urlUpdateStrategy&&(t.urlUpdateStrategy=e.urlUpdateStrategy)}var GD=function(){var e=function(){function e(t){s(this,e),this.injector=t,this.initNavigation=!1,this.destroyed=!1,this.resultOfPreactivationDone=new z}return o(e,[{key:"appInitializer",value:function(){var e=this;return this.injector.get(kd,Promise.resolve(null)).then(function(){if(e.destroyed)return Promise.resolve(!0);var t=null,n=new Promise(function(e){return t=e}),i=e.injector.get(MD),r=e.injector.get(FD);return"disabled"===r.initialNavigation?(i.setUpLocationChangeListener(),t(!0)):"enabled"===r.initialNavigation||"enabledBlocking"===r.initialNavigation?(i.hooks.afterPreactivation=function(){return e.initNavigation?bm(null):(e.initNavigation=!0,t(!0),e.resultOfPreactivationDone)},i.initialNavigation()):t(!0),n})}},{key:"bootstrapListener",value:function(e){var t=this.injector.get(FD),n=this.injector.get(ID),i=this.injector.get(RD),r=this.injector.get(MD),a=this.injector.get(od);e===a.components[0]&&("enabledNonBlocking"!==t.initialNavigation&&void 0!==t.initialNavigation||r.initialNavigation(),n.setUpPreloading(),i.init(),r.resetRootComponentType(a.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}},{key:"ngOnDestroy",value:function(){this.destroyed=!0}}]),e}();return e.\u0275fac=function(t){return new(t||e)(Bi(qo))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac}),e}();function KD(e){return e.appInitializer.bind(e)}function JD(e){return e.bootstrapListener.bind(e)}var ZD=new Mi("Router Initializer"),$D=["msgBar"],XD=function(){function e(e,t,n,i,r,a,o,s,u){this.appService=e,this.languageService=t,this.dialog=n,this.msgBarService=i,a.requestPinComponent=eL,o.requestWordComponent=_L,r.signTransactionConfirmationComponent=tL,u.initialize(),s.errorDuringinitialLoad.subscribe(function(e){e&&zM(2)})}return e.prototype.ngOnInit=function(){var e=this;this.appService.UpdateData(),this.languageService.initialize();var t=this.languageService.savedSelectedLanguageLoaded.subscribe(function(n){n||SL.openDialog(e.dialog,!0),t.unsubscribe()});setTimeout(function(){e.msgBarService.msgBarComponent=e.msgBar})},e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(kL),ps(Pk),ps(dL),ps(gC),ps(uC),ps(fC),ps(AL),ps(nL))},e.\u0275cmp=ft({type:e,selectors:[["app-root"]],viewQuery:function(e,t){var n;1&e&&lc($D,5),2&e&&uc(n=dc())&&(t.msgBar=n.first)},decls:19,vars:3,consts:[[1,"size-alert","d-md-none"],["src","assets/img/size-alert.png"],[1,"background-fixer"],["msgBar",""]],template:function(e,t){1&e&&(vs(0,"div",0),ru(1,"\n "),vs(2,"div"),ru(3,"\n "),ys(4,"img",1),ru(5,"\n "),vs(6,"div"),ru(7),Wl(8,"translate"),_s(),ru(9,"\n "),_s(),ru(10,"\n"),_s(),ru(11,"\n"),ru(12,"\n"),ys(13,"div",2),ru(14,"\n"),ys(15,"router-outlet"),ru(16,"\n"),ys(17,"app-msg-bar",null,3)),2&e&&(Ya(7),au(Vl(8,1,"errors.window-size")))},directives:[OD,cL],pipes:[hM],styles:[".size-alert[_ngcontent-%COMP%]{background-color:rgba(0,0,0,.85);position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}"]}),e}(),QD=["input"],eO=function(e){return{enterDuration:e}},tO=["*"],nO=new Mi("mat-checkbox-default-options",{providedIn:"root",factory:iO});function iO(){return{color:"accent",clickAction:"check-indeterminate"}}var rO=0,aO=iO(),oO={provide:Mf,useExisting:Te(function(){return lO}),multi:!0},sO=function e(){s(this,e)},uO=Vw(Bw(Ww(Nw(function(){return function e(t){s(this,e),this._elementRef=t}}())))),lO=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o,u,l){var c;return s(this,n),(c=t.call(this,e))._changeDetectorRef=i,c._focusMonitor=r,c._ngZone=a,c._animationMode=u,c._options=l,c.ariaLabel="",c.ariaLabelledby=null,c._uniqueId="mat-checkbox-".concat(++rO),c.id=c._uniqueId,c.labelPosition="after",c.name=null,c.change=new Zl,c.indeterminateChange=new Zl,c._onTouched=function(){},c._currentAnimationClass="",c._currentCheckState=0,c._controlValueAccessorChangeFn=function(){},c._checked=!1,c._disabled=!1,c._indeterminate=!1,c._options=c._options||aO,c.color=c.defaultColor=c._options.color||aO.color,c.tabIndex=parseInt(o)||0,c}return o(n,[{key:"inputId",get:function(){return"".concat(this.id||this._uniqueId,"-input")}},{key:"required",get:function(){return this._required},set:function(e){this._required=pm(e)}},{key:"ngAfterViewInit",value:function(){var e=this;this._focusMonitor.monitor(this._elementRef,!0).subscribe(function(t){t||Promise.resolve().then(function(){e._onTouched(),e._changeDetectorRef.markForCheck()})}),this._syncIndeterminate(this._indeterminate)}},{key:"ngAfterViewChecked",value:function(){}},{key:"ngOnDestroy",value:function(){this._focusMonitor.stopMonitoring(this._elementRef)}},{key:"checked",get:function(){return this._checked},set:function(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}},{key:"disabled",get:function(){return this._disabled},set:function(e){var t=pm(e);t!==this.disabled&&(this._disabled=t,this._changeDetectorRef.markForCheck())}},{key:"indeterminate",get:function(){return this._indeterminate},set:function(e){var t=e!=this._indeterminate;this._indeterminate=pm(e),t&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}},{key:"_isRippleDisabled",value:function(){return this.disableRipple||this.disabled}},{key:"_onLabelTextChange",value:function(){this._changeDetectorRef.detectChanges()}},{key:"writeValue",value:function(e){this.checked=!!e}},{key:"registerOnChange",value:function(e){this._controlValueAccessorChangeFn=e}},{key:"registerOnTouched",value:function(e){this._onTouched=e}},{key:"setDisabledState",value:function(e){this.disabled=e}},{key:"_getAriaChecked",value:function(){return this.checked?"true":this.indeterminate?"mixed":"false"}},{key:"_transitionCheckState",value:function(e){var t=this._currentCheckState,n=this._elementRef.nativeElement;if(t!==e&&(this._currentAnimationClass.length>0&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(t,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);var i=this._currentAnimationClass;this._ngZone.runOutsideAngular(function(){setTimeout(function(){n.classList.remove(i)},1e3)})}}},{key:"_emitChangeEvent",value:function(){var e=new sO;e.source=this,e.checked=this.checked,this._controlValueAccessorChangeFn(this.checked),this.change.emit(e),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}},{key:"toggle",value:function(){this.checked=!this.checked}},{key:"_onInputClick",value:function(e){var t,n=this,i=null===(t=this._options)||void 0===t?void 0:t.clickAction;e.stopPropagation(),this.disabled||"noop"===i?this.disabled||"noop"!==i||(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==i&&Promise.resolve().then(function(){n._indeterminate=!1,n.indeterminateChange.emit(n._indeterminate)}),this.toggle(),this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}},{key:"focus",value:function(e,t){e?this._focusMonitor.focusVia(this._inputElement,e,t):this._inputElement.nativeElement.focus(t)}},{key:"_onInteractionEvent",value:function(e){e.stopPropagation()}},{key:"_getAnimationClassForCheckStateTransition",value:function(e,t){if("NoopAnimations"===this._animationMode)return"";var n="";switch(e){case 0:if(1===t)n="unchecked-checked";else{if(3!=t)return"";n="unchecked-indeterminate"}break;case 2:n=1===t?"unchecked-checked":"unchecked-indeterminate";break;case 1:n=2===t?"checked-unchecked":"checked-indeterminate";break;case 3:n=1===t?"indeterminate-checked":"indeterminate-unchecked"}return"mat-checkbox-anim-".concat(n)}},{key:"_syncIndeterminate",value:function(e){var t=this._inputElement;t&&(t.nativeElement.indeterminate=e)}}]),n}(uO);return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(ll),ps(x_),ps(Fc),bi("tabindex"),ps(Tw,8),ps(nO,8))},e.\u0275cmp=ft({type:e,selectors:[["mat-checkbox"]],viewQuery:function(e,t){var n;1&e&&(lc(QD,5),lc(nk,5)),2&e&&(uc(n=dc())&&(t._inputElement=n.first),uc(n=dc())&&(t.ripple=n.first))},hostAttrs:[1,"mat-checkbox"],hostVars:12,hostBindings:function(e,t){2&e&&(du("id",t.id),ls("tabindex",null),qs("mat-checkbox-indeterminate",t.indeterminate)("mat-checkbox-checked",t.checked)("mat-checkbox-disabled",t.disabled)("mat-checkbox-label-before","before"==t.labelPosition)("_mat-animation-noopable","NoopAnimations"===t._animationMode))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],id:"id",labelPosition:"labelPosition",name:"name",required:"required",checked:"checked",disabled:"disabled",indeterminate:"indeterminate",ariaDescribedby:["aria-describedby","ariaDescribedby"],value:"value"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[Du([oO]),Ko],ngContentSelectors:tO,decls:38,vars:21,consts:[[1,"mat-checkbox-layout"],["label",""],[1,"mat-checkbox-inner-container"],["type","checkbox",1,"mat-checkbox-input","cdk-visually-hidden",3,"id","required","checked","disabled","tabIndex","change","click"],["input",""],["matRipple","",1,"mat-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleRadius","matRippleCentered","matRippleAnimation"],[1,"mat-ripple-element","mat-checkbox-persistent-ripple"],[1,"mat-checkbox-frame"],[1,"mat-checkbox-background"],["version","1.1","focusable","false","viewBox","0 0 24 24",0,"xml","space","preserve","aria-hidden","true",1,"mat-checkbox-checkmark"],["fill","none","stroke","white","d","M4.1,12.7 9,17.6 20.3,6.3",1,"mat-checkbox-checkmark-path"],[1,"mat-checkbox-mixedmark"],[1,"mat-checkbox-label",3,"cdkObserveContent"],["checkboxLabel",""],[2,"display","none"]],template:function(e,t){if(1&e&&(As(),vs(0,"label",0,1),ru(2,"\n "),vs(3,"span",2),ru(4,"\n "),vs(5,"input",3,4),xs("change",function(e){return t._onInteractionEvent(e)})("click",function(e){return t._onInputClick(e)}),_s(),ru(7,"\n "),vs(8,"span",5),ru(9,"\n "),ys(10,"span",6),ru(11,"\n "),_s(),ru(12,"\n "),ys(13,"span",7),ru(14,"\n "),vs(15,"span",8),ru(16,"\n "),An(),vs(17,"svg",9),ru(18,"\n "),ys(19,"path",10),ru(20,"\n "),_s(),ru(21,"\n "),ru(22,"\n "),In(),ys(23,"span",11),ru(24,"\n "),_s(),ru(25,"\n "),_s(),ru(26,"\n "),vs(27,"span",12,13),xs("cdkObserveContent",function(){return t._onLabelTextChange()}),ru(29,"\n "),ru(30,"\n "),vs(31,"span",14),ru(32,"\xa0"),_s(),ru(33,"\n "),Is(34),ru(35,"\n "),_s(),ru(36,"\n"),_s(),ru(37,"\n")),2&e){var n=fs(1),i=fs(28);ls("for",t.inputId),Ya(3),qs("mat-checkbox-inner-container-no-side-margin",!i.textContent||!i.textContent.trim()),Ya(2),ms("id",t.inputId)("required",t.required)("checked",t.checked)("disabled",t.disabled)("tabIndex",t.tabIndex),ls("value",t.value)("name",t.name)("aria-label",t.ariaLabel||null)("aria-labelledby",t.ariaLabelledby)("aria-checked",t._getAriaChecked())("aria-describedby",t.ariaDescribedby),Ya(3),ms("matRippleTrigger",n)("matRippleDisabled",t._isRippleDisabled())("matRippleRadius",20)("matRippleCentered",!0)("matRippleAnimation",Il(19,eO,"NoopAnimations"===t._animationMode?0:150))}},directives:[nk,Zv],styles:["@keyframes mat-checkbox-fade-in-background{0%{opacity:0}50%{opacity:1}}@keyframes mat-checkbox-fade-out-background{0%,50%{opacity:1}100%{opacity:0}}@keyframes mat-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:22.910259}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1)}100%{stroke-dashoffset:0}}@keyframes mat-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mat-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);stroke-dashoffset:0}to{stroke-dashoffset:-22.910259}}@keyframes mat-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(45deg)}}@keyframes mat-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:0;transform:rotate(45deg)}to{opacity:1;transform:rotate(360deg)}}@keyframes mat-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:rotate(0deg)}}@keyframes mat-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(315deg)}}@keyframes mat-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;opacity:1;transform:scaleX(1)}32.8%,100%{opacity:0;transform:scaleX(0)}}.mat-checkbox-background,.mat-checkbox-frame{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:2px;box-sizing:border-box;pointer-events:none}.mat-checkbox{display:inline-block;transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);cursor:pointer;-webkit-tap-highlight-color:transparent}._mat-animation-noopable.mat-checkbox{transition:none;animation:none}.mat-checkbox .mat-ripple-element:not(.mat-checkbox-persistent-ripple){opacity:.16}.mat-checkbox .mat-checkbox-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.cdk-high-contrast-active .mat-checkbox.cdk-keyboard-focused .mat-checkbox-ripple{outline:solid 3px}.mat-checkbox-layout{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mat-checkbox-label{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.mat-checkbox-inner-container{display:inline-block;height:16px;line-height:0;margin:auto;margin-right:8px;order:0;position:relative;vertical-align:middle;white-space:nowrap;width:16px;flex-shrink:0}[dir=rtl] .mat-checkbox-inner-container{margin-left:8px;margin-right:auto}.mat-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mat-checkbox-frame{background-color:transparent;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1);border-width:2px;border-style:solid}._mat-animation-noopable .mat-checkbox-frame{transition:none}.mat-checkbox-background{align-items:center;display:inline-flex;justify-content:center;transition:background-color 90ms cubic-bezier(0, 0, 0.2, 0.1),opacity 90ms cubic-bezier(0, 0, 0.2, 0.1);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-checkbox-background{transition:none}.cdk-high-contrast-active .mat-checkbox .mat-checkbox-background{background:none}.mat-checkbox-persistent-ripple{display:block;width:100%;height:100%;transform:none}.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:.04}.mat-checkbox.cdk-keyboard-focused .mat-checkbox-persistent-ripple{opacity:.12}.mat-checkbox-persistent-ripple,.mat-checkbox.mat-checkbox-disabled .mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:0}@media(hover: none){.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{display:none}}.mat-checkbox-checkmark{top:0;left:0;right:0;bottom:0;position:absolute;width:100%}.mat-checkbox-checkmark-path{stroke-dashoffset:22.910259;stroke-dasharray:22.910259;stroke-width:2.1333333333px}.cdk-high-contrast-black-on-white .mat-checkbox-checkmark-path{stroke:#000 !important}.mat-checkbox-mixedmark{width:calc(100% - 6px);height:2px;opacity:0;transform:scaleX(0) rotate(0deg);border-radius:2px}.cdk-high-contrast-active .mat-checkbox-mixedmark{height:0;border-top:solid 2px;margin-top:2px}.mat-checkbox-label-before .mat-checkbox-inner-container{order:1;margin-left:8px;margin-right:auto}[dir=rtl] .mat-checkbox-label-before .mat-checkbox-inner-container{margin-left:auto;margin-right:8px}.mat-checkbox-checked .mat-checkbox-checkmark{opacity:1}.mat-checkbox-checked .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-checked .mat-checkbox-mixedmark{transform:scaleX(1) rotate(-45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark{opacity:0;transform:rotate(45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-indeterminate .mat-checkbox-mixedmark{opacity:1;transform:scaleX(1) rotate(0deg)}.mat-checkbox-unchecked .mat-checkbox-background{background-color:transparent}.mat-checkbox-disabled{cursor:default}.cdk-high-contrast-active .mat-checkbox-disabled{opacity:.5}.mat-checkbox-anim-unchecked-checked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-checked .mat-checkbox-checkmark-path{animation:180ms linear 0ms mat-checkbox-unchecked-checked-checkmark-path}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-unchecked-indeterminate-mixedmark}.mat-checkbox-anim-checked-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-checked-unchecked .mat-checkbox-checkmark-path{animation:90ms linear 0ms mat-checkbox-checked-unchecked-checkmark-path}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-checkmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-checkmark}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-mixedmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-checkmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-checkmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-mixedmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-mixedmark}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-mixedmark{animation:300ms linear 0ms mat-checkbox-indeterminate-unchecked-mixedmark}.mat-checkbox-input{bottom:0;left:50%}\n"],encapsulation:2,changeDetection:0}),e}(),cO=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({}),e}(),dO=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[ik,jw,$v,cO],jw,cO]}),e}();function hO(e,t){if(1&e){var n=Ms();vs(0,"span",6),xs("click",function(){on(n);var e=Ys();return e.data.linkFunction(),e.closeModal(!1)}),ru(1),Wl(2,"translate"),_s()}if(2&e){var i=Ys();Ya(1),au(Vl(2,1,i.data.linkText))}}function fO(e,t){if(1&e){var n=Ms();vs(0,"div",7),ru(1,"\n "),vs(2,"mat-checkbox",8),xs("change",function(e){return on(n),Ys().setAccept(e)}),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("checked",i.accepted),Ya(1),ou("",Vl(4,2,i.data.checkboxText),"\n ")}}function pO(e,t){if(1&e){var n=Ms();vs(0,"app-button",9),xs("action",function(){return on(n),Ys().closeModal(!1)}),ru(1),Wl(2,"translate"),_s()}if(2&e){var i=Ys();Ya(1),ou("\n ",Vl(2,1,i.data.cancelButtonText),"\n ")}}var mO,gO=function(e){return e.YesNo="YesNo",e.ContinueCancel="ContinueCancel",e.Close="Close",e}({}),vO=function(){function e(e,t){this.dialogRef=e,this.data=t,this.accepted=!1,this.disableDismiss=!1,t.headerText||(t.headerText="confirmation.default-title"),t.defaultButtons&&(t.confirmButtonText=null,t.cancelButtonText=null,t.defaultButtons===gO.Close&&(t.confirmButtonText="common.close-button"),t.defaultButtons===gO.YesNo&&(t.confirmButtonText="confirmation.yes-button",t.cancelButtonText="confirmation.no-button"),t.defaultButtons===gO.ContinueCancel&&(t.confirmButtonText="common.continue-button",t.cancelButtonText="common.cancel-button")),this.disableDismiss=!!t.disableDismiss}return e.openDialog=function(t,n){var i=new wk;return i.data=n,i.autoFocus=!1,i.width="450px",t.open(e,i)},e.prototype.closeModal=function(e){this.dialogRef.close(e)},e.prototype.setAccept=function(e){this.accepted=!!e.checked},e.\u0275fac=function(t){return new(t||e)(ps(Lk),ps(Tk))},e.\u0275cmp=ft({type:e,selectors:[["app-confirmation"]],decls:18,vars:16,consts:[[3,"useRedTitle","headline","dialog","disableDismiss"],["class","link",3,"click",4,"ngIf"],["class","-check-container",4,"ngIf"],[1,"-buttons"],[3,"action",4,"ngIf"],[1,"primary-button",3,"disabled","action"],[1,"link",3,"click"],[1,"-check-container"],["type","checkbox","id","terms",1,"-check","e2e-confirm-checkbox",3,"checked","change"],[3,"action"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2),Wl(3,"translate"),hs(4,hO,3,3,"span",1),ru(5,"\n\n "),hs(6,fO,6,4,"div",2),ru(7,"\n\n "),vs(8,"div",3),ru(9,"\n "),hs(10,pO,3,3,"app-button",4),ru(11,"\n "),vs(12,"app-button",5),xs("action",function(){return t.closeModal(!0)}),ru(13),Wl(14,"translate"),_s(),ru(15,"\n "),_s(),ru(16,"\n"),_s(),ru(17,"\n")),2&e&&(ms("useRedTitle",t.data.redTitle)("headline",Vl(1,10,t.data.headerText))("dialog",t.dialogRef)("disableDismiss",t.disableDismiss),Ya(2),ou("\n ",Vl(3,12,t.data.text),"\n "),Ya(2),ms("ngIf",t.data.linkText&&t.data.linkFunction),Ya(2),ms("ngIf",t.data.checkboxText),Ya(4),ms("ngIf",t.data.cancelButtonText),Ya(2),ms("disabled",t.data.checkboxText&&!t.accepted),Ya(1),ou("\n ",Vl(14,14,t.data.confirmButtonText),"\n "))},directives:[jk,lh,ZC,lO],pipes:[hM],styles:[""]}),e}(),_O=function(){function e(e,t,n){var i=this;this.walletsAndAddressesService=e,this.apiService=t,this.ngZone=n,this.walletsWithBalanceSubject=new fg(1),this.hasPendingTransactionsSubject=new Rv(!1),this.firstFullUpdateMadeSubject=new Rv(!1),this.updatePeriod=1e4,this.errorUpdatePeriod=2e3,this.savedBalanceData=new Map,this.temporalSavedBalanceData=new Map,this.walletsAndAddressesService.allWallets.subscribe(function(e){i.savedWalletsList=e,i.startDataRefreshSubscription(0,!0)})}return Object.defineProperty(e.prototype,"walletsWithBalance",{get:function(){return this.walletsWithBalanceSubject.asObservable()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasPendingTransactions",{get:function(){return this.hasPendingTransactionsSubject.asObservable()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"firstFullUpdateMade",{get:function(){return this.firstFullUpdateMadeSubject.asObservable()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"outputsWithWallets",{get:function(){var e=this;return this.walletsWithBalance.pipe(eg(function(t){var n=t.map(function(e){return e.addresses.map(function(e){return e.address}).join(",")}).join(",");return e.getOutputs(n)}),K(function(t){var n=[];return e.walletsWithBalanceList.forEach(function(e){return n.push(function(e){var t=new YL;return Object.assign(t,xL(e,!1)),e.addresses.forEach(function(e){t.addresses.push(function(e){var t=new PL;return Object.assign(t,TL(e)),t}(e))}),t}(e))}),n.forEach(function(e){e.addresses.forEach(function(e){e.outputs=t.filter(function(t){return t.address===e.address})})}),n}))},enumerable:!1,configurable:!0}),e.prototype.getOutputs=function(e){return e?this.apiService.post("outputs",{addrs:e}).pipe(K(function(e){var t=[];return e.head_outputs.forEach(function(e){var n={address:e.address,coins:new CM.BigNumber(e.coins),hash:e.hash,hours:new CM.BigNumber(e.calculated_hours)};t.push(n)}),t})):bm([])},e.prototype.getWalletUnspentOutputs=function(e){var t=e.addresses.map(function(e){return e.address}).join(",");return this.getOutputs(t)},e.prototype.refreshBalance=function(){this.startDataRefreshSubscription(0,!1)},e.prototype.startDataRefreshSubscription=function(e,t){var n=this;this.dataRefreshSubscription&&this.dataRefreshSubscription.unsubscribe(),this.savedWalletsList&&this.ngZone.runOutsideAngular(function(){n.dataRefreshSubscription=bm(0).pipe(EM(e),ue(function(){return t?n.refreshBalances(n.savedWalletsList,!0):bm(0)}),ue(function(){return n.refreshBalances(n.savedWalletsList,!1)})).subscribe(function(){return n.startDataRefreshSubscription(n.updatePeriod,!1)},function(){return n.startDataRefreshSubscription(n.errorUpdatePeriod,!1)})})},e.prototype.refreshBalances=function(e,t){var n=this;this.gettingBalanceSubscription&&this.gettingBalanceSubscription.unsubscribe();var i=[];return e.forEach(function(e){i.push(function(e){var t=new OL;return Object.assign(t,xL(e,!1)),e.addresses.forEach(function(e){t.addresses.push(function(e){var t=new EL;return Object.assign(t,TL(e)),t}(e))}),t}(e))}),t||(this.temporalSavedBalanceData=new Map),yf(i.map(function(e){return n.retrieveWalletBalance(e,t)})).pipe(Hv(function(e){if(n.hasPendingTransactionsSubject.next(e.some(function(e){return e})),!n.walletsWithBalanceList||t||n.walletsWithBalanceList.length!==i.length)n.walletsWithBalanceList=i,n.informDataUpdated();else{var r=!1;n.walletsWithBalanceList.forEach(function(e,t){e.id!==i[t].id&&(r=!0)}),r?(n.walletsWithBalanceList=i,n.informDataUpdated()):(n.walletsWithBalanceList.forEach(function(e,t){e.coins.isEqualTo(i[t].coins)&&e.hours.isEqualTo(i[t].hours)||(e.coins=i[t].coins,e.hours=i[t].hours,r=!0),e.addresses.length!==i[t].addresses.length?(e.addresses=i[t].addresses,r=!0):e.addresses.forEach(function(e,n){e.coins.isEqualTo(i[t].addresses[n].coins)&&e.hours.isEqualTo(i[t].addresses[n].hours)||(e.coins=i[t].addresses[n].coins,e.hours=i[t].addresses[n].hours,r=!0)})}),r&&n.informDataUpdated())}t||(n.savedBalanceData=n.temporalSavedBalanceData,n.firstFullUpdateMadeSubject.value||n.ngZone.run(function(){n.firstFullUpdateMadeSubject.next(!0)}))}))},e.prototype.retrieveWalletBalance=function(e,t){var n,i=this;if(t)n=this.savedBalanceData.has(e.id)?bm(this.savedBalanceData.get(e.id)):bm({addresses:[]});else if(e.isHardware){var r=e.addresses.map(function(e){return e.address}).join(",");n=this.apiService.post("balance",{addrs:r})}else n=this.apiService.get("wallet/balance",{id:e.id});return n.pipe(K(function(n){return i.temporalSavedBalanceData.set(e.id,n),n.confirmed?(e.coins=new CM.BigNumber(n.confirmed.coins).dividedBy(1e6),e.hours=new CM.BigNumber(n.confirmed.hours)):(e.coins=new CM.BigNumber(0),e.hours=new CM.BigNumber(0)),e.addresses.forEach(function(e){n.addresses[e.address]?(e.coins=new CM.BigNumber(n.addresses[e.address].confirmed.coins).dividedBy(1e6),e.hours=new CM.BigNumber(n.addresses[e.address].confirmed.hours)):(e.coins=new CM.BigNumber(0),e.hours=new CM.BigNumber(0))}),t?i.hasPendingTransactionsSubject.value:!new CM.BigNumber(n.predicted.coins).dividedBy(1e6).isEqualTo(e.coins)||!new CM.BigNumber(n.predicted.hours).isEqualTo(e.hours)}))},e.prototype.informDataUpdated=function(){var e=this;this.ngZone.run(function(){e.walletsWithBalanceSubject.next(e.walletsWithBalanceList)})},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(AL),Bi(HS),Bi(Fc))}}),e}(),yO=function(){function e(e,t,n){this.apiService=e,this.ngZone=t,this.balanceAndOutputsService=n,this.progressSubject=new fg(1),this.lastCurrentBlock=0,this.lastHighestBlock=0,this.nodeSynchronized=!1,this.refreshedBalance=!1,this.updatePeriod=2e3,this.errorUpdatePeriod=2e3,this.startDataRefreshSubscription(0)}return Object.defineProperty(e.prototype,"progress",{get:function(){return this.progressSubject.asObservable()},enumerable:!1,configurable:!0}),e.prototype.getLastBlock=function(){return this.apiService.get("last_blocks",{num:1}).pipe(K(function(e){return{seq:e.blocks[0].header.seq,timestamp:e.blocks[0].header.timestamp,hash:e.blocks[0].header.block_hash}}))},e.prototype.getCoinSupply=function(){return this.apiService.get("coinSupply").pipe(K(function(e){return{currentSupply:e.current_supply,totalSupply:e.total_supply,currentCoinhourSupply:e.current_coinhour_supply,totalCoinhourSupply:e.total_coinhour_supply}}))},e.prototype.startDataRefreshSubscription=function(e){var t=this;this.dataSubscription&&this.dataSubscription.unsubscribe(),this.ngZone.runOutsideAngular(function(){t.dataSubscription=bm(0).pipe(EM(e),ue(function(){return t.apiService.get("blockchain/progress")})).subscribe(function(e){t.ngZone.run(function(){!e||!e.current||!e.highest||0===e.highest||e.current visible",H_("200ms cubic-bezier(0, 0, 0.2, 1)",W_([N_({opacity:0,transform:"scale(0)",offset:0}),N_({opacity:.5,transform:"scale(0.99)",offset:.5}),N_({opacity:1,transform:"scale(1)",offset:1})]))),V_("* => hidden",H_("100ms cubic-bezier(0, 0, 0.2, 1)",N_({opacity:0})))])},LO="tooltip-panel",xO=Mg({passive:!0}),TO=new Mi("mat-tooltip-scroll-strategy"),DO={provide:TO,deps:[Dv],useFactory:function(e){return function(){return e.scrollStrategies.reposition({scrollThrottle:20})}}},OO=new Mi("mat-tooltip-default-options",{providedIn:"root",factory:function(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),EO=function(){var e=function(){function e(t,n,i,r,a,o,u,l,c,d,h,f){var p=this;s(this,e),this._overlay=t,this._elementRef=n,this._scrollDispatcher=i,this._viewContainerRef=r,this._ngZone=a,this._platform=o,this._ariaDescriber=u,this._focusMonitor=l,this._dir=d,this._defaultOptions=h,this._position="below",this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.showDelay=this._defaultOptions.showDelay,this.hideDelay=this._defaultOptions.hideDelay,this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new z,this._handleKeydown=function(e){p._isTooltipVisible()&&e.keyCode===Zg&&!Qg(e)&&(e.preventDefault(),e.stopPropagation(),p._ngZone.run(function(){return p.hide(0)}))},this._scrollStrategy=c,this._document=f,h&&(h.position&&(this.position=h.position),h.touchGestures&&(this.touchGestures=h.touchGestures)),d.change.pipe(Km(this._destroyed)).subscribe(function(){p._overlayRef&&p._updatePosition(p._overlayRef)}),a.runOutsideAngular(function(){n.nativeElement.addEventListener("keydown",p._handleKeydown)})}return o(e,[{key:"position",get:function(){return this._position},set:function(e){var t;e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),null===(t=this._tooltipInstance)||void 0===t||t.show(0),this._overlayRef.updatePosition()))}},{key:"disabled",get:function(){return this._disabled},set:function(e){this._disabled=pm(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}},{key:"message",get:function(){return this._message},set:function(e){var t=this;this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(function(){Promise.resolve().then(function(){t._ariaDescriber.describe(t._elementRef.nativeElement,t.message,"tooltip")})}))}},{key:"tooltipClass",get:function(){return this._tooltipClass},set:function(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}},{key:"ngAfterViewInit",value:function(){var e=this;this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Km(this._destroyed)).subscribe(function(t){t?"keyboard"===t&&e._ngZone.run(function(){return e.show()}):e._ngZone.run(function(){return e.hide(0)})})}},{key:"ngOnDestroy",value:function(){var e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),e.removeEventListener("keydown",this._handleKeydown),this._passiveListeners.forEach(function(t){var n=_(t,2);e.removeEventListener(n[0],n[1],xO)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}},{key:"show",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.showDelay;if(!this.disabled&&this.message&&(!this._isTooltipVisible()||this._tooltipInstance._showTimeoutId||this._tooltipInstance._hideTimeoutId)){var n=this._createOverlay();this._detach(),this._portal=this._portal||new Fg(this._tooltipComponent,this._viewContainerRef),this._tooltipInstance=n.attach(this._portal).instance,this._tooltipInstance.afterHidden().pipe(Km(this._destroyed)).subscribe(function(){return e._detach()}),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),this._tooltipInstance.show(t)}}},{key:"hide",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.hideDelay;this._tooltipInstance&&this._tooltipInstance.hide(e)}},{key:"toggle",value:function(){this._isTooltipVisible()?this.hide():this.show()}},{key:"_isTooltipVisible",value:function(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}},{key:"_createOverlay",value:function(){var e=this;if(this._overlayRef)return this._overlayRef;var t=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),n=this._overlay.position().flexibleConnectedTo(this._elementRef).withTransformOriginOn(".".concat(this._cssClassPrefix,"-tooltip")).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(t);return n.positionChanges.pipe(Km(this._destroyed)).subscribe(function(t){e._updateCurrentPositionClass(t.connectionPair),e._tooltipInstance&&t.scrollableViewProperties.isOverlayClipped&&e._tooltipInstance.isVisible()&&e._ngZone.run(function(){return e.hide(0)})}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:n,panelClass:"".concat(this._cssClassPrefix,"-").concat(LO),scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Km(this._destroyed)).subscribe(function(){return e._detach()}),this._overlayRef.outsidePointerEvents().pipe(Km(this._destroyed)).subscribe(function(){var t;return null===(t=e._tooltipInstance)||void 0===t?void 0:t._handleBodyInteraction()}),this._overlayRef}},{key:"_detach",value:function(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}},{key:"_updatePosition",value:function(e){var t=e.getConfig().positionStrategy,n=this._getOrigin(),i=this._getOverlayPosition();t.withPositions([this._addOffset(Object.assign(Object.assign({},n.main),i.main)),this._addOffset(Object.assign(Object.assign({},n.fallback),i.fallback))])}},{key:"_addOffset",value:function(e){return e}},{key:"_getOrigin",value:function(){var e,t=!this._dir||"ltr"==this._dir.value,n=this.position;"above"==n||"below"==n?e={originX:"center",originY:"above"==n?"top":"bottom"}:"before"==n||"left"==n&&t||"right"==n&&!t?e={originX:"start",originY:"center"}:("after"==n||"right"==n&&t||"left"==n&&!t)&&(e={originX:"end",originY:"center"});var i=this._invertPosition(e.originX,e.originY);return{main:e,fallback:{originX:i.x,originY:i.y}}}},{key:"_getOverlayPosition",value:function(){var e,t=!this._dir||"ltr"==this._dir.value,n=this.position;"above"==n?e={overlayX:"center",overlayY:"bottom"}:"below"==n?e={overlayX:"center",overlayY:"top"}:"before"==n||"left"==n&&t||"right"==n&&!t?e={overlayX:"end",overlayY:"center"}:("after"==n||"right"==n&&t||"left"==n&&!t)&&(e={overlayX:"start",overlayY:"center"});var i=this._invertPosition(e.overlayX,e.overlayY);return{main:e,fallback:{overlayX:i.x,overlayY:i.y}}}},{key:"_updateTooltipMessage",value:function(){var e=this;this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(zg(1),Km(this._destroyed)).subscribe(function(){e._tooltipInstance&&e._overlayRef.updatePosition()}))}},{key:"_setTooltipClass",value:function(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}},{key:"_invertPosition",value:function(e,t){return"above"===this.position||"below"===this.position?"top"===t?t="bottom":"bottom"===t&&(t="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:t}}},{key:"_updateCurrentPositionClass",value:function(e){var t,n=e.overlayY,i=e.originX;if((t="center"===n?this._dir&&"rtl"===this._dir.value?"end"===i?"left":"right":"start"===i?"left":"right":"bottom"===n&&"top"===e.originY?"above":"below")!==this._currentPosition){var r=this._overlayRef;if(r){var a="".concat(this._cssClassPrefix,"-").concat(LO,"-");r.removePanelClass(a+this._currentPosition),r.addPanelClass(a+t)}this._currentPosition=t}}},{key:"_setupPointerEnterEventsIfNeeded",value:function(){var e=this;!this._disabled&&this.message&&this._viewInitialized&&!this._passiveListeners.length&&(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",function(){e._setupPointerExitEventsIfNeeded(),e.show()}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",function(){e._setupPointerExitEventsIfNeeded(),clearTimeout(e._touchstartTimeout),e._touchstartTimeout=setTimeout(function(){return e.show()},500)}])),this._addListeners(this._passiveListeners))}},{key:"_setupPointerExitEventsIfNeeded",value:function(){var e,t=this;if(!this._pointerExitEventsInitialized){this._pointerExitEventsInitialized=!0;var n=[];if(this._platformSupportsMouseEvents())n.push(["mouseleave",function(){return t.hide()}],["wheel",function(e){return t._wheelListener(e)}]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();var i=function(){clearTimeout(t._touchstartTimeout),t.hide(t._defaultOptions.touchendHideDelay)};n.push(["touchend",i],["touchcancel",i])}this._addListeners(n),(e=this._passiveListeners).push.apply(e,n)}}},{key:"_addListeners",value:function(e){var t=this;e.forEach(function(e){var n=_(e,2);t._elementRef.nativeElement.addEventListener(n[0],n[1],xO)})}},{key:"_platformSupportsMouseEvents",value:function(){return!this._platform.IOS&&!this._platform.ANDROID}},{key:"_wheelListener",value:function(e){if(this._isTooltipVisible()){var t=this._document.elementFromPoint(e.clientX,e.clientY),n=this._elementRef.nativeElement;t===n||n.contains(t)||this.hide()}}},{key:"_disableNativeGesturesIfNecessary",value:function(){var e=this.touchGestures;if("off"!==e){var t=this._elementRef.nativeElement,n=t.style;("on"===e||"INPUT"!==t.nodeName&&"TEXTAREA"!==t.nodeName)&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),"on"!==e&&t.draggable||(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Dv),ps(Fu),ps(Yg),ps(bl),ps(Fc),ps(yg),ps(a_),ps(x_),ps(void 0),ps(Dg),ps(void 0),ps(yd))},e.\u0275dir=bt({type:e,inputs:{showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],position:["matTooltipPosition","position"],disabled:["matTooltipDisabled","disabled"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}}),e}(),YO=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o,u,l,c,d,h,f,p){var m;return s(this,n),(m=t.call(this,e,i,r,a,o,u,l,c,d,h,f,p))._tooltipComponent=AO,m}return n}(EO);return e.\u0275fac=function(t){return new(t||e)(ps(Dv),ps(Fu),ps(Yg),ps(bl),ps(Fc),ps(yg),ps(a_),ps(x_),ps(TO),ps(Dg,8),ps(OO,8),ps(yd))},e.\u0275dir=bt({type:e,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-tooltip-trigger"],exportAs:["matTooltip"],features:[Ko]}),e}(),PO=function(){var e=function(){function e(t){s(this,e),this._changeDetectorRef=t,this._visibility="initial",this._closeOnInteraction=!1,this._onHide=new z}return o(e,[{key:"show",value:function(e){var t=this;clearTimeout(this._hideTimeoutId),this._closeOnInteraction=!0,this._showTimeoutId=setTimeout(function(){t._visibility="visible",t._showTimeoutId=void 0,t._onShow(),t._markForCheck()},e)}},{key:"hide",value:function(e){var t=this;clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(function(){t._visibility="hidden",t._hideTimeoutId=void 0,t._markForCheck()},e)}},{key:"afterHidden",value:function(){return this._onHide}},{key:"isVisible",value:function(){return"visible"===this._visibility}},{key:"ngOnDestroy",value:function(){clearTimeout(this._showTimeoutId),clearTimeout(this._hideTimeoutId),this._onHide.complete()}},{key:"_animationStart",value:function(){this._closeOnInteraction=!1}},{key:"_animationDone",value:function(e){var t=e.toState;"hidden"!==t||this.isVisible()||this._onHide.next(),"visible"!==t&&"hidden"!==t||(this._closeOnInteraction=!0)}},{key:"_handleBodyInteraction",value:function(){this._closeOnInteraction&&this.hide(0)}},{key:"_markForCheck",value:function(){this._changeDetectorRef.markForCheck()}},{key:"_onShow",value:function(){}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(ll))},e.\u0275dir=bt({type:e}),e}(),AO=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i){var r;return s(this,n),(r=t.call(this,e))._breakpointObserver=i,r._isHandset=r._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)"),r}return n}(PO);return e.\u0275fac=function(t){return new(t||e)(ps(ll),ps(MO))},e.\u0275cmp=ft({type:e,selectors:[["mat-tooltip-component"]],hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(e,t){2&e&&zs("zoom","visible"===t._visibility?1:null)},features:[Ko],decls:4,vars:7,consts:[[1,"mat-tooltip",3,"ngClass"]],template:function(e,t){var n;1&e&&(vs(0,"div",0),xs("@state.start",function(){return t._animationStart()})("@state.done",function(e){return t._animationDone(e)}),Wl(1,"async"),ru(2),_s(),ru(3,"\n")),2&e&&(qs("mat-tooltip-handset",null==(n=Vl(1,5,t._isHandset))?null:n.matches),ms("ngClass",t.tooltipClass)("@state",t._visibility),Ya(2),au(t.message))},directives:[ah],pipes:[kh],styles:[".mat-tooltip-panel{pointer-events:none !important}.mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis}.cdk-high-contrast-active .mat-tooltip{outline:solid 1px}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}\n"],encapsulation:2,data:{animation:[CO.tooltipState]},changeDetection:0}),e}(),IO=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[DO],imports:[[Y_,Th,Iv,jw],jw,Ag]}),e}(),RO=function(e){function t(t,n,i,r,a,o,s,u,l,c,d,h,f,p){var m=e.call(this,r,i,a,o,s,u,l,c,d,h,f,p)||this;return m.translate=t,m.renderer=n,m.elementRef=i,m.tooltipClass="error-tooltip",m}return vf(t,e),Object.defineProperty(t.prototype,"appFormFieldError",{set:function(e){this.message=e?this.translate.instant(e):null,this.updateField()},enumerable:!1,configurable:!0}),t.prototype.updateField=function(){this.message?(this.renderer.addClass(this.elementRef.nativeElement,"red-field"),document.activeElement===this.elementRef.nativeElement&&this.show()):this.renderer.removeClass(this.elementRef.nativeElement,"red-field")},t.\u0275fac=function(e){return new(e||t)(ps(dM),ps(Nu),ps(Fu),ps(Dv),ps(Yg),ps(bl),ps(Fc),ps(yg),ps(a_),ps(x_),ps(TO),ps(Dg,8),ps(OO,8),ps(yd))},t.\u0275dir=bt({type:t,selectors:[["","appFormFieldError",""]],inputs:{appFormFieldError:"appFormFieldError"},features:[Ko]}),t}(YO),FO=function(){function e(e){this.el=e,e.nativeElement.autocomplete="new-password",e.nativeElement.readOnly=!0}return e.prototype.onFocus=function(){this.el.nativeElement.readOnly=!1},e.\u0275fac=function(t){return new(t||e)(ps(Fu))},e.\u0275dir=bt({type:e,selectors:[["","appDontSavePassword",""]],hostBindings:function(e,t){1&e&&xs("focus",function(){return t.onFocus()})}}),e}(),HO=function(e,t){return{"pl-0":e,"white-text":t}},jO=function(){function e(){this.noPadding=!1,this.pointDown=!0,this.text="",this.pressed=new Zl}return e.prototype.onClick=function(e){this.pressed.emit(e)},e.prototype.ngOnDestroy=function(){this.pressed.complete()},e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ft({type:e,selectors:[["app-arrow-link"]],inputs:{noPadding:"noPadding",pointDown:"pointDown",text:"text",whiteText:"whiteText"},outputs:{pressed:"pressed"},decls:7,vars:8,consts:[[1,"link",3,"ngClass","click"]],template:function(e,t){1&e&&(vs(0,"span",0),xs("click",function(e){return t.onClick(e)}),ru(1),Wl(2,"translate"),vs(3,"mat-icon"),ru(4),_s(),ru(5,"\n"),_s(),ru(6,"\n")),2&e&&(ms("ngClass",Rl(5,HO,t.noPadding,t.whiteText)),Ya(1),ou("\n ",Vl(2,3,t.text),"\n "),Ya(3),au(t.pointDown?"keyboard_arrow_down":"keyboard_arrow_up"))},directives:[ah,WC],pipes:[hM],styles:["span[_ngcontent-%COMP%]{padding-left:5px}span[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{padding:0;display:inline;vertical-align:middle;font-size:13px}"]}),e}(),NO=["temporalWalletCheck"];function BO(e,t){if(1&e&&(vs(0,"div",1),ru(1,"\n "),vs(2,"label",10),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),vs(6,"div",11),ru(7,"\n "),vs(8,"select",12),ru(9,"\n "),vs(10,"option",13),ru(11),Wl(12,"translate"),_s(),ru(13,"\n "),vs(14,"option",13),ru(15),Wl(16,"translate"),_s(),ru(17,"\n "),_s(),ru(18,"\n "),_s(),ru(19,"\n "),_s()),2&e){var n=Ys();Ya(3),au(Vl(4,6,"wallet.new.words-number-label")),Ya(5),ls("disabled",n.busy?"true":null),Ya(2),ms("ngValue",12),Ya(1),au(Vl(12,8,"wallet.new.12-words")),Ya(3),ms("ngValue",24),Ya(1),au(Vl(16,10,"wallet.new.24-words"))}}var WO=function(e,t){return{"-white-text":e,"element-disabled":t}};function VO(e,t){if(1&e){var n=Ms();vs(0,"span",14),ru(1,"\n "),vs(2,"span",15),xs("click",function(){return on(n),Ys().generateSeed(128)}),Wl(3,"translate"),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),vs(7,"span",16),ru(8,"|"),_s(),ru(9,"\n "),vs(10,"span",15),xs("click",function(){return on(n),Ys().generateSeed(256)}),Wl(11,"translate"),ru(12),Wl(13,"translate"),_s(),ru(14,"\n "),_s()}if(2&e){var i=Ys();ms("ngClass",Rl(13,WO,i.onboarding,i.busy)),Ya(2),ms("matTooltip",Vl(3,5,"wallet.new.generate-12-help")),Ya(2),ou("\n ",Vl(5,7,"wallet.new.12-words"),"\n "),Ya(6),ms("matTooltip",Vl(11,9,"wallet.new.generate-24-help")),Ya(2),ou("\n ",Vl(13,11,"wallet.new.24-words"),"\n ")}}var UO=function(e){return{"white-mat-spinner":e}};function zO(e,t){if(1&e&&(vs(0,"div",25),ys(1,"mat-spinner"),_s()),2&e){var n=Ys(2);ms("ngClass",Il(1,UO,n.onboarding))}}function qO(e,t){if(1&e&&(vs(0,"span",26),ru(1),_s()),2&e){var n=Ys(2);Ya(1),au(n.lastAssistedSeed)}}var GO=function(e){return{"transparent-text":e}};function KO(e,t){if(1&e&&(vs(0,"div",27),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(2);ms("ngClass",Il(4,GO,n.onboarding)),Ya(1),au(Vl(2,2,"wallet.new.seed.change-seed"))}}function JO(e,t){if(1&e&&(vs(0,"div",28),ru(1,"\n "),vs(2,"mat-icon",29),ru(3,"touch_app"),_s(),vs(4,"span",27),ru(5),Wl(6,"translate"),_s(),ru(7,"\n "),_s()),2&e){var n=Ys(2);Ya(4),ms("ngClass",Il(4,GO,n.onboarding)),Ya(1),au(Vl(6,2,"wallet.new.seed.enter-seed"))}}var ZO=function(e,t,n){return{"onboarding-version":e,"show-pointer":t,"element-disabled":n}},$O=function(e){return{"element-disabled":e}},XO=function(e){return{"-white-text":e}};function QO(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),vs(2,"div",17),xs("click",function(){return on(n),Ys().enterSeed()}),ru(3,"\n "),hs(4,zO,2,3,"div",18),ru(5,"\n "),hs(6,qO,2,1,"span",19),ru(7,"\n "),hs(8,KO,3,6,"div",20),ru(9,"\n "),hs(10,JO,8,6,"div",21),ru(11,"\n "),_s(),ru(12,"\n "),vs(13,"div",22),ru(14,"\n "),vs(15,"span",23),xs("click",function(){return on(n),Ys().changeSeedType()}),ru(16,"\n "),vs(17,"mat-icon",24),ru(18,"edit"),_s(),ru(19),Wl(20,"translate"),_s(),ru(21,"\n "),_s(),ru(22,"\n "),ws()}if(2&e){var i=Ys();Ya(2),ms("ngClass",Fl(11,ZO,i.onboarding,!i.create,i.busy)),Ya(2),ms("ngIf",i.checkingAssistedSeed),Ya(2),ms("ngIf",i.create||i.lastAssistedSeed),Ya(2),ms("ngIf",!i.create&&i.lastAssistedSeed),Ya(2),ms("ngIf",!i.create&&!i.lastAssistedSeed),Ya(3),ms("ngClass",Il(15,$O,i.busy)),Ya(2),ms("ngClass",Il(17,XO,i.onboarding)),Ya(2),ms("inline",!0),Ya(2),ou("\n ",Vl(20,9,"wallet.new.seed.use-custom"),"\n ")}}function eE(e,t){1&e&&(vs(0,"div",32),ys(1,"mat-spinner"),_s())}function tE(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),hs(2,eE,2,0,"div",30),ru(3,"\n "),vs(4,"textarea",31),xs("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(5,"\n "),vs(6,"div",22),ru(7,"\n "),vs(8,"span",23),xs("click",function(){return on(n),Ys().changeSeedType()}),ru(9,"\n "),vs(10,"mat-icon",24),ru(11,"format_list_numbered"),_s(),ru(12),Wl(13,"translate"),_s(),ru(14,"\n "),_s(),ru(15,"\n "),ws()}if(2&e){var i=Ys();Ya(2),ms("ngIf",i.checkingCustomSeed),Ya(2),ms("appFormFieldError",i.seed1ErrorMsg),ls("disabled",i.busy?"true":null),Ya(2),ms("ngClass",Il(9,$O,i.busy)),Ya(2),ms("ngClass",Il(11,XO,i.onboarding)),Ya(2),ms("inline",!0),Ya(2),ou("\n ",Vl(13,7,"wallet.new.seed.use-normal"),"\n ")}}var nE=function(e,t){return{"red-text":e,"white-text transparent-text":t}};function iE(e,t){if(1&e&&(vs(0,"p",33),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys();ms("ngClass",Rl(4,nE,!n.onboarding,n.onboarding)),Ya(1),ou("\n ",Vl(2,2,"wallet.new.seed-warning"),"\n ")}}function rE(e,t){if(1&e&&(vs(0,"div",28),ru(1,"\n "),vs(2,"mat-icon",29),ru(3,"touch_app"),_s(),vs(4,"span",27),ru(5),Wl(6,"translate"),_s(),ru(7,"\n "),_s()),2&e){var n=Ys(3);Ya(4),ms("ngClass",Il(4,GO,n.onboarding)),Ya(1),au(Vl(6,2,"wallet.new.seed.confirm-seed"))}}function aE(e,t){if(1&e&&(vs(0,"div",28),ru(1,"\n "),vs(2,"mat-icon",35),ru(3,"done"),_s(),ru(4," "),vs(5,"span",27),ru(6),Wl(7,"translate"),_s(),ru(8,"\n "),_s()),2&e){var n=Ys(3);Ya(5),ms("ngClass",Il(4,GO,n.onboarding)),Ya(1),au(Vl(7,2,"wallet.new.seed.confirmed-seed"))}}function oE(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),vs(2,"div",17),xs("click",function(){return on(n),Ys(2).confirmSeed()}),ru(3,"\n "),hs(4,rE,8,6,"div",21),ru(5,"\n "),hs(6,aE,9,6,"div",21),ru(7,"\n "),_s(),ru(8,"\n "),ws()}if(2&e){var i=Ys(2);Ya(2),ms("ngClass",Fl(3,ZO,i.onboarding,!i.assistedSeedConfirmed,i.busy)),Ya(2),ms("ngIf",!i.assistedSeedConfirmed),Ya(2),ms("ngIf",i.assistedSeedConfirmed)}}function sE(e,t){1&e&&(vs(0,"div",32),ys(1,"mat-spinner"),_s())}function uE(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),hs(2,sE,2,0,"div",30),ru(3,"\n "),vs(4,"textarea",36),xs("blur",function(){return on(n),Ys(2).validateForm()}),_s(),ru(5,"\n "),ws()}if(2&e){var i=Ys(2);Ya(2),ms("ngIf",i.checkingCustomSeed),Ya(2),ms("appFormFieldError",i.seed2ErrorMsg),ls("disabled",i.busy?"true":null)}}function lE(e,t){if(1&e&&(vs(0,"div",1),ru(1,"\n "),vs(2,"label",34),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),ru(6,"\n "),hs(7,oE,9,7,"ng-container",7),ru(8,"\n\n "),ru(9,"\n "),hs(10,uE,6,3,"ng-container",7),ru(11,"\n "),_s()),2&e){var n=Ys();Ya(3),au(Vl(4,3,"wallet.new.confirm-seed-label")),Ya(4),ms("ngIf",n.enterSeedWithAssistance),Ya(3),ms("ngIf",!n.enterSeedWithAssistance)}}function cE(e,t){if(1&e){var n=Ms();vs(0,"div",44),ru(1,"\n "),vs(2,"div",1),ru(3,"\n "),vs(4,"label",45),ru(5),Wl(6,"translate"),_s(),ru(7,"\n "),vs(8,"input",46),xs("blur",function(){return on(n),Ys(2).validateForm()}),_s(),ru(9,"\n "),_s(),ru(10,"\n "),_s()}if(2&e){var i=Ys(2);Ya(5),au(Vl(6,3,"password.password-label")),Ya(3),ms("appFormFieldError",i.password1ErrorMsg),ls("disabled",i.busy?"true":null)}}function dE(e,t){if(1&e){var n=Ms();vs(0,"div",44),ru(1,"\n "),vs(2,"div",1),ru(3,"\n "),vs(4,"label",47),ru(5),Wl(6,"translate"),_s(),ru(7,"\n "),vs(8,"input",48),xs("keydown.enter",function(){return on(n),Ys(2).requestCreation()})("blur",function(){return on(n),Ys(2).validateForm()}),_s(),ru(9,"\n "),_s(),ru(10,"\n "),_s()}if(2&e){var i=Ys(2);Ya(5),au(Vl(6,3,"password.confirm-password-label")),Ya(3),ms("appFormFieldError",i.password2ErrorMsg),ls("disabled",i.busy?"true":null)}}function hE(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),vs(2,"div"),ru(3,"\n "),ru(4,"\n "),vs(5,"mat-checkbox",37),xs("change",function(e){return on(n),Ys().setEncrypt(e)}),ru(6,"\n "),vs(7,"span",38),ys(8,"img",39),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),_s(),ru(12,"\n "),_s(),ru(13,"\n "),vs(14,"div",40),ru(15,"\n "),vs(16,"div",41),ru(17,"\n "),vs(18,"p",42),ru(19),Wl(20,"translate"),_s(),ru(21,"\n "),_s(),ru(22,"\n "),ru(23,"\n "),hs(24,cE,11,5,"div",43),ru(25,"\n "),hs(26,dE,11,5,"div",43),ru(27,"\n "),_s(),ru(28,"\n "),_s()}if(2&e){var i=Ys();Ya(5),ms("checked",!0)("ngClass",Il(10,$O,i.busy)),Ya(4),ou(" ",Vl(10,6,"wallet.new.encrypt-check"),""),Ya(10),au(Vl(20,8,"wallet.new.encrypt-warning")),Ya(5),ms("ngIf",i.encrypt),Ya(2),ms("ngIf",i.encrypt)}}var fE=function(e,t){return{"element-disabled":e,"-white-check":t}},pE=function(e,t){return{"-info":e,"white-text transparent-text":t}};function mE(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),vs(2,"mat-checkbox",50,51),xs("change",function(e){return on(n),Ys(2).setTemporal(e)}),ru(4,"\n "),vs(5,"span",38),ys(6,"img",52),ru(7),Wl(8,"translate"),_s(),ru(9,"\n "),_s(),ru(10,"\n "),vs(11,"div",40),ru(12,"\n "),vs(13,"div",41),ru(14,"\n "),vs(15,"p",27),ru(16),Wl(17,"translate"),_s(),ru(18,"\n "),_s(),ru(19,"\n "),_s(),ru(20,"\n "),_s()}if(2&e){var i=Ys(2);Ya(2),ms("checked",i.loadTemporarily)("ngClass",Rl(9,fE,i.busy,i.onboarding)),Ya(5),ou(" ",Vl(8,5,"wallet.new.temporal-check"),""),Ya(8),ms("ngClass",Rl(12,pE,!i.onboarding,i.onboarding)),Ya(1),au(Vl(17,7,"wallet.new.temporal-info"))}}function gE(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),vs(2,"div",1),ru(3,"\n "),vs(4,"app-arrow-link",49),xs("pressed",function(){return on(n),Ys().toggleAdvancedOptions()}),ru(5,"\n "),_s(),ru(6,"\n "),_s(),ru(7,"\n\n "),hs(8,mE,21,15,"div",7),ru(9,"\n "),_s()}if(2&e){var i=Ys();Ya(4),ms("pointDown",!i.showAdvancedOptions)("noPadding",!0)("whiteText",i.onboarding)("ngClass",Il(5,$O,i.busy)),Ya(4),ms("ngIf",i.showAdvancedOptions)}}function vE(e,t){if(1&e){var n=Ms();vs(0,"div",53),ru(1,"\n "),vs(2,"mat-icon"),ru(3,"error"),_s(),ru(4,"\n "),vs(5,"div"),ru(6,"\n "),vs(7,"div",54),ru(8),Wl(9,"translate"),_s(),ru(10,"\n "),vs(11,"div"),ru(12),Wl(13,"translate"),_s(),ru(14,"\n "),vs(15,"mat-checkbox",50,55),xs("change",function(e){return on(n),Ys().onCustomSeedAcceptance(e)}),ru(17),Wl(18,"translate"),_s(),ru(19,"\n "),_s(),ru(20,"\n"),_s()}if(2&e){var i=Ys();Ya(8),au(Vl(9,5,"wallet.new.unconventional-seed-title")),Ya(4),au(Vl(13,7,"wallet.new.unconventional-seed-text")),Ya(3),ms("checked",i.customSeedAccepted)("ngClass",Il(11,$O,i.busy)),Ya(2),ou("\n ",Vl(18,9,"wallet.new.unconventional-seed-check"),"\n ")}}var _E=function(){function e(e,t,n){this.apiService=e,this.dialog=t,this.msgBarService=n,this.busy=!1,this.createRequested=new Zl,this.enterSeedWithAssistance=!0,this.assistedSeedConfirmed=!1,this.customSeedIsNormal=!0,this.customSeedAccepted=!1,this.encrypt=!0,this.showAdvancedOptions=!1,this.loadTemporarily=!1,this.lastAssistedSeed="",this.numberOfAutogeneratedWords=0,this.checkingCustomSeed=!1,this.checkingAssistedSeed=!1,this.labelErrorMsg="",this.seed1ErrorMsg="",this.seed2ErrorMsg="",this.password1ErrorMsg="",this.password2ErrorMsg="",this.seed=new z}return e.prototype.ngOnInit=function(){this.onboarding?this.initForm(!1,null):this.initForm()},e.prototype.ngOnDestroy=function(){this.msgBarService.hide(),this.statusSubscription.unsubscribe(),this.seedValiditySubscription.unsubscribe(),this.createRequested.complete()},Object.defineProperty(e.prototype,"isValid",{get:function(){return this.form.valid&&!this.checkingCustomSeed&&(!this.enterSeedWithAssistance&&(this.customSeedIsNormal||this.customSeedAccepted)||this.create&&this.enterSeedWithAssistance&&this.assistedSeedConfirmed||!this.create&&this.enterSeedWithAssistance&&this.lastAssistedSeed.length>2)},enumerable:!1,configurable:!0}),e.prototype.onCustomSeedAcceptance=function(e){this.customSeedAccepted=e.checked},e.prototype.setEncrypt=function(e){this.encrypt=e.checked,this.form.updateValueAndValidity()},e.prototype.toggleAdvancedOptions=function(){!0===this.showAdvancedOptions&&this.loadTemporarily?this.msgBarService.showError("wallet.new.close-advanced-error"):this.showAdvancedOptions=!this.showAdvancedOptions},e.prototype.setTemporal=function(e){var t=this;e.checked?(this.temporalWalletCheck.checked=!1,vO.openDialog(this.dialog,{text:"wallet.new.temporal-warning",headerText:"common.warning-title",defaultButtons:gO.ContinueCancel,redTitle:!0}).afterClosed().subscribe(function(e){e&&(t.loadTemporarily=!0,t.form.updateValueAndValidity())})):(this.loadTemporarily=!1,this.form.updateValueAndValidity())},e.prototype.getData=function(){return{creatingNewWallet:this.create,label:this.form.value.label,seed:this.enterSeedWithAssistance?this.lastAssistedSeed:this.form.value.seed,password:!this.onboarding&&this.encrypt?this.form.value.password:null,enterSeedWithAssistance:this.enterSeedWithAssistance,lastAssistedSeed:this.lastAssistedSeed,lastCustomSeed:this.form.value.seed,numberOfWords:this.create?this.numberOfAutogeneratedWords:this.form.value.number_of_words,customSeedIsNormal:this.customSeedIsNormal,advancedOptionsShown:this.showAdvancedOptions,loadTemporarily:this.loadTemporarily}},e.prototype.changeSeedType=function(){var e=this;this.msgBarService.hide(),this.enterSeedWithAssistance?vO.openDialog(this.dialog,{text:this.create?"wallet.new.seed.custom-seed-warning-text":"wallet.new.seed.custom-seed-warning-text-recovering",headerText:"common.warning-title",checkboxText:this.create?"common.generic-confirmation-check":null,defaultButtons:gO.ContinueCancel,redTitle:!0}).afterClosed().subscribe(function(t){t&&(e.enterSeedWithAssistance=!1,e.removeConfirmations())}):(this.enterSeedWithAssistance=!0,this.removeConfirmations())},e.prototype.enterSeed=function(){this.create||(this.partialSeed=[],this.askForWord(0),this.msgBarService.hide())},e.prototype.confirmSeed=function(){this.assistedSeedConfirmed||(this.partialSeed=[],this.askForWord(0),this.msgBarService.hide())},e.prototype.askForWord=function(e){var t=this;return _L.openDialog(this.dialog,{reason:this.create?vL.CreatingSoftwareWallet:vL.RecoveringSoftwareWallet,wordNumber:e+1}).afterClosed().subscribe(function(n){if(n){if(t.create&&n!==t.lastAssistedSeed.split(" ")[e])return void t.msgBarService.showError("wallet.new.seed.incorrect-word-error");if(t.partialSeed[e]=n,e+=1,t.create&&e0&&(!e.create||e.seedsAreEqual())?(e.checkingCustomSeed=!0,bm(0).pipe(EM(500),de(function(){return e.apiService.post("wallet/seed/verify",{seed:t},{useV2:!0})}))):bm(0)})).subscribe(function(t){e.customSeedIsNormal=0!==t,e.checkingCustomSeed=!1},function(t){e.checkingCustomSeed=!1,(t=VM(t))&&t.originalError&&422===t.originalError.status?e.customSeedIsNormal=!1:(e.customSeedIsNormal=!0,e.msgBarService.showWarning("wallet.new.seed-checking-error")),e.subscribeToSeedValidation()})},e.prototype.seedsAreEqual=function(){return this.form&&this.form.get("seed")&&this.form.get("confirm_seed")?this.form.get("seed").value===this.form.get("confirm_seed").value:(this.customSeedIsNormal=!0,!1)},e.prototype.validateForm=function(){this.labelErrorMsg="",this.seed1ErrorMsg="",this.seed2ErrorMsg="",this.password1ErrorMsg="",this.password2ErrorMsg="";var e=!0;if(this.form.get("label").value||(e=!1,this.form.get("label").touched&&(this.labelErrorMsg="wallet.new.name-error-info")),!this.enterSeedWithAssistance){var t=!0;this.form.get("seed").value||(e=!1,t=!1,this.customSeedIsNormal=!0,this.form.get("seed").touched&&(this.seed1ErrorMsg="wallet.new.seed-error-info")),this.create&&(this.form.get("confirm_seed").value||(e=!1,t=!1,this.customSeedIsNormal=!0,this.form.get("confirm_seed").touched&&(this.seed2ErrorMsg="wallet.new.seed-error-info")),t&&(this.seed2ErrorMsg||this.seedsAreEqual()||(e=!1,this.customSeedIsNormal=!0,this.seed2ErrorMsg="wallet.new.confirm-seed-error-info")))}if(this.encrypt&&!this.loadTemporarily&&!this.onboarding){var n=!0;this.form.get("password").value||(e=!1,n=!1,this.form.get("password").touched&&(this.password1ErrorMsg="password.password-error-info")),this.form.get("confirm_password").value||(e=!1,n=!1,this.form.get("confirm_password").touched&&(this.password2ErrorMsg="password.password-error-info")),n&&(this.password2ErrorMsg||this.form.get("password").value===this.form.get("confirm_password").value||(e=!1,this.password2ErrorMsg="password.confirm-error-info"))}return e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(HS),ps(Pk),ps(dL))},e.\u0275cmp=ft({type:e,selectors:[["app-create-wallet-form"]],viewQuery:function(e,t){var n;1&e&&lc(NO,5),2&e&&uc(n=dc())&&(t.temporalWalletCheck=n.first)},inputs:{create:"create",onboarding:"onboarding",busy:"busy"},outputs:{createRequested:"createRequested"},decls:48,vars:18,consts:[[1,"main-container",3,"formGroup"],[1,"form-field"],["for","label"],["formControlName","label","id","label",3,"appFormFieldError","blur"],["class","form-field",4,"ngIf"],["for","seed"],["class","generators",3,"ngClass",4,"ngIf"],[4,"ngIf"],["class","disclaimer-box",3,"ngClass",4,"ngIf"],["class","alert-box",4,"ngIf"],["for","number_of_words"],[1,"-select"],["formControlName","number_of_words","id","number_of_words"],[3,"ngValue"],[1,"generators",3,"ngClass"],[1,"link",3,"matTooltip","click"],[1,"divider"],[1,"dashed-border","non-editable-field",3,"ngClass","click"],["class","seed-spinner assisted-seed-spinner",3,"ngClass",4,"ngIf"],["class","normal-seed-field",4,"ngIf"],[3,"ngClass",4,"ngIf"],["class","text-with-icon-container",4,"ngIf"],[1,"seed-type-button",3,"ngClass"],[1,"link",3,"ngClass","click"],[3,"inline"],[1,"seed-spinner","assisted-seed-spinner",3,"ngClass"],[1,"normal-seed-field"],[3,"ngClass"],[1,"text-with-icon-container"],[1,"yellow-text"],["class","seed-spinner",4,"ngIf"],["formControlName","seed","id","seed","rows","2",3,"appFormFieldError","blur"],[1,"seed-spinner"],[1,"disclaimer-box",3,"ngClass"],["for","confirm_seed"],[1,"green-text"],["formControlName","confirm_seed","id","confirm_seed","rows","2",3,"appFormFieldError","blur"],["type","checkbox","id","encrypt",1,"-check",3,"checked","ngClass","change"],[1,"img-label-container"],["src","assets/img/lock-gold.png"],[1,"row","-passwords"],[1,"col-md-12"],[1,"-info"],["class","col-md-6",4,"ngIf"],[1,"col-md-6"],["for","password"],["formControlName","password","id","password","type","password","appDontSavePassword","",3,"appFormFieldError","blur"],["for","confirm_password"],["formControlName","confirm_password","id","confirm_password","type","password","appDontSavePassword","",3,"appFormFieldError","keydown.enter","blur"],["text","wallet.new.advanced-options-link",3,"pointDown","noPadding","whiteText","ngClass","pressed"],["type","checkbox",1,"-check",3,"checked","ngClass","change"],["temporalWalletCheck",""],["src","assets/img/temporal-gold.png"],[1,"alert-box"],[1,"title"],["seedCheck",""]],template:function(e,t){1&e&&(vs(0,"div",0),ru(1,"\n "),ru(2,"\n "),vs(3,"div",1),ru(4,"\n "),vs(5,"label",2),ru(6),Wl(7,"translate"),_s(),ru(8,"\n "),vs(9,"input",3),xs("blur",function(){return t.validateForm()}),_s(),ru(10,"\n "),_s(),ru(11,"\n "),ru(12,"\n "),hs(13,BO,20,12,"div",4),ru(14,"\n "),vs(15,"div",1),ru(16,"\n "),ru(17,"\n "),vs(18,"label",5),ru(19,"\n "),vs(20,"span"),ru(21),Wl(22,"translate"),_s(),ru(23,"\n "),hs(24,VO,15,16,"span",6),ru(25,"\n "),_s(),ru(26,"\n\n "),ru(27,"\n "),hs(28,QO,23,19,"ng-container",7),ru(29,"\n\n "),ru(30,"\n "),hs(31,tE,16,13,"ng-container",7),ru(32,"\n\n "),hs(33,iE,3,7,"p",8),ru(34,"\n "),_s(),ru(35,"\n "),hs(36,lE,12,5,"div",4),ru(37,"\n "),ru(38,"\n "),hs(39,hE,29,12,"div",7),ru(40,"\n\n "),ru(41,"\n "),hs(42,gE,10,7,"div",7),ru(43,"\n"),_s(),ru(44,"\n\n"),ru(45,"\n"),hs(46,vE,21,13,"div",9),ru(47,"\n")),2&e&&(ms("formGroup",t.form),Ya(6),au(Vl(7,14,"wallet.new.name-label")),Ya(3),ms("appFormFieldError",t.labelErrorMsg),ls("disabled",t.busy?"true":null),Ya(4),ms("ngIf",!t.create&&t.enterSeedWithAssistance),Ya(8),au(Vl(22,16,"wallet.new.seed-label")),Ya(3),ms("ngIf",t.create),Ya(4),ms("ngIf",t.enterSeedWithAssistance),Ya(3),ms("ngIf",!t.enterSeedWithAssistance),Ya(2),ms("ngIf",t.create),Ya(3),ms("ngIf",t.create),Ya(3),ms("ngIf",!t.onboarding&&!t.loadTemporarily),Ya(3),ms("ngIf",!t.create),Ya(4),ms("ngIf",t.form.valid&&!t.customSeedIsNormal&&!t.checkingCustomSeed&&!t.enterSeedWithAssistance))},directives:[ap,jp,Lf,rp,qp,RO,lh,Jp,Zp,em,ah,YO,WC,MM,lO,FO,jO],pipes:[hM],styles:[".main-container[_ngcontent-%COMP%]{font-size:12px}.dashed-border[_ngcontent-%COMP%]{border:2px dashed rgba(30,34,39,.05)}.show-pointer[_ngcontent-%COMP%]{cursor:pointer}.non-editable-field[_ngcontent-%COMP%]{text-align:center;padding:15px;border-radius:6px;color:#1e2227}.non-editable-field[_ngcontent-%COMP%] .text-with-icon-container[_ngcontent-%COMP%]{display:inline-flex;align-items:center}.non-editable-field[_ngcontent-%COMP%] .text-with-icon-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:5px;opacity:1}.normal-seed-field[_ngcontent-%COMP%]{font-size:14px}.seed-type-button[_ngcontent-%COMP%], .seed-type-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.onboarding-version[_ngcontent-%COMP%]{border:2px dashed hsla(0,0%,100%,.25);color:#fafafa}.transparent-text[_ngcontent-%COMP%]{opacity:.75}.disclaimer-box[_ngcontent-%COMP%]{padding:0 10px;line-height:1.5}label[for=seed][_ngcontent-%COMP%]{display:flex}label[for=seed][_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:last-child{flex:1}label[for=seed][_ngcontent-%COMP%] .generators[_ngcontent-%COMP%]{text-align:right}label[for=seed][_ngcontent-%COMP%] .generators[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{padding:0 5px;color:#1e2227}.-white-text[_ngcontent-%COMP%], .-white-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#fafafa!important}.-passwords[_ngcontent-%COMP%]{margin-left:24px}.-passwords[_ngcontent-%COMP%] .-info[_ngcontent-%COMP%]{margin:5px 0 15px;color:rgba(30,34,39,.5);line-height:1.5}.seed-spinner[_ngcontent-%COMP%]{height:0;position:relative;top:2px;left:2px}.seed-spinner[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{position:absolute;height:10px!important;width:10px!important}.seed-spinner[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] svg{height:10px!important;width:10px!important}.white-mat-spinner[_ngcontent-%COMP%] svg circle{stroke:#fafafa}.assisted-seed-spinner[_ngcontent-%COMP%]{top:-14px!important;left:-14px!important}.-white-check[_ngcontent-%COMP%] .mat-checkbox-checkmark-path{stroke:#fafafa!important}"]}),e}(),yE=["formControl"],bE=["createButton"],wE=["cancelButton"],kE=function(){function e(e,t,n,i,r,a,o){var s=this;this.data=e,this.dialogRef=t,this.dialog=n,this.msgBarService=i,this.walletsAndAddressesService=r,this.changeDetector=a,this.disableDismiss=!1,this.busy=!1,this.synchronized=!0,this.blockchainSubscription=o.progress.subscribe(function(e){return s.synchronized=e.synchronized})}return e.openDialog=function(t,n){var i=new wk;return i.data=n,i.autoFocus=!0,i.width=jM.mediumModalWidth,t.open(e,i)},e.prototype.ngOnDestroy=function(){this.blockchainSubscription.unsubscribe(),this.msgBarService.hide()},e.prototype.closePopup=function(){this.dialogRef.close()},e.prototype.checkAndCreateWallet=function(){var e=this;this.formControl.isValid&&!this.busy&&(this.msgBarService.hide(),this.synchronized||this.data.create?this.continueCreating():vO.openDialog(this.dialog,{headerText:"common.warning-title",text:"wallet.new.synchronizing-warning-text",defaultButtons:gO.ContinueCancel,redTitle:!0}).afterClosed().subscribe(function(t){t&&e.continueCreating()}),this.changeDetector.detectChanges())},e.prototype.continueCreating=function(){var e=this;this.busy=!0;var t=this.formControl.getData();this.createButton.resetState(),this.createButton.setLoading(),this.cancelButton.setDisabled(),this.disableDismiss=!0,this.walletsAndAddressesService.createSoftwareWallet(t.loadTemporarily,t.label,t.seed,t.password).subscribe(function(){e.busy=!1,setTimeout(function(){return e.msgBarService.showDone("wallet.new.wallet-created")}),e.dialogRef.close()},function(t){e.busy=!1,e.msgBarService.showError(t),e.createButton.resetState(),e.cancelButton.setEnabled(),e.disableDismiss=!1})},e.\u0275fac=function(t){return new(t||e)(ps(Tk),ps(Lk),ps(Pk),ps(dL),ps(AL),ps(ll),ps(yO))},e.\u0275cmp=ft({type:e,selectors:[["app-create-wallet"]],viewQuery:function(e,t){if(1&e&&(lc(yE,5),lc(bE,5),lc(wE,5)),2&e){var n=void 0;uc(n=dc())&&(t.formControl=n.first),uc(n=dc())&&(t.createButton=n.first),uc(n=dc())&&(t.cancelButton=n.first)}},decls:22,vars:15,consts:[[3,"headline","dialog","disableDismiss"],[3,"create","onboarding","busy","createRequested"],["formControl",""],[1,"-buttons"],[3,"action"],["cancelButton",""],[1,"primary-button",3,"disabled","action"],["createButton",""]],template:function(e,t){if(1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),vs(4,"app-create-wallet-form",1,2),xs("createRequested",function(){return t.checkAndCreateWallet()}),_s(),ru(6,"\n "),ru(7,"\n "),vs(8,"div",3),ru(9,"\n "),vs(10,"app-button",4,5),xs("action",function(){return t.closePopup()}),ru(12),Wl(13,"translate"),_s(),ru(14,"\n "),vs(15,"app-button",6,7),xs("action",function(){return t.checkAndCreateWallet()}),ru(17),Wl(18,"translate"),_s(),ru(19,"\n "),_s(),ru(20,"\n"),_s(),ru(21,"\n")),2&e){var n=fs(5);ms("headline",Vl(1,9,"wallet.new."+(t.data.create?"create":"load")+"-title"))("dialog",t.dialogRef)("disableDismiss",t.disableDismiss),Ya(4),ms("create",t.data.create)("onboarding",!1)("busy",t.busy),Ya(8),ou("\n ",Vl(13,11,"common.cancel-button"),"\n "),Ya(3),ms("disabled",!n.isValid),Ya(2),ou("\n ",Vl(18,13,"common."+(t.data.create?"create":"load")+"-button"),"\n ")}},directives:[jk,_E,ZC],pipes:[hM],styles:[""]}),e}();function ME(e,t){if(1&e){var n=Ms();vs(0,"div",7),ru(1,"\n "),vs(2,"mat-checkbox",8),xs("change",function(e){return on(n),Ys(2).setDeleteFromList(e)}),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}if(2&e){var i=Ys(2);Ya(2),ms("checked",i.deleteFromList),Ya(1),ou("",Vl(4,2,"hardware-wallet.wipe.confirm-delete-check"),"\n ")}}function SE(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),ys(2,"app-hw-message",2),Wl(3,"translate"),ru(4,"\n\n "),hs(5,ME,6,4,"div",3),ru(6,"\n\n "),vs(7,"div",4),ru(8,"\n "),vs(9,"app-button",5),xs("action",function(){return on(n),Ys().closeModal()}),ru(10),Wl(11,"translate"),_s(),ru(12,"\n "),vs(13,"app-button",6),xs("action",function(){return on(n),Ys().requestWipe()}),ru(14),Wl(15,"translate"),_s(),ru(16,"\n "),_s(),ru(17,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("text",Vl(3,5,"hardware-wallet.wipe.warning"))("icon",i.msgIcons.Warning),Ya(3),ms("ngIf",i.showDeleteFromList),Ya(5),ou("\n ",Vl(11,7,"common.cancel-button"),"\n "),Ya(4),ou("\n ",Vl(15,9,"common.continue-button"),"\n ")}}function CE(e,t){if(1&e&&(ys(0,"app-hw-message",2),Wl(1,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,2,"hardware-wallet.general.confirm"))("icon",n.msgIcons.Confirm)}}function LE(e,t){if(1&e&&(ys(0,"app-hw-message",2),Wl(1,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,2,n.result.text))("icon",n.result.icon)}}function xE(e,t){if(1&e){var n=Ms();vs(0,"div",4),ru(1,"\n "),vs(2,"app-button",6,11),xs("action",function(){return on(n),Ys(2).closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}2&e&&(Ya(4),ou("\n ",Vl(5,1,"common.close-button"),"\n "))}function TE(e,t){if(1&e&&(vs(0,"div"),ru(1,"\n "),ru(2,"\n "),hs(3,CE,2,4,"app-hw-message",9),ru(4,"\n\n "),ru(5,"\n "),hs(6,LE,2,4,"app-hw-message",9),ru(7,"\n\n "),ru(8,"\n "),hs(9,xE,7,3,"div",10),ru(10,"\n "),_s()),2&e){var n=Ys();Ya(3),ms("ngIf",n.currentState===n.states.Processing),Ya(3),ms("ngIf",n.currentState===n.states.ShowingResult),Ya(3),ms("ngIf",n.currentState!==n.states.Processing)}}var DE=function(e){function t(t,n,i,r){var a=e.call(this,i,n)||this;return a.data=t,a.dialogRef=n,a.hwWalletService=i,a.walletsAndAddressesService=r,a.showDeleteFromList=!0,a.deleteFromList=!0,t.wallet||(a.showDeleteFromList=!1,a.deleteFromList=!1),a}return vf(t,e),t.prototype.setDeleteFromList=function(e){this.deleteFromList=e.checked},t.prototype.requestWipe=function(){var e=this;this.currentState=this.states.Processing,this.operationSubscription=this.hwWalletService.wipe().subscribe(function(){e.showResult({text:"hardware-wallet.general.completed",icon:e.msgIcons.Success}),e.data.requestOptionsComponentRefresh(),e.deleteFromList&&e.walletsAndAddressesService.deleteHardwareWallet(e.data.wallet.id)},function(t){return e.processHwOperationError(t)})},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(gC),ps(AL))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-wipe-dialog"]],features:[Ko],decls:9,vars:7,consts:[[3,"headline","dialog","disableDismiss"],[4,"ngIf"],[3,"text","icon"],["class","-check-container",4,"ngIf"],[1,"-buttons"],[3,"action"],[1,"primary-button",3,"action"],[1,"-check-container"],["type","checkbox",1,"-check",3,"checked","change"],[3,"text","icon",4,"ngIf"],["class","-buttons",4,"ngIf"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,SE,18,11,"div",1),ru(5,"\n\n "),hs(6,TE,11,3,"div",1),ru(7,"\n"),_s(),ru(8,"\n")),2&e&&(ms("headline",Vl(1,5,"hardware-wallet.options.wipe"))("dialog",t.dialogRef)("disableDismiss",t.currentState===t.states.Processing),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(2),ms("ngIf",t.currentState!==t.states.Initial))},directives:[jk,lh,oC,ZC,lO],pipes:[hM],styles:[""]}),t}(yC),OE=function(){function e(e,t){this.walletsAndAddressesService=e,this.apiService=t}return e.prototype.renameWallet=function(e,t){var n=this;return this.apiService.post("wallet/update",{id:e.id,label:t}).pipe(K(function(){e.label=t,n.walletsAndAddressesService.informValuesUpdated(e)}))},e.prototype.toggleEncryption=function(e,t){var n=this;return this.apiService.post("wallet/"+(e.encrypted?"decrypt":"encrypt"),{id:e.id,password:t}).pipe(K(function(t){e.encrypted=t.meta.encrypted,n.walletsAndAddressesService.informValuesUpdated(e)}))},e.prototype.resetPassword=function(e,t,n){var i=this,r=new Object;return r.id=e.id,r.seed=t,n&&(r.password=n),this.apiService.post("wallet/recover",r,{useV2:!0}).pipe(K(function(t){e.encrypted=t.data.meta.encrypted,i.walletsAndAddressesService.informValuesUpdated(e)}))},e.prototype.getWalletSeed=function(e,t){return this.apiService.post("wallet/seed",{id:e.id,password:t}).pipe(K(function(e){return e.seed}))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(AL),Bi(HS))}}),e}(),EE=function(e){return e.NeedsBackup="NeedsBackup",e.NeedsPin="NeedsPin",e.FirmwareVersionNotVerified="FirmwareVersionNotVerified",e.OutdatedFirmware="OutdatedFirmware",e}({}),YE=function(){function e(e,t,n){this.walletsAndAddressesService=e,this.hwWalletService=t,this.http=n}return e.prototype.getFeaturesAndUpdateData=function(e){var t,n=this;return!e||e.isHardware?this.http.get(jM.urlForHwWalletVersionChecking,{responseType:"text"}).pipe(qM(function(){return bm(null)}),ue(function(e){return t=e||null,n.hwWalletService.getFeatures()}),K(function(i){var r=!1,a=!1;if(t){var o=(t=t.trim()).split(".");if(3===o.length){r=!0;var s=o.map(function(e){return Number.parseInt(e.replace(/\D/g,""),10)}),u=i.rawResponse.fw_major,l=i.rawResponse.fw_minor;(u>s[0]||u===s[0]&&(l>s[1]||l===s[1]&&i.rawResponse.fw_patch>=s[2]))&&(a=!0)}}var c=[],d=!1;i.rawResponse.needs_backup&&(c.push(EE.NeedsBackup),d=!0),i.rawResponse.pin_protection||(c.push(EE.NeedsPin),d=!0),r?a||(c.push(EE.OutdatedFirmware),d=!0):c.push(EE.FirmwareVersionNotVerified);var h=!1;if(e){var f=!1,p=i.rawResponse.label?i.rawResponse.label:i.rawResponse.deviceId?i.rawResponse.deviceId:i.rawResponse.device_id;e.label!==p&&(e.label=p,h=!0,f=!0),e.hasHwSecurityWarnings!==d&&(e.hasHwSecurityWarnings=d,f=!0),f&&n.walletsAndAddressesService.informValuesUpdated(e)}return{features:i.rawResponse,securityWarnings:c,walletNameUpdated:h}})):null},e.prototype.confirmAddress=function(e,t){var n=this;return this.hwWalletService.checkIfCorrectHwConnected(e.id).pipe(ue(function(){return n.hwWalletService.confirmAddress(t)}),K(function(){e.addresses[t].confirmed=!0,n.walletsAndAddressesService.informValuesUpdated(e)}))},e.prototype.changeLabel=function(e,t){var n=this;return this.hwWalletService.checkIfCorrectHwConnected(e.id).pipe(ue(function(){return n.hwWalletService.changeLabel(t)}),K(function(){e.label=t,n.walletsAndAddressesService.informValuesUpdated(e)}))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(AL),Bi(gC),Bi(MS))}}),e}(),PE=["button"];function AE(e,t){1&e&&(vs(0,"div"),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),ou("\n ",Vl(2,1,"hardware-wallet.added.characters-warning"),"\n "))}var IE=function(e){return{"modal-form-container":e}};function RE(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),hs(2,AE,3,3,"div",1),ru(3,"\n "),vs(4,"div",3),ru(5,"\n "),ru(6,"\n "),vs(7,"div",4),ru(8,"\n "),vs(9,"label",5),ru(10),Wl(11,"translate"),_s(),ru(12,"\n "),vs(13,"input",6),xs("keydown.enter",function(){return on(n),Ys().rename()})("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(14,"\n "),_s(),ru(15,"\n "),_s(),ru(16,"\n "),ru(17,"\n "),vs(18,"div",7),ru(19,"\n "),vs(20,"app-button",8),xs("action",function(){return on(n),Ys().closePopup()}),ru(21),Wl(22,"translate"),_s(),ru(23,"\n "),vs(24,"app-button",9,10),xs("action",function(){return on(n),Ys().rename()}),ru(26),Wl(27,"translate"),_s(),ru(28,"\n "),_s(),ru(29,"\n "),ws()}if(2&e){var i=fs(25),r=Ys();Ya(2),ms("ngIf",r.data.wallet.isHardware),Ya(2),ms("ngClass",Il(17,IE,r.data.wallet.isHardware))("formGroup",r.form),Ya(6),au(Vl(11,11,"wallet.rename.name-label")),Ya(3),ms("maxlength",r.data.wallet.isHardware?r.maxHwWalletLabelLength:null)("appFormFieldError",r.inputErrorMsg),ls("disabled",r.working?"true":null),Ya(7),ms("disabled",i&&i.isLoading()),Ya(1),ou("\n ",Vl(22,13,"common.cancel-button"),"\n "),Ya(3),ms("disabled",!r.form.valid),Ya(2),ou("\n ",Vl(27,15,"wallet.rename.rename-button"),"\n ")}}function FE(e,t){if(1&e&&(ys(0,"app-hw-message",11),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,"hardware-wallet.general.confirm"))("icon",n.msgIcons.Confirm)}}var HE=function(e){return e.Initial="Initial",e.WaitingForConfirmation="WaitingForConfirmation",e}({}),jE=function(){return function(){}}(),NE=function(){return function(){}}(),BE=function(){function e(e,t,n,i,r,a,o,s){this.dialogRef=e,this.data=t,this.formBuilder=n,this.hwWalletService=i,this.msgBarService=r,this.softwareWalletService=a,this.hardwareWalletService=o,this.changeDetector=s,this.currentState=HE.Initial,this.states=HE,this.msgIcons=aC,this.maxHwWalletLabelLength=gC.maxLabelLength,this.working=!1,this.inputErrorMsg=""}return e.openDialog=function(t,n,i){var r=new wk;return r.data=n,r.autoFocus=!0,r.width=i?"400px":jM.mediumModalWidth,t.open(e,r)},e.prototype.ngOnInit=function(){var e=this;this.data.newName?this.finishRenaming(this.data.newName):(this.form=this.formBuilder.group({label:[this.data.wallet.label]}),this.form.setValidators(this.validateForm.bind(this))),this.data.wallet.isHardware&&(this.hwConnectionSubscription=this.hwWalletService.walletConnectedAsyncEvent.subscribe(function(t){t||e.closePopup()}))},e.prototype.ngOnDestroy=function(){this.msgBarService.hide(),this.hwConnectionSubscription&&this.hwConnectionSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()},e.prototype.closePopup=function(){this.dialogRef.close()},e.prototype.rename=function(){this.form.valid&&!this.button.isLoading()&&(this.msgBarService.hide(),this.button.setLoading(),this.finishRenaming(this.form.value.label),this.changeDetector.detectChanges())},e.prototype.finishRenaming=function(e){var t=this;this.working=!0,this.data.wallet.isHardware?(this.currentState=HE.WaitingForConfirmation,this.operationSubscription=this.hardwareWalletService.changeLabel(this.data.wallet,e).subscribe(function(){t.working=!1,t.dialogRef.close(e),t.data.newName||setTimeout(function(){return t.msgBarService.showDone("common.changes-made")})},function(e){if(t.working=!1,t.data.newName){var n=new NE;n.errorMsg=VM(e).translatableErrorMsg,t.dialogRef.close(n)}else t.msgBarService.showError(e),t.currentState=HE.Initial,t.button&&t.button.resetState()})):this.operationSubscription=this.softwareWalletService.renameWallet(this.data.wallet,e).subscribe(function(){t.working=!1,t.dialogRef.close(e),setTimeout(function(){return t.msgBarService.showDone("common.changes-made")})},function(e){t.working=!1,t.msgBarService.showError(e),t.button&&t.button.resetState()})},e.prototype.validateForm=function(){this.inputErrorMsg="";var e=!0;return this.form.get("label").value&&0!==this.form.get("label").value.trim().length||(e=!1,this.form.get("label").touched&&(this.inputErrorMsg="wallet.rename.label-error-info")),e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(Lk),ps(Tk),ps(fm),ps(gC),ps(dL),ps(OE),ps(YE),ps(ll))},e.\u0275cmp=ft({type:e,selectors:[["app-change-name"]],viewQuery:function(e,t){var n;1&e&&lc(PE,5),2&e&&uc(n=dc())&&(t.button=n.first)},decls:10,vars:7,consts:[[3,"headline","dialog","disableDismiss"],[4,"ngIf"],[3,"text","icon",4,"ngIf"],[3,"ngClass","formGroup"],[1,"form-field"],["for","label"],["formControlName","label","id","label",3,"maxlength","appFormFieldError","keydown.enter","blur"],[1,"-buttons"],[3,"disabled","action"],[1,"primary-button",3,"disabled","action"],["button",""],[3,"text","icon"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,RE,30,19,"ng-container",1),ru(5,"\n\n "),ru(6,"\n "),hs(7,FE,2,4,"app-hw-message",2),ru(8,"\n"),_s(),ru(9,"\n")),2&e&&(ms("headline",Vl(1,5,"wallet.rename.title"))("dialog",t.dialogRef)("disableDismiss",t.button&&t.button.isLoading()||t.currentState===t.states.WaitingForConfirmation),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(3),ms("ngIf",t.currentState===t.states.WaitingForConfirmation))},directives:[jk,lh,ah,ap,jp,Lf,rp,qp,lm,RO,ZC,oC],pipes:[hM],styles:[""]}),e}(),WE=["input"];function VE(e,t){if(1&e&&(ys(0,"app-hw-message",4),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,"hardware-wallet.added.configuring"))("icon",n.msgIcons.Spinner)}}function UE(e,t){if(1&e&&(ys(0,"app-hw-message",4),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,n.result.text))("icon",n.result.icon)}}function zE(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),ys(2,"app-hw-message",5),Wl(3,"translate"),ru(4,"\n "),vs(5,"div",6),ru(6),Wl(7,"translate"),_s(),ru(8,"\n "),vs(9,"div",7),ru(10,"\n "),vs(11,"div",8),ru(12,"\n "),vs(13,"input",9,10),xs("keydown.enter",function(){return on(n),Ys().saveNameAndCloseModal()})("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(15,"\n "),_s(),ru(16,"\n "),_s(),ru(17,"\n "),vs(18,"div",11),ru(19),Wl(20,"translate"),_s(),ru(21,"\n \n "),vs(22,"div"),ru(23),Wl(24,"translate"),_s(),ru(25,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("upperBigText",Vl(3,8,"hardware-wallet.added.done"))("icon",i.msgIcons.Success),Ya(4),au(Vl(7,10,"hardware-wallet.added.added1")),Ya(3),ms("formGroup",i.form),Ya(4),ms("maxlength",i.maxHwWalletLabelLength)("appFormFieldError",i.inputErrorMsg),Ya(6),au(Vl(20,12,"hardware-wallet.added.characters-warning")),Ya(4),au(Vl(24,14,"hardware-wallet.added.added2"))}}function qE(e,t){if(1&e){var n=Ms();vs(0,"div",12),ru(1,"\n "),vs(2,"app-button",13,14),xs("action",function(){on(n);var e=Ys();return e.currentState===e.states.Finished?e.saveNameAndCloseModal():e.closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("disabled",i.currentState===i.states.Finished&&!i.form.valid),Ya(2),ou("\n ",Vl(5,2,i.currentState===i.states.Finished?"common.continue-button":"common.close-button"),"\n ")}}var GE=function(e){function t(t,n,i,r,a,o,s,u){var l=e.call(this,i,n)||this;return l.data=t,l.dialogRef=n,l.formBuilder=r,l.dialog=a,l.msgBarService=o,l.walletsAndAddressesService=s,l.hardwareWalletService=u,l.maxHwWalletLabelLength=gC.maxLabelLength,l.inputErrorMsg="",l.operationSubscription=l.walletsAndAddressesService.createHardwareWallet().subscribe(function(e){l.operationSubscription=l.hardwareWalletService.getFeaturesAndUpdateData(e).subscribe(function(){l.wallet=e,l.initialLabel=e.label,l.form=l.formBuilder.group({label:[e.label]}),l.form.setValidators(l.validateForm.bind(l)),l.currentState=l.states.Finished,l.data.requestOptionsComponentRefresh(),setTimeout(function(){return l.input.nativeElement.focus()})},function(e){return l.processError(e)})},function(e){return l.processError(e)}),l}return vf(t,e),t.prototype.processError=function(e){e=VM(e),this.processHwOperationError(e),this.data.requestOptionsComponentRefresh(e.translatableErrorMsg)},t.prototype.ngOnDestroy=function(){e.prototype.ngOnDestroy.call(this),this.msgBarService.hide()},t.prototype.saveNameAndCloseModal=function(){var e=this;if(this.form.value.label===this.initialLabel)this.closeModal();else{this.msgBarService.hide();var t=new jE;t.wallet=this.wallet,t.newName=this.form.value.label,BE.openDialog(this.dialog,t,!0).afterClosed().subscribe(function(t){t&&!t.errorMsg?e.closeModal():t&&t.errorMsg&&e.msgBarService.showError(t.errorMsg)})}},t.prototype.validateForm=function(){this.inputErrorMsg="";var e=!0;return this.form.get("label").value||(e=!1,this.form.get("label").touched&&(this.inputErrorMsg="hardware-wallet.added.added-error-info")),e?null:{Invalid:!0}},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(gC),ps(fm),ps(Pk),ps(dL),ps(AL),ps(YE))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-added-dialog"]],viewQuery:function(e,t){var n;1&e&&lc(WE,5),2&e&&uc(n=dc())&&(t.input=n.first)},features:[Ko],decls:15,vars:9,consts:[[3,"headline","dialog","disableDismiss"],[3,"text","icon",4,"ngIf"],[4,"ngIf"],["class","-buttons",4,"ngIf"],[3,"text","icon"],[3,"upperBigText","icon"],[1,"upper-text"],[3,"formGroup"],[1,"form-field"],["formControlName","label","id","label",3,"maxlength","appFormFieldError","keydown.enter","blur"],["input",""],[1,"warning"],[1,"-buttons"],[1,"primary-button",3,"disabled","action"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,VE,2,4,"app-hw-message",1),ru(5,"\n\n "),ru(6,"\n "),hs(7,UE,2,4,"app-hw-message",1),ru(8,"\n\n "),ru(9,"\n "),hs(10,zE,26,16,"div",2),ru(11,"\n\n "),hs(12,qE,7,4,"div",3),ru(13,"\n"),_s(),ru(14,"\n")),2&e&&(ms("headline",Vl(1,7,"hardware-wallet.added.title"))("dialog",t.dialogRef)("disableDismiss",t.currentState===t.states.Initial),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(3),ms("ngIf",t.currentState===t.states.ShowingResult),Ya(3),ms("ngIf",t.currentState===t.states.Finished),Ya(2),ms("ngIf",t.currentState===t.states.Finished||t.currentState===t.states.ShowingResult))},directives:[jk,lh,oC,ap,jp,Lf,rp,qp,lm,RO,ZC],pipes:[hM],styles:[".upper-text[_ngcontent-%COMP%]{margin-top:10px;margin-bottom:10px}.warning[_ngcontent-%COMP%]{margin:-20px 0 20px;color:rgba(30,34,39,.5)}"]}),t}(yC);function KE(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),ys(2,"app-hw-message",4),Wl(3,"translate"),ru(4,"\n\n "),vs(5,"div",5),ru(6,"\n "),vs(7,"div",6),ru(8,"\n "),vs(9,"div",7),ru(10,"\n "),vs(11,"select",8),ru(12,"\n "),vs(13,"option",9),ru(14),Wl(15,"translate"),_s(),ru(16,"\n "),vs(17,"option",9),ru(18),Wl(19,"translate"),_s(),ru(20,"\n "),_s(),ru(21,"\n "),_s(),ru(22,"\n "),_s(),ru(23,"\n "),_s(),ru(24,"\n\n "),vs(25,"div",10),ru(26,"\n "),vs(27,"app-button",11),xs("action",function(){return on(n),Ys().closeModal()}),ru(28),Wl(29,"translate"),_s(),ru(30,"\n "),vs(31,"app-button",12),xs("action",function(){return on(n),Ys().startOperation()}),ru(32),Wl(33,"translate"),_s(),ru(34,"\n "),_s(),ru(35,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("text",Vl(3,8,"hardware-wallet.generate-seed.text")),Ya(3),ms("formGroup",i.form),Ya(8),ms("ngValue",12),Ya(1),au(Vl(15,10,"wallet.new.12-words")),Ya(3),ms("ngValue",24),Ya(1),au(Vl(19,12,"wallet.new.24-words")),Ya(10),ou("\n ",Vl(29,14,"common.cancel-button"),"\n "),Ya(4),ou("\n ",Vl(33,16,"common.continue-button"),"\n ")}}function JE(e,t){if(1&e&&(ys(0,"app-hw-message",13),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,"hardware-wallet.generate-seed.configuring"))("icon",n.msgIcons.Spinner)}}function ZE(e,t){if(1&e&&(ys(0,"app-hw-message",13),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,n.result.text))("icon",n.result.icon)}}function $E(e,t){if(1&e){var n=Ms();vs(0,"div",10),ru(1,"\n "),vs(2,"app-button",12,14),xs("action",function(){return on(n),Ys().closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}2&e&&(Ya(4),ou("\n ",Vl(5,1,"common.close-button"),"\n "))}var XE=function(e){function t(t,n,i,r){var a=e.call(this,i,n)||this;return a.data=t,a.dialogRef=n,a.hwWalletService=i,a.form=r.group({words:[24,Yf.required]}),a}return vf(t,e),t.prototype.startOperation=function(){var e=this;this.currentState=this.states.Processing,this.operationSubscription=this.hwWalletService.generateMnemonic(this.form.controls.words.value).subscribe(function(){e.data.requestOptionsComponentRefresh(),e.closeModal()},function(t){return e.processHwOperationError(t)})},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(gC),ps(fm))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-generate-seed-dialog"]],features:[Ko],decls:16,vars:9,consts:[[3,"headline","dialog","disableDismiss"],[4,"ngIf"],[3,"text","icon",4,"ngIf"],["class","-buttons",4,"ngIf"],[3,"text"],[1,"modal-form-container",3,"formGroup"],[1,"form-field"],[1,"-select"],["formControlName","words","id","words"],[3,"ngValue"],[1,"-buttons"],[3,"action"],[1,"primary-button",3,"action"],[3,"text","icon"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,KE,36,18,"div",1),ru(5,"\n\n "),ru(6,"\n "),hs(7,JE,2,4,"app-hw-message",2),ru(8,"\n\n "),ru(9,"\n "),hs(10,ZE,2,4,"app-hw-message",2),ru(11,"\n\n "),ru(12,"\n "),hs(13,$E,7,3,"div",3),ru(14,"\n"),_s(),ru(15,"\n")),2&e&&(ms("headline",Vl(1,7,"hardware-wallet.options.configure-automatically"))("dialog",t.dialogRef)("disableDismiss",t.currentState===t.states.Processing),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(3),ms("ngIf",t.currentState===t.states.Processing),Ya(3),ms("ngIf",t.currentState===t.states.ShowingResult),Ya(3),ms("ngIf",t.currentState!==t.states.Initial&&t.currentState!==t.states.Processing))},directives:[jk,lh,oC,ap,jp,Jp,rp,qp,Zp,em,ZC],pipes:[hM],styles:[""]}),t}(yC);function QE(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),ys(2,"app-hw-message",2),Wl(3,"translate"),ru(4,"\n\n "),vs(5,"div",3),ru(6,"\n "),vs(7,"app-button",4),xs("action",function(){return on(n),Ys().closeModal()}),ru(8),Wl(9,"translate"),_s(),ru(10,"\n "),vs(11,"app-button",5),xs("action",function(){return on(n),Ys().requestBackup()}),ru(12),Wl(13,"translate"),_s(),ru(14,"\n "),_s(),ru(15,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("text",Vl(3,4,"hardware-wallet.create-backup.warning"))("icon",i.msgIcons.Warning),Ya(6),ou("\n ",Vl(9,6,"common.cancel-button"),"\n "),Ya(4),ou("\n ",Vl(13,8,"common.continue-button"),"\n ")}}function eY(e,t){if(1&e&&(ys(0,"app-hw-message",2),Wl(1,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,2,"hardware-wallet.create-backup.instructions"))("icon",n.msgIcons.Confirm)}}function tY(e,t){if(1&e&&(ys(0,"app-hw-message",2),Wl(1,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,2,n.result.text))("icon",n.result.icon)}}function nY(e,t){if(1&e){var n=Ms();vs(0,"div",3),ru(1,"\n "),vs(2,"app-button",5,8),xs("action",function(){return on(n),Ys(2).closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}2&e&&(Ya(4),ou("\n ",Vl(5,1,"common.close-button"),"\n "))}function iY(e,t){if(1&e&&(vs(0,"div"),ru(1,"\n "),ru(2,"\n "),hs(3,eY,2,4,"app-hw-message",6),ru(4,"\n\n "),ru(5,"\n "),hs(6,tY,2,4,"app-hw-message",6),ru(7,"\n\n "),ru(8,"\n "),hs(9,nY,7,3,"div",7),ru(10,"\n "),_s()),2&e){var n=Ys();Ya(3),ms("ngIf",n.currentState===n.states.Processing),Ya(3),ms("ngIf",n.currentState===n.states.ShowingResult),Ya(3),ms("ngIf",n.currentState!==n.states.Processing)}}var rY=function(e){function t(t,n,i){var r=e.call(this,i,n)||this;return r.data=t,r.dialogRef=n,r.hwWalletService=i,r}return vf(t,e),t.prototype.requestBackup=function(){var e=this;this.currentState=this.states.Processing,this.operationSubscription=this.hwWalletService.backup().subscribe(function(){e.showResult({text:"hardware-wallet.general.completed",icon:e.msgIcons.Success}),e.data.requestOptionsComponentRefresh(null,!0)},function(t){return e.processHwOperationError(t)})},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(gC))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-backup-dialog"]],features:[Ko],decls:9,vars:7,consts:[[3,"headline","dialog","disableDismiss"],[4,"ngIf"],[3,"text","icon"],[1,"-buttons"],[3,"action"],[1,"primary-button",3,"action"],[3,"text","icon",4,"ngIf"],["class","-buttons",4,"ngIf"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,QE,16,10,"div",1),ru(5,"\n\n "),hs(6,iY,11,3,"div",1),ru(7,"\n"),_s(),ru(8,"\n")),2&e&&(ms("headline",Vl(1,5,"hardware-wallet.options.create-backup"))("dialog",t.dialogRef)("disableDismiss",t.currentState===t.states.Processing),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(2),ms("ngIf",t.currentState!==t.states.Initial))},directives:[jk,lh,oC,ZC],pipes:[hM],styles:[""]}),t}(yC);function aY(e,t){if(1&e&&(ys(0,"app-hw-message",3),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,"hardware-wallet.general.confirm"))("icon",n.msgIcons.Confirm)}}function oY(e,t){if(1&e&&(ys(0,"app-hw-message",3),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,n.result.text))("icon",n.result.icon)}}function sY(e,t){if(1&e){var n=Ms();vs(0,"div",4),ru(1,"\n "),vs(2,"app-button",5,6),xs("action",function(){return on(n),Ys().closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}2&e&&(Ya(4),ou("\n ",Vl(5,1,"common.close-button"),"\n "))}var uY=function(e){function t(t,n,i){var r=e.call(this,i,n)||this;return r.data=t,r.dialogRef=n,r.hwWalletService=i,r.changingExistingPin=t.walletHasPin,r.operationSubscription=r.hwWalletService.getFeatures().pipe(ue(function(e){return r.changingExistingPin=e.rawResponse.pin_protection,r.hwWalletService.changePin(e.rawResponse.pin_protection)})).subscribe(function(){r.showResult({text:"hardware-wallet.general.completed",icon:r.msgIcons.Success}),r.data.requestOptionsComponentRefresh(null,!0)},function(e){return r.processHwOperationError(e)}),r}return vf(t,e),t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(gC))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-change-pin-dialog"]],features:[Ko],decls:13,vars:8,consts:[[3,"headline","dialog","disableDismiss"],[3,"text","icon",4,"ngIf"],["class","-buttons",4,"ngIf"],[3,"text","icon"],[1,"-buttons"],[1,"primary-button",3,"action"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,aY,2,4,"app-hw-message",1),ru(5,"\n\n "),ru(6,"\n "),hs(7,oY,2,4,"app-hw-message",1),ru(8,"\n\n "),ru(9,"\n "),hs(10,sY,7,3,"div",2),ru(11,"\n"),_s(),ru(12,"\n")),2&e&&(ms("headline",Vl(1,6,t.changingExistingPin?"hardware-wallet.options.change-pin":"hardware-wallet.options.create-pin"))("dialog",t.dialogRef)("disableDismiss",t.currentState===t.states.Initial),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(3),ms("ngIf",t.currentState===t.states.ShowingResult),Ya(3),ms("ngIf",t.currentState!==t.states.Initial))},directives:[jk,lh,oC,ZC],pipes:[hM],styles:[""]}),t}(yC);function lY(e,t){1&e&&(vs(0,"div",14),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"hardware-wallet.restore-seed.warning")))}function cY(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),ys(2,"app-hw-message",4),Wl(3,"translate"),ru(4,"\n\n "),vs(5,"div",5),ru(6,"\n "),vs(7,"div",6),ru(8,"\n "),vs(9,"div",7),ru(10,"\n "),vs(11,"select",8),ru(12,"\n "),vs(13,"option",9),ru(14),Wl(15,"translate"),_s(),ru(16,"\n "),vs(17,"option",9),ru(18),Wl(19,"translate"),_s(),ru(20,"\n "),_s(),ru(21,"\n "),_s(),ru(22,"\n "),_s(),ru(23,"\n "),_s(),ru(24,"\n\n "),hs(25,lY,3,3,"div",10),ru(26,"\n\n "),vs(27,"div",11),ru(28,"\n "),vs(29,"app-button",12),xs("action",function(){return on(n),Ys().closeModal()}),ru(30),Wl(31,"translate"),_s(),ru(32,"\n "),vs(33,"app-button",13),xs("action",function(){return on(n),Ys().startOperation()}),ru(34),Wl(35,"translate"),_s(),ru(36,"\n "),_s(),ru(37,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("text",Vl(3,9,i.justCheckingSeed?"hardware-wallet.restore-seed.check-text":"hardware-wallet.restore-seed.text")),Ya(3),ms("formGroup",i.form),Ya(8),ms("ngValue",12),Ya(1),au(Vl(15,11,"wallet.new.12-words")),Ya(3),ms("ngValue",24),Ya(1),au(Vl(19,13,"wallet.new.24-words")),Ya(7),ms("ngIf",!i.justCheckingSeed),Ya(5),ou("\n ",Vl(31,15,"common.cancel-button"),"\n "),Ya(4),ou("\n ",Vl(35,17,"common.continue-button"),"\n ")}}function dY(e,t){if(1&e&&(ys(0,"app-hw-message",15),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,n.justCheckingSeed?"hardware-wallet.general.follow":"hardware-wallet.general.confirm-and-more"))("icon",n.msgIcons.Confirm)}}function hY(e,t){if(1&e&&(ys(0,"app-hw-message",15),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,n.result.text))("icon",n.result.icon)}}function fY(e,t){if(1&e){var n=Ms();vs(0,"div",11),ru(1,"\n "),vs(2,"app-button",13,16),xs("action",function(){return on(n),Ys().closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}2&e&&(Ya(4),ou("\n ",Vl(5,1,"common.close-button"),"\n "))}var pY=function(e){function t(t,n,i,r){var a=e.call(this,i,n)||this;return a.data=t,a.dialogRef=n,a.hwWalletService=i,a.form=r.group({words:[24,Yf.required]}),a.justCheckingSeed=!!a.data.wallet,a}return vf(t,e),t.prototype.startOperation=function(){var e=this;this.currentState=this.states.Processing,this.operationSubscription=this.hwWalletService.recoverMnemonic(this.form.controls.words.value,this.justCheckingSeed).subscribe(function(){e.justCheckingSeed?e.showResult({text:"hardware-wallet.restore-seed.correct-seed",icon:e.msgIcons.Success}):(e.data.requestOptionsComponentRefresh(),e.closeModal())},function(t){return e.processHwOperationError(t)})},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(gC),ps(fm))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-restore-seed-dialog"]],features:[Ko],decls:16,vars:9,consts:[[3,"headline","dialog","disableDismiss"],[4,"ngIf"],[3,"text","icon",4,"ngIf"],["class","-buttons",4,"ngIf"],[3,"text"],[1,"modal-form-container",3,"formGroup"],[1,"form-field"],[1,"-select"],["formControlName","words","id","words"],[3,"ngValue"],["class","warning",4,"ngIf"],[1,"-buttons"],[3,"action"],[1,"primary-button",3,"action"],[1,"warning"],[3,"text","icon"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n\n "),ru(3,"\n "),hs(4,cY,38,19,"div",1),ru(5,"\n\n "),ru(6,"\n "),hs(7,dY,2,4,"app-hw-message",2),ru(8,"\n\n "),ru(9,"\n "),hs(10,hY,2,4,"app-hw-message",2),ru(11,"\n\n "),ru(12,"\n "),hs(13,fY,7,3,"div",3),ru(14,"\n"),_s(),ru(15,"\n")),2&e&&(ms("headline",Vl(1,7,t.justCheckingSeed?"hardware-wallet.options.confirm-seed":"hardware-wallet.options.restore-backup"))("dialog",t.dialogRef)("disableDismiss",t.currentState===t.states.Processing),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(3),ms("ngIf",t.currentState===t.states.Processing),Ya(3),ms("ngIf",t.currentState===t.states.ShowingResult),Ya(3),ms("ngIf",t.currentState!==t.states.Initial&&t.currentState!==t.states.Processing))},directives:[jk,lh,oC,ap,jp,Jp,rp,qp,Zp,em,ZC],pipes:[hM],styles:[".warning[_ngcontent-%COMP%]{margin-top:15px;color:#ff004e;text-align:center}"]}),t}(yC);function mY(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),ys(2,"app-hw-message",2),Wl(3,"translate"),ru(4,"\n\n "),vs(5,"div",3),ru(6,"\n "),vs(7,"mat-checkbox",4),xs("change",function(e){return on(n),Ys().setConfirmed(e)}),ru(8),Wl(9,"translate"),_s(),ru(10,"\n "),_s(),ru(11,"\n\n "),vs(12,"div",5),ru(13,"\n "),vs(14,"app-button",6),xs("action",function(){return on(n),Ys().closeModal()}),ru(15),Wl(16,"translate"),_s(),ru(17,"\n "),vs(18,"app-button",7),xs("action",function(){return on(n),Ys().requestRemoval()}),ru(19),Wl(20,"translate"),_s(),ru(21,"\n "),_s(),ru(22,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("text",Vl(3,7,"hardware-wallet.remove-pin.warning"))("icon",i.msgIcons.Warning),Ya(5),ms("checked",i.confirmed),Ya(1),ou("",Vl(9,9,"common.generic-confirmation-check"),"\n "),Ya(7),ou("\n ",Vl(16,11,"common.cancel-button"),"\n "),Ya(3),ms("disabled",!i.confirmed),Ya(1),ou("\n ",Vl(20,13,"common.continue-button"),"\n ")}}function gY(e,t){if(1&e&&(ys(0,"app-hw-message",2),Wl(1,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,2,"hardware-wallet.general.confirm"))("icon",n.msgIcons.Confirm)}}function vY(e,t){if(1&e&&(ys(0,"app-hw-message",2),Wl(1,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,2,n.result.text))("icon",n.result.icon)}}function _Y(e,t){if(1&e){var n=Ms();vs(0,"div",5),ru(1,"\n "),vs(2,"app-button",10,11),xs("action",function(){return on(n),Ys(2).closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}2&e&&(Ya(4),ou("\n ",Vl(5,1,"common.close-button"),"\n "))}function yY(e,t){if(1&e&&(vs(0,"div"),ru(1,"\n "),ru(2,"\n "),hs(3,gY,2,4,"app-hw-message",8),ru(4,"\n\n "),ru(5,"\n "),hs(6,vY,2,4,"app-hw-message",8),ru(7,"\n\n "),ru(8,"\n "),hs(9,_Y,7,3,"div",9),ru(10,"\n "),_s()),2&e){var n=Ys();Ya(3),ms("ngIf",n.currentState===n.states.Processing),Ya(3),ms("ngIf",n.currentState===n.states.ShowingResult),Ya(3),ms("ngIf",n.currentState!==n.states.Processing)}}var bY=function(e){function t(t,n,i){var r=e.call(this,i,n)||this;return r.data=t,r.dialogRef=n,r.hwWalletService=i,r.confirmed=!1,r}return vf(t,e),t.prototype.setConfirmed=function(e){this.confirmed=e.checked},t.prototype.requestRemoval=function(){var e=this;this.currentState=this.states.Processing,this.operationSubscription=this.hwWalletService.removePin().subscribe(function(){e.showResult({text:"hardware-wallet.general.completed",icon:e.msgIcons.Success}),e.data.requestOptionsComponentRefresh(null,!0)},function(t){return e.processHwOperationError(t)})},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(gC))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-remove-pin-dialog"]],features:[Ko],decls:8,vars:7,consts:[[3,"headline","dialog","disableDismiss"],[4,"ngIf"],[3,"text","icon"],[1,"-check-container"],["type","checkbox",1,"-check",3,"checked","change"],[1,"-buttons"],[3,"action"],[1,"primary-button",3,"disabled","action"],[3,"text","icon",4,"ngIf"],["class","-buttons",4,"ngIf"],[1,"primary-button",3,"action"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,mY,23,15,"div",1),ru(5,"\n\n "),hs(6,yY,11,3,"div",1),ru(7,"\n"),_s()),2&e&&(ms("headline",Vl(1,5,"hardware-wallet.options.delete-pin"))("dialog",t.dialogRef)("disableDismiss",t.currentState===t.states.Processing),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(2),ms("ngIf",t.currentState!==t.states.Initial))},directives:[jk,lh,oC,lO,ZC],pipes:[hM],styles:[""]}),t}(yC);function wY(e,t){if(1&e){var n=Ms();vs(0,"div",7),ru(1,"\n "),vs(2,"mat-checkbox",8),xs("change",function(e){return on(n),Ys(2).setConfirmed(e)}),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}if(2&e){var i=Ys(2);Ya(2),ms("checked",i.confirmed),Ya(1),ou("",Vl(4,2,"common.generic-confirmation-check"),"\n ")}}function kY(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),ys(2,"app-hw-message",2),Wl(3,"translate"),ru(4,"\n\n "),hs(5,wY,6,4,"div",3),ru(6,"\n\n "),vs(7,"div",4),ru(8,"\n "),vs(9,"app-button",5),xs("action",function(){return on(n),Ys().closeModal()}),ru(10),Wl(11,"translate"),_s(),ru(12,"\n "),vs(13,"app-button",6),xs("action",function(){return on(n),Ys().startUpdating()}),ru(14),Wl(15,"translate"),_s(),ru(16,"\n "),_s(),ru(17,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("text",Vl(3,6,i.text))("icon",i.deviceHasFirmware?i.msgIcons.Warning:i.msgIcons.HardwareWallet),Ya(3),ms("ngIf",i.deviceHasFirmware),Ya(5),ou("\n ",Vl(11,8,"common.cancel-button"),"\n "),Ya(3),ms("disabled",i.deviceHasFirmware&&!i.confirmed),Ya(1),ou("\n ",Vl(15,10,"common.continue-button"),"\n ")}}function MY(e,t){if(1&e&&(ys(0,"app-hw-message",2),Wl(1,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,2,"hardware-wallet.update-firmware.title-connecting"))("icon",n.msgIcons.Spinner)}}function SY(e,t){if(1&e&&(ys(0,"app-hw-message",2),Wl(1,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,2,"hardware-wallet.update-firmware.follow"))("icon",n.msgIcons.Confirm)}}function CY(e,t){if(1&e&&(ys(0,"app-hw-message",2),Wl(1,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,2,n.result.text))("icon",n.result.icon)}}function LY(e,t){if(1&e){var n=Ms();vs(0,"div",4),ru(1,"\n "),vs(2,"app-button",11,12),xs("action",function(){return on(n),Ys(2).closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}2&e&&(Ya(4),ou("\n ",Vl(5,1,"common.close-button"),"\n "))}function xY(e,t){if(1&e&&(vs(0,"div"),ru(1,"\n "),ru(2,"\n "),hs(3,MY,2,4,"app-hw-message",9),ru(4,"\n\n "),ru(5,"\n "),hs(6,SY,2,4,"app-hw-message",9),ru(7,"\n\n "),ru(8,"\n "),hs(9,CY,2,4,"app-hw-message",9),ru(10,"\n\n "),ru(11,"\n "),hs(12,LY,7,3,"div",10),ru(13,"\n "),_s()),2&e){var n=Ys();Ya(3),ms("ngIf",n.currentState===n.states.Connecting),Ya(3),ms("ngIf",n.currentState===n.states.Processing),Ya(3),ms("ngIf",n.currentState===n.states.ShowingResult),Ya(3),ms("ngIf",n.currentState!==n.states.Processing)}}var TY=function(e){function t(t,n,i){var r=e.call(this,n,t)||this;return r.dialogRef=t,r.hwWalletService=n,r.msgBarService=i,r.closeIfHwDisconnected=!1,r.currentState=r.states.Connecting,r.confirmed=!1,r.deviceInBootloaderMode=!1,r.deviceHasFirmware=!0,r.checkDevice(!1),r}return vf(t,e),Object.defineProperty(t.prototype,"title",{get:function(){return this.currentState===this.states.Connecting?"hardware-wallet.update-firmware.title-connecting":this.deviceHasFirmware?"hardware-wallet.update-firmware.title-update":"hardware-wallet.update-firmware.title-install"},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"text",{get:function(){return this.deviceHasFirmware?this.deviceInBootloaderMode?"hardware-wallet.update-firmware.text-bootloader":"hardware-wallet.update-firmware.text-not-bootloader":"hardware-wallet.update-firmware.text-no-firmware"},enumerable:!1,configurable:!0}),t.openDialog=function(e){var n=new wk;return n.autoFocus=!1,n.width="450px",e.open(t,n)},t.prototype.ngOnDestroy=function(){e.prototype.ngOnDestroy.call(this),this.msgBarService.hide(),this.closeCheckDeviceSubscription()},t.prototype.setConfirmed=function(e){this.confirmed=e.checked},t.prototype.startUpdating=function(){var e=this;this.msgBarService.hide(),this.showResult({text:"hardware-wallet.update-firmware.text-downloading",icon:this.msgIcons.Spinner}),this.closeCheckDeviceSubscription(),this.operationSubscription=this.hwWalletService.updateFirmware(function(){return e.currentState=e.states.Processing}).subscribe(function(){e.showResult({text:"hardware-wallet.update-firmware.finished",icon:e.msgIcons.Success})},function(t){(t=VM(t)).type===BM.Success?e.showResult({text:"hardware-wallet.update-firmware.finished",icon:e.msgIcons.Success}):t.type===BM.Timeout?e.showResult({text:"hardware-wallet.update-firmware.timeout",icon:e.msgIcons.Error}):(setTimeout(function(){e.msgBarService.showError(t)}),e.checkDevice(!1),e.currentState=e.states.Initial)})},t.prototype.checkDevice=function(e){var t=this;void 0===e&&(e=!0),this.closeCheckDeviceSubscription(),this.checkDeviceSubscription=bm(0).pipe(EM(e?1e3:0),ue(function(){return t.hwWalletService.getFeatures(!1)})).subscribe(function(e){t.deviceInBootloaderMode=e.rawResponse.bootloader_mode,t.deviceHasFirmware=!t.deviceInBootloaderMode||e.rawResponse.firmware_present,t.currentState===t.states.Connecting&&(t.currentState=t.states.Initial),t.checkDevice()},function(){t.deviceInBootloaderMode=!1,t.deviceHasFirmware=!0,t.currentState===t.states.Connecting&&(t.currentState=t.states.Initial),t.checkDevice()})},t.prototype.closeCheckDeviceSubscription=function(){this.checkDeviceSubscription&&this.checkDeviceSubscription.unsubscribe()},t.\u0275fac=function(e){return new(e||t)(ps(Lk),ps(gC),ps(dL))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-update-firmware-dialog"]],features:[Ko],decls:8,vars:7,consts:[[3,"headline","dialog","disableDismiss"],[4,"ngIf"],[3,"text","icon"],["class","-check-container",4,"ngIf"],[1,"-buttons"],[3,"action"],[1,"primary-button",3,"disabled","action"],[1,"-check-container"],["type","checkbox",1,"-check",3,"checked","change"],[3,"text","icon",4,"ngIf"],["class","-buttons",4,"ngIf"],[1,"primary-button",3,"action"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,kY,18,12,"div",1),ru(5,"\n\n "),hs(6,xY,14,4,"div",1),ru(7,"\n"),_s()),2&e&&(ms("headline",Vl(1,5,t.title))("dialog",t.dialogRef)("disableDismiss",t.currentState===t.states.Processing),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(2),ms("ngIf",t.currentState!==t.states.Initial))},directives:[jk,lh,oC,ZC,lO],pipes:[hM],styles:[""]}),t}(yC),DY=function(e){function t(t,n){var i=e.call(this,n,t)||this;return i.dialogRef=t,i}return vf(t,e),t.openDialog=function(e){var n=new wk;return n.autoFocus=!1,n.width="450px",e.open(t,n)},t.prototype.update=function(){this._dialogRef.close(!0)},t.\u0275fac=function(e){return new(e||t)(ps(Lk),ps(gC))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-update-alert-dialog"]],features:[Ko],decls:18,vars:14,consts:[[3,"headline","dialog"],[3,"text","icon"],[1,"-buttons"],[3,"action"],[1,"primary-button",3,"action"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ys(3,"app-hw-message",1),Wl(4,"translate"),ru(5,"\n\n "),vs(6,"div",2),ru(7,"\n "),vs(8,"app-button",3),xs("action",function(){return t.closeModal()}),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),vs(12,"app-button",4),xs("action",function(){return t.update()}),ru(13),Wl(14,"translate"),_s(),ru(15,"\n "),_s(),ru(16,"\n"),_s(),ru(17,"\n")),2&e&&(ms("headline",Vl(1,6,"hardware-wallet.update-firmware-warning.title"))("dialog",t.dialogRef),Ya(3),ms("text",Vl(4,8,"hardware-wallet.update-firmware-warning.text"))("icon",t.msgIcons.Warning),Ya(6),ou("\n ",Vl(10,10,"common.cancel-button"),"\n "),Ya(4),ou("\n ",Vl(14,12,"hardware-wallet.update-firmware-warning.update"),"\n "))},directives:[jk,oC,ZC],pipes:[hM],styles:[""]}),t}(yC);function OY(e,t){if(1&e&&(ys(0,"app-hw-message",7),Wl(1,"translate"),Wl(2,"translate")),2&e){var n=Ys();ms("text",Vl(1,6,n.result.text))("linkText",n.result.linkText?Vl(2,8,n.result.linkText):null)("link",n.result.link)("linkIsUrl",!0)("linkIsInternal",n.result.linkIsInternal)("icon",n.result.icon)}}function EY(e,t){if(1&e){var n=Ms();vs(0,"app-hw-message",8),xs("linkClicked",function(){return on(n),Ys().wipe()}),Wl(1,"translate"),Wl(2,"translate"),Wl(3,"translate"),_s()}if(2&e){var i=Ys();ms("text",Vl(1,3,"hardware-wallet.errors.refused")+" "+Vl(2,5,"hardware-wallet.options.forgotten-pin-part1"))("linkText",Vl(3,7,"hardware-wallet.options.forgotten-pin-part2"))("icon",i.msgIcons.Error)}}function YY(e,t){if(1&e){var n=Ms();vs(0,"app-hw-message",8),xs("linkClicked",function(){return on(n),Ys().wipe()}),Wl(1,"translate"),Wl(2,"translate"),Wl(3,"translate"),_s()}if(2&e){var i=Ys();ms("text",Vl(1,3,"hardware-wallet.errors.incorrect-pin")+" "+Vl(2,5,"hardware-wallet.options.forgotten-pin-part1"))("linkText",Vl(3,7,"hardware-wallet.options.forgotten-pin-part2"))("icon",i.msgIcons.Error)}}function PY(e,t){if(1&e&&(ys(0,"app-hw-message",17),Wl(1,"translate"),Wl(2,"translate"),Wl(3,"translate")),2&e){var n=Ys(2);ms("upperBigText",Vl(1,4,"hardware-wallet.options.unconfigured-detected-title"))("lowerLightText",Vl(2,6,"hardware-wallet.options.firmware-version")+" "+n.firmwareVersion)("text",Vl(3,8,"hardware-wallet.options.unconfigured-detected"))("icon",n.msgIcons.HardwareWallet)}}function AY(e,t){if(1&e&&(ys(0,"app-hw-message",18),Wl(1,"translate"),Wl(2,"translate")),2&e){var n=Ys(2);ms("text",Vl(1,4,"hardware-wallet.options.configured-detected"))("lowerLightText",Vl(2,6,"hardware-wallet.options.firmware-version")+" "+n.firmwareVersion)("lowerBigText",n.wallet.label)("icon",n.msgIcons.HardwareWallet)}}function IY(e,t){1&e&&ys(0,"br")}function RY(e,t){if(1&e&&(bs(0),ru(1,"\n "),vs(2,"div"),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),hs(6,IY,1,0,"br",16),ru(7,"\n "),ws()),2&e){var n=t.$implicit,i=t.index,r=Ys(3);Ya(3),su("",r.securityWarnings.length>1?i+1+")":""," ",Vl(4,3,n),""),Ya(3),ms("ngIf",i1?"hardware-wallet.options.security-warnings-title":"hardware-wallet.options.security-warning-title")),Ya(3),ms("ngForOf",n.securityWarnings)}}function HY(e,t){if(1&e){var n=Ms();vs(0,"button",22),xs("click",function(){return on(n),Ys(2).update()}),ru(1,"\n "),vs(2,"div",23),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}2&e&&(Ya(3),au(Vl(4,1,"hardware-wallet.options.update-firmware")))}function jY(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),vs(2,"button",22),xs("click",function(){return on(n),Ys(2).generateMnemonic()}),ru(3,"\n "),vs(4,"div",24),ru(5),Wl(6,"translate"),_s(),ru(7,"\n "),_s(),ru(8,"\n "),vs(9,"button",22),xs("click",function(){return on(n),Ys(2).restoreMnemonic()}),ru(10,"\n "),vs(11,"div",24),ru(12),Wl(13,"translate"),_s(),ru(14,"\n "),_s(),ru(15,"\n "),_s()}2&e&&(Ya(5),au(Vl(6,2,"hardware-wallet.options.configure-automatically")),Ya(7),au(Vl(13,4,"hardware-wallet.options.restore-backup")))}function NY(e,t){if(1&e){var n=Ms();vs(0,"button",22),xs("click",function(){return on(n),Ys(3).backup()}),ru(1,"\n "),vs(2,"div",24),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}2&e&&(Ya(3),au(Vl(4,1,"hardware-wallet.options.create-backup")))}function BY(e,t){if(1&e){var n=Ms();vs(0,"button",22),xs("click",function(){return on(n),Ys(3).confirmSeed()}),ru(1,"\n "),vs(2,"div",24),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}2&e&&(Ya(3),au(Vl(4,1,"hardware-wallet.options.confirm-seed")))}function WY(e,t){if(1&e){var n=Ms();vs(0,"button",22),xs("click",function(){return on(n),Ys(3).removePin()}),ru(1,"\n "),vs(2,"div",25),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}2&e&&(Ya(3),au(Vl(4,1,"hardware-wallet.options.delete-pin")))}function VY(e,t){if(1&e){var n=Ms();vs(0,"div"),ru(1,"\n "),hs(2,NY,6,3,"button",15),ru(3,"\n "),hs(4,BY,6,3,"button",15),ru(5,"\n "),vs(6,"button",22),xs("click",function(){return on(n),Ys(2).changePin()}),ru(7,"\n "),vs(8,"div",24),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),_s(),ru(12,"\n "),hs(13,WY,6,3,"button",15),ru(14,"\n "),vs(15,"button",22),xs("click",function(){return on(n),Ys(2).wipe()}),ru(16,"\n "),vs(17,"div",25),ru(18),Wl(19,"translate"),_s(),ru(20,"\n "),_s(),ru(21,"\n "),_s()}if(2&e){var i=Ys(2);Ya(2),ms("ngIf",i.needsBackup),Ya(2),ms("ngIf",!i.needsBackup),Ya(5),au(Vl(10,5,i.needsPin?"hardware-wallet.options.create-pin":"hardware-wallet.options.change-pin")),Ya(4),ms("ngIf",!i.needsPin),Ya(5),au(Vl(19,7,"hardware-wallet.options.wipe"))}}var UY=function(e){return{disabled:e}};function zY(e,t){if(1&e&&(vs(0,"div",9),ru(1,"\n "),hs(2,PY,4,10,"app-hw-message",10),ru(3,"\n\n "),hs(4,AY,3,8,"app-hw-message",11),ru(5,"\n\n "),hs(6,FY,14,4,"div",12),ru(7,"\n\n "),vs(8,"div",13),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),vs(12,"div",14),ru(13,"\n "),hs(14,HY,6,3,"button",15),ru(15,"\n "),hs(16,jY,16,6,"div",16),ru(17,"\n "),hs(18,VY,22,9,"div",16),ru(19,"\n "),_s(),ru(20,"\n "),_s()),2&e){var n=Ys();ms("ngClass",Il(10,UY,n.refreshingWarnings)),Ya(2),ms("ngIf",n.newWalletConnected),Ya(2),ms("ngIf",!n.newWalletConnected),Ya(2),ms("ngIf",n.securityWarnings.length>0),Ya(3),au(Vl(10,8,"hardware-wallet.options.options")),Ya(5),ms("ngIf",n.outdatedFirmware),Ya(2),ms("ngIf",n.newWalletConnected),Ya(2),ms("ngIf",!n.newWalletConnected)}}function qY(e,t){1&e&&(vs(0,"div",26),ru(1,"\n "),ys(2,"mat-spinner"),ru(3),Wl(4,"translate"),_s()),2&e&&(Ya(3),ou("\n ",Vl(4,1,"common.loading"),"\n "))}function GY(e,t){if(1&e){var n=Ms();vs(0,"div",27),ru(1,"\n "),vs(2,"app-button",28),xs("action",function(){return on(n),Ys().closeModal()}),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}if(2&e){var i=Ys();ms("ngClass",Il(4,UY,i.refreshingWarnings)),Ya(3),ou("\n ",Vl(4,2,"common.close-button"),"\n ")}}function KY(e,t){if(1&e){var n=Ms();vs(0,"div",29),ru(1,"\n "),vs(2,"app-button",28,30),xs("action",function(){return on(n),Ys().closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}2&e&&(Ya(4),ou("\n ",Vl(5,1,"common.close-button"),"\n "))}var JY=function(e){function t(t,n,i,r,a,o,s){var u=e.call(this,i,n)||this;return u.onboarding=t,u.dialogRef=n,u.hwWalletService=i,u.dialog=r,u.msgBarService=a,u.hardwareWalletService=o,u.walletsAndAddressesService=s,u.closeIfHwDisconnected=!1,u.newWalletConnected=!1,u.otherStateBecauseWrongPin=!1,u.firmwareVersion="",u.securityWarnings=[],u.refreshingWarnings=!1,u.completeRecheckRequested=!1,u.recheckSecurityOnlyRequested=!1,u.showErrorRequested=!1,u.customErrorMsg="",u.checkWallet(!0),u}return vf(t,e),t.openDialog=function(e,n){var i=new wk;return i.data=n,i.autoFocus=!1,i.width=jM.mediumModalWidth,e.open(t,i)},t.prototype.ngOnDestroy=function(){e.prototype.ngOnDestroy.call(this),this.removeDialogSubscription(),this.removeOperationSubscription(),this.msgBarService.hide()},t.prototype.hwConnectionChanged=function(e){this.checkWallet(!0)},t.prototype.update=function(){this.openUpdateDialog()},t.prototype.generateMnemonic=function(){this.openDialog(XE)},t.prototype.restoreMnemonic=function(){this.openDialog(pY)},t.prototype.changePin=function(){this.openDialog(uY)},t.prototype.removePin=function(){this.openDialog(bY)},t.prototype.backup=function(){this.openDialog(rY)},t.prototype.wipe=function(){this.openDialog(DE)},t.prototype.confirmSeed=function(){this.openDialog(pY)},t.prototype.openDialog=function(e){var t=this;this.customErrorMsg="",this.removeDialogSubscription();var n=new wk;n.width="450px",n.autoFocus=!1,n.data={wallet:this.wallet,walletHasPin:!this.needsPin,requestOptionsComponentRefresh:function(e,n){void 0===e&&(e=null),void 0===n&&(n=!1),e?(t.showErrorRequested=!0,t.customErrorMsg=e):n?t.recheckSecurityOnlyRequested=!0:t.completeRecheckRequested=!0}},this.dialogSubscription=this.dialog.open(e,n).afterClosed().subscribe(function(){t.completeRecheckRequested?t.checkWallet():t.recheckSecurityOnlyRequested?t.updateSecurityWarningsAndData().subscribe():t.showErrorRequested&&t.showError(),t.completeRecheckRequested=!1,t.recheckSecurityOnlyRequested=!1,t.showErrorRequested=!1})},t.prototype.removeDialogSubscription=function(){this.dialogSubscription&&this.dialogSubscription.unsubscribe()},t.prototype.updateSecurityWarningsAndData=function(){var e=this;return bm(1).pipe(Hv(function(){return e.refreshingWarnings=!0}),ue(function(){return e.hardwareWalletService.getFeaturesAndUpdateData(e.wallet)}),K(function(t){return e.refreshingWarnings=!1,e.securityWarnings=[],t.securityWarnings.includes(EE.FirmwareVersionNotVerified)?(e.firmwareVersionNotVerified=!0,e.securityWarnings.push("hardware-wallet.options.unchecked-version-warning")):e.firmwareVersionNotVerified=!1,t.securityWarnings.includes(EE.OutdatedFirmware)?(e.outdatedFirmware=!0,e.securityWarnings.push("hardware-wallet.options.outdated-version-warning")):e.outdatedFirmware=!1,e.wallet&&t.securityWarnings.includes(EE.NeedsBackup)?(e.needsBackup=!0,e.securityWarnings.push("hardware-wallet.options.backup-warning")):e.needsBackup=!1,e.wallet&&t.securityWarnings.includes(EE.NeedsPin)?(e.needsPin=!0,e.securityWarnings.push("hardware-wallet.options.pin-warning")):e.needsPin=!1,t.walletNameUpdated&&e.msgBarService.showWarning("hardware-wallet.general.name-updated"),e.firmwareVersion=t.features.fw_major+"."+t.features.fw_minor+"."+t.features.fw_patch,t}))},t.prototype.checkWallet=function(e){var t=this;void 0===e&&(e=!1),this.wallet=null,this.showResult({text:"hardware-wallet.options.connecting",icon:this.msgIcons.Spinner},!1),this.removeOperationSubscription(),this.operationSubscription=this.hwWalletService.getDeviceConnected().subscribe(function(n){n?t.operationSubscription=t.hwWalletService.getFeatures(!1).subscribe(function(n){n.rawResponse.bootloader_mode?t.openUpdateDialog():t.continueCheckingWallet(e)},function(){return t.continueCheckingWallet(e)}):t.showResult({text:"hardware-wallet.options.disconnected",icon:t.msgIcons.Usb})},function(e){t.processHwOperationError(e)})},t.prototype.continueCheckingWallet=function(e){var t=this;this.operationSubscription=this.hwWalletService.getAddresses(1,0).subscribe(function(n){t.operationSubscription=t.walletsAndAddressesService.allWallets.pipe(eS()).subscribe(function(i){i.some(function(e){var i=e.addresses[0].address===n.rawResponse[0]&&e.isHardware;return i&&(t.wallet=e),i})?t.operationSubscription=t.updateSecurityWarningsAndData().subscribe(function(n){e&&n.securityWarnings.find(function(e){return e===EE.OutdatedFirmware})&&t.openUpdateWarning(),t.onboarding?(t.hwWalletService.showOptionsWhenPossible=!0,t.dialogRef.close(!0)):(t.currentState=t.states.Finished,t.newWalletConnected=!1)},function(e){return t.processHwOperationError(e)}):t.openDialog(GE)})},function(n){(n=VM(n)).type===BM.WithoutSeed?t.operationSubscription=t.updateSecurityWarningsAndData().subscribe(function(n){t.currentState=t.states.Finished,t.newWalletConnected=!0,e&&n.securityWarnings.find(function(e){return e===EE.OutdatedFirmware})&&t.openUpdateWarning()},function(e){return t.processHwOperationError(e)}):n.type===BM.FailedOrRefused?(t.currentState=t.states.Other,t.otherStateBecauseWrongPin=!1):n.type===BM.WrongPin?(t.currentState=t.states.Other,t.otherStateBecauseWrongPin=!0):t.processHwOperationError(n)})},t.prototype.removeOperationSubscription=function(){this.operationSubscription&&this.operationSubscription.unsubscribe()},t.prototype.openUpdateWarning=function(){var e=this;DY.openDialog(this.dialog).afterClosed().subscribe(function(t){t&&e.openUpdateDialog()})},t.prototype.openUpdateDialog=function(){TY.openDialog(this.dialog),this.closeModal()},t.prototype.showError=function(){this.showResult({text:this.customErrorMsg?this.customErrorMsg:"hardware-wallet.errors.generic-error",icon:this.msgIcons.Error}),this.customErrorMsg=""},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(gC),ps(Pk),ps(dL),ps(YE),ps(AL))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-options-dialog"]],features:[Ko],decls:18,vars:11,consts:[[3,"headline","dialog"],[3,"text","linkText","link","linkIsUrl","linkIsInternal","icon",4,"ngIf"],[3,"text","linkText","icon","linkClicked",4,"ngIf"],[3,"ngClass",4,"ngIf"],["class","loading-indicator",4,"ngIf"],["class","-buttons",3,"ngClass",4,"ngIf"],["class","-buttons",4,"ngIf"],[3,"text","linkText","link","linkIsUrl","linkIsInternal","icon"],[3,"text","linkText","icon","linkClicked"],[3,"ngClass"],[3,"upperBigText","lowerLightText","text","icon",4,"ngIf"],[3,"text","lowerLightText","lowerBigText","icon",4,"ngIf"],["class","alert-box",4,"ngIf"],[1,"options-label"],[1,"option-buttons-container","light-button-theme"],["mat-button","","color","primary",3,"click",4,"ngIf"],[4,"ngIf"],[3,"upperBigText","lowerLightText","text","icon"],[3,"text","lowerLightText","lowerBigText","icon"],[1,"alert-box"],[1,"title"],[4,"ngFor","ngForOf"],["mat-button","","color","primary",3,"click"],[1,"label","-blinking"],[1,"label"],[1,"label","red-text"],[1,"loading-indicator"],[1,"-buttons",3,"ngClass"],[1,"primary-button",3,"action"],[1,"-buttons"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),hs(3,OY,3,10,"app-hw-message",1),ru(4,"\n\n "),hs(5,EY,4,9,"app-hw-message",2),ru(6,"\n\n "),hs(7,YY,4,9,"app-hw-message",2),ru(8,"\n\n "),hs(9,zY,21,12,"div",3),ru(10,"\n\n "),hs(11,qY,5,3,"div",4),ru(12,"\n\n "),hs(13,GY,6,6,"div",5),ru(14,"\n\n "),hs(15,KY,7,3,"div",6),ru(16,"\n"),_s(),ru(17,"\n")),2&e&&(ms("headline",Vl(1,9,"wallet.hardware-wallet-button"))("dialog",t.dialogRef),Ya(3),ms("ngIf",t.currentState===t.states.ShowingResult),Ya(2),ms("ngIf",t.currentState===t.states.Other&&!t.otherStateBecauseWrongPin),Ya(2),ms("ngIf",t.currentState===t.states.Other&&t.otherStateBecauseWrongPin),Ya(2),ms("ngIf",t.currentState===t.states.Finished),Ya(2),ms("ngIf",t.currentState===t.states.Finished&&t.refreshingWarnings),Ya(2),ms("ngIf",t.currentState===t.states.Finished),Ya(2),ms("ngIf",t.currentState!==t.states.Finished))},directives:[jk,lh,oC,ah,WC,sh,SC,MM,ZC],pipes:[hM],styles:[".alert-box[_ngcontent-%COMP%], .options-label[_ngcontent-%COMP%]{margin-top:25px}.options-label[_ngcontent-%COMP%]{margin-bottom:10px;font-weight:700}.option-buttons-container[_ngcontent-%COMP%]{margin:0 -10px}.option-buttons-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%;text-align:left;padding:10px;border-bottom:1px solid rgba(30,34,39,.05)}.option-buttons-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:first-child{border-top:1px solid rgba(30,34,39,.05)}.option-buttons-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:13px;line-height:1.7;color:#1e2227}.-blinking[_ngcontent-%COMP%]{-webkit-animation:alert-blinking 1s linear infinite;animation:alert-blinking 1s linear infinite}.loading-indicator[_ngcontent-%COMP%]{width:100px;height:40px;left:calc(50% - 50px);top:calc(50% - 20px);position:absolute;display:flex;justify-content:center;align-items:center}.loading-indicator[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{margin-left:7px;margin-right:12px;height:18px!important;width:18px!important}.loading-indicator[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] svg{height:18px!important;width:18px!important}.loading-indicator[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] svg circle{stroke:rgba(30,34,39,.2)}.disabled[_ngcontent-%COMP%]{opacity:.3;cursor:default;pointer-events:none}"]}),t}(yC);function ZY(e,t){1&e&&(ys(0,"img",29),Wl(1,"translate")),2&e&&ms("matTooltip",Vl(1,1,"wallet.encryption-enabled"))}function $Y(e,t){1&e&&(ys(0,"img",30),Wl(1,"translate")),2&e&&ms("matTooltip",Vl(1,1,"wallet.encryption-disabled"))}function XY(e,t){1&e&&(ys(0,"img",31),Wl(1,"translate")),2&e&&ms("matTooltip",Vl(1,1,"wallet.temporal"))}function QY(e,t){1&e&&(ys(0,"img",32),Wl(1,"translate")),2&e&&ms("matTooltip",Vl(1,1,"wallet.warning-hw-security"))}function eP(e,t){1&e&&ys(0,"app-wallet-detail",33),2&e&&ms("wallet",Ys().$implicit)}var tP=function(e,t){return{"rotate-270":e,"rotate-90":t}};function nP(e,t){if(1&e){var n=Ms();vs(0,"div",16),ru(1,"\n "),vs(2,"div",17),ru(3,"\n "),vs(4,"div",18),xs("click",function(){var e=on(n).$implicit;return Ys(3).toggleWallet(e)}),ru(5,"\n "),ru(6,"\n "),vs(7,"div",19),ru(8),_s(),ru(9,"\n "),ru(10,"\n "),vs(11,"div",20),ru(12,"\n "),hs(13,ZY,2,3,"img",21),ru(14,"\n "),hs(15,$Y,2,3,"img",22),ru(16,"\n "),hs(17,XY,2,3,"img",23),ru(18,"\n "),hs(19,QY,2,3,"img",24),ru(20,"\n "),_s(),ru(21,"\n "),ru(22,"\n "),vs(23,"div",13),ru(24),Wl(25,"amount"),_s(),ru(26,"\n "),vs(27,"div",25),ru(28),Wl(29,"amount"),_s(),ru(30,"\n "),ru(31,"\n "),vs(32,"div",26),ru(33,"\n "),ys(34,"img",27),ru(35,"\n "),_s(),ru(36,"\n "),_s(),ru(37,"\n "),ru(38,"\n "),hs(39,eP,1,1,"app-wallet-detail",28),ru(40,"\n "),_s(),ru(41,"\n "),_s()}if(2&e){var i=t.$implicit,r=Ys(3);Ya(7),ls("title",i.label),Ya(1),au(i.label),Ya(5),ms("ngIf",i.encrypted&&!i.isHardware&&!i.temporal),Ya(2),ms("ngIf",!i.encrypted&&!i.isHardware&&!i.temporal),Ya(2),ms("ngIf",!i.isHardware&&i.temporal),Ya(2),ms("ngIf",i.hasHwSecurityWarnings&&i.isHardware),Ya(5),au(zl(25,10,i.coins?i.coins:0,!0,"first")),Ya(4),au(zl(29,14,i.hours?i.hours:0,!1,"first")),Ya(6),ms("ngClass",Rl(18,tP,r.walletsOpenedState.get(i.id),!r.walletsOpenedState.get(i.id))),Ya(5),ms("ngIf",r.walletsOpenedState.get(i.id))}}function iP(e,t){if(1&e&&(bs(0),ru(1,"\n "),ru(2,"\n "),vs(3,"div",10),ru(4,"\n "),vs(5,"div",11),ru(6),Wl(7,"translate"),_s(),ru(8,"\n "),ys(9,"div",12),ru(10,"\n "),vs(11,"div",13),ru(12),Wl(13,"commonText"),_s(),ru(14,"\n "),vs(15,"div",13),ru(16),Wl(17,"commonText"),_s(),ru(18,"\n "),ys(19,"div",14),ru(20,"\n "),_s(),ru(21,"\n\n "),ru(22,"\n "),hs(23,nP,42,21,"div",15),ru(24,"\n "),ws()),2&e){var n=Ys().$implicit,i=Ys();Ya(6),au(Vl(7,4,0===n?"wallet.hardware-wallet-table-label":"wallet.wallet-table-label")),Ya(6),au(Vl(13,6,"coin")),Ya(4),au(Vl(17,8,"hours")),Ya(7),ms("ngForOf",0===n?i.hardwareWallets:i.wallets)}}function rP(e,t){if(1&e&&(vs(0,"div",8),ru(1,"\n "),hs(2,iP,25,10,"ng-container",9),ru(3,"\n "),_s()),2&e){var n=t.$implicit,i=Ys();Ya(2),ms("ngIf",0===n&&i.hardwareWallets.length>0||1===n&&i.wallets.length>0)}}function aP(e,t){if(1&e){var n=Ms();vs(0,"button",4),xs("click",function(){return on(n),Ys().adminHwWallet()}),ru(1,"\n "),ys(2,"img",34),ru(3),Wl(4,"translate"),_s()}2&e&&(Ya(3),ou(" ",Vl(4,1,"wallet.hardware-wallet-button"),"\n "))}var oP=function(){return[0,1]},sP=function(){function e(e,t,n,i,r){var a=this;this.hwWalletService=e,this.dialog=t,this.router=n,this.walletsAndAddressesService=i,this.balanceAndOutputsService=r,this.hwCompatibilityActivated=!1,this.wallets=[],this.hardwareWallets=[],this.walletsOpenedState=new Map,this.hwCompatibilityActivated=this.hwWalletService.hwWalletCompatibilityActivated,this.subscription=this.balanceAndOutputsService.walletsWithBalance.subscribe(function(e){a.wallets=[],a.hardwareWallets=[];var t=new Map;e.forEach(function(e){t.set(e.id,!0),e.isHardware?a.hardwareWallets.push(e):a.wallets.push(e),a.walletsOpenedState.has(e.id)||a.walletsOpenedState.set(e.id,!1)});var n=[];a.walletsOpenedState.forEach(function(e,i){t.has(i)||n.push(i)}),n.forEach(function(e){a.walletsOpenedState.delete(e)})})}return e.prototype.ngOnInit=function(){var e=this;this.hwWalletService.showOptionsWhenPossible&&setTimeout(function(){e.hwWalletService.showOptionsWhenPossible=!1,e.adminHwWallet()})},e.prototype.ngOnDestroy=function(){this.subscription.unsubscribe(),e.busy=!1},e.prototype.addWallet=function(e){kE.openDialog(this.dialog,{create:e})},e.prototype.adminHwWallet=function(){var e=this;JY.openDialog(this.dialog,!1).afterClosed().subscribe(function(){e.walletsAndAddressesService.allWallets.pipe(eS()).subscribe(function(t){0===t.length&&setTimeout(function(){return e.router.navigate(["/wizard"])},500)})})},e.prototype.toggleWallet=function(e){var t=this;if(e.isHardware&&e.hasHwSecurityWarnings&&!e.stopShowingHwSecurityPopup&&!this.walletsOpenedState.get(e.id)){var n={headerText:"hardware-wallet.security-warning.title",text:"hardware-wallet.security-warning.text",checkboxText:"common.generic-confirmation-check",defaultButtons:gO.ContinueCancel,linkText:"hardware-wallet.security-warning.link",linkFunction:this.adminHwWallet.bind(this)};vO.openDialog(this.dialog,n).afterClosed().subscribe(function(n){n&&(e.stopShowingHwSecurityPopup=!0,t.walletsAndAddressesService.informValuesUpdated(e),t.walletsOpenedState.set(e.id,!0))})}else this.walletsOpenedState.set(e.id,!this.walletsOpenedState.get(e.id))},e.busy=!1,e.\u0275fac=function(t){return new(t||e)(ps(gC),ps(Pk),ps(MD),ps(AL),ps(_O))},e.\u0275cmp=ft({type:e,selectors:[["app-wallets"]],decls:30,vars:12,consts:[[3,"headline"],[1,"container"],["class","-table",4,"ngFor","ngForOf"],[1,"action-buttons"],["mat-button","",3,"click"],["src","assets/img/plus-gold.png"],["src","assets/img/load-gold.png"],["mat-button","",3,"click",4,"ngIf"],[1,"-table"],[4,"ngIf"],[1,"-headers"],[1,"-width-250","text-truncate"],[1,"-flex-fill"],[1,"-width-130","text-right"],[1,"-width-85"],["class","e2e-wallets",4,"ngFor","ngForOf"],[1,"e2e-wallets"],[1,"-body"],[1,"-row",3,"click"],[1,"-width-250","text-truncate","e2e-label"],[1,"-flex-fill","-encryption","d-flex"],["src","assets/img/lock-gold.png",3,"matTooltip",4,"ngIf"],["src","assets/img/unlock-grey.png",3,"matTooltip",4,"ngIf"],["src","assets/img/temporal-grey.png",3,"matTooltip",4,"ngIf"],["src","assets/img/alert-red.png",3,"matTooltip",4,"ngIf"],[1,"-width-130","text-right","grey-text"],[1,"-width-85","-expand"],["src","assets/img/chevron-right-grey.png",3,"ngClass"],[3,"wallet",4,"ngIf"],["src","assets/img/lock-gold.png",3,"matTooltip"],["src","assets/img/unlock-grey.png",3,"matTooltip"],["src","assets/img/temporal-grey.png",3,"matTooltip"],["src","assets/img/alert-red.png",3,"matTooltip"],[3,"wallet"],["src","assets/img/hw-gold.png"]],template:function(e,t){1&e&&(vs(0,"div"),ru(1,"\n "),ys(2,"app-header",0),Wl(3,"translate"),ru(4,"\n\n "),vs(5,"div",1),ru(6,"\n "),ru(7,"\n "),hs(8,rP,4,1,"div",2),ru(9,"\n\n "),ru(10,"\n "),vs(11,"div",3),ru(12,"\n "),vs(13,"button",4),xs("click",function(){return t.addWallet(!0)}),ru(14,"\n "),ys(15,"img",5),ru(16),Wl(17,"translate"),_s(),ru(18,"\n "),vs(19,"button",4),xs("click",function(){return t.addWallet(!1)}),ru(20,"\n "),ys(21,"img",6),ru(22),Wl(23,"translate"),_s(),ru(24,"\n "),hs(25,aP,5,3,"button",7),ru(26,"\n "),_s(),ru(27,"\n "),_s(),ru(28,"\n"),_s(),ru(29,"\n")),2&e&&(Ya(2),ms("headline",Vl(3,5,"wallet.title-and-button")),Ya(6),ms("ngForOf",Al(11,oP)),Ya(8),ou(" ",Vl(17,7,"wallet.add-button"),"\n "),Ya(6),ou(" ",Vl(23,9,"wallet.load-button"),"\n "),Ya(3),ms("ngIf",t.hwCompatibilityActivated))},styles:[".-width-85[_ngcontent-%COMP%]{padding-right:20px!important}.-width-250[_ngcontent-%COMP%]{padding-left:20px!important}@media (max-width:991px){.-width-250[_ngcontent-%COMP%]{width:200px;flex-shrink:0}}.-headers[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{padding:0}.-body[_ngcontent-%COMP%]{margin-bottom:10px;color:#1e2227;background-color:transparent!important}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%]{font-size:13px;line-height:60px;height:60px;background-color:#fafafa;cursor:pointer}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{padding:0}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%] .-hours[_ngcontent-%COMP%]{color:rgba(30,34,39,.5);text-align:right}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%] .-coins[_ngcontent-%COMP%]{text-align:right}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%] .-encryption[_ngcontent-%COMP%]{padding-left:20px!important}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%] .-encryption[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{border-radius:50%;background-color:#f7f7f7;display:inline-block;height:38px;padding:3px;width:38px}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%] .-expand[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%] .-expand[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:32px;height:32px;opacity:.7}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%]:hover{background-color:#f7f7f7}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%]:hover .-expand[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{opacity:1}.-body[_ngcontent-%COMP%] .-row[_ngcontent-%COMP%]:hover .-encryption[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{background-color:#f4f4f4}.action-buttons[_ngcontent-%COMP%]{padding:40px 0;text-align:center}.action-buttons[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:rgba(30,34,39,.5);font-size:13px;margin:0 5px;min-width:140px}.action-buttons[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px;margin-left:-4px;width:28px}.rotate-90[_ngcontent-%COMP%]{transform:rotate(90deg)}.rotate-270[_ngcontent-%COMP%]{transform:rotate(270deg)}"]}),e}(),uP=function(e){return e.Default="default",e.Exchange="exchange",e}({}),lP=function(){function e(e,t){this.apiService=e,this.ngZone=t,this.noConnections=!1,this.updatePeriod=5e3,this.errorUpdatePeriod=5e3,this.connectionsSubject=new Rv([]),this.startDataRefreshSubscription(0)}return e.prototype.connections=function(){return this.connectionsSubject.asObservable()},e.prototype.startDataRefreshSubscription=function(e){var t=this;this.dataRefreshSubscription&&this.dataRefreshSubscription.unsubscribe(),this.ngZone.runOutsideAngular(function(){t.dataRefreshSubscription=bm(0).pipe(EM(e),ue(function(){return t.trustedAddresses?bm(t.trustedAddresses):t.apiService.get("network/defaultConnections")}),ue(function(e){return t.trustedAddresses=e,t.apiService.get("network/connections")})).subscribe(function(e){if(null===e.connections||0===e.connections.length)return t.noConnections=!0,t.ngZone.run(function(){return t.connectionsSubject.next([])}),void t.startDataRefreshSubscription(t.updatePeriod);t.noConnections=!1;var n=e.connections.map(function(e){return{address:e.address,listenPort:e.listen_port,outgoing:e.outgoing,height:e.height,lastSent:e.last_sent,lastReceived:e.last_received,source:t.trustedAddresses.find(function(t){return t===e.address})?uP.Default:uP.Exchange}}).sort(function(e,t){return e.address.localeCompare(t.address)});t.ngZone.run(function(){return t.connectionsSubject.next(n)}),t.startDataRefreshSubscription(t.updatePeriod)},function(){return t.startDataRefreshSubscription(t.errorUpdatePeriod)})})},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(HS),Bi(Fc))}}),e}(),cP=function(){function e(e,t){this.httpClient=e,this.walletsAndAddressesService=t,this.configSubject=new Rv(null),this.purchaseOrders=new Rv([]),this.purchaseUrl="https://event.skycoin.com/api/",this.getConfig()}return e.prototype.all=function(){return this.purchaseOrders.asObservable()},e.prototype.config=function(){return this.configSubject.asObservable()},e.prototype.getConfig=function(){var e=this;return this.get("config").pipe(K(function(e){return{enabled:!0,sky_btc_exchange_rate:parseFloat(e.sky_btc_exchange_rate)}})).subscribe(function(t){return e.configSubject.next(t)})},e.prototype.generate=function(e){var t=this;return this.walletsAndAddressesService.addAddressesToWallet(e,1).pipe(ue(function(n){return t.post("bind",{skyaddr:n[0].address,coin_type:"BTC"}).pipe(K(function(t){return{coin_type:t.coin_type,deposit_address:t.deposit_address,filename:e.id,recipient_address:n[0].address,status:"waiting_deposit"}}))}))},e.prototype.scan=function(e){return this.get("status?skyaddr="+e).pipe(K(function(e){if(!e.statuses||e.statuses.length>1)throw new Error("too many purchase orders found");return e.statuses[0]}))},e.prototype.get=function(e){return this.httpClient.get(this.purchaseUrl+e)},e.prototype.post=function(e,t){return void 0===t&&(t={}),this.httpClient.post(this.purchaseUrl+e,t)},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(MS),Bi(AL))}}),e}(),dP=function(){function e(e,t){this.http=e,this.ngZone=t,this.PRICE_API_ID=jM.priceApiId,this.priceInternal=new Rv(null),this.updatePeriod=6e5,this.errorUpdatePeriod=3e4,this.startDataRefreshSubscription(0)}return Object.defineProperty(e.prototype,"price",{get:function(){return this.priceInternal.asObservable()},enumerable:!1,configurable:!0}),e.prototype.startDataRefreshSubscription=function(e){var t=this;this.PRICE_API_ID&&(this.priceSubscription&&this.priceSubscription.unsubscribe(),this.ngZone.runOutsideAngular(function(){t.priceSubscription=bm(0).pipe(EM(e),ue(function(){return t.http.get("https://api.coinpaprika.com/v1/tickers/"+t.PRICE_API_ID+"?quotes=USD")})).subscribe(function(e){t.ngZone.run(function(){return t.priceInternal.next(e.quotes.USD.price)}),t.startDataRefreshSubscription(t.updatePeriod)},function(){t.startDataRefreshSubscription(t.errorUpdatePeriod)})}))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(MS),Bi(Fc))}}),e}(),hP=["mat-menu-item",""];function fP(e,t){1&e&&(An(),vs(0,"svg",2),ys(1,"polygon",3),_s())}var pP=["*"];function mP(e,t){if(1&e){var n=Ms();ru(0,"\n "),vs(1,"div",0),xs("keydown",function(e){return on(n),Ys()._handleKeydown(e)})("click",function(){return on(n),Ys().closed.emit("click")})("@transformMenu.start",function(e){return on(n),Ys()._onAnimationStart(e)})("@transformMenu.done",function(e){return on(n),Ys()._onAnimationDone(e)}),ru(2,"\n "),vs(3,"div",1),ru(4,"\n "),Is(5),ru(6,"\n "),_s(),ru(7,"\n "),_s(),ru(8,"\n")}if(2&e){var i=Ys();Ya(1),ms("id",i.panelId)("ngClass",i._classList)("@transformMenu",i._panelAnimationState),ls("aria-label",i.ariaLabel||null)("aria-labelledby",i.ariaLabelledby||null)("aria-describedby",i.ariaDescribedby||null)}}var gP={transformMenu:F_("transformMenu",[B_("void",N_({opacity:0,transform:"scale(0.8)"})),V_("void => enter",H_("120ms cubic-bezier(0, 0, 0.2, 1)",N_({opacity:1,transform:"scale(1)"}))),V_("* => void",H_("100ms 25ms linear",N_({opacity:0})))]),fadeInItems:F_("fadeInItems",[B_("showing",N_({opacity:1})),V_("void => *",[N_({opacity:0}),H_("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},vP=new Mi("MatMenuContent"),_P=new Mi("MAT_MENU_PANEL"),yP=Ww(Nw(function(){return function e(){s(this,e)}}())),bP=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o){var u;return s(this,n),(u=t.call(this))._elementRef=e,u._focusMonitor=r,u._parentMenu=a,u._changeDetectorRef=o,u.role="menuitem",u._hovered=new z,u._focused=new z,u._highlighted=!1,u._triggersSubmenu=!1,a&&a.addItem&&a.addItem(h(u)),u}return o(n,[{key:"focus",value:function(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,t):this._getHostElement().focus(t),this._focused.next(this)}},{key:"ngAfterViewInit",value:function(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}},{key:"ngOnDestroy",value:function(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}},{key:"_getTabIndex",value:function(){return this.disabled?"-1":"0"}},{key:"_getHostElement",value:function(){return this._elementRef.nativeElement}},{key:"_checkDisabled",value:function(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}},{key:"_handleMouseEnter",value:function(){this._hovered.next(this)}},{key:"getLabel",value:function(){for(var e,t,n=this._elementRef.nativeElement.cloneNode(!0),i=n.querySelectorAll("mat-icon, .material-icons"),r=0;r0&&void 0!==arguments[0]?arguments[0]:"program";this.lazyContent?this._ngZone.onStable.pipe(zg(1)).subscribe(function(){return e._focusFirstItem(t)}):this._focusFirstItem(t)}},{key:"_focusFirstItem",value:function(e){var t=this._keyManager;if(t.setFocusOrigin(e).setFirstItemActive(),!t.activeItem&&this._directDescendantItems.length)for(var n=this._directDescendantItems.first._getHostElement().parentElement;n;){if("menu"===n.getAttribute("role")){n.focus();break}n=n.parentElement}}},{key:"resetActiveItem",value:function(){this._keyManager.setActiveItem(-1)}},{key:"setElevation",value:function(e){var t=this,n=Math.min(this._baseElevation+e,24),i="".concat(this._elevationPrefix).concat(n),r=Object.keys(this._classList).find(function(e){return e.startsWith(t._elevationPrefix)});r&&r!==this._previousElevation||(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[i]=!0,this._previousElevation=i)}},{key:"setPositionClasses",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.xPosition,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.yPosition,n=this._classList;n["mat-menu-before"]="before"===e,n["mat-menu-after"]="after"===e,n["mat-menu-above"]="above"===t,n["mat-menu-below"]="below"===t}},{key:"_startAnimation",value:function(){this._panelAnimationState="enter"}},{key:"_resetAnimation",value:function(){this._panelAnimationState="void"}},{key:"_onAnimationDone",value:function(e){this._animationDone.next(e),this._isAnimating=!1}},{key:"_onAnimationStart",value:function(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}},{key:"_updateDirectDescendants",value:function(){var e=this;this._allItems.changes.pipe(Qm(this._allItems)).subscribe(function(t){e._directDescendantItems.reset(t.filter(function(t){return t._parentMenu===e})),e._directDescendantItems.notifyOnChanges()})}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(Fc),ps(wP))},e.\u0275dir=bt({type:e,contentQueries:function(e,t,n){var i;1&e&&(cc(n,vP,5),cc(n,bP,5),cc(n,bP,4)),2&e&&(uc(i=dc())&&(t.lazyContent=i.first),uc(i=dc())&&(t._allItems=i),uc(i=dc())&&(t.items=i))},viewQuery:function(e,t){var n;1&e&&lc(pl,5),2&e&&uc(n=dc())&&(t.templateRef=n.first)},inputs:{backdropClass:"backdropClass",xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"]},outputs:{closed:"closed",close:"close"}}),e}(),SP=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r){var a;return s(this,n),(a=t.call(this,e,i,r))._elevationPrefix="mat-elevation-z",a._baseElevation=4,a}return n}(MP);return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(Fc),ps(wP))},e.\u0275cmp=ft({type:e,selectors:[["mat-menu"]],hostVars:3,hostBindings:function(e,t){2&e&&ls("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[Du([{provide:_P,useExisting:e}]),Ko],ngContentSelectors:pP,decls:2,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-menu-panel",3,"id","ngClass","keydown","click"],[1,"mat-menu-content"]],template:function(e,t){1&e&&(As(),hs(0,mP,9,6,"ng-template"),ru(1,"\n"))},directives:[ah],styles:["mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]{pointer-events:none}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n"],encapsulation:2,data:{animation:[gP.transformMenu,gP.fadeInItems]},changeDetection:0}),e}(),CP=new Mi("mat-menu-scroll-strategy"),LP={provide:CP,deps:[Dv],useFactory:function(e){return function(){return e.scrollStrategies.reposition()}}},xP=Mg({passive:!0}),TP=function(){var e=function(){function e(t,n,i,r,a,o,u,l){var c=this;s(this,e),this._overlay=t,this._element=n,this._viewContainerRef=i,this._menuItemInstance=o,this._dir=u,this._focusMonitor=l,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=x.EMPTY,this._hoverSubscription=x.EMPTY,this._menuCloseSubscription=x.EMPTY,this._handleTouchStart=function(e){v_(e)||(c._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Zl,this.onMenuOpen=this.menuOpened,this.menuClosed=new Zl,this.onMenuClose=this.menuClosed,this._scrollStrategy=r,this._parentMaterialMenu=a instanceof MP?a:void 0,n.nativeElement.addEventListener("touchstart",this._handleTouchStart,xP),o&&(o._triggersSubmenu=this.triggersSubmenu())}return o(e,[{key:"_deprecatedMatMenuTriggerFor",get:function(){return this.menu},set:function(e){this.menu=e}},{key:"menu",get:function(){return this._menu},set:function(e){var t=this;e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(function(e){t._destroyMenu(e),"click"!==e&&"tab"!==e||!t._parentMaterialMenu||t._parentMaterialMenu.closed.emit(e)})))}},{key:"ngAfterContentInit",value:function(){this._checkMenu(),this._handleHover()}},{key:"ngOnDestroy",value:function(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,xP),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}},{key:"menuOpen",get:function(){return this._menuOpen}},{key:"dir",get:function(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}},{key:"triggersSubmenu",value:function(){return!(!this._menuItemInstance||!this._parentMaterialMenu)}},{key:"toggleMenu",value:function(){return this._menuOpen?this.closeMenu():this.openMenu()}},{key:"openMenu",value:function(){var e=this;if(!this._menuOpen){this._checkMenu();var t=this._createOverlay(),n=t.getConfig();this._setPosition(n.positionStrategy),n.hasBackdrop=null==this.menu.hasBackdrop?!this.triggersSubmenu():this.menu.hasBackdrop,t.attach(this._getPortal()),this.menu.lazyContent&&this.menu.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(function(){return e.closeMenu()}),this._initMenu(),this.menu instanceof MP&&this.menu._startAnimation()}}},{key:"closeMenu",value:function(){this.menu.close.emit()}},{key:"focus",value:function(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,t):this._element.nativeElement.focus(t)}},{key:"updatePosition",value:function(){var e;null===(e=this._overlayRef)||void 0===e||e.updatePosition()}},{key:"_destroyMenu",value:function(e){var t=this;if(this._overlayRef&&this.menuOpen){var n=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),!this.restoreFocus||"keydown"!==e&&this._openedBy&&this.triggersSubmenu()||this.focus(this._openedBy),this._openedBy=void 0,n instanceof MP?(n._resetAnimation(),n.lazyContent?n._animationDone.pipe(zm(function(e){return"void"===e.toState}),zg(1),Km(n.lazyContent._attached)).subscribe({next:function(){return n.lazyContent.detach()},complete:function(){return t._setIsMenuOpen(!1)}}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),n.lazyContent&&n.lazyContent.detach())}}},{key:"_initMenu",value:function(){this.menu.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,this.menu.direction=this.dir,this._setMenuElevation(),this.menu.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}},{key:"_setMenuElevation",value:function(){if(this.menu.setElevation){for(var e=0,t=this.menu.parentMenu;t;)e++,t=t.parentMenu;this.menu.setElevation(e)}}},{key:"_setIsMenuOpen",value:function(e){this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e)}},{key:"_checkMenu",value:function(){}},{key:"_createOverlay",value:function(){if(!this._overlayRef){var e=this._getOverlayConfig();this._subscribeToPositions(e.positionStrategy),this._overlayRef=this._overlay.create(e),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}},{key:"_getOverlayConfig",value:function(){return new uv({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:this.menu.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:this.menu.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}},{key:"_subscribeToPositions",value:function(e){var t=this;this.menu.setPositionClasses&&e.positionChanges.subscribe(function(e){t.menu.setPositionClasses("start"===e.connectionPair.overlayX?"after":"before","top"===e.connectionPair.overlayY?"below":"above")})}},{key:"_setPosition",value:function(e){var t=_("before"===this.menu.xPosition?["end","start"]:["start","end"],2),n=t[0],i=t[1],r=_("above"===this.menu.yPosition?["bottom","top"]:["top","bottom"],2),a=r[0],o=r[1],s=a,u=o,l=n,c=i,d=0;this.triggersSubmenu()?(c=n="before"===this.menu.xPosition?"start":"end",i=l="end"===n?"start":"end",d="bottom"===a?8:-8):this.menu.overlapTrigger||(s="top"===a?"bottom":"top",u="top"===o?"bottom":"top"),e.withPositions([{originX:n,originY:s,overlayX:l,overlayY:a,offsetY:d},{originX:i,originY:s,overlayX:c,overlayY:a,offsetY:d},{originX:n,originY:u,overlayX:l,overlayY:o,offsetY:-d},{originX:i,originY:u,overlayX:c,overlayY:o,offsetY:-d}])}},{key:"_menuClosingActions",value:function(){var e=this,t=this._overlayRef.backdropClick(),n=this._overlayRef.detachments();return pe(t,this._parentMaterialMenu?this._parentMaterialMenu.closed:bm(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(zm(function(t){return t!==e._menuItemInstance}),zm(function(){return e._menuOpen})):bm(),n)}},{key:"_handleMousedown",value:function(e){g_(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}},{key:"_handleKeydown",value:function(e){var t=e.keyCode;13!==t&&32!==t||(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===t&&"ltr"===this.dir||37===t&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}},{key:"_handleClick",value:function(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}},{key:"_handleHover",value:function(){var e=this;this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(zm(function(t){return t===e._menuItemInstance&&!t.disabled}),EM(0,Pm)).subscribe(function(){e._openedBy="mouse",e.menu instanceof MP&&e.menu._isAnimating?e.menu._animationDone.pipe(zg(1),EM(0,Pm),Km(e._parentMaterialMenu._hovered())).subscribe(function(){return e.openMenu()}):e.openMenu()}))}},{key:"_getPortal",value:function(){return this._portal&&this._portal.templateRef===this.menu.templateRef||(this._portal=new Hg(this.menu.templateRef,this._viewContainerRef)),this._portal}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Dv),ps(Fu),ps(bl),ps(CP),ps(_P,8),ps(bP,10),ps(Dg,8),ps(x_))},e.\u0275dir=bt({type:e,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:["aria-haspopup","true",1,"mat-menu-trigger"],hostVars:2,hostBindings:function(e,t){1&e&&xs("mousedown",function(e){return t._handleMousedown(e)})("keydown",function(e){return t._handleKeydown(e)})("click",function(e){return t._handleClick(e)}),2&e&&ls("aria-expanded",t.menuOpen||null)("aria-controls",t.menuOpen?t.menu.panelId:null)},inputs:{restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"],_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"]}),e}(),DP=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[LP],imports:[jw]}),e}(),OP=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[LP],imports:[[Th,jw,ik,Iv,DP],Ag,jw,DP]}),e}();function EP(e,t){if(1&e){var n=Ms();vs(0,"button",11),xs("click",function(){return on(n),Ys().changelanguage()}),ru(1,"\n "),ys(2,"img",12),ru(3),_s()}if(2&e){var i=Ys();Ya(2),ms("src","assets/img/lang/"+i.language.iconName,Pr),Ya(1),ou("\n ",i.language.name,"\n ")}}function YP(e,t){if(1&e&&(vs(0,"button",13),ru(1),_s()),2&e){var n=Ys();ms("disabled",!0),Ya(1),ou(" v",n.appService.nodeVersion," ")}}var PP=function(){return["/settings/network"]},AP=function(){return["/settings/blockchain"]},IP=function(){return["/settings/outputs"]},RP=function(){return["/settings/pending-transactions"]},FP=function(){return["/settings/backup"]},HP=function(e){return{coinName:e}},jP=function(){function e(e,t,n){this.appService=e,this.languageService=t,this.dialog=n}return e.prototype.ngOnInit=function(){var e=this;this.subscription=this.languageService.currentLanguage.subscribe(function(t){return e.language=t})},e.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},e.prototype.changelanguage=function(){SL.openDialog(this.dialog)},e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(kL),ps(Pk))},e.\u0275cmp=ft({type:e,selectors:[["app-top-bar"]],inputs:{headline:"headline"},decls:50,vars:37,consts:[[1,"buttons-left"],[1,"title"],[1,"buttons-right"],[3,"overlapTrigger"],["menuMenu","matMenu"],["mat-menu-item","",3,"routerLink"],["mat-menu-item","","target","_blank","rel","noreferrer nofollow noopener",1,"color-primary",3,"href"],[1,"separator"],["mat-menu-item","",3,"click",4,"ngIf"],["mat-menu-item","",3,"disabled",4,"ngIf"],["mat-icon-button","",1,"button",3,"matMenuTriggerFor"],["mat-menu-item","",3,"click"],[1,"flag",3,"src"],["mat-menu-item","",3,"disabled"]],template:function(e,t){if(1&e&&(ys(0,"div",0),ru(1,"\n"),vs(2,"div",1),ru(3),_s(),ru(4,"\n"),vs(5,"div",2),ru(6,"\n "),vs(7,"mat-menu",3,4),ru(9,"\n "),vs(10,"button",5),ru(11),Wl(12,"translate"),_s(),ru(13,"\n "),vs(14,"button",5),ru(15),Wl(16,"translate"),_s(),ru(17,"\n "),vs(18,"button",5),ru(19),Wl(20,"translate"),_s(),ru(21,"\n "),vs(22,"button",5),ru(23),Wl(24,"translate"),_s(),ru(25,"\n "),vs(26,"button",5),ru(27),Wl(28,"translate"),_s(),ru(29,"\n "),vs(30,"a",6),ru(31),Wl(32,"translate"),_s(),ru(33,"\n "),ys(34,"div",7),ru(35,"\n "),hs(36,EP,4,2,"button",8),ru(37,"\n "),ys(38,"div",7),ru(39,"\n "),hs(40,YP,2,2,"button",9),ru(41,"\n "),_s(),ru(42,"\n "),vs(43,"button",10),ru(44,"\n "),vs(45,"mat-icon"),ru(46,"menu"),_s(),ru(47,"\n "),_s(),ru(48,"\n"),_s(),ru(49,"\n")),2&e){var n=fs(8);Ya(3),ou("\n ",t.headline,"\n"),Ya(4),ms("overlapTrigger",!1),Ya(3),ms("routerLink",Al(30,PP)),Ya(1),au(Vl(12,17,"network.title")),Ya(3),ms("routerLink",Al(31,AP)),Ya(1),au(Vl(16,19,"blockchain.title")),Ya(3),ms("routerLink",Al(32,IP)),Ya(1),au(Vl(20,21,"outputs.title")),Ya(3),ms("routerLink",Al(33,RP)),Ya(1),au(Vl(24,23,"pending-txs.title")),Ya(3),ms("routerLink",Al(34,FP)),Ya(1),au(Vl(28,25,"backup.title")),Ya(3),ms("href",t.appService.explorerUrl,Pr),Ya(1),au(Ul(32,27,"header.explorer-link",Il(35,HP,t.appService.fullCoinName))),Ya(5),ms("ngIf",t.language),Ya(4),ms("ngIf",t.appService.nodeVersion),Ya(3),ms("matMenuTriggerFor",n)}},directives:[SP,bP,LD,lh,SC,TP,WC],pipes:[hM],styles:["[_nghost-%COMP%]{display:flex;color:#fff;width:100%}.buttons-left[_ngcontent-%COMP%]{padding:0 10px;width:120px}.title[_ngcontent-%COMP%]{font-size:13px;font-weight:700;flex:1 1 auto;letter-spacing:1px;line-height:50px;text-align:center}.buttons-right[_ngcontent-%COMP%]{text-align:right;width:120px}.buttons-right[_ngcontent-%COMP%] .button[_ngcontent-%COMP%]{height:50px;width:50px}.mat-menu-item[_ngcontent-%COMP%]{height:50px;line-height:50px;font-size:14px}.color-primary[_ngcontent-%COMP%]{color:#0072ff}.separator[_ngcontent-%COMP%]{width:100%;height:2px;background-color:rgba(30,34,39,.05);margin:8px 0}.flag[_ngcontent-%COMP%]{width:16px;height:16px;position:relative;top:3px}"]}),e}(),NP=function(e){return e.RightButton="RightButton",e.LeftButton="LeftButton",e}({}),BP=function(){function e(){this.className="",this.changeActiveButtonManually=!1,this.onStateChange=new Zl,this.ButtonStates=NP}return e.prototype.ngOnDestroy=function(){this.onStateChange.complete()},e.prototype.onRightButtonClicked=function(){this.activeButton===NP.LeftButton&&(this.changeActiveButtonManually||(this.activeButton=NP.RightButton),this.onStateChange.emit(NP.RightButton))},e.prototype.onLeftButtonClicked=function(){this.activeButton===NP.RightButton&&(this.changeActiveButtonManually||(this.activeButton=NP.LeftButton),this.onStateChange.emit(NP.LeftButton))},e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ft({type:e,selectors:[["app-double-button"]],inputs:{rightButtonText:"rightButtonText",leftButtonText:"leftButtonText",activeButton:"activeButton",className:"className",changeActiveButtonManually:"changeActiveButtonManually"},outputs:{onStateChange:"onStateChange"},decls:9,vars:9,consts:[[1,"-toggle","-small-button",3,"disabled","forceEmitEvents","action"]],template:function(e,t){1&e&&(vs(0,"div"),ru(1,"\n "),vs(2,"app-button",0),xs("action",function(){return t.onLeftButtonClicked()}),ru(3),_s(),ru(4,"\n "),vs(5,"app-button",0),xs("action",function(){return t.onRightButtonClicked()}),ru(6),_s(),ru(7,"\n"),_s(),ru(8,"\n")),2&e&&(cu("-buttons-container ",t.className,""),Ya(2),ms("disabled",t.activeButton!==t.ButtonStates.LeftButton)("forceEmitEvents",!0),Ya(1),au(t.leftButtonText),Ya(2),ms("disabled",t.activeButton!==t.ButtonStates.RightButton)("forceEmitEvents",!0),Ya(1),au(t.rightButtonText))},directives:[ZC],styles:[".-small-button[_ngcontent-%COMP%] button{width:unset;height:unset;padding:0 10px;min-width:100px;margin:unset;box-shadow:unset;background-color:transparent!important;line-height:1!important;min-height:26px}.-small-button[_ngcontent-%COMP%] button span{color:#1e2227;line-height:unset!important}.-small-button[_ngcontent-%COMP%] button .content-container .content{font-size:13px}.-small-button[_ngcontent-%COMP%] button.enabled{background-color:#1e2227!important}.-small-button[_ngcontent-%COMP%] button.enabled span{color:#fafafa}.-buttons-container[_ngcontent-%COMP%]{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:5px;background:hsla(0,0%,100%,.1);border-radius:100px;margin:0 auto;font-size:1px}.light.-buttons-container[_ngcontent-%COMP%]{background:rgba(30,34,39,.065)}.light[_ngcontent-%COMP%] .-small-button[_ngcontent-%COMP%] button.enabled{background-color:#fafafa!important}.light[_ngcontent-%COMP%] .-small-button[_ngcontent-%COMP%] button.enabled span{color:#1e2227}@media (max-width:991px){.-buttons-container.navbar.light[_ngcontent-%COMP%]{border-radius:20px}.-buttons-container.navbar.light[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%] .internal-container{display:block}}.small.-buttons-container[_ngcontent-%COMP%]{padding:2px}.small[_ngcontent-%COMP%] .-small-button[_ngcontent-%COMP%] button{min-width:70px;min-height:16px}.small[_ngcontent-%COMP%] .-small-button[_ngcontent-%COMP%] button .content-container .content{font-size:9px}"]}),e}(),WP=function(){function e(){this.switchVisibleInternal=!1,this.activeComponentInternal=new Rv(NP.LeftButton),this.switchDiabledInternal=!1}return Object.defineProperty(e.prototype,"switchVisible",{get:function(){return this.switchVisibleInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"activeComponent",{get:function(){return this.activeComponentInternal.asObservable()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"leftText",{get:function(){return this.leftTextInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"rightText",{get:function(){return this.rightTextInternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"switchDiabled",{get:function(){return this.switchDiabledInternal},enumerable:!1,configurable:!0}),e.prototype.setActiveComponent=function(e){this.activeComponentInternal.next(e)},e.prototype.showSwitch=function(e,t,n){void 0===n&&(n=NP.LeftButton),this.setActiveComponent(n),this.switchDiabledInternal=!1,this.switchVisibleInternal=!0,this.leftTextInternal=e,this.rightTextInternal=t},e.prototype.hideSwitch=function(){this.switchVisibleInternal=!1},e.prototype.enableSwitch=function(){this.switchDiabledInternal=!1},e.prototype.disableSwitch=function(){this.switchDiabledInternal=!0},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)}}),e}();function VP(e,t){1&e&&(vs(0,"a",11),ru(1,"\n "),ys(2,"img",12),ru(3,"\n "),vs(4,"span"),ru(5),Wl(6,"translate"),_s(),ru(7,"\n "),_s()),2&e&&(Ya(5),au(Vl(6,1,"buy.title-and-button")))}var UP=function(e){return{"-switch":!0,"element-disabled":e}};function zP(e,t){if(1&e){var n=Ms();vs(0,"app-double-button",13),xs("onStateChange",function(e){return on(n),Ys().changeActiveComponent(e)}),Wl(1,"translate"),Wl(2,"translate"),Wl(3,"async"),_s()}if(2&e){var i=Ys();ms("ngClass",Il(10,UP,i.navBarSwitchService.switchDiabled))("leftButtonText",Vl(1,4,i.navBarSwitchService.leftText))("rightButtonText",Vl(2,6,i.navBarSwitchService.rightText))("activeButton",Vl(3,8,i.navBarSwitchService.activeComponent))}}var qP=function(){function e(e,t){this.appService=e,this.navBarSwitchService=t,this.otcEnabled=jM.otcEnabled,this.exchangeEnabled=!0}return e.prototype.changeActiveComponent=function(e){this.navBarSwitchService.setActiveComponent(e)},e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(WP))},e.\u0275cmp=ft({type:e,selectors:[["app-nav-bar"]],decls:40,vars:11,consts:[[1,"container"],[1,"-buttons"],["routerLink","/wallets","routerLinkActive","full-opacity",1,"-button"],["src","assets/img/wallet-black.png"],["routerLink","/send","routerLinkActive","full-opacity",1,"-button"],["src","assets/img/send-black.png"],["routerLink","/transactions","routerLinkActive","full-opacity",1,"-button"],["src","assets/img/transactions-black.png"],[1,"flex-fill"],["class","-button",4,"ngIf"],["className","light navbar",3,"ngClass","leftButtonText","rightButtonText","activeButton","onStateChange",4,"ngIf"],[1,"-button"],["src","assets/img/money-gold.png"],["className","light navbar",3,"ngClass","leftButtonText","rightButtonText","activeButton","onStateChange"]],template:function(e,t){1&e&&(vs(0,"div",0),ru(1,"\n "),vs(2,"div",1),ru(3,"\n "),vs(4,"a",2),ru(5,"\n "),ys(6,"img",3),ru(7,"\n "),vs(8,"span"),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),_s(),ru(12,"\n "),vs(13,"a",4),ru(14,"\n "),ys(15,"img",5),ru(16,"\n "),vs(17,"span"),ru(18),Wl(19,"translate"),_s(),ru(20,"\n "),_s(),ru(21,"\n "),vs(22,"a",6),ru(23,"\n "),ys(24,"img",7),ru(25,"\n "),vs(26,"span"),ru(27),Wl(28,"translate"),_s(),ru(29,"\n "),_s(),ru(30,"\n "),ys(31,"div",8),ru(32,"\n "),ru(33,"\n "),hs(34,VP,8,3,"a",9),ru(35,"\n "),hs(36,zP,4,12,"app-double-button",10),ru(37,"\n "),_s(),ru(38,"\n"),_s(),ru(39,"\n")),2&e&&(Ya(9),au(Vl(10,5,"wallet.title-and-button")),Ya(9),au(Vl(19,7,"send.title-and-button")),Ya(9),au(Vl(28,9,"history.title-and-button")),Ya(7),ms("ngIf",t.otcEnabled),Ya(2),ms("ngIf",t.navBarSwitchService.switchVisible))},directives:[xD,DD,lh,BP,ah],pipes:[hM,kh],styles:[".-buttons[_ngcontent-%COMP%]{display:flex;width:100%}.-buttons[_ngcontent-%COMP%] .-button[_ngcontent-%COMP%]{cursor:pointer;padding:0 20px;opacity:.2;display:block;text-decoration:none;color:#1e2227;display:flex;height:66px;align-items:center}.-buttons[_ngcontent-%COMP%] .-button[_ngcontent-%COMP%]:hover{opacity:.4}.-buttons[_ngcontent-%COMP%] .-button[_ngcontent-%COMP%]:active{opacity:.55}.-buttons[_ngcontent-%COMP%] .-button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{float:left;height:32px;width:32px}@media (max-width:991px){.-buttons[_ngcontent-%COMP%] .-button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:27.2px;width:27.2px}}.-buttons[_ngcontent-%COMP%] .-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;line-height:1.3;margin:0 5px}@media (max-width:991px){.-buttons[_ngcontent-%COMP%] .-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:11.9px}}.-buttons[_ngcontent-%COMP%] .-switch[_ngcontent-%COMP%]{align-self:center;padding:0 20px}.full-opacity[_ngcontent-%COMP%]{opacity:1!important}"]}),e}(),GP=["primaryValueBar"],KP=Bw(function(){return function e(t){s(this,e),this._elementRef=t}}(),"primary"),JP=new Mi("mat-progress-bar-location",{providedIn:"root",factory:function(){var e=Wi(yd),t=e?e.location:null;return{getPathname:function(){return t?t.pathname+t.search:""}}}}),ZP=0,$P=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;s(this,n),(o=t.call(this,e))._ngZone=i,o._animationMode=r,o._isNoopAnimation=!1,o._value=0,o._bufferValue=0,o.animationEnd=new Zl,o._animationEndSubscription=x.EMPTY,o.mode="determinate",o.progressbarId="mat-progress-bar-".concat(ZP++);var u=a?a.getPathname().split("#")[0]:"";return o._rectangleFillValue="url('".concat(u,"#").concat(o.progressbarId,"')"),o._isNoopAnimation="NoopAnimations"===r,o}return o(n,[{key:"value",get:function(){return this._value},set:function(e){this._value=XP(mm(e)||0)}},{key:"bufferValue",get:function(){return this._bufferValue},set:function(e){this._bufferValue=XP(e||0)}},{key:"_primaryTransform",value:function(){return{transform:"scale3d(".concat(this.value/100,", 1, 1)")}}},{key:"_bufferTransform",value:function(){return"buffer"===this.mode?{transform:"scale3d(".concat(this.bufferValue/100,", 1, 1)")}:null}},{key:"ngAfterViewInit",value:function(){var e=this;this._ngZone.runOutsideAngular(function(){var t=e._primaryValueBar.nativeElement;e._animationEndSubscription=wm(t,"transitionend").pipe(zm(function(e){return e.target===t})).subscribe(function(){"determinate"!==e.mode&&"buffer"!==e.mode||e._ngZone.run(function(){return e.animationEnd.next({value:e.value})})})})}},{key:"ngOnDestroy",value:function(){this._animationEndSubscription.unsubscribe()}}]),n}(KP);return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(Fc),ps(Tw,8),ps(JP,8))},e.\u0275cmp=ft({type:e,selectors:[["mat-progress-bar"]],viewQuery:function(e,t){var n;1&e&&lc(GP,5),2&e&&uc(n=dc())&&(t._primaryValueBar=n.first)},hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-progress-bar"],hostVars:4,hostBindings:function(e,t){2&e&&(ls("aria-valuenow","indeterminate"===t.mode||"query"===t.mode?null:t.value)("mode",t.mode),qs("_mat-animation-noopable",t._isNoopAnimation))},inputs:{color:"color",mode:"mode",value:"value",bufferValue:"bufferValue"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],features:[Ko],decls:25,vars:4,consts:[["aria-hidden","true"],["width","100%","height","4","focusable","false",1,"mat-progress-bar-background","mat-progress-bar-element"],["x","4","y","0","width","8","height","4","patternUnits","userSpaceOnUse",3,"id"],["cx","2","cy","2","r","2"],["width","100%","height","100%"],[1,"mat-progress-bar-buffer","mat-progress-bar-element",3,"ngStyle"],[1,"mat-progress-bar-primary","mat-progress-bar-fill","mat-progress-bar-element",3,"ngStyle"],["primaryValueBar",""],[1,"mat-progress-bar-secondary","mat-progress-bar-fill","mat-progress-bar-element"]],template:function(e,t){1&e&&(ru(0,"\n"),vs(1,"div",0),ru(2,"\n "),An(),vs(3,"svg",1),ru(4,"\n "),vs(5,"defs"),ru(6,"\n "),vs(7,"pattern",2),ru(8,"\n "),ys(9,"circle",3),ru(10,"\n "),_s(),ru(11,"\n "),_s(),ru(12,"\n "),ys(13,"rect",4),ru(14,"\n "),_s(),ru(15,"\n "),ru(16,"\n "),In(),ys(17,"div",5),ru(18,"\n "),ys(19,"div",6,7),ru(21,"\n "),ys(22,"div",8),ru(23,"\n"),_s(),ru(24,"\n")),2&e&&(Ya(7),ms("id",t.progressbarId),Ya(6),ls("fill",t._rectangleFillValue),Ya(4),ms("ngStyle",t._bufferTransform()),Ya(2),ms("ngStyle",t._primaryTransform()))},directives:[gh],styles:['.mat-progress-bar{display:block;height:4px;overflow:hidden;position:relative;transition:opacity 250ms linear;width:100%}._mat-animation-noopable.mat-progress-bar{transition:none;animation:none}.mat-progress-bar .mat-progress-bar-element,.mat-progress-bar .mat-progress-bar-fill::after{height:100%;position:absolute;width:100%}.mat-progress-bar .mat-progress-bar-background{width:calc(100% + 10px)}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-background{display:none}.mat-progress-bar .mat-progress-bar-buffer{transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-buffer{border-top:solid 5px;opacity:.5}.mat-progress-bar .mat-progress-bar-secondary{display:none}.mat-progress-bar .mat-progress-bar-fill{animation:none;transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-fill{border-top:solid 4px}.mat-progress-bar .mat-progress-bar-fill::after{animation:none;content:"";display:inline-block;left:0}.mat-progress-bar[dir=rtl],[dir=rtl] .mat-progress-bar{transform:rotateY(180deg)}.mat-progress-bar[mode=query]{transform:rotateZ(180deg)}.mat-progress-bar[mode=query][dir=rtl],[dir=rtl] .mat-progress-bar[mode=query]{transform:rotateZ(180deg) rotateY(180deg)}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-fill,.mat-progress-bar[mode=query] .mat-progress-bar-fill{transition:none}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary,.mat-progress-bar[mode=query] .mat-progress-bar-primary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-translate 2000ms infinite linear;left:-145.166611%}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-primary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary,.mat-progress-bar[mode=query] .mat-progress-bar-secondary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-translate 2000ms infinite linear;left:-54.888891%;display:block}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-secondary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=buffer] .mat-progress-bar-background{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-background-scroll 250ms infinite linear;display:block}.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-buffer,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-background{animation:none;transition-duration:1ms}@keyframes mat-progress-bar-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mat-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mat-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-background-scroll{to{transform:translateX(-8px)}}\n'],encapsulation:2,changeDetection:0}),e}();function XP(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100;return Math.max(t,Math.min(n,e))}var QP=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[Th,jw],jw]}),e}();function eA(e,t){1&e&&(vs(0,"p",13),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"common.loading")))}function tA(e,t){if(1&e&&(vs(0,"p",14),vs(1,"span"),ru(2),Wl(3,"percent"),_s(),_s()),2&e){var n=Ys();Ya(2),au(Ul(3,1,n.synchronizationPercentage,"1.2-2"))}}function nA(e,t){if(1&e&&(vs(0,"p",14),vs(1,"span"),ru(2),Wl(3,"amount"),_s(),ru(4),Wl(5,"amount"),_s()),2&e){var n=Ys();Ya(2),au(zl(3,2,n.coins,!0,"first")),Ya(2),ou(" ",zl(5,6,n.coins,!0,"last"),"")}}function iA(e,t){if(1&e&&(vs(0,"span"),ru(1),Wl(2,"currency"),_s()),2&e){var n=Ys(3);Ya(1),au(ql(2,1,n.coins*n.price,"USD","symbol","1.2-2"))}}function rA(e,t){1&e&&(vs(0,"span"),ru(1,"-"),_s())}function aA(e,t){if(1&e&&(vs(0,"span"),ru(1,"\n "),hs(2,iA,3,6,"span",10),ru(3,"\n "),hs(4,rA,2,0,"span",10),ru(5),Wl(6,"currency"),_s()),2&e){var n=Ys(2);Ya(2),ms("ngIf",n.synchronized&&n.balanceObtained),Ya(2),ms("ngIf",!n.synchronized||!n.balanceObtained),Ya(1),ou("\n (",ql(6,3,n.price,"USD","symbol","1.2-2"),")\n ")}}function oA(e,t){1&e&&(vs(0,"span"),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"common.loading")))}function sA(e,t){if(1&e&&(vs(0,"p",15),ru(1,"\n "),hs(2,aA,7,8,"span",10),ru(3,"\n "),hs(4,oA,3,3,"span",10),ru(5,"\n "),_s()),2&e){var n=Ys();Ya(2),ms("ngIf",n.price),Ya(2),ms("ngIf",!n.price)}}function uA(e,t){1&e&&(vs(0,"p"),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"common.loading")))}function lA(e,t){if(1&e&&(vs(0,"p"),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys();Ya(1),su("",Vl(2,2,"header.syncing-blocks")," ","("+n.currentBlock+"/"+n.highestBlock+")","")}}function cA(e,t){if(1&e&&(vs(0,"p"),ru(1),Wl(2,"amount"),_s()),2&e){var n=Ys();Ya(1),au(Ul(2,1,n.hours,!1))}}function dA(e,t){if(1&e&&ys(0,"mat-progress-bar",16),2&e){var n=Ys();ms("mode","determinate")("value",100*n.synchronizationPercentage)}}function hA(e,t){if(1&e&&(vs(0,"div",17),ru(1,"\n "),vs(2,"div"),ru(3),Wl(4,"translate"),vs(5,"a",18),ru(6),_s(),ru(7),Wl(8,"translate"),_s(),ru(9,"\n "),_s()),2&e){var n=Ys();Ya(3),ou("\n ",Vl(4,4,"header.warnings.update-part1"),"\n "),Ya(2),ms("href",n.walletDownloadUrl,Pr),Ya(1),ou("v",n.appService.lastestVersion,""),Ya(1),ou("\n ",Vl(8,6,"header.warnings.update-part3"),"\n ")}}function fA(e,t){1&e&&(vs(0,"div",17),ru(1,"\n "),vs(2,"div"),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()),2&e&&(Ya(3),au(Vl(4,1,"header.warnings.csrf")))}function pA(e,t){1&e&&(vs(0,"div",17),ru(1,"\n "),vs(2,"div"),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()),2&e&&(Ya(3),au(Vl(4,1,"header.warnings.no-connections")))}function mA(e,t){1&e&&(vs(0,"div"),ru(1),Wl(2,"translate"),vs(3,"a",19),ru(4),Wl(5,"translate"),_s(),ru(6),Wl(7,"translate"),_s()),2&e&&(Ya(1),ou("\n ",Vl(2,3,"header.warnings.pending-txs-part1"),"\n "),Ya(3),au(Vl(5,5,"header.warnings.pending-txs-part2")),Ya(2),ou("\n ",Vl(7,7,"header.warnings.pending-txs-part3"),"\n "))}function gA(e,t){1&e&&(vs(0,"div"),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),ou("\n ",Vl(2,1,"header.warnings.synchronizing"),"\n "))}function vA(e,t){if(1&e&&(vs(0,"div",17),ru(1,"\n "),hs(2,mA,8,9,"div",10),ru(3,"\n "),hs(4,gA,3,3,"div",10),ru(5,"\n "),_s()),2&e){var n=Ys();Ya(2),ms("ngIf",n.hasPendingTxs),Ya(2),ms("ngIf",!n.synchronized&&n.synchronizationInfoObtained&&!n.hasPendingTxs)}}var _A=function(){function e(e,t,n,i,r){this.appService=e,this.networkService=t,this.blockchainService=n,this.priceService=i,this.balanceAndOutputsService=r,this.synchronizationInfoObtained=!1,this.synchronized=!1,this.showPrice=!!jM.priceApiId,this.balanceObtained=!1,this.walletDownloadUrl=jM.walletDownloadUrl,this.subscriptionsGroup=[]}return e.prototype.ngOnInit=function(){var e=this;this.subscriptionsGroup.push(this.blockchainService.progress.pipe(zm(function(e){return!!e})).subscribe(function(t){e.synchronizationInfoObtained=!0,e.highestBlock=t.highestBlock,e.currentBlock=t.currentBlock,e.synchronizationPercentage=e.currentBlock&&e.highestBlock?e.currentBlock/e.highestBlock:0,e.synchronized=t.synchronized})),this.subscriptionsGroup.push(this.priceService.price.subscribe(function(t){return e.price=t})),this.subscriptionsGroup.push(this.balanceAndOutputsService.walletsWithBalance.subscribe(function(t){var n=new Map;t.forEach(function(e){e.addresses.forEach(function(e){n.has(e.address)?n.get(e.address).coins.isLessThan(e.coins)&&n.set(e.address,e):n.set(e.address,e)})});var i=new CM.BigNumber(0),r=new CM.BigNumber(0);n.forEach(function(e){i=i.plus(e.coins),r=r.plus(e.hours)}),e.coins=i.toString(),e.hours=r.toString()})),this.subscriptionsGroup.push(this.balanceAndOutputsService.hasPendingTransactions.subscribe(function(t){e.hasPendingTxs=t})),this.subscriptionsGroup.push(this.balanceAndOutputsService.firstFullUpdateMade.subscribe(function(t){e.balanceObtained=t}))},e.prototype.ngOnDestroy=function(){this.subscriptionsGroup.forEach(function(e){return e.unsubscribe()})},e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(lP),ps(yO),ps(dP),ps(_O))},e.\u0275cmp=ft({type:e,selectors:[["app-header"]],inputs:{headline:"headline"},decls:48,vars:13,consts:[[1,"-container"],[1,"large-header"],[1,"gradient"],[3,"headline"],[1,"balance-container"],[1,"balance"],["class","loading-header",4,"ngIf"],["class","coins",4,"ngIf"],["class","dollars",4,"ngIf"],[1,"hour-balance"],[4,"ngIf"],["color","primary",3,"mode","value",4,"ngIf"],["class","notification-bar",4,"ngIf"],[1,"loading-header"],[1,"coins"],[1,"dollars"],["color","primary",3,"mode","value"],[1,"notification-bar"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],["routerLink","/settings/pending-transactions"]],template:function(e,t){1&e&&(vs(0,"div",0),ru(1,"\n "),vs(2,"div",1),ru(3,"\n "),ru(4,"\n "),vs(5,"div",2),ru(6,"\n "),ys(7,"app-top-bar",3),ru(8,"\n "),vs(9,"div",4),ru(10,"\n "),vs(11,"div",5),ru(12,"\n "),hs(13,eA,3,3,"p",6),ru(14,"\n "),hs(15,tA,4,4,"p",7),ru(16,"\n "),hs(17,nA,6,10,"p",7),ru(18,"\n "),hs(19,sA,6,2,"p",8),ru(20,"\n "),_s(),ru(21,"\n "),_s(),ru(22,"\n "),vs(23,"div",9),ru(24,"\n "),hs(25,uA,3,3,"p",10),ru(26,"\n "),hs(27,lA,3,4,"p",10),ru(28,"\n "),hs(29,cA,3,4,"p",10),ru(30,"\n "),_s(),ru(31,"\n "),_s(),ru(32,"\n "),_s(),ru(33,"\n "),ys(34,"app-nav-bar"),ru(35,"\n "),hs(36,dA,1,2,"mat-progress-bar",11),ru(37,"\n "),ru(38,"\n "),hs(39,hA,10,8,"div",12),ru(40,"\n "),hs(41,fA,6,3,"div",12),ru(42,"\n "),hs(43,pA,6,3,"div",12),ru(44,"\n "),hs(45,vA,6,2,"div",12),ru(46,"\n"),_s(),ru(47,"\n")),2&e&&(Ya(7),ms("headline",t.headline),Ya(6),ms("ngIf",!t.synchronizationInfoObtained||t.synchronized&&!t.balanceObtained),Ya(2),ms("ngIf",t.synchronizationInfoObtained&&!t.synchronized),Ya(2),ms("ngIf",t.synchronized&&t.balanceObtained),Ya(2),ms("ngIf",t.showPrice),Ya(6),ms("ngIf",!t.synchronizationInfoObtained||t.synchronized&&!t.balanceObtained),Ya(2),ms("ngIf",t.synchronizationInfoObtained&&!t.synchronized),Ya(2),ms("ngIf",t.synchronized&&t.balanceObtained),Ya(7),ms("ngIf",!t.synchronized&&t.synchronizationInfoObtained),Ya(3),ms("ngIf",t.appService.updateAvailable),Ya(2),ms("ngIf",t.appService.csrfDisabled),Ya(2),ms("ngIf",!t.appService.csrfDisabled&&t.networkService.noConnections),Ya(2),ms("ngIf",t.hasPendingTxs||!t.synchronized&&t.synchronizationInfoObtained))},directives:[jP,lh,qP,$P,xD],pipes:[hM,Sh,NS,Ch],styles:[".-container[_ngcontent-%COMP%]{background-color:#fafafa;border-bottom:2px solid rgba(30,34,39,.05)}.large-header[_ngcontent-%COMP%]{background-repeat:no-repeat;background-position:50%;background-size:100% auto;background-size:cover;background-image:url(/customize/header.png)}.large-header[_ngcontent-%COMP%] .gradient[_ngcontent-%COMP%]{background-size:100% 100%;display:flex;flex-flow:column;align-items:stretch;min-height:190px;background-image:url(/customize/header-gradient.png)}.balance-container[_ngcontent-%COMP%]{align-items:center;color:#fff;display:flex;flex:1 1 auto;font-size:12px;justify-content:center;text-align:center}.balance-container[_ngcontent-%COMP%] .balance[_ngcontent-%COMP%] .coins[_ngcontent-%COMP%]{line-height:1;margin:0 0 .5em}.balance-container[_ngcontent-%COMP%] .balance[_ngcontent-%COMP%] .coins[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:4em}.balance-container[_ngcontent-%COMP%] .balance[_ngcontent-%COMP%] .loading-header[_ngcontent-%COMP%]{margin:0 0 .5em;font-size:2em}.balance-container[_ngcontent-%COMP%] .dollars[_ngcontent-%COMP%]{margin:0}.hour-balance[_ngcontent-%COMP%]{text-align:center}.hour-balance[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{background-color:hsla(0,0%,100%,.3);border-radius:1000px;color:#000;display:inline-block;font-size:12px;line-height:1.8;margin:1em 0 2em;padding:0 30px}.notification-bar[_ngcontent-%COMP%]{background-color:#ff004e;color:#fafafa;min-height:64px;display:flex;font-size:18px;padding:15px 30px;text-align:center;line-height:1.2}.notification-bar[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{margin:auto}.notification-bar[_ngcontent-%COMP%] div[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline;color:#fafafa}"]}),e}(),yA=["button"],bA=function(e){return{"red-text":e}};function wA(e,t){if(1&e&&(vs(0,"div",11),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys();ms("ngClass",Il(4,bA,n.data.warning)),Ya(1),au(Vl(2,2,n.data.description))}}function kA(e,t){if(1&e){var n=Ms();vs(0,"div",3),ru(1,"\n "),vs(2,"label",12),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),vs(6,"input",13),xs("keydown.enter",function(){return on(n),Ys().proceed()})("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(7,"\n "),_s()}if(2&e){var i=Ys();Ya(3),au(Vl(4,3,"password.confirm-password-label")),Ya(3),ms("appFormFieldError",i.password2ErrorMsg),ls("disabled",i.working?"true":null)}}var MA=function(e){return{"element-disabled":e}};function SA(e,t){if(1&e&&(vs(0,"a",14),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys();ms("ngClass",Il(5,MA,n.working))("href","#/reset/"+n.data.wallet.id,Pr),Ya(1),au(Vl(2,3,"password.reset-link"))}}var CA=function(e){return{"modal-form-container":e}},LA=function(){function e(e,t,n,i){this.data=e,this.dialogRef=t,this.msgBarService=n,this.changeDetector=i,this.passwordSubmit=new z,this.working=!1,this.password1ErrorMsg="",this.password2ErrorMsg="",this.data=Object.assign({confirm:!1,description:null,warning:!1,title:null,wallet:null},e||{})}return e.openDialog=function(t,n,i){void 0===i&&(i=!0);var r=new wk;return r.data=n,r.autoFocus=!0,r.width=i?"260px":jM.mediumModalWidth,t.open(e,r)},e.prototype.ngOnInit=function(){this.form=new xp({}),this.form.addControl("password",new Lp("")),this.form.addControl("confirm_password",new Lp("")),this.data.confirm?this.form.get("confirm_password").enable():this.form.get("confirm_password").disable(),this.form.setValidators(this.validateForm.bind(this)),this.data.description&&this.dialogRef.updateSize("400px")},e.prototype.ngOnDestroy=function(){this.msgBarService.hide(),this.passwordSubmit.complete()},e.prototype.proceed=function(){!this.working&&this.form.valid&&(this.msgBarService.hide(),this.button.setLoading(),this.working=!0,this.passwordSubmit.next({password:this.form.get("password").value,close:this.close.bind(this),error:this.error.bind(this)}),this.changeDetector.detectChanges())},e.prototype.validateForm=function(){this.password1ErrorMsg="",this.password2ErrorMsg="";var e=!0;return this.form.get("password").value||(e=!1,this.form.get("password").touched&&(this.password1ErrorMsg="password.password-error-info")),this.data.confirm&&(this.form.get("confirm_password").value||(e=!1,this.form.get("confirm_password").touched&&(this.password2ErrorMsg="password.password-error-info")),e&&this.form.get("password").value!==this.form.get("confirm_password").value&&(e=!1,this.password2ErrorMsg="password.confirm-error-info")),e?null:{Invalid:!0}},e.prototype.close=function(){this.dialogRef.close()},e.prototype.error=function(e){e.type||(e=VM(e)),e.translatableErrorMsg=e.translatableErrorMsg?e.translatableErrorMsg:"password.decrypting-error",this.msgBarService.showError(e),this.button.resetState(),this.working=!1},e.\u0275fac=function(t){return new(t||e)(ps(Tk),ps(Lk),ps(dL),ps(ll))},e.\u0275cmp=ft({type:e,selectors:[["app-password-dialog"]],viewQuery:function(e,t){var n;1&e&&lc(yA,5),2&e&&uc(n=dc())&&(t.button=n.first)},decls:31,vars:23,consts:[[3,"headline","dialog","disableDismiss"],[3,"ngClass",4,"ngIf"],[3,"ngClass","formGroup"],[1,"form-field"],["for","password"],["formControlName","password","id","password","type","password","appDontSavePassword","",3,"appFormFieldError","keydown.enter","blur"],["class","form-field",4,"ngIf"],["class","link",3,"ngClass","href",4,"ngIf"],[1,"-buttons"],[1,"primary-button",3,"disabled","action"],["button",""],[3,"ngClass"],["for","confirm_password"],["formControlName","confirm_password","id","confirm_password","type","password","appDontSavePassword","",3,"appFormFieldError","keydown.enter","blur"],[1,"link",3,"ngClass","href"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),Wl(2,"translate"),ru(3,"\n "),hs(4,wA,3,6,"div",1),ru(5,"\n "),vs(6,"div",2),ru(7,"\n "),vs(8,"div",3),ru(9,"\n "),vs(10,"label",4),ru(11),Wl(12,"translate"),_s(),ru(13,"\n "),vs(14,"input",5),xs("keydown.enter",function(){return t.proceed()})("blur",function(){return t.validateForm()}),_s(),ru(15,"\n "),_s(),ru(16,"\n "),hs(17,kA,8,5,"div",6),ru(18,"\n "),_s(),ru(19,"\n "),hs(20,SA,3,7,"a",7),ru(21,"\n "),vs(22,"div",8),ru(23,"\n "),vs(24,"app-button",9,10),xs("action",function(){return t.proceed()}),ru(26),Wl(27,"translate"),_s(),ru(28,"\n "),_s(),ru(29,"\n"),_s(),ru(30,"\n")),2&e&&(ms("headline",t.data.title?Vl(1,13,t.data.title):Vl(2,15,"password.title"))("dialog",t.dialogRef)("disableDismiss",t.working),Ya(4),ms("ngIf",t.data.description),Ya(2),ms("ngClass",Il(21,CA,t.data.description))("formGroup",t.form),Ya(5),au(Vl(12,17,"password.password-label")),Ya(3),ms("appFormFieldError",t.password1ErrorMsg),ls("disabled",t.working?"true":null),Ya(3),ms("ngIf",t.data.confirm),Ya(3),ms("ngIf",t.data.wallet),Ya(4),ms("disabled",!t.form.valid),Ya(2),ou("\n ",Vl(27,19,"password.proceed-button"),"\n "))},directives:[jk,lh,ah,ap,jp,Lf,rp,qp,FO,RO,ZC],pipes:[hM],styles:[".link[_ngcontent-%COMP%]{width:100%;display:inline-block;text-align:center}"]}),e}(),xA=["button"],TA=function(){function e(e,t){this.dialogRef=e,this.msgBarService=t,this.createRequested=new Zl,this.inputErrorMsg=""}return e.openDialog=function(t){var n=new wk;return n.autoFocus=!0,n.width=jM.mediumModalWidth,t.open(e,n)},e.prototype.ngOnInit=function(){this.form=new xp({}),this.form.addControl("quantity",new Lp(1)),this.form.setValidators(this.validateForm.bind(this))},e.prototype.ngOnDestroy=function(){this.msgBarService.hide(),this.createRequested.complete()},e.prototype.closePopup=function(){this.dialogRef.close()},e.prototype.continue=function(){var e=this;this.button.isLoading()||(this.msgBarService.hide(),this.button.setLoading(),this.createRequested.emit({howManyAddresses:this.form.value.quantity,callback:function(t,n){void 0===n&&(n=!1),e.button.resetState(),n?e.msgBarService.showError("wallet.add-addresses.error"):t&&e.closePopup()}}))},e.prototype.validateForm=function(){this.inputErrorMsg="";var e=!0,t=this.form.get("quantity").value;return(!t||t<1||t>100||t!==Math.round(t))&&(e=!1,this.form.get("quantity").touched&&(this.inputErrorMsg="wallet.add-addresses.quantity-error-info")),e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(Lk),ps(dL))},e.\u0275cmp=ft({type:e,selectors:[["app-number-of-addresses"]],viewQuery:function(e,t){var n;1&e&&lc(xA,5),2&e&&uc(n=dc())&&(t.button=n.first)},outputs:{createRequested:"createRequested"},decls:30,vars:18,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"form-field"],["for","quantity"],["formControlName","quantity","id","quantity","type","number","min","1","max","100",3,"appFormFieldError","keydown.enter","blur"],[1,"-buttons"],[3,"disabled","action"],[1,"primary-button",3,"disabled","action"],["button",""]],template:function(e,t){if(1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),vs(4,"div",1),ru(5,"\n "),vs(6,"div",2),ru(7,"\n "),vs(8,"label",3),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),vs(12,"input",4),xs("keydown.enter",function(){return t.continue()})("blur",function(){return t.validateForm()}),_s(),ru(13,"\n "),_s(),ru(14,"\n "),_s(),ru(15,"\n "),ru(16,"\n "),vs(17,"div",5),ru(18,"\n "),vs(19,"app-button",6),xs("action",function(){return t.closePopup()}),ru(20),Wl(21,"translate"),_s(),ru(22,"\n "),vs(23,"app-button",7,8),xs("action",function(){return t.continue()}),ru(25),Wl(26,"translate"),_s(),ru(27,"\n "),_s(),ru(28,"\n"),_s(),ru(29,"\n")),2&e){var n=fs(24);ms("headline",Vl(1,10,"wallet.add-addresses.title"))("dialog",t.dialogRef)("disableDismiss",n.isLoading()),Ya(4),ms("formGroup",t.form),Ya(5),au(Vl(10,12,"wallet.add-addresses.quantity-label")),Ya(3),ms("appFormFieldError",t.inputErrorMsg),Ya(7),ms("disabled",n&&n.isLoading()),Ya(1),ou("\n ",Vl(21,14,"common.cancel-button"),"\n "),Ya(3),ms("disabled",!t.form.valid),Ya(2),ou("\n ",Vl(26,16,"common.create-button"),"\n ")}},directives:[jk,ap,jp,Lf,Ip,am,im,rp,qp,RO,ZC],pipes:[hM],styles:[""]}),e}();function DA(e,t){if(1&e&&(ys(0,"app-hw-message",4),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,3,"hardware-wallet.confirm-address.instructions"))("lowerBigText",n.data.wallet.addresses[n.data.addressIndex].address)("icon",n.msgIcons.Confirm)}}function OA(e,t){if(1&e&&(ys(0,"app-hw-message",5),Wl(1,"translate")),2&e){var n=Ys();ms("text",Vl(1,2,n.result.text))("icon",n.result.icon)}}function EA(e,t){if(1&e){var n=Ms();vs(0,"div",6),ru(1,"\n "),vs(2,"app-button",7,8),xs("action",function(){return on(n),Ys().closeModal()}),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()}2&e&&(Ya(4),ou("\n ",Vl(5,1,"common.close-button"),"\n "))}var YA=function(){return function(){}}(),PA=function(e){function t(t,n,i,r){var a=e.call(this,r,n)||this;return a.data=t,a.dialogRef=n,a.hardwareWalletService=i,a.operationSubscription=a.hardwareWalletService.confirmAddress(t.wallet,t.addressIndex).subscribe(function(){a.showResult({text:t.showCompleteConfirmation?"hardware-wallet.confirm-address.confirmation":"hardware-wallet.confirm-address.short-confirmation",icon:a.msgIcons.Success})},function(e){return a.processHwOperationError(e)}),a}return vf(t,e),t.openDialog=function(e,n){var i=new wk;return i.width="566px",i.autoFocus=!1,i.data=n,e.open(t,i)},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(YE),ps(gC))},t.\u0275cmp=ft({type:t,selectors:[["app-hw-confirm-address-dialog"]],features:[Ko],decls:13,vars:8,consts:[[3,"headline","dialog","disableDismiss"],[3,"text","lowerBigText","icon",4,"ngIf"],[3,"text","icon",4,"ngIf"],["class","-buttons",4,"ngIf"],[3,"text","lowerBigText","icon"],[3,"text","icon"],[1,"-buttons"],[1,"primary-button",3,"action"],["closeButton",""]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,DA,2,5,"app-hw-message",1),ru(5,"\n\n "),ru(6,"\n "),hs(7,OA,2,4,"app-hw-message",2),ru(8,"\n\n "),ru(9,"\n "),hs(10,EA,7,3,"div",3),ru(11,"\n"),_s(),ru(12,"\n")),2&e&&(ms("headline",Vl(1,6,"hardware-wallet.confirm-address.title"))("dialog",t.dialogRef)("disableDismiss",t.currentState===t.states.Initial),Ya(4),ms("ngIf",t.currentState===t.states.Initial),Ya(3),ms("ngIf",t.currentState===t.states.ShowingResult),Ya(3),ms("ngIf",t.currentState!==t.states.Initial))},directives:[jk,lh,oC,ZC],pipes:[hM],styles:[""]}),t}(yC),AA=function(e){return e.new="new",e.scan="scan",e}({}),IA=function(){function e(e){this.dialogRef=e,this.addressOptions=AA}return e.openDialog=function(t){var n=new wk;return n.autoFocus=!1,n.width=jM.mediumModalWidth,t.open(e,n)},e.prototype.closePopup=function(){this.dialogRef.close()},e.prototype.select=function(e){this.dialogRef.close(e)},e.\u0275fac=function(t){return new(t||e)(ps(Lk))},e.\u0275cmp=ft({type:e,selectors:[["app-address-options"]],decls:37,vars:13,consts:[[3,"headline","dialog"],[1,"list-button-container","light-button-theme"],["mat-button","","color","primary",1,"top-line",3,"click"],[1,"content"],["src","assets/img/plus-green.png"],["mat-button","","color","primary",3,"click"],["src","assets/img/search-gold.png"],[1,"help-icon",3,"matTooltip"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),vs(3,"div",1),ru(4,"\n "),ru(5,"\n "),vs(6,"button",2),xs("click",function(){return t.select(t.addressOptions.new)}),ru(7,"\n "),vs(8,"div",3),ru(9,"\n "),ys(10,"img",4),ru(11,"\n "),vs(12,"span"),ru(13),Wl(14,"translate"),_s(),ru(15,"\n "),_s(),ru(16,"\n "),_s(),ru(17,"\n "),ru(18,"\n "),vs(19,"button",5),xs("click",function(){return t.select(t.addressOptions.scan)}),ru(20,"\n "),vs(21,"div",3),ru(22,"\n "),ys(23,"img",6),ru(24,"\n "),vs(25,"span"),ru(26),Wl(27,"translate"),vs(28,"mat-icon",7),Wl(29,"translate"),ru(30,"help"),_s(),ru(31,"\n "),_s(),ru(32,"\n "),_s(),ru(33,"\n "),_s(),ru(34,"\n "),_s(),ru(35,"\n"),_s(),ru(36,"\n")),2&e&&(ms("headline",Vl(1,5,"wallet.address-options.title"))("dialog",t.dialogRef),Ya(13),au(Vl(14,7,"wallet.address-options.new")),Ya(13),ou("\n ",Vl(27,9,"wallet.address-options.scan"),"\n "),Ya(2),ms("matTooltip",Vl(29,11,"wallet.address-options.scan-help")))},directives:[jk,SC,WC,YO],pipes:[hM],styles:[".content[_ngcontent-%COMP%]{display:flex;align-items:center}.content[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:32px;width:32px;margin-right:5px}.content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:13px;line-height:1.7;color:#1e2227}"]}),e}(),RA=n(29609),FA=function(){function e(e,t,n){this.walletsAndAddressesService=e,this.apiService=t,this.storageService=n}return e.prototype.getTransactionsHistory=function(e){var t,n=this,i=new Map;return(e?bm([e]):this.walletsAndAddressesService.allWallets).pipe(eS(),ue(function(e){var t=[];e.forEach(function(e){e.addresses.map(function(n){t.push(n),(!i.has(n.address)||i.get(n.address).addresses.length0&&r.length<3){var a=r[0];for(i=r[0].length-3;i>0;i-=3)a=a.substr(0,i)+","+a.substr(i),i<=t&&(t+=1);var o=0;this.lastBackspaceDate&&(new Date).getTime()-this.lastBackspaceDate<30&&","===a.charAt(t-1)&&(o+=1),this.el.nativeElement.value=a+(r.length>1?"."+r[1]:""),this.el.nativeElement.selectionStart=t-o,this.el.nativeElement.selectionEnd=t-o}}}},e.prototype.p1=function(e){this.lastBackspaceDate=8===e.keyCode?(new Date).getTime():null},e.\u0275fac=function(t){return new(t||e)(ps(Fu))},e.\u0275dir=bt({type:e,selectors:[["","appFormatNumber",""]],hostBindings:function(e,t){1&e&&xs("ngModelChange",function(){return t.onChange()})("keydown",function(e){return t.p1(e)})}}),e}(),jA=["qrArea"];function NA(e,t){if(1&e){var n=Ms();vs(0,"div",6),ru(1,"\n "),vs(2,"div",7),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),vs(6,"div",8),xs("click",function(){on(n);var e=Ys();return e.copyText(e.currentQrContent)}),vs(7,"span",9),ru(8),_s(),vs(9,"span",10),ru(10,"\uf0c5"),_s(),_s(),ru(11,"\n "),_s()}if(2&e){var i=Ys();Ya(3),au(Vl(4,2,"qr.data-label")),Ya(5),au(i.currentQrContent)}}function BA(e,t){if(1&e){var n=Ms();vs(0,"app-arrow-link",14),xs("pressed",function(){return on(n),Ys().showForm()}),ru(1,"\n "),_s()}2&e&&ms("text","qr.request-link")("noPadding",!0)}function WA(e,t){1&e&&ys(0,"div",15)}function VA(e,t){1&e&&(vs(0,"span",25),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"qr.invalid")))}function UA(e,t){1&e&&(vs(0,"span",25),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"qr.invalid")))}function zA(e,t){if(1&e&&(vs(0,"div",16),ru(1,"\n "),vs(2,"div",17),ru(3,"\n "),vs(4,"label",18),ru(5),Wl(6,"translate"),hs(7,VA,3,3,"span",19),ru(8,"\n "),_s(),ru(9,"\n "),ys(10,"input",20),ru(11,"\n "),_s(),ru(12,"\n "),vs(13,"div",17),ru(14,"\n "),vs(15,"label",21),ru(16),Wl(17,"translate"),hs(18,UA,3,3,"span",19),ru(19,"\n "),_s(),ru(20,"\n "),ys(21,"input",22),ru(22,"\n "),_s(),ru(23,"\n "),vs(24,"div",17),ru(25,"\n "),vs(26,"label",23),ru(27),Wl(28,"translate"),_s(),ru(29,"\n "),ys(30,"input",24),ru(31,"\n "),_s(),ru(32,"\n "),_s()),2&e){var n=Ys();ms("formGroup",n.form),Ya(5),ou("\n ",Vl(6,6,"qr.amount-label")," "),Ya(2),ms("ngIf",n.invalidCoins),Ya(9),ou("\n ",Vl(17,8,"qr.hours-label")," "),Ya(2),ms("ngIf",n.invalidHours),Ya(9),ou("\n ",Vl(28,10,"qr.message-label"),"\n ")}}var qA=function(){function e(){}return e.size=180,e.level="M",e.colordark="#000000",e.colorlight="#ffffff",e.usesvg=!1,e}(),GA=function(){function e(e,t,n,i,r){this.data=e,this.dialogRef=t,this.formBuilder=n,this.msgBarService=i,this.appService=r,this.formVisible=!1,this.invalidCoins=!1,this.invalidHours=!1,this.subscriptionsGroup=[],this.updateQrEvent=new z}return e.openDialog=function(t,n){var i=new wk;i.data=n,i.width="390px",t.open(e,i)},e.prototype.ngOnInit=function(){var e=this;setTimeout(function(){e.initForm(),e.updateQrContent()})},e.prototype.ngOnDestroy=function(){this.subscriptionsGroup.forEach(function(e){return e.unsubscribe()}),this.msgBarService.hide()},e.prototype.showForm=function(){this.formVisible=!0},e.prototype.copyText=function(e){IM(e),this.msgBarService.showDone("common.copied",4e3)},e.prototype.initForm=function(){var e=this;this.form=this.formBuilder.group({coins:[""],hours:[""],note:[""]}),this.subscriptionsGroup.push(this.form.get("coins").valueChanges.subscribe(this.reportValueChanged.bind(this))),this.subscriptionsGroup.push(this.form.get("hours").valueChanges.subscribe(this.reportValueChanged.bind(this))),this.subscriptionsGroup.push(this.form.get("note").valueChanges.subscribe(this.reportValueChanged.bind(this))),this.subscriptionsGroup.push(this.updateQrEvent.pipe(Bv(500)).subscribe(function(){e.updateQrContent()}))},e.prototype.reportValueChanged=function(){this.updateQrEvent.next(!0)},e.prototype.updateQrContent=function(){if(this.data.showAddressOnly)return this.currentQrContent=this.data.address,void this.updateQrCode();this.currentQrContent=this.appService.uriSpecificatioPrefix.toLowerCase()+":"+this.data.address,this.invalidCoins=!1,this.invalidHours=!1;var e="?";if(this.form.get("coins").value){var t=new CM.BigNumber(HM(this.form.get("coins").value));!t.isNaN()&&t.isGreaterThan(0)&&t.decimalPlaces()<=this.appService.currentMaxDecimals?(this.currentQrContent+=e+"amount="+t.toString(),e="&"):this.invalidCoins=!0}if(this.form.get("hours").value){var n=new CM.BigNumber(HM(this.form.get("hours").value));!n.isNaN()&&n.isGreaterThan(0)&&0===n.decimalPlaces()?(this.currentQrContent+=e+"hours="+n.toString(),e="&"):this.invalidHours=!0}var i=this.form.get("note").value;i&&(this.currentQrContent+=e+"message="+encodeURIComponent(i)),this.updateQrCode()},e.prototype.updateQrCode=function(){this.qrArea.nativeElement.innerHTML="",new QRCode(this.qrArea.nativeElement,{text:this.currentQrContent,width:qA.size,height:qA.size,colorDark:qA.colordark,colorLight:qA.colorlight,useSVG:qA.usesvg,correctLevel:QRCode.CorrectLevel[qA.level]})},e.\u0275fac=function(t){return new(t||e)(ps(Tk),ps(Lk),ps(fm),ps(dL),ps(jS))},e.\u0275cmp=ft({type:e,selectors:[["app-qr-code"]],viewQuery:function(e,t){var n;1&e&&lc(jA,5),2&e&&uc(n=dc())&&(t.qrArea=n.first)},decls:36,vars:12,consts:[[3,"headline","dialog"],[1,"qr-container"],[1,"qr"],["qrArea",""],[1,"separator"],["class","data-container",4,"ngIf"],[1,"data-container"],[1,"title"],[1,"data",3,"click"],[1,"text"],[1,"fa","copy"],[3,"text","noPadding","pressed",4,"ngIf"],["class","separator form-separator",4,"ngIf"],[3,"formGroup",4,"ngIf"],[3,"text","noPadding","pressed"],[1,"separator","form-separator"],[3,"formGroup"],[1,"form-field"],["for","coins"],["class","red-text",4,"ngIf"],["appFormatNumber","","maxlength","20","formControlName","coins","id","coins"],["for","hours"],["appFormatNumber","","maxlength","20","formControlName","hours","id","hours"],["for","note"],["maxlength","100","formControlName","note","id","note"],[1,"red-text"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),vs(4,"div",1),ru(5,"\n "),ys(6,"div",2,3),ru(8,"\n "),_s(),ru(9,"\n "),ru(10,"\n "),ys(11,"div",4),ru(12,"\n "),hs(13,NA,12,4,"div",5),ru(14,"\n "),vs(15,"div",6),ru(16,"\n "),vs(17,"div",7),ru(18),Wl(19,"translate"),_s(),ru(20,"\n "),vs(21,"div",8),xs("click",function(){return t.copyText(t.data.address)}),vs(22,"span",9),ru(23),_s(),vs(24,"span",10),ru(25,"\uf0c5"),_s(),_s(),ru(26,"\n "),_s(),ru(27,"\n\n "),hs(28,BA,2,2,"app-arrow-link",11),ru(29,"\n\n "),ru(30,"\n "),hs(31,WA,1,0,"div",12),ru(32,"\n "),hs(33,zA,33,12,"div",13),ru(34,"\n"),_s(),ru(35,"\n")),2&e&&(ms("headline",Vl(1,8,"qr.title"))("dialog",t.dialogRef),Ya(13),ms("ngIf",!t.data.showAddressOnly),Ya(5),au(Vl(19,10,"qr.address-label")),Ya(5),au(t.data.address),Ya(5),ms("ngIf",!t.formVisible&&!t.data.showAddressOnly),Ya(3),ms("ngIf",t.formVisible),Ya(2),ms("ngIf",t.formVisible))},directives:[jk,lh,jO,ap,jp,Lf,HA,lm,rp,qp],pipes:[hM],styles:[".qr-container[_ngcontent-%COMP%]{text-align:center;margin-bottom:24px}.qr-container[_ngcontent-%COMP%] .qr[_ngcontent-%COMP%]{height:180px;width:180px;display:inline-block}.separator[_ngcontent-%COMP%]{background-color:rgba(30,34,39,.2);height:1px;width:100%}.form-separator[_ngcontent-%COMP%]{margin-bottom:14px}.data-container[_ngcontent-%COMP%]{margin:14px 0}.data-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{color:rgba(30,34,39,.5)}.data-container[_ngcontent-%COMP%] .data[_ngcontent-%COMP%]{color:#1e2227;cursor:pointer}.data-container[_ngcontent-%COMP%] .data[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{margin-right:5px;word-break:break-word}.data-container[_ngcontent-%COMP%] .data[_ngcontent-%COMP%] .copy[_ngcontent-%COMP%]{opacity:.25}.data-container[_ngcontent-%COMP%] .data[_ngcontent-%COMP%]:hover .copy[_ngcontent-%COMP%]{opacity:.75}.data-container[_ngcontent-%COMP%] .data[_ngcontent-%COMP%]:active .copy[_ngcontent-%COMP%]{opacity:1}"]}),e}(),KA=function(){function e(e){this.dialog=e,this.showAddressOnly=!1}return e.prototype.showQrCode=function(e){e.stopPropagation(),GA.openDialog(this.dialog,{address:this.address,showAddressOnly:this.showAddressOnly})},e.\u0275fac=function(t){return new(t||e)(ps(Pk))},e.\u0275cmp=ft({type:e,selectors:[["app-qr-code-button"]],inputs:{address:"address",showAddressOnly:"showAddressOnly"},decls:2,vars:0,consts:[["src","assets/img/qr-code-black.png",3,"click"]],template:function(e,t){1&e&&(vs(0,"img",0),xs("click",function(e){return t.showQrCode(e)}),_s(),ru(1,"\n"))},styles:[".primary-button[_ngcontent-%COMP%] button.enabled[_ngcontent-%COMP%], .primary-gradient-background[_ngcontent-%COMP%]{background:#0072ff;background:linear-gradient(to bottom right,#0072ff,#00c3ff)}.primary-button[_ngcontent-%COMP%] button.enabled[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .primary-gradient-background[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#fff}.dark-button[_ngcontent-%COMP%] button.enabled[_ngcontent-%COMP%]{background-color:#1e2227!important}.dark-button[_ngcontent-%COMP%] button.enabled[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#fff}.ghost-button[_ngcontent-%COMP%] button.enabled[_ngcontent-%COMP%]{background-color:transparent!important}.ghost-button[_ngcontent-%COMP%] button.enabled[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#000}.image-button[_ngcontent-%COMP%], img[_ngcontent-%COMP%]{cursor:pointer;opacity:.5}.image-button[_ngcontent-%COMP%]:hover, img[_ngcontent-%COMP%]:hover{opacity:.75}.image-button[_ngcontent-%COMP%]:active, img[_ngcontent-%COMP%]:active{opacity:1}[_nghost-%COMP%]{display:inline-flex;flex-shrink:0}img[_ngcontent-%COMP%]{width:17px}"]}),e}();function JA(e,t){1&e&&ys(0,"mat-spinner")}var ZA=function(e,t){return{"-img -address-options":e,"-disabled-span":t}},$A=function(e,t){return{"-img":!0,"-show-empty":e,"-hide-empty":t}};function XA(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),vs(2,"div",5),xs("click",function(){return on(n),Ys().openAddressOptions()}),ru(3,"\n "),vs(4,"span",6),ru(5,"\n "),hs(6,JA,1,0,"mat-spinner",1),ru(7),Wl(8,"translate"),_s(),ru(9,"\n "),_s(),ru(10,"\n "),vs(11,"div",5),xs("click",function(){return on(n),Ys().toggleEmpty()}),ru(12,"\n "),vs(13,"span",6),ru(14),Wl(15,"translate"),_s(),ru(16,"\n "),_s(),ru(17,"\n "),ws()}if(2&e){var i=Ys();Ya(4),ms("ngClass",Rl(9,ZA,!i.workingWithAddresses,i.workingWithAddresses)),Ya(2),ms("ngIf",i.workingWithAddresses),Ya(1),ou("\n ",Vl(8,5,"wallet.address-options.title"),"\n "),Ya(6),ms("ngClass",Rl(12,$A,i.hideEmpty,!i.hideEmpty)),Ya(1),ou("\n ",Vl(15,7,"wallet."+(i.hideEmpty?"show":"hide")+"-empty-button"),"\n ")}}function QA(e,t){if(1&e){var n=Ms();vs(0,"div",8),xs("click",function(){return on(n),Ys().deleteHwWallet()}),ru(1,"\n "),vs(2,"span",9),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}2&e&&(Ya(3),au(Vl(4,1,"wallet.delete-button")))}var eI=function(e,t){return{"-img":!0,"-enable-encryption":e,"-disable-encryption":t}};function tI(e,t){if(1&e){var n=Ms();vs(0,"div",5),xs("click",function(){return on(n),Ys().toggleEncryption()}),ru(1,"\n "),vs(2,"span",6),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("ngClass",Rl(4,eI,!i.wallet.encrypted,i.wallet.encrypted)),Ya(1),ou("\n ",Vl(4,2,"wallet."+(i.wallet.encrypted?"decrypt":"encrypt")+"-button"),"\n ")}}function nI(e,t){1&e&&ys(0,"mat-spinner")}function iI(e,t){1&e&&ys(0,"mat-spinner")}var rI=function(e){return{copying:e}};function aI(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),ys(2,"app-qr-code-button",23),ru(3,"\n "),vs(4,"p",24),xs("click",function(e){on(n);var t=Ys(2).$implicit;return Ys().copyAddress(e,t)})("mouseleave",function(){on(n);var e=Ys(2).$implicit;return Ys().copying.delete(e.address)}),ru(5),hs(6,iI,1,0,"mat-spinner",1),ru(7,"\n "),vs(8,"span",25),Wl(9,"translate"),ru(10),Wl(11,"translate"),_s(),ru(12,"\n "),_s(),ru(13,"\n "),ws()}if(2&e){var i=Ys(2),r=i.$implicit,a=i.index,o=Ys();Ya(2),ms("address",r.address),Ya(2),ms("ngClass",Il(10,rI,o.copying.has(r.address))),Ya(1),ou("\n ",r.address,"\n "),Ya(1),ms("ngIf",o.confirmingIndex===a),Ya(2),ls("data-label",Vl(9,6,"wallet.address.copied")),Ya(2),ou("\n ",Vl(11,8,"wallet.address.copy"),"\n ")}}function oI(e,t){1&e&&ys(0,"mat-spinner")}function sI(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),vs(2,"p",26),xs("click",function(){on(n);var e=Ys(2).index,t=Ys();return t.confirmAddress(t.wallet,e,!0)}),ru(3,"\n "),vs(4,"span",27),ru(5),_s(),ru(6,"\n "),vs(7,"span",28),ru(8),Wl(9,"translate"),hs(10,oI,1,0,"mat-spinner",1),ru(11,"\n "),_s(),ru(12,"\n "),_s(),ru(13,"\n "),ws()}if(2&e){var i=Ys(2),r=i.$implicit,a=i.index,o=Ys();Ya(5),au(r.address),Ya(3),ou("\n ",Vl(9,3,"wallet.address.show"),"\n "),Ya(2),ms("ngIf",o.confirmingIndex===a)}}function uI(e,t){if(1&e){var n=Ms();vs(0,"button",29),xs("click",function(e){on(n);var t=Ys(2).$implicit;return Ys().copyAddress(e,t,1e3)}),ru(1),Wl(2,"translate"),_s()}if(2&e){var i=Ys(2).$implicit,r=Ys();Ya(1),ou("\n ",Vl(2,1,"wallet.address."+(r.copying.has(i.address)?"copied":"copy-address")),"\n ")}}function lI(e,t){if(1&e){var n=Ms();vs(0,"button",29),xs("click",function(){on(n);var e=Ys(2),t=e.index,i=e.$implicit,r=Ys();return r.confirmAddress(r.wallet,t,!i.confirmed)}),ru(1),Wl(2,"translate"),_s()}2&e&&(Ya(1),ou("\n ",Vl(2,1,"wallet.address.confirm"),"\n "))}var cI=function(e){return{addr:e}};function dI(e,t){if(1&e&&(vs(0,"div",11),ru(1,"\n "),ru(2,"\n "),vs(3,"div",12),ru(4),_s(),ru(5,"\n "),ru(6,"\n "),vs(7,"div",13),ru(8,"\n "),ru(9,"\n "),hs(10,aI,14,12,"ng-container",1),ru(11,"\n "),ru(12,"\n "),hs(13,sI,14,5,"ng-container",1),ru(14,"\n "),_s(),ru(15,"\n "),ru(16,"\n "),vs(17,"div",14),ru(18),Wl(19,"amount"),_s(),ru(20,"\n "),vs(21,"div",15),ru(22),Wl(23,"amount"),_s(),ru(24,"\n "),ru(25,"\n "),vs(26,"div",16),ru(27,"\n "),vs(28,"mat-icon",17),ru(29,"more_vert"),_s(),ru(30,"\n "),vs(31,"mat-menu",18,19),ru(33,"\n "),hs(34,uI,3,3,"button",20),ru(35,"\n "),hs(36,lI,3,3,"button",20),ru(37,"\n "),vs(38,"button",21),ru(39),Wl(40,"translate"),_s(),ru(41,"\n "),vs(42,"button",22),ru(43),Wl(44,"translate"),_s(),ru(45,"\n "),_s(),ru(46,"\n "),_s(),ru(47,"\n "),_s()),2&e){var n=fs(32),i=Ys(),r=i.index,a=i.$implicit,o=Ys();Ya(4),au(r+1),Ya(6),ms("ngIf",!o.wallet.isHardware||a.confirmed),Ya(3),ms("ngIf",o.wallet.isHardware&&!a.confirmed),Ya(5),au(zl(19,13,a.coins?a.coins:0,!0,"first")),Ya(4),au(zl(23,17,a.hours?a.hours:0,!1,"first")),Ya(6),ms("matMenuTriggerFor",n),Ya(3),ms("overlapTrigger",!1),Ya(3),ms("ngIf",!o.wallet.isHardware||a.confirmed),Ya(2),ms("ngIf",o.wallet.isHardware),Ya(2),ms("queryParams",Il(25,cI,a.address)),Ya(1),ou("\n ",Vl(40,21,"wallet.address.outputs"),"\n "),Ya(3),ms("queryParams",Il(27,cI,a.address)),Ya(1),ou("\n ",Vl(44,23,"wallet.address.history"),"\n ")}}function hI(e,t){if(1&e&&(bs(0),ru(1,"\n "),hs(2,dI,48,29,"div",10),ru(3,"\n"),ws()),2&e){var n=t.$implicit,i=Ys();Ya(2),ms("ngIf",!i.hideEmpty||n.coins.isGreaterThan(0))}}var fI=function(e,t){return{"-img -rename-wallet":e,"-disabled-span":t}},pI=function(){function e(e,t,n,i,r,a,o,s,u){this.dialog=e,this.msgBarService=t,this.hwWalletService=n,this.translateService=i,this.router=r,this.walletsAndAddressesService=a,this.softwareWalletService=o,this.hardwareWalletService=s,this.historyService=u,this.confirmingIndex=null,this.workingWithAddresses=!1,this.preparingToRename=!1,this.hideEmpty=!1,this.copying=new Map}return e.prototype.ngOnDestroy=function(){this.msgBarService.hide(),this.renameSubscription&&this.renameSubscription.unsubscribe(),this.confirmSubscription&&this.confirmSubscription.unsubscribe(),this.txHistorySubscription&&this.txHistorySubscription.unsubscribe(),this.numberOfAddressesSubscription&&this.numberOfAddressesSubscription.unsubscribe(),this.scanSubscription&&this.scanSubscription.unsubscribe(),this.addAddressesSubscription&&this.addAddressesSubscription.unsubscribe()},e.prototype.renameWallet=function(){var e=this;this.preparingToRename||(sP.busy?this.msgBarService.showError("wallet.busy-error"):(this.msgBarService.hide(),this.wallet.isHardware?(this.preparingToRename=!0,sP.busy=!0,this.renameSubscription=this.hwWalletService.checkIfCorrectHwConnected(this.wallet.addresses[0].address).pipe(ue(function(){return e.hardwareWalletService.getFeaturesAndUpdateData(e.wallet)})).subscribe(function(t){e.continueRenameWallet(),e.preparingToRename=!1,sP.busy=!1,t.walletNameUpdated&&e.msgBarService.showWarning("hardware-wallet.general.name-updated")},function(t){e.msgBarService.showError(t),e.preparingToRename=!1,sP.busy=!1})):this.continueRenameWallet()))},e.prototype.openAddressOptions=function(){var e=this;this.workingWithAddresses||(sP.busy?this.msgBarService.showError("wallet.busy-error"):IA.openDialog(this.dialog).afterClosed().subscribe(function(t){t===AA.new?e.newAddresses():t===AA.scan&&e.scanAddresses()}))},e.prototype.newAddresses=function(){var e=this;if(!this.workingWithAddresses)if(sP.busy)this.msgBarService.showError("wallet.busy-error");else if(this.wallet.isHardware&&this.wallet.addresses.length>=jM.maxHardwareWalletAddresses)vO.openDialog(this.dialog,{text:"wallet.max-hardware-wallets-error",headerText:"common.error",defaultButtons:gO.Close});else if(this.msgBarService.hide(),this.wallet.isHardware)this.continueNewAddress(1);else{var t=TA.openDialog(this.dialog),n=jM.maxAddressesGap;this.numberOfAddressesSubscription=t.componentInstance.createRequested.subscribe(function(t){var i=t.howManyAddresses,r=t.callback,a=0;e.wallet.addresses.forEach(function(e,t){e.coins.isGreaterThan(0)&&(a=t)}),e.wallet.addresses.length-(a+1)+i-1}},{key:"_isBadInput",value:function(){var e=this._elementRef.nativeElement.validity;return e&&e.badInput}},{key:"empty",get:function(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}},{key:"shouldLabelFloat",get:function(){if(this._isNativeSelect){var e=this._elementRef.nativeElement,t=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&t&&t.label)}return this.focused||!this.empty}},{key:"setDescribedByIds",value:function(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}},{key:"onContainerClick",value:function(){this.focused||this.focus()}}]),n}(TI);return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(yg),ps(np,10),ps(Ep,8),ps(jp,8),ps(zw),ps(CI,10),ps(bI),ps(Fc),ps(MI,8))},e.\u0275dir=bt({type:e,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-input-element","mat-form-field-autofill-control"],hostVars:9,hostBindings:function(e,t){1&e&&xs("focus",function(){return t._focusChanged(!0)})("blur",function(){return t._focusChanged(!1)})("input",function(){return t._onInput()}),2&e&&(du("disabled",t.disabled)("required",t.required),ls("id",t.id)("data-placeholder",t.placeholder)("readonly",t.readonly&&!t._isNativeSelect||null)("aria-invalid",t.empty&&t.required?null:t.errorState)("aria-required",t.required),qs("mat-input-server",t._isServer))},inputs:{id:"id",disabled:"disabled",required:"required",type:"type",value:"value",readonly:"readonly",placeholder:"placeholder",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"]},exportAs:["matInput"],features:[Du([{provide:kI,useExisting:e}]),Ko,At]}),e}(),OI=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[zw],imports:[[wI,SI,jw],wI,SI]}),e}(),EI=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[jw],jw]}),e}(),YI=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[qw,ik,jw,ak,Th],qw,jw,ak,EI]}),e}(),PI=["trigger"],AI=["panel"];function II(e,t){if(1&e&&(vs(0,"span",8),ru(1),_s()),2&e){var n=Ys();Ya(1),au(n.placeholder)}}function RI(e,t){if(1&e&&(vs(0,"span",12),ru(1),_s()),2&e){var n=Ys(2);Ya(1),au(n.triggerValue)}}function FI(e,t){1&e&&Is(0,0,["*ngSwitchCase","true"])}function HI(e,t){1&e&&(vs(0,"span",9),ru(1,"\n "),hs(2,RI,2,1,"span",10),ru(3,"\n "),hs(4,FI,1,0,"ng-content",11),ru(5,"\n "),_s()),2&e&&(ms("ngSwitch",!!Ys().customTrigger),Ya(4),ms("ngSwitchCase",!0))}function jI(e,t){if(1&e){var n=Ms();ru(0,"\n "),vs(1,"div",13),ru(2,"\n "),vs(3,"div",14,15),xs("@transformPanel.done",function(e){return on(n),Ys()._panelDoneAnimatingStream.next(e.toState)})("keydown",function(e){return on(n),Ys()._handleKeydown(e)}),ru(5,"\n "),Is(6,1),ru(7,"\n "),_s(),ru(8,"\n "),_s(),ru(9,"\n")}if(2&e){var i=Ys();Ya(1),ms("@transformPanelWrap",void 0),Ya(2),cu("mat-select-panel ",i._getPanelTheme(),""),zs("transform-origin",i._transformOrigin)("font-size",i._triggerFontSize,"px"),ms("ngClass",i.panelClass)("@transformPanel",i.multiple?"showing-multiple":"showing"),ls("id",i.id+"-panel")("aria-multiselectable",i.multiple)("aria-label",i.ariaLabel||null)("aria-labelledby",i._getPanelAriaLabelledby())}}var NI=[[["mat-select-trigger"]],"*"],BI=["mat-select-trigger","*"],WI={transformPanelWrap:F_("transformPanelWrap",[V_("* => void",z_("@transformPanel",[U_()],{optional:!0}))]),transformPanel:F_("transformPanel",[B_("void",N_({transform:"scaleY(0.8)",minWidth:"100%",opacity:0})),B_("showing",N_({opacity:1,minWidth:"calc(100% + 32px)",transform:"scaleY(1)"})),B_("showing-multiple",N_({opacity:1,minWidth:"calc(100% + 64px)",transform:"scaleY(1)"})),V_("void => *",H_("120ms cubic-bezier(0, 0, 0.2, 1)")),V_("* => void",H_("100ms 25ms linear",N_({opacity:0})))])},VI=0,UI=256,zI=new Mi("mat-select-scroll-strategy"),qI=new Mi("MAT_SELECT_CONFIG"),GI={provide:zI,deps:[Dv],useFactory:function(e){return function(){return e.scrollStrategies.reposition()}}},KI=function e(t,n){s(this,e),this.source=t,this.value=n},JI=Ww(Vw(Nw(Uw(function(){return function e(t,n,i,r,a){s(this,e),this._elementRef=t,this._defaultErrorStateMatcher=n,this._parentForm=i,this._parentFormGroup=r,this.ngControl=a}}())))),ZI=new Mi("MatSelectTrigger"),$I=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275dir=bt({type:e,selectors:[["mat-select-trigger"]],features:[Du([{provide:ZI,useExisting:e}])]}),e}(),XI=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o,u,l,c,d,f,p,m,g,v){var _,y,w,k;return s(this,n),(_=t.call(this,o,a,l,c,f))._viewportRuler=e,_._changeDetectorRef=i,_._ngZone=r,_._dir=u,_._parentFormField=d,_._liveAnnouncer=g,_._defaultOptions=v,_._panelOpen=!1,_._compareWith=function(e,t){return e===t},_._uid="mat-select-".concat(VI++),_._triggerAriaLabelledBy=null,_._destroy=new z,_._onChange=function(){},_._onTouched=function(){},_._valueId="mat-select-value-".concat(VI++),_._panelDoneAnimatingStream=new z,_._overlayPanelClass=(null===(y=_._defaultOptions)||void 0===y?void 0:y.overlayPanelClass)||"",_._focused=!1,_.controlType="mat-select",_._required=!1,_._multiple=!1,_._disableOptionCentering=null!==(k=null===(w=_._defaultOptions)||void 0===w?void 0:w.disableOptionCentering)&&void 0!==k&&k,_.ariaLabel="",_.optionSelectionChanges=yk(function(){var e=_.options;return e?e.changes.pipe(Qm(e),eg(function(){return pe.apply(void 0,b(e.map(function(e){return e.onSelectionChange})))})):_._ngZone.onStable.pipe(zg(1),eg(function(){return _.optionSelectionChanges}))}),_.openedChange=new Zl,_._openedStream=_.openedChange.pipe(zm(function(e){return e}),K(function(){})),_._closedStream=_.openedChange.pipe(zm(function(e){return!e}),K(function(){})),_.selectionChange=new Zl,_.valueChange=new Zl,_.ngControl&&(_.ngControl.valueAccessor=h(_)),null!=(null==v?void 0:v.typeaheadDebounceInterval)&&(_._typeaheadDebounceInterval=v.typeaheadDebounceInterval),_._scrollStrategyFactory=m,_._scrollStrategy=_._scrollStrategyFactory(),_.tabIndex=parseInt(p)||0,_.id=_.id,_}return o(n,[{key:"focused",get:function(){return this._focused||this._panelOpen}},{key:"placeholder",get:function(){return this._placeholder},set:function(e){this._placeholder=e,this.stateChanges.next()}},{key:"required",get:function(){return this._required},set:function(e){this._required=pm(e),this.stateChanges.next()}},{key:"multiple",get:function(){return this._multiple},set:function(e){this._multiple=pm(e)}},{key:"disableOptionCentering",get:function(){return this._disableOptionCentering},set:function(e){this._disableOptionCentering=pm(e)}},{key:"compareWith",get:function(){return this._compareWith},set:function(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}},{key:"value",get:function(){return this._value},set:function(e){(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e)}},{key:"typeaheadDebounceInterval",get:function(){return this._typeaheadDebounceInterval},set:function(e){this._typeaheadDebounceInterval=mm(e)}},{key:"id",get:function(){return this._id},set:function(e){this._id=e||this._uid,this.stateChanges.next()}},{key:"ngOnInit",value:function(){var e=this;this._selectionModel=new Eg(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Am(),Km(this._destroy)).subscribe(function(){return e._panelDoneAnimating(e.panelOpen)})}},{key:"ngAfterContentInit",value:function(){var e=this;this._initKeyManager(),this._selectionModel.changed.pipe(Km(this._destroy)).subscribe(function(e){e.added.forEach(function(e){return e.select()}),e.removed.forEach(function(e){return e.deselect()})}),this.options.changes.pipe(Qm(null),Km(this._destroy)).subscribe(function(){e._resetOptions(),e._initializeSelection()})}},{key:"ngDoCheck",value:function(){var e=this._getTriggerAriaLabelledby();if(e!==this._triggerAriaLabelledBy){var t=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?t.setAttribute("aria-labelledby",e):t.removeAttribute("aria-labelledby")}this.ngControl&&this.updateErrorState()}},{key:"ngOnChanges",value:function(e){e.disabled&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}},{key:"ngOnDestroy",value:function(){this._destroy.next(),this._destroy.complete(),this.stateChanges.complete()}},{key:"toggle",value:function(){this.panelOpen?this.close():this.open()}},{key:"open",value:function(){this._canOpen()&&(this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}},{key:"close",value:function(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}},{key:"writeValue",value:function(e){this.value=e}},{key:"registerOnChange",value:function(e){this._onChange=e}},{key:"registerOnTouched",value:function(e){this._onTouched=e}},{key:"setDisabledState",value:function(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}},{key:"panelOpen",get:function(){return this._panelOpen}},{key:"selected",get:function(){return this.multiple?this._selectionModel.selected:this._selectionModel.selected[0]}},{key:"triggerValue",get:function(){if(this.empty)return"";if(this._multiple){var e=this._selectionModel.selected.map(function(e){return e.viewValue});return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}},{key:"_isRtl",value:function(){return!!this._dir&&"rtl"===this._dir.value}},{key:"_handleKeydown",value:function(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}},{key:"_handleClosedKeydown",value:function(e){var t=e.keyCode,n=t===Xg||t===$g||37===t||39===t,i=13===t||32===t,r=this._keyManager;if(!r.isTyping()&&i&&!Qg(e)||(this.multiple||e.altKey)&&n)e.preventDefault(),this.open();else if(!this.multiple){var a=this.selected;r.onKeydown(e);var o=this.selected;o&&a!==o&&this._liveAnnouncer.announce(o.viewValue,1e4)}}},{key:"_handleOpenKeydown",value:function(e){var t=this._keyManager,n=e.keyCode,i=n===Xg||n===$g,r=t.isTyping();if(i&&e.altKey)e.preventDefault(),this.close();else if(r||13!==n&&32!==n||!t.activeItem||Qg(e))if(!r&&this._multiple&&65===n&&e.ctrlKey){e.preventDefault();var a=this.options.some(function(e){return!e.disabled&&!e.selected});this.options.forEach(function(e){e.disabled||(a?e.select():e.deselect())})}else{var o=t.activeItemIndex;t.onKeydown(e),this._multiple&&i&&e.shiftKey&&t.activeItem&&t.activeItemIndex!==o&&t.activeItem._selectViaInteraction()}else e.preventDefault(),t.activeItem._selectViaInteraction()}},{key:"_onFocus",value:function(){this.disabled||(this._focused=!0,this.stateChanges.next())}},{key:"_onBlur",value:function(){this._focused=!1,this.disabled||this.panelOpen||(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}},{key:"_onAttached",value:function(){var e=this;this._overlayDir.positionChange.pipe(zg(1)).subscribe(function(){e._changeDetectorRef.detectChanges(),e._positioningSettled()})}},{key:"_getPanelTheme",value:function(){return this._parentFormField?"mat-".concat(this._parentFormField.color):""}},{key:"empty",get:function(){return!this._selectionModel||this._selectionModel.isEmpty()}},{key:"_initializeSelection",value:function(){var e=this;Promise.resolve().then(function(){e._setSelectionByValue(e.ngControl?e.ngControl.value:e._value),e.stateChanges.next()})}},{key:"_setSelectionByValue",value:function(e){var t=this;if(this._selectionModel.selected.forEach(function(e){return e.setInactiveStyles()}),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(function(e){return t._selectValue(e)}),this._sortValues();else{var n=this._selectValue(e);n?this._keyManager.updateActiveItem(n):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}},{key:"_selectValue",value:function(e){var t=this,n=this.options.find(function(n){if(t._selectionModel.isSelected(n))return!1;try{return null!=n.value&&t._compareWith(n.value,e)}catch(i){return!1}});return n&&this._selectionModel.select(n),n}},{key:"_initKeyManager",value:function(){var e=this;this._keyManager=new l_(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withAllowedModifierKeys(["shiftKey"]),this._keyManager.tabOut.pipe(Km(this._destroy)).subscribe(function(){e.panelOpen&&(!e.multiple&&e._keyManager.activeItem&&e._keyManager.activeItem._selectViaInteraction(),e.focus(),e.close())}),this._keyManager.change.pipe(Km(this._destroy)).subscribe(function(){e._panelOpen&&e.panel?e._scrollOptionIntoView(e._keyManager.activeItemIndex||0):e._panelOpen||e.multiple||!e._keyManager.activeItem||e._keyManager.activeItem._selectViaInteraction()})}},{key:"_resetOptions",value:function(){var e=this,t=pe(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(Km(t)).subscribe(function(t){e._onSelect(t.source,t.isUserInput),t.isUserInput&&!e.multiple&&e._panelOpen&&(e.close(),e.focus())}),pe.apply(void 0,b(this.options.map(function(e){return e._stateChanges}))).pipe(Km(t)).subscribe(function(){e._changeDetectorRef.markForCheck(),e.stateChanges.next()})}},{key:"_onSelect",value:function(e,t){var n=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(n!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),t&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),t&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),n!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}},{key:"_sortValues",value:function(){var e=this;if(this.multiple){var t=this.options.toArray();this._selectionModel.sort(function(n,i){return e.sortComparator?e.sortComparator(n,i,t):t.indexOf(n)-t.indexOf(i)}),this.stateChanges.next()}}},{key:"_propagateChanges",value:function(e){var t;t=this.multiple?this.selected.map(function(e){return e.value}):this.selected?this.selected.value:e,this._value=t,this.valueChange.emit(t),this._onChange(t),this.selectionChange.emit(this._getChangeEvent(t)),this._changeDetectorRef.markForCheck()}},{key:"_highlightCorrectOption",value:function(){this._keyManager&&(this.empty?this._keyManager.setFirstItemActive():this._keyManager.setActiveItem(this._selectionModel.selected[0]))}},{key:"_canOpen",value:function(){var e;return!this._panelOpen&&!this.disabled&&(null===(e=this.options)||void 0===e?void 0:e.length)>0}},{key:"focus",value:function(e){this._elementRef.nativeElement.focus(e)}},{key:"_getPanelAriaLabelledby",value:function(){var e;if(this.ariaLabel)return null;var t=null===(e=this._parentFormField)||void 0===e?void 0:e.getLabelId();return this.ariaLabelledby?(t?t+" ":"")+this.ariaLabelledby:t}},{key:"_getAriaActiveDescendant",value:function(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}},{key:"_getTriggerAriaLabelledby",value:function(){var e;if(this.ariaLabel)return null;var t=null===(e=this._parentFormField)||void 0===e?void 0:e.getLabelId(),n=(t?t+" ":"")+this._valueId;return this.ariaLabelledby&&(n+=" "+this.ariaLabelledby),n}},{key:"_panelDoneAnimating",value:function(e){this.openedChange.emit(e)}},{key:"setDescribedByIds",value:function(e){this._ariaDescribedby=e.join(" ")}},{key:"onContainerClick",value:function(){this.focus(),this.open()}},{key:"shouldLabelFloat",get:function(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}}]),n}(JI);return e.\u0275fac=function(t){return new(t||e)(ps(Pg),ps(ll),ps(Fc),ps(zw),ps(Fu),ps(Dg,8),ps(Ep,8),ps(jp,8),ps(MI,8),ps(np,10),bi("tabindex"),ps(zI),ps(S_),ps(qI,8))},e.\u0275dir=bt({type:e,viewQuery:function(e,t){var n;1&e&&(lc(PI,5),lc(AI,5),lc(Pv,5)),2&e&&(uc(n=dc())&&(t.trigger=n.first),uc(n=dc())&&(t.panel=n.first),uc(n=dc())&&(t._overlayDir=n.first))},inputs:{ariaLabel:["aria-label","ariaLabel"],id:"id",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",typeaheadDebounceInterval:"typeaheadDebounceInterval",panelClass:"panelClass",ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",sortComparator:"sortComparator"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[Ko,At]}),e}(),QI=function(){var e=function(e){l(n,e);var t=p(n);function n(){var e;return s(this,n),(e=t.apply(this,arguments))._scrollTop=0,e._triggerFontSize=0,e._transformOrigin="top",e._offsetY=0,e._positions=[{originX:"start",originY:"top",overlayX:"start",overlayY:"top"},{originX:"start",originY:"bottom",overlayX:"start",overlayY:"bottom"}],e}return o(n,[{key:"_calculateOverlayScroll",value:function(e,t,n){var i=this._getItemHeight();return Math.min(Math.max(0,i*e-t+i/2),n)}},{key:"ngOnInit",value:function(){var e=this;r(i(n.prototype),"ngOnInit",this).call(this),this._viewportRuler.change().pipe(Km(this._destroy)).subscribe(function(){e.panelOpen&&(e._triggerRect=e.trigger.nativeElement.getBoundingClientRect(),e._changeDetectorRef.markForCheck())})}},{key:"open",value:function(){var e=this;r(i(n.prototype),"_canOpen",this).call(this)&&(r(i(n.prototype),"open",this).call(this),this._triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this._triggerFontSize=parseInt(getComputedStyle(this.trigger.nativeElement).fontSize||"0"),this._calculateOverlayPosition(),this._ngZone.onStable.pipe(zg(1)).subscribe(function(){e._triggerFontSize&&e._overlayDir.overlayRef&&e._overlayDir.overlayRef.overlayElement&&(e._overlayDir.overlayRef.overlayElement.style.fontSize="".concat(e._triggerFontSize,"px"))}))}},{key:"_scrollOptionIntoView",value:function(e){var t=gk(e,this.options,this.optionGroups),n=this._getItemHeight();this.panel.nativeElement.scrollTop=0===e&&1===t?0:vk((e+t)*n,n,this.panel.nativeElement.scrollTop,UI)}},{key:"_positioningSettled",value:function(){this._calculateOverlayOffsetX(),this.panel.nativeElement.scrollTop=this._scrollTop}},{key:"_panelDoneAnimating",value:function(e){this.panelOpen?this._scrollTop=0:(this._overlayDir.offsetX=0,this._changeDetectorRef.markForCheck()),r(i(n.prototype),"_panelDoneAnimating",this).call(this,e)}},{key:"_getChangeEvent",value:function(e){return new KI(this,e)}},{key:"_calculateOverlayOffsetX",value:function(){var e,t=this._overlayDir.overlayRef.overlayElement.getBoundingClientRect(),n=this._viewportRuler.getViewportSize(),i=this._isRtl(),r=this.multiple?56:32;if(this.multiple)e=40;else if(this.disableOptionCentering)e=16;else{var a=this._selectionModel.selected[0]||this.options.first;e=a&&a.group?32:16}i||(e*=-1);var o=0-(t.left+e-(i?r:0)),s=t.right+e-n.width+(i?0:r);o>0?e+=o+8:s>0&&(e-=s+8),this._overlayDir.offsetX=Math.round(e),this._overlayDir.overlayRef.updatePosition()}},{key:"_calculateOverlayOffsetY",value:function(e,t,n){var i,r=this._getItemHeight(),a=(r-this._triggerRect.height)/2,o=Math.floor(UI/r);return this.disableOptionCentering?0:(i=0===this._scrollTop?e*r:this._scrollTop===n?(e-(this._getItemCount()-o))*r+(r-(this._getItemCount()*r-UI)%r):t-r/2,Math.round(-1*i-a))}},{key:"_checkOverlayWithinViewport",value:function(e){var t=this._getItemHeight(),n=this._viewportRuler.getViewportSize(),i=this._triggerRect.top-8,r=n.height-this._triggerRect.bottom-8,a=Math.abs(this._offsetY),o=Math.min(this._getItemCount()*t,UI)-a-this._triggerRect.height;o>r?this._adjustPanelUp(o,r):a>i?this._adjustPanelDown(a,i,e):this._transformOrigin=this._getOriginBasedOnOption()}},{key:"_adjustPanelUp",value:function(e,t){var n=Math.round(e-t);this._scrollTop-=n,this._offsetY-=n,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop<=0&&(this._scrollTop=0,this._offsetY=0,this._transformOrigin="50% bottom 0px")}},{key:"_adjustPanelDown",value:function(e,t,n){var i=Math.round(e-t);if(this._scrollTop+=i,this._offsetY+=i,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop>=n)return this._scrollTop=n,this._offsetY=0,void(this._transformOrigin="50% top 0px")}},{key:"_calculateOverlayPosition",value:function(){var e,t=this._getItemHeight(),n=this._getItemCount(),i=Math.min(n*t,UI),r=n*t-i;e=this.empty?0:Math.max(this.options.toArray().indexOf(this._selectionModel.selected[0]),0),e+=gk(e,this.options,this.optionGroups);var a=i/2;this._scrollTop=this._calculateOverlayScroll(e,a,r),this._offsetY=this._calculateOverlayOffsetY(e,a,r),this._checkOverlayWithinViewport(r)}},{key:"_getOriginBasedOnOption",value:function(){var e=this._getItemHeight(),t=(e-this._triggerRect.height)/2,n=Math.abs(this._offsetY)-t+e/2;return"50% ".concat(n,"px 0px")}},{key:"_getItemHeight",value:function(){return 3*this._triggerFontSize}},{key:"_getItemCount",value:function(){return this.options.length+this.optionGroups.length}}]),n}(XI);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275cmp=ft({type:e,selectors:[["mat-select"]],contentQueries:function(e,t,n){var i;1&e&&(cc(n,ZI,5),cc(n,mk,5),cc(n,ck,5)),2&e&&(uc(i=dc())&&(t.customTrigger=i.first),uc(i=dc())&&(t.options=i),uc(i=dc())&&(t.optionGroups=i))},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","true",1,"mat-select"],hostVars:20,hostBindings:function(e,t){1&e&&xs("keydown",function(e){return t._handleKeydown(e)})("focus",function(){return t._onFocus()})("blur",function(){return t._onBlur()}),2&e&&(ls("id",t.id)("tabindex",t.tabIndex)("aria-controls",t.panelOpen?t.id+"-panel":null)("aria-expanded",t.panelOpen)("aria-label",t.ariaLabel||null)("aria-required",t.required.toString())("aria-disabled",t.disabled.toString())("aria-invalid",t.errorState)("aria-describedby",t._ariaDescribedby||null)("aria-activedescendant",t._getAriaActiveDescendant()),qs("mat-select-disabled",t.disabled)("mat-select-invalid",t.errorState)("mat-select-required",t.required)("mat-select-empty",t.empty)("mat-select-multiple",t.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matSelect"],features:[Du([{provide:kI,useExisting:e},{provide:ok,useExisting:e}]),Ko],ngContentSelectors:BI,decls:18,vars:12,consts:[["cdk-overlay-origin","",1,"mat-select-trigger",3,"click"],["origin","cdkOverlayOrigin","trigger",""],[1,"mat-select-value",3,"ngSwitch"],["class","mat-select-placeholder mat-select-min-line",4,"ngSwitchCase"],["class","mat-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-select-arrow-wrapper"],[1,"mat-select-arrow"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayMinWidth","cdkConnectedOverlayOffsetY","backdropClick","attach","detach"],[1,"mat-select-placeholder","mat-select-min-line"],[1,"mat-select-value-text",3,"ngSwitch"],["class","mat-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-select-min-line"],[1,"mat-select-panel-wrap"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(e,t){if(1&e&&(As(NI),ru(0,"\n"),vs(1,"div",0,1),xs("click",function(){return t.toggle()}),ru(4,"\n "),vs(5,"div",2),ru(6,"\n "),hs(7,II,2,1,"span",3),ru(8,"\n "),hs(9,HI,6,2,"span",4),ru(10,"\n "),_s(),ru(11,"\n\n "),vs(12,"div",5),ys(13,"div",6),_s(),ru(14,"\n"),_s(),ru(15,"\n\n"),hs(16,jI,10,14,"ng-template",7),xs("backdropClick",function(){return t.close()})("attach",function(){return t._onAttached()})("detach",function(){return t.close()}),ru(17,"\n")),2&e){var n=fs(2);Ya(1),ls("aria-owns",t.panelOpen?t.id+"-panel":null),Ya(4),ms("ngSwitch",t.empty),ls("id",t._valueId),Ya(2),ms("ngSwitchCase",!0),Ya(2),ms("ngSwitchCase",!1),Ya(7),ms("cdkConnectedOverlayPanelClass",t._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",t._scrollStrategy)("cdkConnectedOverlayOrigin",n)("cdkConnectedOverlayOpen",t.panelOpen)("cdkConnectedOverlayPositions",t._positions)("cdkConnectedOverlayMinWidth",null==t._triggerRect?null:t._triggerRect.width)("cdkConnectedOverlayOffsetY",t._offsetY)}},directives:[Yv,fh,ph,Pv,mh,ah],styles:['.mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-table;cursor:pointer;position:relative;box-sizing:border-box}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-select-value{display:table-cell;max-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{display:table-cell;vertical-align:middle}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:transparent;-webkit-text-fill-color:transparent;transition:none;display:block}.mat-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;opacity:0}\n'],encapsulation:2,data:{animation:[WI.transformPanelWrap,WI.transformPanel]},changeDetection:0}),e}(),eR=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[GI],imports:[[Th,Iv,_k,jw],Ag,SI,_k,jw]}),e}(),tR=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[Th,jw,Vg,ik,$v,Y_],jw]}),e}(),nR=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[jw],jw]}),e}(),iR=["panel"];function rR(e,t){if(1&e&&(ru(0,"\n "),vs(1,"div",0,1),ru(3,"\n "),Is(4),ru(5,"\n "),_s(),ru(6,"\n")),2&e){var n=t.id,i=Ys();Ya(1),ms("id",i.id)("ngClass",i._classList),ls("aria-label",i.ariaLabel||null)("aria-labelledby",i._getPanelAriaLabelledby(n))}}var aR=["*"],oR=0,sR=function e(t,n){s(this,e),this.source=t,this.option=n},uR=Ww(function(){return function e(){s(this,e)}}()),lR=new Mi("mat-autocomplete-default-options",{providedIn:"root",factory:function(){return{autoActiveFirstOption:!1}}}),cR=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a){var o;return s(this,n),(o=t.call(this))._changeDetectorRef=e,o._elementRef=i,o._activeOptionChanges=x.EMPTY,o.showPanel=!1,o._isOpen=!1,o.displayWith=null,o.optionSelected=new Zl,o.opened=new Zl,o.closed=new Zl,o.optionActivated=new Zl,o._classList={},o.id="mat-autocomplete-".concat(oR++),o.inertGroups=(null==a?void 0:a.SAFARI)||!1,o._autoActiveFirstOption=!!r.autoActiveFirstOption,o}return o(n,[{key:"isOpen",get:function(){return this._isOpen&&this.showPanel}},{key:"autoActiveFirstOption",get:function(){return this._autoActiveFirstOption},set:function(e){this._autoActiveFirstOption=pm(e)}},{key:"classList",set:function(e){this._classList=e&&e.length?function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:/\s+/,n=[];if(null!=e){var i,r=v(Array.isArray(e)?e:"".concat(e).split(t));try{for(r.s();!(i=r.n()).done;){var a="".concat(i.value).trim();a&&n.push(a)}}catch(o){r.e(o)}finally{r.f()}}return n}(e).reduce(function(e,t){return e[t]=!0,e},{}):{},this._setVisibilityClasses(this._classList),this._elementRef.nativeElement.className=""}},{key:"ngAfterContentInit",value:function(){var e=this;this._keyManager=new l_(this.options).withWrap(),this._activeOptionChanges=this._keyManager.change.subscribe(function(t){e.optionActivated.emit({source:e,option:e.options.toArray()[t]||null})}),this._setVisibility()}},{key:"ngOnDestroy",value:function(){this._activeOptionChanges.unsubscribe()}},{key:"_setScrollTop",value:function(e){this.panel&&(this.panel.nativeElement.scrollTop=e)}},{key:"_getScrollTop",value:function(){return this.panel?this.panel.nativeElement.scrollTop:0}},{key:"_setVisibility",value:function(){this.showPanel=!!this.options.length,this._setVisibilityClasses(this._classList),this._changeDetectorRef.markForCheck()}},{key:"_emitSelectEvent",value:function(e){var t=new sR(this,e);this.optionSelected.emit(t)}},{key:"_getPanelAriaLabelledby",value:function(e){return this.ariaLabel?null:this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}},{key:"_setVisibilityClasses",value:function(e){e[this._visibleClass]=this.showPanel,e[this._hiddenClass]=!this.showPanel}}]),n}(uR);return e.\u0275fac=function(t){return new(t||e)(ps(ll),ps(Fu),ps(lR),ps(yg))},e.\u0275dir=bt({type:e,viewQuery:function(e,t){var n;1&e&&(lc(pl,7),lc(iR,5)),2&e&&(uc(n=dc())&&(t.template=n.first),uc(n=dc())&&(t.panel=n.first))},inputs:{displayWith:"displayWith",autoActiveFirstOption:"autoActiveFirstOption",classList:["class","classList"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],panelWidth:"panelWidth"},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},features:[Ko]}),e}(),dR=function(){var e=function(e){l(n,e);var t=p(n);function n(){var e;return s(this,n),(e=t.apply(this,arguments))._visibleClass="mat-autocomplete-visible",e._hiddenClass="mat-autocomplete-hidden",e}return n}(cR);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275cmp=ft({type:e,selectors:[["mat-autocomplete"]],contentQueries:function(e,t,n){var i;1&e&&(cc(n,ck,5),cc(n,mk,5)),2&e&&(uc(i=dc())&&(t.optionGroups=i),uc(i=dc())&&(t.options=i))},hostAttrs:[1,"mat-autocomplete"],inputs:{disableRipple:"disableRipple"},exportAs:["matAutocomplete"],features:[Du([{provide:ok,useExisting:e}]),Ko],ngContentSelectors:aR,decls:2,vars:0,consts:[["role","listbox",1,"mat-autocomplete-panel",3,"id","ngClass"],["panel",""]],template:function(e,t){1&e&&(As(),hs(0,rR,7,4,"ng-template"),ru(1,"\n"))},directives:[ah],styles:[".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}\n"],encapsulation:2,changeDetection:0}),e}(),hR=new Mi("mat-autocomplete-scroll-strategy"),fR={provide:hR,deps:[Dv],useFactory:function(e){return function(){return e.scrollStrategies.reposition()}}},pR={provide:Mf,useExisting:Te(function(){return gR}),multi:!0},mR=function(){var e=function(){function e(t,n,i,r,a,o,u,l,c,d,h){var f=this;s(this,e),this._element=t,this._overlay=n,this._viewContainerRef=i,this._zone=r,this._changeDetectorRef=a,this._dir=u,this._formField=l,this._document=c,this._viewportRuler=d,this._defaults=h,this._componentDestroyed=!1,this._autocompleteDisabled=!1,this._manuallyFloatingLabel=!1,this._viewportSubscription=x.EMPTY,this._canOpenOnNextFocus=!0,this._closeKeyEventStream=new z,this._windowBlurHandler=function(){f._canOpenOnNextFocus=f._document.activeElement!==f._element.nativeElement||f.panelOpen},this._onChange=function(){},this._onTouched=function(){},this.position="auto",this.autocompleteAttribute="off",this._overlayAttached=!1,this.optionSelections=yk(function(){return f.autocomplete&&f.autocomplete.options?pe.apply(void 0,b(f.autocomplete.options.map(function(e){return e.onSelectionChange}))):f._zone.onStable.pipe(zg(1),eg(function(){return f.optionSelections}))}),this._scrollStrategy=o}return o(e,[{key:"autocompleteDisabled",get:function(){return this._autocompleteDisabled},set:function(e){this._autocompleteDisabled=pm(e)}},{key:"ngAfterViewInit",value:function(){var e=this,t=this._getWindow();void 0!==t&&this._zone.runOutsideAngular(function(){return t.addEventListener("blur",e._windowBlurHandler)})}},{key:"ngOnChanges",value:function(e){e.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition())}},{key:"ngOnDestroy",value:function(){var e=this._getWindow();void 0!==e&&e.removeEventListener("blur",this._windowBlurHandler),this._viewportSubscription.unsubscribe(),this._componentDestroyed=!0,this._destroyPanel(),this._closeKeyEventStream.complete()}},{key:"panelOpen",get:function(){return this._overlayAttached&&this.autocomplete.showPanel}},{key:"openPanel",value:function(){this._attachOverlay(),this._floatLabel()}},{key:"closePanel",value:function(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this.autocomplete.closed.emit(),this.autocomplete._isOpen=this._overlayAttached=!1,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._componentDestroyed||this._changeDetectorRef.detectChanges())}},{key:"updatePosition",value:function(){this._overlayAttached&&this._overlayRef.updatePosition()}},{key:"panelClosingActions",get:function(){var e=this;return pe(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe(zm(function(){return e._overlayAttached})),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe(zm(function(){return e._overlayAttached})):bm()).pipe(K(function(e){return e instanceof fk?e:null}))}},{key:"activeOption",get:function(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}},{key:"_getOutsideClickStream",value:function(){var e=this;return pe(wm(this._document,"click"),wm(this._document,"auxclick"),wm(this._document,"touchend")).pipe(zm(function(t){var n=xg(t),i=e._formField?e._formField._elementRef.nativeElement:null,r=e.connectedTo?e.connectedTo.elementRef.nativeElement:null;return e._overlayAttached&&n!==e._element.nativeElement&&(!i||!i.contains(n))&&(!r||!r.contains(n))&&!!e._overlayRef&&!e._overlayRef.overlayElement.contains(n)}))}},{key:"writeValue",value:function(e){var t=this;Promise.resolve(null).then(function(){return t._setTriggerValue(e)})}},{key:"registerOnChange",value:function(e){this._onChange=e}},{key:"registerOnTouched",value:function(e){this._onTouched=e}},{key:"setDisabledState",value:function(e){this._element.nativeElement.disabled=e}},{key:"_handleKeydown",value:function(e){var t=e.keyCode;if(t!==Zg||Qg(e)||e.preventDefault(),this.activeOption&&13===t&&this.panelOpen)this.activeOption._selectViaInteraction(),this._resetActiveItem(),e.preventDefault();else if(this.autocomplete){var n=this.autocomplete._keyManager.activeItem,i=t===$g||t===Xg;this.panelOpen||9===t?this.autocomplete._keyManager.onKeydown(e):i&&this._canOpen()&&this.openPanel(),(i||this.autocomplete._keyManager.activeItem!==n)&&this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0)}}},{key:"_handleInput",value:function(e){var t=e.target,n=t.value;"number"===t.type&&(n=""==n?null:parseFloat(n)),this._previousValue!==n&&(this._previousValue=n,this._onChange(n),this._canOpen()&&this._document.activeElement===e.target&&this.openPanel())}},{key:"_handleFocus",value:function(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(),this._floatLabel(!0)):this._canOpenOnNextFocus=!0}},{key:"_floatLabel",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._formField&&"auto"===this._formField.floatLabel&&(e?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=!0)}},{key:"_resetLabel",value:function(){this._manuallyFloatingLabel&&(this._formField.floatLabel="auto",this._manuallyFloatingLabel=!1)}},{key:"_subscribeToClosingActions",value:function(){var e=this;return pe(this._zone.onStable.pipe(zg(1)),this.autocomplete.options.changes.pipe(Hv(function(){return e._positionStrategy.reapplyLastPosition()}),EM(0))).pipe(eg(function(){var t=e.panelOpen;return e._resetActiveItem(),e.autocomplete._setVisibility(),e.panelOpen&&(e._overlayRef.updatePosition(),t!==e.panelOpen&&e.autocomplete.opened.emit()),e.panelClosingActions}),zg(1)).subscribe(function(t){return e._setValueAndClose(t)})}},{key:"_destroyPanel",value:function(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null)}},{key:"_setTriggerValue",value:function(e){var t=this.autocomplete&&this.autocomplete.displayWith?this.autocomplete.displayWith(e):e,n=null!=t?t:"";this._formField?this._formField._control.value=n:this._element.nativeElement.value=n,this._previousValue=n}},{key:"_setValueAndClose",value:function(e){e&&e.source&&(this._clearPreviousSelectedOption(e.source),this._setTriggerValue(e.source.value),this._onChange(e.source.value),this._element.nativeElement.focus(),this.autocomplete._emitSelectEvent(e.source)),this.closePanel()}},{key:"_clearPreviousSelectedOption",value:function(e){this.autocomplete.options.forEach(function(t){t!==e&&t.selected&&t.deselect()})}},{key:"_attachOverlay",value:function(){var e,t=this,n=this._overlayRef;n?(this._positionStrategy.setOrigin(this._getConnectedElement()),n.updateSize({width:this._getPanelWidth()})):(this._portal=new Hg(this.autocomplete.template,this._viewContainerRef,{id:null===(e=this._formField)||void 0===e?void 0:e.getLabelId()}),n=this._overlay.create(this._getOverlayConfig()),this._overlayRef=n,n.keydownEvents().subscribe(function(e){(e.keyCode===Zg&&!Qg(e)||e.keyCode===$g&&Qg(e,"altKey"))&&(t._resetActiveItem(),t._closeKeyEventStream.next(),e.stopPropagation(),e.preventDefault())}),this._viewportSubscription=this._viewportRuler.change().subscribe(function(){t.panelOpen&&n&&n.updateSize({width:t._getPanelWidth()})})),n&&!n.hasAttached()&&(n.attach(this._portal),this._closingActionsSubscription=this._subscribeToClosingActions());var i=this.panelOpen;this.autocomplete._setVisibility(),this.autocomplete._isOpen=this._overlayAttached=!0,this.panelOpen&&i!==this.panelOpen&&this.autocomplete.opened.emit()}},{key:"_getOverlayConfig",value:function(){var e;return new uv({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir,panelClass:null===(e=this._defaults)||void 0===e?void 0:e.overlayPanelClass})}},{key:"_getOverlayPosition",value:function(){var e=this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(!1).withPush(!1);return this._setStrategyPositions(e),this._positionStrategy=e,e}},{key:"_setStrategyPositions",value:function(e){var t,n=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],i=this._aboveClass,r=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:i},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:i}];t="above"===this.position?r:"below"===this.position?n:[].concat(n,r),e.withPositions(t)}},{key:"_getConnectedElement",value:function(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}},{key:"_getPanelWidth",value:function(){return this.autocomplete.panelWidth||this._getHostWidth()}},{key:"_getHostWidth",value:function(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}},{key:"_resetActiveItem",value:function(){var e=this.autocomplete;e.autoActiveFirstOption?e._keyManager.setFirstItemActive():e._keyManager.setActiveItem(-1)}},{key:"_canOpen",value:function(){var e=this._element.nativeElement;return!e.readOnly&&!e.disabled&&!this._autocompleteDisabled}},{key:"_getWindow",value:function(){var e;return(null===(e=this._document)||void 0===e?void 0:e.defaultView)||window}},{key:"_scrollToOption",value:function(e){var t=this.autocomplete,n=gk(e,t.options,t.optionGroups);if(0===e&&1===n)t._setScrollTop(0);else if(t.panel){var i=t.options.toArray()[e];if(i){var r=i._getHostElement(),a=vk(r.offsetTop,r.offsetHeight,t._getScrollTop(),t.panel.nativeElement.offsetHeight);t._setScrollTop(a)}}}}]),e}();return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(Dv),ps(bl),ps(Fc),ps(ll),ps(hR),ps(Dg,8),ps(MI,9),ps(yd,8),ps(Pg),ps(lR,8))},e.\u0275dir=bt({type:e,inputs:{position:["matAutocompletePosition","position"],autocompleteAttribute:["autocomplete","autocompleteAttribute"],autocompleteDisabled:["matAutocompleteDisabled","autocompleteDisabled"],autocomplete:["matAutocomplete","autocomplete"],connectedTo:["matAutocompleteConnectedTo","connectedTo"]},features:[At]}),e}(),gR=function(){var e=function(e){l(n,e);var t=p(n);function n(){var e;return s(this,n),(e=t.apply(this,arguments))._aboveClass="mat-autocomplete-panel-above",e}return n}(mR);return e.\u0275fac=function(){var t;return function(n){return(t||(t=_i(e)))(n||e)}}(),e.\u0275dir=bt({type:e,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-autocomplete-trigger"],hostVars:7,hostBindings:function(e,t){1&e&&xs("focusin",function(){return t._handleFocus()})("blur",function(){return t._onTouched()})("input",function(e){return t._handleInput(e)})("keydown",function(e){return t._handleKeydown(e)}),2&e&&ls("autocomplete",t.autocompleteAttribute)("role",t.autocompleteDisabled?null:"combobox")("aria-autocomplete",t.autocompleteDisabled?null:"list")("aria-activedescendant",t.panelOpen&&t.activeOption?t.activeOption.id:null)("aria-expanded",t.autocompleteDisabled?null:t.panelOpen.toString())("aria-owns",t.autocompleteDisabled||!t.panelOpen||null==t.autocomplete?null:t.autocomplete.id)("aria-haspopup",!t.autocompleteDisabled)},exportAs:["matAutocompleteTrigger"],features:[Du([pR]),Ko]}),e}(),vR=function(){var e=function e(){s(this,e)};return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({providers:[fR],imports:[[Iv,_k,jw,Th],Ag,_k,jw]}),e}(),_R=["sliderWrapper"],yR=Mg({passive:!1}),bR={provide:Mf,useExisting:Te(function(){return MR}),multi:!0},wR=function e(){s(this,e)},kR=Vw(Bw(Nw(function(){return function e(t){s(this,e),this._elementRef=t}}()),"accent")),MR=function(){var e=function(e){l(n,e);var t=p(n);function n(e,i,r,a,o,u,l,c){var d;return s(this,n),(d=t.call(this,e))._focusMonitor=i,d._changeDetectorRef=r,d._dir=a,d._ngZone=u,d._animationMode=c,d._invert=!1,d._max=100,d._min=0,d._step=1,d._thumbLabel=!1,d._tickInterval=0,d._value=null,d._vertical=!1,d.change=new Zl,d.input=new Zl,d.valueChange=new Zl,d.onTouched=function(){},d._percent=0,d._isSliding=null,d._isActive=!1,d._tickIntervalPercent=0,d._sliderDimensions=null,d._controlValueAccessorChangeFn=function(){},d._dirChangeSubscription=x.EMPTY,d._pointerDown=function(e){d.disabled||d._isSliding||!SR(e)&&0!==e.button||d._ngZone.run(function(){d._touchId=SR(e)?function(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.value,t=new wR;return t.source=this,t.value=e,t}},{key:"_calculatePercentage",value:function(e){return((e||0)-this.min)/(this.max-this.min)}},{key:"_calculateValue",value:function(e){return this.min+e*(this.max-this.min)}},{key:"_clamp",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.max(t,Math.min(e,n))}},{key:"_getSliderDimensions",value:function(){return this._sliderWrapper?this._sliderWrapper.nativeElement.getBoundingClientRect():null}},{key:"_focusHostElement",value:function(e){this._elementRef.nativeElement.focus(e)}},{key:"_blurHostElement",value:function(){this._elementRef.nativeElement.blur()}},{key:"writeValue",value:function(e){this.value=e}},{key:"registerOnChange",value:function(e){this._controlValueAccessorChangeFn=e}},{key:"registerOnTouched",value:function(e){this.onTouched=e}},{key:"setDisabledState",value:function(e){this.disabled=e}}]),n}(kR);return e.\u0275fac=function(t){return new(t||e)(ps(Fu),ps(x_),ps(ll),ps(Dg,8),bi("tabindex"),ps(Fc),ps(yd),ps(Tw,8))},e.\u0275cmp=ft({type:e,selectors:[["mat-slider"]],viewQuery:function(e,t){var n;1&e&&lc(_R,5),2&e&&uc(n=dc())&&(t._sliderWrapper=n.first)},hostAttrs:["role","slider",1,"mat-slider","mat-focus-indicator"],hostVars:29,hostBindings:function(e,t){1&e&&xs("focus",function(){return t._onFocus()})("blur",function(){return t._onBlur()})("keydown",function(e){return t._onKeydown(e)})("keyup",function(){return t._onKeyup()})("mouseenter",function(){return t._onMouseenter()})("selectstart",function(e){return e.preventDefault()}),2&e&&(du("tabIndex",t.tabIndex),ls("aria-disabled",t.disabled)("aria-valuemax",t.max)("aria-valuemin",t.min)("aria-valuenow",t.value)("aria-valuetext",null==t.valueText?t.displayValue:t.valueText)("aria-orientation",t.vertical?"vertical":"horizontal"),qs("mat-slider-disabled",t.disabled)("mat-slider-has-ticks",t.tickInterval)("mat-slider-horizontal",!t.vertical)("mat-slider-axis-inverted",t._shouldInvertAxis())("mat-slider-invert-mouse-coords",t._shouldInvertMouseCoords())("mat-slider-sliding",t._isSliding)("mat-slider-thumb-label-showing",t.thumbLabel)("mat-slider-vertical",t.vertical)("mat-slider-min-value",t._isMinValue())("mat-slider-hide-last-tick",t.disabled||t._isMinValue()&&t._getThumbGap()&&t._shouldInvertAxis())("_mat-animation-noopable","NoopAnimations"===t._animationMode))},inputs:{disabled:"disabled",color:"color",tabIndex:"tabIndex",invert:"invert",max:"max",min:"min",step:"step",thumbLabel:"thumbLabel",tickInterval:"tickInterval",value:"value",vertical:"vertical",displayWith:"displayWith",valueText:"valueText"},outputs:{change:"change",input:"input",valueChange:"valueChange"},exportAs:["matSlider"],features:[Du([bR]),Ko],decls:29,vars:6,consts:[[1,"mat-slider-wrapper"],["sliderWrapper",""],[1,"mat-slider-track-wrapper"],[1,"mat-slider-track-background",3,"ngStyle"],[1,"mat-slider-track-fill",3,"ngStyle"],[1,"mat-slider-ticks-container",3,"ngStyle"],[1,"mat-slider-ticks",3,"ngStyle"],[1,"mat-slider-thumb-container",3,"ngStyle"],[1,"mat-slider-focus-ring"],[1,"mat-slider-thumb"],[1,"mat-slider-thumb-label"],[1,"mat-slider-thumb-label-text"]],template:function(e,t){1&e&&(vs(0,"div",0,1),ru(2,"\n "),vs(3,"div",2),ru(4,"\n "),ys(5,"div",3),ru(6,"\n "),ys(7,"div",4),ru(8,"\n "),_s(),ru(9,"\n "),vs(10,"div",5),ru(11,"\n "),ys(12,"div",6),ru(13,"\n "),_s(),ru(14,"\n "),vs(15,"div",7),ru(16,"\n "),ys(17,"div",8),ru(18,"\n "),ys(19,"div",9),ru(20,"\n "),vs(21,"div",10),ru(22,"\n "),vs(23,"span",11),ru(24),_s(),ru(25,"\n "),_s(),ru(26,"\n "),_s(),ru(27,"\n"),_s(),ru(28,"\n")),2&e&&(Ya(5),ms("ngStyle",t._getTrackBackgroundStyles()),Ya(2),ms("ngStyle",t._getTrackFillStyles()),Ya(3),ms("ngStyle",t._getTicksContainerStyles()),Ya(2),ms("ngStyle",t._getTicksStyles()),Ya(3),ms("ngStyle",t._getThumbContainerStyles()),Ya(9),au(t.displayValue))},directives:[gh],styles:['.mat-slider{display:inline-block;position:relative;box-sizing:border-box;padding:8px;outline:none;vertical-align:middle}.mat-slider:not(.mat-slider-disabled):active,.mat-slider.mat-slider-sliding:not(.mat-slider-disabled){cursor:-webkit-grabbing;cursor:grabbing}.mat-slider-wrapper{-webkit-print-color-adjust:exact;color-adjust:exact;position:absolute}.mat-slider-track-wrapper{position:absolute;top:0;left:0;overflow:hidden}.mat-slider-track-fill{position:absolute;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-track-background{position:absolute;transform-origin:100% 100%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-ticks-container{position:absolute;left:0;top:0;overflow:hidden}.mat-slider-ticks{-webkit-background-clip:content-box;background-clip:content-box;background-repeat:repeat;box-sizing:border-box;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-container{position:absolute;z-index:1;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-focus-ring{position:absolute;width:30px;height:30px;border-radius:50%;transform:scale(0);opacity:0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider.cdk-keyboard-focused .mat-slider-focus-ring,.mat-slider.cdk-program-focused .mat-slider-focus-ring{transform:scale(1);opacity:1}.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb-label,.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb{cursor:-webkit-grab;cursor:grab}.mat-slider-thumb{position:absolute;right:-10px;bottom:-10px;box-sizing:border-box;width:20px;height:20px;border:3px solid transparent;border-radius:50%;transform:scale(0.7);transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-label{display:none;align-items:center;justify-content:center;position:absolute;width:28px;height:28px;border-radius:50%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-radius 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.cdk-high-contrast-active .mat-slider-thumb-label{outline:solid 1px}.mat-slider-thumb-label-text{z-index:1;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-sliding .mat-slider-track-fill,.mat-slider-sliding .mat-slider-track-background,.mat-slider-sliding .mat-slider-thumb-container{transition-duration:0ms}.mat-slider-has-ticks .mat-slider-wrapper::after{content:"";position:absolute;border-width:0;border-style:solid;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after,.mat-slider-has-ticks:hover:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after{opacity:1}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-disabled) .mat-slider-ticks,.mat-slider-has-ticks:hover:not(.mat-slider-disabled) .mat-slider-ticks{opacity:1}.mat-slider-thumb-label-showing .mat-slider-focus-ring{display:none}.mat-slider-thumb-label-showing .mat-slider-thumb-label{display:flex}.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:100% 100%}.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:0 0}.mat-slider:not(.mat-slider-disabled).cdk-focused.mat-slider-thumb-label-showing .mat-slider-thumb{transform:scale(0)}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label{border-radius:50% 50% 0}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label-text{opacity:1}.mat-slider:not(.mat-slider-disabled).cdk-mouse-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-touch-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-program-focused .mat-slider-thumb{border-width:2px;transform:scale(1)}.mat-slider-disabled .mat-slider-focus-ring{transform:scale(0);opacity:0}.mat-slider-disabled .mat-slider-thumb{border-width:4px;transform:scale(0.5)}.mat-slider-disabled .mat-slider-thumb-label{display:none}.mat-slider-horizontal{height:48px;min-width:128px}.mat-slider-horizontal .mat-slider-wrapper{height:2px;top:23px;left:8px;right:8px}.mat-slider-horizontal .mat-slider-wrapper::after{height:2px;border-left-width:2px;right:0;top:0}.mat-slider-horizontal .mat-slider-track-wrapper{height:2px;width:100%}.mat-slider-horizontal .mat-slider-track-fill{height:2px;width:100%;transform:scaleX(0)}.mat-slider-horizontal .mat-slider-track-background{height:2px;width:100%;transform:scaleX(1)}.mat-slider-horizontal .mat-slider-ticks-container{height:2px;width:100%}.cdk-high-contrast-active .mat-slider-horizontal .mat-slider-ticks-container{height:0;outline:solid 2px;top:1px}.mat-slider-horizontal .mat-slider-ticks{height:2px;width:100%}.mat-slider-horizontal .mat-slider-thumb-container{width:100%;height:0;top:50%}.mat-slider-horizontal .mat-slider-focus-ring{top:-15px;right:-15px}.mat-slider-horizontal .mat-slider-thumb-label{right:-14px;top:-40px;transform:translateY(26px) scale(0.01) rotate(45deg)}.mat-slider-horizontal .mat-slider-thumb-label-text{transform:rotate(-45deg)}.mat-slider-horizontal.cdk-focused .mat-slider-thumb-label{transform:rotate(45deg)}.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label,.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label-text{transform:none}.mat-slider-vertical{width:48px;min-height:128px}.mat-slider-vertical .mat-slider-wrapper{width:2px;top:8px;bottom:8px;left:23px}.mat-slider-vertical .mat-slider-wrapper::after{width:2px;border-top-width:2px;bottom:0;left:0}.mat-slider-vertical .mat-slider-track-wrapper{height:100%;width:2px}.mat-slider-vertical .mat-slider-track-fill{height:100%;width:2px;transform:scaleY(0)}.mat-slider-vertical .mat-slider-track-background{height:100%;width:2px;transform:scaleY(1)}.mat-slider-vertical .mat-slider-ticks-container{width:2px;height:100%}.cdk-high-contrast-active .mat-slider-vertical .mat-slider-ticks-container{width:0;outline:solid 2px;left:1px}.mat-slider-vertical .mat-slider-focus-ring{bottom:-15px;left:-15px}.mat-slider-vertical .mat-slider-ticks{width:2px;height:100%}.mat-slider-vertical .mat-slider-thumb-container{height:100%;width:0;left:50%}.mat-slider-vertical .mat-slider-thumb{-webkit-backface-visibility:hidden;backface-visibility:hidden}.mat-slider-vertical .mat-slider-thumb-label{bottom:-14px;left:-40px;transform:translateX(26px) scale(0.01) rotate(-45deg)}.mat-slider-vertical .mat-slider-thumb-label-text{transform:rotate(45deg)}.mat-slider-vertical.cdk-focused .mat-slider-thumb-label{transform:rotate(-45deg)}[dir=rtl] .mat-slider-wrapper::after{left:0;right:auto}[dir=rtl] .mat-slider-horizontal .mat-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .mat-slider-horizontal .mat-slider-track-background{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:100% 100%}.mat-slider._mat-animation-noopable .mat-slider-track-fill,.mat-slider._mat-animation-noopable .mat-slider-track-background,.mat-slider._mat-animation-noopable .mat-slider-ticks,.mat-slider._mat-animation-noopable .mat-slider-thumb-container,.mat-slider._mat-animation-noopable .mat-slider-focus-ring,.mat-slider._mat-animation-noopable .mat-slider-thumb,.mat-slider._mat-animation-noopable .mat-slider-thumb-label,.mat-slider._mat-animation-noopable .mat-slider-thumb-label-text,.mat-slider._mat-animation-noopable .mat-slider-has-ticks .mat-slider-wrapper::after{transition:none}\n'],encapsulation:2,changeDetection:0}),e}();function SR(e){return"t"===e.type[0]}function CR(e,t){var n;return(n=SR(e)?"number"==typeof t?LR(e.touches,t)||LR(e.changedTouches,t):e.touches[0]||e.changedTouches[0]:e)?{x:n.clientX,y:n.clientY}:void 0}function LR(e,t){for(var n=0;n0),Ya(2),ms("ngIf",0===n.addresses.length)}}var PR=function(){return function(){this.addresses=[]}}(),AR=function(){function e(e,t){var n=this;this.dialogRef=e,this.balanceAndOutputsService=t,this.listElements=[],this.balanceAndOutputsService.walletsWithBalance.pipe(eS()).subscribe(function(e){e.forEach(function(e){var t=new PR;t.label=e.label,e.addresses.forEach(function(n){e.isHardware&&!n.confirmed||t.addresses.push({address:n.address,coins:n.coins,hours:n.hours})}),n.listElements.push(t)})})}return e.openDialog=function(t){var n=new wk;return n.autoFocus=!1,n.width=jM.mediumModalWidth,t.open(e,n)},e.prototype.closePopup=function(){this.dialogRef.close()},e.prototype.select=function(e){this.dialogRef.close(e)},e.\u0275fac=function(t){return new(t||e)(ps(Lk),ps(_O))},e.\u0275cmp=ft({type:e,selectors:[["app-select-address"]],decls:6,vars:5,consts:[[3,"headline","dialog"],["class","wallet-container list-button-container light-button-theme",4,"ngFor","ngForOf"],[1,"wallet-container","list-button-container","light-button-theme"],[1,"title",3,"title"],[4,"ngIf"],[4,"ngFor","ngForOf"],["mat-button","","color","primary",3,"click"],[1,"address"],[1,"balance"],[1,"grey-text"],[1,"no-addresses-msg"],[3,"inline"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),hs(3,YR,9,4,"div",1),ru(4,"\n"),_s(),ru(5,"\n")),2&e&&(ms("headline",Vl(1,3,"select-address.title"))("dialog",t.dialogRef),Ya(3),ms("ngForOf",t.listElements))},directives:[jk,sh,lh,SC,WC],pipes:[hM,NS],styles:[".wallet-container[_ngcontent-%COMP%]{padding-top:30px}.wallet-container[_ngcontent-%COMP%]:first-child{padding-top:0}.wallet-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{color:#1e2227;border-bottom:1px solid rgba(30,34,39,.05);padding:0 10px;font-size:18px;line-height:1.8;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.wallet-container[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:13px;line-height:1.7;color:#1e2227}.wallet-container[_ngcontent-%COMP%] .balance[_ngcontent-%COMP%]{font-size:12px;line-height:1.5;color:#1e2227}.wallet-container[_ngcontent-%COMP%] .no-addresses-msg[_ngcontent-%COMP%]{padding:10px}.wallet-container[_ngcontent-%COMP%] .no-addresses-msg[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:5px;position:relative;top:2px}"]}),e}(),IR=["button"],RR=function(){function e(t,n,i,r,a){this.dialogRef=t,this.data=n,this.formBuilder=i,this.msgBarService=r,this.storageService=a,this.maxNoteChars=e.MAX_NOTE_CHARS,this.busy=!1}return e.openDialog=function(t,n){var i=new wk;return i.data=n,i.autoFocus=!0,i.width=jM.mediumModalWidth,t.open(e,i)},e.prototype.ngOnInit=function(){this.originalNote=this.data.note?this.data.note:"",this.form=this.formBuilder.group({note:[this.data.note]})},e.prototype.ngOnDestroy=function(){this.msgBarService.hide(),this.OperationSubscription&&this.OperationSubscription.unsubscribe()},e.prototype.closePopup=function(){this.dialogRef.close()},e.prototype.changeNote=function(){var e=this;if(!this.busy){var t=this.form.value.note?this.form.value.note.trim():"";this.originalNote!==t?(this.busy=!0,this.msgBarService.hide(),this.button.setLoading(),this.OperationSubscription=this.storageService.store(yL.NOTES,this.data.id,t).subscribe(function(){e.busy=!1,e.dialogRef.close(t)},function(t){e.busy=!1,e.msgBarService.showError(t),e.button.resetState().setEnabled()})):this.closePopup()}},e.MAX_NOTE_CHARS=64,e.\u0275fac=function(t){return new(t||e)(ps(Lk),ps(Tk),ps(fm),ps(dL),ps(bL))},e.\u0275cmp=ft({type:e,selectors:[["app-change-note"]],viewQuery:function(e,t){var n;1&e&&lc(IR,5),2&e&&uc(n=dc())&&(t.button=n.first)},decls:34,vars:20,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"form-field"],["for","note"],[1,"help-icon",3,"matTooltip"],["formControlName","note","id","note",3,"maxlength","keydown.enter"],[1,"-buttons"],[3,"action"],[1,"primary-button",3,"action"],["button",""]],template:function(e,t){if(1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),vs(4,"div",1),ru(5,"\n "),vs(6,"div",2),ru(7,"\n "),vs(8,"label",3),ru(9),Wl(10,"translate"),vs(11,"mat-icon",4),Wl(12,"translate"),ru(13,"help"),_s(),ru(14,"\n "),_s(),ru(15,"\n "),vs(16,"input",5),xs("keydown.enter",function(){return t.changeNote()}),_s(),ru(17,"\n "),_s(),ru(18,"\n "),_s(),ru(19,"\n "),ru(20,"\n "),vs(21,"div",6),ru(22,"\n "),vs(23,"app-button",7),xs("action",function(){return t.closePopup()}),ru(24),Wl(25,"translate"),_s(),ru(26,"\n "),vs(27,"app-button",8,9),xs("action",function(){return t.changeNote()}),ru(29),Wl(30,"translate"),_s(),ru(31,"\n "),_s(),ru(32,"\n"),_s(),ru(33,"\n")),2&e){var n=fs(28);ms("headline",Vl(1,10,"edit-note.title"))("dialog",t.dialogRef)("disableDismiss",n&&n.isLoading()),Ya(4),ms("formGroup",t.form),Ya(5),ou("\n ",Vl(10,12,"send.personal-note-label"),"\n "),Ya(2),ms("matTooltip",Vl(12,14,"send.personal-note-help")),Ya(5),ms("maxlength",t.maxNoteChars),ls("disabled",t.busy?"true":null),Ya(8),ou("\n ",Vl(25,16,"common.cancel-button"),"\n "),Ya(5),ou("\n ",Vl(30,18,"edit-note.change-button"),"\n ")}},directives:[jk,ap,jp,WC,YO,Lf,rp,qp,lm,ZC],pipes:[hM],styles:[""]}),e}(),FR=function(){function e(e,t,n,i){this.dialogRef=e,this.data=t,this.formBuilder=n,this.msgBarService=i,this.inputErrorMsg=""}return e.openDialog=function(t,n){var i=new wk;return i.data=n,i.autoFocus=!0,i.width=jM.mediumModalWidth,t.open(e,i)},e.prototype.ngOnInit=function(){this.form=this.formBuilder.group({data:[this.data]}),this.form.setValidators(this.validateForm.bind(this))},e.prototype.ngOnDestroy=function(){this.msgBarService.hide()},e.prototype.processData=function(){try{if(0===this.form.value.data.trim().length)return void this.msgBarService.showError("send.bulk-send.no-data-error");var e=this.form.value.data.split(/\r?\n/);if(!e||0===e.length)return void this.msgBarService.showError("send.bulk-send.no-data-error");var t=(e=e.filter(function(e){return e.trim().length>0}))[0].split(",").length;if(2!==t&&3!==t)return void this.msgBarService.showError("send.bulk-send.invalid-data-error");var n=[],i=!0;if(e.forEach(function(e){var r=e.split(","),a={address:r[0].trim(),coins:r[1].trim(),originalAmount:null};a.hours=3===r.length?r[2].trim():void 0,n.push(a),r.length!==t&&(i=!1)}),!i)return void this.msgBarService.showError("send.bulk-send.inconsistent-data-error");this.dialogRef.close(n)}catch(r){this.msgBarService.showError("send.bulk-send.invalid-data-error")}},e.prototype.validateForm=function(){this.inputErrorMsg="";var e=!0;return this.form.get("data").value&&this.form.get("data").value.trim()||(e=!1,this.form.get("data").touched&&(this.inputErrorMsg="send.bulk-send.data-error-info")),e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(Lk),ps(Tk),ps(fm),ps(dL))},e.\u0275cmp=ft({type:e,selectors:[["app-multiple-destinations-dialog"]],decls:20,vars:13,consts:[[3,"headline","dialog"],[1,"modal-form-container",3,"formGroup"],[1,"form-field"],["formControlName","data","id","data","rows","5",3,"appFormFieldError","blur"],[1,"-buttons"],[1,"primary-button",3,"disabled","action"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2),Wl(3,"translate"),vs(4,"div",1),ru(5,"\n "),vs(6,"div",2),ru(7,"\n "),vs(8,"textarea",3),xs("blur",function(){return t.validateForm()}),_s(),ru(9,"\n "),_s(),ru(10,"\n "),_s(),ru(11,"\n "),vs(12,"div",4),ru(13,"\n "),vs(14,"app-button",5),xs("action",function(){return t.processData()}),ru(15),Wl(16,"translate"),_s(),ru(17,"\n "),_s(),ru(18,"\n"),_s(),ru(19,"\n")),2&e&&(ms("headline",Vl(1,7,"send.bulk-send.title"))("dialog",t.dialogRef),Ya(2),ou("\n ",Vl(3,9,"send.bulk-send.indications"),"\n "),Ya(2),ms("formGroup",t.form),Ya(4),ms("appFormFieldError",t.inputErrorMsg),Ya(6),ms("disabled",!t.form.valid),Ya(1),ou("\n ",Vl(16,11,"send.bulk-send.process-button"),"\n "))},directives:[jk,ap,jp,Lf,rp,qp,RO,ZC],pipes:[hM],styles:[""]}),e}();function HR(e,t){if(1&e){var n=Ms();vs(0,"div",2),ru(1,"\n "),vs(2,"label",3),ru(3),Wl(4,"translate"),vs(5,"mat-icon",4),Wl(6,"translate"),ru(7,"help"),_s(),ru(8,"\n "),_s(),ru(9,"\n "),vs(10,"input",5),xs("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(11,"\n "),_s()}if(2&e){var i=Ys();Ya(3),ou("\n ",Vl(4,4,"send.addresses-label"),"\n "),Ya(2),ms("matTooltip",Vl(6,6,"send.addresses-manual-help")),Ya(5),ms("appFormFieldError",i.manualAddressesErrorMsg),ls("disabled",i.busy?"true":null)}}function jR(e,t){if(1&e&&(bs(0),ru(1,"\n "),vs(2,"option",12),ru(3),Wl(4,"amount"),Wl(5,"amount"),_s(),ru(6,"\n "),ws()),2&e){var n=t.$implicit;Ya(2),ms("disabled",!n.coins||n.coins.isLessThanOrEqualTo(0))("ngValue",n),Ya(1),uu("\n ",n.label," - ",Vl(4,5,n.coins?n.coins:0),"\n (",Ul(5,7,n.hours?n.hours:0,!1),")\n ")}}function NR(e,t){if(1&e&&(bs(0),ru(1,"\n "),hs(2,jR,7,10,"ng-container",11),ru(3,"\n "),ws()),2&e){var n=Ys(2);Ya(2),ms("ngForOf",n.allWallets)}}function BR(e,t){if(1&e){var n=Ms();vs(0,"div",2),ru(1,"\n "),vs(2,"label",6),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),vs(6,"div",7),ru(7,"\n "),vs(8,"select",8),xs("blur",function(){return on(n),Ys().validateForm()}),ru(9,"\n "),vs(10,"option",9),ru(11),Wl(12,"translate"),_s(),ru(13,"\n "),hs(14,NR,4,1,"ng-container",10),ru(15,"\n "),_s(),ru(16,"\n "),_s(),ru(17,"\n "),_s()}if(2&e){var i=Ys();Ya(3),au(Vl(4,6,i.selectionMode===i.sourceSelectionModes.Wallet?"send.from-label":"send.wallet-label")),Ya(5),ms("appFormFieldError",i.walletErrorMsg),ls("disabled",i.busy?"true":null),Ya(2),ms("ngValue",""),Ya(1),au(Vl(12,8,"send.select-wallet")),Ya(3),ms("ngIf",i.allWallets)}}function WR(e,t){if(1&e&&(vs(0,"mat-option",17),ru(1),Wl(2,"amount"),Wl(3,"amount"),_s()),2&e){var n=t.$implicit;ms("value",n),Ya(1),uu("\n ",n.address," - ",Vl(2,4,n.coins?n.coins:0),"\n (",Ul(3,6,n.hours,!1),")\n ")}}function VR(e,t){if(1&e&&(vs(0,"div"),ru(1),Wl(2,"amount"),Wl(3,"amount"),_s()),2&e){var n=t.$implicit;Ya(1),uu("\n ",n.address," - ",Vl(2,3,n.coins?n.coins:0),"\n (",Ul(3,5,n.hours,!1),")\n ")}}var UR=function(e){return{"element-disabled":e}};function zR(e,t){if(1&e){var n=Ms();vs(0,"div",2),ru(1,"\n "),vs(2,"label",13),xs("click",function(){on(n);var e=fs(13);return Ys().busy?null:e.open()}),ru(3),Wl(4,"translate"),vs(5,"mat-icon",4),Wl(6,"translate"),ru(7,"help"),_s(),ru(8,"\n "),_s(),ru(9,"\n "),vs(10,"div",7),ru(11,"\n "),vs(12,"mat-select",14,15),Wl(14,"translate"),ru(15,"\n "),hs(16,WR,4,9,"mat-option",16),ru(17,"\n "),vs(18,"mat-select-trigger"),ru(19,"\n "),hs(20,VR,4,8,"div",11),ru(21,"\n "),_s(),ru(22,"\n "),_s(),ru(23,"\n "),_s(),ru(24,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("for",i.busy?"":"addresses"),Ya(1),ou("\n ",Vl(4,8,"send.addresses-label"),"\n "),Ya(2),ms("matTooltip",Vl(6,10,"send.addresses-help")),Ya(7),ms("placeholder",Vl(14,12,i.addressessPlaceholder))("ngClass",Il(14,UR,i.busy||i.addresses&&0===i.addresses.length)),ls("disabled",i.busy||i.addresses&&0===i.addresses.length?"true":null),Ya(4),ms("ngForOf",i.addresses),Ya(4),ms("ngForOf",i.form.get("addresses").value)}}function qR(e,t){1&e&&(vs(0,"mat-icon",21),Wl(1,"translate"),ru(2,"error"),_s()),2&e&&ms("matTooltip",Vl(1,1,"send.outputs-error"))}function GR(e,t){1&e&&ys(0,"mat-spinner")}function KR(e,t){if(1&e&&(vs(0,"mat-option",17),ru(1),Wl(2,"amount"),Wl(3,"amount"),_s()),2&e){var n=t.$implicit;ms("value",n),Ya(1),uu("\n ",n.hash," - ",Vl(2,4,n.coins?n.coins:0),"\n (",Ul(3,6,n.hours,!1),")\n ")}}function JR(e,t){if(1&e&&(vs(0,"div"),ru(1),Wl(2,"amount"),Wl(3,"amount"),_s()),2&e){var n=t.$implicit;Ya(1),uu("\n ",n.hash," - ",Vl(2,3,n.coins?n.coins:0),"\n (",Ul(3,5,n.hours,!1),")\n ")}}function ZR(e,t){if(1&e){var n=Ms();vs(0,"div",2),ru(1,"\n "),vs(2,"label",13),xs("click",function(){on(n);var e=fs(17);return Ys().busy?null:e.open()}),ru(3),Wl(4,"translate"),vs(5,"mat-icon",4),Wl(6,"translate"),ru(7,"help"),_s(),ru(8,"\n "),hs(9,qR,3,3,"mat-icon",18),ru(10,"\n "),hs(11,GR,1,0,"mat-spinner",10),ru(12,"\n "),_s(),ru(13,"\n "),vs(14,"div",7),ru(15,"\n "),vs(16,"mat-select",19,20),Wl(18,"translate"),ru(19,"\n "),hs(20,KR,4,9,"mat-option",16),ru(21,"\n "),vs(22,"mat-select-trigger"),ru(23,"\n "),hs(24,JR,4,8,"div",11),ru(25,"\n "),_s(),ru(26,"\n "),_s(),ru(27,"\n "),_s(),ru(28,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("for",i.busy?null:"outputs"),Ya(1),ou("\n ",Vl(4,10,"send.outputs-label"),"\n "),Ya(2),ms("matTooltip",Vl(6,12,"send.outputs-help")),Ya(4),ms("ngIf",i.errorLoadingManualOutputs),Ya(2),ms("ngIf",i.loadingUnspentOutputs),Ya(5),ms("placeholder",Vl(18,14,i.outputsPlaceholder))("ngClass",Il(16,UR,i.busy||i.unspentOutputs&&0===i.unspentOutputs.length)),ls("disabled",i.busy||i.unspentOutputs&&0===i.unspentOutputs.length?"true":null),Ya(4),ms("ngForOf",i.unspentOutputs),Ya(4),ms("ngForOf",i.form.get("outputs").value)}}var $R=function(){return function(){this.availableCoins=new CM.BigNumber(0),this.availableHours=new CM.BigNumber(0),this.minimumFee=new CM.BigNumber(0),this.loading=!1}}(),XR=function(e){return e.Wallet="Wallet",e.All="All",e.Manual="Manual",e}({}),QR=function(){function e(e,t,n){this.appService=e,this.formBuilder=t,this.balanceAndOutputsService=n,this.onSelectionChanged=new Zl,this.sourceSelectionModes=XR,this.addresses=[],this.manualAddresses=[],this.allUnspentOutputs=[],this.unspentOutputs=[],this.loadingUnspentOutputs=!1,this.errorLoadingManualOutputs=!1,this.manualAddressesErrorMsg="",this.walletErrorMsg="",this.subscriptionsGroup=[]}return Object.defineProperty(e.prototype,"selectionMode",{get:function(){return this.selectionModeInternal},set:function(e){this.selectionModeInternal=e,this.form&&(this.resetForm(),this.form.updateValueAndValidity())},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.form=this.formBuilder.group({manualAddresses:[""],wallet:[""],addresses:[null],outputs:[null]}),this.form.setValidators(this.validateForm.bind(this)),this.subscriptionsGroup.push(this.form.get("manualAddresses").valueChanges.pipe(Bv(500)).subscribe(function(){var t=e.form.get("manualAddresses").value,n=[];t&&t.trim().length>0&&(n=(n=(n=t.split(",")).map(function(e){return e.trim()})).filter(function(e){return e.length>0}));var i=!1;n.length!==e.manualAddresses.length?i=!0:n.forEach(function(t,n){e.manualAddresses[n]!==t&&(i=!0)}),i&&(e.manualAddresses=n,e.closeGetOutputsSubscription(),e.allUnspentOutputs=[],e.unspentOutputs=[],e.form.get("outputs").setValue(null),e.loadingUnspentOutputs=0!==n.length,e.errorLoadingManualOutputs=!1,e.onSelectionChanged.emit()),0!==n.length&&i&&(e.getOutputsSubscription=e.balanceAndOutputsService.getOutputs(e.form.get("manualAddresses").value.replace(/ /g,"")).pipe(xM(function(t){return t.pipe(ue(function(t){return(t=VM(t)).originalError&&t.originalError.status&&400===t.originalError.status?(e.errorLoadingManualOutputs=!0,sg(t)):bm(t)}),EM(4e3))})).subscribe(function(t){e.loadingUnspentOutputs=!1,e.allUnspentOutputs=t,e.unspentOutputs=e.filterUnspentOutputs(),e.onSelectionChanged.emit()},function(){e.loadingUnspentOutputs=!1,e.onSelectionChanged.emit()}))})),this.subscriptionsGroup.push(this.form.get("wallet").valueChanges.subscribe(function(t){e.wallet=t,e.closeGetOutputsSubscription(),e.allUnspentOutputs=[],e.unspentOutputs=[],e.form.get("addresses").setValue(null),e.form.get("outputs").setValue(null),e.loadingUnspentOutputs=!1,t&&e.selectionMode===XR.All&&(e.loadingUnspentOutputs=!0,e.getOutputsSubscription=e.balanceAndOutputsService.getWalletUnspentOutputs(t).pipe(xM(function(e){return e.pipe(EM(4e3))})).subscribe(function(t){e.loadingUnspentOutputs=!1,e.allUnspentOutputs=t,e.unspentOutputs=e.filterUnspentOutputs()},function(){return e.loadingUnspentOutputs=!1})),e.addresses=t?t.addresses.filter(function(e){return e.coins>0}):[],e.onSelectionChanged.emit()})),this.subscriptionsGroup.push(this.form.get("addresses").valueChanges.subscribe(function(){e.form.get("outputs").setValue(null),e.unspentOutputs=e.filterUnspentOutputs(),e.onSelectionChanged.emit()})),this.subscriptionsGroup.push(this.form.get("outputs").valueChanges.subscribe(function(){e.onSelectionChanged.emit()})),this.subscriptionsGroup.push(this.balanceAndOutputsService.walletsWithBalance.subscribe(function(t){e.allWallets=t,1===t.length&&setTimeout(function(){try{e.form.get("wallet").setValue(t[0])}catch(n){}})}))},e.prototype.ngOnDestroy=function(){this.closeGetOutputsSubscription(),this.subscriptionsGroup.forEach(function(e){return e.unsubscribe()}),this.onSelectionChanged.complete()},e.prototype.resetForm=function(){this.form.get("manualAddresses").setValue(""),this.form.get("wallet").setValue(""),this.form.get("addresses").setValue(null),this.form.get("outputs").setValue(null),this.wallet=null},e.prototype.fill=function(e){var t=this;setTimeout(function(){if(t.selectionMode===XR.Manual){var n="",i=e.form.manualAddresses;i.forEach(function(e,t){n+=e,t0){var t=this.form.get("outputs").value;t&&t.length>0?t.map(function(t){e.availableCoins=e.availableCoins.plus(t.coins),e.availableHours=e.availableHours.plus(t.hours)}):this.unspentOutputs.forEach(function(t){e.availableCoins=e.availableCoins.plus(t.coins),e.availableHours=e.availableHours.plus(t.hours)})}if(this.selectionMode===XR.Manual&&(e.loading=this.loadingUnspentOutputs),this.form.get("wallet").value){var n=this.form.get("outputs").value,i=this.form.get("addresses").value;if(n&&n.length>0)n.map(function(t){e.availableCoins=e.availableCoins.plus(t.coins),e.availableHours=e.availableHours.plus(t.hours)});else if(i&&i.length>0)i.map(function(t){e.availableCoins=e.availableCoins.plus(t.coins),e.availableHours=e.availableHours.plus(t.hours)});else if(this.form.get("wallet").value){var r=this.form.get("wallet").value;e.availableCoins=r.coins,e.availableHours=r.hours}}if(e.availableCoins.isGreaterThan(0)){var a=new CM.BigNumber(1).minus(new CM.BigNumber(1).dividedBy(this.appService.burnRate)),o=e.availableHours.multipliedBy(a).decimalPlaces(0,CM.BigNumber.ROUND_FLOOR);e.minimumFee=e.availableHours.minus(o),e.availableHours=o}return e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"selectedSources",{get:function(){return this.selectionMode===XR.Manual?{wallet:null,manualAddresses:this.manualAddresses,unspentOutputs:this.form.get("outputs").value}:{wallet:this.form.get("wallet").value,addresses:this.form.get("addresses").value,unspentOutputs:this.form.get("outputs").value}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"unspentOutputsList",{get:function(){return this.loadingUnspentOutputs?null:this.allUnspentOutputs},enumerable:!1,configurable:!0}),e.prototype.filterUnspentOutputs=function(){if(this.selectionMode===XR.Manual)return this.allUnspentOutputs;if(0===this.allUnspentOutputs.length)return[];if(this.form.get("addresses").value&&0!==this.form.get("addresses").value.length){var e=new Map;return this.form.get("addresses").value.forEach(function(t){return e.set(t.address,!0)}),this.allUnspentOutputs.filter(function(t){return e.has(t.address)})}return this.allUnspentOutputs},e.prototype.closeGetOutputsSubscription=function(){this.loadingUnspentOutputs=!1,this.getOutputsSubscription&&this.getOutputsSubscription.unsubscribe()},e.prototype.validateForm=function(){this.manualAddressesErrorMsg="",this.walletErrorMsg="";var e=!0;return this.selectionMode===XR.Manual?(!this.form.get("manualAddresses").value||this.form.get("manualAddresses").value.length<20)&&(e=!1,this.form.get("manualAddresses").touched&&(this.manualAddressesErrorMsg="send.addresses-error-info")):this.form.get("wallet").value||(e=!1,this.form.get("wallet").touched&&(this.walletErrorMsg="send.wallet-error-info")),e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(fm),ps(_O))},e.\u0275cmp=ft({type:e,selectors:[["app-form-source-selection"]],inputs:{busy:"busy",selectionMode:"selectionMode"},outputs:{onSelectionChanged:"onSelectionChanged"},decls:15,vars:5,consts:[[3,"formGroup"],["class","form-field",4,"ngIf"],[1,"form-field"],["for","manualAddresses"],[1,"help-icon",3,"matTooltip"],["formControlName","manualAddresses","id","manualAddresses",3,"appFormFieldError","blur"],["for","wallet"],[1,"-select"],["formControlName","wallet","id","wallet",3,"appFormFieldError","blur"],["disabled","","hidden","",3,"ngValue"],[4,"ngIf"],[4,"ngFor","ngForOf"],[3,"disabled","ngValue"],[3,"for","click"],["multiple","","formControlName","addresses","id","addresses",3,"placeholder","ngClass"],["selectAddresses",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["class","help-icon red-text",3,"matTooltip",4,"ngIf"],["multiple","","formControlName","outputs","id","outputs",3,"placeholder","ngClass"],["selectOutputs",""],[1,"help-icon","red-text",3,"matTooltip"]],template:function(e,t){1&e&&(vs(0,"div",0),ru(1,"\n "),ru(2,"\n "),hs(3,HR,12,8,"div",1),ru(4,"\n "),ru(5,"\n "),hs(6,BR,18,10,"div",1),ru(7,"\n "),ru(8,"\n "),hs(9,zR,25,16,"div",1),ru(10,"\n "),ru(11,"\n "),hs(12,ZR,29,18,"div",1),ru(13,"\n"),_s(),ru(14,"\n")),2&e&&(ms("formGroup",t.form),Ya(3),ms("ngIf",t.selectionMode===t.sourceSelectionModes.Manual),Ya(3),ms("ngIf",t.selectionMode!==t.sourceSelectionModes.Manual),Ya(3),ms("ngIf",t.selectionMode===t.sourceSelectionModes.All),Ya(3),ms("ngIf",t.selectionMode!==t.sourceSelectionModes.Wallet))},directives:[ap,jp,lh,WC,YO,Lf,rp,qp,RO,Jp,Zp,em,sh,QI,ah,$I,mk,MM],pipes:[hM,NS],styles:[".form-field[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{height:12px!important;width:12px!important;opacity:.5;margin:0!important;display:inline-block;position:relative;top:2px;margin-left:8px}.form-field[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] svg{height:12px!important;width:12px!important}"]}),e}(),eF=["okButton"],tF=function(e){return e.Loading="Loading",e.ErrorLoading="ErrorLoading",e.ShowingForm="ShowingForm",e}({}),nF=function(){function e(e){this.working=!1,this.currentState=tF.Loading,this.states=tF,this.validateForm=!1,this.title="",this.text="",this.dropdownLabel="",this.defaultDropdownText="",this.inputLabel="",this.contents="",this.cancelButtonText="",this.okButtonText="",this.dropdownErrorMsg="",this.inputErrorMsg="",this.form=e.group({dropdown:[""],input:[""]}),this.form.setValidators(this.validate.bind(this))}return e.prototype.validate=function(){this.dropdownErrorMsg="",this.inputErrorMsg="";var e=!0;this.form.get("dropdown").value||(e=!1,this.form.get("dropdown").touched&&(this.dropdownErrorMsg="offline-transactions.wallet-error-info"));var t=this.form.get("input").value;return(!t||t.length<300||!/^[0-9a-fA-F]+$/.test(t))&&(e=!1,this.form.get("input").touched&&(this.inputErrorMsg="offline-transactions.tx-error-info")),e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(fm))},e.\u0275cmp=ft({type:e,selectors:[["ng-component"]],viewQuery:function(e,t){var n;1&e&&lc(eF,5),2&e&&uc(n=dc())&&(t.okButton=n.first)},decls:0,vars:0,template:function(e,t){},encapsulation:2}),e}();function iF(e,t){1&e&&(vs(0,"div"),ru(1,"\n "),ys(2,"mat-spinner",2),ru(3,"\n "),vs(4,"p"),ru(5),Wl(6,"translate"),_s(),ru(7,"\n "),_s()),2&e&&(Ya(2),ms("diameter",40),Ya(3),au(Vl(6,2,"common.loading")))}function rF(e,t){if(1&e&&(vs(0,"div"),ru(1,"\n "),vs(2,"i",3),ru(3,"announcement"),_s(),ru(4,"\n "),vs(5,"p"),ru(6),Wl(7,"translate"),_s(),ru(8,"\n "),_s()),2&e){var n=Ys();Ya(6),au(Vl(7,1,n.noDataText))}}var aF=function(){function e(){this.isLoading=!0}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ft({type:e,selectors:[["app-loading-content"]],inputs:{isLoading:"isLoading",noDataText:"noDataText"},decls:7,vars:2,consts:[[1,"-content"],[4,"ngIf"],[3,"diameter"],[1,"material-icons"]],template:function(e,t){1&e&&(vs(0,"div",0),ru(1,"\n "),hs(2,iF,8,4,"div",1),ru(3,"\n "),hs(4,rF,9,3,"div",1),ru(5,"\n"),_s(),ru(6,"\n")),2&e&&(Ya(2),ms("ngIf",t.isLoading),Ya(2),ms("ngIf",!t.isLoading))},directives:[lh,MM],pipes:[hM],styles:[".-content[_ngcontent-%COMP%]{text-align:center;margin:50px 0;font-size:13px;opacity:.5}.-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin-top:15px}.-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{color:rgba(30,34,39,.5);font-size:40px;opacity:.5}.-content[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5}.-content[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:rgba(30,34,39,.5)}"]}),e}();function oF(e,t){if(1&e&&ys(0,"app-loading-content",3),2&e){var n=Ys();ms("isLoading",n.currentState===n.states.Loading)("noDataText","offline-transactions.loading-problem")}}function sF(e,t){if(1&e&&(vs(0,"label",19),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(3);Ya(1),au(Vl(2,1,n.dropdownLabel))}}function uF(e,t){if(1&e&&(vs(0,"option",20),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(3);ms("ngValue",""),Ya(1),au(Vl(2,2,n.defaultDropdownText))}}function lF(e,t){if(1&e&&(bs(0),ru(1,"\n "),vs(2,"option",22),ru(3),_s(),ru(4,"\n "),ws()),2&e){var n=t.$implicit;Ya(2),ms("ngValue",n.value),Ya(1),ou("\n ",n.name,"\n ")}}function cF(e,t){if(1&e&&(bs(0),ru(1,"\n "),hs(2,lF,5,2,"ng-container",21),ru(3,"\n "),ws()),2&e){var n=Ys(3);Ya(2),ms("ngForOf",n.dropdownElements)}}function dF(e,t){if(1&e){var n=Ms();vs(0,"div",6),ru(1,"\n "),hs(2,sF,3,3,"label",15),ru(3,"\n "),vs(4,"div",16),ru(5,"\n "),vs(6,"select",17),xs("blur",function(){return on(n),Ys(2).validate()}),ru(7,"\n "),hs(8,uF,3,4,"option",18),ru(9,"\n "),hs(10,cF,4,1,"ng-container",2),ru(11,"\n "),_s(),ru(12,"\n "),_s(),ru(13,"\n "),_s()}if(2&e){var i=Ys(2);Ya(2),ms("ngIf",i.dropdownLabel),Ya(4),ms("appFormFieldError",i.dropdownErrorMsg),ls("disabled",i.working?"true":null),Ya(2),ms("ngIf",i.defaultDropdownText),Ya(2),ms("ngIf",i.dropdownElements)}}function hF(e,t){if(1&e&&(vs(0,"label",23),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(2);Ya(1),au(Vl(2,1,n.inputLabel))}}function fF(e,t){if(1&e&&(vs(0,"textarea",24),ru(1),_s()),2&e){var n=Ys(2);ms("readonly",!0),Ya(1),au(n.contents)}}function pF(e,t){if(1&e){var n=Ms();vs(0,"textarea",25),xs("blur",function(){return on(n),Ys(2).validate()}),_s()}if(2&e){var i=Ys(2);ms("appFormFieldError",i.inputErrorMsg),ls("disabled",i.working?"true":null)}}function mF(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),ru(2),Wl(3,"translate"),vs(4,"div",4),ru(5,"\n "),ru(6,"\n "),hs(7,dF,14,5,"div",5),ru(8,"\n "),ru(9,"\n "),vs(10,"div",6),ru(11,"\n "),hs(12,hF,3,3,"label",7),ru(13,"\n "),hs(14,fF,2,2,"textarea",8),ru(15,"\n "),hs(16,pF,1,2,"textarea",9),ru(17,"\n "),_s(),ru(18,"\n "),_s(),ru(19,"\n "),ru(20,"\n "),vs(21,"div",10),ru(22,"\n "),vs(23,"app-button",11,12),xs("action",function(){return on(n),Ys().cancelPressed()}),ru(25),Wl(26,"translate"),_s(),ru(27,"\n "),vs(28,"app-button",13,14),xs("action",function(){return on(n),Ys().okPressed()}),ru(30),Wl(31,"translate"),_s(),ru(32,"\n "),_s(),ru(33,"\n "),ws()}if(2&e){var i=Ys();Ya(2),ou("\n ",Vl(3,10,i.text),"\n "),Ya(2),ms("formGroup",i.form),Ya(3),ms("ngIf",i.dropdownElements),Ya(5),ms("ngIf",i.inputLabel),Ya(2),ms("ngIf",!!i.contents),Ya(2),ms("ngIf",!i.contents),Ya(7),ms("disabled",i.working),Ya(2),ou("\n ",Vl(26,12,i.cancelButtonText),"\n "),Ya(3),ms("disabled",i.validateForm&&!i.form.valid||i.working),Ya(2),ou("\n ",Vl(31,14,i.okButtonText),"\n ")}}var gF=function(e){function t(t,n,i,r){var a=e.call(this,r)||this;return a.data=t,a.dialogRef=n,a.msgBarService=i,a.cancelButtonText="common.close-button",a.okButtonText="offline-transactions.copy-tx.copy-button",a.inputLabel="offline-transactions.copy-tx.input-label",a.title="offline-transactions.copy-tx."+(t.isUnsigned?"unsigned":"signed")+"-title",a.text="offline-transactions.copy-tx.text-"+(t.isUnsigned?"unsigned":"signed"),a.contents=t.rawTx,a.currentState=tF.ShowingForm,a}return vf(t,e),t.openDialog=function(e,n){var i=new wk;return i.data=n,i.autoFocus=!0,i.width=jM.mediumModalWidth,e.open(t,i)},t.prototype.ngOnInit=function(){var e=this;setTimeout(function(){e.okButton.focus()})},t.prototype.cancelPressed=function(){this.dialogRef.close()},t.prototype.okPressed=function(){IM(this.data.rawTx),this.msgBarService.showDone("common.copied",4e3)},t.\u0275fac=function(e){return new(e||t)(ps(Tk),ps(Lk),ps(dL),ps(fm))},t.\u0275cmp=ft({type:t,selectors:[["app-copy-raw-tx"]],features:[Ko],decls:9,vars:7,consts:[[3,"headline","dialog","disableDismiss"],[3,"isLoading","noDataText",4,"ngIf"],[4,"ngIf"],[3,"isLoading","noDataText"],[1,"modal-form-container",3,"formGroup"],["class","form-field",4,"ngIf"],[1,"form-field"],["for","input",4,"ngIf"],["rows","5",3,"readonly",4,"ngIf"],["formControlName","input","id","input","rows","5",3,"appFormFieldError","blur",4,"ngIf"],[1,"-buttons"],[3,"disabled","action"],["cancelButton",""],[1,"primary-button",3,"disabled","action"],["okButton",""],["for","dropdown",4,"ngIf"],[1,"-select"],["formControlName","dropdown","id","dropdown",3,"appFormFieldError","blur"],["disabled","","hidden","",3,"ngValue",4,"ngIf"],["for","dropdown"],["disabled","","hidden","",3,"ngValue"],[4,"ngFor","ngForOf"],[3,"ngValue"],["for","input"],["rows","5",3,"readonly"],["formControlName","input","id","input","rows","5",3,"appFormFieldError","blur"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,oF,1,2,"app-loading-content",1),ru(5,"\n\n "),hs(6,mF,34,16,"ng-container",2),ru(7,"\n"),_s(),ru(8,"\n")),2&e&&(ms("headline",Vl(1,5,t.title))("dialog",t.dialogRef)("disableDismiss",t.working),Ya(4),ms("ngIf",t.currentState===t.states.Loading||t.currentState===t.states.ErrorLoading),Ya(2),ms("ngIf",t.currentState===t.states.ShowingForm))},directives:[jk,lh,aF,ap,jp,ZC,Jp,rp,qp,RO,Zp,em,sh,Lf],pipes:[hM],styles:[""]}),t}(nF),vF=n(61295),_F=function(){function e(){}return e.encode=function(e,t,n,i,r){var a=this;if(void 0===r&&(r=0),e.length!==n.length)throw new Error("Invalid number of signatures.");var o=this.encodeSizeTransaction(e,t,n).toNumber(),s=new ArrayBuffer(o),u=new DataView(s),l=0;if(u.setUint32(l,o,!0),u.setUint8(l+=4,r),l+=1,this.convertToBytes(i).forEach(function(e){u.setUint8(l,e),l+=1}),n.length>65535)throw new Error("Too many signatures.");if(u.setUint32(l,n.length,!0),l+=4,n.forEach(function(e){a.convertToBytes(e).forEach(function(e){u.setUint8(l,e),l+=1})}),e.length>65535)throw new Error("Too many inputs.");if(u.setUint32(l,e.length,!0),l+=4,e.forEach(function(e){a.convertToBytes(e.hash).forEach(function(e){u.setUint8(l,e),l+=1})}),t.length>65535)throw new Error("Too many outputs.");u.setUint32(l,t.length,!0),l+=4;var c=vF("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");return t.forEach(function(e){var t=c.decode(e.address);u.setUint8(l,t[20]),l+=1;for(var n=0;n<20;n++)u.setUint8(l,t[n]),l+=1;l=a.setUint64(u,l,new(LM())(e.coins).multipliedBy(1e6).decimalPlaces(0)),l=a.setUint64(u,l,new(LM())(e.hours))}),this.convertToHex(s)},e.encodeSizeTransaction=function(e,t,n){var i=new(LM())(0);return(i=(i=(i=(i=(i=(i=(i=(i=i.plus(4)).plus(1)).plus(32)).plus(4)).plus(new(LM())(65).multipliedBy(n.length))).plus(4)).plus(new(LM())(32).multipliedBy(e.length))).plus(4)).plus(new(LM())(37).multipliedBy(t.length))},e.setUint64=function(e,t,n){var i=n.toString(16);i.length%2!=0&&(i="0"+i);for(var r=this.convertToBytes(i),a=r.length-1;a>=0;a--)e.setUint8(t,r[a]),t+=1;for(a=0;a<8-r.length;a++)e.setUint8(t,0),t+=1;return t},e.convertToBytes=function(e){if(e.length%2!=0)throw new Error("Invalid hex string.");for(var t=[],n=0;n8)throw new Error(u.translate.instant("hardware-wallet.errors.too-many-inputs-outputs"));if(n.transaction.outputs.length>8)throw new Error(u.translate.instant("hardware-wallet.errors.too-many-inputs-outputs"))}var r=new CM.BigNumber(0);i.map(function(e){return r=r.plus(e.coins)});var a=new CM.BigNumber(0);return n.transaction.outputs.filter(function(e){return i.map(function(e){return e.address}).find(function(t){return t===e.address})}).map(function(e){return a=a.plus(new CM.BigNumber(e.hours))}),{inputs:n.transaction.inputs.map(function(e){return{hash:e.uxid,address:e.address,coins:new CM.BigNumber(e.coins),hours:new CM.BigNumber(e.calculated_hours)}}),outputs:n.transaction.outputs.map(function(e){return{hash:e.uxid,address:e.address,coins:new CM.BigNumber(e.coins),hours:new CM.BigNumber(e.hours)}}),coinsToSend:r,hoursToSend:a,hoursBurned:new CM.BigNumber(n.transaction.fee),from:l,to:i.map(function(e){return e.address}).join(", "),wallet:e,encoded:n.encoded_transaction,innerHash:n.transaction.inner_hash}}));return e&&e.isHardware&&!s&&(f=f.pipe(ue(function(t){return h=t,u.signTransaction(e,null,t)})).pipe(K(function(e){return h.encoded=e,h}))),f},e.prototype.signTransaction=function(e,t,n,i){if(void 0===i&&(i=""),e.isHardware){if(i)throw new Error("Raw transactions not allowed.");var r=[],a=[],o=new Map;if(e.addresses.forEach(function(e,t){return o.set(e.address,t)}),n.outputs.forEach(function(e){r.push({address:e.address,coins:new CM.BigNumber(e.coins).toString(),hours:new CM.BigNumber(e.hours).toFixed(0)})}),n.inputs.forEach(function(e){a.push({hash:e.hash,index:o.get(e.address)})}),r.length>1)for(var s=r.length-1;s>=0;s--)if(r[s].address===e.addresses[0].address){r[s].address_index=0;break}return this.hwWalletService.signTransaction(a,r).pipe(K(function(e){return _F.encode(a,r,e.rawResponse,n.innerHash)}))}return this.apiService.post("wallet/transaction/sign",{wallet_id:e.id,password:t,encoded_transaction:i||n.encoded},{useV2:!0}).pipe(K(function(e){return e.data.encoded_transaction}))},e.prototype.injectTransaction=function(e,t){var n=this;return this.apiService.post("injectTransaction",{rawtx:e},{sendDataAsJson:!0}).pipe(ue(function(e){return setTimeout(function(){return n.balanceAndOutputsService.refreshBalance()},32),t?n.storageService.store(yL.NOTES,e,t).pipe(xM(function(e){return Xm(e.pipe(EM(1e3),zg(3)),sg(-1))}),qM(function(e){return-1===e?bm(-1):e}),K(function(e){return-1!==e})):bm(!1)}))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(_O),Bi(HS),Bi(gC),Bi(dM),Bi(bL))}}),e}(),wF=["formSourceSelection"],kF=["formMultipleDestinations"],MF=["previewButton"],SF=["sendButton"],CF=function(e){return{"element-disabled":e}};function LF(e,t){if(1&e){var n=Ms();vs(0,"div",15),ru(1,"\n "),ru(2,"\n "),vs(3,"app-double-button",16),xs("onStateChange",function(e){return on(n),Ys().changeFormType(e)}),Wl(4,"translate"),Wl(5,"translate"),_s(),ru(6,"\n"),_s()}if(2&e){var i=Ys();Ya(3),ms("changeActiveButtonManually",!0)("leftButtonText",Vl(4,5,"send.signed-button"))("rightButtonText",Vl(5,7,"send.unsigned-button"))("activeButton",i.showForManualUnsigned?i.doubleButtonActive.RightButton:i.doubleButtonActive.LeftButton)("ngClass",Il(9,CF,i.busy))}}function xF(e,t){if(1&e&&(bs(0),ru(1,"\n "),vs(2,"span"),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),vs(6,"span",19),ru(7),Wl(8,"amount"),_s(),ru(9,"\n "),vs(10,"span"),ru(11),Wl(12,"translate"),_s(),ru(13,"\n "),vs(14,"span",19),ru(15),Wl(16,"amount"),_s(),ru(17,"\n "),vs(18,"span"),ru(19),Wl(20,"translate"),_s(),ru(21,"\n "),vs(22,"span",19),ru(23),Wl(24,"amount"),_s(),ru(25,"\n "),vs(26,"span"),ru(27),Wl(28,"translate"),_s(),ru(29,"\n "),ws()),2&e){var n=Ys(2);Ya(3),au(Vl(4,7,"send.available-funds-msg-part1")),Ya(4),ou("\n ",Vl(8,9,n.availableBalance.availableCoins),"\n "),Ya(4),au(Vl(12,11,"send.available-funds-msg-part2")),Ya(4),ou("\n ",Ul(16,13,n.availableBalance.availableHours,!1),"\n "),Ya(4),au(Vl(20,16,"send.available-funds-msg-part3")),Ya(4),ou("\n ",Ul(24,18,n.availableBalance.minimumFee,!1),"\n "),Ya(4),au(Vl(28,21,"send.available-funds-msg-part4"))}}function TF(e,t){1&e&&(bs(0),ru(1,"\n "),vs(2,"span"),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),ws()),2&e&&(Ya(3),au(Vl(4,1,"common.loading")))}function DF(e,t){if(1&e&&(vs(0,"div",17),ru(1,"\n "),hs(2,xF,30,23,"ng-container",18),ru(3,"\n "),hs(4,TF,6,3,"ng-container",18),ru(5,"\n "),_s()),2&e){var n=Ys();Ya(2),ms("ngIf",!n.availableBalance.loading),Ya(2),ms("ngIf",n.availableBalance.loading)}}function OF(e,t){if(1&e){var n=Ms();vs(0,"div",20),ru(1,"\n "),vs(2,"label",21),ru(3),Wl(4,"translate"),vs(5,"mat-icon",22),Wl(6,"translate"),ru(7,"help"),_s(),ru(8,"\n "),vs(9,"app-arrow-link",23),xs("pressed",function(e){return on(n),Ys().selectChangeAddress(e)}),ru(10,"\n "),_s(),ru(11,"\n "),_s(),ru(12,"\n "),vs(13,"input",24),xs("keydown.enter",function(){on(n);var e=Ys();return e.showForManualUnsigned?e.preview():null})("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(14,"\n "),_s()}if(2&e){var i=Ys();Ya(3),ou("\n ",Vl(4,6,"send.change-address-label"),"\n "),Ya(2),ms("matTooltip",Vl(6,8,"send.change-address-help")),Ya(4),ms("text","send.change-address-select-from-list-link")("ngClass",Il(10,CF,i.busy)),Ya(4),ms("appFormFieldError",i.invalidChangeAddress?"send.invalid-addresses-error":i.changeAddressErrorMsg),ls("disabled",i.busy?"true":null)}}function EF(e,t){if(1&e){var n=Ms();vs(0,"div",20),ru(1,"\n "),vs(2,"label",25),ru(3),Wl(4,"translate"),vs(5,"mat-icon",22),Wl(6,"translate"),ru(7,"help"),_s(),ru(8,"\n "),_s(),ru(9,"\n "),vs(10,"input",26),xs("keydown.enter",function(){return on(n),Ys().preview()}),_s(),ru(11,"\n "),_s()}if(2&e){var i=Ys();Ya(3),ou("\n ",Vl(4,4,"send.personal-note-label"),"\n "),Ya(2),ms("matTooltip",Vl(6,6,"send.personal-note-help")),Ya(5),ms("maxlength",i.maxNoteChars),ls("disabled",i.busy?"true":null)}}function YF(e,t){if(1&e){var n=Ms();vs(0,"app-arrow-link",28),xs("pressed",function(e){return on(n),Ys(2).toggleOptions(e)}),ru(1,"\n "),_s()}if(2&e){var i=Ys(2);ms("noPadding",!0)("text","send.coin-hours-options-link")("pointDown",!i.showAutoHourDistributionOptions)}}function PF(e,t){if(1&e&&(vs(0,"div",20),ru(1,"\n "),hs(2,YF,2,3,"app-arrow-link",27),ru(3,"\n "),_s()),2&e){var n=Ys();Ya(2),ms("ngIf",n.showSimpleForm)}}function AF(e,t){1&e&&ks(0)}var IF=function(e){return{"d-none":e}};function RF(e,t){if(1&e&&(vs(0,"div",29),ru(1,"\n "),hs(2,AF,1,0,"ng-container",30),ru(3,"\n "),_s()),2&e){var n=Ys(),i=fs(47);ms("ngClass",Il(2,IF,!n.showAutoHourDistributionOptions)),Ya(2),ms("ngTemplateOutlet",i)}}function FF(e,t){if(1&e){var n=Ms();vs(0,"app-arrow-link",36),xs("mousedown",function(e){return e.stopPropagation()})("pressed",function(e){return on(n),Ys(2).toggleOptions(e)}),ru(1,"\n "),_s()}if(2&e){var i=Ys(2);ms("text","send.options-link")("pointDown",!i.showAutoHourDistributionOptions)}}function HF(e,t){1&e&&ks(0)}var jF=function(e){return{coinHoursName:e}},NF=function(e){return{"row -options-wrapper":!0,"d-none":e}};function BF(e,t){if(1&e){var n=Ms();vs(0,"div",20),ru(1,"\n "),vs(2,"div",31),ru(3,"\n "),vs(4,"div",32),ru(5,"\n "),vs(6,"mat-checkbox",33),xs("change",function(e){return on(n),Ys().setAutoHours(e)}),ru(7,"\n "),vs(8,"span"),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),hs(12,FF,2,2,"app-arrow-link",34),ru(13,"\n "),_s(),ru(14,"\n "),_s(),ru(15,"\n "),_s(),ru(16,"\n\n "),ru(17,"\n "),vs(18,"div",35),ru(19,"\n "),hs(20,HF,1,0,"ng-container",30),ru(21,"\n "),_s(),ru(22,"\n "),_s()}if(2&e){var i=Ys(),r=fs(47);Ya(2),ms("ngClass",Il(9,CF,i.busy)),Ya(4),ms("checked",i.autoHours),Ya(3),au(Ul(10,6,"send.hours-allocation-check",Il(11,jF,i.appService.hoursName))),Ya(3),ms("ngIf",i.autoHours),Ya(6),ms("ngClass",Il(13,NF,!i.showAutoHourDistributionOptions)),Ya(2),ms("ngTemplateOutlet",r)}}function WF(e,t){if(1&e){var n=Ms();ru(0,"\n "),vs(1,"div",37),ru(2,"\n "),vs(3,"div",20),ru(4,"\n "),vs(5,"label",38),ru(6,"\n "),vs(7,"span"),ru(8),Wl(9,"translate"),vs(10,"mat-icon",22),Wl(11,"translate"),ru(12,"help"),_s(),ru(13,"\n "),_s(),ru(14,"\n "),vs(15,"span"),ru(16),Wl(17,"number"),_s(),ru(18,"\n "),_s(),ru(19,"\n "),vs(20,"mat-slider",39),xs("input",function(e){return on(n),Ys().setShareValue(e)}),_s(),ru(21,"\n "),_s(),ru(22,"\n "),_s(),ru(23,"\n")}if(2&e){var i=Ys();Ya(8),ou("\n ",Ul(9,5,"send.hours-share-factor-label",Il(14,jF,i.appService.hoursName)),"\n "),Ya(2),ms("matTooltip",Ul(11,8,"send.hours-share-factor-help",Il(16,jF,i.appService.hoursName))),Ya(6),au(Ul(17,11,i.autoShareValue,"1.0-2")),Ya(4),ms("value",i.autoShareValue)("ngClass",Il(18,CF,i.busy))}}var VF=function(){function e(e,t,n,i,r,a,o,s,u,l){this.appService=e,this.blockchainService=t,this.dialog=n,this.msgBarService=i,this.navBarSwitchService=r,this.hwWalletService=a,this.translate=o,this.changeDetector=s,this.spendingService=u,this.walletsAndAddressesService=l,this.defaultAutoShareValue="0.5",this.onFormSubmitted=new Zl,this.sourceSelectionModes=XR,this.doubleButtonActive=NP,this.maxNoteChars=RR.MAX_NOTE_CHARS,this.availableBalance=new $R,this.autoHours=!0,this.hoursAddedToSimpleForm=!1,this.showAutoHourDistributionOptions=!1,this.autoShareValue=this.defaultAutoShareValue,this.busy=!1,this.showForManualUnsigned=!1,this.changeAddressErrorMsg="",this.invalidChangeAddress=!1}return e.prototype.ngOnInit=function(){var e=this;this.form=new xp({}),this.form.addControl("changeAddress",new Lp("")),this.form.addControl("note",new Lp("")),this.form.setValidators(this.validateForm.bind(this)),this.formData&&setTimeout(function(){return e.fillForm()})},e.prototype.ngOnDestroy=function(){this.processingSubscription&&!this.processingSubscription.closed&&this.processingSubscription.unsubscribe(),this.closeSyncCheckSubscription(),this.msgBarService.hide()},e.prototype.sourceSelectionChanged=function(){this.selectedSources=this.formSourceSelection.selectedSources,this.availableBalance=this.formSourceSelection.availableBalance,this.formMultipleDestinations.updateValuesAndValidity(),this.form.updateValueAndValidity()},e.prototype.destinationsChanged=function(){var e=this;setTimeout(function(){e.form.updateValueAndValidity()})},e.prototype.preview=function(){this.checkBeforeCreatingTx(!0),this.changeDetector.detectChanges()},e.prototype.send=function(){this.checkBeforeCreatingTx(!1)},e.prototype.changeFormType=function(e){var t=this;e===NP.LeftButton&&!this.showForManualUnsigned||e===NP.RightButton&&this.showForManualUnsigned||(e===NP.RightButton?vO.openDialog(this.dialog,{text:"send.unsigned-confirmation",defaultButtons:gO.YesNo}).afterClosed().subscribe(function(e){e&&(t.showForManualUnsigned=!0)}):this.showForManualUnsigned=!1)},e.prototype.setShareValue=function(e){this.autoShareValue=parseFloat(e.value).toFixed(2)},e.prototype.selectChangeAddress=function(){var e=this;AR.openDialog(this.dialog).afterClosed().subscribe(function(t){t&&e.form.get("changeAddress").setValue(t)})},e.prototype.openMultipleDestinationsPopup=function(){var e=this,t="";this.formMultipleDestinations.getDestinations(!1).map(function(n){(n.address.trim().length>0||n.originalAmount.trim().length>0||!e.autoHours&&n.hours.trim().length>0)&&(t+=n.address.replace(",",""),t+=", "+n.originalAmount.replace(",",""),e.autoHours||(t+=", "+n.hours.replace(",","")),t+="\r\n")}),FR.openDialog(this.dialog,t).afterClosed().subscribe(function(t){t&&(t.length>0?(e.autoHours=void 0===t[0].hours,setTimeout(function(){return e.formMultipleDestinations.setDestinations(t)})):e.formMultipleDestinations.resetForm())})},e.prototype.changeNote=function(e){this.form.get("note").setValue(e),this.form.get("note").markAsTouched(),this.form.updateValueAndValidity()},e.prototype.setManualHours=function(){this.autoHours=!1},e.prototype.changeHoursAddedToSimpleForm=function(e){this.hoursAddedToSimpleForm=e},e.prototype.toggleOptions=function(e){var t=this;e.stopPropagation(),e.preventDefault(),this.showAutoHourDistributionOptions&&this.autoShareValue!==this.defaultAutoShareValue?vO.openDialog(this.dialog,{text:"send.close-hours-share-factor-alert",defaultButtons:gO.YesNo}).afterClosed().subscribe(function(e){e&&(t.autoShareValue=t.defaultAutoShareValue,t.showAutoHourDistributionOptions=!t.showAutoHourDistributionOptions)}):(this.autoShareValue=this.defaultAutoShareValue,this.showAutoHourDistributionOptions=!this.showAutoHourDistributionOptions)},e.prototype.setAutoHours=function(e){this.autoHours=e.checked,this.formMultipleDestinations.updateValuesAndValidity(),this.autoHours||(this.showAutoHourDistributionOptions=!1)},e.prototype.fillForm=function(){var e=this;this.showForManualUnsigned=this.formData.showForManualUnsigned,this.formSourceSelection.fill(this.formData),this.formMultipleDestinations.fill(this.formData),["changeAddress","note"].forEach(function(t){e.form.get(t).setValue(e.formData.form[t])}),this.showSimpleForm||this.formData.form.hoursSelection.type===yF.Auto?(this.autoShareValue=this.formData.form.hoursSelection.share_factor?this.formData.form.hoursSelection.share_factor:this.defaultAutoShareValue,this.autoHours=!0):this.autoHours=!1,this.showAutoHourDistributionOptions=this.formData.form.showAutoHourDistributionOptions},e.prototype.validateForm=function(){this.changeAddressErrorMsg="";var e=!0,t=this.form.get("changeAddress").value;return t&&t.length<20&&(e=!1,this.form.get("changeAddress").touched&&(this.changeAddressErrorMsg="send.address-error-info")),this.formSourceSelection&&this.formSourceSelection.valid&&this.formMultipleDestinations&&this.formMultipleDestinations.valid||(e=!1),e?null:{Invalid:!0}},e.prototype.checkBeforeCreatingTx=function(e){var t=this;!this.form.valid||this.previewButton.isLoading()||this.sendButton.isLoading()||(this.closeSyncCheckSubscription(),this.syncCheckSubscription=this.blockchainService.progress.pipe(eS()).subscribe(function(n){n.synchronized?t.checkHoursBeforeCreatingTx(e):vO.openDialog(t.dialog,{text:"send.synchronizing-warning",defaultButtons:gO.YesNo}).afterClosed().subscribe(function(n){n&&t.checkHoursBeforeCreatingTx(e)})}))},e.prototype.checkHoursBeforeCreatingTx=function(e){var t=this;if(this.form.valid&&!this.previewButton.isLoading()&&!this.sendButton.isLoading()){var n,i=new CM.BigNumber(0),r=new CM.BigNumber(0);if(this.formMultipleDestinations.getDestinations(!0).forEach(function(e){i=i.plus(e.coins),t.autoHours||(r=r.plus(e.hours))}),i.isEqualTo(this.availableBalance.availableCoins)||r.isEqualTo(this.availableBalance.availableHours)||1===Number(this.autoShareValue)&&this.autoHours)n=r.isEqualTo(this.availableBalance.availableHours)?"send.sending-all-hours-waning":i.isEqualTo(this.availableBalance.availableCoins)?this.formSourceSelection.wallet.coins.isEqualTo(this.availableBalance.availableCoins)?"send.sending-all-hours-with-coins-waning":"send.advanced-sending-all-hours-with-coins-waning":this.formSourceSelection.wallet.coins.isEqualTo(this.availableBalance.availableCoins)?"send.high-hours-share-waning":"send.advanced-high-hours-share-waning",vO.openDialog(this.dialog,{headerText:"common.warning-title",redTitle:!0,text:n,defaultButtons:gO.YesNo}).afterClosed().subscribe(function(n){n&&t.prepareTransaction(e)});else this.prepareTransaction(e)}},e.prototype.prepareTransaction=function(e){var t=this;this.msgBarService.hide(),this.previewButton.resetState(),this.sendButton.resetState(),this.showForManualUnsigned||!this.selectedSources.wallet.encrypted||this.selectedSources.wallet.isHardware||e?e||this.showForManualUnsigned||!this.selectedSources.wallet.isHardware?this.createTransaction(e):(this.showBusy(e),this.processingSubscription=this.hwWalletService.checkIfCorrectHwConnected(this.selectedSources.wallet.addresses[0].address).subscribe(function(){return t.createTransaction(e)},function(e){return t.showError(e)})):LA.openDialog(this.dialog,{wallet:this.selectedSources.wallet}).componentInstance.passwordSubmit.subscribe(function(n){t.createTransaction(e,n)})},e.prototype.createTransaction=function(e,t){var n,i=this;this.showBusy(e),n=this.showForManualUnsigned?this.selectedSources.manualAddresses:this.selectedSources.addresses&&this.selectedSources.addresses.length>0?this.selectedSources.addresses.map(function(e){return e.address}):null;var r=this.selectedSources.unspentOutputs&&this.selectedSources.unspentOutputs.length>0?this.selectedSources.unspentOutputs.map(function(e){return e.hash}):null,a=this.formMultipleDestinations.getDestinations(!0);this.formMultipleDestinations.setValidAddressesList(null),this.invalidChangeAddress=!1;var o=this.form.get("changeAddress").value,s=a.map(function(e){return e.address});o&&s.push(o),this.processingSubscription=yf(s.map(function(e){return i.walletsAndAddressesService.verifyAddress(e)})).pipe(ue(function(s){if(o&&(i.invalidChangeAddress=!s.pop(),i.invalidChangeAddress))return sg(i.translate.instant("send.change-address-error-info"));var u=0;return s.forEach(function(e){e||(u+=1)}),0===u?i.spendingService.createTransaction(i.selectedSources.wallet,n||i.selectedSources.wallet.addresses.map(function(e){return e.address}),r,a,i.hoursSelection,i.form.get("changeAddress").value?i.form.get("changeAddress").value:null,t?t.password:null,e||i.showForManualUnsigned):(i.formMultipleDestinations.setValidAddressesList(s),sg(i.translate.instant(a.length>1?u===a.length?"send.all-addresses-invalid-error":1===u?"send.one-invalid-address-error":"send.various-invalid-addresses-error":"send.invalid-address-error")))})).subscribe(function(n){t&&t.close();var r=i.form.value.note.trim();if(n.note=r,e){var o=new CM.BigNumber("0");a.map(function(e){return o=o.plus(e.coins)}),i.onFormSubmitted.emit({form:{wallet:i.selectedSources.wallet,addresses:i.selectedSources.addresses,manualAddresses:i.selectedSources.manualAddresses,changeAddress:i.form.get("changeAddress").value,destinations:a,hoursSelection:i.hoursSelection,showAutoHourDistributionOptions:i.showAutoHourDistributionOptions,allUnspentOutputs:i.formSourceSelection.unspentOutputsList,outputs:i.selectedSources.unspentOutputs,currency:i.formMultipleDestinations.currentlySelectedCurrency,note:r},amount:o,to:a.map(function(e){return e.address}),transaction:n,showForManualUnsigned:i.showForManualUnsigned}),i.busy=!1,i.navBarSwitchService.enableSwitch()}else i.showForManualUnsigned?gF.openDialog(i.dialog,{rawTx:n.encoded,isUnsigned:!0}).afterClosed().subscribe(function(){i.resetState(),vO.openDialog(i.dialog,{text:"offline-transactions.copy-tx.reset-confirmation",defaultButtons:gO.YesNo}).afterClosed().subscribe(function(e){e&&(i.resetForm(),i.msgBarService.showDone("offline-transactions.copy-tx.reset-done",4e3))})}):i.processingSubscription=i.spendingService.injectTransaction(n.encoded,r).subscribe(function(e){var t=!0;r&&!e&&(i.msgBarService.showWarning(i.translate.instant("send.saving-note-error")),t=!1),i.showSuccess(t)},function(e){return i.showError(e)})},function(e){t&&t.error(e),i.showError(e)})},e.prototype.resetForm=function(){this.formSourceSelection.resetForm(),this.formMultipleDestinations.resetForm(),this.form.get("changeAddress").setValue(""),this.form.get("note").setValue(""),this.autoHours=!0,this.showAutoHourDistributionOptions=!1,this.autoShareValue=this.defaultAutoShareValue},Object.defineProperty(e.prototype,"hoursSelection",{get:function(){var e={type:yF.Manual};return this.autoHours&&!this.hoursAddedToSimpleForm&&(e={type:yF.Auto,mode:"share",share_factor:this.autoShareValue}),e},enumerable:!1,configurable:!0}),e.prototype.closeSyncCheckSubscription=function(){this.syncCheckSubscription&&this.syncCheckSubscription.unsubscribe()},e.prototype.showBusy=function(e){e?(this.previewButton.setLoading(),this.sendButton.setDisabled()):(this.sendButton.setLoading(),this.previewButton.setDisabled()),this.busy=!0,this.navBarSwitchService.disableSwitch()},e.prototype.showSuccess=function(e){var t=this;this.busy=!1,this.navBarSwitchService.enableSwitch(),this.resetForm(),e?(this.msgBarService.showDone("send.sent"),this.sendButton.resetState()):(this.sendButton.setSuccess(),setTimeout(function(){t.sendButton.resetState()},3e3))},e.prototype.showError=function(e){this.busy=!1,this.msgBarService.showError(e),this.navBarSwitchService.enableSwitch(),this.previewButton.resetState().setEnabled(),this.sendButton.resetState().setEnabled()},e.prototype.resetState=function(){this.busy=!1,this.navBarSwitchService.enableSwitch(),this.previewButton.resetState().setEnabled(),this.sendButton.resetState().setEnabled()},e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(yO),ps(Pk),ps(dL),ps(WP),ps(gC),ps(dM),ps(ll),ps(bF),ps(AL))},e.\u0275cmp=ft({type:e,selectors:[["app-send-coins-form"]],viewQuery:function(e,t){if(1&e&&(lc(wF,5),lc(kF,5),lc(MF,5),lc(SF,5)),2&e){var n=void 0;uc(n=dc())&&(t.formSourceSelection=n.first),uc(n=dc())&&(t.formMultipleDestinations=n.first),uc(n=dc())&&(t.previewButton=n.first),uc(n=dc())&&(t.sendButton=n.first)}},inputs:{formData:"formData",showSimpleForm:"showSimpleForm"},outputs:{onFormSubmitted:"onFormSubmitted"},decls:49,vars:22,consts:[["class","mode-selector",4,"ngIf"],[3,"formGroup"],[3,"busy","selectionMode","onSelectionChanged"],["formSourceSelection",""],["class","form-field -available-msg",4,"ngIf"],[3,"availableBalance","busy","showHourFields","showSimpleForm","onChanges","onBulkRequested","newNoteRequested","manualHoursRequested","hoursAddedToSimpleForm"],["formMultipleDestinations",""],["class","form-field",4,"ngIf"],["class","form-field row -options-wrapper",3,"ngClass",4,"ngIf"],[1,"text-center"],[3,"disabled","action"],["previewButton",""],[1,"primary-button",3,"disabled","action"],["sendButton",""],["hoursSelector",""],[1,"mode-selector"],["className","light small",3,"changeActiveButtonManually","leftButtonText","rightButtonText","activeButton","ngClass","onStateChange"],[1,"form-field","-available-msg"],[4,"ngIf"],[1,"value"],[1,"form-field"],["for","change-address"],[1,"help-icon",3,"matTooltip"],[3,"text","ngClass","pressed"],["formControlName","changeAddress","id","change-address",3,"appFormFieldError","keydown.enter","blur"],["for","note"],["formControlName","note","id","note",3,"maxlength","keydown.enter"],[3,"noPadding","text","pointDown","pressed",4,"ngIf"],[3,"noPadding","text","pointDown","pressed"],[1,"form-field","row","-options-wrapper",3,"ngClass"],[4,"ngTemplateOutlet"],[1,"row",3,"ngClass"],[1,"col-12"],[1,"-check",3,"checked","change"],[3,"text","pointDown","mousedown","pressed",4,"ngIf"],[3,"ngClass"],[3,"text","pointDown","mousedown","pressed"],[1,"col-md-7"],["for","value",1,"-space-between"],["min","0","max","1","step","0.01","id","value",3,"value","ngClass","input"]],template:function(e,t){1&e&&(hs(0,LF,7,11,"div",0),ru(1,"\n\n"),vs(2,"div",1),ru(3,"\n "),ru(4,"\n "),vs(5,"app-form-source-selection",2,3),xs("onSelectionChanged",function(){return t.sourceSelectionChanged()}),ru(7,"\n "),_s(),ru(8,"\n\n "),ru(9,"\n "),hs(10,DF,6,2,"div",4),ru(11,"\n\n "),ru(12,"\n "),vs(13,"app-form-destination",5,6),xs("onChanges",function(){return t.destinationsChanged()})("onBulkRequested",function(){return t.openMultipleDestinationsPopup()})("newNoteRequested",function(e){return t.changeNote(e)})("manualHoursRequested",function(){return t.setManualHours()})("hoursAddedToSimpleForm",function(e){return t.changeHoursAddedToSimpleForm(e)}),ru(15,"\n "),_s(),ru(16,"\n\n "),ru(17,"\n "),hs(18,OF,15,12,"div",7),ru(19,"\n\n "),ru(20,"\n "),hs(21,EF,12,8,"div",7),ru(22,"\n\n "),ru(23,"\n "),hs(24,PF,4,1,"div",7),ru(25,"\n\n "),hs(26,RF,4,4,"div",8),ru(27,"\n\n "),ru(28,"\n "),hs(29,BF,23,15,"div",7),ru(30,"\n"),_s(),ru(31,"\n\n"),ru(32,"\n"),vs(33,"div",9),ru(34,"\n "),vs(35,"app-button",10,11),xs("action",function(){return t.preview()}),ru(37),Wl(38,"translate"),_s(),ru(39,"\n "),vs(40,"app-button",12,13),xs("action",function(){return t.send()}),ru(42),Wl(43,"translate"),_s(),ru(44,"\n"),_s(),ru(45,"\n\n"),hs(46,WF,24,20,"ng-template",null,14,mc),ru(48,"\n")),2&e&&(ms("ngIf",!t.showSimpleForm),Ya(2),ms("formGroup",t.form),Ya(3),ms("busy",t.busy)("selectionMode",t.showSimpleForm?t.sourceSelectionModes.Wallet:t.showForManualUnsigned?t.sourceSelectionModes.Manual:t.sourceSelectionModes.All),Ya(5),ms("ngIf",!t.showSimpleForm),Ya(3),ms("availableBalance",t.availableBalance)("busy",t.busy)("showHourFields",!t.autoHours)("showSimpleForm",t.showSimpleForm),Ya(5),ms("ngIf",!t.showSimpleForm),Ya(3),ms("ngIf",!t.showForManualUnsigned),Ya(3),ms("ngIf",t.showSimpleForm&&!t.hoursAddedToSimpleForm),Ya(2),ms("ngIf",t.showSimpleForm&&!t.hoursAddedToSimpleForm),Ya(3),ms("ngIf",!t.showSimpleForm),Ya(6),ms("disabled",!t.form.valid),Ya(2),ou("\n ",Vl(38,18,"send.preview-button"),"\n "),Ya(3),ms("disabled",!t.form.valid),Ya(2),ou("\n ",Vl(43,20,"send."+(t.showForManualUnsigned?"show":"send")+"-button"),"\n "))},styles:[".mode-selector[_ngcontent-%COMP%]{text-align:right;height:0}.mode-selector[_ngcontent-%COMP%] app-double-button[_ngcontent-%COMP%]{display:inline-block;position:relative;top:-27px;right:-27px}.-options-wrapper[_ngcontent-%COMP%]{margin-top:20px}.-space-between[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.-available-msg[_ngcontent-%COMP%]{background-color:#f7f7f7;border:1px dotted rgba(30,34,39,.2);border-radius:6px;padding:10px;font-size:11px;text-align:center}.-available-msg[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.-available-msg[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{opacity:1!important;font-weight:700;font-size:13px}"]}),e}(),UF=function(){function e(e,t){var n=this;this.http=e,this.storageService=t,this.API_ENDPOINT="https://swaplab.cc/api/v3",this.STORAGE_KEY="exchange-orders",this.LAST_VIEWED_STORAGE_KEY="last-viewed-order",this.API_KEY=FS,this.TEST_MODE=false,this.lastViewedOrderLoaded=new Rv(!1),t.get(yL.CLIENT,this.LAST_VIEWED_STORAGE_KEY).subscribe(function(e){n.lastViewedOrder=JSON.parse(e.data),n.lastViewedOrderLoaded.next(!0)},function(){n.lastViewedOrderLoaded.next(!0)})}return Object.defineProperty(e.prototype,"lastViewedOrder",{get:function(){return this._lastViewedOrder},set:function(e){this._lastViewedOrder=e,this.saveLastViewedSubscription&&this.saveLastViewedSubscription.unsubscribe(),this.saveLastViewedSubscription=this.storageService.store(yL.CLIENT,this.LAST_VIEWED_STORAGE_KEY,JSON.stringify(e)).subscribe()},enumerable:!1,configurable:!0}),e.prototype.tradingPairs=function(){return this.post("trading_pairs").pipe(K(function(e){return e.result}))},e.prototype.exchange=function(e,t,n,i){var r,a=this;return this.post("orders",{pair:e,fromAmount:t,toAddress:n}).pipe(ue(function(e){return a.storeOrder(r=e.result,i)}),K(function(){return r}))},e.prototype.status=function(e,t){return this.TEST_MODE&&!t&&(t="user_waiting"),this.post("orders/status",{id:e},this.TEST_MODE?{status:t}:null).pipe(xM(function(e){return e.pipe(ue(function(e){return e.originalError&&e.originalError.status&&404===e.originalError.status?sg(e):bm(e)}),EM(3e3))}),K(function(e){return e.result}))},e.prototype.history=function(){return this.storageService.get(yL.CLIENT,this.STORAGE_KEY).pipe(K(function(e){return JSON.parse(e.data)}))},e.prototype.isOrderFinished=function(e){return["complete","error","user_deposit_timeout"].indexOf(e.status)>-1},e.prototype.post=function(e,t,n){return this.http.post(this.buildUrl(e),t,{responseType:"json",headers:new rS(_f({"api-key":this.API_KEY,Accept:"application/json"},n))}).pipe(qM(function(e){return sg(VM(e))}))},e.prototype.buildUrl=function(e){return this.TEST_MODE&&"trading_pairs"!==e?this.API_ENDPOINT+"sandbox/"+e:this.API_ENDPOINT+"/"+e},e.prototype.storeOrder=function(e,t){var n=this;return this.history().pipe(qM(function(e){try{if(e.originalError&&e.originalError.status&&404===e.originalError.status)return bm([])}catch(t){}return sg(e)}),ue(function(i){var r={id:e.id,pair:e.pair,fromAmount:e.fromAmount,toAmount:e.toAmount,address:e.toAddress,timestamp:RA().unix(),price:t};i.push(r);var a=JSON.stringify(i);return i.pop(),n.storageService.store(yL.CLIENT,n.STORAGE_KEY,a).pipe(Hv(function(){return i.push(r)}))}))},e.\u0275prov=Ie({token:e,factory:e.\u0275fac=function(t){return new(t||e)(Bi(MS),Bi(bL))}}),e}(),zF=function(){function e(e){this.appService=e}return e.prototype.transform=function(e){return"hours"===e?this.appService.hoursName:"coin"===e?this.appService.coinName:"coinFull"===e?this.appService.fullCoinName:""},e.\u0275fac=function(t){return new(t||e)(ps(jS,16))},e.\u0275pipe=wt({name:"commonText",type:e,pure:!1}),e}(),qF=function(){function e(e,t){this.dialogRef=e,this.formBuilder=t,this.inputErrorMsg=""}return e.openDialog=function(t){var n=new wk;return n.autoFocus=!0,n.width=jM.mediumModalWidth,t.open(e,n)},e.prototype.ngOnInit=function(){this.form=this.formBuilder.group({link:[""]}),this.form.setValidators(this.validateForm.bind(this))},e.prototype.closePopup=function(){this.dialogRef.close()},e.prototype.process=function(){this.form.valid&&this.dialogRef.close(this.form.get("link").value)},e.prototype.validateForm=function(){this.inputErrorMsg="";var e=!0;return FM(this.form.get("link").value)||(e=!1,this.form.get("link").touched&&(this.inputErrorMsg="send.fill-with-link.link-error-info")),e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(Lk),ps(fm))},e.\u0275cmp=ft({type:e,selectors:[["app-enter-link"]],decls:34,vars:19,consts:[[3,"headline","dialog"],[1,"modal-form-container",3,"formGroup"],[1,"form-field"],["for","link"],["formControlName","link","id","link",3,"appFormFieldError","keydown.enter","blur"],[1,"-buttons"],[3,"action"],[1,"primary-button",3,"disabled","action"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),vs(4,"div"),ru(5),Wl(6,"translate"),_s(),ru(7,"\n "),ru(8,"\n "),vs(9,"div",1),ru(10,"\n "),vs(11,"div",2),ru(12,"\n "),vs(13,"label",3),ru(14),Wl(15,"translate"),_s(),ru(16,"\n "),vs(17,"input",4),xs("keydown.enter",function(){return t.process()})("blur",function(){return t.validateForm()}),_s(),ru(18,"\n "),_s(),ru(19,"\n "),_s(),ru(20,"\n "),ru(21,"\n "),vs(22,"div",5),ru(23,"\n "),vs(24,"app-button",6),xs("action",function(){return t.closePopup()}),ru(25),Wl(26,"translate"),_s(),ru(27,"\n "),vs(28,"app-button",7),xs("action",function(){return t.process()}),ru(29),Wl(30,"translate"),_s(),ru(31,"\n "),_s(),ru(32,"\n"),_s(),ru(33,"\n")),2&e&&(ms("headline",Vl(1,9,"send.fill-with-link.title"))("dialog",t.dialogRef),Ya(5),ou("\n ",Vl(6,11,"send.fill-with-link.link-info"),"\n "),Ya(4),ms("formGroup",t.form),Ya(5),au(Vl(15,13,"send.fill-with-link.link-label")),Ya(3),ms("appFormFieldError",t.inputErrorMsg),Ya(8),ou("\n ",Vl(26,15,"common.cancel-button"),"\n "),Ya(3),ms("disabled",!t.form.valid),Ya(1),ou("\n ",Vl(30,17,"send.fill-with-link.process-button"),"\n "))},directives:[jk,ap,jp,Lf,rp,qp,RO,ZC],pipes:[hM],styles:[""]}),e}(),GF=function(e){return e.bulk="bulk",e.link="link",e}({}),KF=function(){function e(e){this.dialogRef=e,this.destinationTools=GF}return e.openDialog=function(t){var n=new wk;return n.autoFocus=!1,n.width=jM.mediumModalWidth,t.open(e,n)},e.prototype.closePopup=function(){this.dialogRef.close()},e.prototype.select=function(e){this.dialogRef.close(e)},e.\u0275fac=function(t){return new(t||e)(ps(Lk))},e.\u0275cmp=ft({type:e,selectors:[["app-destination-tools"]],decls:31,vars:10,consts:[[3,"headline","dialog"],[1,"list-button-container","light-button-theme"],["mat-button","","color","primary",1,"top-line",3,"click"],[1,"content"],["src","assets/img/list-purple.png"],["mat-button","","color","primary",3,"click"],["src","assets/img/link-blue.png"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),vs(3,"div",1),ru(4,"\n "),vs(5,"button",2),xs("click",function(){return t.select(t.destinationTools.bulk)}),ru(6,"\n "),vs(7,"div",3),ru(8,"\n "),ys(9,"img",4),ru(10,"\n "),vs(11,"span"),ru(12),Wl(13,"translate"),_s(),ru(14,"\n "),_s(),ru(15,"\n "),_s(),ru(16,"\n "),vs(17,"button",5),xs("click",function(){return t.select(t.destinationTools.link)}),ru(18,"\n "),vs(19,"div",3),ru(20,"\n "),ys(21,"img",6),ru(22,"\n "),vs(23,"span"),ru(24),Wl(25,"translate"),_s(),ru(26,"\n "),_s(),ru(27,"\n "),_s(),ru(28,"\n "),_s(),ru(29,"\n"),_s(),ru(30,"\n")),2&e&&(ms("headline",Vl(1,4,"send.destination-tools-title"))("dialog",t.dialogRef),Ya(12),au(Vl(13,6,"send.bulk-send.title")),Ya(12),ou("\n ",Vl(25,8,"send.fill-with-link.title"),"\n "))},directives:[jk,SC],pipes:[hM],styles:[".content[_ngcontent-%COMP%]{display:flex;align-items:center}.content[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:32px;width:32px;margin-right:5px}.content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:13px;line-height:1.7;color:#1e2227}"]}),e}();function JF(e,t){if(1&e){var n=Ms();vs(0,"div",2),ru(1,"\n "),vs(2,"label",10),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),vs(6,"input",11),xs("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(7,"\n "),_s()}if(2&e){var i=Ys();Ya(3),au(Vl(4,3,"send.to-label")),Ya(3),ms("appFormFieldError",i.isAddressValid(0)?i.singleAddressErrorMsg:"send.invalid-addresses-error"),ls("disabled",i.busy?"true":null)}}function ZF(e,t){1&e&&(vs(0,"mat-icon",12),Wl(1,"translate"),ru(2,"help"),_s()),2&e&&ms("matTooltip",Vl(1,1,"send.destinations-help"+(Ys().showHourFields?"2":"1")))}var $F=function(e){return{"element-disabled":e}};function XF(e,t){if(1&e){var n=Ms();vs(0,"div",13),ru(1,"\n "),vs(2,"app-double-button",14),xs("onStateChange",function(e){return on(n),Ys().changeActiveCurrency(e)}),Wl(3,"commonText"),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}if(2&e){var i=Ys();ms("ngClass",Il(8,$F,i.busy)),Ya(2),ms("leftButtonText",Vl(3,4,"coin"))("rightButtonText",Vl(4,6,"common.usd"))("activeButton",i.selectedCurrency)}}function QF(e,t){if(1&e){var n=Ms();vs(0,"app-arrow-link",15),xs("pressed",function(){return on(n),Ys().showDestinationTools()}),ru(1,"\n "),_s()}if(2&e){var i=Ys();ms("text","send.destination-tools-title")("ngClass",Il(2,$F,i.busy))}}function eH(e,t){if(1&e){var n=Ms();vs(0,"app-arrow-link",15),xs("pressed",function(){return on(n),Ys().openLinkModalWindow()}),ru(1,"\n "),_s()}if(2&e){var i=Ys();ms("text","send.fill-with-link.title")("ngClass",Il(2,$F,i.busy))}}function tH(e,t){if(1&e){var n=Ms();vs(0,"div",27),ru(1,"\n "),vs(2,"input",28),xs("blur",function(){return on(n),Ys(2).validateForm()}),_s(),ru(3,"\n "),_s()}if(2&e){var i=Ys().index,r=Ys();Ya(2),ms("id",0===i?"destination":"address"+i)("appFormFieldError",r.isAddressValid(i)?r.addressErrorMsgs[i]:"send.invalid-addresses-error"),ls("disabled",r.busy?"true":null)}}function nH(e,t){1&e&&(vs(0,"span"),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"send.invalid-amount")))}function iH(e,t){if(1&e&&(vs(0,"span"),ru(1),Wl(2,"number"),Wl(3,"translate"),_s()),2&e){var n=Ys().index,i=Ys();Ya(1),su("\n ~ ",Ul(2,2,i.values[n].toString(),"1.0-2")," ",Vl(3,5,"common.usd"),"\n ")}}function rH(e,t){if(1&e&&(vs(0,"span"),ru(1),Wl(2,"amount"),_s()),2&e){var n=Ys().index,i=Ys();Ya(1),ou("\n ~ ",Vl(2,1,i.values[n]),"\n ")}}var aH=function(e){return{"-input-addon":!0,"d-none":e}};function oH(e,t){if(1&e){var n=Ms();vs(0,"div",29),ru(1,"\n "),vs(2,"div",19),ru(3,"\n "),vs(4,"input",30),xs("blur",function(){return on(n),Ys(2).validateForm()}),_s(),ru(5,"\n "),vs(6,"span"),ru(7),Wl(8,"commonText"),_s(),ru(9,"\n "),_s(),ru(10,"\n "),_s()}if(2&e){var i=Ys().index,r=Ys();Ya(2),ms("ngClass",Il(6,aH,!r.showHourFields)),Ya(2),ms("appFormFieldError",r.gethoursErrorMsg(i)),ls("disabled",r.busy?"true":null),Ya(3),au(Vl(8,4,"hours"))}}function sH(e,t){if(1&e){var n=Ms();vs(0,"img",34),xs("click",function(){return on(n),Ys(3).addDestination()}),_s()}}function uH(e,t){if(1&e){var n=Ms();vs(0,"img",35),xs("click",function(){on(n);var e=Ys(2).index;return Ys().removeDestination(e)}),_s()}}function lH(e,t){if(1&e&&(vs(0,"div",31),ru(1,"\n "),hs(2,sH,1,0,"img",32),ru(3,"\n "),hs(4,uH,1,0,"img",33),ru(5,"\n "),_s()),2&e){var n=Ys().index,i=Ys();ms("ngClass",Il(3,$F,i.busy)),Ya(2),ms("ngIf",0===n),Ya(2),ms("ngIf",0!==n)}}var cH=function(e,t){return{"col-md-3":e,"col-md-12":t}},dH=function(e){return{"centerd-link":e}};function hH(e,t){if(1&e){var n=Ms();vs(0,"div",16),ru(1,"\n "),vs(2,"div",17),ru(3,"\n "),ru(4,"\n "),hs(5,tH,4,3,"div",18),ru(6,"\n "),ru(7,"\n "),vs(8,"div",19),ru(9,"\n "),vs(10,"div",20),ru(11,"\n "),vs(12,"input",21),xs("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(13,"\n "),vs(14,"span"),ru(15),Wl(16,"commonText"),Wl(17,"translate"),_s(),ru(18,"\n "),_s(),ru(19,"\n "),ru(20,"\n "),vs(21,"div",22),ru(22,"\n "),hs(23,nH,3,3,"span",23),ru(24,"\n "),hs(25,iH,4,7,"span",23),ru(26,"\n "),hs(27,rH,3,3,"span",23),ru(28,"\n "),vs(29,"div",24),xs("click",function(){var e=on(n).index;return Ys().assignAll(e)}),ru(30),Wl(31,"translate"),_s(),ru(32,"\n "),_s(),ru(33,"\n "),_s(),ru(34,"\n "),ru(35,"\n "),hs(36,oH,11,8,"div",25),ru(37,"\n "),hs(38,lH,6,5,"div",26),ru(39,"\n "),_s(),ru(40,"\n "),_s()}if(2&e){var i=t.index,r=Ys();Ya(2),ms("formGroupName",i),Ya(3),ms("ngIf",!r.showSimpleForm),Ya(3),ms("ngClass",Rl(19,cH,!r.showSimpleForm,r.showSimpleForm)),Ya(4),ms("appFormFieldError",r.getCoinsErrorMsg(i)),ls("disabled",r.busy?"true":null),Ya(3),au(r.selectedCurrency===r.doubleButtonActive.LeftButton?Vl(16,13,"coin"):Vl(17,15,"common.usd")),Ya(8),ms("ngIf",r.price&&r.values[i].isLessThanOrEqualTo(0)),Ya(2),ms("ngIf",r.price&&r.values[i].isGreaterThan(0)&&r.selectedCurrency===r.doubleButtonActive.LeftButton),Ya(2),ms("ngIf",r.price&&r.values[i].isGreaterThan(0)&&r.selectedCurrency===r.doubleButtonActive.RightButton),Ya(2),ms("ngClass",Il(22,dH,!r.price)),Ya(1),ou("(",Vl(31,17,"send.send-all-available-coins-link"),")"),Ya(6),ms("ngIf",!r.showSimpleForm),Ya(2),ms("ngIf",!r.showSimpleForm)}}function fH(e,t){if(1&e&&(bs(0),ru(1),Wl(2,"number"),Wl(3,"translate"),ws()),2&e){var n=Ys(2);Ya(1),su("/ ",Ul(2,2,n.totalFiat.toString(),"1.0-2")," ",Vl(3,5,"common.usd"),"")}}var pH=function(e){return{"error-coins-value":e}};function mH(e,t){if(1&e&&(vs(0,"div",29),ru(1,"\n "),vs(2,"div",38),Wl(3,"translate"),ru(4,"\n "),vs(5,"span"),ru(6),Wl(7,"translate"),_s(),ru(8),Wl(9,"amount"),_s(),ru(10,"\n "),_s()),2&e){var n=Ys(2);Ya(2),ms("ngClass",Il(11,pH,n.insufficientHours))("matTooltip",n.insufficientHours?Vl(3,4,"send.insufficient-funds-error-info"):""),Ya(4),au(Vl(7,6,"send.total-to-send")),Ya(2),ou(" ",Ul(9,8,n.totalHours,!1),"\n ")}}function gH(e,t){if(1&e&&(vs(0,"div",36),ru(1,"\n "),ys(2,"div",27),ru(3,"\n "),vs(4,"div",37),ru(5,"\n "),vs(6,"div",38),Wl(7,"translate"),ru(8,"\n "),vs(9,"span"),ru(10),Wl(11,"translate"),_s(),ru(12),Wl(13,"amount"),hs(14,fH,4,7,"ng-container",23),ru(15,"\n "),_s(),ru(16,"\n "),_s(),ru(17,"\n "),hs(18,mH,11,13,"div",25),ru(19,"\n "),_s()),2&e){var n=Ys();Ya(6),ms("ngClass",Il(12,pH,n.insufficientCoins))("matTooltip",n.insufficientCoins?Vl(7,6,"send.insufficient-funds-error-info"):""),Ya(4),au(Vl(11,8,"send.total-to-send")),Ya(2),ou(" ",Vl(13,10,n.totalCoins),"\n "),Ya(2),ms("ngIf",n.price),Ya(4),ms("ngIf",n.showHourFields)}}var vH=function(e){return{"simple-form-hours-error":e}};function _H(e,t){if(1&e){var n=Ms();vs(0,"div",39),ru(1,"\n "),vs(2,"span",40),Wl(3,"translate"),ru(4),Wl(5,"translate"),Wl(6,"amount"),_s(),ru(7,"\n "),vs(8,"mat-icon",41),xs("click",function(){return on(n),Ys().removeSimpleFormhours()}),Wl(9,"translate"),ru(10,"clear"),_s(),ru(11,"\n "),_s()}if(2&e){var i=Ys();Ya(2),ms("ngClass",Il(16,vH,i.simpleFormHoursErrorMsg))("matTooltip",Vl(3,6,i.simpleFormHoursErrorMsg?i.simpleFormHoursErrorMsg:"")),Ya(2),su("",Vl(5,8,"send.specific-hours")," ",zl(6,10,i.simpleFormSpecificHours.toString(),!1,"first"),""),Ya(4),ms("inline",!0)("matTooltip",Vl(9,14,"send.remove-specific-hours-info"))}}var yH=function(){function e(e,t,n,i,r,a){this.appService=e,this.formBuilder=t,this.dialog=n,this.msgBarService=i,this.translate=r,this.priceService=a,this.onChanges=new Zl,this.onBulkRequested=new Zl,this.newNoteRequested=new Zl,this.manualHoursRequested=new Zl,this.hoursAddedToSimpleForm=new Zl,this.doubleButtonActive=NP,this.selectedCurrency=NP.LeftButton,this.totalCoins=new CM.BigNumber(0),this.totalFiat=new CM.BigNumber(0),this.totalHours=new CM.BigNumber(0),this.addressErrorMsgs=[],this.coinsErrorMsgs=[],this.hoursErrorMsgs=[],this.singleAddressErrorMsg="",this.simpleFormHoursErrorMsg="",this.insufficientCoins=!1,this.insufficientHours=!1,this.destinationSubscriptions=[]}return Object.defineProperty(e.prototype,"showHourFields",{get:function(){return this.showHourFieldsInternal},set:function(e){e!==this.showHourFieldsInternal&&(this.showHourFieldsInternal=e,this.form&&this.destControls.forEach(function(e){e.get("hours").setValue("")}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"showSimpleForm",{get:function(){return this.showSimpleFormInternal},set:function(e){this.showSimpleFormInternal=e,this.form&&(e?this.form.get("address").setValidators(Yf.required):this.form.get("address").clearValidators(),this.form.get("address").updateValueAndValidity(),this.form.get("destinations").updateValueAndValidity())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"destControls",{get:function(){return this.form.get("destinations").controls},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.form=this.formBuilder.group({address:[""],destinations:this.formBuilder.array([])}),this.form.setValidators(this.validateForm.bind(this)),this.addDestination(),this.addressSubscription=this.form.get("address").valueChanges.subscribe(function(){e.onChanges.emit()}),this.priceSubscription=this.priceService.price.subscribe(function(t){e.price=t,e.updateValuesAndValidity()})},e.prototype.ngOnDestroy=function(){this.addressSubscription.unsubscribe(),this.priceSubscription.unsubscribe(),this.destinationSubscriptions.forEach(function(e){return e.unsubscribe()}),this.onChanges.complete(),this.onBulkRequested.complete(),this.newNoteRequested.complete(),this.manualHoursRequested.complete(),this.hoursAddedToSimpleForm.complete()},e.prototype.changeActiveCurrency=function(e){e!==this.selectedCurrency&&(this.selectedCurrency=e,this.askIfConvertAmount(),this.updateValuesAndValidity(),this.form.get("destinations").updateValueAndValidity())},e.prototype.askIfConvertAmount=function(){var e=this,t=0;if(this.destControls.forEach(function(e){var n=HM(e.get("coins").value);n=n?n.trim():n;var i=new CM.BigNumber(n);n&&!i.isNaN()&&(t+=1)}),0!==t){var n,i,r=this.translate.instant("common.usd"),a=this.appService.coinName;this.selectedCurrency===NP.LeftButton?(n=r,i=a):(n=a,i=r);var o={text:this.translate.instant(1===t?"send.convert-confirmation":"send.convert-confirmation-plural",{from:n,to:i}),defaultButtons:gO.YesNo};vO.openDialog(this.dialog,o).afterClosed().subscribe(function(t){t&&e.convertAmounts()})}},e.prototype.convertAmounts=function(){var t=this;this.msgBarService.hide();var n=0,i=0;this.destControls.forEach(function(r){var a=HM(r.get("coins").value);a=a?a.trim():a;var o=new CM.BigNumber(a);if(a){if(o.isNaN())return void(n+=1);var s;t.selectedCurrency===NP.LeftButton?((s=o.dividedBy(t.price).decimalPlaces(t.appService.currentMaxDecimals)).multipliedBy(t.price).decimalPlaces(e.MaxUsdDecimals,CM.BigNumber.ROUND_FLOOR).isEqualTo(o)||(i+=1),r.get("coins").setValue(s.toString())):((s=o.multipliedBy(t.price).decimalPlaces(e.MaxUsdDecimals,CM.BigNumber.ROUND_FLOOR)).dividedBy(t.price).decimalPlaces(t.appService.currentMaxDecimals).isEqualTo(o)||(i+=1),r.get("coins").setValue(s.toString()))}}),n>0&&i>0?this.msgBarService.showWarning(this.translate.instant("send.multiple-problems-warning")):1===n?this.msgBarService.showWarning(this.translate.instant("send.invaid-amount-warning")):n>1?this.msgBarService.showWarning(this.translate.instant("send.invaid-amounts-warning")):1===i?this.msgBarService.showWarning(this.translate.instant("send.precision-error-warning")):i>1&&this.msgBarService.showWarning(this.translate.instant("send.precision-errors-warning"))},e.prototype.assignAll=function(t){var n=this;if(this.msgBarService.hide(),this.availableBalance.availableCoins.isEqualTo(0))this.msgBarService.showError(this.translate.instant("send.no-wallet-selected-error"));else{var i=this.availableBalance.availableCoins;this.selectedCurrency===NP.RightButton&&(i=i.multipliedBy(this.price).decimalPlaces(e.MaxUsdDecimals,CM.BigNumber.ROUND_FLOOR)),this.destControls.forEach(function(e,r){if(r!==t){var a=n.getAmount(HM(e.get("coins").value).trim(),!0);if(!a||a.isNaN())return;i=i.minus(a)}}),(i=i.decimalPlaces(this.selectedCurrency===NP.LeftButton?this.appService.currentMaxDecimals:e.MaxUsdDecimals,CM.BigNumber.ROUND_FLOOR)).isLessThanOrEqualTo(0)?this.msgBarService.showError(this.translate.instant("send.no-coins-left-error")):this.destControls[t].get("coins").setValue(i.toString())}},e.prototype.updateValuesAndValidity=function(){var e=this,t=this.selectedCurrency!==NP.LeftButton,n=this.price;this.price||(t=!1,n=0),this.values=[],this.totalCoins=new CM.BigNumber(0),this.totalFiat=new CM.BigNumber(0),this.totalHours=new CM.BigNumber(0),this.destControls.forEach(function(i,r){var a=HM(i.get("coins").value),o=e.getAmount(a,!0);if(o)if(t)s=o.dividedBy(n).decimalPlaces(e.appService.currentMaxDecimals),e.totalCoins=e.totalCoins.plus(s),e.totalFiat=e.totalFiat.plus(o),e.values[r]=s;else{var s=o.multipliedBy(n).decimalPlaces(2);e.totalCoins=e.totalCoins.plus(o),e.totalFiat=e.totalFiat.plus(s),e.values[r]=s}else e.values[r]=new CM.BigNumber(-1);e.showHourFields&&(a=HM(i.get("hours").value),(o=e.getAmount(a,!1))&&(e.totalHours=e.totalHours.plus(o)))}),setTimeout(function(){e.form.get("destinations").updateValueAndValidity(),e.onChanges.emit()})},e.prototype.addDestination=function(){var e=this,t=this.formBuilder.group({address:"",coins:"",hours:""});this.destinationSubscriptions.push(t.valueChanges.subscribe(function(){e.updateValuesAndValidity()})),this.form.get("destinations").push(t),this.addressErrorMsgs.push(""),this.coinsErrorMsgs.push(""),this.hoursErrorMsgs.push(""),this.updateValuesAndValidity()},e.prototype.removeDestination=function(e){this.form.get("destinations").removeAt(e),this.validAddressesList&&this.validAddressesList.length>e&&this.validAddressesList.splice(e,1),this.addressErrorMsgs&&this.addressErrorMsgs.length>e&&this.addressErrorMsgs.splice(e,1),this.coinsErrorMsgs&&this.coinsErrorMsgs.length>e&&this.coinsErrorMsgs.splice(e,1),this.hoursErrorMsgs&&this.hoursErrorMsgs.length>e&&this.hoursErrorMsgs.splice(e,1),this.destinationSubscriptions[e].unsubscribe(),this.destinationSubscriptions.splice(e,1),this.updateValuesAndValidity()},e.prototype.requestBulkSend=function(){this.onBulkRequested.emit()},e.prototype.showDestinationTools=function(){var e=this;KF.openDialog(this.dialog).afterClosed().subscribe(function(t){t===GF.bulk?e.requestBulkSend():t===GF.link&&e.openLinkModalWindow()})},e.prototype.openLinkModalWindow=function(){var e=this;qF.openDialog(this.dialog).afterClosed().subscribe(function(t){t&&e.processRequestLink(t)})},e.prototype.processRequestLink=function(e){var t=FM(e);if(t){if(this.showSimpleForm&&t.hours&&!this.getAmount(t.hours,!1))return void this.msgBarService.showError("send.fill-with-link.invalid-link-hours-error");this.checkChangesBeforeUsingLink(t)}else this.msgBarService.showError("send.fill-with-link.invalid-link-error")},e.prototype.checkChangesBeforeUsingLink=function(e){var t=this,n=!1;this.showSimpleForm?this.form.get("address").value&&(n=!0):(this.destControls[0].get("address").value&&(n=!0),e.hours&&this.destControls[0].get("hours").value&&(n=!0)),e.coins&&this.destControls[0].get("coins").value&&(n=!0),n?vO.openDialog(this.dialog,{text:"send.fill-with-link.data-overwritten-alert",defaultButtons:gO.YesNo}).afterClosed().subscribe(function(n){n&&t.finishUsingRequestLink(e)}):this.finishUsingRequestLink(e)},e.prototype.finishUsingRequestLink=function(e){var t=this;this.showSimpleForm?(this.form.get("address").setValue(e.address),this.form.get("address").markAsTouched(),e.hours?(this.simpleFormSpecificHours=this.getAmount(e.hours,!1),this.hoursAddedToSimpleForm.next(!0)):this.hoursAddedToSimpleForm.next(!1)):(this.destControls[0].get("address").setValue(e.address),this.destControls[0].get("address").markAsTouched(),e.hours&&(this.manualHoursRequested.next(),setTimeout(function(){t.destControls[0].get("hours").setValue(e.hours),t.destControls[0].get("hours").markAsTouched()}))),e.coins&&(this.destControls[0].get("coins").setValue(e.coins),this.destControls[0].get("coins").markAsTouched()),e.message&&this.newNoteRequested.next(e.message),this.form.updateValueAndValidity(),this.msgBarService.showDone("send.fill-with-link.confirmation")},e.prototype.removeSimpleFormhours=function(){var e=this;vO.openDialog(this.dialog,{text:"send.remove-specific-hours-confirmation",defaultButtons:gO.YesNo}).afterClosed().subscribe(function(t){t&&(e.simpleFormSpecificHours=null,e.hoursAddedToSimpleForm.next(!1))})},e.prototype.fill=function(e){var t=this;setTimeout(function(){t.selectedCurrency=e.form.currency;for(var n=0;n0;)this.form.get("destinations").removeAt(0);e.forEach(function(e,n){t.addDestination(),t.destControls[n].get("address").setValue(e.address),t.destControls[n].get("coins").setValue(e.coins),e.hours&&t.destControls[n].get("hours").setValue(e.hours)})},Object.defineProperty(e.prototype,"valid",{get:function(){return this.form.valid},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentlySelectedCurrency",{get:function(){return this.selectedCurrency},enumerable:!1,configurable:!0}),e.prototype.setValidAddressesList=function(e){this.validAddressesList=e,this.validAddressesList&&this.validAddressesList.length>this.destControls.length&&(this.validAddressesList=this.validAddressesList.slice(0,this.destControls.length))},e.prototype.isAddressValid=function(e){return!(this.validAddressesList&&this.validAddressesList.length>e)||this.validAddressesList[e]},e.prototype.getCoinsErrorMsg=function(e){if(ethis.destControls.length;)e.pop();for(;e.lengththis.appService.currentMaxDecimals)return null}else if(2===r.length&&r[1].length>e.MaxUsdDecimals)return null}else if(!i.isEqualTo(i.decimalPlaces(0)))return null;return i},e.prototype.resetForm=function(){for(this.form.get("address").setValue("");this.destControls.length>0;)this.form.get("destinations").removeAt(0);this.addDestination(),this.updateValuesAndValidity()},e.MaxUsdDecimals=6,e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(fm),ps(Pk),ps(dL),ps(dM),ps(dP))},e.\u0275cmp=ft({type:e,selectors:[["app-form-destination"]],inputs:{availableBalance:"availableBalance",busy:"busy",showHourFields:"showHourFields",showSimpleForm:"showSimpleForm"},outputs:{onChanges:"onChanges",onBulkRequested:"onBulkRequested",newNoteRequested:"newNoteRequested",manualHoursRequested:"manualHoursRequested",hoursAddedToSimpleForm:"hoursAddedToSimpleForm"},decls:33,vars:12,consts:[[3,"formGroup"],["class","form-field",4,"ngIf"],[1,"form-field"],["for","destination",1,"destinations-label"],["class","help-icon",3,"matTooltip",4,"ngIf"],["class","coin-selector-container",3,"ngClass",4,"ngIf"],[3,"text","ngClass","pressed",4,"ngIf"],["formArrayName","destinations","class","-destination",4,"ngFor","ngForOf"],["class","row",4,"ngIf"],["class","form-field simple-form-hours",4,"ngIf"],["for","address"],["formControlName","address","id","address",3,"appFormFieldError","blur"],[1,"help-icon",3,"matTooltip"],[1,"coin-selector-container",3,"ngClass"],["className","light small",3,"leftButtonText","rightButtonText","activeButton","onStateChange"],[3,"text","ngClass","pressed"],["formArrayName","destinations",1,"-destination"],[1,"row",3,"formGroupName"],["class","col-lg-5 col-md-4",4,"ngIf"],[3,"ngClass"],[1,"-input-addon"],["appFormatNumber","","formControlName","coins",3,"appFormFieldError","blur"],[1,"coins-value-label"],[4,"ngIf"],[1,"link",3,"ngClass","click"],["class","col-lg-3 col-md-4",4,"ngIf"],["class","col-md-1 -icons",3,"ngClass",4,"ngIf"],[1,"col-lg-5","col-md-4"],["formControlName","address",3,"id","appFormFieldError","blur"],[1,"col-lg-3","col-md-4"],["appFormatNumber","","formControlName","hours",3,"appFormFieldError","blur"],[1,"col-md-1","-icons",3,"ngClass"],["class","image-button","src","assets/img/plus-green.png","alt","plus",3,"click",4,"ngIf"],["class","image-button","src","assets/img/minus-grey.png","alt","minus",3,"click",4,"ngIf"],["src","assets/img/plus-green.png","alt","plus",1,"image-button",3,"click"],["src","assets/img/minus-grey.png","alt","minus",1,"image-button",3,"click"],[1,"row"],[1,"col-md-3"],["matTooltipClass","error-tooltip",1,"coins-value-label",3,"ngClass","matTooltip"],[1,"form-field","simple-form-hours"],["matTooltipClass","error-tooltip",3,"ngClass","matTooltip"],[1,"remove-icon",3,"inline","matTooltip","click"]],template:function(e,t){1&e&&(vs(0,"div",0),ru(1,"\n "),ru(2,"\n "),hs(3,JF,8,5,"div",1),ru(4,"\n\n "),vs(5,"div",2),ru(6,"\n "),ru(7,"\n "),vs(8,"label",3),ru(9),Wl(10,"translate"),hs(11,ZF,3,3,"mat-icon",4),ru(12,"\n "),_s(),ru(13,"\n "),ru(14,"\n "),hs(15,XF,6,10,"div",5),ru(16,"\n\n "),ru(17,"\n "),hs(18,QF,2,4,"app-arrow-link",6),ru(19,"\n\n "),ru(20,"\n "),hs(21,eH,2,4,"app-arrow-link",6),ru(22,"\n\n "),ru(23,"\n "),hs(24,hH,41,24,"div",7),ru(25,"\n "),hs(26,gH,20,14,"div",8),ru(27,"\n "),_s(),ru(28,"\n\n "),ru(29,"\n "),hs(30,_H,12,18,"div",9),ru(31,"\n"),_s(),ru(32,"\n")),2&e&&(ms("formGroup",t.form),Ya(3),ms("ngIf",t.showSimpleForm),Ya(6),ou("\n ",Vl(10,10,t.showSimpleForm?"send.amount-label":"send.destinations-label"),"\n "),Ya(2),ms("ngIf",!t.showSimpleForm),Ya(4),ms("ngIf",t.price),Ya(3),ms("ngIf",!t.showSimpleForm),Ya(3),ms("ngIf",t.showSimpleForm),Ya(3),ms("ngForOf",t.destControls),Ya(2),ms("ngIf",t.destControls.length>1),Ya(4),ms("ngIf",t.showSimpleForm&&t.simpleFormSpecificHours))},directives:[ap,jp,lh,sh,Lf,rp,qp,RO,WC,YO,ah,BP,jO,Vp,Bp,HA],pipes:[hM,zF,Mh,NS],styles:[".-destination[_ngcontent-%COMP%]:not(:last-child){margin-bottom:5px}.-destination[_ngcontent-%COMP%] .-icons[_ngcontent-%COMP%]{text-align:right;padding-top:5px}.-destination[_ngcontent-%COMP%] .-icons[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:32px}.destinations-label[_ngcontent-%COMP%]{display:inline-block}.coin-selector-container[_ngcontent-%COMP%]{display:inline-block;margin-left:5px;margin-bottom:5px}.coins-value-label[_ngcontent-%COMP%]{font-size:11px;margin-top:1px;padding:3px 10px;background-color:#f7f7f7;border-radius:6px}.coins-value-label[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.5}.coins-value-label[_ngcontent-%COMP%] .link[_ngcontent-%COMP%]{display:inline-block;margin-bottom:3px;margin-top:-5px}.coins-value-label[_ngcontent-%COMP%] .centerd-link[_ngcontent-%COMP%]{width:100%;text-align:center}.error-coins-value[_ngcontent-%COMP%]{background-color:#ff004e!important;color:#fafafa!important}.-input-addon[_ngcontent-%COMP%]{display:flex}.-input-addon[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.-input-addon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{border:2px;border-radius:0 6px 6px 0;background:rgba(30,34,39,.05);padding:0 10px;line-height:44px;color:rgba(30,34,39,.5);font-size:13px;flex-shrink:0}.simple-form-hours[_ngcontent-%COMP%]{display:flex;align-items:center}.simple-form-hours[_ngcontent-%COMP%] .remove-icon[_ngcontent-%COMP%]{margin-left:2px;color:#ff004e;cursor:pointer}.simple-form-hours-error[_ngcontent-%COMP%]{color:#ff004e}"]}),e}();function bH(e,t){if(1&e&&ys(0,"app-loading-content",3),2&e){var n=Ys();ms("isLoading",n.currentState===n.states.Loading)("noDataText","offline-transactions.loading-problem")}}function wH(e,t){if(1&e&&(vs(0,"label",19),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(3);Ya(1),au(Vl(2,1,n.dropdownLabel))}}function kH(e,t){if(1&e&&(vs(0,"option",20),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(3);ms("ngValue",""),Ya(1),au(Vl(2,2,n.defaultDropdownText))}}function MH(e,t){if(1&e&&(bs(0),ru(1,"\n "),vs(2,"option",22),ru(3),_s(),ru(4,"\n "),ws()),2&e){var n=t.$implicit;Ya(2),ms("ngValue",n.value),Ya(1),ou("\n ",n.name,"\n ")}}function SH(e,t){if(1&e&&(bs(0),ru(1,"\n "),hs(2,MH,5,2,"ng-container",21),ru(3,"\n "),ws()),2&e){var n=Ys(3);Ya(2),ms("ngForOf",n.dropdownElements)}}function CH(e,t){if(1&e){var n=Ms();vs(0,"div",6),ru(1,"\n "),hs(2,wH,3,3,"label",15),ru(3,"\n "),vs(4,"div",16),ru(5,"\n "),vs(6,"select",17),xs("blur",function(){return on(n),Ys(2).validate()}),ru(7,"\n "),hs(8,kH,3,4,"option",18),ru(9,"\n "),hs(10,SH,4,1,"ng-container",2),ru(11,"\n "),_s(),ru(12,"\n "),_s(),ru(13,"\n "),_s()}if(2&e){var i=Ys(2);Ya(2),ms("ngIf",i.dropdownLabel),Ya(4),ms("appFormFieldError",i.dropdownErrorMsg),ls("disabled",i.working?"true":null),Ya(2),ms("ngIf",i.defaultDropdownText),Ya(2),ms("ngIf",i.dropdownElements)}}function LH(e,t){if(1&e&&(vs(0,"label",23),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(2);Ya(1),au(Vl(2,1,n.inputLabel))}}function xH(e,t){if(1&e&&(vs(0,"textarea",24),ru(1),_s()),2&e){var n=Ys(2);ms("readonly",!0),Ya(1),au(n.contents)}}function TH(e,t){if(1&e){var n=Ms();vs(0,"textarea",25),xs("blur",function(){return on(n),Ys(2).validate()}),_s()}if(2&e){var i=Ys(2);ms("appFormFieldError",i.inputErrorMsg),ls("disabled",i.working?"true":null)}}function DH(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),ru(2),Wl(3,"translate"),vs(4,"div",4),ru(5,"\n "),ru(6,"\n "),hs(7,CH,14,5,"div",5),ru(8,"\n "),ru(9,"\n "),vs(10,"div",6),ru(11,"\n "),hs(12,LH,3,3,"label",7),ru(13,"\n "),hs(14,xH,2,2,"textarea",8),ru(15,"\n "),hs(16,TH,1,2,"textarea",9),ru(17,"\n "),_s(),ru(18,"\n "),_s(),ru(19,"\n "),ru(20,"\n "),vs(21,"div",10),ru(22,"\n "),vs(23,"app-button",11,12),xs("action",function(){return on(n),Ys().cancelPressed()}),ru(25),Wl(26,"translate"),_s(),ru(27,"\n "),vs(28,"app-button",13,14),xs("action",function(){return on(n),Ys().okPressed()}),ru(30),Wl(31,"translate"),_s(),ru(32,"\n "),_s(),ru(33,"\n "),ws()}if(2&e){var i=Ys();Ya(2),ou("\n ",Vl(3,10,i.text),"\n "),Ya(2),ms("formGroup",i.form),Ya(3),ms("ngIf",i.dropdownElements),Ya(5),ms("ngIf",i.inputLabel),Ya(2),ms("ngIf",!!i.contents),Ya(2),ms("ngIf",!i.contents),Ya(7),ms("disabled",i.working),Ya(2),ou("\n ",Vl(26,12,i.cancelButtonText),"\n "),Ya(3),ms("disabled",i.validateForm&&!i.form.valid||i.working),Ya(2),ou("\n ",Vl(31,14,i.okButtonText),"\n ")}}var OH=function(e){function t(t,n,i,r,a,o){var s=e.call(this,o)||this;return s.dialogRef=t,s.msgBarService=n,s.dialog=i,s.spendingService=r,s.walletsAndAddressesService=a,s.title="offline-transactions.sign-tx.title",s.text="offline-transactions.sign-tx.text",s.dropdownLabel="offline-transactions.sign-tx.wallet-label",s.defaultDropdownText="offline-transactions.sign-tx.select-wallet",s.inputLabel="offline-transactions.sign-tx.input-label",s.cancelButtonText="common.cancel-button",s.okButtonText="offline-transactions.sign-tx.sign-button",s.validateForm=!0,s.currentState=tF.Loading,s}return vf(t,e),t.openDialog=function(e){var n=new wk;return n.autoFocus=!0,n.width=jM.mediumModalWidth,e.open(t,n)},t.prototype.ngOnInit=function(){var e=this;this.walletsSubscription=this.walletsAndAddressesService.allWallets.pipe(eS()).subscribe(function(t){t?(e.dropdownElements=[],t.forEach(function(t){t.isHardware||e.dropdownElements.push({name:t.label,value:t})}),e.currentState=tF.ShowingForm,setTimeout(function(){try{1===t.length&&e.form.get("dropdown").setValue(t[0])}catch(n){}})):e.currentState=tF.ErrorLoading},function(){return e.currentState=tF.ErrorLoading})},t.prototype.ngOnDestroy=function(){this.walletsSubscription.unsubscribe(),this.closeOperationSubscription(),this.msgBarService.hide()},t.prototype.cancelPressed=function(){this.dialogRef.close()},t.prototype.okPressed=function(){var e=this;this.working||(this.msgBarService.hide(),this.form.get("dropdown").value.encrypted?LA.openDialog(this.dialog,{wallet:this.form.get("dropdown").value}).componentInstance.passwordSubmit.subscribe(function(t){t.close(),e.signTransaction(t.password)}):this.signTransaction(null))},t.prototype.signTransaction=function(e){var t=this;this.working=!0,this.okButton.setLoading(),this.closeOperationSubscription(),this.operationSubscription=this.spendingService.signTransaction(this.form.get("dropdown").value,e,null,this.form.get("input").value).subscribe(function(e){t.cancelPressed(),setTimeout(function(){return t.msgBarService.showDone("offline-transactions.sign-tx.signed")}),setTimeout(function(){gF.openDialog(t.dialog,{rawTx:e,isUnsigned:!1})},500)},function(e){t.working=!1,t.okButton.resetState(),t.msgBarService.showError(e)})},t.prototype.closeOperationSubscription=function(){this.operationSubscription&&this.operationSubscription.unsubscribe()},t.\u0275fac=function(e){return new(e||t)(ps(Lk),ps(dL),ps(Pk),ps(bF),ps(AL),ps(fm))},t.\u0275cmp=ft({type:t,selectors:[["app-sign-raw-tx"]],features:[Ko],decls:9,vars:7,consts:[[3,"headline","dialog","disableDismiss"],[3,"isLoading","noDataText",4,"ngIf"],[4,"ngIf"],[3,"isLoading","noDataText"],[1,"modal-form-container",3,"formGroup"],["class","form-field",4,"ngIf"],[1,"form-field"],["for","input",4,"ngIf"],["rows","5",3,"readonly",4,"ngIf"],["formControlName","input","id","input","rows","5",3,"appFormFieldError","blur",4,"ngIf"],[1,"-buttons"],[3,"disabled","action"],["cancelButton",""],[1,"primary-button",3,"disabled","action"],["okButton",""],["for","dropdown",4,"ngIf"],[1,"-select"],["formControlName","dropdown","id","dropdown",3,"appFormFieldError","blur"],["disabled","","hidden","",3,"ngValue",4,"ngIf"],["for","dropdown"],["disabled","","hidden","",3,"ngValue"],[4,"ngFor","ngForOf"],[3,"ngValue"],["for","input"],["rows","5",3,"readonly"],["formControlName","input","id","input","rows","5",3,"appFormFieldError","blur"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,bH,1,2,"app-loading-content",1),ru(5,"\n\n "),hs(6,DH,34,16,"ng-container",2),ru(7,"\n"),_s(),ru(8,"\n")),2&e&&(ms("headline",Vl(1,5,t.title))("dialog",t.dialogRef)("disableDismiss",t.working),Ya(4),ms("ngIf",t.currentState===t.states.Loading||t.currentState===t.states.ErrorLoading),Ya(2),ms("ngIf",t.currentState===t.states.ShowingForm))},directives:[jk,lh,aF,ap,jp,ZC,Jp,rp,qp,RO,Zp,em,sh,Lf],pipes:[hM],styles:[""]}),t}(nF);function EH(e,t){if(1&e&&ys(0,"app-loading-content",3),2&e){var n=Ys();ms("isLoading",n.currentState===n.states.Loading)("noDataText","offline-transactions.loading-problem")}}function YH(e,t){if(1&e&&(vs(0,"label",19),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(3);Ya(1),au(Vl(2,1,n.dropdownLabel))}}function PH(e,t){if(1&e&&(vs(0,"option",20),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(3);ms("ngValue",""),Ya(1),au(Vl(2,2,n.defaultDropdownText))}}function AH(e,t){if(1&e&&(bs(0),ru(1,"\n "),vs(2,"option",22),ru(3),_s(),ru(4,"\n "),ws()),2&e){var n=t.$implicit;Ya(2),ms("ngValue",n.value),Ya(1),ou("\n ",n.name,"\n ")}}function IH(e,t){if(1&e&&(bs(0),ru(1,"\n "),hs(2,AH,5,2,"ng-container",21),ru(3,"\n "),ws()),2&e){var n=Ys(3);Ya(2),ms("ngForOf",n.dropdownElements)}}function RH(e,t){if(1&e){var n=Ms();vs(0,"div",6),ru(1,"\n "),hs(2,YH,3,3,"label",15),ru(3,"\n "),vs(4,"div",16),ru(5,"\n "),vs(6,"select",17),xs("blur",function(){return on(n),Ys(2).validate()}),ru(7,"\n "),hs(8,PH,3,4,"option",18),ru(9,"\n "),hs(10,IH,4,1,"ng-container",2),ru(11,"\n "),_s(),ru(12,"\n "),_s(),ru(13,"\n "),_s()}if(2&e){var i=Ys(2);Ya(2),ms("ngIf",i.dropdownLabel),Ya(4),ms("appFormFieldError",i.dropdownErrorMsg),ls("disabled",i.working?"true":null),Ya(2),ms("ngIf",i.defaultDropdownText),Ya(2),ms("ngIf",i.dropdownElements)}}function FH(e,t){if(1&e&&(vs(0,"label",23),ru(1),Wl(2,"translate"),_s()),2&e){var n=Ys(2);Ya(1),au(Vl(2,1,n.inputLabel))}}function HH(e,t){if(1&e&&(vs(0,"textarea",24),ru(1),_s()),2&e){var n=Ys(2);ms("readonly",!0),Ya(1),au(n.contents)}}function jH(e,t){if(1&e){var n=Ms();vs(0,"textarea",25),xs("blur",function(){return on(n),Ys(2).validate()}),_s()}if(2&e){var i=Ys(2);ms("appFormFieldError",i.inputErrorMsg),ls("disabled",i.working?"true":null)}}function NH(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),ru(2),Wl(3,"translate"),vs(4,"div",4),ru(5,"\n "),ru(6,"\n "),hs(7,RH,14,5,"div",5),ru(8,"\n "),ru(9,"\n "),vs(10,"div",6),ru(11,"\n "),hs(12,FH,3,3,"label",7),ru(13,"\n "),hs(14,HH,2,2,"textarea",8),ru(15,"\n "),hs(16,jH,1,2,"textarea",9),ru(17,"\n "),_s(),ru(18,"\n "),_s(),ru(19,"\n "),ru(20,"\n "),vs(21,"div",10),ru(22,"\n "),vs(23,"app-button",11,12),xs("action",function(){return on(n),Ys().cancelPressed()}),ru(25),Wl(26,"translate"),_s(),ru(27,"\n "),vs(28,"app-button",13,14),xs("action",function(){return on(n),Ys().okPressed()}),ru(30),Wl(31,"translate"),_s(),ru(32,"\n "),_s(),ru(33,"\n "),ws()}if(2&e){var i=Ys();Ya(2),ou("\n ",Vl(3,10,i.text),"\n "),Ya(2),ms("formGroup",i.form),Ya(3),ms("ngIf",i.dropdownElements),Ya(5),ms("ngIf",i.inputLabel),Ya(2),ms("ngIf",!!i.contents),Ya(2),ms("ngIf",!i.contents),Ya(7),ms("disabled",i.working),Ya(2),ou("\n ",Vl(26,12,i.cancelButtonText),"\n "),Ya(3),ms("disabled",i.validateForm&&!i.form.valid||i.working),Ya(2),ou("\n ",Vl(31,14,i.okButtonText),"\n ")}}var BH=function(e){function t(t,n,i,r,a){var o=e.call(this,a)||this;return o.dialogRef=t,o.msgBarService=n,o.balanceAndOutputsService=i,o.spendingService=r,o.title="offline-transactions.broadcast-tx.title",o.text="offline-transactions.broadcast-tx.text",o.inputLabel="offline-transactions.broadcast-tx.input-label",o.cancelButtonText="common.cancel-button",o.okButtonText="offline-transactions.broadcast-tx.send-button",o.validateForm=!0,o.currentState=tF.ShowingForm,o}return vf(t,e),t.openDialog=function(e){var n=new wk;return n.autoFocus=!0,n.width=jM.mediumModalWidth,e.open(t,n)},t.prototype.ngOnInit=function(){this.form.get("dropdown").setValue("dummy")},t.prototype.ngOnDestroy=function(){this.closeOperationSubscription()},t.prototype.cancelPressed=function(){this.dialogRef.close()},t.prototype.okPressed=function(){var e=this;this.working||(this.msgBarService.hide(),this.working=!0,this.okButton.setLoading(),this.closeOperationSubscription(),this.operationSubscription=this.spendingService.injectTransaction(this.form.get("input").value,null).subscribe(function(){e.balanceAndOutputsService.refreshBalance(),e.msgBarService.showDone("offline-transactions.broadcast-tx.sent"),e.cancelPressed()},function(t){e.working=!1,e.okButton.resetState(),e.msgBarService.showError(t)}))},t.prototype.closeOperationSubscription=function(){this.operationSubscription&&this.operationSubscription.unsubscribe()},t.\u0275fac=function(e){return new(e||t)(ps(Lk),ps(dL),ps(_O),ps(bF),ps(fm))},t.\u0275cmp=ft({type:t,selectors:[["app-broadcast-raw-tx"]],features:[Ko],decls:9,vars:7,consts:[[3,"headline","dialog","disableDismiss"],[3,"isLoading","noDataText",4,"ngIf"],[4,"ngIf"],[3,"isLoading","noDataText"],[1,"modal-form-container",3,"formGroup"],["class","form-field",4,"ngIf"],[1,"form-field"],["for","input",4,"ngIf"],["rows","5",3,"readonly",4,"ngIf"],["formControlName","input","id","input","rows","5",3,"appFormFieldError","blur",4,"ngIf"],[1,"-buttons"],[3,"disabled","action"],["cancelButton",""],[1,"primary-button",3,"disabled","action"],["okButton",""],["for","dropdown",4,"ngIf"],[1,"-select"],["formControlName","dropdown","id","dropdown",3,"appFormFieldError","blur"],["disabled","","hidden","",3,"ngValue",4,"ngIf"],["for","dropdown"],["disabled","","hidden","",3,"ngValue"],[4,"ngFor","ngForOf"],[3,"ngValue"],["for","input"],["rows","5",3,"readonly"],["formControlName","input","id","input","rows","5",3,"appFormFieldError","blur"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),ru(3,"\n "),hs(4,EH,1,2,"app-loading-content",1),ru(5,"\n\n "),hs(6,NH,34,16,"ng-container",2),ru(7,"\n"),_s(),ru(8,"\n")),2&e&&(ms("headline",Vl(1,5,t.title))("dialog",t.dialogRef)("disableDismiss",t.working),Ya(4),ms("ngIf",t.currentState===t.states.Loading||t.currentState===t.states.ErrorLoading),Ya(2),ms("ngIf",t.currentState===t.states.ShowingForm))},directives:[jk,lh,aF,ap,jp,ZC,Jp,rp,qp,RO,Zp,em,sh,Lf],pipes:[hM],styles:[""]}),t}(nF),WH=function(){function e(){}return e.prototype.transform=function(e){return RA.unix(e).format("YYYY-MM-DD HH:mm")},e.\u0275fac=function(t){return new(t||e)},e.\u0275pipe=wt({name:"dateTime",type:e,pure:!0}),e}();function VH(e,t){1&e&&(vs(0,"h4"),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"tx.confirm-transaction-title")))}function UH(e,t){1&e&&(vs(0,"h4"),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"tx.transaction-title")))}function zH(e,t){if(1&e&&(bs(0),ru(1,"\n "),vs(2,"div",4),ru(3,"\n "),vs(4,"span"),ru(5),Wl(6,"translate"),_s(),ru(7," "),vs(8,"span"),ru(9),_s(),ru(10,"\n "),_s(),ru(11,"\n "),vs(12,"div",4),ru(13,"\n "),vs(14,"span"),ru(15),Wl(16,"translate"),_s(),ru(17," "),vs(18,"span"),ru(19),_s(),ru(20,"\n "),_s(),ru(21,"\n "),ws()),2&e){var n=Ys();Ya(5),au(Vl(6,4,"tx.from-small-label")),Ya(4),au(n.transaction.from),Ya(6),au(Vl(16,6,"tx.to-small-label")),Ya(4),au(n.transaction.to)}}function qH(e,t){if(1&e&&(bs(0),ru(1,"\n "),vs(2,"div",4),ru(3,"\n "),vs(4,"span"),ru(5),Wl(6,"translate"),_s(),ru(7," "),vs(8,"span"),ru(9),Wl(10,"dateTime"),_s(),ru(11,"\n "),_s(),ru(12,"\n "),vs(13,"div",4),ru(14,"\n "),vs(15,"span"),ru(16),Wl(17,"translate"),_s(),ru(18," "),vs(19,"span"),ru(20),Wl(21,"translate"),_s(),ru(22,"\n "),_s(),ru(23,"\n "),ws()),2&e){var n=Ys();Ya(5),au(Vl(6,4,"tx.date-small-label")),Ya(4),au(Vl(10,6,n.transaction.timestamp)),Ya(7),au(Vl(17,8,"tx.status-small-label")),Ya(4),au(Vl(21,10,n.transaction.confirmed?"tx.confirmed-transaction":"tx.pending-transaction"))}}function GH(e,t){if(1&e&&(vs(0,"div",4),ru(1,"\n "),vs(2,"span"),ru(3),Wl(4,"translate"),_s(),ru(5," "),vs(6,"span"),ru(7),_s(),ru(8,"\n "),_s()),2&e){var n=Ys();Ya(3),au(Vl(4,2,"tx.id-small-label")),Ya(4),au(n.transaction.id)}}function KH(e,t){if(1&e&&(vs(0,"span"),ru(1),_s()),2&e){var n=Ys(2);Ya(1),au(n.transaction.note)}}function JH(e,t){1&e&&(vs(0,"span",13),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"tx.without-note")))}function ZH(e,t){if(1&e){var n=Ms();vs(0,"mat-icon",14),xs("click",function(){return on(n),Ys(2).editNote()}),ru(1,"edit"),_s()}}function $H(e,t){if(1&e&&(vs(0,"div",4),ru(1,"\n "),vs(2,"span"),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),hs(6,KH,2,1,"span",2),ru(7,"\n "),hs(8,JH,3,3,"span",11),ru(9,"\n "),hs(10,ZH,2,0,"mat-icon",12),ru(11,"\n "),_s()),2&e){var n=Ys();Ya(3),au(Vl(4,4,"tx.note-small-label")),Ya(3),ms("ngIf",n.transaction.note),Ya(2),ms("ngIf",!n.transaction.note),Ya(2),ms("ngIf",!n.isPreview)}}function XH(e,t){1&e&&(vs(0,"span"),ru(1,"*"),_s())}function QH(e,t){if(1&e&&(vs(0,"p",15),Wl(1,"translate"),ru(2),Wl(3,"currency"),hs(4,XH,2,0,"span",2),ru(5,"\n "),_s()),2&e){var n=Ys();ms("matTooltip",n.isPreview?"":Vl(1,3,"tx.current-rate-help")),Ya(2),ou("\n ",ql(3,5,n.balanceToShow.multipliedBy(n.price).toString(),"USD","symbol","1.2-2"),""),Ya(2),ms("ngIf",!n.isPreview)}}function ej(e,t){if(1&e){var n=Ms();vs(0,"div",16),ru(1,"\n "),vs(2,"app-arrow-link",17),xs("pressed",function(e){return on(n),Ys().toggleInputsOutputs(e)}),ru(3,"\n "),_s(),ru(4,"\n "),_s()}2&e&&(Ya(2),ms("noPadding",!0)("text","tx.show-more-link"))}function tj(e,t){if(1&e&&(vs(0,"div",20),ru(1,"\n "),vs(2,"div",21),ru(3),_s(),ru(4,"\n "),vs(5,"div",22),ru(6,"\n "),vs(7,"div",23),ru(8),_s(),ru(9,"\n "),vs(10,"div",4),ru(11,"\n "),vs(12,"span"),ru(13),Wl(14,"translate"),_s(),ru(15),Wl(16,"amount"),_s(),ru(17,"\n "),vs(18,"div",4),ru(19,"\n "),vs(20,"span"),ru(21),Wl(22,"translate"),_s(),ru(23),Wl(24,"amount"),_s(),ru(25,"\n "),_s(),ru(26,"\n "),_s()),2&e){var n=t.$implicit,i=t.index;Ya(3),au(i+1),Ya(5),au(n.address),Ya(5),au(Vl(14,6,"tx.coins-small-label")),Ya(2),ou(" ",zl(16,8,n.coins,!0,"first"),"\n "),Ya(6),au(Vl(22,12,"tx.hours-small-label")),Ya(2),ou(" ",zl(24,14,n.hours,!1,"first"),"\n ")}}function nj(e,t){if(1&e&&(vs(0,"div",20),ru(1,"\n "),vs(2,"div",21),ru(3),_s(),ru(4,"\n "),vs(5,"div",22),ru(6,"\n "),vs(7,"div",23),ru(8),_s(),ru(9,"\n "),vs(10,"div",4),ru(11,"\n "),vs(12,"span"),ru(13),Wl(14,"translate"),_s(),ru(15),Wl(16,"amount"),_s(),ru(17,"\n "),vs(18,"div",4),ru(19,"\n "),vs(20,"span"),ru(21),Wl(22,"translate"),_s(),ru(23),Wl(24,"amount"),_s(),ru(25,"\n "),_s(),ru(26,"\n "),_s()),2&e){var n=t.$implicit,i=t.index;Ya(3),au(i+1),Ya(5),au(n.address),Ya(5),au(Vl(14,6,"tx.coins-small-label")),Ya(2),ou(" ",zl(16,8,n.coins,!0,"first"),"\n "),Ya(6),au(Vl(22,12,"tx.hours-small-label")),Ya(2),ou(" ",zl(24,14,n.hours,!1,"first"),"\n ")}}function ij(e,t){if(1&e&&(bs(0),ru(1,"\n "),ru(2,"\n "),vs(3,"div",18),ru(4,"\n "),vs(5,"h4"),ru(6),Wl(7,"translate"),_s(),ru(8,"\n\n "),hs(9,tj,27,18,"div",19),ru(10,"\n "),_s(),ru(11,"\n "),ru(12,"\n "),vs(13,"div",18),ru(14,"\n "),vs(15,"h4"),ru(16),Wl(17,"translate"),_s(),ru(18,"\n\n "),hs(19,nj,27,18,"div",19),ru(20,"\n "),_s(),ru(21,"\n "),ws()),2&e){var n=Ys();Ya(6),au(Vl(7,4,"tx.inputs-title")),Ya(3),ms("ngForOf",n.transaction.inputs),Ya(7),au(Vl(17,6,"tx.outputs-title")),Ya(3),ms("ngForOf",n.transaction.outputs)}}var rj=function(){function e(e,t){var n=this;this.priceService=e,this.dialog=t,this.showInputsOutputs=!1,this.subscription=this.priceService.price.subscribe(function(e){return n.price=e})}return Object.defineProperty(e.prototype,"hoursText",{get:function(){if(!this.isPreview){if(this.transaction.coinsMovedInternally)return"tx.hours-moved";if(this.transaction.balance.isGreaterThan(0))return"tx.hours-received"}return"tx.hours-sent"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"sentOrReceivedHours",{get:function(){return this.isPreview?this.transaction.hoursToSend:this.transaction.hoursBalance},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"shouldShowIncomingIcon",{get:function(){return!this.isPreview&&this.transaction.balance.isGreaterThan(0)&&!this.transaction.coinsMovedInternally},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"balanceToShow",{get:function(){return this.isPreview?this.transaction.coinsToSend:this.transaction.balance},enumerable:!1,configurable:!0}),e.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},e.prototype.toggleInputsOutputs=function(e){e.preventDefault(),this.showInputsOutputs=!this.showInputsOutputs},e.prototype.editNote=function(){var e=this;RR.openDialog(this.dialog,this.transaction).afterClosed().subscribe(function(t){(t||""===t)&&(e.transaction.note=t)})},e.\u0275fac=function(t){return new(t||e)(ps(dP),ps(Pk))},e.\u0275cmp=ft({type:e,selectors:[["app-transaction-info"]],inputs:{transaction:"transaction",isPreview:"isPreview"},decls:61,vars:32,consts:[[1,"row"],[1,"col-md-12"],[4,"ngIf"],[1,"col-md-9","-tx-meta"],[1,"-data"],["class","-data",4,"ngIf"],[1,"col-md-3","-tx-price"],[1,"-icon"],[3,"src"],[3,"matTooltip",4,"ngIf"],["class","-data -more",4,"ngIf"],["class","grey-text",4,"ngIf"],["class","edit-button image-button",3,"click",4,"ngIf"],[1,"grey-text"],[1,"edit-button","image-button",3,"click"],[3,"matTooltip"],[1,"-data","-more"],[3,"noPadding","text","pressed"],[1,"col-md-6","-margin-top"],["class","-item",4,"ngFor","ngForOf"],[1,"-item"],[1,"-number"],[1,"-info"],[1,"-address"]],template:function(e,t){1&e&&(vs(0,"div",0),ru(1,"\n "),vs(2,"div",1),ru(3,"\n "),ru(4,"\n "),hs(5,VH,3,3,"h4",2),ru(6,"\n "),hs(7,UH,3,3,"h4",2),ru(8,"\n "),vs(9,"div",0),ru(10,"\n "),ru(11,"\n "),vs(12,"div",3),ru(13,"\n "),hs(14,zH,22,8,"ng-container",2),ru(15,"\n "),hs(16,qH,24,12,"ng-container",2),ru(17,"\n "),vs(18,"div",4),ru(19,"\n "),vs(20,"span"),ru(21),Wl(22,"translate"),_s(),ru(23,"\n "),vs(24,"span"),ru(25),Wl(26,"amount"),Wl(27,"translate"),Wl(28,"amount"),Wl(29,"translate"),_s(),ru(30,"\n "),_s(),ru(31,"\n "),hs(32,GH,9,4,"div",5),ru(33,"\n "),hs(34,$H,12,6,"div",5),ru(35,"\n "),_s(),ru(36,"\n\n "),ru(37,"\n "),vs(38,"div",6),ru(39,"\n "),vs(40,"div",7),ru(41,"\n "),ys(42,"img",8),ru(43,"\n "),_s(),ru(44,"\n "),vs(45,"h4"),ru(46),Wl(47,"amount"),_s(),ru(48,"\n "),hs(49,QH,6,10,"p",9),ru(50,"\n "),_s(),ru(51,"\n "),_s(),ru(52,"\n\n "),ru(53,"\n "),hs(54,ej,5,2,"div",10),ru(55,"\n "),_s(),ru(56,"\n\n "),ru(57,"\n "),hs(58,ij,22,8,"ng-container",2),ru(59,"\n"),_s(),ru(60,"\n")),2&e&&(Ya(5),ms("ngIf",t.isPreview),Ya(2),ms("ngIf",!t.isPreview),Ya(7),ms("ngIf",t.isPreview),Ya(2),ms("ngIf",!t.isPreview),Ya(5),au(Vl(22,16,"tx.hours-small-label")),Ya(4),lu("\n ",zl(26,18,t.sentOrReceivedHours,!1,"first")," ",Vl(27,22,t.hoursText),"\n |\n ",zl(28,24,t.transaction.hoursBurned,!1,"first")," ",Vl(29,28,"tx.hours-burned"),"\n "),Ya(7),ms("ngIf",!t.isPreview),Ya(2),ms("ngIf",t.transaction.note||!t.isPreview),Ya(8),ms("src","assets/img/"+(t.shouldShowIncomingIcon?"received":"sent")+"-blue.png",Pr),Ya(4),au(Vl(47,30,t.balanceToShow)),Ya(3),ms("ngIf",t.price),Ya(5),ms("ngIf",!t.showInputsOutputs),Ya(4),ms("ngIf",t.showInputsOutputs))},directives:[lh,WC,YO,jO,sh],pipes:[hM,NS,WH,Ch],styles:["h4[_ngcontent-%COMP%]{font-size:14px;margin:0 0 30px}.-item[_ngcontent-%COMP%]{display:flex;font-size:13px}.-item[_ngcontent-%COMP%]:not(:last-child){margin-bottom:10px}.-item[_ngcontent-%COMP%] .-number[_ngcontent-%COMP%]{padding:10px;background:#f7f7f7;align-self:flex-start;border-radius:10px}.-item[_ngcontent-%COMP%] .-info[_ngcontent-%COMP%]{margin-left:10px;display:flex;flex-direction:column;word-break:break-all}.-item[_ngcontent-%COMP%] .-info[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%]{padding:10px 0;margin-bottom:5px}.-data[_ngcontent-%COMP%]{font-size:13px;display:flex}.-data[_ngcontent-%COMP%]:not(:last-child){margin-bottom:5px}.-data[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child{color:rgba(30,34,39,.5);width:70px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.-data[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2){word-break:break-word}.-data.-more[_ngcontent-%COMP%]{margin-top:20px}.edit-button[_ngcontent-%COMP%]{font-size:20px;padding-left:5px;color:#0072ff}.-tx-meta[_ngcontent-%COMP%] .-data[_ngcontent-%COMP%]{margin-bottom:10px}.-tx-price[_ngcontent-%COMP%]{text-align:center;display:flex;flex-direction:column;justify-content:center}.-tx-price[_ngcontent-%COMP%] .-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:30px}.-tx-price[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{color:#1e2227;font-size:18px;font-weight:700;margin:10px 0 5px;word-break:break-word}.-tx-price[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:rgba(30,34,39,.5);font-size:13px;margin:0}.-tx-price[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:rgba(121,135,152,.5)}.-margin-top[_ngcontent-%COMP%]{margin-top:30px}"]}),e}(),aj=["sendButton"],oj=["backButton"],sj=function(){function e(e,t,n,i,r,a){this.msgBarService=e,this.dialog=t,this.hwWalletService=n,this.translate=i,this.balanceAndOutputsService=r,this.spendingService=a,this.onBack=new Zl}return e.prototype.ngOnDestroy=function(){this.msgBarService.hide(),this.sendSubscription&&this.sendSubscription.unsubscribe(),this.onBack.complete()},e.prototype.back=function(){this.onBack.emit(!1)},e.prototype.send=function(){var e=this;this.sendButton.isLoading()||(this.msgBarService.hide(),this.sendButton.resetState(),this.transaction.wallet?this.transaction.wallet.encrypted&&!this.transaction.wallet.isHardware?LA.openDialog(this.dialog,{wallet:this.transaction.wallet}).componentInstance.passwordSubmit.subscribe(function(t){e.finishSending(t)}):this.transaction.wallet.isHardware?(this.showBusy(),this.sendSubscription=this.hwWalletService.checkIfCorrectHwConnected(this.transaction.wallet.addresses[0].address).subscribe(function(){return e.finishSending()},function(t){return e.showError(t)})):this.finishSending():gF.openDialog(this.dialog,{rawTx:this.transaction.encoded,isUnsigned:!0}).afterClosed().subscribe(function(){vO.openDialog(e.dialog,{text:"offline-transactions.copy-tx.reset-confirmation",defaultButtons:gO.YesNo}).afterClosed().subscribe(function(t){t&&e.onBack.emit(!0)})}))},e.prototype.finishSending=function(e){var t=this;this.showBusy();var n=this.transaction.note.trim();this.sendSubscription=this.spendingService.signTransaction(this.transaction.wallet,e?e.password:null,this.transaction).pipe(ue(function(i){return e&&e.close(),t.spendingService.injectTransaction(i,n)})).subscribe(function(e){n&&!e?setTimeout(function(){return t.msgBarService.showWarning(t.translate.instant("send.saving-note-error"))}):setTimeout(function(){return t.msgBarService.showDone("send.sent")}),t.balanceAndOutputsService.refreshBalance(),t.onBack.emit(!0)},function(n){e&&e.error(n),t.showError(n)})},e.prototype.showBusy=function(){this.sendButton.setLoading(),this.backButton.setDisabled()},e.prototype.showError=function(e){this.msgBarService.showError(e),this.sendButton.resetState(),this.backButton.resetState().setEnabled()},e.\u0275fac=function(t){return new(t||e)(ps(dL),ps(Pk),ps(gC),ps(dM),ps(_O),ps(bF))},e.\u0275cmp=ft({type:e,selectors:[["app-send-preview"]],viewQuery:function(e,t){if(1&e&&(lc(aj,5),lc(oj,5)),2&e){var n=void 0;uc(n=dc())&&(t.sendButton=n.first),uc(n=dc())&&(t.backButton=n.first)}},inputs:{transaction:"transaction"},outputs:{onBack:"onBack"},decls:15,vars:8,consts:[[3,"transaction","isPreview"],[1,"-buttons"],[3,"action"],["backButton",""],[1,"primary-button",3,"action"],["sendButton",""]],template:function(e,t){1&e&&(ys(0,"app-transaction-info",0),ru(1,"\n\n"),vs(2,"div",1),ru(3,"\n "),vs(4,"app-button",2,3),xs("action",function(){return t.back()}),ru(6),Wl(7,"translate"),_s(),ru(8,"\n "),vs(9,"app-button",4,5),xs("action",function(){return t.send()}),ru(11),Wl(12,"translate"),_s(),ru(13,"\n"),_s(),ru(14,"\n")),2&e&&(ms("transaction",t.transaction)("isPreview",!0),Ya(6),au(Vl(7,4,"common.back-button")),Ya(5),ou("\n ",Vl(12,6,"send."+(t.transaction&&!t.transaction.wallet?"show":"send")+"-button"),"\n "))},directives:[rj,ZC],pipes:[hM],styles:[".-buttons[_ngcontent-%COMP%]{margin-top:10px;text-align:center}"]}),e}();function uj(e,t){if(1&e){var n=Ms();vs(0,"app-send-coins-form",9),xs("onFormSubmitted",function(e){return on(n),Ys().onFormSubmitted(e)}),_s()}2&e&&ms("formData",Ys().formData)("showSimpleForm",!0)}function lj(e,t){if(1&e){var n=Ms();vs(0,"app-send-coins-form",9),xs("onFormSubmitted",function(e){return on(n),Ys().onFormSubmitted(e)}),_s()}2&e&&ms("formData",Ys().formData)("showSimpleForm",!1)}function cj(e,t){if(1&e){var n=Ms();vs(0,"app-send-preview",10),xs("onBack",function(e){return on(n),Ys().onBack(e)}),_s()}2&e&&ms("transaction",Ys().formData.transaction)}var dj=function(){function e(e,t,n){var i=this;this.navBarSwitchService=e,this.changeDetector=t,this.dialog=n,this.showForm=!0,this.activeForms=NP,this.navBarSwitchService.showSwitch("send.simple-form-button","send.advanced-form-button",NP.LeftButton),this.subscription=e.activeComponent.subscribe(function(e){i.activeForm!==e&&(i.activeForm=e,i.formData=null)})}return e.prototype.ngOnDestroy=function(){this.subscription.unsubscribe(),this.navBarSwitchService.hideSwitch()},e.prototype.onFormSubmitted=function(e){this.formData=e,this.showForm=!1},e.prototype.onBack=function(e){e&&(this.formData=null),this.showForm=!0,this.changeDetector.detectChanges()},e.prototype.signTransaction=function(){OH.openDialog(this.dialog)},e.prototype.broadcastTransaction=function(){BH.openDialog(this.dialog)},e.\u0275fac=function(t){return new(t||e)(ps(WP),ps(ll),ps(Pk))},e.\u0275cmp=ft({type:e,selectors:[["app-send-skycoin"]],decls:35,vars:12,consts:[[3,"headline"],[1,"container"],[1,"paper"],[3,"formData","showSimpleForm","onFormSubmitted",4,"ngIf"],[3,"transaction","onBack",4,"ngIf"],[1,"-links"],[1,"link",3,"click"],[1,"separator"],[1,"final-element"],[3,"formData","showSimpleForm","onFormSubmitted"],[3,"transaction","onBack"]],template:function(e,t){1&e&&(ys(0,"app-header",0),Wl(1,"translate"),ru(2,"\n"),vs(3,"div",1),ru(4,"\n "),vs(5,"div",2),ru(6,"\n "),ru(7,"\n "),hs(8,uj,1,2,"app-send-coins-form",3),ru(9,"\n "),hs(10,lj,1,2,"app-send-coins-form",3),ru(11,"\n "),ru(12,"\n "),hs(13,cj,1,1,"app-send-preview",4),ru(14,"\n "),_s(),ru(15,"\n "),ru(16,"\n "),vs(17,"div",5),ru(18,"\n "),vs(19,"span",6),xs("click",function(){return t.signTransaction()}),ru(20),Wl(21,"translate"),_s(),ru(22,"\n "),vs(23,"span",7),ru(24," / "),_s(),ru(25,"\n "),vs(26,"span",6),xs("click",function(){return t.broadcastTransaction()}),ru(27),Wl(28,"translate"),_s(),ru(29,"\n "),_s(),ru(30,"\n "),ru(31,"\n "),ys(32,"div",8),ru(33,"\n"),_s(),ru(34,"\n")),2&e&&(ms("headline",Vl(1,6,"send.title-and-button")),Ya(8),ms("ngIf",t.showForm&&t.activeForm===t.activeForms.LeftButton),Ya(2),ms("ngIf",t.showForm&&t.activeForm===t.activeForms.RightButton),Ya(3),ms("ngIf",!t.showForm),Ya(7),au(Vl(21,8,"offline-transactions.sign-tx.title")),Ya(7),au(Vl(28,10,"offline-transactions.broadcast-tx.title")))},directives:[_A,lh,VF,sj],pipes:[hM],styles:[".-links[_ngcontent-%COMP%]{text-align:center;font-size:13px;margin-top:-15px;margin-bottom:15px}.-links[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{margin:0 10px}"]}),e}();function hj(e,t){1&e&&ys(0,"app-loading-content",4),2&e&&ms("isLoading",!Ys().transactions)}function fj(e,t){if(1&e&&(vs(0,"div",13),ru(1,"\n "),vs(2,"div",14),ru(3),_s(),ru(4,"\n "),vs(5,"div",9),ru(6),Wl(7,"amount"),_s(),ru(8,"\n "),vs(9,"div",9),ru(10),Wl(11,"amount"),_s(),ru(12,"\n "),vs(13,"div",15),ru(14),Wl(15,"dateTime"),_s(),ru(16,"\n "),_s()),2&e){var n=t.$implicit;Ya(3),au(n.id),Ya(3),au(zl(7,4,n.coins,!0,"first")),Ya(4),au(zl(11,8,n.hours,!1,"first")),Ya(4),au(Vl(15,12,n.timestamp))}}function pj(e,t){if(1&e&&(vs(0,"div",5),ru(1,"\n "),vs(2,"div",6),ru(3,"\n "),vs(4,"div",7),ru(5,"\n "),vs(6,"div",8),ru(7),Wl(8,"translate"),_s(),ru(9,"\n "),vs(10,"div",9),ru(11),Wl(12,"commonText"),_s(),ru(13,"\n "),vs(14,"div",9),ru(15),Wl(16,"commonText"),_s(),ru(17,"\n "),vs(18,"div",10),ru(19),Wl(20,"translate"),_s(),ru(21,"\n "),_s(),ru(22,"\n "),vs(23,"div",11),ru(24,"\n "),hs(25,fj,17,14,"div",12),ru(26,"\n "),_s(),ru(27,"\n "),_s(),ru(28,"\n "),_s()),2&e){var n=Ys();Ya(7),au(Vl(8,5,"pending-txs.txid-table-label")),Ya(4),au(Vl(12,7,"coin")),Ya(4),au(Vl(16,9,"hours")),Ya(4),au(Vl(20,11,"pending-txs.timestamp-table-label")),Ya(6),ms("ngForOf",n.transactions)}}var mj=function(){function e(e,t){var n=this;this.navBarSwitchService=e,this.historyService=t,this.transactions=null,this.updatePeriod=1e4,this.errorUpdatePeriod=2e3,this.navbarSubscription=this.navBarSwitchService.activeComponent.subscribe(function(e){n.selectedNavbarOption=e,n.transactions=null,n.startDataRefreshSubscription(0)})}return e.prototype.ngOnInit=function(){this.navBarSwitchService.showSwitch("pending-txs.my-transactions-button","pending-txs.all-transactions-button")},e.prototype.ngOnDestroy=function(){this.navbarSubscription.unsubscribe(),this.removeTransactionsSubscription(),this.navBarSwitchService.hideSwitch()},e.prototype.startDataRefreshSubscription=function(e){var t=this;this.removeTransactionsSubscription(),this.transactionsSubscription=bm(0).pipe(EM(e),ue(function(){return t.historyService.getPendingTransactions()})).subscribe(function(e){t.transactions=t.selectedNavbarOption===NP.LeftButton?e.user:e.all,t.startDataRefreshSubscription(t.updatePeriod)},function(){return t.startDataRefreshSubscription(t.errorUpdatePeriod)})},e.prototype.removeTransactionsSubscription=function(){this.transactionsSubscription&&this.transactionsSubscription.unsubscribe()},e.\u0275fac=function(t){return new(t||e)(ps(WP),ps(FA))},e.\u0275cmp=ft({type:e,selectors:[["app-pending-transactions"]],decls:13,vars:5,consts:[[3,"headline"],["noDataText","pending-txs.none",3,"isLoading",4,"ngIf"],["class","container",4,"ngIf"],[1,"final-element"],["noDataText","pending-txs.none",3,"isLoading"],[1,"container"],[1,"-table"],[1,"-headers"],[1,"-flex-fill"],[1,"-width-150","text-right"],[1,"-width-150"],[1,"-body"],["class","-row",4,"ngFor","ngForOf"],[1,"-row"],[1,"-flex-fill","break-all"],[1,"-width-150","grey-text"]],template:function(e,t){1&e&&(vs(0,"div"),ru(1,"\n "),ys(2,"app-header",0),Wl(3,"translate"),ru(4,"\n\n "),hs(5,hj,1,1,"app-loading-content",1),ru(6,"\n\n "),hs(7,pj,29,13,"div",2),ru(8,"\n "),ru(9,"\n "),ys(10,"div",3),ru(11,"\n"),_s(),ru(12,"\n")),2&e&&(Ya(2),ms("headline",Vl(3,3,"pending-txs.title")),Ya(3),ms("ngIf",!t.transactions||0===t.transactions.length),Ya(2),ms("ngIf",t.transactions&&t.transactions.length>0))},directives:[_A,lh,aF,sh],pipes:[hM,zF,NS,WH],styles:[""]}),e}();function gj(e,t){1&e&&ys(0,"app-loading-content",4),2&e&&ms("isLoading",!Ys().wallets)}function vj(e,t){if(1&e&&(vs(0,"div",13),ru(1,"\n "),vs(2,"div",18),ru(3),_s(),ru(4,"\n "),vs(5,"div",10),ru(6),Wl(7,"amount"),_s(),ru(8,"\n "),vs(9,"div",19),ru(10),Wl(11,"amount"),_s(),ru(12,"\n "),_s()),2&e){var n=t.$implicit;Ya(3),au(n.hash),Ya(3),au(zl(7,3,n.coins,!0,"first")),Ya(4),au(zl(11,7,n.hours,!1,"first"))}}function _j(e,t){if(1&e&&(bs(0),ru(1,"\n "),vs(2,"div",13),ru(3,"\n "),vs(4,"div",14),ru(5,"\n "),ys(6,"app-qr-code-button",15),ru(7,"\n "),vs(8,"span",16),ru(9),_s(),ru(10,"\n "),_s(),ru(11,"\n "),_s(),ru(12,"\n "),hs(13,vj,13,11,"div",17),ru(14,"\n "),ws()),2&e){var n=t.$implicit;Ya(6),ms("address",n.address),Ya(3),au(n.address),Ya(4),ms("ngForOf",n.outputs)}}function yj(e,t){if(1&e&&(vs(0,"div",7),ru(1,"\n "),vs(2,"div",8),ru(3,"\n "),vs(4,"div",9),ru(5),_s(),ru(6,"\n "),vs(7,"div",10),ru(8),Wl(9,"commonText"),_s(),ru(10,"\n "),vs(11,"div",10),ru(12),Wl(13,"commonText"),_s(),ru(14,"\n "),_s(),ru(15,"\n "),vs(16,"div",11),ru(17,"\n "),hs(18,_j,15,3,"ng-container",12),ru(19,"\n "),_s(),ru(20,"\n "),_s()),2&e){var n=t.$implicit;Ya(4),ls("title",n.label),Ya(1),au(n.label),Ya(3),au(Vl(9,5,"coin")),Ya(4),au(Vl(13,7,"hours")),Ya(6),ms("ngForOf",n.addresses)}}function bj(e,t){if(1&e&&(vs(0,"div",5),ru(1,"\n "),hs(2,yj,21,9,"div",6),ru(3,"\n "),_s()),2&e){var n=Ys();Ya(2),ms("ngForOf",n.wallets)}}var wj=function(){function e(e,t){var n=this;this.balanceAndOutputsService=t,e.queryParams.subscribe(function(e){n.wallets=null,n.loadData(e)})}return e.prototype.ngOnDestroy=function(){this.removeOutputsSubscription()},e.prototype.loadData=function(e){var t=this,n=e.addr;this.removeOutputsSubscription(),this.outputsSubscription=this.balanceAndOutputsService.outputsWithWallets.subscribe(function(e){t.wallets=e.map(function(e){return e.addresses=e.addresses.filter(function(e){if(e.outputs.length>0)return!n||e.address===n}),e}).filter(function(e){return e.addresses.length>0})})},e.prototype.removeOutputsSubscription=function(){this.outputsSubscription&&this.outputsSubscription.unsubscribe()},e.\u0275fac=function(t){return new(t||e)(ps(Jx),ps(_O))},e.\u0275cmp=ft({type:e,selectors:[["app-outputs"]],decls:13,vars:5,consts:[[3,"headline"],["noDataText","outputs.error-no-outputs",3,"isLoading",4,"ngIf"],["class","container",4,"ngIf"],[1,"final-element"],["noDataText","outputs.error-no-outputs",3,"isLoading"],[1,"container"],["class","-table",4,"ngFor","ngForOf"],[1,"-table"],[1,"-headers"],[1,"-flex-fill","text-truncate"],[1,"-width-150","text-right"],[1,"-body"],[4,"ngFor","ngForOf"],[1,"-row"],[1,"-flex-fill","grey-text","text-truncate"],[3,"address"],[1,"address"],["class","-row",4,"ngFor","ngForOf"],[1,"-flex-fill","-hash"],[1,"-width-150","text-right","grey-text"]],template:function(e,t){1&e&&(vs(0,"div"),ru(1,"\n "),ys(2,"app-header",0),Wl(3,"translate"),ru(4,"\n\n "),hs(5,gj,1,1,"app-loading-content",1),ru(6,"\n\n "),hs(7,bj,4,1,"div",2),ru(8,"\n "),ru(9,"\n "),ys(10,"div",3),ru(11,"\n"),_s(),ru(12,"\n")),2&e&&(Ya(2),ms("headline",Vl(3,3,"outputs.title")),Ya(3),ms("ngIf",!t.wallets||0===t.wallets.length||0===t.wallets[0].addresses[0].outputs.length),Ya(2),ms("ngIf",t.wallets&&t.wallets.length>0))},directives:[_A,lh,aF,sh,KA],pipes:[hM,zF,NS],styles:[".-hash[_ngcontent-%COMP%]{margin-left:27px;word-break:break-all}app-qr-code-button[_ngcontent-%COMP%]{margin-right:10px}.address[_ngcontent-%COMP%], app-qr-code-button[_ngcontent-%COMP%]{vertical-align:middle}"]}),e}();function kj(e,t){1&e&&ys(0,"app-loading-content")}var Mj=function(e){return{coinName:e}},Sj=function(e){return{coinHoursName:e}};function Cj(e,t){if(1&e&&(vs(0,"div",4),ru(1,"\n "),vs(2,"div",5),ru(3,"\n "),ru(4,"\n "),vs(5,"div",6),ru(6,"\n "),vs(7,"div",7),ru(8,"\n "),vs(9,"div",8),ru(10,"\n "),vs(11,"div",9),ru(12),Wl(13,"translate"),_s(),ru(14,"\n "),vs(15,"div",10),ru(16),Wl(17,"number"),_s(),ru(18,"\n "),_s(),ru(19,"\n "),vs(20,"div",8),ru(21,"\n "),vs(22,"div",9),ru(23),Wl(24,"translate"),_s(),ru(25,"\n "),vs(26,"div",10),ru(27),Wl(28,"dateTime"),_s(),ru(29,"\n "),_s(),ru(30,"\n "),vs(31,"div",8),ru(32,"\n "),vs(33,"div",9),ru(34),Wl(35,"translate"),_s(),ru(36,"\n "),vs(37,"div",10),ru(38),_s(),ru(39,"\n "),_s(),ru(40,"\n "),_s(),ru(41,"\n "),_s(),ru(42,"\n "),ru(43,"\n "),vs(44,"div",11),ru(45,"\n "),vs(46,"div",7),ru(47,"\n "),vs(48,"div",12),ru(49,"\n "),vs(50,"div",13),ru(51,"\n "),vs(52,"div",8),ru(53,"\n "),vs(54,"div",9),ru(55),Wl(56,"translate"),_s(),ru(57,"\n "),vs(58,"div",10),ru(59),Wl(60,"amount"),_s(),ru(61,"\n "),_s(),ru(62,"\n "),vs(63,"div",8),ru(64,"\n "),vs(65,"div",9),ru(66),Wl(67,"translate"),_s(),ru(68,"\n "),vs(69,"div",10),ru(70),Wl(71,"amount"),_s(),ru(72,"\n "),_s(),ru(73,"\n "),_s(),ru(74,"\n "),vs(75,"div",13),ru(76,"\n "),vs(77,"div",8),ru(78,"\n "),vs(79,"div",9),ru(80),Wl(81,"translate"),_s(),ru(82,"\n "),vs(83,"div",10),ru(84),Wl(85,"amount"),_s(),ru(86,"\n "),_s(),ru(87,"\n "),vs(88,"div",8),ru(89,"\n "),vs(90,"div",9),ru(91),Wl(92,"translate"),_s(),ru(93,"\n "),vs(94,"div",10),ru(95),Wl(96,"amount"),_s(),ru(97,"\n "),_s(),ru(98,"\n "),_s(),ru(99,"\n "),_s(),ru(100,"\n "),_s(),ru(101,"\n "),_s(),ru(102,"\n "),_s(),ru(103,"\n "),_s()),2&e){var n=Ys();Ya(12),au(Vl(13,14,"blockchain.blocks-label")),Ya(4),au(Vl(17,16,n.block.seq)),Ya(7),au(Vl(24,18,"blockchain.time-label")),Ya(4),au(Vl(28,20,n.block.timestamp)),Ya(7),au(Vl(35,22,"blockchain.hash-label")),Ya(4),au(n.block.hash),Ya(17),au(Ul(56,24,"blockchain.current-supply-label",Il(52,Mj,n.appService.coinName))),Ya(4),au(zl(60,27,n.coinSupply.currentSupply,!0,"first")),Ya(7),au(Ul(67,31,"blockchain.total-supply-label",Il(54,Mj,n.appService.coinName))),Ya(4),au(zl(71,34,n.coinSupply.totalSupply,!0,"first")),Ya(10),au(Ul(81,38,"blockchain.current-coinhour-supply-label",Il(56,Sj,n.appService.hoursName))),Ya(4),au(zl(85,41,n.coinSupply.currentCoinhourSupply,!1,"first")),Ya(7),au(Ul(92,45,"blockchain.total-coinhour-supply-label",Il(58,Sj,n.appService.hoursName))),Ya(4),au(zl(96,48,n.coinSupply.totalCoinhourSupply,!1,"first"))}}var Lj=function(){function e(e,t){this.appService=e,this.blockchainService=t,this.updatePeriod=5e3,this.errorUpdatePeriod=2e3}return e.prototype.ngOnInit=function(){this.startDataRefreshSubscription(0)},e.prototype.startDataRefreshSubscription=function(e){var t=this;this.removeOperationSubscription(),this.operationSubscription=bm(0).pipe(EM(e),ue(function(){return t.blockchainService.getLastBlock()}),ue(function(e){return t.block=e,t.blockchainService.getCoinSupply()})).subscribe(function(e){t.coinSupply=e,t.startDataRefreshSubscription(t.updatePeriod)},function(){return t.startDataRefreshSubscription(t.errorUpdatePeriod)})},e.prototype.ngOnDestroy=function(){this.removeOperationSubscription()},e.prototype.removeOperationSubscription=function(){this.operationSubscription&&this.operationSubscription.unsubscribe()},e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(yO))},e.\u0275cmp=ft({type:e,selectors:[["app-blockchain"]],decls:13,vars:5,consts:[[3,"headline"],[4,"ngIf"],["class","container",4,"ngIf"],[1,"final-element"],[1,"container"],[1,"row","-wrapper"],[1,"col-md-6","pl-0"],[1,"paper"],[1,"-item"],[1,"-key"],[1,"break-all"],[1,"col-md-6","pr-0"],[1,"row"],[1,"col-md-6"]],template:function(e,t){1&e&&(vs(0,"div"),ru(1,"\n "),ys(2,"app-header",0),Wl(3,"translate"),ru(4,"\n\n "),hs(5,kj,1,0,"app-loading-content",1),ru(6,"\n\n "),hs(7,Cj,104,60,"div",2),ru(8,"\n "),ru(9,"\n "),ys(10,"div",3),ru(11,"\n"),_s(),ru(12,"\n")),2&e&&(Ya(2),ms("headline",Vl(3,3,"blockchain.title")),Ya(3),ms("ngIf",!(t.block&&t.coinSupply)),Ya(2),ms("ngIf",t.block&&t.coinSupply))},directives:[_A,lh,aF],pipes:[hM,Mh,WH,NS],styles:[".-wrapper[_ngcontent-%COMP%]{margin:30px}.paper[_ngcontent-%COMP%]{margin:0}.-item[_ngcontent-%COMP%]:not(:last-child){margin-bottom:20px}.-item[_ngcontent-%COMP%] .-key[_ngcontent-%COMP%]{color:rgba(30,34,39,.5);margin-bottom:5px}"]}),e}(),xj=function(){function e(e,t){this.data=e,this.dialogRef=t}return e.openDialog=function(t,n){var i=new wk;return i.data=n,i.autoFocus=!0,i.width=jM.mediumModalWidth,t.open(e,i)},e.\u0275fac=function(t){return new(t||e)(ps(Tk),ps(Lk))},e.\u0275cmp=ft({type:e,selectors:[["app-seed-modal"]],decls:21,vars:11,consts:[[3,"headline","dialog"],[1,"form-field"],["for","seed"],["id","seed","readonly",""],[1,"-buttons"],[1,"primary-button",3,"action"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),vs(3,"div",1),ru(4,"\n "),vs(5,"label",2),ru(6),Wl(7,"translate"),_s(),ru(8,"\n "),vs(9,"textarea",3),ru(10),_s(),ru(11,"\n "),_s(),ru(12,"\n "),vs(13,"div",4),ru(14,"\n "),vs(15,"app-button",5),xs("action",function(){return t.dialogRef.close()}),ru(16),Wl(17,"translate"),_s(),ru(18,"\n "),_s(),ru(19,"\n"),_s(),ru(20,"\n")),2&e&&(ms("headline",Vl(1,5,"backup.seed-modal-window.title"))("dialog",t.dialogRef),Ya(6),au(Vl(7,7,"backup.seed-modal-window.seed-label")),Ya(4),au(t.data),Ya(6),ou("\n ",Vl(17,9,"common.close-button"),"\n "))},directives:[jk,ZC],pipes:[hM],styles:[""]}),e}();function Tj(e,t){1&e&&ys(0,"app-loading-content",9),2&e&&ms("isLoading",!1)}function Dj(e,t){if(1&e){var n=Ms();vs(0,"div",23),xs("click",function(){on(n);var e=Ys().$implicit;return Ys(2).showSeed(e)}),ru(1),Wl(2,"translate"),_s()}2&e&&(Ya(1),au(Vl(2,1,"backup.show-seed-button")))}function Oj(e,t){1&e&&(vs(0,"mat-icon",25),Wl(1,"translate"),ru(2,"help"),_s()),2&e&&ms("matTooltip",Vl(1,1,"backup.unencrypted-info"))}function Ej(e,t){1&e&&(vs(0,"mat-icon",25),Wl(1,"translate"),ru(2,"help"),_s()),2&e&&ms("matTooltip",Vl(1,1,"backup.hw-wallet-info"))}function Yj(e,t){if(1&e&&(vs(0,"div"),ru(1,"\n "),hs(2,Oj,3,3,"mat-icon",24),ru(3,"\n "),hs(4,Ej,3,3,"mat-icon",24),ru(5),Wl(6,"translate"),_s()),2&e){var n=Ys().$implicit;Ya(2),ms("ngIf",!n.encrypted&&!n.isHardware),Ya(2),ms("ngIf",n.isHardware),Ya(1),ou("\n ",Vl(6,3,"backup.show-seed-button"),"\n ")}}function Pj(e,t){if(1&e){var n=Ms();vs(0,"div",17),ru(1,"\n "),vs(2,"div",18),ru(3),_s(),ru(4,"\n "),vs(5,"div",13),ru(6),_s(),ru(7,"\n "),ru(8,"\n "),vs(9,"div",19),ru(10,"\n "),vs(11,"div",20),xs("click",function(){var e=on(n).$implicit;return Ys(2).saveAddresses(e)}),ru(12),Wl(13,"translate"),_s(),ru(14,"\n "),hs(15,Dj,3,3,"div",21),ru(16,"\n "),hs(17,Yj,7,5,"div",22),ru(18,"\n "),_s(),ru(19,"\n "),_s()}if(2&e){var i=t.$implicit;Ya(2),ls("title",i.label),Ya(1),au(i.label),Ya(3),au(i.id),Ya(6),au(Vl(13,6,"backup.save-addresses-button")),Ya(3),ms("ngIf",i.encrypted&&!i.isHardware),Ya(2),ms("ngIf",!i.encrypted||i.isHardware)}}function Aj(e,t){if(1&e&&(vs(0,"div",10),ru(1,"\n "),vs(2,"div",11),ru(3,"\n "),vs(4,"div",12),ru(5),Wl(6,"translate"),_s(),ru(7,"\n "),vs(8,"div",13),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),ys(12,"div",14),ru(13,"\n "),_s(),ru(14,"\n "),vs(15,"div",15),ru(16,"\n "),hs(17,Pj,20,8,"div",16),ru(18,"\n "),_s(),ru(19,"\n "),_s()),2&e){var n=Ys();Ya(5),au(Vl(6,3,"backup.wallet-table-label")),Ya(4),au(Vl(10,5,"backup.filename-table-label")),Ya(8),ms("ngForOf",n.wallets)}}var Ij=function(){function e(e,t,n,i){this.dialog=e,this.walletsAndAddressesService=t,this.softwareWalletService=n,this.msgBarService=i,this.wallets=[]}return e.prototype.ngOnInit=function(){var e=this;this.folderSubscription=this.walletsAndAddressesService.folder().subscribe(function(t){e.folder=t},function(t){e.folder="?",e.msgBarService.showError(t)}),this.walletSubscription=this.walletsAndAddressesService.allWallets.subscribe(function(t){e.wallets=t})},e.prototype.ngOnDestroy=function(){this.folderSubscription.unsubscribe(),this.walletSubscription.unsubscribe()},e.prototype.saveAddresses=function(e){var t="";e.addresses.forEach(function(e){t+=e.address+"\n"}),t=t.substr(0,t.length-1);var n=new Blob([t],{type:"text/csv;charset=utf-8;"}),i=document.createElement("a");if(void 0!==i.download){var r=URL.createObjectURL(n);i.setAttribute("href",r),i.setAttribute("download",e.label+".csv"),i.style.visibility="hidden",document.body.appendChild(i),i.click(),document.body.removeChild(i)}else this.msgBarService.showError("backup.not-compatible-error")},e.prototype.showSeed=function(e){var t=this;LA.openDialog(this.dialog,{wallet:e}).componentInstance.passwordSubmit.subscribe(function(n){t.softwareWalletService.getWalletSeed(e,n.password).subscribe(function(e){n.close(),xj.openDialog(t.dialog,e)},function(e){return n.error(e)})})},e.\u0275fac=function(t){return new(t||e)(ps(Pk),ps(AL),ps(OE),ps(dL))},e.\u0275cmp=ft({type:e,selectors:[["app-backup"]],decls:35,vars:15,consts:[[3,"headline"],[1,"container"],[1,"paper","small-padding","mb-0"],[1,"mt-0"],[1,"grey-text","mb-0"],[3,"innerHtml"],["noDataText","backup.no-wallets",3,"isLoading",4,"ngIf"],["class","-table",4,"ngIf"],[1,"final-element"],["noDataText","backup.no-wallets",3,"isLoading"],[1,"-table"],[1,"-headers"],[1,"-width-250"],[1,"-width-150"],[1,"-flex-fill"],[1,"-body"],["class","-row",4,"ngFor","ngForOf"],[1,"-row"],[1,"-width-250","text-truncate"],[1,"-flex-fill","text-right"],[1,"link","address-link",3,"click"],["class","link",3,"click",4,"ngIf"],[4,"ngIf"],[1,"link",3,"click"],["class","help-icon",3,"matTooltip",4,"ngIf"],[1,"help-icon",3,"matTooltip"]],template:function(e,t){1&e&&(vs(0,"div"),ru(1,"\n "),ys(2,"app-header",0),Wl(3,"translate"),ru(4,"\n\n "),ru(5,"\n "),vs(6,"div",1),ru(7,"\n "),vs(8,"div",2),ru(9,"\n "),vs(10,"p",3),ru(11),Wl(12,"translate"),_s(),ru(13,"\n "),vs(14,"p"),ru(15),Wl(16,"translate"),_s(),ru(17,"\n "),vs(18,"p",4),ru(19,"\n "),ys(20,"small",5),Wl(21,"translate"),ru(22,"\n "),_s(),ru(23,"\n "),_s(),ru(24,"\n\n "),hs(25,Tj,1,1,"app-loading-content",6),ru(26,"\n\n "),ru(27,"\n "),hs(28,Aj,20,7,"div",7),ru(29,"\n "),_s(),ru(30,"\n "),ru(31,"\n "),ys(32,"div",8),ru(33,"\n"),_s(),ru(34,"\n")),2&e&&(Ya(2),ms("headline",Vl(3,7,"backup.title")),Ya(9),su("",Vl(12,9,"backup.wallet-directory")," ",t.folder,""),Ya(4),au(Vl(16,11,"backup.seed-warning")),Ya(5),ms("innerHtml",Vl(21,13,"backup.desc"),Yr),Ya(5),ms("ngIf",0===t.wallets.length),Ya(3),ms("ngIf",t.wallets.length>0))},directives:[_A,lh,aF,sh,WC,YO],pipes:[hM],styles:[".address-link[_ngcontent-%COMP%]{margin-bottom:2px}"]}),e}(),Rj=function(){function e(e){this.translateService=e}return e.prototype.transform=function(e){var t=RA().unix()-e;return t<60?this.translateService.instant("time-from-now.few-seconds"):t<120?this.translateService.instant("time-from-now.minute"):t<3600?this.translateService.instant("time-from-now.minutes",{time:Math.floor(t/60)}):t<7200?this.translateService.instant("time-from-now.hour"):t<86400?this.translateService.instant("time-from-now.hours",{time:Math.floor(t/3600)}):t<172800?this.translateService.instant("time-from-now.day"):this.translateService.instant("time-from-now.days",{time:Math.floor(t/86400)})},e.\u0275fac=function(t){return new(t||e)(ps(dM,16))},e.\u0275pipe=wt({name:"dateFromNow",type:e,pure:!1}),e}();function Fj(e,t){1&e&&ys(0,"app-loading-content",4),2&e&&ms("isLoading",!Ys().peers)}function Hj(e,t){1&e&&(ys(0,"img",27),Wl(1,"translate")),2&e&&ms("matTooltip",Vl(1,1,"network.out-help"))}function jj(e,t){1&e&&(ys(0,"img",28),Wl(1,"translate")),2&e&&ms("matTooltip",Vl(1,1,"network.in-help"))}function Nj(e,t){if(1&e&&(vs(0,"div",16),ru(1,"\n "),vs(2,"div",17),ru(3,"\n "),hs(4,Hj,2,3,"img",18),ru(5,"\n "),hs(6,jj,2,3,"img",19),ru(7,"\n "),_s(),ru(8,"\n "),vs(9,"div",20),ru(10),vs(11,"span",21),ru(12),_s(),ru(13,"\n "),_s(),ru(14,"\n "),vs(15,"div",22),ru(16),Wl(17,"translate"),_s(),ru(18,"\n "),vs(19,"div",23),ru(20),_s(),ru(21,"\n "),vs(22,"div",24),ru(23,"\n "),vs(24,"div",25),ru(25,"\n "),vs(26,"mat-icon",26),Wl(27,"translate"),ru(28,"keyboard_arrow_up"),_s(),ru(29),Wl(30,"dateFromNow"),_s(),ru(31,"\n "),vs(32,"div",25),ru(33,"\n "),vs(34,"mat-icon",26),Wl(35,"translate"),ru(36,"keyboard_arrow_down"),_s(),ru(37),Wl(38,"dateFromNow"),_s(),ru(39,"\n "),_s(),ru(40,"\n "),_s()),2&e){var n=t.$implicit;Ya(4),ms("ngIf",n.outgoing),Ya(2),ms("ngIf",!n.outgoing),Ya(4),ou("\n ",n.address.split(":")[0],""),Ya(2),ou(":",n.listenPort,""),Ya(4),au(Vl(17,10,"network.sources."+n.source)),Ya(4),au(n.height),Ya(6),ms("matTooltip",Vl(27,12,"network.last-sent-help")),Ya(3),ou("\n ",Vl(30,14,n.lastSent),"\n "),Ya(5),ms("matTooltip",Vl(35,16,"network.last-received-help")),Ya(3),ou("\n ",Vl(38,18,n.lastReceived),"\n ")}}function Bj(e,t){if(1&e&&(vs(0,"div",5),ru(1,"\n "),vs(2,"div",6),ru(3,"\n "),vs(4,"div",7),ru(5,"\n "),ys(6,"div",8),ru(7,"\n "),vs(8,"div",9),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),vs(12,"div",10),ru(13),Wl(14,"translate"),_s(),ru(15,"\n "),vs(16,"div",11),ru(17),Wl(18,"translate"),_s(),ru(19,"\n "),vs(20,"div",12),ru(21),Wl(22,"translate"),_s(),ru(23,"\n "),vs(24,"div",13),ru(25),Wl(26,"translate"),_s(),ru(27,"\n "),_s(),ru(28,"\n "),vs(29,"div",14),ru(30,"\n "),hs(31,Nj,41,20,"div",15),ru(32,"\n "),_s(),ru(33,"\n "),_s(),ru(34,"\n "),_s()),2&e){var n=Ys();Ya(9),au(Vl(10,6,"network.peer-small-table-label")),Ya(4),au(Vl(14,8,"network.source-small-table-label")),Ya(4),au(Vl(18,10,"network.block-height-small-table-label")),Ya(4),au(Vl(22,12,"network.block-height-short-small-table-label")),Ya(4),au(Vl(26,14,"network.last-seen-small-table-label")),Ya(6),ms("ngForOf",n.peers)}}var Wj=function(){function e(e){this.networkService=e}return e.prototype.ngOnInit=function(){var e=this;this.subscription=this.networkService.connections().subscribe(function(t){return e.peers=t})},e.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},e.\u0275fac=function(t){return new(t||e)(ps(lP))},e.\u0275cmp=ft({type:e,selectors:[["app-network"]],decls:13,vars:5,consts:[[3,"headline"],["noDataText","network.error-no-connections",3,"isLoading",4,"ngIf"],["class","container",4,"ngIf"],[1,"final-element"],["noDataText","network.error-no-connections",3,"isLoading"],[1,"container"],[1,"-table"],[1,"-headers"],[1,"-direction-cell"],[1,"-address-cell"],[1,"-flex-fill"],[1,"d-none","d-lg-block","-block-cell"],[1,"d-lg-none","-block-cell"],[1,"-last-seen-cell"],[1,"-body"],["class","-row",4,"ngFor","ngForOf"],[1,"-row"],[1,"-direction-cell","-direction-container"],["src","assets/img/sent-blue.png",3,"matTooltip",4,"ngIf"],["src","assets/img/received-blue.png",3,"matTooltip",4,"ngIf"],[1,"-address-cell","break-all"],[1,"grey-text"],[1,"-flex-fill","grey-text"],[1,"-block-cell","break-all"],[1,"-last-seen-cell","-last-seen-container","grey-text"],[1,"text-truncate"],[3,"matTooltip"],["src","assets/img/sent-blue.png",3,"matTooltip"],["src","assets/img/received-blue.png",3,"matTooltip"]],template:function(e,t){1&e&&(vs(0,"div"),ru(1,"\n "),ys(2,"app-header",0),Wl(3,"translate"),ru(4,"\n\n "),hs(5,Fj,1,1,"app-loading-content",1),ru(6,"\n\n "),hs(7,Bj,35,16,"div",2),ru(8,"\n "),ru(9,"\n "),ys(10,"div",3),ru(11,"\n"),_s(),ru(12,"\n")),2&e&&(Ya(2),ms("headline",Vl(3,3,"network.title")),Ya(3),ms("ngIf",!t.peers||0===t.peers.length),Ya(2),ms("ngIf",t.peers&&t.peers.length>0))},directives:[_A,lh,aF,sh,WC,YO],pipes:[hM,Rj],styles:[".-direction-cell[_ngcontent-%COMP%]{width:72px;flex-shrink:0}.-direction-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.-direction-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:32px}.-last-seen-cell[_ngcontent-%COMP%]{width:180px;flex-shrink:0}.-last-seen-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;font-size:11px;line-height:1;justify-content:center}.-last-seen-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:12px;display:inline;vertical-align:middle;padding-right:5px}.-address-cell[_ngcontent-%COMP%]{width:200px;flex-shrink:0;padding-left:0!important}.-block-cell[_ngcontent-%COMP%]{width:150px;flex-shrink:0;text-align:right}@media (max-width:991px){.-row[_ngcontent-%COMP%]{font-size:12px!important}.-address-cell[_ngcontent-%COMP%]{width:160px!important}.-block-cell[_ngcontent-%COMP%]{width:100px}}"]}),e}(),Vj=function(){function e(){this.statuses=["done","waiting_confirm","waiting_deposit","waiting_send"]}return e.prototype.transform=function(e){return this.statuses.find(function(t){return t===e})?"teller."+e.replace("_","-"):"teller.unknown"},e.\u0275fac=function(t){return new(t||e)},e.\u0275pipe=wt({name:"tellerStatus",type:e,pure:!0}),e}(),Uj=["button"];function zj(e,t){if(1&e&&(vs(0,"option",16),ru(1),vs(2,"span",17),ru(3),Wl(4,"amount"),_s(),ru(5,"\n "),_s()),2&e){var n=t.$implicit;ms("value",n.id),Ya(1),ou("\n ",n.label," - "),Ya(2),au(Vl(4,3,n.coins))}}var qj=function(e){return{rate:e}};function Gj(e,t){if(1&e&&(vs(0,"div",5),ru(1,"\n "),vs(2,"div",6),ru(3,"\n "),vs(4,"span",7),ru(5,"2"),_s(),ru(6,"\n "),_s(),ru(7,"\n "),vs(8,"div",8),ru(9,"\n "),vs(10,"h3"),ru(11),Wl(12,"translate"),_s(),ru(13,"\n "),vs(14,"p"),ru(15),Wl(16,"translate"),_s(),ru(17,"\n "),vs(18,"span",18),ru(19),_s(),ru(20,"\n "),vs(21,"span",14),ru(22),Wl(23,"translate"),_s(),ru(24,"\n "),_s(),ru(25,"\n "),_s()),2&e){var n=Ys(2);Ya(11),au(Vl(12,4,"buy.send")),Ya(4),au(Ul(16,6,"buy.send-desc",Il(11,qj,n.config.sky_btc_exchange_rate))),Ya(4),ou("\n ",n.order.deposit_address,"\n "),Ya(3),au(Vl(23,9,"buy.fraction-warning"))}}function Kj(e,t){if(1&e){var n=Ms();vs(0,"div",5),ru(1,"\n "),vs(2,"div",6),ru(3,"\n "),vs(4,"span",7),ru(5,"3"),_s(),ru(6,"\n "),_s(),ru(7,"\n "),vs(8,"div",8),ru(9,"\n "),vs(10,"h3"),ru(11),Wl(12,"translate"),_s(),ru(13,"\n "),vs(14,"p"),ru(15),Wl(16,"translate"),_s(),ru(17,"\n "),vs(18,"span",19),ru(19),Wl(20,"translate"),Wl(21,"translate"),Wl(22,"tellerStatus"),_s(),ru(23,"\n "),vs(24,"app-button",20,21),xs("action",function(){return on(n),Ys(2).checkStatus()}),ru(26),Wl(27,"translate"),_s(),ru(28,"\n "),vs(29,"app-button",22,21),xs("action",function(){return on(n),Ys(2).removeOrder()}),ru(31),Wl(32,"translate"),_s(),ru(33,"\n "),_s(),ru(34,"\n "),_s()}if(2&e){var i=Ys(2);Ya(11),au(Vl(12,6,"buy.receive")),Ya(4),au(Vl(16,8,"buy.receive-desc")),Ya(4),su("\n ",Vl(20,10,"buy.status-button")," ",Vl(21,12,Vl(22,14,i.order.status)),"\n "),Ya(7),ou("\n ",Vl(27,16,"buy.check-status-button"),"\n "),Ya(5),ou("\n ",Vl(32,18,"buy.new-order-button"),"\n ")}}function Jj(e,t){if(1&e&&(vs(0,"div",4),ru(1,"\n "),vs(2,"div",5),ru(3,"\n "),vs(4,"div",6),ru(5,"\n "),vs(6,"span",7),ru(7,"1"),_s(),ru(8,"\n "),_s(),ru(9,"\n "),vs(10,"div",8),ru(11,"\n "),vs(12,"h3"),ru(13),Wl(14,"translate"),_s(),ru(15,"\n "),vs(16,"p"),ru(17),Wl(18,"translate"),_s(),ru(19,"\n "),vs(20,"div",9),ru(21,"\n "),vs(22,"div",10),ru(23,"\n "),vs(24,"select",11),ru(25,"\n "),vs(26,"option",12),ru(27),Wl(28,"translate"),_s(),ru(29,"\n "),hs(30,zj,6,5,"option",13),ru(31,"\n "),_s(),ru(32,"\n "),_s(),ru(33,"\n "),_s(),ru(34,"\n "),vs(35,"span",14),ru(36),Wl(37,"translate"),_s(),ru(38,"\n "),_s(),ru(39,"\n "),_s(),ru(40,"\n "),hs(41,Gj,26,13,"div",15),ru(42,"\n "),hs(43,Kj,35,20,"div",15),ru(44,"\n "),_s()),2&e){var n=Ys();ms("formGroup",n.form),Ya(13),au(Vl(14,8,"buy.deposit-location")),Ya(4),au(Vl(18,10,"buy.deposit-location-desc")),Ya(10),au(Vl(28,12,"buy.make-choice")),Ya(3),ms("ngForOf",n.wallets),Ya(6),au(Vl(37,14,"buy.wallets-desc")),Ya(5),ms("ngIf",n.order),Ya(2),ms("ngIf",n.order)}}var Zj=function(){function e(e,t,n,i){this.formBuilder=e,this.purchaseService=t,this.msgBarService=n,this.walletsAndAddressesService=i,this.subscriptionsGroup=[]}return e.prototype.ngOnInit=function(){this.initForm(),this.loadData()},e.prototype.ngOnDestroy=function(){this.subscriptionsGroup.forEach(function(e){return e.unsubscribe()})},e.prototype.checkStatus=function(){var e=this;this.button.setLoading(),this.purchaseService.scan(this.order.recipient_address).subscribe(function(t){e.button.setSuccess(),e.order.status=t.status},function(t){return e.button.resetState()})},e.prototype.removeOrder=function(){window.localStorage.removeItem("purchaseOrder"),this.order=null},e.prototype.initForm=function(){var e=this;this.form=this.formBuilder.group({wallet:["",Yf.required]}),this.subscriptionsGroup.push(this.form.get("wallet").valueChanges.subscribe(function(t){var n=e.wallets.find(function(e){return e.id===t});console.log("changing wallet value",t),e.purchaseService.generate(n).subscribe(function(t){return e.saveData(t)},function(t){return e.msgBarService.showError(t.toString())})}))},e.prototype.loadConfig=function(){var e=this;this.purchaseService.config().pipe(zm(function(e){return!!e&&!!e.sky_btc_exchange_rate}),eS()).subscribe(function(t){return e.config=t})},e.prototype.loadData=function(){var e=this;this.loadConfig(),this.loadOrder(),this.subscriptionsGroup.push(this.walletsAndAddressesService.allWallets.subscribe(function(t){e.wallets=t,e.order&&e.form.get("wallet").setValue(e.order.filename,{emitEvent:!1})}))},e.prototype.loadOrder=function(){var e=JSON.parse(window.localStorage.getItem("purchaseOrder"));e&&(this.order=e,this.updateOrder())},e.prototype.saveData=function(e){this.order=e,window.localStorage.setItem("purchaseOrder",JSON.stringify(e))},e.prototype.updateOrder=function(){var e=this;this.purchaseService.scan(this.order.recipient_address).pipe(eS()).subscribe(function(t){return e.order.status=t.status},function(e){return console.log(e)})},e.\u0275fac=function(t){return new(t||e)(ps(fm),ps(cP),ps(dL),ps(AL))},e.\u0275cmp=ft({type:e,selectors:[["app-buy"]],viewQuery:function(e,t){var n;1&e&&lc(Uj,5),2&e&&uc(n=dc())&&(t.button=n.first)},decls:13,vars:1,consts:[[1,"-background-container"],[1,"container"],["class","-paper",3,"formGroup",4,"ngIf"],["src","../../../../assets/img/otc-background.jpg",1,"-background-image"],[1,"-paper",3,"formGroup"],[1,"-step"],[1,"-number"],[1,"primary-gradient-background"],[1,"-instructions","flex-fill"],[1,"form-field"],[1,"-select"],["formControlName","wallet","id","wallet","required","",1,"-wallet"],["disabled","","selected",""],[3,"value",4,"ngFor","ngForOf"],[1,"-subtitle"],["class","-step",4,"ngIf"],[3,"value"],[1,"-coins"],[1,"-address"],[1,"-status"],[1,"primary-button",3,"action"],["button",""],[3,"action"]],template:function(e,t){1&e&&(ru(0,"\n"),ys(1,"app-header"),ru(2,"\n"),vs(3,"div",0),ru(4,"\n "),vs(5,"div",1),ru(6,"\n "),hs(7,Jj,45,16,"div",2),ru(8,"\n "),ys(9,"img",3),ru(10,"\n "),_s(),ru(11,"\n"),_s(),ru(12,"\n")),2&e&&(Ya(7),ms("ngIf",t.config))},directives:[_A,lh,ap,jp,Jp,rp,qp,sm,Zp,em,sh,ZC],pipes:[hM,NS,Vj],styles:[".-background-container[_ngcontent-%COMP%]{background-color:#fbfbfb;padding-top:30px;max-width:100%;min-height:calc(100% - 190px);overflow:hidden;position:relative}.-background-image[_ngcontent-%COMP%]{display:none}@media (min-width:768px){.-background-image[_ngcontent-%COMP%]{display:block;left:50%;width:80%;position:absolute;top:0}}@media (min-width:992px){.-background-image[_ngcontent-%COMP%]{left:40%;width:90%;max-width:850px}}@media (min-width:1200px){.-background-image[_ngcontent-%COMP%]{left:40%;width:80%;max-width:850px}}.-paper[_ngcontent-%COMP%]{background-color:#fbfbfb;border-radius:10px;box-shadow:0 0 2px 2px rgba(0,0,0,.01),1px 1px 2px 2px rgba(0,0,0,.01);padding:30px;position:relative;margin-top:30px;max-width:540px;z-index:5}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%]{display:flex;margin-bottom:30px}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-number[_ngcontent-%COMP%]{width:60px}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-number[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{border-radius:50%;color:#fff;display:inline-block;font-size:16px;font-weight:700;height:40px;line-height:46px;text-align:center;width:40px}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%]{flex:1 1}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%] button{margin-left:0}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{color:#1e2227;font-size:16px;font-weight:700;margin:0;line-height:46px}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:rgba(30,34,39,.8);font-size:14px;font-weight:300;line-height:20px;margin-top:0}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%], .-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%] .-status[_ngcontent-%COMP%]{background-color:#fff;border:2px solid rgba(0,0,0,.05);border-radius:6px;box-sizing:border-box;color:rgba(30,34,39,.8);display:block;font-size:14px;line-height:20px;margin-bottom:15px;padding:10px;width:100%}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%] .-coins[_ngcontent-%COMP%]{color:#0072ff}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%] .form-field[_ngcontent-%COMP%]{margin-bottom:15px}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%] .-subtitle[_ngcontent-%COMP%]{color:#8c8e90;font-size:12px;line-height:18px;font-weight:300;opacity:.8}.-paper[_ngcontent-%COMP%] .-step[_ngcontent-%COMP%] .-instructions[_ngcontent-%COMP%] .-wallet[_ngcontent-%COMP%]{color:rgba(30,34,39,.8);font-size:14px}"]}),e}(),$j=function(){function e(e,t){this.transaction=e,this.dialogRef=t}return e.openDialog=function(t,n){var i=new wk;return i.data=n,i.autoFocus=!1,i.width="800px",t.open(e,i)},e.prototype.closePopup=function(){this.dialogRef.close()},e.\u0275fac=function(t){return new(t||e)(ps(Tk),ps(Lk))},e.\u0275cmp=ft({type:e,selectors:[["app-transaction-detail"]],decls:6,vars:6,consts:[[3,"headline","dialog"],[3,"transaction","isPreview"]],template:function(e,t){1&e&&(vs(0,"app-modal",0),Wl(1,"translate"),ru(2,"\n "),vs(3,"app-transaction-info",1),ru(4,"\n "),_s(),ru(5,"\n"),_s()),2&e&&(ms("headline",Vl(1,4,"history.tx-detail-title"))("dialog",t.dialogRef),Ya(3),ms("transaction",t.transaction)("isPreview",!1))},directives:[jk,rj],pipes:[hM],styles:["app-transaction-info[_ngcontent-%COMP%]{color:#1e2227}"]}),e}();function Xj(e,t){1&e&&(vs(0,"mat-option",15),ru(1),Wl(2,"translate"),_s()),2&e&&(ms("value",Ys().$implicit),Ya(1),ou("\n ",Vl(2,2,"history.all-addresses"),"\n "))}function Qj(e,t){if(1&e&&(vs(0,"mat-option",16),ru(1),Wl(2,"amount"),Wl(3,"amount"),_s()),2&e){var n=t.$implicit,i=Ys().$implicit;ms("value",n)("disabled",i.allAddressesSelected),Ya(1),uu("\n ",n.address," - ",Vl(2,5,n.coins),"\n (",Ul(3,7,n.hours,!1),")\n ")}}function eN(e,t){if(1&e&&(vs(0,"mat-optgroup",12),Wl(1,"amount"),Wl(2,"amount"),ru(3,"\n "),hs(4,Xj,3,4,"mat-option",13),ru(5,"\n "),hs(6,Qj,4,10,"mat-option",14),ru(7,"\n "),_s()),2&e){var n=t.$implicit;Hs("label","\n ",n.label," - ",Vl(1,5,n.coins),"\n (",Ul(2,7,n.hours,!1),")\n "),Ya(4),ms("ngIf",n.addresses.length>1),Ya(2),ms("ngForOf",n.addresses)}}function tN(e,t){1&e&&(vs(0,"span"),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"history.filter")))}function nN(e,t){1&e&&(vs(0,"span"),ru(1),Wl(2,"translate"),_s()),2&e&&(Ya(1),au(Vl(2,1,"history.filters")))}function iN(e,t){if(1&e&&(vs(0,"span"),ru(1),_s()),2&e){var n=Ys(2).$implicit;Ya(1),au(n.label)}}function rN(e,t){if(1&e&&(vs(0,"span"),ru(1),_s()),2&e){var n=Ys(2).$implicit;Ya(1),au(n.address)}}function aN(e,t){if(1&e&&(vs(0,"div",18),ru(1,"\n "),hs(2,iN,2,1,"span",9),ru(3,"\n "),hs(4,rN,2,1,"span",9),ru(5),Wl(6,"amount"),Wl(7,"amount"),_s()),2&e){var n=Ys().$implicit;Ya(2),ms("ngIf",n.label),Ya(2),ms("ngIf",!n.label),Ya(1),su("\n - ",Vl(6,4,n.coins),"\n (",Ul(7,6,n.hours,!1),")\n ")}}function oN(e,t){if(1&e&&(bs(0),ru(1,"\n "),hs(2,aN,8,9,"div",17),ru(3,"\n "),ws()),2&e){var n=t.$implicit;Ya(2),ms("ngIf",n.label||!n.showingWholeWallet)}}function sN(e,t){if(1&e){var n=Ms();vs(0,"img",19),xs("click",function(){return on(n),Ys(2).removeFilters()}),_s()}}var uN=function(e){return{"bottom-line":e}};function lN(e,t){if(1&e&&(vs(0,"div",6),ru(1,"\n "),vs(2,"mat-select",7),Wl(3,"translate"),ru(4,"\n "),ru(5,"\n "),hs(6,eN,8,10,"mat-optgroup",8),ru(7,"\n "),ru(8,"\n "),vs(9,"mat-select-trigger"),ru(10,"\n "),hs(11,tN,3,3,"span",9),ru(12,"\n "),hs(13,nN,3,3,"span",9),ru(14,"\n "),hs(15,oN,4,1,"ng-container",10),ru(16,"\n "),_s(),ru(17,"\n "),_s(),ru(18,"\n "),hs(19,sN,1,0,"img",11),ru(20,"\n "),_s()),2&e){var n=Ys();ms("formGroup",n.form)("ngClass",Il(10,uN,!n.transactions||0===n.transactions.length)),Ya(2),ms("placeholder",Vl(3,8,"history.no-filter")),Ya(4),ms("ngForOf",n.wallets),Ya(5),ms("ngIf",1===n.form.get("filter").value.length),Ya(2),ms("ngIf",n.form.get("filter").value.length>1),Ya(2),ms("ngForOf",n.form.get("filter").value),Ya(4),ms("ngIf",n.form.get("filter").value.length>0)}}function cN(e,t){if(1&e&&ys(0,"app-loading-content",20),2&e){var n=Ys();ms("isLoading",!n.transactionsLoaded)("noDataText",n.allTransactions&&0!==n.allTransactions.length?"history.no-txs-filter":"history.no-txs")}}var dN=function(e){return{coinName:e}};function hN(e,t){if(1&e&&(vs(0,"h4"),ru(1),Wl(2,"translate"),vs(3,"span",31),ru(4),Wl(5,"dateTime"),_s(),ru(6,"\n "),_s()),2&e){var n=Ys(2).$implicit,i=Ys(2);Ya(1),ou("\n ",Ul(2,2,"history.sent",Il(7,dN,i.appService.coinName)),"\n "),Ya(3),au(Vl(5,5,n.timestamp))}}function fN(e,t){if(1&e&&(vs(0,"h4"),ru(1),Wl(2,"translate"),vs(3,"span",32),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()),2&e){var n=Ys(4);Ya(1),ou("\n ",Ul(2,2,"history.sending",Il(7,dN,n.appService.coinName)),"\n "),Ya(3),au(Vl(5,5,"history.pending-indication"))}}function pN(e,t){if(1&e&&(vs(0,"h4"),ru(1),Wl(2,"translate"),vs(3,"span",31),ru(4),Wl(5,"dateTime"),_s(),ru(6,"\n "),_s()),2&e){var n=Ys(2).$implicit,i=Ys(2);Ya(1),ou("\n ",Ul(2,2,"history.received",Il(7,dN,i.appService.coinName)),"\n "),Ya(3),au(Vl(5,5,n.timestamp))}}function mN(e,t){if(1&e&&(vs(0,"h4"),ru(1),Wl(2,"translate"),vs(3,"span",32),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()),2&e){var n=Ys(4);Ya(1),ou("\n ",Ul(2,2,"history.receiving",Il(7,dN,n.appService.coinName)),"\n "),Ya(3),au(Vl(5,5,"history.pending-indication"))}}function gN(e,t){if(1&e&&(bs(0),ru(1,"\n "),hs(2,hN,7,9,"h4",9),ru(3,"\n "),hs(4,fN,7,9,"h4",9),ru(5,"\n "),hs(6,pN,7,9,"h4",9),ru(7,"\n "),hs(8,mN,7,9,"h4",9),ru(9,"\n "),ws()),2&e){var n=Ys().$implicit;Ya(2),ms("ngIf",n.balance.isLessThan(0)&&n.confirmed),Ya(2),ms("ngIf",n.balance.isLessThan(0)&&!n.confirmed),Ya(2),ms("ngIf",n.balance.isGreaterThan(0)&&n.confirmed),Ya(2),ms("ngIf",n.balance.isGreaterThan(0)&&!n.confirmed)}}function vN(e,t){if(1&e&&(vs(0,"h4"),ru(1),Wl(2,"translate"),vs(3,"span",31),ru(4),Wl(5,"dateTime"),_s(),ru(6,"\n "),_s()),2&e){var n=Ys(2).$implicit,i=Ys(2);Ya(1),ou("\n ",Ul(2,2,"history.moved",Il(7,dN,i.appService.coinName)),"\n "),Ya(3),au(Vl(5,5,n.timestamp))}}function _N(e,t){if(1&e&&(vs(0,"h4"),ru(1),Wl(2,"translate"),vs(3,"span",32),ru(4),Wl(5,"translate"),_s(),ru(6,"\n "),_s()),2&e){var n=Ys(4);Ya(1),ou("\n ",Ul(2,2,"history.moving",Il(7,dN,n.appService.coinName)),"\n "),Ya(3),au(Vl(5,5,"history.pending-indication"))}}function yN(e,t){if(1&e&&(bs(0),ru(1,"\n "),hs(2,vN,7,9,"h4",9),ru(3,"\n "),hs(4,_N,7,9,"h4",9),ru(5,"\n "),ws()),2&e){var n=Ys().$implicit;Ya(2),ms("ngIf",n.confirmed),Ya(2),ms("ngIf",!n.confirmed)}}function bN(e,t){if(1&e&&(vs(0,"div",33),ru(1,"\n "),ys(2,"app-qr-code-button",34),ru(3,"\n "),vs(4,"span",35),ru(5),_s(),ru(6,"\n "),_s()),2&e){var n=t.$implicit;Ya(2),ms("address",n),Ya(3),au(n)}}function wN(e,t){if(1&e&&(vs(0,"div",33),ru(1,"\n "),vs(2,"span"),ru(3),Wl(4,"translate"),vs(5,"span",36),ru(6),_s(),_s(),ru(7,"\n "),_s()),2&e){var n=Ys().$implicit;Ya(3),ou("",Vl(4,2,"history.transaction-note-small-label")," "),Ya(3),au(n.note)}}function kN(e,t){if(1&e&&(vs(0,"p",37),Wl(1,"translate"),ru(2),Wl(3,"currency"),vs(4,"span"),ru(5,"*"),_s(),ru(6,"\n "),_s()),2&e){var n=Ys().$implicit,i=Ys(2);ms("matTooltip",Vl(1,2,"tx.current-rate-help")),Ya(2),ou("\n ",ql(3,4,n.balance*i.price,"USD","symbol","1.2-2"),"")}}var MN=function(e){return{"-pending":e}};function SN(e,t){if(1&e){var n=Ms();bs(0),ru(1,"\n "),vs(2,"div",23),xs("click",function(){var e=on(n).$implicit;return Ys(2).showTransaction(e)}),ru(3,"\n "),vs(4,"div",24),ru(5,"\n "),ys(6,"img",25),ru(7,"\n "),_s(),ru(8,"\n "),vs(9,"div",26),ru(10,"\n "),hs(11,gN,10,4,"ng-container",9),ru(12,"\n "),hs(13,yN,6,2,"ng-container",9),ru(14,"\n "),hs(15,bN,7,2,"div",27),ru(16,"\n "),hs(17,wN,8,4,"div",28),ru(18,"\n "),_s(),ru(19,"\n "),vs(20,"div",29),ru(21,"\n "),vs(22,"h4"),ru(23),Wl(24,"amount"),_s(),ru(25,"\n "),hs(26,kN,7,9,"p",30),ru(27,"\n "),_s(),ru(28,"\n "),_s(),ru(29,"\n "),ws()}if(2&e){var i=t.$implicit,r=Ys(2);Ya(4),ms("ngClass",Il(10,MN,!i.confirmed)),Ya(2),ms("src","assets/img/"+(i.balance.isGreaterThan(0)&&!i.coinsMovedInternally?"received":"sent")+"-blue.png",Pr),Ya(5),ms("ngIf",!i.coinsMovedInternally),Ya(2),ms("ngIf",i.coinsMovedInternally),Ya(2),ms("ngForOf",i.relevantAddresses),Ya(2),ms("ngIf",i.note),Ya(6),au(Vl(24,8,i.balance.toString())),Ya(3),ms("ngIf",r.price)}}var CN=function(e){return{number:e}};function LN(e,t){if(1&e){var n=Ms();vs(0,"div",38),xs("click",function(){return on(n),Ys(2).showAll()}),ru(1),Wl(2,"translate"),_s()}if(2&e){var i=Ys(2);Ya(1),au(Ul(2,1,"history.view-all",Il(4,CN,i.totalElements)))}}function xN(e,t){if(1&e&&(vs(0,"div",21),ru(1,"\n "),hs(2,SN,30,12,"ng-container",10),ru(3,"\n "),hs(4,LN,3,6,"div",22),ru(5,"\n "),_s()),2&e){var n=Ys();Ya(2),ms("ngForOf",n.transactions),Ya(2),ms("ngIf",n.viewingTruncatedList)}}var TN=function(){function e(e,t,n,i,r,a,o){var s=this;this.appService=e,this.dialog=t,this.priceService=n,this.formBuilder=i,this.historyService=r,this.transactionsLoaded=!1,this.maxInitialElements=40,this.viewAll=!1,this.viewingTruncatedList=!1,this.form=this.formBuilder.group({filter:[[]]}),this.routeSubscription=o.queryParams.subscribe(function(e){var t=e.addr?e.addr.split(","):[],n=e.wal?e.wal.split(","):[];t=t.map(function(e){return"a-"+e}),n=n.map(function(e){return"w-"+e}),s.viewAll=!1,s.requestedFilters=t.concat(n),s.showRequestedFilters()}),this.walletsSubscription=a.walletsWithBalance.subscribe(function(e){var t=new Map,n=new Map;s.form.get("filter").value.forEach(function(e){e.addresses?n.set(e.id,!0):t.set(e.walletID+"/"+e.address,!0)});var i=[];s.wallets=[],e.forEach(function(e){var r={id:e.id,label:e.label,coins:e.coins.decimalPlaces(6).toString(),hours:e.hours.decimalPlaces(0).toString(),addresses:[],allAddressesSelected:n.has(e.id)};s.wallets.push(r),n.has(e.id)&&i.push(r),e.addresses.forEach(function(r){var a={walletID:e.id,address:r.address,coins:r.coins.decimalPlaces(6).toString(),hours:r.hours.decimalPlaces(0).toString(),showingWholeWallet:n.has(e.id)};s.wallets[s.wallets.length-1].addresses.push(a),t.has(e.id+"/"+r.address)&&i.push(a)})}),s.form.get("filter").setValue(i,{emitEvent:!1}),s.loadTransactions(0)})}return e.prototype.ngOnInit=function(){var e=this;this.priceSubscription=this.priceService.price.subscribe(function(t){return e.price=t}),this.filterSubscription=this.form.get("filter").valueChanges.subscribe(function(){e.viewAll=!1,e.filterTransactions()})},e.prototype.ngOnDestroy=function(){this.priceSubscription.unsubscribe(),this.filterSubscription.unsubscribe(),this.walletsSubscription.unsubscribe(),this.routeSubscription.unsubscribe(),this.removeTransactionsSubscription()},e.prototype.showAll=function(){this.viewAll||(this.viewAll=!0,this.filterTransactions())},e.prototype.showTransaction=function(e){$j.openDialog(this.dialog,e)},e.prototype.removeFilters=function(){this.form.get("filter").setValue([])},e.prototype.loadTransactions=function(e){var t=this;this.removeTransactionsSubscription(),this.transactionsSubscription=bm(1).pipe(EM(e),ue(function(){return t.historyService.getTransactionsHistory(null)})).subscribe(function(e){t.allTransactions=e,t.transactionsLoaded=!0,t.showRequestedFilters(),t.filterTransactions()},function(){return t.loadTransactions(2e3)})},e.prototype.filterTransactions=function(){var e=this.form.get("filter").value;if(this.wallets.forEach(function(e){e.allAddressesSelected=!1,e.addresses.forEach(function(e){return e.showingWholeWallet=!1})}),0===e.length)this.transactions=this.allTransactions;else{var t=new Map;e.forEach(function(e){e.addresses?(e.addresses.forEach(function(e){t.set(e.address,!0),e.showingWholeWallet=!0}),e.allAddressesSelected=!0):t.set(e.address,!0)}),this.transactions=this.allTransactions.filter(function(e){return e.inputs.some(function(e){return t.has(e.address)})||e.outputs.some(function(e){return t.has(e.address)})})}this.totalElements=this.transactions.length,!this.viewAll&&this.totalElements>this.maxInitialElements?(this.transactions=this.transactions.slice(0,this.maxInitialElements),this.viewingTruncatedList=!0):this.viewingTruncatedList=!1},e.prototype.showRequestedFilters=function(){var e=this;if(this.transactionsLoaded&&this.wallets&&0!==this.wallets.length&&null!=this.requestedFilters){if(this.requestedFilters.length>0){var t=[];this.requestedFilters.forEach(function(n){var i=n.substr(2,n.length-2);e.wallets.forEach(function(e){n.startsWith("w-")?i===e.id&&t.push(e):n.startsWith("a-")&&e.addresses.forEach(function(e){i===e.address&&t.push(e)})})}),this.form.get("filter").setValue(t)}else this.form.get("filter").setValue([]);this.requestedFilters=null}},e.prototype.removeTransactionsSubscription=function(){this.transactionsSubscription&&this.transactionsSubscription.unsubscribe()},e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(Pk),ps(dP),ps(fm),ps(FA),ps(_O),ps(Jx))},e.\u0275cmp=ft({type:e,selectors:[["app-transaction-list"]],decls:17,vars:6,consts:[[3,"headline"],[1,"container"],["class","form-field",3,"formGroup","ngClass",4,"ngIf"],[3,"isLoading","noDataText",4,"ngIf"],["class","paper",4,"ngIf"],[1,"final-element"],[1,"form-field",3,"formGroup","ngClass"],["multiple","","formControlName","filter","id","filter",3,"placeholder"],[3,"label",4,"ngFor","ngForOf"],[4,"ngIf"],[4,"ngFor","ngForOf"],["class","x-button image-button","src","assets/img/delete-grey.png",3,"click",4,"ngIf"],[3,"label"],[3,"value",4,"ngIf"],[3,"value","disabled",4,"ngFor","ngForOf"],[3,"value"],[3,"value","disabled"],["class","filter text-truncate",4,"ngIf"],[1,"filter","text-truncate"],["src","assets/img/delete-grey.png",1,"x-button","image-button",3,"click"],[3,"isLoading","noDataText"],[1,"paper"],["class","view-all-button",3,"click",4,"ngIf"],[1,"-transaction",3,"click"],[1,"-icon",3,"ngClass"],[3,"src"],[1,"-address"],["class","-item",4,"ngFor","ngForOf"],["class","-item",4,"ngIf"],[1,"-balance"],[3,"matTooltip",4,"ngIf"],[1,"-timestamp"],[1,"-pending"],[1,"-item"],[3,"address"],[1,"break-all"],[1,"note"],[3,"matTooltip"],[1,"view-all-button",3,"click"]],template:function(e,t){1&e&&(ys(0,"app-header",0),Wl(1,"translate"),ru(2,"\n"),vs(3,"div",1),ru(4,"\n "),ru(5,"\n "),hs(6,lN,21,12,"div",2),ru(7,"\n\n "),hs(8,cN,1,2,"app-loading-content",3),ru(9,"\n\n "),ru(10,"\n "),hs(11,xN,6,2,"div",4),ru(12,"\n "),ru(13,"\n "),ys(14,"div",5),ru(15,"\n"),_s(),ru(16,"\n")),2&e&&(ms("headline",Vl(1,4,"history.title-and-button")),Ya(6),ms("ngIf",t.transactionsLoaded),Ya(2),ms("ngIf",!t.transactions||0===t.transactions.length),Ya(3),ms("ngIf",t.transactions&&t.transactions.length>0))},directives:[_A,lh,ap,jp,ah,QI,rp,qp,sh,$I,dk,mk,aF,KA,YO],pipes:[hM,NS,WH,Ch],styles:['.form-field[_ngcontent-%COMP%]{margin:10px 30px -21px;display:flex}.form-field[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%]{background:transparent;border:0;border-radius:0}.form-field[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%] .mat-select-value{font-size:13px;line-height:1.7}.form-field[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%] .left-icon[_ngcontent-%COMP%], .form-field[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%] .mat-select-placeholder:before, .form-field[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%] mat-select-trigger[_ngcontent-%COMP%]:before{content:"filter_list";font-family:Material Icons;font-weight:400;font-style:normal;font-size:13px;margin-right:10px;position:relative;top:1px}.form-field[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%] .mat-select-placeholder{color:rgba(30,34,39,.5)!important}.form-field[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%]{font-size:13px;margin-left:28px;color:rgba(30,34,39,.5)}.form-field[_ngcontent-%COMP%] .x-button[_ngcontent-%COMP%]{width:24px;height:24px;margin-top:10px}.bottom-line[_ngcontent-%COMP%]{border-bottom:2px solid rgba(30,34,39,.05)}.paper[_ngcontent-%COMP%]{padding:0}.-transaction[_ngcontent-%COMP%]{background-color:#fafafa;border-bottom:1px solid rgba(30,34,39,.05);cursor:pointer;display:flex;padding:20px 12px}.-transaction[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{padding:0 8px}.-transaction[_ngcontent-%COMP%] .-icon[_ngcontent-%COMP%]{margin-top:5px}.-transaction[_ngcontent-%COMP%] .-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:32px}.-transaction[_ngcontent-%COMP%] .-icon.-pending[_ngcontent-%COMP%]{opacity:.5}.-transaction[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%]{flex:1}.-transaction[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{color:#1e2227;font-size:13px;font-weight:700;line-height:1.15;margin:0 0 8px}.-transaction[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:11px;line-height:1.2;padding-left:5px;font-weight:300}.-transaction[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] .-pending[_ngcontent-%COMP%]{color:#ffc125}.-transaction[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] .-timestamp[_ngcontent-%COMP%]{color:rgba(30,34,39,.5)}.-transaction[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%] .-item[_ngcontent-%COMP%]:not(:last-child){margin-bottom:5px}.-transaction[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%] .-item[_ngcontent-%COMP%] app-qr-code-button[_ngcontent-%COMP%]{vertical-align:middle;margin-right:4px}.-transaction[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%] .-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:rgba(30,34,39,.5);font-size:13px;line-height:1.15}.-transaction[_ngcontent-%COMP%] .-address[_ngcontent-%COMP%] .-item[_ngcontent-%COMP%] .note[_ngcontent-%COMP%]{color:#1e2227;word-break:break-word}.-transaction[_ngcontent-%COMP%] .-balance[_ngcontent-%COMP%]{width:200px;text-align:right;font-size:13px;line-height:1.15}.-transaction[_ngcontent-%COMP%] .-balance[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{color:#1e2227;font-weight:700;margin:0 0 8px}.-transaction[_ngcontent-%COMP%] .-balance[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:rgba(30,34,39,.5);display:inline-block;margin:0}.-transaction[_ngcontent-%COMP%]:hover{background-color:#f7f7f7}.view-all-button[_ngcontent-%COMP%]{color:#0072ff;font-size:13px;text-align:center;padding:20px;cursor:pointer}']}),e}(),DN=["formControl"];function ON(e,t){if(1&e){var n=Ms();vs(0,"div",12),ru(1,"\n "),vs(2,"span",13),xs("click",function(){return on(n),Ys().useHardwareWallet()}),ru(3),Wl(4,"translate"),_s(),ru(5,"\n "),_s()}2&e&&(Ya(3),au(Vl(4,1,"wizard.hardware-wallet-link")))}var EN=function(e){return{coinName:e}},YN=function(){function e(e,t,n,i,r){var a=this;this.appService=e,this.dialog=t,this.router=n,this.fill=null,this.onLabelAndSeedCreated=new Zl,this.currentFormSelection=NP.LeftButton,this.hwCompatibilityActivated=!1,this.doubleButtonActive=NP,this.synchronized=!0,this.hwCompatibilityActivated=i.hwWalletCompatibilityActivated,this.blockchainSubscription=r.progress.subscribe(function(e){return a.synchronized=e.synchronized})}return e.prototype.ngOnInit=function(){var e=this;setTimeout(function(){e.formControl.initForm(null,e.fill)}),this.fill&&(this.currentFormSelection=this.fill.creatingNewWallet?NP.LeftButton:NP.RightButton)},e.prototype.ngOnDestroy=function(){this.blockchainSubscription.unsubscribe(),this.onLabelAndSeedCreated.complete()},e.prototype.changeForm=function(e){this.currentFormSelection=e,this.fill=null,this.formControl.initForm(this.currentFormSelection===NP.LeftButton,this.fill)},e.prototype.createWallet=function(){var e=this;vO.openDialog(this.dialog,{headerText:"wizard.confirm.title",redTitle:!0,text:"wizard.confirm.desc",checkboxText:"wizard.confirm.checkbox",confirmButtonText:"common.continue-button"}).afterClosed().subscribe(function(t){t&&e.emitCreatedData()})},e.prototype.loadWallet=function(){var e=this;this.synchronized?this.emitCreatedData():vO.openDialog(this.dialog,{headerText:"common.warning-title",text:"wallet.new.synchronizing-warning-text",defaultButtons:gO.ContinueCancel,redTitle:!0}).afterClosed().subscribe(function(t){t&&e.emitCreatedData()})},e.prototype.useHardwareWallet=function(){var e=this;JY.openDialog(this.dialog,!0).afterClosed().subscribe(function(t){t&&e.router.navigate(["/wallets"])})},e.prototype.emitCreatedData=function(){this.onLabelAndSeedCreated.emit(this.formControl.getData())},e.\u0275fac=function(t){return new(t||e)(ps(jS),ps(Pk),ps(MD),ps(gC),ps(yO))},e.\u0275cmp=ft({type:e,selectors:[["app-onboarding-create-wallet"]],viewQuery:function(e,t){var n;1&e&&lc(DN,5),2&e&&uc(n=dc())&&(t.formControl=n.first)},inputs:{fill:"fill"},outputs:{onLabelAndSeedCreated:"onLabelAndSeedCreated"},decls:56,vars:23,consts:[[1,"onboarding-container"],[1,"row"],[1,"row-container"],[1,"-header"],[1,"-description"],[1,"row-container","-toggle-container"],[3,"leftButtonText","rightButtonText","activeButton","onStateChange"],[3,"create","onboarding"],["formControl",""],["class","row justify-content-center",4,"ngIf"],[1,"row","-buttons-footer"],[1,"dark-button","-button-min-margin",3,"disabled","action"],[1,"row","justify-content-center"],[1,"hw-link",3,"click"]],template:function(e,t){if(1&e&&(vs(0,"div",0),ru(1,"\n "),ru(2,"\n "),vs(3,"div",1),ru(4,"\n "),vs(5,"div",2),ru(6,"\n "),vs(7,"div",3),ru(8,"\n "),vs(9,"span"),ru(10),Wl(11,"translate"),_s(),ru(12,"\n "),_s(),ru(13,"\n "),vs(14,"div",4),ru(15,"\n "),vs(16,"p"),ru(17),Wl(18,"translate"),_s(),ru(19,"\n "),_s(),ru(20,"\n "),_s(),ru(21,"\n "),_s(),ru(22,"\n "),ru(23,"\n "),vs(24,"div",1),ru(25,"\n "),vs(26,"div",5),ru(27,"\n "),vs(28,"app-double-button",6),xs("onStateChange",function(e){return t.changeForm(e)}),Wl(29,"translate"),Wl(30,"translate"),_s(),ru(31,"\n "),_s(),ru(32,"\n "),_s(),ru(33,"\n "),ru(34,"\n "),vs(35,"div",1),ru(36,"\n "),vs(37,"div",2),ru(38,"\n "),ys(39,"app-create-wallet-form",7,8),ru(41,"\n "),_s(),ru(42,"\n "),_s(),ru(43,"\n "),ru(44,"\n "),hs(45,ON,6,3,"div",9),ru(46,"\n "),ru(47,"\n "),vs(48,"div",10),ru(49,"\n "),vs(50,"app-button",11),xs("action",function(){return t.currentFormSelection===t.doubleButtonActive.LeftButton?t.createWallet():t.loadWallet()}),ru(51),Wl(52,"translate"),_s(),ru(53,"\n "),_s(),ru(54,"\n"),_s(),ru(55,"\n")),2&e){var n=fs(40);Ya(10),au(Vl(11,10,"wizard.create-title")),Ya(7),au(Ul(18,12,"wizard.create-desc",Il(21,EN,t.appService.fullCoinName))),Ya(11),ms("leftButtonText",Vl(29,15,"wizard.new-button"))("rightButtonText",Vl(30,17,"wizard.load-button"))("activeButton",t.currentFormSelection),Ya(11),ms("create",t.currentFormSelection===t.doubleButtonActive.LeftButton)("onboarding",!0),Ya(6),ms("ngIf",t.hwCompatibilityActivated),Ya(5),ms("disabled",!n.isValid),Ya(1),ou("\n ",Vl(52,19,"common.create-button"),"\n ")}},directives:[BP,_E,lh,ZC],pipes:[hM],styles:[".-toggle-container[_ngcontent-%COMP%]{margin:10px auto}.hw-link[_ngcontent-%COMP%]{cursor:pointer;color:#fafafa;font-size:13px;margin-bottom:20px}"]}),e}(),PN=["button"],AN=function(e){return{"element-disabled":e}};function IN(e,t){if(1&e){var n=Ms();vs(0,"div",1),ru(1,"\n "),vs(2,"div",10),ru(3,"\n "),vs(4,"mat-checkbox",11),xs("change",function(e){return on(n),Ys().setEncrypt(e)}),ru(5,"\n "),vs(6,"span",12),ru(7,"\n "),ys(8,"img",13),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),_s(),ru(12,"\n "),_s(),ru(13,"\n "),_s()}if(2&e){var i=Ys();Ya(4),ms("checked",!0)("ngClass",Il(5,AN,i.isWorking)),Ya(5),ou("\n ",Vl(10,3,"wallet.new.encrypt-check"),"\n ")}}function RN(e,t){if(1&e){var n=Ms();vs(0,"div",1),ru(1,"\n "),vs(2,"div",2),ru(3,"\n "),vs(4,"form",14),ru(5,"\n "),vs(6,"div",15),ru(7,"\n "),vs(8,"label",16),ru(9),Wl(10,"translate"),_s(),ru(11,"\n "),vs(12,"input",17),xs("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(13,"\n "),_s(),ru(14,"\n "),vs(15,"div",15),ru(16,"\n "),vs(17,"label",18),ru(18),Wl(19,"translate"),_s(),ru(20,"\n "),vs(21,"input",19),xs("keydown.enter",function(){return on(n),Ys().emitCreatedPassword()})("blur",function(){return on(n),Ys().validateForm()}),_s(),ru(22,"\n "),_s(),ru(23,"\n "),_s(),ru(24,"\n "),_s(),ru(25,"\n "),_s()}if(2&e){var i=Ys();Ya(4),ms("formGroup",i.form),Ya(5),au(Vl(10,9,"password.password-label")),Ya(3),ms("ngClass",Il(13,AN,i.form.disabled))("appFormFieldError",i.password1ErrorMsg),ls("disabled",i.isWorking?"true":null),Ya(6),au(Vl(19,11,"password.confirm-password-label")),Ya(3),ms("ngClass",Il(15,AN,i.form.disabled))("appFormFieldError",i.password2ErrorMsg),ls("disabled",i.isWorking?"true":null)}}var FN=function(e){return{"d-none":e}},HN=function(){function e(e,t){this.formBuilder=e,this.changeDetector=t,this.onPasswordCreated=new Zl,this.onBack=new Zl,this.creatingTemporal_=!1,this.password1ErrorMsg="",this.password2ErrorMsg=""}return Object.defineProperty(e.prototype,"creatingTemporal",{get:function(){return this.creatingTemporal_},set:function(e){var t=this;this.creatingTemporal_=e,setTimeout(function(){t.form&&t.form.updateValueAndValidity()})},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.form=this.formBuilder.group({password:new Lp(""),confirm:new Lp("")}),this.form.setValidators(this.validateForm.bind(this))},e.prototype.ngOnDestroy=function(){this.onPasswordCreated.complete(),this.onBack.complete()},e.prototype.setEncrypt=function(e){e.checked?this.form.enable():this.form.disable()},e.prototype.emitCreatedPassword=function(){!this.creatingTemporal&&this.form.enabled&&!this.form.valid||this.button.isLoading()||(this.button.setLoading(),this.onPasswordCreated.emit(!this.creatingTemporal&&this.form.enabled?this.form.get("password").value:null),this.changeDetector.detectChanges())},e.prototype.emitBack=function(){this.onBack.emit()},e.prototype.resetButton=function(){this.button.resetState()},Object.defineProperty(e.prototype,"isWorking",{get:function(){return!!this.button&&this.button.isLoading()},enumerable:!1,configurable:!0}),e.prototype.validateForm=function(){this.password1ErrorMsg="",this.password2ErrorMsg="";var e=!0;return this.form.get("password").value||(e=!1,this.form.get("password").touched&&(this.password1ErrorMsg="password.password-error-info")),this.form.get("confirm").value||(e=!1,this.form.get("confirm").touched&&(this.password2ErrorMsg="password.password-error-info")),e&&this.form.get("password").value!==this.form.get("confirm").value&&(e=!1,this.password2ErrorMsg="password.confirm-error-info"),e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(fm),ps(ll))},e.\u0275cmp=ft({type:e,selectors:[["app-onboarding-encrypt-wallet"]],viewQuery:function(e,t){var n;1&e&&lc(PN,5),2&e&&uc(n=dc())&&(t.button=n.first)},inputs:{creatingTemporal:"creatingTemporal"},outputs:{onPasswordCreated:"onPasswordCreated",onBack:"onBack"},decls:43,vars:18,consts:[[1,"onboarding-container"],[1,"row"],[1,"row-container"],[1,"-header"],[1,"-description"],["class","row",4,"ngIf"],[1,"row","-buttons-footer"],[1,"dark-button","-button-min-margin",3,"disabled","action"],["button",""],[1,"ghost-button","-button-min-margin",3,"ngClass","action"],[1,"row-container","-check-container"],["type","checkbox","id","encrypt",1,"-check",3,"checked","ngClass","change"],[1,"img-label-container"],["src","assets/img/lock-gold.png"],[3,"formGroup"],[1,"form-field"],["for","password"],["type","password","appDontSavePassword","","formControlName","password","id","password",1,"-input",3,"ngClass","appFormFieldError","blur"],["for","confirm"],["type","password","appDontSavePassword","","formControlName","confirm","id","confirm",1,"-input",3,"ngClass","appFormFieldError","keydown.enter","blur"]],template:function(e,t){1&e&&(vs(0,"div",0),ru(1,"\n "),ru(2,"\n "),vs(3,"div",1),ru(4,"\n "),vs(5,"div",2),ru(6,"\n "),vs(7,"div",3),ru(8,"\n "),vs(9,"span"),ru(10),Wl(11,"translate"),_s(),ru(12,"\n "),_s(),ru(13,"\n "),vs(14,"div",4),ru(15,"\n "),vs(16,"p"),ru(17),Wl(18,"translate"),_s(),ru(19,"\n "),_s(),ru(20,"\n "),_s(),ru(21,"\n "),_s(),ru(22,"\n "),ru(23,"\n "),hs(24,IN,14,7,"div",5),ru(25,"\n "),ru(26,"\n "),hs(27,RN,26,17,"div",5),ru(28,"\n "),ru(29,"\n "),vs(30,"div",6),ru(31,"\n "),vs(32,"app-button",7,8),xs("action",function(){return t.emitCreatedPassword()}),ru(34),Wl(35,"translate"),_s(),ru(36,"\n "),vs(37,"app-button",9),xs("action",function(){return t.emitBack()}),ru(38),Wl(39,"translate"),_s(),ru(40,"\n "),_s(),ru(41,"\n"),_s(),ru(42,"\n")),2&e&&(Ya(10),au(Vl(11,8,t.creatingTemporal?"wizard.finish-temporal-title":"wizard.encrypt-title")),Ya(7),au(Vl(18,10,t.creatingTemporal?"wizard.finish-temporal-desc":"wizard.encrypt-desc")),Ya(7),ms("ngIf",!t.creatingTemporal),Ya(3),ms("ngIf",!t.creatingTemporal),Ya(5),ms("disabled",!t.creatingTemporal&&(!t.form||t.form.enabled&&!t.form.valid)),Ya(2),ou("\n ",Vl(35,12,"wizard.finish-button"),"\n "),Ya(3),ms("ngClass",Il(16,FN,t.isWorking)),Ya(1),ou("\n ",Vl(39,14,"common.back-button"),"\n "))},directives:[lh,ZC,ah,lO,Pp,ap,jp,Lf,FO,rp,qp,RO],pipes:[hM],styles:[".-check-container[_ngcontent-%COMP%]{margin:10px auto}.-check[_ngcontent-%COMP%] .mat-checkbox-checkmark-path{stroke:#fafafa!important}"]}),e}(),jN=["encryptForm"];function NN(e,t){if(1&e){var n=Ms();vs(0,"button",3),xs("click",function(){return on(n),Ys().changelanguage()}),ru(1,"\n "),ys(2,"img",4),ru(3,"\n"),_s()}if(2&e){var i=Ys();Ya(2),ms("src","assets/img/lang/"+i.language.iconName,Pr)}}function BN(e,t){if(1&e){var n=Ms();vs(0,"app-onboarding-create-wallet",5),xs("onLabelAndSeedCreated",function(e){return on(n),Ys().onLabelAndSeedCreated(e)}),_s()}2&e&&ms("fill",Ys().formData)}function WN(e,t){if(1&e){var n=Ms();vs(0,"app-onboarding-encrypt-wallet",6,7),xs("onPasswordCreated",function(e){return on(n),Ys().onPasswordCreated(e)})("onBack",function(){return on(n),Ys().onBack()}),_s()}2&e&&ms("creatingTemporal",Ys().formData.loadTemporarily)}var VN=["resetButton"],UN=function(e){return{"element-disabled":e}},zN=[{path:"",redirectTo:"wallets",pathMatch:"full"},{path:"wallets",component:sP,canActivate:[TR]},{path:"send",component:dj,canActivate:[TR]},{path:"transactions",component:TN,canActivate:[TR]},{path:"buy",component:Zj,canActivate:[TR]},{path:"settings",children:[{path:"backup",component:Ij},{path:"blockchain",component:Lj},{path:"network",component:Wj},{path:"outputs",component:wj},{path:"pending-transactions",component:mj}],canActivate:[TR]},{path:"wizard",component:function(){function e(e,t,n,i,r){this.router=e,this.languageService=t,this.dialog=n,this.msgBarService=i,this.walletsAndAddressesService=r,this.step=1}return e.prototype.ngOnInit=function(){var e=this;this.subscription=this.languageService.currentLanguage.subscribe(function(t){return e.language=t})},e.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},e.prototype.onLabelAndSeedCreated=function(e){this.formData=e,this.step=2},e.prototype.onPasswordCreated=function(e){var t=this;this.walletsAndAddressesService.createSoftwareWallet(this.formData.loadTemporarily,this.formData.label,this.formData.seed,e).subscribe(function(){t.router.navigate(["/wallets"])},function(e){t.msgBarService.showError(e),t.encryptForm.resetButton()})},e.prototype.onBack=function(){this.step=1},e.prototype.changelanguage=function(){SL.openDialog(this.dialog)},e.\u0275fac=function(t){return new(t||e)(ps(MD),ps(kL),ps(Pk),ps(dL),ps(AL))},e.\u0275cmp=ft({type:e,selectors:[["app-onboarding"]],viewQuery:function(e,t){var n;1&e&&lc(jN,5),2&e&&uc(n=dc())&&(t.encryptForm=n.first)},decls:9,vars:3,consts:[["mat-icon-button","",3,"click",4,"ngIf"],[3,"fill","onLabelAndSeedCreated",4,"ngIf"],[3,"creatingTemporal","onPasswordCreated","onBack",4,"ngIf"],["mat-icon-button","",3,"click"],[1,"flag",3,"src"],[3,"fill","onLabelAndSeedCreated"],[3,"creatingTemporal","onPasswordCreated","onBack"],["encryptForm",""]],template:function(e,t){1&e&&(ru(0,"\n"),hs(1,NN,4,1,"button",0),ru(2,"\n\n"),ru(3,"\n"),hs(4,BN,1,1,"app-onboarding-create-wallet",1),ru(5,"\n\n"),ru(6,"\n"),hs(7,WN,2,1,"app-onboarding-encrypt-wallet",2),ru(8,"\n")),2&e&&(Ya(1),ms("ngIf",t.language),Ya(3),ms("ngIf",1===t.step),Ya(3),ms("ngIf",2===t.step))},directives:[lh,SC,YN,HN],styles:["button[_ngcontent-%COMP%]{position:fixed;right:30px;top:20px;background-color:#fafafa!important}button[_ngcontent-%COMP%]:hover{background-color:#f7f7f7!important}.flag[_ngcontent-%COMP%]{width:16px;height:16px;position:relative;top:-3px}"]}),e}()},{path:"reset/:id",component:function(){function e(e,t,n,i,r,a,o){var s=this;this.formBuilder=e,this.route=t,this.router=n,this.msgBarService=i,this.softwareWalletService=r,this.walletsAndAddressesService=a,this.changeDetector=o,this.busy=!0,this.seedErrorMsg="",this.passwordErrorMsg="",this.done=!1,this.hideBarWhenClosing=!0,this.initForm(),this.subscription=jL([this.route.params,this.walletsAndAddressesService.allWallets]).pipe(K(function(e){var t=e[0],n=e[1].find(function(e){return e.id===t.id});n&&!n.temporal?(s.wallet=n,s.form.get("wallet").setValue(n.label),s.busy=!1):setTimeout(function(){return s.router.navigate([""],{skipLocationChange:!0})})})).subscribe()}return e.prototype.ngOnDestroy=function(){this.subscription.unsubscribe(),this.hideBarWhenClosing&&this.msgBarService.hide()},e.prototype.initForm=function(){this.form=new xp({}),this.form.addControl("wallet",new Lp),this.form.addControl("seed",new Lp("")),this.form.addControl("password",new Lp("")),this.form.addControl("confirm",new Lp("")),this.form.setValidators(this.validateForm.bind(this))},e.prototype.reset=function(){var e=this;!this.form.valid||this.busy||this.done||(this.busy=!0,this.msgBarService.hide(),this.resetButton.setLoading(),this.softwareWalletService.resetPassword(this.wallet,this.form.value.seed,""!==this.form.value.password?this.form.value.password:null).subscribe(function(){e.resetButton.setSuccess(),e.resetButton.setDisabled(),e.done=!0,e.msgBarService.showDone("reset.done"),e.hideBarWhenClosing=!1,setTimeout(function(){e.router.navigate([""])},2e3)},function(t){e.busy=!1,e.resetButton.resetState(),e.msgBarService.showError(t)}),this.changeDetector.detectChanges())},e.prototype.validateForm=function(){this.seedErrorMsg="",this.passwordErrorMsg="";var e=!0;return this.form.get("seed").value||(e=!1,this.form.get("seed").touched&&(this.seedErrorMsg="reset.seed-error-info")),this.form.get("password").value!==this.form.get("confirm").value&&(e=!1,this.form.get("confirm").touched&&(this.passwordErrorMsg="reset.confirm-error-info")),e?null:{Invalid:!0}},e.\u0275fac=function(t){return new(t||e)(ps(fm),ps(Jx),ps(MD),ps(dL),ps(OE),ps(AL),ps(ll))},e.\u0275cmp=ft({type:e,selectors:[["app-reset-password"]],viewQuery:function(e,t){var n;1&e&&lc(VN,5),2&e&&uc(n=dc())&&(t.resetButton=n.first)},decls:62,vars:28,consts:[[3,"headline"],[1,"container"],[1,"paper"],[3,"formGroup"],[1,"form-field"],["for","wallet"],[1,"-not-allowed"],["formControlName","wallet","id","wallet","readonly","",3,"ngClass"],["for","seed"],["formControlName","seed","id","seed","row","2",3,"appFormFieldError","blur"],["for","password"],["formControlName","password","id","password","type","password","appDontSavePassword",""],["for","confirm"],["formControlName","confirm","id","confirm","type","password","appDontSavePassword","",3,"appFormFieldError","keydown.enter","blur"],[1,"text-center"],[1,"primary-button",3,"disabled","action"],["resetButton",""],[1,"final-element"]],template:function(e,t){1&e&&(ys(0,"app-header",0),Wl(1,"translate"),ru(2,"\n"),vs(3,"div",1),ru(4,"\n "),vs(5,"div",2),ru(6,"\n "),vs(7,"div",3),ru(8,"\n "),ru(9,"\n "),vs(10,"div",4),ru(11,"\n "),vs(12,"label",5),ru(13),Wl(14,"translate"),_s(),ru(15,"\n "),vs(16,"div",6),ys(17,"input",7),_s(),ru(18,"\n "),_s(),ru(19,"\n "),vs(20,"div",4),ru(21,"\n "),vs(22,"label",8),ru(23),Wl(24,"translate"),_s(),ru(25,"\n "),vs(26,"textarea",9),xs("blur",function(){return t.validateForm()}),_s(),ru(27,"\n "),_s(),ru(28,"\n "),vs(29,"div",4),ru(30,"\n "),vs(31,"label",10),ru(32),Wl(33,"translate"),_s(),ru(34,"\n "),ys(35,"input",11),ru(36,"\n "),_s(),ru(37,"\n "),vs(38,"div",4),ru(39,"\n "),vs(40,"label",12),ru(41),Wl(42,"translate"),_s(),ru(43,"\n "),vs(44,"input",13),xs("keydown.enter",function(){return t.reset()})("blur",function(){return t.validateForm()}),_s(),ru(45,"\n "),_s(),ru(46,"\n "),ru(47,"\n "),vs(48,"div",14),ru(49,"\n "),vs(50,"app-button",15,16),xs("action",function(){return t.reset()}),ru(52),Wl(53,"translate"),_s(),ru(54,"\n "),_s(),ru(55,"\n "),_s(),ru(56,"\n "),_s(),ru(57,"\n "),ru(58,"\n "),ys(59,"div",17),ru(60,"\n"),_s(),ru(61,"\n")),2&e&&(ms("headline",Vl(1,14,"reset.title")),Ya(7),ms("formGroup",t.form),Ya(6),au(Vl(14,16,"reset.wallet-label")),Ya(4),ms("ngClass",Il(26,UN,t.busy)),Ya(6),au(Vl(24,18,"reset.seed-label")),Ya(3),ms("appFormFieldError",t.seedErrorMsg),ls("disabled",t.busy?"true":null),Ya(6),au(Vl(33,20,"reset.password-label")),Ya(3),ls("disabled",t.busy?"true":null),Ya(6),au(Vl(42,22,"reset.confirm-label")),Ya(3),ms("appFormFieldError",t.passwordErrorMsg),ls("disabled",t.busy?"true":null),Ya(6),ms("disabled",!t.form.valid),Ya(2),ou("\n ",Vl(53,24,"reset.reset-button"),"\n "))},directives:[_A,ap,jp,Lf,rp,qp,ah,RO,FO,ZC],pipes:[hM],styles:[""]}),e}()}],qN=function(){function e(){}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[BD.forRoot(zN,{useHash:!0})],BD]}),e}(),GN=function(){function e(){}return e.prototype.getTranslation=function(e){return re(n(16297)("./"+e+".json"))},e}(),KN=function(){function e(){}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e}),e.\u0275inj=Re({imports:[[fM.forRoot({loader:{provide:Zk,useClass:GN}})],fM]}),e}(),JN=function(){function e(){}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=_t({type:e,bootstrap:[XD]}),e.\u0275inj=Re({providers:[HS,jS,yO,UF,WP,lP,dP,cP,TR,gC,nL,pC,uC,fC,kL,bL,dL,Mh,AL,OE,YE,_O,bF,FA,{provide:wM,useValue:{_forceAnimations:!0}}],imports:[[KN,qN,mf,RS,CC,mI,Ik,vI,_I,VC,OI,YI,OP,QP,SM,eR,tR,nR,IO,dO,xR,vR,Ew,dm]]}),e}();pt(sP,[_A,sh,lh,YO,ah,pI,SC],[hM,zF,NS]),pt(VF,[lh,BP,ah,ap,jp,QR,yH,WC,YO,jO,Lf,rp,qp,RO,lm,vh,lO,ZC,MR],[hM,NS,Mh]),pt(_L,[jk,lh,oC,ap,jp,DI,Lf,gR,rp,qp,RO,dR,sh,mk,ZC],[hM,kh]),function(){if(Jc)throw new Error("Cannot enable prod mode after platform setup.");Kc=!1}(),ff().bootstrapModule(JN,{preserveWhitespaces:!0})},46700:function(e,t,n){var i={"./af":90776,"./af.js":90776,"./ar":67634,"./ar-dz":42758,"./ar-dz.js":42758,"./ar-kw":64980,"./ar-kw.js":64980,"./ar-ly":9602,"./ar-ly.js":9602,"./ar-ma":52500,"./ar-ma.js":52500,"./ar-sa":36909,"./ar-sa.js":36909,"./ar-tn":92735,"./ar-tn.js":92735,"./ar.js":67634,"./az":27798,"./az.js":27798,"./be":29949,"./be.js":29949,"./bg":44590,"./bg.js":44590,"./bm":15938,"./bm.js":15938,"./bn":60595,"./bn-bd":51942,"./bn-bd.js":51942,"./bn.js":60595,"./bo":4756,"./bo.js":4756,"./br":17277,"./br.js":17277,"./bs":4166,"./bs.js":4166,"./ca":13943,"./ca.js":13943,"./cs":53474,"./cs.js":53474,"./cv":92218,"./cv.js":92218,"./cy":21061,"./cy.js":21061,"./da":82743,"./da.js":82743,"./de":31899,"./de-at":28580,"./de-at.js":28580,"./de-ch":3264,"./de-ch.js":3264,"./de.js":31899,"./dv":98784,"./dv.js":98784,"./el":54654,"./el.js":54654,"./en-au":56277,"./en-au.js":56277,"./en-ca":76896,"./en-ca.js":76896,"./en-gb":71609,"./en-gb.js":71609,"./en-ie":24557,"./en-ie.js":24557,"./en-il":15836,"./en-il.js":15836,"./en-in":30262,"./en-in.js":30262,"./en-nz":43586,"./en-nz.js":43586,"./en-sg":38965,"./en-sg.js":38965,"./eo":62777,"./eo.js":62777,"./es":63357,"./es-do":3128,"./es-do.js":3128,"./es-mx":69179,"./es-mx.js":69179,"./es-us":83256,"./es-us.js":83256,"./es.js":63357,"./et":2654,"./et.js":2654,"./eu":57287,"./eu.js":57287,"./fa":73875,"./fa.js":73875,"./fi":73431,"./fi.js":73431,"./fil":39606,"./fil.js":39606,"./fo":41781,"./fo.js":41781,"./fr":61717,"./fr-ca":11539,"./fr-ca.js":11539,"./fr-ch":19847,"./fr-ch.js":19847,"./fr.js":61717,"./fy":42250,"./fy.js":42250,"./ga":47665,"./ga.js":47665,"./gd":85214,"./gd.js":85214,"./gl":36154,"./gl.js":36154,"./gom-deva":68222,"./gom-deva.js":68222,"./gom-latn":18518,"./gom-latn.js":18518,"./gu":89221,"./gu.js":89221,"./he":64743,"./he.js":64743,"./hi":77339,"./hi.js":77339,"./hr":13224,"./hr.js":13224,"./hu":50856,"./hu.js":50856,"./hy-am":76855,"./hy-am.js":76855,"./id":2190,"./id.js":2190,"./is":53887,"./is.js":53887,"./it":19270,"./it-ch":85890,"./it-ch.js":85890,"./it.js":19270,"./ja":46595,"./ja.js":46595,"./jv":93081,"./jv.js":93081,"./ka":27477,"./ka.js":27477,"./kk":13978,"./kk.js":13978,"./km":19205,"./km.js":19205,"./kn":60025,"./kn.js":60025,"./ko":50427,"./ko.js":50427,"./ku":79089,"./ku.js":79089,"./ky":19314,"./ky.js":19314,"./lb":23136,"./lb.js":23136,"./lo":29115,"./lo.js":29115,"./lt":27087,"./lt.js":27087,"./lv":95683,"./lv.js":95683,"./me":79454,"./me.js":79454,"./mi":35507,"./mi.js":35507,"./mk":98466,"./mk.js":98466,"./ml":82933,"./ml.js":82933,"./mn":19477,"./mn.js":19477,"./mr":43597,"./mr.js":43597,"./ms":85529,"./ms-my":99965,"./ms-my.js":99965,"./ms.js":85529,"./mt":30259,"./mt.js":30259,"./my":88061,"./my.js":88061,"./nb":72618,"./nb.js":72618,"./ne":28452,"./ne.js":28452,"./nl":1885,"./nl-be":60413,"./nl-be.js":60413,"./nl.js":1885,"./nn":45107,"./nn.js":45107,"./oc-lnc":71763,"./oc-lnc.js":71763,"./pa-in":702,"./pa-in.js":702,"./pl":31711,"./pl.js":31711,"./pt":10594,"./pt-br":58238,"./pt-br.js":58238,"./pt.js":10594,"./ro":74681,"./ro.js":74681,"./ru":16201,"./ru.js":16201,"./sd":62912,"./sd.js":62912,"./se":6002,"./se.js":6002,"./si":67942,"./si.js":67942,"./sk":25577,"./sk.js":25577,"./sl":41775,"./sl.js":41775,"./sq":36823,"./sq.js":36823,"./sr":59038,"./sr-cyrl":83848,"./sr-cyrl.js":83848,"./sr.js":59038,"./ss":96173,"./ss.js":96173,"./sv":5788,"./sv.js":5788,"./sw":76882,"./sw.js":76882,"./ta":82678,"./ta.js":82678,"./te":82797,"./te.js":82797,"./tet":52447,"./tet.js":52447,"./tg":31335,"./tg.js":31335,"./th":68667,"./th.js":68667,"./tk":9222,"./tk.js":9222,"./tl-ph":99914,"./tl-ph.js":99914,"./tlh":71389,"./tlh.js":71389,"./tr":3578,"./tr.js":3578,"./tzl":36969,"./tzl.js":36969,"./tzm":76509,"./tzm-latn":690,"./tzm-latn.js":690,"./tzm.js":76509,"./ug-cn":20055,"./ug-cn.js":20055,"./uk":22452,"./uk.js":22452,"./ur":91151,"./ur.js":91151,"./uz":31555,"./uz-latn":46547,"./uz-latn.js":46547,"./uz.js":31555,"./vi":16541,"./vi.js":16541,"./x-pseudo":42401,"./x-pseudo.js":42401,"./yo":2341,"./yo.js":2341,"./zh-cn":80619,"./zh-cn.js":80619,"./zh-hk":67058,"./zh-hk.js":67058,"./zh-mo":89141,"./zh-mo.js":89141,"./zh-tw":22782,"./zh-tw.js":22782};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}r.keys=function(){return Object.keys(i)},r.resolve=a,e.exports=r,r.id=46700},16297:function(e,t,n){var i={"./en.json":[32478,478],"./es.json":[79875,875],"./es_base.json":[61526,526],"./ru.json":[61813,813],"./zh.json":[12736,736],"./zh_base.json":[3118,118]};function r(e){if(!n.o(i,e))return Promise.resolve().then(function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=i[e],r=t[0];return n.e(t[1]).then(function(){return n.t(r,19)})}r.keys=function(){return Object.keys(i)},r.id=16297,e.exports=r},69769:function(e,t,n){var i={"./bip39-word-list.json":[74403,403],"./i18n/en.json":[32478,478],"./i18n/es.json":[79875,875],"./i18n/es_base.json":[61526,526],"./i18n/ru.json":[61813,813],"./i18n/zh.json":[12736,736],"./i18n/zh_base.json":[3118,118]};function r(e){if(!n.o(i,e))return Promise.resolve().then(function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=i[e],r=t[0];return n.e(t[1]).then(function(){return n.t(r,19)})}r.keys=function(){return Object.keys(i)},r.id=69769,e.exports=r}},function(e){"use strict";e(e.s=58819)}]); \ No newline at end of file diff --git a/src/gui/static/dist/polyfills-es5.740f167f3a597dada26d.js b/src/gui/static/dist/polyfills-es5.740f167f3a597dada26d.js new file mode 100644 index 000000000..2283a783f --- /dev/null +++ b/src/gui/static/dist/polyfills-es5.740f167f3a597dada26d.js @@ -0,0 +1 @@ +(self.webpackChunkdesktopwallet=self.webpackChunkdesktopwallet||[]).push([[698,429],{52975:function(t,e,n){"use strict";n(51351),n(82867),n(75355),n(23919),n(194),n(86985),n(28438),n(49914),n(92135),n(74633),n(63262),n(473),n(39472),n(3116),n(14949),n(58743),n(84147),n(78895),n(74409),n(75338),n(13651),n(20057),n(25174),n(9614),n(92876),n(2231),n(81915),n(56497),n(50698),n(68602),n(6290),n(1805),n(69208),n(3212),n(15790),n(92249),n(73702),n(75247),n(9594),n(72173),n(47491),n(96459),n(23391),n(64735),n(3503),n(33275),n(11361),n(63720),n(20030),n(92043),n(75663),n(17505),n(76595),n(52999),n(22817),n(21619),n(1610),n(95172),n(38715),n(6494),n(50488),n(50979),n(22226),n(54716),n(93004),n(24924),n(13062),n(31661),n(87398),n(65503),n(75343),n(58356),n(77814),n(69658),n(23326),n(89692),n(37048),n(97695),n(68086),n(24172),n(95152),n(96149),n(32385),n(35318),n(30102),n(39142),n(58363),n(9364),n(15302),n(85788),n(86641),n(45579),n(69465)},45579:function(t){var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(I){u=function(t,e,n){return t[e]=n}}function s(t,e,n,r){var o=Object.create((e&&e.prototype instanceof g?e:g).prototype),i=new j(r||[]);return o._invoke=function(t,e,n){var r=l;return function(o,i){if(r===h)throw new Error("Generator is already running");if(r===v){if("throw"===o)throw i;return M()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=S(a,n);if(c){if(c===d)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===l)throw r=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=h;var u=f(t,e,n);if("normal"===u.type){if(r=n.done?v:p,u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=v,n.method="throw",n.arg=u.arg)}}}(t,n,i),o}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(I){return{type:"throw",arg:I}}}t.wrap=s;var l="suspendedStart",p="suspendedYield",h="executing",v="completed",d={};function g(){}function y(){}function m(){}var b={};b[i]=function(){return this};var _=Object.getPrototypeOf,x=_&&_(_(P([])));x&&x!==n&&r.call(x,i)&&(b=x);var k=m.prototype=g.prototype=Object.create(b);function E(t){["next","throw","return"].forEach(function(e){u(t,e,function(t){return this._invoke(e,t)})})}function w(t,e){function n(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then(function(t){n("next",t,a,c)},function(t){n("throw",t,a,c)}):e.resolve(l).then(function(t){s.value=t,a(s)},function(t){return n("throw",t,a,c)})}c(u.arg)}var o;this._invoke=function(t,r){function i(){return new e(function(e,o){n(t,r,e,o)})}return o=o?o.then(i,i):i()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return d;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var o=f(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,d;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,d):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,d)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function P(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function n(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),T(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;T(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:P(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=e}catch(n){Function("r","regeneratorRuntime = r")(e)}},69465:function(){"use strict";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t("defineProperty")]=Object.defineProperty,n=Object[t("getOwnPropertyDescriptor")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t("unconfigurables"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError("Cannot assign to read only property '"+e+"' of "+t);var r=n.configurable;return"prototype"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach(function(n){Object.defineProperty(t,n,e[n])}),t},Object.create=function(t,e){return"object"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach(function(n){e[n]=s(t,n,e[n])}),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(c){if(!r.configurable)throw c;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(c){var i=!1;if("createdCallback"!==n&&"attachedCallback"!==n&&"detachedCallback"!==n&&"attributeChangedCallback"!==n||(i=!0),!i)throw c;var a=null;try{a=JSON.stringify(r)}catch(c){a=r.toString()}console.log("Attempting to configure '".concat(n,"' with descriptor '").concat(a,"' on object '").concat(t,"' and got error, giving up: ").concat(c))}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s="ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket".split(","),f=[],l=t.wtf,p="Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video".split(",");l?f=p.map(function(t){return"HTML"+t+"Element"}).concat(s):t.EventTarget?f.push("EventTarget"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g="[object FunctionWrapper]",y="function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }",m={MSPointerCancel:"pointercancel",MSPointerDown:"pointerdown",MSPointerEnter:"pointerenter",MSPointerHover:"pointerhover",MSPointerLeave:"pointerleave",MSPointerMove:"pointermove",MSPointerOut:"pointerout",MSPointerOver:"pointerover",MSPointerUp:"pointerup"},b=0;b1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,"onmessage");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,"send","close"].forEach(function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__("ON_PROPERTY"+i);u[c]=a[c]}}return u[e].apply(u,n)}})):a=u,t.patchOnProperties(a,["close","error","message","open"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol("patchEvents")]=!0}}(i="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{})[(i.__Zone_symbol_prefix||"__zone_symbol__")+"legacyPatch"]=function(){var t=i.Zone;t.__load_patch("defineProperty",function(t,e,n){n._redefineProperty=c,a()}),t.__load_patch("registerElement",function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&"registerElement"in t.document&&e.patchCallbacks(e,document,"Document","registerElement",["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"])}(t,n)}),t.__load_patch("EventTargetLegacy",function(t,e,n){l(t,n),p(n,t)})}},52167:function(t,e,n){"use strict";var r=n(35554).default,o=n(75725).default,i=n(73560).default,a=(function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n("Zone");var a=t.__Zone_symbol_prefix||"__zone_symbol__";function c(t){return a+t}var u=!0===t[c("forceDuplicateZoneCheck")];if(t.Zone){if(u||"function"!=typeof t.Zone.__symbol__)throw new Error("Zone already loaded.");return t.Zone}var s=function(){function e(t,n){o(this,e),this._parent=t,this._name=n?n.name||"unnamed":"",this._properties=n&&n.properties||{},this._zoneDelegate=new p(this,this._parent&&this._parent._zoneDelegate,n)}return i(e,[{key:"parent",get:function(){return this._parent}},{key:"name",get:function(){return this._name}},{key:"get",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:"getZoneWith",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:"fork",value:function(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}},{key:"wrap",value:function(t,e){if("function"!=typeof t)throw new Error("Expecting function got: "+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:"run",value:function(t,e,n,r){D={parent:D,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{D=D.parent}}},{key:"runGuarded",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;D={parent:D,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{D=D.parent}}},{key:"runTask",value:function(t,e,n){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||x).name+"; Execution: "+this.name+")");if(t.state!==k||t.type!==M&&t.type!==P){var r=t.state!=S;r&&t._transitionTo(S,w),t.runCount++;var o=C;C=t,D={parent:D,zone:this};try{t.type==P&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==T&&(t.type==M||t.data&&t.data.isPeriodic?r&&t._transitionTo(w,S):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,S,k))),D=D.parent,C=o}}}},{key:"scheduleTask",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error("can not reschedule task to ".concat(this.name," which is descendants of the original zone ").concat(t.zone.name));e=e.parent}t._transitionTo(E,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(T,E,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==E&&t._transitionTo(w,E),t}},{key:"scheduleMicroTask",value:function(t,e,n,r){return this.scheduleTask(new h(j,t,e,n,r,void 0))}},{key:"scheduleMacroTask",value:function(t,e,n,r,o){return this.scheduleTask(new h(P,t,e,n,r,o))}},{key:"scheduleEventTask",value:function(t,e,n,r,o){return this.scheduleTask(new h(M,t,e,n,r,o))}},{key:"cancelTask",value:function(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||x).name+"; Execution: "+this.name+")");t._transitionTo(O,w,S);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(T,O),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,O),t.runCount=0,t}},{key:"_updateTaskCount",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r2&&void 0!==arguments[2]&&arguments[2];if(I.hasOwnProperty(o)){if(!a&&u)throw Error("Already loaded patch: "+o)}else if(!t["__Zone_disable_"+o]){var c="Zone:"+o;n(c),I[o]=i(t,e,R),r(c,c)}}}]),e}();s.__symbol__=c;var f,l={name:"",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},p=function(){function t(e,n,r){o(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var i=r&&r.onHasTask;(i||n&&n._hasTaskZS)&&(this._hasTaskZS=i?r:l,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=l,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=l,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=l,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return i(t,[{key:"fork",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new s(t,e)}},{key:"intercept",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:"invoke",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:"handleError",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:"scheduleTask",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=j)throw new Error("Task is missing scheduleFn.");b(e)}return n}},{key:"invokeTask",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:"cancelTask",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error("Task is not cancelable");n=e.cancelFn(e)}return n}},{key:"hasTask",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:"_updateTaskCount",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error("More tasks executed then were scheduled.");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),h=function(){function e(n,r,i,a,c,u){if(o(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=r,this.data=a,this.scheduleFn=c,this.cancelFn=u,!i)throw new Error("callback is not defined");this.callback=i;var s=this;this.invoke=n===M&&a&&a.useG?e.invokeTask:function(){return e.invokeTask.call(t,s,this,arguments)}}return i(e,[{key:"zone",get:function(){return this._zone}},{key:"state",get:function(){return this._state}},{key:"cancelScheduleRequest",value:function(){this._transitionTo(k,E)}},{key:"_transitionTo",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error("".concat(this.type," '").concat(this.source,"': can not transition to '").concat(t,"', expecting state '").concat(e,"'").concat(n?" or '"+n+"'":"",", was '").concat(this._state,"'."));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:"toString",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:"toJSON",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}],[{key:"invokeTask",value:function(t,e,n){t||(t=this),N++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==N&&_(),N--}}}]),e}(),v=c("setTimeout"),d=c("Promise"),g=c("then"),y=[],m=!1;function b(e){if(0===N&&0===y.length)if(f||t[d]&&(f=t[d].resolve(0)),f){var n=f[g];n||(n=f.then),n.call(f,_)}else t[v](_,0);e&&y.push(e)}function _(){if(!m){for(m=!0;y.length;){var t=y;y=[];for(var e=0;e=0;n--)"function"==typeof t[n]&&(t[n]=m(t[n],e+"_"+n));return t}function O(t){return!t||!1!==t.writable&&!("function"==typeof t.get&&void 0===t.set)}var T="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,j=!("nw"in E)&&void 0!==E.process&&"[object process]"==={}.toString.call(E.process),P=!j&&!T&&!(!x||!k.HTMLElement),M=void 0!==E.process&&"[object process]"==={}.toString.call(E.process)&&!T&&!(!x||!k.HTMLElement),I={},R=function(t){if(t=t||E.event){var e=I[t.type];e||(e=I[t.type]=_("ON_PROPERTY"+t.type));var n,r=this||t.target||E,o=r[e];if(P&&r===k&&"error"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function D(t,e,n){var r=a(t,e);if(!r&&n&&a(n,e)&&(r={enumerable:!0,configurable:!0}),r&&r.configurable){var o=_("on"+e+"patched");if(!t.hasOwnProperty(o)||!t[o]){delete r.writable,delete r.value;var i=r.get,u=r.set,s=e.substr(2),f=I[s];f||(f=I[s]=_("ON_PROPERTY"+s)),r.set=function(e){var n=this;n||t!==E||(n=E),n&&(n[f]&&n.removeEventListener(s,R),u&&u.apply(n,w),"function"==typeof e?(n[f]=e,n.addEventListener(s,R,!1)):n[f]=null)},r.get=function(){var n=this;if(n||t!==E||(n=E),!n)return null;var o=n[f];if(o)return o;if(i){var a=i&&i.call(this);if(a)return r.set.call(this,a),"function"==typeof n.removeAttribute&&n.removeAttribute(e),a}return null},c(t,e,r),t[o]=!0}}}function C(t,e,n){if(e)for(var r=0;r=0&&"function"==typeof r[i.cbIdx]?b(i.name,r[i.cbIdx],i,o):t.apply(e,r)}})}function z(t,e){t[_("OriginalDelegate")]=e}var F=!1,G=!1;function U(){if(F)return G;F=!0;try{var t=k.navigator.userAgent;-1===t.indexOf("MSIE ")&&-1===t.indexOf("Trident/")&&-1===t.indexOf("Edge/")||(G=!0)}catch(e){}return G}Zone.__load_patch("ZoneAwarePromise",function(t,e,n){var a=Object.getOwnPropertyDescriptor,c=Object.defineProperty,u=n.symbol,s=[],f=!0===t[u("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],l=u("Promise"),p=u("then");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error("Unhandled Promise rejection:",e instanceof Error?e.message:e,"; Zone:",t.zone.name,"; Task:",t.task&&t.task.source,"; Value:",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(var t=function(){var t=s.shift();try{t.zone.runGuarded(function(){if(t.throwOriginal)throw t.rejection;throw t})}catch(r){!function(t){n.onUnhandledError(t);try{var r=e[h];"function"==typeof r&&r.call(this,t)}catch(o){}}(r)}};s.length;)t()};var h=u("unhandledPromiseRejectionHandler");function v(t){return t&&t.then}function d(t){return t}function g(t){return R.reject(t)}var y=u("state"),m=u("value"),b=u("finally"),_=u("parentPromiseValue"),x=u("parentPromiseState"),k=null,E=!0,w=!1;function S(t,e){return function(n){try{T(t,e,n)}catch(r){T(t,!1,r)}}}var O=u("currentTaskTrace");function T(t,r,o){var i,a,u=(i=!1,function(t){return function(){i||(i=!0,t.apply(null,arguments))}});if(t===o)throw new TypeError("Promise resolved with itself");if(t[y]===k){var l=null;try{"object"!=typeof o&&"function"!=typeof o||(l=o&&o.then)}catch(g){return u(function(){T(t,!1,g)})(),t}if(r!==w&&o instanceof R&&o.hasOwnProperty(y)&&o.hasOwnProperty(m)&&o[y]!==k)P(o),T(t,o[y],o[m]);else if(r!==w&&"function"==typeof l)try{l.call(o,u(S(t,r)),u(S(t,!1)))}catch(g){u(function(){T(t,!1,g)})()}else{t[y]=r;var p=t[m];if(t[m]=o,t[b]===b&&r===E&&(t[y]=t[x],t[m]=t[_]),r===w&&o instanceof Error){var h=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;h&&c(o,O,{configurable:!0,enumerable:!1,writable:!0,value:h})}for(var v=0;v4&&void 0!==arguments[4]&&arguments[4],c=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var u=this||t,s=arguments[0];n&&n.transferEventName&&(s=n.transferEventName(s));var h=arguments[1];if(!h)return e.apply(this,arguments);if(j&&"uncaughtException"===s)return e.apply(this,arguments);var v=!1;if("function"!=typeof h){if(!h.handleEvent)return e.apply(this,arguments);v=!0}if(!l||l(e,h,u,arguments)){var y=W&&!!C&&-1!==C.indexOf(s),m=P(arguments[2],y);if(D)for(var b=0;b0){var o=t.invoke;t.invoke=function(){for(var n=a[e.__symbol__("loadfalse")],i=0;i2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},92749:function(t,e,n){"use strict";var r=n(23542),o=n(63141),i=n(77457);t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},64274:function(t,e,n){"use strict";var r=n(81269).forEach,o=n(79925)("forEach");t.exports=o?[].forEach:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}},80164:function(t,e,n){"use strict";var r=n(78952),o=n(23542),i=n(17761),a=n(52064),c=n(77457),u=n(68923),s=n(2108);t.exports=function(t){var e,n,f,l,p,h,v=o(t),d="function"==typeof this?this:Array,g=arguments.length,y=g>1?arguments[1]:void 0,m=void 0!==y,b=s(v),_=0;if(m&&(y=r(y,g>2?arguments[2]:void 0,2)),null==b||d==Array&&a(b))for(n=new d(e=c(v.length));e>_;_++)h=m?y(v[_],_):v[_],u(n,_,h);else for(p=(l=b.call(v)).next,n=new d;!(f=p.call(l)).done;_++)h=m?i(l,y,[f.value,_],!0):f.value,u(n,_,h);return n.length=_,n}},13759:function(t,e,n){var r=n(60058),o=n(77457),i=n(63141),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},81269:function(t,e,n){var r=n(78952),o=n(7858),i=n(23542),a=n(77457),c=n(5301),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=7==t,h=5==t||l;return function(v,d,g,y){for(var m,b,_=i(v),x=o(_),k=r(d,g,3),E=a(x.length),w=0,S=y||c,O=e?S(v,E):n||p?S(v,0):void 0;E>w;w++)if((h||w in x)&&(b=k(m=x[w],w,_),t))if(e)O[w]=b;else if(b)switch(t){case 3:return!0;case 5:return m;case 6:return w;case 2:u.call(O,m)}else switch(t){case 4:return!1;case 7:u.call(O,m)}return l?-1:s||f?f:O}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6),filterOut:s(7)}},25004:function(t,e,n){"use strict";var r=n(60058),o=n(20397),i=n(77457),a=n(79925),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a("lastIndexOf");t.exports=s||!f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},19197:function(t,e,n){var r=n(43849),o=n(12871),i=n(66889),a=o("species");t.exports=function(t){return i>=51||!r(function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo})}},79925:function(t,e,n){"use strict";var r=n(43849);t.exports=function(t,e){var n=[][t];return!!n&&r(function(){n.call(null,e||function(){throw 1},1)})}},72527:function(t,e,n){var r=n(90272),o=n(23542),i=n(7858),a=n(77457),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError("Reduce of empty array with no initial value")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},5301:function(t,e,n){var r=n(5053),o=n(62703),i=n(12871)("species");t.exports=function(t,e){var n;return o(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},17761:function(t,e,n){var r=n(96845),o=n(38309);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(a){throw o(t),a}}},865:function(t,e,n){var r=n(12871)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,function(){throw 2})}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},36504:function(t){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},89736:function(t,e,n){var r=n(24556),o=n(36504),i=n(12871)("toStringTag"),a="Arguments"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},59274:function(t,e,n){"use strict";var r=n(70704).f,o=n(56527),i=n(96475),a=n(78952),c=n(14697),u=n(27421),s=n(10097),f=n(58506),l=n(14952),p=n(77483).fastKey,h=n(59796),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t(function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],{that:t,AS_ENTRIES:n})}),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,"F"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if("F"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=this,n=h(e),r=y(e,t);if(r){var o=r.next,i=r.previous;delete n.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),n.first==r&&(n.first=o),n.last==r&&(n.last=i),l?n.size--:e.size--}return!!r},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,"size",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+" Iterator",o=d(e),i=d(r);s(t,e,function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})},function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})},n?"entries":"values",!n,!0),f(e)}}},22903:function(t,e,n){"use strict";var r=n(96475),o=n(77483).getWeakData,i=n(96845),a=n(5053),c=n(14697),u=n(27421),s=n(81269),f=n(72515),l=n(59796),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new m)},m=function(){this.entries=[]},b=function(t,e){return v(t.entries,function(t){return t[0]===e})};m.prototype={get:function(t){var e=b(this,t);if(e)return e[1]},has:function(t){return!!b(this,t)},set:function(t,e){var n=b(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,function(e){return e[0]===t});return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t(function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],{that:t,AS_ENTRIES:n})}),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},58545:function(t,e,n){"use strict";var r=n(4773),o=n(30357),i=n(18153),a=n(81859),c=n(77483),u=n(27421),s=n(14697),f=n(5053),l=n(43849),p=n(865),h=n(20814),v=n(75079);t.exports=function(t,e,n){var d=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),y=d?"set":"add",m=o[t],b=m&&m.prototype,_=m,x={},k=function(t){var e=b[t];a(b,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,"function"!=typeof m||!(g||b.forEach&&!l(function(){(new m).entries().next()}))))_=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var E=new _,w=E[y](g?{}:-0,1)!=E,S=l(function(){E.has(1)}),O=p(function(t){new m(t)}),T=!g&&l(function(){for(var t=new m,e=5;e--;)t[y](e,e);return!t.has(-0)});O||((_=e(function(e,n){s(e,_,t);var r=v(new m,e,_);return null!=n&&u(n,r[y],{that:r,AS_ENTRIES:d}),r})).prototype=b,b.constructor=_),(S||T)&&(k("delete"),k("has"),d&&k("get")),(T||w)&&k(y),g&&b.clear&&delete b.clear}return x[t]=_,r({global:!0,forced:_!=m},x),h(_,t),g||n.setStrong(_,t,d),_}},62242:function(t,e,n){var r=n(72515),o=n(80713),i=n(49629),a=n(70704);t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s"+a+""}},89066:function(t,e,n){"use strict";var r=n(27473).IteratorPrototype,o=n(56527),i=n(34618),a=n(20814),c=n(37448),u=function(){return this};t.exports=function(t,e,n){var s=e+" Iterator";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},35384:function(t,e,n){var r=n(14952),o=n(70704),i=n(34618);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},34618:function(t){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},68923:function(t,e,n){"use strict";var r=n(12729),o=n(70704),i=n(34618);t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},42594:function(t,e,n){"use strict";var r=n(43849),o=n(96293).start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r(function(){return"0385-07-25T07:06:39.999Z"!=u.call(new Date(-50000000000001))})||!r(function(){u.call(new Date(NaN))})?function(){if(!isFinite(c.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),r=e<0?"-":e>9999?"+":"";return r+o(i(e),r?6:4,0)+"-"+o(t.getUTCMonth()+1,2,0)+"-"+o(t.getUTCDate(),2,0)+"T"+o(t.getUTCHours(),2,0)+":"+o(t.getUTCMinutes(),2,0)+":"+o(t.getUTCSeconds(),2,0)+"."+o(n,3,0)+"Z"}:u},89445:function(t,e,n){"use strict";var r=n(96845),o=n(12729);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return o(r(this),"number"!==t)}},10097:function(t,e,n){"use strict";var r=n(4773),o=n(89066),i=n(58873),a=n(86561),c=n(20814),u=n(35384),s=n(81859),f=n(12871),l=n(89345),p=n(37448),h=n(27473),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f("iterator"),y="keys",m="values",b="entries",_=function(){return this};t.exports=function(t,e,n,f,h,x,k){o(n,e,f);var E,w,S,O=function(t){if(t===h&&I)return I;if(!d&&t in P)return P[t];switch(t){case y:case m:case b:return function(){return new n(this,t)}}return function(){return new n(this)}},T=e+" Iterator",j=!1,P=t.prototype,M=P[g]||P["@@iterator"]||h&&P[h],I=!d&&M||O(h),R="Array"==e&&P.entries||M;if(R&&(E=i(R.call(new t)),v!==Object.prototype&&E.next&&(l||i(E)===v||(a?a(E,v):"function"!=typeof E[g]&&u(E,g,_)),c(E,T,!0,!0),l&&(p[T]=_))),h==m&&M&&M.name!==m&&(j=!0,I=function(){return M.call(this)}),l&&!k||P[g]===I||u(P,g,I),p[e]=I,h)if(w={values:O(m),keys:x?I:O(y),entries:O(b)},k)for(S in w)(d||j||!(S in P))&&s(P,S,w[S]);else r({target:e,proto:!0,forced:d||j},w);return w}},47949:function(t,e,n){var r=n(41833),o=n(72515),i=n(57768),a=n(70704).f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},14952:function(t,e,n){var r=n(43849);t.exports=!r(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},66792:function(t,e,n){var r=n(30357),o=n(5053),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},57793:function(t){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},30250:function(t){t.exports="object"==typeof window},82385:function(t,e,n){var r=n(78964);t.exports=/(?:iphone|ipod|ipad).*applewebkit/i.test(r)},40170:function(t,e,n){var r=n(36504),o=n(30357);t.exports="process"==r(o.process)},49310:function(t,e,n){var r=n(78964);t.exports=/web0s(?!.*chrome)/i.test(r)},78964:function(t,e,n){var r=n(57344);t.exports=r("navigator","userAgent")||""},66889:function(t,e,n){var r,o,i=n(30357),a=n(78964),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split("."))[0]<4?1:r[0]+r[1]:a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=r[1]),t.exports=o&&+o},98176:function(t){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},4773:function(t,e,n){var r=n(30357),o=n(49629).f,i=n(35384),a=n(81859),c=n(26190),u=n(62242),s=n(18153);t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?".":"#")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,"sham",!0),a(n,f,p,t)}}},43849:function(t){t.exports=function(t){try{return!!t()}catch(e){return!0}}},68309:function(t,e,n){"use strict";n(39624);var r=n(81859),o=n(43849),i=n(12871),a=n(35384),c=i("species"),u=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}),s="$0"==="a".replace(/./,"$0"),f=i("replace"),l=!!/./[f]&&""===/./[f]("a","$0"),p=!o(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]});t.exports=function(t,e,n,f){var h=i(t),v=!o(function(){var e={};return e[h]=function(){return 7},7!=""[t](e)}),d=v&&!o(function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[c]=function(){return n},n.flags="",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](""),!e});if(!v||!d||"replace"===t&&(!u||!s||l)||"split"===t&&!p){var g=/./[h],y=n(h,""[t],function(t,e,n,r,o){return e.exec===RegExp.prototype.exec?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}},{REPLACE_KEEPS_$0:s,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:l}),m=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return m.call(t,this,e)}:function(t){return m.call(t,this)})}f&&a(RegExp.prototype[h],"sham",!0)}},10698:function(t,e,n){"use strict";var r=n(62703),o=n(77457),i=n(78952),a=function(t,e,n,c,u,s,f,l){for(var p,h=u,v=0,d=!!f&&i(f,l,3);v0&&r(p))h=a(t,e,p,o(p.length),h,s-1)-1;else{if(h>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[h]=p}h++}v++}return h};t.exports=a},85744:function(t,e,n){var r=n(43849);t.exports=!r(function(){return Object.isExtensible(Object.preventExtensions({}))})},78952:function(t,e,n){var r=n(90272);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},46574:function(t,e,n){"use strict";var r=n(90272),o=n(5053),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o]*>)/g,c=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,u,s,f){var l=n+t.length,p=u.length,h=c;return void 0!==s&&(s=r(s),h=a),i.call(f,h,function(r,i){var a;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,n);case"'":return e.slice(l);case"<":a=s[i.slice(1,-1)];break;default:var c=+i;if(0===c)return r;if(c>p){var f=o(c/10);return 0===f?r:f<=p?void 0===u[f-1]?i.charAt(1):u[f-1]+i.charAt(1):r}a=u[c-1]}return void 0===a?"":a})}},30357:function(t){var e=function(t){return t&&t.Math==Math&&t};t.exports=e("object"==typeof globalThis&&globalThis)||e("object"==typeof window&&window)||e("object"==typeof self&&self)||e("object"==typeof global&&global)||function(){return this}()||Function("return this")()},72515:function(t,e,n){var r=n(23542),o={}.hasOwnProperty;t.exports=function(t,e){return o.call(r(t),e)}},44199:function(t){t.exports={}},21714:function(t,e,n){var r=n(30357);t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},43815:function(t,e,n){var r=n(57344);t.exports=r("document","documentElement")},94718:function(t,e,n){var r=n(14952),o=n(43849),i=n(66792);t.exports=!r&&!o(function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},7858:function(t,e,n){var r=n(43849),o=n(36504),i="".split;t.exports=r(function(){return!Object("z").propertyIsEnumerable(0)})?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},75079:function(t,e,n){var r=n(5053),o=n(86561);t.exports=function(t,e,n){var i,a;return o&&"function"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},7519:function(t,e,n){var r=n(76291),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},77483:function(t,e,n){var r=n(44199),o=n(5053),i=n(72515),a=n(70704).f,c=n(11427),u=n(85744),s=c("meta"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:"O"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,s)){if(!l(t))return"F";if(!e)return"E";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},59796:function(t,e,n){var r,o,i,a=n(7013),c=n(30357),u=n(5053),s=n(35384),f=n(72515),l=n(76291),p=n(51822),h=n(44199),v="Object already initialized";if(a){var d=l.state||(l.state=new(0,c.WeakMap)),g=d.get,y=d.has,m=d.set;r=function(t,e){if(y.call(d,t))throw new TypeError(v);return e.facade=t,m.call(d,t,e),e},o=function(t){return g.call(d,t)||{}},i=function(t){return y.call(d,t)}}else{var b=p("state");h[b]=!0,r=function(t,e){if(f(t,b))throw new TypeError(v);return e.facade=t,s(t,b,e),e},o=function(t){return f(t,b)?t[b]:{}},i=function(t){return f(t,b)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},52064:function(t,e,n){var r=n(12871),o=n(37448),i=r("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},62703:function(t,e,n){var r=n(36504);t.exports=Array.isArray||function(t){return"Array"==r(t)}},18153:function(t,e,n){var r=n(43849),o=/#|\.prototype\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&("function"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,".").toLowerCase()},c=i.data={},u=i.NATIVE="N",s=i.POLYFILL="P";t.exports=i},81243:function(t,e,n){var r=n(5053),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},5053:function(t){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},89345:function(t){t.exports=!1},15247:function(t,e,n){var r=n(5053),o=n(36504),i=n(12871)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},27421:function(t,e,n){var r=n(96845),o=n(52064),i=n(77457),a=n(78952),c=n(2108),u=n(38309),s=function(t,e){this.stopped=t,this.result=e};t.exports=function(t,e,n){var f,l,p,h,v,d,g,y=!(!n||!n.AS_ENTRIES),m=!(!n||!n.IS_ITERATOR),b=!(!n||!n.INTERRUPTED),_=a(e,n&&n.that,1+y+b),x=function(t){return f&&u(f),new s(!0,t)},k=function(t){return y?(r(t),b?_(t[0],t[1],x):_(t[0],t[1])):b?_(t,x):_(t)};if(m)f=t;else{if("function"!=typeof(l=c(t)))throw TypeError("Target is not iterable");if(o(l)){for(p=0,h=i(t.length);h>p;p++)if((v=k(t[p]))&&v instanceof s)return v;return new s(!1)}f=l.call(t)}for(d=f.next;!(g=d.call(f)).done;){try{v=k(g.value)}catch(E){throw u(f),E}if("object"==typeof v&&v&&v instanceof s)return v}return new s(!1)}},38309:function(t,e,n){var r=n(96845);t.exports=function(t){var e=t.return;if(void 0!==e)return r(e.call(t)).value}},27473:function(t,e,n){"use strict";var r,o,i,a=n(43849),c=n(58873),u=n(35384),s=n(72515),f=n(12871),l=n(89345),p=f("iterator"),h=!1;[].keys&&("next"in(i=[].keys())?(o=c(c(i)))!==Object.prototype&&(r=o):h=!0);var v=null==r||a(function(){var t={};return r[p].call(t)!==t});v&&(r={}),l&&!v||s(r,p)||u(r,p,function(){return this}),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},37448:function(t){t.exports={}},24807:function(t){var e=Math.expm1,n=Math.exp;t.exports=!e||e(10)>22025.465794806718||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:n(t)-1}:e},79636:function(t,e,n){var r=n(84462),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return iu||n!=n?f*(1/0):f*n}},57308:function(t){var e=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:e(1+t)}},84462:function(t){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},72839:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(30357),p=n(49629).f,h=n(727).set,v=n(82385),d=n(49310),g=n(40170),y=l.MutationObserver||l.WebKitMutationObserver,m=l.document,b=l.process,_=l.Promise,x=p(l,"queueMicrotask"),k=x&&x.value;k||(r=function(){var t,e;for(g&&(t=b.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},v||g||d||!y||!m?_&&_.resolve?((s=_.resolve(void 0)).constructor=_,f=s.then,a=function(){f.call(s,r)}):a=g?function(){b.nextTick(r)}:function(){h.call(l,r)}:(c=!0,u=m.createTextNode(""),new y(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c})),t.exports=k||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},13507:function(t,e,n){var r=n(30357);t.exports=r.Promise},66700:function(t,e,n){var r=n(66889),o=n(43849);t.exports=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())||!Symbol.sham&&r&&r<41})},7013:function(t,e,n){var r=n(30357),o=n(7519),i=r.WeakMap;t.exports="function"==typeof i&&/native code/.test(o(i))},67620:function(t,e,n){"use strict";var r=n(90272),o=function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},33078:function(t,e,n){var r=n(15247);t.exports=function(t){if(r(t))throw TypeError("The method doesn't accept regular expressions");return t}},88907:function(t,e,n){var r=n(30357).isFinite;t.exports=Number.isFinite||function(t){return"number"==typeof t&&r(t)}},51854:function(t,e,n){var r=n(30357),o=n(95223).trim,i=n(70454),a=r.parseFloat,c=1/a(i+"-0")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&"-"==e.charAt(0)?-0:n}:a},96282:function(t,e,n){var r=n(30357),o=n(95223).trim,i=n(70454),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+"08")||22!==a(i+"0x16");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},3696:function(t,e,n){"use strict";var r=n(14952),o=n(43849),i=n(90671),a=n(27513),c=n(87023),u=n(23542),s=n(7858),f=Object.assign,l=Object.defineProperty;t.exports=!f||o(function(){if(r&&1!==f({b:1},f(l({},"a",{enumerable:!0,get:function(){l(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),o="abcdefghijklmnopqrst";return t[n]=7,o.split("").forEach(function(t){e[t]=t}),7!=f({},t)[n]||i(f({},e)).join("")!=o})?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},56527:function(t,e,n){var r,o=n(96845),i=n(6858),a=n(98176),c=n(44199),u=n(43815),s=n(66792),f=n(51822)("IE_PROTO"),l=function(){},p=function(t){return"
- +
diff --git a/src/gui/static/src/index.html b/src/gui/static/src/index.html index d788331d2..04466eeca 100644 --- a/src/gui/static/src/index.html +++ b/src/gui/static/src/index.html @@ -38,7 +38,7 @@
- +
From 7bf34d4faab3985f2d124f7af26bf1910e181908 Mon Sep 17 00:00:00 2001 From: "PrivateNess.Network" Date: Fri, 18 Nov 2022 14:28:02 -0500 Subject: [PATCH 3/4] Update run-client.sh --- run-client.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/run-client.sh b/run-client.sh index c9a4a4897..1d94f600c 100755 --- a/run-client.sh +++ b/run-client.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash -# Runs skycoin in desktop client configuration +# Runs privateness in desktop client configuration set -x DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -echo "skycoin binary dir:" "$DIR" +echo "privateness binary dir:" "$DIR" pushd "$DIR" >/dev/null COMMIT=$(git rev-parse HEAD) From 9dd55e9ee8fec7de9e195cce7d8c98fb922ae648 Mon Sep 17 00:00:00 2001 From: "PrivateNess.Network" Date: Fri, 18 Nov 2022 14:28:35 -0500 Subject: [PATCH 4/4] Update run-daemon.sh --- run-daemon.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/run-daemon.sh b/run-daemon.sh index cccaa7b71..4a658d335 100755 --- a/run-daemon.sh +++ b/run-daemon.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash -# Runs skycoin in daemon mode configuration +# Runs privateness in daemon mode configuration set -x DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -echo "skycoin binary dir:" "$DIR" +echo "privateness binary dir:" "$DIR" pushd "$DIR" >/dev/null COMMIT=$(git rev-parse HEAD)